{"version":3,"file":"BTCVaultRegistryKeyEpochs.abi-_NERAdc5.cjs","sources":["../src/tbv/core/contracts/abis/BTCVaultRegistryKeyEpochs.abi.ts"],"sourcesContent":["/**\n * BTCVaultRegistry ABI — RFC-006 key-epoch view of `getBtcVaultProtocolInfo`.\n *\n * This is a deliberate second copy of a single function entry, NOT a\n * convenience re-export, and it must never be merged into\n * `BTCVaultRegistryABI`.\n *\n * `getBtcVaultProtocolInfo` returns a *positional* tuple. RFC-006 appended\n * three `uint64` epoch fields (`vpKeyEpoch`, `appKeeperKeyEpoch`,\n * `ucKeyEpoch`) after `vaultCoreVersion`. Declaring those three components\n * against a registry that predates RFC-006 makes viem read past the end of\n * the returndata and throw — and because the shared reader batches this call\n * through `multicall({ allowFailure: false })`, one bad decode fails the\n * whole batch. That would break vault status, resume, payout and refund\n * app-wide, on every network whose registry has not been upgraded yet.\n *\n * So the shared `BTCVaultRegistryABI` keeps the 13-field shape that decodes\n * against every deployed registry, and the extended shape lives here, read\n * only by `ViemVaultRegistryReader.getVaultKeyEpochs*` on the epoch-aware\n * path. Reading the same call through two ABIs is the price of keeping the\n * shared decode path independent of the registry version.\n *\n * The 13 shared components must stay an exact prefix of the 16 below;\n * `__tests__/abi-key-epochs.test.ts` pins that.\n *\n * Generated from vault-contracts-aave-v4\n * `src/protocol/lib/types/BTCVaultRegistryTypes.sol`.\n *\n * @module contracts/abis/BTCVaultRegistryKeyEpochs\n */\n\nexport const BTCVaultRegistryKeyEpochsABI = [\n  {\n    type: \"function\",\n    name: \"getBtcVaultProtocolInfo\",\n    inputs: [\n      {\n        name: \"vaultId\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"vProtocol\",\n        type: \"tuple\",\n        internalType: \"struct BTCVaultRegistryTypes.BTCVaultProtocolInfo\",\n        components: [\n          {\n            name: \"depositorSignedPeginTx\",\n            type: \"bytes\",\n            internalType: \"bytes\",\n          },\n          {\n            name: \"universalChallengersVersion\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"appVaultKeepersVersion\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"offchainParamsVersion\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"verifiedAt\",\n            type: \"uint256\",\n            internalType: \"uint256\",\n          },\n          {\n            name: \"depositorWotsPkHash\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n          {\n            name: \"hashlock\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n          {\n            name: \"htlcVout\",\n            type: \"uint8\",\n            internalType: \"uint8\",\n          },\n          {\n            name: \"depositorPopSignature\",\n            type: \"bytes\",\n            internalType: \"bytes\",\n          },\n          {\n            name: \"prePeginTxHash\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n          {\n            name: \"vaultProviderCommissionBps\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"claimExpiredUntil\",\n            type: \"uint256\",\n            internalType: \"uint256\",\n          },\n          {\n            name: \"vaultCoreVersion\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          // RFC-006: per-pegin operation-key epochs, frozen at\n          // `submitPeginRequest`. All three pack into one storage slot and were\n          // appended after `vaultCoreVersion` so pre-existing rows decode\n          // unchanged.\n          {\n            name: \"vpKeyEpoch\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"appKeeperKeyEpoch\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"ucKeyEpoch\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n] as const;\n"],"names":["BTCVaultRegistryKeyEpochsABI"],"mappings":"aA+BO,MAAMA,EAA+B,CAC1C,CACE,KAAM,WACN,KAAM,0BACN,OAAQ,CACN,CACE,KAAM,UACN,KAAM,UACN,aAAc,SAAA,CAChB,EAEF,QAAS,CACP,CACE,KAAM,YACN,KAAM,QACN,aAAc,oDACd,WAAY,CACV,CACE,KAAM,yBACN,KAAM,QACN,aAAc,OAAA,EAEhB,CACE,KAAM,8BACN,KAAM,SACN,aAAc,QAAA,EAEhB,CACE,KAAM,yBACN,KAAM,SACN,aAAc,QAAA,EAEhB,CACE,KAAM,wBACN,KAAM,SACN,aAAc,QAAA,EAEhB,CACE,KAAM,aACN,KAAM,UACN,aAAc,SAAA,EAEhB,CACE,KAAM,sBACN,KAAM,UACN,aAAc,SAAA,EAEhB,CACE,KAAM,WACN,KAAM,UACN,aAAc,SAAA,EAEhB,CACE,KAAM,WACN,KAAM,QACN,aAAc,OAAA,EAEhB,CACE,KAAM,wBACN,KAAM,QACN,aAAc,OAAA,EAEhB,CACE,KAAM,iBACN,KAAM,UACN,aAAc,SAAA,EAEhB,CACE,KAAM,6BACN,KAAM,SACN,aAAc,QAAA,EAEhB,CACE,KAAM,oBACN,KAAM,UACN,aAAc,SAAA,EAEhB,CACE,KAAM,mBACN,KAAM,SACN,aAAc,QAAA,EAMhB,CACE,KAAM,aACN,KAAM,SACN,aAAc,QAAA,EAEhB,CACE,KAAM,oBACN,KAAM,SACN,aAAc,QAAA,EAEhB,CACE,KAAM,aACN,KAAM,SACN,aAAc,QAAA,CAChB,CACF,CACF,EAEF,gBAAiB,MAAA,CAErB"}