{"version":3,"file":"ProtocolParams.abi-CYZoV2EI.cjs","sources":["../src/tbv/core/contracts/abis/ApplicationRegistry.abi.ts","../src/tbv/core/contracts/abis/ProtocolParams.abi.ts"],"sourcesContent":["/**\n * ApplicationRegistry Contract ABI\n *\n * Minimal ABI containing only the vault keeper read functions needed by the SDK.\n * Generated from vault-contracts-aave-v4 IApplicationRegistry.sol interface.\n *\n * @module contracts/abis/ApplicationRegistry\n */\n\nexport const ApplicationRegistryABI = [\n  {\n    type: \"function\",\n    name: \"getVaultKeepersByVersion\",\n    inputs: [\n      {\n        name: \"appEntryPoint\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n      {\n        name: \"versionNumber\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple[]\",\n        internalType: \"struct BTCVaultTypes.AddressBTCKeyPair[]\",\n        components: [\n          {\n            name: \"ethAddress\",\n            type: \"address\",\n            internalType: \"address\",\n          },\n          {\n            name: \"btcPubKey\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getCurrentVaultKeepers\",\n    inputs: [\n      {\n        name: \"appEntryPoint\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple[]\",\n        internalType: \"struct BTCVaultTypes.AddressBTCKeyPair[]\",\n        components: [\n          {\n            name: \"ethAddress\",\n            type: \"address\",\n            internalType: \"address\",\n          },\n          {\n            name: \"btcPubKey\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getCurrentVaultKeepersVersion\",\n    inputs: [\n      {\n        name: \"appEntryPoint\",\n        type: \"address\",\n        internalType: \"address\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  // --- RFC-006 operation-key resolution ---------------------------------\n  // A keeper's roster entry (`AddressBTCKeyPair` above) carries its *admin*\n  // ETH address and its *genesis* BTC key. The key that actually goes into\n  // the scripts is the operation key bonded at the vault's frozen\n  // `appKeeperKeyEpoch`, which the admin address keys the lookup for.\n  //\n  // The `...OrGenesis` variant takes the roster key explicitly because the\n  // correct genesis for a keeper is its key in the vault's *frozen membership\n  // version* — a keeper may have been dropped from the current roster, or\n  // listed under a different key in an older version. The plain\n  // `getOperationBtcKeyAtEpoch` variant resolves genesis version-agnostically\n  // and can therefore pick the wrong one; do not use it for a frozen vault.\n  {\n    type: \"function\",\n    name: \"getCurrentOperationBtcKey\",\n    inputs: [\n      { name: \"appEntryPoint\", type: \"address\", internalType: \"address\" },\n      { name: \"keeperAdmin\", type: \"address\", internalType: \"address\" },\n    ],\n    outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getOperationBtcKeyAtEpochOrGenesis\",\n    inputs: [\n      { name: \"appEntryPoint\", type: \"address\", internalType: \"address\" },\n      { name: \"keeperAdmin\", type: \"address\", internalType: \"address\" },\n      { name: \"epoch\", type: \"uint64\", internalType: \"uint64\" },\n      { name: \"rosterGenesisKey\", type: \"bytes32\", internalType: \"bytes32\" },\n    ],\n    outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getPayoutScriptAtEpoch\",\n    inputs: [\n      { name: \"appEntryPoint\", type: \"address\", internalType: \"address\" },\n      { name: \"keeperAdmin\", type: \"address\", internalType: \"address\" },\n      { name: \"epoch\", type: \"uint64\", internalType: \"uint64\" },\n    ],\n    outputs: [{ name: \"\", type: \"bytes\", internalType: \"bytes\" }],\n    stateMutability: \"view\",\n  },\n] as const;\n","/**\n * ProtocolParams Contract ABI\n *\n * Minimal ABI containing only the read functions needed by the SDK.\n * Generated from vault-contracts-aave-v4 IProtocolParams.sol interface.\n *\n * @module contracts/abis/ProtocolParams\n */\n\nexport const ProtocolParamsABI = [\n  {\n    type: \"function\",\n    name: \"activeVaultCoreVersion\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getTBVProtocolParams\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple\",\n        internalType: \"struct IProtocolParams.TBVProtocolParams\",\n        components: [\n          {\n            name: \"minimumPegInAmount\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"maxPegInAmount\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"pegInAckTimeout\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"pegInActivationTimeout\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"maxHtlcOutputCount\",\n            type: \"uint8\",\n            internalType: \"uint8\",\n          },\n          {\n            name: \"expiredPegInGraceBlocks\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getLatestOffchainParams\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple\",\n        internalType: \"struct IProtocolParams.VersionedOffchainParams\",\n        components: [\n          {\n            name: \"timelockAssert\",\n            type: \"uint256\",\n            internalType: \"uint256\",\n          },\n          {\n            name: \"timelockChallengeAssert\",\n            type: \"uint256\",\n            internalType: \"uint256\",\n          },\n          {\n            name: \"securityCouncilKeys\",\n            type: \"bytes32[]\",\n            internalType: \"bytes32[]\",\n          },\n          {\n            name: \"councilQuorum\",\n            type: \"uint8\",\n            internalType: \"uint8\",\n          },\n          {\n            name: \"feeRate\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"babeTotalInstances\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"babeInstancesToFinalize\",\n            type: \"uint8\",\n            internalType: \"uint8\",\n          },\n          {\n            name: \"minVpCommissionBps\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"tRefund\",\n            type: \"uint32\",\n            internalType: \"uint32\",\n          },\n          {\n            name: \"tStale\",\n            type: \"uint32\",\n            internalType: \"uint32\",\n          },\n          {\n            name: \"minPeginFeeRate\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"proverCircuitVersion\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"minPrepeginDepth\",\n            type: \"uint32\",\n            internalType: \"uint32\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getOffchainParamsByVersion\",\n    inputs: [\n      {\n        name: \"versionNumber\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple\",\n        internalType: \"struct IProtocolParams.VersionedOffchainParams\",\n        components: [\n          {\n            name: \"timelockAssert\",\n            type: \"uint256\",\n            internalType: \"uint256\",\n          },\n          {\n            name: \"timelockChallengeAssert\",\n            type: \"uint256\",\n            internalType: \"uint256\",\n          },\n          {\n            name: \"securityCouncilKeys\",\n            type: \"bytes32[]\",\n            internalType: \"bytes32[]\",\n          },\n          {\n            name: \"councilQuorum\",\n            type: \"uint8\",\n            internalType: \"uint8\",\n          },\n          {\n            name: \"feeRate\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"babeTotalInstances\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"babeInstancesToFinalize\",\n            type: \"uint8\",\n            internalType: \"uint8\",\n          },\n          {\n            name: \"minVpCommissionBps\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"tRefund\",\n            type: \"uint32\",\n            internalType: \"uint32\",\n          },\n          {\n            name: \"tStale\",\n            type: \"uint32\",\n            internalType: \"uint32\",\n          },\n          {\n            name: \"minPeginFeeRate\",\n            type: \"uint64\",\n            internalType: \"uint64\",\n          },\n          {\n            name: \"proverCircuitVersion\",\n            type: \"uint16\",\n            internalType: \"uint16\",\n          },\n          {\n            name: \"minPrepeginDepth\",\n            type: \"uint32\",\n            internalType: \"uint32\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"latestOffchainParamsVersion\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getUniversalChallengersByVersion\",\n    inputs: [\n      {\n        name: \"versionNumber\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple[]\",\n        internalType: \"struct BTCVaultTypes.AddressBTCKeyPair[]\",\n        components: [\n          {\n            name: \"ethAddress\",\n            type: \"address\",\n            internalType: \"address\",\n          },\n          {\n            name: \"btcPubKey\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getCurrentUniversalChallengers\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"tuple[]\",\n        internalType: \"struct BTCVaultTypes.AddressBTCKeyPair[]\",\n        components: [\n          {\n            name: \"ethAddress\",\n            type: \"address\",\n            internalType: \"address\",\n          },\n          {\n            name: \"btcPubKey\",\n            type: \"bytes32\",\n            internalType: \"bytes32\",\n          },\n        ],\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"latestUniversalChallengersVersion\",\n    inputs: [],\n    outputs: [\n      {\n        name: \"\",\n        type: \"uint16\",\n        internalType: \"uint16\",\n      },\n    ],\n    stateMutability: \"view\",\n  },\n  // --- RFC-006 operation-key resolution ---------------------------------\n  // Universal challengers get the reduced RFC-006 model: an operation key\n  // that goes into the challenge scripts, resolved against the vault's frozen\n  // `ucKeyEpoch`, but no payout script (a UC is never a claimer, so its only\n  // BTC output is the NoPayout anchor) and no per-UC setter — key changes go\n  // through a roster version bump. The roster entry's `ethAddress` is the\n  // `ucAdmin` lookup key and its `btcPubKey` is the genesis key.\n  {\n    type: \"function\",\n    name: \"getCurrentOperationBtcKey\",\n    inputs: [{ name: \"ucAdmin\", type: \"address\", internalType: \"address\" }],\n    outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n    stateMutability: \"view\",\n  },\n  {\n    type: \"function\",\n    name: \"getOperationBtcKeyAtEpochOrGenesis\",\n    inputs: [\n      { name: \"ucAdmin\", type: \"address\", internalType: \"address\" },\n      { name: \"epoch\", type: \"uint64\", internalType: \"uint64\" },\n      { name: \"rosterGenesisKey\", type: \"bytes32\", internalType: \"bytes32\" },\n    ],\n    outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n    stateMutability: \"view\",\n  },\n  // Observation window between a vault's final ACK and its activation, in ETH\n  // blocks, measured from `verifiedAt`. Read through this standalone getter\n  // rather than as a 7th component of `getTBVProtocolParams` above: the field\n  // was appended to the struct, so a 7-component tuple decodes only against\n  // deployments that carry it and throws `PositionOutOfBoundsError` against\n  // the 6-word return of those that don't. Deployments are currently split\n  // (devnet has it, testnet/staging do not), and that tuple feeds\n  // `getPegInConfiguration` -> `ProtocolParamsContext`, whose failure blanks\n  // the app. `uint256` (not the `uint64` storage width) — the accessor widens.\n  {\n    type: \"function\",\n    name: \"peginActivationDelay\",\n    inputs: [],\n    outputs: [{ name: \"\", type: \"uint256\", internalType: \"uint256\" }],\n    stateMutability: \"view\",\n  },\n] as const;\n"],"names":["ApplicationRegistryABI","ProtocolParamsABI"],"mappings":"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"}