@keep-network/tbtc-v2 0.1.1-dev.42 → 0.1.1-dev.45
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.
- package/artifacts/Bank.json +742 -0
- package/artifacts/Bridge.json +2914 -0
- package/artifacts/Deposit.json +117 -0
- package/artifacts/EcdsaDkgValidator.json +532 -0
- package/artifacts/EcdsaInactivity.json +156 -0
- package/artifacts/Fraud.json +153 -0
- package/artifacts/KeepRegistry.json +99 -0
- package/artifacts/KeepStake.json +286 -0
- package/artifacts/KeepToken.json +711 -0
- package/artifacts/KeepTokenStaking.json +483 -0
- package/artifacts/MovingFunds.json +137 -0
- package/artifacts/NuCypherStakingEscrow.json +256 -0
- package/artifacts/NuCypherToken.json +711 -0
- package/artifacts/RandomBeaconStub.json +141 -0
- package/artifacts/Redemption.json +161 -0
- package/artifacts/ReimbursementPool.json +509 -0
- package/artifacts/Relay.json +123 -0
- package/artifacts/SortitionPool.json +944 -0
- package/artifacts/Sweep.json +76 -0
- package/artifacts/T.json +1148 -0
- package/artifacts/TBTC.json +21 -21
- package/artifacts/TBTCToken.json +21 -21
- package/artifacts/TokenStaking.json +2288 -0
- package/artifacts/TokenholderGovernor.json +1795 -0
- package/artifacts/TokenholderTimelock.json +1058 -0
- package/artifacts/VendingMachine.json +24 -24
- package/artifacts/VendingMachineKeep.json +400 -0
- package/artifacts/VendingMachineNuCypher.json +400 -0
- package/artifacts/WalletRegistry.json +2709 -0
- package/artifacts/WalletRegistryGovernance.json +2364 -0
- package/artifacts/Wallets.json +186 -0
- package/artifacts/solcInputs/{002940e9cc8128f6629e90620c66cba5.json → 58ca6018672440f1c9c800806e096f9c.json} +22 -22
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +489 -173
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.json +114 -2
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.json +2 -2
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.json +2 -2
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.json +5 -57
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.json +40 -2
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +4 -0
- package/build/contracts/bridge/{Redeem.sol → Redemption.sol}/OutboundTx.json +3 -3
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +4 -0
- package/build/contracts/bridge/Redemption.sol/Redemption.json +92 -0
- package/build/contracts/bridge/Sweep.sol/Sweep.dbg.json +1 -1
- package/build/contracts/bridge/Sweep.sol/Sweep.json +2 -2
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.json +21 -2
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/BitcoinTx.sol +19 -26
- package/contracts/bridge/Bridge.sol +736 -489
- package/contracts/bridge/BridgeState.sol +271 -24
- package/contracts/bridge/Deposit.sol +24 -2
- package/contracts/bridge/EcdsaLib.sol +15 -0
- package/contracts/bridge/Fraud.sol +64 -31
- package/contracts/bridge/MovingFunds.sol +194 -6
- package/contracts/bridge/{Redeem.sol → Redemption.sol} +20 -18
- package/contracts/bridge/Sweep.sol +13 -8
- package/contracts/bridge/Wallets.sol +53 -35
- package/deploy/00_resolve_relay.ts +28 -0
- package/deploy/04_deploy_bank.ts +25 -0
- package/deploy/05_deploy_bridge.ts +60 -0
- package/deploy/06_bank_update_bridge.ts +19 -0
- package/deploy/07_transfer_ownership.ts +17 -0
- package/export.json +14797 -459
- package/package.json +2 -2
- package/build/contracts/bridge/Redeem.sol/OutboundTx.dbg.json +0 -4
- package/build/contracts/bridge/Redeem.sol/Redeem.dbg.json +0 -4
- package/build/contracts/bridge/Redeem.sol/Redeem.json +0 -92
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"type": "event"
|
|
24
24
|
}
|
|
25
25
|
],
|
|
26
|
-
"bytecode": "0x612a0c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063510fc50a1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046124ee565b61005c565b005b6000610071848461006c8861048d565b6105d8565b90506000806100c06100866040880188612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506108c992505050565b915091506000806100d28985886109fc565b909250905060006101268a6100ea60208c018c612575565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250610c1c915050565b90506000808061014a84600001518867ffffffffffffffff16866040015151611208565b60058f0154919350915068010000000000000000900467ffffffffffffffff1661017482846125d2565b11156101c75760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064015b60405180910390fd5b60005b8460400151518110156102b557600060018660400151516101eb91906125ea565b82146101f75783610201565b61020183856125d2565b9050808660600151838151811061021a5761021a612601565b60200260200101518760400151848151811061023857610238612601565b602002602001015161024a91906125ea565b61025491906125ea565b8660400151838151811061026a5761026a612601565b6020026020010181815250508560600151828151811061028c5761028c612601565b60200260200101518561029f91906125d2565b94505080806102ad90612617565b9150506101ca565b5060408051602081018b90526000918101919091527fffffffffffffffff00000000000000000000000000000000000000000000000060c089901b166044820152604c0160408051808303601f19018152828252805160209182012060018a01556bffffffffffffffffffffffff198b16835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a18c54602085015160408087015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b039093169263266a123a926103aa929091600401612632565b600060405180830381600087803b1580156103c457600080fd5b505af11580156103d8573d6000803e3d6000fd5b505050508c60000160009054906101000a90046001600160a01b03166001600160a01b0316635b86f5998e60040160009054906101000a90046001600160a01b0316856040518363ffffffff1660e01b815260040161044c9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561046657600080fd5b505af115801561047a573d6000803e3d6000fd5b5050505050505050505050505050505050565b6104b160405180606001604052806000815260200160008152602001600081525090565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691829163113764be916004808301926020929190829003018186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a91906126b6565b826000018181525050806001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561058c57600080fd5b505afa1580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c491906126b6565b602083015250600390910154604082015290565b60006106246105ea6020860186612575565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061124492505050565b6106705760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016101be565b6106ba6106806040860186612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112f492505050565b6107065760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016101be565b61076961071660208601866126cf565b6107236020870187612575565b6107306040890189612575565b61074060808b0160608c016126cf565b604051602001610755969594939291906126f9565b604051602081830303815290604052611397565b90506108046107b861077e6040860186612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113be92505050565b6107c28580612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508694939250505060208701356113cd565b6108765760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016101be565b6108c26108866040850185612575565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061140b915050565b9392505050565b60008060006108d78461166e565b915050806001146109505760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016101be565b600061095c8582611685565b90506109678161186b565b92506000610974826118e2565b905080516014146109ed5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016101be565b60208101519450505050915091565b604080516060810182526000808252602082018190529181018290526bffffffffffffffffffffffff198416600090815260148601602052604090206002810154909250700100000000000000000000000000000000900460ff166001816004811115610a6b57610a6b61273b565b1480610a8857506002816004811115610a8657610a8661273b565b145b610afa5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084016101be565b604080516060810182526000808252602082018190529181019190915260018401549092508015610c1257808535610b38604088016020890161276a565b610b486060890160408a0161279d565b604051602001610b9d9392919092835260e09190911b6001600160e01b031916602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610c005760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101be565b610c0f368690038601866127ce565b92505b5050935093915050565b610c476040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080610c588761166e565b90925090506000610c6a8360016125d2565b90508415610c8257610c7d6001836125ea565b610c84565b815b67ffffffffffffffff811115610c9c57610c9c6127b8565b604051908082528060200260200182016040528015610cc5578160200160208202803683370190505b50602087018190525167ffffffffffffffff811115610ce657610ce66127b8565b604051908082528060200260200182016040528015610d0f578160200160208202803683370190505b50604087015260208601515167ffffffffffffffff811115610d3357610d336127b8565b604051908082528060200260200182016040528015610d5c578160200160208202803683370190505b5060608701526000805b8381101561110b576000806000610d7d8d87611b9b565b92509250925060008e60060160008585604051602001610db492919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610ff2576001810154600160e01b900463ffffffff1615610e4f5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016101be565b8b6020015151861415610eca5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101be565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b039092169188908110610f2357610f23612601565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b90920467ffffffffffffffff169188908110610f6857610f68612601565b6020026020010181815250508b604001518681518110610f8a57610f8a612601565b60200260200101518c600001818151610fa391906125d2565b905250600181015460608d01518051600160a01b90920467ffffffffffffffff169188908110610fd557610fd5612601565b602090810291909101015285610fea81612617565b9650506110e8565b8915158b15151415801561100657508c5184145b156110a0578c6040015167ffffffffffffffff168c60000181815161102b91906125d2565b915081815250506001995060018f6011016000868660405160200161106792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790556110e8565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016101be565b6110f282886125d2565b965050505050808061110390612617565b915050610d66565b50600081116111825760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016101be565b841515861515146111fb5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101be565b5050505050509392505050565b6000808061121685876125ea565b90506112228482612857565b91508361122f83836125ea565b611239919061286b565b925050935093915050565b60008060006112528461166e565b9092509050801580611265575060001982145b15611274575060009392505050565b60006112818360016125d2565b905060005b828110156112e757855182106112a25750600095945050505050565b60006112ae8784611bf3565b90506000198114156112c7575060009695505050505050565b6112d181846125d2565b92505080806112df90612617565b915050611286565b5093519093149392505050565b60008060006113028461166e565b9092509050801580611315575060001982145b15611324575060009392505050565b60006113318360016125d2565b905060005b828110156112e757855182106113525750600095945050505050565b600061135e8784611c47565b9050600019811415611377575060009695505050505050565b61138181846125d2565b925050808061138f90612617565b915050611336565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b600083851480156113dc575081155b80156113e757508251155b156113f457506001611403565b61140085848685611cad565b90505b949350505050565b60008061141f61141a85611d55565b611dea565b835190915081141561143457825191506114ba565b826020015181141561144c57826020015191506114ba565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016101be565b60006114c585611e12565b905060001981141561153f5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016101be565b6001198114156115915760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016101be565b6002198114156115e35760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016101be565b60408401516115f2908461287f565b8110156116675760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016101be565b5050505050565b60008061167c836000612019565b91509150915091565b60606000806116938561166e565b90925090506000198214156117105760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016101be565b80841061175f5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016101be565b60008061176d8460016125d2565b905060005b868110156117f6576117848883611c47565b92506000198314156117d85760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101be565b6117e283836125d2565b9150806117ee81612617565b915050611772565b506118018782611c47565b91506000198214156118555760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101be565b611860878284612197565b979650505050505050565b60008061187783612261565b60c01c905060006114038264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60606000826008815181106118f9576118f9612601565b0160200151835160f89190911c915061191382600961289e565b60ff1614611931575050604080516020810190915260008152919050565b8260098151811061194457611944612601565b016020015160f81c6119e25760028160ff161015611972575050604080516020810190915260008152919050565b600083600a8151811061198757611987612601565b016020015160f81c905061199c6002836128c3565b60ff16811415806119ba5750806020141580156119ba575080601414155b156119d657505060408051602081019091526000815292915050565b61140384600b83612197565b60006119ef846008612269565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611ae75783600b81518110611a4e57611a4e612601565b60209101015160f81c6014141580611abe5750611a7960028551611a7291906125ea565b8590612269565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15611ada57505060408051602081019091526000815292915050565b61140384600c6014612197565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611b84578360018551611b4091906125ea565b81518110611b5057611b50612601565b60209101015160f81c608714611b7757505060408051602081019091526000815292915050565b61140384600b6014612197565b505050604080516020810190915260008152919050565b60008080611ba98585612269565b9250611bde611bb88686612278565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9150611bea8585611bf3565b90509250925092565b6000806000611c02858561228f565b9092509050600019821415611c1d57600019925050506113c7565b80611c298360256125d2565b611c3391906125d2565b611c3e9060046125d2565b95945050505050565b6000611c548260096125d2565b83511015611c6557506000196113c7565b600080611c7c85611c778660086125d2565b612019565b9092509050600019821415611c9757600019925050506113c7565b80611ca38360096125d2565b611c3e91906125d2565b600060208451611cbd9190612857565b15611cca57506000611403565b8351611cd857506000611403565b818560005b8651811015611d4857611cf1600284612857565b60011415611d1657611d0f611d098883016020015190565b836122d1565b9150611d2f565b611d2c82611d278984016020015190565b6122d1565b91505b60019290921c91611d416020826125d2565b9050611cdd565b5090931495945050505050565b600080611d63836048612269565b60e81c9050600083604b81518110611d7d57611d7d612601565b016020015160f81c90506000611db183600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611dc56003846128c3565b60ff169050611dd6816101006129ca565b611de0908361287f565b9695505050505050565b60006113c77bffff0000000000000000000000000000000000000000000000000000836122dd565b600060508251611e229190612857565b15611e305750600019919050565b506040805160808101909152605081526000908190815b845181101561201157611e5b8583836122e9565b8015611e7b57611e6b8284612388565b611e7b5750600119949350505050565b6000611e8683611d55565b9050611e9183611397565b935080611fd58560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115611fe8575060021995945050505050565b611ffb611ff482611dea565b86906123b1565b945061200a90506050826125d2565b9050611e47565b505050919050565b6000806000612028858561240f565b905060ff811661205a57600085858151811061204657612046612601565b016020015190935060f81c91506121909050565b8361206682600161289e565b60ff1661207391906125d2565b8551101561208a5760001960009250925050612190565b60008160ff16600214156120cf576120c46120b06120a98760016125d2565b8890612269565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612186565b8160ff16600414156120f9576120ec611bb86120a98760016125d2565b63ffffffff169050612186565b8160ff1660081415612186576121796121166120a98760016125d2565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6060816121b357506040805160208101909152600081526108c2565b60006121bf83856125d2565b905083811180156121d1575080855110155b61221d5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101be565b604051915082604083010160405282825283850182038460208701018481015b808210156122565781518383015260208201915061223d565b505050509392505050565b60006113c782825b60006108c28383016020015190565b60006108c26122888360206125d2565b8490612269565b60008061229d8360256125d2565b845110156122b2575060001990506000612190565b6000806122c486611c778760246125d2565b9097909650945050505050565b60006108c2838361249b565b60006108c2828461286b565b815160006122f782846125d2565b90508281118015612309575080855110155b6123555760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101be565b826020860101602085018382015b8083101561237e578251825260209283019290910190612363565b5050505050505050565b600080612394846124c9565b90508281146123a75760009150506113c7565b5060019392505050565b60006123bd82846125d2565b9050828110156113c75760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016101be565b600082828151811061242357612423612601565b60209101015160f81c60ff141561243c575060086113c7565b82828151811061244e5761244e612601565b60209101015160f81c60fe1415612467575060046113c7565b82828151811061247957612479612601565b60209101015160f81c60fd1415612492575060026113c7565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906113c7565b6000606082840312156124e857600080fd5b50919050565b60008060008060c0858703121561250457600080fd5b84359350602085013567ffffffffffffffff8082111561252357600080fd5b908601906080828903121561253757600080fd5b9093506040860135908082111561254d57600080fd5b5061255a878288016124d6565b92505061256a86606087016124d6565b905092959194509250565b6000808335601e1984360301811261258c57600080fd5b83018035915067ffffffffffffffff8211156125a757600080fd5b60200191503681900382131561219057600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156125e5576125e56125bc565b500190565b6000828210156125fc576125fc6125bc565b500390565b634e487b7160e01b600052603260045260246000fd5b600060001982141561262b5761262b6125bc565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156126745781516001600160a01b03168452928401929084019060010161264f565b5050508381038285015284518082528583019183019060005b818110156126a95783518352928401929184019160010161268d565b5090979650505050505050565b6000602082840312156126c857600080fd5b5051919050565b6000602082840312156126e157600080fd5b81356001600160e01b0319811681146108c257600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052602160045260246000fd5b803563ffffffff8116811461276557600080fd5b919050565b60006020828403121561277c57600080fd5b6108c282612751565b803567ffffffffffffffff8116811461276557600080fd5b6000602082840312156127af57600080fd5b6108c282612785565b634e487b7160e01b600052604160045260246000fd5b6000606082840312156127e057600080fd5b6040516060810181811067ffffffffffffffff8211171561281157634e487b7160e01b600052604160045260246000fd5b6040528235815261282460208401612751565b602082015261283560408401612785565b60408201529392505050565b634e487b7160e01b600052601260045260246000fd5b60008261286657612866612841565b500690565b60008261287a5761287a612841565b500490565b6000816000190483118215151615612899576128996125bc565b500290565b600060ff821660ff84168060ff038211156128bb576128bb6125bc565b019392505050565b600060ff821660ff8416808210156128dd576128dd6125bc565b90039392505050565b600181815b80851115612921578160001904821115612907576129076125bc565b8085161561291457918102915b93841c93908002906128eb565b509250929050565b600082612938575060016113c7565b81612945575060006113c7565b816001811461295b576002811461296557612981565b60019150506113c7565b60ff841115612976576129766125bc565b50506001821b6113c7565b5060208310610133831016604e8410600b84101617156129a4575081810a6113c7565b6129ae83836128e6565b80600019048211156129c2576129c26125bc565b029392505050565b60006108c2838361292956fea2646970667358221220599e78fe97176199bad5b05f48e93da526c5ee385cc06ef52f3a643cac7e5f9964736f6c63430008090033",
|
|
27
|
-
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063510fc50a1461003a575b600080fd5b81801561004657600080fd5b5061005a6100553660046124ee565b61005c565b005b6000610071848461006c8861048d565b6105d8565b90506000806100c06100866040880188612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506108c992505050565b915091506000806100d28985886109fc565b909250905060006101268a6100ea60208c018c612575565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250610c1c915050565b90506000808061014a84600001518867ffffffffffffffff16866040015151611208565b60058f0154919350915068010000000000000000900467ffffffffffffffff1661017482846125d2565b11156101c75760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064015b60405180910390fd5b60005b8460400151518110156102b557600060018660400151516101eb91906125ea565b82146101f75783610201565b61020183856125d2565b9050808660600151838151811061021a5761021a612601565b60200260200101518760400151848151811061023857610238612601565b602002602001015161024a91906125ea565b61025491906125ea565b8660400151838151811061026a5761026a612601565b6020026020010181815250508560600151828151811061028c5761028c612601565b60200260200101518561029f91906125d2565b94505080806102ad90612617565b9150506101ca565b5060408051602081018b90526000918101919091527fffffffffffffffff00000000000000000000000000000000000000000000000060c089901b166044820152604c0160408051808303601f19018152828252805160209182012060018a01556bffffffffffffffffffffffff198b16835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a18c54602085015160408087015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b039093169263266a123a926103aa929091600401612632565b600060405180830381600087803b1580156103c457600080fd5b505af11580156103d8573d6000803e3d6000fd5b505050508c60000160009054906101000a90046001600160a01b03166001600160a01b0316635b86f5998e60040160009054906101000a90046001600160a01b0316856040518363ffffffff1660e01b815260040161044c9291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561046657600080fd5b505af115801561047a573d6000803e3d6000fd5b5050505050505050505050505050505050565b6104b160405180606001604052806000815260200160008152602001600081525090565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691829163113764be916004808301926020929190829003018186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a91906126b6565b826000018181525050806001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561058c57600080fd5b505afa1580156105a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105c491906126b6565b602083015250600390910154604082015290565b60006106246105ea6020860186612575565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061124492505050565b6106705760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016101be565b6106ba6106806040860186612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112f492505050565b6107065760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016101be565b61076961071660208601866126cf565b6107236020870187612575565b6107306040890189612575565b61074060808b0160608c016126cf565b604051602001610755969594939291906126f9565b604051602081830303815290604052611397565b90506108046107b861077e6040860186612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506113be92505050565b6107c28580612575565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508694939250505060208701356113cd565b6108765760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016101be565b6108c26108866040850185612575565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086925061140b915050565b9392505050565b60008060006108d78461166e565b915050806001146109505760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016101be565b600061095c8582611685565b90506109678161186b565b92506000610974826118e2565b905080516014146109ed5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016101be565b60208101519450505050915091565b604080516060810182526000808252602082018190529181018290526bffffffffffffffffffffffff198416600090815260148601602052604090206002810154909250700100000000000000000000000000000000900460ff166001816004811115610a6b57610a6b61273b565b1480610a8857506002816004811115610a8657610a8661273b565b145b610afa5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084016101be565b604080516060810182526000808252602082018190529181019190915260018401549092508015610c1257808535610b38604088016020890161276a565b610b486060890160408a0161279d565b604051602001610b9d9392919092835260e09190911b6001600160e01b031916602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610c005760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101be565b610c0f368690038601866127ce565b92505b5050935093915050565b610c476040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080610c588761166e565b90925090506000610c6a8360016125d2565b90508415610c8257610c7d6001836125ea565b610c84565b815b67ffffffffffffffff811115610c9c57610c9c6127b8565b604051908082528060200260200182016040528015610cc5578160200160208202803683370190505b50602087018190525167ffffffffffffffff811115610ce657610ce66127b8565b604051908082528060200260200182016040528015610d0f578160200160208202803683370190505b50604087015260208601515167ffffffffffffffff811115610d3357610d336127b8565b604051908082528060200260200182016040528015610d5c578160200160208202803683370190505b5060608701526000805b8381101561110b576000806000610d7d8d87611b9b565b92509250925060008e60060160008585604051602001610db492919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610ff2576001810154600160e01b900463ffffffff1615610e4f5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016101be565b8b6020015151861415610eca5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101be565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b039092169188908110610f2357610f23612601565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b90920467ffffffffffffffff169188908110610f6857610f68612601565b6020026020010181815250508b604001518681518110610f8a57610f8a612601565b60200260200101518c600001818151610fa391906125d2565b905250600181015460608d01518051600160a01b90920467ffffffffffffffff169188908110610fd557610fd5612601565b602090810291909101015285610fea81612617565b9650506110e8565b8915158b15151415801561100657508c5184145b156110a0578c6040015167ffffffffffffffff168c60000181815161102b91906125d2565b915081815250506001995060018f6011016000868660405160200161106792919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff19169115159190911790556110e8565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016101be565b6110f282886125d2565b965050505050808061110390612617565b915050610d66565b50600081116111825760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016101be565b841515861515146111fb5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101be565b5050505050509392505050565b6000808061121685876125ea565b90506112228482612857565b91508361122f83836125ea565b611239919061286b565b925050935093915050565b60008060006112528461166e565b9092509050801580611265575060001982145b15611274575060009392505050565b60006112818360016125d2565b905060005b828110156112e757855182106112a25750600095945050505050565b60006112ae8784611bf3565b90506000198114156112c7575060009695505050505050565b6112d181846125d2565b92505080806112df90612617565b915050611286565b5093519093149392505050565b60008060006113028461166e565b9092509050801580611315575060001982145b15611324575060009392505050565b60006113318360016125d2565b905060005b828110156112e757855182106113525750600095945050505050565b600061135e8784611c47565b9050600019811415611377575060009695505050505050565b61138181846125d2565b925050808061138f90612617565b915050611336565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b600083851480156113dc575081155b80156113e757508251155b156113f457506001611403565b61140085848685611cad565b90505b949350505050565b60008061141f61141a85611d55565b611dea565b835190915081141561143457825191506114ba565b826020015181141561144c57826020015191506114ba565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016101be565b60006114c585611e12565b905060001981141561153f5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016101be565b6001198114156115915760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016101be565b6002198114156115e35760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016101be565b60408401516115f2908461287f565b8110156116675760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016101be565b5050505050565b60008061167c836000612019565b91509150915091565b60606000806116938561166e565b90925090506000198214156117105760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016101be565b80841061175f5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016101be565b60008061176d8460016125d2565b905060005b868110156117f6576117848883611c47565b92506000198314156117d85760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101be565b6117e283836125d2565b9150806117ee81612617565b915050611772565b506118018782611c47565b91506000198214156118555760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101be565b611860878284612197565b979650505050505050565b60008061187783612261565b60c01c905060006114038264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60606000826008815181106118f9576118f9612601565b0160200151835160f89190911c915061191382600961289e565b60ff1614611931575050604080516020810190915260008152919050565b8260098151811061194457611944612601565b016020015160f81c6119e25760028160ff161015611972575050604080516020810190915260008152919050565b600083600a8151811061198757611987612601565b016020015160f81c905061199c6002836128c3565b60ff16811415806119ba5750806020141580156119ba575080601414155b156119d657505060408051602081019091526000815292915050565b61140384600b83612197565b60006119ef846008612269565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611ae75783600b81518110611a4e57611a4e612601565b60209101015160f81c6014141580611abe5750611a7960028551611a7291906125ea565b8590612269565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15611ada57505060408051602081019091526000815292915050565b61140384600c6014612197565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611b84578360018551611b4091906125ea565b81518110611b5057611b50612601565b60209101015160f81c608714611b7757505060408051602081019091526000815292915050565b61140384600b6014612197565b505050604080516020810190915260008152919050565b60008080611ba98585612269565b9250611bde611bb88686612278565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9150611bea8585611bf3565b90509250925092565b6000806000611c02858561228f565b9092509050600019821415611c1d57600019925050506113c7565b80611c298360256125d2565b611c3391906125d2565b611c3e9060046125d2565b95945050505050565b6000611c548260096125d2565b83511015611c6557506000196113c7565b600080611c7c85611c778660086125d2565b612019565b9092509050600019821415611c9757600019925050506113c7565b80611ca38360096125d2565b611c3e91906125d2565b600060208451611cbd9190612857565b15611cca57506000611403565b8351611cd857506000611403565b818560005b8651811015611d4857611cf1600284612857565b60011415611d1657611d0f611d098883016020015190565b836122d1565b9150611d2f565b611d2c82611d278984016020015190565b6122d1565b91505b60019290921c91611d416020826125d2565b9050611cdd565b5090931495945050505050565b600080611d63836048612269565b60e81c9050600083604b81518110611d7d57611d7d612601565b016020015160f81c90506000611db183600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611dc56003846128c3565b60ff169050611dd6816101006129ca565b611de0908361287f565b9695505050505050565b60006113c77bffff0000000000000000000000000000000000000000000000000000836122dd565b600060508251611e229190612857565b15611e305750600019919050565b506040805160808101909152605081526000908190815b845181101561201157611e5b8583836122e9565b8015611e7b57611e6b8284612388565b611e7b5750600119949350505050565b6000611e8683611d55565b9050611e9183611397565b935080611fd58560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115611fe8575060021995945050505050565b611ffb611ff482611dea565b86906123b1565b945061200a90506050826125d2565b9050611e47565b505050919050565b6000806000612028858561240f565b905060ff811661205a57600085858151811061204657612046612601565b016020015190935060f81c91506121909050565b8361206682600161289e565b60ff1661207391906125d2565b8551101561208a5760001960009250925050612190565b60008160ff16600214156120cf576120c46120b06120a98760016125d2565b8890612269565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612186565b8160ff16600414156120f9576120ec611bb86120a98760016125d2565b63ffffffff169050612186565b8160ff1660081415612186576121796121166120a98760016125d2565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b6060816121b357506040805160208101909152600081526108c2565b60006121bf83856125d2565b905083811180156121d1575080855110155b61221d5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101be565b604051915082604083010160405282825283850182038460208701018481015b808210156122565781518383015260208201915061223d565b505050509392505050565b60006113c782825b60006108c28383016020015190565b60006108c26122888360206125d2565b8490612269565b60008061229d8360256125d2565b845110156122b2575060001990506000612190565b6000806122c486611c778760246125d2565b9097909650945050505050565b60006108c2838361249b565b60006108c2828461286b565b815160006122f782846125d2565b90508281118015612309575080855110155b6123555760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101be565b826020860101602085018382015b8083101561237e578251825260209283019290910190612363565b5050505050505050565b600080612394846124c9565b90508281146123a75760009150506113c7565b5060019392505050565b60006123bd82846125d2565b9050828110156113c75760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016101be565b600082828151811061242357612423612601565b60209101015160f81c60ff141561243c575060086113c7565b82828151811061244e5761244e612601565b60209101015160f81c60fe1415612467575060046113c7565b82828151811061247957612479612601565b60209101015160f81c60fd1415612492575060026113c7565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b60248101516000906113c7565b6000606082840312156124e857600080fd5b50919050565b60008060008060c0858703121561250457600080fd5b84359350602085013567ffffffffffffffff8082111561252357600080fd5b908601906080828903121561253757600080fd5b9093506040860135908082111561254d57600080fd5b5061255a878288016124d6565b92505061256a86606087016124d6565b905092959194509250565b6000808335601e1984360301811261258c57600080fd5b83018035915067ffffffffffffffff8211156125a757600080fd5b60200191503681900382131561219057600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156125e5576125e56125bc565b500190565b6000828210156125fc576125fc6125bc565b500390565b634e487b7160e01b600052603260045260246000fd5b600060001982141561262b5761262b6125bc565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156126745781516001600160a01b03168452928401929084019060010161264f565b5050508381038285015284518082528583019183019060005b818110156126a95783518352928401929184019160010161268d565b5090979650505050505050565b6000602082840312156126c857600080fd5b5051919050565b6000602082840312156126e157600080fd5b81356001600160e01b0319811681146108c257600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052602160045260246000fd5b803563ffffffff8116811461276557600080fd5b919050565b60006020828403121561277c57600080fd5b6108c282612751565b803567ffffffffffffffff8116811461276557600080fd5b6000602082840312156127af57600080fd5b6108c282612785565b634e487b7160e01b600052604160045260246000fd5b6000606082840312156127e057600080fd5b6040516060810181811067ffffffffffffffff8211171561281157634e487b7160e01b600052604160045260246000fd5b6040528235815261282460208401612751565b602082015261283560408401612785565b60408201529392505050565b634e487b7160e01b600052601260045260246000fd5b60008261286657612866612841565b500690565b60008261287a5761287a612841565b500490565b6000816000190483118215151615612899576128996125bc565b500290565b600060ff821660ff84168060ff038211156128bb576128bb6125bc565b019392505050565b600060ff821660ff8416808210156128dd576128dd6125bc565b90039392505050565b600181815b80851115612921578160001904821115612907576129076125bc565b8085161561291457918102915b93841c93908002906128eb565b509250929050565b600082612938575060016113c7565b81612945575060006113c7565b816001811461295b576002811461296557612981565b60019150506113c7565b60ff841115612976576129766125bc565b50506001821b6113c7565b5060208310610133831016604e8410600b84101617156129a4575081810a6113c7565b6129ae83836128e6565b80600019048211156129c2576129c26125bc565b029392505050565b60006108c2838361292956fea2646970667358221220599e78fe97176199bad5b05f48e93da526c5ee385cc06ef52f3a643cac7e5f9964736f6c63430008090033",
|
|
26
|
+
"bytecode": "0x6129ad61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063510fc50a1461003a575b600080fd5b81801561004657600080fd5b5061005a61005536600461248f565b61005c565b005b6000610069858585610485565b90506000806100b861007e6040880188612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061077592505050565b915091506000806100ca8985886108a8565b9092509050600061011e8a6100e260208c018c612516565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250610abb915050565b90506000808061014284600001518867ffffffffffffffff168660400151516110a7565b60058f0154919350915068010000000000000000900467ffffffffffffffff1661016c8284612573565b11156101bf5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064015b60405180910390fd5b60005b8460400151518110156102ad57600060018660400151516101e3919061258b565b82146101ef57836101f9565b6101f98385612573565b90508086606001518381518110610212576102126125a2565b602002602001015187604001518481518110610230576102306125a2565b6020026020010151610242919061258b565b61024c919061258b565b86604001518381518110610262576102626125a2565b60200260200101818152505085606001518281518110610284576102846125a2565b6020026020010151856102979190612573565b94505080806102a5906125b8565b9150506101c2565b5060408051602081018b90526000918101919091527fffffffffffffffff00000000000000000000000000000000000000000000000060c089901b166044820152604c0160408051808303601f19018152828252805160209182012060018a01556bffffffffffffffffffffffff198b16835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a18c54602085015160408087015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b039093169263266a123a926103a29290916004016125d3565b600060405180830381600087803b1580156103bc57600080fd5b505af11580156103d0573d6000803e3d6000fd5b505050508c60000160009054906101000a90046001600160a01b03166001600160a01b0316635b86f5998e60040160009054906101000a90046001600160a01b0316856040518363ffffffff1660e01b81526004016104449291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561045e57600080fd5b505af1158015610472573d6000803e3d6000fd5b5050505050505050505050505050505050565b60006104d16104976020850185612516565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e392505050565b61051d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016101b6565b61056761052d6040850185612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061119392505050565b6105b35760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016101b6565b6106166105c36020850185612657565b6105d06020860186612516565b6105dd6040880188612516565b6105ed60808a0160608b01612657565b60405160200161060296959493929190612681565b604051602081830303815290604052611236565b90506106b161066561062b6040850185612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061125d92505050565b61066f8480612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086949392505050602086013561126c565b6107235760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016101b6565b61076e846107346040850185612516565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112aa92505050565b9392505050565b600080600061078384611619565b915050806001146107fc5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016101b6565b60006108088582611630565b905061081381611816565b925060006108208261188d565b905080516014146108995760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016101b6565b60208101519450505050915091565b604080516060810182526000808252602082018190529181018290526bffffffffffffffffffffffff198416600090815260158601602052604090206002810154909250600160a01b900460ff16600181600581111561090a5761090a6126c3565b148061092757506002816005811115610925576109256126c3565b145b6109995760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084016101b6565b604080516060810182526000808252602082018190529181019190915260018401549092508015610ab1578085356109d760408801602089016126f2565b6109e76060890160408a01612725565b604051602001610a3c9392919092835260e09190911b6001600160e01b031916602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610a9f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101b6565b610aae36869003860186612756565b92505b5050935093915050565b610ae66040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080610af787611619565b90925090506000610b09836001612573565b90508415610b2157610b1c60018361258b565b610b23565b815b67ffffffffffffffff811115610b3b57610b3b612740565b604051908082528060200260200182016040528015610b64578160200160208202803683370190505b50602087018190525167ffffffffffffffff811115610b8557610b85612740565b604051908082528060200260200182016040528015610bae578160200160208202803683370190505b50604087015260208601515167ffffffffffffffff811115610bd257610bd2612740565b604051908082528060200260200182016040528015610bfb578160200160208202803683370190505b5060608701526000805b83811015610faa576000806000610c1c8d87611b46565b92509250925060008e60060160008585604051602001610c5392919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610e91576001810154600160e01b900463ffffffff1615610cee5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016101b6565b8b6020015151861415610d695760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101b6565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b039092169188908110610dc257610dc26125a2565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b90920467ffffffffffffffff169188908110610e0757610e076125a2565b6020026020010181815250508b604001518681518110610e2957610e296125a2565b60200260200101518c600001818151610e429190612573565b905250600181015460608d01518051600160a01b90920467ffffffffffffffff169188908110610e7457610e746125a2565b602090810291909101015285610e89816125b8565b965050610f87565b8915158b151514158015610ea557508c5184145b15610f3f578c6040015167ffffffffffffffff168c600001818151610eca9190612573565b915081815250506001995060018f60120160008686604051602001610f0692919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff1916911515919091179055610f87565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016101b6565b610f918288612573565b9650505050508080610fa2906125b8565b915050610c05565b50600081116110215760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016101b6565b8415158615151461109a5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101b6565b5050505050509392505050565b600080806110b5858761258b565b90506110c184826127df565b9150836110ce838361258b565b6110d891906127f3565b925050935093915050565b60008060006110f184611619565b9092509050801580611104575060001982145b15611113575060009392505050565b6000611120836001612573565b905060005b8281101561118657855182106111415750600095945050505050565b600061114d8784611b9e565b9050600019811415611166575060009695505050505050565b6111708184612573565b925050808061117e906125b8565b915050611125565b5093519093149392505050565b60008060006111a184611619565b90925090508015806111b4575060001982145b156111c3575060009392505050565b60006111d0836001612573565b905060005b8281101561118657855182106111f15750600095945050505050565b60006111fd8784611bf2565b9050600019811415611216575060009695505050505050565b6112208184612573565b925050808061122e906125b8565b9150506111d5565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b6000838514801561127b575081155b801561128657508251155b15611293575060016112a2565b61129f85848685611c58565b90505b949350505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b15801561130f57600080fd5b505afa158015611323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113479190612807565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561138457600080fd5b505afa158015611398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bc9190612807565b90506000806113d26113cd87611d00565b611d95565b9050838114156113e457839150611462565b828114156113f457829150611462565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016101b6565b600061146d87611dbd565b90506000198114156114e75760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016101b6565b6001198114156115395760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016101b6565b60021981141561158b5760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016101b6565b600388015461159a9084612820565b81101561160f5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016101b6565b5050505050505050565b600080611627836000611fc4565b91509150915091565b606060008061163e85611619565b90925090506000198214156116bb5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016101b6565b80841061170a5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016101b6565b600080611718846001612573565b905060005b868110156117a15761172f8883611bf2565b92506000198314156117835760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101b6565b61178d8383612573565b915080611799816125b8565b91505061171d565b506117ac8782611bf2565b91506000198214156118005760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101b6565b61180b878284612142565b979650505050505050565b6000806118228361220c565b60c01c905060006112a28264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60606000826008815181106118a4576118a46125a2565b0160200151835160f89190911c91506118be82600961283f565b60ff16146118dc575050604080516020810190915260008152919050565b826009815181106118ef576118ef6125a2565b016020015160f81c61198d5760028160ff16101561191d575050604080516020810190915260008152919050565b600083600a81518110611932576119326125a2565b016020015160f81c9050611947600283612864565b60ff1681141580611965575080602014158015611965575080601414155b1561198157505060408051602081019091526000815292915050565b6112a284600b83612142565b600061199a846008612214565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611a925783600b815181106119f9576119f96125a2565b60209101015160f81c6014141580611a695750611a2460028551611a1d919061258b565b8590612214565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15611a8557505060408051602081019091526000815292915050565b6112a284600c6014612142565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611b2f578360018551611aeb919061258b565b81518110611afb57611afb6125a2565b60209101015160f81c608714611b2257505060408051602081019091526000815292915050565b6112a284600b6014612142565b505050604080516020810190915260008152919050565b60008080611b548585612214565b9250611b89611b638686612223565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9150611b958585611b9e565b90509250925092565b6000806000611bad858561223a565b9092509050600019821415611bc85760001992505050611266565b80611bd4836025612573565b611bde9190612573565b611be9906004612573565b95945050505050565b6000611bff826009612573565b83511015611c105750600019611266565b600080611c2785611c22866008612573565b611fc4565b9092509050600019821415611c425760001992505050611266565b80611c4e836009612573565b611be99190612573565b600060208451611c6891906127df565b15611c75575060006112a2565b8351611c83575060006112a2565b818560005b8651811015611cf357611c9c6002846127df565b60011415611cc157611cba611cb48883016020015190565b8361227c565b9150611cda565b611cd782611cd28984016020015190565b61227c565b91505b60019290921c91611cec602082612573565b9050611c88565b5090931495945050505050565b600080611d0e836048612214565b60e81c9050600083604b81518110611d2857611d286125a2565b016020015160f81c90506000611d5c83600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611d70600384612864565b60ff169050611d818161010061296b565b611d8b9083612820565b9695505050505050565b60006112667bffff000000000000000000000000000000000000000000000000000083612288565b600060508251611dcd91906127df565b15611ddb5750600019919050565b506040805160808101909152605081526000908190815b8451811015611fbc57611e06858383612294565b8015611e2657611e168284612329565b611e265750600119949350505050565b6000611e3183611d00565b9050611e3c83611236565b935080611f808560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115611f93575060021995945050505050565b611fa6611f9f82611d95565b8690612352565b9450611fb59050605082612573565b9050611df2565b505050919050565b6000806000611fd385856123b0565b905060ff8116612005576000858581518110611ff157611ff16125a2565b016020015190935060f81c915061213b9050565b8361201182600161283f565b60ff1661201e9190612573565b85511015612035576000196000925092505061213b565b60008160ff166002141561207a5761206f61205b612054876001612573565b8890612214565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612131565b8160ff16600414156120a457612097611b63612054876001612573565b63ffffffff169050612131565b8160ff1660081415612131576121246120c1612054876001612573565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b60608161215e575060408051602081019091526000815261076e565b600061216a8385612573565b9050838111801561217c575080855110155b6121c85760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101b6565b604051915082604083010160405282825283850182038460208701018481015b80821015612201578151838301526020820191506121e8565b505050509392505050565b600061126682825b600061076e8383016020015190565b600061076e612233836020612573565b8490612214565b600080612248836025612573565b8451101561225d57506000199050600061213b565b60008061226f86611c22876024612573565b9097909650945050505050565b600061076e838361243c565b600061076e82846127f3565b815160006122a28284612573565b905082811180156122b4575080855110155b6123005760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101b6565b826020860101602085018382015b8083101561160f57825182526020928301929091019061230e565b6000806123358461246a565b9050828114612348576000915050611266565b5060019392505050565b600061235e8284612573565b9050828110156112665760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016101b6565b60008282815181106123c4576123c46125a2565b60209101015160f81c60ff14156123dd57506008611266565b8282815181106123ef576123ef6125a2565b60209101015160f81c60fe141561240857506004611266565b82828151811061241a5761241a6125a2565b60209101015160f81c60fd141561243357506002611266565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611266565b60006060828403121561248957600080fd5b50919050565b60008060008060c085870312156124a557600080fd5b84359350602085013567ffffffffffffffff808211156124c457600080fd5b90860190608082890312156124d857600080fd5b909350604086013590808211156124ee57600080fd5b506124fb87828801612477565b92505061250b8660608701612477565b905092959194509250565b6000808335601e1984360301811261252d57600080fd5b83018035915067ffffffffffffffff82111561254857600080fd5b60200191503681900382131561213b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156125865761258661255d565b500190565b60008282101561259d5761259d61255d565b500390565b634e487b7160e01b600052603260045260246000fd5b60006000198214156125cc576125cc61255d565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156126155781516001600160a01b0316845292840192908401906001016125f0565b5050508381038285015284518082528583019183019060005b8181101561264a5783518352928401929184019160010161262e565b5090979650505050505050565b60006020828403121561266957600080fd5b81356001600160e01b03198116811461076e57600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052602160045260246000fd5b803563ffffffff811681146126ed57600080fd5b919050565b60006020828403121561270457600080fd5b61076e826126d9565b803567ffffffffffffffff811681146126ed57600080fd5b60006020828403121561273757600080fd5b61076e8261270d565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561276857600080fd5b6040516060810181811067ffffffffffffffff8211171561279957634e487b7160e01b600052604160045260246000fd5b604052823581526127ac602084016126d9565b60208201526127bd6040840161270d565b60408201529392505050565b634e487b7160e01b600052601260045260246000fd5b6000826127ee576127ee6127c9565b500690565b600082612802576128026127c9565b500490565b60006020828403121561281957600080fd5b5051919050565b600081600019048311821515161561283a5761283a61255d565b500290565b600060ff821660ff84168060ff0382111561285c5761285c61255d565b019392505050565b600060ff821660ff84168082101561287e5761287e61255d565b90039392505050565b600181815b808511156128c25781600019048211156128a8576128a861255d565b808516156128b557918102915b93841c939080029061288c565b509250929050565b6000826128d957506001611266565b816128e657506000611266565b81600181146128fc576002811461290657612922565b6001915050611266565b60ff8411156129175761291761255d565b50506001821b611266565b5060208310610133831016604e8410600b8410161715612945575081810a611266565b61294f8383612887565b80600019048211156129635761296361255d565b029392505050565b600061076e83836128ca56fea2646970667358221220bff2e098031d75506afc3b649fd277da7e6525c48feb060bdccce1cad095a5b364736f6c63430008090033",
|
|
27
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063510fc50a1461003a575b600080fd5b81801561004657600080fd5b5061005a61005536600461248f565b61005c565b005b6000610069858585610485565b90506000806100b861007e6040880188612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061077592505050565b915091506000806100ca8985886108a8565b9092509050600061011e8a6100e260208c018c612516565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879250610abb915050565b90506000808061014284600001518867ffffffffffffffff168660400151516110a7565b60058f0154919350915068010000000000000000900467ffffffffffffffff1661016c8284612573565b11156101bf5760405162461bcd60e51b815260206004820152601b60248201527f5472616e73616374696f6e2066656520697320746f6f2068696768000000000060448201526064015b60405180910390fd5b60005b8460400151518110156102ad57600060018660400151516101e3919061258b565b82146101ef57836101f9565b6101f98385612573565b90508086606001518381518110610212576102126125a2565b602002602001015187604001518481518110610230576102306125a2565b6020026020010151610242919061258b565b61024c919061258b565b86604001518381518110610262576102626125a2565b60200260200101818152505085606001518281518110610284576102846125a2565b6020026020010151856102979190612573565b94505080806102a5906125b8565b9150506101c2565b5060408051602081018b90526000918101919091527fffffffffffffffff00000000000000000000000000000000000000000000000060c089901b166044820152604c0160408051808303601f19018152828252805160209182012060018a01556bffffffffffffffffffffffff198b16835282018b90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a18c54602085015160408087015190517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b039093169263266a123a926103a29290916004016125d3565b600060405180830381600087803b1580156103bc57600080fd5b505af11580156103d0573d6000803e3d6000fd5b505050508c60000160009054906101000a90046001600160a01b03166001600160a01b0316635b86f5998e60040160009054906101000a90046001600160a01b0316856040518363ffffffff1660e01b81526004016104449291906001600160a01b03929092168252602082015260400190565b600060405180830381600087803b15801561045e57600080fd5b505af1158015610472573d6000803e3d6000fd5b5050505050505050505050505050505050565b60006104d16104976020850185612516565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506110e392505050565b61051d5760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016101b6565b61056761052d6040850185612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061119392505050565b6105b35760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016101b6565b6106166105c36020850185612657565b6105d06020860186612516565b6105dd6040880188612516565b6105ed60808a0160608b01612657565b60405160200161060296959493929190612681565b604051602081830303815290604052611236565b90506106b161066561062b6040850185612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061125d92505050565b61066f8480612516565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525086949392505050602086013561126c565b6107235760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016101b6565b61076e846107346040850185612516565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506112aa92505050565b9392505050565b600080600061078384611619565b915050806001146107fc5760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016101b6565b60006108088582611630565b905061081381611816565b925060006108208261188d565b905080516014146108995760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016101b6565b60208101519450505050915091565b604080516060810182526000808252602082018190529181018290526bffffffffffffffffffffffff198416600090815260158601602052604090206002810154909250600160a01b900460ff16600181600581111561090a5761090a6126c3565b148061092757506002816005811115610925576109256126c3565b145b6109995760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574206d75737420626520696e204c697665206f72204d6f76696e6760448201527f46756e647320737461746500000000000000000000000000000000000000000060648201526084016101b6565b604080516060810182526000808252602082018190529181019190915260018401549092508015610ab1578085356109d760408801602089016126f2565b6109e76060890160408a01612725565b604051602001610a3c9392919092835260e09190911b6001600160e01b031916602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610a9f5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016101b6565b610aae36869003860186612756565b92505b5050935093915050565b610ae66040518060800160405280600081526020016060815260200160608152602001606081525090565b8151151560008080610af787611619565b90925090506000610b09836001612573565b90508415610b2157610b1c60018361258b565b610b23565b815b67ffffffffffffffff811115610b3b57610b3b612740565b604051908082528060200260200182016040528015610b64578160200160208202803683370190505b50602087018190525167ffffffffffffffff811115610b8557610b85612740565b604051908082528060200260200182016040528015610bae578160200160208202803683370190505b50604087015260208601515167ffffffffffffffff811115610bd257610bd2612740565b604051908082528060200260200182016040528015610bfb578160200160208202803683370190505b5060608701526000805b83811015610faa576000806000610c1c8d87611b46565b92509250925060008e60060160008585604051602001610c5392919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610e91576001810154600160e01b900463ffffffff1615610cee5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016101b6565b8b6020015151861415610d695760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101b6565b6001810180547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b4263ffffffff1602179055805460208d015180516001600160a01b039092169188908110610dc257610dc26125a2565b6001600160a01b039290921660209283029190910190910152805460408d01518051600160a01b90920467ffffffffffffffff169188908110610e0757610e076125a2565b6020026020010181815250508b604001518681518110610e2957610e296125a2565b60200260200101518c600001818151610e429190612573565b905250600181015460608d01518051600160a01b90920467ffffffffffffffff169188908110610e7457610e746125a2565b602090810291909101015285610e89816125b8565b965050610f87565b8915158b151514158015610ea557508c5184145b15610f3f578c6040015167ffffffffffffffff168c600001818151610eca9190612573565b915081815250506001995060018f60120160008686604051602001610f0692919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f19018152918152815160209283012083529082019290925201600020805460ff1916911515919091179055610f87565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016101b6565b610f918288612573565b9650505050508080610fa2906125b8565b915050610c05565b50600081116110215760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016101b6565b8415158615151461109a5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016101b6565b5050505050509392505050565b600080806110b5858761258b565b90506110c184826127df565b9150836110ce838361258b565b6110d891906127f3565b925050935093915050565b60008060006110f184611619565b9092509050801580611104575060001982145b15611113575060009392505050565b6000611120836001612573565b905060005b8281101561118657855182106111415750600095945050505050565b600061114d8784611b9e565b9050600019811415611166575060009695505050505050565b6111708184612573565b925050808061117e906125b8565b915050611125565b5093519093149392505050565b60008060006111a184611619565b90925090508015806111b4575060001982145b156111c3575060009392505050565b60006111d0836001612573565b905060005b8281101561118657855182106111f15750600095945050505050565b60006111fd8784611bf2565b9050600019811415611216575060009695505050505050565b6112208184612573565b925050808061122e906125b8565b9150506111d5565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60448101516000905b92915050565b6000838514801561127b575081155b801561128657508251155b15611293575060016112a2565b61129f85848685611c58565b90505b949350505050565b6001820154604080517f113764be00000000000000000000000000000000000000000000000000000000815290516001600160a01b0390921691600091839163113764be91600480820192602092909190829003018186803b15801561130f57600080fd5b505afa158015611323573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113479190612807565b90506000826001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561138457600080fd5b505afa158015611398573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113bc9190612807565b90506000806113d26113cd87611d00565b611d95565b9050838114156113e457839150611462565b828114156113f457829150611462565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016101b6565b600061146d87611dbd565b90506000198114156114e75760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016101b6565b6001198114156115395760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016101b6565b60021981141561158b5760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016101b6565b600388015461159a9084612820565b81101561160f5760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016101b6565b5050505050505050565b600080611627836000611fc4565b91509150915091565b606060008061163e85611619565b90925090506000198214156116bb5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e6700000000000000000000000000000000000000000000000000000000000060648201526084016101b6565b80841061170a5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016101b6565b600080611718846001612573565b905060005b868110156117a15761172f8883611bf2565b92506000198314156117835760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101b6565b61178d8383612573565b915080611799816125b8565b91505061171d565b506117ac8782611bf2565b91506000198214156118005760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016101b6565b61180b878284612142565b979650505050505050565b6000806118228361220c565b60c01c905060006112a28264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b60606000826008815181106118a4576118a46125a2565b0160200151835160f89190911c91506118be82600961283f565b60ff16146118dc575050604080516020810190915260008152919050565b826009815181106118ef576118ef6125a2565b016020015160f81c61198d5760028160ff16101561191d575050604080516020810190915260008152919050565b600083600a81518110611932576119326125a2565b016020015160f81c9050611947600283612864565b60ff1681141580611965575080602014158015611965575080601414155b1561198157505060408051602081019091526000815292915050565b6112a284600b83612142565b600061199a846008612214565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611a925783600b815181106119f9576119f96125a2565b60209101015160f81c6014141580611a695750611a2460028551611a1d919061258b565b8590612214565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b15611a8557505060408051602081019091526000815292915050565b6112a284600c6014612142565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff000000000000000000000000000000000000000000000000000000000082161415611b2f578360018551611aeb919061258b565b81518110611afb57611afb6125a2565b60209101015160f81c608714611b2257505060408051602081019091526000815292915050565b6112a284600b6014612142565b505050604080516020810190915260008152919050565b60008080611b548585612214565b9250611b89611b638686612223565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b9150611b958585611b9e565b90509250925092565b6000806000611bad858561223a565b9092509050600019821415611bc85760001992505050611266565b80611bd4836025612573565b611bde9190612573565b611be9906004612573565b95945050505050565b6000611bff826009612573565b83511015611c105750600019611266565b600080611c2785611c22866008612573565b611fc4565b9092509050600019821415611c425760001992505050611266565b80611c4e836009612573565b611be99190612573565b600060208451611c6891906127df565b15611c75575060006112a2565b8351611c83575060006112a2565b818560005b8651811015611cf357611c9c6002846127df565b60011415611cc157611cba611cb48883016020015190565b8361227c565b9150611cda565b611cd782611cd28984016020015190565b61227c565b91505b60019290921c91611cec602082612573565b9050611c88565b5090931495945050505050565b600080611d0e836048612214565b60e81c9050600083604b81518110611d2857611d286125a2565b016020015160f81c90506000611d5c83600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000611d70600384612864565b60ff169050611d818161010061296b565b611d8b9083612820565b9695505050505050565b60006112667bffff000000000000000000000000000000000000000000000000000083612288565b600060508251611dcd91906127df565b15611ddb5750600019919050565b506040805160808101909152605081526000908190815b8451811015611fbc57611e06858383612294565b8015611e2657611e168284612329565b611e265750600119949350505050565b6000611e3183611d00565b9050611e3c83611236565b935080611f808560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b1115611f93575060021995945050505050565b611fa6611f9f82611d95565b8690612352565b9450611fb59050605082612573565b9050611df2565b505050919050565b6000806000611fd385856123b0565b905060ff8116612005576000858581518110611ff157611ff16125a2565b016020015190935060f81c915061213b9050565b8361201182600161283f565b60ff1661201e9190612573565b85511015612035576000196000925092505061213b565b60008160ff166002141561207a5761206f61205b612054876001612573565b8890612214565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612131565b8160ff16600414156120a457612097611b63612054876001612573565b63ffffffff169050612131565b8160ff1660081415612131576121246120c1612054876001612573565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b60608161215e575060408051602081019091526000815261076e565b600061216a8385612573565b9050838111801561217c575080855110155b6121c85760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101b6565b604051915082604083010160405282825283850182038460208701018481015b80821015612201578151838301526020820191506121e8565b505050509392505050565b600061126682825b600061076e8383016020015190565b600061076e612233836020612573565b8490612214565b600080612248836025612573565b8451101561225d57506000199050600061213b565b60008061226f86611c22876024612573565b9097909650945050505050565b600061076e838361243c565b600061076e82846127f3565b815160006122a28284612573565b905082811180156122b4575080855110155b6123005760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016101b6565b826020860101602085018382015b8083101561160f57825182526020928301929091019061230e565b6000806123358461246a565b9050828114612348576000915050611266565b5060019392505050565b600061235e8284612573565b9050828110156112665760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016101b6565b60008282815181106123c4576123c46125a2565b60209101015160f81c60ff14156123dd57506008611266565b8282815181106123ef576123ef6125a2565b60209101015160f81c60fe141561240857506004611266565b82828151811061241a5761241a6125a2565b60209101015160f81c60fd141561243357506002611266565b50600092915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611266565b60006060828403121561248957600080fd5b50919050565b60008060008060c085870312156124a557600080fd5b84359350602085013567ffffffffffffffff808211156124c457600080fd5b90860190608082890312156124d857600080fd5b909350604086013590808211156124ee57600080fd5b506124fb87828801612477565b92505061250b8660608701612477565b905092959194509250565b6000808335601e1984360301811261252d57600080fd5b83018035915067ffffffffffffffff82111561254857600080fd5b60200191503681900382131561213b57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156125865761258661255d565b500190565b60008282101561259d5761259d61255d565b500390565b634e487b7160e01b600052603260045260246000fd5b60006000198214156125cc576125cc61255d565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156126155781516001600160a01b0316845292840192908401906001016125f0565b5050508381038285015284518082528583019183019060005b8181101561264a5783518352928401929184019160010161262e565b5090979650505050505050565b60006020828403121561266957600080fd5b81356001600160e01b03198116811461076e57600080fd5b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b634e487b7160e01b600052602160045260246000fd5b803563ffffffff811681146126ed57600080fd5b919050565b60006020828403121561270457600080fd5b61076e826126d9565b803567ffffffffffffffff811681146126ed57600080fd5b60006020828403121561273757600080fd5b61076e8261270d565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561276857600080fd5b6040516060810181811067ffffffffffffffff8211171561279957634e487b7160e01b600052604160045260246000fd5b604052823581526127ac602084016126d9565b60208201526127bd6040840161270d565b60408201529392505050565b634e487b7160e01b600052601260045260246000fd5b6000826127ee576127ee6127c9565b500690565b600082612802576128026127c9565b500490565b60006020828403121561281957600080fd5b5051919050565b600081600019048311821515161561283a5761283a61255d565b500290565b600060ff821660ff84168060ff0382111561285c5761285c61255d565b019392505050565b600060ff821660ff84168082101561287e5761287e61255d565b90039392505050565b600181815b808511156128c25781600019048211156128a8576128a861255d565b808516156128b557918102915b93841c939080029061288c565b509250929050565b6000826128d957506001611266565b816128e657506000611266565b81600181146128fc576002811461290657612922565b6001915050611266565b60ff8411156129175761291761255d565b50506001821b611266565b5060208310610133831016604e8410600b8410161715612945575081810a611266565b61294f8383612887565b80600019048211156129635761296361255d565b029392505050565b600061076e83836128ca56fea2646970667358221220bff2e098031d75506afc3b649fd277da7e6525c48feb060bdccce1cad095a5b364736f6c63430008090033",
|
|
28
28
|
"linkReferences": {},
|
|
29
29
|
"deployedLinkReferences": {}
|
|
30
30
|
}
|
|
@@ -47,6 +47,25 @@
|
|
|
47
47
|
"name": "WalletClosed",
|
|
48
48
|
"type": "event"
|
|
49
49
|
},
|
|
50
|
+
{
|
|
51
|
+
"anonymous": false,
|
|
52
|
+
"inputs": [
|
|
53
|
+
{
|
|
54
|
+
"indexed": true,
|
|
55
|
+
"internalType": "bytes32",
|
|
56
|
+
"name": "ecdsaWalletID",
|
|
57
|
+
"type": "bytes32"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"indexed": true,
|
|
61
|
+
"internalType": "bytes20",
|
|
62
|
+
"name": "walletPubKeyHash",
|
|
63
|
+
"type": "bytes20"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
"name": "WalletClosing",
|
|
67
|
+
"type": "event"
|
|
68
|
+
},
|
|
50
69
|
{
|
|
51
70
|
"anonymous": false,
|
|
52
71
|
"inputs": [
|
|
@@ -86,8 +105,8 @@
|
|
|
86
105
|
"type": "event"
|
|
87
106
|
}
|
|
88
107
|
],
|
|
89
|
-
"bytecode": "
|
|
90
|
-
"deployedBytecode": "
|
|
108
|
+
"bytecode": "0x610fb261003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634afbe4c91461005b57806399b0b8471461007d578063c87de7f41461009d578063d079fbb1146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610d56565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610da0565b610305565b8180156100a957600080fd5b5061007b6100b8366004610df1565b610526565b8180156100c957600080fd5b5061007b6100d8366004610e1d565b61064c565b60028401546001600160a01b0316331461014e5760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b60648201526084015b60405180910390fd5b600061016261015d848461094b565b6109f5565b6bffffffffffffffffffffffff198116600090815260158701602052604081209192506002820154600160a01b900460ff1660058111156101a5576101a5610e4a565b146102185760405162461bcd60e51b815260206004820152602860248201527f45434453412077616c6c657420686173206265656e20616c726561647920726560448201527f67697374657265640000000000000000000000000000000000000000000000006064820152608401610145565b848155600281018054600160a01b63ffffffff42811668010000000000000000027fffffffffffffffffffffff00ffffffffffffffff00000000ffffffffffffffff90931692909217811790925560148881018054606087901c73ffffffffffffffffffffffffffffffffffffffff19909116178082559390930490911691906102a183610e76565b91906101000a81548163ffffffff021916908363ffffffff16021790555050816bffffffffffffffffffffffff1916857f2dbb47dce81d6b11cca1f1e3b10143d6f7e1e7e92d2dd9aacbb1f875379d308e60405160405180910390a3505050505050565b601483015460601b6bffffffffffffffffffffffff1990811690831614156103955760405162461bcd60e51b815260206004820152602c60248201527f4163746976652077616c6c65742063616e6e6f7420626520636f6e736964657260448201527f656420636c6f736561626c6500000000000000000000000000000000000000006064820152608401610145565b6bffffffffffffffffffffffff1982166000908152601584016020526040902060016002820154600160a01b900460ff1660058111156103d7576103d7610e4a565b1461042f5760405162461bcd60e51b815260206004820152602260248201527f45434453412077616c6c6574206d75737420626520696e204c69766520737461604482015261746560f01b6064820152608401610145565b601384015460028201546000916104639163ffffffff600160a01b9092048216916801000000000000000090910416610e9a565b63ffffffff16421015905080806104a357506013850154640100000000900467ffffffffffffffff16610497868686610a1c565b67ffffffffffffffff16105b6105155760405162461bcd60e51b815260206004820152603660248201527f57616c6c6574206e6565647320746f206265206f6c6420656e6f756768206f7260448201527f206861766520746f6f20666577207361746f73686973000000000000000000006064820152608401610145565b61051f8585610b54565b5050505050565b60028301546001600160a01b031633146105925760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b6064820152608401610145565b60006105a161015d848461094b565b905060016bffffffffffffffffffffffff1982166000908152601586016020526040902060020154600160a01b900460ff1660058111156105e4576105e4610e4a565b1461063c5760405162461bcd60e51b815260206004820152602260248201527f45434453412077616c6c6574206d75737420626520696e204c69766520737461604482015261746560f01b6064820152608401610145565b6106468482610b54565b50505050565b6002820154604080517fcc56238800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc562388916004808301926020929190829003018186803b1580156106ac57600080fd5b505afa1580156106c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e49190610ec2565b60038111156106f5576106f5610e4a565b146107685760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206372656174696f6e20616c726561647920696e2070726f677260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610145565b601482015460601b6bffffffffffffffffffffffff198116156108b3576000610792848385610a1c565b6bffffffffffffffffffffffff1983166000908152601586016020526040812060020154601387015492935063ffffffff680100000000000000009091048116926107de911683610e9a565b63ffffffff1642101590508080156108105750601386015467ffffffffffffffff640100000000909104811690841610155b8061083d5750601386015467ffffffffffffffff6c01000000000000000000000000909104811690841610155b6108af5760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574206372656174696f6e20636f6e646974696f6e7320617265206e60448201527f6f74206d657400000000000000000000000000000000000000000000000000006064820152608401610145565b5050505b6040517f31fecb80caf1e1128496dd5a6f1083ba29fd5fe64c3fe04e2d1b6f9cfc27d5a390600090a18260020160009054906101000a90046001600160a01b03166001600160a01b03166372cc8c6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561092e57600080fd5b505af1158015610942573d6000803e3d6000fd5b50505050505050565b6060600061095a600284610eea565b61098557507f02000000000000000000000000000000000000000000000000000000000000006109a8565b507f03000000000000000000000000000000000000000000000000000000000000005b6040517fff00000000000000000000000000000000000000000000000000000000000000821660208201526021810185905260410160405160208183030381529060405291505092915050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6bffffffffffffffffffffffff19821660009081526015840160205260408120600101548015610b4c57808335610a596040860160208701610f0c565b610a696060870160408801610f32565b604051602001610ad69392919092835260e09190911b7fffffffff0000000000000000000000000000000000000000000000000000000016602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610b395760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f20646174610000006044820152606401610145565b610b496060840160408501610f32565b91505b509392505050565b6bffffffffffffffffffffffff198116600090815260158301602052604090206001810154610b8c57610b878383610ca8565b610c24565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffffffffffff00ffffffff00000000ffffffffffffffffffffffff909116177402000000000000000000000000000000000000000017905580546040516bffffffffffffffffffffffff19841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601483015460601b6bffffffffffffffffffffffff199081169083161415610c665760148301805473ffffffffffffffffffffffffffffffffffffffff191690555b60148381018054600160a01b900463ffffffff1691610c8483610f5c565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6bffffffffffffffffffffffff198116600081815260158401602052604080822060028101805463ffffffff4216700100000000000000000000000000000000027fffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffff9091161774030000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b60008060008060808587031215610d6c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060608284031215610d9a57600080fd5b50919050565b600080600060a08486031215610db557600080fd5b8335925060208401356bffffffffffffffffffffffff1981168114610dd957600080fd5b9150610de88560408601610d88565b90509250925092565b600080600060608486031215610e0657600080fd5b505081359360208301359350604090920135919050565b60008060808385031215610e3057600080fd5b82359150610e418460208501610d88565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681811415610e9057610e90610e60565b6001019392505050565b600063ffffffff808316818516808303821115610eb957610eb9610e60565b01949350505050565b600060208284031215610ed457600080fd5b815160048110610ee357600080fd5b9392505050565b600082610f0757634e487b7160e01b600052601260045260246000fd5b500690565b600060208284031215610f1e57600080fd5b813563ffffffff81168114610ee357600080fd5b600060208284031215610f4457600080fd5b813567ffffffffffffffff81168114610ee357600080fd5b600063ffffffff821680610f7257610f72610e60565b600019019291505056fea2646970667358221220931dcddc50fc49ab3b0983d243a8b667e981caafadfcf67071e2da6cf01a15d164736f6c63430008090033",
|
|
109
|
+
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100565760003560e01c80634afbe4c91461005b57806399b0b8471461007d578063c87de7f41461009d578063d079fbb1146100bd575b600080fd5b81801561006757600080fd5b5061007b610076366004610d56565b6100dd565b005b81801561008957600080fd5b5061007b610098366004610da0565b610305565b8180156100a957600080fd5b5061007b6100b8366004610df1565b610526565b8180156100c957600080fd5b5061007b6100d8366004610e1d565b61064c565b60028401546001600160a01b0316331461014e5760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b60648201526084015b60405180910390fd5b600061016261015d848461094b565b6109f5565b6bffffffffffffffffffffffff198116600090815260158701602052604081209192506002820154600160a01b900460ff1660058111156101a5576101a5610e4a565b146102185760405162461bcd60e51b815260206004820152602860248201527f45434453412077616c6c657420686173206265656e20616c726561647920726560448201527f67697374657265640000000000000000000000000000000000000000000000006064820152608401610145565b848155600281018054600160a01b63ffffffff42811668010000000000000000027fffffffffffffffffffffff00ffffffffffffffff00000000ffffffffffffffff90931692909217811790925560148881018054606087901c73ffffffffffffffffffffffffffffffffffffffff19909116178082559390930490911691906102a183610e76565b91906101000a81548163ffffffff021916908363ffffffff16021790555050816bffffffffffffffffffffffff1916857f2dbb47dce81d6b11cca1f1e3b10143d6f7e1e7e92d2dd9aacbb1f875379d308e60405160405180910390a3505050505050565b601483015460601b6bffffffffffffffffffffffff1990811690831614156103955760405162461bcd60e51b815260206004820152602c60248201527f4163746976652077616c6c65742063616e6e6f7420626520636f6e736964657260448201527f656420636c6f736561626c6500000000000000000000000000000000000000006064820152608401610145565b6bffffffffffffffffffffffff1982166000908152601584016020526040902060016002820154600160a01b900460ff1660058111156103d7576103d7610e4a565b1461042f5760405162461bcd60e51b815260206004820152602260248201527f45434453412077616c6c6574206d75737420626520696e204c69766520737461604482015261746560f01b6064820152608401610145565b601384015460028201546000916104639163ffffffff600160a01b9092048216916801000000000000000090910416610e9a565b63ffffffff16421015905080806104a357506013850154640100000000900467ffffffffffffffff16610497868686610a1c565b67ffffffffffffffff16105b6105155760405162461bcd60e51b815260206004820152603660248201527f57616c6c6574206e6565647320746f206265206f6c6420656e6f756768206f7260448201527f206861766520746f6f20666577207361746f73686973000000000000000000006064820152608401610145565b61051f8585610b54565b5050505050565b60028301546001600160a01b031633146105925760405162461bcd60e51b815260206004820152602760248201527f43616c6c6572206973206e6f74207468652045434453412057616c6c657420526044820152666567697374727960c81b6064820152608401610145565b60006105a161015d848461094b565b905060016bffffffffffffffffffffffff1982166000908152601586016020526040902060020154600160a01b900460ff1660058111156105e4576105e4610e4a565b1461063c5760405162461bcd60e51b815260206004820152602260248201527f45434453412077616c6c6574206d75737420626520696e204c69766520737461604482015261746560f01b6064820152608401610145565b6106468482610b54565b50505050565b6002820154604080517fcc56238800000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163cc562388916004808301926020929190829003018186803b1580156106ac57600080fd5b505afa1580156106c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e49190610ec2565b60038111156106f5576106f5610e4a565b146107685760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206372656174696f6e20616c726561647920696e2070726f677260448201527f65737300000000000000000000000000000000000000000000000000000000006064820152608401610145565b601482015460601b6bffffffffffffffffffffffff198116156108b3576000610792848385610a1c565b6bffffffffffffffffffffffff1983166000908152601586016020526040812060020154601387015492935063ffffffff680100000000000000009091048116926107de911683610e9a565b63ffffffff1642101590508080156108105750601386015467ffffffffffffffff640100000000909104811690841610155b8061083d5750601386015467ffffffffffffffff6c01000000000000000000000000909104811690841610155b6108af5760405162461bcd60e51b815260206004820152602660248201527f57616c6c6574206372656174696f6e20636f6e646974696f6e7320617265206e60448201527f6f74206d657400000000000000000000000000000000000000000000000000006064820152608401610145565b5050505b6040517f31fecb80caf1e1128496dd5a6f1083ba29fd5fe64c3fe04e2d1b6f9cfc27d5a390600090a18260020160009054906101000a90046001600160a01b03166001600160a01b03166372cc8c6d6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561092e57600080fd5b505af1158015610942573d6000803e3d6000fd5b50505050505050565b6060600061095a600284610eea565b61098557507f02000000000000000000000000000000000000000000000000000000000000006109a8565b507f03000000000000000000000000000000000000000000000000000000000000005b6040517fff00000000000000000000000000000000000000000000000000000000000000821660208201526021810185905260410160405160208183030381529060405291505092915050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6bffffffffffffffffffffffff19821660009081526015840160205260408120600101548015610b4c57808335610a596040860160208701610f0c565b610a696060870160408801610f32565b604051602001610ad69392919092835260e09190911b7fffffffff0000000000000000000000000000000000000000000000000000000016602083015260c01b7fffffffffffffffff000000000000000000000000000000000000000000000000166024820152602c0190565b6040516020818303038152906040528051906020012014610b395760405162461bcd60e51b815260206004820152601d60248201527f496e76616c69642077616c6c6574206d61696e205554584f20646174610000006044820152606401610145565b610b496060840160408501610f32565b91505b509392505050565b6bffffffffffffffffffffffff198116600090815260158301602052604090206001810154610b8c57610b878383610ca8565b610c24565b60028101805463ffffffff42166c01000000000000000000000000027fffffffffffffffffffffff00ffffffff00000000ffffffffffffffffffffffff909116177402000000000000000000000000000000000000000017905580546040516bffffffffffffffffffffffff19841691907fbdc9ce990a067e5fd3a5d8dfc68e27e9f221aaa3fe55265e0b7e93c460b3efe290600090a35b601483015460601b6bffffffffffffffffffffffff199081169083161415610c665760148301805473ffffffffffffffffffffffffffffffffffffffff191690555b60148381018054600160a01b900463ffffffff1691610c8483610f5c565b91906101000a81548163ffffffff021916908363ffffffff16021790555050505050565b6bffffffffffffffffffffffff198116600081815260158401602052604080822060028101805463ffffffff4216700100000000000000000000000000000000027fffffffffffffffffffffff0000000000ffffffffffffffffffffffffffffffff9091161774030000000000000000000000000000000000000000179055805491519093927f68cb496f5e64383745876664ef119840f154a729c03ba866b8aecb5c9f53d51691a3505050565b60008060008060808587031215610d6c57600080fd5b5050823594602084013594506040840135936060013592509050565b600060608284031215610d9a57600080fd5b50919050565b600080600060a08486031215610db557600080fd5b8335925060208401356bffffffffffffffffffffffff1981168114610dd957600080fd5b9150610de88560408601610d88565b90509250925092565b600080600060608486031215610e0657600080fd5b505081359360208301359350604090920135919050565b60008060808385031215610e3057600080fd5b82359150610e418460208501610d88565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600063ffffffff80831681811415610e9057610e90610e60565b6001019392505050565b600063ffffffff808316818516808303821115610eb957610eb9610e60565b01949350505050565b600060208284031215610ed457600080fd5b815160048110610ee357600080fd5b9392505050565b600082610f0757634e487b7160e01b600052601260045260246000fd5b500690565b600060208284031215610f1e57600080fd5b813563ffffffff81168114610ee357600080fd5b600060208284031215610f4457600080fd5b813567ffffffffffffffff81168114610ee357600080fd5b600063ffffffff821680610f7257610f72610e60565b600019019291505056fea2646970667358221220931dcddc50fc49ab3b0983d243a8b667e981caafadfcf67071e2da6cf01a15d164736f6c63430008090033",
|
|
91
110
|
"linkReferences": {},
|
|
92
111
|
"deployedLinkReferences": {}
|
|
93
112
|
}
|
|
@@ -18,11 +18,13 @@ pragma solidity ^0.8.9;
|
|
|
18
18
|
import {BTCUtils} from "@keep-network/bitcoin-spv-sol/contracts/BTCUtils.sol";
|
|
19
19
|
import {ValidateSPV} from "@keep-network/bitcoin-spv-sol/contracts/ValidateSPV.sol";
|
|
20
20
|
|
|
21
|
+
import "./BridgeState.sol";
|
|
22
|
+
|
|
21
23
|
/// @title Bitcoin transaction
|
|
22
24
|
/// @notice Allows to reference Bitcoin raw transaction in Solidity.
|
|
23
25
|
/// @dev See https://developer.bitcoin.org/reference/transactions.html#raw-transaction-format
|
|
24
26
|
///
|
|
25
|
-
/// Raw
|
|
27
|
+
/// Raw Bitcoin transaction data:
|
|
26
28
|
///
|
|
27
29
|
/// | Bytes | Name | BTC type | Description |
|
|
28
30
|
/// |--------|--------------|------------------------|---------------------------|
|
|
@@ -80,12 +82,12 @@ library BitcoinTx {
|
|
|
80
82
|
/// @notice Represents Bitcoin transaction data.
|
|
81
83
|
struct Info {
|
|
82
84
|
/// @notice Bitcoin transaction version
|
|
83
|
-
/// @dev `version` from raw
|
|
85
|
+
/// @dev `version` from raw Bitcoin transaction data.
|
|
84
86
|
/// Encoded as 4-bytes signed integer, little endian.
|
|
85
87
|
bytes4 version;
|
|
86
88
|
/// @notice All Bitcoin transaction inputs, prepended by the number of
|
|
87
89
|
/// transaction inputs.
|
|
88
|
-
/// @dev `tx_in_count | tx_in` from raw
|
|
90
|
+
/// @dev `tx_in_count | tx_in` from raw Bitcoin transaction data.
|
|
89
91
|
///
|
|
90
92
|
/// The number of transaction inputs encoded as compactSize
|
|
91
93
|
/// unsigned integer, little-endian.
|
|
@@ -120,17 +122,6 @@ library BitcoinTx {
|
|
|
120
122
|
bytes bitcoinHeaders;
|
|
121
123
|
}
|
|
122
124
|
|
|
123
|
-
/// @notice Determines the difficulty context for a Bitcoin SPV proof.
|
|
124
|
-
struct ProofDifficulty {
|
|
125
|
-
/// @notice Difficulty of the current epoch.
|
|
126
|
-
uint256 currentEpochDifficulty;
|
|
127
|
-
/// @notice Difficulty of the previous epoch.
|
|
128
|
-
uint256 previousEpochDifficulty;
|
|
129
|
-
/// @notice The number of confirmations on the Bitcoin chain required
|
|
130
|
-
/// to successfully evaluate an SPV proof.
|
|
131
|
-
uint256 difficultyFactor;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
125
|
/// @notice Represents info about an unspent transaction output.
|
|
135
126
|
struct UTXO {
|
|
136
127
|
/// @notice Hash of the transaction the output belongs to.
|
|
@@ -156,12 +147,11 @@ library BitcoinTx {
|
|
|
156
147
|
/// Reverts in case the validation or proof verification fail.
|
|
157
148
|
/// @param txInfo Bitcoin transaction data
|
|
158
149
|
/// @param proof Bitcoin proof data
|
|
159
|
-
/// @param proofDifficulty Bitcoin proof difficulty context.
|
|
160
150
|
/// @return txHash Proven 32-byte transaction hash.
|
|
161
151
|
function validateProof(
|
|
152
|
+
BridgeState.Storage storage self,
|
|
162
153
|
Info calldata txInfo,
|
|
163
|
-
Proof calldata proof
|
|
164
|
-
ProofDifficulty memory proofDifficulty
|
|
154
|
+
Proof calldata proof
|
|
165
155
|
) internal view returns (bytes32 txHash) {
|
|
166
156
|
require(
|
|
167
157
|
txInfo.inputVector.validateVin(),
|
|
@@ -190,7 +180,7 @@ library BitcoinTx {
|
|
|
190
180
|
"Tx merkle proof is not valid for provided header and tx hash"
|
|
191
181
|
);
|
|
192
182
|
|
|
193
|
-
evaluateProofDifficulty(proof.bitcoinHeaders
|
|
183
|
+
evaluateProofDifficulty(self, proof.bitcoinHeaders);
|
|
194
184
|
|
|
195
185
|
return txHash;
|
|
196
186
|
}
|
|
@@ -200,20 +190,23 @@ library BitcoinTx {
|
|
|
200
190
|
/// Reverts in case the evaluation fails.
|
|
201
191
|
/// @param bitcoinHeaders Bitcoin headers chain being part of the SPV
|
|
202
192
|
/// proof. Used to extract the observed proof difficulty
|
|
203
|
-
/// @param proofDifficulty Bitcoin proof difficulty context.
|
|
204
193
|
function evaluateProofDifficulty(
|
|
205
|
-
|
|
206
|
-
|
|
194
|
+
BridgeState.Storage storage self,
|
|
195
|
+
bytes memory bitcoinHeaders
|
|
207
196
|
) internal view {
|
|
197
|
+
IRelay relay = self.relay;
|
|
198
|
+
uint256 currentEpochDifficulty = relay.getCurrentEpochDifficulty();
|
|
199
|
+
uint256 previousEpochDifficulty = relay.getPrevEpochDifficulty();
|
|
200
|
+
|
|
208
201
|
uint256 requestedDiff = 0;
|
|
209
202
|
uint256 firstHeaderDiff = bitcoinHeaders
|
|
210
203
|
.extractTarget()
|
|
211
204
|
.calculateDifficulty();
|
|
212
205
|
|
|
213
|
-
if (firstHeaderDiff ==
|
|
214
|
-
requestedDiff =
|
|
215
|
-
} else if (firstHeaderDiff ==
|
|
216
|
-
requestedDiff =
|
|
206
|
+
if (firstHeaderDiff == currentEpochDifficulty) {
|
|
207
|
+
requestedDiff = currentEpochDifficulty;
|
|
208
|
+
} else if (firstHeaderDiff == previousEpochDifficulty) {
|
|
209
|
+
requestedDiff = previousEpochDifficulty;
|
|
217
210
|
} else {
|
|
218
211
|
revert("Not at current or previous difficulty");
|
|
219
212
|
}
|
|
@@ -234,7 +227,7 @@ library BitcoinTx {
|
|
|
234
227
|
);
|
|
235
228
|
|
|
236
229
|
require(
|
|
237
|
-
observedDiff >= requestedDiff *
|
|
230
|
+
observedDiff >= requestedDiff * self.txProofDifficultyFactor,
|
|
238
231
|
"Insufficient accumulated difficulty in header chain"
|
|
239
232
|
);
|
|
240
233
|
}
|