From 3c2d7c08f80a8dae87d741e1608198edaee82493 Mon Sep 17 00:00:00 2001 From: Edmund Edgar Date: Sat, 27 Jan 2024 14:23:13 +0900 Subject: [PATCH 1/2] Move createTemplateAndAskQuestion out of the core interface prior to removing it (no bytecode change) --- packages/contracts/development/contracts/IRealityETH.sol | 5 ++++- .../contracts/development/contracts/IRealityETHCore.sol | 1 - .../development/contracts/IRealityETHCore_ERC20.sol | 1 - .../contracts/IRealityETHCreateTemplateAndAskQuestion.sol | 8 ++++++++ .../contracts/development/contracts/IRealityETH_ERC20.sol | 4 +++- 5 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol diff --git a/packages/contracts/development/contracts/IRealityETH.sol b/packages/contracts/development/contracts/IRealityETH.sol index 9cb74d75..7fb0c994 100644 --- a/packages/contracts/development/contracts/IRealityETH.sol +++ b/packages/contracts/development/contracts/IRealityETH.sol @@ -3,8 +3,11 @@ pragma solidity 0.8.20; import {IRealityETHCore} from "./IRealityETHCore.sol"; + +// Features removed in v4 import {IRealityETHCommitReveal} from "./IRealityETHCommitReveal.sol"; +import {IRealityETHCreateTemplateAndAskQuestion} from "./IRealityETHCreateTemplateAndAskQuestion.sol"; /* solhint-disable func-name-mixedcase */ -interface IRealityETH is IRealityETHCore, IRealityETHCommitReveal {} +interface IRealityETH is IRealityETHCore, IRealityETHCommitReveal, IRealityETHCreateTemplateAndAskQuestion {} diff --git a/packages/contracts/development/contracts/IRealityETHCore.sol b/packages/contracts/development/contracts/IRealityETHCore.sol index 0e6ed5b9..eb23eb01 100644 --- a/packages/contracts/development/contracts/IRealityETHCore.sol +++ b/packages/contracts/development/contracts/IRealityETHCore.sol @@ -77,7 +77,6 @@ interface IRealityETHCore is IBalanceHolder, IRealityETHErrors { function submitAnswerByArbitrator(bytes32 question_id, bytes32 answer, address answerer) external; function askQuestion(uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external payable returns (bytes32); function askQuestionWithMinBond(uint256 template_id, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 min_bond) external payable returns (bytes32); - function createTemplateAndAskQuestion(string calldata content, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external payable returns (bytes32); function fundAnswerBounty(bytes32 question_id) external payable; function reopenQuestion( uint256 template_id, diff --git a/packages/contracts/development/contracts/IRealityETHCore_ERC20.sol b/packages/contracts/development/contracts/IRealityETHCore_ERC20.sol index 8528c7d9..496a8f44 100644 --- a/packages/contracts/development/contracts/IRealityETHCore_ERC20.sol +++ b/packages/contracts/development/contracts/IRealityETHCore_ERC20.sol @@ -86,7 +86,6 @@ interface IRealityETHCore_ERC20 is IBalanceHolder_ERC20, IRealityETHErrors_ERC20 ) external; function claimWinnings(bytes32 question_id, bytes32[] calldata history_hashes, address[] calldata addrs, uint256[] calldata bonds, bytes32[] calldata answers) external; function createTemplate(string calldata content) external returns (uint256); - function createTemplateAndAskQuestion(string calldata content, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external returns (bytes32); function fundAnswerBountyERC20(bytes32 question_id, uint256 tokens) external; function notifyOfArbitrationRequest(bytes32 question_id, address requester, uint256 max_previous) external; function reopenQuestionERC20( diff --git a/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol b/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol new file mode 100644 index 00000000..6bc621e9 --- /dev/null +++ b/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-3.0-only + +pragma solidity 0.8.20; + +// This function was removed from IRealityETH in version 4. +interface IRealityETHCreateTemplateAndAskQuestion { + function createTemplateAndAskQuestion(string calldata content, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external payable returns (bytes32); +} diff --git a/packages/contracts/development/contracts/IRealityETH_ERC20.sol b/packages/contracts/development/contracts/IRealityETH_ERC20.sol index 5ba02254..0a895655 100644 --- a/packages/contracts/development/contracts/IRealityETH_ERC20.sol +++ b/packages/contracts/development/contracts/IRealityETH_ERC20.sol @@ -2,9 +2,11 @@ pragma solidity 0.8.20; +// Features removed in v4 import {IRealityETHCore_ERC20} from "./IRealityETHCore_ERC20.sol"; import {IRealityETHCommitReveal_ERC20} from "./IRealityETHCommitReveal_ERC20.sol"; +import {IRealityETHCreateTemplateAndAskQuestion} from "./IRealityETHCreateTemplateAndAskQuestion.sol"; /* solhint-disable func-name-mixedcase */ -interface IRealityETH_ERC20 is IRealityETHCore_ERC20, IRealityETHCommitReveal_ERC20 {} +interface IRealityETH_ERC20 is IRealityETHCore_ERC20, IRealityETHCommitReveal_ERC20, IRealityETHCreateTemplateAndAskQuestion {} From d48c4d3b5b989b0dcce13a3b845b282fc1a51a88 Mon Sep 17 00:00:00 2001 From: Edmund Edgar Date: Sat, 27 Jan 2024 14:29:22 +0900 Subject: [PATCH 2/2] Remove createTemplateAndAskQuestion as nobody was using it (#107) (changes bytecode) --- .../abi/solc-0.8.20/RealityETH-4.0.abi.json | 2 +- .../solc-0.8.20/RealityETH_ERC20-4.0.abi.json | 2 +- .../contracts/bytecode/RealityETH-4.0.bin | 2 +- .../bytecode/RealityETH_ERC20-4.0.bin | 2 +- ...RealityETHCreateTemplateAndAskQuestion.sol | 2 +- .../development/contracts/RealityETH-4.0.sol | 28 ------------------- .../contracts/RealityETH_ERC20-4.0.sol | 27 ------------------ 7 files changed, 5 insertions(+), 60 deletions(-) diff --git a/packages/contracts/abi/solc-0.8.20/RealityETH-4.0.abi.json b/packages/contracts/abi/solc-0.8.20/RealityETH-4.0.abi.json index 0a411f76..fcc043f2 100644 --- a/packages/contracts/abi/solc-0.8.20/RealityETH-4.0.abi.json +++ b/packages/contracts/abi/solc-0.8.20/RealityETH-4.0.abi.json @@ -1 +1 @@ -[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AnswererMustBeNonZero","type":"error"},{"inputs":[],"name":"AnswererMustBeProvided","type":"error"},{"inputs":[],"name":"ArbitratorMismatch","type":"error"},{"inputs":[],"name":"ArbitratorMustMatch","type":"error"},{"inputs":[],"name":"AtLeastOneHistoryHashEntryMustBeProvided","type":"error"},{"inputs":[],"name":"BondMustBeDoubleAtLeastPreviousBond","type":"error"},{"inputs":[],"name":"BondMustBeHighEnough","type":"error"},{"inputs":[],"name":"BondMustBePositive","type":"error"},{"inputs":[],"name":"BondMustExceedMax_Previous","type":"error"},{"inputs":[],"name":"BondMustExceedTheMinimum","type":"error"},{"inputs":[],"name":"CommitmentMustNotAlreadyExist","type":"error"},{"inputs":[],"name":"CommitmentMustNotHaveBeenRevealedYet","type":"error"},{"inputs":[],"name":"ContentHashMismatch","type":"error"},{"inputs":[],"name":"ContentHashMustMatch","type":"error"},{"inputs":[],"name":"FinalizationDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"FinalizationDealineMustNotHavePassed","type":"error"},{"inputs":[],"name":"HistoryInputProvidedDidNotMatchTheExpectedHash","type":"error"},{"inputs":[],"name":"Min_BondMismatch","type":"error"},{"inputs":[],"name":"MsgSenderMustBeArbitrator","type":"error"},{"inputs":[],"name":"OpeningDateMustHavePassed","type":"error"},{"inputs":[],"name":"Opening_TsMismatch","type":"error"},{"inputs":[],"name":"QuestionHasAlreadyBeenReopened","type":"error"},{"inputs":[],"name":"QuestionIsAlreadyReopeningAPreviousQuestion","type":"error"},{"inputs":[],"name":"QuestionMustAlreadyHaveAnAnswerWhenArbitrationIsRequested","type":"error"},{"inputs":[],"name":"QuestionMustBeFinalized","type":"error"},{"inputs":[],"name":"QuestionMustBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustExist","type":"error"},{"inputs":[],"name":"QuestionMustNotBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustNotExist","type":"error"},{"inputs":[],"name":"QuestionReplacementWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"QuestionWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"RevealDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"TemplateMustExist","type":"error"},{"inputs":[],"name":"TimeoutMismatch","type":"error"},{"inputs":[],"name":"TimeoutMustBeLessThan365Days","type":"error"},{"inputs":[],"name":"TimeoutMustBeLongEnough","type":"error"},{"inputs":[],"name":"TimeoutMustBePositive","type":"error"},{"inputs":[],"name":"TokensProvidedMustCoverQuestionFee","type":"error"},{"inputs":[],"name":"YouCanOnlyReopenQuestionsThatResolvedAsSettledTooSoon","type":"error"},{"inputs":[],"name":"YouMustWaitForTheRevealDeadlineBeforeFinalizing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"LogCancelArbitration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"answer","type":"bytes32"}],"name":"LogFinalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bounty_added","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bounty","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogFundAnswerBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"LogMinimumBond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_commitment","type":"bool"}],"name":"LogNewAnswer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":true,"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint32","name":"timeout","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"opening_ts","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"created","type":"uint256"}],"name":"LogNewQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"question_text","type":"string"}],"name":"LogNewTemplate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogNotifyOfArbitrationRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"reopened_question_id","type":"bytes32"}],"name":"LogReopenQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSetQuestionFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"arbitrator_question_fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"askQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"askQuestionWithMinBond","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"cancelArbitration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"question_ids","type":"bytes32[]"},{"internalType":"uint256[]","name":"lengths","type":"uint256[]"},{"internalType":"bytes32[]","name":"hist_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimMultipleAndWithdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"}],"name":"createTemplate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"createTemplateAndAskQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"fundAnswerBounty","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"min_timeout","type":"uint32"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"getFinalAnswerIfMatches","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"isHistoryOfUnfinalizedQuestionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isSettledTooSoon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"notifyOfArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"question_claims","outputs":[{"internalType":"address","name":"payee","type":"address"},{"internalType":"uint256","name":"last_bond","type":"uint256"},{"internalType":"uint256","name":"queued_funds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questions","outputs":[{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"finalize_ts","type":"uint32"},{"internalType":"bool","name":"is_pending_arbitration","type":"bool"},{"internalType":"uint256","name":"bounty","type":"uint256"},{"internalType":"bytes32","name":"best_answer","type":"bytes32"},{"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"internalType":"uint256","name":"bond","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"bytes32","name":"reopens_question_id","type":"bytes32"}],"name":"reopenQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopened_questions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopener_questions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultForOnceSettled","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"submitAnswer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerFor","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AnswererMustBeNonZero","type":"error"},{"inputs":[],"name":"AnswererMustBeProvided","type":"error"},{"inputs":[],"name":"ArbitratorMismatch","type":"error"},{"inputs":[],"name":"ArbitratorMustMatch","type":"error"},{"inputs":[],"name":"AtLeastOneHistoryHashEntryMustBeProvided","type":"error"},{"inputs":[],"name":"BondMustBeDoubleAtLeastPreviousBond","type":"error"},{"inputs":[],"name":"BondMustBeHighEnough","type":"error"},{"inputs":[],"name":"BondMustBePositive","type":"error"},{"inputs":[],"name":"BondMustExceedMax_Previous","type":"error"},{"inputs":[],"name":"BondMustExceedTheMinimum","type":"error"},{"inputs":[],"name":"CommitmentMustNotAlreadyExist","type":"error"},{"inputs":[],"name":"CommitmentMustNotHaveBeenRevealedYet","type":"error"},{"inputs":[],"name":"ContentHashMismatch","type":"error"},{"inputs":[],"name":"ContentHashMustMatch","type":"error"},{"inputs":[],"name":"FinalizationDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"FinalizationDealineMustNotHavePassed","type":"error"},{"inputs":[],"name":"HistoryInputProvidedDidNotMatchTheExpectedHash","type":"error"},{"inputs":[],"name":"Min_BondMismatch","type":"error"},{"inputs":[],"name":"MsgSenderMustBeArbitrator","type":"error"},{"inputs":[],"name":"OpeningDateMustHavePassed","type":"error"},{"inputs":[],"name":"Opening_TsMismatch","type":"error"},{"inputs":[],"name":"QuestionHasAlreadyBeenReopened","type":"error"},{"inputs":[],"name":"QuestionIsAlreadyReopeningAPreviousQuestion","type":"error"},{"inputs":[],"name":"QuestionMustAlreadyHaveAnAnswerWhenArbitrationIsRequested","type":"error"},{"inputs":[],"name":"QuestionMustBeFinalized","type":"error"},{"inputs":[],"name":"QuestionMustBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustExist","type":"error"},{"inputs":[],"name":"QuestionMustNotBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustNotExist","type":"error"},{"inputs":[],"name":"QuestionReplacementWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"QuestionWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"RevealDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"TemplateMustExist","type":"error"},{"inputs":[],"name":"TimeoutMismatch","type":"error"},{"inputs":[],"name":"TimeoutMustBeLessThan365Days","type":"error"},{"inputs":[],"name":"TimeoutMustBeLongEnough","type":"error"},{"inputs":[],"name":"TimeoutMustBePositive","type":"error"},{"inputs":[],"name":"TokensProvidedMustCoverQuestionFee","type":"error"},{"inputs":[],"name":"YouCanOnlyReopenQuestionsThatResolvedAsSettledTooSoon","type":"error"},{"inputs":[],"name":"YouMustWaitForTheRevealDeadlineBeforeFinalizing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"LogCancelArbitration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"answer","type":"bytes32"}],"name":"LogFinalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bounty_added","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bounty","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogFundAnswerBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"LogMinimumBond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_commitment","type":"bool"}],"name":"LogNewAnswer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":true,"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint32","name":"timeout","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"opening_ts","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"created","type":"uint256"}],"name":"LogNewQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"question_text","type":"string"}],"name":"LogNewTemplate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogNotifyOfArbitrationRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"reopened_question_id","type":"bytes32"}],"name":"LogReopenQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSetQuestionFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"arbitrator_question_fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"askQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"askQuestionWithMinBond","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"cancelArbitration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"question_ids","type":"bytes32[]"},{"internalType":"uint256[]","name":"lengths","type":"uint256[]"},{"internalType":"bytes32[]","name":"hist_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimMultipleAndWithdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"}],"name":"createTemplate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"fundAnswerBounty","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"min_timeout","type":"uint32"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"getFinalAnswerIfMatches","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"isHistoryOfUnfinalizedQuestionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isSettledTooSoon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"notifyOfArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"question_claims","outputs":[{"internalType":"address","name":"payee","type":"address"},{"internalType":"uint256","name":"last_bond","type":"uint256"},{"internalType":"uint256","name":"queued_funds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questions","outputs":[{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"finalize_ts","type":"uint32"},{"internalType":"bool","name":"is_pending_arbitration","type":"bool"},{"internalType":"uint256","name":"bounty","type":"uint256"},{"internalType":"bytes32","name":"best_answer","type":"bytes32"},{"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"internalType":"uint256","name":"bond","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"bytes32","name":"reopens_question_id","type":"bytes32"}],"name":"reopenQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopened_questions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopener_questions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultForOnceSettled","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"submitAnswer","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerFor","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/packages/contracts/abi/solc-0.8.20/RealityETH_ERC20-4.0.abi.json b/packages/contracts/abi/solc-0.8.20/RealityETH_ERC20-4.0.abi.json index b75172d8..6635daf7 100644 --- a/packages/contracts/abi/solc-0.8.20/RealityETH_ERC20-4.0.abi.json +++ b/packages/contracts/abi/solc-0.8.20/RealityETH_ERC20-4.0.abi.json @@ -1 +1 @@ -[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AnswererMustBeNonZero","type":"error"},{"inputs":[],"name":"AnswererMustBeProvided","type":"error"},{"inputs":[],"name":"ArbitratorMismatch","type":"error"},{"inputs":[],"name":"ArbitratorMustMatch","type":"error"},{"inputs":[],"name":"AtLeastOneHistoryHashEntryMustBeProvided","type":"error"},{"inputs":[],"name":"BondMustBeDoubleAtLeastPreviousBond","type":"error"},{"inputs":[],"name":"BondMustBeHighEnough","type":"error"},{"inputs":[],"name":"BondMustBePositive","type":"error"},{"inputs":[],"name":"BondMustExceedMax_Previous","type":"error"},{"inputs":[],"name":"BondMustExceedTheMinimum","type":"error"},{"inputs":[],"name":"CommitmentMustNotAlreadyExist","type":"error"},{"inputs":[],"name":"CommitmentMustNotHaveBeenRevealedYet","type":"error"},{"inputs":[],"name":"ContentHashMismatch","type":"error"},{"inputs":[],"name":"ContentHashMustMatch","type":"error"},{"inputs":[],"name":"FinalizationDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"FinalizationDealineMustNotHavePassed","type":"error"},{"inputs":[],"name":"HistoryInputProvidedDidNotMatchTheExpectedHash","type":"error"},{"inputs":[],"name":"Min_BondMismatch","type":"error"},{"inputs":[],"name":"MsgSenderMustBeArbitrator","type":"error"},{"inputs":[],"name":"OpeningDateMustHavePassed","type":"error"},{"inputs":[],"name":"Opening_TsMismatch","type":"error"},{"inputs":[],"name":"QuestionHasAlreadyBeenReopened","type":"error"},{"inputs":[],"name":"QuestionIsAlreadyReopeningAPreviousQuestion","type":"error"},{"inputs":[],"name":"QuestionMustAlreadyHaveAnAnswerWhenArbitrationIsRequested","type":"error"},{"inputs":[],"name":"QuestionMustBeFinalized","type":"error"},{"inputs":[],"name":"QuestionMustBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustExist","type":"error"},{"inputs":[],"name":"QuestionMustNotBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustNotExist","type":"error"},{"inputs":[],"name":"QuestionReplacementWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"QuestionWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"RevealDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"TemplateMustExist","type":"error"},{"inputs":[],"name":"TimeoutMismatch","type":"error"},{"inputs":[],"name":"TimeoutMustBeLessThan365Days","type":"error"},{"inputs":[],"name":"TimeoutMustBeLongEnough","type":"error"},{"inputs":[],"name":"TimeoutMustBePositive","type":"error"},{"inputs":[],"name":"TokenCanOnlyBeInitializedOnce","type":"error"},{"inputs":[],"name":"TokensProvidedMustCoverQuestionFee","type":"error"},{"inputs":[],"name":"TransferOfTokensFailedInsufficientApprovedBalance","type":"error"},{"inputs":[],"name":"YouCanOnlyReopenQuestionsThatResolvedAsSettledTooSoon","type":"error"},{"inputs":[],"name":"YouMustWaitForTheRevealDeadlineBeforeFinalizing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"LogCancelArbitration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"answer","type":"bytes32"}],"name":"LogFinalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bounty_added","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bounty","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogFundAnswerBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"LogMinimumBond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_commitment","type":"bool"}],"name":"LogNewAnswer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":true,"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint32","name":"timeout","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"opening_ts","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"created","type":"uint256"}],"name":"LogNewQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"question_text","type":"string"}],"name":"LogNewTemplate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogNotifyOfArbitrationRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"reopened_question_id","type":"bytes32"}],"name":"LogReopenQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSetQuestionFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"arbitrator_question_fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"askQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionWithMinBondERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"cancelArbitration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"question_ids","type":"bytes32[]"},{"internalType":"uint256[]","name":"lengths","type":"uint256[]"},{"internalType":"bytes32[]","name":"hist_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimMultipleAndWithdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"}],"name":"createTemplate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"createTemplateAndAskQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"fundAnswerBountyERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"min_timeout","type":"uint32"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"getFinalAnswerIfMatches","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"isHistoryOfUnfinalizedQuestionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isSettledTooSoon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"notifyOfArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"question_claims","outputs":[{"internalType":"address","name":"payee","type":"address"},{"internalType":"uint256","name":"last_bond","type":"uint256"},{"internalType":"uint256","name":"queued_funds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questions","outputs":[{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"finalize_ts","type":"uint32"},{"internalType":"bool","name":"is_pending_arbitration","type":"bool"},{"internalType":"uint256","name":"bounty","type":"uint256"},{"internalType":"bytes32","name":"best_answer","type":"bytes32"},{"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"internalType":"uint256","name":"bond","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"bytes32","name":"reopens_question_id","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"reopenQuestionERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopened_questions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopener_questions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultForOnceSettled","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"answerer","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerForERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file +[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AnswererMustBeNonZero","type":"error"},{"inputs":[],"name":"AnswererMustBeProvided","type":"error"},{"inputs":[],"name":"ArbitratorMismatch","type":"error"},{"inputs":[],"name":"ArbitratorMustMatch","type":"error"},{"inputs":[],"name":"AtLeastOneHistoryHashEntryMustBeProvided","type":"error"},{"inputs":[],"name":"BondMustBeDoubleAtLeastPreviousBond","type":"error"},{"inputs":[],"name":"BondMustBeHighEnough","type":"error"},{"inputs":[],"name":"BondMustBePositive","type":"error"},{"inputs":[],"name":"BondMustExceedMax_Previous","type":"error"},{"inputs":[],"name":"BondMustExceedTheMinimum","type":"error"},{"inputs":[],"name":"CommitmentMustNotAlreadyExist","type":"error"},{"inputs":[],"name":"CommitmentMustNotHaveBeenRevealedYet","type":"error"},{"inputs":[],"name":"ContentHashMismatch","type":"error"},{"inputs":[],"name":"ContentHashMustMatch","type":"error"},{"inputs":[],"name":"FinalizationDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"FinalizationDealineMustNotHavePassed","type":"error"},{"inputs":[],"name":"HistoryInputProvidedDidNotMatchTheExpectedHash","type":"error"},{"inputs":[],"name":"Min_BondMismatch","type":"error"},{"inputs":[],"name":"MsgSenderMustBeArbitrator","type":"error"},{"inputs":[],"name":"OpeningDateMustHavePassed","type":"error"},{"inputs":[],"name":"Opening_TsMismatch","type":"error"},{"inputs":[],"name":"QuestionHasAlreadyBeenReopened","type":"error"},{"inputs":[],"name":"QuestionIsAlreadyReopeningAPreviousQuestion","type":"error"},{"inputs":[],"name":"QuestionMustAlreadyHaveAnAnswerWhenArbitrationIsRequested","type":"error"},{"inputs":[],"name":"QuestionMustBeFinalized","type":"error"},{"inputs":[],"name":"QuestionMustBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustExist","type":"error"},{"inputs":[],"name":"QuestionMustNotBePendingArbitration","type":"error"},{"inputs":[],"name":"QuestionMustNotExist","type":"error"},{"inputs":[],"name":"QuestionReplacementWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"QuestionWasSettledTooSoonAndHasNotBeenReopened","type":"error"},{"inputs":[],"name":"RevealDeadlineMustNotHavePassed","type":"error"},{"inputs":[],"name":"TemplateMustExist","type":"error"},{"inputs":[],"name":"TimeoutMismatch","type":"error"},{"inputs":[],"name":"TimeoutMustBeLessThan365Days","type":"error"},{"inputs":[],"name":"TimeoutMustBeLongEnough","type":"error"},{"inputs":[],"name":"TimeoutMustBePositive","type":"error"},{"inputs":[],"name":"TokenCanOnlyBeInitializedOnce","type":"error"},{"inputs":[],"name":"TokensProvidedMustCoverQuestionFee","type":"error"},{"inputs":[],"name":"TransferOfTokensFailedInsufficientApprovedBalance","type":"error"},{"inputs":[],"name":"YouCanOnlyReopenQuestionsThatResolvedAsSettledTooSoon","type":"error"},{"inputs":[],"name":"YouMustWaitForTheRevealDeadlineBeforeFinalizing","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"LogCancelArbitration","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"answer","type":"bytes32"}],"name":"LogFinalize","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bounty_added","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bounty","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogFundAnswerBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"LogMinimumBond","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ts","type":"uint256"},{"indexed":false,"internalType":"bool","name":"is_commitment","type":"bool"}],"name":"LogNewAnswer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"question","type":"string"},{"indexed":true,"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint32","name":"timeout","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"opening_ts","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"created","type":"uint256"}],"name":"LogNewQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"template_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"string","name":"question_text","type":"string"}],"name":"LogNewTemplate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"LogNotifyOfArbitrationRequest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"reopened_question_id","type":"bytes32"}],"name":"LogReopenQuestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"arbitrator","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogSetQuestionFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LogWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"arbitrator_question_fees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"askQuestion","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"askQuestionWithMinBondERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"cancelArbitration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"question_ids","type":"bytes32[]"},{"internalType":"uint256[]","name":"lengths","type":"uint256[]"},{"internalType":"bytes32[]","name":"hist_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimMultipleAndWithdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"content","type":"string"}],"name":"createTemplate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"fundAnswerBountyERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"min_timeout","type":"uint32"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"name":"getFinalAnswerIfMatches","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32[]","name":"history_hashes","type":"bytes32[]"},{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"uint256[]","name":"bonds","type":"uint256[]"},{"internalType":"bytes32[]","name":"answers","type":"bytes32[]"}],"name":"isHistoryOfUnfinalizedQuestionValid","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isSettledTooSoon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"address","name":"requester","type":"address"},{"internalType":"uint256","name":"max_previous","type":"uint256"}],"name":"notifyOfArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"question_claims","outputs":[{"internalType":"address","name":"payee","type":"address"},{"internalType":"uint256","name":"last_bond","type":"uint256"},{"internalType":"uint256","name":"queued_funds","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questions","outputs":[{"internalType":"bytes32","name":"content_hash","type":"bytes32"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"finalize_ts","type":"uint32"},{"internalType":"bool","name":"is_pending_arbitration","type":"bool"},{"internalType":"uint256","name":"bounty","type":"uint256"},{"internalType":"bytes32","name":"best_answer","type":"bytes32"},{"internalType":"bytes32","name":"history_hash","type":"bytes32"},{"internalType":"uint256","name":"bond","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"template_id","type":"uint256"},{"internalType":"string","name":"question","type":"string"},{"internalType":"address","name":"arbitrator","type":"address"},{"internalType":"uint32","name":"timeout","type":"uint32"},{"internalType":"uint32","name":"opening_ts","type":"uint32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"min_bond","type":"uint256"},{"internalType":"bytes32","name":"reopens_question_id","type":"bytes32"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"reopenQuestionERC20","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopened_questions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopener_questions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultForOnceSettled","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"address","name":"answerer","type":"address"}],"name":"submitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"answerer","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerForERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/packages/contracts/bytecode/RealityETH-4.0.bin b/packages/contracts/bytecode/RealityETH-4.0.bin index 45e750b9..ec3b3bde 100644 --- a/packages/contracts/bytecode/RealityETH-4.0.bin +++ b/packages/contracts/bytecode/RealityETH-4.0.bin @@ -1 +1 @@ -60806040525f60015534801562000014575f80fd5b50620000396040518060600160405280603f815260200162003480603f9139620000d4565b506200005e6040518060800160405280604f81526020016200355c604f9139620000d4565b50620000836040518060800160405280605a815260200162003502605a9139620000d4565b50620000a86040518060800160405280605c815260200162003424605c9139620000d4565b50620000cd604051806080016040528060438152602001620034bf60439139620000d4565b506200020d565b6001545f81815260026020908152604080832043905551919291620000fc9185910162000196565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000154908790620001b3565b60405180910390a362000169816001620001e7565b60015592915050565b5f5b838110156200018e57818101518382015260200162000174565b50505f910152565b5f8251620001a981846020870162000172565b9190910192915050565b602081525f8251806020840152620001d381604085016020870162000172565b601f01601f19169190910160400192915050565b808201808211156200020757634e487b7160e01b5f52601160045260245ffd5b92915050565b613209806200021b5f395ff3fe608060405260043610610249575f3560e01c80637f8d429e11610134578063ab5a4e35116100b3578063d44e293c11610078578063d44e293c146108ac578063e12891d4146108cb578063e83bfb58146108ea578063ebbdd2b014610918578063f6a94ecb14610937578063fe92049d14610956575f80fd5b8063ab5a4e35146107fc578063acae8f4e1461081b578063bc52565214610856578063c081d8a314610881578063d09cc57e146107dd575f80fd5b806395addb90116100f957806395addb901461064d5780639e63fa6a1461073f5780639f1025c61461078f578063a1130d04146107ca578063a462fb7b146107dd575f80fd5b80637f8d429e1461058157806382ffa9f7146105a057806383bf4609146105ce5780638d552d46146105ed578063924532fb1461061c575f80fd5b8063484b93c4116101cb578063590158a711610190578063590158a71461048957806359245ff3146104f25780636fa427421461050557806370a0823114610530578063762c38fd1461055b57806377f325df1461056e575f80fd5b8063484b93c4146103d3578063484c0714146103e65780634df6ca2a146104145780634e60f8831461043357806351577ea91461045e575f80fd5b80632417395c116102115780632417395c146102f55780632518904c1461032357806326d6c97b1461037257806328828b1e146103a05780633ccfd60b146103bf575f80fd5b806306c3b67a1461024d5780631101a0fd14610281578063111ec138146102a25780631126a9dc146102b557806312a203c3146102d6575b5f80fd5b348015610258575f80fd5b5061026c610267366004612876565b610975565b60405190151581526020015b60405180910390f35b34801561028c575f80fd5b506102a061029b3660046129d0565b610989565b005b6102a06102b0366004612a7e565b610c2e565b6102c86102c3366004612b38565b610e6d565b604051908152602001610278565b3480156102e1575f80fd5b506102c86102f0366004612bc5565b611118565b348015610300575f80fd5b506102c861030f366004612876565b5f9081526004602052604090206003015490565b34801561032e575f80fd5b5061035a61033d366004612876565b5f908152600460205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610278565b34801561037d575f80fd5b506102c861038c366004612876565b5f9081526004602052604090206006015490565b3480156103ab575f80fd5b506102a06103ba366004612c0f565b61123a565b3480156103ca575f80fd5b506102a06114ea565b6102c86103e1366004612cf9565b611561565b3480156103f1575f80fd5b506102c8610400366004612876565b5f9081526004602052604090206007015490565b34801561041f575f80fd5b506102a061042e366004612876565b61165d565b34801561043e575f80fd5b506102c861044d366004612876565b60036020525f908152604090205481565b348015610469575f80fd5b506102c8610478366004612876565b5f9081526004602052604090205490565b348015610494575f80fd5b506104cd6104a3366004612876565b60056020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610278565b6102a0610500366004612876565b6116aa565b348015610510575f80fd5b506102c861051f366004612d7e565b60066020525f908152604090205481565b34801561053b575f80fd5b506102c861054a366004612d7e565b5f6020819052908152604090205481565b6102c8610569366004612d97565b611844565b6102a061057c366004612e12565b61193f565b34801561058c575f80fd5b5061026c61059b366004612876565b611b56565b3480156105ab575f80fd5b506102c86105ba366004612876565b5f9081526004602052604090206005015490565b3480156105d9575f80fd5b506102c86105e8366004612e3b565b611bb1565b3480156105f8575f80fd5b506102c8610607366004612876565b5f908152600460208190526040909120015490565b348015610627575f80fd5b5061026c610636366004612876565b5f9081526004602052604090206002015460ff1690565b348015610658575f80fd5b506106d8610667366004612876565b600460208190525f91825260409091208054600182015460028301546003840154948401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff1694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e085015261010084019190915261012083015261014082015261016001610278565b34801561074a575f80fd5b5061077a610759366004612876565b5f90815260046020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff9091168152602001610278565b34801561079a575f80fd5b5061077a6107a9366004612876565b5f90815260046020526040902060010154600160c01b900463ffffffff1690565b6102c86107d8366004612e74565b611c4b565b3480156107e8575f80fd5b506102c86107f7366004612876565b611c66565b348015610807575f80fd5b506102c8610816366004612876565b611ca5565b348015610826575f80fd5b5061077a610835366004612876565b5f90815260046020526040902060010154600160e01b900463ffffffff1690565b348015610861575f80fd5b506102c8610870366004612876565b60026020525f908152604090205481565b34801561088c575f80fd5b506102c861089b366004612876565b60076020525f908152604090205481565b3480156108b7575f80fd5b506102a06108c6366004612ecd565b611d19565b3480156108d6575f80fd5b5061026c6108e53660046129d0565b611d92565b3480156108f5575f80fd5b5061026c610904366004612876565b60086020525f908152604090205460ff1681565b348015610923575f80fd5b506102a0610932366004612876565b611f2f565b348015610942575f80fd5b506102a0610951366004612f21565b612031565b348015610961575f80fd5b506102a0610970366004612f53565b612258565b5f60011961098283611c66565b1492915050565b8461099381611b56565b6109b057604051636030e5f560e11b815260040160405180910390fd5b84515f036109d1576040516312fdb46960e31b815260040160405180910390fd5b5f86815260056020818152604080842080546001909101546004938490529185209384015493909201546001600160a01b039092169390929091825b8a51811015610b9057610a87838c8381518110610a2c57610a2c612f85565b60200260200101518a8481518110610a4657610a46612f85565b60200260200101518c8581518110610a6057610a60612f85565b60200260200101518e8681518110610a7a57610a7a612f85565b6020026020010151612377565b610aa4576040516303a479f160e11b815260040160405180910390fd5b610aae8585612fad565b9350610b0a8c8386898e8681518110610ac957610ac9612f85565b60200260200101518e8781518110610ae357610ae3612f85565b60200260200101518e8881518110610afd57610afd612f85565b60200260200101516123b4565b8097508195505050888181518110610b2457610b24612f85565b6020026020010151945060045f8d81526020019081526020015f20600601548514610b6157610b54602886612fc0565b610b5e9086612fdf565b94505b8a8181518110610b7357610b73612f85565b602002602001015192508080610b8890612ff2565b915050610a0d565b8215610bd257610ba18c878661247d565b5f8c815260056020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610c0d565b610be68c87610be18888612fad565b61247d565b5f8c815260056020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260046020526040909920600501989098555050505050505050565b5f848152600460205260408120600101548591600160c01b90910463ffffffff169003610c6e5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615610ca0576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590610cd957504263ffffffff168163ffffffff1611155b15610cf75760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590610d2f57504263ffffffff168163ffffffff16115b15610d4d5760405163079994c560e31b815260040160405180910390fd5b8634805f03610d6f57604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003610dbe575f83815260046020526040902060070154821015610db95760405163291784d560e01b815260040160405180910390fd5b610de9565b610dc981600261300a565b821015610de9576040516328eecafb60e21b815260040160405180910390fd5b89888015610e22575f82815260046020526040902060060154811015610e225760405163f6631e6760e01b815260040160405180910390fd5b6001600160a01b038916610e4957604051630ca6549f60e11b815260040160405180910390fd5b610e558c8c8b346124f5565b610e5f8c8c6125c6565b505050505050505050505050565b5f610e7782610975565b610e9457604051631f45e42760e11b815260040160405180910390fd5b5f89868a604051602001610eaa93929190613043565b60408051601f1981840301815291815281516020928301205f86815260049093529120549091508114610ef0576040516349923ed160e11b815260040160405180910390fd5b5f838152600460205260409020600101546001600160a01b03898116911614610f2c5760405163611876b160e01b815260040160405180910390fd5b5f8381526004602052604090206001015463ffffffff888116600160c01b9092041614610f6c57604051635f4c19f760e01b815260040160405180910390fd5b5f8381526004602052604090206001015463ffffffff878116600160a01b9092041614610fac57604051630a5ab81d60e41b815260040160405180910390fd5b5f838152600460205260409020600701548414610fdc57604051633246892f60e01b815260040160405180910390fd5b5f8381526008602052604090205460ff161561100b5760405163331c2c3f60e11b815260040160405180910390fd5b5f8381526007602052604090205483811561105e5761102982610975565b61104657604051634ec30c8560e01b815260040160405180910390fd5b505f818152600860205260409020805460ff19169055805b5f61106e8d8d8d8d8d8d8d611561565b5f87815260076020908152604080832084905583835260088252808320805460ff19166001179055600490915280822060039081015486845291909220909101549192506110bb91612fad565b5f828152600460205260408082206003908101939093558482528082209092018190559051879183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39c9b505050505050505050505050565b5f8561112381611b56565b61114057604051636030e5f560e11b815260040160405180910390fd5b5f87815260046020526040902054861461116d57604051630763e45d60e41b815260040160405180910390fd5b5f878152600460205260409020600101546001600160a01b038681169116146111a95760405163f089a18560e01b815260040160405180910390fd5b5f8781526004602052604090206001015463ffffffff600160c01b909104811690851611156111eb57604051633f61762b60e01b815260040160405180910390fd5b5f8781526004602052604090206006015483111561121c57604051634d497e9360e11b815260040160405180910390fd5b5f878152600460208190526040909120015491505095945050505050565b5f805b87518210156114d8575f88838151811061125957611259612f85565b602002602001015190505f88848151811061127657611276612f85565b602002602001015190505f816001600160401b038111156112995761129961288d565b6040519080825280602002602001820160405280156112c2578160200160208202803683370190505b5090505f826001600160401b038111156112de576112de61288d565b604051908082528060200260200182016040528015611307578160200160208202803683370190505b5090505f836001600160401b038111156113235761132361288d565b60405190808252806020026020018201604052801561134c578160200160208202803683370190505b5090505f846001600160401b038111156113685761136861288d565b604051908082528060200260200182016040528015611391578160200160208202803683370190505b5090505f5b858110156114b1578c88815181106113b0576113b0612f85565b60200260200101518582815181106113ca576113ca612f85565b6020026020010181815250508b88815181106113e8576113e8612f85565b602002602001015184828151811061140257611402612f85565b60200260200101906001600160a01b031690816001600160a01b0316815250508a888151811061143457611434612f85565b602002602001015183828151811061144e5761144e612f85565b60200260200101818152505089888151811061146c5761146c612f85565b602002602001015182828151811061148657611486612f85565b60209081029190910101528761149b81612ff2565b98505080806114a990612ff2565b915050611396565b6114be8786868686610989565b5050505050505081806114d090612ff2565b92505061123d565b6114e06114ea565b5050505050505050565b335f81815260208190526040808220805490839055905190929183156108fc02918491818181858888f19350505050158015611528573d5f803e3d5ffd5b5060405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b5f87815260026020526040812054810361158e5760405163bbbf712b60e01b815260040160405180910390fd5b5f8885896040516020016115a493929190613043565b6040516020818303038152906040528051906020012090505f8188888630338a6040516020016115da979695949392919061307b565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405161163997969594939291906130ff565b60405180910390a461165081838a8a8a893461262e565b9998505050505050505050565b335f81815260066020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f818152600460205260408120600101548291600160c01b90910463ffffffff1690036116ea5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff161561171c576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff16801580159061175557504263ffffffff168163ffffffff1611155b156117735760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff1680158015906117ab57504263ffffffff168163ffffffff16115b156117c95760405163079994c560e31b815260040160405180910390fd5b5f848152600460205260409020600301546117e5903490612fad565b5f858152600460205260409081902060030182905551339186917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab669161183691349190918252602082015260400190565b60405180910390a350505050565b5f8681526002602052604081205481036118715760405163bbbf712b60e01b815260040160405180910390fd5b5f87848860405160200161188793929190613043565b6040516020818303038152906040528051906020012090505f8187875f3033896040516020016118bd979695949392919061307b565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c4260405161191c97969594939291906130ff565b60405180910390a461193381838989895f3461262e565b98975050505050505050565b5f838152600460205260408120600101548491600160c01b90910463ffffffff16900361197f5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff16156119b1576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff1680158015906119ea57504263ffffffff168163ffffffff1611155b15611a085760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611a4057504263ffffffff168163ffffffff16115b15611a5e5760405163079994c560e31b815260040160405180910390fd5b8534805f03611a8057604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003611acf575f83815260046020526040902060070154821015611aca5760405163291784d560e01b815260040160405180910390fd5b611afa565b611ada81600261300a565b821015611afa576040516328eecafb60e21b815260040160405180910390fd5b88878015611b33575f82815260046020526040902060060154811015611b335760405163f6631e6760e01b815260040160405180910390fd5b611b3f8b8b33346124f5565b611b498b8b6125c6565b5050505050505050505050565b5f8181526004602052604081206001810154600290910154600160e01b90910463ffffffff169060ff16158015611b92575063ffffffff811615155b8015611baa57504263ffffffff168163ffffffff1611155b9392505050565b6001545f81815260026020908152604080832043905551919291611bd79185910161314e565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e490611c2d908790613169565b60405180910390a3611c40816001612fad565b60015590505b919050565b5f80611c5688611bb1565b9050611933818888888888611844565b5f81611c7181611b56565b611c8e57604051636030e5f560e11b815260040160405180910390fd5b50505f908152600460208190526040909120015490565b5f80611cb083611c66565b905060028101611d13575f8381526007602052604090205480611ce65760405163079442c960e01b815260040160405180910390fd5b611cef81611c66565b915060028201611d115760405162a5c78160e11b815260040160405180910390fd5b505b92915050565b5f8681526004602052604090206005810154600690910154611d4091908590859085612377565b611d5d576040516303a479f160e11b815260040160405180910390fd5b5f868152600460208190526040822001548614611d7a5784611d7c565b815b9050611d89878783612258565b50505050505050565b5f858152600460205260408120600101548690600160c01b900463ffffffff168203611dd15760405163a42db76b60e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590611e0a57504263ffffffff168163ffffffff1611155b15611e285760405163372900d560e21b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611e6057504263ffffffff168163ffffffff16115b15611e7e5760405163079994c560e31b815260040160405180910390fd5b5f898152600460205260409020600501548851885181141580611ea2575080885114155b80611eae575080875114155b15611ebd575f95505050611f23565b5f5b81811015611f1b57611edd838c8381518110610a2c57610a2c612f85565b611eec575f9650505050611f23565b8a8181518110611efe57611efe612f85565b602002602001015192508080611f1390612ff2565b915050611ebf565b506001955050505b50505095945050505050565b5f8181526004602052604090206001015481906001600160a01b03163314611f6a57604051634361661f60e11b815260040160405180910390fd5b5f82815260046020526040902060020154829060ff16611f9d5760405163f476ed1160e01b815260040160405180910390fd5b5f83815260046020526040902060028101805460ff1916905560010154611fd190600160c01b900463ffffffff164261317b565b5f84815260046020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526004602052604090206001015483906001600160a01b0316331461206c57604051634361661f60e11b815260040160405180910390fd5b5f848152600460205260408120600101548591600160c01b90910463ffffffff1690036120ac5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff16156120de576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff16801580159061211757504263ffffffff168163ffffffff1611155b156121355760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff16801580159061216d57504263ffffffff168163ffffffff16115b1561218b5760405163079994c560e31b815260040160405180910390fd5b868580156121c4575f828152600460205260409020600601548110156121c45760405163f6631e6760e01b815260040160405180910390fd5b5f89815260046020526040902060010154600160e01b900463ffffffff166121ff576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260046020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526004602052604090206001015483906001600160a01b0316331461229357604051634361661f60e11b815260040160405180910390fd5b5f84815260046020526040902060020154849060ff166122c65760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b0383166122ed576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600460205260408120600201805460ff19169055612340908690869086906124f5565b5050505f9182526004602081905260409092209182015560010180546001600160e01b0316600160e01b4263ffffffff1602179055565b5f848484845f604051602001612391959493929190613198565b604051602081830303815290604052805190602001208614905095945050505050565b5f8087830361246e576001600160a01b03861661242b578495506001195f1b88141580156123f157505f8981526004602052604090206003015415155b15612426575f89815260046020526040902060030154612414908a90889061247d565b5f898152600460205260408120600301555b61246e565b856001600160a01b0316856001600160a01b03161461246e575f848810156124535787612455565b845b90506124668a88610be1848c612fdf565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f908152602081905260409020546124a0908290612fad565b6001600160a01b0383165f81815260208181526040918290209390935551838152909185917f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6910160405180910390a3505050565b5f84815260046020908152604080832060050154905161251d92879186918891879101613198565b6040516020818303038152906040528051906020012090505f821115612551575f8581526004602052604090206006018290555b5f8581526004602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a35050505050565b5f828152600460208190526040909120908101829055600101546125f790600160c01b900463ffffffff164261317b565b5f92835260046020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600460205260409020600101548790600160c01b900463ffffffff161561266f576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f036126955760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff16106126bf57604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906126e15750336001600160a01b03881614155b15612769576001600160a01b0387165f908152600660205260409020548082101561271f5760405163d72564c760e01b815260040160405180910390fd5b6127298183612fdf565b6001600160a01b0389165f9081526020819052604090205490925061274f908290612fad565b6001600160a01b0389165f90815260208190526040902055505b5f898152600460205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c161792909217161790558015612815575f89815260046020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b831561286b575f89815260046020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906128629087815260200190565b60405180910390a25b505050505050505050565b5f60208284031215612886575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156128c9576128c961288d565b604052919050565b5f6001600160401b038211156128e9576128e961288d565b5060051b60200190565b5f82601f830112612902575f80fd5b81356020612917612912836128d1565b6128a1565b82815260059290921b84018101918181019086841115612935575f80fd5b8286015b848110156129505780358352918301918301612939565b509695505050505050565b80356001600160a01b0381168114611c46575f80fd5b5f82601f830112612980575f80fd5b81356020612990612912836128d1565b82815260059290921b840181019181810190868411156129ae575f80fd5b8286015b84811015612950576129c38161295b565b83529183019183016129b2565b5f805f805f60a086880312156129e4575f80fd5b8535945060208601356001600160401b0380821115612a01575f80fd5b612a0d89838a016128f3565b95506040880135915080821115612a22575f80fd5b612a2e89838a01612971565b94506060880135915080821115612a43575f80fd5b612a4f89838a016128f3565b93506080880135915080821115612a64575f80fd5b50612a71888289016128f3565b9150509295509295909350565b5f805f8060808587031215612a91575f80fd5b843593506020850135925060408501359150612aaf6060860161295b565b905092959194509250565b5f82601f830112612ac9575f80fd5b81356001600160401b03811115612ae257612ae261288d565b612af5601f8201601f19166020016128a1565b818152846020838601011115612b09575f80fd5b816020850160208301375f918101602001919091529392505050565b803563ffffffff81168114611c46575f80fd5b5f805f805f805f80610100898b031215612b50575f80fd5b8835975060208901356001600160401b03811115612b6c575f80fd5b612b788b828c01612aba565b975050612b8760408a0161295b565b9550612b9560608a01612b25565b9450612ba360808a01612b25565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f60a08688031215612bd9575f80fd5b8535945060208601359350612bf06040870161295b565b9250612bfe60608701612b25565b949793965091946080013592915050565b5f805f805f8060c08789031215612c24575f80fd5b86356001600160401b0380821115612c3a575f80fd5b612c468a838b016128f3565b97506020890135915080821115612c5b575f80fd5b612c678a838b016128f3565b96506040890135915080821115612c7c575f80fd5b612c888a838b016128f3565b95506060890135915080821115612c9d575f80fd5b612ca98a838b01612971565b94506080890135915080821115612cbe575f80fd5b612cca8a838b016128f3565b935060a0890135915080821115612cdf575f80fd5b50612cec89828a016128f3565b9150509295509295509295565b5f805f805f805f60e0888a031215612d0f575f80fd5b8735965060208801356001600160401b03811115612d2b575f80fd5b612d378a828b01612aba565b965050612d466040890161295b565b9450612d5460608901612b25565b9350612d6260808901612b25565b925060a0880135915060c0880135905092959891949750929550565b5f60208284031215612d8e575f80fd5b611baa8261295b565b5f805f805f8060c08789031215612dac575f80fd5b8635955060208701356001600160401b03811115612dc8575f80fd5b612dd489828a01612aba565b955050612de36040880161295b565b9350612df160608801612b25565b9250612dff60808801612b25565b915060a087013590509295509295509295565b5f805f60608486031215612e24575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612e4b575f80fd5b81356001600160401b03811115612e60575f80fd5b612e6c84828501612aba565b949350505050565b5f805f805f8060c08789031215612e89575f80fd5b86356001600160401b0380821115612e9f575f80fd5b612eab8a838b01612aba565b97506020890135915080821115612ec0575f80fd5b50612dd489828a01612aba565b5f805f805f8060c08789031215612ee2575f80fd5b8635955060208701359450612ef96040880161295b565b93506060870135925060808701359150612f1560a0880161295b565b90509295509295509295565b5f805f60608486031215612f33575f80fd5b83359250612f436020850161295b565b9150604084013590509250925092565b5f805f60608486031215612f65575f80fd5b8335925060208401359150612f7c6040850161295b565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611d1357611d13612f99565b5f82612fda57634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115611d1357611d13612f99565b5f6001820161300357613003612f99565b5060010190565b8082028115828204841417611d1357611d13612f99565b5f5b8381101561303b578181015183820152602001613023565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f825161306c816024850160208701613021565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f81518084526130eb816020860160208601613021565b601f01601f19169290920160200192915050565b87815260e060208201525f61311760e08301896130d4565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f825161315f818460208701613021565b9190910192915050565b602081525f611baa60208301846130d4565b63ffffffff818116838216019080821115611d1157611d11612f99565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220de3bf16a84566b5031f4f8d3616d24a4929a87e4395c1a54a5d75a804c86b9c164736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d \ No newline at end of file +60806040525f60015534801562000014575f80fd5b50620000396040518060600160405280603f8152602001620033ee603f9139620000d4565b506200005e6040518060800160405280604f8152602001620034ca604f9139620000d4565b50620000836040518060800160405280605a815260200162003470605a9139620000d4565b50620000a86040518060800160405280605c815260200162003392605c9139620000d4565b50620000cd6040518060800160405280604381526020016200342d60439139620000d4565b506200020d565b6001545f81815260026020908152604080832043905551919291620000fc9185910162000196565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000154908790620001b3565b60405180910390a362000169816001620001e7565b60015592915050565b5f5b838110156200018e57818101518382015260200162000174565b50505f910152565b5f8251620001a981846020870162000172565b9190910192915050565b602081525f8251806020840152620001d381604085016020870162000172565b601f01601f19169190910160400192915050565b808201808211156200020757634e487b7160e01b5f52601160045260245ffd5b92915050565b613177806200021b5f395ff3fe60806040526004361061023e575f3560e01c806377f325df11610134578063ab5a4e35116100b3578063d44e293c11610078578063d44e293c1461088e578063e12891d4146108ad578063e83bfb58146108cc578063ebbdd2b0146108fa578063f6a94ecb14610919578063fe92049d14610938575f80fd5b8063ab5a4e35146107de578063acae8f4e146107fd578063bc52565214610838578063c081d8a314610863578063d09cc57e146107bf575f80fd5b8063924532fb116100f9578063924532fb1461061157806395addb90146106425780639e63fa6a146107345780639f1025c614610784578063a462fb7b146107bf575f80fd5b806377f325df146105635780637f8d429e1461057657806382ffa9f71461059557806383bf4609146105c35780638d552d46146105e2575f80fd5b8063484b93c4116101c0578063590158a711610185578063590158a71461047e57806359245ff3146104e75780636fa42742146104fa57806370a0823114610525578063762c38fd14610550575f80fd5b8063484b93c4146103c8578063484c0714146103db5780634df6ca2a146104095780634e60f8831461042857806351577ea914610453575f80fd5b80632417395c116102065780632417395c146102ea5780632518904c1461031857806326d6c97b1461036757806328828b1e146103955780633ccfd60b146103b4575f80fd5b806306c3b67a146102425780631101a0fd14610276578063111ec138146102975780631126a9dc146102aa57806312a203c3146102cb575b5f80fd5b34801561024d575f80fd5b5061026161025c36600461283d565b610957565b60405190151581526020015b60405180910390f35b348015610281575f80fd5b50610295610290366004612997565b61096b565b005b6102956102a5366004612a45565b610c10565b6102bd6102b8366004612aff565b610e4f565b60405190815260200161026d565b3480156102d6575f80fd5b506102bd6102e5366004612b8c565b6110fa565b3480156102f5575f80fd5b506102bd61030436600461283d565b5f9081526004602052604090206003015490565b348015610323575f80fd5b5061034f61033236600461283d565b5f908152600460205260409020600101546001600160a01b031690565b6040516001600160a01b03909116815260200161026d565b348015610372575f80fd5b506102bd61038136600461283d565b5f9081526004602052604090206006015490565b3480156103a0575f80fd5b506102956103af366004612bd6565b61121c565b3480156103bf575f80fd5b506102956114cc565b6102bd6103d6366004612cc0565b611543565b3480156103e6575f80fd5b506102bd6103f536600461283d565b5f9081526004602052604090206007015490565b348015610414575f80fd5b5061029561042336600461283d565b61163f565b348015610433575f80fd5b506102bd61044236600461283d565b60036020525f908152604090205481565b34801561045e575f80fd5b506102bd61046d36600461283d565b5f9081526004602052604090205490565b348015610489575f80fd5b506104c261049836600461283d565b60056020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b03909416845260208401929092529082015260600161026d565b6102956104f536600461283d565b61168c565b348015610505575f80fd5b506102bd610514366004612d45565b60066020525f908152604090205481565b348015610530575f80fd5b506102bd61053f366004612d45565b5f6020819052908152604090205481565b6102bd61055e366004612d5e565b611826565b610295610571366004612dd9565b611921565b348015610581575f80fd5b5061026161059036600461283d565b611b38565b3480156105a0575f80fd5b506102bd6105af36600461283d565b5f9081526004602052604090206005015490565b3480156105ce575f80fd5b506102bd6105dd366004612e02565b611b93565b3480156105ed575f80fd5b506102bd6105fc36600461283d565b5f908152600460208190526040909120015490565b34801561061c575f80fd5b5061026161062b36600461283d565b5f9081526004602052604090206002015460ff1690565b34801561064d575f80fd5b506106cd61065c36600461283d565b600460208190525f91825260409091208054600182015460028301546003840154948401546005850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff1694929391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e08501526101008401919091526101208301526101408201526101600161026d565b34801561073f575f80fd5b5061076f61074e36600461283d565b5f90815260046020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff909116815260200161026d565b34801561078f575f80fd5b5061076f61079e36600461283d565b5f90815260046020526040902060010154600160c01b900463ffffffff1690565b3480156107ca575f80fd5b506102bd6107d936600461283d565b611c2d565b3480156107e9575f80fd5b506102bd6107f836600461283d565b611c6c565b348015610808575f80fd5b5061076f61081736600461283d565b5f90815260046020526040902060010154600160e01b900463ffffffff1690565b348015610843575f80fd5b506102bd61085236600461283d565b60026020525f908152604090205481565b34801561086e575f80fd5b506102bd61087d36600461283d565b60076020525f908152604090205481565b348015610899575f80fd5b506102956108a8366004612e3b565b611ce0565b3480156108b8575f80fd5b506102616108c7366004612997565b611d59565b3480156108d7575f80fd5b506102616108e636600461283d565b60086020525f908152604090205460ff1681565b348015610905575f80fd5b5061029561091436600461283d565b611ef6565b348015610924575f80fd5b50610295610933366004612e8f565b611ff8565b348015610943575f80fd5b50610295610952366004612ec1565b61221f565b5f60011961096483611c2d565b1492915050565b8461097581611b38565b61099257604051636030e5f560e11b815260040160405180910390fd5b84515f036109b3576040516312fdb46960e31b815260040160405180910390fd5b5f86815260056020818152604080842080546001909101546004938490529185209384015493909201546001600160a01b039092169390929091825b8a51811015610b7257610a69838c8381518110610a0e57610a0e612ef3565b60200260200101518a8481518110610a2857610a28612ef3565b60200260200101518c8581518110610a4257610a42612ef3565b60200260200101518e8681518110610a5c57610a5c612ef3565b602002602001015161233e565b610a86576040516303a479f160e11b815260040160405180910390fd5b610a908585612f1b565b9350610aec8c8386898e8681518110610aab57610aab612ef3565b60200260200101518e8781518110610ac557610ac5612ef3565b60200260200101518e8881518110610adf57610adf612ef3565b602002602001015161237b565b8097508195505050888181518110610b0657610b06612ef3565b6020026020010151945060045f8d81526020019081526020015f20600601548514610b4357610b36602886612f2e565b610b409086612f4d565b94505b8a8181518110610b5557610b55612ef3565b602002602001015192508080610b6a90612f60565b9150506109ef565b8215610bb457610b838c8786612444565b5f8c815260056020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610bef565b610bc88c87610bc38888612f1b565b612444565b5f8c815260056020526040812080546001600160a01b031916815560018101829055600201555b50505f998a5260046020526040909920600501989098555050505050505050565b5f848152600460205260408120600101548591600160c01b90910463ffffffff169003610c505760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615610c82576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590610cbb57504263ffffffff168163ffffffff1611155b15610cd95760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590610d1157504263ffffffff168163ffffffff16115b15610d2f5760405163079994c560e31b815260040160405180910390fd5b8634805f03610d5157604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003610da0575f83815260046020526040902060070154821015610d9b5760405163291784d560e01b815260040160405180910390fd5b610dcb565b610dab816002612f78565b821015610dcb576040516328eecafb60e21b815260040160405180910390fd5b89888015610e04575f82815260046020526040902060060154811015610e045760405163f6631e6760e01b815260040160405180910390fd5b6001600160a01b038916610e2b57604051630ca6549f60e11b815260040160405180910390fd5b610e378c8c8b346124bc565b610e418c8c61258d565b505050505050505050505050565b5f610e5982610957565b610e7657604051631f45e42760e11b815260040160405180910390fd5b5f89868a604051602001610e8c93929190612fb1565b60408051601f1981840301815291815281516020928301205f86815260049093529120549091508114610ed2576040516349923ed160e11b815260040160405180910390fd5b5f838152600460205260409020600101546001600160a01b03898116911614610f0e5760405163611876b160e01b815260040160405180910390fd5b5f8381526004602052604090206001015463ffffffff888116600160c01b9092041614610f4e57604051635f4c19f760e01b815260040160405180910390fd5b5f8381526004602052604090206001015463ffffffff878116600160a01b9092041614610f8e57604051630a5ab81d60e41b815260040160405180910390fd5b5f838152600460205260409020600701548414610fbe57604051633246892f60e01b815260040160405180910390fd5b5f8381526008602052604090205460ff1615610fed5760405163331c2c3f60e11b815260040160405180910390fd5b5f838152600760205260409020548381156110405761100b82610957565b61102857604051634ec30c8560e01b815260040160405180910390fd5b505f818152600860205260409020805460ff19169055805b5f6110508d8d8d8d8d8d8d611543565b5f87815260076020908152604080832084905583835260088252808320805460ff191660011790556004909152808220600390810154868452919092209091015491925061109d91612f1b565b5f828152600460205260408082206003908101939093558482528082209092018190559051879183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39c9b505050505050505050505050565b5f8561110581611b38565b61112257604051636030e5f560e11b815260040160405180910390fd5b5f87815260046020526040902054861461114f57604051630763e45d60e41b815260040160405180910390fd5b5f878152600460205260409020600101546001600160a01b0386811691161461118b5760405163f089a18560e01b815260040160405180910390fd5b5f8781526004602052604090206001015463ffffffff600160c01b909104811690851611156111cd57604051633f61762b60e01b815260040160405180910390fd5b5f878152600460205260409020600601548311156111fe57604051634d497e9360e11b815260040160405180910390fd5b5f878152600460208190526040909120015491505095945050505050565b5f805b87518210156114ba575f88838151811061123b5761123b612ef3565b602002602001015190505f88848151811061125857611258612ef3565b602002602001015190505f816001600160401b0381111561127b5761127b612854565b6040519080825280602002602001820160405280156112a4578160200160208202803683370190505b5090505f826001600160401b038111156112c0576112c0612854565b6040519080825280602002602001820160405280156112e9578160200160208202803683370190505b5090505f836001600160401b0381111561130557611305612854565b60405190808252806020026020018201604052801561132e578160200160208202803683370190505b5090505f846001600160401b0381111561134a5761134a612854565b604051908082528060200260200182016040528015611373578160200160208202803683370190505b5090505f5b85811015611493578c888151811061139257611392612ef3565b60200260200101518582815181106113ac576113ac612ef3565b6020026020010181815250508b88815181106113ca576113ca612ef3565b60200260200101518482815181106113e4576113e4612ef3565b60200260200101906001600160a01b031690816001600160a01b0316815250508a888151811061141657611416612ef3565b602002602001015183828151811061143057611430612ef3565b60200260200101818152505089888151811061144e5761144e612ef3565b602002602001015182828151811061146857611468612ef3565b60209081029190910101528761147d81612f60565b985050808061148b90612f60565b915050611378565b6114a0878686868661096b565b5050505050505081806114b290612f60565b92505061121f565b6114c26114cc565b5050505050505050565b335f81815260208190526040808220805490839055905190929183156108fc02918491818181858888f1935050505015801561150a573d5f803e3d5ffd5b5060405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b5f8781526002602052604081205481036115705760405163bbbf712b60e01b815260040160405180910390fd5b5f88858960405160200161158693929190612fb1565b6040516020818303038152906040528051906020012090505f8188888630338a6040516020016115bc9796959493929190612fe9565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d4260405161161b979695949392919061306d565b60405180910390a461163281838a8a8a89346125f5565b9998505050505050505050565b335f81815260066020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f818152600460205260408120600101548291600160c01b90910463ffffffff1690036116cc5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff16156116fe576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff16801580159061173757504263ffffffff168163ffffffff1611155b156117555760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff16801580159061178d57504263ffffffff168163ffffffff16115b156117ab5760405163079994c560e31b815260040160405180910390fd5b5f848152600460205260409020600301546117c7903490612f1b565b5f858152600460205260409081902060030182905551339186917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab669161181891349190918252602082015260400190565b60405180910390a350505050565b5f8681526002602052604081205481036118535760405163bbbf712b60e01b815260040160405180910390fd5b5f87848860405160200161186993929190612fb1565b6040516020818303038152906040528051906020012090505f8187875f30338960405160200161189f9796959493929190612fe9565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c426040516118fe979695949392919061306d565b60405180910390a461191581838989895f346125f5565b98975050505050505050565b5f838152600460205260408120600101548491600160c01b90910463ffffffff1690036119615760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff1615611993576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff1680158015906119cc57504263ffffffff168163ffffffff1611155b156119ea5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611a2257504263ffffffff168163ffffffff16115b15611a405760405163079994c560e31b815260040160405180910390fd5b8534805f03611a6257604051635de374cf60e11b815260040160405180910390fd5b5f8281526004602052604081206006015490819003611ab1575f83815260046020526040902060070154821015611aac5760405163291784d560e01b815260040160405180910390fd5b611adc565b611abc816002612f78565b821015611adc576040516328eecafb60e21b815260040160405180910390fd5b88878015611b15575f82815260046020526040902060060154811015611b155760405163f6631e6760e01b815260040160405180910390fd5b611b218b8b33346124bc565b611b2b8b8b61258d565b5050505050505050505050565b5f8181526004602052604081206001810154600290910154600160e01b90910463ffffffff169060ff16158015611b74575063ffffffff811615155b8015611b8c57504263ffffffff168163ffffffff1611155b9392505050565b6001545f81815260026020908152604080832043905551919291611bb9918591016130bc565b60408051601f1981840301815282825280516020918201205f858152600390925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e490611c0f9087906130d7565b60405180910390a3611c22816001612f1b565b60015590505b919050565b5f81611c3881611b38565b611c5557604051636030e5f560e11b815260040160405180910390fd5b50505f908152600460208190526040909120015490565b5f80611c7783611c2d565b905060028101611cda575f8381526007602052604090205480611cad5760405163079442c960e01b815260040160405180910390fd5b611cb681611c2d565b915060028201611cd85760405162a5c78160e11b815260040160405180910390fd5b505b92915050565b5f8681526004602052604090206005810154600690910154611d079190859085908561233e565b611d24576040516303a479f160e11b815260040160405180910390fd5b5f868152600460208190526040822001548614611d415784611d43565b815b9050611d5087878361221f565b50505050505050565b5f858152600460205260408120600101548690600160c01b900463ffffffff168203611d985760405163a42db76b60e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff168015801590611dd157504263ffffffff168163ffffffff1611155b15611def5760405163372900d560e21b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff168015801590611e2757504263ffffffff168163ffffffff16115b15611e455760405163079994c560e31b815260040160405180910390fd5b5f898152600460205260409020600501548851885181141580611e69575080885114155b80611e75575080875114155b15611e84575f95505050611eea565b5f5b81811015611ee257611ea4838c8381518110610a0e57610a0e612ef3565b611eb3575f9650505050611eea565b8a8181518110611ec557611ec5612ef3565b602002602001015192508080611eda90612f60565b915050611e86565b506001955050505b50505095945050505050565b5f8181526004602052604090206001015481906001600160a01b03163314611f3157604051634361661f60e11b815260040160405180910390fd5b5f82815260046020526040902060020154829060ff16611f645760405163f476ed1160e01b815260040160405180910390fd5b5f83815260046020526040902060028101805460ff1916905560010154611f9890600160c01b900463ffffffff16426130e9565b5f84815260046020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526004602052604090206001015483906001600160a01b0316331461203357604051634361661f60e11b815260040160405180910390fd5b5f848152600460205260408120600101548591600160c01b90910463ffffffff1690036120735760405163a42db76b60e01b815260040160405180910390fd5b5f8181526004602052604090206002015460ff16156120a5576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260046020526040902060010154600160e01b900463ffffffff1680158015906120de57504263ffffffff168163ffffffff1611155b156120fc5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260046020526040902060010154600160a01b900463ffffffff16801580159061213457504263ffffffff168163ffffffff16115b156121525760405163079994c560e31b815260040160405180910390fd5b8685801561218b575f8281526004602052604090206006015481101561218b5760405163f6631e6760e01b815260040160405180910390fd5b5f89815260046020526040902060010154600160e01b900463ffffffff166121c6576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260046020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526004602052604090206001015483906001600160a01b0316331461225a57604051634361661f60e11b815260040160405180910390fd5b5f84815260046020526040902060020154849060ff1661228d5760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b0383166122b4576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600460205260408120600201805460ff19169055612307908690869086906124bc565b5050505f9182526004602081905260409092209182015560010180546001600160e01b0316600160e01b4263ffffffff1602179055565b5f848484845f604051602001612358959493929190613106565b604051602081830303815290604052805190602001208614905095945050505050565b5f80878303612435576001600160a01b0386166123f2578495506001195f1b88141580156123b857505f8981526004602052604090206003015415155b156123ed575f898152600460205260409020600301546123db908a908890612444565b5f898152600460205260408120600301555b612435565b856001600160a01b0316856001600160a01b031614612435575f8488101561241a578761241c565b845b905061242d8a88610bc3848c612f4d565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f90815260208190526040902054612467908290612f1b565b6001600160a01b0383165f81815260208181526040918290209390935551838152909185917f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6910160405180910390a3505050565b5f8481526004602090815260408083206005015490516124e492879186918891879101613106565b6040516020818303038152906040528051906020012090505f821115612518575f8581526004602052604090206006018290555b5f8581526004602090815260408083206005018490558051878152918201849052810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a35050505050565b5f828152600460208190526040909120908101829055600101546125be90600160c01b900463ffffffff16426130e9565b5f92835260046020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600460205260409020600101548790600160c01b900463ffffffff1615612636576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f0361265c5760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff161061268657604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906126a85750336001600160a01b03881614155b15612730576001600160a01b0387165f90815260066020526040902054808210156126e65760405163d72564c760e01b815260040160405180910390fd5b6126f08183612f4d565b6001600160a01b0389165f90815260208190526040902054909250612716908290612f1b565b6001600160a01b0389165f90815260208190526040902055505b5f898152600460205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156127dc575f89815260046020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b8315612832575f89815260046020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906128299087815260200190565b60405180910390a25b505050505050505050565b5f6020828403121561284d575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561289057612890612854565b604052919050565b5f6001600160401b038211156128b0576128b0612854565b5060051b60200190565b5f82601f8301126128c9575f80fd5b813560206128de6128d983612898565b612868565b82815260059290921b840181019181810190868411156128fc575f80fd5b8286015b848110156129175780358352918301918301612900565b509695505050505050565b80356001600160a01b0381168114611c28575f80fd5b5f82601f830112612947575f80fd5b813560206129576128d983612898565b82815260059290921b84018101918181019086841115612975575f80fd5b8286015b848110156129175761298a81612922565b8352918301918301612979565b5f805f805f60a086880312156129ab575f80fd5b8535945060208601356001600160401b03808211156129c8575f80fd5b6129d489838a016128ba565b955060408801359150808211156129e9575f80fd5b6129f589838a01612938565b94506060880135915080821115612a0a575f80fd5b612a1689838a016128ba565b93506080880135915080821115612a2b575f80fd5b50612a38888289016128ba565b9150509295509295909350565b5f805f8060808587031215612a58575f80fd5b843593506020850135925060408501359150612a7660608601612922565b905092959194509250565b5f82601f830112612a90575f80fd5b81356001600160401b03811115612aa957612aa9612854565b612abc601f8201601f1916602001612868565b818152846020838601011115612ad0575f80fd5b816020850160208301375f918101602001919091529392505050565b803563ffffffff81168114611c28575f80fd5b5f805f805f805f80610100898b031215612b17575f80fd5b8835975060208901356001600160401b03811115612b33575f80fd5b612b3f8b828c01612a81565b975050612b4e60408a01612922565b9550612b5c60608a01612aec565b9450612b6a60808a01612aec565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f60a08688031215612ba0575f80fd5b8535945060208601359350612bb760408701612922565b9250612bc560608701612aec565b949793965091946080013592915050565b5f805f805f8060c08789031215612beb575f80fd5b86356001600160401b0380821115612c01575f80fd5b612c0d8a838b016128ba565b97506020890135915080821115612c22575f80fd5b612c2e8a838b016128ba565b96506040890135915080821115612c43575f80fd5b612c4f8a838b016128ba565b95506060890135915080821115612c64575f80fd5b612c708a838b01612938565b94506080890135915080821115612c85575f80fd5b612c918a838b016128ba565b935060a0890135915080821115612ca6575f80fd5b50612cb389828a016128ba565b9150509295509295509295565b5f805f805f805f60e0888a031215612cd6575f80fd5b8735965060208801356001600160401b03811115612cf2575f80fd5b612cfe8a828b01612a81565b965050612d0d60408901612922565b9450612d1b60608901612aec565b9350612d2960808901612aec565b925060a0880135915060c0880135905092959891949750929550565b5f60208284031215612d55575f80fd5b611b8c82612922565b5f805f805f8060c08789031215612d73575f80fd5b8635955060208701356001600160401b03811115612d8f575f80fd5b612d9b89828a01612a81565b955050612daa60408801612922565b9350612db860608801612aec565b9250612dc660808801612aec565b915060a087013590509295509295509295565b5f805f60608486031215612deb575f80fd5b505081359360208301359350604090920135919050565b5f60208284031215612e12575f80fd5b81356001600160401b03811115612e27575f80fd5b612e3384828501612a81565b949350505050565b5f805f805f8060c08789031215612e50575f80fd5b8635955060208701359450612e6760408801612922565b93506060870135925060808701359150612e8360a08801612922565b90509295509295509295565b5f805f60608486031215612ea1575f80fd5b83359250612eb160208501612922565b9150604084013590509250925092565b5f805f60608486031215612ed3575f80fd5b8335925060208401359150612eea60408501612922565b90509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115611cda57611cda612f07565b5f82612f4857634e487b7160e01b5f52601260045260245ffd5b500490565b81810381811115611cda57611cda612f07565b5f60018201612f7157612f71612f07565b5060010190565b8082028115828204841417611cda57611cda612f07565b5f5b83811015612fa9578181015183820152602001612f91565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f8251612fda816024850160208701612f8f565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f8151808452613059816020860160208601612f8f565b601f01601f19169290920160200192915050565b87815260e060208201525f61308560e0830189613042565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f82516130cd818460208701612f8f565b9190910192915050565b602081525f611b8c6020830184613042565b63ffffffff818116838216019080821115611cd857611cd8612f07565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220dd428958b48a7b385a98886eeddda3407adc2d10712954c07357f322ef133f6f64736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d \ No newline at end of file diff --git a/packages/contracts/bytecode/RealityETH_ERC20-4.0.bin b/packages/contracts/bytecode/RealityETH_ERC20-4.0.bin index 1aa8b66e..b6fd4509 100644 --- a/packages/contracts/bytecode/RealityETH_ERC20-4.0.bin +++ b/packages/contracts/bytecode/RealityETH_ERC20-4.0.bin @@ -1 +1 @@ -60806040525f60025534801562000014575f80fd5b50620000396040518060600160405280603f8152602001620036ff603f9139620000d4565b506200005e6040518060800160405280604f8152602001620037db604f9139620000d4565b50620000836040518060800160405280605a815260200162003781605a9139620000d4565b50620000a86040518060800160405280605c8152602001620036a3605c9139620000d4565b50620000cd6040518060800160405280604381526020016200373e60439139620000d4565b506200020d565b6002545f81815260036020908152604080832043905551919291620000fc9185910162000196565b60408051601f1981840301815282825280516020918201205f858152600490925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000154908790620001b3565b60405180910390a362000169816001620001e7565b60025592915050565b5f5b838110156200018e57818101518382015260200162000174565b50505f910152565b5f8251620001a981846020870162000172565b9190910192915050565b602081525f8251806020840152620001d381604085016020870162000172565b601f01601f19169190910160400192915050565b808201808211156200020757634e487b7160e01b5f52601160045260245ffd5b92915050565b613488806200021b5f395ff3fe608060405234801561000f575f80fd5b5060043610610276575f3560e01c806383bf460911610156578063bc525652116100ca578063e12891d411610084578063e12891d4146107c1578063e83bfb58146107d4578063ebbdd2b0146107f6578063f6a94ecb14610809578063fc0c546a1461081c578063fe92049d1461082e575f80fd5b8063bc5256521461074a578063bf53b18814610769578063c081d8a31461077c578063d09cc57e146106e2578063d44e293c1461079b578063d4876b9f146107ae575f80fd5b80639f1025c61161011b5780639f1025c6146106a0578063a1130d04146106cf578063a462fb7b146106e2578063ab5a4e35146106f5578063acae8f4e14610708578063b8eaa98014610737575f80fd5b806383bf46091461051d5780638d552d4614610530578063924532fb1461055257806395addb90146105775780639e63fa6a1461065c575f80fd5b8063484c0714116101ed578063590158a7116101b2578063590158a7146104395780636fa427421461049657806370a08231146104b5578063762c38fd146104d45780637f8d429e146104e757806382ffa9f7146104fa575f80fd5b8063484c0714146103b35780634df6ca2a146103d55780634e60f883146103e857806351577ea91461040757806352debac314610426575f80fd5b80632417395c1161023e5780632417395c146102fe5780632518904c1461032057806326d6c97b1461036357806328828b1e146103855780632f998a6f146103985780633ccfd60b146103ab575f80fd5b806306c3b67a1461027a5780631101a0fd146102a2578063128b7a47146102b757806312a203c3146102ca578063144fa6d7146102eb575b5f80fd5b61028d610288366004612a06565b610841565b60405190151581526020015b60405180910390f35b6102b56102b0366004612b63565b610855565b005b6102b56102c5366004612c11565b610afc565b6102dd6102d8366004612c44565b610ca0565b604051908152602001610299565b6102b56102f9366004612c90565b610dbe565b6102dd61030c366004612a06565b5f9081526005602052604090206003015490565b61034b61032e366004612a06565b5f908152600560205260409020600101546001600160a01b031690565b6040516001600160a01b039091168152602001610299565b6102dd610371366004612a06565b5f9081526005602052604090206006015490565b6102b5610393366004612cab565b610e08565b6102b56103a6366004612d95565b6110b8565b6102b56112d9565b6102dd6103c1366004612a06565b5f9081526005602052604090206007015490565b6102b56103e3366004612a06565b6113a2565b6102dd6103f6366004612a06565b60046020525f908152604090205481565b6102dd610415366004612a06565b5f9081526005602052604090205490565b6102dd610434366004612e2f565b6113ef565b610471610447366004612a06565b60066020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b039094168452602084019290925290820152606001610299565b6102dd6104a4366004612c90565b60076020525f908152604090205481565b6102dd6104c3366004612c90565b60016020525f908152604090205481565b6102dd6104e2366004612ebe565b6114f6565b61028d6104f5366004612a06565b6115f1565b6102dd610508366004612a06565b5f908152600560208190526040909120015490565b6102dd61052b366004612f3b565b61164c565b6102dd61053e366004612a06565b5f9081526005602052604090206004015490565b61028d610560366004612a06565b5f9081526005602052604090206002015460ff1690565b6105f5610585366004612a06565b600560208190525f91825260409091208054600182015460028301546003840154600485015495850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff16949391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e085015261010084019190915261012083015261014082015261016001610299565b61068b61066a366004612a06565b5f90815260056020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff9091168152602001610299565b61068b6106ae366004612a06565b5f90815260056020526040902060010154600160c01b900463ffffffff1690565b6102dd6106dd366004612f74565b6116e6565b6102dd6106f0366004612a06565b611701565b6102dd610703366004612a06565b61173f565b61068b610716366004612a06565b5f90815260056020526040902060010154600160e01b900463ffffffff1690565b6102b5610745366004612fcd565b6117b3565b6102dd610758366004612a06565b60036020525f908152604090205481565b6102dd610777366004613001565b6119fc565b6102dd61078a366004612a06565b60086020525f908152604090205481565b6102b56107a9366004613099565b611ca9565b6102dd6107bc3660046130f3565b611d24565b61028d6107cf366004612b63565b611e2a565b61028d6107e2366004612a06565b60096020525f908152604090205460ff1681565b6102b5610804366004612a06565b611fc8565b6102b561081736600461317a565b6120ca565b5f5461034b906001600160a01b031681565b6102b561083c3660046131af565b6122f1565b5f60011961084e83611701565b1492915050565b8461085f816115f1565b61087c57604051636030e5f560e11b815260040160405180910390fd5b84515f0361089d576040516312fdb46960e31b815260040160405180910390fd5b5f8681526006602090815260408083208054600190910154600593849052918420928301546004909301546001600160a01b0390911693919290825b8a51811015610a5c57610953838c83815181106108f8576108f86131e5565b60200260200101518a8481518110610912576109126131e5565b60200260200101518c858151811061092c5761092c6131e5565b60200260200101518e8681518110610946576109466131e5565b6020026020010151612412565b610970576040516303a479f160e11b815260040160405180910390fd5b61097a858561320d565b93506109d68c8386898e8681518110610995576109956131e5565b60200260200101518e87815181106109af576109af6131e5565b60200260200101518e88815181106109c9576109c96131e5565b602002602001015161244f565b80975081955050508881815181106109f0576109f06131e5565b6020026020010151945060055f8d81526020019081526020015f20600601548514610a2d57610a20602886613220565b610a2a908661323f565b94505b8a8181518110610a3f57610a3f6131e5565b602002602001015192508080610a5490613252565b9150506108d9565b8215610a9e57610a6d8c8786612518565b5f8c815260066020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610ad9565b610ab28c87610aad888861320d565b612518565b5f8c815260066020526040812080546001600160a01b031916815560018101829055600201555b50505f998a52600560208190526040909a20909901989098555050505050505050565b5f828152600560205260408120600101548391600160c01b90910463ffffffff169003610b3c5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff1615610b6e576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff168015801590610ba757504263ffffffff168163ffffffff1611155b15610bc55760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff168015801590610bfd57504263ffffffff168163ffffffff16115b15610c1b5760405163079994c560e31b815260040160405180910390fd5b610c2484612598565b5f85815260056020526040902060030154610c4090859061320d565b5f868152600560205260409081902060030182905551339187917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6691610c9191899190918252602082015260400190565b60405180910390a35050505050565b5f85610cab816115f1565b610cc857604051636030e5f560e11b815260040160405180910390fd5b5f878152600560205260409020548614610cf557604051630763e45d60e41b815260040160405180910390fd5b5f878152600560205260409020600101546001600160a01b03868116911614610d315760405163f089a18560e01b815260040160405180910390fd5b5f8781526005602052604090206001015463ffffffff600160c01b90910481169085161115610d7357604051633f61762b60e01b815260040160405180910390fd5b5f87815260056020526040902060060154831115610da457604051634d497e9360e11b815260040160405180910390fd5b5050505f9384525050600560205250604090206004015490565b5f546001600160a01b031615610de757604051635c4e8df160e11b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f805b87518210156110a6575f888381518110610e2757610e276131e5565b602002602001015190505f888481518110610e4457610e446131e5565b602002602001015190505f816001600160401b03811115610e6757610e67612a1d565b604051908082528060200260200182016040528015610e90578160200160208202803683370190505b5090505f826001600160401b03811115610eac57610eac612a1d565b604051908082528060200260200182016040528015610ed5578160200160208202803683370190505b5090505f836001600160401b03811115610ef157610ef1612a1d565b604051908082528060200260200182016040528015610f1a578160200160208202803683370190505b5090505f846001600160401b03811115610f3657610f36612a1d565b604051908082528060200260200182016040528015610f5f578160200160208202803683370190505b5090505f5b8581101561107f578c8881518110610f7e57610f7e6131e5565b6020026020010151858281518110610f9857610f986131e5565b6020026020010181815250508b8881518110610fb657610fb66131e5565b6020026020010151848281518110610fd057610fd06131e5565b60200260200101906001600160a01b031690816001600160a01b0316815250508a8881518110611002576110026131e5565b602002602001015183828151811061101c5761101c6131e5565b60200260200101818152505089888151811061103a5761103a6131e5565b6020026020010151828281518110611054576110546131e5565b60209081029190910101528761106981613252565b985050808061107790613252565b915050610f64565b61108c8786868686610855565b50505050505050818061109e90613252565b925050610e0b565b6110ae6112d9565b5050505050505050565b5f848152600560205260408120600101548591600160c01b90910463ffffffff1690036110f85760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff161561112a576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff16801580159061116357504263ffffffff168163ffffffff1611155b156111815760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff1680158015906111b957504263ffffffff168163ffffffff16115b156111d75760405163079994c560e31b815260040160405180910390fd5b8684805f036111f957604051635de374cf60e11b815260040160405180910390fd5b5f8281526005602052604081206006015490819003611248575f838152600560205260409020600701548210156112435760405163291784d560e01b815260040160405180910390fd5b611273565b61125381600261326a565b821015611273576040516328eecafb60e21b815260040160405180910390fd5b898880156112ac575f828152600560205260409020600601548110156112ac5760405163f6631e6760e01b815260040160405180910390fd5b6112b589612598565b6112c18c8c338c61268f565b6112cb8c8c612758565b505050505050505050505050565b335f818152600160205260408082208054908390559154905163a9059cbb60e01b815260048101939093526024830182905290916001600160a01b039091169063a9059cbb906044016020604051808303815f875af115801561133e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113629190613281565b61136a575f80fd5b60405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b335f81815260076020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f6113f982612598565b5f8981526003602052604081205490036114265760405163bbbf712b60e01b815260040160405180910390fd5b5f89868a60405160200161143c939291906132c2565b6040516020818303038152906040528051906020012090505f8189898730338b60405160200161147297969594939291906132fa565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8e8e8e8e8e8e426040516114d1979695949392919061337e565b60405180910390a46114e881838b8b8b8a8a6127be565b9a9950505050505050505050565b5f8681526003602052604081205481036115235760405163bbbf712b60e01b815260040160405180910390fd5b5f878488604051602001611539939291906132c2565b6040516020818303038152906040528051906020012090505f8187875f30338960405160200161156f97969594939291906132fa565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c426040516115ce979695949392919061337e565b60405180910390a46115e581838989895f806127be565b98975050505050505050565b5f8181526005602052604081206001810154600290910154600160e01b90910463ffffffff169060ff1615801561162d575063ffffffff811615155b801561164557504263ffffffff168163ffffffff1611155b9392505050565b6002545f81815260036020908152604080832043905551919291611672918591016133cd565b60408051601f1981840301815282825280516020918201205f858152600490925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4906116c89087906133e8565b60405180910390a36116db81600161320d565b60025590505b919050565b5f806116f18861164c565b90506115e58188888888886114f6565b5f8161170c816115f1565b61172957604051636030e5f560e11b815260040160405180910390fd5b50505f9081526005602052604090206004015490565b5f8061174a83611701565b9050600281016117ad575f83815260086020526040902054806117805760405163079442c960e01b815260040160405180910390fd5b61178981611701565b9150600282016117ab5760405162a5c78160e11b815260040160405180910390fd5b505b92915050565b5f858152600560205260408120600101548691600160c01b90910463ffffffff1690036117f35760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff1615611825576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff16801580159061185e57504263ffffffff168163ffffffff1611155b1561187c5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff1680158015906118b457504263ffffffff168163ffffffff16115b156118d25760405163079994c560e31b815260040160405180910390fd5b8784805f036118f457604051635de374cf60e11b815260040160405180910390fd5b5f8281526005602052604081206006015490819003611943575f8381526005602052604090206007015482101561193e5760405163291784d560e01b815260040160405180910390fd5b61196e565b61194e81600261326a565b82101561196e576040516328eecafb60e21b815260040160405180910390fd5b8a8980156119a7575f828152600560205260409020600601548110156119a75760405163f6631e6760e01b815260040160405180910390fd5b6119b089612598565b6001600160a01b038a166119d757604051630ca6549f60e11b815260040160405180910390fd5b6119e38d8d8c8c61268f565b6119ed8d8d612758565b50505050505050505050505050565b5f611a0683610841565b611a2357604051631f45e42760e11b815260040160405180910390fd5b5f8a878b604051602001611a39939291906132c2565b60408051601f1981840301815291815281516020928301205f87815260059093529120549091508114611a7f576040516349923ed160e11b815260040160405180910390fd5b5f848152600560205260409020600101546001600160a01b038a8116911614611abb5760405163611876b160e01b815260040160405180910390fd5b5f8481526005602052604090206001015463ffffffff898116600160c01b9092041614611afb57604051635f4c19f760e01b815260040160405180910390fd5b5f8481526005602052604090206001015463ffffffff888116600160a01b9092041614611b3b57604051630a5ab81d60e41b815260040160405180910390fd5b5f848152600560205260409020600701548514611b6b57604051633246892f60e01b815260040160405180910390fd5b5f8481526009602052604090205460ff1615611b9a5760405163331c2c3f60e11b815260040160405180910390fd5b5f84815260086020526040902054848115611bed57611bb882610841565b611bd557604051634ec30c8560e01b815260040160405180910390fd5b505f818152600960205260409020805460ff19169055805b5f611bfe8e8e8e8e8e8e8e8d6113ef565b5f88815260086020908152604080832084905583835260098252808320805460ff1916600117905560059091528082206003908101548684529190922090910154919250611c4b9161320d565b5f828152600560205260408082206003908101939093558482528082209092018190559051889183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39d9c50505050505050505050505050565b5f86815260056020819052604090912090810154600690910154611cd291908590859085612412565b611cef576040516303a479f160e11b815260040160405180910390fd5b5f868152600560205260408120600401548614611d0c5784611d0e565b815b9050611d1b8787836122f1565b50505050505050565b5f611d2e82612598565b5f888152600360205260408120549003611d5b5760405163bbbf712b60e01b815260040160405180910390fd5b5f888589604051602001611d71939291906132c2565b6040516020818303038152906040528051906020012090505f8188885f30338a604051602001611da797969594939291906132fa565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051611e06979695949392919061337e565b60405180910390a4611e1d81838a8a8a5f8a6127be565b9998505050505050505050565b5f858152600560205260408120600101548690600160c01b900463ffffffff168203611e695760405163a42db76b60e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff168015801590611ea257504263ffffffff168163ffffffff1611155b15611ec05760405163372900d560e21b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff168015801590611ef857504263ffffffff168163ffffffff16115b15611f165760405163079994c560e31b815260040160405180910390fd5b5f89815260056020819052604090912001548851885181141580611f3b575080885114155b80611f47575080875114155b15611f56575f95505050611fbc565b5f5b81811015611fb457611f76838c83815181106108f8576108f86131e5565b611f85575f9650505050611fbc565b8a8181518110611f9757611f976131e5565b602002602001015192508080611fac90613252565b915050611f58565b506001955050505b50505095945050505050565b5f8181526005602052604090206001015481906001600160a01b0316331461200357604051634361661f60e11b815260040160405180910390fd5b5f82815260056020526040902060020154829060ff166120365760405163f476ed1160e01b815260040160405180910390fd5b5f83815260056020526040902060028101805460ff191690556001015461206a90600160c01b900463ffffffff16426133fa565b5f84815260056020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526005602052604090206001015483906001600160a01b0316331461210557604051634361661f60e11b815260040160405180910390fd5b5f848152600560205260408120600101548591600160c01b90910463ffffffff1690036121455760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff1615612177576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff1680158015906121b057504263ffffffff168163ffffffff1611155b156121ce5760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff16801580159061220657504263ffffffff168163ffffffff16115b156122245760405163079994c560e31b815260040160405180910390fd5b8685801561225d575f8281526005602052604090206006015481101561225d5760405163f6631e6760e01b815260040160405180910390fd5b5f89815260056020526040902060010154600160e01b900463ffffffff16612298576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260056020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526005602052604090206001015483906001600160a01b0316331461232c57604051634361661f60e11b815260040160405180910390fd5b5f84815260056020526040902060020154849060ff1661235f5760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b038316612386576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600560205260408120600201805460ff191690556123d99086908690869061268f565b5f8581526005602052604090206004810185905560010180546001600160e01b0316600160e01b4263ffffffff16021790555050505050565b5f848484845f60405160200161242c959493929190613417565b604051602081830303815290604052805190602001208614905095945050505050565b5f80878303612509576001600160a01b0386166124c6578495506001195f1b881415801561248c57505f8981526005602052604090206003015415155b156124c1575f898152600560205260409020600301546124af908a908890612518565b5f898152600560205260408120600301555b612509565b856001600160a01b0316856001600160a01b031614612509575f848810156124ee57876124f0565b845b90506125018a88610aad848c61323f565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f9081526001602052604090205461253b90829061320d565b6001600160a01b0383165f818152600160205260409081902092909255905184907f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69061258b9085815260200190565b60405180910390a3505050565b805f036125a25750565b335f9081526001602052604090205480156125f7578181106125db576125c8828261323f565b335f908152600160205260409020555050565b6125e5818361323f565b335f9081526001602052604081205591505b5f546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af115801561264a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061266e9190613281565b61268b57604051637e3e710960e11b815260040160405180910390fd5b5050565b5f8481526005602081815260408084209092015491516126b89291879186918891879101613417565b6040516020818303038152906040528051906020012090505f8211156126ec575f8581526005602052604090206006018290555b5f858152600560208181526040808420909201849055815187815290810184905290810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a001610c91565b5f828152600560205260409020600481018290556001015461278790600160c01b900463ffffffff16426133fa565b5f92835260056020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600560205260409020600101548790600160c01b900463ffffffff16156127ff576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f036128255760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff161061284f57604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906128715750336001600160a01b03881614155b156128f9576001600160a01b0387165f90815260076020526040902054808210156128af5760405163d72564c760e01b815260040160405180910390fd5b6128b9818361323f565b6001600160a01b0389165f908152600160205260409020549092506128df90829061320d565b6001600160a01b0389165f90815260016020526040902055505b5f898152600560205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156129a5575f89815260056020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b83156129fb575f89815260056020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906129f29087815260200190565b60405180910390a25b505050505050505050565b5f60208284031215612a16575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715612a5957612a59612a1d565b604052919050565b5f6001600160401b03821115612a7957612a79612a1d565b5060051b60200190565b5f82601f830112612a92575f80fd5b81356020612aa7612aa283612a61565b612a31565b82815260059290921b84018101918181019086841115612ac5575f80fd5b8286015b84811015612ae05780358352918301918301612ac9565b509695505050505050565b6001600160a01b0381168114612aff575f80fd5b50565b5f82601f830112612b11575f80fd5b81356020612b21612aa283612a61565b82815260059290921b84018101918181019086841115612b3f575f80fd5b8286015b84811015612ae0578035612b5681612aeb565b8352918301918301612b43565b5f805f805f60a08688031215612b77575f80fd5b8535945060208601356001600160401b0380821115612b94575f80fd5b612ba089838a01612a83565b95506040880135915080821115612bb5575f80fd5b612bc189838a01612b02565b94506060880135915080821115612bd6575f80fd5b612be289838a01612a83565b93506080880135915080821115612bf7575f80fd5b50612c0488828901612a83565b9150509295509295909350565b5f8060408385031215612c22575f80fd5b50508035926020909101359150565b803563ffffffff811681146116e1575f80fd5b5f805f805f60a08688031215612c58575f80fd5b85359450602086013593506040860135612c7181612aeb565b9250612c7f60608701612c31565b949793965091946080013592915050565b5f60208284031215612ca0575f80fd5b813561164581612aeb565b5f805f805f8060c08789031215612cc0575f80fd5b86356001600160401b0380821115612cd6575f80fd5b612ce28a838b01612a83565b97506020890135915080821115612cf7575f80fd5b612d038a838b01612a83565b96506040890135915080821115612d18575f80fd5b612d248a838b01612a83565b95506060890135915080821115612d39575f80fd5b612d458a838b01612b02565b94506080890135915080821115612d5a575f80fd5b612d668a838b01612a83565b935060a0890135915080821115612d7b575f80fd5b50612d8889828a01612a83565b9150509295509295509295565b5f805f8060808587031215612da8575f80fd5b5050823594602084013594506040840135936060013592509050565b5f82601f830112612dd3575f80fd5b81356001600160401b03811115612dec57612dec612a1d565b612dff601f8201601f1916602001612a31565b818152846020838601011115612e13575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f80610100898b031215612e47575f80fd5b8835975060208901356001600160401b03811115612e63575f80fd5b612e6f8b828c01612dc4565b9750506040890135612e8081612aeb565b9550612e8e60608a01612c31565b9450612e9c60808a01612c31565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f8060c08789031215612ed3575f80fd5b8635955060208701356001600160401b03811115612eef575f80fd5b612efb89828a01612dc4565b9550506040870135612f0c81612aeb565b9350612f1a60608801612c31565b9250612f2860808801612c31565b915060a087013590509295509295509295565b5f60208284031215612f4b575f80fd5b81356001600160401b03811115612f60575f80fd5b612f6c84828501612dc4565b949350505050565b5f805f805f8060c08789031215612f89575f80fd5b86356001600160401b0380821115612f9f575f80fd5b612fab8a838b01612dc4565b97506020890135915080821115612fc0575f80fd5b50612efb89828a01612dc4565b5f805f805f60a08688031215612fe1575f80fd5b8535945060208601359350604086013592506060860135612c7f81612aeb565b5f805f805f805f805f6101208a8c03121561301a575f80fd5b8935985060208a01356001600160401b03811115613036575f80fd5b6130428c828d01612dc4565b98505060408a013561305381612aeb565b965061306160608b01612c31565b955061306f60808b01612c31565b989b979a50959894979660a0860135965060c08601359560e0810135955061010001359350915050565b5f805f805f8060c087890312156130ae575f80fd5b863595506020870135945060408701356130c781612aeb565b9350606087013592506080870135915060a08701356130e581612aeb565b809150509295509295509295565b5f805f805f805f60e0888a031215613109575f80fd5b8735965060208801356001600160401b03811115613125575f80fd5b6131318a828b01612dc4565b965050604088013561314281612aeb565b945061315060608901612c31565b935061315e60808901612c31565b925060a0880135915060c0880135905092959891949750929550565b5f805f6060848603121561318c575f80fd5b83359250602084013561319e81612aeb565b929592945050506040919091013590565b5f805f606084860312156131c1575f80fd5b833592506020840135915060408401356131da81612aeb565b809150509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b808201808211156117ad576117ad6131f9565b5f8261323a57634e487b7160e01b5f52601260045260245ffd5b500490565b818103818111156117ad576117ad6131f9565b5f60018201613263576132636131f9565b5060010190565b80820281158282048414176117ad576117ad6131f9565b5f60208284031215613291575f80fd5b81518015158114611645575f80fd5b5f5b838110156132ba5781810151838201526020016132a2565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f82516132eb8160248501602087016132a0565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f815180845261336a8160208601602086016132a0565b601f01601f19169290920160200192915050565b87815260e060208201525f61339660e0830189613353565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f82516133de8184602087016132a0565b9190910192915050565b602081525f6116456020830184613353565b63ffffffff8181168382160190808211156117ab576117ab6131f9565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220b0169be66f9117a852e94baea411eb604259f2a599225733743930801a47a0b064736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d \ No newline at end of file +60806040525f60025534801562000014575f80fd5b50620000396040518060600160405280603f81526020016200366d603f9139620000d4565b506200005e6040518060800160405280604f815260200162003749604f9139620000d4565b50620000836040518060800160405280605a8152602001620036ef605a9139620000d4565b50620000a86040518060800160405280605c815260200162003611605c9139620000d4565b50620000cd604051806080016040528060438152602001620036ac60439139620000d4565b506200020d565b6002545f81815260036020908152604080832043905551919291620000fc9185910162000196565b60408051601f1981840301815282825280516020918201205f858152600490925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000154908790620001b3565b60405180910390a362000169816001620001e7565b60025592915050565b5f5b838110156200018e57818101518382015260200162000174565b50505f910152565b5f8251620001a981846020870162000172565b9190910192915050565b602081525f8251806020840152620001d381604085016020870162000172565b601f01601f19169190910160400192915050565b808201808211156200020757634e487b7160e01b5f52601160045260245ffd5b92915050565b6133f6806200021b5f395ff3fe608060405234801561000f575f80fd5b506004361061026b575f3560e01c806383bf46091161014b578063bf53b188116100bf578063e12891d411610084578063e12891d4146107a3578063e83bfb58146107b6578063ebbdd2b0146107d8578063f6a94ecb146107eb578063fc0c546a146107fe578063fe92049d14610810575f80fd5b8063bf53b1881461074b578063c081d8a31461075e578063d09cc57e146106c4578063d44e293c1461077d578063d4876b9f14610790575f80fd5b80639f1025c6116101105780639f1025c614610695578063a462fb7b146106c4578063ab5a4e35146106d7578063acae8f4e146106ea578063b8eaa98014610719578063bc5256521461072c575f80fd5b806383bf4609146105125780638d552d4614610525578063924532fb1461054757806395addb901461056c5780639e63fa6a14610651575f80fd5b8063484c0714116101e2578063590158a7116101a7578063590158a71461042e5780636fa427421461048b57806370a08231146104aa578063762c38fd146104c95780637f8d429e146104dc57806382ffa9f7146104ef575f80fd5b8063484c0714146103a85780634df6ca2a146103ca5780634e60f883146103dd57806351577ea9146103fc57806352debac31461041b575f80fd5b80632417395c116102335780632417395c146102f35780632518904c1461031557806326d6c97b1461035857806328828b1e1461037a5780632f998a6f1461038d5780633ccfd60b146103a0575f80fd5b806306c3b67a1461026f5780631101a0fd14610297578063128b7a47146102ac57806312a203c3146102bf578063144fa6d7146102e0575b5f80fd5b61028261027d3660046129cd565b610823565b60405190151581526020015b60405180910390f35b6102aa6102a5366004612b2a565b610837565b005b6102aa6102ba366004612bd8565b610ade565b6102d26102cd366004612c0b565b610c82565b60405190815260200161028e565b6102aa6102ee366004612c57565b610da0565b6102d26103013660046129cd565b5f9081526005602052604090206003015490565b6103406103233660046129cd565b5f908152600560205260409020600101546001600160a01b031690565b6040516001600160a01b03909116815260200161028e565b6102d26103663660046129cd565b5f9081526005602052604090206006015490565b6102aa610388366004612c72565b610dea565b6102aa61039b366004612d5c565b61109a565b6102aa6112bb565b6102d26103b63660046129cd565b5f9081526005602052604090206007015490565b6102aa6103d83660046129cd565b611384565b6102d26103eb3660046129cd565b60046020525f908152604090205481565b6102d261040a3660046129cd565b5f9081526005602052604090205490565b6102d2610429366004612df6565b6113d1565b61046661043c3660046129cd565b60066020525f90815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b03909416845260208401929092529082015260600161028e565b6102d2610499366004612c57565b60076020525f908152604090205481565b6102d26104b8366004612c57565b60016020525f908152604090205481565b6102d26104d7366004612e85565b6114d8565b6102826104ea3660046129cd565b6115d3565b6102d26104fd3660046129cd565b5f908152600560208190526040909120015490565b6102d2610520366004612f02565b61162e565b6102d26105333660046129cd565b5f9081526005602052604090206004015490565b6102826105553660046129cd565b5f9081526005602052604090206002015460ff1690565b6105ea61057a3660046129cd565b600560208190525f91825260409091208054600182015460028301546003840154600485015495850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff16949391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e08501526101008401919091526101208301526101408201526101600161028e565b61068061065f3660046129cd565b5f90815260056020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff909116815260200161028e565b6106806106a33660046129cd565b5f90815260056020526040902060010154600160c01b900463ffffffff1690565b6102d26106d23660046129cd565b6116c8565b6102d26106e53660046129cd565b611706565b6106806106f83660046129cd565b5f90815260056020526040902060010154600160e01b900463ffffffff1690565b6102aa610727366004612f3b565b61177a565b6102d261073a3660046129cd565b60036020525f908152604090205481565b6102d2610759366004612f6f565b6119c3565b6102d261076c3660046129cd565b60086020525f908152604090205481565b6102aa61078b366004613007565b611c70565b6102d261079e366004613061565b611ceb565b6102826107b1366004612b2a565b611df1565b6102826107c43660046129cd565b60096020525f908152604090205460ff1681565b6102aa6107e63660046129cd565b611f8f565b6102aa6107f93660046130e8565b612091565b5f54610340906001600160a01b031681565b6102aa61081e36600461311d565b6122b8565b5f600119610830836116c8565b1492915050565b84610841816115d3565b61085e57604051636030e5f560e11b815260040160405180910390fd5b84515f0361087f576040516312fdb46960e31b815260040160405180910390fd5b5f8681526006602090815260408083208054600190910154600593849052918420928301546004909301546001600160a01b0390911693919290825b8a51811015610a3e57610935838c83815181106108da576108da613153565b60200260200101518a84815181106108f4576108f4613153565b60200260200101518c858151811061090e5761090e613153565b60200260200101518e868151811061092857610928613153565b60200260200101516123d9565b610952576040516303a479f160e11b815260040160405180910390fd5b61095c858561317b565b93506109b88c8386898e868151811061097757610977613153565b60200260200101518e878151811061099157610991613153565b60200260200101518e88815181106109ab576109ab613153565b6020026020010151612416565b80975081955050508881815181106109d2576109d2613153565b6020026020010151945060055f8d81526020019081526020015f20600601548514610a0f57610a0260288661318e565b610a0c90866131ad565b94505b8a8181518110610a2157610a21613153565b602002602001015192508080610a36906131c0565b9150506108bb565b8215610a8057610a4f8c87866124df565b5f8c815260066020526040902080546001600160a01b0319166001600160a01b038816178155600101859055610abb565b610a948c87610a8f888861317b565b6124df565b5f8c815260066020526040812080546001600160a01b031916815560018101829055600201555b50505f998a52600560208190526040909a20909901989098555050505050505050565b5f828152600560205260408120600101548391600160c01b90910463ffffffff169003610b1e5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff1615610b50576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff168015801590610b8957504263ffffffff168163ffffffff1611155b15610ba75760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff168015801590610bdf57504263ffffffff168163ffffffff16115b15610bfd5760405163079994c560e31b815260040160405180910390fd5b610c068461255f565b5f85815260056020526040902060030154610c2290859061317b565b5f868152600560205260409081902060030182905551339187917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6691610c7391899190918252602082015260400190565b60405180910390a35050505050565b5f85610c8d816115d3565b610caa57604051636030e5f560e11b815260040160405180910390fd5b5f878152600560205260409020548614610cd757604051630763e45d60e41b815260040160405180910390fd5b5f878152600560205260409020600101546001600160a01b03868116911614610d135760405163f089a18560e01b815260040160405180910390fd5b5f8781526005602052604090206001015463ffffffff600160c01b90910481169085161115610d5557604051633f61762b60e01b815260040160405180910390fd5b5f87815260056020526040902060060154831115610d8657604051634d497e9360e11b815260040160405180910390fd5b5050505f9384525050600560205250604090206004015490565b5f546001600160a01b031615610dc957604051635c4e8df160e11b815260040160405180910390fd5b5f80546001600160a01b0319166001600160a01b0392909216919091179055565b5f805b8751821015611088575f888381518110610e0957610e09613153565b602002602001015190505f888481518110610e2657610e26613153565b602002602001015190505f816001600160401b03811115610e4957610e496129e4565b604051908082528060200260200182016040528015610e72578160200160208202803683370190505b5090505f826001600160401b03811115610e8e57610e8e6129e4565b604051908082528060200260200182016040528015610eb7578160200160208202803683370190505b5090505f836001600160401b03811115610ed357610ed36129e4565b604051908082528060200260200182016040528015610efc578160200160208202803683370190505b5090505f846001600160401b03811115610f1857610f186129e4565b604051908082528060200260200182016040528015610f41578160200160208202803683370190505b5090505f5b85811015611061578c8881518110610f6057610f60613153565b6020026020010151858281518110610f7a57610f7a613153565b6020026020010181815250508b8881518110610f9857610f98613153565b6020026020010151848281518110610fb257610fb2613153565b60200260200101906001600160a01b031690816001600160a01b0316815250508a8881518110610fe457610fe4613153565b6020026020010151838281518110610ffe57610ffe613153565b60200260200101818152505089888151811061101c5761101c613153565b602002602001015182828151811061103657611036613153565b60209081029190910101528761104b816131c0565b9850508080611059906131c0565b915050610f46565b61106e8786868686610837565b505050505050508180611080906131c0565b925050610ded565b6110906112bb565b5050505050505050565b5f848152600560205260408120600101548591600160c01b90910463ffffffff1690036110da5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff161561110c576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff16801580159061114557504263ffffffff168163ffffffff1611155b156111635760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff16801580159061119b57504263ffffffff168163ffffffff16115b156111b95760405163079994c560e31b815260040160405180910390fd5b8684805f036111db57604051635de374cf60e11b815260040160405180910390fd5b5f828152600560205260408120600601549081900361122a575f838152600560205260409020600701548210156112255760405163291784d560e01b815260040160405180910390fd5b611255565b6112358160026131d8565b821015611255576040516328eecafb60e21b815260040160405180910390fd5b8988801561128e575f8281526005602052604090206006015481101561128e5760405163f6631e6760e01b815260040160405180910390fd5b6112978961255f565b6112a38c8c338c612656565b6112ad8c8c61271f565b505050505050505050505050565b335f818152600160205260408082208054908390559154905163a9059cbb60e01b815260048101939093526024830182905290916001600160a01b039091169063a9059cbb906044016020604051808303815f875af1158015611320573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061134491906131ef565b61134c575f80fd5b60405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b335f81815260076020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b5f6113db8261255f565b5f8981526003602052604081205490036114085760405163bbbf712b60e01b815260040160405180910390fd5b5f89868a60405160200161141e93929190613230565b6040516020818303038152906040528051906020012090505f8189898730338b6040516020016114549796959493929190613268565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8e8e8e8e8e8e426040516114b397969594939291906132ec565b60405180910390a46114ca81838b8b8b8a8a612785565b9a9950505050505050505050565b5f8681526003602052604081205481036115055760405163bbbf712b60e01b815260040160405180910390fd5b5f87848860405160200161151b93929190613230565b6040516020818303038152906040528051906020012090505f8187875f3033896040516020016115519796959493929190613268565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c426040516115b097969594939291906132ec565b60405180910390a46115c781838989895f80612785565b98975050505050505050565b5f8181526005602052604081206001810154600290910154600160e01b90910463ffffffff169060ff1615801561160f575063ffffffff811615155b801561162757504263ffffffff168163ffffffff1611155b9392505050565b6002545f818152600360209081526040808320439055519192916116549185910161333b565b60408051601f1981840301815282825280516020918201205f858152600490925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e4906116aa908790613356565b60405180910390a36116bd81600161317b565b60025590505b919050565b5f816116d3816115d3565b6116f057604051636030e5f560e11b815260040160405180910390fd5b50505f9081526005602052604090206004015490565b5f80611711836116c8565b905060028101611774575f83815260086020526040902054806117475760405163079442c960e01b815260040160405180910390fd5b611750816116c8565b9150600282016117725760405162a5c78160e11b815260040160405180910390fd5b505b92915050565b5f858152600560205260408120600101548691600160c01b90910463ffffffff1690036117ba5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff16156117ec576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff16801580159061182557504263ffffffff168163ffffffff1611155b156118435760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff16801580159061187b57504263ffffffff168163ffffffff16115b156118995760405163079994c560e31b815260040160405180910390fd5b8784805f036118bb57604051635de374cf60e11b815260040160405180910390fd5b5f828152600560205260408120600601549081900361190a575f838152600560205260409020600701548210156119055760405163291784d560e01b815260040160405180910390fd5b611935565b6119158160026131d8565b821015611935576040516328eecafb60e21b815260040160405180910390fd5b8a89801561196e575f8281526005602052604090206006015481101561196e5760405163f6631e6760e01b815260040160405180910390fd5b6119778961255f565b6001600160a01b038a1661199e57604051630ca6549f60e11b815260040160405180910390fd5b6119aa8d8d8c8c612656565b6119b48d8d61271f565b50505050505050505050505050565b5f6119cd83610823565b6119ea57604051631f45e42760e11b815260040160405180910390fd5b5f8a878b604051602001611a0093929190613230565b60408051601f1981840301815291815281516020928301205f87815260059093529120549091508114611a46576040516349923ed160e11b815260040160405180910390fd5b5f848152600560205260409020600101546001600160a01b038a8116911614611a825760405163611876b160e01b815260040160405180910390fd5b5f8481526005602052604090206001015463ffffffff898116600160c01b9092041614611ac257604051635f4c19f760e01b815260040160405180910390fd5b5f8481526005602052604090206001015463ffffffff888116600160a01b9092041614611b0257604051630a5ab81d60e41b815260040160405180910390fd5b5f848152600560205260409020600701548514611b3257604051633246892f60e01b815260040160405180910390fd5b5f8481526009602052604090205460ff1615611b615760405163331c2c3f60e11b815260040160405180910390fd5b5f84815260086020526040902054848115611bb457611b7f82610823565b611b9c57604051634ec30c8560e01b815260040160405180910390fd5b505f818152600960205260409020805460ff19169055805b5f611bc58e8e8e8e8e8e8e8d6113d1565b5f88815260086020908152604080832084905583835260098252808320805460ff1916600117905560059091528082206003908101548684529190922090910154919250611c129161317b565b5f828152600560205260408082206003908101939093558482528082209092018190559051889183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39d9c50505050505050505050505050565b5f86815260056020819052604090912090810154600690910154611c99919085908590856123d9565b611cb6576040516303a479f160e11b815260040160405180910390fd5b5f868152600560205260408120600401548614611cd35784611cd5565b815b9050611ce28787836122b8565b50505050505050565b5f611cf58261255f565b5f888152600360205260408120549003611d225760405163bbbf712b60e01b815260040160405180910390fd5b5f888589604051602001611d3893929190613230565b6040516020818303038152906040528051906020012090505f8188885f30338a604051602001611d6e9796959493929190613268565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051611dcd97969594939291906132ec565b60405180910390a4611de481838a8a8a5f8a612785565b9998505050505050505050565b5f858152600560205260408120600101548690600160c01b900463ffffffff168203611e305760405163a42db76b60e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff168015801590611e6957504263ffffffff168163ffffffff1611155b15611e875760405163372900d560e21b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff168015801590611ebf57504263ffffffff168163ffffffff16115b15611edd5760405163079994c560e31b815260040160405180910390fd5b5f89815260056020819052604090912001548851885181141580611f02575080885114155b80611f0e575080875114155b15611f1d575f95505050611f83565b5f5b81811015611f7b57611f3d838c83815181106108da576108da613153565b611f4c575f9650505050611f83565b8a8181518110611f5e57611f5e613153565b602002602001015192508080611f73906131c0565b915050611f1f565b506001955050505b50505095945050505050565b5f8181526005602052604090206001015481906001600160a01b03163314611fca57604051634361661f60e11b815260040160405180910390fd5b5f82815260056020526040902060020154829060ff16611ffd5760405163f476ed1160e01b815260040160405180910390fd5b5f83815260056020526040902060028101805460ff191690556001015461203190600160c01b900463ffffffff1642613368565b5f84815260056020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b5f8381526005602052604090206001015483906001600160a01b031633146120cc57604051634361661f60e11b815260040160405180910390fd5b5f848152600560205260408120600101548591600160c01b90910463ffffffff16900361210c5760405163a42db76b60e01b815260040160405180910390fd5b5f8181526005602052604090206002015460ff161561213e576040516329ebbb2960e01b815260040160405180910390fd5b5f81815260056020526040902060010154600160e01b900463ffffffff16801580159061217757504263ffffffff168163ffffffff1611155b156121955760405163be17c46b60e01b815260040160405180910390fd5b5f82815260056020526040902060010154600160a01b900463ffffffff1680158015906121cd57504263ffffffff168163ffffffff16115b156121eb5760405163079994c560e31b815260040160405180910390fd5b86858015612224575f828152600560205260409020600601548110156122245760405163f6631e6760e01b815260040160405180910390fd5b5f89815260056020526040902060010154600160e01b900463ffffffff1661225f576040516397fe1f2760e01b815260040160405180910390fd5b5f89815260056020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b5f8381526005602052604090206001015483906001600160a01b031633146122f357604051634361661f60e11b815260040160405180910390fd5b5f84815260056020526040902060020154849060ff166123265760405163f476ed1160e01b815260040160405180910390fd5b6001600160a01b03831661234d576040516335050b6960e11b815260040160405180910390fd5b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f97905f90a35f858152600560205260408120600201805460ff191690556123a090869086908690612656565b5f8581526005602052604090206004810185905560010180546001600160e01b0316600160e01b4263ffffffff16021790555050505050565b5f848484845f6040516020016123f3959493929190613385565b604051602081830303815290604052805190602001208614905095945050505050565b5f808783036124d0576001600160a01b03861661248d578495506001195f1b881415801561245357505f8981526005602052604090206003015415155b15612488575f89815260056020526040902060030154612476908a9088906124df565b5f898152600560205260408120600301555b6124d0565b856001600160a01b0316856001600160a01b0316146124d0575f848810156124b557876124b7565b845b90506124c88a88610a8f848c6131ad565b859650809750505b50949793965092945050505050565b6001600160a01b0382165f9081526001602052604090205461250290829061317b565b6001600160a01b0383165f818152600160205260409081902092909255905184907f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a6906125529085815260200190565b60405180910390a3505050565b805f036125695750565b335f9081526001602052604090205480156125be578181106125a25761258f82826131ad565b335f908152600160205260409020555050565b6125ac81836131ad565b335f9081526001602052604081205591505b5f546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303815f875af1158015612611573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061263591906131ef565b61265257604051637e3e710960e11b815260040160405180910390fd5b5050565b5f84815260056020818152604080842090920154915161267f9291879186918891879101613385565b6040516020818303038152906040528051906020012090505f8211156126b3575f8581526005602052604090206006018290555b5f858152600560208181526040808420909201849055815187815290810184905290810184905242606082015260808101919091526001600160a01b0384169086907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a001610c73565b5f828152600560205260409020600481018290556001015461274e90600160c01b900463ffffffff1642613368565b5f92835260056020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b5f878152600560205260409020600101548790600160c01b900463ffffffff16156127c6576040516001627a443360e01b0319815260040160405180910390fd5b8463ffffffff165f036127ec5760405163c44c737960e01b815260040160405180910390fd5b6301e133808563ffffffff161061281657604051630ce43fd960e41b815260040160405180910390fd5b816001600160a01b038716158015906128385750336001600160a01b03881614155b156128c0576001600160a01b0387165f90815260076020526040902054808210156128765760405163d72564c760e01b815260040160405180910390fd5b61288081836131ad565b6001600160a01b0389165f908152600160205260409020549092506128a690829061317b565b6001600160a01b0389165f90815260016020526040902055505b5f898152600560205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c16179290921716179055801561296c575f89815260056020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b83156129c2575f89815260056020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906129b99087815260200190565b60405180910390a25b505050505050505050565b5f602082840312156129dd575f80fd5b5035919050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715612a2057612a206129e4565b604052919050565b5f6001600160401b03821115612a4057612a406129e4565b5060051b60200190565b5f82601f830112612a59575f80fd5b81356020612a6e612a6983612a28565b6129f8565b82815260059290921b84018101918181019086841115612a8c575f80fd5b8286015b84811015612aa75780358352918301918301612a90565b509695505050505050565b6001600160a01b0381168114612ac6575f80fd5b50565b5f82601f830112612ad8575f80fd5b81356020612ae8612a6983612a28565b82815260059290921b84018101918181019086841115612b06575f80fd5b8286015b84811015612aa7578035612b1d81612ab2565b8352918301918301612b0a565b5f805f805f60a08688031215612b3e575f80fd5b8535945060208601356001600160401b0380821115612b5b575f80fd5b612b6789838a01612a4a565b95506040880135915080821115612b7c575f80fd5b612b8889838a01612ac9565b94506060880135915080821115612b9d575f80fd5b612ba989838a01612a4a565b93506080880135915080821115612bbe575f80fd5b50612bcb88828901612a4a565b9150509295509295909350565b5f8060408385031215612be9575f80fd5b50508035926020909101359150565b803563ffffffff811681146116c3575f80fd5b5f805f805f60a08688031215612c1f575f80fd5b85359450602086013593506040860135612c3881612ab2565b9250612c4660608701612bf8565b949793965091946080013592915050565b5f60208284031215612c67575f80fd5b813561162781612ab2565b5f805f805f8060c08789031215612c87575f80fd5b86356001600160401b0380821115612c9d575f80fd5b612ca98a838b01612a4a565b97506020890135915080821115612cbe575f80fd5b612cca8a838b01612a4a565b96506040890135915080821115612cdf575f80fd5b612ceb8a838b01612a4a565b95506060890135915080821115612d00575f80fd5b612d0c8a838b01612ac9565b94506080890135915080821115612d21575f80fd5b612d2d8a838b01612a4a565b935060a0890135915080821115612d42575f80fd5b50612d4f89828a01612a4a565b9150509295509295509295565b5f805f8060808587031215612d6f575f80fd5b5050823594602084013594506040840135936060013592509050565b5f82601f830112612d9a575f80fd5b81356001600160401b03811115612db357612db36129e4565b612dc6601f8201601f19166020016129f8565b818152846020838601011115612dda575f80fd5b816020850160208301375f918101602001919091529392505050565b5f805f805f805f80610100898b031215612e0e575f80fd5b8835975060208901356001600160401b03811115612e2a575f80fd5b612e368b828c01612d8b565b9750506040890135612e4781612ab2565b9550612e5560608a01612bf8565b9450612e6360808a01612bf8565b979a969950949793969560a0850135955060c08501359460e001359350915050565b5f805f805f8060c08789031215612e9a575f80fd5b8635955060208701356001600160401b03811115612eb6575f80fd5b612ec289828a01612d8b565b9550506040870135612ed381612ab2565b9350612ee160608801612bf8565b9250612eef60808801612bf8565b915060a087013590509295509295509295565b5f60208284031215612f12575f80fd5b81356001600160401b03811115612f27575f80fd5b612f3384828501612d8b565b949350505050565b5f805f805f60a08688031215612f4f575f80fd5b8535945060208601359350604086013592506060860135612c4681612ab2565b5f805f805f805f805f6101208a8c031215612f88575f80fd5b8935985060208a01356001600160401b03811115612fa4575f80fd5b612fb08c828d01612d8b565b98505060408a0135612fc181612ab2565b9650612fcf60608b01612bf8565b9550612fdd60808b01612bf8565b989b979a50959894979660a0860135965060c08601359560e0810135955061010001359350915050565b5f805f805f8060c0878903121561301c575f80fd5b8635955060208701359450604087013561303581612ab2565b9350606087013592506080870135915060a087013561305381612ab2565b809150509295509295509295565b5f805f805f805f60e0888a031215613077575f80fd5b8735965060208801356001600160401b03811115613093575f80fd5b61309f8a828b01612d8b565b96505060408801356130b081612ab2565b94506130be60608901612bf8565b93506130cc60808901612bf8565b925060a0880135915060c0880135905092959891949750929550565b5f805f606084860312156130fa575f80fd5b83359250602084013561310c81612ab2565b929592945050506040919091013590565b5f805f6060848603121561312f575f80fd5b8335925060208401359150604084013561314881612ab2565b809150509250925092565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561177457611774613167565b5f826131a857634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561177457611774613167565b5f600182016131d1576131d1613167565b5060010190565b808202811582820484141761177457611774613167565b5f602082840312156131ff575f80fd5b81518015158114611627575f80fd5b5f5b83811015613228578181015183820152602001613210565b50505f910152565b83815263ffffffff60e01b8360e01b1660208201525f825161325981602485016020870161320e565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b5f81518084526132d881602086016020860161320e565b601f01601f19169290920160200192915050565b87815260e060208201525f61330460e08301896132c1565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b5f825161334c81846020870161320e565b9190910192915050565b602081525f61162760208301846132c1565b63ffffffff81811683821601908082111561177257611772613167565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b60748201526075019056fea2646970667358221220bc81f4c88727fef6274525afe8a4f689dd71d7fa79770f92061cd6d4232b45aa64736f6c634300081400337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d \ No newline at end of file diff --git a/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol b/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol index 6bc621e9..ee87d257 100644 --- a/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol +++ b/packages/contracts/development/contracts/IRealityETHCreateTemplateAndAskQuestion.sol @@ -2,7 +2,7 @@ pragma solidity 0.8.20; -// This function was removed from IRealityETH in version 4. +// This function was removed from reality.eth in version 4. interface IRealityETHCreateTemplateAndAskQuestion { function createTemplateAndAskQuestion(string calldata content, string calldata question, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce) external payable returns (bytes32); } diff --git a/packages/contracts/development/contracts/RealityETH-4.0.sol b/packages/contracts/development/contracts/RealityETH-4.0.sol index 9af81dca..30b4d537 100644 --- a/packages/contracts/development/contracts/RealityETH-4.0.sol +++ b/packages/contracts/development/contracts/RealityETH-4.0.sol @@ -127,34 +127,6 @@ contract RealityETH_v4_0 is BalanceHolder, IRealityETHCore, IRealityETHHistoryVe return id; } - /// @notice Create a new reusable template and use it to ask a question - /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage. - /// @param content The template content - /// @param question A string containing the parameters that will be passed into the template to make the question - /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute - /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer - /// @param opening_ts If set, the earliest time it should be possible to answer the question. - /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question. - /// @return The ID of the newly-created template, which is created sequentially. - function createTemplateAndAskQuestion( - string memory content, - string memory question, - address arbitrator, - uint32 timeout, - uint32 opening_ts, - uint256 nonce - ) - public - payable - returns ( - // stateNotCreated is enforced by the internal _askQuestion - bytes32 - ) - { - uint256 template_id = createTemplate(content); - return askQuestion(template_id, question, arbitrator, timeout, opening_ts, nonce); - } - /// @notice Ask a new question and return the ID /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage. /// @param template_id The ID number of the template the question will use diff --git a/packages/contracts/development/contracts/RealityETH_ERC20-4.0.sol b/packages/contracts/development/contracts/RealityETH_ERC20-4.0.sol index 3c294cf0..e19df4f8 100644 --- a/packages/contracts/development/contracts/RealityETH_ERC20-4.0.sol +++ b/packages/contracts/development/contracts/RealityETH_ERC20-4.0.sol @@ -136,33 +136,6 @@ contract RealityETH_ERC20_v4_0 is BalanceHolder_ERC20, IRealityETHCore_ERC20, IR return id; } - /// @notice Create a new reusable template and use it to ask a question - /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage. - /// @param content The template content - /// @param question A string containing the parameters that will be passed into the template to make the question - /// @param arbitrator The arbitration contract that will have the final word on the answer if there is a dispute - /// @param timeout How long the contract should wait after the answer is changed before finalizing on that answer - /// @param opening_ts If set, the earliest time it should be possible to answer the question. - /// @param nonce A user-specified nonce used in the question ID. Change it to repeat a question. - /// @return The ID of the newly-created template, which is created sequentially. - function createTemplateAndAskQuestion( - string memory content, - string memory question, - address arbitrator, - uint32 timeout, - uint32 opening_ts, - uint256 nonce - ) - public - returns ( - // stateNotCreated is enforced by the internal _askQuestion - bytes32 - ) - { - uint256 template_id = createTemplate(content); - return askQuestion(template_id, question, arbitrator, timeout, opening_ts, nonce); - } - /// @notice Ask a new question without a bounty and return the ID /// @dev Template data is only stored in the event logs, but its block number is kept in contract storage. /// @dev Calling without the token param will only work if there is no arbitrator-set question fee.