@keep-network/tbtc-v2 1.3.0-dev.1 → 1.3.0-dev.3
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/BLS.json +1 -1
- package/artifacts/Bank.json +3 -3
- package/artifacts/BeaconAuthorization.json +1 -1
- package/artifacts/BeaconDkg.json +1 -1
- package/artifacts/BeaconDkgValidator.json +1 -1
- package/artifacts/BeaconInactivity.json +1 -1
- package/artifacts/BeaconSortitionPool.json +3 -3
- package/artifacts/Bridge.json +5 -5
- package/artifacts/BridgeGovernance.json +2 -2
- package/artifacts/BridgeGovernanceParameters.json +2 -2
- package/artifacts/Deposit.json +2 -2
- package/artifacts/DepositSweep.json +2 -2
- package/artifacts/DonationVault.json +3 -3
- package/artifacts/EcdsaDkgValidator.json +1 -1
- package/artifacts/EcdsaInactivity.json +1 -1
- package/artifacts/EcdsaSortitionPool.json +3 -3
- package/artifacts/Fraud.json +2 -2
- package/artifacts/KeepRegistry.json +1 -1
- package/artifacts/KeepStake.json +2 -2
- package/artifacts/KeepToken.json +2 -2
- package/artifacts/KeepTokenStaking.json +1 -1
- package/artifacts/LightRelay.json +18 -18
- package/artifacts/MaintainerProxy.json +19 -19
- package/artifacts/MovingFunds.json +2 -2
- package/artifacts/NuCypherStakingEscrow.json +1 -1
- package/artifacts/NuCypherToken.json +2 -2
- package/artifacts/RandomBeacon.json +2 -2
- package/artifacts/RandomBeaconChaosnet.json +2 -2
- package/artifacts/RandomBeaconGovernance.json +2 -2
- package/artifacts/Redemption.json +2 -2
- package/artifacts/ReimbursementPool.json +2 -2
- package/artifacts/T.json +2 -2
- package/artifacts/TBTC.json +3 -3
- package/artifacts/TBTCToken.json +3 -3
- package/artifacts/TBTCVault.json +23 -23
- package/artifacts/TokenStaking.json +1 -1
- package/artifacts/TokenholderGovernor.json +9 -9
- package/artifacts/TokenholderTimelock.json +8 -8
- package/artifacts/VendingMachine.json +3 -3
- package/artifacts/VendingMachineKeep.json +1 -1
- package/artifacts/VendingMachineNuCypher.json +1 -1
- package/artifacts/VendingMachineV2.json +3 -3
- package/artifacts/VendingMachineV3.json +3 -3
- package/artifacts/WalletCoordinator.json +797 -0
- package/artifacts/WalletRegistry.json +5 -5
- package/artifacts/WalletRegistryGovernance.json +2 -2
- package/artifacts/Wallets.json +2 -2
- package/artifacts/solcInputs/{eaed73ec5af35f1b3d40df457dd99d0b.json → 67afa5431c94b7a159788360752a9010.json} +1 -1
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
- 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/Redemption.sol/OutboundTx.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
- package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.dbg.json +1 -1
- package/build/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +8 -3
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
- package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/contracts/bridge/WalletCoordinator.sol +33 -10
- package/deploy/34_deploy_wallet_coordinator.ts +43 -0
- package/deploy/35_transfer_wallet_coordinator_ownership.ts +19 -0
- package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +22 -22
- package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +6 -6
- package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +6 -6
- package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +6 -6
- package/export/artifacts/contracts/bridge/WalletCoordinator.sol/WalletCoordinator.json +4407 -4078
- package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +40 -40
- package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +47 -47
- package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +88 -88
- package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +57 -57
- package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +2 -2
- package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +58 -58
- package/export/artifacts/contracts/test/GoerliLightRelay.sol/GoerliLightRelay.json +57 -57
- package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +2 -2
- package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +59 -59
- package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
- package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
- package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
- package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
- package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +2 -2
- package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
- package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
- package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +11 -11
- package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +135 -135
- package/export/deploy/34_deploy_wallet_coordinator.js +115 -0
- package/export/deploy/35_transfer_wallet_coordinator_ownership.js +60 -0
- package/export/typechain/factories/WalletCoordinator__factory.js +7 -2
- package/package.json +1 -1
|
@@ -699,8 +699,13 @@
|
|
|
699
699
|
"outputs": [
|
|
700
700
|
{
|
|
701
701
|
"internalType": "uint32",
|
|
702
|
-
"name": "",
|
|
702
|
+
"name": "expiresAt",
|
|
703
703
|
"type": "uint32"
|
|
704
|
+
},
|
|
705
|
+
{
|
|
706
|
+
"internalType": "enum WalletCoordinator.WalletAction",
|
|
707
|
+
"name": "cause",
|
|
708
|
+
"type": "uint8"
|
|
704
709
|
}
|
|
705
710
|
],
|
|
706
711
|
"stateMutability": "view",
|
|
@@ -720,8 +725,8 @@
|
|
|
720
725
|
"type": "function"
|
|
721
726
|
}
|
|
722
727
|
],
|
|
723
|
-
"bytecode": "0x608060405234801561001057600080fd5b50613268806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638e323a99116100ee578063bc20a08011610097578063c4d66de811610071578063c4d66de8146103c4578063e78cea92146103d7578063f2fde38b146103ea578063f74b37bd146103fd57600080fd5b8063bc20a08014610387578063c09975cd1461039e578063c1790d77146103b157600080fd5b8063ab7aa6ad116100c8578063ab7aa6ad14610340578063acaac70514610353578063b82bc3991461037457600080fd5b80638e323a99146103075780639039bc1c1461031a5780639f41e13b1461032d57600080fd5b806331d8c6221161015b578063715018a611610135578063715018a6146102b45780637698fa97146102bc5780637b35b4e6146102cf5780638da5cb5b146102e257600080fd5b806331d8c622146102775780633a4159c81461028e5780636ff913c3146102a157600080fd5b8063213f7df71161018c578063213f7df71461020b57806323a1c3071461023e5780632c259d2b1461025157600080fd5b806308553292146101b35780630dc1b8df146101e35780631c6710dd146101f8575b600080fd5b609b546101c99062010000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6101f66101f1366004612531565b610414565b005b6101f6610206366004612566565b61048f565b61022e6102193660046125e6565b60976020526000908152604090205460ff1681565b60405190151581526020016101da565b6101f661024c366004612531565b610780565b6101c961025f366004612625565b60986020526000908152604090205463ffffffff1681565b609a546101c990600160e01b900463ffffffff1681565b6101f661029c3660046125e6565b6107f4565b6101f66102af366004612531565b6108d3565b6101f6610943565b6101f66102ca366004612640565b610957565b6101f66102dd3660046125e6565b611013565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b6101f66103153660046125e6565b6110e7565b6101f6610328366004612625565b6111ca565b6101f661033b3660046126da565b611224565b609a546102ef906001600160a01b031681565b609b546103619061ffff1681565b60405161ffff90911681526020016101da565b6101f6610382366004612531565b611270565b609a546101c990600160c01b900463ffffffff1681565b6065546102ef906001600160a01b031681565b6101f66103bf366004612566565b6112ca565b6101f66103d23660046125e6565b61136e565b6099546102ef906001600160a01b031681565b6101f66103f83660046125e6565b6115f0565b609a546101c990600160a01b900463ffffffff1681565b61041c611680565b609a80547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b63ffffffff8416908102919091179091556040519081527feda69d960fc800ae7f67255cd8b42b338c24e1a655053127fff8bf88a2480d3f906020015b60405180910390a150565b61049c6020830183612625565b33600090815260976020526040812054839160ff90911690816105da576099546040517fe65e19d50000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19861660048201526000916001600160a01b03169063e65e19d59060240161012060405180830381865afa15801561052b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054f91906127b6565b51609a549091506001600160a01b031663df07ce598261056f8780612859565b3389602001356040518663ffffffff1660e01b81526004016105959594939291906128a3565b602060405180830381865afa1580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d6919061290c565b9150505b81806105e35750805b61065a5760405162461bcd60e51b815260206004820152603a60248201527f43616c6c6572206973206e65697468657220612070726f706f73616c2073756260448201527f6d6974746572206e6f7220612077616c6c6574206d656d62657200000000000060648201526084015b60405180910390fd5b6106676020870187612625565b6bffffffffffffffffffffffff19811660009081526098602052604090205463ffffffff1642116106da5760405162461bcd60e51b815260206004820152600d60248201527f57616c6c6574206c6f636b6564000000000000000000000000000000000000006044820152606401610651565b609a546106f490600160a01b900463ffffffff1642612944565b6098600061070560208b018b612625565b6bffffffffffffffffffffffff1916815260208101919091526040908101600020805463ffffffff191663ffffffff93909316929092179091555133907fe17b4ed4828b9f018ca549cfd5f662e5551408093b1db16d94b9cd242e6df1719061076f908a90612968565b60405180910390a250505050505050565b610788611680565b609a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8416908102919091179091556040519081527f085a81d11ac3cf6033d185eccdfc414b8a20da29a555406c068a0a1fdac8afea90602001610484565b6107fc611680565b6001600160a01b03811660009081526097602052604090205460ff1661088a5760405162461bcd60e51b815260206004820152602860248201527f546869732061646472657373206973206e6f7420612070726f706f73616c207360448201527f75626d69747465720000000000000000000000000000000000000000000000006064820152608401610651565b6001600160a01b038116600081815260976020526040808220805460ff19169055517f4017c4f3f844d24f56ade93af205a7ed01bf7f858b90f4b62206be460af2d2269190a250565b6108db611680565b609a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff8416908102919091179091556040519081527fcb0c11e4086618176ceab0afd46b7fa25688cf2a6566ed4845f1fb530571faee90602001610484565b61094b611680565b61095560006116da565b565b60016099546001600160a01b031663e65e19d56109776020870187612625565b6040516001600160e01b031960e084901b1681526bffffffffffffffffffffffff19909116600482015260240161012060405180830381865afa1580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e691906127b6565b60e0015160058111156109fb576109fb612a39565b14610a485760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c69766520737461746500000000006044820152606401610651565b6000610a576020850185612a4f565b905011610aa65760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a6500000000000000006044820152606401610651565b609b5461ffff16610aba6020850185612a4f565b90501115610b0a5760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a650000000000006044820152606401610651565b80610b186020850185612a4f565b905014610b8d5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e6720657874726120646174610000000000000000000000000000000000006064820152608401610651565b610ba96040840135610ba26020860186612a4f565b9050611739565b6000805b610bba6020860186612a4f565b905081101561100c576000610bd26020870187612a4f565b83818110610be257610be2612a99565b905060400201803603810190610bf89190612aaf565b90506000858584818110610c0e57610c0e612a99565b9050602002810190610c209190612b05565b610c2990612bf3565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610c72939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce59190612cf5565b9050806040015163ffffffff16600003610d415760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c65640000000000000000000000006044820152606401610651565b609a546040820151610d6091600160c01b900463ffffffff1690612944565b63ffffffff164211610db45760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f74206163686965766564207965746044820152606401610651565b60a081015163ffffffff1615610e0c5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610651565b610e1b838260000151846118dd565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610e6390600160e01b900463ffffffff1682612d9c565b63ffffffff164210610edd5760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f7420707265736572766564000000000000000000000000000000000000006064820152608401610651565b610eea60208a018a612625565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610f805760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c657400000000000000000000000000000000000000000000000000006064820152608401610651565b84600003610f9057816060015195505b856001600160a01b031682606001516001600160a01b031614610ff55760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c74006044820152606401610651565b50505050808061100490612db9565b915050610bad565b5050505050565b336110266033546001600160a01b031690565b6001600160a01b03161461107c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610651565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6110ef611680565b6001600160a01b03811660009081526097602052604090205460ff161561117e5760405162461bcd60e51b815260206004820152602c60248201527f54686973206164647265737320697320616c726561647920612070726f706f7360448201527f616c207375626d697474657200000000000000000000000000000000000000006064820152608401610651565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517fe7005265f76a2d6482aaa3a0e969edd45868e3210ff126216a0425f83af1ef209190a250565b6111d2611680565b6bffffffffffffffffffffffff198116600081815260986020526040808220805463ffffffff19169055517f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e69190a250565b61122c611680565b609b805461ffff191661ffff83169081179091556040519081527fcc7b63f885d59808f386320218caf8e6bdaa095b61927dea4e59f9cf6954beab90602001610484565b611278611680565b609b805465ffffffff000019166201000063ffffffff8416908102919091179091556040519081527fafb79fa073ff248ba2f1cd9798891f4ee776a03c9f860eccdebcb1837305a19790602001610484565b60005a90506112d9838361048f565b606554609b546001600160a01b0390911690637ad226dc9062010000900463ffffffff165a6113089085612dd2565b6113129190612de5565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561135157600080fd5b505af1158015611365573d6000803e3d6000fd5b50505050505050565b600054610100900460ff161580801561138e5750600054600160ff909116105b806113a85750303b1580156113a8575060005460ff166001145b61141a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610651565b6000805460ff19166001179055801561143d576000805461ff0019166101001790555b611445611b3b565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e89190612df8565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609a80549290911677ffffffffffffffffffffffffffffffffffffffffffffffff199092169190911775384000000000000000000000000000000000000000001777ffffffffffffffffffffffffffffffffffffffffffffffff167e01518000001c200000000000000000000000000000000000000000000000001790555050609b805465ffffffffffff19166361a8000517905580156115ec576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6115f8611680565b6001600160a01b0381166116745760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610651565b61167d816116da565b50565b6033546001600160a01b031633146109555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610651565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116117af5760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f000000000000000000000000000000000000000000000000006064820152608401610651565b60006117bb8284612e6d565b90506000826117ca8386612dd2565b6117d49190612e81565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612e95565b5092505067ffffffffffffffff8216905061186a8484612de5565b111561100c5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f68696768000000000000000000000000000000000000000000000000000000006064820152608401610651565b80518051602080830151604080850151606090950151905160009561191f9561190b95909493919201612f10565b604051602081830303815290604052611bae565b845190915081146119985760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d6174636800000000000000000000000000000000000000000000006064820152608401610651565b60008383602001518460400151856060015186608001516040516020016119c3959493929190612f46565b604051602081830303815290604052905060006119fb866020015163ffffffff16856000015160400151611bd590919063ffffffff16565b90506000611a0882611db9565b905080516014148015611a4a5750611a1f83611dd3565b6bffffffffffffffffffffffff1916611a39826000611dfa565b6bffffffffffffffffffffffff1916145b15611a585750505050505050565b80516020148015611abf5750600283604051611a7491906131db565b602060405180830381855afa158015611a91573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ab491906131e7565b611abd82611e10565b145b15611acd5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d6174636800000000000000000000000000000000006064820152608401610651565b600054610100900460ff16611ba65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610651565b610955611e2b565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611be385611e9f565b909250905060018201611c5e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e670000000000000000000000000000000000000000000000000000000000006064820152608401610651565b808410611cad5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610651565b600080611cbb846001612de5565b905060005b86811015611d4357611cd28883611eb6565b92506000198303611d255760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610651565b611d2f8383612de5565b915080611d3b81612db9565b915050611cc0565b50611d4e8782611eb6565b91506000198203611da15760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610651565b611dac878284611f23565b9450505050505b92915050565b6060611db3826008808551611dce9190612dd2565b611ff0565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000611e098383016020015190565b9392505050565b60008151600003611e2357506000919050565b506020015190565b600054610100900460ff16611e965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610651565b610955336116da565b600080611ead8360006122f5565b91509150915091565b6000611ec3826009612de5565b83511015611ed45750600019611db3565b600080611eeb85611ee6866008612de5565b6122f5565b909250905060018201611f045760001992505050611db3565b80611f10836009612de5565b611f1a9190612de5565b95945050505050565b606081600003611f425750604080516020810190915260008152611e09565b6000611f4e8385612de5565b90508381118015611f60575080855110155b611fac5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610651565b604051915082604083010160405282825283850182038460208701018481015b80821015611fe557815183830152602082019150611fcc565b505050509392505050565b6060600084848151811061200657612006612a99565b016020015160f81c90508261201c826001613200565b60ff161461203a575050604080516020810190915260008152611e09565b84612046856001612de5565b8151811061205657612056612a99565b016020015160f81c6000036121155760028160ff161015612087575050604080516020810190915260008152611e09565b600085612095866002612de5565b815181106120a5576120a5612a99565b016020015160f81c90506120ba600283613219565b60ff16811415806120d85750806020141580156120d8575080601414155b156120f6576040518060200160405280600081525092505050611e09565b61210c612104866003612de5565b879083611f23565b92505050611e09565b60006121218686611dfa565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a90000000000000000000000000000000000000000000000000000000000036122355785612178866003612de5565b8151811061218857612188612a99565b60209101015160f81c601414158061220057506121bb60026121aa8688612de5565b6121b49190612dd2565b8790611dfa565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b1561221e576040518060200160405280600081525092505050611e09565b61210c61222c866004612de5565b87906014611f23565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036122dc5785600161228b8688612de5565b6122959190612dd2565b815181106122a5576122a5612a99565b60209101015160f81c6087146122ce576040518060200160405280600081525092505050611e09565b61210c61222c866003612de5565b5050506040805160208101909152600081529392505050565b60008060006123048585612499565b90508060ff1660000361233957600085858151811061232557612325612a99565b016020015190935060f81c91506124929050565b83612345826001613200565b60ff166123529190612de5565b855110156123695760001960009250925050612492565b60008160ff166002036123ad576123a261238e612387876001612de5565b8890611dfa565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612488565b8160ff166004036123fc576123ef6123c9612387876001612de5565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612488565b8160ff166008036124885761247b612418612387876001612de5565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b60008282815181106124ad576124ad612a99565b016020015160f81c60ff036124c457506008611db3565b8282815181106124d6576124d6612a99565b016020015160f81c60fe036124ed57506004611db3565b8282815181106124ff576124ff612a99565b016020015160f81c60fd0361251657506002611db3565b50600092915050565b63ffffffff8116811461167d57600080fd5b60006020828403121561254357600080fd5b8135611e098161251f565b60006060828403121561256057600080fd5b50919050565b6000806040838503121561257957600080fd5b823567ffffffffffffffff8082111561259157600080fd5b61259d8683870161254e565b935060208501359150808211156125b357600080fd5b508301604081860312156125c657600080fd5b809150509250929050565b6001600160a01b038116811461167d57600080fd5b6000602082840312156125f857600080fd5b8135611e09816125d1565b80356bffffffffffffffffffffffff198116811461262057600080fd5b919050565b60006020828403121561263757600080fd5b611e0982612603565b60008060006040848603121561265557600080fd5b833567ffffffffffffffff8082111561266d57600080fd5b6126798783880161254e565b9450602086013591508082111561268f57600080fd5b818601915086601f8301126126a357600080fd5b8135818111156126b257600080fd5b8760208260051b85010111156126c757600080fd5b6020830194508093505050509250925092565b6000602082840312156126ec57600080fd5b813561ffff81168114611e0957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612738576127386126fe565b60405290565b60405160a0810167ffffffffffffffff81118282101715612738576127386126fe565b6040516080810167ffffffffffffffff81118282101715612738576127386126fe565b805167ffffffffffffffff8116811461262057600080fd5b80516126208161251f565b80516006811061262057600080fd5b600061012082840312156127c957600080fd5b6127d1612714565b82518152602083015160208201526127eb60408401612784565b60408201526127fc6060840161279c565b606082015261280d6080840161279c565b608082015261281e60a0840161279c565b60a082015261282f60c0840161279c565b60c082015261284060e084016127a7565b60e0820152610100928301519281019290925250919050565b6000808335601e1984360301811261287057600080fd5b83018035915067ffffffffffffffff82111561288b57600080fd5b6020019150600581901b360382131561249257600080fd5b85815260806020808301829052908201859052600090869060a08401835b888110156128ec5783356128d48161251f565b63ffffffff16825292820192908201906001016128c1565b506001600160a01b03969096166040850152505050606001529392505050565b60006020828403121561291e57600080fd5b81518015158114611e0957600080fd5b634e487b7160e01b600052601160045260246000fd5b63ffffffff8181168382160190808211156129615761296161292e565b5092915050565b60006020808352608083016bffffffffffffffffffffffff1961298a86612603565b168285015281850135601e198636030181126129a557600080fd5b8501828101903567ffffffffffffffff8111156129c157600080fd5b8060061b36038213156129d357600080fd5b60406060818801528382855260a088019050839450600093505b82841015612a22578435815285850135612a068161251f565b63ffffffff1681870152938101936001939093019281016129ed565b970135606096909601959095525093949350505050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e19843603018112612a6657600080fd5b83018035915067ffffffffffffffff821115612a8157600080fd5b6020019150600681901b360382131561249257600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612ac157600080fd5b6040516040810181811067ffffffffffffffff82111715612ae457612ae46126fe565b604052823581526020830135612af98161251f565b60208201529392505050565b60008235609e19833603018112612b1b57600080fd5b9190910192915050565b80356001600160e01b03198116811461262057600080fd5b600082601f830112612b4e57600080fd5b813567ffffffffffffffff80821115612b6957612b696126fe565b604051601f8301601f19908116603f01168101908282118183101715612b9157612b916126fe565b81604052838152866020858801011115612baa57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461262057600080fd5b600060a08236031215612c0557600080fd5b612c0d61273e565b823567ffffffffffffffff80821115612c2557600080fd5b818501915060808236031215612c3a57600080fd5b612c42612761565b612c4b83612b25565b8152602083013582811115612c5f57600080fd5b612c6b36828601612b3d565b602083015250604083013582811115612c8357600080fd5b612c8f36828601612b3d565b604083015250612ca160608401612b25565b6060820152835250612cb7905060208401612bca565b6020820152612cc860408401612603565b6040820152612cd960608401612603565b6060820152612cea60808401612b25565b608082015292915050565b600060c08284031215612d0757600080fd5b60405160c0810181811067ffffffffffffffff82111715612d2a57612d2a6126fe565b6040528251612d38816125d1565b8152612d4660208401612784565b60208201526040830151612d598161251f565b60408201526060830151612d6c816125d1565b6060820152612d7d60808401612784565b608082015260a0830151612d908161251f565b60a08201529392505050565b63ffffffff8281168282160390808211156129615761296161292e565b600060018201612dcb57612dcb61292e565b5060010190565b81810381811115611db357611db361292e565b80820180821115611db357611db361292e565b60008060008060808587031215612e0e57600080fd5b8451612e19816125d1565b6020860151909450612e2a816125d1565b6040860151909350612e3b816125d1565b6060860151909250612e4c816125d1565b939692955090935050565b634e487b7160e01b600052601260045260246000fd5b600082612e7c57612e7c612e57565b500690565b600082612e9057612e90612e57565b500490565b60008060008060808587031215612eab57600080fd5b612eb485612784565b9350612ec260208601612784565b9250612ed060408601612784565b91506060850151612e4c8161251f565b6000815160005b81811015612f015760208185018101518683015201612ee7565b50600093019283525090919050565b60006001600160e01b03198087168352612f36612f306004850188612ee0565b86612ee0565b9316835250506004019392505050565b600560fa1b8152606086901b6bffffffffffffffffffffffff19166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f8201526000613030613023612ffa602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6bffffffffffffffffffffffff19861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526130f4613023612ffa612fd16130cb601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6bffffffffffffffffffffffff19861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506131cf6131a6600683016130a2565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000611e098284612ee0565b6000602082840312156131f957600080fd5b5051919050565b60ff8181168382160190811115611db357611db361292e565b60ff8281168282160390811115611db357611db361292e56fea264697066735822122082b9f7c9bb74d8dda3a516bc8ded5742bf53db33d7bb0bcf28ca32e5d4176cae64736f6c63430008110033",
|
|
724
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638e323a99116100ee578063bc20a08011610097578063c4d66de811610071578063c4d66de8146103c4578063e78cea92146103d7578063f2fde38b146103ea578063f74b37bd146103fd57600080fd5b8063bc20a08014610387578063c09975cd1461039e578063c1790d77146103b157600080fd5b8063ab7aa6ad116100c8578063ab7aa6ad14610340578063acaac70514610353578063b82bc3991461037457600080fd5b80638e323a99146103075780639039bc1c1461031a5780639f41e13b1461032d57600080fd5b806331d8c6221161015b578063715018a611610135578063715018a6146102b45780637698fa97146102bc5780637b35b4e6146102cf5780638da5cb5b146102e257600080fd5b806331d8c622146102775780633a4159c81461028e5780636ff913c3146102a157600080fd5b8063213f7df71161018c578063213f7df71461020b57806323a1c3071461023e5780632c259d2b1461025157600080fd5b806308553292146101b35780630dc1b8df146101e35780631c6710dd146101f8575b600080fd5b609b546101c99062010000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6101f66101f1366004612531565b610414565b005b6101f6610206366004612566565b61048f565b61022e6102193660046125e6565b60976020526000908152604090205460ff1681565b60405190151581526020016101da565b6101f661024c366004612531565b610780565b6101c961025f366004612625565b60986020526000908152604090205463ffffffff1681565b609a546101c990600160e01b900463ffffffff1681565b6101f661029c3660046125e6565b6107f4565b6101f66102af366004612531565b6108d3565b6101f6610943565b6101f66102ca366004612640565b610957565b6101f66102dd3660046125e6565b611013565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b6101f66103153660046125e6565b6110e7565b6101f6610328366004612625565b6111ca565b6101f661033b3660046126da565b611224565b609a546102ef906001600160a01b031681565b609b546103619061ffff1681565b60405161ffff90911681526020016101da565b6101f6610382366004612531565b611270565b609a546101c990600160c01b900463ffffffff1681565b6065546102ef906001600160a01b031681565b6101f66103bf366004612566565b6112ca565b6101f66103d23660046125e6565b61136e565b6099546102ef906001600160a01b031681565b6101f66103f83660046125e6565b6115f0565b609a546101c990600160a01b900463ffffffff1681565b61041c611680565b609a80547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b63ffffffff8416908102919091179091556040519081527feda69d960fc800ae7f67255cd8b42b338c24e1a655053127fff8bf88a2480d3f906020015b60405180910390a150565b61049c6020830183612625565b33600090815260976020526040812054839160ff90911690816105da576099546040517fe65e19d50000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19861660048201526000916001600160a01b03169063e65e19d59060240161012060405180830381865afa15801561052b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054f91906127b6565b51609a549091506001600160a01b031663df07ce598261056f8780612859565b3389602001356040518663ffffffff1660e01b81526004016105959594939291906128a3565b602060405180830381865afa1580156105b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d6919061290c565b9150505b81806105e35750805b61065a5760405162461bcd60e51b815260206004820152603a60248201527f43616c6c6572206973206e65697468657220612070726f706f73616c2073756260448201527f6d6974746572206e6f7220612077616c6c6574206d656d62657200000000000060648201526084015b60405180910390fd5b6106676020870187612625565b6bffffffffffffffffffffffff19811660009081526098602052604090205463ffffffff1642116106da5760405162461bcd60e51b815260206004820152600d60248201527f57616c6c6574206c6f636b6564000000000000000000000000000000000000006044820152606401610651565b609a546106f490600160a01b900463ffffffff1642612944565b6098600061070560208b018b612625565b6bffffffffffffffffffffffff1916815260208101919091526040908101600020805463ffffffff191663ffffffff93909316929092179091555133907fe17b4ed4828b9f018ca549cfd5f662e5551408093b1db16d94b9cd242e6df1719061076f908a90612968565b60405180910390a250505050505050565b610788611680565b609a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8416908102919091179091556040519081527f085a81d11ac3cf6033d185eccdfc414b8a20da29a555406c068a0a1fdac8afea90602001610484565b6107fc611680565b6001600160a01b03811660009081526097602052604090205460ff1661088a5760405162461bcd60e51b815260206004820152602860248201527f546869732061646472657373206973206e6f7420612070726f706f73616c207360448201527f75626d69747465720000000000000000000000000000000000000000000000006064820152608401610651565b6001600160a01b038116600081815260976020526040808220805460ff19169055517f4017c4f3f844d24f56ade93af205a7ed01bf7f858b90f4b62206be460af2d2269190a250565b6108db611680565b609a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff8416908102919091179091556040519081527fcb0c11e4086618176ceab0afd46b7fa25688cf2a6566ed4845f1fb530571faee90602001610484565b61094b611680565b61095560006116da565b565b60016099546001600160a01b031663e65e19d56109776020870187612625565b6040516001600160e01b031960e084901b1681526bffffffffffffffffffffffff19909116600482015260240161012060405180830381865afa1580156109c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e691906127b6565b60e0015160058111156109fb576109fb612a39565b14610a485760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c69766520737461746500000000006044820152606401610651565b6000610a576020850185612a4f565b905011610aa65760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a6500000000000000006044820152606401610651565b609b5461ffff16610aba6020850185612a4f565b90501115610b0a5760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a650000000000006044820152606401610651565b80610b186020850185612a4f565b905014610b8d5760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e6720657874726120646174610000000000000000000000000000000000006064820152608401610651565b610ba96040840135610ba26020860186612a4f565b9050611739565b6000805b610bba6020860186612a4f565b905081101561100c576000610bd26020870187612a4f565b83818110610be257610be2612a99565b905060400201803603810190610bf89190612aaf565b90506000858584818110610c0e57610c0e612a99565b9050602002810190610c209190612b05565b610c2990612bf3565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610c72939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610cc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce59190612cf5565b9050806040015163ffffffff16600003610d415760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c65640000000000000000000000006044820152606401610651565b609a546040820151610d6091600160c01b900463ffffffff1690612944565b63ffffffff164211610db45760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f74206163686965766564207965746044820152606401610651565b60a081015163ffffffff1615610e0c5760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c726561647920737765707400000000000000000000006044820152606401610651565b610e1b838260000151846118dd565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610e6390600160e01b900463ffffffff1682612d9c565b63ffffffff164210610edd5760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f7420707265736572766564000000000000000000000000000000000000006064820152608401610651565b610eea60208a018a612625565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610f805760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c657400000000000000000000000000000000000000000000000000006064820152608401610651565b84600003610f9057816060015195505b856001600160a01b031682606001516001600160a01b031614610ff55760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c74006044820152606401610651565b50505050808061100490612db9565b915050610bad565b5050505050565b336110266033546001600160a01b031690565b6001600160a01b03161461107c5760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e65720000000000000000006044820152606401610651565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6110ef611680565b6001600160a01b03811660009081526097602052604090205460ff161561117e5760405162461bcd60e51b815260206004820152602c60248201527f54686973206164647265737320697320616c726561647920612070726f706f7360448201527f616c207375626d697474657200000000000000000000000000000000000000006064820152608401610651565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517fe7005265f76a2d6482aaa3a0e969edd45868e3210ff126216a0425f83af1ef209190a250565b6111d2611680565b6bffffffffffffffffffffffff198116600081815260986020526040808220805463ffffffff19169055517f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e69190a250565b61122c611680565b609b805461ffff191661ffff83169081179091556040519081527fcc7b63f885d59808f386320218caf8e6bdaa095b61927dea4e59f9cf6954beab90602001610484565b611278611680565b609b805465ffffffff000019166201000063ffffffff8416908102919091179091556040519081527fafb79fa073ff248ba2f1cd9798891f4ee776a03c9f860eccdebcb1837305a19790602001610484565b60005a90506112d9838361048f565b606554609b546001600160a01b0390911690637ad226dc9062010000900463ffffffff165a6113089085612dd2565b6113129190612de5565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561135157600080fd5b505af1158015611365573d6000803e3d6000fd5b50505050505050565b600054610100900460ff161580801561138e5750600054600160ff909116105b806113a85750303b1580156113a8575060005460ff166001145b61141a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610651565b6000805460ff19166001179055801561143d576000805461ff0019166101001790555b611445611b3b565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa1580156114c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e89190612df8565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609a80549290911677ffffffffffffffffffffffffffffffffffffffffffffffff199092169190911775384000000000000000000000000000000000000000001777ffffffffffffffffffffffffffffffffffffffffffffffff167e01518000001c200000000000000000000000000000000000000000000000001790555050609b805465ffffffffffff19166361a8000517905580156115ec576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6115f8611680565b6001600160a01b0381166116745760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610651565b61167d816116da565b50565b6033546001600160a01b031633146109555760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610651565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600082116117af5760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f000000000000000000000000000000000000000000000000006064820152608401610651565b60006117bb8284612e6d565b90506000826117ca8386612dd2565b6117d49190612e81565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa15801561182b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184f9190612e95565b5092505067ffffffffffffffff8216905061186a8484612de5565b111561100c5760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f68696768000000000000000000000000000000000000000000000000000000006064820152608401610651565b80518051602080830151604080850151606090950151905160009561191f9561190b95909493919201612f10565b604051602081830303815290604052611bae565b845190915081146119985760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d6174636800000000000000000000000000000000000000000000006064820152608401610651565b60008383602001518460400151856060015186608001516040516020016119c3959493929190612f46565b604051602081830303815290604052905060006119fb866020015163ffffffff16856000015160400151611bd590919063ffffffff16565b90506000611a0882611db9565b905080516014148015611a4a5750611a1f83611dd3565b6bffffffffffffffffffffffff1916611a39826000611dfa565b6bffffffffffffffffffffffff1916145b15611a585750505050505050565b80516020148015611abf5750600283604051611a7491906131db565b602060405180830381855afa158015611a91573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ab491906131e7565b611abd82611e10565b145b15611acd5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d6174636800000000000000000000000000000000006064820152608401610651565b600054610100900460ff16611ba65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610651565b610955611e2b565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611be385611e9f565b909250905060018201611c5e5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e670000000000000000000000000000000000000000000000000000000000006064820152608401610651565b808410611cad5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e0000000000000000000000000000006044820152606401610651565b600080611cbb846001612de5565b905060005b86811015611d4357611cd28883611eb6565b92506000198303611d255760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610651565b611d2f8383612de5565b915080611d3b81612db9565b915050611cc0565b50611d4e8782611eb6565b91506000198203611da15760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b65790000000000006044820152606401610651565b611dac878284611f23565b9450505050505b92915050565b6060611db3826008808551611dce9190612dd2565b611ff0565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000611e098383016020015190565b9392505050565b60008151600003611e2357506000919050565b506020015190565b600054610100900460ff16611e965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401610651565b610955336116da565b600080611ead8360006122f5565b91509150915091565b6000611ec3826009612de5565b83511015611ed45750600019611db3565b600080611eeb85611ee6866008612de5565b6122f5565b909250905060018201611f045760001992505050611db3565b80611f10836009612de5565b611f1a9190612de5565b95945050505050565b606081600003611f425750604080516020810190915260008152611e09565b6000611f4e8385612de5565b90508381118015611f60575080855110155b611fac5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e6473000000000000000000000000006044820152606401610651565b604051915082604083010160405282825283850182038460208701018481015b80821015611fe557815183830152602082019150611fcc565b505050509392505050565b6060600084848151811061200657612006612a99565b016020015160f81c90508261201c826001613200565b60ff161461203a575050604080516020810190915260008152611e09565b84612046856001612de5565b8151811061205657612056612a99565b016020015160f81c6000036121155760028160ff161015612087575050604080516020810190915260008152611e09565b600085612095866002612de5565b815181106120a5576120a5612a99565b016020015160f81c90506120ba600283613219565b60ff16811415806120d85750806020141580156120d8575080601414155b156120f6576040518060200160405280600081525092505050611e09565b61210c612104866003612de5565b879083611f23565b92505050611e09565b60006121218686611dfa565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a90000000000000000000000000000000000000000000000000000000000036122355785612178866003612de5565b8151811061218857612188612a99565b60209101015160f81c601414158061220057506121bb60026121aa8688612de5565b6121b49190612dd2565b8790611dfa565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b1561221e576040518060200160405280600081525092505050611e09565b61210c61222c866004612de5565b87906014611f23565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036122dc5785600161228b8688612de5565b6122959190612dd2565b815181106122a5576122a5612a99565b60209101015160f81c6087146122ce576040518060200160405280600081525092505050611e09565b61210c61222c866003612de5565b5050506040805160208101909152600081529392505050565b60008060006123048585612499565b90508060ff1660000361233957600085858151811061232557612325612a99565b016020015190935060f81c91506124929050565b83612345826001613200565b60ff166123529190612de5565b855110156123695760001960009250925050612492565b60008160ff166002036123ad576123a261238e612387876001612de5565b8890611dfa565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612488565b8160ff166004036123fc576123ef6123c9612387876001612de5565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612488565b8160ff166008036124885761247b612418612387876001612de5565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b60008282815181106124ad576124ad612a99565b016020015160f81c60ff036124c457506008611db3565b8282815181106124d6576124d6612a99565b016020015160f81c60fe036124ed57506004611db3565b8282815181106124ff576124ff612a99565b016020015160f81c60fd0361251657506002611db3565b50600092915050565b63ffffffff8116811461167d57600080fd5b60006020828403121561254357600080fd5b8135611e098161251f565b60006060828403121561256057600080fd5b50919050565b6000806040838503121561257957600080fd5b823567ffffffffffffffff8082111561259157600080fd5b61259d8683870161254e565b935060208501359150808211156125b357600080fd5b508301604081860312156125c657600080fd5b809150509250929050565b6001600160a01b038116811461167d57600080fd5b6000602082840312156125f857600080fd5b8135611e09816125d1565b80356bffffffffffffffffffffffff198116811461262057600080fd5b919050565b60006020828403121561263757600080fd5b611e0982612603565b60008060006040848603121561265557600080fd5b833567ffffffffffffffff8082111561266d57600080fd5b6126798783880161254e565b9450602086013591508082111561268f57600080fd5b818601915086601f8301126126a357600080fd5b8135818111156126b257600080fd5b8760208260051b85010111156126c757600080fd5b6020830194508093505050509250925092565b6000602082840312156126ec57600080fd5b813561ffff81168114611e0957600080fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff81118282101715612738576127386126fe565b60405290565b60405160a0810167ffffffffffffffff81118282101715612738576127386126fe565b6040516080810167ffffffffffffffff81118282101715612738576127386126fe565b805167ffffffffffffffff8116811461262057600080fd5b80516126208161251f565b80516006811061262057600080fd5b600061012082840312156127c957600080fd5b6127d1612714565b82518152602083015160208201526127eb60408401612784565b60408201526127fc6060840161279c565b606082015261280d6080840161279c565b608082015261281e60a0840161279c565b60a082015261282f60c0840161279c565b60c082015261284060e084016127a7565b60e0820152610100928301519281019290925250919050565b6000808335601e1984360301811261287057600080fd5b83018035915067ffffffffffffffff82111561288b57600080fd5b6020019150600581901b360382131561249257600080fd5b85815260806020808301829052908201859052600090869060a08401835b888110156128ec5783356128d48161251f565b63ffffffff16825292820192908201906001016128c1565b506001600160a01b03969096166040850152505050606001529392505050565b60006020828403121561291e57600080fd5b81518015158114611e0957600080fd5b634e487b7160e01b600052601160045260246000fd5b63ffffffff8181168382160190808211156129615761296161292e565b5092915050565b60006020808352608083016bffffffffffffffffffffffff1961298a86612603565b168285015281850135601e198636030181126129a557600080fd5b8501828101903567ffffffffffffffff8111156129c157600080fd5b8060061b36038213156129d357600080fd5b60406060818801528382855260a088019050839450600093505b82841015612a22578435815285850135612a068161251f565b63ffffffff1681870152938101936001939093019281016129ed565b970135606096909601959095525093949350505050565b634e487b7160e01b600052602160045260246000fd5b6000808335601e19843603018112612a6657600080fd5b83018035915067ffffffffffffffff821115612a8157600080fd5b6020019150600681901b360382131561249257600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612ac157600080fd5b6040516040810181811067ffffffffffffffff82111715612ae457612ae46126fe565b604052823581526020830135612af98161251f565b60208201529392505050565b60008235609e19833603018112612b1b57600080fd5b9190910192915050565b80356001600160e01b03198116811461262057600080fd5b600082601f830112612b4e57600080fd5b813567ffffffffffffffff80821115612b6957612b696126fe565b604051601f8301601f19908116603f01168101908282118183101715612b9157612b916126fe565b81604052838152866020858801011115612baa57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff198116811461262057600080fd5b600060a08236031215612c0557600080fd5b612c0d61273e565b823567ffffffffffffffff80821115612c2557600080fd5b818501915060808236031215612c3a57600080fd5b612c42612761565b612c4b83612b25565b8152602083013582811115612c5f57600080fd5b612c6b36828601612b3d565b602083015250604083013582811115612c8357600080fd5b612c8f36828601612b3d565b604083015250612ca160608401612b25565b6060820152835250612cb7905060208401612bca565b6020820152612cc860408401612603565b6040820152612cd960608401612603565b6060820152612cea60808401612b25565b608082015292915050565b600060c08284031215612d0757600080fd5b60405160c0810181811067ffffffffffffffff82111715612d2a57612d2a6126fe565b6040528251612d38816125d1565b8152612d4660208401612784565b60208201526040830151612d598161251f565b60408201526060830151612d6c816125d1565b6060820152612d7d60808401612784565b608082015260a0830151612d908161251f565b60a08201529392505050565b63ffffffff8281168282160390808211156129615761296161292e565b600060018201612dcb57612dcb61292e565b5060010190565b81810381811115611db357611db361292e565b80820180821115611db357611db361292e565b60008060008060808587031215612e0e57600080fd5b8451612e19816125d1565b6020860151909450612e2a816125d1565b6040860151909350612e3b816125d1565b6060860151909250612e4c816125d1565b939692955090935050565b634e487b7160e01b600052601260045260246000fd5b600082612e7c57612e7c612e57565b500690565b600082612e9057612e90612e57565b500490565b60008060008060808587031215612eab57600080fd5b612eb485612784565b9350612ec260208601612784565b9250612ed060408601612784565b91506060850151612e4c8161251f565b6000815160005b81811015612f015760208185018101518683015201612ee7565b50600093019283525090919050565b60006001600160e01b03198087168352612f36612f306004850188612ee0565b86612ee0565b9316835250506004019392505050565b600560fa1b8152606086901b6bffffffffffffffffffffffff19166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f8201526000613030613023612ffa602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6bffffffffffffffffffffffff19861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526130f4613023612ffa612fd16130cb601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6bffffffffffffffffffffffff19861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506131cf6131a6600683016130a2565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000611e098284612ee0565b6000602082840312156131f957600080fd5b5051919050565b60ff8181168382160190811115611db357611db361292e565b60ff8281168282160390811115611db357611db361292e56fea264697066735822122082b9f7c9bb74d8dda3a516bc8ded5742bf53db33d7bb0bcf28ca32e5d4176cae64736f6c63430008110033",
|
|
728
|
+
"bytecode": "0x608060405234801561001057600080fd5b5061336e806100206000396000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638e323a99116100ee578063bc20a08011610097578063c4d66de811610071578063c4d66de8146103df578063e78cea92146103f2578063f2fde38b14610405578063f74b37bd1461041857600080fd5b8063bc20a080146103a2578063c09975cd146103b9578063c1790d77146103cc57600080fd5b8063ab7aa6ad116100c8578063ab7aa6ad1461035b578063acaac7051461036e578063b82bc3991461038f57600080fd5b80638e323a99146103225780639039bc1c146103355780639f41e13b1461034857600080fd5b806331d8c6221161015b578063715018a611610135578063715018a6146102cf5780637698fa97146102d75780637b35b4e6146102ea5780638da5cb5b146102fd57600080fd5b806331d8c622146102925780633a4159c8146102a95780636ff913c3146102bc57600080fd5b8063213f7df71161018c578063213f7df71461020b57806323a1c3071461023e5780632c259d2b1461025157600080fd5b806308553292146101b35780630dc1b8df146101e35780631c6710dd146101f8575b600080fd5b609b546101c99062010000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6101f66101f13660046125ff565b61042f565b005b6101f6610206366004612634565b6104aa565b61022e6102193660046126b4565b60976020526000908152604090205460ff1681565b60405190151581526020016101da565b6101f661024c3660046125ff565b6107e6565b61028461025f3660046126f3565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101da929190612724565b609a546101c990600160e01b900463ffffffff1681565b6101f66102b73660046126b4565b61085a565b6101f66102ca3660046125ff565b610939565b6101f66109a9565b6101f66102e536600461275c565b6109bd565b6101f66102f83660046126b4565b611079565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b6101f66103303660046126b4565b61114d565b6101f66103433660046126f3565b611230565b6101f66103563660046127f6565b6112f2565b609a5461030a906001600160a01b031681565b609b5461037c9061ffff1681565b60405161ffff90911681526020016101da565b6101f661039d3660046125ff565b61133e565b609a546101c990600160c01b900463ffffffff1681565b60655461030a906001600160a01b031681565b6101f66103da366004612634565b611398565b6101f66103ed3660046126b4565b61143c565b60995461030a906001600160a01b031681565b6101f66104133660046126b4565b6116be565b609a546101c990600160a01b900463ffffffff1681565b61043761174e565b609a80547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b63ffffffff8416908102919091179091556040519081527feda69d960fc800ae7f67255cd8b42b338c24e1a655053127fff8bf88a2480d3f906020015b60405180910390a150565b6104b760208301836126f3565b33600090815260976020526040812054839160ff90911690816105f5576099546040517fe65e19d50000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19861660048201526000916001600160a01b03169063e65e19d59060240161012060405180830381865afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a91906128d2565b51609a549091506001600160a01b031663df07ce598261058a8780612975565b3389602001356040518663ffffffff1660e01b81526004016105b09594939291906129bf565b602060405180830381865afa1580156105cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f19190612a28565b9150505b81806105fe5750805b6106755760405162461bcd60e51b815260206004820152603a60248201527f43616c6c6572206973206e65697468657220612070726f706f73616c2073756260448201527f6d6974746572206e6f7220612077616c6c6574206d656d62657200000000000060648201526084015b60405180910390fd5b61068260208701876126f3565b6bffffffffffffffffffffffff19811660009081526098602052604090205463ffffffff1642116106f55760405162461bcd60e51b815260206004820152600d60248201527f57616c6c6574206c6f636b656400000000000000000000000000000000000000604482015260640161066c565b60408051808201909152609a54819061071b90600160a01b900463ffffffff1642612a60565b63ffffffff168152602001600190526098600061073b60208b018b6126f3565b6bffffffffffffffffffffffff191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600481111561079c5761079c61270e565b0217905550506040513391507fe17b4ed4828b9f018ca549cfd5f662e5551408093b1db16d94b9cd242e6df171906107d5908a90612a84565b60405180910390a250505050505050565b6107ee61174e565b609a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8416908102919091179091556040519081527f085a81d11ac3cf6033d185eccdfc414b8a20da29a555406c068a0a1fdac8afea9060200161049f565b61086261174e565b6001600160a01b03811660009081526097602052604090205460ff166108f05760405162461bcd60e51b815260206004820152602860248201527f546869732061646472657373206973206e6f7420612070726f706f73616c207360448201527f75626d6974746572000000000000000000000000000000000000000000000000606482015260840161066c565b6001600160a01b038116600081815260976020526040808220805460ff19169055517f4017c4f3f844d24f56ade93af205a7ed01bf7f858b90f4b62206be460af2d2269190a250565b61094161174e565b609a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff8416908102919091179091556040519081527fcb0c11e4086618176ceab0afd46b7fa25688cf2a6566ed4845f1fb530571faee9060200161049f565b6109b161174e565b6109bb60006117a8565b565b60016099546001600160a01b031663e65e19d56109dd60208701876126f3565b6040516001600160e01b031960e084901b1681526bffffffffffffffffffffffff19909116600482015260240161012060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906128d2565b60e001516005811115610a6157610a6161270e565b14610aae5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161066c565b6000610abd6020850185612b55565b905011610b0c5760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161066c565b609b5461ffff16610b206020850185612b55565b90501115610b705760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161066c565b80610b7e6020850185612b55565b905014610bf35760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161066c565b610c0f6040840135610c086020860186612b55565b9050611807565b6000805b610c206020860186612b55565b9050811015611072576000610c386020870187612b55565b83818110610c4857610c48612b9f565b905060400201803603810190610c5e9190612bb5565b90506000858584818110610c7457610c74612b9f565b9050602002810190610c869190612c0b565b610c8f90612cf9565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610cd8939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612dfb565b9050806040015163ffffffff16600003610da75760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161066c565b609a546040820151610dc691600160c01b900463ffffffff1690612a60565b63ffffffff164211610e1a5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161066c565b60a081015163ffffffff1615610e725760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161066c565b610e81838260000151846119ab565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610ec990600160e01b900463ffffffff1682612ea2565b63ffffffff164210610f435760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161066c565b610f5060208a018a6126f3565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610fe65760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161066c565b84600003610ff657816060015195505b856001600160a01b031682606001516001600160a01b03161461105b5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161066c565b50505050808061106a90612ebf565b915050610c13565b5050505050565b3361108c6033546001600160a01b031690565b6001600160a01b0316146110e25760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161066c565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61115561174e565b6001600160a01b03811660009081526097602052604090205460ff16156111e45760405162461bcd60e51b815260206004820152602c60248201527f54686973206164647265737320697320616c726561647920612070726f706f7360448201527f616c207375626d69747465720000000000000000000000000000000000000000606482015260840161066c565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517fe7005265f76a2d6482aaa3a0e969edd45868e3210ff126216a0425f83af1ef209190a250565b61123861174e565b60408051808201909152600080825260208201526bffffffffffffffffffffffff19821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360048111156112ae576112ae61270e565b0217905550506040516bffffffffffffffffffffffff19831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b6112fa61174e565b609b805461ffff191661ffff83169081179091556040519081527fcc7b63f885d59808f386320218caf8e6bdaa095b61927dea4e59f9cf6954beab9060200161049f565b61134661174e565b609b805465ffffffff000019166201000063ffffffff8416908102919091179091556040519081527fafb79fa073ff248ba2f1cd9798891f4ee776a03c9f860eccdebcb1837305a1979060200161049f565b60005a90506113a783836104aa565b606554609b546001600160a01b0390911690637ad226dc9062010000900463ffffffff165a6113d69085612ed8565b6113e09190612eeb565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b50505050505050565b600054610100900460ff161580801561145c5750600054600160ff909116105b806114765750303b158015611476575060005460ff166001145b6114e85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066c565b6000805460ff19166001179055801561150b576000805461ff0019166101001790555b611513611c09565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa158015611592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b69190612efe565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609a80549290911677ffffffffffffffffffffffffffffffffffffffffffffffff199092169190911775384000000000000000000000000000000000000000001777ffffffffffffffffffffffffffffffffffffffffffffffff167e01518000001c200000000000000000000000000000000000000000000000001790555050609b805465ffffffffffff19166361a8000517905580156116ba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6116c661174e565b6001600160a01b0381166117425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066c565b61174b816117a8565b50565b6033546001600160a01b031633146109bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066c565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000821161187d5760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161066c565b60006118898284612f73565b90506000826118988386612ed8565b6118a29190612f87565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612f9b565b5092505067ffffffffffffffff821690506119388484612eeb565b11156110725760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161066c565b8051805160208083015160408085015160609095015190516000956119ed956119d995909493919201613016565b604051602081830303815290604052611c7c565b84519091508114611a665760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161066c565b6000838360200151846040015185606001518660800151604051602001611a9195949392919061304c565b60405160208183030381529060405290506000611ac9866020015163ffffffff16856000015160400151611ca390919063ffffffff16565b90506000611ad682611e87565b905080516014148015611b185750611aed83611ea1565b6bffffffffffffffffffffffff1916611b07826000611ec8565b6bffffffffffffffffffffffff1916145b15611b265750505050505050565b80516020148015611b8d5750600283604051611b4291906132e1565b602060405180830381855afa158015611b5f573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611b8291906132ed565b611b8b82611ede565b145b15611b9b5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161066c565b600054610100900460ff16611c745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161066c565b6109bb611ef9565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611cb185611f6d565b909250905060018201611d2c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161066c565b808410611d7b5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161066c565b600080611d89846001612eeb565b905060005b86811015611e1157611da08883611f84565b92506000198303611df35760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161066c565b611dfd8383612eeb565b915080611e0981612ebf565b915050611d8e565b50611e1c8782611f84565b91506000198203611e6f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161066c565b611e7a878284611ff1565b9450505050505b92915050565b6060611e81826008808551611e9c9190612ed8565b6120be565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000611ed78383016020015190565b9392505050565b60008151600003611ef157506000919050565b506020015190565b600054610100900460ff16611f645760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161066c565b6109bb336117a8565b600080611f7b8360006123c3565b91509150915091565b6000611f91826009612eeb565b83511015611fa25750600019611e81565b600080611fb985611fb4866008612eeb565b6123c3565b909250905060018201611fd25760001992505050611e81565b80611fde836009612eeb565b611fe89190612eeb565b95945050505050565b6060816000036120105750604080516020810190915260008152611ed7565b600061201c8385612eeb565b9050838111801561202e575080855110155b61207a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161066c565b604051915082604083010160405282825283850182038460208701018481015b808210156120b35781518383015260208201915061209a565b505050509392505050565b606060008484815181106120d4576120d4612b9f565b016020015160f81c9050826120ea826001613306565b60ff1614612108575050604080516020810190915260008152611ed7565b84612114856001612eeb565b8151811061212457612124612b9f565b016020015160f81c6000036121e35760028160ff161015612155575050604080516020810190915260008152611ed7565b600085612163866002612eeb565b8151811061217357612173612b9f565b016020015160f81c905061218860028361331f565b60ff16811415806121a65750806020141580156121a6575080601414155b156121c4576040518060200160405280600081525092505050611ed7565b6121da6121d2866003612eeb565b879083611ff1565b92505050611ed7565b60006121ef8686611ec8565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a90000000000000000000000000000000000000000000000000000000000036123035785612246866003612eeb565b8151811061225657612256612b9f565b60209101015160f81c60141415806122ce575061228960026122788688612eeb565b6122829190612ed8565b8790611ec8565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b156122ec576040518060200160405280600081525092505050611ed7565b6121da6122fa866004612eeb565b87906014611ff1565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036123aa578560016123598688612eeb565b6123639190612ed8565b8151811061237357612373612b9f565b60209101015160f81c60871461239c576040518060200160405280600081525092505050611ed7565b6121da6122fa866003612eeb565b5050506040805160208101909152600081529392505050565b60008060006123d28585612567565b90508060ff166000036124075760008585815181106123f3576123f3612b9f565b016020015190935060f81c91506125609050565b83612413826001613306565b60ff166124209190612eeb565b855110156124375760001960009250925050612560565b60008160ff1660020361247b5761247061245c612455876001612eeb565b8890611ec8565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612556565b8160ff166004036124ca576124bd612497612455876001612eeb565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612556565b8160ff16600803612556576125496124e6612455876001612eeb565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061257b5761257b612b9f565b016020015160f81c60ff0361259257506008611e81565b8282815181106125a4576125a4612b9f565b016020015160f81c60fe036125bb57506004611e81565b8282815181106125cd576125cd612b9f565b016020015160f81c60fd036125e457506002611e81565b50600092915050565b63ffffffff8116811461174b57600080fd5b60006020828403121561261157600080fd5b8135611ed7816125ed565b60006060828403121561262e57600080fd5b50919050565b6000806040838503121561264757600080fd5b823567ffffffffffffffff8082111561265f57600080fd5b61266b8683870161261c565b9350602085013591508082111561268157600080fd5b5083016040818603121561269457600080fd5b809150509250929050565b6001600160a01b038116811461174b57600080fd5b6000602082840312156126c657600080fd5b8135611ed78161269f565b80356bffffffffffffffffffffffff19811681146126ee57600080fd5b919050565b60006020828403121561270557600080fd5b611ed7826126d1565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016005831061274f57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60008060006040848603121561277157600080fd5b833567ffffffffffffffff8082111561278957600080fd5b6127958783880161261c565b945060208601359150808211156127ab57600080fd5b818601915086601f8301126127bf57600080fd5b8135818111156127ce57600080fd5b8760208260051b85010111156127e357600080fd5b6020830194508093505050509250925092565b60006020828403121561280857600080fd5b813561ffff81168114611ed757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156128545761285461281a565b60405290565b60405160a0810167ffffffffffffffff811182821017156128545761285461281a565b6040516080810167ffffffffffffffff811182821017156128545761285461281a565b805167ffffffffffffffff811681146126ee57600080fd5b80516126ee816125ed565b8051600681106126ee57600080fd5b600061012082840312156128e557600080fd5b6128ed612830565b8251815260208301516020820152612907604084016128a0565b6040820152612918606084016128b8565b6060820152612929608084016128b8565b608082015261293a60a084016128b8565b60a082015261294b60c084016128b8565b60c082015261295c60e084016128c3565b60e0820152610100928301519281019290925250919050565b6000808335601e1984360301811261298c57600080fd5b83018035915067ffffffffffffffff8211156129a757600080fd5b6020019150600581901b360382131561256057600080fd5b85815260806020808301829052908201859052600090869060a08401835b88811015612a085783356129f0816125ed565b63ffffffff16825292820192908201906001016129dd565b506001600160a01b03969096166040850152505050606001529392505050565b600060208284031215612a3a57600080fd5b81518015158114611ed757600080fd5b634e487b7160e01b600052601160045260246000fd5b63ffffffff818116838216019080821115612a7d57612a7d612a4a565b5092915050565b60006020808352608083016bffffffffffffffffffffffff19612aa6866126d1565b168285015281850135601e19863603018112612ac157600080fd5b8501828101903567ffffffffffffffff811115612add57600080fd5b8060061b3603821315612aef57600080fd5b60406060818801528382855260a088019050839450600093505b82841015612b3e578435815285850135612b22816125ed565b63ffffffff168187015293810193600193909301928101612b09565b970135606096909601959095525093949350505050565b6000808335601e19843603018112612b6c57600080fd5b83018035915067ffffffffffffffff821115612b8757600080fd5b6020019150600681901b360382131561256057600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612bc757600080fd5b6040516040810181811067ffffffffffffffff82111715612bea57612bea61281a565b604052823581526020830135612bff816125ed565b60208201529392505050565b60008235609e19833603018112612c2157600080fd5b9190910192915050565b80356001600160e01b0319811681146126ee57600080fd5b600082601f830112612c5457600080fd5b813567ffffffffffffffff80821115612c6f57612c6f61281a565b604051601f8301601f19908116603f01168101908282118183101715612c9757612c9761281a565b81604052838152866020858801011115612cb057600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146126ee57600080fd5b600060a08236031215612d0b57600080fd5b612d1361285a565b823567ffffffffffffffff80821115612d2b57600080fd5b818501915060808236031215612d4057600080fd5b612d4861287d565b612d5183612c2b565b8152602083013582811115612d6557600080fd5b612d7136828601612c43565b602083015250604083013582811115612d8957600080fd5b612d9536828601612c43565b604083015250612da760608401612c2b565b6060820152835250612dbd905060208401612cd0565b6020820152612dce604084016126d1565b6040820152612ddf606084016126d1565b6060820152612df060808401612c2b565b608082015292915050565b600060c08284031215612e0d57600080fd5b60405160c0810181811067ffffffffffffffff82111715612e3057612e3061281a565b6040528251612e3e8161269f565b8152612e4c602084016128a0565b60208201526040830151612e5f816125ed565b60408201526060830151612e728161269f565b6060820152612e83608084016128a0565b608082015260a0830151612e96816125ed565b60a08201529392505050565b63ffffffff828116828216039080821115612a7d57612a7d612a4a565b600060018201612ed157612ed1612a4a565b5060010190565b81810381811115611e8157611e81612a4a565b80820180821115611e8157611e81612a4a565b60008060008060808587031215612f1457600080fd5b8451612f1f8161269f565b6020860151909450612f308161269f565b6040860151909350612f418161269f565b6060860151909250612f528161269f565b939692955090935050565b634e487b7160e01b600052601260045260246000fd5b600082612f8257612f82612f5d565b500690565b600082612f9657612f96612f5d565b500490565b60008060008060808587031215612fb157600080fd5b612fba856128a0565b9350612fc8602086016128a0565b9250612fd6604086016128a0565b91506060850151612f52816125ed565b6000815160005b818110156130075760208185018101518683015201612fed565b50600093019283525090919050565b60006001600160e01b0319808716835261303c6130366004850188612fe6565b86612fe6565b9316835250506004019392505050565b600560fa1b8152606086901b6bffffffffffffffffffffffff19166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f8201526000613136613129613100602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6bffffffffffffffffffffffff19861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526131fa6131296131006130d76131d1601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6bffffffffffffffffffffffff19861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506132d56132ac600683016131a8565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000611ed78284612fe6565b6000602082840312156132ff57600080fd5b5051919050565b60ff8181168382160190811115611e8157611e81612a4a565b60ff8281168282160390811115611e8157611e81612a4a56fea2646970667358221220e5fed6df6b70bdd123327503dd2c91e239c28e413b410b6709004274e076f8d064736f6c63430008110033",
|
|
729
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638e323a99116100ee578063bc20a08011610097578063c4d66de811610071578063c4d66de8146103df578063e78cea92146103f2578063f2fde38b14610405578063f74b37bd1461041857600080fd5b8063bc20a080146103a2578063c09975cd146103b9578063c1790d77146103cc57600080fd5b8063ab7aa6ad116100c8578063ab7aa6ad1461035b578063acaac7051461036e578063b82bc3991461038f57600080fd5b80638e323a99146103225780639039bc1c146103355780639f41e13b1461034857600080fd5b806331d8c6221161015b578063715018a611610135578063715018a6146102cf5780637698fa97146102d75780637b35b4e6146102ea5780638da5cb5b146102fd57600080fd5b806331d8c622146102925780633a4159c8146102a95780636ff913c3146102bc57600080fd5b8063213f7df71161018c578063213f7df71461020b57806323a1c3071461023e5780632c259d2b1461025157600080fd5b806308553292146101b35780630dc1b8df146101e35780631c6710dd146101f8575b600080fd5b609b546101c99062010000900463ffffffff1681565b60405163ffffffff90911681526020015b60405180910390f35b6101f66101f13660046125ff565b61042f565b005b6101f6610206366004612634565b6104aa565b61022e6102193660046126b4565b60976020526000908152604090205460ff1681565b60405190151581526020016101da565b6101f661024c3660046125ff565b6107e6565b61028461025f3660046126f3565b60986020526000908152604090205463ffffffff811690640100000000900460ff1682565b6040516101da929190612724565b609a546101c990600160e01b900463ffffffff1681565b6101f66102b73660046126b4565b61085a565b6101f66102ca3660046125ff565b610939565b6101f66109a9565b6101f66102e536600461275c565b6109bd565b6101f66102f83660046126b4565b611079565b6033546001600160a01b03165b6040516001600160a01b0390911681526020016101da565b6101f66103303660046126b4565b61114d565b6101f66103433660046126f3565b611230565b6101f66103563660046127f6565b6112f2565b609a5461030a906001600160a01b031681565b609b5461037c9061ffff1681565b60405161ffff90911681526020016101da565b6101f661039d3660046125ff565b61133e565b609a546101c990600160c01b900463ffffffff1681565b60655461030a906001600160a01b031681565b6101f66103da366004612634565b611398565b6101f66103ed3660046126b4565b61143c565b60995461030a906001600160a01b031681565b6101f66104133660046126b4565b6116be565b609a546101c990600160a01b900463ffffffff1681565b61043761174e565b609a80547fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff16600160c01b63ffffffff8416908102919091179091556040519081527feda69d960fc800ae7f67255cd8b42b338c24e1a655053127fff8bf88a2480d3f906020015b60405180910390a150565b6104b760208301836126f3565b33600090815260976020526040812054839160ff90911690816105f5576099546040517fe65e19d50000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff19861660048201526000916001600160a01b03169063e65e19d59060240161012060405180830381865afa158015610546573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061056a91906128d2565b51609a549091506001600160a01b031663df07ce598261058a8780612975565b3389602001356040518663ffffffff1660e01b81526004016105b09594939291906129bf565b602060405180830381865afa1580156105cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f19190612a28565b9150505b81806105fe5750805b6106755760405162461bcd60e51b815260206004820152603a60248201527f43616c6c6572206973206e65697468657220612070726f706f73616c2073756260448201527f6d6974746572206e6f7220612077616c6c6574206d656d62657200000000000060648201526084015b60405180910390fd5b61068260208701876126f3565b6bffffffffffffffffffffffff19811660009081526098602052604090205463ffffffff1642116106f55760405162461bcd60e51b815260206004820152600d60248201527f57616c6c6574206c6f636b656400000000000000000000000000000000000000604482015260640161066c565b60408051808201909152609a54819061071b90600160a01b900463ffffffff1642612a60565b63ffffffff168152602001600190526098600061073b60208b018b6126f3565b6bffffffffffffffffffffffff191681526020808201929092526040016000208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff19161764010000000083600481111561079c5761079c61270e565b0217905550506040513391507fe17b4ed4828b9f018ca549cfd5f662e5551408093b1db16d94b9cd242e6df171906107d5908a90612a84565b60405180910390a250505050505050565b6107ee61174e565b609a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b63ffffffff8416908102919091179091556040519081527f085a81d11ac3cf6033d185eccdfc414b8a20da29a555406c068a0a1fdac8afea9060200161049f565b61086261174e565b6001600160a01b03811660009081526097602052604090205460ff166108f05760405162461bcd60e51b815260206004820152602860248201527f546869732061646472657373206973206e6f7420612070726f706f73616c207360448201527f75626d6974746572000000000000000000000000000000000000000000000000606482015260840161066c565b6001600160a01b038116600081815260976020526040808220805460ff19169055517f4017c4f3f844d24f56ade93af205a7ed01bf7f858b90f4b62206be460af2d2269190a250565b61094161174e565b609a80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16600160e01b63ffffffff8416908102919091179091556040519081527fcb0c11e4086618176ceab0afd46b7fa25688cf2a6566ed4845f1fb530571faee9060200161049f565b6109b161174e565b6109bb60006117a8565b565b60016099546001600160a01b031663e65e19d56109dd60208701876126f3565b6040516001600160e01b031960e084901b1681526bffffffffffffffffffffffff19909116600482015260240161012060405180830381865afa158015610a28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a4c91906128d2565b60e001516005811115610a6157610a6161270e565b14610aae5760405162461bcd60e51b815260206004820152601b60248201527f57616c6c6574206973206e6f7420696e204c6976652073746174650000000000604482015260640161066c565b6000610abd6020850185612b55565b905011610b0c5760405162461bcd60e51b815260206004820152601860248201527f53776565702062656c6f7720746865206d696e2073697a650000000000000000604482015260640161066c565b609b5461ffff16610b206020850185612b55565b90501115610b705760405162461bcd60e51b815260206004820152601a60248201527f5377656570206578636565647320746865206d61782073697a65000000000000604482015260640161066c565b80610b7e6020850185612b55565b905014610bf35760405162461bcd60e51b815260206004820152602e60248201527f45616368206465706f736974206b6579206d7573742068617665206d6174636860448201527f696e672065787472612064617461000000000000000000000000000000000000606482015260840161066c565b610c0f6040840135610c086020860186612b55565b9050611807565b6000805b610c206020860186612b55565b9050811015611072576000610c386020870187612b55565b83818110610c4857610c48612b9f565b905060400201803603810190610c5e9190612bb5565b90506000858584818110610c7457610c74612b9f565b9050602002810190610c869190612c0b565b610c8f90612cf9565b60995483516020808601516040519495506000946001600160a01b039094169363b02c43d093610cd8939092910191825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815290829052805160209091012060e083901b6001600160e01b0319168252600482015260240160c060405180830381865afa158015610d27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4b9190612dfb565b9050806040015163ffffffff16600003610da75760405162461bcd60e51b815260206004820152601460248201527f4465706f736974206e6f742072657665616c6564000000000000000000000000604482015260640161066c565b609a546040820151610dc691600160c01b900463ffffffff1690612a60565b63ffffffff164211610e1a5760405162461bcd60e51b815260206004820181905260248201527f4465706f736974206d696e20616765206e6f7420616368696576656420796574604482015260640161066c565b60a081015163ffffffff1615610e725760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c72656164792073776570740000000000000000000000604482015260640161066c565b610e81838260000151846119ab565b608082015160009060d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c17609a54909150610ec990600160e01b900463ffffffff1682612ea2565b63ffffffff164210610f435760405162461bcd60e51b815260206004820152602d60248201527f4465706f73697420726566756e6420736166657479206d617267696e2069732060448201527f6e6f742070726573657276656400000000000000000000000000000000000000606482015260840161066c565b610f5060208a018a6126f3565b6bffffffffffffffffffffffff191683604001516bffffffffffffffffffffffff191614610fe65760405162461bcd60e51b815260206004820152602660248201527f4465706f73697420636f6e74726f6c6c656420627920646966666572656e742060448201527f77616c6c65740000000000000000000000000000000000000000000000000000606482015260840161066c565b84600003610ff657816060015195505b856001600160a01b031682606001516001600160a01b03161461105b5760405162461bcd60e51b815260206004820152601f60248201527f4465706f736974207461726765747320646966666572656e74207661756c7400604482015260640161066c565b50505050808061106a90612ebf565b915050610c13565b5050505050565b3361108c6033546001600160a01b031690565b6001600160a01b0316146110e25760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000604482015260640161066c565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a16065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61115561174e565b6001600160a01b03811660009081526097602052604090205460ff16156111e45760405162461bcd60e51b815260206004820152602c60248201527f54686973206164647265737320697320616c726561647920612070726f706f7360448201527f616c207375626d69747465720000000000000000000000000000000000000000606482015260840161066c565b6001600160a01b038116600081815260976020526040808220805460ff19166001179055517fe7005265f76a2d6482aaa3a0e969edd45868e3210ff126216a0425f83af1ef209190a250565b61123861174e565b60408051808201909152600080825260208201526bffffffffffffffffffffffff19821660009081526098602090815260409091208251815463ffffffff90911663ffffffff19821681178355928401519192839164ffffffffff1916176401000000008360048111156112ae576112ae61270e565b0217905550506040516bffffffffffffffffffffffff19831691507f5ea2f0397ee52fe8e2e6460e92b334c996f3580dc76c022d41b290cb985f41e690600090a250565b6112fa61174e565b609b805461ffff191661ffff83169081179091556040519081527fcc7b63f885d59808f386320218caf8e6bdaa095b61927dea4e59f9cf6954beab9060200161049f565b61134661174e565b609b805465ffffffff000019166201000063ffffffff8416908102919091179091556040519081527fafb79fa073ff248ba2f1cd9798891f4ee776a03c9f860eccdebcb1837305a1979060200161049f565b60005a90506113a783836104aa565b606554609b546001600160a01b0390911690637ad226dc9062010000900463ffffffff165a6113d69085612ed8565b6113e09190612eeb565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b15801561141f57600080fd5b505af1158015611433573d6000803e3d6000fd5b50505050505050565b600054610100900460ff161580801561145c5750600054600160ff909116105b806114765750303b158015611476575060005460ff166001145b6114e85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161066c565b6000805460ff19166001179055801561150b576000805461ff0019166101001790555b611513611c09565b6099805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155604080517fa9de2f3a000000000000000000000000000000000000000000000000000000008152905163a9de2f3a916004808201926080929091908290030181865afa158015611592573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b69190612efe565b6065805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03928316179055609a80549290911677ffffffffffffffffffffffffffffffffffffffffffffffff199092169190911775384000000000000000000000000000000000000000001777ffffffffffffffffffffffffffffffffffffffffffffffff167e01518000001c200000000000000000000000000000000000000000000000001790555050609b805465ffffffffffff19166361a8000517905580156116ba576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6116c661174e565b6001600160a01b0381166117425760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161066c565b61174b816117a8565b50565b6033546001600160a01b031633146109bb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161066c565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000821161187d5760405162461bcd60e51b815260206004820152602760248201527f50726f706f736564207472616e73616374696f6e206665652063616e6e6f742060448201527f6265207a65726f00000000000000000000000000000000000000000000000000606482015260840161066c565b60006118898284612f73565b90506000826118988386612ed8565b6118a29190612f87565b90506000609960009054906101000a90046001600160a01b03166001600160a01b031663c42b64d06040518163ffffffff1660e01b8152600401608060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d9190612f9b565b5092505067ffffffffffffffff821690506119388484612eeb565b11156110725760405162461bcd60e51b8152602060048201526024808201527f50726f706f736564207472616e73616374696f6e2066656520697320746f6f2060448201527f6869676800000000000000000000000000000000000000000000000000000000606482015260840161066c565b8051805160208083015160408085015160609095015190516000956119ed956119d995909493919201613016565b604051602081830303815290604052611c7c565b84519091508114611a665760405162461bcd60e51b815260206004820152602960248201527f457874726120696e666f2066756e64696e67207478206861736820646f65732060448201527f6e6f74206d617463680000000000000000000000000000000000000000000000606482015260840161066c565b6000838360200151846040015185606001518660800151604051602001611a9195949392919061304c565b60405160208183030381529060405290506000611ac9866020015163ffffffff16856000015160400151611ca390919063ffffffff16565b90506000611ad682611e87565b905080516014148015611b185750611aed83611ea1565b6bffffffffffffffffffffffff1916611b07826000611ec8565b6bffffffffffffffffffffffff1916145b15611b265750505050505050565b80516020148015611b8d5750600283604051611b4291906132e1565b602060405180830381855afa158015611b5f573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611b8291906132ed565b611b8b82611ede565b145b15611b9b5750505050505050565b60405162461bcd60e51b815260206004820152602f60248201527f457874726120696e666f2066756e64696e67206f75747075742073637269707460448201527f20646f6573206e6f74206d617463680000000000000000000000000000000000606482015260840161066c565b600054610100900460ff16611c745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161066c565b6109bb611ef9565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b6060600080611cb185611f6d565b909250905060018201611d2c5760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e7420706172736960448201527f6e67000000000000000000000000000000000000000000000000000000000000606482015260840161066c565b808410611d7b5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e000000000000000000000000000000604482015260640161066c565b600080611d89846001612eeb565b905060005b86811015611e1157611da08883611f84565b92506000198303611df35760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161066c565b611dfd8383612eeb565b915080611e0981612ebf565b915050611d8e565b50611e1c8782611f84565b91506000198203611e6f5760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b6579000000000000604482015260640161066c565b611e7a878284611ff1565b9450505050505b92915050565b6060611e81826008808551611e9c9190612ed8565b6120be565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b6000611ed78383016020015190565b9392505050565b60008151600003611ef157506000919050565b506020015190565b600054610100900460ff16611f645760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161066c565b6109bb336117a8565b600080611f7b8360006123c3565b91509150915091565b6000611f91826009612eeb565b83511015611fa25750600019611e81565b600080611fb985611fb4866008612eeb565b6123c3565b909250905060018201611fd25760001992505050611e81565b80611fde836009612eeb565b611fe89190612eeb565b95945050505050565b6060816000036120105750604080516020810190915260008152611ed7565b600061201c8385612eeb565b9050838111801561202e575080855110155b61207a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e647300000000000000000000000000604482015260640161066c565b604051915082604083010160405282825283850182038460208701018481015b808210156120b35781518383015260208201915061209a565b505050509392505050565b606060008484815181106120d4576120d4612b9f565b016020015160f81c9050826120ea826001613306565b60ff1614612108575050604080516020810190915260008152611ed7565b84612114856001612eeb565b8151811061212457612124612b9f565b016020015160f81c6000036121e35760028160ff161015612155575050604080516020810190915260008152611ed7565b600085612163866002612eeb565b8151811061217357612173612b9f565b016020015160f81c905061218860028361331f565b60ff16811415806121a65750806020141580156121a6575080601414155b156121c4576040518060200160405280600081525092505050611ed7565b6121da6121d2866003612eeb565b879083611ff1565b92505050611ed7565b60006121ef8686611ec8565b90507fffffff000000000000000000000000000000000000000000000000000000000081167f1976a90000000000000000000000000000000000000000000000000000000000036123035785612246866003612eeb565b8151811061225657612256612b9f565b60209101015160f81c60141415806122ce575061228960026122788688612eeb565b6122829190612ed8565b8790611ec8565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167f88ac00000000000000000000000000000000000000000000000000000000000014155b156122ec576040518060200160405280600081525092505050611ed7565b6121da6122fa866004612eeb565b87906014611ff1565b7fffffff000000000000000000000000000000000000000000000000000000000081167f17a9140000000000000000000000000000000000000000000000000000000000036123aa578560016123598688612eeb565b6123639190612ed8565b8151811061237357612373612b9f565b60209101015160f81c60871461239c576040518060200160405280600081525092505050611ed7565b6121da6122fa866003612eeb565b5050506040805160208101909152600081529392505050565b60008060006123d28585612567565b90508060ff166000036124075760008585815181106123f3576123f3612b9f565b016020015190935060f81c91506125609050565b83612413826001613306565b60ff166124209190612eeb565b855110156124375760001960009250925050612560565b60008160ff1660020361247b5761247061245c612455876001612eeb565b8890611ec8565b62ffff0060e882901c1660f89190911c1790565b61ffff169050612556565b8160ff166004036124ca576124bd612497612455876001612eeb565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b63ffffffff169050612556565b8160ff16600803612556576125496124e6612455876001612eeb565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b67ffffffffffffffff1666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b67ffffffffffffffff1690505b60ff909116925090505b9250929050565b600082828151811061257b5761257b612b9f565b016020015160f81c60ff0361259257506008611e81565b8282815181106125a4576125a4612b9f565b016020015160f81c60fe036125bb57506004611e81565b8282815181106125cd576125cd612b9f565b016020015160f81c60fd036125e457506002611e81565b50600092915050565b63ffffffff8116811461174b57600080fd5b60006020828403121561261157600080fd5b8135611ed7816125ed565b60006060828403121561262e57600080fd5b50919050565b6000806040838503121561264757600080fd5b823567ffffffffffffffff8082111561265f57600080fd5b61266b8683870161261c565b9350602085013591508082111561268157600080fd5b5083016040818603121561269457600080fd5b809150509250929050565b6001600160a01b038116811461174b57600080fd5b6000602082840312156126c657600080fd5b8135611ed78161269f565b80356bffffffffffffffffffffffff19811681146126ee57600080fd5b919050565b60006020828403121561270557600080fd5b611ed7826126d1565b634e487b7160e01b600052602160045260246000fd5b63ffffffff83168152604081016005831061274f57634e487b7160e01b600052602160045260246000fd5b8260208301529392505050565b60008060006040848603121561277157600080fd5b833567ffffffffffffffff8082111561278957600080fd5b6127958783880161261c565b945060208601359150808211156127ab57600080fd5b818601915086601f8301126127bf57600080fd5b8135818111156127ce57600080fd5b8760208260051b85010111156127e357600080fd5b6020830194508093505050509250925092565b60006020828403121561280857600080fd5b813561ffff81168114611ed757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156128545761285461281a565b60405290565b60405160a0810167ffffffffffffffff811182821017156128545761285461281a565b6040516080810167ffffffffffffffff811182821017156128545761285461281a565b805167ffffffffffffffff811681146126ee57600080fd5b80516126ee816125ed565b8051600681106126ee57600080fd5b600061012082840312156128e557600080fd5b6128ed612830565b8251815260208301516020820152612907604084016128a0565b6040820152612918606084016128b8565b6060820152612929608084016128b8565b608082015261293a60a084016128b8565b60a082015261294b60c084016128b8565b60c082015261295c60e084016128c3565b60e0820152610100928301519281019290925250919050565b6000808335601e1984360301811261298c57600080fd5b83018035915067ffffffffffffffff8211156129a757600080fd5b6020019150600581901b360382131561256057600080fd5b85815260806020808301829052908201859052600090869060a08401835b88811015612a085783356129f0816125ed565b63ffffffff16825292820192908201906001016129dd565b506001600160a01b03969096166040850152505050606001529392505050565b600060208284031215612a3a57600080fd5b81518015158114611ed757600080fd5b634e487b7160e01b600052601160045260246000fd5b63ffffffff818116838216019080821115612a7d57612a7d612a4a565b5092915050565b60006020808352608083016bffffffffffffffffffffffff19612aa6866126d1565b168285015281850135601e19863603018112612ac157600080fd5b8501828101903567ffffffffffffffff811115612add57600080fd5b8060061b3603821315612aef57600080fd5b60406060818801528382855260a088019050839450600093505b82841015612b3e578435815285850135612b22816125ed565b63ffffffff168187015293810193600193909301928101612b09565b970135606096909601959095525093949350505050565b6000808335601e19843603018112612b6c57600080fd5b83018035915067ffffffffffffffff821115612b8757600080fd5b6020019150600681901b360382131561256057600080fd5b634e487b7160e01b600052603260045260246000fd5b600060408284031215612bc757600080fd5b6040516040810181811067ffffffffffffffff82111715612bea57612bea61281a565b604052823581526020830135612bff816125ed565b60208201529392505050565b60008235609e19833603018112612c2157600080fd5b9190910192915050565b80356001600160e01b0319811681146126ee57600080fd5b600082601f830112612c5457600080fd5b813567ffffffffffffffff80821115612c6f57612c6f61281a565b604051601f8301601f19908116603f01168101908282118183101715612c9757612c9761281a565b81604052838152866020858801011115612cb057600080fd5b836020870160208301376000602085830101528094505050505092915050565b803577ffffffffffffffffffffffffffffffffffffffffffffffff19811681146126ee57600080fd5b600060a08236031215612d0b57600080fd5b612d1361285a565b823567ffffffffffffffff80821115612d2b57600080fd5b818501915060808236031215612d4057600080fd5b612d4861287d565b612d5183612c2b565b8152602083013582811115612d6557600080fd5b612d7136828601612c43565b602083015250604083013582811115612d8957600080fd5b612d9536828601612c43565b604083015250612da760608401612c2b565b6060820152835250612dbd905060208401612cd0565b6020820152612dce604084016126d1565b6040820152612ddf606084016126d1565b6060820152612df060808401612c2b565b608082015292915050565b600060c08284031215612e0d57600080fd5b60405160c0810181811067ffffffffffffffff82111715612e3057612e3061281a565b6040528251612e3e8161269f565b8152612e4c602084016128a0565b60208201526040830151612e5f816125ed565b60408201526060830151612e728161269f565b6060820152612e83608084016128a0565b608082015260a0830151612e96816125ed565b60a08201529392505050565b63ffffffff828116828216039080821115612a7d57612a7d612a4a565b600060018201612ed157612ed1612a4a565b5060010190565b81810381811115611e8157611e81612a4a565b80820180821115611e8157611e81612a4a565b60008060008060808587031215612f1457600080fd5b8451612f1f8161269f565b6020860151909450612f308161269f565b6040860151909350612f418161269f565b6060860151909250612f528161269f565b939692955090935050565b634e487b7160e01b600052601260045260246000fd5b600082612f8257612f82612f5d565b500690565b600082612f9657612f96612f5d565b500490565b60008060008060808587031215612fb157600080fd5b612fba856128a0565b9350612fc8602086016128a0565b9250612fd6604086016128a0565b91506060850151612f52816125ed565b6000815160005b818110156130075760208185018101518683015201612fed565b50600093019283525090919050565b60006001600160e01b0319808716835261303c6130366004850188612fe6565b86612fe6565b9316835250506004019392505050565b600560fa1b8152606086901b6bffffffffffffffffffffffff19166001820152607560f81b60158201527f0800000000000000000000000000000000000000000000000000000000000000601682015277ffffffffffffffffffffffffffffffffffffffffffffffff1985166017820152607560f81b601f8201526000613136613129613100602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6bffffffffffffffffffffffff19861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f630000000000000000000000000000000000000000000000000000000000000060158201526131fa6131296131006130d76131d1601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6bffffffffffffffffffffffff19861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b600582015290506132d56132ac600683016131a8565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000611ed78284612fe6565b6000602082840312156132ff57600080fd5b5051919050565b60ff8181168382160190811115611e8157611e81612a4a565b60ff8281168282160390811115611e8157611e81612a4a56fea2646970667358221220e5fed6df6b70bdd123327503dd2c91e239c28e413b410b6709004274e076f8d064736f6c63430008110033",
|
|
725
730
|
"linkReferences": {},
|
|
726
731
|
"deployedLinkReferences": {}
|
|
727
732
|
}
|
|
@@ -45,6 +45,31 @@ contract WalletCoordinator is OwnableUpgradeable, Reimbursable {
|
|
|
45
45
|
using BTCUtils for bytes;
|
|
46
46
|
using BytesLib for bytes;
|
|
47
47
|
|
|
48
|
+
/// @notice Represents wallet action:
|
|
49
|
+
enum WalletAction {
|
|
50
|
+
/// @dev The wallet does not perform any action.
|
|
51
|
+
Idle,
|
|
52
|
+
/// @dev The wallet is handling a deposit sweep action.
|
|
53
|
+
DepositSweep,
|
|
54
|
+
/// @dev The wallet is handling a redemption action.
|
|
55
|
+
Redemption,
|
|
56
|
+
/// @dev The wallet is handling a moving funds action.
|
|
57
|
+
MovingFunds,
|
|
58
|
+
/// @dev The wallet is handling a moved funds sweep action.
|
|
59
|
+
MovedFundsSweep
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// @notice Holds information about a wallet time lock.
|
|
63
|
+
struct WalletLock {
|
|
64
|
+
/// @notice A UNIX timestamp defining the moment until which the wallet
|
|
65
|
+
/// is locked and cannot receive new proposals. The value of 0
|
|
66
|
+
/// means the wallet is not locked and can receive a proposal
|
|
67
|
+
/// at any time.
|
|
68
|
+
uint32 expiresAt;
|
|
69
|
+
/// @notice The wallet action being the cause of the lock.
|
|
70
|
+
WalletAction cause;
|
|
71
|
+
}
|
|
72
|
+
|
|
48
73
|
/// @notice Helper structure carrying data necessary to validate the wallet
|
|
49
74
|
/// membership of the caller.
|
|
50
75
|
struct WalletMemberContext {
|
|
@@ -95,11 +120,8 @@ contract WalletCoordinator is OwnableUpgradeable, Reimbursable {
|
|
|
95
120
|
mapping(address => bool) public isProposalSubmitter;
|
|
96
121
|
|
|
97
122
|
/// @notice Mapping that holds wallet time locks. The key is a 20-byte
|
|
98
|
-
/// wallet public key hash.
|
|
99
|
-
|
|
100
|
-
/// new proposals. The value of 0 means the wallet is not locked
|
|
101
|
-
/// and can receive a proposal at any time.
|
|
102
|
-
mapping(bytes20 => uint32) public walletLock;
|
|
123
|
+
/// wallet public key hash.
|
|
124
|
+
mapping(bytes20 => WalletLock) public walletLock;
|
|
103
125
|
|
|
104
126
|
/// @notice Handle to the Bridge contract.
|
|
105
127
|
Bridge public bridge;
|
|
@@ -214,7 +236,7 @@ contract WalletCoordinator is OwnableUpgradeable, Reimbursable {
|
|
|
214
236
|
modifier onlyAfterWalletLock(bytes20 walletPubKeyHash) {
|
|
215
237
|
require(
|
|
216
238
|
/* solhint-disable-next-line not-rely-on-time */
|
|
217
|
-
block.timestamp > walletLock[walletPubKeyHash],
|
|
239
|
+
block.timestamp > walletLock[walletPubKeyHash].expiresAt,
|
|
218
240
|
"Wallet locked"
|
|
219
241
|
);
|
|
220
242
|
_;
|
|
@@ -283,7 +305,7 @@ contract WalletCoordinator is OwnableUpgradeable, Reimbursable {
|
|
|
283
305
|
/// - The caller must be the owner.
|
|
284
306
|
function unlockWallet(bytes20 walletPubKeyHash) external onlyOwner {
|
|
285
307
|
// Just in case, allow the owner to unlock the wallet earlier.
|
|
286
|
-
walletLock[walletPubKeyHash] = 0;
|
|
308
|
+
walletLock[walletPubKeyHash] = WalletLock(0, WalletAction.Idle);
|
|
287
309
|
emit WalletManuallyUnlocked(walletPubKeyHash);
|
|
288
310
|
}
|
|
289
311
|
|
|
@@ -371,10 +393,11 @@ contract WalletCoordinator is OwnableUpgradeable, Reimbursable {
|
|
|
371
393
|
)
|
|
372
394
|
onlyAfterWalletLock(proposal.walletPubKeyHash)
|
|
373
395
|
{
|
|
374
|
-
walletLock[proposal.walletPubKeyHash] =
|
|
396
|
+
walletLock[proposal.walletPubKeyHash] = WalletLock(
|
|
375
397
|
/* solhint-disable-next-line not-rely-on-time */
|
|
376
|
-
uint32(block.timestamp) +
|
|
377
|
-
|
|
398
|
+
uint32(block.timestamp) + depositSweepProposalValidity,
|
|
399
|
+
WalletAction.DepositSweep
|
|
400
|
+
);
|
|
378
401
|
|
|
379
402
|
emit DepositSweepProposalSubmitted(proposal, msg.sender);
|
|
380
403
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { HardhatRuntimeEnvironment } from "hardhat/types"
|
|
2
|
+
import { DeployFunction } from "hardhat-deploy/types"
|
|
3
|
+
|
|
4
|
+
const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
|
5
|
+
const { deployments, ethers, getNamedAccounts, helpers } = hre
|
|
6
|
+
const { deployer } = await getNamedAccounts()
|
|
7
|
+
|
|
8
|
+
const Bridge = await deployments.get("Bridge")
|
|
9
|
+
|
|
10
|
+
const [walletCoordinator, proxyDeployment] =
|
|
11
|
+
await helpers.upgrades.deployProxy("WalletCoordinator", {
|
|
12
|
+
contractName: "WalletCoordinator",
|
|
13
|
+
initializerArgs: [Bridge.address],
|
|
14
|
+
factoryOpts: {
|
|
15
|
+
signer: await ethers.getSigner(deployer),
|
|
16
|
+
},
|
|
17
|
+
proxyOpts: {
|
|
18
|
+
kind: "transparent",
|
|
19
|
+
},
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
if (hre.network.tags.etherscan) {
|
|
23
|
+
// We use `verify` instead of `verify:verify` as the `verify` task is defined
|
|
24
|
+
// in "@openzeppelin/hardhat-upgrades" to perform Etherscan verification
|
|
25
|
+
// of Proxy and Implementation contracts.
|
|
26
|
+
await hre.run("verify", {
|
|
27
|
+
address: proxyDeployment.address,
|
|
28
|
+
constructorArgsParams: proxyDeployment.args,
|
|
29
|
+
})
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (hre.network.tags.tenderly) {
|
|
33
|
+
await hre.tenderly.verify({
|
|
34
|
+
name: "WalletCoordinator",
|
|
35
|
+
address: walletCoordinator.address,
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export default func
|
|
41
|
+
|
|
42
|
+
func.tags = ["WalletCoordinator"]
|
|
43
|
+
func.dependencies = ["Bridge"]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { HardhatRuntimeEnvironment } from "hardhat/types"
|
|
2
|
+
import { DeployFunction } from "hardhat-deploy/types"
|
|
3
|
+
|
|
4
|
+
const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
|
|
5
|
+
const { getNamedAccounts, helpers } = hre
|
|
6
|
+
const { deployer, governance } = await getNamedAccounts()
|
|
7
|
+
|
|
8
|
+
await helpers.ownable.transferOwnership(
|
|
9
|
+
"WalletCoordinator",
|
|
10
|
+
governance,
|
|
11
|
+
deployer
|
|
12
|
+
)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default func
|
|
16
|
+
|
|
17
|
+
func.tags = ["TransferWalletCoordinatorOwnership"]
|
|
18
|
+
func.dependencies = ["WalletCoordinator"]
|
|
19
|
+
func.runAtTheEnd = true
|