@keep-network/tbtc-v2 1.6.0-dev.17 → 1.6.0-dev.18

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 (86) hide show
  1. package/artifacts/BLS.json +1 -1
  2. package/artifacts/Bank.json +2 -2
  3. package/artifacts/BeaconAuthorization.json +1 -1
  4. package/artifacts/BeaconDkg.json +1 -1
  5. package/artifacts/BeaconDkgValidator.json +1 -1
  6. package/artifacts/BeaconInactivity.json +1 -1
  7. package/artifacts/BeaconSortitionPool.json +3 -3
  8. package/artifacts/Bridge.json +5 -5
  9. package/artifacts/BridgeGovernance.json +2 -2
  10. package/artifacts/BridgeGovernanceParameters.json +1 -1
  11. package/artifacts/Deposit.json +1 -1
  12. package/artifacts/DepositSweep.json +1 -1
  13. package/artifacts/DonationVault.json +1 -1
  14. package/artifacts/EcdsaDkgValidator.json +1 -1
  15. package/artifacts/EcdsaInactivity.json +1 -1
  16. package/artifacts/EcdsaSortitionPool.json +3 -3
  17. package/artifacts/Fraud.json +1 -1
  18. package/artifacts/LightRelay.json +2 -2
  19. package/artifacts/LightRelayMaintainerProxy.json +2 -2
  20. package/artifacts/MaintainerProxy.json +2 -2
  21. package/artifacts/MovingFunds.json +1 -1
  22. package/artifacts/NuCypherToken.json +2 -2
  23. package/artifacts/RandomBeacon.json +2 -2
  24. package/artifacts/RandomBeaconChaosnet.json +2 -2
  25. package/artifacts/RandomBeaconGovernance.json +2 -2
  26. package/artifacts/Redemption.json +1 -1
  27. package/artifacts/ReimbursementPool.json +2 -2
  28. package/artifacts/T.json +2 -2
  29. package/artifacts/TBTC.json +2 -2
  30. package/artifacts/TBTCToken.json +2 -2
  31. package/artifacts/TBTCVault.json +2 -2
  32. package/artifacts/TokenStaking.json +1 -1
  33. package/artifacts/TokenholderGovernor.json +9 -9
  34. package/artifacts/TokenholderTimelock.json +8 -8
  35. package/artifacts/VendingMachine.json +2 -2
  36. package/artifacts/VendingMachineNuCypher.json +1 -1
  37. package/artifacts/VendingMachineV2.json +2 -2
  38. package/artifacts/VendingMachineV3.json +2 -2
  39. package/artifacts/WalletProposalValidator.json +1 -1
  40. package/artifacts/WalletRegistry.json +5 -5
  41. package/artifacts/WalletRegistryGovernance.json +2 -2
  42. package/artifacts/Wallets.json +1 -1
  43. package/build/contracts/test/BankStub.sol/BankStub.dbg.json +4 -0
  44. package/build/contracts/test/BankStub.sol/BankStub.json +555 -0
  45. package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +4 -0
  46. package/build/contracts/test/BridgeStub.sol/BridgeStub.json +3318 -0
  47. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +4 -0
  48. package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +30 -0
  49. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +4 -0
  50. package/build/contracts/test/LightRelayStub.sol/LightRelayStub.json +467 -0
  51. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +4 -0
  52. package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +96 -0
  53. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +4 -0
  54. package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +456 -0
  55. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +4 -0
  56. package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +89 -0
  57. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +4 -0
  58. package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +102 -0
  59. package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +4 -0
  60. package/build/contracts/test/TestERC20.sol/TestERC20.json +508 -0
  61. package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +4 -0
  62. package/build/contracts/test/TestERC721.sol/TestERC721.json +390 -0
  63. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +4 -0
  64. package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +35 -0
  65. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +4 -0
  66. package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.json +224 -0
  67. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +4 -0
  68. package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +87 -0
  69. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +4 -0
  70. package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +283 -0
  71. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +4 -0
  72. package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +372 -0
  73. package/contracts/test/BankStub.sol +11 -0
  74. package/contracts/test/BridgeStub.sol +174 -0
  75. package/contracts/test/HeartbeatStub.sol +16 -0
  76. package/contracts/test/LightRelayStub.sol +15 -0
  77. package/contracts/test/ReceiveApprovalStub.sol +33 -0
  78. package/contracts/test/SepoliaLightRelay.sol +48 -0
  79. package/contracts/test/SystemTestRelay.sol +57 -0
  80. package/contracts/test/TestBitcoinTx.sol +24 -0
  81. package/contracts/test/TestERC20.sol +12 -0
  82. package/contracts/test/TestERC721.sol +16 -0
  83. package/contracts/test/TestEcdsaLib.sol +17 -0
  84. package/contracts/test/TestTBTCDepositor.sol +196 -0
  85. package/contracts/test/WormholeBridgeStub.sol +125 -0
  86. package/package.json +1 -2
@@ -0,0 +1,224 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MockBridge",
4
+ "sourceName": "contracts/test/TestTBTCDepositor.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "uint256",
12
+ "name": "depositKey",
13
+ "type": "uint256"
14
+ }
15
+ ],
16
+ "name": "DepositRevealed",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "inputs": [],
21
+ "name": "depositParameters",
22
+ "outputs": [
23
+ {
24
+ "internalType": "uint64",
25
+ "name": "depositDustThreshold",
26
+ "type": "uint64"
27
+ },
28
+ {
29
+ "internalType": "uint64",
30
+ "name": "depositTreasuryFeeDivisor",
31
+ "type": "uint64"
32
+ },
33
+ {
34
+ "internalType": "uint64",
35
+ "name": "depositTxMaxFee",
36
+ "type": "uint64"
37
+ },
38
+ {
39
+ "internalType": "uint32",
40
+ "name": "depositRevealAheadPeriod",
41
+ "type": "uint32"
42
+ }
43
+ ],
44
+ "stateMutability": "view",
45
+ "type": "function"
46
+ },
47
+ {
48
+ "inputs": [
49
+ {
50
+ "internalType": "uint256",
51
+ "name": "depositKey",
52
+ "type": "uint256"
53
+ }
54
+ ],
55
+ "name": "deposits",
56
+ "outputs": [
57
+ {
58
+ "components": [
59
+ {
60
+ "internalType": "address",
61
+ "name": "depositor",
62
+ "type": "address"
63
+ },
64
+ {
65
+ "internalType": "uint64",
66
+ "name": "amount",
67
+ "type": "uint64"
68
+ },
69
+ {
70
+ "internalType": "uint32",
71
+ "name": "revealedAt",
72
+ "type": "uint32"
73
+ },
74
+ {
75
+ "internalType": "address",
76
+ "name": "vault",
77
+ "type": "address"
78
+ },
79
+ {
80
+ "internalType": "uint64",
81
+ "name": "treasuryFee",
82
+ "type": "uint64"
83
+ },
84
+ {
85
+ "internalType": "uint32",
86
+ "name": "sweptAt",
87
+ "type": "uint32"
88
+ },
89
+ {
90
+ "internalType": "bytes32",
91
+ "name": "extraData",
92
+ "type": "bytes32"
93
+ }
94
+ ],
95
+ "internalType": "struct IBridgeTypes.DepositRequest",
96
+ "name": "",
97
+ "type": "tuple"
98
+ }
99
+ ],
100
+ "stateMutability": "view",
101
+ "type": "function"
102
+ },
103
+ {
104
+ "inputs": [
105
+ {
106
+ "components": [
107
+ {
108
+ "internalType": "bytes4",
109
+ "name": "version",
110
+ "type": "bytes4"
111
+ },
112
+ {
113
+ "internalType": "bytes",
114
+ "name": "inputVector",
115
+ "type": "bytes"
116
+ },
117
+ {
118
+ "internalType": "bytes",
119
+ "name": "outputVector",
120
+ "type": "bytes"
121
+ },
122
+ {
123
+ "internalType": "bytes4",
124
+ "name": "locktime",
125
+ "type": "bytes4"
126
+ }
127
+ ],
128
+ "internalType": "struct IBridgeTypes.BitcoinTxInfo",
129
+ "name": "fundingTx",
130
+ "type": "tuple"
131
+ },
132
+ {
133
+ "components": [
134
+ {
135
+ "internalType": "uint32",
136
+ "name": "fundingOutputIndex",
137
+ "type": "uint32"
138
+ },
139
+ {
140
+ "internalType": "bytes8",
141
+ "name": "blindingFactor",
142
+ "type": "bytes8"
143
+ },
144
+ {
145
+ "internalType": "bytes20",
146
+ "name": "walletPubKeyHash",
147
+ "type": "bytes20"
148
+ },
149
+ {
150
+ "internalType": "bytes20",
151
+ "name": "refundPubKeyHash",
152
+ "type": "bytes20"
153
+ },
154
+ {
155
+ "internalType": "bytes4",
156
+ "name": "refundLocktime",
157
+ "type": "bytes4"
158
+ },
159
+ {
160
+ "internalType": "address",
161
+ "name": "vault",
162
+ "type": "address"
163
+ }
164
+ ],
165
+ "internalType": "struct IBridgeTypes.DepositRevealInfo",
166
+ "name": "reveal",
167
+ "type": "tuple"
168
+ },
169
+ {
170
+ "internalType": "bytes32",
171
+ "name": "extraData",
172
+ "type": "bytes32"
173
+ }
174
+ ],
175
+ "name": "revealDepositWithExtraData",
176
+ "outputs": [],
177
+ "stateMutability": "nonpayable",
178
+ "type": "function"
179
+ },
180
+ {
181
+ "inputs": [
182
+ {
183
+ "internalType": "uint64",
184
+ "name": "value",
185
+ "type": "uint64"
186
+ }
187
+ ],
188
+ "name": "setDepositTreasuryFeeDivisor",
189
+ "outputs": [],
190
+ "stateMutability": "nonpayable",
191
+ "type": "function"
192
+ },
193
+ {
194
+ "inputs": [
195
+ {
196
+ "internalType": "uint64",
197
+ "name": "value",
198
+ "type": "uint64"
199
+ }
200
+ ],
201
+ "name": "setDepositTxMaxFee",
202
+ "outputs": [],
203
+ "stateMutability": "nonpayable",
204
+ "type": "function"
205
+ },
206
+ {
207
+ "inputs": [
208
+ {
209
+ "internalType": "uint256",
210
+ "name": "depositKey",
211
+ "type": "uint256"
212
+ }
213
+ ],
214
+ "name": "sweepDeposit",
215
+ "outputs": [],
216
+ "stateMutability": "nonpayable",
217
+ "type": "function"
218
+ }
219
+ ],
220
+ "bytecode": "0x6080604052600180546001600160801b0319166903e8000000000000003217905534801561002c57600080fd5b50610fc38061003c6000396000f3fe608060405234801561001057600080fd5b50600436106100725760003560e01c8063b036c1ee11610050578063b036c1ee14610218578063bc8d07ca1461026d578063c42b64d01461028057600080fd5b80630bce769d1461007757806386f01439146100ab578063b02c43d0146100be575b600080fd5b6100a9610085366004610d39565b6001805467ffffffffffffffff191667ffffffffffffffff92909216919091179055565b005b6100a96100b9366004610d63565b6102c1565b61018f6100cc366004610dcc565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525060009081526020818152604091829020825160e08101845281546001600160a01b03808216835267ffffffffffffffff600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260018501549182166060850152948104909416608083015290920490921660a082015260029091015460c082015290565b60405161020f9190600060e0820190506001600160a01b03808451168352602084015167ffffffffffffffff80821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505060c083015160c083015292915050565b60405180910390f35b6100a9610226366004610d39565b6001805467ffffffffffffffff90921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b6100a961027b366004610dcc565b6105ff565b600154604080516000808252602082018190526801000000000000000090930467ffffffffffffffff1691810191909152606081019190915260800161020f565b60006103266102d36020860186610de5565b6102e06020870187610e0f565b6102ed6040890189610e0f565b6102fd60808b0160608c01610de5565b60405160200161031296959493929190610e56565b604051602081830303815290604052610718565b90506000816103386020860186610e98565b60405160200161035f92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120600081815292839052912054909150600160e01b900463ffffffff16156103e55760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064015b60405180910390fd5b60006104476103f76020870187610e98565b63ffffffff1661040a6040890189610e0f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061073f9050565b9050600061045482610923565b6040805160e0810182526000606082018190526080820181905260a080830182905260c08084019290925233835267ffffffffffffffff851660208401524263ffffffff1693830193909352929350916104b391908901908901610ebe565b6001600160a01b0316606082015260015467ffffffffffffffff166104d95760006104f0565b6001546104f09067ffffffffffffffff1683610efd565b67ffffffffffffffff90811660808301908152600060a0840181815260c085018a8152888352602083815260409384902087518154838a0151878b01516001600160a01b039384166001600160e01b031993841617600160a01b928c168302177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff908116600160e01b63ffffffff938416810291909117875560608e01516001880180549d519b51919097169c9095169b909b1798909b1690910296909617909816979094169095029590951790915551600290920191909155518581527f629cb19e19d844f2e8dd8aa5de26f5072bb49e6286c5206ebd7302da1dabc417910160405180910390a15050505050505050565b600081815260208190526040812054600160e01b900463ffffffff1690036106695760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c656400000000000000000000000060448201526064016103dc565b600081815260208190526040902060010154600160e01b900463ffffffff16156106d55760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016103dc565b600090815260208190526040902060010180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b606060008061074d856109a2565b9092509050600182016107c85760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016103dc565b8084106108175760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016103dc565b600080610825846001610f32565b905060005b868110156108ad5761083c88836109b9565b9250600019830361088f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016103dc565b6108998383610f32565b9150806108a581610f45565b91505061082a565b506108b887826109b9565b9150600019820361090b5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016103dc565b610916878284610a26565b9450505050505b92915050565b60008061092f83610af4565b60c01c9050600061099a8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b949350505050565b6000806109b0836000610b00565b91509150915091565b60006109c6826009610f32565b835110156109d7575060001961091d565b6000806109ee856109e9866008610f32565b610b00565b909250905060018201610a07576000199250505061091d565b80610a13836009610f32565b610a1d9190610f32565b95945050505050565b606081600003610a455750604080516020810190915260008152610aed565b6000610a518385610f32565b90508381118015610a63575080855110155b610aaf5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016103dc565b604051915082604083010160405282825283850182038460208701018481015b80821015610ae857815183830152602082019150610acf565b505050505b9392505050565b600061091d8282610ca4565b6000806000610b0f8585610cb3565b90508060ff16600003610b44576000858581518110610b3057610b30610f5e565b016020015190935060f81c9150610c9d9050565b83610b50826001610f74565b60ff16610b5d9190610f32565b85511015610b745760001960009250925050610c9d565b60008160ff16600203610bb857610bad610b99610b92876001610f32565b8890610ca4565b62ffff0060e882901c1660f89190911c1790565b61ffff169050610c93565b8160ff16600403610c0757610bfa610bd4610b92876001610f32565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050610c93565b8160ff16600803610c9357610c86610c23610b92876001610f32565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000610aed8383016020015190565b6000828281518110610cc757610cc7610f5e565b016020015160f81c60ff03610cde5750600861091d565b828281518110610cf057610cf0610f5e565b016020015160f81c60fe03610d075750600461091d565b828281518110610d1957610d19610f5e565b016020015160f81c60fd03610d305750600261091d565b50600092915050565b600060208284031215610d4b57600080fd5b813567ffffffffffffffff81168114610aed57600080fd5b6000806000838503610100811215610d7a57600080fd5b843567ffffffffffffffff811115610d9157600080fd5b850160808188031215610da357600080fd5b935060c0601f1982011215610db757600080fd5b5060208401915060e084013590509250925092565b600060208284031215610dde57600080fd5b5035919050565b600060208284031215610df757600080fd5b81356001600160e01b031981168114610aed57600080fd5b6000808335601e19843603018112610e2657600080fd5b83018035915067ffffffffffffffff821115610e4157600080fd5b602001915036819003821315610c9d57600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b600060208284031215610eaa57600080fd5b813563ffffffff81168114610aed57600080fd5b600060208284031215610ed057600080fd5b81356001600160a01b0381168114610aed57600080fd5b634e487b7160e01b600052601160045260246000fd5b600067ffffffffffffffff80841680610f2657634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b8082018082111561091d5761091d610ee7565b600060018201610f5757610f57610ee7565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60ff818116838216019081111561091d5761091d610ee756fea2646970667358221220aa1ce51ee20ed217c787fff9c60fd1c735c8780b3af9545469c71cf537dea8af64736f6c63430008110033",
221
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100725760003560e01c8063b036c1ee11610050578063b036c1ee14610218578063bc8d07ca1461026d578063c42b64d01461028057600080fd5b80630bce769d1461007757806386f01439146100ab578063b02c43d0146100be575b600080fd5b6100a9610085366004610d39565b6001805467ffffffffffffffff191667ffffffffffffffff92909216919091179055565b005b6100a96100b9366004610d63565b6102c1565b61018f6100cc366004610dcc565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091525060009081526020818152604091829020825160e08101845281546001600160a01b03808216835267ffffffffffffffff600160a01b80840482169685019690965263ffffffff600160e01b9384900481169785019790975260018501549182166060850152948104909416608083015290920490921660a082015260029091015460c082015290565b60405161020f9190600060e0820190506001600160a01b03808451168352602084015167ffffffffffffffff80821660208601526040860151915063ffffffff80831660408701528360608801511660608701528160808801511660808701528060a08801511660a08701525050505060c083015160c083015292915050565b60405180910390f35b6100a9610226366004610d39565b6001805467ffffffffffffffff90921668010000000000000000027fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff909216919091179055565b6100a961027b366004610dcc565b6105ff565b600154604080516000808252602082018190526801000000000000000090930467ffffffffffffffff1691810191909152606081019190915260800161020f565b60006103266102d36020860186610de5565b6102e06020870187610e0f565b6102ed6040890189610e0f565b6102fd60808b0160608c01610de5565b60405160200161031296959493929190610e56565b604051602081830303815290604052610718565b90506000816103386020860186610e98565b60405160200161035f92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120600081815292839052912054909150600160e01b900463ffffffff16156103e55760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064015b60405180910390fd5b60006104476103f76020870187610e98565b63ffffffff1661040a6040890189610e0f565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929392505061073f9050565b9050600061045482610923565b6040805160e0810182526000606082018190526080820181905260a080830182905260c08084019290925233835267ffffffffffffffff851660208401524263ffffffff1693830193909352929350916104b391908901908901610ebe565b6001600160a01b0316606082015260015467ffffffffffffffff166104d95760006104f0565b6001546104f09067ffffffffffffffff1683610efd565b67ffffffffffffffff90811660808301908152600060a0840181815260c085018a8152888352602083815260409384902087518154838a0151878b01516001600160a01b039384166001600160e01b031993841617600160a01b928c168302177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff908116600160e01b63ffffffff938416810291909117875560608e01516001880180549d519b51919097169c9095169b909b1798909b1690910296909617909816979094169095029590951790915551600290920191909155518581527f629cb19e19d844f2e8dd8aa5de26f5072bb49e6286c5206ebd7302da1dabc417910160405180910390a15050505050505050565b600081815260208190526040812054600160e01b900463ffffffff1690036106695760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c656400000000000000000000000060448201526064016103dc565b600081815260208190526040902060010154600160e01b900463ffffffff16156106d55760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016103dc565b600090815260208190526040902060010180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b606060008061074d856109a2565b9092509050600182016107c85760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016103dc565b8084106108175760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016103dc565b600080610825846001610f32565b905060005b868110156108ad5761083c88836109b9565b9250600019830361088f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016103dc565b6108998383610f32565b9150806108a581610f45565b91505061082a565b506108b887826109b9565b9150600019820361090b5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016103dc565b610916878284610a26565b9450505050505b92915050565b60008061092f83610af4565b60c01c9050600061099a8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b949350505050565b6000806109b0836000610b00565b91509150915091565b60006109c6826009610f32565b835110156109d7575060001961091d565b6000806109ee856109e9866008610f32565b610b00565b909250905060018201610a07576000199250505061091d565b80610a13836009610f32565b610a1d9190610f32565b95945050505050565b606081600003610a455750604080516020810190915260008152610aed565b6000610a518385610f32565b90508381118015610a63575080855110155b610aaf5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016103dc565b604051915082604083010160405282825283850182038460208701018481015b80821015610ae857815183830152602082019150610acf565b505050505b9392505050565b600061091d8282610ca4565b6000806000610b0f8585610cb3565b90508060ff16600003610b44576000858581518110610b3057610b30610f5e565b016020015190935060f81c9150610c9d9050565b83610b50826001610f74565b60ff16610b5d9190610f32565b85511015610b745760001960009250925050610c9d565b60008160ff16600203610bb857610bad610b99610b92876001610f32565b8890610ca4565b62ffff0060e882901c1660f89190911c1790565b61ffff169050610c93565b8160ff16600403610c0757610bfa610bd4610b92876001610f32565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050610c93565b8160ff16600803610c9357610c86610c23610b92876001610f32565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6000610aed8383016020015190565b6000828281518110610cc757610cc7610f5e565b016020015160f81c60ff03610cde5750600861091d565b828281518110610cf057610cf0610f5e565b016020015160f81c60fe03610d075750600461091d565b828281518110610d1957610d19610f5e565b016020015160f81c60fd03610d305750600261091d565b50600092915050565b600060208284031215610d4b57600080fd5b813567ffffffffffffffff81168114610aed57600080fd5b6000806000838503610100811215610d7a57600080fd5b843567ffffffffffffffff811115610d9157600080fd5b850160808188031215610da357600080fd5b935060c0601f1982011215610db757600080fd5b5060208401915060e084013590509250925092565b600060208284031215610dde57600080fd5b5035919050565b600060208284031215610df757600080fd5b81356001600160e01b031981168114610aed57600080fd5b6000808335601e19843603018112610e2657600080fd5b83018035915067ffffffffffffffff821115610e4157600080fd5b602001915036819003821315610c9d57600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b600060208284031215610eaa57600080fd5b813563ffffffff81168114610aed57600080fd5b600060208284031215610ed057600080fd5b81356001600160a01b0381168114610aed57600080fd5b634e487b7160e01b600052601160045260246000fd5b600067ffffffffffffffff80841680610f2657634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b8082018082111561091d5761091d610ee7565b600060018201610f5757610f57610ee7565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60ff818116838216019081111561091d5761091d610ee756fea2646970667358221220aa1ce51ee20ed217c787fff9c60fd1c735c8780b3af9545469c71cf537dea8af64736f6c63430008110033",
222
+ "linkReferences": {},
223
+ "deployedLinkReferences": {}
224
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/fd90cfb34a89b5cd7ef101e64705ab37.json"
4
+ }
@@ -0,0 +1,87 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MockTBTCVault",
4
+ "sourceName": "contracts/test/TestTBTCDepositor.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint256",
10
+ "name": "depositKey",
11
+ "type": "uint256"
12
+ }
13
+ ],
14
+ "name": "createOptimisticMintingRequest",
15
+ "outputs": [],
16
+ "stateMutability": "nonpayable",
17
+ "type": "function"
18
+ },
19
+ {
20
+ "inputs": [
21
+ {
22
+ "internalType": "uint256",
23
+ "name": "depositKey",
24
+ "type": "uint256"
25
+ }
26
+ ],
27
+ "name": "finalizeOptimisticMintingRequest",
28
+ "outputs": [],
29
+ "stateMutability": "nonpayable",
30
+ "type": "function"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "optimisticMintingFeeDivisor",
35
+ "outputs": [
36
+ {
37
+ "internalType": "uint32",
38
+ "name": "",
39
+ "type": "uint32"
40
+ }
41
+ ],
42
+ "stateMutability": "view",
43
+ "type": "function"
44
+ },
45
+ {
46
+ "inputs": [
47
+ {
48
+ "internalType": "uint256",
49
+ "name": "depositKey",
50
+ "type": "uint256"
51
+ }
52
+ ],
53
+ "name": "optimisticMintingRequests",
54
+ "outputs": [
55
+ {
56
+ "internalType": "uint64",
57
+ "name": "requestedAt",
58
+ "type": "uint64"
59
+ },
60
+ {
61
+ "internalType": "uint64",
62
+ "name": "finalizedAt",
63
+ "type": "uint64"
64
+ }
65
+ ],
66
+ "stateMutability": "nonpayable",
67
+ "type": "function"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "uint32",
73
+ "name": "value",
74
+ "type": "uint32"
75
+ }
76
+ ],
77
+ "name": "setOptimisticMintingFeeDivisor",
78
+ "outputs": [],
79
+ "stateMutability": "nonpayable",
80
+ "type": "function"
81
+ }
82
+ ],
83
+ "bytecode": "0x60806040526001805463ffffffff1916606417905534801561002057600080fd5b5061038f806100306000396000f3fe608060405234801561001057600080fd5b50600436106100675760003560e01c80636c626aa4116100505780636c626aa4146100ab578063d5b0b0ce1461011a578063db4aa6cb1461014457600080fd5b806309b53f511461006c578063477ffd6514610096575b600080fd5b60015461007c9063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6100a96100a4366004610313565b610157565b005b6100f96100b9366004610313565b6000908152602081815260409182902082518084019093525467ffffffffffffffff80821680855268010000000000000000909204169290910182905291565b6040805167ffffffffffffffff93841681529290911660208301520161008d565b6100a961012836600461032c565b6001805463ffffffff191663ffffffff92909216919091179055565b6100a9610152366004610313565b6101ed565b60008181526020819052604090205467ffffffffffffffff16156101c25760405162461bcd60e51b815260206004820152601660248201527f5265717565737420616c7265616479206578697374730000000000000000000060448201526064015b60405180910390fd5b6000908152602081905260409020805467ffffffffffffffff19164267ffffffffffffffff16179055565b60008181526020819052604081205467ffffffffffffffff1690036102545760405162461bcd60e51b815260206004820152601660248201527f5265717565737420646f6573206e6f742065786973740000000000000000000060448201526064016101b9565b60008181526020819052604090205468010000000000000000900467ffffffffffffffff16156102c65760405162461bcd60e51b815260206004820152601960248201527f5265717565737420616c72656164792066696e616c697a65640000000000000060448201526064016101b9565b600090815260208190526040902080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff1602179055565b60006020828403121561032557600080fd5b5035919050565b60006020828403121561033e57600080fd5b813563ffffffff8116811461035257600080fd5b939250505056fea26469706673582212209b80a52859a14296f29043520eaa881083b71df713f690391d2f86716c670ce164736f6c63430008110033",
84
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100675760003560e01c80636c626aa4116100505780636c626aa4146100ab578063d5b0b0ce1461011a578063db4aa6cb1461014457600080fd5b806309b53f511461006c578063477ffd6514610096575b600080fd5b60015461007c9063ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6100a96100a4366004610313565b610157565b005b6100f96100b9366004610313565b6000908152602081815260409182902082518084019093525467ffffffffffffffff80821680855268010000000000000000909204169290910182905291565b6040805167ffffffffffffffff93841681529290911660208301520161008d565b6100a961012836600461032c565b6001805463ffffffff191663ffffffff92909216919091179055565b6100a9610152366004610313565b6101ed565b60008181526020819052604090205467ffffffffffffffff16156101c25760405162461bcd60e51b815260206004820152601660248201527f5265717565737420616c7265616479206578697374730000000000000000000060448201526064015b60405180910390fd5b6000908152602081905260409020805467ffffffffffffffff19164267ffffffffffffffff16179055565b60008181526020819052604081205467ffffffffffffffff1690036102545760405162461bcd60e51b815260206004820152601660248201527f5265717565737420646f6573206e6f742065786973740000000000000000000060448201526064016101b9565b60008181526020819052604090205468010000000000000000900467ffffffffffffffff16156102c65760405162461bcd60e51b815260206004820152601960248201527f5265717565737420616c72656164792066696e616c697a65640000000000000060448201526064016101b9565b600090815260208190526040902080547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16680100000000000000004267ffffffffffffffff1602179055565b60006020828403121561032557600080fd5b5035919050565b60006020828403121561033e57600080fd5b813563ffffffff8116811461035257600080fd5b939250505056fea26469706673582212209b80a52859a14296f29043520eaa881083b71df713f690391d2f86716c670ce164736f6c63430008110033",
85
+ "linkReferences": {},
86
+ "deployedLinkReferences": {}
87
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/fd90cfb34a89b5cd7ef101e64705ab37.json"
4
+ }
@@ -0,0 +1,283 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "TestTBTCDepositor",
4
+ "sourceName": "contracts/test/TestTBTCDepositor.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": true,
11
+ "internalType": "uint256",
12
+ "name": "depositKey",
13
+ "type": "uint256"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "uint256",
18
+ "name": "tbtcAmount",
19
+ "type": "uint256"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "uint32",
24
+ "name": "finalizedAt",
25
+ "type": "uint32"
26
+ }
27
+ ],
28
+ "name": "DepositFinalized",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "anonymous": false,
33
+ "inputs": [
34
+ {
35
+ "indexed": true,
36
+ "internalType": "uint256",
37
+ "name": "depositKey",
38
+ "type": "uint256"
39
+ },
40
+ {
41
+ "indexed": false,
42
+ "internalType": "uint32",
43
+ "name": "initializedAt",
44
+ "type": "uint32"
45
+ }
46
+ ],
47
+ "name": "DepositInitialized",
48
+ "type": "event"
49
+ },
50
+ {
51
+ "anonymous": false,
52
+ "inputs": [
53
+ {
54
+ "indexed": false,
55
+ "internalType": "uint256",
56
+ "name": "initialDepositAmount",
57
+ "type": "uint256"
58
+ },
59
+ {
60
+ "indexed": false,
61
+ "internalType": "uint256",
62
+ "name": "tbtcAmount",
63
+ "type": "uint256"
64
+ },
65
+ {
66
+ "indexed": false,
67
+ "internalType": "bytes32",
68
+ "name": "extraData",
69
+ "type": "bytes32"
70
+ }
71
+ ],
72
+ "name": "FinalizeDepositReturned",
73
+ "type": "event"
74
+ },
75
+ {
76
+ "anonymous": false,
77
+ "inputs": [
78
+ {
79
+ "indexed": false,
80
+ "internalType": "uint256",
81
+ "name": "depositKey",
82
+ "type": "uint256"
83
+ }
84
+ ],
85
+ "name": "InitializeDepositReturned",
86
+ "type": "event"
87
+ },
88
+ {
89
+ "inputs": [],
90
+ "name": "SATOSHI_MULTIPLIER",
91
+ "outputs": [
92
+ {
93
+ "internalType": "uint256",
94
+ "name": "",
95
+ "type": "uint256"
96
+ }
97
+ ],
98
+ "stateMutability": "view",
99
+ "type": "function"
100
+ },
101
+ {
102
+ "inputs": [],
103
+ "name": "bridge",
104
+ "outputs": [
105
+ {
106
+ "internalType": "contract IBridge",
107
+ "name": "",
108
+ "type": "address"
109
+ }
110
+ ],
111
+ "stateMutability": "view",
112
+ "type": "function"
113
+ },
114
+ {
115
+ "inputs": [
116
+ {
117
+ "internalType": "uint64",
118
+ "name": "depositAmountSat",
119
+ "type": "uint64"
120
+ },
121
+ {
122
+ "internalType": "uint64",
123
+ "name": "depositTreasuryFeeSat",
124
+ "type": "uint64"
125
+ }
126
+ ],
127
+ "name": "calculateTbtcAmountPublic",
128
+ "outputs": [
129
+ {
130
+ "internalType": "uint256",
131
+ "name": "",
132
+ "type": "uint256"
133
+ }
134
+ ],
135
+ "stateMutability": "view",
136
+ "type": "function"
137
+ },
138
+ {
139
+ "inputs": [
140
+ {
141
+ "internalType": "uint256",
142
+ "name": "depositKey",
143
+ "type": "uint256"
144
+ }
145
+ ],
146
+ "name": "finalizeDepositPublic",
147
+ "outputs": [],
148
+ "stateMutability": "nonpayable",
149
+ "type": "function"
150
+ },
151
+ {
152
+ "inputs": [
153
+ {
154
+ "internalType": "address",
155
+ "name": "_bridge",
156
+ "type": "address"
157
+ },
158
+ {
159
+ "internalType": "address",
160
+ "name": "_tbtcVault",
161
+ "type": "address"
162
+ }
163
+ ],
164
+ "name": "initialize",
165
+ "outputs": [],
166
+ "stateMutability": "nonpayable",
167
+ "type": "function"
168
+ },
169
+ {
170
+ "inputs": [
171
+ {
172
+ "components": [
173
+ {
174
+ "internalType": "bytes4",
175
+ "name": "version",
176
+ "type": "bytes4"
177
+ },
178
+ {
179
+ "internalType": "bytes",
180
+ "name": "inputVector",
181
+ "type": "bytes"
182
+ },
183
+ {
184
+ "internalType": "bytes",
185
+ "name": "outputVector",
186
+ "type": "bytes"
187
+ },
188
+ {
189
+ "internalType": "bytes4",
190
+ "name": "locktime",
191
+ "type": "bytes4"
192
+ }
193
+ ],
194
+ "internalType": "struct IBridgeTypes.BitcoinTxInfo",
195
+ "name": "fundingTx",
196
+ "type": "tuple"
197
+ },
198
+ {
199
+ "components": [
200
+ {
201
+ "internalType": "uint32",
202
+ "name": "fundingOutputIndex",
203
+ "type": "uint32"
204
+ },
205
+ {
206
+ "internalType": "bytes8",
207
+ "name": "blindingFactor",
208
+ "type": "bytes8"
209
+ },
210
+ {
211
+ "internalType": "bytes20",
212
+ "name": "walletPubKeyHash",
213
+ "type": "bytes20"
214
+ },
215
+ {
216
+ "internalType": "bytes20",
217
+ "name": "refundPubKeyHash",
218
+ "type": "bytes20"
219
+ },
220
+ {
221
+ "internalType": "bytes4",
222
+ "name": "refundLocktime",
223
+ "type": "bytes4"
224
+ },
225
+ {
226
+ "internalType": "address",
227
+ "name": "vault",
228
+ "type": "address"
229
+ }
230
+ ],
231
+ "internalType": "struct IBridgeTypes.DepositRevealInfo",
232
+ "name": "reveal",
233
+ "type": "tuple"
234
+ },
235
+ {
236
+ "internalType": "bytes32",
237
+ "name": "extraData",
238
+ "type": "bytes32"
239
+ }
240
+ ],
241
+ "name": "initializeDepositPublic",
242
+ "outputs": [],
243
+ "stateMutability": "nonpayable",
244
+ "type": "function"
245
+ },
246
+ {
247
+ "inputs": [
248
+ {
249
+ "internalType": "uint256",
250
+ "name": "",
251
+ "type": "uint256"
252
+ }
253
+ ],
254
+ "name": "pendingDeposits",
255
+ "outputs": [
256
+ {
257
+ "internalType": "bool",
258
+ "name": "",
259
+ "type": "bool"
260
+ }
261
+ ],
262
+ "stateMutability": "view",
263
+ "type": "function"
264
+ },
265
+ {
266
+ "inputs": [],
267
+ "name": "tbtcVault",
268
+ "outputs": [
269
+ {
270
+ "internalType": "contract ITBTCVault",
271
+ "name": "",
272
+ "type": "address"
273
+ }
274
+ ],
275
+ "stateMutability": "view",
276
+ "type": "function"
277
+ }
278
+ ],
279
+ "bytecode": "0x608060405234801561001057600080fd5b506110a1806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a79327941161005b578063a793279414610106578063c7ba034714610139578063ca3a7f8c14610145578063e78cea921461015857600080fd5b80630f36403a1461008d57806331e6028c146100bd57806332a280b3146100de578063485cc955146100f3575b600080fd5b6001546100a0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb366004610a46565b61016b565b6040519081526020016100b4565b6100f16100ec366004610a7f565b610180565b005b6100f1610101366004610abd565b6101de565b610129610114366004610a7f565b60026020526000908152604090205460ff1681565b60405190151581526020016100b4565b6100d06402540be40081565b6100f1610153366004610aeb565b6101ec565b6000546100a0906001600160a01b031681565b6000610177838361022c565b90505b92915050565b600080600061018e846103af565b604080518481526020810184905290810182905292955090935091507fcdb95277f6a6807a2018e2dd8d15a4ff1b5619260b5dc535eb77e90945cf6e39906060015b60405180910390a150505050565b6101e8828261065c565b5050565b60006101f98484846107e2565b90507f0f3805f24563e903dd7c191088451bda29dc93cb93085e42724fdc27f62fef96816040516101d091815260200190565b6000806402540be40061023f8486610b6a565b67ffffffffffffffff166102539190610b92565b90506000600160009054906101000a90046001600160a01b03166001600160a01b03166309b53f516040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce9190610bc6565b63ffffffff16905060008082116102e65760006102f0565b6102f08284610bea565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015610346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036a9190610c17565b509250505060006402540be4008267ffffffffffffffff1661038c9190610b92565b9050806103998487610c76565b6103a39190610c76565b98975050505050505050565b6000818152600260205260408120548190819060ff166104165760405162461bcd60e51b815260206004820152601760248201527f4465706f736974206e6f7420696e697469616c697a656400000000000000000060448201526064015b60405180910390fd5b600080546040517fb02c43d0000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b039091169063b02c43d09060240160e060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190610c94565b6001546040517f6c626aa4000000000000000000000000000000000000000000000000000000008152600481018890529192506000916001600160a01b0390911690636c626aa49060240160408051808303816000875af1158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a9190610d4e565b9150508160a0015163ffffffff166000141580610550575067ffffffffffffffff811615155b6105c25760405162461bcd60e51b815260206004820152602360248201527f4465706f736974206e6f742066696e616c697a6564206279207468652062726960448201527f6467650000000000000000000000000000000000000000000000000000000000606482015260840161040d565b6000868152600260209081526040909120805460ff191690558201516105f8906402540be4009067ffffffffffffffff16610b92565b945061060c8260200151836080015161022c565b6040805182815263ffffffff4216602082015291955087917f417b6288c9f637614f8b3f7a275fb4e44e517930fde949e463d58dfe0b97f28b910160405180910390a25060c00151929491935050565b6000546001600160a01b031615801561067e57506001546001600160a01b0316155b6106f05760405162461bcd60e51b815260206004820152602960248201527f4162737472616374544254434465706f7369746f7220616c726561647920696e60448201527f697469616c697a65640000000000000000000000000000000000000000000000606482015260840161040d565b6001600160a01b0382166107465760405162461bcd60e51b815260206004820152601d60248201527f42726964676520616464726573732063616e6e6f74206265207a65726f000000604482015260640161040d565b6001600160a01b03811661079c5760405162461bcd60e51b815260206004820181905260248201527f544254435661756c7420616464726573732063616e6e6f74206265207a65726f604482015260640161040d565b600080546001600160a01b039384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560018054929093169116179055565b6001546000906001600160a01b031661080160c0850160a08601610d7d565b6001600160a01b0316146108575760405162461bcd60e51b815260206004820152601660248201527f5661756c742061646472657373206d69736d6174636800000000000000000000604482015260640161040d565b600061087761086586610957565b6108726020870187610d9a565b6109bc565b600081815260026020908152604091829020805460ff1916600117905590514263ffffffff16815291925082917fa3ed7aef0745e1a91addae9e5daee7a8ace74852fec840b9d93da747855dd7b9910160405180910390a26000546040517f86f014390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906386f014399061091c90889088908890600401610e62565b600060405180830381600087803b15801561093657600080fd5b505af115801561094a573d6000803e3d6000fd5b5092979650505050505050565b600061017a6109696020840184610fc7565b6109766020850185610fe2565b6109836040870187610fe2565b6109936080890160608a01610fc7565b6040516020016109a896959493929190611029565b604051602081830303815290604052610a06565b600082826040516020016109e792919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815291905280516020909101209392505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b67ffffffffffffffff81168114610a4357600080fd5b50565b60008060408385031215610a5957600080fd5b8235610a6481610a2d565b91506020830135610a7481610a2d565b809150509250929050565b600060208284031215610a9157600080fd5b5035919050565b6001600160a01b0381168114610a4357600080fd5b8035610ab881610a98565b919050565b60008060408385031215610ad057600080fd5b8235610adb81610a98565b91506020830135610a7481610a98565b6000806000838503610100811215610b0257600080fd5b843567ffffffffffffffff811115610b1957600080fd5b850160808188031215610b2b57600080fd5b935060c0601f1982011215610b3f57600080fd5b5060208401915060e084013590509250925092565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff828116828216039080821115610b8b57610b8b610b54565b5092915050565b808202811582820484141761017a5761017a610b54565b63ffffffff81168114610a4357600080fd5b8051610ab881610ba9565b600060208284031215610bd857600080fd5b8151610be381610ba9565b9392505050565b600082610c0757634e487b7160e01b600052601260045260246000fd5b500490565b8051610ab881610a2d565b60008060008060808587031215610c2d57600080fd5b8451610c3881610a2d565b6020860151909450610c4981610a2d565b6040860151909350610c5a81610a2d565b6060860151909250610c6b81610ba9565b939692955090935050565b8181038181111561017a5761017a610b54565b8051610ab881610a98565b600060e08284031215610ca657600080fd5b60405160e0810181811067ffffffffffffffff82111715610cd757634e487b7160e01b600052604160045260246000fd5b604052610ce383610c89565b8152610cf160208401610c0c565b6020820152610d0260408401610bbb565b6040820152610d1360608401610c89565b6060820152610d2460808401610c0c565b6080820152610d3560a08401610bbb565b60a082015260c083015160c08201528091505092915050565b60008060408385031215610d6157600080fd5b8251610d6c81610a2d565b6020840151909250610a7481610a2d565b600060208284031215610d8f57600080fd5b8135610be381610a98565b600060208284031215610dac57600080fd5b8135610be381610ba9565b80356001600160e01b031981168114610ab857600080fd5b6000808335601e19843603018112610de657600080fd5b830160208101925035905067ffffffffffffffff811115610e0657600080fd5b803603821315610e1557600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356bffffffffffffffffffffffff1981168114610ab857600080fd5b60006101008083526001600160e01b031980610e7d88610db7565b1682850152610e8f6020880188610dcf565b92506080610120860152610ea861018086018483610e1c565b925050610eb86040880188610dcf565b85840360ff1901610140870152610ed0848284610e1c565b9350505080610ee160608901610db7565b166101608501525090508335610ef681610ba9565b63ffffffff811660208401525060208401357fffffffffffffffff0000000000000000000000000000000000000000000000008116808214610f3757600080fd5b80604085015250506bffffffffffffffffffffffff19610f5960408601610e45565b166060830152610f6b60608501610e45565b6bffffffffffffffffffffffff198116608084015250610f8d60808501610db7565b6001600160e01b0319811660a084015250610faa60a08501610aad565b6001600160a01b031660c083015260e09091019190915292915050565b600060208284031215610fd957600080fd5b61017782610db7565b6000808335601e19843603018112610ff957600080fd5b83018035915067ffffffffffffffff82111561101457600080fd5b602001915036819003821315610e1557600080fd5b60006001600160e01b0319808916835286886004850137868301600481016000815286888237509316939092016004810193909352505060080194935050505056fea26469706673582212208dd73fc1c67be0cac8354ff0213f9beb87c185555b8ae1614e2a60dad585130b64736f6c63430008110033",
280
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a79327941161005b578063a793279414610106578063c7ba034714610139578063ca3a7f8c14610145578063e78cea921461015857600080fd5b80630f36403a1461008d57806331e6028c146100bd57806332a280b3146100de578063485cc955146100f3575b600080fd5b6001546100a0906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6100d06100cb366004610a46565b61016b565b6040519081526020016100b4565b6100f16100ec366004610a7f565b610180565b005b6100f1610101366004610abd565b6101de565b610129610114366004610a7f565b60026020526000908152604090205460ff1681565b60405190151581526020016100b4565b6100d06402540be40081565b6100f1610153366004610aeb565b6101ec565b6000546100a0906001600160a01b031681565b6000610177838361022c565b90505b92915050565b600080600061018e846103af565b604080518481526020810184905290810182905292955090935091507fcdb95277f6a6807a2018e2dd8d15a4ff1b5619260b5dc535eb77e90945cf6e39906060015b60405180910390a150505050565b6101e8828261065c565b5050565b60006101f98484846107e2565b90507f0f3805f24563e903dd7c191088451bda29dc93cb93085e42724fdc27f62fef96816040516101d091815260200190565b6000806402540be40061023f8486610b6a565b67ffffffffffffffff166102539190610b92565b90506000600160009054906101000a90046001600160a01b03166001600160a01b03166309b53f516040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102ce9190610bc6565b63ffffffff16905060008082116102e65760006102f0565b6102f08284610bea565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa158015610346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036a9190610c17565b509250505060006402540be4008267ffffffffffffffff1661038c9190610b92565b9050806103998487610c76565b6103a39190610c76565b98975050505050505050565b6000818152600260205260408120548190819060ff166104165760405162461bcd60e51b815260206004820152601760248201527f4465706f736974206e6f7420696e697469616c697a656400000000000000000060448201526064015b60405180910390fd5b600080546040517fb02c43d0000000000000000000000000000000000000000000000000000000008152600481018790526001600160a01b039091169063b02c43d09060240160e060405180830381865afa158015610479573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061049d9190610c94565b6001546040517f6c626aa4000000000000000000000000000000000000000000000000000000008152600481018890529192506000916001600160a01b0390911690636c626aa49060240160408051808303816000875af1158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a9190610d4e565b9150508160a0015163ffffffff166000141580610550575067ffffffffffffffff811615155b6105c25760405162461bcd60e51b815260206004820152602360248201527f4465706f736974206e6f742066696e616c697a6564206279207468652062726960448201527f6467650000000000000000000000000000000000000000000000000000000000606482015260840161040d565b6000868152600260209081526040909120805460ff191690558201516105f8906402540be4009067ffffffffffffffff16610b92565b945061060c8260200151836080015161022c565b6040805182815263ffffffff4216602082015291955087917f417b6288c9f637614f8b3f7a275fb4e44e517930fde949e463d58dfe0b97f28b910160405180910390a25060c00151929491935050565b6000546001600160a01b031615801561067e57506001546001600160a01b0316155b6106f05760405162461bcd60e51b815260206004820152602960248201527f4162737472616374544254434465706f7369746f7220616c726561647920696e60448201527f697469616c697a65640000000000000000000000000000000000000000000000606482015260840161040d565b6001600160a01b0382166107465760405162461bcd60e51b815260206004820152601d60248201527f42726964676520616464726573732063616e6e6f74206265207a65726f000000604482015260640161040d565b6001600160a01b03811661079c5760405162461bcd60e51b815260206004820181905260248201527f544254435661756c7420616464726573732063616e6e6f74206265207a65726f604482015260640161040d565b600080546001600160a01b039384167fffffffffffffffffffffffff00000000000000000000000000000000000000009182161790915560018054929093169116179055565b6001546000906001600160a01b031661080160c0850160a08601610d7d565b6001600160a01b0316146108575760405162461bcd60e51b815260206004820152601660248201527f5661756c742061646472657373206d69736d6174636800000000000000000000604482015260640161040d565b600061087761086586610957565b6108726020870187610d9a565b6109bc565b600081815260026020908152604091829020805460ff1916600117905590514263ffffffff16815291925082917fa3ed7aef0745e1a91addae9e5daee7a8ace74852fec840b9d93da747855dd7b9910160405180910390a26000546040517f86f014390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906386f014399061091c90889088908890600401610e62565b600060405180830381600087803b15801561093657600080fd5b505af115801561094a573d6000803e3d6000fd5b5092979650505050505050565b600061017a6109696020840184610fc7565b6109766020850185610fe2565b6109836040870187610fe2565b6109936080890160608a01610fc7565b6040516020016109a896959493929190611029565b604051602081830303815290604052610a06565b600082826040516020016109e792919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815291905280516020909101209392505050565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b67ffffffffffffffff81168114610a4357600080fd5b50565b60008060408385031215610a5957600080fd5b8235610a6481610a2d565b91506020830135610a7481610a2d565b809150509250929050565b600060208284031215610a9157600080fd5b5035919050565b6001600160a01b0381168114610a4357600080fd5b8035610ab881610a98565b919050565b60008060408385031215610ad057600080fd5b8235610adb81610a98565b91506020830135610a7481610a98565b6000806000838503610100811215610b0257600080fd5b843567ffffffffffffffff811115610b1957600080fd5b850160808188031215610b2b57600080fd5b935060c0601f1982011215610b3f57600080fd5b5060208401915060e084013590509250925092565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff828116828216039080821115610b8b57610b8b610b54565b5092915050565b808202811582820484141761017a5761017a610b54565b63ffffffff81168114610a4357600080fd5b8051610ab881610ba9565b600060208284031215610bd857600080fd5b8151610be381610ba9565b9392505050565b600082610c0757634e487b7160e01b600052601260045260246000fd5b500490565b8051610ab881610a2d565b60008060008060808587031215610c2d57600080fd5b8451610c3881610a2d565b6020860151909450610c4981610a2d565b6040860151909350610c5a81610a2d565b6060860151909250610c6b81610ba9565b939692955090935050565b8181038181111561017a5761017a610b54565b8051610ab881610a98565b600060e08284031215610ca657600080fd5b60405160e0810181811067ffffffffffffffff82111715610cd757634e487b7160e01b600052604160045260246000fd5b604052610ce383610c89565b8152610cf160208401610c0c565b6020820152610d0260408401610bbb565b6040820152610d1360608401610c89565b6060820152610d2460808401610c0c565b6080820152610d3560a08401610bbb565b60a082015260c083015160c08201528091505092915050565b60008060408385031215610d6157600080fd5b8251610d6c81610a2d565b6020840151909250610a7481610a2d565b600060208284031215610d8f57600080fd5b8135610be381610a98565b600060208284031215610dac57600080fd5b8135610be381610ba9565b80356001600160e01b031981168114610ab857600080fd5b6000808335601e19843603018112610de657600080fd5b830160208101925035905067ffffffffffffffff811115610e0657600080fd5b803603821315610e1557600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356bffffffffffffffffffffffff1981168114610ab857600080fd5b60006101008083526001600160e01b031980610e7d88610db7565b1682850152610e8f6020880188610dcf565b92506080610120860152610ea861018086018483610e1c565b925050610eb86040880188610dcf565b85840360ff1901610140870152610ed0848284610e1c565b9350505080610ee160608901610db7565b166101608501525090508335610ef681610ba9565b63ffffffff811660208401525060208401357fffffffffffffffff0000000000000000000000000000000000000000000000008116808214610f3757600080fd5b80604085015250506bffffffffffffffffffffffff19610f5960408601610e45565b166060830152610f6b60608501610e45565b6bffffffffffffffffffffffff198116608084015250610f8d60808501610db7565b6001600160e01b0319811660a084015250610faa60a08501610aad565b6001600160a01b031660c083015260e09091019190915292915050565b600060208284031215610fd957600080fd5b61017782610db7565b6000808335601e19843603018112610ff957600080fd5b83018035915067ffffffffffffffff82111561101457600080fd5b602001915036819003821315610e1557600080fd5b60006001600160e01b0319808916835286886004850137868301600481016000815286888237509316939092016004810193909352505060080194935050505056fea26469706673582212208dd73fc1c67be0cac8354ff0213f9beb87c185555b8ae1614e2a60dad585130b64736f6c63430008110033",
281
+ "linkReferences": {},
282
+ "deployedLinkReferences": {}
283
+ }