@keep-network/tbtc-v2 0.1.0 → 0.1.1-dev

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 (296) hide show
  1. package/README.adoc +12 -0
  2. package/artifacts/.chainId +1 -1
  3. package/artifacts/Bank.json +807 -0
  4. package/artifacts/Bridge.json +2300 -0
  5. package/artifacts/Deposit.json +117 -0
  6. package/artifacts/DepositSweep.json +77 -0
  7. package/artifacts/EcdsaDkgValidator.json +532 -0
  8. package/artifacts/EcdsaInactivity.json +156 -0
  9. package/artifacts/EcdsaSortitionPool.json +1004 -0
  10. package/artifacts/Fraud.json +164 -0
  11. package/artifacts/KeepRegistry.json +99 -0
  12. package/artifacts/KeepStake.json +286 -0
  13. package/artifacts/KeepToken.json +711 -0
  14. package/artifacts/KeepTokenStaking.json +483 -0
  15. package/artifacts/MovingFunds.json +249 -0
  16. package/artifacts/NuCypherStakingEscrow.json +256 -0
  17. package/artifacts/NuCypherToken.json +711 -0
  18. package/artifacts/RandomBeaconStub.json +141 -0
  19. package/artifacts/Redemption.json +174 -0
  20. package/artifacts/ReimbursementPool.json +509 -0
  21. package/artifacts/Relay.json +123 -0
  22. package/artifacts/T.json +1148 -0
  23. package/artifacts/TBTC.json +36 -35
  24. package/artifacts/TBTCToken.json +738 -0
  25. package/artifacts/TBTCVault.json +691 -0
  26. package/artifacts/TokenStaking.json +2288 -0
  27. package/artifacts/TokenholderGovernor.json +1795 -0
  28. package/artifacts/TokenholderTimelock.json +1058 -0
  29. package/artifacts/VendingMachine.json +34 -33
  30. package/artifacts/VendingMachineKeep.json +400 -0
  31. package/artifacts/VendingMachineNuCypher.json +400 -0
  32. package/artifacts/WalletRegistry.json +1843 -0
  33. package/artifacts/WalletRegistryGovernance.json +2754 -0
  34. package/artifacts/Wallets.json +186 -0
  35. package/artifacts/solcInputs/5e62cff1ead0900b07facca4b559e818.json +314 -0
  36. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
  37. package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
  38. package/build/contracts/bank/Bank.sol/Bank.dbg.json +4 -0
  39. package/build/contracts/bank/Bank.sol/Bank.json +542 -0
  40. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +4 -0
  41. package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.json +34 -0
  42. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +4 -0
  43. package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +10 -0
  44. package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +4 -0
  45. package/build/contracts/bridge/Bridge.sol/Bridge.json +2686 -0
  46. package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +4 -0
  47. package/build/contracts/bridge/BridgeState.sol/BridgeState.json +226 -0
  48. package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +4 -0
  49. package/build/contracts/bridge/Deposit.sol/Deposit.json +72 -0
  50. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +4 -0
  51. package/build/contracts/bridge/DepositSweep.sol/DepositSweep.json +30 -0
  52. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +4 -0
  53. package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +10 -0
  54. package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +4 -0
  55. package/build/contracts/bridge/Fraud.sol/Fraud.json +86 -0
  56. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +4 -0
  57. package/build/contracts/bridge/Heartbeat.sol/Heartbeat.json +10 -0
  58. package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +4 -0
  59. package/build/contracts/bridge/IRelay.sol/IRelay.json +37 -0
  60. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +4 -0
  61. package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +138 -0
  62. package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
  63. package/build/contracts/bridge/Redemption.sol/OutboundTx.json +10 -0
  64. package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
  65. package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
  66. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
  67. package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
  68. package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +4 -0
  69. package/build/contracts/bridge/Wallets.sol/Wallets.json +112 -0
  70. package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
  71. package/build/contracts/token/TBTC.sol/TBTC.json +4 -4
  72. package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +4 -0
  73. package/build/contracts/vault/DonationVault.sol/DonationVault.json +108 -0
  74. package/build/contracts/vault/IVault.sol/IVault.dbg.json +4 -0
  75. package/build/contracts/vault/IVault.sol/IVault.json +52 -0
  76. package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +4 -0
  77. package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +449 -0
  78. package/contracts/GovernanceUtils.sol +4 -4
  79. package/contracts/bank/Bank.sol +436 -0
  80. package/contracts/bank/IReceiveBalanceApproval.sol +45 -0
  81. package/contracts/bridge/BitcoinTx.sol +326 -0
  82. package/contracts/bridge/Bridge.sol +1793 -0
  83. package/contracts/bridge/BridgeState.sol +739 -0
  84. package/contracts/bridge/Deposit.sol +269 -0
  85. package/contracts/bridge/DepositSweep.sol +574 -0
  86. package/contracts/bridge/EcdsaLib.sol +45 -0
  87. package/contracts/bridge/Fraud.sol +579 -0
  88. package/contracts/bridge/Heartbeat.sol +112 -0
  89. package/contracts/bridge/IRelay.sol +28 -0
  90. package/contracts/bridge/MovingFunds.sol +1077 -0
  91. package/contracts/bridge/Redemption.sol +1020 -0
  92. package/contracts/bridge/VendingMachine.sol +2 -2
  93. package/contracts/bridge/Wallets.sol +719 -0
  94. package/contracts/hardhat-dependency-compiler/.hardhat-dependency-compiler +1 -0
  95. package/contracts/hardhat-dependency-compiler/@keep-network/ecdsa/contracts/WalletRegistry.sol +3 -0
  96. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol +3 -0
  97. package/contracts/hardhat-dependency-compiler/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol +3 -0
  98. package/contracts/token/TBTC.sol +1 -1
  99. package/contracts/vault/DonationVault.sol +125 -0
  100. package/contracts/vault/IVault.sol +44 -0
  101. package/contracts/vault/TBTCVault.sol +305 -0
  102. package/deploy/00_resolve_relay.ts +28 -0
  103. package/deploy/00_resolve_tbtc_v1_token.ts +1 -1
  104. package/deploy/01_deploy_tbtc_v2_token.ts +8 -1
  105. package/deploy/02_deploy_vending_machine.ts +7 -0
  106. package/deploy/{03_transfer_roles.ts → 03_transfer_vending_machine_roles.ts} +1 -1
  107. package/deploy/04_deploy_bank.ts +27 -0
  108. package/deploy/05_deploy_bridge.ts +80 -0
  109. package/deploy/06_deploy_tbtc_vault.ts +30 -0
  110. package/deploy/07_bank_update_bridge.ts +19 -0
  111. package/deploy/08_transfer_bank_ownership.ts +15 -0
  112. package/deploy/09_transfer_tbtc_vault_ownership.ts +15 -0
  113. package/deploy/10_transfer_bridge_governance.ts +20 -0
  114. package/deploy/11_initialize_wallet_owner.ts +18 -0
  115. package/deploy/11_transfer_proxy_admin_ownership.ts +30 -0
  116. package/deploy/12_deploy_proxy_admin_with_deputy.ts +33 -0
  117. package/export/deploy/00_resolve_relay.js +24 -0
  118. package/export/deploy/00_resolve_tbtc_v1_token.js +24 -0
  119. package/export/deploy/01_deploy_tbtc_v2_token.js +19 -0
  120. package/export/deploy/02_deploy_vending_machine.js +25 -0
  121. package/export/deploy/03_transfer_vending_machine_roles.js +19 -0
  122. package/export/deploy/04_deploy_bank.js +21 -0
  123. package/export/deploy/05_deploy_bridge.js +69 -0
  124. package/export/deploy/06_deploy_tbtc_vault.js +24 -0
  125. package/export/deploy/07_bank_update_bridge.js +13 -0
  126. package/export/deploy/08_transfer_bank_ownership.js +11 -0
  127. package/export/deploy/09_transfer_tbtc_vault_ownership.js +11 -0
  128. package/export/deploy/10_transfer_bridge_governance.js +11 -0
  129. package/export/deploy/11_initialize_wallet_owner.js +14 -0
  130. package/export/deploy/11_transfer_proxy_admin_ownership.js +23 -0
  131. package/export/deploy/12_deploy_proxy_admin_with_deputy.js +22 -0
  132. package/export/hardhat.config.js +169 -0
  133. package/export/test/bank/Bank.test.js +1012 -0
  134. package/export/test/bridge/Bridge.Deployment.test.js +76 -0
  135. package/export/test/bridge/Bridge.Deposit.test.js +1834 -0
  136. package/export/test/bridge/Bridge.Frauds.test.js +1349 -0
  137. package/export/test/bridge/Bridge.MovingFunds.test.js +2437 -0
  138. package/export/test/bridge/Bridge.Parameters.test.js +400 -0
  139. package/export/test/bridge/Bridge.Redemption.test.js +2523 -0
  140. package/export/test/bridge/Bridge.Vaults.test.js +74 -0
  141. package/export/test/bridge/Bridge.Wallets.test.js +1017 -0
  142. package/export/test/bridge/EcdsaLib.test.js +46 -0
  143. package/export/test/bridge/Heartbeat.test.js +77 -0
  144. package/export/test/bridge/VendingMachine.Upgrade.test.js +160 -0
  145. package/export/test/bridge/VendingMachine.test.js +762 -0
  146. package/export/test/data/deposit-sweep.js +655 -0
  147. package/export/test/data/ecdsa.js +18 -0
  148. package/export/test/data/fraud.js +158 -0
  149. package/export/test/data/moving-funds.js +815 -0
  150. package/export/test/data/redemption.js +1011 -0
  151. package/export/test/fixtures/bridge.js +54 -0
  152. package/export/test/fixtures/index.js +57 -0
  153. package/export/test/helpers/contract-test-helpers.js +18 -0
  154. package/export/test/integration/Slashing.test.js +279 -0
  155. package/export/test/integration/WalleCreation.test.js +66 -0
  156. package/export/test/integration/utils/ecdsa-wallet-registry.js +137 -0
  157. package/export/test/integration/utils/fixture.js +77 -0
  158. package/export/test/integration/utils/gas.js +36 -0
  159. package/export/test/integration/utils/random-beacon.js +26 -0
  160. package/export/test/integration/utils/staking.js +19 -0
  161. package/export/test/vault/DonationVault.test.js +202 -0
  162. package/export/test/vault/TBTCVault.Redemption.test.js +357 -0
  163. package/export/test/vault/TBTCVault.test.js +768 -0
  164. package/export/typechain/BTCUtils.js +2 -0
  165. package/export/typechain/Bank.js +2 -0
  166. package/export/typechain/BankStub.js +2 -0
  167. package/export/typechain/Bridge.js +2 -0
  168. package/export/typechain/BridgeState.js +2 -0
  169. package/export/typechain/BridgeStub.js +2 -0
  170. package/export/typechain/Deposit.js +2 -0
  171. package/export/typechain/DepositSweep.js +2 -0
  172. package/export/typechain/DonationVault.js +2 -0
  173. package/export/typechain/ERC165.js +2 -0
  174. package/export/typechain/ERC1967Proxy.js +2 -0
  175. package/export/typechain/ERC1967Upgrade.js +2 -0
  176. package/export/typechain/ERC20WithPermit.js +2 -0
  177. package/export/typechain/ERC721.js +2 -0
  178. package/export/typechain/EcdsaAuthorization.js +2 -0
  179. package/export/typechain/EcdsaDkg.js +2 -0
  180. package/export/typechain/EcdsaDkgValidator.js +2 -0
  181. package/export/typechain/EcdsaInactivity.js +2 -0
  182. package/export/typechain/Fraud.js +2 -0
  183. package/export/typechain/Governable.js +2 -0
  184. package/export/typechain/HeartbeatStub.js +2 -0
  185. package/export/typechain/IApplication.js +2 -0
  186. package/export/typechain/IApproveAndCall.js +2 -0
  187. package/export/typechain/IBeacon.js +2 -0
  188. package/export/typechain/IERC165.js +2 -0
  189. package/export/typechain/IERC1822Proxiable.js +2 -0
  190. package/export/typechain/IERC20.js +2 -0
  191. package/export/typechain/IERC20Metadata.js +2 -0
  192. package/export/typechain/IERC20WithPermit.js +2 -0
  193. package/export/typechain/IERC721.js +2 -0
  194. package/export/typechain/IERC721Metadata.js +2 -0
  195. package/export/typechain/IERC721Receiver.js +2 -0
  196. package/export/typechain/IRandomBeacon.js +2 -0
  197. package/export/typechain/IRandomBeaconConsumer.js +2 -0
  198. package/export/typechain/IReceiveApproval.js +2 -0
  199. package/export/typechain/IReceiveBalanceApproval.js +2 -0
  200. package/export/typechain/IRelay.js +2 -0
  201. package/export/typechain/IStaking.js +2 -0
  202. package/export/typechain/IVault.js +2 -0
  203. package/export/typechain/IWalletOwner.js +2 -0
  204. package/export/typechain/IWalletRegistry.js +2 -0
  205. package/export/typechain/Initializable.js +2 -0
  206. package/export/typechain/MisfundRecovery.js +2 -0
  207. package/export/typechain/MovingFunds.js +2 -0
  208. package/export/typechain/Ownable.js +2 -0
  209. package/export/typechain/Proxy.js +2 -0
  210. package/export/typechain/ProxyAdmin.js +2 -0
  211. package/export/typechain/ReceiveApprovalStub.js +2 -0
  212. package/export/typechain/Redemption.js +2 -0
  213. package/export/typechain/Reimbursable.js +2 -0
  214. package/export/typechain/ReimbursementPool.js +2 -0
  215. package/export/typechain/Rewards.js +2 -0
  216. package/export/typechain/SortitionPool.js +2 -0
  217. package/export/typechain/SortitionTree.js +2 -0
  218. package/export/typechain/TBTC.js +2 -0
  219. package/export/typechain/TBTCVault.js +2 -0
  220. package/export/typechain/TestERC20.js +2 -0
  221. package/export/typechain/TestERC721.js +2 -0
  222. package/export/typechain/TestEcdsaLib.js +2 -0
  223. package/export/typechain/TestRelay.js +2 -0
  224. package/export/typechain/TransparentUpgradeableProxy.js +2 -0
  225. package/export/typechain/VendingMachine.js +2 -0
  226. package/export/typechain/WalletRegistry.js +2 -0
  227. package/export/typechain/Wallets.js +2 -0
  228. package/export/typechain/common.js +2 -0
  229. package/export/typechain/factories/BTCUtils__factory.js +94 -0
  230. package/export/typechain/factories/BankStub__factory.js +586 -0
  231. package/export/typechain/factories/Bank__factory.js +573 -0
  232. package/export/typechain/factories/BridgeState__factory.js +257 -0
  233. package/export/typechain/factories/BridgeStub__factory.js +2912 -0
  234. package/export/typechain/factories/Bridge__factory.js +2526 -0
  235. package/export/typechain/factories/DepositSweep__factory.js +61 -0
  236. package/export/typechain/factories/Deposit__factory.js +103 -0
  237. package/export/typechain/factories/DonationVault__factory.js +139 -0
  238. package/export/typechain/factories/ERC165__factory.js +38 -0
  239. package/export/typechain/factories/ERC1967Proxy__factory.js +111 -0
  240. package/export/typechain/factories/ERC1967Upgrade__factory.js +64 -0
  241. package/export/typechain/factories/ERC20WithPermit__factory.js +524 -0
  242. package/export/typechain/factories/ERC721__factory.js +388 -0
  243. package/export/typechain/factories/EcdsaAuthorization__factory.js +211 -0
  244. package/export/typechain/factories/EcdsaDkgValidator__factory.js +441 -0
  245. package/export/typechain/factories/EcdsaDkg__factory.js +192 -0
  246. package/export/typechain/factories/EcdsaInactivity__factory.js +134 -0
  247. package/export/typechain/factories/Fraud__factory.js +117 -0
  248. package/export/typechain/factories/Governable__factory.js +64 -0
  249. package/export/typechain/factories/HeartbeatStub__factory.js +61 -0
  250. package/export/typechain/factories/IApplication__factory.js +152 -0
  251. package/export/typechain/factories/IApproveAndCall__factory.js +48 -0
  252. package/export/typechain/factories/IBeacon__factory.js +32 -0
  253. package/export/typechain/factories/IERC165__factory.js +38 -0
  254. package/export/typechain/factories/IERC1822Proxiable__factory.js +32 -0
  255. package/export/typechain/factories/IERC20Metadata__factory.js +241 -0
  256. package/export/typechain/factories/IERC20WithPermit__factory.js +389 -0
  257. package/export/typechain/factories/IERC20__factory.js +202 -0
  258. package/export/typechain/factories/IERC721Metadata__factory.js +349 -0
  259. package/export/typechain/factories/IERC721Receiver__factory.js +53 -0
  260. package/export/typechain/factories/IERC721__factory.js +304 -0
  261. package/export/typechain/factories/IRandomBeaconConsumer__factory.js +37 -0
  262. package/export/typechain/factories/IRandomBeacon__factory.js +32 -0
  263. package/export/typechain/factories/IReceiveApproval__factory.js +47 -0
  264. package/export/typechain/factories/IReceiveBalanceApproval__factory.js +42 -0
  265. package/export/typechain/factories/IRelay__factory.js +45 -0
  266. package/export/typechain/factories/IStaking__factory.js +722 -0
  267. package/export/typechain/factories/IVault__factory.js +60 -0
  268. package/export/typechain/factories/IWalletOwner__factory.js +65 -0
  269. package/export/typechain/factories/IWalletRegistry__factory.js +138 -0
  270. package/export/typechain/factories/Initializable__factory.js +32 -0
  271. package/export/typechain/factories/MisfundRecovery__factory.js +145 -0
  272. package/export/typechain/factories/MovingFunds__factory.js +169 -0
  273. package/export/typechain/factories/Ownable__factory.js +71 -0
  274. package/export/typechain/factories/ProxyAdmin__factory.js +191 -0
  275. package/export/typechain/factories/Proxy__factory.js +27 -0
  276. package/export/typechain/factories/ReceiveApprovalStub__factory.js +127 -0
  277. package/export/typechain/factories/Redemption__factory.js +123 -0
  278. package/export/typechain/factories/Reimbursable__factory.js +58 -0
  279. package/export/typechain/factories/ReimbursementPool__factory.js +350 -0
  280. package/export/typechain/factories/Rewards__factory.js +117 -0
  281. package/export/typechain/factories/SortitionPool__factory.js +610 -0
  282. package/export/typechain/factories/SortitionTree__factory.js +149 -0
  283. package/export/typechain/factories/TBTCVault__factory.js +480 -0
  284. package/export/typechain/factories/TBTC__factory.js +564 -0
  285. package/export/typechain/factories/TestERC20__factory.js +539 -0
  286. package/export/typechain/factories/TestERC721__factory.js +421 -0
  287. package/export/typechain/factories/TestEcdsaLib__factory.js +66 -0
  288. package/export/typechain/factories/TestRelay__factory.js +94 -0
  289. package/export/typechain/factories/TransparentUpgradeableProxy__factory.js +186 -0
  290. package/export/typechain/factories/VendingMachine__factory.js +549 -0
  291. package/export/typechain/factories/WalletRegistry__factory.js +1919 -0
  292. package/export/typechain/factories/Wallets__factory.js +143 -0
  293. package/export/typechain/index.js +132 -0
  294. package/export.json +15932 -503
  295. package/package.json +47 -26
  296. package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -104
@@ -0,0 +1,2526 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Bridge__factory = void 0;
4
+ /* Autogenerated file. Do not edit manually. */
5
+ /* tslint:disable */
6
+ /* eslint-disable */
7
+ const ethers_1 = require("ethers");
8
+ const _abi = [
9
+ {
10
+ anonymous: false,
11
+ inputs: [
12
+ {
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",
23
+ },
24
+ {
25
+ indexed: false,
26
+ internalType: "uint64",
27
+ name: "depositTxMaxFee",
28
+ type: "uint64",
29
+ },
30
+ ],
31
+ name: "DepositParametersUpdated",
32
+ type: "event",
33
+ },
34
+ {
35
+ anonymous: false,
36
+ inputs: [
37
+ {
38
+ indexed: false,
39
+ internalType: "bytes32",
40
+ name: "fundingTxHash",
41
+ type: "bytes32",
42
+ },
43
+ {
44
+ indexed: false,
45
+ internalType: "uint32",
46
+ name: "fundingOutputIndex",
47
+ type: "uint32",
48
+ },
49
+ {
50
+ indexed: true,
51
+ internalType: "address",
52
+ name: "depositor",
53
+ type: "address",
54
+ },
55
+ {
56
+ indexed: false,
57
+ internalType: "uint64",
58
+ name: "amount",
59
+ type: "uint64",
60
+ },
61
+ {
62
+ indexed: false,
63
+ internalType: "bytes8",
64
+ name: "blindingFactor",
65
+ type: "bytes8",
66
+ },
67
+ {
68
+ indexed: true,
69
+ internalType: "bytes20",
70
+ name: "walletPubKeyHash",
71
+ type: "bytes20",
72
+ },
73
+ {
74
+ indexed: false,
75
+ internalType: "bytes20",
76
+ name: "refundPubKeyHash",
77
+ type: "bytes20",
78
+ },
79
+ {
80
+ indexed: false,
81
+ internalType: "bytes4",
82
+ name: "refundLocktime",
83
+ type: "bytes4",
84
+ },
85
+ {
86
+ indexed: false,
87
+ internalType: "address",
88
+ name: "vault",
89
+ type: "address",
90
+ },
91
+ ],
92
+ name: "DepositRevealed",
93
+ type: "event",
94
+ },
95
+ {
96
+ anonymous: false,
97
+ inputs: [
98
+ {
99
+ indexed: false,
100
+ internalType: "bytes20",
101
+ name: "walletPubKeyHash",
102
+ type: "bytes20",
103
+ },
104
+ {
105
+ indexed: false,
106
+ internalType: "bytes32",
107
+ name: "sweepTxHash",
108
+ type: "bytes32",
109
+ },
110
+ ],
111
+ name: "DepositsSwept",
112
+ type: "event",
113
+ },
114
+ {
115
+ anonymous: false,
116
+ inputs: [
117
+ {
118
+ indexed: true,
119
+ internalType: "bytes20",
120
+ name: "walletPubKeyHash",
121
+ type: "bytes20",
122
+ },
123
+ {
124
+ indexed: false,
125
+ internalType: "bytes32",
126
+ name: "sighash",
127
+ type: "bytes32",
128
+ },
129
+ ],
130
+ name: "FraudChallengeDefeatTimedOut",
131
+ type: "event",
132
+ },
133
+ {
134
+ anonymous: false,
135
+ inputs: [
136
+ {
137
+ indexed: true,
138
+ internalType: "bytes20",
139
+ name: "walletPubKeyHash",
140
+ type: "bytes20",
141
+ },
142
+ {
143
+ indexed: false,
144
+ internalType: "bytes32",
145
+ name: "sighash",
146
+ type: "bytes32",
147
+ },
148
+ ],
149
+ name: "FraudChallengeDefeated",
150
+ type: "event",
151
+ },
152
+ {
153
+ anonymous: false,
154
+ inputs: [
155
+ {
156
+ indexed: true,
157
+ internalType: "bytes20",
158
+ name: "walletPubKeyHash",
159
+ type: "bytes20",
160
+ },
161
+ {
162
+ indexed: false,
163
+ internalType: "bytes32",
164
+ name: "sighash",
165
+ type: "bytes32",
166
+ },
167
+ {
168
+ indexed: false,
169
+ internalType: "uint8",
170
+ name: "v",
171
+ type: "uint8",
172
+ },
173
+ {
174
+ indexed: false,
175
+ internalType: "bytes32",
176
+ name: "r",
177
+ type: "bytes32",
178
+ },
179
+ {
180
+ indexed: false,
181
+ internalType: "bytes32",
182
+ name: "s",
183
+ type: "bytes32",
184
+ },
185
+ ],
186
+ name: "FraudChallengeSubmitted",
187
+ type: "event",
188
+ },
189
+ {
190
+ anonymous: false,
191
+ inputs: [
192
+ {
193
+ indexed: false,
194
+ internalType: "uint256",
195
+ name: "fraudChallengeDepositAmount",
196
+ type: "uint256",
197
+ },
198
+ {
199
+ indexed: false,
200
+ internalType: "uint256",
201
+ name: "fraudChallengeDefeatTimeout",
202
+ type: "uint256",
203
+ },
204
+ {
205
+ indexed: false,
206
+ internalType: "uint96",
207
+ name: "fraudSlashingAmount",
208
+ type: "uint96",
209
+ },
210
+ {
211
+ indexed: false,
212
+ internalType: "uint256",
213
+ name: "fraudNotifierRewardMultiplier",
214
+ type: "uint256",
215
+ },
216
+ ],
217
+ name: "FraudParametersUpdated",
218
+ type: "event",
219
+ },
220
+ {
221
+ anonymous: false,
222
+ inputs: [
223
+ {
224
+ indexed: false,
225
+ internalType: "address",
226
+ name: "oldGovernance",
227
+ type: "address",
228
+ },
229
+ {
230
+ indexed: false,
231
+ internalType: "address",
232
+ name: "newGovernance",
233
+ type: "address",
234
+ },
235
+ ],
236
+ name: "GovernanceTransferred",
237
+ type: "event",
238
+ },
239
+ {
240
+ anonymous: false,
241
+ inputs: [
242
+ {
243
+ indexed: false,
244
+ internalType: "uint8",
245
+ name: "version",
246
+ type: "uint8",
247
+ },
248
+ ],
249
+ name: "Initialized",
250
+ type: "event",
251
+ },
252
+ {
253
+ anonymous: false,
254
+ inputs: [
255
+ {
256
+ indexed: true,
257
+ internalType: "bytes20",
258
+ name: "walletPubKeyHash",
259
+ type: "bytes20",
260
+ },
261
+ {
262
+ indexed: false,
263
+ internalType: "bytes32",
264
+ name: "movingFundsTxHash",
265
+ type: "bytes32",
266
+ },
267
+ {
268
+ indexed: false,
269
+ internalType: "uint32",
270
+ name: "movingFundsTxOutputIndex",
271
+ type: "uint32",
272
+ },
273
+ ],
274
+ name: "MovedFundsSweepTimedOut",
275
+ type: "event",
276
+ },
277
+ {
278
+ anonymous: false,
279
+ inputs: [
280
+ {
281
+ indexed: true,
282
+ internalType: "bytes20",
283
+ name: "walletPubKeyHash",
284
+ type: "bytes20",
285
+ },
286
+ {
287
+ indexed: false,
288
+ internalType: "bytes32",
289
+ name: "sweepTxHash",
290
+ type: "bytes32",
291
+ },
292
+ ],
293
+ name: "MovedFundsSwept",
294
+ type: "event",
295
+ },
296
+ {
297
+ anonymous: false,
298
+ inputs: [
299
+ {
300
+ indexed: true,
301
+ internalType: "bytes20",
302
+ name: "walletPubKeyHash",
303
+ type: "bytes20",
304
+ },
305
+ ],
306
+ name: "MovingFundsBelowDustReported",
307
+ type: "event",
308
+ },
309
+ {
310
+ anonymous: false,
311
+ inputs: [
312
+ {
313
+ indexed: true,
314
+ internalType: "bytes20",
315
+ name: "walletPubKeyHash",
316
+ type: "bytes20",
317
+ },
318
+ {
319
+ indexed: false,
320
+ internalType: "bytes20[]",
321
+ name: "targetWallets",
322
+ type: "bytes20[]",
323
+ },
324
+ {
325
+ indexed: false,
326
+ internalType: "address",
327
+ name: "submitter",
328
+ type: "address",
329
+ },
330
+ ],
331
+ name: "MovingFundsCommitmentSubmitted",
332
+ type: "event",
333
+ },
334
+ {
335
+ anonymous: false,
336
+ inputs: [
337
+ {
338
+ indexed: true,
339
+ internalType: "bytes20",
340
+ name: "walletPubKeyHash",
341
+ type: "bytes20",
342
+ },
343
+ {
344
+ indexed: false,
345
+ internalType: "bytes32",
346
+ name: "movingFundsTxHash",
347
+ type: "bytes32",
348
+ },
349
+ ],
350
+ name: "MovingFundsCompleted",
351
+ type: "event",
352
+ },
353
+ {
354
+ anonymous: false,
355
+ inputs: [
356
+ {
357
+ indexed: false,
358
+ internalType: "uint64",
359
+ name: "movingFundsTxMaxTotalFee",
360
+ type: "uint64",
361
+ },
362
+ {
363
+ indexed: false,
364
+ internalType: "uint64",
365
+ name: "movingFundsDustThreshold",
366
+ type: "uint64",
367
+ },
368
+ {
369
+ indexed: false,
370
+ internalType: "uint32",
371
+ name: "movingFundsTimeoutResetDelay",
372
+ type: "uint32",
373
+ },
374
+ {
375
+ indexed: false,
376
+ internalType: "uint32",
377
+ name: "movingFundsTimeout",
378
+ type: "uint32",
379
+ },
380
+ {
381
+ indexed: false,
382
+ internalType: "uint96",
383
+ name: "movingFundsTimeoutSlashingAmount",
384
+ type: "uint96",
385
+ },
386
+ {
387
+ indexed: false,
388
+ internalType: "uint256",
389
+ name: "movingFundsTimeoutNotifierRewardMultiplier",
390
+ type: "uint256",
391
+ },
392
+ {
393
+ indexed: false,
394
+ internalType: "uint64",
395
+ name: "movedFundsSweepTxMaxTotalFee",
396
+ type: "uint64",
397
+ },
398
+ {
399
+ indexed: false,
400
+ internalType: "uint32",
401
+ name: "movedFundsSweepTimeout",
402
+ type: "uint32",
403
+ },
404
+ {
405
+ indexed: false,
406
+ internalType: "uint96",
407
+ name: "movedFundsSweepTimeoutSlashingAmount",
408
+ type: "uint96",
409
+ },
410
+ {
411
+ indexed: false,
412
+ internalType: "uint256",
413
+ name: "movedFundsSweepTimeoutNotifierRewardMultiplier",
414
+ type: "uint256",
415
+ },
416
+ ],
417
+ name: "MovingFundsParametersUpdated",
418
+ type: "event",
419
+ },
420
+ {
421
+ anonymous: false,
422
+ inputs: [
423
+ {
424
+ indexed: true,
425
+ internalType: "bytes20",
426
+ name: "walletPubKeyHash",
427
+ type: "bytes20",
428
+ },
429
+ ],
430
+ name: "MovingFundsTimedOut",
431
+ type: "event",
432
+ },
433
+ {
434
+ anonymous: false,
435
+ inputs: [
436
+ {
437
+ indexed: true,
438
+ internalType: "bytes20",
439
+ name: "walletPubKeyHash",
440
+ type: "bytes20",
441
+ },
442
+ ],
443
+ name: "MovingFundsTimeoutReset",
444
+ type: "event",
445
+ },
446
+ {
447
+ anonymous: false,
448
+ inputs: [
449
+ {
450
+ indexed: true,
451
+ internalType: "bytes32",
452
+ name: "ecdsaWalletID",
453
+ type: "bytes32",
454
+ },
455
+ {
456
+ indexed: true,
457
+ internalType: "bytes20",
458
+ name: "walletPubKeyHash",
459
+ type: "bytes20",
460
+ },
461
+ ],
462
+ name: "NewWalletRegistered",
463
+ type: "event",
464
+ },
465
+ {
466
+ anonymous: false,
467
+ inputs: [],
468
+ name: "NewWalletRequested",
469
+ type: "event",
470
+ },
471
+ {
472
+ anonymous: false,
473
+ inputs: [
474
+ {
475
+ indexed: false,
476
+ internalType: "uint64",
477
+ name: "redemptionDustThreshold",
478
+ type: "uint64",
479
+ },
480
+ {
481
+ indexed: false,
482
+ internalType: "uint64",
483
+ name: "redemptionTreasuryFeeDivisor",
484
+ type: "uint64",
485
+ },
486
+ {
487
+ indexed: false,
488
+ internalType: "uint64",
489
+ name: "redemptionTxMaxFee",
490
+ type: "uint64",
491
+ },
492
+ {
493
+ indexed: false,
494
+ internalType: "uint256",
495
+ name: "redemptionTimeout",
496
+ type: "uint256",
497
+ },
498
+ {
499
+ indexed: false,
500
+ internalType: "uint96",
501
+ name: "redemptionTimeoutSlashingAmount",
502
+ type: "uint96",
503
+ },
504
+ {
505
+ indexed: false,
506
+ internalType: "uint256",
507
+ name: "redemptionTimeoutNotifierRewardMultiplier",
508
+ type: "uint256",
509
+ },
510
+ ],
511
+ name: "RedemptionParametersUpdated",
512
+ type: "event",
513
+ },
514
+ {
515
+ anonymous: false,
516
+ inputs: [
517
+ {
518
+ indexed: true,
519
+ internalType: "bytes20",
520
+ name: "walletPubKeyHash",
521
+ type: "bytes20",
522
+ },
523
+ {
524
+ indexed: false,
525
+ internalType: "bytes",
526
+ name: "redeemerOutputScript",
527
+ type: "bytes",
528
+ },
529
+ {
530
+ indexed: true,
531
+ internalType: "address",
532
+ name: "redeemer",
533
+ type: "address",
534
+ },
535
+ {
536
+ indexed: false,
537
+ internalType: "uint64",
538
+ name: "requestedAmount",
539
+ type: "uint64",
540
+ },
541
+ {
542
+ indexed: false,
543
+ internalType: "uint64",
544
+ name: "treasuryFee",
545
+ type: "uint64",
546
+ },
547
+ {
548
+ indexed: false,
549
+ internalType: "uint64",
550
+ name: "txMaxFee",
551
+ type: "uint64",
552
+ },
553
+ ],
554
+ name: "RedemptionRequested",
555
+ type: "event",
556
+ },
557
+ {
558
+ anonymous: false,
559
+ inputs: [
560
+ {
561
+ indexed: true,
562
+ internalType: "bytes20",
563
+ name: "walletPubKeyHash",
564
+ type: "bytes20",
565
+ },
566
+ {
567
+ indexed: false,
568
+ internalType: "bytes",
569
+ name: "redeemerOutputScript",
570
+ type: "bytes",
571
+ },
572
+ ],
573
+ name: "RedemptionTimedOut",
574
+ type: "event",
575
+ },
576
+ {
577
+ anonymous: false,
578
+ inputs: [
579
+ {
580
+ indexed: true,
581
+ internalType: "bytes20",
582
+ name: "walletPubKeyHash",
583
+ type: "bytes20",
584
+ },
585
+ {
586
+ indexed: false,
587
+ internalType: "bytes32",
588
+ name: "redemptionTxHash",
589
+ type: "bytes32",
590
+ },
591
+ ],
592
+ name: "RedemptionsCompleted",
593
+ type: "event",
594
+ },
595
+ {
596
+ anonymous: false,
597
+ inputs: [
598
+ {
599
+ indexed: true,
600
+ internalType: "address",
601
+ name: "vault",
602
+ type: "address",
603
+ },
604
+ {
605
+ indexed: false,
606
+ internalType: "bool",
607
+ name: "isTrusted",
608
+ type: "bool",
609
+ },
610
+ ],
611
+ name: "VaultStatusUpdated",
612
+ type: "event",
613
+ },
614
+ {
615
+ anonymous: false,
616
+ inputs: [
617
+ {
618
+ indexed: true,
619
+ internalType: "bytes32",
620
+ name: "ecdsaWalletID",
621
+ type: "bytes32",
622
+ },
623
+ {
624
+ indexed: true,
625
+ internalType: "bytes20",
626
+ name: "walletPubKeyHash",
627
+ type: "bytes20",
628
+ },
629
+ ],
630
+ name: "WalletClosed",
631
+ type: "event",
632
+ },
633
+ {
634
+ anonymous: false,
635
+ inputs: [
636
+ {
637
+ indexed: true,
638
+ internalType: "bytes32",
639
+ name: "ecdsaWalletID",
640
+ type: "bytes32",
641
+ },
642
+ {
643
+ indexed: true,
644
+ internalType: "bytes20",
645
+ name: "walletPubKeyHash",
646
+ type: "bytes20",
647
+ },
648
+ ],
649
+ name: "WalletClosing",
650
+ type: "event",
651
+ },
652
+ {
653
+ anonymous: false,
654
+ inputs: [
655
+ {
656
+ indexed: true,
657
+ internalType: "bytes32",
658
+ name: "ecdsaWalletID",
659
+ type: "bytes32",
660
+ },
661
+ {
662
+ indexed: true,
663
+ internalType: "bytes20",
664
+ name: "walletPubKeyHash",
665
+ type: "bytes20",
666
+ },
667
+ ],
668
+ name: "WalletMovingFunds",
669
+ type: "event",
670
+ },
671
+ {
672
+ anonymous: false,
673
+ inputs: [
674
+ {
675
+ indexed: false,
676
+ internalType: "uint32",
677
+ name: "walletCreationPeriod",
678
+ type: "uint32",
679
+ },
680
+ {
681
+ indexed: false,
682
+ internalType: "uint64",
683
+ name: "walletCreationMinBtcBalance",
684
+ type: "uint64",
685
+ },
686
+ {
687
+ indexed: false,
688
+ internalType: "uint64",
689
+ name: "walletCreationMaxBtcBalance",
690
+ type: "uint64",
691
+ },
692
+ {
693
+ indexed: false,
694
+ internalType: "uint64",
695
+ name: "walletClosureMinBtcBalance",
696
+ type: "uint64",
697
+ },
698
+ {
699
+ indexed: false,
700
+ internalType: "uint32",
701
+ name: "walletMaxAge",
702
+ type: "uint32",
703
+ },
704
+ {
705
+ indexed: false,
706
+ internalType: "uint64",
707
+ name: "walletMaxBtcTransfer",
708
+ type: "uint64",
709
+ },
710
+ {
711
+ indexed: false,
712
+ internalType: "uint32",
713
+ name: "walletClosingPeriod",
714
+ type: "uint32",
715
+ },
716
+ ],
717
+ name: "WalletParametersUpdated",
718
+ type: "event",
719
+ },
720
+ {
721
+ anonymous: false,
722
+ inputs: [
723
+ {
724
+ indexed: true,
725
+ internalType: "bytes32",
726
+ name: "ecdsaWalletID",
727
+ type: "bytes32",
728
+ },
729
+ {
730
+ indexed: true,
731
+ internalType: "bytes20",
732
+ name: "walletPubKeyHash",
733
+ type: "bytes20",
734
+ },
735
+ ],
736
+ name: "WalletTerminated",
737
+ type: "event",
738
+ },
739
+ {
740
+ inputs: [
741
+ {
742
+ internalType: "bytes32",
743
+ name: "ecdsaWalletID",
744
+ type: "bytes32",
745
+ },
746
+ {
747
+ internalType: "bytes32",
748
+ name: "publicKeyX",
749
+ type: "bytes32",
750
+ },
751
+ {
752
+ internalType: "bytes32",
753
+ name: "publicKeyY",
754
+ type: "bytes32",
755
+ },
756
+ ],
757
+ name: "__ecdsaWalletCreatedCallback",
758
+ outputs: [],
759
+ stateMutability: "nonpayable",
760
+ type: "function",
761
+ },
762
+ {
763
+ inputs: [
764
+ {
765
+ internalType: "bytes32",
766
+ name: "",
767
+ type: "bytes32",
768
+ },
769
+ {
770
+ internalType: "bytes32",
771
+ name: "publicKeyX",
772
+ type: "bytes32",
773
+ },
774
+ {
775
+ internalType: "bytes32",
776
+ name: "publicKeyY",
777
+ type: "bytes32",
778
+ },
779
+ ],
780
+ name: "__ecdsaWalletHeartbeatFailedCallback",
781
+ outputs: [],
782
+ stateMutability: "nonpayable",
783
+ type: "function",
784
+ },
785
+ {
786
+ inputs: [],
787
+ name: "activeWalletPubKeyHash",
788
+ outputs: [
789
+ {
790
+ internalType: "bytes20",
791
+ name: "",
792
+ type: "bytes20",
793
+ },
794
+ ],
795
+ stateMutability: "view",
796
+ type: "function",
797
+ },
798
+ {
799
+ inputs: [],
800
+ name: "contractReferences",
801
+ outputs: [
802
+ {
803
+ internalType: "contract Bank",
804
+ name: "bank",
805
+ type: "address",
806
+ },
807
+ {
808
+ internalType: "contract IRelay",
809
+ name: "relay",
810
+ type: "address",
811
+ },
812
+ {
813
+ internalType: "contract IWalletRegistry",
814
+ name: "ecdsaWalletRegistry",
815
+ type: "address",
816
+ },
817
+ ],
818
+ stateMutability: "view",
819
+ type: "function",
820
+ },
821
+ {
822
+ inputs: [
823
+ {
824
+ internalType: "bytes",
825
+ name: "walletPublicKey",
826
+ type: "bytes",
827
+ },
828
+ {
829
+ internalType: "bytes",
830
+ name: "preimage",
831
+ type: "bytes",
832
+ },
833
+ {
834
+ internalType: "bool",
835
+ name: "witness",
836
+ type: "bool",
837
+ },
838
+ ],
839
+ name: "defeatFraudChallenge",
840
+ outputs: [],
841
+ stateMutability: "nonpayable",
842
+ type: "function",
843
+ },
844
+ {
845
+ inputs: [
846
+ {
847
+ internalType: "bytes",
848
+ name: "walletPublicKey",
849
+ type: "bytes",
850
+ },
851
+ {
852
+ internalType: "bytes",
853
+ name: "heartbeatMessage",
854
+ type: "bytes",
855
+ },
856
+ ],
857
+ name: "defeatFraudChallengeWithHeartbeat",
858
+ outputs: [],
859
+ stateMutability: "nonpayable",
860
+ type: "function",
861
+ },
862
+ {
863
+ inputs: [],
864
+ name: "depositParameters",
865
+ outputs: [
866
+ {
867
+ internalType: "uint64",
868
+ name: "depositDustThreshold",
869
+ type: "uint64",
870
+ },
871
+ {
872
+ internalType: "uint64",
873
+ name: "depositTreasuryFeeDivisor",
874
+ type: "uint64",
875
+ },
876
+ {
877
+ internalType: "uint64",
878
+ name: "depositTxMaxFee",
879
+ type: "uint64",
880
+ },
881
+ ],
882
+ stateMutability: "view",
883
+ type: "function",
884
+ },
885
+ {
886
+ inputs: [
887
+ {
888
+ internalType: "uint256",
889
+ name: "depositKey",
890
+ type: "uint256",
891
+ },
892
+ ],
893
+ name: "deposits",
894
+ outputs: [
895
+ {
896
+ components: [
897
+ {
898
+ internalType: "address",
899
+ name: "depositor",
900
+ type: "address",
901
+ },
902
+ {
903
+ internalType: "uint64",
904
+ name: "amount",
905
+ type: "uint64",
906
+ },
907
+ {
908
+ internalType: "uint32",
909
+ name: "revealedAt",
910
+ type: "uint32",
911
+ },
912
+ {
913
+ internalType: "address",
914
+ name: "vault",
915
+ type: "address",
916
+ },
917
+ {
918
+ internalType: "uint64",
919
+ name: "treasuryFee",
920
+ type: "uint64",
921
+ },
922
+ {
923
+ internalType: "uint32",
924
+ name: "sweptAt",
925
+ type: "uint32",
926
+ },
927
+ ],
928
+ internalType: "struct Deposit.DepositRequest",
929
+ name: "",
930
+ type: "tuple",
931
+ },
932
+ ],
933
+ stateMutability: "view",
934
+ type: "function",
935
+ },
936
+ {
937
+ inputs: [
938
+ {
939
+ internalType: "uint256",
940
+ name: "challengeKey",
941
+ type: "uint256",
942
+ },
943
+ ],
944
+ name: "fraudChallenges",
945
+ outputs: [
946
+ {
947
+ components: [
948
+ {
949
+ internalType: "address",
950
+ name: "challenger",
951
+ type: "address",
952
+ },
953
+ {
954
+ internalType: "uint256",
955
+ name: "depositAmount",
956
+ type: "uint256",
957
+ },
958
+ {
959
+ internalType: "uint32",
960
+ name: "reportedAt",
961
+ type: "uint32",
962
+ },
963
+ {
964
+ internalType: "bool",
965
+ name: "resolved",
966
+ type: "bool",
967
+ },
968
+ ],
969
+ internalType: "struct Fraud.FraudChallenge",
970
+ name: "",
971
+ type: "tuple",
972
+ },
973
+ ],
974
+ stateMutability: "view",
975
+ type: "function",
976
+ },
977
+ {
978
+ inputs: [],
979
+ name: "fraudParameters",
980
+ outputs: [
981
+ {
982
+ internalType: "uint256",
983
+ name: "fraudChallengeDepositAmount",
984
+ type: "uint256",
985
+ },
986
+ {
987
+ internalType: "uint256",
988
+ name: "fraudChallengeDefeatTimeout",
989
+ type: "uint256",
990
+ },
991
+ {
992
+ internalType: "uint96",
993
+ name: "fraudSlashingAmount",
994
+ type: "uint96",
995
+ },
996
+ {
997
+ internalType: "uint256",
998
+ name: "fraudNotifierRewardMultiplier",
999
+ type: "uint256",
1000
+ },
1001
+ ],
1002
+ stateMutability: "view",
1003
+ type: "function",
1004
+ },
1005
+ {
1006
+ inputs: [],
1007
+ name: "governance",
1008
+ outputs: [
1009
+ {
1010
+ internalType: "address",
1011
+ name: "",
1012
+ type: "address",
1013
+ },
1014
+ ],
1015
+ stateMutability: "view",
1016
+ type: "function",
1017
+ },
1018
+ {
1019
+ inputs: [
1020
+ {
1021
+ internalType: "address",
1022
+ name: "_bank",
1023
+ type: "address",
1024
+ },
1025
+ {
1026
+ internalType: "address",
1027
+ name: "_relay",
1028
+ type: "address",
1029
+ },
1030
+ {
1031
+ internalType: "address",
1032
+ name: "_treasury",
1033
+ type: "address",
1034
+ },
1035
+ {
1036
+ internalType: "address",
1037
+ name: "_ecdsaWalletRegistry",
1038
+ type: "address",
1039
+ },
1040
+ {
1041
+ internalType: "uint256",
1042
+ name: "_txProofDifficultyFactor",
1043
+ type: "uint256",
1044
+ },
1045
+ ],
1046
+ name: "initialize",
1047
+ outputs: [],
1048
+ stateMutability: "nonpayable",
1049
+ type: "function",
1050
+ },
1051
+ {
1052
+ inputs: [
1053
+ {
1054
+ internalType: "address",
1055
+ name: "vault",
1056
+ type: "address",
1057
+ },
1058
+ ],
1059
+ name: "isVaultTrusted",
1060
+ outputs: [
1061
+ {
1062
+ internalType: "bool",
1063
+ name: "",
1064
+ type: "bool",
1065
+ },
1066
+ ],
1067
+ stateMutability: "view",
1068
+ type: "function",
1069
+ },
1070
+ {
1071
+ inputs: [],
1072
+ name: "liveWalletsCount",
1073
+ outputs: [
1074
+ {
1075
+ internalType: "uint32",
1076
+ name: "",
1077
+ type: "uint32",
1078
+ },
1079
+ ],
1080
+ stateMutability: "view",
1081
+ type: "function",
1082
+ },
1083
+ {
1084
+ inputs: [
1085
+ {
1086
+ internalType: "uint256",
1087
+ name: "requestKey",
1088
+ type: "uint256",
1089
+ },
1090
+ ],
1091
+ name: "movedFundsSweepRequests",
1092
+ outputs: [
1093
+ {
1094
+ components: [
1095
+ {
1096
+ internalType: "bytes20",
1097
+ name: "walletPubKeyHash",
1098
+ type: "bytes20",
1099
+ },
1100
+ {
1101
+ internalType: "uint64",
1102
+ name: "value",
1103
+ type: "uint64",
1104
+ },
1105
+ {
1106
+ internalType: "uint32",
1107
+ name: "createdAt",
1108
+ type: "uint32",
1109
+ },
1110
+ {
1111
+ internalType: "enum MovingFunds.MovedFundsSweepRequestState",
1112
+ name: "state",
1113
+ type: "uint8",
1114
+ },
1115
+ ],
1116
+ internalType: "struct MovingFunds.MovedFundsSweepRequest",
1117
+ name: "",
1118
+ type: "tuple",
1119
+ },
1120
+ ],
1121
+ stateMutability: "view",
1122
+ type: "function",
1123
+ },
1124
+ {
1125
+ inputs: [],
1126
+ name: "movingFundsParameters",
1127
+ outputs: [
1128
+ {
1129
+ internalType: "uint64",
1130
+ name: "movingFundsTxMaxTotalFee",
1131
+ type: "uint64",
1132
+ },
1133
+ {
1134
+ internalType: "uint64",
1135
+ name: "movingFundsDustThreshold",
1136
+ type: "uint64",
1137
+ },
1138
+ {
1139
+ internalType: "uint32",
1140
+ name: "movingFundsTimeoutResetDelay",
1141
+ type: "uint32",
1142
+ },
1143
+ {
1144
+ internalType: "uint32",
1145
+ name: "movingFundsTimeout",
1146
+ type: "uint32",
1147
+ },
1148
+ {
1149
+ internalType: "uint96",
1150
+ name: "movingFundsTimeoutSlashingAmount",
1151
+ type: "uint96",
1152
+ },
1153
+ {
1154
+ internalType: "uint256",
1155
+ name: "movingFundsTimeoutNotifierRewardMultiplier",
1156
+ type: "uint256",
1157
+ },
1158
+ {
1159
+ internalType: "uint64",
1160
+ name: "movedFundsSweepTxMaxTotalFee",
1161
+ type: "uint64",
1162
+ },
1163
+ {
1164
+ internalType: "uint32",
1165
+ name: "movedFundsSweepTimeout",
1166
+ type: "uint32",
1167
+ },
1168
+ {
1169
+ internalType: "uint96",
1170
+ name: "movedFundsSweepTimeoutSlashingAmount",
1171
+ type: "uint96",
1172
+ },
1173
+ {
1174
+ internalType: "uint256",
1175
+ name: "movedFundsSweepTimeoutNotifierRewardMultiplier",
1176
+ type: "uint256",
1177
+ },
1178
+ ],
1179
+ stateMutability: "view",
1180
+ type: "function",
1181
+ },
1182
+ {
1183
+ inputs: [
1184
+ {
1185
+ internalType: "bytes",
1186
+ name: "walletPublicKey",
1187
+ type: "bytes",
1188
+ },
1189
+ {
1190
+ internalType: "uint32[]",
1191
+ name: "walletMembersIDs",
1192
+ type: "uint32[]",
1193
+ },
1194
+ {
1195
+ internalType: "bytes",
1196
+ name: "preimageSha256",
1197
+ type: "bytes",
1198
+ },
1199
+ ],
1200
+ name: "notifyFraudChallengeDefeatTimeout",
1201
+ outputs: [],
1202
+ stateMutability: "nonpayable",
1203
+ type: "function",
1204
+ },
1205
+ {
1206
+ inputs: [
1207
+ {
1208
+ internalType: "bytes32",
1209
+ name: "movingFundsTxHash",
1210
+ type: "bytes32",
1211
+ },
1212
+ {
1213
+ internalType: "uint32",
1214
+ name: "movingFundsTxOutputIndex",
1215
+ type: "uint32",
1216
+ },
1217
+ {
1218
+ internalType: "uint32[]",
1219
+ name: "walletMembersIDs",
1220
+ type: "uint32[]",
1221
+ },
1222
+ ],
1223
+ name: "notifyMovedFundsSweepTimeout",
1224
+ outputs: [],
1225
+ stateMutability: "nonpayable",
1226
+ type: "function",
1227
+ },
1228
+ {
1229
+ inputs: [
1230
+ {
1231
+ internalType: "bytes20",
1232
+ name: "walletPubKeyHash",
1233
+ type: "bytes20",
1234
+ },
1235
+ {
1236
+ components: [
1237
+ {
1238
+ internalType: "bytes32",
1239
+ name: "txHash",
1240
+ type: "bytes32",
1241
+ },
1242
+ {
1243
+ internalType: "uint32",
1244
+ name: "txOutputIndex",
1245
+ type: "uint32",
1246
+ },
1247
+ {
1248
+ internalType: "uint64",
1249
+ name: "txOutputValue",
1250
+ type: "uint64",
1251
+ },
1252
+ ],
1253
+ internalType: "struct BitcoinTx.UTXO",
1254
+ name: "mainUtxo",
1255
+ type: "tuple",
1256
+ },
1257
+ ],
1258
+ name: "notifyMovingFundsBelowDust",
1259
+ outputs: [],
1260
+ stateMutability: "nonpayable",
1261
+ type: "function",
1262
+ },
1263
+ {
1264
+ inputs: [
1265
+ {
1266
+ internalType: "bytes20",
1267
+ name: "walletPubKeyHash",
1268
+ type: "bytes20",
1269
+ },
1270
+ {
1271
+ internalType: "uint32[]",
1272
+ name: "walletMembersIDs",
1273
+ type: "uint32[]",
1274
+ },
1275
+ ],
1276
+ name: "notifyMovingFundsTimeout",
1277
+ outputs: [],
1278
+ stateMutability: "nonpayable",
1279
+ type: "function",
1280
+ },
1281
+ {
1282
+ inputs: [
1283
+ {
1284
+ internalType: "bytes20",
1285
+ name: "walletPubKeyHash",
1286
+ type: "bytes20",
1287
+ },
1288
+ {
1289
+ internalType: "uint32[]",
1290
+ name: "walletMembersIDs",
1291
+ type: "uint32[]",
1292
+ },
1293
+ {
1294
+ internalType: "bytes",
1295
+ name: "redeemerOutputScript",
1296
+ type: "bytes",
1297
+ },
1298
+ ],
1299
+ name: "notifyRedemptionTimeout",
1300
+ outputs: [],
1301
+ stateMutability: "nonpayable",
1302
+ type: "function",
1303
+ },
1304
+ {
1305
+ inputs: [
1306
+ {
1307
+ internalType: "bytes20",
1308
+ name: "walletPubKeyHash",
1309
+ type: "bytes20",
1310
+ },
1311
+ {
1312
+ components: [
1313
+ {
1314
+ internalType: "bytes32",
1315
+ name: "txHash",
1316
+ type: "bytes32",
1317
+ },
1318
+ {
1319
+ internalType: "uint32",
1320
+ name: "txOutputIndex",
1321
+ type: "uint32",
1322
+ },
1323
+ {
1324
+ internalType: "uint64",
1325
+ name: "txOutputValue",
1326
+ type: "uint64",
1327
+ },
1328
+ ],
1329
+ internalType: "struct BitcoinTx.UTXO",
1330
+ name: "walletMainUtxo",
1331
+ type: "tuple",
1332
+ },
1333
+ ],
1334
+ name: "notifyWalletCloseable",
1335
+ outputs: [],
1336
+ stateMutability: "nonpayable",
1337
+ type: "function",
1338
+ },
1339
+ {
1340
+ inputs: [
1341
+ {
1342
+ internalType: "bytes20",
1343
+ name: "walletPubKeyHash",
1344
+ type: "bytes20",
1345
+ },
1346
+ ],
1347
+ name: "notifyWalletClosingPeriodElapsed",
1348
+ outputs: [],
1349
+ stateMutability: "nonpayable",
1350
+ type: "function",
1351
+ },
1352
+ {
1353
+ inputs: [
1354
+ {
1355
+ internalType: "uint256",
1356
+ name: "redemptionKey",
1357
+ type: "uint256",
1358
+ },
1359
+ ],
1360
+ name: "pendingRedemptions",
1361
+ outputs: [
1362
+ {
1363
+ components: [
1364
+ {
1365
+ internalType: "address",
1366
+ name: "redeemer",
1367
+ type: "address",
1368
+ },
1369
+ {
1370
+ internalType: "uint64",
1371
+ name: "requestedAmount",
1372
+ type: "uint64",
1373
+ },
1374
+ {
1375
+ internalType: "uint64",
1376
+ name: "treasuryFee",
1377
+ type: "uint64",
1378
+ },
1379
+ {
1380
+ internalType: "uint64",
1381
+ name: "txMaxFee",
1382
+ type: "uint64",
1383
+ },
1384
+ {
1385
+ internalType: "uint32",
1386
+ name: "requestedAt",
1387
+ type: "uint32",
1388
+ },
1389
+ ],
1390
+ internalType: "struct Redemption.RedemptionRequest",
1391
+ name: "",
1392
+ type: "tuple",
1393
+ },
1394
+ ],
1395
+ stateMutability: "view",
1396
+ type: "function",
1397
+ },
1398
+ {
1399
+ inputs: [
1400
+ {
1401
+ internalType: "address",
1402
+ name: "balanceOwner",
1403
+ type: "address",
1404
+ },
1405
+ {
1406
+ internalType: "uint256",
1407
+ name: "amount",
1408
+ type: "uint256",
1409
+ },
1410
+ {
1411
+ internalType: "bytes",
1412
+ name: "redemptionData",
1413
+ type: "bytes",
1414
+ },
1415
+ ],
1416
+ name: "receiveBalanceApproval",
1417
+ outputs: [],
1418
+ stateMutability: "nonpayable",
1419
+ type: "function",
1420
+ },
1421
+ {
1422
+ inputs: [],
1423
+ name: "redemptionParameters",
1424
+ outputs: [
1425
+ {
1426
+ internalType: "uint64",
1427
+ name: "redemptionDustThreshold",
1428
+ type: "uint64",
1429
+ },
1430
+ {
1431
+ internalType: "uint64",
1432
+ name: "redemptionTreasuryFeeDivisor",
1433
+ type: "uint64",
1434
+ },
1435
+ {
1436
+ internalType: "uint64",
1437
+ name: "redemptionTxMaxFee",
1438
+ type: "uint64",
1439
+ },
1440
+ {
1441
+ internalType: "uint256",
1442
+ name: "redemptionTimeout",
1443
+ type: "uint256",
1444
+ },
1445
+ {
1446
+ internalType: "uint96",
1447
+ name: "redemptionTimeoutSlashingAmount",
1448
+ type: "uint96",
1449
+ },
1450
+ {
1451
+ internalType: "uint256",
1452
+ name: "redemptionTimeoutNotifierRewardMultiplier",
1453
+ type: "uint256",
1454
+ },
1455
+ ],
1456
+ stateMutability: "view",
1457
+ type: "function",
1458
+ },
1459
+ {
1460
+ inputs: [
1461
+ {
1462
+ components: [
1463
+ {
1464
+ internalType: "bytes32",
1465
+ name: "txHash",
1466
+ type: "bytes32",
1467
+ },
1468
+ {
1469
+ internalType: "uint32",
1470
+ name: "txOutputIndex",
1471
+ type: "uint32",
1472
+ },
1473
+ {
1474
+ internalType: "uint64",
1475
+ name: "txOutputValue",
1476
+ type: "uint64",
1477
+ },
1478
+ ],
1479
+ internalType: "struct BitcoinTx.UTXO",
1480
+ name: "activeWalletMainUtxo",
1481
+ type: "tuple",
1482
+ },
1483
+ ],
1484
+ name: "requestNewWallet",
1485
+ outputs: [],
1486
+ stateMutability: "nonpayable",
1487
+ type: "function",
1488
+ },
1489
+ {
1490
+ inputs: [
1491
+ {
1492
+ internalType: "bytes20",
1493
+ name: "walletPubKeyHash",
1494
+ type: "bytes20",
1495
+ },
1496
+ {
1497
+ components: [
1498
+ {
1499
+ internalType: "bytes32",
1500
+ name: "txHash",
1501
+ type: "bytes32",
1502
+ },
1503
+ {
1504
+ internalType: "uint32",
1505
+ name: "txOutputIndex",
1506
+ type: "uint32",
1507
+ },
1508
+ {
1509
+ internalType: "uint64",
1510
+ name: "txOutputValue",
1511
+ type: "uint64",
1512
+ },
1513
+ ],
1514
+ internalType: "struct BitcoinTx.UTXO",
1515
+ name: "mainUtxo",
1516
+ type: "tuple",
1517
+ },
1518
+ {
1519
+ internalType: "bytes",
1520
+ name: "redeemerOutputScript",
1521
+ type: "bytes",
1522
+ },
1523
+ {
1524
+ internalType: "uint64",
1525
+ name: "amount",
1526
+ type: "uint64",
1527
+ },
1528
+ ],
1529
+ name: "requestRedemption",
1530
+ outputs: [],
1531
+ stateMutability: "nonpayable",
1532
+ type: "function",
1533
+ },
1534
+ {
1535
+ inputs: [
1536
+ {
1537
+ internalType: "bytes20",
1538
+ name: "walletPubKeyHash",
1539
+ type: "bytes20",
1540
+ },
1541
+ ],
1542
+ name: "resetMovingFundsTimeout",
1543
+ outputs: [],
1544
+ stateMutability: "nonpayable",
1545
+ type: "function",
1546
+ },
1547
+ {
1548
+ inputs: [
1549
+ {
1550
+ components: [
1551
+ {
1552
+ internalType: "bytes4",
1553
+ name: "version",
1554
+ type: "bytes4",
1555
+ },
1556
+ {
1557
+ internalType: "bytes",
1558
+ name: "inputVector",
1559
+ type: "bytes",
1560
+ },
1561
+ {
1562
+ internalType: "bytes",
1563
+ name: "outputVector",
1564
+ type: "bytes",
1565
+ },
1566
+ {
1567
+ internalType: "bytes4",
1568
+ name: "locktime",
1569
+ type: "bytes4",
1570
+ },
1571
+ ],
1572
+ internalType: "struct BitcoinTx.Info",
1573
+ name: "fundingTx",
1574
+ type: "tuple",
1575
+ },
1576
+ {
1577
+ components: [
1578
+ {
1579
+ internalType: "uint32",
1580
+ name: "fundingOutputIndex",
1581
+ type: "uint32",
1582
+ },
1583
+ {
1584
+ internalType: "address",
1585
+ name: "depositor",
1586
+ type: "address",
1587
+ },
1588
+ {
1589
+ internalType: "bytes8",
1590
+ name: "blindingFactor",
1591
+ type: "bytes8",
1592
+ },
1593
+ {
1594
+ internalType: "bytes20",
1595
+ name: "walletPubKeyHash",
1596
+ type: "bytes20",
1597
+ },
1598
+ {
1599
+ internalType: "bytes20",
1600
+ name: "refundPubKeyHash",
1601
+ type: "bytes20",
1602
+ },
1603
+ {
1604
+ internalType: "bytes4",
1605
+ name: "refundLocktime",
1606
+ type: "bytes4",
1607
+ },
1608
+ {
1609
+ internalType: "address",
1610
+ name: "vault",
1611
+ type: "address",
1612
+ },
1613
+ ],
1614
+ internalType: "struct Deposit.DepositRevealInfo",
1615
+ name: "reveal",
1616
+ type: "tuple",
1617
+ },
1618
+ ],
1619
+ name: "revealDeposit",
1620
+ outputs: [],
1621
+ stateMutability: "nonpayable",
1622
+ type: "function",
1623
+ },
1624
+ {
1625
+ inputs: [
1626
+ {
1627
+ internalType: "address",
1628
+ name: "vault",
1629
+ type: "address",
1630
+ },
1631
+ {
1632
+ internalType: "bool",
1633
+ name: "isTrusted",
1634
+ type: "bool",
1635
+ },
1636
+ ],
1637
+ name: "setVaultStatus",
1638
+ outputs: [],
1639
+ stateMutability: "nonpayable",
1640
+ type: "function",
1641
+ },
1642
+ {
1643
+ inputs: [
1644
+ {
1645
+ internalType: "uint256",
1646
+ name: "utxoKey",
1647
+ type: "uint256",
1648
+ },
1649
+ ],
1650
+ name: "spentMainUTXOs",
1651
+ outputs: [
1652
+ {
1653
+ internalType: "bool",
1654
+ name: "",
1655
+ type: "bool",
1656
+ },
1657
+ ],
1658
+ stateMutability: "view",
1659
+ type: "function",
1660
+ },
1661
+ {
1662
+ inputs: [
1663
+ {
1664
+ components: [
1665
+ {
1666
+ internalType: "bytes4",
1667
+ name: "version",
1668
+ type: "bytes4",
1669
+ },
1670
+ {
1671
+ internalType: "bytes",
1672
+ name: "inputVector",
1673
+ type: "bytes",
1674
+ },
1675
+ {
1676
+ internalType: "bytes",
1677
+ name: "outputVector",
1678
+ type: "bytes",
1679
+ },
1680
+ {
1681
+ internalType: "bytes4",
1682
+ name: "locktime",
1683
+ type: "bytes4",
1684
+ },
1685
+ ],
1686
+ internalType: "struct BitcoinTx.Info",
1687
+ name: "sweepTx",
1688
+ type: "tuple",
1689
+ },
1690
+ {
1691
+ components: [
1692
+ {
1693
+ internalType: "bytes",
1694
+ name: "merkleProof",
1695
+ type: "bytes",
1696
+ },
1697
+ {
1698
+ internalType: "uint256",
1699
+ name: "txIndexInBlock",
1700
+ type: "uint256",
1701
+ },
1702
+ {
1703
+ internalType: "bytes",
1704
+ name: "bitcoinHeaders",
1705
+ type: "bytes",
1706
+ },
1707
+ ],
1708
+ internalType: "struct BitcoinTx.Proof",
1709
+ name: "sweepProof",
1710
+ type: "tuple",
1711
+ },
1712
+ {
1713
+ components: [
1714
+ {
1715
+ internalType: "bytes32",
1716
+ name: "txHash",
1717
+ type: "bytes32",
1718
+ },
1719
+ {
1720
+ internalType: "uint32",
1721
+ name: "txOutputIndex",
1722
+ type: "uint32",
1723
+ },
1724
+ {
1725
+ internalType: "uint64",
1726
+ name: "txOutputValue",
1727
+ type: "uint64",
1728
+ },
1729
+ ],
1730
+ internalType: "struct BitcoinTx.UTXO",
1731
+ name: "mainUtxo",
1732
+ type: "tuple",
1733
+ },
1734
+ {
1735
+ internalType: "address",
1736
+ name: "vault",
1737
+ type: "address",
1738
+ },
1739
+ ],
1740
+ name: "submitDepositSweepProof",
1741
+ outputs: [],
1742
+ stateMutability: "nonpayable",
1743
+ type: "function",
1744
+ },
1745
+ {
1746
+ inputs: [
1747
+ {
1748
+ internalType: "bytes",
1749
+ name: "walletPublicKey",
1750
+ type: "bytes",
1751
+ },
1752
+ {
1753
+ internalType: "bytes",
1754
+ name: "preimageSha256",
1755
+ type: "bytes",
1756
+ },
1757
+ {
1758
+ components: [
1759
+ {
1760
+ internalType: "bytes32",
1761
+ name: "r",
1762
+ type: "bytes32",
1763
+ },
1764
+ {
1765
+ internalType: "bytes32",
1766
+ name: "s",
1767
+ type: "bytes32",
1768
+ },
1769
+ {
1770
+ internalType: "uint8",
1771
+ name: "v",
1772
+ type: "uint8",
1773
+ },
1774
+ ],
1775
+ internalType: "struct BitcoinTx.RSVSignature",
1776
+ name: "signature",
1777
+ type: "tuple",
1778
+ },
1779
+ ],
1780
+ name: "submitFraudChallenge",
1781
+ outputs: [],
1782
+ stateMutability: "payable",
1783
+ type: "function",
1784
+ },
1785
+ {
1786
+ inputs: [
1787
+ {
1788
+ components: [
1789
+ {
1790
+ internalType: "bytes4",
1791
+ name: "version",
1792
+ type: "bytes4",
1793
+ },
1794
+ {
1795
+ internalType: "bytes",
1796
+ name: "inputVector",
1797
+ type: "bytes",
1798
+ },
1799
+ {
1800
+ internalType: "bytes",
1801
+ name: "outputVector",
1802
+ type: "bytes",
1803
+ },
1804
+ {
1805
+ internalType: "bytes4",
1806
+ name: "locktime",
1807
+ type: "bytes4",
1808
+ },
1809
+ ],
1810
+ internalType: "struct BitcoinTx.Info",
1811
+ name: "sweepTx",
1812
+ type: "tuple",
1813
+ },
1814
+ {
1815
+ components: [
1816
+ {
1817
+ internalType: "bytes",
1818
+ name: "merkleProof",
1819
+ type: "bytes",
1820
+ },
1821
+ {
1822
+ internalType: "uint256",
1823
+ name: "txIndexInBlock",
1824
+ type: "uint256",
1825
+ },
1826
+ {
1827
+ internalType: "bytes",
1828
+ name: "bitcoinHeaders",
1829
+ type: "bytes",
1830
+ },
1831
+ ],
1832
+ internalType: "struct BitcoinTx.Proof",
1833
+ name: "sweepProof",
1834
+ type: "tuple",
1835
+ },
1836
+ {
1837
+ components: [
1838
+ {
1839
+ internalType: "bytes32",
1840
+ name: "txHash",
1841
+ type: "bytes32",
1842
+ },
1843
+ {
1844
+ internalType: "uint32",
1845
+ name: "txOutputIndex",
1846
+ type: "uint32",
1847
+ },
1848
+ {
1849
+ internalType: "uint64",
1850
+ name: "txOutputValue",
1851
+ type: "uint64",
1852
+ },
1853
+ ],
1854
+ internalType: "struct BitcoinTx.UTXO",
1855
+ name: "mainUtxo",
1856
+ type: "tuple",
1857
+ },
1858
+ ],
1859
+ name: "submitMovedFundsSweepProof",
1860
+ outputs: [],
1861
+ stateMutability: "nonpayable",
1862
+ type: "function",
1863
+ },
1864
+ {
1865
+ inputs: [
1866
+ {
1867
+ internalType: "bytes20",
1868
+ name: "walletPubKeyHash",
1869
+ type: "bytes20",
1870
+ },
1871
+ {
1872
+ components: [
1873
+ {
1874
+ internalType: "bytes32",
1875
+ name: "txHash",
1876
+ type: "bytes32",
1877
+ },
1878
+ {
1879
+ internalType: "uint32",
1880
+ name: "txOutputIndex",
1881
+ type: "uint32",
1882
+ },
1883
+ {
1884
+ internalType: "uint64",
1885
+ name: "txOutputValue",
1886
+ type: "uint64",
1887
+ },
1888
+ ],
1889
+ internalType: "struct BitcoinTx.UTXO",
1890
+ name: "walletMainUtxo",
1891
+ type: "tuple",
1892
+ },
1893
+ {
1894
+ internalType: "uint32[]",
1895
+ name: "walletMembersIDs",
1896
+ type: "uint32[]",
1897
+ },
1898
+ {
1899
+ internalType: "uint256",
1900
+ name: "walletMemberIndex",
1901
+ type: "uint256",
1902
+ },
1903
+ {
1904
+ internalType: "bytes20[]",
1905
+ name: "targetWallets",
1906
+ type: "bytes20[]",
1907
+ },
1908
+ ],
1909
+ name: "submitMovingFundsCommitment",
1910
+ outputs: [],
1911
+ stateMutability: "nonpayable",
1912
+ type: "function",
1913
+ },
1914
+ {
1915
+ inputs: [
1916
+ {
1917
+ components: [
1918
+ {
1919
+ internalType: "bytes4",
1920
+ name: "version",
1921
+ type: "bytes4",
1922
+ },
1923
+ {
1924
+ internalType: "bytes",
1925
+ name: "inputVector",
1926
+ type: "bytes",
1927
+ },
1928
+ {
1929
+ internalType: "bytes",
1930
+ name: "outputVector",
1931
+ type: "bytes",
1932
+ },
1933
+ {
1934
+ internalType: "bytes4",
1935
+ name: "locktime",
1936
+ type: "bytes4",
1937
+ },
1938
+ ],
1939
+ internalType: "struct BitcoinTx.Info",
1940
+ name: "movingFundsTx",
1941
+ type: "tuple",
1942
+ },
1943
+ {
1944
+ components: [
1945
+ {
1946
+ internalType: "bytes",
1947
+ name: "merkleProof",
1948
+ type: "bytes",
1949
+ },
1950
+ {
1951
+ internalType: "uint256",
1952
+ name: "txIndexInBlock",
1953
+ type: "uint256",
1954
+ },
1955
+ {
1956
+ internalType: "bytes",
1957
+ name: "bitcoinHeaders",
1958
+ type: "bytes",
1959
+ },
1960
+ ],
1961
+ internalType: "struct BitcoinTx.Proof",
1962
+ name: "movingFundsProof",
1963
+ type: "tuple",
1964
+ },
1965
+ {
1966
+ components: [
1967
+ {
1968
+ internalType: "bytes32",
1969
+ name: "txHash",
1970
+ type: "bytes32",
1971
+ },
1972
+ {
1973
+ internalType: "uint32",
1974
+ name: "txOutputIndex",
1975
+ type: "uint32",
1976
+ },
1977
+ {
1978
+ internalType: "uint64",
1979
+ name: "txOutputValue",
1980
+ type: "uint64",
1981
+ },
1982
+ ],
1983
+ internalType: "struct BitcoinTx.UTXO",
1984
+ name: "mainUtxo",
1985
+ type: "tuple",
1986
+ },
1987
+ {
1988
+ internalType: "bytes20",
1989
+ name: "walletPubKeyHash",
1990
+ type: "bytes20",
1991
+ },
1992
+ ],
1993
+ name: "submitMovingFundsProof",
1994
+ outputs: [],
1995
+ stateMutability: "nonpayable",
1996
+ type: "function",
1997
+ },
1998
+ {
1999
+ inputs: [
2000
+ {
2001
+ components: [
2002
+ {
2003
+ internalType: "bytes4",
2004
+ name: "version",
2005
+ type: "bytes4",
2006
+ },
2007
+ {
2008
+ internalType: "bytes",
2009
+ name: "inputVector",
2010
+ type: "bytes",
2011
+ },
2012
+ {
2013
+ internalType: "bytes",
2014
+ name: "outputVector",
2015
+ type: "bytes",
2016
+ },
2017
+ {
2018
+ internalType: "bytes4",
2019
+ name: "locktime",
2020
+ type: "bytes4",
2021
+ },
2022
+ ],
2023
+ internalType: "struct BitcoinTx.Info",
2024
+ name: "redemptionTx",
2025
+ type: "tuple",
2026
+ },
2027
+ {
2028
+ components: [
2029
+ {
2030
+ internalType: "bytes",
2031
+ name: "merkleProof",
2032
+ type: "bytes",
2033
+ },
2034
+ {
2035
+ internalType: "uint256",
2036
+ name: "txIndexInBlock",
2037
+ type: "uint256",
2038
+ },
2039
+ {
2040
+ internalType: "bytes",
2041
+ name: "bitcoinHeaders",
2042
+ type: "bytes",
2043
+ },
2044
+ ],
2045
+ internalType: "struct BitcoinTx.Proof",
2046
+ name: "redemptionProof",
2047
+ type: "tuple",
2048
+ },
2049
+ {
2050
+ components: [
2051
+ {
2052
+ internalType: "bytes32",
2053
+ name: "txHash",
2054
+ type: "bytes32",
2055
+ },
2056
+ {
2057
+ internalType: "uint32",
2058
+ name: "txOutputIndex",
2059
+ type: "uint32",
2060
+ },
2061
+ {
2062
+ internalType: "uint64",
2063
+ name: "txOutputValue",
2064
+ type: "uint64",
2065
+ },
2066
+ ],
2067
+ internalType: "struct BitcoinTx.UTXO",
2068
+ name: "mainUtxo",
2069
+ type: "tuple",
2070
+ },
2071
+ {
2072
+ internalType: "bytes20",
2073
+ name: "walletPubKeyHash",
2074
+ type: "bytes20",
2075
+ },
2076
+ ],
2077
+ name: "submitRedemptionProof",
2078
+ outputs: [],
2079
+ stateMutability: "nonpayable",
2080
+ type: "function",
2081
+ },
2082
+ {
2083
+ inputs: [
2084
+ {
2085
+ internalType: "uint256",
2086
+ name: "redemptionKey",
2087
+ type: "uint256",
2088
+ },
2089
+ ],
2090
+ name: "timedOutRedemptions",
2091
+ outputs: [
2092
+ {
2093
+ components: [
2094
+ {
2095
+ internalType: "address",
2096
+ name: "redeemer",
2097
+ type: "address",
2098
+ },
2099
+ {
2100
+ internalType: "uint64",
2101
+ name: "requestedAmount",
2102
+ type: "uint64",
2103
+ },
2104
+ {
2105
+ internalType: "uint64",
2106
+ name: "treasuryFee",
2107
+ type: "uint64",
2108
+ },
2109
+ {
2110
+ internalType: "uint64",
2111
+ name: "txMaxFee",
2112
+ type: "uint64",
2113
+ },
2114
+ {
2115
+ internalType: "uint32",
2116
+ name: "requestedAt",
2117
+ type: "uint32",
2118
+ },
2119
+ ],
2120
+ internalType: "struct Redemption.RedemptionRequest",
2121
+ name: "",
2122
+ type: "tuple",
2123
+ },
2124
+ ],
2125
+ stateMutability: "view",
2126
+ type: "function",
2127
+ },
2128
+ {
2129
+ inputs: [
2130
+ {
2131
+ internalType: "address",
2132
+ name: "newGovernance",
2133
+ type: "address",
2134
+ },
2135
+ ],
2136
+ name: "transferGovernance",
2137
+ outputs: [],
2138
+ stateMutability: "nonpayable",
2139
+ type: "function",
2140
+ },
2141
+ {
2142
+ inputs: [],
2143
+ name: "treasury",
2144
+ outputs: [
2145
+ {
2146
+ internalType: "address",
2147
+ name: "",
2148
+ type: "address",
2149
+ },
2150
+ ],
2151
+ stateMutability: "view",
2152
+ type: "function",
2153
+ },
2154
+ {
2155
+ inputs: [],
2156
+ name: "txProofDifficultyFactor",
2157
+ outputs: [
2158
+ {
2159
+ internalType: "uint256",
2160
+ name: "",
2161
+ type: "uint256",
2162
+ },
2163
+ ],
2164
+ stateMutability: "view",
2165
+ type: "function",
2166
+ },
2167
+ {
2168
+ inputs: [
2169
+ {
2170
+ internalType: "uint64",
2171
+ name: "depositDustThreshold",
2172
+ type: "uint64",
2173
+ },
2174
+ {
2175
+ internalType: "uint64",
2176
+ name: "depositTreasuryFeeDivisor",
2177
+ type: "uint64",
2178
+ },
2179
+ {
2180
+ internalType: "uint64",
2181
+ name: "depositTxMaxFee",
2182
+ type: "uint64",
2183
+ },
2184
+ ],
2185
+ name: "updateDepositParameters",
2186
+ outputs: [],
2187
+ stateMutability: "nonpayable",
2188
+ type: "function",
2189
+ },
2190
+ {
2191
+ inputs: [
2192
+ {
2193
+ internalType: "uint256",
2194
+ name: "fraudChallengeDepositAmount",
2195
+ type: "uint256",
2196
+ },
2197
+ {
2198
+ internalType: "uint256",
2199
+ name: "fraudChallengeDefeatTimeout",
2200
+ type: "uint256",
2201
+ },
2202
+ {
2203
+ internalType: "uint96",
2204
+ name: "fraudSlashingAmount",
2205
+ type: "uint96",
2206
+ },
2207
+ {
2208
+ internalType: "uint256",
2209
+ name: "fraudNotifierRewardMultiplier",
2210
+ type: "uint256",
2211
+ },
2212
+ ],
2213
+ name: "updateFraudParameters",
2214
+ outputs: [],
2215
+ stateMutability: "nonpayable",
2216
+ type: "function",
2217
+ },
2218
+ {
2219
+ inputs: [
2220
+ {
2221
+ internalType: "uint64",
2222
+ name: "movingFundsTxMaxTotalFee",
2223
+ type: "uint64",
2224
+ },
2225
+ {
2226
+ internalType: "uint64",
2227
+ name: "movingFundsDustThreshold",
2228
+ type: "uint64",
2229
+ },
2230
+ {
2231
+ internalType: "uint32",
2232
+ name: "movingFundsTimeoutResetDelay",
2233
+ type: "uint32",
2234
+ },
2235
+ {
2236
+ internalType: "uint32",
2237
+ name: "movingFundsTimeout",
2238
+ type: "uint32",
2239
+ },
2240
+ {
2241
+ internalType: "uint96",
2242
+ name: "movingFundsTimeoutSlashingAmount",
2243
+ type: "uint96",
2244
+ },
2245
+ {
2246
+ internalType: "uint256",
2247
+ name: "movingFundsTimeoutNotifierRewardMultiplier",
2248
+ type: "uint256",
2249
+ },
2250
+ {
2251
+ internalType: "uint64",
2252
+ name: "movedFundsSweepTxMaxTotalFee",
2253
+ type: "uint64",
2254
+ },
2255
+ {
2256
+ internalType: "uint32",
2257
+ name: "movedFundsSweepTimeout",
2258
+ type: "uint32",
2259
+ },
2260
+ {
2261
+ internalType: "uint96",
2262
+ name: "movedFundsSweepTimeoutSlashingAmount",
2263
+ type: "uint96",
2264
+ },
2265
+ {
2266
+ internalType: "uint256",
2267
+ name: "movedFundsSweepTimeoutNotifierRewardMultiplier",
2268
+ type: "uint256",
2269
+ },
2270
+ ],
2271
+ name: "updateMovingFundsParameters",
2272
+ outputs: [],
2273
+ stateMutability: "nonpayable",
2274
+ type: "function",
2275
+ },
2276
+ {
2277
+ inputs: [
2278
+ {
2279
+ internalType: "uint64",
2280
+ name: "redemptionDustThreshold",
2281
+ type: "uint64",
2282
+ },
2283
+ {
2284
+ internalType: "uint64",
2285
+ name: "redemptionTreasuryFeeDivisor",
2286
+ type: "uint64",
2287
+ },
2288
+ {
2289
+ internalType: "uint64",
2290
+ name: "redemptionTxMaxFee",
2291
+ type: "uint64",
2292
+ },
2293
+ {
2294
+ internalType: "uint256",
2295
+ name: "redemptionTimeout",
2296
+ type: "uint256",
2297
+ },
2298
+ {
2299
+ internalType: "uint96",
2300
+ name: "redemptionTimeoutSlashingAmount",
2301
+ type: "uint96",
2302
+ },
2303
+ {
2304
+ internalType: "uint256",
2305
+ name: "redemptionTimeoutNotifierRewardMultiplier",
2306
+ type: "uint256",
2307
+ },
2308
+ ],
2309
+ name: "updateRedemptionParameters",
2310
+ outputs: [],
2311
+ stateMutability: "nonpayable",
2312
+ type: "function",
2313
+ },
2314
+ {
2315
+ inputs: [
2316
+ {
2317
+ internalType: "uint32",
2318
+ name: "walletCreationPeriod",
2319
+ type: "uint32",
2320
+ },
2321
+ {
2322
+ internalType: "uint64",
2323
+ name: "walletCreationMinBtcBalance",
2324
+ type: "uint64",
2325
+ },
2326
+ {
2327
+ internalType: "uint64",
2328
+ name: "walletCreationMaxBtcBalance",
2329
+ type: "uint64",
2330
+ },
2331
+ {
2332
+ internalType: "uint64",
2333
+ name: "walletClosureMinBtcBalance",
2334
+ type: "uint64",
2335
+ },
2336
+ {
2337
+ internalType: "uint32",
2338
+ name: "walletMaxAge",
2339
+ type: "uint32",
2340
+ },
2341
+ {
2342
+ internalType: "uint64",
2343
+ name: "walletMaxBtcTransfer",
2344
+ type: "uint64",
2345
+ },
2346
+ {
2347
+ internalType: "uint32",
2348
+ name: "walletClosingPeriod",
2349
+ type: "uint32",
2350
+ },
2351
+ ],
2352
+ name: "updateWalletParameters",
2353
+ outputs: [],
2354
+ stateMutability: "nonpayable",
2355
+ type: "function",
2356
+ },
2357
+ {
2358
+ inputs: [],
2359
+ name: "walletParameters",
2360
+ outputs: [
2361
+ {
2362
+ internalType: "uint32",
2363
+ name: "walletCreationPeriod",
2364
+ type: "uint32",
2365
+ },
2366
+ {
2367
+ internalType: "uint64",
2368
+ name: "walletCreationMinBtcBalance",
2369
+ type: "uint64",
2370
+ },
2371
+ {
2372
+ internalType: "uint64",
2373
+ name: "walletCreationMaxBtcBalance",
2374
+ type: "uint64",
2375
+ },
2376
+ {
2377
+ internalType: "uint64",
2378
+ name: "walletClosureMinBtcBalance",
2379
+ type: "uint64",
2380
+ },
2381
+ {
2382
+ internalType: "uint32",
2383
+ name: "walletMaxAge",
2384
+ type: "uint32",
2385
+ },
2386
+ {
2387
+ internalType: "uint64",
2388
+ name: "walletMaxBtcTransfer",
2389
+ type: "uint64",
2390
+ },
2391
+ {
2392
+ internalType: "uint32",
2393
+ name: "walletClosingPeriod",
2394
+ type: "uint32",
2395
+ },
2396
+ ],
2397
+ stateMutability: "view",
2398
+ type: "function",
2399
+ },
2400
+ {
2401
+ inputs: [
2402
+ {
2403
+ internalType: "bytes20",
2404
+ name: "walletPubKeyHash",
2405
+ type: "bytes20",
2406
+ },
2407
+ ],
2408
+ name: "wallets",
2409
+ outputs: [
2410
+ {
2411
+ components: [
2412
+ {
2413
+ internalType: "bytes32",
2414
+ name: "ecdsaWalletID",
2415
+ type: "bytes32",
2416
+ },
2417
+ {
2418
+ internalType: "bytes32",
2419
+ name: "mainUtxoHash",
2420
+ type: "bytes32",
2421
+ },
2422
+ {
2423
+ internalType: "uint64",
2424
+ name: "pendingRedemptionsValue",
2425
+ type: "uint64",
2426
+ },
2427
+ {
2428
+ internalType: "uint32",
2429
+ name: "createdAt",
2430
+ type: "uint32",
2431
+ },
2432
+ {
2433
+ internalType: "uint32",
2434
+ name: "movingFundsRequestedAt",
2435
+ type: "uint32",
2436
+ },
2437
+ {
2438
+ internalType: "uint32",
2439
+ name: "closingStartedAt",
2440
+ type: "uint32",
2441
+ },
2442
+ {
2443
+ internalType: "uint32",
2444
+ name: "pendingMovedFundsSweepRequestsCount",
2445
+ type: "uint32",
2446
+ },
2447
+ {
2448
+ internalType: "enum Wallets.WalletState",
2449
+ name: "state",
2450
+ type: "uint8",
2451
+ },
2452
+ {
2453
+ internalType: "bytes32",
2454
+ name: "movingFundsTargetWalletsCommitmentHash",
2455
+ type: "bytes32",
2456
+ },
2457
+ ],
2458
+ internalType: "struct Wallets.Wallet",
2459
+ name: "",
2460
+ type: "tuple",
2461
+ },
2462
+ ],
2463
+ stateMutability: "view",
2464
+ type: "function",
2465
+ },
2466
+ ];
2467
+ const _bytecode = "0x608060405234801561001057600080fd5b50614c55806100206000396000f3fe60806040526004361061031e5760003560e01c8063883d6a11116101a5578063b7d372a4116100ec578063ded1d24a11610095578063e65e19d51161006f578063e65e19d514610e93578063ee1dd3ea14610ec0578063f18cf1b114610ee0578063f7013ef614610f0d57600080fd5b8063ded1d24a14610e0e578063e44bdd3114610e3a578063e53c0b5514610e5a57600080fd5b8063c8b5d2db116100c6578063c8b5d2db14610dae578063d38bfff414610dce578063d6eccdf014610dee57600080fd5b8063b7d372a414610c8d578063be05abe314610cad578063c42b64d014610d6357600080fd5b8063abaeed8f1161014e578063b216bd3511610128578063b216bd3514610c2d578063b29a604b14610c4d578063b34b321614610c6d57600080fd5b8063abaeed8f14610a8b578063b02c43d014610aab578063b2146cd614610bed57600080fd5b8063a145e2d51161017f578063a145e2d514610a0b578063a8fa0f4214610a2b578063a9de2f3a14610a4b57600080fd5b8063883d6a11146109ab57806392238f32146109cb5780639c49c418146109eb57600080fd5b8063475d05701161026957806361d027b31161021257806375b922d1116101ec57806375b922d11461092457806377145f211461096b57806379fc4eb31461098b57600080fd5b806361d027b314610861578063685ce1b11461087f5780636e70ce411461089257600080fd5b80635c0b4812116102435780635c0b48121461079157806360d712fc146107b157806361ccf97a146107d157600080fd5b8063475d05701461071957806350aea15a146107395780635aa6e6751461075957600080fd5b806324028c11116102cb57806331a4889a116102a557806331a4889a146105fa57806333e957cb1461061a5780633dce9812146106f957600080fd5b806324028c111461058a5780632bb818c2146105bc5780632f429b64146105da57600080fd5b80630b6ba19d116102fc5780630b6ba19d1461048d578063133cafc81461054a57806317c964001461056a57600080fd5b806303d952f7146103235780630674f2661461044b57806307f7d2231461046d575b600080fd5b34801561032f57600080fd5b506103e061033e366004613803565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260456020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b6040516104429190600060a0820190506001600160a01b03835116825260208301516001600160401b038082166020850152806040860151166040850152806060860151166060850152505063ffffffff608084015116608083015292915050565b60405180910390f35b34801561045757600080fd5b5061046b610466366004613864565b610f2d565b005b34801561047957600080fd5b5061046b6104883660046138ff565b610fbc565b34801561049957600080fd5b506103e06104a8366004613803565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915250600090815260466020908152604091829020825160a08101845281546001600160a01b0381168252600160a01b90046001600160401b039081169382019390935260019091015480831693820193909352600160401b83049091166060820152600160801b90910463ffffffff16608082015290565b34801561055657600080fd5b5061046b61056536600461395c565b611045565b34801561057657600080fd5b5061046b6105853660046139f8565b61109e565b34801561059657600080fd5b50604e54600160a01b900463ffffffff1660405163ffffffff9091168152602001610442565b3480156105c857600080fd5b50603654604051908152602001610442565b3480156105e657600080fd5b5061046b6105f5366004613a3b565b61110f565b34801561060657600080fd5b5061046b610615366004613af9565b611166565b34801561062657600080fd5b506106b5610635366004613803565b604080516080810182526000808252602082018190529181018290526060810191909152506000908152604b6020908152604091829020825160808101845281546001600160a01b031681526001820154928101929092526002015463ffffffff81169282019290925264010000000090910460ff161515606082015290565b604051610442919081516001600160a01b031681526020808301519082015260408083015163ffffffff169082015260609182015115159181019190915260800190565b34801561070557600080fd5b5061046b610714366004613b79565b6111f8565b34801561072557600080fd5b5061046b610734366004613ba5565b611288565b34801561074557600080fd5b5061046b610754366004613c06565b61132a565b34801561076557600080fd5b50600054610779906001600160a01b031681565b6040516001600160a01b039091168152602001610442565b34801561079d57600080fd5b5061046b6107ac366004613c53565b611383565b3480156107bd57600080fd5b5061046b6107cc366004613cbd565b6113d8565b3480156107dd57600080fd5b50604d54604e54604f546040805163ffffffff80861682526001600160401b036401000000008704811660208401526c010000000000000000000000008704811693830193909352600160a01b860483166060830152600160e01b90950485166080820152600160c01b9093041660a08301529190911660c082015260e001610442565b34801561086d57600080fd5b506037546001600160a01b0316610779565b61046b61088d366004613d89565b611491565b34801561089e57600080fd5b506108dd6041546042546043546044546001600160401b0380851695600160401b8604821695600160801b900490911693926001600160601b03169190565b604080516001600160401b0397881681529587166020870152939095169284019290925260608301526001600160601b0316608082015260a081019190915260c001610442565b34801561093057600080fd5b50604754604854604954604a546040805194855260208501939093526001600160601b03909116918301919091526060820152608001610442565b34801561097757600080fd5b5061046b610986366004613df8565b6114ea565b34801561099757600080fd5b5061046b6109a6366004613e78565b611545565b3480156109b757600080fd5b5061046b6109c6366004613f0b565b6115a0565b3480156109d757600080fd5b5061046b6109e6366004613f91565b61160b565b3480156109f757600080fd5b5061046b610a06366004613ffa565b611662565b348015610a1757600080fd5b5061046b610a263660046140a6565b6116dc565b348015610a3757600080fd5b5061046b610a46366004613b79565b611762565b348015610a5757600080fd5b50603354603454603554604080516001600160a01b0394851681529284166020840152921691810191909152606001610442565b348015610a9757600080fd5b5061046b610aa63660046140c9565b6117c8565b348015610ab757600080fd5b50610b78610ac6366004613803565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915250600090815260396020908152604091829020825160c08101845281546001600160a01b0380821683526001600160401b03600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260019094015490811660608401529384049092166080820152910490911660a082015290565b6040516104429190600060c0820190506001600160a01b0380845116835260208401516001600160401b0380821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505092915050565b348015610bf957600080fd5b50610c1d610c08366004613803565b6000908152604c602052604090205460ff1690565b6040519015158152602001610442565b348015610c3957600080fd5b5061046b610c48366004614164565b611860565b348015610c5957600080fd5b5061046b610c683660046141ca565b6118ca565b348015610c7957600080fd5b5061046b610c88366004613a3b565b611938565b348015610c9957600080fd5b5061046b610ca8366004614207565b611991565b348015610cb957600080fd5b50603b54603c54603d54603e54603f54604080516001600160401b038088168252600160401b8089048216602084015263ffffffff600160801b8a04811694840194909452600160a01b909804831660608301526001600160601b03968716608083015260a082019590955293831660c085015294820490941660e08301526c01000000000000000000000000900490911661010082015261012081019190915261014001610442565b348015610d6f57600080fd5b5060375460385460408051600160a01b9093046001600160401b0390811684528083166020850152600160401b90920490911690820152606001610442565b348015610dba57600080fd5b5061046b610dc9366004614272565b6119e8565b348015610dda57600080fd5b5061046b610de936600461428d565b6119f6565b348015610dfa57600080fd5b5061046b610e093660046142a8565b611ad5565b348015610e1a57600080fd5b50604e5460601b6040516001600160601b03199091168152602001610442565b348015610e4657600080fd5b5061046b610e553660046138ff565b611b32565b348015610e6657600080fd5b50610c1d610e7536600461428d565b6001600160a01b03166000908152603a602052604090205460ff1690565b348015610e9f57600080fd5b50610eb3610eae366004614272565b611b87565b604051610442919061433c565b348015610ecc57600080fd5b5061046b610edb366004614272565b611caa565b348015610eec57600080fd5b50610f00610efb366004613803565b611d0b565b60405161044291906143e0565b348015610f1957600080fd5b5061046b610f28366004614438565b611dc4565b6040517f94fcaf8d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906394fcaf8d90610f869060339088908890889088906004016144bd565b60006040518083038186803b158015610f9e57600080fd5b505af4158015610fb2573d6000803e3d6000fd5b5050505050505050565b6040517f260b6cde00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063260b6cde90611011906033908690869060040161452f565b60006040518083038186803b15801561102957600080fd5b505af415801561103d573d6000803e3d6000fd5b505050505050565b6040517fd22cd45b00000000000000000000000000000000000000000000000000000000815273__$24f7e155a6d011c1bf9032506ba9b1954c$__9063d22cd45b90610f8690603390889088908890889060040161468c565b6000546001600160a01b031633146110fd5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064015b60405180910390fd5b61110a60338484846121df565b505050565b6040517e92bac900000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906292bac990610f869060339088908890889088906004016146e0565b6040517fa76558b300000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a76558b3906111c19060339089908990899089908990600401614779565b60006040518083038186803b1580156111d957600080fd5b505af41580156111ed573d6000803e3d6000fd5b505050505050505050565b6040517fc87de7f400000000000000000000000000000000000000000000000000000000815260336004820152602481018390526044810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063c87de7f4906064015b60006040518083038186803b15801561126b57600080fd5b505af415801561127f573d6000803e3d6000fd5b50505050505050565b6033546001600160a01b031633146112e25760405162461bcd60e51b815260206004820152601660248201527f43616c6c6572206973206e6f74207468652062616e6b0000000000000000000060448201526064016110f4565b73__$9935b6ea18e0c526c293569ddd26842c9b$__63d253980860338661130887612412565b86866040518663ffffffff1660e01b8152600401610f869594939291906147c3565b6040517f899bef9d00000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063899bef9d90610f86906033908890889088908890600401614806565b6040517faea7fd0b00000000000000000000000000000000000000000000000000000000815273__$894ce12e79ca3e5683c1b49e363f37fa22$__9063aea7fd0b906110119060339086908690600401614832565b6000546001600160a01b031633146114325760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b0382166000818152603a6020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6040517feb8fdd5d00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063eb8fdd5d90610f8690603390889088908890889060040161498c565b6040517f624526fe00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__9063624526fe906111c190603390899089908990899089906004016149f3565b6040517f80ffe94a00000000000000000000000000000000000000000000000000000000815273__$a542940934c03bae9a39609192cb25cc3c$__906380ffe94a906111c19060339089908990899089908990600401614a36565b6000546001600160a01b031633146115fa5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61127f603388888888888888612495565b6040517f07f96c4200000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__906307f96c429061125390603390879087908790600401614a77565b6000546001600160a01b031633146116bc5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6116d060338b8b8b8b8b8b8b8b8b8b612858565b50505050505050505050565b6040517fd079fbb100000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__9063d079fbb19061172f906033908590600401614aa1565b60006040518083038186803b15801561174757600080fd5b505af415801561175b573d6000803e3d6000fd5b5050505050565b6040517f4afbe4c90000000000000000000000000000000000000000000000000000000081526033600482015260248101849052604481018390526064810182905273__$0f118c52967a3847a37f0a2ef02ffcee04$__90634afbe4c990608401611253565b6040517fc8f7794300000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063c8f7794390611827906033908b908b908b908b908b908b908b90600401614ab5565b60006040518083038186803b15801561183f57600080fd5b505af4158015611853573d6000803e3d6000fd5b5050505050505050505050565b6000546001600160a01b031633146118ba5760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b61103d6033878787878787612ef5565b6000546001600160a01b031633146119245760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6119326033858585856132ae565b50505050565b6040517fa164de6e00000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063a164de6e90610f869060339088908890889088906004016146e0565b6040517fb79a972500000000000000000000000000000000000000000000000000000000815273__$edce581bb06331cf4dae1387760565e5d1$__9063b79a97259061125390603390879087908790600401614b40565b6119f3603382613420565b50565b6000546001600160a01b03163314611a505760405162461bcd60e51b815260206004820152601c60248201527f43616c6c6572206973206e6f742074686520676f7665726e616e63650000000060448201526064016110f4565b6001600160a01b038116611acc5760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b6119f381613552565b6040517ff5ada44200000000000000000000000000000000000000000000000000000000815273__$9935b6ea18e0c526c293569ddd26842c9b$__9063f5ada442906111c1906033908990899033908a908a908a90600401614b84565b6040517f3af3b15400000000000000000000000000000000000000000000000000000000815273__$0f118c52967a3847a37f0a2ef02ffcee04$__90633af3b15490611011906033908690869060040161452f565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101919091526001600160601b031982166000908152605060209081526040918290208251610120810184528154815260018201549281019290925260028101546001600160401b0381169383019390935263ffffffff600160401b8404811660608401526c01000000000000000000000000840481166080840152600160801b8404811660a0840152600160a01b84041660c0830152909160e083019060ff600160c01b909104166005811115611c8457611c84614312565b6005811115611c9557611c95614312565b81526020016003820154815250509050919050565b6040517f9b69e71d000000000000000000000000000000000000000000000000000000008152603360048201526001600160601b03198216602482015273__$edce581bb06331cf4dae1387760565e5d1$__90639b69e71d9060440161172f565b611d336040805160808101825260008082526020820181905291810182905290606082015290565b6000828152604060208181529181902081516080810183528154606081811b6001600160601b0319168352600160a01b82046001600160401b031695830195909552600160e01b900463ffffffff16928101929092526001810154919290919083019060ff166003811115611daa57611daa614312565b6003811115611dbb57611dbb614312565b90525092915050565b6000611dd060016135c0565b90508015611de8576032805461ff0019166101001790555b6001600160a01b038616611e3e5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064016110f4565b6033805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03888116919091179091558516611eb95760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f0000000060448201526064016110f4565b6034805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03878116919091179091558316611f5a5760405162461bcd60e51b815260206004820152602c60248201527f45434453412057616c6c6574205265676973747279206164647265737320636160448201527f6e6e6f74206265207a65726f000000000000000000000000000000000000000060648201526084016110f4565b6035805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03858116919091179091558416611fd55760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f0060448201526064016110f4565b6037805460368490556001600160a01b0386166001600160e01b031990911617760f42400000000000000000000000000000000000000000179055603880546fffffffffffffffffffffffffffffffff191669271000000000000007d01790556041805477ffffffffffffffffffffffffffffffffffffffffffffffff1990811671271000000000000007d000000000000f4240179091556202a3006042556043805469021e19e0c9bab24000006001600160601b0319918216811790925560646044819055603b8054851676093a800007e9000000000000004e200000000000002710179055603c8054831684179055603d819055603e805490941675021e19e0c9bab240000000093a80000000000000271017909355603f839055671bc16d674ec8000060475562093a80604855604980549091169091179055604a557eeff1000000000002faf08000000002540be4000000000005f5e10000093a80604d55604e805477ffffffffffffffffffffffffffffffffffffffffffffffff167b3b9aca00000000000000000000000000000000000000000000000000179055604f80546234bc0063ffffffff1990911617905561219233613552565b801561103d576032805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6000836001600160401b03161161225e5760405162461bcd60e51b815260206004820152603060248201527f4465706f7369742064757374207468726573686f6c64206d757374206265206760448201527f726561746572207468616e207a65726f0000000000000000000000000000000060648201526084016110f4565b6000826001600160401b0316116122dd5760405162461bcd60e51b815260206004820152603660248201527f4465706f736974207472656173757279206665652064697669736f72206d757360448201527f742062652067726561746572207468616e207a65726f0000000000000000000060648201526084016110f4565b6000816001600160401b03161161235c5760405162461bcd60e51b815260206004820152603560248201527f4465706f736974207472616e73616374696f6e206d617820666565206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b6004840180547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b03868116918202929092179092556005860180548583166fffffffffffffffffffffffffffffffff199091168117600160401b938616938402179091556040805193845260208401919091528201527f1ced468902ca566e746a3c8c9516af81f8de9f1021c365083be9f2625ebfb7b59060600160405180910390a150505050565b60006001600160401b038211156124915760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016110f4565b5090565b856001600160401b0316856001600160401b0316116125425760405162461bcd60e51b815260206004820152605960248201527f57616c6c6574206372656174696f6e206d6178696d756d204254432062616c6160448201527f6e6365206d7573742062652067726561746572207468616e207468652063726560648201527f6174696f6e206d696e696d756d204254432062616c616e636500000000000000608482015260a4016110f4565b6000846001600160401b0316116125c15760405162461bcd60e51b815260206004820152603c60248201527f57616c6c657420636c6f73757265206d696e696d756d204254432062616c616e60448201527f6365206d7573742062652067726561746572207468616e207a65726f0000000060648201526084016110f4565b6000826001600160401b0316116126405760405162461bcd60e51b815260206004820152603560248201527f57616c6c6574206d6178696d756d20425443207472616e73666572206d75737460448201527f2062652067726561746572207468616e207a65726f000000000000000000000060648201526084016110f4565b60008163ffffffff16116126bc5760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420636c6f73696e6720706572696f64206d75737420626520677260448201527f6561746572207468616e207a65726f000000000000000000000000000000000060648201526084016110f4565b8688601a0160006101000a81548163ffffffff021916908363ffffffff1602179055508588601a0160046101000a8154816001600160401b0302191690836001600160401b031602179055508488601a01600c6101000a8154816001600160401b0302191690836001600160401b031602179055508388601a0160146101000a8154816001600160401b0302191690836001600160401b031602179055508288601a01601c6101000a81548163ffffffff021916908363ffffffff1602179055508188601b0160186101000a8154816001600160401b0302191690836001600160401b031602179055508088601c0160006101000a81548163ffffffff021916908363ffffffff1602179055507fc7d3a9af08692aeae771c329fddd95c7237a9f76fec996325f3959eeff07d4ac87878787878787604051612846979695949392919063ffffffff97881681526001600160401b03968716602082015294861660408601529285166060850152908516608084015290921660a0820152911660c082015260e00190565b60405180910390a15050505050505050565b60008a6001600160401b0316116128d9576040805162461bcd60e51b81526020600482015260248101919091527f4d6f76696e672066756e6473207472616e73616374696f6e206d617820746f7460448201527f616c20666565206d7573742062652067726561746572207468616e207a65726f60648201526084016110f4565b6000896001600160401b03161180156129025750600e8b01546001600160401b03908116908a16105b61299a5760405162461bcd60e51b815260206004820152605e60248201527f4d6f76696e672066756e64732064757374207468726573686f6c64206d75737460448201527f2062652067726561746572207468616e207a65726f20616e64206c6f7765722060648201527f7468616e20726564656d7074696f6e2064757374207468726573686f6c640000608482015260a4016110f4565b60008863ffffffff1611612a165760405162461bcd60e51b815260206004820152603a60248201527f4d6f76696e672066756e64732074696d656f75742072657365742064656c617960448201527f206d7573742062652067726561746572207468616e207a65726f00000000000060648201526084016110f4565b8763ffffffff168763ffffffff1611612a975760405162461bcd60e51b815260206004820152603960248201527f4d6f76696e672066756e64732074696d656f7574206d7573742062652067726560448201527f61746572207468616e206974732072657365742064656c61790000000000000060648201526084016110f4565b6064851115612b345760405162461bcd60e51b815260206004820152604d60248201527f4d6f76696e672066756e64732074696d656f7574206e6f74696669657220726560448201527f77617264206d756c7469706c696572206d75737420626520696e20746865207260648201527f616e6765205b302c203130305d00000000000000000000000000000000000000608482015260a4016110f4565b6000846001600160401b031611612bd95760405162461bcd60e51b815260206004820152604560248201527f4d6f7665642066756e6473207377656570207472616e73616374696f6e206d6160448201527f7820746f74616c20666565206d7573742062652067726561746572207468616e60648201527f207a65726f000000000000000000000000000000000000000000000000000000608482015260a4016110f4565b60008363ffffffff1611612c555760405162461bcd60e51b815260206004820152603360248201527f4d6f7665642066756e64732073776565702074696d656f7574206d757374206260448201527f652067726561746572207468616e207a65726f0000000000000000000000000060648201526084016110f4565b6064811115612cf25760405162461bcd60e51b815260206004820152605260248201527f4d6f7665642066756e64732073776565702074696d656f7574206e6f7469666960448201527f657220726577617264206d756c7469706c696572206d75737420626520696e2060648201527f7468652072616e6765205b302c203130305d0000000000000000000000000000608482015260a4016110f4565b898b60080160006101000a8154816001600160401b0302191690836001600160401b03160217905550888b60080160086101000a8154816001600160401b0302191690836001600160401b03160217905550878b60080160106101000a81548163ffffffff021916908363ffffffff160217905550868b60080160146101000a81548163ffffffff021916908363ffffffff160217905550858b60090160006101000a8154816001600160601b0302191690836001600160601b03160217905550848b600a0181905550838b600b0160006101000a8154816001600160401b0302191690836001600160401b03160217905550828b600b0160086101000a81548163ffffffff021916908363ffffffff160217905550818b600b01600c6101000a8154816001600160601b0302191690836001600160601b03160217905550808b600c01819055507f9fbab8abcd4ce947cd4ffe98e310cc5290d30644941a68e43899b3b6e219ca928a8a8a8a8a8a8a8a8a8a604051612ee09a999897969594939291906001600160401b039a8b168152988a1660208a015263ffffffff97881660408a015295871660608901526001600160601b03948516608089015260a0880193909352961660c08601529490921660e084015292166101008201526101208101919091526101400190565b60405180910390a15050505050505050505050565b60088701546001600160401b03600160401b909104811690871611612fa85760405162461bcd60e51b815260206004820152604a60248201527f526564656d7074696f6e2064757374207468726573686f6c64206d757374206260448201527f652067726561746572207468616e206d6f76696e672066756e6473206475737460648201527f207468726573686f6c6400000000000000000000000000000000000000000000608482015260a4016110f4565b6000856001600160401b0316116130275760405162461bcd60e51b815260206004820152603960248201527f526564656d7074696f6e207472656173757279206665652064697669736f722060448201527f6d7573742062652067726561746572207468616e207a65726f0000000000000060648201526084016110f4565b6000846001600160401b0316116130a65760405162461bcd60e51b815260206004820152603860248201527f526564656d7074696f6e207472616e73616374696f6e206d617820666565206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b6000831161311c5760405162461bcd60e51b815260206004820152602c60248201527f526564656d7074696f6e2074696d656f7574206d75737420626520677265617460448201527f6572207468616e207a65726f000000000000000000000000000000000000000060648201526084016110f4565b60648111156131b95760405162461bcd60e51b815260206004820152604b60248201527f526564656d7074696f6e2074696d656f7574206e6f746966696572207265776160448201527f7264206d756c7469706c696572206d75737420626520696e207468652072616e60648201527f6765205b302c203130305d000000000000000000000000000000000000000000608482015260a4016110f4565b600e870180546001600160401b038881166fffffffffffffffffffffffffffffffff199092168217600160401b898316908102919091177fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff16600160801b92891692830217909355600f8a0186905560108a0180546001600160601b0319166001600160601b03871690811790915560118b018590556040805193845260208401949094529282015260608101859052608081019190915260a081018290527f944cd06e316cc3da4159300dd41ab23416c89a5136c41fa79d57fe8a34bcc10f9060c00160405180910390a150505050505050565b600083116133245760405162461bcd60e51b815260206004820152603860248201527f4672617564206368616c6c656e6765206465666561742074696d656f7574206d60448201527f7573742062652067726561746572207468616e207a65726f000000000000000060648201526084016110f4565b606481111561339b5760405162461bcd60e51b815260206004820152603e60248201527f4672617564206e6f74696669657220726577617264206d756c7469706c69657260448201527f206d75737420626520696e207468652072616e6765205b302c203130305d000060648201526084016110f4565b60148501849055601585018390556016850180546001600160601b0319166001600160601b03841690811790915560178601829055604080518681526020810186905290810191909152606081018290527fd0d6d92441fbb139a023c9c62586dbd767824f37869c45da6443fc3aef64194f9060800160405180910390a15050505050565b6001600160601b031981166000908152601d83016020526040902060036002820154600160c01b900460ff16600581111561345d5761345d614312565b146134aa5760405162461bcd60e51b815260206004820152601f60248201527f57616c6c6574206d75737420626520696e20436c6f73696e672073746174650060448201526064016110f4565b601c83015460028201546134ce9163ffffffff90811691600160801b900416614be9565b63ffffffff1642116135485760405162461bcd60e51b815260206004820152602260248201527f436c6f73696e6720706572696f6420686173206e6f7420656c6170736564207960448201527f657400000000000000000000000000000000000000000000000000000000000060648201526084016110f4565b61110a83836136fb565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff1983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce80910160405180910390a15050565b603254600090610100900460ff161561365f578160ff1660011480156135e55750303b155b6136575760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506000919050565b60325460ff8084169116106136dc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016110f4565b506032805460ff191660ff92909216919091179055600190565b919050565b6001600160601b031981166000818152601d840160205260408082206002810180547fffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffff167804000000000000000000000000000000000000000000000000179055805491519093927f47b159947c3066cb253f60e8f046cfd747411788a545cb189679e3fa1467b28d91a3600283015481546040517f343bb9270000000000000000000000000000000000000000000000000000000081526001600160a01b039092169163343bb927916137d59160040190815260200190565b600060405180830381600087803b1580156137ef57600080fd5b505af115801561127f573d6000803e3d6000fd5b60006020828403121561381557600080fd5b5035919050565b60008083601f84011261382e57600080fd5b5081356001600160401b0381111561384557600080fd5b60208301915083602082850101111561385d57600080fd5b9250929050565b6000806000806040858703121561387a57600080fd5b84356001600160401b038082111561389157600080fd5b61389d8883890161381c565b909650945060208701359150808211156138b657600080fd5b506138c38782880161381c565b95989497509550505050565b80356001600160601b0319811681146136f657600080fd5b6000606082840312156138f957600080fd5b50919050565b6000806080838503121561391257600080fd5b61391b836138cf565b915061392a84602085016138e7565b90509250929050565b6000608082840312156138f957600080fd5b80356001600160a01b03811681146136f657600080fd5b60008060008060c0858703121561397257600080fd5b84356001600160401b038082111561398957600080fd5b61399588838901613933565b955060208701359150808211156139ab57600080fd5b506139b8878288016138e7565b9350506139c886604087016138e7565b91506139d660a08601613945565b905092959194509250565b80356001600160401b03811681146136f657600080fd5b600080600060608486031215613a0d57600080fd5b613a16846139e1565b9250613a24602085016139e1565b9150613a32604085016139e1565b90509250925092565b60008060008060c08587031215613a5157600080fd5b84356001600160401b0380821115613a6857600080fd5b613a7488838901613933565b95506020870135915080821115613a8a57600080fd5b50613a97878288016138e7565b935050613aa786604087016138e7565b91506139d660a086016138cf565b60008083601f840112613ac757600080fd5b5081356001600160401b03811115613ade57600080fd5b6020830191508360208260051b850101111561385d57600080fd5b600080600080600060608688031215613b1157600080fd5b613b1a866138cf565b945060208601356001600160401b0380821115613b3657600080fd5b613b4289838a01613ab5565b90965094506040880135915080821115613b5b57600080fd5b50613b688882890161381c565b969995985093965092949392505050565b600080600060608486031215613b8e57600080fd5b505081359360208301359350604090920135919050565b60008060008060608587031215613bbb57600080fd5b613bc485613945565b93506020850135925060408501356001600160401b03811115613be657600080fd5b6138c38782880161381c565b803563ffffffff811681146136f657600080fd5b60008060008060608587031215613c1c57600080fd5b84359350613c2c60208601613bf2565b925060408501356001600160401b03811115613c4757600080fd5b6138c387828801613ab5565b600080828403610100811215613c6857600080fd5b83356001600160401b03811115613c7e57600080fd5b613c8a86828701613933565b93505060e0601f1982011215613c9f57600080fd5b506020830190509250929050565b803580151581146136f657600080fd5b60008060408385031215613cd057600080fd5b613cd983613945565b915061392a60208401613cad565b634e487b7160e01b600052604160045260246000fd5b600082601f830112613d0e57600080fd5b81356001600160401b0380821115613d2857613d28613ce7565b604051601f8301601f19908116603f01168101908282118183101715613d5057613d50613ce7565b81604052838152866020858801011115613d6957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060a08587031215613d9f57600080fd5b84356001600160401b0380821115613db657600080fd5b613dc28883890161381c565b90965094506020870135915080821115613ddb57600080fd5b50613de887828801613cfd565b9250506139d686604087016138e7565b600080600080600060608688031215613e1057600080fd5b85356001600160401b0380821115613e2757600080fd5b613e3389838a0161381c565b90975095506020880135915080821115613e4c57600080fd5b50613e598882890161381c565b9094509250613e6c905060408701613cad565b90509295509295909350565b600080600080600060608688031215613e9057600080fd5b85356001600160401b0380821115613ea757600080fd5b613eb389838a0161381c565b90975095506020880135915080821115613ecc57600080fd5b613ed889838a01613ab5565b90955093506040880135915080821115613ef157600080fd5b50613efe88828901613cfd565b9150509295509295909350565b600080600080600080600060e0888a031215613f2657600080fd5b613f2f88613bf2565b9650613f3d602089016139e1565b9550613f4b604089016139e1565b9450613f59606089016139e1565b9350613f6760808901613bf2565b9250613f7560a089016139e1565b9150613f8360c08901613bf2565b905092959891949750929550565b600080600060408486031215613fa657600080fd5b613faf846138cf565b925060208401356001600160401b03811115613fca57600080fd5b613fd686828701613ab5565b9497909650939450505050565b80356001600160601b03811681146136f657600080fd5b6000806000806000806000806000806101408b8d03121561401a57600080fd5b6140238b6139e1565b995061403160208c016139e1565b985061403f60408c01613bf2565b975061404d60608c01613bf2565b965061405b60808c01613fe3565b955060a08b0135945061407060c08c016139e1565b935061407e60e08c01613bf2565b925061408d6101008c01613fe3565b91506101208b013590509295989b9194979a5092959850565b6000606082840312156140b857600080fd5b6140c283836138e7565b9392505050565b600080600080600080600060e0888a0312156140e457600080fd5b6140ed886138cf565b96506140fc8960208a016138e7565b955060808801356001600160401b038082111561411857600080fd5b6141248b838c01613ab5565b909750955060a08a0135945060c08a013591508082111561414457600080fd5b506141518a828b01613ab5565b989b979a50959850939692959293505050565b60008060008060008060c0878903121561417d57600080fd5b614186876139e1565b9550614194602088016139e1565b94506141a2604088016139e1565b9350606087013592506141b760808801613fe3565b915060a087013590509295509295509295565b600080600080608085870312156141e057600080fd5b84359350602085013592506141f760408601613fe3565b9396929550929360600135925050565b600080600060a0848603121561421c57600080fd5b83356001600160401b038082111561423357600080fd5b61423f87838801613933565b9450602086013591508082111561425557600080fd5b50614262868287016138e7565b925050613a3285604086016138e7565b60006020828403121561428457600080fd5b6140c2826138cf565b60006020828403121561429f57600080fd5b6140c282613945565b600080600080600060c086880312156142c057600080fd5b6142c9866138cf565b94506142d887602088016138e7565b935060808601356001600160401b038111156142f357600080fd5b6142ff8882890161381c565b9094509250613e6c905060a087016139e1565b634e487b7160e01b600052602160045260246000fd5b6006811061433857614338614312565b9052565b60006101208201905082518252602083015160208301526001600160401b03604084015116604083015263ffffffff6060840151166060830152608083015161438d608084018263ffffffff169052565b5060a08301516143a560a084018263ffffffff169052565b5060c08301516143bd60c084018263ffffffff169052565b5060e08301516143d060e0840182614328565b5061010092830151919092015290565b81516001600160601b03191681526020808301516001600160401b03169082015260408083015163ffffffff1690820152606082015160808201906004811061442b5761442b614312565b8060608401525092915050565b600080600080600060a0868803121561445057600080fd5b61445986613945565b945061446760208701613945565b935061447560408701613945565b925061448360608701613945565b949793965091946080013592915050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8581526060602082015260006144d7606083018688614494565b82810360408401526144ea818587614494565b98975050505050505050565b8035825263ffffffff61450b60208301613bf2565b1660208301526001600160401b03614525604083016139e1565b1660408301525050565b8381526001600160601b03198316602082015260a0810161455360408301846144f6565b949350505050565b80356001600160e01b0319811681146136f657600080fd5b6000808335601e1984360301811261458a57600080fd5b83016020810192503590506001600160401b038111156145a957600080fd5b80360383131561385d57600080fd5b60006001600160e01b0319806145cd8461455b565b1684526145dd6020840184614573565b608060208701526145f2608087018284614494565b9150506146026040850185614573565b8683036040880152614615838284614494565b92505050816146266060860161455b565b166060860152809250505092915050565b60006146438283614573565b60608552614655606086018284614494565b9150506020830135602085015261466f6040840184614573565b8583036040870152614682838284614494565b9695505050505050565b85815260e0602082015260006146a560e08301876145b8565b82810360408401526146b78187614637565b9150506146c760608301856144f6565b6001600160a01b03831660c08301529695505050505050565b85815260e0602082015260006146f960e08301876145b8565b828103604084015261470b8187614637565b91505061471b60608301856144f6565b6001600160601b0319831660c08301529695505050505050565b8183526000602080850194508260005b8581101561476e5763ffffffff61475b83613bf2565b1687529582019590820190600101614745565b509495945050505050565b8681526001600160601b0319861660208201526080604082015260006147a3608083018688614735565b82810360608401526147b6818587614494565b9998505050505050505050565b8581526001600160a01b03851660208201526001600160401b03841660408201526080606082015260006147fb608083018486614494565b979650505050505050565b85815284602082015263ffffffff841660408201526080606082015260006147fb608083018486614735565b600061012085835280602084015261484c818401866145b8565b91505063ffffffff61485d84613bf2565b1660408301526001600160a01b0361487760208501613945565b166060830152604083013577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146148a957600080fd5b77ffffffffffffffffffffffffffffffffffffffffffffffff191660808301526148d5606084016138cf565b6001600160601b03191660a08301526148f0608084016138cf565b6001600160601b03191660c083015261490b60a0840161455b565b6001600160e01b03191660e083015261492660c08401613945565b6001600160a01b03811661010084015250949350505050565b6000815180845260005b8181101561496557602081850181015186830182015201614949565b81811115614977576000602083870101525b50601f01601f19169290920160200192915050565b85815260c0602082015260006149a660c083018688614494565b82810360408401526149b8818661493f565b9150508235606083015260208301356080830152604083013560ff81168082146149e157600080fd5b8060a085015250509695505050505050565b868152608060208201526000614a0d608083018789614494565b8281036040840152614a20818688614494565b9150508215156060830152979650505050505050565b868152608060208201526000614a50608083018789614494565b8281036040840152614a63818688614735565b905082810360608401526147b6818561493f565b8481526001600160601b031984166020820152606060408201526000614682606083018486614735565b828152608081016140c260208301846144f6565b60006101008a835260206001600160601b0319808c1682860152614adc604086018c6144f6565b8260a0860152614aef8386018a8c614735565b60c0860189905285810360e0870152868152879350820160005b87811015614b2e5782614b1b866138cf565b1682529383019390830190600101614b09565b509d9c50505050505050505050505050565b84815260c060208201526000614b5960c08301866145b8565b8281036040840152614b6b8186614637565b915050614b7b60608301846144f6565b95945050505050565b8781526001600160601b0319871660208201526000610100614ba960408401896144f6565b6001600160a01b03871660a08401528060c0840152614bcb8184018688614494565b9150506001600160401b03831660e083015298975050505050505050565b600063ffffffff808316818516808303821115614c1657634e487b7160e01b600052601160045260246000fd5b0194935050505056fea264697066735822122029a6a8a7b87979dec78aee440625eca1aa1dcf00fdce110fcaba9164aa8094b264736f6c63430008090033";
2468
+ const isSuperArgs = (xs) => {
2469
+ return (typeof xs[0] === "string" ||
2470
+ Array.isArray(xs[0]) ||
2471
+ "_isInterface" in xs[0]);
2472
+ };
2473
+ class Bridge__factory extends ethers_1.ContractFactory {
2474
+ constructor(...args) {
2475
+ if (isSuperArgs(args)) {
2476
+ super(...args);
2477
+ }
2478
+ else {
2479
+ const [linkLibraryAddresses, signer] = args;
2480
+ super(_abi, Bridge__factory.linkBytecode(linkLibraryAddresses), signer);
2481
+ }
2482
+ }
2483
+ static linkBytecode(linkLibraryAddresses) {
2484
+ let linkedBytecode = _bytecode;
2485
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$a542940934c03bae9a39609192cb25cc3c\\$__", "g"), linkLibraryAddresses["contracts/bridge/Fraud.sol:Fraud"]
2486
+ .replace(/^0x/, "")
2487
+ .toLowerCase());
2488
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$edce581bb06331cf4dae1387760565e5d1\\$__", "g"), linkLibraryAddresses["contracts/bridge/MovingFunds.sol:MovingFunds"]
2489
+ .replace(/^0x/, "")
2490
+ .toLowerCase());
2491
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$24f7e155a6d011c1bf9032506ba9b1954c\\$__", "g"), linkLibraryAddresses["contracts/bridge/DepositSweep.sol:DepositSweep"]
2492
+ .replace(/^0x/, "")
2493
+ .toLowerCase());
2494
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$9935b6ea18e0c526c293569ddd26842c9b\\$__", "g"), linkLibraryAddresses["contracts/bridge/Redemption.sol:Redemption"]
2495
+ .replace(/^0x/, "")
2496
+ .toLowerCase());
2497
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$0f118c52967a3847a37f0a2ef02ffcee04\\$__", "g"), linkLibraryAddresses["contracts/bridge/Wallets.sol:Wallets"]
2498
+ .replace(/^0x/, "")
2499
+ .toLowerCase());
2500
+ linkedBytecode = linkedBytecode.replace(new RegExp("__\\$894ce12e79ca3e5683c1b49e363f37fa22\\$__", "g"), linkLibraryAddresses["contracts/bridge/Deposit.sol:Deposit"]
2501
+ .replace(/^0x/, "")
2502
+ .toLowerCase());
2503
+ return linkedBytecode;
2504
+ }
2505
+ deploy(overrides) {
2506
+ return super.deploy(overrides || {});
2507
+ }
2508
+ getDeployTransaction(overrides) {
2509
+ return super.getDeployTransaction(overrides || {});
2510
+ }
2511
+ attach(address) {
2512
+ return super.attach(address);
2513
+ }
2514
+ connect(signer) {
2515
+ return super.connect(signer);
2516
+ }
2517
+ static createInterface() {
2518
+ return new ethers_1.utils.Interface(_abi);
2519
+ }
2520
+ static connect(address, signerOrProvider) {
2521
+ return new ethers_1.Contract(address, _abi, signerOrProvider);
2522
+ }
2523
+ }
2524
+ exports.Bridge__factory = Bridge__factory;
2525
+ Bridge__factory.bytecode = _bytecode;
2526
+ Bridge__factory.abi = _abi;