@keep-network/tbtc-v2 1.8.0 → 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/artifacts/Bridge.json +1998 -1972
  2. package/artifacts/Bridge_v2_Implementation.json +2817 -0
  3. package/artifacts/Deposit.json +7 -7
  4. package/artifacts/Redemption.json +95 -171
  5. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  6. package/build/contracts/Timelock.sol/Timelock.dbg.json +1 -1
  7. package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
  8. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
  9. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
  10. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
  11. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
  12. package/build/contracts/bridge/Bridge.sol/Bridge.json +74 -48
  13. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.dbg.json +1 -1
  14. package/build/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.json +2 -2
  15. package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
  16. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
  17. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +2 -2
  18. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
  19. package/build/contracts/bridge/Deposit.sol/Deposit.json +2 -2
  20. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
  21. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +2 -2
  22. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
  23. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
  24. package/build/contracts/bridge/Fraud.sol/Fraud.json +2 -2
  25. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
  26. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
  27. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
  28. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +2 -2
  29. package/build/contracts/bridge/Redemption.sol/IRedemptionWatchtower.dbg.json +1 -1
  30. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
  31. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +2 -2
  32. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
  33. package/build/contracts/bridge/Redemption.sol/Redemption.json +2 -2
  34. package/build/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.dbg.json +1 -1
  35. package/build/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.json +2 -2
  36. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  37. package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
  38. package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
  39. package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.dbg.json +1 -1
  40. package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.json +2 -2
  41. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
  42. package/build/contracts/bridge/Wallets.sol/Wallets.json +2 -2
  43. package/build/contracts/cross-chain/AbstractL1BTCDepositor.sol/AbstractL1BTCDepositor.dbg.json +1 -1
  44. package/build/contracts/cross-chain/L2TBTC.sol/L2TBTC.dbg.json +1 -1
  45. package/build/contracts/cross-chain/starknet/StarkNetBitcoinDepositor.sol/StarkNetBitcoinDepositor.dbg.json +1 -1
  46. package/build/contracts/cross-chain/starknet/interfaces/IStarkGateBridge.sol/IStarkGateBridge.dbg.json +1 -1
  47. package/build/contracts/cross-chain/utils/Crosschain.sol/CrosschainUtils.dbg.json +1 -1
  48. package/build/contracts/cross-chain/wormhole/BTCDepositorWormhole.sol/BTCDepositorWormhole.dbg.json +1 -1
  49. package/build/contracts/cross-chain/wormhole/L1BTCDepositorWormhole.sol/L1BTCDepositorWormhole.dbg.json +1 -1
  50. package/build/contracts/cross-chain/wormhole/L2BTCDepositorWormhole.sol/L2BTCDepositorWormhole.dbg.json +1 -1
  51. package/build/contracts/cross-chain/wormhole/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
  52. package/build/contracts/cross-chain/wormhole/Wormhole.sol/IWormhole.dbg.json +1 -1
  53. package/build/contracts/cross-chain/wormhole/Wormhole.sol/IWormholeGateway.dbg.json +1 -1
  54. package/build/contracts/cross-chain/wormhole/Wormhole.sol/IWormholeReceiver.dbg.json +1 -1
  55. package/build/contracts/cross-chain/wormhole/Wormhole.sol/IWormholeRelayer.dbg.json +1 -1
  56. package/build/contracts/cross-chain/wormhole/Wormhole.sol/IWormholeTokenBridge.dbg.json +1 -1
  57. package/build/contracts/cross-chain/wormhole/Wormhole.sol/WormholeTypes.dbg.json +1 -1
  58. package/build/contracts/cross-chain/wormhole/Wormhole.sol/WormholeUtils.dbg.json +1 -1
  59. package/build/contracts/integrator/AbstractBTCDepositor.sol/AbstractBTCDepositor.dbg.json +1 -1
  60. package/build/contracts/integrator/IBridge.sol/IBridge.dbg.json +1 -1
  61. package/build/contracts/integrator/IBridge.sol/IBridgeTypes.dbg.json +1 -1
  62. package/build/contracts/integrator/ITBTCVault.sol/ITBTCVault.dbg.json +1 -1
  63. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
  64. package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +2 -2
  65. package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
  66. package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
  67. package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
  68. package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
  69. package/build/contracts/test/BankStub.sol/BankStub.dbg.json +1 -1
  70. package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +1 -1
  71. package/build/contracts/test/BridgeStub.sol/BridgeStub.json +74 -48
  72. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +1 -1
  73. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +1 -1
  74. package/build/contracts/test/MockBridgeForStarkNet.sol/MockBridgeForStarkNet.dbg.json +1 -1
  75. package/build/contracts/test/MockStarkGateBridge.sol/MockStarkGateBridge.dbg.json +1 -1
  76. package/build/contracts/test/MockTBTCBridge.sol/MockTBTCBridge.dbg.json +1 -1
  77. package/build/contracts/test/MockTBTCBridgeWithSweep.sol/MockTBTCBridgeWithSweep.dbg.json +1 -1
  78. package/build/contracts/test/MockTBTCToken.sol/MockTBTCToken.dbg.json +1 -1
  79. package/build/contracts/test/MockTBTCVault.sol/MockTBTCVault.dbg.json +1 -1
  80. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +1 -1
  81. package/build/contracts/test/ReentrancyAttacker.sol/ReentrancyAttacker.dbg.json +1 -1
  82. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +1 -1
  83. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +1 -1
  84. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +2 -2
  85. package/build/contracts/test/TestBTCDepositor.sol/MockBridge.dbg.json +1 -1
  86. package/build/contracts/test/TestBTCDepositor.sol/MockTBTCVault.dbg.json +1 -1
  87. package/build/contracts/test/TestBTCDepositor.sol/TestBTCDepositor.dbg.json +1 -1
  88. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +1 -1
  89. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +2 -2
  90. package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +1 -1
  91. package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +1 -1
  92. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +1 -1
  93. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +1 -1
  94. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  95. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
  96. package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
  97. package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
  98. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
  99. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +2 -2
  100. package/contracts/bridge/Bridge.sol +34 -0
  101. package/contracts/bridge/Deposit.sol +7 -5
  102. package/deploy/80_upgrade_bridge_v2.ts +107 -54
  103. package/deploy/81_upgrade_bridge_v2_vault_fix.ts +160 -0
  104. package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +4891 -4170
  105. package/export/artifacts/contracts/bridge/BridgeGovernance.sol/BridgeGovernance.json +207 -207
  106. package/export/artifacts/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.json +104 -104
  107. package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +67 -67
  108. package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +24 -24
  109. package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +26 -26
  110. package/export/artifacts/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.json +72 -72
  111. package/export/artifacts/contracts/cross-chain/L2TBTC.sol/L2TBTC.json +40 -40
  112. package/export/artifacts/contracts/cross-chain/starknet/StarkNetBitcoinDepositor.sol/StarkNetBitcoinDepositor.json +3360 -3360
  113. package/export/artifacts/contracts/cross-chain/wormhole/BTCDepositorWormhole.sol/BTCDepositorWormhole.json +117 -117
  114. package/export/artifacts/contracts/cross-chain/wormhole/L1BTCDepositorWormhole.sol/L1BTCDepositorWormhole.json +140 -140
  115. package/export/artifacts/contracts/cross-chain/wormhole/L2BTCDepositorWormhole.sol/L2BTCDepositorWormhole.json +37 -37
  116. package/export/artifacts/contracts/cross-chain/wormhole/L2WormholeGateway.sol/L2WormholeGateway.json +51 -51
  117. package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +103 -103
  118. package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +57 -57
  119. package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +31 -31
  120. package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +2 -2
  121. package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +5130 -4414
  122. package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +4 -4
  123. package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +59 -59
  124. package/export/artifacts/contracts/test/MockBridgeForStarkNet.sol/MockBridgeForStarkNet.json +730 -730
  125. package/export/artifacts/contracts/test/MockStarkGateBridge.sol/MockStarkGateBridge.json +956 -956
  126. package/export/artifacts/contracts/test/MockTBTCBridge.sol/MockTBTCBridge.json +781 -781
  127. package/export/artifacts/contracts/test/MockTBTCBridgeWithSweep.sol/MockTBTCBridgeWithSweep.json +458 -458
  128. package/export/artifacts/contracts/test/MockTBTCToken.sol/MockTBTCToken.json +1273 -1273
  129. package/export/artifacts/contracts/test/MockTBTCVault.sol/MockTBTCVault.json +305 -305
  130. package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
  131. package/export/artifacts/contracts/test/ReentrancyAttacker.sol/ReentrancyAttacker.json +204 -204
  132. package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +59 -59
  133. package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +19 -19
  134. package/export/artifacts/contracts/test/TestBTCDepositor.sol/MockBridge.json +34 -34
  135. package/export/artifacts/contracts/test/TestBTCDepositor.sol/MockTBTCVault.json +20 -20
  136. package/export/artifacts/contracts/test/TestBTCDepositor.sol/TestBTCDepositor.json +52 -52
  137. package/export/artifacts/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +124 -124
  138. package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
  139. package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
  140. package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +4 -4
  141. package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
  142. package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
  143. package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
  144. package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +144 -144
  145. package/export/deploy/80_upgrade_bridge_v2.js +127 -90
  146. package/export/deploy/81_upgrade_bridge_v2_vault_fix.js +211 -0
  147. package/export/typechain/AbstractBTCRedeemer.js +2 -0
  148. package/export/typechain/IBank.js +2 -0
  149. package/export/typechain/IL2WormholeGateway.js +2 -0
  150. package/export/typechain/INttManager.js +2 -0
  151. package/export/typechain/INttManagerWithExecutor.js +2 -0
  152. package/export/typechain/L1BTCDepositorNtt.js +2 -0
  153. package/export/typechain/L1BTCDepositorNttWithExecutor.js +2 -0
  154. package/export/typechain/L1BTCRedeemerWormhole.js +2 -0
  155. package/export/typechain/L2BTCRedeemerWormhole.js +2 -0
  156. package/export/typechain/MockBank.js +2 -0
  157. package/export/typechain/MockBridgeWithRebateStaking.js +2 -0
  158. package/export/typechain/MockL1BTCRedeemerWormhole.js +2 -0
  159. package/export/typechain/MockNttManager.js +2 -0
  160. package/export/typechain/MockNttManagerWithExecutor.js +2 -0
  161. package/export/typechain/NativeBTCDepositor.js +2 -0
  162. package/export/typechain/RebateStaking.js +2 -0
  163. package/export/typechain/TestBTCRedeemer.js +2 -0
  164. package/export/typechain/TestBTCUtilsHelper.js +2 -0
  165. package/export/typechain/TransceiverStructs.js +2 -0
  166. package/export/typechain/factories/AbstractBTCRedeemer__factory.js +204 -0
  167. package/export/typechain/factories/BridgeGovernance__factory.js +1 -1
  168. package/export/typechain/factories/BridgeState__factory.js +1 -1
  169. package/export/typechain/factories/BridgeStub__factory.js +27 -1
  170. package/export/typechain/factories/Bridge__factory.js +27 -1
  171. package/export/typechain/factories/DepositSweep__factory.js +1 -1
  172. package/export/typechain/factories/Deposit__factory.js +1 -1
  173. package/export/typechain/factories/Fraud__factory.js +1 -1
  174. package/export/typechain/factories/IBank__factory.js +138 -0
  175. package/export/typechain/factories/IL2WormholeGateway__factory.js +61 -0
  176. package/export/typechain/factories/INttManagerWithExecutor__factory.js +183 -0
  177. package/export/typechain/factories/INttManager__factory.js +51 -0
  178. package/export/typechain/factories/L1BTCDepositorNttWithExecutor__factory.js +1454 -0
  179. package/export/typechain/factories/L1BTCDepositorNtt__factory.js +920 -0
  180. package/export/typechain/factories/L1BTCRedeemerWormhole__factory.js +622 -0
  181. package/export/typechain/factories/L2BTCRedeemerWormhole__factory.js +348 -0
  182. package/export/typechain/factories/MaintainerProxy__factory.js +1 -1
  183. package/export/typechain/factories/MockBank__factory.js +248 -0
  184. package/export/typechain/factories/MockBridgeWithRebateStaking__factory.js +129 -0
  185. package/export/typechain/factories/MockL1BTCRedeemerWormhole__factory.js +638 -0
  186. package/export/typechain/factories/MockNttManagerWithExecutor__factory.js +423 -0
  187. package/export/typechain/factories/MockNttManager__factory.js +211 -0
  188. package/export/typechain/factories/MovingFunds__factory.js +1 -1
  189. package/export/typechain/factories/NativeBTCDepositor__factory.js +635 -0
  190. package/export/typechain/factories/RebateStaking__factory.js +720 -0
  191. package/export/typechain/factories/RedemptionWatchtower__factory.js +1 -1
  192. package/export/typechain/factories/Redemption__factory.js +1 -1
  193. package/export/typechain/factories/SystemTestRelay__factory.js +1 -1
  194. package/export/typechain/factories/TBTCVault__factory.js +1 -1
  195. package/export/typechain/factories/TestBTCRedeemer__factory.js +425 -0
  196. package/export/typechain/factories/TestBTCUtilsHelper__factory.js +109 -0
  197. package/export/typechain/factories/TestBitcoinTx__factory.js +1 -1
  198. package/export/typechain/factories/TransceiverStructs__factory.js +853 -0
  199. package/export/typechain/factories/WalletProposalValidator__factory.js +1 -1
  200. package/export/typechain/factories/Wallets__factory.js +1 -1
  201. package/export/typechain/index.js +40 -2
  202. package/export.json +40910 -0
  203. package/package.json +1 -1
@@ -2,2764 +2,2790 @@
2
2
  "address": "0x5e4861a80B55f035D899f66772117F00FA0E8e7B",
3
3
  "abi": [
4
4
  {
5
+ "type": "constructor",
5
6
  "inputs": [],
6
- "stateMutability": "nonpayable",
7
- "type": "constructor"
7
+ "stateMutability": "nonpayable"
8
8
  },
9
9
  {
10
- "anonymous": false,
10
+ "type": "function",
11
+ "name": "__ecdsaWalletCreatedCallback",
11
12
  "inputs": [
12
13
  {
13
- "indexed": false,
14
- "internalType": "uint64",
15
- "name": "depositDustThreshold",
16
- "type": "uint64"
17
- },
18
- {
19
- "indexed": false,
20
- "internalType": "uint64",
21
- "name": "depositTreasuryFeeDivisor",
22
- "type": "uint64"
14
+ "name": "ecdsaWalletID",
15
+ "type": "bytes32",
16
+ "internalType": "bytes32"
23
17
  },
24
18
  {
25
- "indexed": false,
26
- "internalType": "uint64",
27
- "name": "depositTxMaxFee",
28
- "type": "uint64"
19
+ "name": "publicKeyX",
20
+ "type": "bytes32",
21
+ "internalType": "bytes32"
29
22
  },
30
23
  {
31
- "indexed": false,
32
- "internalType": "uint32",
33
- "name": "depositRevealAheadPeriod",
34
- "type": "uint32"
24
+ "name": "publicKeyY",
25
+ "type": "bytes32",
26
+ "internalType": "bytes32"
35
27
  }
36
28
  ],
37
- "name": "DepositParametersUpdated",
38
- "type": "event"
29
+ "outputs": [],
30
+ "stateMutability": "nonpayable"
39
31
  },
40
32
  {
41
- "anonymous": false,
33
+ "type": "function",
34
+ "name": "__ecdsaWalletHeartbeatFailedCallback",
42
35
  "inputs": [
43
36
  {
44
- "indexed": false,
45
- "internalType": "bytes32",
46
- "name": "fundingTxHash",
47
- "type": "bytes32"
48
- },
49
- {
50
- "indexed": false,
51
- "internalType": "uint32",
52
- "name": "fundingOutputIndex",
53
- "type": "uint32"
37
+ "name": "",
38
+ "type": "bytes32",
39
+ "internalType": "bytes32"
54
40
  },
55
41
  {
56
- "indexed": true,
57
- "internalType": "address",
58
- "name": "depositor",
59
- "type": "address"
42
+ "name": "publicKeyX",
43
+ "type": "bytes32",
44
+ "internalType": "bytes32"
60
45
  },
61
46
  {
62
- "indexed": false,
63
- "internalType": "uint64",
64
- "name": "amount",
65
- "type": "uint64"
66
- },
47
+ "name": "publicKeyY",
48
+ "type": "bytes32",
49
+ "internalType": "bytes32"
50
+ }
51
+ ],
52
+ "outputs": [],
53
+ "stateMutability": "nonpayable"
54
+ },
55
+ {
56
+ "type": "function",
57
+ "name": "activeWalletPubKeyHash",
58
+ "inputs": [],
59
+ "outputs": [
67
60
  {
68
- "indexed": false,
69
- "internalType": "bytes8",
70
- "name": "blindingFactor",
71
- "type": "bytes8"
72
- },
61
+ "name": "",
62
+ "type": "bytes20",
63
+ "internalType": "bytes20"
64
+ }
65
+ ],
66
+ "stateMutability": "view"
67
+ },
68
+ {
69
+ "type": "function",
70
+ "name": "contractReferences",
71
+ "inputs": [],
72
+ "outputs": [
73
73
  {
74
- "indexed": true,
75
- "internalType": "bytes20",
76
- "name": "walletPubKeyHash",
77
- "type": "bytes20"
74
+ "name": "bank",
75
+ "type": "address",
76
+ "internalType": "contract Bank"
78
77
  },
79
78
  {
80
- "indexed": false,
81
- "internalType": "bytes20",
82
- "name": "refundPubKeyHash",
83
- "type": "bytes20"
79
+ "name": "relay",
80
+ "type": "address",
81
+ "internalType": "contract IRelay"
84
82
  },
85
83
  {
86
- "indexed": false,
87
- "internalType": "bytes4",
88
- "name": "refundLocktime",
89
- "type": "bytes4"
84
+ "name": "ecdsaWalletRegistry",
85
+ "type": "address",
86
+ "internalType": "contract IWalletRegistry"
90
87
  },
91
88
  {
92
- "indexed": false,
93
- "internalType": "address",
94
- "name": "vault",
95
- "type": "address"
89
+ "name": "reimbursementPool",
90
+ "type": "address",
91
+ "internalType": "contract ReimbursementPool"
96
92
  }
97
93
  ],
98
- "name": "DepositRevealed",
99
- "type": "event"
94
+ "stateMutability": "view"
100
95
  },
101
96
  {
102
- "anonymous": false,
97
+ "type": "function",
98
+ "name": "defeatFraudChallenge",
103
99
  "inputs": [
104
100
  {
105
- "indexed": false,
106
- "internalType": "bytes20",
107
- "name": "walletPubKeyHash",
108
- "type": "bytes20"
101
+ "name": "walletPublicKey",
102
+ "type": "bytes",
103
+ "internalType": "bytes"
109
104
  },
110
105
  {
111
- "indexed": false,
112
- "internalType": "bytes32",
113
- "name": "sweepTxHash",
114
- "type": "bytes32"
106
+ "name": "preimage",
107
+ "type": "bytes",
108
+ "internalType": "bytes"
109
+ },
110
+ {
111
+ "name": "witness",
112
+ "type": "bool",
113
+ "internalType": "bool"
115
114
  }
116
115
  ],
117
- "name": "DepositsSwept",
118
- "type": "event"
116
+ "outputs": [],
117
+ "stateMutability": "nonpayable"
119
118
  },
120
119
  {
121
- "anonymous": false,
120
+ "type": "function",
121
+ "name": "defeatFraudChallengeWithHeartbeat",
122
122
  "inputs": [
123
123
  {
124
- "indexed": true,
125
- "internalType": "bytes20",
126
- "name": "walletPubKeyHash",
127
- "type": "bytes20"
124
+ "name": "walletPublicKey",
125
+ "type": "bytes",
126
+ "internalType": "bytes"
128
127
  },
129
128
  {
130
- "indexed": false,
131
- "internalType": "bytes32",
132
- "name": "sighash",
133
- "type": "bytes32"
129
+ "name": "heartbeatMessage",
130
+ "type": "bytes",
131
+ "internalType": "bytes"
134
132
  }
135
133
  ],
136
- "name": "FraudChallengeDefeatTimedOut",
137
- "type": "event"
134
+ "outputs": [],
135
+ "stateMutability": "nonpayable"
138
136
  },
139
137
  {
140
- "anonymous": false,
141
- "inputs": [
138
+ "type": "function",
139
+ "name": "depositParameters",
140
+ "inputs": [],
141
+ "outputs": [
142
142
  {
143
- "indexed": true,
144
- "internalType": "bytes20",
145
- "name": "walletPubKeyHash",
146
- "type": "bytes20"
143
+ "name": "depositDustThreshold",
144
+ "type": "uint64",
145
+ "internalType": "uint64"
147
146
  },
148
147
  {
149
- "indexed": false,
150
- "internalType": "bytes32",
151
- "name": "sighash",
152
- "type": "bytes32"
148
+ "name": "depositTreasuryFeeDivisor",
149
+ "type": "uint64",
150
+ "internalType": "uint64"
151
+ },
152
+ {
153
+ "name": "depositTxMaxFee",
154
+ "type": "uint64",
155
+ "internalType": "uint64"
156
+ },
157
+ {
158
+ "name": "depositRevealAheadPeriod",
159
+ "type": "uint32",
160
+ "internalType": "uint32"
153
161
  }
154
162
  ],
155
- "name": "FraudChallengeDefeated",
156
- "type": "event"
163
+ "stateMutability": "view"
157
164
  },
158
165
  {
159
- "anonymous": false,
166
+ "type": "function",
167
+ "name": "deposits",
160
168
  "inputs": [
161
169
  {
162
- "indexed": true,
163
- "internalType": "bytes20",
164
- "name": "walletPubKeyHash",
165
- "type": "bytes20"
166
- },
167
- {
168
- "indexed": false,
169
- "internalType": "bytes32",
170
- "name": "sighash",
171
- "type": "bytes32"
172
- },
170
+ "name": "depositKey",
171
+ "type": "uint256",
172
+ "internalType": "uint256"
173
+ }
174
+ ],
175
+ "outputs": [
173
176
  {
174
- "indexed": false,
175
- "internalType": "uint8",
176
- "name": "v",
177
- "type": "uint8"
178
- },
177
+ "name": "",
178
+ "type": "tuple",
179
+ "internalType": "struct Deposit.DepositRequest",
180
+ "components": [
181
+ {
182
+ "name": "depositor",
183
+ "type": "address",
184
+ "internalType": "address"
185
+ },
186
+ {
187
+ "name": "amount",
188
+ "type": "uint64",
189
+ "internalType": "uint64"
190
+ },
191
+ {
192
+ "name": "revealedAt",
193
+ "type": "uint32",
194
+ "internalType": "uint32"
195
+ },
196
+ {
197
+ "name": "vault",
198
+ "type": "address",
199
+ "internalType": "address"
200
+ },
201
+ {
202
+ "name": "treasuryFee",
203
+ "type": "uint64",
204
+ "internalType": "uint64"
205
+ },
206
+ {
207
+ "name": "sweptAt",
208
+ "type": "uint32",
209
+ "internalType": "uint32"
210
+ },
211
+ {
212
+ "name": "extraData",
213
+ "type": "bytes32",
214
+ "internalType": "bytes32"
215
+ }
216
+ ]
217
+ }
218
+ ],
219
+ "stateMutability": "view"
220
+ },
221
+ {
222
+ "type": "function",
223
+ "name": "fraudChallenges",
224
+ "inputs": [
179
225
  {
180
- "indexed": false,
181
- "internalType": "bytes32",
182
- "name": "r",
183
- "type": "bytes32"
184
- },
226
+ "name": "challengeKey",
227
+ "type": "uint256",
228
+ "internalType": "uint256"
229
+ }
230
+ ],
231
+ "outputs": [
185
232
  {
186
- "indexed": false,
187
- "internalType": "bytes32",
188
- "name": "s",
189
- "type": "bytes32"
233
+ "name": "",
234
+ "type": "tuple",
235
+ "internalType": "struct Fraud.FraudChallenge",
236
+ "components": [
237
+ {
238
+ "name": "challenger",
239
+ "type": "address",
240
+ "internalType": "address"
241
+ },
242
+ {
243
+ "name": "depositAmount",
244
+ "type": "uint256",
245
+ "internalType": "uint256"
246
+ },
247
+ {
248
+ "name": "reportedAt",
249
+ "type": "uint32",
250
+ "internalType": "uint32"
251
+ },
252
+ {
253
+ "name": "resolved",
254
+ "type": "bool",
255
+ "internalType": "bool"
256
+ }
257
+ ]
190
258
  }
191
259
  ],
192
- "name": "FraudChallengeSubmitted",
193
- "type": "event"
260
+ "stateMutability": "view"
194
261
  },
195
262
  {
196
- "anonymous": false,
197
- "inputs": [
263
+ "type": "function",
264
+ "name": "fraudParameters",
265
+ "inputs": [],
266
+ "outputs": [
198
267
  {
199
- "indexed": false,
200
- "internalType": "uint96",
201
268
  "name": "fraudChallengeDepositAmount",
202
- "type": "uint96"
269
+ "type": "uint96",
270
+ "internalType": "uint96"
203
271
  },
204
272
  {
205
- "indexed": false,
206
- "internalType": "uint32",
207
273
  "name": "fraudChallengeDefeatTimeout",
208
- "type": "uint32"
274
+ "type": "uint32",
275
+ "internalType": "uint32"
209
276
  },
210
277
  {
211
- "indexed": false,
212
- "internalType": "uint96",
213
278
  "name": "fraudSlashingAmount",
214
- "type": "uint96"
279
+ "type": "uint96",
280
+ "internalType": "uint96"
215
281
  },
216
282
  {
217
- "indexed": false,
218
- "internalType": "uint32",
219
283
  "name": "fraudNotifierRewardMultiplier",
220
- "type": "uint32"
284
+ "type": "uint32",
285
+ "internalType": "uint32"
221
286
  }
222
287
  ],
223
- "name": "FraudParametersUpdated",
224
- "type": "event"
288
+ "stateMutability": "view"
225
289
  },
226
290
  {
227
- "anonymous": false,
228
- "inputs": [
229
- {
230
- "indexed": false,
231
- "internalType": "address",
232
- "name": "oldGovernance",
233
- "type": "address"
234
- },
291
+ "type": "function",
292
+ "name": "getRedemptionWatchtower",
293
+ "inputs": [],
294
+ "outputs": [
235
295
  {
236
- "indexed": false,
237
- "internalType": "address",
238
- "name": "newGovernance",
239
- "type": "address"
296
+ "name": "",
297
+ "type": "address",
298
+ "internalType": "address"
240
299
  }
241
300
  ],
242
- "name": "GovernanceTransferred",
243
- "type": "event"
301
+ "stateMutability": "view"
244
302
  },
245
303
  {
246
- "anonymous": false,
247
- "inputs": [
304
+ "type": "function",
305
+ "name": "governance",
306
+ "inputs": [],
307
+ "outputs": [
248
308
  {
249
- "indexed": false,
250
- "internalType": "uint8",
251
- "name": "version",
252
- "type": "uint8"
309
+ "name": "",
310
+ "type": "address",
311
+ "internalType": "address"
253
312
  }
254
313
  ],
255
- "name": "Initialized",
256
- "type": "event"
314
+ "stateMutability": "view"
257
315
  },
258
316
  {
259
- "anonymous": false,
317
+ "type": "function",
318
+ "name": "initialize",
260
319
  "inputs": [
261
320
  {
262
- "indexed": true,
263
- "internalType": "bytes20",
264
- "name": "walletPubKeyHash",
265
- "type": "bytes20"
321
+ "name": "_bank",
322
+ "type": "address",
323
+ "internalType": "address"
266
324
  },
267
325
  {
268
- "indexed": false,
269
- "internalType": "bytes32",
270
- "name": "movingFundsTxHash",
271
- "type": "bytes32"
326
+ "name": "_relay",
327
+ "type": "address",
328
+ "internalType": "address"
272
329
  },
273
330
  {
274
- "indexed": false,
275
- "internalType": "uint32",
276
- "name": "movingFundsTxOutputIndex",
277
- "type": "uint32"
331
+ "name": "_treasury",
332
+ "type": "address",
333
+ "internalType": "address"
334
+ },
335
+ {
336
+ "name": "_ecdsaWalletRegistry",
337
+ "type": "address",
338
+ "internalType": "address"
339
+ },
340
+ {
341
+ "name": "_reimbursementPool",
342
+ "type": "address",
343
+ "internalType": "address payable"
344
+ },
345
+ {
346
+ "name": "_txProofDifficultyFactor",
347
+ "type": "uint96",
348
+ "internalType": "uint96"
278
349
  }
279
350
  ],
280
- "name": "MovedFundsSweepTimedOut",
281
- "type": "event"
351
+ "outputs": [],
352
+ "stateMutability": "nonpayable"
353
+ },
354
+ {
355
+ "type": "function",
356
+ "name": "initializeV2_FixVaultZeroDeposit",
357
+ "inputs": [],
358
+ "outputs": [],
359
+ "stateMutability": "nonpayable"
282
360
  },
283
361
  {
284
- "anonymous": false,
362
+ "type": "function",
363
+ "name": "isVaultTrusted",
285
364
  "inputs": [
286
365
  {
287
- "indexed": true,
288
- "internalType": "bytes20",
289
- "name": "walletPubKeyHash",
290
- "type": "bytes20"
291
- },
366
+ "name": "vault",
367
+ "type": "address",
368
+ "internalType": "address"
369
+ }
370
+ ],
371
+ "outputs": [
292
372
  {
293
- "indexed": false,
294
- "internalType": "bytes32",
295
- "name": "sweepTxHash",
296
- "type": "bytes32"
373
+ "name": "",
374
+ "type": "bool",
375
+ "internalType": "bool"
297
376
  }
298
377
  ],
299
- "name": "MovedFundsSwept",
300
- "type": "event"
378
+ "stateMutability": "view"
301
379
  },
302
380
  {
303
- "anonymous": false,
304
- "inputs": [
381
+ "type": "function",
382
+ "name": "liveWalletsCount",
383
+ "inputs": [],
384
+ "outputs": [
305
385
  {
306
- "indexed": true,
307
- "internalType": "bytes20",
308
- "name": "walletPubKeyHash",
309
- "type": "bytes20"
386
+ "name": "",
387
+ "type": "uint32",
388
+ "internalType": "uint32"
310
389
  }
311
390
  ],
312
- "name": "MovingFundsBelowDustReported",
313
- "type": "event"
391
+ "stateMutability": "view"
314
392
  },
315
393
  {
316
- "anonymous": false,
394
+ "type": "function",
395
+ "name": "movedFundsSweepRequests",
317
396
  "inputs": [
318
397
  {
319
- "indexed": true,
320
- "internalType": "bytes20",
321
- "name": "walletPubKeyHash",
322
- "type": "bytes20"
323
- },
398
+ "name": "requestKey",
399
+ "type": "uint256",
400
+ "internalType": "uint256"
401
+ }
402
+ ],
403
+ "outputs": [
324
404
  {
325
- "indexed": false,
326
- "internalType": "bytes20[]",
327
- "name": "targetWallets",
328
- "type": "bytes20[]"
329
- },
330
- {
331
- "indexed": false,
332
- "internalType": "address",
333
- "name": "submitter",
334
- "type": "address"
335
- }
336
- ],
337
- "name": "MovingFundsCommitmentSubmitted",
338
- "type": "event"
339
- },
340
- {
341
- "anonymous": false,
342
- "inputs": [
343
- {
344
- "indexed": true,
345
- "internalType": "bytes20",
346
- "name": "walletPubKeyHash",
347
- "type": "bytes20"
348
- },
349
- {
350
- "indexed": false,
351
- "internalType": "bytes32",
352
- "name": "movingFundsTxHash",
353
- "type": "bytes32"
405
+ "name": "",
406
+ "type": "tuple",
407
+ "internalType": "struct MovingFunds.MovedFundsSweepRequest",
408
+ "components": [
409
+ {
410
+ "name": "walletPubKeyHash",
411
+ "type": "bytes20",
412
+ "internalType": "bytes20"
413
+ },
414
+ {
415
+ "name": "value",
416
+ "type": "uint64",
417
+ "internalType": "uint64"
418
+ },
419
+ {
420
+ "name": "createdAt",
421
+ "type": "uint32",
422
+ "internalType": "uint32"
423
+ },
424
+ {
425
+ "name": "state",
426
+ "type": "uint8",
427
+ "internalType": "enum MovingFunds.MovedFundsSweepRequestState"
428
+ }
429
+ ]
354
430
  }
355
431
  ],
356
- "name": "MovingFundsCompleted",
357
- "type": "event"
432
+ "stateMutability": "view"
358
433
  },
359
434
  {
360
- "anonymous": false,
361
- "inputs": [
435
+ "type": "function",
436
+ "name": "movingFundsParameters",
437
+ "inputs": [],
438
+ "outputs": [
362
439
  {
363
- "indexed": false,
364
- "internalType": "uint64",
365
440
  "name": "movingFundsTxMaxTotalFee",
366
- "type": "uint64"
441
+ "type": "uint64",
442
+ "internalType": "uint64"
367
443
  },
368
444
  {
369
- "indexed": false,
370
- "internalType": "uint64",
371
445
  "name": "movingFundsDustThreshold",
372
- "type": "uint64"
446
+ "type": "uint64",
447
+ "internalType": "uint64"
373
448
  },
374
449
  {
375
- "indexed": false,
376
- "internalType": "uint32",
377
450
  "name": "movingFundsTimeoutResetDelay",
378
- "type": "uint32"
451
+ "type": "uint32",
452
+ "internalType": "uint32"
379
453
  },
380
454
  {
381
- "indexed": false,
382
- "internalType": "uint32",
383
455
  "name": "movingFundsTimeout",
384
- "type": "uint32"
456
+ "type": "uint32",
457
+ "internalType": "uint32"
385
458
  },
386
459
  {
387
- "indexed": false,
388
- "internalType": "uint96",
389
460
  "name": "movingFundsTimeoutSlashingAmount",
390
- "type": "uint96"
461
+ "type": "uint96",
462
+ "internalType": "uint96"
391
463
  },
392
464
  {
393
- "indexed": false,
394
- "internalType": "uint32",
395
465
  "name": "movingFundsTimeoutNotifierRewardMultiplier",
396
- "type": "uint32"
466
+ "type": "uint32",
467
+ "internalType": "uint32"
397
468
  },
398
469
  {
399
- "indexed": false,
400
- "internalType": "uint16",
401
470
  "name": "movingFundsCommitmentGasOffset",
402
- "type": "uint16"
471
+ "type": "uint16",
472
+ "internalType": "uint16"
403
473
  },
404
474
  {
405
- "indexed": false,
406
- "internalType": "uint64",
407
475
  "name": "movedFundsSweepTxMaxTotalFee",
408
- "type": "uint64"
476
+ "type": "uint64",
477
+ "internalType": "uint64"
409
478
  },
410
479
  {
411
- "indexed": false,
412
- "internalType": "uint32",
413
480
  "name": "movedFundsSweepTimeout",
414
- "type": "uint32"
481
+ "type": "uint32",
482
+ "internalType": "uint32"
415
483
  },
416
484
  {
417
- "indexed": false,
418
- "internalType": "uint96",
419
485
  "name": "movedFundsSweepTimeoutSlashingAmount",
420
- "type": "uint96"
486
+ "type": "uint96",
487
+ "internalType": "uint96"
421
488
  },
422
489
  {
423
- "indexed": false,
424
- "internalType": "uint32",
425
490
  "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
426
- "type": "uint32"
491
+ "type": "uint32",
492
+ "internalType": "uint32"
427
493
  }
428
494
  ],
429
- "name": "MovingFundsParametersUpdated",
430
- "type": "event"
495
+ "stateMutability": "view"
431
496
  },
432
497
  {
433
- "anonymous": false,
498
+ "type": "function",
499
+ "name": "notifyFraudChallengeDefeatTimeout",
434
500
  "inputs": [
435
501
  {
436
- "indexed": true,
437
- "internalType": "bytes20",
438
- "name": "walletPubKeyHash",
439
- "type": "bytes20"
502
+ "name": "walletPublicKey",
503
+ "type": "bytes",
504
+ "internalType": "bytes"
505
+ },
506
+ {
507
+ "name": "walletMembersIDs",
508
+ "type": "uint32[]",
509
+ "internalType": "uint32[]"
510
+ },
511
+ {
512
+ "name": "preimageSha256",
513
+ "type": "bytes",
514
+ "internalType": "bytes"
440
515
  }
441
516
  ],
442
- "name": "MovingFundsTimedOut",
443
- "type": "event"
517
+ "outputs": [],
518
+ "stateMutability": "nonpayable"
444
519
  },
445
520
  {
446
- "anonymous": false,
521
+ "type": "function",
522
+ "name": "notifyMovedFundsSweepTimeout",
447
523
  "inputs": [
448
524
  {
449
- "indexed": true,
450
- "internalType": "bytes20",
451
- "name": "walletPubKeyHash",
452
- "type": "bytes20"
525
+ "name": "movingFundsTxHash",
526
+ "type": "bytes32",
527
+ "internalType": "bytes32"
528
+ },
529
+ {
530
+ "name": "movingFundsTxOutputIndex",
531
+ "type": "uint32",
532
+ "internalType": "uint32"
533
+ },
534
+ {
535
+ "name": "walletMembersIDs",
536
+ "type": "uint32[]",
537
+ "internalType": "uint32[]"
453
538
  }
454
539
  ],
455
- "name": "MovingFundsTimeoutReset",
456
- "type": "event"
540
+ "outputs": [],
541
+ "stateMutability": "nonpayable"
457
542
  },
458
543
  {
459
- "anonymous": false,
544
+ "type": "function",
545
+ "name": "notifyMovingFundsBelowDust",
460
546
  "inputs": [
461
547
  {
462
- "indexed": true,
463
- "internalType": "bytes32",
464
- "name": "ecdsaWalletID",
465
- "type": "bytes32"
548
+ "name": "walletPubKeyHash",
549
+ "type": "bytes20",
550
+ "internalType": "bytes20"
466
551
  },
467
552
  {
468
- "indexed": true,
469
- "internalType": "bytes20",
470
- "name": "walletPubKeyHash",
471
- "type": "bytes20"
553
+ "name": "mainUtxo",
554
+ "type": "tuple",
555
+ "internalType": "struct BitcoinTx.UTXO",
556
+ "components": [
557
+ {
558
+ "name": "txHash",
559
+ "type": "bytes32",
560
+ "internalType": "bytes32"
561
+ },
562
+ {
563
+ "name": "txOutputIndex",
564
+ "type": "uint32",
565
+ "internalType": "uint32"
566
+ },
567
+ {
568
+ "name": "txOutputValue",
569
+ "type": "uint64",
570
+ "internalType": "uint64"
571
+ }
572
+ ]
472
573
  }
473
574
  ],
474
- "name": "NewWalletRegistered",
475
- "type": "event"
476
- },
477
- {
478
- "anonymous": false,
479
- "inputs": [],
480
- "name": "NewWalletRequested",
481
- "type": "event"
575
+ "outputs": [],
576
+ "stateMutability": "nonpayable"
482
577
  },
483
578
  {
484
- "anonymous": false,
579
+ "type": "function",
580
+ "name": "notifyMovingFundsTimeout",
485
581
  "inputs": [
486
582
  {
487
- "indexed": false,
488
- "internalType": "uint64",
489
- "name": "redemptionDustThreshold",
490
- "type": "uint64"
491
- },
492
- {
493
- "indexed": false,
494
- "internalType": "uint64",
495
- "name": "redemptionTreasuryFeeDivisor",
496
- "type": "uint64"
497
- },
498
- {
499
- "indexed": false,
500
- "internalType": "uint64",
501
- "name": "redemptionTxMaxFee",
502
- "type": "uint64"
503
- },
504
- {
505
- "indexed": false,
506
- "internalType": "uint64",
507
- "name": "redemptionTxMaxTotalFee",
508
- "type": "uint64"
509
- },
510
- {
511
- "indexed": false,
512
- "internalType": "uint32",
513
- "name": "redemptionTimeout",
514
- "type": "uint32"
515
- },
516
- {
517
- "indexed": false,
518
- "internalType": "uint96",
519
- "name": "redemptionTimeoutSlashingAmount",
520
- "type": "uint96"
583
+ "name": "walletPubKeyHash",
584
+ "type": "bytes20",
585
+ "internalType": "bytes20"
521
586
  },
522
587
  {
523
- "indexed": false,
524
- "internalType": "uint32",
525
- "name": "redemptionTimeoutNotifierRewardMultiplier",
526
- "type": "uint32"
588
+ "name": "walletMembersIDs",
589
+ "type": "uint32[]",
590
+ "internalType": "uint32[]"
527
591
  }
528
592
  ],
529
- "name": "RedemptionParametersUpdated",
530
- "type": "event"
593
+ "outputs": [],
594
+ "stateMutability": "nonpayable"
531
595
  },
532
596
  {
533
- "anonymous": false,
597
+ "type": "function",
598
+ "name": "notifyRedemptionTimeout",
534
599
  "inputs": [
535
600
  {
536
- "indexed": true,
537
- "internalType": "bytes20",
538
601
  "name": "walletPubKeyHash",
539
- "type": "bytes20"
540
- },
541
- {
542
- "indexed": false,
543
- "internalType": "bytes",
544
- "name": "redeemerOutputScript",
545
- "type": "bytes"
546
- },
547
- {
548
- "indexed": true,
549
- "internalType": "address",
550
- "name": "redeemer",
551
- "type": "address"
552
- },
553
- {
554
- "indexed": false,
555
- "internalType": "uint64",
556
- "name": "requestedAmount",
557
- "type": "uint64"
602
+ "type": "bytes20",
603
+ "internalType": "bytes20"
558
604
  },
559
605
  {
560
- "indexed": false,
561
- "internalType": "uint64",
562
- "name": "treasuryFee",
563
- "type": "uint64"
606
+ "name": "walletMembersIDs",
607
+ "type": "uint32[]",
608
+ "internalType": "uint32[]"
564
609
  },
565
610
  {
566
- "indexed": false,
567
- "internalType": "uint64",
568
- "name": "txMaxFee",
569
- "type": "uint64"
611
+ "name": "redeemerOutputScript",
612
+ "type": "bytes",
613
+ "internalType": "bytes"
570
614
  }
571
615
  ],
572
- "name": "RedemptionRequested",
573
- "type": "event"
616
+ "outputs": [],
617
+ "stateMutability": "nonpayable"
574
618
  },
575
619
  {
576
- "anonymous": false,
620
+ "type": "function",
621
+ "name": "notifyRedemptionVeto",
577
622
  "inputs": [
578
623
  {
579
- "indexed": true,
580
- "internalType": "bytes20",
581
624
  "name": "walletPubKeyHash",
582
- "type": "bytes20"
625
+ "type": "bytes20",
626
+ "internalType": "bytes20"
583
627
  },
584
628
  {
585
- "indexed": false,
586
- "internalType": "bytes",
587
629
  "name": "redeemerOutputScript",
588
- "type": "bytes"
630
+ "type": "bytes",
631
+ "internalType": "bytes"
589
632
  }
590
633
  ],
591
- "name": "RedemptionTimedOut",
592
- "type": "event"
634
+ "outputs": [],
635
+ "stateMutability": "nonpayable"
593
636
  },
594
637
  {
595
- "anonymous": false,
638
+ "type": "function",
639
+ "name": "notifyWalletCloseable",
596
640
  "inputs": [
597
641
  {
598
- "indexed": false,
599
- "internalType": "address",
600
- "name": "redemptionWatchtower",
601
- "type": "address"
642
+ "name": "walletPubKeyHash",
643
+ "type": "bytes20",
644
+ "internalType": "bytes20"
645
+ },
646
+ {
647
+ "name": "walletMainUtxo",
648
+ "type": "tuple",
649
+ "internalType": "struct BitcoinTx.UTXO",
650
+ "components": [
651
+ {
652
+ "name": "txHash",
653
+ "type": "bytes32",
654
+ "internalType": "bytes32"
655
+ },
656
+ {
657
+ "name": "txOutputIndex",
658
+ "type": "uint32",
659
+ "internalType": "uint32"
660
+ },
661
+ {
662
+ "name": "txOutputValue",
663
+ "type": "uint64",
664
+ "internalType": "uint64"
665
+ }
666
+ ]
602
667
  }
603
668
  ],
604
- "name": "RedemptionWatchtowerSet",
605
- "type": "event"
669
+ "outputs": [],
670
+ "stateMutability": "nonpayable"
606
671
  },
607
672
  {
608
- "anonymous": false,
673
+ "type": "function",
674
+ "name": "notifyWalletClosingPeriodElapsed",
609
675
  "inputs": [
610
676
  {
611
- "indexed": true,
612
- "internalType": "bytes20",
613
677
  "name": "walletPubKeyHash",
614
- "type": "bytes20"
615
- },
616
- {
617
- "indexed": false,
618
- "internalType": "bytes32",
619
- "name": "redemptionTxHash",
620
- "type": "bytes32"
678
+ "type": "bytes20",
679
+ "internalType": "bytes20"
621
680
  }
622
681
  ],
623
- "name": "RedemptionsCompleted",
624
- "type": "event"
682
+ "outputs": [],
683
+ "stateMutability": "nonpayable"
625
684
  },
626
685
  {
627
- "anonymous": false,
686
+ "type": "function",
687
+ "name": "pendingRedemptions",
628
688
  "inputs": [
629
689
  {
630
- "indexed": true,
631
- "internalType": "address",
632
- "name": "spvMaintainer",
633
- "type": "address"
634
- },
635
- {
636
- "indexed": false,
637
- "internalType": "bool",
638
- "name": "isTrusted",
639
- "type": "bool"
690
+ "name": "redemptionKey",
691
+ "type": "uint256",
692
+ "internalType": "uint256"
640
693
  }
641
694
  ],
642
- "name": "SpvMaintainerStatusUpdated",
643
- "type": "event"
644
- },
645
- {
646
- "anonymous": false,
647
- "inputs": [
695
+ "outputs": [
648
696
  {
649
- "indexed": false,
650
- "internalType": "address",
651
- "name": "treasury",
652
- "type": "address"
697
+ "name": "",
698
+ "type": "tuple",
699
+ "internalType": "struct Redemption.RedemptionRequest",
700
+ "components": [
701
+ {
702
+ "name": "redeemer",
703
+ "type": "address",
704
+ "internalType": "address"
705
+ },
706
+ {
707
+ "name": "requestedAmount",
708
+ "type": "uint64",
709
+ "internalType": "uint64"
710
+ },
711
+ {
712
+ "name": "treasuryFee",
713
+ "type": "uint64",
714
+ "internalType": "uint64"
715
+ },
716
+ {
717
+ "name": "txMaxFee",
718
+ "type": "uint64",
719
+ "internalType": "uint64"
720
+ },
721
+ {
722
+ "name": "requestedAt",
723
+ "type": "uint32",
724
+ "internalType": "uint32"
725
+ }
726
+ ]
653
727
  }
654
728
  ],
655
- "name": "TreasuryUpdated",
656
- "type": "event"
729
+ "stateMutability": "view"
657
730
  },
658
731
  {
659
- "anonymous": false,
732
+ "type": "function",
733
+ "name": "receiveBalanceApproval",
660
734
  "inputs": [
661
735
  {
662
- "indexed": true,
663
- "internalType": "address",
664
- "name": "vault",
665
- "type": "address"
736
+ "name": "balanceOwner",
737
+ "type": "address",
738
+ "internalType": "address"
666
739
  },
667
740
  {
668
- "indexed": false,
669
- "internalType": "bool",
670
- "name": "isTrusted",
671
- "type": "bool"
741
+ "name": "amount",
742
+ "type": "uint256",
743
+ "internalType": "uint256"
744
+ },
745
+ {
746
+ "name": "redemptionData",
747
+ "type": "bytes",
748
+ "internalType": "bytes"
672
749
  }
673
750
  ],
674
- "name": "VaultStatusUpdated",
675
- "type": "event"
751
+ "outputs": [],
752
+ "stateMutability": "nonpayable"
676
753
  },
677
754
  {
678
- "anonymous": false,
679
- "inputs": [
755
+ "type": "function",
756
+ "name": "redemptionParameters",
757
+ "inputs": [],
758
+ "outputs": [
680
759
  {
681
- "indexed": true,
682
- "internalType": "bytes32",
683
- "name": "ecdsaWalletID",
684
- "type": "bytes32"
760
+ "name": "redemptionDustThreshold",
761
+ "type": "uint64",
762
+ "internalType": "uint64"
685
763
  },
686
764
  {
687
- "indexed": true,
688
- "internalType": "bytes20",
689
- "name": "walletPubKeyHash",
690
- "type": "bytes20"
765
+ "name": "redemptionTreasuryFeeDivisor",
766
+ "type": "uint64",
767
+ "internalType": "uint64"
768
+ },
769
+ {
770
+ "name": "redemptionTxMaxFee",
771
+ "type": "uint64",
772
+ "internalType": "uint64"
773
+ },
774
+ {
775
+ "name": "redemptionTxMaxTotalFee",
776
+ "type": "uint64",
777
+ "internalType": "uint64"
778
+ },
779
+ {
780
+ "name": "redemptionTimeout",
781
+ "type": "uint32",
782
+ "internalType": "uint32"
783
+ },
784
+ {
785
+ "name": "redemptionTimeoutSlashingAmount",
786
+ "type": "uint96",
787
+ "internalType": "uint96"
788
+ },
789
+ {
790
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
791
+ "type": "uint32",
792
+ "internalType": "uint32"
691
793
  }
692
794
  ],
693
- "name": "WalletClosed",
694
- "type": "event"
795
+ "stateMutability": "view"
695
796
  },
696
797
  {
697
- "anonymous": false,
798
+ "type": "function",
799
+ "name": "requestNewWallet",
698
800
  "inputs": [
699
801
  {
700
- "indexed": true,
701
- "internalType": "bytes32",
702
- "name": "ecdsaWalletID",
703
- "type": "bytes32"
704
- },
705
- {
706
- "indexed": true,
707
- "internalType": "bytes20",
708
- "name": "walletPubKeyHash",
709
- "type": "bytes20"
802
+ "name": "activeWalletMainUtxo",
803
+ "type": "tuple",
804
+ "internalType": "struct BitcoinTx.UTXO",
805
+ "components": [
806
+ {
807
+ "name": "txHash",
808
+ "type": "bytes32",
809
+ "internalType": "bytes32"
810
+ },
811
+ {
812
+ "name": "txOutputIndex",
813
+ "type": "uint32",
814
+ "internalType": "uint32"
815
+ },
816
+ {
817
+ "name": "txOutputValue",
818
+ "type": "uint64",
819
+ "internalType": "uint64"
820
+ }
821
+ ]
710
822
  }
711
823
  ],
712
- "name": "WalletClosing",
713
- "type": "event"
824
+ "outputs": [],
825
+ "stateMutability": "nonpayable"
714
826
  },
715
827
  {
716
- "anonymous": false,
828
+ "type": "function",
829
+ "name": "requestRedemption",
717
830
  "inputs": [
718
831
  {
719
- "indexed": true,
720
- "internalType": "bytes32",
721
- "name": "ecdsaWalletID",
722
- "type": "bytes32"
723
- },
724
- {
725
- "indexed": true,
726
- "internalType": "bytes20",
727
832
  "name": "walletPubKeyHash",
728
- "type": "bytes20"
729
- }
730
- ],
731
- "name": "WalletMovingFunds",
732
- "type": "event"
733
- },
734
- {
735
- "anonymous": false,
736
- "inputs": [
737
- {
738
- "indexed": false,
739
- "internalType": "uint32",
740
- "name": "walletCreationPeriod",
741
- "type": "uint32"
833
+ "type": "bytes20",
834
+ "internalType": "bytes20"
742
835
  },
743
836
  {
744
- "indexed": false,
745
- "internalType": "uint64",
746
- "name": "walletCreationMinBtcBalance",
747
- "type": "uint64"
748
- },
749
- {
750
- "indexed": false,
751
- "internalType": "uint64",
752
- "name": "walletCreationMaxBtcBalance",
753
- "type": "uint64"
754
- },
755
- {
756
- "indexed": false,
757
- "internalType": "uint64",
758
- "name": "walletClosureMinBtcBalance",
759
- "type": "uint64"
760
- },
761
- {
762
- "indexed": false,
763
- "internalType": "uint32",
764
- "name": "walletMaxAge",
765
- "type": "uint32"
837
+ "name": "mainUtxo",
838
+ "type": "tuple",
839
+ "internalType": "struct BitcoinTx.UTXO",
840
+ "components": [
841
+ {
842
+ "name": "txHash",
843
+ "type": "bytes32",
844
+ "internalType": "bytes32"
845
+ },
846
+ {
847
+ "name": "txOutputIndex",
848
+ "type": "uint32",
849
+ "internalType": "uint32"
850
+ },
851
+ {
852
+ "name": "txOutputValue",
853
+ "type": "uint64",
854
+ "internalType": "uint64"
855
+ }
856
+ ]
766
857
  },
767
858
  {
768
- "indexed": false,
769
- "internalType": "uint64",
770
- "name": "walletMaxBtcTransfer",
771
- "type": "uint64"
859
+ "name": "redeemerOutputScript",
860
+ "type": "bytes",
861
+ "internalType": "bytes"
772
862
  },
773
863
  {
774
- "indexed": false,
775
- "internalType": "uint32",
776
- "name": "walletClosingPeriod",
777
- "type": "uint32"
864
+ "name": "amount",
865
+ "type": "uint64",
866
+ "internalType": "uint64"
778
867
  }
779
868
  ],
780
- "name": "WalletParametersUpdated",
781
- "type": "event"
869
+ "outputs": [],
870
+ "stateMutability": "nonpayable"
782
871
  },
783
872
  {
784
- "anonymous": false,
873
+ "type": "function",
874
+ "name": "resetMovingFundsTimeout",
785
875
  "inputs": [
786
876
  {
787
- "indexed": true,
788
- "internalType": "bytes32",
789
- "name": "ecdsaWalletID",
790
- "type": "bytes32"
791
- },
792
- {
793
- "indexed": true,
794
- "internalType": "bytes20",
795
877
  "name": "walletPubKeyHash",
796
- "type": "bytes20"
878
+ "type": "bytes20",
879
+ "internalType": "bytes20"
797
880
  }
798
881
  ],
799
- "name": "WalletTerminated",
800
- "type": "event"
882
+ "outputs": [],
883
+ "stateMutability": "nonpayable"
801
884
  },
802
885
  {
886
+ "type": "function",
887
+ "name": "revealDeposit",
803
888
  "inputs": [
804
889
  {
805
- "internalType": "bytes32",
806
- "name": "ecdsaWalletID",
807
- "type": "bytes32"
808
- },
809
- {
810
- "internalType": "bytes32",
811
- "name": "publicKeyX",
812
- "type": "bytes32"
890
+ "name": "fundingTx",
891
+ "type": "tuple",
892
+ "internalType": "struct BitcoinTx.Info",
893
+ "components": [
894
+ {
895
+ "name": "version",
896
+ "type": "bytes4",
897
+ "internalType": "bytes4"
898
+ },
899
+ {
900
+ "name": "inputVector",
901
+ "type": "bytes",
902
+ "internalType": "bytes"
903
+ },
904
+ {
905
+ "name": "outputVector",
906
+ "type": "bytes",
907
+ "internalType": "bytes"
908
+ },
909
+ {
910
+ "name": "locktime",
911
+ "type": "bytes4",
912
+ "internalType": "bytes4"
913
+ }
914
+ ]
813
915
  },
814
916
  {
815
- "internalType": "bytes32",
816
- "name": "publicKeyY",
817
- "type": "bytes32"
917
+ "name": "reveal",
918
+ "type": "tuple",
919
+ "internalType": "struct Deposit.DepositRevealInfo",
920
+ "components": [
921
+ {
922
+ "name": "fundingOutputIndex",
923
+ "type": "uint32",
924
+ "internalType": "uint32"
925
+ },
926
+ {
927
+ "name": "blindingFactor",
928
+ "type": "bytes8",
929
+ "internalType": "bytes8"
930
+ },
931
+ {
932
+ "name": "walletPubKeyHash",
933
+ "type": "bytes20",
934
+ "internalType": "bytes20"
935
+ },
936
+ {
937
+ "name": "refundPubKeyHash",
938
+ "type": "bytes20",
939
+ "internalType": "bytes20"
940
+ },
941
+ {
942
+ "name": "refundLocktime",
943
+ "type": "bytes4",
944
+ "internalType": "bytes4"
945
+ },
946
+ {
947
+ "name": "vault",
948
+ "type": "address",
949
+ "internalType": "address"
950
+ }
951
+ ]
818
952
  }
819
953
  ],
820
- "name": "__ecdsaWalletCreatedCallback",
821
954
  "outputs": [],
822
- "stateMutability": "nonpayable",
823
- "type": "function"
955
+ "stateMutability": "nonpayable"
824
956
  },
825
957
  {
958
+ "type": "function",
959
+ "name": "revealDepositWithExtraData",
826
960
  "inputs": [
827
961
  {
828
- "internalType": "bytes32",
829
- "name": "",
830
- "type": "bytes32"
962
+ "name": "fundingTx",
963
+ "type": "tuple",
964
+ "internalType": "struct BitcoinTx.Info",
965
+ "components": [
966
+ {
967
+ "name": "version",
968
+ "type": "bytes4",
969
+ "internalType": "bytes4"
970
+ },
971
+ {
972
+ "name": "inputVector",
973
+ "type": "bytes",
974
+ "internalType": "bytes"
975
+ },
976
+ {
977
+ "name": "outputVector",
978
+ "type": "bytes",
979
+ "internalType": "bytes"
980
+ },
981
+ {
982
+ "name": "locktime",
983
+ "type": "bytes4",
984
+ "internalType": "bytes4"
985
+ }
986
+ ]
831
987
  },
832
988
  {
833
- "internalType": "bytes32",
834
- "name": "publicKeyX",
835
- "type": "bytes32"
989
+ "name": "reveal",
990
+ "type": "tuple",
991
+ "internalType": "struct Deposit.DepositRevealInfo",
992
+ "components": [
993
+ {
994
+ "name": "fundingOutputIndex",
995
+ "type": "uint32",
996
+ "internalType": "uint32"
997
+ },
998
+ {
999
+ "name": "blindingFactor",
1000
+ "type": "bytes8",
1001
+ "internalType": "bytes8"
1002
+ },
1003
+ {
1004
+ "name": "walletPubKeyHash",
1005
+ "type": "bytes20",
1006
+ "internalType": "bytes20"
1007
+ },
1008
+ {
1009
+ "name": "refundPubKeyHash",
1010
+ "type": "bytes20",
1011
+ "internalType": "bytes20"
1012
+ },
1013
+ {
1014
+ "name": "refundLocktime",
1015
+ "type": "bytes4",
1016
+ "internalType": "bytes4"
1017
+ },
1018
+ {
1019
+ "name": "vault",
1020
+ "type": "address",
1021
+ "internalType": "address"
1022
+ }
1023
+ ]
836
1024
  },
837
1025
  {
838
- "internalType": "bytes32",
839
- "name": "publicKeyY",
840
- "type": "bytes32"
1026
+ "name": "extraData",
1027
+ "type": "bytes32",
1028
+ "internalType": "bytes32"
841
1029
  }
842
1030
  ],
843
- "name": "__ecdsaWalletHeartbeatFailedCallback",
844
1031
  "outputs": [],
845
- "stateMutability": "nonpayable",
846
- "type": "function"
1032
+ "stateMutability": "nonpayable"
847
1033
  },
848
1034
  {
849
- "inputs": [],
850
- "name": "activeWalletPubKeyHash",
851
- "outputs": [
1035
+ "type": "function",
1036
+ "name": "setRedemptionWatchtower",
1037
+ "inputs": [
852
1038
  {
853
- "internalType": "bytes20",
854
- "name": "",
855
- "type": "bytes20"
1039
+ "name": "redemptionWatchtower",
1040
+ "type": "address",
1041
+ "internalType": "address"
856
1042
  }
857
1043
  ],
858
- "stateMutability": "view",
859
- "type": "function"
1044
+ "outputs": [],
1045
+ "stateMutability": "nonpayable"
860
1046
  },
861
1047
  {
862
- "inputs": [],
863
- "name": "contractReferences",
864
- "outputs": [
865
- {
866
- "internalType": "contract Bank",
867
- "name": "bank",
868
- "type": "address"
869
- },
870
- {
871
- "internalType": "contract IRelay",
872
- "name": "relay",
873
- "type": "address"
874
- },
1048
+ "type": "function",
1049
+ "name": "setSpvMaintainerStatus",
1050
+ "inputs": [
875
1051
  {
876
- "internalType": "contract IWalletRegistry",
877
- "name": "ecdsaWalletRegistry",
878
- "type": "address"
1052
+ "name": "spvMaintainer",
1053
+ "type": "address",
1054
+ "internalType": "address"
879
1055
  },
880
1056
  {
881
- "internalType": "contract ReimbursementPool",
882
- "name": "reimbursementPool",
883
- "type": "address"
1057
+ "name": "isTrusted",
1058
+ "type": "bool",
1059
+ "internalType": "bool"
884
1060
  }
885
1061
  ],
886
- "stateMutability": "view",
887
- "type": "function"
1062
+ "outputs": [],
1063
+ "stateMutability": "nonpayable"
888
1064
  },
889
1065
  {
1066
+ "type": "function",
1067
+ "name": "setVaultStatus",
890
1068
  "inputs": [
891
1069
  {
892
- "internalType": "bytes",
893
- "name": "walletPublicKey",
894
- "type": "bytes"
895
- },
896
- {
897
- "internalType": "bytes",
898
- "name": "preimage",
899
- "type": "bytes"
1070
+ "name": "vault",
1071
+ "type": "address",
1072
+ "internalType": "address"
900
1073
  },
901
1074
  {
902
- "internalType": "bool",
903
- "name": "witness",
904
- "type": "bool"
1075
+ "name": "isTrusted",
1076
+ "type": "bool",
1077
+ "internalType": "bool"
905
1078
  }
906
1079
  ],
907
- "name": "defeatFraudChallenge",
908
1080
  "outputs": [],
909
- "stateMutability": "nonpayable",
910
- "type": "function"
1081
+ "stateMutability": "nonpayable"
911
1082
  },
912
1083
  {
1084
+ "type": "function",
1085
+ "name": "spentMainUTXOs",
913
1086
  "inputs": [
914
1087
  {
915
- "internalType": "bytes",
916
- "name": "walletPublicKey",
917
- "type": "bytes"
918
- },
919
- {
920
- "internalType": "bytes",
921
- "name": "heartbeatMessage",
922
- "type": "bytes"
1088
+ "name": "utxoKey",
1089
+ "type": "uint256",
1090
+ "internalType": "uint256"
923
1091
  }
924
1092
  ],
925
- "name": "defeatFraudChallengeWithHeartbeat",
926
- "outputs": [],
927
- "stateMutability": "nonpayable",
928
- "type": "function"
929
- },
930
- {
931
- "inputs": [],
932
- "name": "depositParameters",
933
1093
  "outputs": [
934
1094
  {
935
- "internalType": "uint64",
936
- "name": "depositDustThreshold",
937
- "type": "uint64"
938
- },
939
- {
940
- "internalType": "uint64",
941
- "name": "depositTreasuryFeeDivisor",
942
- "type": "uint64"
943
- },
944
- {
945
- "internalType": "uint64",
946
- "name": "depositTxMaxFee",
947
- "type": "uint64"
948
- },
949
- {
950
- "internalType": "uint32",
951
- "name": "depositRevealAheadPeriod",
952
- "type": "uint32"
1095
+ "name": "",
1096
+ "type": "bool",
1097
+ "internalType": "bool"
953
1098
  }
954
1099
  ],
955
- "stateMutability": "view",
956
- "type": "function"
1100
+ "stateMutability": "view"
957
1101
  },
958
1102
  {
1103
+ "type": "function",
1104
+ "name": "submitDepositSweepProof",
959
1105
  "inputs": [
960
1106
  {
961
- "internalType": "uint256",
962
- "name": "depositKey",
963
- "type": "uint256"
964
- }
965
- ],
966
- "name": "deposits",
967
- "outputs": [
968
- {
1107
+ "name": "sweepTx",
1108
+ "type": "tuple",
1109
+ "internalType": "struct BitcoinTx.Info",
969
1110
  "components": [
970
1111
  {
971
- "internalType": "address",
972
- "name": "depositor",
973
- "type": "address"
1112
+ "name": "version",
1113
+ "type": "bytes4",
1114
+ "internalType": "bytes4"
974
1115
  },
975
1116
  {
976
- "internalType": "uint64",
977
- "name": "amount",
978
- "type": "uint64"
1117
+ "name": "inputVector",
1118
+ "type": "bytes",
1119
+ "internalType": "bytes"
979
1120
  },
980
1121
  {
981
- "internalType": "uint32",
982
- "name": "revealedAt",
983
- "type": "uint32"
1122
+ "name": "outputVector",
1123
+ "type": "bytes",
1124
+ "internalType": "bytes"
984
1125
  },
985
1126
  {
986
- "internalType": "address",
987
- "name": "vault",
988
- "type": "address"
1127
+ "name": "locktime",
1128
+ "type": "bytes4",
1129
+ "internalType": "bytes4"
1130
+ }
1131
+ ]
1132
+ },
1133
+ {
1134
+ "name": "sweepProof",
1135
+ "type": "tuple",
1136
+ "internalType": "struct BitcoinTx.Proof",
1137
+ "components": [
1138
+ {
1139
+ "name": "merkleProof",
1140
+ "type": "bytes",
1141
+ "internalType": "bytes"
989
1142
  },
990
1143
  {
991
- "internalType": "uint64",
992
- "name": "treasuryFee",
993
- "type": "uint64"
1144
+ "name": "txIndexInBlock",
1145
+ "type": "uint256",
1146
+ "internalType": "uint256"
994
1147
  },
995
1148
  {
996
- "internalType": "uint32",
997
- "name": "sweptAt",
998
- "type": "uint32"
1149
+ "name": "bitcoinHeaders",
1150
+ "type": "bytes",
1151
+ "internalType": "bytes"
999
1152
  },
1000
1153
  {
1001
- "internalType": "bytes32",
1002
- "name": "extraData",
1003
- "type": "bytes32"
1154
+ "name": "coinbasePreimage",
1155
+ "type": "bytes32",
1156
+ "internalType": "bytes32"
1157
+ },
1158
+ {
1159
+ "name": "coinbaseProof",
1160
+ "type": "bytes",
1161
+ "internalType": "bytes"
1004
1162
  }
1005
- ],
1006
- "internalType": "struct Deposit.DepositRequest",
1007
- "name": "",
1008
- "type": "tuple"
1009
- }
1010
- ],
1011
- "stateMutability": "view",
1012
- "type": "function"
1013
- },
1014
- {
1015
- "inputs": [
1016
- {
1017
- "internalType": "uint256",
1018
- "name": "challengeKey",
1019
- "type": "uint256"
1020
- }
1021
- ],
1022
- "name": "fraudChallenges",
1023
- "outputs": [
1163
+ ]
1164
+ },
1024
1165
  {
1166
+ "name": "mainUtxo",
1167
+ "type": "tuple",
1168
+ "internalType": "struct BitcoinTx.UTXO",
1025
1169
  "components": [
1026
1170
  {
1027
- "internalType": "address",
1028
- "name": "challenger",
1029
- "type": "address"
1030
- },
1031
- {
1032
- "internalType": "uint256",
1033
- "name": "depositAmount",
1034
- "type": "uint256"
1171
+ "name": "txHash",
1172
+ "type": "bytes32",
1173
+ "internalType": "bytes32"
1035
1174
  },
1036
1175
  {
1037
- "internalType": "uint32",
1038
- "name": "reportedAt",
1039
- "type": "uint32"
1176
+ "name": "txOutputIndex",
1177
+ "type": "uint32",
1178
+ "internalType": "uint32"
1040
1179
  },
1041
1180
  {
1042
- "internalType": "bool",
1043
- "name": "resolved",
1044
- "type": "bool"
1181
+ "name": "txOutputValue",
1182
+ "type": "uint64",
1183
+ "internalType": "uint64"
1045
1184
  }
1046
- ],
1047
- "internalType": "struct Fraud.FraudChallenge",
1048
- "name": "",
1049
- "type": "tuple"
1050
- }
1051
- ],
1052
- "stateMutability": "view",
1053
- "type": "function"
1054
- },
1055
- {
1056
- "inputs": [],
1057
- "name": "fraudParameters",
1058
- "outputs": [
1059
- {
1060
- "internalType": "uint96",
1061
- "name": "fraudChallengeDepositAmount",
1062
- "type": "uint96"
1063
- },
1064
- {
1065
- "internalType": "uint32",
1066
- "name": "fraudChallengeDefeatTimeout",
1067
- "type": "uint32"
1068
- },
1069
- {
1070
- "internalType": "uint96",
1071
- "name": "fraudSlashingAmount",
1072
- "type": "uint96"
1185
+ ]
1073
1186
  },
1074
1187
  {
1075
- "internalType": "uint32",
1076
- "name": "fraudNotifierRewardMultiplier",
1077
- "type": "uint32"
1078
- }
1079
- ],
1080
- "stateMutability": "view",
1081
- "type": "function"
1082
- },
1083
- {
1084
- "inputs": [],
1085
- "name": "getRedemptionWatchtower",
1086
- "outputs": [
1087
- {
1088
- "internalType": "address",
1089
- "name": "",
1090
- "type": "address"
1091
- }
1092
- ],
1093
- "stateMutability": "view",
1094
- "type": "function"
1095
- },
1096
- {
1097
- "inputs": [],
1098
- "name": "governance",
1099
- "outputs": [
1100
- {
1101
- "internalType": "address",
1102
- "name": "",
1103
- "type": "address"
1188
+ "name": "vault",
1189
+ "type": "address",
1190
+ "internalType": "address"
1104
1191
  }
1105
1192
  ],
1106
- "stateMutability": "view",
1107
- "type": "function"
1193
+ "outputs": [],
1194
+ "stateMutability": "nonpayable"
1108
1195
  },
1109
1196
  {
1197
+ "type": "function",
1198
+ "name": "submitFraudChallenge",
1110
1199
  "inputs": [
1111
1200
  {
1112
- "internalType": "address",
1113
- "name": "_bank",
1114
- "type": "address"
1115
- },
1116
- {
1117
- "internalType": "address",
1118
- "name": "_relay",
1119
- "type": "address"
1120
- },
1121
- {
1122
- "internalType": "address",
1123
- "name": "_treasury",
1124
- "type": "address"
1125
- },
1126
- {
1127
- "internalType": "address",
1128
- "name": "_ecdsaWalletRegistry",
1129
- "type": "address"
1201
+ "name": "walletPublicKey",
1202
+ "type": "bytes",
1203
+ "internalType": "bytes"
1130
1204
  },
1131
1205
  {
1132
- "internalType": "address payable",
1133
- "name": "_reimbursementPool",
1134
- "type": "address"
1206
+ "name": "preimageSha256",
1207
+ "type": "bytes",
1208
+ "internalType": "bytes"
1135
1209
  },
1136
1210
  {
1137
- "internalType": "uint96",
1138
- "name": "_txProofDifficultyFactor",
1139
- "type": "uint96"
1211
+ "name": "signature",
1212
+ "type": "tuple",
1213
+ "internalType": "struct BitcoinTx.RSVSignature",
1214
+ "components": [
1215
+ {
1216
+ "name": "r",
1217
+ "type": "bytes32",
1218
+ "internalType": "bytes32"
1219
+ },
1220
+ {
1221
+ "name": "s",
1222
+ "type": "bytes32",
1223
+ "internalType": "bytes32"
1224
+ },
1225
+ {
1226
+ "name": "v",
1227
+ "type": "uint8",
1228
+ "internalType": "uint8"
1229
+ }
1230
+ ]
1140
1231
  }
1141
1232
  ],
1142
- "name": "initialize",
1143
1233
  "outputs": [],
1144
- "stateMutability": "nonpayable",
1145
- "type": "function"
1146
- },
1147
- {
1148
- "inputs": [
1149
- {
1150
- "internalType": "address",
1151
- "name": "vault",
1152
- "type": "address"
1153
- }
1154
- ],
1155
- "name": "isVaultTrusted",
1156
- "outputs": [
1157
- {
1158
- "internalType": "bool",
1159
- "name": "",
1160
- "type": "bool"
1161
- }
1162
- ],
1163
- "stateMutability": "view",
1164
- "type": "function"
1165
- },
1166
- {
1167
- "inputs": [],
1168
- "name": "liveWalletsCount",
1169
- "outputs": [
1170
- {
1171
- "internalType": "uint32",
1172
- "name": "",
1173
- "type": "uint32"
1174
- }
1175
- ],
1176
- "stateMutability": "view",
1177
- "type": "function"
1234
+ "stateMutability": "payable"
1178
1235
  },
1179
1236
  {
1237
+ "type": "function",
1238
+ "name": "submitMovedFundsSweepProof",
1180
1239
  "inputs": [
1181
1240
  {
1182
- "internalType": "uint256",
1183
- "name": "requestKey",
1184
- "type": "uint256"
1185
- }
1186
- ],
1187
- "name": "movedFundsSweepRequests",
1188
- "outputs": [
1189
- {
1241
+ "name": "sweepTx",
1242
+ "type": "tuple",
1243
+ "internalType": "struct BitcoinTx.Info",
1190
1244
  "components": [
1191
1245
  {
1192
- "internalType": "bytes20",
1193
- "name": "walletPubKeyHash",
1194
- "type": "bytes20"
1246
+ "name": "version",
1247
+ "type": "bytes4",
1248
+ "internalType": "bytes4"
1195
1249
  },
1196
1250
  {
1197
- "internalType": "uint64",
1198
- "name": "value",
1199
- "type": "uint64"
1251
+ "name": "inputVector",
1252
+ "type": "bytes",
1253
+ "internalType": "bytes"
1200
1254
  },
1201
1255
  {
1202
- "internalType": "uint32",
1203
- "name": "createdAt",
1204
- "type": "uint32"
1256
+ "name": "outputVector",
1257
+ "type": "bytes",
1258
+ "internalType": "bytes"
1205
1259
  },
1206
1260
  {
1207
- "internalType": "enum MovingFunds.MovedFundsSweepRequestState",
1208
- "name": "state",
1209
- "type": "uint8"
1261
+ "name": "locktime",
1262
+ "type": "bytes4",
1263
+ "internalType": "bytes4"
1210
1264
  }
1211
- ],
1212
- "internalType": "struct MovingFunds.MovedFundsSweepRequest",
1213
- "name": "",
1214
- "type": "tuple"
1215
- }
1216
- ],
1217
- "stateMutability": "view",
1218
- "type": "function"
1219
- },
1220
- {
1221
- "inputs": [],
1222
- "name": "movingFundsParameters",
1223
- "outputs": [
1224
- {
1225
- "internalType": "uint64",
1226
- "name": "movingFundsTxMaxTotalFee",
1227
- "type": "uint64"
1228
- },
1229
- {
1230
- "internalType": "uint64",
1231
- "name": "movingFundsDustThreshold",
1232
- "type": "uint64"
1233
- },
1234
- {
1235
- "internalType": "uint32",
1236
- "name": "movingFundsTimeoutResetDelay",
1237
- "type": "uint32"
1265
+ ]
1238
1266
  },
1239
1267
  {
1240
- "internalType": "uint32",
1241
- "name": "movingFundsTimeout",
1242
- "type": "uint32"
1243
- },
1244
- {
1245
- "internalType": "uint96",
1246
- "name": "movingFundsTimeoutSlashingAmount",
1247
- "type": "uint96"
1248
- },
1249
- {
1250
- "internalType": "uint32",
1251
- "name": "movingFundsTimeoutNotifierRewardMultiplier",
1252
- "type": "uint32"
1253
- },
1254
- {
1255
- "internalType": "uint16",
1256
- "name": "movingFundsCommitmentGasOffset",
1257
- "type": "uint16"
1258
- },
1259
- {
1260
- "internalType": "uint64",
1261
- "name": "movedFundsSweepTxMaxTotalFee",
1262
- "type": "uint64"
1263
- },
1264
- {
1265
- "internalType": "uint32",
1266
- "name": "movedFundsSweepTimeout",
1267
- "type": "uint32"
1268
- },
1269
- {
1270
- "internalType": "uint96",
1271
- "name": "movedFundsSweepTimeoutSlashingAmount",
1272
- "type": "uint96"
1268
+ "name": "sweepProof",
1269
+ "type": "tuple",
1270
+ "internalType": "struct BitcoinTx.Proof",
1271
+ "components": [
1272
+ {
1273
+ "name": "merkleProof",
1274
+ "type": "bytes",
1275
+ "internalType": "bytes"
1276
+ },
1277
+ {
1278
+ "name": "txIndexInBlock",
1279
+ "type": "uint256",
1280
+ "internalType": "uint256"
1281
+ },
1282
+ {
1283
+ "name": "bitcoinHeaders",
1284
+ "type": "bytes",
1285
+ "internalType": "bytes"
1286
+ },
1287
+ {
1288
+ "name": "coinbasePreimage",
1289
+ "type": "bytes32",
1290
+ "internalType": "bytes32"
1291
+ },
1292
+ {
1293
+ "name": "coinbaseProof",
1294
+ "type": "bytes",
1295
+ "internalType": "bytes"
1296
+ }
1297
+ ]
1273
1298
  },
1274
1299
  {
1275
- "internalType": "uint32",
1276
- "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
1277
- "type": "uint32"
1300
+ "name": "mainUtxo",
1301
+ "type": "tuple",
1302
+ "internalType": "struct BitcoinTx.UTXO",
1303
+ "components": [
1304
+ {
1305
+ "name": "txHash",
1306
+ "type": "bytes32",
1307
+ "internalType": "bytes32"
1308
+ },
1309
+ {
1310
+ "name": "txOutputIndex",
1311
+ "type": "uint32",
1312
+ "internalType": "uint32"
1313
+ },
1314
+ {
1315
+ "name": "txOutputValue",
1316
+ "type": "uint64",
1317
+ "internalType": "uint64"
1318
+ }
1319
+ ]
1278
1320
  }
1279
1321
  ],
1280
- "stateMutability": "view",
1281
- "type": "function"
1322
+ "outputs": [],
1323
+ "stateMutability": "nonpayable"
1282
1324
  },
1283
1325
  {
1326
+ "type": "function",
1327
+ "name": "submitMovingFundsCommitment",
1284
1328
  "inputs": [
1285
1329
  {
1286
- "internalType": "bytes",
1287
- "name": "walletPublicKey",
1288
- "type": "bytes"
1330
+ "name": "walletPubKeyHash",
1331
+ "type": "bytes20",
1332
+ "internalType": "bytes20"
1289
1333
  },
1290
1334
  {
1291
- "internalType": "uint32[]",
1292
- "name": "walletMembersIDs",
1293
- "type": "uint32[]"
1335
+ "name": "walletMainUtxo",
1336
+ "type": "tuple",
1337
+ "internalType": "struct BitcoinTx.UTXO",
1338
+ "components": [
1339
+ {
1340
+ "name": "txHash",
1341
+ "type": "bytes32",
1342
+ "internalType": "bytes32"
1343
+ },
1344
+ {
1345
+ "name": "txOutputIndex",
1346
+ "type": "uint32",
1347
+ "internalType": "uint32"
1348
+ },
1349
+ {
1350
+ "name": "txOutputValue",
1351
+ "type": "uint64",
1352
+ "internalType": "uint64"
1353
+ }
1354
+ ]
1294
1355
  },
1295
1356
  {
1296
- "internalType": "bytes",
1297
- "name": "preimageSha256",
1298
- "type": "bytes"
1299
- }
1300
- ],
1301
- "name": "notifyFraudChallengeDefeatTimeout",
1302
- "outputs": [],
1303
- "stateMutability": "nonpayable",
1304
- "type": "function"
1305
- },
1306
- {
1307
- "inputs": [
1308
- {
1309
- "internalType": "bytes32",
1310
- "name": "movingFundsTxHash",
1311
- "type": "bytes32"
1357
+ "name": "walletMembersIDs",
1358
+ "type": "uint32[]",
1359
+ "internalType": "uint32[]"
1312
1360
  },
1313
1361
  {
1314
- "internalType": "uint32",
1315
- "name": "movingFundsTxOutputIndex",
1316
- "type": "uint32"
1362
+ "name": "walletMemberIndex",
1363
+ "type": "uint256",
1364
+ "internalType": "uint256"
1317
1365
  },
1318
1366
  {
1319
- "internalType": "uint32[]",
1320
- "name": "walletMembersIDs",
1321
- "type": "uint32[]"
1367
+ "name": "targetWallets",
1368
+ "type": "bytes20[]",
1369
+ "internalType": "bytes20[]"
1322
1370
  }
1323
1371
  ],
1324
- "name": "notifyMovedFundsSweepTimeout",
1325
1372
  "outputs": [],
1326
- "stateMutability": "nonpayable",
1327
- "type": "function"
1373
+ "stateMutability": "nonpayable"
1328
1374
  },
1329
1375
  {
1376
+ "type": "function",
1377
+ "name": "submitMovingFundsProof",
1330
1378
  "inputs": [
1331
1379
  {
1332
- "internalType": "bytes20",
1333
- "name": "walletPubKeyHash",
1334
- "type": "bytes20"
1380
+ "name": "movingFundsTx",
1381
+ "type": "tuple",
1382
+ "internalType": "struct BitcoinTx.Info",
1383
+ "components": [
1384
+ {
1385
+ "name": "version",
1386
+ "type": "bytes4",
1387
+ "internalType": "bytes4"
1388
+ },
1389
+ {
1390
+ "name": "inputVector",
1391
+ "type": "bytes",
1392
+ "internalType": "bytes"
1393
+ },
1394
+ {
1395
+ "name": "outputVector",
1396
+ "type": "bytes",
1397
+ "internalType": "bytes"
1398
+ },
1399
+ {
1400
+ "name": "locktime",
1401
+ "type": "bytes4",
1402
+ "internalType": "bytes4"
1403
+ }
1404
+ ]
1405
+ },
1406
+ {
1407
+ "name": "movingFundsProof",
1408
+ "type": "tuple",
1409
+ "internalType": "struct BitcoinTx.Proof",
1410
+ "components": [
1411
+ {
1412
+ "name": "merkleProof",
1413
+ "type": "bytes",
1414
+ "internalType": "bytes"
1415
+ },
1416
+ {
1417
+ "name": "txIndexInBlock",
1418
+ "type": "uint256",
1419
+ "internalType": "uint256"
1420
+ },
1421
+ {
1422
+ "name": "bitcoinHeaders",
1423
+ "type": "bytes",
1424
+ "internalType": "bytes"
1425
+ },
1426
+ {
1427
+ "name": "coinbasePreimage",
1428
+ "type": "bytes32",
1429
+ "internalType": "bytes32"
1430
+ },
1431
+ {
1432
+ "name": "coinbaseProof",
1433
+ "type": "bytes",
1434
+ "internalType": "bytes"
1435
+ }
1436
+ ]
1335
1437
  },
1336
1438
  {
1439
+ "name": "mainUtxo",
1440
+ "type": "tuple",
1441
+ "internalType": "struct BitcoinTx.UTXO",
1337
1442
  "components": [
1338
1443
  {
1339
- "internalType": "bytes32",
1340
1444
  "name": "txHash",
1341
- "type": "bytes32"
1445
+ "type": "bytes32",
1446
+ "internalType": "bytes32"
1342
1447
  },
1343
1448
  {
1344
- "internalType": "uint32",
1345
1449
  "name": "txOutputIndex",
1346
- "type": "uint32"
1450
+ "type": "uint32",
1451
+ "internalType": "uint32"
1347
1452
  },
1348
1453
  {
1349
- "internalType": "uint64",
1350
1454
  "name": "txOutputValue",
1351
- "type": "uint64"
1455
+ "type": "uint64",
1456
+ "internalType": "uint64"
1352
1457
  }
1353
- ],
1354
- "internalType": "struct BitcoinTx.UTXO",
1355
- "name": "mainUtxo",
1356
- "type": "tuple"
1357
- }
1358
- ],
1359
- "name": "notifyMovingFundsBelowDust",
1360
- "outputs": [],
1361
- "stateMutability": "nonpayable",
1362
- "type": "function"
1363
- },
1364
- {
1365
- "inputs": [
1366
- {
1367
- "internalType": "bytes20",
1368
- "name": "walletPubKeyHash",
1369
- "type": "bytes20"
1458
+ ]
1370
1459
  },
1371
1460
  {
1372
- "internalType": "uint32[]",
1373
- "name": "walletMembersIDs",
1374
- "type": "uint32[]"
1375
- }
1376
- ],
1377
- "name": "notifyMovingFundsTimeout",
1378
- "outputs": [],
1379
- "stateMutability": "nonpayable",
1380
- "type": "function"
1381
- },
1382
- {
1383
- "inputs": [
1384
- {
1385
- "internalType": "bytes20",
1386
1461
  "name": "walletPubKeyHash",
1387
- "type": "bytes20"
1388
- },
1389
- {
1390
- "internalType": "uint32[]",
1391
- "name": "walletMembersIDs",
1392
- "type": "uint32[]"
1393
- },
1394
- {
1395
- "internalType": "bytes",
1396
- "name": "redeemerOutputScript",
1397
- "type": "bytes"
1462
+ "type": "bytes20",
1463
+ "internalType": "bytes20"
1398
1464
  }
1399
1465
  ],
1400
- "name": "notifyRedemptionTimeout",
1401
1466
  "outputs": [],
1402
- "stateMutability": "nonpayable",
1403
- "type": "function"
1467
+ "stateMutability": "nonpayable"
1404
1468
  },
1405
1469
  {
1470
+ "type": "function",
1471
+ "name": "submitRedemptionProof",
1406
1472
  "inputs": [
1407
1473
  {
1408
- "internalType": "bytes20",
1409
- "name": "walletPubKeyHash",
1410
- "type": "bytes20"
1474
+ "name": "redemptionTx",
1475
+ "type": "tuple",
1476
+ "internalType": "struct BitcoinTx.Info",
1477
+ "components": [
1478
+ {
1479
+ "name": "version",
1480
+ "type": "bytes4",
1481
+ "internalType": "bytes4"
1482
+ },
1483
+ {
1484
+ "name": "inputVector",
1485
+ "type": "bytes",
1486
+ "internalType": "bytes"
1487
+ },
1488
+ {
1489
+ "name": "outputVector",
1490
+ "type": "bytes",
1491
+ "internalType": "bytes"
1492
+ },
1493
+ {
1494
+ "name": "locktime",
1495
+ "type": "bytes4",
1496
+ "internalType": "bytes4"
1497
+ }
1498
+ ]
1411
1499
  },
1412
1500
  {
1413
- "internalType": "bytes",
1414
- "name": "redeemerOutputScript",
1415
- "type": "bytes"
1416
- }
1417
- ],
1418
- "name": "notifyRedemptionVeto",
1419
- "outputs": [],
1420
- "stateMutability": "nonpayable",
1421
- "type": "function"
1422
- },
1423
- {
1424
- "inputs": [
1425
- {
1426
- "internalType": "bytes20",
1427
- "name": "walletPubKeyHash",
1428
- "type": "bytes20"
1501
+ "name": "redemptionProof",
1502
+ "type": "tuple",
1503
+ "internalType": "struct BitcoinTx.Proof",
1504
+ "components": [
1505
+ {
1506
+ "name": "merkleProof",
1507
+ "type": "bytes",
1508
+ "internalType": "bytes"
1509
+ },
1510
+ {
1511
+ "name": "txIndexInBlock",
1512
+ "type": "uint256",
1513
+ "internalType": "uint256"
1514
+ },
1515
+ {
1516
+ "name": "bitcoinHeaders",
1517
+ "type": "bytes",
1518
+ "internalType": "bytes"
1519
+ },
1520
+ {
1521
+ "name": "coinbasePreimage",
1522
+ "type": "bytes32",
1523
+ "internalType": "bytes32"
1524
+ },
1525
+ {
1526
+ "name": "coinbaseProof",
1527
+ "type": "bytes",
1528
+ "internalType": "bytes"
1529
+ }
1530
+ ]
1429
1531
  },
1430
1532
  {
1533
+ "name": "mainUtxo",
1534
+ "type": "tuple",
1535
+ "internalType": "struct BitcoinTx.UTXO",
1431
1536
  "components": [
1432
1537
  {
1433
- "internalType": "bytes32",
1434
1538
  "name": "txHash",
1435
- "type": "bytes32"
1539
+ "type": "bytes32",
1540
+ "internalType": "bytes32"
1436
1541
  },
1437
1542
  {
1438
- "internalType": "uint32",
1439
1543
  "name": "txOutputIndex",
1440
- "type": "uint32"
1544
+ "type": "uint32",
1545
+ "internalType": "uint32"
1441
1546
  },
1442
1547
  {
1443
- "internalType": "uint64",
1444
1548
  "name": "txOutputValue",
1445
- "type": "uint64"
1549
+ "type": "uint64",
1550
+ "internalType": "uint64"
1446
1551
  }
1447
- ],
1448
- "internalType": "struct BitcoinTx.UTXO",
1449
- "name": "walletMainUtxo",
1450
- "type": "tuple"
1451
- }
1452
- ],
1453
- "name": "notifyWalletCloseable",
1454
- "outputs": [],
1455
- "stateMutability": "nonpayable",
1456
- "type": "function"
1457
- },
1458
- {
1459
- "inputs": [
1552
+ ]
1553
+ },
1460
1554
  {
1461
- "internalType": "bytes20",
1462
1555
  "name": "walletPubKeyHash",
1463
- "type": "bytes20"
1556
+ "type": "bytes20",
1557
+ "internalType": "bytes20"
1464
1558
  }
1465
1559
  ],
1466
- "name": "notifyWalletClosingPeriodElapsed",
1467
1560
  "outputs": [],
1468
- "stateMutability": "nonpayable",
1469
- "type": "function"
1561
+ "stateMutability": "nonpayable"
1470
1562
  },
1471
1563
  {
1564
+ "type": "function",
1565
+ "name": "timedOutRedemptions",
1472
1566
  "inputs": [
1473
1567
  {
1474
- "internalType": "uint256",
1475
1568
  "name": "redemptionKey",
1476
- "type": "uint256"
1569
+ "type": "uint256",
1570
+ "internalType": "uint256"
1477
1571
  }
1478
1572
  ],
1479
- "name": "pendingRedemptions",
1480
1573
  "outputs": [
1481
1574
  {
1575
+ "name": "",
1576
+ "type": "tuple",
1577
+ "internalType": "struct Redemption.RedemptionRequest",
1482
1578
  "components": [
1483
1579
  {
1484
- "internalType": "address",
1485
1580
  "name": "redeemer",
1486
- "type": "address"
1581
+ "type": "address",
1582
+ "internalType": "address"
1487
1583
  },
1488
1584
  {
1489
- "internalType": "uint64",
1490
1585
  "name": "requestedAmount",
1491
- "type": "uint64"
1586
+ "type": "uint64",
1587
+ "internalType": "uint64"
1492
1588
  },
1493
1589
  {
1494
- "internalType": "uint64",
1495
1590
  "name": "treasuryFee",
1496
- "type": "uint64"
1591
+ "type": "uint64",
1592
+ "internalType": "uint64"
1497
1593
  },
1498
1594
  {
1499
- "internalType": "uint64",
1500
1595
  "name": "txMaxFee",
1501
- "type": "uint64"
1596
+ "type": "uint64",
1597
+ "internalType": "uint64"
1502
1598
  },
1503
1599
  {
1504
- "internalType": "uint32",
1505
1600
  "name": "requestedAt",
1506
- "type": "uint32"
1601
+ "type": "uint32",
1602
+ "internalType": "uint32"
1507
1603
  }
1508
- ],
1509
- "internalType": "struct Redemption.RedemptionRequest",
1510
- "name": "",
1511
- "type": "tuple"
1604
+ ]
1512
1605
  }
1513
1606
  ],
1514
- "stateMutability": "view",
1515
- "type": "function"
1607
+ "stateMutability": "view"
1516
1608
  },
1517
1609
  {
1610
+ "type": "function",
1611
+ "name": "transferGovernance",
1518
1612
  "inputs": [
1519
1613
  {
1520
- "internalType": "address",
1521
- "name": "balanceOwner",
1522
- "type": "address"
1523
- },
1524
- {
1525
- "internalType": "uint256",
1526
- "name": "amount",
1527
- "type": "uint256"
1528
- },
1529
- {
1530
- "internalType": "bytes",
1531
- "name": "redemptionData",
1532
- "type": "bytes"
1614
+ "name": "newGovernance",
1615
+ "type": "address",
1616
+ "internalType": "address"
1533
1617
  }
1534
1618
  ],
1535
- "name": "receiveBalanceApproval",
1536
1619
  "outputs": [],
1537
- "stateMutability": "nonpayable",
1538
- "type": "function"
1620
+ "stateMutability": "nonpayable"
1539
1621
  },
1540
1622
  {
1623
+ "type": "function",
1624
+ "name": "treasury",
1541
1625
  "inputs": [],
1542
- "name": "redemptionParameters",
1543
1626
  "outputs": [
1544
1627
  {
1545
- "internalType": "uint64",
1546
- "name": "redemptionDustThreshold",
1547
- "type": "uint64"
1548
- },
1549
- {
1550
- "internalType": "uint64",
1551
- "name": "redemptionTreasuryFeeDivisor",
1552
- "type": "uint64"
1553
- },
1554
- {
1555
- "internalType": "uint64",
1556
- "name": "redemptionTxMaxFee",
1557
- "type": "uint64"
1558
- },
1559
- {
1560
- "internalType": "uint64",
1561
- "name": "redemptionTxMaxTotalFee",
1562
- "type": "uint64"
1563
- },
1564
- {
1565
- "internalType": "uint32",
1566
- "name": "redemptionTimeout",
1567
- "type": "uint32"
1568
- },
1569
- {
1570
- "internalType": "uint96",
1571
- "name": "redemptionTimeoutSlashingAmount",
1572
- "type": "uint96"
1573
- },
1574
- {
1575
- "internalType": "uint32",
1576
- "name": "redemptionTimeoutNotifierRewardMultiplier",
1577
- "type": "uint32"
1628
+ "name": "",
1629
+ "type": "address",
1630
+ "internalType": "address"
1578
1631
  }
1579
1632
  ],
1580
- "stateMutability": "view",
1581
- "type": "function"
1633
+ "stateMutability": "view"
1582
1634
  },
1583
1635
  {
1584
- "inputs": [
1636
+ "type": "function",
1637
+ "name": "txProofDifficultyFactor",
1638
+ "inputs": [],
1639
+ "outputs": [
1585
1640
  {
1586
- "components": [
1587
- {
1588
- "internalType": "bytes32",
1589
- "name": "txHash",
1590
- "type": "bytes32"
1591
- },
1592
- {
1593
- "internalType": "uint32",
1594
- "name": "txOutputIndex",
1595
- "type": "uint32"
1596
- },
1597
- {
1598
- "internalType": "uint64",
1599
- "name": "txOutputValue",
1600
- "type": "uint64"
1601
- }
1602
- ],
1603
- "internalType": "struct BitcoinTx.UTXO",
1604
- "name": "activeWalletMainUtxo",
1605
- "type": "tuple"
1641
+ "name": "",
1642
+ "type": "uint256",
1643
+ "internalType": "uint256"
1606
1644
  }
1607
1645
  ],
1608
- "name": "requestNewWallet",
1609
- "outputs": [],
1610
- "stateMutability": "nonpayable",
1611
- "type": "function"
1646
+ "stateMutability": "view"
1612
1647
  },
1613
1648
  {
1649
+ "type": "function",
1650
+ "name": "updateDepositParameters",
1614
1651
  "inputs": [
1615
1652
  {
1616
- "internalType": "bytes20",
1617
- "name": "walletPubKeyHash",
1618
- "type": "bytes20"
1653
+ "name": "depositDustThreshold",
1654
+ "type": "uint64",
1655
+ "internalType": "uint64"
1619
1656
  },
1620
1657
  {
1621
- "components": [
1622
- {
1623
- "internalType": "bytes32",
1624
- "name": "txHash",
1625
- "type": "bytes32"
1626
- },
1627
- {
1628
- "internalType": "uint32",
1629
- "name": "txOutputIndex",
1630
- "type": "uint32"
1631
- },
1632
- {
1633
- "internalType": "uint64",
1634
- "name": "txOutputValue",
1635
- "type": "uint64"
1636
- }
1637
- ],
1638
- "internalType": "struct BitcoinTx.UTXO",
1639
- "name": "mainUtxo",
1640
- "type": "tuple"
1658
+ "name": "depositTreasuryFeeDivisor",
1659
+ "type": "uint64",
1660
+ "internalType": "uint64"
1641
1661
  },
1642
1662
  {
1643
- "internalType": "bytes",
1644
- "name": "redeemerOutputScript",
1645
- "type": "bytes"
1663
+ "name": "depositTxMaxFee",
1664
+ "type": "uint64",
1665
+ "internalType": "uint64"
1646
1666
  },
1647
1667
  {
1648
- "internalType": "uint64",
1649
- "name": "amount",
1650
- "type": "uint64"
1668
+ "name": "depositRevealAheadPeriod",
1669
+ "type": "uint32",
1670
+ "internalType": "uint32"
1651
1671
  }
1652
1672
  ],
1653
- "name": "requestRedemption",
1654
1673
  "outputs": [],
1655
- "stateMutability": "nonpayable",
1656
- "type": "function"
1674
+ "stateMutability": "nonpayable"
1657
1675
  },
1658
1676
  {
1677
+ "type": "function",
1678
+ "name": "updateFraudParameters",
1659
1679
  "inputs": [
1660
1680
  {
1661
- "internalType": "bytes20",
1662
- "name": "walletPubKeyHash",
1663
- "type": "bytes20"
1664
- }
1665
- ],
1666
- "name": "resetMovingFundsTimeout",
1667
- "outputs": [],
1668
- "stateMutability": "nonpayable",
1669
- "type": "function"
1670
- },
1671
- {
1672
- "inputs": [
1681
+ "name": "fraudChallengeDepositAmount",
1682
+ "type": "uint96",
1683
+ "internalType": "uint96"
1684
+ },
1673
1685
  {
1674
- "components": [
1675
- {
1676
- "internalType": "bytes4",
1677
- "name": "version",
1678
- "type": "bytes4"
1679
- },
1680
- {
1681
- "internalType": "bytes",
1682
- "name": "inputVector",
1683
- "type": "bytes"
1684
- },
1685
- {
1686
- "internalType": "bytes",
1687
- "name": "outputVector",
1688
- "type": "bytes"
1689
- },
1690
- {
1691
- "internalType": "bytes4",
1692
- "name": "locktime",
1693
- "type": "bytes4"
1694
- }
1695
- ],
1696
- "internalType": "struct BitcoinTx.Info",
1697
- "name": "fundingTx",
1698
- "type": "tuple"
1686
+ "name": "fraudChallengeDefeatTimeout",
1687
+ "type": "uint32",
1688
+ "internalType": "uint32"
1699
1689
  },
1700
1690
  {
1701
- "components": [
1702
- {
1703
- "internalType": "uint32",
1704
- "name": "fundingOutputIndex",
1705
- "type": "uint32"
1706
- },
1707
- {
1708
- "internalType": "bytes8",
1709
- "name": "blindingFactor",
1710
- "type": "bytes8"
1711
- },
1712
- {
1713
- "internalType": "bytes20",
1714
- "name": "walletPubKeyHash",
1715
- "type": "bytes20"
1716
- },
1717
- {
1718
- "internalType": "bytes20",
1719
- "name": "refundPubKeyHash",
1720
- "type": "bytes20"
1721
- },
1722
- {
1723
- "internalType": "bytes4",
1724
- "name": "refundLocktime",
1725
- "type": "bytes4"
1726
- },
1727
- {
1728
- "internalType": "address",
1729
- "name": "vault",
1730
- "type": "address"
1731
- }
1732
- ],
1733
- "internalType": "struct Deposit.DepositRevealInfo",
1734
- "name": "reveal",
1735
- "type": "tuple"
1691
+ "name": "fraudSlashingAmount",
1692
+ "type": "uint96",
1693
+ "internalType": "uint96"
1694
+ },
1695
+ {
1696
+ "name": "fraudNotifierRewardMultiplier",
1697
+ "type": "uint32",
1698
+ "internalType": "uint32"
1736
1699
  }
1737
1700
  ],
1738
- "name": "revealDeposit",
1739
1701
  "outputs": [],
1740
- "stateMutability": "nonpayable",
1741
- "type": "function"
1702
+ "stateMutability": "nonpayable"
1742
1703
  },
1743
1704
  {
1705
+ "type": "function",
1706
+ "name": "updateMovingFundsParameters",
1744
1707
  "inputs": [
1745
1708
  {
1746
- "components": [
1747
- {
1748
- "internalType": "bytes4",
1749
- "name": "version",
1750
- "type": "bytes4"
1751
- },
1752
- {
1753
- "internalType": "bytes",
1754
- "name": "inputVector",
1755
- "type": "bytes"
1756
- },
1757
- {
1758
- "internalType": "bytes",
1759
- "name": "outputVector",
1760
- "type": "bytes"
1761
- },
1762
- {
1763
- "internalType": "bytes4",
1764
- "name": "locktime",
1765
- "type": "bytes4"
1766
- }
1767
- ],
1768
- "internalType": "struct BitcoinTx.Info",
1769
- "name": "fundingTx",
1770
- "type": "tuple"
1709
+ "name": "movingFundsTxMaxTotalFee",
1710
+ "type": "uint64",
1711
+ "internalType": "uint64"
1712
+ },
1713
+ {
1714
+ "name": "movingFundsDustThreshold",
1715
+ "type": "uint64",
1716
+ "internalType": "uint64"
1717
+ },
1718
+ {
1719
+ "name": "movingFundsTimeoutResetDelay",
1720
+ "type": "uint32",
1721
+ "internalType": "uint32"
1722
+ },
1723
+ {
1724
+ "name": "movingFundsTimeout",
1725
+ "type": "uint32",
1726
+ "internalType": "uint32"
1727
+ },
1728
+ {
1729
+ "name": "movingFundsTimeoutSlashingAmount",
1730
+ "type": "uint96",
1731
+ "internalType": "uint96"
1732
+ },
1733
+ {
1734
+ "name": "movingFundsTimeoutNotifierRewardMultiplier",
1735
+ "type": "uint32",
1736
+ "internalType": "uint32"
1737
+ },
1738
+ {
1739
+ "name": "movingFundsCommitmentGasOffset",
1740
+ "type": "uint16",
1741
+ "internalType": "uint16"
1742
+ },
1743
+ {
1744
+ "name": "movedFundsSweepTxMaxTotalFee",
1745
+ "type": "uint64",
1746
+ "internalType": "uint64"
1747
+ },
1748
+ {
1749
+ "name": "movedFundsSweepTimeout",
1750
+ "type": "uint32",
1751
+ "internalType": "uint32"
1771
1752
  },
1772
1753
  {
1773
- "components": [
1774
- {
1775
- "internalType": "uint32",
1776
- "name": "fundingOutputIndex",
1777
- "type": "uint32"
1778
- },
1779
- {
1780
- "internalType": "bytes8",
1781
- "name": "blindingFactor",
1782
- "type": "bytes8"
1783
- },
1784
- {
1785
- "internalType": "bytes20",
1786
- "name": "walletPubKeyHash",
1787
- "type": "bytes20"
1788
- },
1789
- {
1790
- "internalType": "bytes20",
1791
- "name": "refundPubKeyHash",
1792
- "type": "bytes20"
1793
- },
1794
- {
1795
- "internalType": "bytes4",
1796
- "name": "refundLocktime",
1797
- "type": "bytes4"
1798
- },
1799
- {
1800
- "internalType": "address",
1801
- "name": "vault",
1802
- "type": "address"
1803
- }
1804
- ],
1805
- "internalType": "struct Deposit.DepositRevealInfo",
1806
- "name": "reveal",
1807
- "type": "tuple"
1754
+ "name": "movedFundsSweepTimeoutSlashingAmount",
1755
+ "type": "uint96",
1756
+ "internalType": "uint96"
1808
1757
  },
1809
1758
  {
1810
- "internalType": "bytes32",
1811
- "name": "extraData",
1812
- "type": "bytes32"
1759
+ "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
1760
+ "type": "uint32",
1761
+ "internalType": "uint32"
1813
1762
  }
1814
1763
  ],
1815
- "name": "revealDepositWithExtraData",
1816
1764
  "outputs": [],
1817
- "stateMutability": "nonpayable",
1818
- "type": "function"
1765
+ "stateMutability": "nonpayable"
1819
1766
  },
1820
1767
  {
1768
+ "type": "function",
1769
+ "name": "updateRedemptionParameters",
1821
1770
  "inputs": [
1822
1771
  {
1823
- "internalType": "address",
1824
- "name": "redemptionWatchtower",
1825
- "type": "address"
1772
+ "name": "redemptionDustThreshold",
1773
+ "type": "uint64",
1774
+ "internalType": "uint64"
1775
+ },
1776
+ {
1777
+ "name": "redemptionTreasuryFeeDivisor",
1778
+ "type": "uint64",
1779
+ "internalType": "uint64"
1780
+ },
1781
+ {
1782
+ "name": "redemptionTxMaxFee",
1783
+ "type": "uint64",
1784
+ "internalType": "uint64"
1785
+ },
1786
+ {
1787
+ "name": "redemptionTxMaxTotalFee",
1788
+ "type": "uint64",
1789
+ "internalType": "uint64"
1790
+ },
1791
+ {
1792
+ "name": "redemptionTimeout",
1793
+ "type": "uint32",
1794
+ "internalType": "uint32"
1795
+ },
1796
+ {
1797
+ "name": "redemptionTimeoutSlashingAmount",
1798
+ "type": "uint96",
1799
+ "internalType": "uint96"
1800
+ },
1801
+ {
1802
+ "name": "redemptionTimeoutNotifierRewardMultiplier",
1803
+ "type": "uint32",
1804
+ "internalType": "uint32"
1826
1805
  }
1827
1806
  ],
1828
- "name": "setRedemptionWatchtower",
1829
1807
  "outputs": [],
1830
- "stateMutability": "nonpayable",
1831
- "type": "function"
1808
+ "stateMutability": "nonpayable"
1832
1809
  },
1833
1810
  {
1811
+ "type": "function",
1812
+ "name": "updateTreasury",
1834
1813
  "inputs": [
1835
1814
  {
1836
- "internalType": "address",
1837
- "name": "spvMaintainer",
1838
- "type": "address"
1839
- },
1840
- {
1841
- "internalType": "bool",
1842
- "name": "isTrusted",
1843
- "type": "bool"
1815
+ "name": "treasury",
1816
+ "type": "address",
1817
+ "internalType": "address"
1844
1818
  }
1845
1819
  ],
1846
- "name": "setSpvMaintainerStatus",
1847
1820
  "outputs": [],
1848
- "stateMutability": "nonpayable",
1849
- "type": "function"
1821
+ "stateMutability": "nonpayable"
1850
1822
  },
1851
1823
  {
1824
+ "type": "function",
1825
+ "name": "updateWalletParameters",
1852
1826
  "inputs": [
1853
1827
  {
1854
- "internalType": "address",
1855
- "name": "vault",
1856
- "type": "address"
1828
+ "name": "walletCreationPeriod",
1829
+ "type": "uint32",
1830
+ "internalType": "uint32"
1857
1831
  },
1858
1832
  {
1859
- "internalType": "bool",
1860
- "name": "isTrusted",
1861
- "type": "bool"
1833
+ "name": "walletCreationMinBtcBalance",
1834
+ "type": "uint64",
1835
+ "internalType": "uint64"
1836
+ },
1837
+ {
1838
+ "name": "walletCreationMaxBtcBalance",
1839
+ "type": "uint64",
1840
+ "internalType": "uint64"
1841
+ },
1842
+ {
1843
+ "name": "walletClosureMinBtcBalance",
1844
+ "type": "uint64",
1845
+ "internalType": "uint64"
1846
+ },
1847
+ {
1848
+ "name": "walletMaxAge",
1849
+ "type": "uint32",
1850
+ "internalType": "uint32"
1851
+ },
1852
+ {
1853
+ "name": "walletMaxBtcTransfer",
1854
+ "type": "uint64",
1855
+ "internalType": "uint64"
1856
+ },
1857
+ {
1858
+ "name": "walletClosingPeriod",
1859
+ "type": "uint32",
1860
+ "internalType": "uint32"
1862
1861
  }
1863
1862
  ],
1864
- "name": "setVaultStatus",
1865
1863
  "outputs": [],
1866
- "stateMutability": "nonpayable",
1867
- "type": "function"
1864
+ "stateMutability": "nonpayable"
1868
1865
  },
1869
1866
  {
1870
- "inputs": [
1871
- {
1872
- "internalType": "uint256",
1873
- "name": "utxoKey",
1874
- "type": "uint256"
1875
- }
1876
- ],
1877
- "name": "spentMainUTXOs",
1867
+ "type": "function",
1868
+ "name": "walletParameters",
1869
+ "inputs": [],
1878
1870
  "outputs": [
1879
1871
  {
1880
- "internalType": "bool",
1881
- "name": "",
1882
- "type": "bool"
1872
+ "name": "walletCreationPeriod",
1873
+ "type": "uint32",
1874
+ "internalType": "uint32"
1875
+ },
1876
+ {
1877
+ "name": "walletCreationMinBtcBalance",
1878
+ "type": "uint64",
1879
+ "internalType": "uint64"
1880
+ },
1881
+ {
1882
+ "name": "walletCreationMaxBtcBalance",
1883
+ "type": "uint64",
1884
+ "internalType": "uint64"
1885
+ },
1886
+ {
1887
+ "name": "walletClosureMinBtcBalance",
1888
+ "type": "uint64",
1889
+ "internalType": "uint64"
1890
+ },
1891
+ {
1892
+ "name": "walletMaxAge",
1893
+ "type": "uint32",
1894
+ "internalType": "uint32"
1895
+ },
1896
+ {
1897
+ "name": "walletMaxBtcTransfer",
1898
+ "type": "uint64",
1899
+ "internalType": "uint64"
1900
+ },
1901
+ {
1902
+ "name": "walletClosingPeriod",
1903
+ "type": "uint32",
1904
+ "internalType": "uint32"
1883
1905
  }
1884
1906
  ],
1885
- "stateMutability": "view",
1886
- "type": "function"
1907
+ "stateMutability": "view"
1887
1908
  },
1888
1909
  {
1910
+ "type": "function",
1911
+ "name": "wallets",
1889
1912
  "inputs": [
1890
1913
  {
1914
+ "name": "walletPubKeyHash",
1915
+ "type": "bytes20",
1916
+ "internalType": "bytes20"
1917
+ }
1918
+ ],
1919
+ "outputs": [
1920
+ {
1921
+ "name": "",
1922
+ "type": "tuple",
1923
+ "internalType": "struct Wallets.Wallet",
1891
1924
  "components": [
1892
1925
  {
1893
- "internalType": "bytes4",
1894
- "name": "version",
1895
- "type": "bytes4"
1926
+ "name": "ecdsaWalletID",
1927
+ "type": "bytes32",
1928
+ "internalType": "bytes32"
1896
1929
  },
1897
1930
  {
1898
- "internalType": "bytes",
1899
- "name": "inputVector",
1900
- "type": "bytes"
1931
+ "name": "mainUtxoHash",
1932
+ "type": "bytes32",
1933
+ "internalType": "bytes32"
1901
1934
  },
1902
1935
  {
1903
- "internalType": "bytes",
1904
- "name": "outputVector",
1905
- "type": "bytes"
1936
+ "name": "pendingRedemptionsValue",
1937
+ "type": "uint64",
1938
+ "internalType": "uint64"
1906
1939
  },
1907
1940
  {
1908
- "internalType": "bytes4",
1909
- "name": "locktime",
1910
- "type": "bytes4"
1911
- }
1912
- ],
1913
- "internalType": "struct BitcoinTx.Info",
1914
- "name": "sweepTx",
1915
- "type": "tuple"
1916
- },
1917
- {
1918
- "components": [
1941
+ "name": "createdAt",
1942
+ "type": "uint32",
1943
+ "internalType": "uint32"
1944
+ },
1919
1945
  {
1920
- "internalType": "bytes",
1921
- "name": "merkleProof",
1922
- "type": "bytes"
1946
+ "name": "movingFundsRequestedAt",
1947
+ "type": "uint32",
1948
+ "internalType": "uint32"
1923
1949
  },
1924
1950
  {
1925
- "internalType": "uint256",
1926
- "name": "txIndexInBlock",
1927
- "type": "uint256"
1951
+ "name": "closingStartedAt",
1952
+ "type": "uint32",
1953
+ "internalType": "uint32"
1928
1954
  },
1929
1955
  {
1930
- "internalType": "bytes",
1931
- "name": "bitcoinHeaders",
1932
- "type": "bytes"
1956
+ "name": "pendingMovedFundsSweepRequestsCount",
1957
+ "type": "uint32",
1958
+ "internalType": "uint32"
1933
1959
  },
1934
1960
  {
1935
- "internalType": "bytes32",
1936
- "name": "coinbasePreimage",
1937
- "type": "bytes32"
1961
+ "name": "state",
1962
+ "type": "uint8",
1963
+ "internalType": "enum Wallets.WalletState"
1938
1964
  },
1939
1965
  {
1940
- "internalType": "bytes",
1941
- "name": "coinbaseProof",
1942
- "type": "bytes"
1966
+ "name": "movingFundsTargetWalletsCommitmentHash",
1967
+ "type": "bytes32",
1968
+ "internalType": "bytes32"
1943
1969
  }
1944
- ],
1945
- "internalType": "struct BitcoinTx.Proof",
1946
- "name": "sweepProof",
1947
- "type": "tuple"
1970
+ ]
1971
+ }
1972
+ ],
1973
+ "stateMutability": "view"
1974
+ },
1975
+ {
1976
+ "type": "event",
1977
+ "name": "DepositParametersUpdated",
1978
+ "inputs": [
1979
+ {
1980
+ "name": "depositDustThreshold",
1981
+ "type": "uint64",
1982
+ "indexed": false,
1983
+ "internalType": "uint64"
1948
1984
  },
1949
1985
  {
1950
- "components": [
1951
- {
1952
- "internalType": "bytes32",
1953
- "name": "txHash",
1954
- "type": "bytes32"
1955
- },
1956
- {
1957
- "internalType": "uint32",
1958
- "name": "txOutputIndex",
1959
- "type": "uint32"
1960
- },
1961
- {
1962
- "internalType": "uint64",
1963
- "name": "txOutputValue",
1964
- "type": "uint64"
1965
- }
1966
- ],
1967
- "internalType": "struct BitcoinTx.UTXO",
1968
- "name": "mainUtxo",
1969
- "type": "tuple"
1986
+ "name": "depositTreasuryFeeDivisor",
1987
+ "type": "uint64",
1988
+ "indexed": false,
1989
+ "internalType": "uint64"
1970
1990
  },
1971
1991
  {
1972
- "internalType": "address",
1973
- "name": "vault",
1974
- "type": "address"
1992
+ "name": "depositTxMaxFee",
1993
+ "type": "uint64",
1994
+ "indexed": false,
1995
+ "internalType": "uint64"
1996
+ },
1997
+ {
1998
+ "name": "depositRevealAheadPeriod",
1999
+ "type": "uint32",
2000
+ "indexed": false,
2001
+ "internalType": "uint32"
1975
2002
  }
1976
2003
  ],
1977
- "name": "submitDepositSweepProof",
1978
- "outputs": [],
1979
- "stateMutability": "nonpayable",
1980
- "type": "function"
2004
+ "anonymous": false
1981
2005
  },
1982
2006
  {
2007
+ "type": "event",
2008
+ "name": "DepositRevealed",
1983
2009
  "inputs": [
1984
2010
  {
1985
- "internalType": "bytes",
1986
- "name": "walletPublicKey",
1987
- "type": "bytes"
2011
+ "name": "fundingTxHash",
2012
+ "type": "bytes32",
2013
+ "indexed": false,
2014
+ "internalType": "bytes32"
1988
2015
  },
1989
2016
  {
1990
- "internalType": "bytes",
1991
- "name": "preimageSha256",
1992
- "type": "bytes"
2017
+ "name": "fundingOutputIndex",
2018
+ "type": "uint32",
2019
+ "indexed": false,
2020
+ "internalType": "uint32"
1993
2021
  },
1994
2022
  {
1995
- "components": [
1996
- {
1997
- "internalType": "bytes32",
1998
- "name": "r",
1999
- "type": "bytes32"
2000
- },
2001
- {
2002
- "internalType": "bytes32",
2003
- "name": "s",
2004
- "type": "bytes32"
2005
- },
2006
- {
2007
- "internalType": "uint8",
2008
- "name": "v",
2009
- "type": "uint8"
2010
- }
2011
- ],
2012
- "internalType": "struct BitcoinTx.RSVSignature",
2013
- "name": "signature",
2014
- "type": "tuple"
2023
+ "name": "depositor",
2024
+ "type": "address",
2025
+ "indexed": true,
2026
+ "internalType": "address"
2027
+ },
2028
+ {
2029
+ "name": "amount",
2030
+ "type": "uint64",
2031
+ "indexed": false,
2032
+ "internalType": "uint64"
2033
+ },
2034
+ {
2035
+ "name": "blindingFactor",
2036
+ "type": "bytes8",
2037
+ "indexed": false,
2038
+ "internalType": "bytes8"
2039
+ },
2040
+ {
2041
+ "name": "walletPubKeyHash",
2042
+ "type": "bytes20",
2043
+ "indexed": true,
2044
+ "internalType": "bytes20"
2045
+ },
2046
+ {
2047
+ "name": "refundPubKeyHash",
2048
+ "type": "bytes20",
2049
+ "indexed": false,
2050
+ "internalType": "bytes20"
2051
+ },
2052
+ {
2053
+ "name": "refundLocktime",
2054
+ "type": "bytes4",
2055
+ "indexed": false,
2056
+ "internalType": "bytes4"
2057
+ },
2058
+ {
2059
+ "name": "vault",
2060
+ "type": "address",
2061
+ "indexed": false,
2062
+ "internalType": "address"
2015
2063
  }
2016
2064
  ],
2017
- "name": "submitFraudChallenge",
2018
- "outputs": [],
2019
- "stateMutability": "payable",
2020
- "type": "function"
2065
+ "anonymous": false
2021
2066
  },
2022
2067
  {
2068
+ "type": "event",
2069
+ "name": "DepositVaultFixed",
2023
2070
  "inputs": [
2024
2071
  {
2025
- "components": [
2026
- {
2027
- "internalType": "bytes4",
2028
- "name": "version",
2029
- "type": "bytes4"
2030
- },
2031
- {
2032
- "internalType": "bytes",
2033
- "name": "inputVector",
2034
- "type": "bytes"
2035
- },
2036
- {
2037
- "internalType": "bytes",
2038
- "name": "outputVector",
2039
- "type": "bytes"
2040
- },
2041
- {
2042
- "internalType": "bytes4",
2043
- "name": "locktime",
2044
- "type": "bytes4"
2045
- }
2046
- ],
2047
- "internalType": "struct BitcoinTx.Info",
2048
- "name": "sweepTx",
2049
- "type": "tuple"
2050
- },
2051
- {
2052
- "components": [
2053
- {
2054
- "internalType": "bytes",
2055
- "name": "merkleProof",
2056
- "type": "bytes"
2057
- },
2058
- {
2059
- "internalType": "uint256",
2060
- "name": "txIndexInBlock",
2061
- "type": "uint256"
2062
- },
2063
- {
2064
- "internalType": "bytes",
2065
- "name": "bitcoinHeaders",
2066
- "type": "bytes"
2067
- },
2068
- {
2069
- "internalType": "bytes32",
2070
- "name": "coinbasePreimage",
2071
- "type": "bytes32"
2072
- },
2073
- {
2074
- "internalType": "bytes",
2075
- "name": "coinbaseProof",
2076
- "type": "bytes"
2077
- }
2078
- ],
2079
- "internalType": "struct BitcoinTx.Proof",
2080
- "name": "sweepProof",
2081
- "type": "tuple"
2072
+ "name": "depositKey",
2073
+ "type": "uint256",
2074
+ "indexed": true,
2075
+ "internalType": "uint256"
2082
2076
  },
2083
2077
  {
2084
- "components": [
2085
- {
2086
- "internalType": "bytes32",
2087
- "name": "txHash",
2088
- "type": "bytes32"
2089
- },
2090
- {
2091
- "internalType": "uint32",
2092
- "name": "txOutputIndex",
2093
- "type": "uint32"
2094
- },
2095
- {
2096
- "internalType": "uint64",
2097
- "name": "txOutputValue",
2098
- "type": "uint64"
2099
- }
2100
- ],
2101
- "internalType": "struct BitcoinTx.UTXO",
2102
- "name": "mainUtxo",
2103
- "type": "tuple"
2078
+ "name": "newVault",
2079
+ "type": "address",
2080
+ "indexed": false,
2081
+ "internalType": "address"
2104
2082
  }
2105
2083
  ],
2106
- "name": "submitMovedFundsSweepProof",
2107
- "outputs": [],
2108
- "stateMutability": "nonpayable",
2109
- "type": "function"
2084
+ "anonymous": false
2110
2085
  },
2111
2086
  {
2087
+ "type": "event",
2088
+ "name": "DepositsSwept",
2112
2089
  "inputs": [
2113
2090
  {
2114
- "internalType": "bytes20",
2115
2091
  "name": "walletPubKeyHash",
2116
- "type": "bytes20"
2092
+ "type": "bytes20",
2093
+ "indexed": false,
2094
+ "internalType": "bytes20"
2117
2095
  },
2118
2096
  {
2119
- "components": [
2120
- {
2121
- "internalType": "bytes32",
2122
- "name": "txHash",
2123
- "type": "bytes32"
2124
- },
2125
- {
2126
- "internalType": "uint32",
2127
- "name": "txOutputIndex",
2128
- "type": "uint32"
2129
- },
2130
- {
2131
- "internalType": "uint64",
2132
- "name": "txOutputValue",
2133
- "type": "uint64"
2134
- }
2135
- ],
2136
- "internalType": "struct BitcoinTx.UTXO",
2137
- "name": "walletMainUtxo",
2138
- "type": "tuple"
2139
- },
2097
+ "name": "sweepTxHash",
2098
+ "type": "bytes32",
2099
+ "indexed": false,
2100
+ "internalType": "bytes32"
2101
+ }
2102
+ ],
2103
+ "anonymous": false
2104
+ },
2105
+ {
2106
+ "type": "event",
2107
+ "name": "FraudChallengeDefeatTimedOut",
2108
+ "inputs": [
2140
2109
  {
2141
- "internalType": "uint32[]",
2142
- "name": "walletMembersIDs",
2143
- "type": "uint32[]"
2110
+ "name": "walletPubKeyHash",
2111
+ "type": "bytes20",
2112
+ "indexed": true,
2113
+ "internalType": "bytes20"
2144
2114
  },
2145
2115
  {
2146
- "internalType": "uint256",
2147
- "name": "walletMemberIndex",
2148
- "type": "uint256"
2116
+ "name": "sighash",
2117
+ "type": "bytes32",
2118
+ "indexed": false,
2119
+ "internalType": "bytes32"
2120
+ }
2121
+ ],
2122
+ "anonymous": false
2123
+ },
2124
+ {
2125
+ "type": "event",
2126
+ "name": "FraudChallengeDefeated",
2127
+ "inputs": [
2128
+ {
2129
+ "name": "walletPubKeyHash",
2130
+ "type": "bytes20",
2131
+ "indexed": true,
2132
+ "internalType": "bytes20"
2149
2133
  },
2150
2134
  {
2151
- "internalType": "bytes20[]",
2152
- "name": "targetWallets",
2153
- "type": "bytes20[]"
2135
+ "name": "sighash",
2136
+ "type": "bytes32",
2137
+ "indexed": false,
2138
+ "internalType": "bytes32"
2154
2139
  }
2155
2140
  ],
2156
- "name": "submitMovingFundsCommitment",
2157
- "outputs": [],
2158
- "stateMutability": "nonpayable",
2159
- "type": "function"
2141
+ "anonymous": false
2160
2142
  },
2161
2143
  {
2144
+ "type": "event",
2145
+ "name": "FraudChallengeSubmitted",
2162
2146
  "inputs": [
2163
2147
  {
2164
- "components": [
2165
- {
2166
- "internalType": "bytes4",
2167
- "name": "version",
2168
- "type": "bytes4"
2169
- },
2170
- {
2171
- "internalType": "bytes",
2172
- "name": "inputVector",
2173
- "type": "bytes"
2174
- },
2175
- {
2176
- "internalType": "bytes",
2177
- "name": "outputVector",
2178
- "type": "bytes"
2179
- },
2180
- {
2181
- "internalType": "bytes4",
2182
- "name": "locktime",
2183
- "type": "bytes4"
2184
- }
2185
- ],
2186
- "internalType": "struct BitcoinTx.Info",
2187
- "name": "movingFundsTx",
2188
- "type": "tuple"
2148
+ "name": "walletPubKeyHash",
2149
+ "type": "bytes20",
2150
+ "indexed": true,
2151
+ "internalType": "bytes20"
2189
2152
  },
2190
2153
  {
2191
- "components": [
2192
- {
2193
- "internalType": "bytes",
2194
- "name": "merkleProof",
2195
- "type": "bytes"
2196
- },
2197
- {
2198
- "internalType": "uint256",
2199
- "name": "txIndexInBlock",
2200
- "type": "uint256"
2201
- },
2202
- {
2203
- "internalType": "bytes",
2204
- "name": "bitcoinHeaders",
2205
- "type": "bytes"
2206
- },
2207
- {
2208
- "internalType": "bytes32",
2209
- "name": "coinbasePreimage",
2210
- "type": "bytes32"
2211
- },
2212
- {
2213
- "internalType": "bytes",
2214
- "name": "coinbaseProof",
2215
- "type": "bytes"
2216
- }
2217
- ],
2218
- "internalType": "struct BitcoinTx.Proof",
2219
- "name": "movingFundsProof",
2220
- "type": "tuple"
2154
+ "name": "sighash",
2155
+ "type": "bytes32",
2156
+ "indexed": false,
2157
+ "internalType": "bytes32"
2221
2158
  },
2222
2159
  {
2223
- "components": [
2224
- {
2225
- "internalType": "bytes32",
2226
- "name": "txHash",
2227
- "type": "bytes32"
2228
- },
2229
- {
2230
- "internalType": "uint32",
2231
- "name": "txOutputIndex",
2232
- "type": "uint32"
2233
- },
2234
- {
2235
- "internalType": "uint64",
2236
- "name": "txOutputValue",
2237
- "type": "uint64"
2238
- }
2239
- ],
2240
- "internalType": "struct BitcoinTx.UTXO",
2241
- "name": "mainUtxo",
2242
- "type": "tuple"
2160
+ "name": "v",
2161
+ "type": "uint8",
2162
+ "indexed": false,
2163
+ "internalType": "uint8"
2243
2164
  },
2244
2165
  {
2245
- "internalType": "bytes20",
2246
- "name": "walletPubKeyHash",
2247
- "type": "bytes20"
2166
+ "name": "r",
2167
+ "type": "bytes32",
2168
+ "indexed": false,
2169
+ "internalType": "bytes32"
2170
+ },
2171
+ {
2172
+ "name": "s",
2173
+ "type": "bytes32",
2174
+ "indexed": false,
2175
+ "internalType": "bytes32"
2248
2176
  }
2249
2177
  ],
2250
- "name": "submitMovingFundsProof",
2251
- "outputs": [],
2252
- "stateMutability": "nonpayable",
2253
- "type": "function"
2178
+ "anonymous": false
2254
2179
  },
2255
2180
  {
2181
+ "type": "event",
2182
+ "name": "FraudParametersUpdated",
2256
2183
  "inputs": [
2257
2184
  {
2258
- "components": [
2259
- {
2260
- "internalType": "bytes4",
2261
- "name": "version",
2262
- "type": "bytes4"
2263
- },
2264
- {
2265
- "internalType": "bytes",
2266
- "name": "inputVector",
2267
- "type": "bytes"
2268
- },
2269
- {
2270
- "internalType": "bytes",
2271
- "name": "outputVector",
2272
- "type": "bytes"
2273
- },
2274
- {
2275
- "internalType": "bytes4",
2276
- "name": "locktime",
2277
- "type": "bytes4"
2278
- }
2279
- ],
2280
- "internalType": "struct BitcoinTx.Info",
2281
- "name": "redemptionTx",
2282
- "type": "tuple"
2185
+ "name": "fraudChallengeDepositAmount",
2186
+ "type": "uint96",
2187
+ "indexed": false,
2188
+ "internalType": "uint96"
2283
2189
  },
2284
2190
  {
2285
- "components": [
2286
- {
2287
- "internalType": "bytes",
2288
- "name": "merkleProof",
2289
- "type": "bytes"
2290
- },
2291
- {
2292
- "internalType": "uint256",
2293
- "name": "txIndexInBlock",
2294
- "type": "uint256"
2295
- },
2296
- {
2297
- "internalType": "bytes",
2298
- "name": "bitcoinHeaders",
2299
- "type": "bytes"
2300
- },
2301
- {
2302
- "internalType": "bytes32",
2303
- "name": "coinbasePreimage",
2304
- "type": "bytes32"
2305
- },
2306
- {
2307
- "internalType": "bytes",
2308
- "name": "coinbaseProof",
2309
- "type": "bytes"
2310
- }
2311
- ],
2312
- "internalType": "struct BitcoinTx.Proof",
2313
- "name": "redemptionProof",
2314
- "type": "tuple"
2191
+ "name": "fraudChallengeDefeatTimeout",
2192
+ "type": "uint32",
2193
+ "indexed": false,
2194
+ "internalType": "uint32"
2315
2195
  },
2316
2196
  {
2317
- "components": [
2318
- {
2319
- "internalType": "bytes32",
2320
- "name": "txHash",
2321
- "type": "bytes32"
2322
- },
2323
- {
2324
- "internalType": "uint32",
2325
- "name": "txOutputIndex",
2326
- "type": "uint32"
2327
- },
2328
- {
2329
- "internalType": "uint64",
2330
- "name": "txOutputValue",
2331
- "type": "uint64"
2332
- }
2333
- ],
2334
- "internalType": "struct BitcoinTx.UTXO",
2335
- "name": "mainUtxo",
2336
- "type": "tuple"
2197
+ "name": "fraudSlashingAmount",
2198
+ "type": "uint96",
2199
+ "indexed": false,
2200
+ "internalType": "uint96"
2337
2201
  },
2338
2202
  {
2339
- "internalType": "bytes20",
2340
- "name": "walletPubKeyHash",
2341
- "type": "bytes20"
2203
+ "name": "fraudNotifierRewardMultiplier",
2204
+ "type": "uint32",
2205
+ "indexed": false,
2206
+ "internalType": "uint32"
2342
2207
  }
2343
2208
  ],
2344
- "name": "submitRedemptionProof",
2345
- "outputs": [],
2346
- "stateMutability": "nonpayable",
2347
- "type": "function"
2209
+ "anonymous": false
2348
2210
  },
2349
2211
  {
2212
+ "type": "event",
2213
+ "name": "GovernanceTransferred",
2350
2214
  "inputs": [
2351
2215
  {
2352
- "internalType": "uint256",
2353
- "name": "redemptionKey",
2354
- "type": "uint256"
2216
+ "name": "oldGovernance",
2217
+ "type": "address",
2218
+ "indexed": false,
2219
+ "internalType": "address"
2220
+ },
2221
+ {
2222
+ "name": "newGovernance",
2223
+ "type": "address",
2224
+ "indexed": false,
2225
+ "internalType": "address"
2355
2226
  }
2356
2227
  ],
2357
- "name": "timedOutRedemptions",
2358
- "outputs": [
2228
+ "anonymous": false
2229
+ },
2230
+ {
2231
+ "type": "event",
2232
+ "name": "Initialized",
2233
+ "inputs": [
2359
2234
  {
2360
- "components": [
2361
- {
2362
- "internalType": "address",
2363
- "name": "redeemer",
2364
- "type": "address"
2365
- },
2366
- {
2367
- "internalType": "uint64",
2368
- "name": "requestedAmount",
2369
- "type": "uint64"
2370
- },
2371
- {
2372
- "internalType": "uint64",
2373
- "name": "treasuryFee",
2374
- "type": "uint64"
2375
- },
2376
- {
2377
- "internalType": "uint64",
2378
- "name": "txMaxFee",
2379
- "type": "uint64"
2380
- },
2381
- {
2382
- "internalType": "uint32",
2383
- "name": "requestedAt",
2384
- "type": "uint32"
2385
- }
2386
- ],
2387
- "internalType": "struct Redemption.RedemptionRequest",
2388
- "name": "",
2389
- "type": "tuple"
2235
+ "name": "version",
2236
+ "type": "uint8",
2237
+ "indexed": false,
2238
+ "internalType": "uint8"
2390
2239
  }
2391
2240
  ],
2392
- "stateMutability": "view",
2393
- "type": "function"
2241
+ "anonymous": false
2394
2242
  },
2395
2243
  {
2244
+ "type": "event",
2245
+ "name": "MovedFundsSweepTimedOut",
2396
2246
  "inputs": [
2397
2247
  {
2398
- "internalType": "address",
2399
- "name": "newGovernance",
2400
- "type": "address"
2248
+ "name": "walletPubKeyHash",
2249
+ "type": "bytes20",
2250
+ "indexed": true,
2251
+ "internalType": "bytes20"
2252
+ },
2253
+ {
2254
+ "name": "movingFundsTxHash",
2255
+ "type": "bytes32",
2256
+ "indexed": false,
2257
+ "internalType": "bytes32"
2258
+ },
2259
+ {
2260
+ "name": "movingFundsTxOutputIndex",
2261
+ "type": "uint32",
2262
+ "indexed": false,
2263
+ "internalType": "uint32"
2401
2264
  }
2402
2265
  ],
2403
- "name": "transferGovernance",
2404
- "outputs": [],
2405
- "stateMutability": "nonpayable",
2406
- "type": "function"
2266
+ "anonymous": false
2407
2267
  },
2408
2268
  {
2409
- "inputs": [],
2410
- "name": "treasury",
2411
- "outputs": [
2269
+ "type": "event",
2270
+ "name": "MovedFundsSwept",
2271
+ "inputs": [
2412
2272
  {
2413
- "internalType": "address",
2414
- "name": "",
2415
- "type": "address"
2273
+ "name": "walletPubKeyHash",
2274
+ "type": "bytes20",
2275
+ "indexed": true,
2276
+ "internalType": "bytes20"
2277
+ },
2278
+ {
2279
+ "name": "sweepTxHash",
2280
+ "type": "bytes32",
2281
+ "indexed": false,
2282
+ "internalType": "bytes32"
2416
2283
  }
2417
2284
  ],
2418
- "stateMutability": "view",
2419
- "type": "function"
2285
+ "anonymous": false
2420
2286
  },
2421
2287
  {
2422
- "inputs": [],
2423
- "name": "txProofDifficultyFactor",
2424
- "outputs": [
2288
+ "type": "event",
2289
+ "name": "MovingFundsBelowDustReported",
2290
+ "inputs": [
2425
2291
  {
2426
- "internalType": "uint256",
2427
- "name": "",
2428
- "type": "uint256"
2292
+ "name": "walletPubKeyHash",
2293
+ "type": "bytes20",
2294
+ "indexed": true,
2295
+ "internalType": "bytes20"
2429
2296
  }
2430
2297
  ],
2431
- "stateMutability": "view",
2432
- "type": "function"
2298
+ "anonymous": false
2433
2299
  },
2434
2300
  {
2301
+ "type": "event",
2302
+ "name": "MovingFundsCommitmentSubmitted",
2435
2303
  "inputs": [
2436
2304
  {
2437
- "internalType": "uint64",
2438
- "name": "depositDustThreshold",
2439
- "type": "uint64"
2440
- },
2441
- {
2442
- "internalType": "uint64",
2443
- "name": "depositTreasuryFeeDivisor",
2444
- "type": "uint64"
2305
+ "name": "walletPubKeyHash",
2306
+ "type": "bytes20",
2307
+ "indexed": true,
2308
+ "internalType": "bytes20"
2445
2309
  },
2446
2310
  {
2447
- "internalType": "uint64",
2448
- "name": "depositTxMaxFee",
2449
- "type": "uint64"
2311
+ "name": "targetWallets",
2312
+ "type": "bytes20[]",
2313
+ "indexed": false,
2314
+ "internalType": "bytes20[]"
2450
2315
  },
2451
2316
  {
2452
- "internalType": "uint32",
2453
- "name": "depositRevealAheadPeriod",
2454
- "type": "uint32"
2317
+ "name": "submitter",
2318
+ "type": "address",
2319
+ "indexed": false,
2320
+ "internalType": "address"
2455
2321
  }
2456
2322
  ],
2457
- "name": "updateDepositParameters",
2458
- "outputs": [],
2459
- "stateMutability": "nonpayable",
2460
- "type": "function"
2323
+ "anonymous": false
2461
2324
  },
2462
2325
  {
2326
+ "type": "event",
2327
+ "name": "MovingFundsCompleted",
2463
2328
  "inputs": [
2464
2329
  {
2465
- "internalType": "uint96",
2466
- "name": "fraudChallengeDepositAmount",
2467
- "type": "uint96"
2468
- },
2469
- {
2470
- "internalType": "uint32",
2471
- "name": "fraudChallengeDefeatTimeout",
2472
- "type": "uint32"
2473
- },
2474
- {
2475
- "internalType": "uint96",
2476
- "name": "fraudSlashingAmount",
2477
- "type": "uint96"
2330
+ "name": "walletPubKeyHash",
2331
+ "type": "bytes20",
2332
+ "indexed": true,
2333
+ "internalType": "bytes20"
2478
2334
  },
2479
2335
  {
2480
- "internalType": "uint32",
2481
- "name": "fraudNotifierRewardMultiplier",
2482
- "type": "uint32"
2336
+ "name": "movingFundsTxHash",
2337
+ "type": "bytes32",
2338
+ "indexed": false,
2339
+ "internalType": "bytes32"
2483
2340
  }
2484
2341
  ],
2485
- "name": "updateFraudParameters",
2486
- "outputs": [],
2487
- "stateMutability": "nonpayable",
2488
- "type": "function"
2342
+ "anonymous": false
2489
2343
  },
2490
2344
  {
2345
+ "type": "event",
2346
+ "name": "MovingFundsParametersUpdated",
2491
2347
  "inputs": [
2492
2348
  {
2493
- "internalType": "uint64",
2494
2349
  "name": "movingFundsTxMaxTotalFee",
2495
- "type": "uint64"
2350
+ "type": "uint64",
2351
+ "indexed": false,
2352
+ "internalType": "uint64"
2496
2353
  },
2497
2354
  {
2498
- "internalType": "uint64",
2499
2355
  "name": "movingFundsDustThreshold",
2500
- "type": "uint64"
2356
+ "type": "uint64",
2357
+ "indexed": false,
2358
+ "internalType": "uint64"
2501
2359
  },
2502
2360
  {
2503
- "internalType": "uint32",
2504
2361
  "name": "movingFundsTimeoutResetDelay",
2505
- "type": "uint32"
2362
+ "type": "uint32",
2363
+ "indexed": false,
2364
+ "internalType": "uint32"
2506
2365
  },
2507
2366
  {
2508
- "internalType": "uint32",
2509
2367
  "name": "movingFundsTimeout",
2510
- "type": "uint32"
2368
+ "type": "uint32",
2369
+ "indexed": false,
2370
+ "internalType": "uint32"
2511
2371
  },
2512
2372
  {
2513
- "internalType": "uint96",
2514
2373
  "name": "movingFundsTimeoutSlashingAmount",
2515
- "type": "uint96"
2374
+ "type": "uint96",
2375
+ "indexed": false,
2376
+ "internalType": "uint96"
2516
2377
  },
2517
2378
  {
2518
- "internalType": "uint32",
2519
2379
  "name": "movingFundsTimeoutNotifierRewardMultiplier",
2520
- "type": "uint32"
2380
+ "type": "uint32",
2381
+ "indexed": false,
2382
+ "internalType": "uint32"
2521
2383
  },
2522
2384
  {
2523
- "internalType": "uint16",
2524
2385
  "name": "movingFundsCommitmentGasOffset",
2525
- "type": "uint16"
2386
+ "type": "uint16",
2387
+ "indexed": false,
2388
+ "internalType": "uint16"
2526
2389
  },
2527
2390
  {
2528
- "internalType": "uint64",
2529
2391
  "name": "movedFundsSweepTxMaxTotalFee",
2530
- "type": "uint64"
2392
+ "type": "uint64",
2393
+ "indexed": false,
2394
+ "internalType": "uint64"
2531
2395
  },
2532
2396
  {
2533
- "internalType": "uint32",
2534
2397
  "name": "movedFundsSweepTimeout",
2535
- "type": "uint32"
2398
+ "type": "uint32",
2399
+ "indexed": false,
2400
+ "internalType": "uint32"
2536
2401
  },
2537
2402
  {
2538
- "internalType": "uint96",
2539
2403
  "name": "movedFundsSweepTimeoutSlashingAmount",
2540
- "type": "uint96"
2404
+ "type": "uint96",
2405
+ "indexed": false,
2406
+ "internalType": "uint96"
2541
2407
  },
2542
2408
  {
2543
- "internalType": "uint32",
2544
2409
  "name": "movedFundsSweepTimeoutNotifierRewardMultiplier",
2545
- "type": "uint32"
2410
+ "type": "uint32",
2411
+ "indexed": false,
2412
+ "internalType": "uint32"
2546
2413
  }
2547
2414
  ],
2548
- "name": "updateMovingFundsParameters",
2549
- "outputs": [],
2550
- "stateMutability": "nonpayable",
2551
- "type": "function"
2415
+ "anonymous": false
2416
+ },
2417
+ {
2418
+ "type": "event",
2419
+ "name": "MovingFundsTimedOut",
2420
+ "inputs": [
2421
+ {
2422
+ "name": "walletPubKeyHash",
2423
+ "type": "bytes20",
2424
+ "indexed": true,
2425
+ "internalType": "bytes20"
2426
+ }
2427
+ ],
2428
+ "anonymous": false
2429
+ },
2430
+ {
2431
+ "type": "event",
2432
+ "name": "MovingFundsTimeoutReset",
2433
+ "inputs": [
2434
+ {
2435
+ "name": "walletPubKeyHash",
2436
+ "type": "bytes20",
2437
+ "indexed": true,
2438
+ "internalType": "bytes20"
2439
+ }
2440
+ ],
2441
+ "anonymous": false
2442
+ },
2443
+ {
2444
+ "type": "event",
2445
+ "name": "NewWalletRegistered",
2446
+ "inputs": [
2447
+ {
2448
+ "name": "ecdsaWalletID",
2449
+ "type": "bytes32",
2450
+ "indexed": true,
2451
+ "internalType": "bytes32"
2452
+ },
2453
+ {
2454
+ "name": "walletPubKeyHash",
2455
+ "type": "bytes20",
2456
+ "indexed": true,
2457
+ "internalType": "bytes20"
2458
+ }
2459
+ ],
2460
+ "anonymous": false
2461
+ },
2462
+ {
2463
+ "type": "event",
2464
+ "name": "NewWalletRequested",
2465
+ "inputs": [],
2466
+ "anonymous": false
2552
2467
  },
2553
2468
  {
2469
+ "type": "event",
2470
+ "name": "RedemptionParametersUpdated",
2554
2471
  "inputs": [
2555
2472
  {
2556
- "internalType": "uint64",
2557
2473
  "name": "redemptionDustThreshold",
2558
- "type": "uint64"
2474
+ "type": "uint64",
2475
+ "indexed": false,
2476
+ "internalType": "uint64"
2559
2477
  },
2560
2478
  {
2561
- "internalType": "uint64",
2562
2479
  "name": "redemptionTreasuryFeeDivisor",
2563
- "type": "uint64"
2480
+ "type": "uint64",
2481
+ "indexed": false,
2482
+ "internalType": "uint64"
2564
2483
  },
2565
2484
  {
2566
- "internalType": "uint64",
2567
2485
  "name": "redemptionTxMaxFee",
2568
- "type": "uint64"
2486
+ "type": "uint64",
2487
+ "indexed": false,
2488
+ "internalType": "uint64"
2569
2489
  },
2570
2490
  {
2571
- "internalType": "uint64",
2572
2491
  "name": "redemptionTxMaxTotalFee",
2573
- "type": "uint64"
2492
+ "type": "uint64",
2493
+ "indexed": false,
2494
+ "internalType": "uint64"
2574
2495
  },
2575
2496
  {
2576
- "internalType": "uint32",
2577
2497
  "name": "redemptionTimeout",
2578
- "type": "uint32"
2498
+ "type": "uint32",
2499
+ "indexed": false,
2500
+ "internalType": "uint32"
2579
2501
  },
2580
2502
  {
2581
- "internalType": "uint96",
2582
2503
  "name": "redemptionTimeoutSlashingAmount",
2583
- "type": "uint96"
2504
+ "type": "uint96",
2505
+ "indexed": false,
2506
+ "internalType": "uint96"
2584
2507
  },
2585
2508
  {
2586
- "internalType": "uint32",
2587
2509
  "name": "redemptionTimeoutNotifierRewardMultiplier",
2588
- "type": "uint32"
2510
+ "type": "uint32",
2511
+ "indexed": false,
2512
+ "internalType": "uint32"
2589
2513
  }
2590
2514
  ],
2591
- "name": "updateRedemptionParameters",
2592
- "outputs": [],
2593
- "stateMutability": "nonpayable",
2594
- "type": "function"
2515
+ "anonymous": false
2595
2516
  },
2596
2517
  {
2518
+ "type": "event",
2519
+ "name": "RedemptionRequested",
2597
2520
  "inputs": [
2598
2521
  {
2599
- "internalType": "address",
2600
- "name": "treasury",
2601
- "type": "address"
2522
+ "name": "walletPubKeyHash",
2523
+ "type": "bytes20",
2524
+ "indexed": true,
2525
+ "internalType": "bytes20"
2526
+ },
2527
+ {
2528
+ "name": "redeemerOutputScript",
2529
+ "type": "bytes",
2530
+ "indexed": false,
2531
+ "internalType": "bytes"
2532
+ },
2533
+ {
2534
+ "name": "redeemer",
2535
+ "type": "address",
2536
+ "indexed": true,
2537
+ "internalType": "address"
2538
+ },
2539
+ {
2540
+ "name": "requestedAmount",
2541
+ "type": "uint64",
2542
+ "indexed": false,
2543
+ "internalType": "uint64"
2544
+ },
2545
+ {
2546
+ "name": "treasuryFee",
2547
+ "type": "uint64",
2548
+ "indexed": false,
2549
+ "internalType": "uint64"
2550
+ },
2551
+ {
2552
+ "name": "txMaxFee",
2553
+ "type": "uint64",
2554
+ "indexed": false,
2555
+ "internalType": "uint64"
2602
2556
  }
2603
2557
  ],
2604
- "name": "updateTreasury",
2605
- "outputs": [],
2606
- "stateMutability": "nonpayable",
2607
- "type": "function"
2558
+ "anonymous": false
2608
2559
  },
2609
2560
  {
2561
+ "type": "event",
2562
+ "name": "RedemptionTimedOut",
2610
2563
  "inputs": [
2611
2564
  {
2612
- "internalType": "uint32",
2613
- "name": "walletCreationPeriod",
2614
- "type": "uint32"
2565
+ "name": "walletPubKeyHash",
2566
+ "type": "bytes20",
2567
+ "indexed": true,
2568
+ "internalType": "bytes20"
2615
2569
  },
2616
2570
  {
2617
- "internalType": "uint64",
2618
- "name": "walletCreationMinBtcBalance",
2619
- "type": "uint64"
2571
+ "name": "redeemerOutputScript",
2572
+ "type": "bytes",
2573
+ "indexed": false,
2574
+ "internalType": "bytes"
2575
+ }
2576
+ ],
2577
+ "anonymous": false
2578
+ },
2579
+ {
2580
+ "type": "event",
2581
+ "name": "RedemptionWatchtowerSet",
2582
+ "inputs": [
2583
+ {
2584
+ "name": "redemptionWatchtower",
2585
+ "type": "address",
2586
+ "indexed": false,
2587
+ "internalType": "address"
2588
+ }
2589
+ ],
2590
+ "anonymous": false
2591
+ },
2592
+ {
2593
+ "type": "event",
2594
+ "name": "RedemptionsCompleted",
2595
+ "inputs": [
2596
+ {
2597
+ "name": "walletPubKeyHash",
2598
+ "type": "bytes20",
2599
+ "indexed": true,
2600
+ "internalType": "bytes20"
2620
2601
  },
2621
2602
  {
2622
- "internalType": "uint64",
2623
- "name": "walletCreationMaxBtcBalance",
2624
- "type": "uint64"
2603
+ "name": "redemptionTxHash",
2604
+ "type": "bytes32",
2605
+ "indexed": false,
2606
+ "internalType": "bytes32"
2607
+ }
2608
+ ],
2609
+ "anonymous": false
2610
+ },
2611
+ {
2612
+ "type": "event",
2613
+ "name": "SpvMaintainerStatusUpdated",
2614
+ "inputs": [
2615
+ {
2616
+ "name": "spvMaintainer",
2617
+ "type": "address",
2618
+ "indexed": true,
2619
+ "internalType": "address"
2625
2620
  },
2626
2621
  {
2627
- "internalType": "uint64",
2628
- "name": "walletClosureMinBtcBalance",
2629
- "type": "uint64"
2622
+ "name": "isTrusted",
2623
+ "type": "bool",
2624
+ "indexed": false,
2625
+ "internalType": "bool"
2626
+ }
2627
+ ],
2628
+ "anonymous": false
2629
+ },
2630
+ {
2631
+ "type": "event",
2632
+ "name": "TreasuryUpdated",
2633
+ "inputs": [
2634
+ {
2635
+ "name": "treasury",
2636
+ "type": "address",
2637
+ "indexed": false,
2638
+ "internalType": "address"
2639
+ }
2640
+ ],
2641
+ "anonymous": false
2642
+ },
2643
+ {
2644
+ "type": "event",
2645
+ "name": "VaultStatusUpdated",
2646
+ "inputs": [
2647
+ {
2648
+ "name": "vault",
2649
+ "type": "address",
2650
+ "indexed": true,
2651
+ "internalType": "address"
2630
2652
  },
2631
2653
  {
2632
- "internalType": "uint32",
2633
- "name": "walletMaxAge",
2634
- "type": "uint32"
2654
+ "name": "isTrusted",
2655
+ "type": "bool",
2656
+ "indexed": false,
2657
+ "internalType": "bool"
2658
+ }
2659
+ ],
2660
+ "anonymous": false
2661
+ },
2662
+ {
2663
+ "type": "event",
2664
+ "name": "WalletClosed",
2665
+ "inputs": [
2666
+ {
2667
+ "name": "ecdsaWalletID",
2668
+ "type": "bytes32",
2669
+ "indexed": true,
2670
+ "internalType": "bytes32"
2635
2671
  },
2636
2672
  {
2637
- "internalType": "uint64",
2638
- "name": "walletMaxBtcTransfer",
2639
- "type": "uint64"
2673
+ "name": "walletPubKeyHash",
2674
+ "type": "bytes20",
2675
+ "indexed": true,
2676
+ "internalType": "bytes20"
2677
+ }
2678
+ ],
2679
+ "anonymous": false
2680
+ },
2681
+ {
2682
+ "type": "event",
2683
+ "name": "WalletClosing",
2684
+ "inputs": [
2685
+ {
2686
+ "name": "ecdsaWalletID",
2687
+ "type": "bytes32",
2688
+ "indexed": true,
2689
+ "internalType": "bytes32"
2640
2690
  },
2641
2691
  {
2642
- "internalType": "uint32",
2643
- "name": "walletClosingPeriod",
2644
- "type": "uint32"
2692
+ "name": "walletPubKeyHash",
2693
+ "type": "bytes20",
2694
+ "indexed": true,
2695
+ "internalType": "bytes20"
2645
2696
  }
2646
2697
  ],
2647
- "name": "updateWalletParameters",
2648
- "outputs": [],
2649
- "stateMutability": "nonpayable",
2650
- "type": "function"
2698
+ "anonymous": false
2651
2699
  },
2652
2700
  {
2653
- "inputs": [],
2654
- "name": "walletParameters",
2655
- "outputs": [
2701
+ "type": "event",
2702
+ "name": "WalletMovingFunds",
2703
+ "inputs": [
2704
+ {
2705
+ "name": "ecdsaWalletID",
2706
+ "type": "bytes32",
2707
+ "indexed": true,
2708
+ "internalType": "bytes32"
2709
+ },
2710
+ {
2711
+ "name": "walletPubKeyHash",
2712
+ "type": "bytes20",
2713
+ "indexed": true,
2714
+ "internalType": "bytes20"
2715
+ }
2716
+ ],
2717
+ "anonymous": false
2718
+ },
2719
+ {
2720
+ "type": "event",
2721
+ "name": "WalletParametersUpdated",
2722
+ "inputs": [
2656
2723
  {
2657
- "internalType": "uint32",
2658
2724
  "name": "walletCreationPeriod",
2659
- "type": "uint32"
2725
+ "type": "uint32",
2726
+ "indexed": false,
2727
+ "internalType": "uint32"
2660
2728
  },
2661
2729
  {
2662
- "internalType": "uint64",
2663
2730
  "name": "walletCreationMinBtcBalance",
2664
- "type": "uint64"
2731
+ "type": "uint64",
2732
+ "indexed": false,
2733
+ "internalType": "uint64"
2665
2734
  },
2666
2735
  {
2667
- "internalType": "uint64",
2668
2736
  "name": "walletCreationMaxBtcBalance",
2669
- "type": "uint64"
2737
+ "type": "uint64",
2738
+ "indexed": false,
2739
+ "internalType": "uint64"
2670
2740
  },
2671
2741
  {
2672
- "internalType": "uint64",
2673
2742
  "name": "walletClosureMinBtcBalance",
2674
- "type": "uint64"
2743
+ "type": "uint64",
2744
+ "indexed": false,
2745
+ "internalType": "uint64"
2675
2746
  },
2676
2747
  {
2677
- "internalType": "uint32",
2678
2748
  "name": "walletMaxAge",
2679
- "type": "uint32"
2749
+ "type": "uint32",
2750
+ "indexed": false,
2751
+ "internalType": "uint32"
2680
2752
  },
2681
2753
  {
2682
- "internalType": "uint64",
2683
2754
  "name": "walletMaxBtcTransfer",
2684
- "type": "uint64"
2755
+ "type": "uint64",
2756
+ "indexed": false,
2757
+ "internalType": "uint64"
2685
2758
  },
2686
2759
  {
2687
- "internalType": "uint32",
2688
2760
  "name": "walletClosingPeriod",
2689
- "type": "uint32"
2761
+ "type": "uint32",
2762
+ "indexed": false,
2763
+ "internalType": "uint32"
2690
2764
  }
2691
2765
  ],
2692
- "stateMutability": "view",
2693
- "type": "function"
2766
+ "anonymous": false
2694
2767
  },
2695
2768
  {
2769
+ "type": "event",
2770
+ "name": "WalletTerminated",
2696
2771
  "inputs": [
2697
2772
  {
2698
- "internalType": "bytes20",
2699
- "name": "walletPubKeyHash",
2700
- "type": "bytes20"
2701
- }
2702
- ],
2703
- "name": "wallets",
2704
- "outputs": [
2773
+ "name": "ecdsaWalletID",
2774
+ "type": "bytes32",
2775
+ "indexed": true,
2776
+ "internalType": "bytes32"
2777
+ },
2705
2778
  {
2706
- "components": [
2707
- {
2708
- "internalType": "bytes32",
2709
- "name": "ecdsaWalletID",
2710
- "type": "bytes32"
2711
- },
2712
- {
2713
- "internalType": "bytes32",
2714
- "name": "mainUtxoHash",
2715
- "type": "bytes32"
2716
- },
2717
- {
2718
- "internalType": "uint64",
2719
- "name": "pendingRedemptionsValue",
2720
- "type": "uint64"
2721
- },
2722
- {
2723
- "internalType": "uint32",
2724
- "name": "createdAt",
2725
- "type": "uint32"
2726
- },
2727
- {
2728
- "internalType": "uint32",
2729
- "name": "movingFundsRequestedAt",
2730
- "type": "uint32"
2731
- },
2732
- {
2733
- "internalType": "uint32",
2734
- "name": "closingStartedAt",
2735
- "type": "uint32"
2736
- },
2737
- {
2738
- "internalType": "uint32",
2739
- "name": "pendingMovedFundsSweepRequestsCount",
2740
- "type": "uint32"
2741
- },
2742
- {
2743
- "internalType": "enum Wallets.WalletState",
2744
- "name": "state",
2745
- "type": "uint8"
2746
- },
2747
- {
2748
- "internalType": "bytes32",
2749
- "name": "movingFundsTargetWalletsCommitmentHash",
2750
- "type": "bytes32"
2751
- }
2752
- ],
2753
- "internalType": "struct Wallets.Wallet",
2754
- "name": "",
2755
- "type": "tuple"
2779
+ "name": "walletPubKeyHash",
2780
+ "type": "bytes20",
2781
+ "indexed": true,
2782
+ "internalType": "bytes20"
2756
2783
  }
2757
2784
  ],
2758
- "stateMutability": "view",
2759
- "type": "function"
2785
+ "anonymous": false
2760
2786
  }
2761
2787
  ],
2762
- "transactionHash": "0xa2980d644ed3713ca5ebd545dbd4daee76745ebaff4aca2e4222b859a8400ced",
2788
+ "transactionHash": "0xefcb843ef60bc82cba3f6a2db68d7545ac467ffba605ef84319c3828686589f9",
2763
2789
  "receipt": {
2764
2790
  "to": "0x16A76d3cd3C1e3CE843C6680d6B37E9116b5C706",
2765
2791
  "from": "0x123694886DBf5Ac94DDA07135349534536D14cAf",
@@ -2789,15 +2815,15 @@
2789
2815
  "status": 1,
2790
2816
  "byzantium": true
2791
2817
  },
2792
- "numDeployments": 4,
2818
+ "numDeployments": 5,
2793
2819
  "libraries": {
2794
2820
  "Deposit": "0xCD2EbDA2beA80484C55675e1965149054dCcD137",
2795
2821
  "DepositSweep": "0x392635646Bc22FC13C86859d1f02B27974aC9b95",
2796
- "Redemption": "0x8EF1BEDA734E696CC055269b46BB5a0EC7Ac9f5E",
2822
+ "Redemption": "0xa7fed184fe79c2ea037e65558473c04ce42f5d0d",
2797
2823
  "Wallets": "0xc989d3E486AAe6355F65281B4d0bde08c8e32fBC",
2798
2824
  "Fraud": "0x51bBeF1c7cC3a1D3bC5E64CE6C3BA6E66fbA3559",
2799
2825
  "MovingFunds": "0x3E0407765FaC663d391aE738f3Aa0c98EAb67a90"
2800
2826
  },
2801
- "implementation": "0xA4996De73682BDF9CF514fbf238ee387C1a21A26",
2827
+ "implementation": "0x84E08e1380b400A554765C2466df3BE8f2C638e6",
2802
2828
  "devdoc": "Contract deployed as upgradable proxy"
2803
- }
2829
+ }