diff --git a/web/src/components/App/App.js b/web/src/components/App/App.js index 9642540..fa3ece1 100644 --- a/web/src/components/App/App.js +++ b/web/src/components/App/App.js @@ -64,10 +64,10 @@ function App() { useEffect(() => { console.log("nerwork: " + network.name); + dispatch(fetchNextHalvePeriod(network.name)); if (!merkleRootFetched && network?.name && network.name !== "unknown") { dispatch(fetchMerkleRoot(network.name)); dispatch(fetchCurrentAward(network.name)); - dispatch(fetchNextHalvePeriod(network.name)); setMerkleRootFetched(true); } }, [network]); diff --git a/web/src/contracts/DevRewardDistributor.json b/web/src/contracts/DevRewardDistributor.json index 782479f..3b7a414 100644 --- a/web/src/contracts/DevRewardDistributor.json +++ b/web/src/contracts/DevRewardDistributor.json @@ -44,6 +44,11 @@ "internalType": "address", "name": "_canceler", "type": "address" + }, + { + "internalType": "uint256", + "name": "_maxClaimedSupply", + "type": "uint256" } ], "stateMutability": "nonpayable", @@ -243,6 +248,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [], + "name": "claimedSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "claimingEndTime", @@ -269,6 +287,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "deployTime", @@ -390,6 +421,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "maxClaimedSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "merkleRoot", @@ -487,8 +531,8 @@ "type": "function" } ], - "bytecode": "0x6101a06040523480156200001257600080fd5b5060405162001881380380620018818339810160408190526200003591620000a5565b6001600160a01b0380891660805287811660a052811660c052610120869052610140859052610180849052610160839052426101008190526200007a9083906200012b565b60e05250620001539650505050505050565b6001600160a01b0381168114620000a257600080fd5b50565b600080600080600080600080610100898b031215620000c357600080fd5b8851620000d0816200008c565b60208a0151909850620000e3816200008c565b8097505060408901519550606089015194506080890151935060a0890151925060c0890151915060e08901516200011a816200008c565b809150509295985092959890939650565b808201808211156200014d57634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c05160e05161010051610120516101405161016051610180516116626200021f600039600081816104190152610bcb01526000818161036a01526104ff0152600081816103f201526104950152600081816102170152610a220152600081816102a501526104b901526000818161023b015281816103b8015281816104660152818161052c0152610896015260008181610305015261055f01526000818161039101526106af01526000818161044001528181610626015261082101526116626000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c8063992d454d116100cd578063cba9794a11610081578063ec43277211610066578063ec432772146103ed578063ee947a7c14610414578063fc0c546a1461043b57600080fd5b8063cba9794a146103b3578063e3046234146103da57600080fd5b8063a9059cbb116100b2578063a9059cbb14610352578063abee967c14610365578063c34c08e51461038c57600080fd5b8063992d454d146103005780639e34070f1461033f57600080fd5b80633732ad1c1161012457806370a082311161010957806370a08231146102775780637a40624b146102a057806395d89b41146102c757600080fd5b80633732ad1c146102395780633ccfd60b1461026d57600080fd5b806307621eca1161015557806307621eca146101f457806318160ddd1461020a5780632eb4a7ab1461021257600080fd5b80630483a7f61461017157806306fdde03146101b2575b600080fd5b61019861017f36600461125d565b6002602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b60408051808201909152600c81527f466c75656e63652044726f70000000000000000000000000000000000000000060208201525b6040516101a9919061129c565b6101fc610462565b6040519081526020016101a9565b6000546101fc565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000042105b60405190151581526020016101a9565b61027561052a565b005b6101fc61028536600461125d565b6001600160a01b031660009081526002602052604090205490565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b60408051808201909152600881527f464c542d44524f5000000000000000000000000000000000000000000000000060208201526101e7565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a9565b61025d61034d3660046112cf565b61070b565b61025d6103603660046112e8565b61074c565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102756103e836600461135b565b610892565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000042106104915750600090565b60007f00000000000000000000000000000000000000000000000000000000000000006104de7f00000000000000000000000000000000000000000000000000000000000000004261143c565b6104e89190611465565b905060006104f782600261155d565b9050610523817f0000000000000000000000000000000000000000000000000000000000000000611465565b9250505090565b7f0000000000000000000000000000000000000000000000000000000000000000421015806105815750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6105f85760405162461bcd60e51b815260206004820152603460248201527f436c61696d696e67206973207374696c6c20616374697665206f7220796f752060448201527f617265206e6f74207468652063616e63656c657200000000000000000000000060648201526084015b60405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069e9190611569565b90506106d46001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000083610ca4565b6040518181527f0ddb3ab0ee452a393437c5d8f69f476f1dce0fae03bf5942b36a4e23c3d378369060200160405180910390a15050565b60008061071a61010084611465565b9050600061072a61010085611582565b60009283526001602081905260409093205492901b9182169091149392505050565b3360009081526002602052604081205482146107aa5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420616d6f756e7400000000000000000000000000000000000060448201526064016105ef565b33600090815260026020526040902060010154421161080b5760405162461bcd60e51b815260206004820152601160248201527f546f6b656e7320617265206c6f636b656400000000000000000000000000000060448201526064016105ef565b33600081815260026020526040812055610850907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169084610ca4565b60405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060015b92915050565b60017f00000000000000000000000000000000000000000000000000000000000000004210811461092b5760405162461bcd60e51b815260206004820152602260248201527f436c61696d696e6720737461747573206973206e6f742061732065787065637460448201527f656400000000000000000000000000000000000000000000000000000000000060648201526084016105ef565b61093a8763ffffffff1661070b565b156109875760405162461bcd60e51b815260206004820152601660248201527f546f6b656e7320616c726561647920636c61696d65640000000000000000000060448201526064016105ef565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1660208201526bffffffffffffffffffffffff19606086901b166024820152600090603801604051602081830303815290604052805190602001209050610a4d8787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f00000000000000000000000000000000000000000000000000000000000000009250859150610d299050565b610a995760405162461bcd60e51b815260206004820152601460248201527f56616c69642070726f6f6620726571756972656400000000000000000000000060448201526064016105ef565b6040517f19457468657265756d205369676e6564204d6573736167653a0a32300000000060208201526bffffffffffffffffffffffff193360601b16603c8201526000906050016040516020818303038152906040528051906020012090506000610b3a8287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d4192505050565b9050866001600160a01b0316816001600160a01b031614610b9d5760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016105ef565b610bac8a63ffffffff16610d6b565b6000610bb6610462565b905060405180604001604052808281526020017f000000000000000000000000000000000000000000000000000000000000000042610bf59190611596565b905233600081815260026020908152604080832085518155948201516001909501949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3604080513381526020810183905290810185905263ffffffff8c16907f04672052dcb6b5b19a9cc2ec1b8f447f1f5e47b5e24cfa5e4ffb640d63ca2be79060600160405180910390a25050505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610d24908490610daa565b505050565b600082610d368584610e26565b1490505b9392505050565b600080600080610d518686610e73565b925092509250610d618282610ec0565b5090949350505050565b6000610d7961010083611465565b90506000610d8961010084611582565b600092835260016020819052604090932080549390911b9092179091555050565b6000610dbf6001600160a01b03841683610fc8565b90508051600014158015610de4575080806020019051810190610de291906115a9565b155b15610d24576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016105ef565b600081815b8451811015610e6b57610e5782868381518110610e4a57610e4a6115cb565b6020026020010151610fd6565b915080610e63816115e1565b915050610e2b565b509392505050565b60008060008351604103610ead5760208401516040850151606086015160001a610e9f88828585611005565b955095509550505050610eb9565b50508151600091506002905b9250925092565b6000826003811115610ed457610ed46115fa565b03610edd575050565b6001826003811115610ef157610ef16115fa565b03610f28576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115610f3c57610f3c6115fa565b03610f76576040517ffce698f7000000000000000000000000000000000000000000000000000000008152600481018290526024016105ef565b6003826003811115610f8a57610f8a6115fa565b03610fc4576040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600481018290526024016105ef565b5050565b6060610d3a838360006110d4565b6000818310610ff2576000828152602084905260409020610d3a565b6000838152602083905260409020610d3a565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561104057506000915060039050826110ca565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611094573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110c0575060009250600191508290506110ca565b9250600091508190505b9450945094915050565b606081471015611112576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016105ef565b600080856001600160a01b0316848660405161112e9190611610565b60006040518083038185875af1925050503d806000811461116b576040519150601f19603f3d011682016040523d82523d6000602084013e611170565b606091505b509150915061118086838361118a565b9695505050505050565b60608261119f5761119a826111ff565b610d3a565b81511580156111b657506001600160a01b0384163b155b156111f8576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016105ef565b5080610d3a565b80511561120f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461125857600080fd5b919050565b60006020828403121561126f57600080fd5b610d3a82611241565b60005b8381101561129357818101518382015260200161127b565b50506000910152565b60208152600082518060208401526112bb816040850160208701611278565b601f01601f19169190910160400192915050565b6000602082840312156112e157600080fd5b5035919050565b600080604083850312156112fb57600080fd5b61130483611241565b946020939093013593505050565b60008083601f84011261132457600080fd5b50813567ffffffffffffffff81111561133c57600080fd5b60208301915083602082850101111561135457600080fd5b9250929050565b6000806000806000806080878903121561137457600080fd5b863563ffffffff8116811461138857600080fd5b9550602087013567ffffffffffffffff808211156113a557600080fd5b818901915089601f8301126113b957600080fd5b8135818111156113c857600080fd5b8a60208260051b85010111156113dd57600080fd5b60208301975095506113f160408a01611241565b9450606089013591508082111561140757600080fd5b5061141489828a01611312565b979a9699509497509295939492505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561088c5761088c611426565b634e487b7160e01b600052601260045260246000fd5b6000826114745761147461144f565b500490565b600181815b808511156114b457816000190482111561149a5761149a611426565b808516156114a757918102915b93841c939080029061147e565b509250929050565b6000826114cb5750600161088c565b816114d85750600061088c565b81600181146114ee57600281146114f857611514565b600191505061088c565b60ff84111561150957611509611426565b50506001821b61088c565b5060208310610133831016604e8410600b8410161715611537575081810a61088c565b6115418383611479565b806000190482111561155557611555611426565b029392505050565b6000610d3a83836114bc565b60006020828403121561157b57600080fd5b5051919050565b6000826115915761159161144f565b500690565b8082018082111561088c5761088c611426565b6000602082840312156115bb57600080fd5b81518015158114610d3a57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016115f3576115f3611426565b5060010190565b634e487b7160e01b600052602160045260246000fd5b60008251611622818460208701611278565b919091019291505056fea264697066735822122089173df7d9841e61b6f874a5bdcd96e80b172f4fe4b402091b6a9cfb711a216464736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061016c5760003560e01c8063992d454d116100cd578063cba9794a11610081578063ec43277211610066578063ec432772146103ed578063ee947a7c14610414578063fc0c546a1461043b57600080fd5b8063cba9794a146103b3578063e3046234146103da57600080fd5b8063a9059cbb116100b2578063a9059cbb14610352578063abee967c14610365578063c34c08e51461038c57600080fd5b8063992d454d146103005780639e34070f1461033f57600080fd5b80633732ad1c1161012457806370a082311161010957806370a08231146102775780637a40624b146102a057806395d89b41146102c757600080fd5b80633732ad1c146102395780633ccfd60b1461026d57600080fd5b806307621eca1161015557806307621eca146101f457806318160ddd1461020a5780632eb4a7ab1461021257600080fd5b80630483a7f61461017157806306fdde03146101b2575b600080fd5b61019861017f36600461125d565b6002602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b60408051808201909152600c81527f466c75656e63652044726f70000000000000000000000000000000000000000060208201525b6040516101a9919061129c565b6101fc610462565b6040519081526020016101a9565b6000546101fc565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000042105b60405190151581526020016101a9565b61027561052a565b005b6101fc61028536600461125d565b6001600160a01b031660009081526002602052604090205490565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b60408051808201909152600881527f464c542d44524f5000000000000000000000000000000000000000000000000060208201526101e7565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101a9565b61025d61034d3660046112cf565b61070b565b61025d6103603660046112e8565b61074c565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6102756103e836600461135b565b610892565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6101fc7f000000000000000000000000000000000000000000000000000000000000000081565b6103277f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000042106104915750600090565b60007f00000000000000000000000000000000000000000000000000000000000000006104de7f00000000000000000000000000000000000000000000000000000000000000004261143c565b6104e89190611465565b905060006104f782600261155d565b9050610523817f0000000000000000000000000000000000000000000000000000000000000000611465565b9250505090565b7f0000000000000000000000000000000000000000000000000000000000000000421015806105815750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b6105f85760405162461bcd60e51b815260206004820152603460248201527f436c61696d696e67206973207374696c6c20616374697665206f7220796f752060448201527f617265206e6f74207468652063616e63656c657200000000000000000000000060648201526084015b60405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b038316906370a0823190602401602060405180830381865afa15801561067a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069e9190611569565b90506106d46001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000083610ca4565b6040518181527f0ddb3ab0ee452a393437c5d8f69f476f1dce0fae03bf5942b36a4e23c3d378369060200160405180910390a15050565b60008061071a61010084611465565b9050600061072a61010085611582565b60009283526001602081905260409093205492901b9182169091149392505050565b3360009081526002602052604081205482146107aa5760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420616d6f756e7400000000000000000000000000000000000060448201526064016105ef565b33600090815260026020526040902060010154421161080b5760405162461bcd60e51b815260206004820152601160248201527f546f6b656e7320617265206c6f636b656400000000000000000000000000000060448201526064016105ef565b33600081815260026020526040812055610850907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169084610ca4565b60405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060015b92915050565b60017f00000000000000000000000000000000000000000000000000000000000000004210811461092b5760405162461bcd60e51b815260206004820152602260248201527f436c61696d696e6720737461747573206973206e6f742061732065787065637460448201527f656400000000000000000000000000000000000000000000000000000000000060648201526084016105ef565b61093a8763ffffffff1661070b565b156109875760405162461bcd60e51b815260206004820152601660248201527f546f6b656e7320616c726561647920636c61696d65640000000000000000000060448201526064016105ef565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1660208201526bffffffffffffffffffffffff19606086901b166024820152600090603801604051602081830303815290604052805190602001209050610a4d8787808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f00000000000000000000000000000000000000000000000000000000000000009250859150610d299050565b610a995760405162461bcd60e51b815260206004820152601460248201527f56616c69642070726f6f6620726571756972656400000000000000000000000060448201526064016105ef565b6040517f19457468657265756d205369676e6564204d6573736167653a0a32300000000060208201526bffffffffffffffffffffffff193360601b16603c8201526000906050016040516020818303038152906040528051906020012090506000610b3a8287878080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610d4192505050565b9050866001600160a01b0316816001600160a01b031614610b9d5760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e617475726500000000000000000000000000000060448201526064016105ef565b610bac8a63ffffffff16610d6b565b6000610bb6610462565b905060405180604001604052808281526020017f000000000000000000000000000000000000000000000000000000000000000042610bf59190611596565b905233600081815260026020908152604080832085518155948201516001909501949094559251848152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3604080513381526020810183905290810185905263ffffffff8c16907f04672052dcb6b5b19a9cc2ec1b8f447f1f5e47b5e24cfa5e4ffb640d63ca2be79060600160405180910390a25050505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610d24908490610daa565b505050565b600082610d368584610e26565b1490505b9392505050565b600080600080610d518686610e73565b925092509250610d618282610ec0565b5090949350505050565b6000610d7961010083611465565b90506000610d8961010084611582565b600092835260016020819052604090932080549390911b9092179091555050565b6000610dbf6001600160a01b03841683610fc8565b90508051600014158015610de4575080806020019051810190610de291906115a9565b155b15610d24576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016105ef565b600081815b8451811015610e6b57610e5782868381518110610e4a57610e4a6115cb565b6020026020010151610fd6565b915080610e63816115e1565b915050610e2b565b509392505050565b60008060008351604103610ead5760208401516040850151606086015160001a610e9f88828585611005565b955095509550505050610eb9565b50508151600091506002905b9250925092565b6000826003811115610ed457610ed46115fa565b03610edd575050565b6001826003811115610ef157610ef16115fa565b03610f28576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115610f3c57610f3c6115fa565b03610f76576040517ffce698f7000000000000000000000000000000000000000000000000000000008152600481018290526024016105ef565b6003826003811115610f8a57610f8a6115fa565b03610fc4576040517fd78bce0c000000000000000000000000000000000000000000000000000000008152600481018290526024016105ef565b5050565b6060610d3a838360006110d4565b6000818310610ff2576000828152602084905260409020610d3a565b6000838152602083905260409020610d3a565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561104057506000915060039050826110ca565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611094573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166110c0575060009250600191508290506110ca565b9250600091508190505b9450945094915050565b606081471015611112576040517fcd7860590000000000000000000000000000000000000000000000000000000081523060048201526024016105ef565b600080856001600160a01b0316848660405161112e9190611610565b60006040518083038185875af1925050503d806000811461116b576040519150601f19603f3d011682016040523d82523d6000602084013e611170565b606091505b509150915061118086838361118a565b9695505050505050565b60608261119f5761119a826111ff565b610d3a565b81511580156111b657506001600160a01b0384163b155b156111f8576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b03851660048201526024016105ef565b5080610d3a565b80511561120f5780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b038116811461125857600080fd5b919050565b60006020828403121561126f57600080fd5b610d3a82611241565b60005b8381101561129357818101518382015260200161127b565b50506000910152565b60208152600082518060208401526112bb816040850160208701611278565b601f01601f19169190910160400192915050565b6000602082840312156112e157600080fd5b5035919050565b600080604083850312156112fb57600080fd5b61130483611241565b946020939093013593505050565b60008083601f84011261132457600080fd5b50813567ffffffffffffffff81111561133c57600080fd5b60208301915083602082850101111561135457600080fd5b9250929050565b6000806000806000806080878903121561137457600080fd5b863563ffffffff8116811461138857600080fd5b9550602087013567ffffffffffffffff808211156113a557600080fd5b818901915089601f8301126113b957600080fd5b8135818111156113c857600080fd5b8a60208260051b85010111156113dd57600080fd5b60208301975095506113f160408a01611241565b9450606089013591508082111561140757600080fd5b5061141489828a01611312565b979a9699509497509295939492505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561088c5761088c611426565b634e487b7160e01b600052601260045260246000fd5b6000826114745761147461144f565b500490565b600181815b808511156114b457816000190482111561149a5761149a611426565b808516156114a757918102915b93841c939080029061147e565b509250929050565b6000826114cb5750600161088c565b816114d85750600061088c565b81600181146114ee57600281146114f857611514565b600191505061088c565b60ff84111561150957611509611426565b50506001821b61088c565b5060208310610133831016604e8410600b8410161715611537575081810a61088c565b6115418383611479565b806000190482111561155557611555611426565b029392505050565b6000610d3a83836114bc565b60006020828403121561157b57600080fd5b5051919050565b6000826115915761159161144f565b500690565b8082018082111561088c5761088c611426565b6000602082840312156115bb57600080fd5b81518015158114610d3a57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000600182016115f3576115f3611426565b5060010190565b634e487b7160e01b600052602160045260246000fd5b60008251611622818460208701611278565b919091019291505056fea264697066735822122089173df7d9841e61b6f874a5bdcd96e80b172f4fe4b402091b6a9cfb711a216464736f6c63430008140033", + "bytecode": "0x6101e06040523480156200001257600080fd5b5060405162001aea38038062001aea83398101604081905262000035916200011f565b6001600160a01b03808a1660805288811660a052821660c0526101208790526101408690526101a0859052610180849052426101008190526200007a908490620001af565b60e0526101c08190526040805163313ce56760e01b815290516001600160a01b038b169163313ce5679160048083019260209291908290030181865afa158015620000c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ef9190620001d7565b60ff16610160525062000203975050505050505050565b6001600160a01b03811681146200011c57600080fd5b50565b60008060008060008060008060006101208a8c0312156200013f57600080fd5b89516200014c8162000106565b60208b01519099506200015f8162000106565b8098505060408a0151965060608a0151955060808a0151945060a08a0151935060c08a0151925060e08a0151620001968162000106565b809250506101008a015190509295985092959850929598565b80820180821115620001d157634e487b7160e01b600052601160045260246000fd5b92915050565b600060208284031215620001ea57600080fd5b815160ff81168114620001fc57600080fd5b9392505050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c051611805620002e5600039600081816102d60152610a9c0152600081816104a30152610d4b0152600081816103eb01526105890152600061025f01526000818161047c015261051f0152600081816102380152610bae015260008181610326015261054301526000818161029501528181610442015281816104f0015261093901526000818161038601526105bf01526000818161041b01526106e80152600081816104ca0152818161065f01526108cc01526118056000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c806395d89b41116100e3578063c34c08e51161008c578063ec43277211610066578063ec43277214610477578063ee947a7c1461049e578063fc0c546a146104c557600080fd5b8063c34c08e514610416578063cba9794a1461043d578063e30462341461046457600080fd5b8063a9059cbb116100bd578063a9059cbb146103d3578063abee967c146103e6578063bfc2aa2a1461040d57600080fd5b806395d89b4114610348578063992d454d146103815780639e34070f146103c057600080fd5b8063313ce567116101455780635cf9393d1161011f5780635cf9393d146102d157806370a08231146102f85780637a40624b1461032157600080fd5b8063313ce5671461025a5780633732ad1c146102935780633ccfd60b146102c757600080fd5b806307621eca1161017657806307621eca1461021557806318160ddd1461022b5780632eb4a7ab1461023357600080fd5b80630483a7f61461019257806306fdde03146101d3575b600080fd5b6101b96101a0366004611400565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b60408051808201909152600c81527f466c75656e63652044726f70000000000000000000000000000000000000000060208201525b6040516101ca919061143f565b61021d6104ec565b6040519081526020016101ca565b60015461021d565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101ca565b7f000000000000000000000000000000000000000000000000000000000000000042105b60405190151581526020016101ca565b6102cf6105b4565b005b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021d610306366004611400565b6001600160a01b031660009081526003602052604090205490565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b60408051808201909152600881527f464c542d44524f500000000000000000000000000000000000000000000000006020820152610208565b6103a87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101ca565b6102b76103ce366004611472565b610744565b6102b76103e136600461148b565b610785565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021d60005481565b6103a87f000000000000000000000000000000000000000000000000000000000000000081565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6102cf6104723660046114fe565b610935565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6103a87f000000000000000000000000000000000000000000000000000000000000000081565b60007f0000000000000000000000000000000000000000000000000000000000000000421061051b5750600090565b60007f00000000000000000000000000000000000000000000000000000000000000006105687f0000000000000000000000000000000000000000000000000000000000000000426115df565b6105729190611608565b90506000610581826002611700565b90506105ad817f0000000000000000000000000000000000000000000000000000000000000000611608565b9250505090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106315760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420612063616e63656c6572000000000000000060448201526064015b60405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d7919061170c565b905061070d6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000083610e48565b6040518181527f0ddb3ab0ee452a393437c5d8f69f476f1dce0fae03bf5942b36a4e23c3d378369060200160405180910390a15050565b60008061075361010084611608565b9050600061076361010085611725565b60009283526002602052604090922054600190921b9182169091149392505050565b60008082116107d65760405162461bcd60e51b815260206004820152600a60248201527f56616c75652069732030000000000000000000000000000000000000000000006044820152606401610628565b3360009081526003602052604090205482146108345760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420616d6f756e740000000000000000000000000000000000006044820152606401610628565b3360009081526003602052604090206001015442116108955760405162461bcd60e51b815260206004820152601160248201527f546f6b656e7320617265206c6f636b65640000000000000000000000000000006044820152606401610628565b336000908152600360205260408120819055600180548492906108b99084906115df565b909155506108f390506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384610e48565b60405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060015b92915050565b60017f0000000000000000000000000000000000000000000000000000000000000000421081146109ce5760405162461bcd60e51b815260206004820152602260248201527f436c61696d696e6720737461747573206973206e6f742061732065787065637460448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610628565b6109dd8763ffffffff16610744565b15610a2a5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e7320616c726561647920636c61696d6564000000000000000000006044820152606401610628565b3360009081526003602052604090206001015415610a8a5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e732061726520616c7265616479206c6f636b6564000000000000006044820152606401610628565b6000610a946104ec565b6000549091507f0000000000000000000000000000000000000000000000000000000000000000610ac58383611739565b1115610b135760405162461bcd60e51b815260206004820181905260248201527f546f74616c20636c61696d6564206578636565646564206d6178206c696d69746044820152606401610628565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1660208201526bffffffffffffffffffffffff19606088901b166024820152600090603801604051602081830303815290604052805190602001209050610bd98989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f00000000000000000000000000000000000000000000000000000000000000009250859150610ecd9050565b610c255760405162461bcd60e51b815260206004820152601460248201527f56616c69642070726f6f662072657175697265640000000000000000000000006044820152606401610628565b6040517f19457468657265756d205369676e6564204d6573736167653a0a32300000000060208201526bffffffffffffffffffffffff193360601b16603c8201526000906050016040516020818303038152906040528051906020012090506000610cc68289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ee592505050565b9050886001600160a01b0316816001600160a01b031614610d295760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610628565b610d388c63ffffffff16610f0f565b60405180604001604052808681526020017f000000000000000000000000000000000000000000000000000000000000000042610d759190611739565b9052336000908152600360209081526040822083518155920151600192830155815487929190610da6908490611739565b90915550610db690508585611739565b60009081556040518681523391907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080513381526020810187905290810184905263ffffffff8d16907f04672052dcb6b5b19a9cc2ec1b8f447f1f5e47b5e24cfa5e4ffb640d63ca2be79060600160405180910390a2505050505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610ec8908490610f4d565b505050565b600082610eda8584610fc9565b1490505b9392505050565b600080600080610ef58686611016565b925092509250610f058282611063565b5090949350505050565b6000610f1d61010083611608565b90506000610f2d61010084611725565b6000928352600260205260409092208054600190931b9092179091555050565b6000610f626001600160a01b0384168361116b565b90508051600014158015610f87575080806020019051810190610f85919061174c565b155b15610ec8576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610628565b600081815b845181101561100e57610ffa82868381518110610fed57610fed61176e565b6020026020010151611179565b91508061100681611784565b915050610fce565b509392505050565b600080600083516041036110505760208401516040850151606086015160001a611042888285856111a8565b95509550955050505061105c565b50508151600091506002905b9250925092565b60008260038111156110775761107761179d565b03611080575050565b60018260038111156110945761109461179d565b036110cb576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156110df576110df61179d565b03611119576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610628565b600382600381111561112d5761112d61179d565b03611167576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610628565b5050565b6060610ede83836000611277565b6000818310611195576000828152602084905260409020610ede565b6000838152602083905260409020610ede565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156111e3575060009150600390508261126d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611237573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112635750600092506001915082905061126d565b9250600091508190505b9450945094915050565b6060814710156112b5576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610628565b600080856001600160a01b031684866040516112d191906117b3565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b509150915061132386838361132d565b9695505050505050565b6060826113425761133d826113a2565b610ede565b815115801561135957506001600160a01b0384163b155b1561139b576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610628565b5080610ede565b8051156113b25780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146113fb57600080fd5b919050565b60006020828403121561141257600080fd5b610ede826113e4565b60005b8381101561143657818101518382015260200161141e565b50506000910152565b602081526000825180602084015261145e81604085016020870161141b565b601f01601f19169190910160400192915050565b60006020828403121561148457600080fd5b5035919050565b6000806040838503121561149e57600080fd5b6114a7836113e4565b946020939093013593505050565b60008083601f8401126114c757600080fd5b50813567ffffffffffffffff8111156114df57600080fd5b6020830191508360208285010111156114f757600080fd5b9250929050565b6000806000806000806080878903121561151757600080fd5b863563ffffffff8116811461152b57600080fd5b9550602087013567ffffffffffffffff8082111561154857600080fd5b818901915089601f83011261155c57600080fd5b81358181111561156b57600080fd5b8a60208260051b850101111561158057600080fd5b602083019750955061159460408a016113e4565b945060608901359150808211156115aa57600080fd5b506115b789828a016114b5565b979a9699509497509295939492505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561092f5761092f6115c9565b634e487b7160e01b600052601260045260246000fd5b600082611617576116176115f2565b500490565b600181815b8085111561165757816000190482111561163d5761163d6115c9565b8085161561164a57918102915b93841c9390800290611621565b509250929050565b60008261166e5750600161092f565b8161167b5750600061092f565b8160018114611691576002811461169b576116b7565b600191505061092f565b60ff8411156116ac576116ac6115c9565b50506001821b61092f565b5060208310610133831016604e8410600b84101617156116da575081810a61092f565b6116e4838361161c565b80600019048211156116f8576116f86115c9565b029392505050565b6000610ede838361165f565b60006020828403121561171e57600080fd5b5051919050565b600082611734576117346115f2565b500690565b8082018082111561092f5761092f6115c9565b60006020828403121561175e57600080fd5b81518015158114610ede57600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018201611796576117966115c9565b5060010190565b634e487b7160e01b600052602160045260246000fd5b600082516117c581846020870161141b565b919091019291505056fea2646970667358221220b1dc97ddbd32e1c5ecf3baffbb2a7c8124608281309ccb904681eebce3495b4d64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018d5760003560e01c806395d89b41116100e3578063c34c08e51161008c578063ec43277211610066578063ec43277214610477578063ee947a7c1461049e578063fc0c546a146104c557600080fd5b8063c34c08e514610416578063cba9794a1461043d578063e30462341461046457600080fd5b8063a9059cbb116100bd578063a9059cbb146103d3578063abee967c146103e6578063bfc2aa2a1461040d57600080fd5b806395d89b4114610348578063992d454d146103815780639e34070f146103c057600080fd5b8063313ce567116101455780635cf9393d1161011f5780635cf9393d146102d157806370a08231146102f85780637a40624b1461032157600080fd5b8063313ce5671461025a5780633732ad1c146102935780633ccfd60b146102c757600080fd5b806307621eca1161017657806307621eca1461021557806318160ddd1461022b5780632eb4a7ab1461023357600080fd5b80630483a7f61461019257806306fdde03146101d3575b600080fd5b6101b96101a0366004611400565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b60408051808201909152600c81527f466c75656e63652044726f70000000000000000000000000000000000000000060208201525b6040516101ca919061143f565b61021d6104ec565b6040519081526020016101ca565b60015461021d565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6102817f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016101ca565b7f000000000000000000000000000000000000000000000000000000000000000042105b60405190151581526020016101ca565b6102cf6105b4565b005b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021d610306366004611400565b6001600160a01b031660009081526003602052604090205490565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b60408051808201909152600881527f464c542d44524f500000000000000000000000000000000000000000000000006020820152610208565b6103a87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101ca565b6102b76103ce366004611472565b610744565b6102b76103e136600461148b565b610785565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021d60005481565b6103a87f000000000000000000000000000000000000000000000000000000000000000081565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6102cf6104723660046114fe565b610935565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b61021d7f000000000000000000000000000000000000000000000000000000000000000081565b6103a87f000000000000000000000000000000000000000000000000000000000000000081565b60007f0000000000000000000000000000000000000000000000000000000000000000421061051b5750600090565b60007f00000000000000000000000000000000000000000000000000000000000000006105687f0000000000000000000000000000000000000000000000000000000000000000426115df565b6105729190611608565b90506000610581826002611700565b90506105ad817f0000000000000000000000000000000000000000000000000000000000000000611608565b9250505090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106315760405162461bcd60e51b815260206004820152601860248201527f43616c6c6572206973206e6f7420612063616e63656c6572000000000000000060448201526064015b60405180910390fd5b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201527f0000000000000000000000000000000000000000000000000000000000000000906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156106b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d7919061170c565b905061070d6001600160a01b0383167f000000000000000000000000000000000000000000000000000000000000000083610e48565b6040518181527f0ddb3ab0ee452a393437c5d8f69f476f1dce0fae03bf5942b36a4e23c3d378369060200160405180910390a15050565b60008061075361010084611608565b9050600061076361010085611725565b60009283526002602052604090922054600190921b9182169091149392505050565b60008082116107d65760405162461bcd60e51b815260206004820152600a60248201527f56616c75652069732030000000000000000000000000000000000000000000006044820152606401610628565b3360009081526003602052604090205482146108345760405162461bcd60e51b815260206004820152600e60248201527f496e76616c696420616d6f756e740000000000000000000000000000000000006044820152606401610628565b3360009081526003602052604090206001015442116108955760405162461bcd60e51b815260206004820152601160248201527f546f6b656e7320617265206c6f636b65640000000000000000000000000000006044820152606401610628565b336000908152600360205260408120819055600180548492906108b99084906115df565b909155506108f390506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384610e48565b60405182815260009033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35060015b92915050565b60017f0000000000000000000000000000000000000000000000000000000000000000421081146109ce5760405162461bcd60e51b815260206004820152602260248201527f436c61696d696e6720737461747573206973206e6f742061732065787065637460448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610628565b6109dd8763ffffffff16610744565b15610a2a5760405162461bcd60e51b815260206004820152601660248201527f546f6b656e7320616c726561647920636c61696d6564000000000000000000006044820152606401610628565b3360009081526003602052604090206001015415610a8a5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e732061726520616c7265616479206c6f636b6564000000000000006044820152606401610628565b6000610a946104ec565b6000549091507f0000000000000000000000000000000000000000000000000000000000000000610ac58383611739565b1115610b135760405162461bcd60e51b815260206004820181905260248201527f546f74616c20636c61696d6564206578636565646564206d6178206c696d69746044820152606401610628565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e08b901b1660208201526bffffffffffffffffffffffff19606088901b166024820152600090603801604051602081830303815290604052805190602001209050610bd98989808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152507f00000000000000000000000000000000000000000000000000000000000000009250859150610ecd9050565b610c255760405162461bcd60e51b815260206004820152601460248201527f56616c69642070726f6f662072657175697265640000000000000000000000006044820152606401610628565b6040517f19457468657265756d205369676e6564204d6573736167653a0a32300000000060208201526bffffffffffffffffffffffff193360601b16603c8201526000906050016040516020818303038152906040528051906020012090506000610cc68289898080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610ee592505050565b9050886001600160a01b0316816001600160a01b031614610d295760405162461bcd60e51b815260206004820152601160248201527f496e76616c6964207369676e61747572650000000000000000000000000000006044820152606401610628565b610d388c63ffffffff16610f0f565b60405180604001604052808681526020017f000000000000000000000000000000000000000000000000000000000000000042610d759190611739565b9052336000908152600360209081526040822083518155920151600192830155815487929190610da6908490611739565b90915550610db690508585611739565b60009081556040518681523391907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3604080513381526020810187905290810184905263ffffffff8d16907f04672052dcb6b5b19a9cc2ec1b8f447f1f5e47b5e24cfa5e4ffb640d63ca2be79060600160405180910390a2505050505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052610ec8908490610f4d565b505050565b600082610eda8584610fc9565b1490505b9392505050565b600080600080610ef58686611016565b925092509250610f058282611063565b5090949350505050565b6000610f1d61010083611608565b90506000610f2d61010084611725565b6000928352600260205260409092208054600190931b9092179091555050565b6000610f626001600160a01b0384168361116b565b90508051600014158015610f87575080806020019051810190610f85919061174c565b155b15610ec8576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610628565b600081815b845181101561100e57610ffa82868381518110610fed57610fed61176e565b6020026020010151611179565b91508061100681611784565b915050610fce565b509392505050565b600080600083516041036110505760208401516040850151606086015160001a611042888285856111a8565b95509550955050505061105c565b50508151600091506002905b9250925092565b60008260038111156110775761107761179d565b03611080575050565b60018260038111156110945761109461179d565b036110cb576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60028260038111156110df576110df61179d565b03611119576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610628565b600382600381111561112d5761112d61179d565b03611167576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610628565b5050565b6060610ede83836000611277565b6000818310611195576000828152602084905260409020610ede565b6000838152602083905260409020610ede565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156111e3575060009150600390508261126d565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611237573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112635750600092506001915082905061126d565b9250600091508190505b9450945094915050565b6060814710156112b5576040517fcd786059000000000000000000000000000000000000000000000000000000008152306004820152602401610628565b600080856001600160a01b031684866040516112d191906117b3565b60006040518083038185875af1925050503d806000811461130e576040519150601f19603f3d011682016040523d82523d6000602084013e611313565b606091505b509150915061132386838361132d565b9695505050505050565b6060826113425761133d826113a2565b610ede565b815115801561135957506001600160a01b0384163b155b1561139b576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610628565b5080610ede565b8051156113b25780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80356001600160a01b03811681146113fb57600080fd5b919050565b60006020828403121561141257600080fd5b610ede826113e4565b60005b8381101561143657818101518382015260200161141e565b50506000910152565b602081526000825180602084015261145e81604085016020870161141b565b601f01601f19169190910160400192915050565b60006020828403121561148457600080fd5b5035919050565b6000806040838503121561149e57600080fd5b6114a7836113e4565b946020939093013593505050565b60008083601f8401126114c757600080fd5b50813567ffffffffffffffff8111156114df57600080fd5b6020830191508360208285010111156114f757600080fd5b9250929050565b6000806000806000806080878903121561151757600080fd5b863563ffffffff8116811461152b57600080fd5b9550602087013567ffffffffffffffff8082111561154857600080fd5b818901915089601f83011261155c57600080fd5b81358181111561156b57600080fd5b8a60208260051b850101111561158057600080fd5b602083019750955061159460408a016113e4565b945060608901359150808211156115aa57600080fd5b506115b789828a016114b5565b979a9699509497509295939492505050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561092f5761092f6115c9565b634e487b7160e01b600052601260045260246000fd5b600082611617576116176115f2565b500490565b600181815b8085111561165757816000190482111561163d5761163d6115c9565b8085161561164a57918102915b93841c9390800290611621565b509250929050565b60008261166e5750600161092f565b8161167b5750600061092f565b8160018114611691576002811461169b576116b7565b600191505061092f565b60ff8411156116ac576116ac6115c9565b50506001821b61092f565b5060208310610133831016604e8410600b84101617156116da575081810a61092f565b6116e4838361161c565b80600019048211156116f8576116f86115c9565b029392505050565b6000610ede838361165f565b60006020828403121561171e57600080fd5b5051919050565b600082611734576117346115f2565b500690565b8082018082111561092f5761092f6115c9565b60006020828403121561175e57600080fd5b81518015158114610ede57600080fd5b634e487b7160e01b600052603260045260246000fd5b600060018201611796576117966115c9565b5060010190565b634e487b7160e01b600052602160045260246000fd5b600082516117c581846020870161141b565b919091019291505056fea2646970667358221220b1dc97ddbd32e1c5ecf3baffbb2a7c8124608281309ccb904681eebce3495b4d64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/web/src/store/actions/distributor.js b/web/src/store/actions/distributor.js index ce2b0e8..baa7c4c 100644 --- a/web/src/store/actions/distributor.js +++ b/web/src/store/actions/distributor.js @@ -72,8 +72,18 @@ export const fetchNextHalvePeriod = (network) => { return async (dispatch) => { try { - const period = await contract.methods.halvePeriod().call(); - dispatch(setNextHalvePeriod(Number(period * 1000n))); + const halvePeriod = + Number(await contract.methods.halvePeriod().call()) * 1000; + const deployTime = + Number(await contract.methods.deployTime().call()) * 1000; + + console.log("halvePeriod: " + halvePeriod); + console.log("deployTime: " + deployTime); + const n = Math.floor((Date.now() - deployTime) / halvePeriod); + console.log("n: " + n); + const nextHalvePeriod = deployTime + (n + 1) * halvePeriod; + console.log("nextHalvePeriod: " + nextHalvePeriod); + dispatch(setNextHalvePeriod(nextHalvePeriod)); } catch (error) { console.log(error); }