@gooddollar/goodprotocol 1.0.2-beta.2 → 1.0.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/CompoundVotingMachine.sol/CompoundVotingMachine.json +20 -2
- 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/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
- 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/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
- 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/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
- 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/DonationsStaking.sol/DonationsStaking.json +2 -2
- 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/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +15 -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/governance/CompoundVotingMachine.sol +10 -2
- package/contracts/staking/UniswapV2SwapHelper.sol +0 -1
- package/contracts/ubi/UBIScheme.sol +20 -4
- package/hardhat.config.ts +12 -2
- package/package.json +1 -1
- package/releases/deploy-settings.json +26 -22
- package/releases/deployment.json +425 -330
- package/releases/olddao.json +406 -1
- package/scripts/upgradeToV2/upgradeToV2.ts +54 -34
- package/test/governance/CompoundVotingMachine.castvote.test.ts +0 -3
- package/test/governance/CompoundVotingMachine.daoscheme.ts +0 -9
- package/test/governance/CompoundVotingMachine.guardian.test.ts +10 -5
- package/test/governance/CompoundVotingMachine.propose.test.ts +0 -3
- package/test/governance/CompoundVotingMachine.state.test.ts +0 -3
- package/test/helpers.ts +30 -30
- package/test/ubi/UBIScheme.test.ts +6 -17
- package/test/ubi/UBISchemeCycle.test.ts +3 -4
- package/test/utils/ProtocolUpgrade.test.ts +19 -1
- package/truffle-config.js +21 -3
|
@@ -423,6 +423,19 @@
|
|
|
423
423
|
"stateMutability": "view",
|
|
424
424
|
"type": "function"
|
|
425
425
|
},
|
|
426
|
+
{
|
|
427
|
+
"inputs": [],
|
|
428
|
+
"name": "estimateNextDailyUBI",
|
|
429
|
+
"outputs": [
|
|
430
|
+
{
|
|
431
|
+
"internalType": "uint256",
|
|
432
|
+
"name": "",
|
|
433
|
+
"type": "uint256"
|
|
434
|
+
}
|
|
435
|
+
],
|
|
436
|
+
"stateMutability": "view",
|
|
437
|
+
"type": "function"
|
|
438
|
+
},
|
|
426
439
|
{
|
|
427
440
|
"inputs": [],
|
|
428
441
|
"name": "firstClaimPool",
|
|
@@ -843,8 +856,8 @@
|
|
|
843
856
|
"type": "function"
|
|
844
857
|
}
|
|
845
858
|
],
|
|
846
|
-
"bytecode": "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c61299e61004b60003960008181610b6c01528181610bac01528181610fe90152611029015261299e6000f3fe6080604052600436106101cb5760003560e01c8063013eba92146101d0578063069786ea146102105780630ce82d671461023a5780631248b1011461024f5780631794bb3c146102865780631b3c90a8146102a85780631bbc644c146102bd5780631d8f5ea9146102ed57806322b45727146103035780633659cfe6146103195780633d84ceca146103395780633e6326fc146103595780634162169f146103865780634202d214146103a6578063456ac1c2146103c65780634e71d92d146103e05780634f1ef286146103f55780635231e2f014610408578063560796d1146104385780635aef7de6146104895780635c9302c9146104a957806373b2e80e146104bf578063741470ac146104df5780638081cbbd146104f557806398d6621b146105155780639dc2c0331461052a578063a21f698a14610540578063b656223d14610560578063ba07541014610576578063c033abf21461058c578063c1337508146105a2578063c7a76adf146105c2578063cc054dfc146105e2578063cef636001461060f578063d7c4cbb81461062f578063dddc361614610645578063de1de3a01461065a578063e1758bd81461067a578063eac471a01461068f578063eda4e6d6146106a5575b600080fd5b3480156101dc57600080fd5b506101fd6101eb36600461234f565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561021c57600080fd5b506102256106bb565b60408051928352602083019190915201610207565b34801561024657600080fd5b506101fd6106f9565b34801561025b57600080fd5b5061022561026a36600461236c565b609a602052600090815260409020600181015460029091015482565b34801561029257600080fd5b506102a66102a1366004612385565b61071c565b005b3480156102b457600080fd5b506102a6610894565b3480156102c957600080fd5b506102dd6102d836600461234f565b6109d9565b6040519015158152602001610207565b3480156102f957600080fd5b506101fd609e5481565b34801561030f57600080fd5b506101fd60a05481565b34801561032557600080fd5b506102a661033436600461234f565b610b61565b34801561034557600080fd5b506102a661035436600461236c565b610c2a565b34801561036557600080fd5b50606754610379906001600160a01b031681565b60405161020791906123c6565b34801561039257600080fd5b50606554610379906001600160a01b031681565b3480156103b257600080fd5b506102dd6103c136600461234f565b610cc8565b3480156103d257600080fd5b5060a3546102dd9060ff1681565b3480156103ec57600080fd5b506102dd610d2a565b6102a6610403366004612447565b610fde565b34801561041457600080fd5b506102dd61042336600461234f565b60aa6020526000908152604090205460ff1681565b34801561044457600080fd5b5061047261045336600461236c565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610207565b34801561049557600080fd5b50606654610379906001600160a01b031681565b3480156104b557600080fd5b506101fd609c5481565b3480156104cb57600080fd5b506102dd6104da36600461234f565b611098565b3480156104eb57600080fd5b506101fd60a75481565b34801561050157600080fd5b5060a854610379906001600160a01b031681565b34801561052157600080fd5b506101fd6110c4565b34801561053657600080fd5b506101fd60a55481565b34801561054c57600080fd5b506102dd61055b36600461234f565b611284565b34801561056c57600080fd5b506101fd60a25481565b34801561058257600080fd5b506101fd60a65481565b34801561059857600080fd5b506101fd609f5481565b3480156105ae57600080fd5b506101fd6105bd3660046124d9565b6112b2565b3480156105ce57600080fd5b506101fd6105dd36600461236c565b611456565b3480156105ee57600080fd5b506101fd6105fd36600461234f565b60ab6020526000908152604090205481565b34801561061b57600080fd5b506101fd61062a36600461236c565b61146b565b34801561063b57600080fd5b506101fd60a15481565b34801561065157600080fd5b506102a6611480565b34801561066657600080fd5b506102a6610675366004612598565b6114d6565b34801561068657600080fd5b50610379611525565b34801561069b57600080fd5b506101fd60a45481565b3480156106b157600080fd5b506101fd609d5481565b600080600062015180609d54426106d291906125cb565b6106dc91906125e2565b90506106e781611456565b6106f08261146b565b92509250509091565b60006201518060a6544261070d91906125cb565b61071791906125e2565b905090565b600054610100900460ff1680610735575060005460ff16155b61079d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107bf576000805461ffff19166101011790555b6000821161080f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f6044820152606401610794565b610818846115bc565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561085b62015180426125e2565b6108689062015180612604565b6108749061a8c0612623565b609d81905560a655801561088e576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a919061263b565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b7919061263b565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d541180156109ee5750609d544210155b610a0a5760405162461bcd60e51b815260040161079490612658565b610a1382611284565b8015610a255750610a2382610cc8565b155b610a6b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b6044820152606401610794565b6001600160a01b038216600090815260aa602052604090205460ff1615610ac55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b6044820152606401610794565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610af06115df565b9050600160a06000828254610b0591906125cb565b90915550610b1890503382600080611860565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610baa5760405162461bcd60e51b815260040161079490612686565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611ae3565b6001600160a01b031614610c025760405162461bcd60e51b8152600401610794906126c0565b610c0b81611aff565b60408051600080825260208201909252610c2791839190611b07565b50565b610c32611c47565b60008111610c8c5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b6064820152608401610794565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610cea83611284565b15610d2157600062015180610cff83426125cb565b610d0991906125e2565b905060a254811015610d1f575060019392505050565b505b50600092915050565b600080609d54118015610d3f5750609d544210155b610d5b5760405162461bcd60e51b815260040161079490612658565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610db757600080fd5b505afa158015610dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610def919061263b565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e1a91906123c6565b60206040518083038186803b158015610e3257600080fd5b505afa158015610e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6a91906126fa565b610eb35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b6044820152606401610794565b6000610ebe33611d1b565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f2557600080fd5b505afa158015610f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5d919061263b565b9050818015610f7457506001600160a01b03811615155b15610fd85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fa59033906004016123c6565b600060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110275760405162461bcd60e51b815260040161079490612686565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611059611ae3565b6001600160a01b03161461107f5760405162461bcd60e51b8152600401610794906126c0565b61108882611aff565b61109482826001611b07565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110d95750609d544210155b6110f55760405162461bcd60e51b815260040161079490612658565b6110fe33611284565b1580611119575033600090815260aa602052604090205460ff165b156111a45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561116c57600080fd5b505afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107179190612717565b62015180609d54426111b691906125cb565b6111c091906125e2565b609c5414156111e3576111d233611098565b6111dd5750609e5490565b50600090565b60006111ed611525565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161121d91906123c6565b60206040518083038186803b15801561123557600080fd5b505afa158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d9190612717565b905060a0548161127d91906125e2565b9250505090565b6001600160a01b0381166000908152609b6020526040812054156112aa57506001919050565b506000919050565b600080609d541180156112c75750609d544210155b6112e35760405162461bcd60e51b815260040161079490612658565b60005b825181101561142857609f545a1015611320576040518181526000805160206129498339815191529060200160405180910390a192915050565b61134283828151811061133557611335612730565b6020026020010151611284565b801561136d575061136b83828151811061135e5761135e612730565b6020026020010151610cc8565b155b80156113b3575060aa600084838151811061138a5761138a612730565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b15611418576113da8382815181106113cd576113cd612730565b60200260200101516109d9565b6114185760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b6044820152606401610794565b61142181612746565b90506112e6565b50600080516020612949833981519152825160405161144991815260200190565b60405180910390a1505190565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b62015180609d544261149291906125cb565b61149c91906125e2565b609c8190556040519081527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea9060200160405180910390a1565b6114de611c47565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cbd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561158457600080fd5b505afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610717919061263b565b606780546001600160a01b0319166001600160a01b038316179055610c27610894565b60006115e9611480565b60a154609c54146118595760006115fe611525565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161162e91906123c6565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167e9190612717565b9050600060a55460a4548361169391906125e2565b11905060a7546116a16106f9565b1015806116ab5750805b156117c35760a35460ff16156116c3576116c3611e39565b6040516370a0823160e01b81526001600160a01b038416906370a08231906116ef9030906004016123c6565b60206040518083038186803b15801561170757600080fd5b505afa15801561171b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173f9190612717565b915060a4548261174f91906125e2565b60a55560a45460a755611764610e10426125e2565b61177090610e10612604565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a0541561180f5760a05460a55461180b91906125e2565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b6000609a6000609c5481526020019081526020016000209050600181600101600082825461188e9190612623565b90915550506001600160a01b038516600090815260208281526040808320805460ff19166001908117909155609b835281842042905560ab90925282208054919290916118dc908490612623565b909155505081156119b75760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a906119189089906004016123c6565b602060405180830381600087803b15801561193257600080fd5b505af1158015611946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196a9190612717565b9050808260020160008282546119809190612623565b90915550506040518181526001600160a01b038716906000805160206128e28339815191529060200160405180910390a250611adc565b838160020160008282546119cb9190612623565b90915550600090506119db611525565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a0c9089908990600401612761565b602060405180830381600087803b158015611a2657600080fd5b505af1158015611a3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5e91906126fa565b611aa25760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610794565b8315611ada57856001600160a01b03166000805160206128e283398151915286604051611ad191815260200190565b60405180910390a25b505b5050505050565b600080516020612902833981519152546001600160a01b031690565b610c27611c47565b6000611b11611ae3565b9050611b1c8461213c565b600083511180611b295750815b15611b3a57611b3884846121cf565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611adc57805460ff19166001178155604051611bb5908690611b869085906024016123c6565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526121cf565b50805460ff19168155611bc6611ae3565b6001600160a01b0316826001600160a01b031614611c3e5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610794565b611adc856122ba565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611c8b57600080fd5b505afa158015611c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc3919061263b565b6001600160a01b031614611d195760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610794565b565b600080611d266115df565b9050611d3183611284565b8015611d5657506001600160a01b038316600090815260aa602052604090205460ff16155b8015611d685750611d6683611098565b155b15611d8457611d7b838260016000611860565b50600192915050565b611d8d83611284565b1580611db157506001600160a01b038316600090815260aa602052604090205460ff165b15610d2157600160a06000828254611dc99190612623565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611dfc908490806001611860565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611e43611525565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611e7391906123c6565b60206040518083038186803b158015611e8b57600080fd5b505afa158015611e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec39190612717565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611efb92909116906004016123c6565b60206040518083038186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4b9190612717565b6065546040519192506001600160a01b03169063d1b7089a908590611f769030908690602401612761565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b0319168152611fd19392916001600160a01b0316906000906004016127d2565b600060405180830381600087803b158015611feb57600080fd5b505af1158015611fff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120279190810190612806565b50600090506120368284612623565b6040516370a0823160e01b81529091506001600160a01b038516906370a08231906120659030906004016123c6565b60206040518083038186803b15801561207d57600080fd5b505afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190612717565b81146120fd5760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b6044820152606401610794565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6121a05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610794565b60008051602061290283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61222e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610794565b600080846001600160a01b0316846040516122499190612892565b600060405180830381855af49150503d8060008114612284576040519150601f19603f3d011682016040523d82523d6000602084013e612289565b606091505b50915091506122b18282604051806060016040528060278152602001612922602791396122fa565b95945050505050565b6122c38161213c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315612309575081612333565b8251156123195782518084602001fd5b8160405162461bcd60e51b815260040161079491906128ae565b9392505050565b6001600160a01b0381168114610c2757600080fd5b60006020828403121561236157600080fd5b81356123338161233a565b60006020828403121561237e57600080fd5b5035919050565b60008060006060848603121561239a57600080fd5b83356123a58161233a565b925060208401356123b58161233a565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612418576124186123da565b604052919050565b60006001600160401b03821115612439576124396123da565b50601f01601f191660200190565b6000806040838503121561245a57600080fd5b82356124658161233a565b915060208301356001600160401b0381111561248057600080fd5b8301601f8101851361249157600080fd5b80356124a461249f82612420565b6123f0565b8181528660208385010111156124b957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208083850312156124ec57600080fd5b82356001600160401b038082111561250357600080fd5b818501915085601f83011261251757600080fd5b813581811115612529576125296123da565b8060051b915061253a8483016123f0565b818152918301840191848101908884111561255457600080fd5b938501935b8385101561257e578435925061256e8361233a565b8282529385019390850190612559565b98975050505050505050565b8015158114610c2757600080fd5b6000602082840312156125aa57600080fd5b81356123338161258a565b634e487b7160e01b600052601160045260246000fd5b6000828210156125dd576125dd6125b5565b500390565b6000826125ff57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561261e5761261e6125b5565b500290565b60008219821115612636576126366125b5565b500190565b60006020828403121561264d57600080fd5b81516123338161233a565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c908201526000805160206128c283398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206128c283398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561270c57600080fd5b81516123338161258a565b60006020828403121561272957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561275a5761275a6125b5565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b8381101561279557818101518382015260200161277d565b8381111561088e5750506000910152565b600081518084526127be81602086016020860161277a565b601f01601f19169290920160200192915050565b600060018060a01b038087168352608060208401526127f460808401876127a6565b94166040830152506060015292915050565b6000806040838503121561281957600080fd5b82516128248161258a565b60208401519092506001600160401b0381111561284057600080fd5b8301601f8101851361285157600080fd5b805161285f61249f82612420565b81815286602083850101111561287457600080fd5b61288582602083016020860161277a565b8093505050509250929050565b600082516128a481846020870161277a565b9190910192915050565b60208152600061233360208301846127a656fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa2646970667358221220695507988a874d54efcda5d25fd5f5bc1cf20d96ae696e2f1b942a23b5e008df64736f6c63430008080033",
|
|
847
|
-
"deployedBytecode": "0x6080604052600436106101cb5760003560e01c8063013eba92146101d0578063069786ea146102105780630ce82d671461023a5780631248b1011461024f5780631794bb3c146102865780631b3c90a8146102a85780631bbc644c146102bd5780631d8f5ea9146102ed57806322b45727146103035780633659cfe6146103195780633d84ceca146103395780633e6326fc146103595780634162169f146103865780634202d214146103a6578063456ac1c2146103c65780634e71d92d146103e05780634f1ef286146103f55780635231e2f014610408578063560796d1146104385780635aef7de6146104895780635c9302c9146104a957806373b2e80e146104bf578063741470ac146104df5780638081cbbd146104f557806398d6621b146105155780639dc2c0331461052a578063a21f698a14610540578063b656223d14610560578063ba07541014610576578063c033abf21461058c578063c1337508146105a2578063c7a76adf146105c2578063cc054dfc146105e2578063cef636001461060f578063d7c4cbb81461062f578063dddc361614610645578063de1de3a01461065a578063e1758bd81461067a578063eac471a01461068f578063eda4e6d6146106a5575b600080fd5b3480156101dc57600080fd5b506101fd6101eb36600461234f565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561021c57600080fd5b506102256106bb565b60408051928352602083019190915201610207565b34801561024657600080fd5b506101fd6106f9565b34801561025b57600080fd5b5061022561026a36600461236c565b609a602052600090815260409020600181015460029091015482565b34801561029257600080fd5b506102a66102a1366004612385565b61071c565b005b3480156102b457600080fd5b506102a6610894565b3480156102c957600080fd5b506102dd6102d836600461234f565b6109d9565b6040519015158152602001610207565b3480156102f957600080fd5b506101fd609e5481565b34801561030f57600080fd5b506101fd60a05481565b34801561032557600080fd5b506102a661033436600461234f565b610b61565b34801561034557600080fd5b506102a661035436600461236c565b610c2a565b34801561036557600080fd5b50606754610379906001600160a01b031681565b60405161020791906123c6565b34801561039257600080fd5b50606554610379906001600160a01b031681565b3480156103b257600080fd5b506102dd6103c136600461234f565b610cc8565b3480156103d257600080fd5b5060a3546102dd9060ff1681565b3480156103ec57600080fd5b506102dd610d2a565b6102a6610403366004612447565b610fde565b34801561041457600080fd5b506102dd61042336600461234f565b60aa6020526000908152604090205460ff1681565b34801561044457600080fd5b5061047261045336600461236c565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610207565b34801561049557600080fd5b50606654610379906001600160a01b031681565b3480156104b557600080fd5b506101fd609c5481565b3480156104cb57600080fd5b506102dd6104da36600461234f565b611098565b3480156104eb57600080fd5b506101fd60a75481565b34801561050157600080fd5b5060a854610379906001600160a01b031681565b34801561052157600080fd5b506101fd6110c4565b34801561053657600080fd5b506101fd60a55481565b34801561054c57600080fd5b506102dd61055b36600461234f565b611284565b34801561056c57600080fd5b506101fd60a25481565b34801561058257600080fd5b506101fd60a65481565b34801561059857600080fd5b506101fd609f5481565b3480156105ae57600080fd5b506101fd6105bd3660046124d9565b6112b2565b3480156105ce57600080fd5b506101fd6105dd36600461236c565b611456565b3480156105ee57600080fd5b506101fd6105fd36600461234f565b60ab6020526000908152604090205481565b34801561061b57600080fd5b506101fd61062a36600461236c565b61146b565b34801561063b57600080fd5b506101fd60a15481565b34801561065157600080fd5b506102a6611480565b34801561066657600080fd5b506102a6610675366004612598565b6114d6565b34801561068657600080fd5b50610379611525565b34801561069b57600080fd5b506101fd60a45481565b3480156106b157600080fd5b506101fd609d5481565b600080600062015180609d54426106d291906125cb565b6106dc91906125e2565b90506106e781611456565b6106f08261146b565b92509250509091565b60006201518060a6544261070d91906125cb565b61071791906125e2565b905090565b600054610100900460ff1680610735575060005460ff16155b61079d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107bf576000805461ffff19166101011790555b6000821161080f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f6044820152606401610794565b610818846115bc565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561085b62015180426125e2565b6108689062015180612604565b6108749061a8c0612623565b609d81905560a655801561088e576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b1580156108f257600080fd5b505afa158015610906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092a919061263b565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561097f57600080fd5b505afa158015610993573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b7919061263b565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d541180156109ee5750609d544210155b610a0a5760405162461bcd60e51b815260040161079490612658565b610a1382611284565b8015610a255750610a2382610cc8565b155b610a6b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b6044820152606401610794565b6001600160a01b038216600090815260aa602052604090205460ff1615610ac55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b6044820152606401610794565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610af06115df565b9050600160a06000828254610b0591906125cb565b90915550610b1890503382600080611860565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610baa5760405162461bcd60e51b815260040161079490612686565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bdc611ae3565b6001600160a01b031614610c025760405162461bcd60e51b8152600401610794906126c0565b610c0b81611aff565b60408051600080825260208201909252610c2791839190611b07565b50565b610c32611c47565b60008111610c8c5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b6064820152608401610794565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610cea83611284565b15610d2157600062015180610cff83426125cb565b610d0991906125e2565b905060a254811015610d1f575060019392505050565b505b50600092915050565b600080609d54118015610d3f5750609d544210155b610d5b5760405162461bcd60e51b815260040161079490612658565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610db757600080fd5b505afa158015610dcb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610def919061263b565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e1a91906123c6565b60206040518083038186803b158015610e3257600080fd5b505afa158015610e46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6a91906126fa565b610eb35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b6044820152606401610794565b6000610ebe33611d1b565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f2557600080fd5b505afa158015610f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5d919061263b565b9050818015610f7457506001600160a01b03811615155b15610fd85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fa59033906004016123c6565b600060405180830381600087803b158015610fbf57600080fd5b505af1158015610fd3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110275760405162461bcd60e51b815260040161079490612686565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611059611ae3565b6001600160a01b03161461107f5760405162461bcd60e51b8152600401610794906126c0565b61108882611aff565b61109482826001611b07565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110d95750609d544210155b6110f55760405162461bcd60e51b815260040161079490612658565b6110fe33611284565b1580611119575033600090815260aa602052604090205460ff165b156111a45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561116c57600080fd5b505afa158015611180573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107179190612717565b62015180609d54426111b691906125cb565b6111c091906125e2565b609c5414156111e3576111d233611098565b6111dd5750609e5490565b50600090565b60006111ed611525565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161121d91906123c6565b60206040518083038186803b15801561123557600080fd5b505afa158015611249573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126d9190612717565b905060a0548161127d91906125e2565b9250505090565b6001600160a01b0381166000908152609b6020526040812054156112aa57506001919050565b506000919050565b600080609d541180156112c75750609d544210155b6112e35760405162461bcd60e51b815260040161079490612658565b60005b825181101561142857609f545a1015611320576040518181526000805160206129498339815191529060200160405180910390a192915050565b61134283828151811061133557611335612730565b6020026020010151611284565b801561136d575061136b83828151811061135e5761135e612730565b6020026020010151610cc8565b155b80156113b3575060aa600084838151811061138a5761138a612730565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b15611418576113da8382815181106113cd576113cd612730565b60200260200101516109d9565b6114185760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b6044820152606401610794565b61142181612746565b90506112e6565b50600080516020612949833981519152825160405161144991815260200190565b60405180910390a1505190565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b62015180609d544261149291906125cb565b61149c91906125e2565b609c8190556040519081527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea9060200160405180910390a1565b6114de611c47565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cbd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561158457600080fd5b505afa158015611598573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610717919061263b565b606780546001600160a01b0319166001600160a01b038316179055610c27610894565b60006115e9611480565b60a154609c54146118595760006115fe611525565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161162e91906123c6565b60206040518083038186803b15801561164657600080fd5b505afa15801561165a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061167e9190612717565b9050600060a55460a4548361169391906125e2565b11905060a7546116a16106f9565b1015806116ab5750805b156117c35760a35460ff16156116c3576116c3611e39565b6040516370a0823160e01b81526001600160a01b038416906370a08231906116ef9030906004016123c6565b60206040518083038186803b15801561170757600080fd5b505afa15801561171b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061173f9190612717565b915060a4548261174f91906125e2565b60a55560a45460a755611764610e10426125e2565b61177090610e10612604565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a0541561180f5760a05460a55461180b91906125e2565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b6000609a6000609c5481526020019081526020016000209050600181600101600082825461188e9190612623565b90915550506001600160a01b038516600090815260208281526040808320805460ff19166001908117909155609b835281842042905560ab90925282208054919290916118dc908490612623565b909155505081156119b75760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a906119189089906004016123c6565b602060405180830381600087803b15801561193257600080fd5b505af1158015611946573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196a9190612717565b9050808260020160008282546119809190612623565b90915550506040518181526001600160a01b038716906000805160206128e28339815191529060200160405180910390a250611adc565b838160020160008282546119cb9190612623565b90915550600090506119db611525565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a0c9089908990600401612761565b602060405180830381600087803b158015611a2657600080fd5b505af1158015611a3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5e91906126fa565b611aa25760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b6044820152606401610794565b8315611ada57856001600160a01b03166000805160206128e283398151915286604051611ad191815260200190565b60405180910390a25b505b5050505050565b600080516020612902833981519152546001600160a01b031690565b610c27611c47565b6000611b11611ae3565b9050611b1c8461213c565b600083511180611b295750815b15611b3a57611b3884846121cf565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611adc57805460ff19166001178155604051611bb5908690611b869085906024016123c6565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526121cf565b50805460ff19168155611bc6611ae3565b6001600160a01b0316826001600160a01b031614611c3e5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610794565b611adc856122ba565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611c8b57600080fd5b505afa158015611c9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc3919061263b565b6001600160a01b031614611d195760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610794565b565b600080611d266115df565b9050611d3183611284565b8015611d5657506001600160a01b038316600090815260aa602052604090205460ff16155b8015611d685750611d6683611098565b155b15611d8457611d7b838260016000611860565b50600192915050565b611d8d83611284565b1580611db157506001600160a01b038316600090815260aa602052604090205460ff165b15610d2157600160a06000828254611dc99190612623565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611dfc908490806001611860565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611e43611525565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611e7391906123c6565b60206040518083038186803b158015611e8b57600080fd5b505afa158015611e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ec39190612717565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611efb92909116906004016123c6565b60206040518083038186803b158015611f1357600080fd5b505afa158015611f27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f4b9190612717565b6065546040519192506001600160a01b03169063d1b7089a908590611f769030908690602401612761565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b0319168152611fd19392916001600160a01b0316906000906004016127d2565b600060405180830381600087803b158015611feb57600080fd5b505af1158015611fff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120279190810190612806565b50600090506120368284612623565b6040516370a0823160e01b81529091506001600160a01b038516906370a08231906120659030906004016123c6565b60206040518083038186803b15801561207d57600080fd5b505afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190612717565b81146120fd5760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b6044820152606401610794565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6121a05760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610794565b60008051602061290283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61222e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610794565b600080846001600160a01b0316846040516122499190612892565b600060405180830381855af49150503d8060008114612284576040519150601f19603f3d011682016040523d82523d6000602084013e612289565b606091505b50915091506122b18282604051806060016040528060278152602001612922602791396122fa565b95945050505050565b6122c38161213c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315612309575081612333565b8251156123195782518084602001fd5b8160405162461bcd60e51b815260040161079491906128ae565b9392505050565b6001600160a01b0381168114610c2757600080fd5b60006020828403121561236157600080fd5b81356123338161233a565b60006020828403121561237e57600080fd5b5035919050565b60008060006060848603121561239a57600080fd5b83356123a58161233a565b925060208401356123b58161233a565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612418576124186123da565b604052919050565b60006001600160401b03821115612439576124396123da565b50601f01601f191660200190565b6000806040838503121561245a57600080fd5b82356124658161233a565b915060208301356001600160401b0381111561248057600080fd5b8301601f8101851361249157600080fd5b80356124a461249f82612420565b6123f0565b8181528660208385010111156124b957600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208083850312156124ec57600080fd5b82356001600160401b038082111561250357600080fd5b818501915085601f83011261251757600080fd5b813581811115612529576125296123da565b8060051b915061253a8483016123f0565b818152918301840191848101908884111561255457600080fd5b938501935b8385101561257e578435925061256e8361233a565b8282529385019390850190612559565b98975050505050505050565b8015158114610c2757600080fd5b6000602082840312156125aa57600080fd5b81356123338161258a565b634e487b7160e01b600052601160045260246000fd5b6000828210156125dd576125dd6125b5565b500390565b6000826125ff57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561261e5761261e6125b5565b500290565b60008219821115612636576126366125b5565b500190565b60006020828403121561264d57600080fd5b81516123338161233a565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c908201526000805160206128c283398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206128c283398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561270c57600080fd5b81516123338161258a565b60006020828403121561272957600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060001982141561275a5761275a6125b5565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b8381101561279557818101518382015260200161277d565b8381111561088e5750506000910152565b600081518084526127be81602086016020860161277a565b601f01601f19169290920160200192915050565b600060018060a01b038087168352608060208401526127f460808401876127a6565b94166040830152506060015292915050565b6000806040838503121561281957600080fd5b82516128248161258a565b60208401519092506001600160401b0381111561284057600080fd5b8301601f8101851361285157600080fd5b805161285f61249f82612420565b81815286602083850101111561287457600080fd5b61288582602083016020860161277a565b8093505050509250929050565b600082516128a481846020870161277a565b9190910192915050565b60208152600061233360208301846127a656fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa2646970667358221220695507988a874d54efcda5d25fd5f5bc1cf20d96ae696e2f1b942a23b5e008df64736f6c63430008080033",
|
|
859
|
+
"bytecode": "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c612a1661004b60003960008181610b8c01528181610bcc0152818161100901526110490152612a166000f3fe6080604052600436106101d65760003560e01c8063013eba92146101db578063069786ea1461021b5780630ce82d67146102455780631248b1011461025a5780631794bb3c146102915780631b3c90a8146102b35780631bbc644c146102c85780631d8f5ea9146102f857806322b457271461030e5780633659cfe6146103245780633d84ceca146103445780633e6326fc146103645780634162169f146103915780634202d214146103b1578063456ac1c2146103d15780634e71d92d146103eb5780634f1ef286146104005780635231e2f014610413578063560796d1146104435780635aef7de6146104945780635c9302c9146104b457806373b2e80e146104ca578063741470ac146104ea5780638081cbbd1461050057806398d6621b146105205780639dc2c03314610535578063a21f698a1461054b578063b656223d1461056b578063ba07541014610581578063c033abf214610597578063c1337508146105ad578063c7713870146105cd578063c7a76adf146105e2578063cc054dfc14610602578063cef636001461062f578063d7c4cbb81461064f578063dddc361614610665578063de1de3a01461067a578063e1758bd81461069a578063eac471a0146106af578063eda4e6d6146106c5575b600080fd5b3480156101e757600080fd5b506102086101f63660046123c7565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561022757600080fd5b506102306106db565b60408051928352602083019190915201610212565b34801561025157600080fd5b50610208610719565b34801561026657600080fd5b506102306102753660046123e4565b609a602052600090815260409020600181015460029091015482565b34801561029d57600080fd5b506102b16102ac3660046123fd565b61073c565b005b3480156102bf57600080fd5b506102b16108b4565b3480156102d457600080fd5b506102e86102e33660046123c7565b6109f9565b6040519015158152602001610212565b34801561030457600080fd5b50610208609e5481565b34801561031a57600080fd5b5061020860a05481565b34801561033057600080fd5b506102b161033f3660046123c7565b610b81565b34801561035057600080fd5b506102b161035f3660046123e4565b610c4a565b34801561037057600080fd5b50606754610384906001600160a01b031681565b604051610212919061243e565b34801561039d57600080fd5b50606554610384906001600160a01b031681565b3480156103bd57600080fd5b506102e86103cc3660046123c7565b610ce8565b3480156103dd57600080fd5b5060a3546102e89060ff1681565b3480156103f757600080fd5b506102e8610d4a565b6102b161040e3660046124bf565b610ffe565b34801561041f57600080fd5b506102e861042e3660046123c7565b60aa6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061047d61045e3660046123e4565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610212565b3480156104a057600080fd5b50606654610384906001600160a01b031681565b3480156104c057600080fd5b50610208609c5481565b3480156104d657600080fd5b506102e86104e53660046123c7565b6110b8565b3480156104f657600080fd5b5061020860a75481565b34801561050c57600080fd5b5060a854610384906001600160a01b031681565b34801561052c57600080fd5b506102086110e4565b34801561054157600080fd5b5061020860a55481565b34801561055757600080fd5b506102e86105663660046123c7565b61120b565b34801561057757600080fd5b5061020860a25481565b34801561058d57600080fd5b5061020860a65481565b3480156105a357600080fd5b50610208609f5481565b3480156105b957600080fd5b506102086105c8366004612551565b611239565b3480156105d957600080fd5b506102086113dd565b3480156105ee57600080fd5b506102086105fd3660046123e4565b6114ce565b34801561060e57600080fd5b5061020861061d3660046123c7565b60ab6020526000908152604090205481565b34801561063b57600080fd5b5061020861064a3660046123e4565b6114e3565b34801561065b57600080fd5b5061020860a15481565b34801561067157600080fd5b506102b16114f8565b34801561068657600080fd5b506102b1610695366004612610565b61154e565b3480156106a657600080fd5b5061038461159d565b3480156106bb57600080fd5b5061020860a45481565b3480156106d157600080fd5b50610208609d5481565b600080600062015180609d54426106f29190612643565b6106fc919061265a565b9050610707816114ce565b610710826114e3565b92509250509091565b60006201518060a6544261072d9190612643565b610737919061265a565b905090565b600054610100900460ff1680610755575060005460ff16155b6107bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107df576000805461ffff19166101011790555b6000821161082f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f60448201526064016107b4565b61083884611634565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561087b620151804261265a565b610888906201518061267c565b6108949061a8c061269b565b609d81905560a65580156108ae576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906126b3565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561099f57600080fd5b505afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d791906126b3565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d54118015610a0e5750609d544210155b610a2a5760405162461bcd60e51b81526004016107b4906126d0565b610a338261120b565b8015610a455750610a4382610ce8565b155b610a8b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b60448201526064016107b4565b6001600160a01b038216600090815260aa602052604090205460ff1615610ae55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b60448201526064016107b4565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610b10611657565b9050600160a06000828254610b259190612643565b90915550610b38905033826000806118d8565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610bca5760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfc611b5b565b6001600160a01b031614610c225760405162461bcd60e51b81526004016107b490612738565b610c2b81611b77565b60408051600080825260208201909252610c4791839190611b7f565b50565b610c52611cbf565b60008111610cac5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107b4565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610d0a8361120b565b15610d4157600062015180610d1f8342612643565b610d29919061265a565b905060a254811015610d3f575060019392505050565b505b50600092915050565b600080609d54118015610d5f5750609d544210155b610d7b5760405162461bcd60e51b81526004016107b4906126d0565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610dd757600080fd5b505afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906126b3565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e3a919061243e565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190612772565b610ed35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107b4565b6000610ede33611d93565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f4557600080fd5b505afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906126b3565b9050818015610f9457506001600160a01b03811615155b15610ff85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fc590339060040161243e565b600060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110475760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611079611b5b565b6001600160a01b03161461109f5760405162461bcd60e51b81526004016107b490612738565b6110a882611b77565b6110b482826001611b7f565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110f95750609d544210155b6111155760405162461bcd60e51b81526004016107b4906126d0565b61111e3361120b565b1580611139575033600090815260aa602052604090205460ff165b156111c45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610737919061278f565b62015180609d54426111d69190612643565b6111e0919061265a565b609c541415611203576111f2336110b8565b6111fd5750609e5490565b50600090565b6107376113dd565b6001600160a01b0381166000908152609b60205260408120541561123157506001919050565b506000919050565b600080609d5411801561124e5750609d544210155b61126a5760405162461bcd60e51b81526004016107b4906126d0565b60005b82518110156113af57609f545a10156112a7576040518181526000805160206129c18339815191529060200160405180910390a192915050565b6112c98382815181106112bc576112bc6127a8565b602002602001015161120b565b80156112f457506112f28382815181106112e5576112e56127a8565b6020026020010151610ce8565b155b801561133a575060aa6000848381518110611311576113116127a8565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b1561139f57611361838281518110611354576113546127a8565b60200260200101516109f9565b61139f5760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b60448201526064016107b4565b6113a8816127be565b905061126d565b506000805160206129c183398151915282516040516113d091815260200190565b60405180910390a1505190565b6000806113e861159d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611413919061243e565b60206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611463919061278f565b9050600060a55460a45483611478919061265a565b119050600060a5549050600060a75461148f610719565b1015806114995750825b156114ae5760a4546114ab908561265a565b91505b60a054156114c65760a0546114c3908361265a565b90505b949350505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b62015180609d544261150a9190612643565b611514919061265a565b609c8190556040519081527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea9060200160405180910390a1565b611556611cbf565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cdd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906126b3565b606780546001600160a01b0319166001600160a01b038316179055610c476108b4565b60006116616114f8565b60a154609c54146118d157600061167661159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016116a6919061243e565b60206040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f6919061278f565b9050600060a55460a4548361170b919061265a565b11905060a754611719610719565b1015806117235750805b1561183b5760a35460ff161561173b5761173b611eb1565b6040516370a0823160e01b81526001600160a01b038416906370a082319061176790309060040161243e565b60206040518083038186803b15801561177f57600080fd5b505afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b7919061278f565b915060a454826117c7919061265a565b60a55560a45460a7556117dc610e104261265a565b6117e890610e1061267c565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a054156118875760a05460a554611883919061265a565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b6000609a6000609c54815260200190815260200160002090506001816001016000828254611906919061269b565b90915550506001600160a01b038516600090815260208281526040808320805460ff19166001908117909155609b835281842042905560ab909252822080549192909161195490849061269b565b90915550508115611a2f5760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a9061199090899060040161243e565b602060405180830381600087803b1580156119aa57600080fd5b505af11580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e2919061278f565b9050808260020160008282546119f8919061269b565b90915550506040518181526001600160a01b0387169060008051602061295a8339815191529060200160405180910390a250611b54565b83816002016000828254611a43919061269b565b9091555060009050611a5361159d565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a8490899089906004016127d9565b602060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190612772565b611b1a5760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107b4565b8315611b5257856001600160a01b031660008051602061295a83398151915286604051611b4991815260200190565b60405180910390a25b505b5050505050565b60008051602061297a833981519152546001600160a01b031690565b610c47611cbf565b6000611b89611b5b565b9050611b94846121b4565b600083511180611ba15750815b15611bb257611bb08484612247565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611b5457805460ff19166001178155604051611c2d908690611bfe90859060240161243e565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612247565b50805460ff19168155611c3e611b5b565b6001600160a01b0316826001600160a01b031614611cb65760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016107b4565b611b5485612332565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611d0357600080fd5b505afa158015611d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3b91906126b3565b6001600160a01b031614611d915760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107b4565b565b600080611d9e611657565b9050611da98361120b565b8015611dce57506001600160a01b038316600090815260aa602052604090205460ff16155b8015611de05750611dde836110b8565b155b15611dfc57611df38382600160006118d8565b50600192915050565b611e058361120b565b1580611e2957506001600160a01b038316600090815260aa602052604090205460ff165b15610d4157600160a06000828254611e41919061269b565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611e749084908060016118d8565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611ebb61159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611eeb919061243e565b60206040518083038186803b158015611f0357600080fd5b505afa158015611f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3b919061278f565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611f73929091169060040161243e565b60206040518083038186803b158015611f8b57600080fd5b505afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc3919061278f565b6065546040519192506001600160a01b03169063d1b7089a908590611fee90309086906024016127d9565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b03191681526120499392916001600160a01b03169060009060040161284a565b600060405180830381600087803b15801561206357600080fd5b505af1158015612077573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261209f919081019061287e565b50600090506120ae828461269b565b6040516370a0823160e01b81529091506001600160a01b038516906370a08231906120dd90309060040161243e565b60206040518083038186803b1580156120f557600080fd5b505afa158015612109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212d919061278f565b81146121755760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107b4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6122185760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107b4565b60008051602061297a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6122a65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b4565b600080846001600160a01b0316846040516122c1919061290a565b600060405180830381855af49150503d80600081146122fc576040519150601f19603f3d011682016040523d82523d6000602084013e612301565b606091505b5091509150612329828260405180606001604052806027815260200161299a60279139612372565b95945050505050565b61233b816121b4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156123815750816123ab565b8251156123915782518084602001fd5b8160405162461bcd60e51b81526004016107b49190612926565b9392505050565b6001600160a01b0381168114610c4757600080fd5b6000602082840312156123d957600080fd5b81356123ab816123b2565b6000602082840312156123f657600080fd5b5035919050565b60008060006060848603121561241257600080fd5b833561241d816123b2565b9250602084013561242d816123b2565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561249057612490612452565b604052919050565b60006001600160401b038211156124b1576124b1612452565b50601f01601f191660200190565b600080604083850312156124d257600080fd5b82356124dd816123b2565b915060208301356001600160401b038111156124f857600080fd5b8301601f8101851361250957600080fd5b803561251c61251782612498565b612468565b81815286602083850101111561253157600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000602080838503121561256457600080fd5b82356001600160401b038082111561257b57600080fd5b818501915085601f83011261258f57600080fd5b8135818111156125a1576125a1612452565b8060051b91506125b2848301612468565b81815291830184019184810190888411156125cc57600080fd5b938501935b838510156125f657843592506125e6836123b2565b82825293850193908501906125d1565b98975050505050505050565b8015158114610c4757600080fd5b60006020828403121561262257600080fd5b81356123ab81612602565b634e487b7160e01b600052601160045260246000fd5b6000828210156126555761265561262d565b500390565b60008261267757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126965761269661262d565b500290565b600082198211156126ae576126ae61262d565b500190565b6000602082840312156126c557600080fd5b81516123ab816123b2565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c9082015260008051602061293a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061293a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561278457600080fd5b81516123ab81612602565b6000602082840312156127a157600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156127d2576127d261262d565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b8381101561280d5781810151838201526020016127f5565b838111156108ae5750506000910152565b600081518084526128368160208601602086016127f2565b601f01601f19169290920160200192915050565b600060018060a01b0380871683526080602084015261286c608084018761281e565b94166040830152506060015292915050565b6000806040838503121561289157600080fd5b825161289c81612602565b60208401519092506001600160401b038111156128b857600080fd5b8301601f810185136128c957600080fd5b80516128d761251782612498565b8181528660208385010111156128ec57600080fd5b6128fd8260208301602086016127f2565b8093505050509250929050565b6000825161291c8184602087016127f2565b9190910192915050565b6020815260006123ab602083018461281e56fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa26469706673582212205a88e762394d5e5afa08073dddbf4c6957ad9813664ef7cf239150c1fcd785d764736f6c63430008080033",
|
|
860
|
+
"deployedBytecode": "0x6080604052600436106101d65760003560e01c8063013eba92146101db578063069786ea1461021b5780630ce82d67146102455780631248b1011461025a5780631794bb3c146102915780631b3c90a8146102b35780631bbc644c146102c85780631d8f5ea9146102f857806322b457271461030e5780633659cfe6146103245780633d84ceca146103445780633e6326fc146103645780634162169f146103915780634202d214146103b1578063456ac1c2146103d15780634e71d92d146103eb5780634f1ef286146104005780635231e2f014610413578063560796d1146104435780635aef7de6146104945780635c9302c9146104b457806373b2e80e146104ca578063741470ac146104ea5780638081cbbd1461050057806398d6621b146105205780639dc2c03314610535578063a21f698a1461054b578063b656223d1461056b578063ba07541014610581578063c033abf214610597578063c1337508146105ad578063c7713870146105cd578063c7a76adf146105e2578063cc054dfc14610602578063cef636001461062f578063d7c4cbb81461064f578063dddc361614610665578063de1de3a01461067a578063e1758bd81461069a578063eac471a0146106af578063eda4e6d6146106c5575b600080fd5b3480156101e757600080fd5b506102086101f63660046123c7565b609b6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561022757600080fd5b506102306106db565b60408051928352602083019190915201610212565b34801561025157600080fd5b50610208610719565b34801561026657600080fd5b506102306102753660046123e4565b609a602052600090815260409020600181015460029091015482565b34801561029d57600080fd5b506102b16102ac3660046123fd565b61073c565b005b3480156102bf57600080fd5b506102b16108b4565b3480156102d457600080fd5b506102e86102e33660046123c7565b6109f9565b6040519015158152602001610212565b34801561030457600080fd5b50610208609e5481565b34801561031a57600080fd5b5061020860a05481565b34801561033057600080fd5b506102b161033f3660046123c7565b610b81565b34801561035057600080fd5b506102b161035f3660046123e4565b610c4a565b34801561037057600080fd5b50606754610384906001600160a01b031681565b604051610212919061243e565b34801561039d57600080fd5b50606554610384906001600160a01b031681565b3480156103bd57600080fd5b506102e86103cc3660046123c7565b610ce8565b3480156103dd57600080fd5b5060a3546102e89060ff1681565b3480156103f757600080fd5b506102e8610d4a565b6102b161040e3660046124bf565b610ffe565b34801561041f57600080fd5b506102e861042e3660046123c7565b60aa6020526000908152604090205460ff1681565b34801561044f57600080fd5b5061047d61045e3660046123e4565b60a9602052600090815260409020805460019091015460ff9091169082565b604080519215158352602083019190915201610212565b3480156104a057600080fd5b50606654610384906001600160a01b031681565b3480156104c057600080fd5b50610208609c5481565b3480156104d657600080fd5b506102e86104e53660046123c7565b6110b8565b3480156104f657600080fd5b5061020860a75481565b34801561050c57600080fd5b5060a854610384906001600160a01b031681565b34801561052c57600080fd5b506102086110e4565b34801561054157600080fd5b5061020860a55481565b34801561055757600080fd5b506102e86105663660046123c7565b61120b565b34801561057757600080fd5b5061020860a25481565b34801561058d57600080fd5b5061020860a65481565b3480156105a357600080fd5b50610208609f5481565b3480156105b957600080fd5b506102086105c8366004612551565b611239565b3480156105d957600080fd5b506102086113dd565b3480156105ee57600080fd5b506102086105fd3660046123e4565b6114ce565b34801561060e57600080fd5b5061020861061d3660046123c7565b60ab6020526000908152604090205481565b34801561063b57600080fd5b5061020861064a3660046123e4565b6114e3565b34801561065b57600080fd5b5061020860a15481565b34801561067157600080fd5b506102b16114f8565b34801561068657600080fd5b506102b1610695366004612610565b61154e565b3480156106a657600080fd5b5061038461159d565b3480156106bb57600080fd5b5061020860a45481565b3480156106d157600080fd5b50610208609d5481565b600080600062015180609d54426106f29190612643565b6106fc919061265a565b9050610707816114ce565b610710826114e3565b92509250509091565b60006201518060a6544261072d9190612643565b610737919061265a565b905090565b600054610100900460ff1680610755575060005460ff16155b6107bd5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600054610100900460ff161580156107df576000805461ffff19166101011790555b6000821161082f5760405162461bcd60e51b815260206004820181905260248201527f4d617820696e61637469766520646179732063616e6e6f74206265207a65726f60448201526064016107b4565b61083884611634565b60a282905560a880546001600160a01b0319166001600160a01b03851617905560a3805460ff19169055605a60a455620249f0609f5561087b620151804261265a565b610888906201518061267c565b6108949061a8c061269b565b609d81905560a65580156108ae576000805461ff00191690555b50505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b15801561091257600080fd5b505afa158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a91906126b3565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561099f57600080fd5b505afa1580156109b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d791906126b3565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600080609d54118015610a0e5750609d544210155b610a2a5760405162461bcd60e51b81526004016107b4906126d0565b610a338261120b565b8015610a455750610a4382610ce8565b155b610a8b5760405162461bcd60e51b815260206004820152601760248201527634b9903737ba1030b71034b730b1ba34bb32903ab9b2b960491b60448201526064016107b4565b6001600160a01b038216600090815260aa602052604090205460ff1615610ae55760405162461bcd60e51b815260206004820152600e60248201526d185b1c9958591e48199a5cda195960921b60448201526064016107b4565b6001600160a01b038216600090815260aa60205260408120805460ff19166001179055610b10611657565b9050600160a06000828254610b259190612643565b90915550610b38905033826000806118d8565b6040518181526001600160a01b0384169033907f3c91d315d82534112f8ce552cb79133a14191077a2d715fd65cabd026fc27c749060200160405180910390a350600192915050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610bca5760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bfc611b5b565b6001600160a01b031614610c225760405162461bcd60e51b81526004016107b490612738565b610c2b81611b77565b60408051600080825260208201909252610c4791839190611b7f565b50565b610c52611cbf565b60008111610cac5760405162461bcd60e51b815260206004820152602160248201527f6379636c65206d757374206265206174206c65617374203120646179206c6f6e6044820152606760f81b60648201526084016107b4565b60a48190556040518181527fa61e6cca2c12e2a0a493683acfe95b034f0f50d793434f4dfe3ba06ea201f344906020015b60405180910390a150565b6001600160a01b0381166000908152609b6020526040812054610d0a8361120b565b15610d4157600062015180610d1f8342612643565b610d29919061265a565b905060a254811015610d3f575060019392505050565b505b50600092915050565b600080609d54118015610d5f5750609d544210155b610d7b5760405162461bcd60e51b81526004016107b4906126d0565b60675460405163bf40fac160e01b81526020600482015260086024820152674944454e5449545960c01b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610dd757600080fd5b505afa158015610deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0f91906126b3565b6001600160a01b0316633af32abf336040518263ffffffff1660e01b8152600401610e3a919061243e565b60206040518083038186803b158015610e5257600080fd5b505afa158015610e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8a9190612772565b610ed35760405162461bcd60e51b815260206004820152601a60248201527915509254d8da195b594e881b9bdd081dda1a5d195b1a5cdd195960321b60448201526064016107b4565b6000610ede33611d93565b60675460405163bf40fac160e01b815260206004820152600d60248201526c4744414f5f434c41494d45525360981b60448201529192506000916001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610f4557600080fd5b505afa158015610f59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f7d91906126b3565b9050818015610f9457506001600160a01b03811615155b15610ff85760405163748abee960e11b81526001600160a01b0382169063e9157dd290610fc590339060040161243e565b600060405180830381600087803b158015610fdf57600080fd5b505af1158015610ff3573d6000803e3d6000fd5b505050505b50905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156110475760405162461bcd60e51b81526004016107b4906126fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611079611b5b565b6001600160a01b03161461109f5760405162461bcd60e51b81526004016107b490612738565b6110a882611b77565b6110b482826001611b7f565b5050565b609c546000908152609a602090815260408083206001600160a01b039094168352929052205460ff1690565b600080609d541180156110f95750609d544210155b6111155760405162461bcd60e51b81526004016107b4906126d0565b61111e3361120b565b1580611139575033600090815260aa602052604090205460ff165b156111c45760a860009054906101000a90046001600160a01b03166001600160a01b031663830953ab6040518163ffffffff1660e01b815260040160206040518083038186803b15801561118c57600080fd5b505afa1580156111a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610737919061278f565b62015180609d54426111d69190612643565b6111e0919061265a565b609c541415611203576111f2336110b8565b6111fd5750609e5490565b50600090565b6107376113dd565b6001600160a01b0381166000908152609b60205260408120541561123157506001919050565b506000919050565b600080609d5411801561124e5750609d544210155b61126a5760405162461bcd60e51b81526004016107b4906126d0565b60005b82518110156113af57609f545a10156112a7576040518181526000805160206129c18339815191529060200160405180910390a192915050565b6112c98382815181106112bc576112bc6127a8565b602002602001015161120b565b80156112f457506112f28382815181106112e5576112e56127a8565b6020026020010151610ce8565b155b801561133a575060aa6000848381518110611311576113116127a8565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16155b1561139f57611361838281518110611354576113546127a8565b60200260200101516109f9565b61139f5760405162461bcd60e51b815260206004820152600f60248201526e199a5cda081a185cc819985a5b1959608a1b60448201526064016107b4565b6113a8816127be565b905061126d565b506000805160206129c183398151915282516040516113d091815260200190565b60405180910390a1505190565b6000806113e861159d565b6001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611413919061243e565b60206040518083038186803b15801561142b57600080fd5b505afa15801561143f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611463919061278f565b9050600060a55460a45483611478919061265a565b119050600060a5549050600060a75461148f610719565b1015806114995750825b156114ae5760a4546114ab908561265a565b91505b60a054156114c65760a0546114c3908361265a565b90505b949350505050565b6000908152609a602052604090206001015490565b6000908152609a602052604090206002015490565b62015180609d544261150a9190612643565b611514919061265a565b609c8190556040519081527f67eb03bd555181f9dd23f546e4331ddfb8b4a7d0c8d261ba44e037f30ce894ea9060200160405180910390a1565b611556611cbf565b60a3805460ff191682151590811790915560405160ff909116151581527f6cd9a0fd2e006be39a9918bf56c85cae1d4f4599474483ff18cb93355ebaaf8e90602001610cdd565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b1580156115fc57600080fd5b505afa158015611610573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061073791906126b3565b606780546001600160a01b0319166001600160a01b038316179055610c476108b4565b60006116616114f8565b60a154609c54146118d157600061167661159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016116a6919061243e565b60206040518083038186803b1580156116be57600080fd5b505afa1580156116d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f6919061278f565b9050600060a55460a4548361170b919061265a565b11905060a754611719610719565b1015806117235750805b1561183b5760a35460ff161561173b5761173b611eb1565b6040516370a0823160e01b81526001600160a01b038416906370a082319061176790309060040161243e565b60206040518083038186803b15801561177f57600080fd5b505afa158015611793573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b7919061278f565b915060a454826117c7919061265a565b60a55560a45460a7556117dc610e104261265a565b6117e890610e1061267c565b60a655609c5460a45460a554604080519384526020840186905283019190915260608201527f83e0d535b9e84324e0a25922406398d6ff5f96d0c686204ee490e16d7670566f9060800160405180910390a15b609c5460a1819055600090815260a96020526040902060a354815460ff191660ff90911615151781556001810183905560a054156118875760a05460a554611883919061265a565b609e555b609c54609e546040805192835260208301919091524382820152517f836fa39995340265746dfe9587d9fe5c5de35b7bce778afd9b124ce1cfeafdc49181900360600190a1505050505b50609e5490565b6000609a6000609c54815260200190815260200160002090506001816001016000828254611906919061269b565b90915550506001600160a01b038516600090815260208281526040808320805460ff19166001908117909155609b835281842042905560ab909252822080549192909161195490849061269b565b90915550508115611a2f5760a854604051636bf2228d60e11b81526000916001600160a01b03169063d7e4451a9061199090899060040161243e565b602060405180830381600087803b1580156119aa57600080fd5b505af11580156119be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e2919061278f565b9050808260020160008282546119f8919061269b565b90915550506040518181526001600160a01b0387169060008051602061295a8339815191529060200160405180910390a250611b54565b83816002016000828254611a43919061269b565b9091555060009050611a5361159d565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611a8490899089906004016127d9565b602060405180830381600087803b158015611a9e57600080fd5b505af1158015611ab2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad69190612772565b611b1a5760405162461bcd60e51b815260206004820152601560248201527418db185a5b481d1c985b9cd9995c8819985a5b1959605a1b60448201526064016107b4565b8315611b5257856001600160a01b031660008051602061295a83398151915286604051611b4991815260200190565b60405180910390a25b505b5050505050565b60008051602061297a833981519152546001600160a01b031690565b610c47611cbf565b6000611b89611b5b565b9050611b94846121b4565b600083511180611ba15750815b15611bb257611bb08484612247565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff16611b5457805460ff19166001178155604051611c2d908690611bfe90859060240161243e565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612247565b50805460ff19168155611c3e611b5b565b6001600160a01b0316826001600160a01b031614611cb65760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016107b4565b611b5485612332565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015611d0357600080fd5b505afa158015611d17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d3b91906126b3565b6001600160a01b031614611d915760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016107b4565b565b600080611d9e611657565b9050611da98361120b565b8015611dce57506001600160a01b038316600090815260aa602052604090205460ff16155b8015611de05750611dde836110b8565b155b15611dfc57611df38382600160006118d8565b50600192915050565b611e058361120b565b1580611e2957506001600160a01b038316600090815260aa602052604090205460ff165b15610d4157600160a06000828254611e41919061269b565b90915550506001600160a01b038316600090815260aa60205260408120805460ff19169055611e749084908060016118d8565b6040516001600160a01b038416907f2f9cfaa2a5c422dfab45f7d0da071f030fc2d3a7a1f0a255c028eff9b6d3d93690600090a250600192915050565b6000611ebb61159d565b90506000816001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611eeb919061243e565b60206040518083038186803b158015611f0357600080fd5b505afa158015611f17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3b919061278f565b6066546040516370a0823160e01b81529192506000916001600160a01b03858116926370a0823192611f73929091169060040161243e565b60206040518083038186803b158015611f8b57600080fd5b505afa158015611f9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fc3919061278f565b6065546040519192506001600160a01b03169063d1b7089a908590611fee90309086906024016127d9565b60408051601f198184030181529181526020820180516001600160e01b031663a9059cbb60e01b179052606654905160e085901b6001600160e01b03191681526120499392916001600160a01b03169060009060040161284a565b600060405180830381600087803b15801561206357600080fd5b505af1158015612077573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261209f919081019061287e565b50600090506120ae828461269b565b6040516370a0823160e01b81529091506001600160a01b038516906370a08231906120dd90309060040161243e565b60206040518083038186803b1580156120f557600080fd5b505afa158015612109573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212d919061278f565b81146121755760405162461bcd60e51b8152602060048201526017602482015276111053c81d1c985b9cd9995c881a185cc819985a5b1959604a1b60448201526064016107b4565b60408051848152602081018390527f3107ec7eaa50b775d2486c7a394472235804b6fe1c0d4b7bd1d79b09df60f2ba910160405180910390a150505050565b803b6122185760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016107b4565b60008051602061297a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6122a65760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016107b4565b600080846001600160a01b0316846040516122c1919061290a565b600060405180830381855af49150503d80600081146122fc576040519150601f19603f3d011682016040523d82523d6000602084013e612301565b606091505b5091509150612329828260405180606001604052806027815260200161299a60279139612372565b95945050505050565b61233b816121b4565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606083156123815750816123ab565b8251156123915782518084602001fd5b8160405162461bcd60e51b81526004016107b49190612926565b9392505050565b6001600160a01b0381168114610c4757600080fd5b6000602082840312156123d957600080fd5b81356123ab816123b2565b6000602082840312156123f657600080fd5b5035919050565b60008060006060848603121561241257600080fd5b833561241d816123b2565b9250602084013561242d816123b2565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561249057612490612452565b604052919050565b60006001600160401b038211156124b1576124b1612452565b50601f01601f191660200190565b600080604083850312156124d257600080fd5b82356124dd816123b2565b915060208301356001600160401b038111156124f857600080fd5b8301601f8101851361250957600080fd5b803561251c61251782612498565b612468565b81815286602083850101111561253157600080fd5b816020840160208301376000602083830101528093505050509250929050565b6000602080838503121561256457600080fd5b82356001600160401b038082111561257b57600080fd5b818501915085601f83011261258f57600080fd5b8135818111156125a1576125a1612452565b8060051b91506125b2848301612468565b81815291830184019184810190888411156125cc57600080fd5b938501935b838510156125f657843592506125e6836123b2565b82825293850193908501906125d1565b98975050505050505050565b8015158114610c4757600080fd5b60006020828403121561262257600080fd5b81356123ab81612602565b634e487b7160e01b600052601160045260246000fd5b6000828210156126555761265561262d565b500390565b60008261267757634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156126965761269661262d565b500290565b600082198211156126ae576126ae61262d565b500190565b6000602082840312156126c557600080fd5b81516123ab816123b2565b6020808252601490820152731b9bdd081a5b881c195c9a5bd914dd185c9d195960621b604082015260600190565b6020808252602c9082015260008051602061293a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061293a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561278457600080fd5b81516123ab81612602565b6000602082840312156127a157600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b60006000198214156127d2576127d261262d565b5060010190565b6001600160a01b03929092168252602082015260400190565b60005b8381101561280d5781810151838201526020016127f5565b838111156108ae5750506000910152565b600081518084526128368160208601602086016127f2565b601f01601f19169290920160200192915050565b600060018060a01b0380871683526080602084015261286c608084018761281e565b94166040830152506060015292915050565b6000806040838503121561289157600080fd5b825161289c81612602565b60208401519092506001600160401b038111156128b857600080fd5b8301601f810185136128c957600080fd5b80516128d761251782612498565b8181528660208385010111156128ec57600080fd5b6128fd8260208301602086016127f2565b8093505050509250929050565b6000825161291c8184602087016127f2565b9190910192915050565b6020815260006123ab602083018461281e56fe46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682089ed24731df6b066e4c5186901fffdba18cd9a10f07494aff900bdee260d1304360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656472b174db45b7e58932cb0c6bf37a7158f40424a078b07677d823cafdb3db540fa26469706673582212205a88e762394d5e5afa08073dddbf4c6957ad9813664ef7cf239150c1fcd785d764736f6c63430008080033",
|
|
848
861
|
"linkReferences": {},
|
|
849
862
|
"deployedLinkReferences": {}
|
|
850
863
|
}
|
|
@@ -206,7 +206,8 @@ contract CompoundVotingMachine is ContextUpgradeable, DAOUpgradeableContract {
|
|
|
206
206
|
|
|
207
207
|
function initialize(
|
|
208
208
|
INameService ns_, // the DAO avatar
|
|
209
|
-
uint256 votingPeriodBlocks_ //number of blocks a proposal is open for voting before expiring
|
|
209
|
+
uint256 votingPeriodBlocks_, //number of blocks a proposal is open for voting before expiring
|
|
210
|
+
address guardian_
|
|
210
211
|
) public initializer {
|
|
211
212
|
foundationGuardianRelease = 1672531200; //01/01/2023
|
|
212
213
|
setDAO(ns_);
|
|
@@ -223,7 +224,14 @@ contract CompoundVotingMachine is ContextUpgradeable, DAOUpgradeableContract {
|
|
|
223
224
|
3 days //grace period
|
|
224
225
|
];
|
|
225
226
|
_setVotingParameters(params);
|
|
226
|
-
guardian =
|
|
227
|
+
guardian = guardian_;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
//upgrade to fix bad guardian deployment
|
|
231
|
+
function fixGuardian(address _guardian) public {
|
|
232
|
+
if (guardian == address(0x4659176E962763e7C8A4eF965ecfD0fdf9f52057)) {
|
|
233
|
+
guardian = _guardian;
|
|
234
|
+
}
|
|
227
235
|
}
|
|
228
236
|
|
|
229
237
|
///@notice set the different voting parameters, value of 0 is ignored
|
|
@@ -366,6 +366,25 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
|
|
369
|
+
function estimateNextDailyUBI() public view returns (uint256) {
|
|
370
|
+
uint256 currentBalance = nativeToken().balanceOf(address(this));
|
|
371
|
+
//start early cycle if we can increase the daily UBI pool
|
|
372
|
+
bool shouldStartEarlyCycle = currentBalance / cycleLength > dailyCyclePool;
|
|
373
|
+
|
|
374
|
+
uint256 _dailyCyclePool = dailyCyclePool;
|
|
375
|
+
uint256 _dailyUbi;
|
|
376
|
+
if (
|
|
377
|
+
currentDayInCycle() >= currentCycleLength || shouldStartEarlyCycle
|
|
378
|
+
) //start of cycle or first time
|
|
379
|
+
{
|
|
380
|
+
_dailyCyclePool = currentBalance / cycleLength;
|
|
381
|
+
}
|
|
382
|
+
if (activeUsersCount > 0) {
|
|
383
|
+
_dailyUbi = _dailyCyclePool / activeUsersCount;
|
|
384
|
+
}
|
|
385
|
+
return _dailyUbi;
|
|
386
|
+
}
|
|
387
|
+
|
|
369
388
|
/**
|
|
370
389
|
* @dev Checks the amount which the sender address is eligible to claim for,
|
|
371
390
|
* regardless if they have been whitelisted or not. In case the user is
|
|
@@ -384,10 +403,7 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
384
403
|
if (currentDay == (block.timestamp - periodStart) / (1 days)) {
|
|
385
404
|
return hasClaimed(msg.sender) ? 0 : dailyUbi;
|
|
386
405
|
}
|
|
387
|
-
|
|
388
|
-
IGoodDollar token = nativeToken();
|
|
389
|
-
uint256 currentBalance = token.balanceOf(address(this));
|
|
390
|
-
return currentBalance / activeUsersCount;
|
|
406
|
+
return estimateNextDailyUBI();
|
|
391
407
|
}
|
|
392
408
|
|
|
393
409
|
/**
|
package/hardhat.config.ts
CHANGED
|
@@ -15,9 +15,12 @@ import { config } from "dotenv";
|
|
|
15
15
|
import { airdrop } from "./scripts/governance/airdropCalculation";
|
|
16
16
|
import { airdrop as gdxAirdrop } from "./scripts/gdx/gdxAirdropCalculation";
|
|
17
17
|
import { verify } from "./scripts/verify";
|
|
18
|
+
import { ethers } from "ethers";
|
|
18
19
|
config();
|
|
19
20
|
|
|
20
21
|
const mnemonic = process.env.MNEMONIC;
|
|
22
|
+
const deployerPrivateKey =
|
|
23
|
+
process.env.PRIVATE_KEY || ethers.utils.hexZeroPad("0x11", 32);
|
|
21
24
|
const infura_api = process.env.INFURA_API;
|
|
22
25
|
const alchemy_key = process.env.ALCHEMY_KEY;
|
|
23
26
|
const etherscan_key = process.env.ETHERSCAN_KEY;
|
|
@@ -98,6 +101,13 @@ const hhconfig: HardhatUserConfig = {
|
|
|
98
101
|
url: "https://rpc.fuse.io/",
|
|
99
102
|
chainId: 122
|
|
100
103
|
},
|
|
104
|
+
fusespark: {
|
|
105
|
+
accounts: { mnemonic },
|
|
106
|
+
url: "https://rpc.fusespark.io/",
|
|
107
|
+
gas: 3000000,
|
|
108
|
+
gasPrice: 1000000000,
|
|
109
|
+
chainId: 123
|
|
110
|
+
},
|
|
101
111
|
"fuse-mainnet": {
|
|
102
112
|
accounts: { mnemonic },
|
|
103
113
|
url: "https://ropsten.infura.io/v3/" + infura_api,
|
|
@@ -117,14 +127,14 @@ const hhconfig: HardhatUserConfig = {
|
|
|
117
127
|
chainId: 3
|
|
118
128
|
},
|
|
119
129
|
production: {
|
|
120
|
-
accounts:
|
|
130
|
+
accounts: [deployerPrivateKey],
|
|
121
131
|
url: "https://rpc.fuse.io/",
|
|
122
132
|
gas: 3000000,
|
|
123
133
|
gasPrice: 1000000000,
|
|
124
134
|
chainId: 122
|
|
125
135
|
},
|
|
126
136
|
"production-mainnet": {
|
|
127
|
-
accounts:
|
|
137
|
+
accounts: [deployerPrivateKey],
|
|
128
138
|
url: "https://mainnet.infura.io/v3/" + infura_api,
|
|
129
139
|
gas: 3000000,
|
|
130
140
|
gasPrice: 25000000000,
|
package/package.json
CHANGED
|
@@ -24,15 +24,15 @@
|
|
|
24
24
|
},
|
|
25
25
|
"develop": {
|
|
26
26
|
"governance": {
|
|
27
|
-
"gdaoAirdrop": "
|
|
27
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
28
28
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
29
29
|
"proposalVotingPeriod": 241920
|
|
30
30
|
}
|
|
31
31
|
},
|
|
32
32
|
"develop-mainnet": {
|
|
33
|
-
"gdxAirdrop": "
|
|
33
|
+
"gdxAirdrop": "0x707f775d730a9b17ee62c21e00188da4dff26602a58c338269cd115f30acbe2f",
|
|
34
34
|
"governance": {
|
|
35
|
-
"gdaoAirdrop": "
|
|
35
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
36
36
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
37
37
|
"proposalVotingPeriod": 86040
|
|
38
38
|
},
|
|
@@ -44,32 +44,34 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dapptest": {
|
|
46
46
|
"governance": {
|
|
47
|
-
"gdaoAirdrop": "
|
|
47
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
48
48
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
49
49
|
"proposalVotingPeriod": 241920
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
"dapptest-mainnet": {
|
|
53
|
-
"gdxAirdrop": "
|
|
53
|
+
"gdxAirdrop": "0x707f775d730a9b17ee62c21e00188da4dff26602a58c338269cd115f30acbe2f",
|
|
54
54
|
"governance": {
|
|
55
|
-
"gdaoAirdrop": "
|
|
55
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
56
56
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
57
57
|
"proposalVotingPeriod": 86040
|
|
58
58
|
}
|
|
59
59
|
},
|
|
60
60
|
"test": {
|
|
61
61
|
"governance": {
|
|
62
|
-
"gdaoAirdrop": "
|
|
62
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
63
63
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
64
|
-
"proposalVotingPeriod": 241920
|
|
64
|
+
"proposalVotingPeriod": 241920,
|
|
65
|
+
"guardian": "0x914dA3B2508634998d244059dAb5488D9bA1814f"
|
|
65
66
|
}
|
|
66
67
|
},
|
|
67
68
|
"test-mainnet": {
|
|
68
|
-
"gdxAirdrop": "
|
|
69
|
+
"gdxAirdrop": "0x707f775d730a9b17ee62c21e00188da4dff26602a58c338269cd115f30acbe2f",
|
|
69
70
|
"governance": {
|
|
70
|
-
"gdaoAirdrop": "
|
|
71
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
71
72
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
72
|
-
"proposalVotingPeriod": 86040
|
|
73
|
+
"proposalVotingPeriod": 86040,
|
|
74
|
+
"guardian": "0x914dA3B2508634998d244059dAb5488D9bA1814f"
|
|
73
75
|
},
|
|
74
76
|
"chainlink": {
|
|
75
77
|
"gasPrice": "0xF8161973a556bf5fEbb3BaCe573262FCd3b33973",
|
|
@@ -79,15 +81,15 @@
|
|
|
79
81
|
},
|
|
80
82
|
"fuse": {
|
|
81
83
|
"governance": {
|
|
82
|
-
"gdaoAirdrop": "
|
|
84
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
83
85
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
84
86
|
"proposalVotingPeriod": 241920
|
|
85
87
|
}
|
|
86
88
|
},
|
|
87
89
|
"fuse-mainnet": {
|
|
88
|
-
"gdxAirdrop": "
|
|
90
|
+
"gdxAirdrop": "0x707f775d730a9b17ee62c21e00188da4dff26602a58c338269cd115f30acbe2f",
|
|
89
91
|
"governance": {
|
|
90
|
-
"gdaoAirdrop": "
|
|
92
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
91
93
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
92
94
|
"proposalVotingPeriod": 241920
|
|
93
95
|
},
|
|
@@ -118,15 +120,15 @@
|
|
|
118
120
|
},
|
|
119
121
|
"staging": {
|
|
120
122
|
"governance": {
|
|
121
|
-
"gdaoAirdrop": "
|
|
123
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
122
124
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
123
125
|
"proposalVotingPeriod": 241920
|
|
124
126
|
}
|
|
125
127
|
},
|
|
126
128
|
"staging-mainnet": {
|
|
127
|
-
"gdxAirdrop": "
|
|
129
|
+
"gdxAirdrop": "0x707f775d730a9b17ee62c21e00188da4dff26602a58c338269cd115f30acbe2f",
|
|
128
130
|
"governance": {
|
|
129
|
-
"gdaoAirdrop": "
|
|
131
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
130
132
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
131
133
|
"proposalVotingPeriod": 80640
|
|
132
134
|
},
|
|
@@ -156,9 +158,9 @@
|
|
|
156
158
|
}
|
|
157
159
|
},
|
|
158
160
|
"kovan-mainnet": {
|
|
159
|
-
"gdxAirdrop": "
|
|
161
|
+
"gdxAirdrop": "0x707f775d730a9b17ee62c21e00188da4dff26602a58c338269cd115f30acbe2f",
|
|
160
162
|
"governance": {
|
|
161
|
-
"gdaoAirdrop": "
|
|
163
|
+
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
162
164
|
"gdaoTotalSupply": "24000000000000000000000000",
|
|
163
165
|
"proposalVotingPeriod": 80640
|
|
164
166
|
},
|
|
@@ -189,7 +191,8 @@
|
|
|
189
191
|
"governance": {
|
|
190
192
|
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
191
193
|
"gdaoTotalSupply": "96000000000000000000000000",
|
|
192
|
-
"proposalVotingPeriod": 241920
|
|
194
|
+
"proposalVotingPeriod": 241920,
|
|
195
|
+
"guardian": "0x914dA3B2508634998d244059dAb5488D9bA1814f"
|
|
193
196
|
}
|
|
194
197
|
},
|
|
195
198
|
"production-mainnet": {
|
|
@@ -197,7 +200,8 @@
|
|
|
197
200
|
"governance": {
|
|
198
201
|
"gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
|
|
199
202
|
"gdaoTotalSupply": "96000000000000000000000000",
|
|
200
|
-
"proposalVotingPeriod": 80640
|
|
203
|
+
"proposalVotingPeriod": 80640,
|
|
204
|
+
"guardian": "0xF0652a820dd39EC956659E0018Da022132f2f40a"
|
|
201
205
|
},
|
|
202
206
|
"bancor": "0xA049894d5dcaD406b7C827D6dc6A0B58CA4AE73a",
|
|
203
207
|
"compound": {
|
|
@@ -221,4 +225,4 @@
|
|
|
221
225
|
},
|
|
222
226
|
"uniswapRouter": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"
|
|
223
227
|
}
|
|
224
|
-
}
|
|
228
|
+
}
|