@gooddollar/goodprotocol 1.0.6-beta.0 → 1.0.7-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GovarnanceStaking.sol/GovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
- package/artifacts/contracts/unaudited-foundation/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/unaudited-foundation/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
- package/contracts/ubi/UBIScheme.sol +14 -9
- package/package.json +1 -1
- package/scripts/deployFullDAO.ts +12 -1
- package/test/governance/ClaimersDistribution.test.ts +13 -8
|
@@ -856,8 +856,8 @@
|
|
|
856
856
|
"type": "function"
|
|
857
857
|
}
|
|
858
858
|
],
|
|
859
|
-
"bytecode": "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c612a1661004b60003960008181610b8c01528181610bcc0152818161100901526110490152612a166000f3fe6080604052600436106101d65760003560e01c8063013eba92146101db578063069786ea1461021b5780630ce82d67146102455780631248b1011461025a5780631794bb3c146102915780631b3c90a8146102b35780631bbc644c146102c85780631d8f5ea9146102f857806322b457271461030e5780633659cfe6146103245780633d84ceca146103445780633e6326fc146103645780634162169f146103915780634202d214146103b1578063456ac1c2146103d15780634e71d92d146103eb5780634f1ef286146104005780635231e2f014610413578063560796d1146104435780635aef7de6146104945780635c9302c9146104b457806373b2e80e146104ca578063741470ac146104ea5780638081cbbd1461050057806398d6621b146105205780639dc2c03314610535578063a21f698a1461054b578063b656223d1461056b578063ba07541014610581578063c033abf214610597578063c1337508146105ad578063c7713870146105cd578063c7a76adf146105e2578063cc054dfc14610602578063cef636001461062f578063d7c4cbb81461064f578063dddc361614610665578063de1de3a01461067a578063e1758bd81461069a578063eac471a0146106af578063eda4e6d6146106c5575b600080fd5b3480156101e757600080fd5b506102086101f63660046123c7565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561022757600080fd5b506102306106db565b60408051928352602083019190915201610212565b34801561025157600080fd5b50610208610719565b34801561026657600080fd5b506102306102753660046123e4565b609a602052600090815260409020600181015460029091015482565b34801561029d57600080fd5b506102b16102ac3660046123fd565b61073c565b005b3480156102bf57600080fd5b506102b16108b4565b3480156102d457600080fd5b506102e86102e33660046123c7565b6109f9565b6040519015158152602001610212565b34801561030457600080fd5b50610208609e5481565b34801561031a57600080fd5b5061020860a05481565b34801561033057600080fd5b506102b161033f3660046123c7565b610b81565b34801561035057600080fd5b506102b161035f3660046123e4565b610c4a565b34801561037057600080fd5b50606754610384906001600160a01b031681565b604051610212919061243e565b34801561039d57600080fd5b50606554610384906001600160a01b031681565b3480156103bd57600080fd5b506102e86103cc3660046123c7565b610ce8565b3480156103dd57600080fd5b5060a3546102e89060ff1681565b3480156103f757600080fd5b506102e8610d4a565b6102b161040e3660046124bf565b610ffe565b34801561041f57600080fd5b506102e861042e3660046123c7565b60aa6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061047d61045e3660046123e4565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610212565b3480156104a057600080fd5b50606654610384906001600160a01b031681565b3480156104c057600080fd5b50610208609c5481565b3480156104d657600080fd5b506102e86104e53660046123c7565b6110b8565b3480156104f657600080fd5b5061020860a75481565b34801561050c57600080fd5b5060a854610384906001600160a01b031681565b34801561052c57600080fd5b506102086110e4565b34801561054157600080fd5b5061020860a55481565b34801561055757600080fd5b506102e86105663660046123c7565b61120b565b34801561057757600080fd5b5061020860a25481565b34801561058d57600080fd5b5061020860a65481565b3480156105a357600080fd5b50610208609f5481565b3480156105b957600080fd5b506102086105c8366004612551565b611239565b3480156105d957600080fd5b506102086113dd565b3480156105ee57600080fd5b506102086105fd3660046123e4565b6114ce565b34801561060e57600080fd5b5061020861061d3660046123c7565b60ab6020526000908152604090205481565b34801561063b57600080fd5b5061020861064a3660046123e4565b6114e3565b34801561065b57600080fd5b5061020860a15481565b34801561067157600080fd5b506102b16114f8565b34801561068657600080fd5b506102b1610695366004612610565b61154e565b3480156106a657600080fd5b5061038461159d565b3480156106bb57600080fd5b5061020860a45481565b3480156106d157600080fd5b50610208609d5481565b600080600062015180609d54426106f29190612643565b6106fc919061265a565b9050610707816114ce565b610710826114e3565b92509250509091565b60006201518060a6544261072d9190612643565b610737919061265a565b905090565b600054610100900460ff1680610755575060005460ff16155b6107bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107df576000805461ffff19166101011790555b6000821161082f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f60448201526064016107b4565b61083884611634565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561087b620151804261265a565b610888906201518061267c565b6108949061a8c061269b565b609d81905560a65580156108ae576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906126b3565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561099f57600080fd5b505afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d791906126b3565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d54118015610a0e5750609d544210155b610a2a5760405162461bcd60e51b81526004016107b4906126d0565b610a338261120b565b8015610a455750610a4382610ce8565b155b610a8b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b60448201526064016107b4565b6001600160a01b038216600090815260aa602052604090205460ff1615610ae55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b60448201526064016107b4565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610b10611657565b9050600160a06000828254610b259190612643565b90915550610b38905033826000806118d8565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610bca5760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfc611b5b565b6001600160a01b031614610c225760405162461bcd60e51b81526004016107b490612738565b610c2b81611b77565b60408051600080825260208201909252610c4791839190611b7f565b50565b610c52611cbf565b60008111610cac5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107b4565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610d0a8361120b565b15610d4157600062015180610d1f8342612643565b610d29919061265a565b905060a254811015610d3f575060019392505050565b505b50600092915050565b600080609d54118015610d5f5750609d544210155b610d7b5760405162461bcd60e51b81526004016107b4906126d0565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610dd757600080fd5b505afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906126b3565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e3a919061243e565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190612772565b610ed35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107b4565b6000610ede33611d93565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f4557600080fd5b505afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906126b3565b9050818015610f9457506001600160a01b03811615155b15610ff85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fc590339060040161243e565b600060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110475760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611079611b5b565b6001600160a01b03161461109f5760405162461bcd60e51b81526004016107b490612738565b6110a882611b77565b6110b482826001611b7f565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110f95750609d544210155b6111155760405162461bcd60e51b81526004016107b4906126d0565b61111e3361120b565b1580611139575033600090815260aa602052604090205460ff165b156111c45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610737919061278f565b62015180609d54426111d69190612643565b6111e0919061265a565b609c541415611203576111f2336110b8565b6111fd5750609e5490565b50600090565b6107376113dd565b6001600160a01b0381166000908152609b60205260408120541561123157506001919050565b506000919050565b600080609d5411801561124e5750609d544210155b61126a5760405162461bcd60e51b81526004016107b4906126d0565b60005b82518110156113af57609f545a10156112a7576040518181526000805160206129c18339815191529060200160405180910390a192915050565b6112c98382815181106112bc576112bc6127a8565b602002602001015161120b565b80156112f457506112f28382815181106112e5576112e56127a8565b6020026020010151610ce8565b155b801561133a575060aa6000848381518110611311576113116127a8565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b1561139f57611361838281518110611354576113546127a8565b60200260200101516109f9565b61139f5760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b60448201526064016107b4565b6113a8816127be565b905061126d565b506000805160206129c183398151915282516040516113d091815260200190565b60405180910390a1505190565b6000806113e861159d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611413919061243e565b60206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611463919061278f565b9050600060a55460a45483611478919061265a565b119050600060a5549050600060a75461148f610719565b1015806114995750825b156114ae5760a4546114ab908561265a565b91505b60a054156114c65760a0546114c3908361265a565b90505b949350505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b62015180609d544261150a9190612643565b611514919061265a565b609c8190556040519081527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea9060200160405180910390a1565b611556611cbf565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cdd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906126b3565b606780546001600160a01b0319166001600160a01b038316179055610c476108b4565b60006116616114f8565b60a154609c54146118d157600061167661159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016116a6919061243e565b60206040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f6919061278f565b9050600060a55460a4548361170b919061265a565b11905060a754611719610719565b1015806117235750805b1561183b5760a35460ff161561173b5761173b611eb1565b6040516370a0823160e01b81526001600160a01b038416906370a082319061176790309060040161243e565b60206040518083038186803b15801561177f57600080fd5b505afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b7919061278f565b915060a454826117c7919061265a565b60a55560a45460a7556117dc610e104261265a565b6117e890610e1061267c565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a054156118875760a05460a554611883919061265a565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b6000609a6000609c54815260200190815260200160002090506001816001016000828254611906919061269b565b90915550506001600160a01b038516600090815260208281526040808320805460ff19166001908117909155609b835281842042905560ab909252822080549192909161195490849061269b565b90915550508115611a2f5760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a9061199090899060040161243e565b602060405180830381600087803b1580156119aa57600080fd5b505af11580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e2919061278f565b9050808260020160008282546119f8919061269b565b90915550506040518181526001600160a01b0387169060008051602061295a8339815191529060200160405180910390a250611b54565b83816002016000828254611a43919061269b565b9091555060009050611a5361159d565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a8490899089906004016127d9565b602060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190612772565b611b1a5760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107b4565b8315611b5257856001600160a01b031660008051602061295a83398151915286604051611b4991815260200190565b60405180910390a25b505b5050505050565b60008051602061297a833981519152546001600160a01b031690565b610c47611cbf565b6000611b89611b5b565b9050611b94846121b4565b600083511180611ba15750815b15611bb257611bb08484612247565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611b5457805460ff19166001178155604051611c2d908690611bfe90859060240161243e565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612247565b50805460ff19168155611c3e611b5b565b6001600160a01b0316826001600160a01b031614611cb65760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016107b4565b611b5485612332565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611d0357600080fd5b505afa158015611d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3b91906126b3565b6001600160a01b031614611d915760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107b4565b565b600080611d9e611657565b9050611da98361120b565b8015611dce57506001600160a01b038316600090815260aa602052604090205460ff16155b8015611de05750611dde836110b8565b155b15611dfc57611df38382600160006118d8565b50600192915050565b611e058361120b565b1580611e2957506001600160a01b038316600090815260aa602052604090205460ff165b15610d4157600160a06000828254611e41919061269b565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611e749084908060016118d8565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611ebb61159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611eeb919061243e565b60206040518083038186803b158015611f0357600080fd5b505afa158015611f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3b919061278f565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611f73929091169060040161243e565b60206040518083038186803b158015611f8b57600080fd5b505afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc3919061278f565b6065546040519192506001600160a01b03169063d1b7089a908590611fee90309086906024016127d9565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b03191681526120499392916001600160a01b03169060009060040161284a565b600060405180830381600087803b15801561206357600080fd5b505af1158015612077573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261209f919081019061287e565b50600090506120ae828461269b565b6040516370a0823160e01b81529091506001600160a01b038516906370a08231906120dd90309060040161243e565b60206040518083038186803b1580156120f557600080fd5b505afa158015612109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212d919061278f565b81146121755760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107b4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6122185760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107b4565b60008051602061297a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6122a65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b4565b600080846001600160a01b0316846040516122c1919061290a565b600060405180830381855af49150503d80600081146122fc576040519150601f19603f3d011682016040523d82523d6000602084013e612301565b606091505b5091509150612329828260405180606001604052806027815260200161299a60279139612372565b95945050505050565b61233b816121b4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156123815750816123ab565b8251156123915782518084602001fd5b8160405162461bcd60e51b81526004016107b49190612926565b9392505050565b6001600160a01b0381168114610c4757600080fd5b6000602082840312156123d957600080fd5b81356123ab816123b2565b6000602082840312156123f657600080fd5b5035919050565b60008060006060848603121561241257600080fd5b833561241d816123b2565b9250602084013561242d816123b2565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561249057612490612452565b604052919050565b60006001600160401b038211156124b1576124b1612452565b50601f01601f191660200190565b600080604083850312156124d257600080fd5b82356124dd816123b2565b915060208301356001600160401b038111156124f857600080fd5b8301601f8101851361250957600080fd5b803561251c61251782612498565b612468565b81815286602083850101111561253157600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000602080838503121561256457600080fd5b82356001600160401b038082111561257b57600080fd5b818501915085601f83011261258f57600080fd5b8135818111156125a1576125a1612452565b8060051b91506125b2848301612468565b81815291830184019184810190888411156125cc57600080fd5b938501935b838510156125f657843592506125e6836123b2565b82825293850193908501906125d1565b98975050505050505050565b8015158114610c4757600080fd5b60006020828403121561262257600080fd5b81356123ab81612602565b634e487b7160e01b600052601160045260246000fd5b6000828210156126555761265561262d565b500390565b60008261267757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126965761269661262d565b500290565b600082198211156126ae576126ae61262d565b500190565b6000602082840312156126c557600080fd5b81516123ab816123b2565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c9082015260008051602061293a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061293a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561278457600080fd5b81516123ab81612602565b6000602082840312156127a157600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156127d2576127d261262d565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b8381101561280d5781810151838201526020016127f5565b838111156108ae5750506000910152565b600081518084526128368160208601602086016127f2565b601f01601f19169290920160200192915050565b600060018060a01b0380871683526080602084015261286c608084018761281e565b94166040830152506060015292915050565b6000806040838503121561289157600080fd5b825161289c81612602565b60208401519092506001600160401b038111156128b857600080fd5b8301601f810185136128c957600080fd5b80516128d761251782612498565b8181528660208385010111156128ec57600080fd5b6128fd8260208301602086016127f2565b8093505050509250929050565b6000825161291c8184602087016127f2565b9190910192915050565b6020815260006123ab602083018461281e56fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa26469706673582212205a88e762394d5e5afa08073dddbf4c6957ad9813664ef7cf239150c1fcd785d764736f6c63430008080033",
|
|
860
|
-
"deployedBytecode": "0x6080604052600436106101d65760003560e01c8063013eba92146101db578063069786ea1461021b5780630ce82d67146102455780631248b1011461025a5780631794bb3c146102915780631b3c90a8146102b35780631bbc644c146102c85780631d8f5ea9146102f857806322b457271461030e5780633659cfe6146103245780633d84ceca146103445780633e6326fc146103645780634162169f146103915780634202d214146103b1578063456ac1c2146103d15780634e71d92d146103eb5780634f1ef286146104005780635231e2f014610413578063560796d1146104435780635aef7de6146104945780635c9302c9146104b457806373b2e80e146104ca578063741470ac146104ea5780638081cbbd1461050057806398d6621b146105205780639dc2c03314610535578063a21f698a1461054b578063b656223d1461056b578063ba07541014610581578063c033abf214610597578063c1337508146105ad578063c7713870146105cd578063c7a76adf146105e2578063cc054dfc14610602578063cef636001461062f578063d7c4cbb81461064f578063dddc361614610665578063de1de3a01461067a578063e1758bd81461069a578063eac471a0146106af578063eda4e6d6146106c5575b600080fd5b3480156101e757600080fd5b506102086101f63660046123c7565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561022757600080fd5b506102306106db565b60408051928352602083019190915201610212565b34801561025157600080fd5b50610208610719565b34801561026657600080fd5b506102306102753660046123e4565b609a602052600090815260409020600181015460029091015482565b34801561029d57600080fd5b506102b16102ac3660046123fd565b61073c565b005b3480156102bf57600080fd5b506102b16108b4565b3480156102d457600080fd5b506102e86102e33660046123c7565b6109f9565b6040519015158152602001610212565b34801561030457600080fd5b50610208609e5481565b34801561031a57600080fd5b5061020860a05481565b34801561033057600080fd5b506102b161033f3660046123c7565b610b81565b34801561035057600080fd5b506102b161035f3660046123e4565b610c4a565b34801561037057600080fd5b50606754610384906001600160a01b031681565b604051610212919061243e565b34801561039d57600080fd5b50606554610384906001600160a01b031681565b3480156103bd57600080fd5b506102e86103cc3660046123c7565b610ce8565b3480156103dd57600080fd5b5060a3546102e89060ff1681565b3480156103f757600080fd5b506102e8610d4a565b6102b161040e3660046124bf565b610ffe565b34801561041f57600080fd5b506102e861042e3660046123c7565b60aa6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061047d61045e3660046123e4565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610212565b3480156104a057600080fd5b50606654610384906001600160a01b031681565b3480156104c057600080fd5b50610208609c5481565b3480156104d657600080fd5b506102e86104e53660046123c7565b6110b8565b3480156104f657600080fd5b5061020860a75481565b34801561050c57600080fd5b5060a854610384906001600160a01b031681565b34801561052c57600080fd5b506102086110e4565b34801561054157600080fd5b5061020860a55481565b34801561055757600080fd5b506102e86105663660046123c7565b61120b565b34801561057757600080fd5b5061020860a25481565b34801561058d57600080fd5b5061020860a65481565b3480156105a357600080fd5b50610208609f5481565b3480156105b957600080fd5b506102086105c8366004612551565b611239565b3480156105d957600080fd5b506102086113dd565b3480156105ee57600080fd5b506102086105fd3660046123e4565b6114ce565b34801561060e57600080fd5b5061020861061d3660046123c7565b60ab6020526000908152604090205481565b34801561063b57600080fd5b5061020861064a3660046123e4565b6114e3565b34801561065b57600080fd5b5061020860a15481565b34801561067157600080fd5b506102b16114f8565b34801561068657600080fd5b506102b1610695366004612610565b61154e565b3480156106a657600080fd5b5061038461159d565b3480156106bb57600080fd5b5061020860a45481565b3480156106d157600080fd5b50610208609d5481565b600080600062015180609d54426106f29190612643565b6106fc919061265a565b9050610707816114ce565b610710826114e3565b92509250509091565b60006201518060a6544261072d9190612643565b610737919061265a565b905090565b600054610100900460ff1680610755575060005460ff16155b6107bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107df576000805461ffff19166101011790555b6000821161082f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f60448201526064016107b4565b61083884611634565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561087b620151804261265a565b610888906201518061267c565b6108949061a8c061269b565b609d81905560a65580156108ae576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906126b3565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561099f57600080fd5b505afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d791906126b3565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d54118015610a0e5750609d544210155b610a2a5760405162461bcd60e51b81526004016107b4906126d0565b610a338261120b565b8015610a455750610a4382610ce8565b155b610a8b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b60448201526064016107b4565b6001600160a01b038216600090815260aa602052604090205460ff1615610ae55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b60448201526064016107b4565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610b10611657565b9050600160a06000828254610b259190612643565b90915550610b38905033826000806118d8565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610bca5760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfc611b5b565b6001600160a01b031614610c225760405162461bcd60e51b81526004016107b490612738565b610c2b81611b77565b60408051600080825260208201909252610c4791839190611b7f565b50565b610c52611cbf565b60008111610cac5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107b4565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610d0a8361120b565b15610d4157600062015180610d1f8342612643565b610d29919061265a565b905060a254811015610d3f575060019392505050565b505b50600092915050565b600080609d54118015610d5f5750609d544210155b610d7b5760405162461bcd60e51b81526004016107b4906126d0565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610dd757600080fd5b505afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906126b3565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e3a919061243e565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190612772565b610ed35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107b4565b6000610ede33611d93565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f4557600080fd5b505afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906126b3565b9050818015610f9457506001600160a01b03811615155b15610ff85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fc590339060040161243e565b600060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110475760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611079611b5b565b6001600160a01b03161461109f5760405162461bcd60e51b81526004016107b490612738565b6110a882611b77565b6110b482826001611b7f565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110f95750609d544210155b6111155760405162461bcd60e51b81526004016107b4906126d0565b61111e3361120b565b1580611139575033600090815260aa602052604090205460ff165b156111c45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610737919061278f565b62015180609d54426111d69190612643565b6111e0919061265a565b609c541415611203576111f2336110b8565b6111fd5750609e5490565b50600090565b6107376113dd565b6001600160a01b0381166000908152609b60205260408120541561123157506001919050565b506000919050565b600080609d5411801561124e5750609d544210155b61126a5760405162461bcd60e51b81526004016107b4906126d0565b60005b82518110156113af57609f545a10156112a7576040518181526000805160206129c18339815191529060200160405180910390a192915050565b6112c98382815181106112bc576112bc6127a8565b602002602001015161120b565b80156112f457506112f28382815181106112e5576112e56127a8565b6020026020010151610ce8565b155b801561133a575060aa6000848381518110611311576113116127a8565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b1561139f57611361838281518110611354576113546127a8565b60200260200101516109f9565b61139f5760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b60448201526064016107b4565b6113a8816127be565b905061126d565b506000805160206129c183398151915282516040516113d091815260200190565b60405180910390a1505190565b6000806113e861159d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611413919061243e565b60206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611463919061278f565b9050600060a55460a45483611478919061265a565b119050600060a5549050600060a75461148f610719565b1015806114995750825b156114ae5760a4546114ab908561265a565b91505b60a054156114c65760a0546114c3908361265a565b90505b949350505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b62015180609d544261150a9190612643565b611514919061265a565b609c8190556040519081527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea9060200160405180910390a1565b611556611cbf565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cdd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906126b3565b606780546001600160a01b0319166001600160a01b038316179055610c476108b4565b60006116616114f8565b60a154609c54146118d157600061167661159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016116a6919061243e565b60206040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f6919061278f565b9050600060a55460a4548361170b919061265a565b11905060a754611719610719565b1015806117235750805b1561183b5760a35460ff161561173b5761173b611eb1565b6040516370a0823160e01b81526001600160a01b038416906370a082319061176790309060040161243e565b60206040518083038186803b15801561177f57600080fd5b505afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b7919061278f565b915060a454826117c7919061265a565b60a55560a45460a7556117dc610e104261265a565b6117e890610e1061267c565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a054156118875760a05460a554611883919061265a565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b6000609a6000609c54815260200190815260200160002090506001816001016000828254611906919061269b565b90915550506001600160a01b038516600090815260208281526040808320805460ff19166001908117909155609b835281842042905560ab909252822080549192909161195490849061269b565b90915550508115611a2f5760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a9061199090899060040161243e565b602060405180830381600087803b1580156119aa57600080fd5b505af11580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e2919061278f565b9050808260020160008282546119f8919061269b565b90915550506040518181526001600160a01b0387169060008051602061295a8339815191529060200160405180910390a250611b54565b83816002016000828254611a43919061269b565b9091555060009050611a5361159d565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a8490899089906004016127d9565b602060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190612772565b611b1a5760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107b4565b8315611b5257856001600160a01b031660008051602061295a83398151915286604051611b4991815260200190565b60405180910390a25b505b5050505050565b60008051602061297a833981519152546001600160a01b031690565b610c47611cbf565b6000611b89611b5b565b9050611b94846121b4565b600083511180611ba15750815b15611bb257611bb08484612247565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611b5457805460ff19166001178155604051611c2d908690611bfe90859060240161243e565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612247565b50805460ff19168155611c3e611b5b565b6001600160a01b0316826001600160a01b031614611cb65760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016107b4565b611b5485612332565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611d0357600080fd5b505afa158015611d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3b91906126b3565b6001600160a01b031614611d915760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107b4565b565b600080611d9e611657565b9050611da98361120b565b8015611dce57506001600160a01b038316600090815260aa602052604090205460ff16155b8015611de05750611dde836110b8565b155b15611dfc57611df38382600160006118d8565b50600192915050565b611e058361120b565b1580611e2957506001600160a01b038316600090815260aa602052604090205460ff165b15610d4157600160a06000828254611e41919061269b565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611e749084908060016118d8565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611ebb61159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611eeb919061243e565b60206040518083038186803b158015611f0357600080fd5b505afa158015611f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3b919061278f565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611f73929091169060040161243e565b60206040518083038186803b158015611f8b57600080fd5b505afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc3919061278f565b6065546040519192506001600160a01b03169063d1b7089a908590611fee90309086906024016127d9565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b03191681526120499392916001600160a01b03169060009060040161284a565b600060405180830381600087803b15801561206357600080fd5b505af1158015612077573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261209f919081019061287e565b50600090506120ae828461269b565b6040516370a0823160e01b81529091506001600160a01b038516906370a08231906120dd90309060040161243e565b60206040518083038186803b1580156120f557600080fd5b505afa158015612109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212d919061278f565b81146121755760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107b4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6122185760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107b4565b60008051602061297a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6122a65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b4565b600080846001600160a01b0316846040516122c1919061290a565b600060405180830381855af49150503d80600081146122fc576040519150601f19603f3d011682016040523d82523d6000602084013e612301565b606091505b5091509150612329828260405180606001604052806027815260200161299a60279139612372565b95945050505050565b61233b816121b4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156123815750816123ab565b8251156123915782518084602001fd5b8160405162461bcd60e51b81526004016107b49190612926565b9392505050565b6001600160a01b0381168114610c4757600080fd5b6000602082840312156123d957600080fd5b81356123ab816123b2565b6000602082840312156123f657600080fd5b5035919050565b60008060006060848603121561241257600080fd5b833561241d816123b2565b9250602084013561242d816123b2565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561249057612490612452565b604052919050565b60006001600160401b038211156124b1576124b1612452565b50601f01601f191660200190565b600080604083850312156124d257600080fd5b82356124dd816123b2565b915060208301356001600160401b038111156124f857600080fd5b8301601f8101851361250957600080fd5b803561251c61251782612498565b612468565b81815286602083850101111561253157600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000602080838503121561256457600080fd5b82356001600160401b038082111561257b57600080fd5b818501915085601f83011261258f57600080fd5b8135818111156125a1576125a1612452565b8060051b91506125b2848301612468565b81815291830184019184810190888411156125cc57600080fd5b938501935b838510156125f657843592506125e6836123b2565b82825293850193908501906125d1565b98975050505050505050565b8015158114610c4757600080fd5b60006020828403121561262257600080fd5b81356123ab81612602565b634e487b7160e01b600052601160045260246000fd5b6000828210156126555761265561262d565b500390565b60008261267757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126965761269661262d565b500290565b600082198211156126ae576126ae61262d565b500190565b6000602082840312156126c557600080fd5b81516123ab816123b2565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c9082015260008051602061293a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061293a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561278457600080fd5b81516123ab81612602565b6000602082840312156127a157600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156127d2576127d261262d565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b8381101561280d5781810151838201526020016127f5565b838111156108ae5750506000910152565b600081518084526128368160208601602086016127f2565b601f01601f19169290920160200192915050565b600060018060a01b0380871683526080602084015261286c608084018761281e565b94166040830152506060015292915050565b6000806040838503121561289157600080fd5b825161289c81612602565b60208401519092506001600160401b038111156128b857600080fd5b8301601f810185136128c957600080fd5b80516128d761251782612498565b8181528660208385010111156128ec57600080fd5b6128fd8260208301602086016127f2565b8093505050509250929050565b6000825161291c8184602087016127f2565b9190910192915050565b6020815260006123ab602083018461281e56fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa26469706673582212205a88e762394d5e5afa08073dddbf4c6957ad9813664ef7cf239150c1fcd785d764736f6c63430008080033",
|
|
859
|
+
"bytecode": "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c612a5161004b60003960008181610b8c01528181610bcc0152818161100901526110490152612a516000f3fe6080604052600436106101d65760003560e01c8063013eba92146101db578063069786ea1461021b5780630ce82d67146102455780631248b1011461025a5780631794bb3c146102915780631b3c90a8146102b35780631bbc644c146102c85780631d8f5ea9146102f857806322b457271461030e5780633659cfe6146103245780633d84ceca146103445780633e6326fc146103645780634162169f146103915780634202d214146103b1578063456ac1c2146103d15780634e71d92d146103eb5780634f1ef286146104005780635231e2f014610413578063560796d1146104435780635aef7de6146104945780635c9302c9146104b457806373b2e80e146104ca578063741470ac146104ea5780638081cbbd1461050057806398d6621b146105205780639dc2c03314610535578063a21f698a1461054b578063b656223d1461056b578063ba07541014610581578063c033abf214610597578063c1337508146105ad578063c7713870146105cd578063c7a76adf146105e2578063cc054dfc14610602578063cef636001461062f578063d7c4cbb81461064f578063dddc361614610665578063de1de3a01461067a578063e1758bd81461069a578063eac471a0146106af578063eda4e6d6146106c5575b600080fd5b3480156101e757600080fd5b506102086101f6366004612402565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561022757600080fd5b506102306106db565b60408051928352602083019190915201610212565b34801561025157600080fd5b50610208610719565b34801561026657600080fd5b5061023061027536600461241f565b609a602052600090815260409020600181015460029091015482565b34801561029d57600080fd5b506102b16102ac366004612438565b61073c565b005b3480156102bf57600080fd5b506102b16108b4565b3480156102d457600080fd5b506102e86102e3366004612402565b6109f9565b6040519015158152602001610212565b34801561030457600080fd5b50610208609e5481565b34801561031a57600080fd5b5061020860a05481565b34801561033057600080fd5b506102b161033f366004612402565b610b81565b34801561035057600080fd5b506102b161035f36600461241f565b610c4a565b34801561037057600080fd5b50606754610384906001600160a01b031681565b6040516102129190612479565b34801561039d57600080fd5b50606554610384906001600160a01b031681565b3480156103bd57600080fd5b506102e86103cc366004612402565b610ce8565b3480156103dd57600080fd5b5060a3546102e89060ff1681565b3480156103f757600080fd5b506102e8610d4a565b6102b161040e3660046124fa565b610ffe565b34801561041f57600080fd5b506102e861042e366004612402565b60aa6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061047d61045e36600461241f565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610212565b3480156104a057600080fd5b50606654610384906001600160a01b031681565b3480156104c057600080fd5b50610208609c5481565b3480156104d657600080fd5b506102e86104e5366004612402565b6110b8565b3480156104f657600080fd5b5061020860a75481565b34801561050c57600080fd5b5060a854610384906001600160a01b031681565b34801561052c57600080fd5b506102086110e4565b34801561054157600080fd5b5061020860a55481565b34801561055757600080fd5b506102e8610566366004612402565b61120b565b34801561057757600080fd5b5061020860a25481565b34801561058d57600080fd5b5061020860a65481565b3480156105a357600080fd5b50610208609f5481565b3480156105b957600080fd5b506102086105c836600461258c565b611239565b3480156105d957600080fd5b506102086113dd565b3480156105ee57600080fd5b506102086105fd36600461241f565b6114ce565b34801561060e57600080fd5b5061020861061d366004612402565b60ab6020526000908152604090205481565b34801561063b57600080fd5b5061020861064a36600461241f565b6114e3565b34801561065b57600080fd5b5061020860a15481565b34801561067157600080fd5b506102b16114f8565b34801561068657600080fd5b506102b161069536600461264b565b611557565b3480156106a657600080fd5b506103846115a6565b3480156106bb57600080fd5b5061020860a45481565b3480156106d157600080fd5b50610208609d5481565b600080600062015180609d54426106f2919061267e565b6106fc9190612695565b9050610707816114ce565b610710826114e3565b92509250509091565b60006201518060a6544261072d919061267e565b6107379190612695565b905090565b600054610100900460ff1680610755575060005460ff16155b6107bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107df576000805461ffff19166101011790555b6000821161082f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f60448201526064016107b4565b6108388461163d565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561087b6201518042612695565b61088890620151806126b7565b6108949061a8c06126d6565b609d81905560a65580156108ae576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906126ee565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561099f57600080fd5b505afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d791906126ee565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d54118015610a0e5750609d544210155b610a2a5760405162461bcd60e51b81526004016107b49061270b565b610a338261120b565b8015610a455750610a4382610ce8565b155b610a8b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b60448201526064016107b4565b6001600160a01b038216600090815260aa602052604090205460ff1615610ae55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b60448201526064016107b4565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610b10611660565b9050600160a06000828254610b25919061267e565b90915550610b38905033826000806118e1565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610bca5760405162461bcd60e51b81526004016107b490612739565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfc611b96565b6001600160a01b031614610c225760405162461bcd60e51b81526004016107b490612773565b610c2b81611bb2565b60408051600080825260208201909252610c4791839190611bba565b50565b610c52611cfa565b60008111610cac5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107b4565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610d0a8361120b565b15610d4157600062015180610d1f834261267e565b610d299190612695565b905060a254811015610d3f575060019392505050565b505b50600092915050565b600080609d54118015610d5f5750609d544210155b610d7b5760405162461bcd60e51b81526004016107b49061270b565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610dd757600080fd5b505afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906126ee565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e3a9190612479565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a91906127ad565b610ed35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107b4565b6000610ede33611dce565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f4557600080fd5b505afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906126ee565b9050818015610f9457506001600160a01b03811615155b15610ff85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fc5903390600401612479565b600060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110475760405162461bcd60e51b81526004016107b490612739565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611079611b96565b6001600160a01b03161461109f5760405162461bcd60e51b81526004016107b490612773565b6110a882611bb2565b6110b482826001611bba565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110f95750609d544210155b6111155760405162461bcd60e51b81526004016107b49061270b565b61111e3361120b565b1580611139575033600090815260aa602052604090205460ff165b156111c45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906127ca565b62015180609d54426111d6919061267e565b6111e09190612695565b609c541415611203576111f2336110b8565b6111fd5750609e5490565b50600090565b6107376113dd565b6001600160a01b0381166000908152609b60205260408120541561123157506001919050565b506000919050565b600080609d5411801561124e5750609d544210155b61126a5760405162461bcd60e51b81526004016107b49061270b565b60005b82518110156113af57609f545a10156112a7576040518181526000805160206129fc8339815191529060200160405180910390a192915050565b6112c98382815181106112bc576112bc6127e3565b602002602001015161120b565b80156112f457506112f28382815181106112e5576112e56127e3565b6020026020010151610ce8565b155b801561133a575060aa6000848381518110611311576113116127e3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b1561139f57611361838281518110611354576113546127e3565b60200260200101516109f9565b61139f5760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b60448201526064016107b4565b6113a8816127f9565b905061126d565b506000805160206129fc83398151915282516040516113d091815260200190565b60405180910390a1505190565b6000806113e86115a6565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016114139190612479565b60206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146391906127ca565b9050600060a55460a454836114789190612695565b119050600060a5549050600060a75461148f610719565b1015806114995750825b156114ae5760a4546114ab9085612695565b91505b60a054156114c65760a0546114c39083612695565b90505b949350505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b600062015180609d544261150c919061267e565b6115169190612695565b9050609c54811115610c4757609c8190556040518181527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea90602001610cdd565b61155f611cfa565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cdd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561160557600080fd5b505afa158015611619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906126ee565b606780546001600160a01b0319166001600160a01b038316179055610c476108b4565b600061166a6114f8565b60a154609c54146118da57600061167f6115a6565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016116af9190612479565b60206040518083038186803b1580156116c757600080fd5b505afa1580156116db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ff91906127ca565b9050600060a55460a454836117149190612695565b11905060a754611722610719565b10158061172c5750805b156118445760a35460ff161561174457611744611eec565b6040516370a0823160e01b81526001600160a01b038416906370a0823190611770903090600401612479565b60206040518083038186803b15801561178857600080fd5b505afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c091906127ca565b915060a454826117d09190612695565b60a55560a45460a7556117e5610e1042612695565b6117f190610e106126b7565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a054156118905760a05460a55461188c9190612695565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b81806118ea5750805b15611978576001609a6000609c548152602001908152602001600020600101600082825461191891906126d6565b9091555050609c546000908152609a602090815260408083206001600160a01b03881684528252808320805460ff19166001908117909155609b835281842042905560ab90925282208054919290916119729084906126d6565b90915550505b8015611a625760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a906119af908890600401612479565b602060405180830381600087803b1580156119c957600080fd5b505af11580156119dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0191906127ca565b905080609a6000609c5481526020019081526020016000206002016000828254611a2b91906126d6565b90915550506040518181526001600160a01b038616906000805160206129958339815191529060200160405180910390a2506108ae565b6000611a6c6115a6565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a9d9088908890600401612814565b602060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aef91906127ad565b611b335760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107b4565b8215611b8f57609c546000908152609a602052604081206002018054869290611b5d9084906126d6565b90915550506040518481526001600160a01b038616906000805160206129958339815191529060200160405180910390a25b5050505050565b6000805160206129b5833981519152546001600160a01b031690565b610c47611cfa565b6000611bc4611b96565b9050611bcf846121ef565b600083511180611bdc5750815b15611bed57611beb8484612282565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611b8f57805460ff19166001178155604051611c68908690611c39908590602401612479565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612282565b50805460ff19168155611c79611b96565b6001600160a01b0316826001600160a01b031614611cf15760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016107b4565b611b8f8561236d565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611d3e57600080fd5b505afa158015611d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7691906126ee565b6001600160a01b031614611dcc5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107b4565b565b600080611dd9611660565b9050611de48361120b565b8015611e0957506001600160a01b038316600090815260aa602052604090205460ff16155b8015611e1b5750611e19836110b8565b155b15611e3757611e2e8382600160006118e1565b50600192915050565b611e408361120b565b1580611e6457506001600160a01b038316600090815260aa602052604090205460ff165b15610d4157600160a06000828254611e7c91906126d6565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611eaf9084908060016118e1565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611ef66115a6565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611f269190612479565b60206040518083038186803b158015611f3e57600080fd5b505afa158015611f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7691906127ca565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611fae9290911690600401612479565b60206040518083038186803b158015611fc657600080fd5b505afa158015611fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffe91906127ca565b6065546040519192506001600160a01b03169063d1b7089a9085906120299030908690602401612814565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b03191681526120849392916001600160a01b031690600090600401612885565b600060405180830381600087803b15801561209e57600080fd5b505af11580156120b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120da91908101906128b9565b50600090506120e982846126d6565b6040516370a0823160e01b81529091506001600160a01b038516906370a0823190612118903090600401612479565b60206040518083038186803b15801561213057600080fd5b505afa158015612144573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216891906127ca565b81146121b05760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107b4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6122535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107b4565b6000805160206129b583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6122e15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b4565b600080846001600160a01b0316846040516122fc9190612945565b600060405180830381855af49150503d8060008114612337576040519150601f19603f3d011682016040523d82523d6000602084013e61233c565b606091505b509150915061236482826040518060600160405280602781526020016129d5602791396123ad565b95945050505050565b612376816121ef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156123bc5750816123e6565b8251156123cc5782518084602001fd5b8160405162461bcd60e51b81526004016107b49190612961565b9392505050565b6001600160a01b0381168114610c4757600080fd5b60006020828403121561241457600080fd5b81356123e6816123ed565b60006020828403121561243157600080fd5b5035919050565b60008060006060848603121561244d57600080fd5b8335612458816123ed565b92506020840135612468816123ed565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156124cb576124cb61248d565b604052919050565b60006001600160401b038211156124ec576124ec61248d565b50601f01601f191660200190565b6000806040838503121561250d57600080fd5b8235612518816123ed565b915060208301356001600160401b0381111561253357600080fd5b8301601f8101851361254457600080fd5b8035612557612552826124d3565b6124a3565b81815286602083850101111561256c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000602080838503121561259f57600080fd5b82356001600160401b03808211156125b657600080fd5b818501915085601f8301126125ca57600080fd5b8135818111156125dc576125dc61248d565b8060051b91506125ed8483016124a3565b818152918301840191848101908884111561260757600080fd5b938501935b838510156126315784359250612621836123ed565b828252938501939085019061260c565b98975050505050505050565b8015158114610c4757600080fd5b60006020828403121561265d57600080fd5b81356123e68161263d565b634e487b7160e01b600052601160045260246000fd5b60008282101561269057612690612668565b500390565b6000826126b257634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126d1576126d1612668565b500290565b600082198211156126e9576126e9612668565b500190565b60006020828403121561270057600080fd5b81516123e6816123ed565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c9082015260008051602061297583398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061297583398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156127bf57600080fd5b81516123e68161263d565b6000602082840312156127dc57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561280d5761280d612668565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b83811015612848578181015183820152602001612830565b838111156108ae5750506000910152565b6000815180845261287181602086016020860161282d565b601f01601f19169290920160200192915050565b600060018060a01b038087168352608060208401526128a76080840187612859565b94166040830152506060015292915050565b600080604083850312156128cc57600080fd5b82516128d78161263d565b60208401519092506001600160401b038111156128f357600080fd5b8301601f8101851361290457600080fd5b8051612912612552826124d3565b81815286602083850101111561292757600080fd5b61293882602083016020860161282d565b8093505050509250929050565b6000825161295781846020870161282d565b9190910192915050565b6020815260006123e6602083018461285956fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa26469706673582212200600ac5a76a07f206bbc281615a753929ff3e0dc19ccf267a6a138b55302fd6764736f6c63430008080033",
|
|
860
|
+
"deployedBytecode": "0x6080604052600436106101d65760003560e01c8063013eba92146101db578063069786ea1461021b5780630ce82d67146102455780631248b1011461025a5780631794bb3c146102915780631b3c90a8146102b35780631bbc644c146102c85780631d8f5ea9146102f857806322b457271461030e5780633659cfe6146103245780633d84ceca146103445780633e6326fc146103645780634162169f146103915780634202d214146103b1578063456ac1c2146103d15780634e71d92d146103eb5780634f1ef286146104005780635231e2f014610413578063560796d1146104435780635aef7de6146104945780635c9302c9146104b457806373b2e80e146104ca578063741470ac146104ea5780638081cbbd1461050057806398d6621b146105205780639dc2c03314610535578063a21f698a1461054b578063b656223d1461056b578063ba07541014610581578063c033abf214610597578063c1337508146105ad578063c7713870146105cd578063c7a76adf146105e2578063cc054dfc14610602578063cef636001461062f578063d7c4cbb81461064f578063dddc361614610665578063de1de3a01461067a578063e1758bd81461069a578063eac471a0146106af578063eda4e6d6146106c5575b600080fd5b3480156101e757600080fd5b506102086101f6366004612402565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561022757600080fd5b506102306106db565b60408051928352602083019190915201610212565b34801561025157600080fd5b50610208610719565b34801561026657600080fd5b5061023061027536600461241f565b609a602052600090815260409020600181015460029091015482565b34801561029d57600080fd5b506102b16102ac366004612438565b61073c565b005b3480156102bf57600080fd5b506102b16108b4565b3480156102d457600080fd5b506102e86102e3366004612402565b6109f9565b6040519015158152602001610212565b34801561030457600080fd5b50610208609e5481565b34801561031a57600080fd5b5061020860a05481565b34801561033057600080fd5b506102b161033f366004612402565b610b81565b34801561035057600080fd5b506102b161035f36600461241f565b610c4a565b34801561037057600080fd5b50606754610384906001600160a01b031681565b6040516102129190612479565b34801561039d57600080fd5b50606554610384906001600160a01b031681565b3480156103bd57600080fd5b506102e86103cc366004612402565b610ce8565b3480156103dd57600080fd5b5060a3546102e89060ff1681565b3480156103f757600080fd5b506102e8610d4a565b6102b161040e3660046124fa565b610ffe565b34801561041f57600080fd5b506102e861042e366004612402565b60aa6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061047d61045e36600461241f565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610212565b3480156104a057600080fd5b50606654610384906001600160a01b031681565b3480156104c057600080fd5b50610208609c5481565b3480156104d657600080fd5b506102e86104e5366004612402565b6110b8565b3480156104f657600080fd5b5061020860a75481565b34801561050c57600080fd5b5060a854610384906001600160a01b031681565b34801561052c57600080fd5b506102086110e4565b34801561054157600080fd5b5061020860a55481565b34801561055757600080fd5b506102e8610566366004612402565b61120b565b34801561057757600080fd5b5061020860a25481565b34801561058d57600080fd5b5061020860a65481565b3480156105a357600080fd5b50610208609f5481565b3480156105b957600080fd5b506102086105c836600461258c565b611239565b3480156105d957600080fd5b506102086113dd565b3480156105ee57600080fd5b506102086105fd36600461241f565b6114ce565b34801561060e57600080fd5b5061020861061d366004612402565b60ab6020526000908152604090205481565b34801561063b57600080fd5b5061020861064a36600461241f565b6114e3565b34801561065b57600080fd5b5061020860a15481565b34801561067157600080fd5b506102b16114f8565b34801561068657600080fd5b506102b161069536600461264b565b611557565b3480156106a657600080fd5b506103846115a6565b3480156106bb57600080fd5b5061020860a45481565b3480156106d157600080fd5b50610208609d5481565b600080600062015180609d54426106f2919061267e565b6106fc9190612695565b9050610707816114ce565b610710826114e3565b92509250509091565b60006201518060a6544261072d919061267e565b6107379190612695565b905090565b600054610100900460ff1680610755575060005460ff16155b6107bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107df576000805461ffff19166101011790555b6000821161082f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f60448201526064016107b4565b6108388461163d565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561087b6201518042612695565b61088890620151806126b7565b6108949061a8c06126d6565b609d81905560a65580156108ae576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906126ee565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561099f57600080fd5b505afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d791906126ee565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d54118015610a0e5750609d544210155b610a2a5760405162461bcd60e51b81526004016107b49061270b565b610a338261120b565b8015610a455750610a4382610ce8565b155b610a8b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b60448201526064016107b4565b6001600160a01b038216600090815260aa602052604090205460ff1615610ae55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b60448201526064016107b4565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610b10611660565b9050600160a06000828254610b25919061267e565b90915550610b38905033826000806118e1565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610bca5760405162461bcd60e51b81526004016107b490612739565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfc611b96565b6001600160a01b031614610c225760405162461bcd60e51b81526004016107b490612773565b610c2b81611bb2565b60408051600080825260208201909252610c4791839190611bba565b50565b610c52611cfa565b60008111610cac5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107b4565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610d0a8361120b565b15610d4157600062015180610d1f834261267e565b610d299190612695565b905060a254811015610d3f575060019392505050565b505b50600092915050565b600080609d54118015610d5f5750609d544210155b610d7b5760405162461bcd60e51b81526004016107b49061270b565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610dd757600080fd5b505afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906126ee565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e3a9190612479565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a91906127ad565b610ed35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107b4565b6000610ede33611dce565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f4557600080fd5b505afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906126ee565b9050818015610f9457506001600160a01b03811615155b15610ff85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fc5903390600401612479565b600060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110475760405162461bcd60e51b81526004016107b490612739565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611079611b96565b6001600160a01b03161461109f5760405162461bcd60e51b81526004016107b490612773565b6110a882611bb2565b6110b482826001611bba565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110f95750609d544210155b6111155760405162461bcd60e51b81526004016107b49061270b565b61111e3361120b565b1580611139575033600090815260aa602052604090205460ff165b156111c45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906127ca565b62015180609d54426111d6919061267e565b6111e09190612695565b609c541415611203576111f2336110b8565b6111fd5750609e5490565b50600090565b6107376113dd565b6001600160a01b0381166000908152609b60205260408120541561123157506001919050565b506000919050565b600080609d5411801561124e5750609d544210155b61126a5760405162461bcd60e51b81526004016107b49061270b565b60005b82518110156113af57609f545a10156112a7576040518181526000805160206129fc8339815191529060200160405180910390a192915050565b6112c98382815181106112bc576112bc6127e3565b602002602001015161120b565b80156112f457506112f28382815181106112e5576112e56127e3565b6020026020010151610ce8565b155b801561133a575060aa6000848381518110611311576113116127e3565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b1561139f57611361838281518110611354576113546127e3565b60200260200101516109f9565b61139f5760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b60448201526064016107b4565b6113a8816127f9565b905061126d565b506000805160206129fc83398151915282516040516113d091815260200190565b60405180910390a1505190565b6000806113e86115a6565b6001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016114139190612479565b60206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061146391906127ca565b9050600060a55460a454836114789190612695565b119050600060a5549050600060a75461148f610719565b1015806114995750825b156114ae5760a4546114ab9085612695565b91505b60a054156114c65760a0546114c39083612695565b90505b949350505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b600062015180609d544261150c919061267e565b6115169190612695565b9050609c54811115610c4757609c8190556040518181527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea90602001610cdd565b61155f611cfa565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cdd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561160557600080fd5b505afa158015611619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906126ee565b606780546001600160a01b0319166001600160a01b038316179055610c476108b4565b600061166a6114f8565b60a154609c54146118da57600061167f6115a6565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016116af9190612479565b60206040518083038186803b1580156116c757600080fd5b505afa1580156116db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ff91906127ca565b9050600060a55460a454836117149190612695565b11905060a754611722610719565b10158061172c5750805b156118445760a35460ff161561174457611744611eec565b6040516370a0823160e01b81526001600160a01b038416906370a0823190611770903090600401612479565b60206040518083038186803b15801561178857600080fd5b505afa15801561179c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c091906127ca565b915060a454826117d09190612695565b60a55560a45460a7556117e5610e1042612695565b6117f190610e106126b7565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a054156118905760a05460a55461188c9190612695565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b81806118ea5750805b15611978576001609a6000609c548152602001908152602001600020600101600082825461191891906126d6565b9091555050609c546000908152609a602090815260408083206001600160a01b03881684528252808320805460ff19166001908117909155609b835281842042905560ab90925282208054919290916119729084906126d6565b90915550505b8015611a625760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a906119af908890600401612479565b602060405180830381600087803b1580156119c957600080fd5b505af11580156119dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0191906127ca565b905080609a6000609c5481526020019081526020016000206002016000828254611a2b91906126d6565b90915550506040518181526001600160a01b038616906000805160206129958339815191529060200160405180910390a2506108ae565b6000611a6c6115a6565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a9d9088908890600401612814565b602060405180830381600087803b158015611ab757600080fd5b505af1158015611acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aef91906127ad565b611b335760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107b4565b8215611b8f57609c546000908152609a602052604081206002018054869290611b5d9084906126d6565b90915550506040518481526001600160a01b038616906000805160206129958339815191529060200160405180910390a25b5050505050565b6000805160206129b5833981519152546001600160a01b031690565b610c47611cfa565b6000611bc4611b96565b9050611bcf846121ef565b600083511180611bdc5750815b15611bed57611beb8484612282565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611b8f57805460ff19166001178155604051611c68908690611c39908590602401612479565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612282565b50805460ff19168155611c79611b96565b6001600160a01b0316826001600160a01b031614611cf15760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016107b4565b611b8f8561236d565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611d3e57600080fd5b505afa158015611d52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7691906126ee565b6001600160a01b031614611dcc5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107b4565b565b600080611dd9611660565b9050611de48361120b565b8015611e0957506001600160a01b038316600090815260aa602052604090205460ff16155b8015611e1b5750611e19836110b8565b155b15611e3757611e2e8382600160006118e1565b50600192915050565b611e408361120b565b1580611e6457506001600160a01b038316600090815260aa602052604090205460ff165b15610d4157600160a06000828254611e7c91906126d6565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611eaf9084908060016118e1565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611ef66115a6565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611f269190612479565b60206040518083038186803b158015611f3e57600080fd5b505afa158015611f52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7691906127ca565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611fae9290911690600401612479565b60206040518083038186803b158015611fc657600080fd5b505afa158015611fda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffe91906127ca565b6065546040519192506001600160a01b03169063d1b7089a9085906120299030908690602401612814565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b03191681526120849392916001600160a01b031690600090600401612885565b600060405180830381600087803b15801561209e57600080fd5b505af11580156120b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120da91908101906128b9565b50600090506120e982846126d6565b6040516370a0823160e01b81529091506001600160a01b038516906370a0823190612118903090600401612479565b60206040518083038186803b15801561213057600080fd5b505afa158015612144573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061216891906127ca565b81146121b05760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107b4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6122535760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107b4565b6000805160206129b583398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6122e15760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b4565b600080846001600160a01b0316846040516122fc9190612945565b600060405180830381855af49150503d8060008114612337576040519150601f19603f3d011682016040523d82523d6000602084013e61233c565b606091505b509150915061236482826040518060600160405280602781526020016129d5602791396123ad565b95945050505050565b612376816121ef565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156123bc5750816123e6565b8251156123cc5782518084602001fd5b8160405162461bcd60e51b81526004016107b49190612961565b9392505050565b6001600160a01b0381168114610c4757600080fd5b60006020828403121561241457600080fd5b81356123e6816123ed565b60006020828403121561243157600080fd5b5035919050565b60008060006060848603121561244d57600080fd5b8335612458816123ed565b92506020840135612468816123ed565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156124cb576124cb61248d565b604052919050565b60006001600160401b038211156124ec576124ec61248d565b50601f01601f191660200190565b6000806040838503121561250d57600080fd5b8235612518816123ed565b915060208301356001600160401b0381111561253357600080fd5b8301601f8101851361254457600080fd5b8035612557612552826124d3565b6124a3565b81815286602083850101111561256c57600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000602080838503121561259f57600080fd5b82356001600160401b03808211156125b657600080fd5b818501915085601f8301126125ca57600080fd5b8135818111156125dc576125dc61248d565b8060051b91506125ed8483016124a3565b818152918301840191848101908884111561260757600080fd5b938501935b838510156126315784359250612621836123ed565b828252938501939085019061260c565b98975050505050505050565b8015158114610c4757600080fd5b60006020828403121561265d57600080fd5b81356123e68161263d565b634e487b7160e01b600052601160045260246000fd5b60008282101561269057612690612668565b500390565b6000826126b257634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126d1576126d1612668565b500290565b600082198211156126e9576126e9612668565b500190565b60006020828403121561270057600080fd5b81516123e6816123ed565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c9082015260008051602061297583398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061297583398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156127bf57600080fd5b81516123e68161263d565b6000602082840312156127dc57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561280d5761280d612668565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b83811015612848578181015183820152602001612830565b838111156108ae5750506000910152565b6000815180845261287181602086016020860161282d565b601f01601f19169290920160200192915050565b600060018060a01b038087168352608060208401526128a76080840187612859565b94166040830152506060015292915050565b600080604083850312156128cc57600080fd5b82516128d78161263d565b60208401519092506001600160401b038111156128f357600080fd5b8301601f8101851361290457600080fd5b8051612912612552826124d3565b81815286602083850101111561292757600080fd5b61293882602083016020860161282d565b8093505050509250929050565b6000825161295781846020870161282d565b9190910192915050565b6020815260006123e6602083018461285956fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa26469706673582212200600ac5a76a07f206bbc281615a753929ff3e0dc19ccf267a6a138b55302fd6764736f6c63430008080033",
|
|
861
861
|
"linkReferences": {},
|
|
862
862
|
"deployedLinkReferences": {}
|
|
863
863
|
}
|
|
@@ -282,8 +282,11 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
282
282
|
* since start of contract.
|
|
283
283
|
*/
|
|
284
284
|
function setDay() public {
|
|
285
|
-
|
|
286
|
-
|
|
285
|
+
uint256 day = (block.timestamp - periodStart) / (1 days);
|
|
286
|
+
if (day > currentDay) {
|
|
287
|
+
currentDay = day;
|
|
288
|
+
emit DaySet(day);
|
|
289
|
+
}
|
|
287
290
|
}
|
|
288
291
|
|
|
289
292
|
/**
|
|
@@ -345,22 +348,24 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
345
348
|
bool _isFirstTime
|
|
346
349
|
) internal {
|
|
347
350
|
// updates the stats
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
351
|
+
if (_isClaimed || _isFirstTime) {
|
|
352
|
+
//in case of fishing dont update stats
|
|
353
|
+
claimDay[currentDay].amountOfClaimers += 1;
|
|
354
|
+
claimDay[currentDay].hasClaimed[_account] = true;
|
|
355
|
+
lastClaimed[_account] = block.timestamp;
|
|
356
|
+
totalClaimsPerUser[_account] += 1;
|
|
357
|
+
}
|
|
353
358
|
|
|
354
359
|
// awards a new user or a fished user
|
|
355
360
|
if (_isFirstTime) {
|
|
356
361
|
uint256 awardAmount = firstClaimPool.awardUser(_account);
|
|
357
|
-
|
|
362
|
+
claimDay[currentDay].claimAmount += awardAmount;
|
|
358
363
|
emit UBIClaimed(_account, awardAmount);
|
|
359
364
|
} else {
|
|
360
|
-
day.claimAmount += _amount;
|
|
361
365
|
IGoodDollar token = nativeToken();
|
|
362
366
|
require(token.transfer(_account, _amount), "claim transfer failed");
|
|
363
367
|
if (_isClaimed) {
|
|
368
|
+
claimDay[currentDay].claimAmount += _amount;
|
|
364
369
|
emit UBIClaimed(_account, _amount);
|
|
365
370
|
}
|
|
366
371
|
}
|
package/package.json
CHANGED
package/scripts/deployFullDAO.ts
CHANGED
|
@@ -478,6 +478,17 @@ export const deploySidechain = async (
|
|
|
478
478
|
})
|
|
479
479
|
.then(printDeploy);
|
|
480
480
|
|
|
481
|
+
let encoded = (
|
|
482
|
+
await ethers.getContractAt("IGoodDollar", gd)
|
|
483
|
+
).interface.encodeFunctionData("mint", [firstClaim.address, 1000000]);
|
|
484
|
+
await genericCall(gd, encoded);
|
|
485
|
+
|
|
486
|
+
encoded = (
|
|
487
|
+
await ethers.getContractAt("IGoodDollar", gd)
|
|
488
|
+
).interface.encodeFunctionData("mint", [invites.address, 1000000]);
|
|
489
|
+
|
|
490
|
+
await genericCall(gd, encoded);
|
|
491
|
+
|
|
481
492
|
console.log("setting firstclaim and otp schemes...");
|
|
482
493
|
await setSchemes([firstClaim.address, otp.address]);
|
|
483
494
|
await firstClaim.start().then(printDeploy);
|
|
@@ -494,7 +505,7 @@ const deployAdminWallet = async identity => {
|
|
|
494
505
|
const root = (await ethers.getSigners())[0];
|
|
495
506
|
const hdNode = ethers.utils.HDNode.fromMnemonic(process.env.ADMIN_MNEMONIC);
|
|
496
507
|
const admins = range(0, 50).map(i =>
|
|
497
|
-
hdNode.derivePath(`m/44'/60'/0'/0/${i
|
|
508
|
+
hdNode.derivePath(`m/44'/60'/0'/0/${i}`)
|
|
498
509
|
);
|
|
499
510
|
|
|
500
511
|
const adminWallet = (await new ethers.ContractFactory(
|
|
@@ -17,14 +17,8 @@ describe("ClaimersDistribution", () => {
|
|
|
17
17
|
cd: ClaimersDistribution;
|
|
18
18
|
|
|
19
19
|
before(async () => {
|
|
20
|
-
[
|
|
21
|
-
|
|
22
|
-
acct,
|
|
23
|
-
claimer1,
|
|
24
|
-
claimer2,
|
|
25
|
-
claimer3,
|
|
26
|
-
...signers
|
|
27
|
-
] = await ethers.getSigners();
|
|
20
|
+
[root, acct, claimer1, claimer2, claimer3, ...signers] =
|
|
21
|
+
await ethers.getSigners();
|
|
28
22
|
|
|
29
23
|
const deployedDAO = await createDAO();
|
|
30
24
|
let {
|
|
@@ -202,4 +196,15 @@ describe("ClaimersDistribution", () => {
|
|
|
202
196
|
|
|
203
197
|
expect(endCount).to.be.equal(startCount.add(2));
|
|
204
198
|
});
|
|
199
|
+
|
|
200
|
+
it("should not cost alot of gas to claim with reputation distribution [@skip-on-coverage]", async () => {
|
|
201
|
+
let totalGas = 0;
|
|
202
|
+
for (let i = 0; i < 31; i++) {
|
|
203
|
+
await increaseTime(60 * 60 * 24);
|
|
204
|
+
const tx = await (await ubiScheme.connect(claimer3).claim()).wait();
|
|
205
|
+
totalGas += tx.gasUsed.toNumber();
|
|
206
|
+
console.log({ totalGas }, tx.gasUsed.toNumber());
|
|
207
|
+
}
|
|
208
|
+
expect(totalGas / 30).lt(310000);
|
|
209
|
+
});
|
|
205
210
|
});
|