{"version":3,"file":"BTCVaultRegistry.abi-z7d_eP22.cjs","sources":["../src/tbv/core/contracts/abis/BTCVaultRegistry.abi.ts"],"sourcesContent":["/**\n * BTCVaultRegistry Contract ABI\n *\n * Minimal ABI containing only the functions needed by the SDK.\n * Full ABI is available in the vault service package.\n *\n * @module contracts/abis/BTCVaultRegistry\n */\n\n/**\n * Minimal ABI for BTCVaultRegistry contract.\n * Contains submitPeginRequest, submitPeginRequestBatch, activateVaultWithSecret, getPegInFee, getBtcVaultBasicInfo, and getVaultProviderCommission.\n */\nexport const BTCVaultRegistryABI = [\n  {\n    type: \"function\",\n    name: \"submitPeginRequest\",\n    inputs: [\n      {\n        name: \"depositor\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n      {\n        name: \"depositorBtcPubKey\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n      {\n        name: \"btcPopSignature\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"unsignedPrePeginTx\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"depositorSignedPeginTx\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"vaultProvider\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n      {\n        name: \"maxAcceptableCommissionBps\",\n        type: \"uint16\",\n        internalType: \"uint16\",\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: \"depositorPayoutBtcAddress\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"depositorWotsPkHash\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    stateMutability: \"payable\",\n  },\n  {\n    type: \"function\",\n    name: \"submitPeginRequest\",\n    inputs: [\n      {\n        name: \"depositor\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n      {\n        name: \"depositorBtcPubKey\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n      {\n        name: \"btcPopSignature\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"unsignedPrePeginTx\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"depositorSignedPeginTx\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"vaultProvider\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n      {\n        name: \"maxAcceptableCommissionBps\",\n        type: \"uint16\",\n        internalType: \"uint16\",\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: \"referralCode\",\n        type: \"uint32\",\n        internalType: \"uint32\",\n      },\n      {\n        name: \"depositorPayoutBtcAddress\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n      {\n        name: \"depositorWotsPkHash\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    stateMutability: \"payable\",\n  },\n  {\n    type: \"function\",\n    name: \"submitPeginRequestBatch\",\n    inputs: [\n      { name: \"depositor\", type: \"address\", internalType: \"address\" },\n      { name: \"vaultProvider\", type: \"address\", internalType: \"address\" },\n      {\n        name: \"maxAcceptableCommissionBps\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n      {\n        name: \"requests\",\n        type: \"tuple[]\",\n        internalType: \"struct BTCVaultRegistryTypes.BatchPeginRequest[]\",\n        components: [\n          {\n            name: \"depositorBtcPubKey\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n          { name: \"btcPopSignature\", type: \"bytes\", internalType: \"bytes\" },\n          { name: \"unsignedPrePeginTx\", type: \"bytes\", internalType: \"bytes\" },\n          {\n            name: \"depositorSignedPeginTx\",\n            type: \"bytes\",\n            internalType: \"bytes\",\n          },\n          { name: \"hashlock\", type: \"bytes32\", internalType: \"bytes32\" },\n          { name: \"htlcVout\", type: \"uint8\", internalType: \"uint8\" },\n          { name: \"referralCode\", type: \"uint32\", internalType: \"uint32\" },\n          {\n            name: \"depositorPayoutBtcAddress\",\n            type: \"bytes\",\n            internalType: \"bytes\",\n          },\n          {\n            name: \"depositorWotsPkHash\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n        ],\n      },\n    ],\n    outputs: [\n      { name: \"vaultIds\", type: \"bytes32[]\", internalType: \"bytes32[]\" },\n    ],\n    stateMutability: \"payable\",\n  },\n  {\n    type: \"function\",\n    name: \"activateVaultWithSecret\",\n    inputs: [\n      {\n        name: \"vaultId\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n      {\n        name: \"s\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n      {\n        name: \"activationMetadata\",\n        type: \"bytes\",\n        internalType: \"bytes\",\n      },\n    ],\n    outputs: [],\n    stateMutability: \"nonpayable\",\n  },\n  {\n    type: \"function\",\n    name: \"activateVaultWithSecretAndRedeem\",\n    inputs: [\n      {\n        name: \"vaultId\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n      {\n        name: \"s\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    outputs: [],\n    stateMutability: \"nonpayable\",\n  },\n  {\n    type: \"function\",\n    name: \"getPegInFee\",\n    inputs: [\n      {\n        name: \"vaultProvider\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"totalFee\",\n        type: \"uint256\",\n        internalType: \"uint256\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  // --- RFC-006 operation-key resolution ---------------------------------\n  // A vault provider's BTC key is not a fixed registration key: it is an\n  // append-only history of *operation* keys, rotated by the provider's cold ETH\n  // admin key. Each vault freezes a `vpKeyEpoch` at `submitPeginRequest` and\n  // resolves the key bonded at that epoch, so a later rotation never\n  // invalidates a live vault.\n  //\n  // The dedicated `getVaultProviderBTCKey` / `getVaultProviderKeyPair` getters\n  // are deliberately absent: vault-contracts-aave-v4#539 removes them, and\n  // keeping them here would let a call compile against a selector the registry\n  // no longer exposes. The registration key is read as the operation key at\n  // epoch 0 instead — see `getVaultProviderGenesisBtcPubKey`.\n  //\n  // `getCurrentOperationBtcKey` falls back on-chain to the registration key at\n  // version 0, so adopting it is a no-op for a provider that never rotated.\n  //\n  // `getPayoutScriptAtEpoch` does NOT behave that way, and assuming it did was\n  // wrong in an earlier revision of this comment. A payout script is mandatory\n  // at registration and stored as version 1, so on an RFC-006 registry this\n  // returns the operator's own registered script from the very first epoch —\n  // not a BIP-86 derivation of its key. The contract's BIP-86 branch is a\n  // migration default for pre-RFC-006 rows and is not reachable from\n  // registration. An operator whose registered script happens to equal\n  // bip86(key) is a coincidence of what it chose to register, not a fallback.\n  //\n  // This is why depositor payout validation must accept the legacy BIP-86 form\n  // alongside the registered one: a payout graph is built once at BaBe Setup\n  // and never rebuilt, so a vault whose graph predates its network's\n  // btc-vault#2440 upgrade pays BIP-86 for the rest of its life. See\n  // `acceptedPayoutScriptHexes` in `primitives/psbt/payout.ts`.\n  {\n    type: \"function\",\n    name: \"getCurrentOperationBtcKey\",\n    inputs: [{ name: \"provider\", type: \"address\", internalType: \"address\" }],\n    outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getOperationBtcKeyAtEpoch\",\n    inputs: [\n      { name: \"provider\", type: \"address\", internalType: \"address\" },\n      { name: \"epoch\", type: \"uint64\", internalType: \"uint64\" },\n    ],\n    outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getPayoutScriptAtEpoch\",\n    inputs: [\n      { name: \"provider\", type: \"address\", internalType: \"address\" },\n      { name: \"epoch\", type: \"uint64\", internalType: \"uint64\" },\n    ],\n    outputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getVaultProviderCommission\",\n    inputs: [{ name: \"vpAddr\", type: \"address\", internalType: \"address\" }],\n    outputs: [{ name: \"\", type: \"uint16\", internalType: \"uint16\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getBtcVaultBasicInfo\",\n    inputs: [\n      {\n        name: \"vaultId\",\n        type: \"bytes32\",\n        internalType: \"bytes32\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"vBasic\",\n        type: \"tuple\",\n        internalType: \"struct BTCVaultTypes.BTCVaultBasicInfo\",\n        components: [\n          { name: \"depositor\", type: \"address\", internalType: \"address\" },\n          {\n            name: \"depositorBtcPubKey\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n          { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n          {\n            name: \"vaultProvider\",\n            type: \"address\",\n            internalType: \"address\",\n          },\n          {\n            name: \"status\",\n            type: \"uint8\",\n            internalType: \"enum IBTCVaultRegistry.BTCVaultStatus\",\n          },\n          {\n            name: \"applicationEntryPoint\",\n            type: \"address\",\n            internalType: \"address\",\n          },\n          { name: \"createdAt\", type: \"uint256\", internalType: \"uint256\" },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"error\",\n    name: \"InvalidPeginFee\",\n    inputs: [\n      {\n        name: \"provided\",\n        type: \"uint256\",\n        internalType: \"uint256\",\n      },\n      {\n        name: \"required\",\n        type: \"uint256\",\n        internalType: \"uint256\",\n      },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"InvalidSecret\",\n    inputs: [],\n  },\n  {\n    type: \"error\",\n    name: \"ActivationDeadlineExpired\",\n    inputs: [],\n  },\n  {\n    type: \"error\",\n    name: \"InvalidHashlock\",\n    inputs: [],\n  },\n  {\n    type: \"error\",\n    name: \"DuplicateHashlock\",\n    inputs: [],\n  },\n  {\n    type: \"error\",\n    name: \"CapExceeded\",\n    inputs: [],\n  },\n  {\n    type: \"error\",\n    name: \"InvalidOutputIndex\",\n    inputs: [],\n  },\n  {\n    type: \"error\",\n    name: \"PeginSignaturesIncomplete\",\n    inputs: [],\n  },\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        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"protocolParams\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"address\",\n        internalType: \"contract IProtocolParams\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"applicationRegistry\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"address\",\n        internalType: \"contract IApplicationRegistry\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  // ============================================================================\n  // Errors — needed so viem can decode revert data into a named error.\n  // Without these, every revert surfaces as \"Execution reverted for an\n  // unknown reason.\" Mirrors errors thrown from BTCVaultRegistry's reachable\n  // code paths (pegin submission, ACK, activation). Source:\n  // https://github.com/babylonlabs-io/vault-contracts-aave-v4/blob/652c4582/src/protocol/lib/types/Errors.sol\n  // ============================================================================\n  { type: \"error\", name: \"ZeroAddress\", inputs: [] },\n  { type: \"error\", name: \"Unauthorized\", inputs: [] },\n  { type: \"error\", name: \"InvalidAmount\", inputs: [] },\n  { type: \"error\", name: \"TransferFailed\", inputs: [] },\n  { type: \"error\", name: \"InvalidTransaction\", inputs: [] },\n  { type: \"error\", name: \"EmptyPayoutAddress\", inputs: [] },\n  { type: \"error\", name: \"PayoutAddressTooLong\", inputs: [] },\n  { type: \"error\", name: \"VaultAlreadyExists\", inputs: [] },\n  { type: \"error\", name: \"VaultFeeAlreadyEscrowed\", inputs: [] },\n  { type: \"error\", name: \"NoEscrowedFees\", inputs: [] },\n  { type: \"error\", name: \"BTCVaultNotFound\", inputs: [] },\n  { type: \"error\", name: \"InvalidBTCVaultStatus\", inputs: [] },\n  { type: \"error\", name: \"PeginNotExpired\", inputs: [] },\n  { type: \"error\", name: \"InvalidParticipantsList\", inputs: [] },\n  { type: \"error\", name: \"DuplicateParticipant\", inputs: [] },\n  { type: \"error\", name: \"ParticipantRoleOverlap\", inputs: [] },\n  { type: \"error\", name: \"NotAuthorizedToACK\", inputs: [] },\n  { type: \"error\", name: \"UnauthorizedVaultKeeper\", inputs: [] },\n  { type: \"error\", name: \"BlocklistedVaultKeeper\", inputs: [] },\n  { type: \"error\", name: \"PeginTransactionExpired\", inputs: [] },\n  { type: \"error\", name: \"PrePeginOutputAlreadyUsed\", inputs: [] },\n  { type: \"error\", name: \"PeginTransactionAlreadyUsed\", inputs: [] },\n  {\n    type: \"error\",\n    name: \"InvalidPeginFee\",\n    inputs: [\n      { name: \"provided\", type: \"uint256\", internalType: \"uint256\" },\n      { name: \"required\", type: \"uint256\", internalType: \"uint256\" },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"AmountBelowMinimumThreshold\",\n    inputs: [\n      { name: \"actual\", type: \"uint256\", internalType: \"uint256\" },\n      { name: \"minimum\", type: \"uint256\", internalType: \"uint256\" },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"InvalidOutputIndex\",\n    inputs: [\n      { name: \"provided\", type: \"uint256\", internalType: \"uint256\" },\n      { name: \"maxValid\", type: \"uint256\", internalType: \"uint256\" },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"TooManyHtlcOutputs\",\n    inputs: [\n      { name: \"outputCount\", type: \"uint256\", internalType: \"uint256\" },\n      { name: \"maxAllowed\", type: \"uint256\", internalType: \"uint256\" },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"VaultBelowMinimum\",\n    inputs: [\n      { name: \"actual\", type: \"uint256\", internalType: \"uint256\" },\n      { name: \"minimum\", type: \"uint256\", internalType: \"uint256\" },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"VaultAboveMaximum\",\n    inputs: [\n      { name: \"actual\", type: \"uint256\", internalType: \"uint256\" },\n      { name: \"maximum\", type: \"uint256\", internalType: \"uint256\" },\n    ],\n  },\n  { type: \"error\", name: \"InvalidBTCPublicKey\", inputs: [] },\n  { type: \"error\", name: \"InvalidDepositorWotsPkHash\", inputs: [] },\n  { type: \"error\", name: \"InvalidBTCProofOfPossession\", inputs: [] },\n  { type: \"error\", name: \"EthKeyAlreadyRegistered\", inputs: [] },\n  { type: \"error\", name: \"BtcKeyAlreadyRegistered\", inputs: [] },\n  { type: \"error\", name: \"InvalidRegistrationFee\", inputs: [] },\n  {\n    type: \"error\",\n    name: \"CommissionBelowMinimum\",\n    inputs: [\n      { name: \"provided\", type: \"uint16\", internalType: \"uint16\" },\n      { name: \"minimum\", type: \"uint16\", internalType: \"uint16\" },\n    ],\n  },\n  {\n    type: \"error\",\n    name: \"CommissionAboveMaximum\",\n    inputs: [{ name: \"provided\", type: \"uint16\", internalType: \"uint16\" }],\n  },\n  { type: \"error\", name: \"CommissionUnchanged\", inputs: [] },\n  {\n    type: \"error\",\n    name: \"VaultProviderCommissionExceeded\",\n    inputs: [\n      { name: \"maxAcceptable\", type: \"uint16\", internalType: \"uint16\" },\n      { name: \"actual\", type: \"uint16\", internalType: \"uint16\" },\n    ],\n  },\n  { type: \"error\", name: \"VaultProviderNotRegistered\", inputs: [] },\n  { type: \"error\", name: \"ApplicationAlreadyRegistered\", inputs: [] },\n  { type: \"error\", name: \"ApplicationNotRegistered\", inputs: [] },\n  { type: \"error\", name: \"ApplicationNotActive\", inputs: [] },\n  { type: \"error\", name: \"InvalidApplicationStatus\", inputs: [] },\n  { type: \"error\", name: \"OnlyApplicationEntryPoint\", inputs: [] },\n  { type: \"error\", name: \"EmptyVaultKeepers\", inputs: [] },\n  { type: \"error\", name: \"NoUniversalChallengersConfigured\", inputs: [] },\n  { type: \"error\", name: \"NoAppVaultKeepersConfigured\", inputs: [] },\n  { type: \"error\", name: \"PeginSignaturesIncomplete\", inputs: [] },\n  { type: \"error\", name: \"InvalidSignatureLength\", inputs: [] },\n  { type: \"error\", name: \"PeginInputSignatureAlreadySubmitted\", inputs: [] },\n  { type: \"error\", name: \"InvalidHashlock\", inputs: [] },\n  { type: \"error\", name: \"DuplicateHashlock\", inputs: [] },\n  { type: \"error\", name: \"InvalidSecret\", inputs: [] },\n  { type: \"error\", name: \"ActivationDeadlineExpired\", inputs: [] },\n  // Lower bound on activation: reverts while\n  // `block.number < verifiedAt + peginActivationDelay`. Clears with time, so\n  // unlike ActivationDeadlineExpired it is retryable, not terminal.\n  { type: \"error\", name: \"ActivationDelayNotElapsed\", inputs: [] },\n  { type: \"error\", name: \"PostExpiryGraceWindowElapsed\", inputs: [] },\n  { type: \"error\", name: \"CapExceeded\", inputs: [] },\n] as const;\n"],"names":["BTCVaultRegistryABI"],"mappings":"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"}