polkamarkets-js 1.0.2 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/.openzeppelin/unknown-1337.json +2056 -0
  2. package/CONTRIBUTING.md +36 -0
  3. package/README.md +24 -25
  4. package/_book/README.md +590 -0
  5. package/_book/core.md +50 -0
  6. package/_book/gitbook/fonts/fontawesome/FontAwesome.otf +0 -0
  7. package/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  8. package/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg +685 -0
  9. package/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  10. package/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  11. package/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 +0 -0
  12. package/_book/gitbook/gitbook-plugin-fontsettings/fontsettings.js +240 -0
  13. package/_book/gitbook/gitbook-plugin-fontsettings/website.css +291 -0
  14. package/_book/gitbook/gitbook-plugin-highlight/ebook.css +135 -0
  15. package/_book/gitbook/gitbook-plugin-highlight/website.css +434 -0
  16. package/_book/gitbook/gitbook-plugin-lunr/lunr.min.js +7 -0
  17. package/_book/gitbook/gitbook-plugin-lunr/search-lunr.js +59 -0
  18. package/_book/gitbook/gitbook-plugin-search/lunr.min.js +7 -0
  19. package/_book/gitbook/gitbook-plugin-search/search-engine.js +50 -0
  20. package/_book/gitbook/gitbook-plugin-search/search.css +35 -0
  21. package/_book/gitbook/gitbook-plugin-search/search.js +213 -0
  22. package/_book/gitbook/gitbook-plugin-sharing/buttons.js +90 -0
  23. package/_book/gitbook/gitbook.js +4 -0
  24. package/_book/gitbook/images/apple-touch-icon-precomposed-152.png +0 -0
  25. package/_book/gitbook/images/favicon.ico +0 -0
  26. package/_book/gitbook/style.css +9 -0
  27. package/_book/gitbook/theme.js +4 -0
  28. package/_book/index.html +705 -0
  29. package/_book/intro.md +32 -0
  30. package/_book/search_index.json +1 -0
  31. package/book.json +8 -0
  32. package/build/contracts/AccessControl.json +1 -0
  33. package/build/contracts/AccessControlEnumerable.json +1 -0
  34. package/build/contracts/Achievements.json +1 -0
  35. package/build/contracts/Address.json +1 -0
  36. package/build/contracts/BalanceHolder.json +1 -0
  37. package/build/contracts/BalanceHolder_ERC20.json +1 -0
  38. package/build/contracts/CeilDiv.json +1 -0
  39. package/build/contracts/Clones.json +1 -0
  40. package/build/contracts/Context.json +1 -0
  41. package/build/contracts/Counters.json +1 -0
  42. package/build/contracts/ERC165.json +1 -0
  43. package/build/contracts/ERC20.json +1 -0
  44. package/build/contracts/ERC20Burnable.json +1 -0
  45. package/build/contracts/ERC20Pausable.json +1 -0
  46. package/build/contracts/ERC20PresetMinterPauser.json +1 -0
  47. package/build/contracts/ERC721.json +1 -0
  48. package/build/contracts/EnumerableMap.json +1 -0
  49. package/build/contracts/EnumerableSet.json +1 -0
  50. package/build/contracts/FantasyERC20.json +1 -0
  51. package/build/contracts/IAccessControl.json +1 -0
  52. package/build/contracts/IAccessControlEnumerable.json +1 -0
  53. package/build/contracts/IBalanceHolder_ERC20.json +1 -0
  54. package/build/contracts/IERC165.json +1 -0
  55. package/build/contracts/IERC20.json +1 -0
  56. package/build/contracts/IERC20Metadata.json +1 -0
  57. package/build/contracts/IERC20Permit.json +1 -0
  58. package/build/contracts/IERC721.json +1 -0
  59. package/build/contracts/IERC721Enumerable.json +1 -0
  60. package/build/contracts/IERC721Metadata.json +1 -0
  61. package/build/contracts/IERC721Receiver.json +1 -0
  62. package/build/contracts/IFantasyERC20.json +1 -0
  63. package/build/contracts/IPredictionMarketV3.json +1 -0
  64. package/build/contracts/IPredictionMarketV3Factory.json +1 -0
  65. package/build/contracts/IPredictionMarketV3Manager.json +1 -0
  66. package/build/contracts/IRealityETH_ERC20.json +1 -0
  67. package/build/contracts/IRealityETH_IERC20.json +1 -0
  68. package/build/contracts/IWETH.json +1 -0
  69. package/build/contracts/LandFactory.json +1 -0
  70. package/build/contracts/Math.json +1 -0
  71. package/build/contracts/Migrations.json +1 -0
  72. package/build/contracts/Ownable.json +1 -0
  73. package/build/contracts/Pausable.json +1 -0
  74. package/build/contracts/PredictionMarket.json +1 -0
  75. package/build/contracts/PredictionMarketV2.json +1 -0
  76. package/build/contracts/PredictionMarketV3.json +1 -0
  77. package/build/contracts/PredictionMarketV3Controller.json +1 -0
  78. package/build/contracts/PredictionMarketV3Factory.json +1 -0
  79. package/build/contracts/PredictionMarketV3Manager.json +1 -0
  80. package/build/contracts/PredictionMarketV3Querier.json +1 -0
  81. package/build/contracts/RealitioERC20.json +1 -0
  82. package/build/contracts/RealitioForeignArbitrationProxyWithAppeals.json +1 -0
  83. package/build/contracts/RealitioHomeArbitrationProxy.json +1 -0
  84. package/build/contracts/RealitioSafeMath256.json +1 -0
  85. package/build/contracts/RealitioSafeMath32.json +1 -0
  86. package/build/contracts/RealityETH_ERC20_Factory.json +1 -0
  87. package/build/contracts/RealityETH_ERC20_v3_0.json +1 -0
  88. package/build/contracts/ReentrancyGuard.json +1 -0
  89. package/build/contracts/SafeERC20.json +1 -0
  90. package/build/contracts/SafeMath.json +1 -0
  91. package/build/contracts/Strings.json +1 -0
  92. package/build/contracts/Voting.json +1 -0
  93. package/build/contracts/WETH9.json +1 -0
  94. package/build/contracts/test.json +1 -0
  95. package/cleanContracts.js +22 -0
  96. package/contracts/FantasyERC20.sol +81 -0
  97. package/contracts/IFantasyERC20.sol +20 -0
  98. package/contracts/IPredictionMarketV3.sol +207 -0
  99. package/contracts/IPredictionMarketV3Factory.sol +10 -0
  100. package/contracts/IPredictionMarketV3Manager.sol +12 -0
  101. package/contracts/IRealityETH_ERC20.sol +64 -0
  102. package/contracts/LandFactory.sol +248 -0
  103. package/contracts/Migrations.sol +24 -0
  104. package/contracts/PredictionMarketV3.sol +1332 -0
  105. package/contracts/PredictionMarketV3Controller.sol +87 -0
  106. package/contracts/PredictionMarketV3Factory.sol +205 -0
  107. package/contracts/PredictionMarketV3Manager.sol +45 -0
  108. package/contracts/PredictionMarketV3Querier.sol +79 -0
  109. package/contracts/RealityETH_ERC20_Factory.sol +54 -0
  110. package/contracts/Voting.sol +153 -0
  111. package/contracts/WETH9.sol +62 -0
  112. package/hardhat.config.js +4 -0
  113. package/help.txt +8 -0
  114. package/index.js +3 -0
  115. package/migrations/10_deploy_weth.js +5 -0
  116. package/migrations/11_deploy_full_flow.js +99 -0
  117. package/migrations/12_deploy_pm_v3_querier.js +7 -0
  118. package/migrations/13_deploy_pm_v3_factory.js +14 -0
  119. package/migrations/1_initial_migration.js +5 -0
  120. package/migrations/2_deploy_erc20.js +10 -0
  121. package/migrations/3_deploy_realitio.js +11 -0
  122. package/migrations/4_deploy_pm.js +20 -0
  123. package/migrations/5_seed_markets.js +51 -0
  124. package/migrations/6_deploy_achievements.js +5 -0
  125. package/migrations/7_deploy_voting.js +14 -0
  126. package/migrations/8_deploy_pm_v2.js +20 -0
  127. package/migrations/9_seed_markets_v2.js +68 -0
  128. package/package.json +106 -13
  129. package/src/Application.js +421 -0
  130. package/src/interfaces/index.js +19 -0
  131. package/src/models/AchievementsContract.js +217 -0
  132. package/src/models/ArbitrationContract.js +69 -0
  133. package/src/models/ArbitrationProxyContract.js +32 -0
  134. package/src/models/ERC20Contract.js +156 -0
  135. package/src/models/FantasyERC20Contract.js +92 -0
  136. package/src/models/IContract.js +1002 -0
  137. package/src/models/PolkamarketsSmartAccount.js +100 -0
  138. package/src/models/PredictionMarketContract.js +562 -0
  139. package/src/models/PredictionMarketV2Contract.js +830 -0
  140. package/src/models/PredictionMarketV3Contract.js +256 -0
  141. package/src/models/PredictionMarketV3ControllerContract.js +102 -0
  142. package/src/models/PredictionMarketV3FactoryContract.js +96 -0
  143. package/src/models/PredictionMarketV3ManagerContract.js +111 -0
  144. package/src/models/PredictionMarketV3QuerierContract.js +24 -0
  145. package/src/models/RealitioERC20Contract.js +286 -0
  146. package/src/models/VotingContract.js +182 -0
  147. package/src/models/WETH9Contract.js +92 -0
  148. package/src/models/index.js +33 -0
  149. package/src/utils/Account.js +40 -0
  150. package/src/utils/Contract.js +120 -0
  151. package/src/utils/Numbers.js +94 -0
  152. package/tests/fantasyERC20Contract.js +225 -0
  153. package/tests/index.js +10 -0
  154. package/tests/predictionMarketContract.js +466 -0
  155. package/tests/predictionMarketV2Contract.js +1042 -0
  156. package/tests/predictionMarketV3Contract.js +1079 -0
  157. package/tests/predictionMarketV3ControllerContract.js +613 -0
  158. package/tests/predictionMarketV3FactoryContract.js +469 -0
  159. package/tests/predictionMarketV3ManagerContract.js +610 -0
  160. package/tests/utils.js +16 -0
  161. package/tests/votingContract.js +490 -0
  162. package/tooling/docs/jsdoc.json +6 -0
  163. package/truffle-config.js +134 -0
  164. package/polkamarkets.js +0 -436
@@ -0,0 +1 @@
1
+ {"contractName":"RealitioForeignArbitrationProxyWithAppeals","abi":[{"inputs":[{"internalType":"address","name":"_checkpointManager","type":"address"},{"internalType":"address","name":"_fxRoot","type":"address"},{"internalType":"contract IArbitrator","name":"_arbitrator","type":"address"},{"internalType":"bytes","name":"_arbitratorExtraData","type":"bytes"},{"internalType":"string","name":"_metaEvidence","type":"string"},{"internalType":"uint256","name":"_winnerMultiplier","type":"uint256"},{"internalType":"uint256","name":"_loserMultiplier","type":"uint256"},{"internalType":"uint256","name":"_loserAppealPeriodMultiplier","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"}],"name":"ArbitrationCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"},{"indexed":true,"internalType":"uint256","name":"_disputeID","type":"uint256"}],"name":"ArbitrationCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"}],"name":"ArbitrationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"},{"indexed":false,"internalType":"uint256","name":"_maxPrevious","type":"uint256"}],"name":"ArbitrationRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_localDisputeID","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ruling","type":"uint256"},{"indexed":true,"internalType":"address","name":"_contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Contribution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IArbitrator","name":"_arbitrator","type":"address"},{"indexed":true,"internalType":"uint256","name":"_disputeID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_metaEvidenceID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_evidenceGroupID","type":"uint256"}],"name":"Dispute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IArbitrator","name":"_arbitrator","type":"address"},{"indexed":true,"internalType":"uint256","name":"_evidenceGroupID","type":"uint256"},{"indexed":true,"internalType":"address","name":"_party","type":"address"},{"indexed":false,"internalType":"string","name":"_evidence","type":"string"}],"name":"Evidence","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_metaEvidenceID","type":"uint256"},{"indexed":false,"internalType":"string","name":"_evidence","type":"string"}],"name":"MetaEvidence","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IArbitrator","name":"_arbitrator","type":"address"},{"indexed":true,"internalType":"uint256","name":"_disputeID","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_ruling","type":"uint256"}],"name":"Ruling","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_localDisputeID","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_round","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_ruling","type":"uint256"}],"name":"RulingFunded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_localDisputeID","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_round","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_ruling","type":"uint256"},{"indexed":true,"internalType":"address","name":"_contributor","type":"address"},{"indexed":false,"internalType":"uint256","name":"_reward","type":"uint256"}],"name":"Withdrawal","type":"event"},{"inputs":[],"name":"META_EVIDENCE_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MULTIPLIER_DIVISOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NUMBER_OF_CHOICES_FOR_ARBITRATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFUSE_TO_ARBITRATE_REALITIO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SEND_MESSAGE_EVENT_SIG","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"arbitrationIDToDisputeExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"arbitrationIDToRequester","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"arbitrationRequests","outputs":[{"internalType":"enum RealitioForeignArbitrationProxyWithAppeals.Status","name":"status","type":"uint8"},{"internalType":"uint248","name":"deposit","type":"uint248"},{"internalType":"uint256","name":"disputeID","type":"uint256"},{"internalType":"uint256","name":"answer","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"arbitrator","outputs":[{"internalType":"contract IArbitrator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"arbitratorExtraData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpointManager","outputs":[{"internalType":"contract ICheckpointManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"disputeIDToDisputeDetails","outputs":[{"internalType":"uint256","name":"arbitrationID","type":"uint256"},{"internalType":"address","name":"requester","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_externalDisputeID","type":"uint256"}],"name":"externalIDtoLocalID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"uint256","name":"_answer","type":"uint256"}],"name":"fundAppeal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"fxChildTunnel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fxRoot","outputs":[{"internalType":"contract IFxStateSender","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"uint256","name":"_round","type":"uint256"},{"internalType":"address","name":"_contributor","type":"address"}],"name":"getContributionsToSuccessfulFundings","outputs":[{"internalType":"uint256[]","name":"fundedAnswers","type":"uint256[]"},{"internalType":"uint256[]","name":"contributions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"getDisputeFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"uint256","name":"_round","type":"uint256"},{"internalType":"uint256","name":"_answer","type":"uint256"}],"name":"getFundingStatus","outputs":[{"internalType":"uint256","name":"raised","type":"uint256"},{"internalType":"bool","name":"fullyFunded","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMultipliers","outputs":[{"internalType":"uint256","name":"winner","type":"uint256"},{"internalType":"uint256","name":"loser","type":"uint256"},{"internalType":"uint256","name":"loserAppealPeriod","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"}],"name":"getNumberOfRounds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"uint256","name":"_round","type":"uint256"}],"name":"getRoundInfo","outputs":[{"internalType":"uint256[]","name":"paidFees","type":"uint256[]"},{"internalType":"uint256","name":"feeRewards","type":"uint256"},{"internalType":"uint256[]","name":"fundedAnswers","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_contributedTo","type":"uint256"}],"name":"getTotalWithdrawableAmount","outputs":[{"internalType":"uint256","name":"sum","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"}],"name":"handleFailedDisputeCreation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"loserAppealPeriodMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"loserMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"numberOfRulingOptions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"processedExits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"}],"name":"questionIDToArbitrationID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"}],"name":"receiveArbitrationAcknowledgement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"}],"name":"receiveArbitrationCancelation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"inputData","type":"bytes"}],"name":"receiveMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"uint256","name":"_maxPrevious","type":"uint256"}],"name":"requestArbitration","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_disputeID","type":"uint256"},{"internalType":"uint256","name":"_ruling","type":"uint256"}],"name":"rule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_fxChildTunnel","type":"address"}],"name":"setFxChildTunnel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"string","name":"_evidenceURI","type":"string"}],"name":"submitEvidence","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"winnerMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_round","type":"uint256"},{"internalType":"uint256","name":"_answer","type":"uint256"}],"name":"withdrawFeesAndRewards","outputs":[{"internalType":"uint256","name":"reward","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_arbitrationID","type":"uint256"},{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_contributedTo","type":"uint256"}],"name":"withdrawFeesAndRewardsForAllRounds","outputs":[],"stateMutability":"nonpayable","type":"function"}]}
@@ -0,0 +1 @@
1
+ {"contractName":"RealitioHomeArbitrationProxy","abi":[{"inputs":[{"internalType":"address","name":"_fxChild","type":"address"},{"internalType":"contract RealitioInterface","name":"_realitio","type":"address"},{"internalType":"uint256","name":"_foreignChainId","type":"uint256"},{"internalType":"string","name":"_metadata","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"}],"name":"ArbitrationFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"}],"name":"ArbitrationFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_answer","type":"bytes32"}],"name":"ArbitratorAnswered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"message","type":"bytes"}],"name":"MessageSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"}],"name":"RequestAcknowledged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"}],"name":"RequestCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"},{"indexed":false,"internalType":"uint256","name":"_maxPrevious","type":"uint256"}],"name":"RequestNotified","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_requester","type":"address"},{"indexed":false,"internalType":"uint256","name":"_maxPrevious","type":"uint256"},{"indexed":false,"internalType":"string","name":"_reason","type":"string"}],"name":"RequestRejected","type":"event"},{"inputs":[],"name":"foreignChainId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"foreignProxy","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fxChild","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fxRootTunnel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"}],"name":"handleNotifiedRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"}],"name":"handleRejectedRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"metadata","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"stateId","type":"uint256"},{"internalType":"address","name":"rootMessageSender","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"processMessageFromRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"questionIDToRequester","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"realitio","outputs":[{"internalType":"contract RealitioInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"bytes32","name":"_answer","type":"bytes32"}],"name":"receiveArbitrationAnswer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"}],"name":"receiveArbitrationFailure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"address","name":"_requester","type":"address"},{"internalType":"uint256","name":"_maxPrevious","type":"uint256"}],"name":"receiveArbitrationRequest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_questionID","type":"bytes32"},{"internalType":"bytes32","name":"_lastHistoryHash","type":"bytes32"},{"internalType":"bytes32","name":"_lastAnswerOrCommitmentID","type":"bytes32"},{"internalType":"address","name":"_lastAnswerer","type":"address"}],"name":"reportArbitrationAnswer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"address","name":"","type":"address"}],"name":"requests","outputs":[{"internalType":"enum RealitioHomeArbitrationProxy.Status","name":"status","type":"uint8"},{"internalType":"bytes32","name":"arbitratorAnswer","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_fxRootTunnel","type":"address"}],"name":"setFxRootTunnel","outputs":[],"stateMutability":"nonpayable","type":"function"}]}
@@ -0,0 +1 @@
1
+ {"contractName":"RealitioSafeMath256","abi":[],"bytecode":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c3504096107596ebc18d8b377b6e9773b3d14ef6025bd2eeb54378ba6007911064736f6c63430006020033"}
@@ -0,0 +1 @@
1
+ {"contractName":"RealitioSafeMath32","abi":[],"bytecode":"0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122008b35559fa455a895a7502f268707946ae4ee07729d4d05ed941f8d22c19d0eb64736f6c63430006020033"}
@@ -0,0 +1 @@
1
+ {"contractName":"RealityETH_ERC20_Factory","abi":[{"inputs":[{"internalType":"address","name":"_libraryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"reality_eth","type":"address"},{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint8","name":"decimals","type":"uint8"},{"indexed":false,"internalType":"string","name":"token_ticker","type":"string"}],"name":"RealityETH_ERC20_deployed","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"deployments","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"libraryAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"createInstance","outputs":[],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b506040516109ef3803806109ef83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61095c806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063316b3739146100465780637726f7761461008b578063b816f513146100a0575b600080fd5b61006f61005436600461077c565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b61009e61009936600461077c565b6100b3565b005b60005461006f906001600160a01b031681565b6001600160a01b0381811660009081526001602052604090205416156101455760405162461bcd60e51b815260206004820152603960248201527f54686572652073686f756c64206f6e6c79206265206f6e65206465706c6f796d60448201527f656e74207065722076657273696f6e2070657220746f6b656e00000000000000606482015260840160405180910390fd5b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610185573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101a991906107ac565b90506000826001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa1580156101eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526102139190810190610809565b600080549192509061022d906001600160a01b031661072a565b60405163144fa6d760e01b81526001600160a01b0386811660048301529192509082169063144fa6d790602401600060405180830381600087803b15801561027457600080fd5b505af1158015610288573d6000803e3d6000fd5b50506040516383bf460960e01b815260206004820152603f60248201527f7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c2060448201527f2263617465676f7279223a20222573222c20226c616e67223a20222573227d0060648201526001600160a01b03841692506383bf460991506084016020604051808303816000875af1158015610326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034a91906108b6565b506040516383bf460960e01b815260206004820152604f60248201527f7b227469746c65223a20222573222c202274797065223a202275696e74222c2060448201527f22646563696d616c73223a2031382c202263617465676f7279223a202225732260648201526e2c20226c616e67223a20222573227d60881b60848201526001600160a01b038216906383bf46099060a4016020604051808303816000875af11580156103fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061042191906108b6565b506040516383bf460960e01b815260206004820152605a60248201527f7b227469746c65223a20222573222c202274797065223a202273696e676c652d60448201527f73656c656374222c20226f7574636f6d6573223a205b25735d2c20226361746560648201527f676f7279223a20222573222c20226c616e67223a20222573227d00000000000060848201526001600160a01b038216906383bf46099060a4016020604051808303816000875af11580156104e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061050691906108b6565b506040516383bf460960e01b815260206004820152605c60248201527f7b227469746c65223a20222573222c202274797065223a20226d756c7469706c60448201527f652d73656c656374222c20226f7574636f6d6573223a205b25735d2c2022636160648201527f7465676f7279223a20222573222c20226c616e67223a20222573227d0000000060848201526001600160a01b038216906383bf46099060a4016020604051808303816000875af11580156105c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105eb91906108b6565b506040516383bf460960e01b815260206004820152604360248201527f7b227469746c65223a20222573222c202274797065223a20226461746574696d60448201527f65222c202263617465676f7279223a20222573222c20226c616e67223a20222560648201526273227d60e81b60848201526001600160a01b038216906383bf46099060a4016020604051808303816000875af1158015610692573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b691906108b6565b506001600160a01b038481166000908152600160205260409081902080546001600160a01b03191692841692909217909155517fbe87db3b58b5f4d26d54d6f8a09bbab3eefdc8879ac48f5e21ccff2a1f50b0729061071c9083908790879087906108cf565b60405180910390a150505050565b6000808260601b9050604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528160148201526e5af43d82803e903d91602b57fd5bf360881b60288201526037816000f0949350505050565b60006020828403121561078e57600080fd5b81356001600160a01b03811681146107a557600080fd5b9392505050565b6000602082840312156107be57600080fd5b815160ff811681146107a557600080fd5b634e487b7160e01b600052604160045260246000fd5b60005b838110156108005781810151838201526020016107e8565b50506000910152565b60006020828403121561081b57600080fd5b815167ffffffffffffffff8082111561083357600080fd5b818401915084601f83011261084757600080fd5b815181811115610859576108596107cf565b604051601f8201601f19908116603f01168101908382118183101715610881576108816107cf565b8160405282815287602084870101111561089a57600080fd5b6108ab8360208301602088016107e5565b979650505050505050565b6000602082840312156108c857600080fd5b5051919050565b600060018060a01b03808716835280861660208401525060ff8416604083015260806060830152825180608084015261090f8160a08501602087016107e5565b601f01601f19169190910160a0019594505050505056fea264697066735822122076f461daf496128d1efa0502e9cc1bb8e96ef7e12e02cce78ab4da3c32fe944f64736f6c63430008120033"}
@@ -0,0 +1 @@
1
+ {"contractName":"RealityETH_ERC20_v3_0","abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"question_id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"bytes32","name":"answer_hash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"answer","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bond","type":"uint256"}],"name":"LogAnswerReveal","type":"event"},{"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","constant":true},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"commitments","outputs":[{"internalType":"uint32","name":"reveal_ts","type":"uint32"},{"internalType":"bool","name":"is_revealed","type":"bool"},{"internalType":"bytes32","name":"revealed_answer","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"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","constant":true},{"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","constant":true},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopened_questions","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"reopener_questions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"template_hashes","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"templates","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setQuestionFee","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":"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":"uint256","name":"tokens","type":"uint256"}],"name":"fundAnswerBountyERC20","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":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer_hash","type":"bytes32"},{"internalType":"uint256","name":"max_previous","type":"uint256"},{"internalType":"address","name":"_answerer","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"submitAnswerCommitmentERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"},{"internalType":"bytes32","name":"answer","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"bond","type":"uint256"}],"name":"submitAnswerReveal","outputs":[],"stateMutability":"nonpayable","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":"question_id","type":"bytes32"}],"name":"cancelArbitration","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":"address","name":"payee_if_wrong","type":"address"},{"internalType":"bytes32","name":"last_history_hash","type":"bytes32"},{"internalType":"bytes32","name":"last_answer_or_commitment_id","type":"bytes32"},{"internalType":"address","name":"last_answerer","type":"address"}],"name":"assignWinnerAndSubmitAnswerByArbitrator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isFinalized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultFor","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isSettledTooSoon","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"resultForOnceSettled","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"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":"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","constant":true},{"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":"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"}],"name":"getContentHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getArbitrator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getOpeningTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getTimeout","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getFinalizeTS","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"isPendingArbitration","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBestAnswer","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getHistoryHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","constant":true},{"inputs":[{"internalType":"bytes32","name":"question_id","type":"bytes32"}],"name":"getMinBond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","constant":true}],"bytecode":"0x608060405260006002553480156200001657600080fd5b506200003b6040518060600160405280603f815260200162004761603f9139620000d6565b50620000606040518060800160405280604f81526020016200483d604f9139620000d6565b50620000856040518060800160405280605a8152602001620047e3605a9139620000d6565b50620000aa6040518060800160405280605c815260200162004705605c9139620000d6565b50620000cf604051806080016040528060438152602001620047a060439139620000d6565b5062000223565b600254600081815260036020908152604080832043905551919291620000ff91859101620001a9565b60408051601f1981840301815282825280516020918201206000858152600490925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e49062000158908790620001c7565b60405180910390a36200016d816001620001fc565b60025592915050565b60005b838110156200019357818101518382015260200162000179565b83811115620001a3576000848401525b50505050565b60008251620001bd81846020870162000176565b9190910192915050565b6020815260008251806020840152620001e881604085016020870162000176565b601f01601f19169190910160400192915050565b600082198211156200021e57634e487b7160e01b600052601160045260246000fd5b500190565b6144d280620002336000396000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c8063839df94511610167578063b8eaa980116100ce578063d4876b9f11610087578063d4876b9f14610863578063e83bfb5814610876578063ebbdd2b014610899578063f6a94ecb146108ac578063fc0c546a146108bf578063fe92049d146108d257600080fd5b8063b8eaa980146107ea578063bc525652146107fd578063bf53b1881461081d578063c081d8a314610830578063d09cc57e14610781578063d44e293c1461085057600080fd5b80639f1025c6116101205780639f1025c61461073e578063a1130d041461076e578063a462fb7b14610781578063ab5a4e3514610794578063ac7b2a5f146107a7578063acae8f4e146107ba57600080fd5b8063839df9451461055a57806383bf4609146105b75780638d552d46146105ca578063924532fb146105ed57806395addb90146106135780639e63fa6a146106f957600080fd5b8063484c07141161020b578063590158a7116101c4578063590158a7146104725780636fa42742146104d057806370a08231146104f0578063762c38fd146105105780637f8d429e1461052357806382ffa9f71461053657600080fd5b8063484c0714146103d65780634dc266b4146103f95780634df6ca2a1461040c5780634e60f8831461041f57806351577ea91461043f57806352debac31461045f57600080fd5b80632417395c1161025d5780632417395c1461031e5780632518904c1461034157806326d6c97b1461038557806328828b1e146103a85780632f998a6f146103bb5780633ccfd60b146103ce57600080fd5b806306c3b67a1461029a5780631101a0fd146102c2578063128b7a47146102d757806312a203c3146102ea578063144fa6d71461030b575b600080fd5b6102ad6102a83660046136d0565b6108e5565b60405190151581526020015b60405180910390f35b6102d56102d0366004613839565b6108fa565b005b6102d56102e53660046138ef565b610c00565b6102fd6102f8366004613925565b610d9d565b6040519081526020016102b9565b6102d5610319366004613975565b610f74565b6102fd61032c3660046136d0565b60009081526005602052604090206003015490565b61036d61034f3660046136d0565b6000908152600560205260409020600101546001600160a01b031690565b6040516001600160a01b0390911681526020016102b9565b6102fd6103933660046136d0565b60009081526005602052604090206006015490565b6102d56103b6366004613992565b610ffa565b6102d56103c9366004613a86565b6112b2565b6102d56114c9565b6102fd6103e43660046136d0565b60009081526005602052604090206007015490565b6102d5610407366004613a86565b611597565b6102d561041a3660046136d0565b61189e565b6102fd61042d3660046136d0565b60046020526000908152604090205481565b6102fd61044d3660046136d0565b60009081526005602052604090205490565b6102fd61046d366004613b27565b6118ec565b6104ab6104803660046136d0565b6006602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b0390941684526020840192909252908201526060016102b9565b6102fd6104de366004613975565b60086020526000908152604090205481565b6102fd6104fe366004613975565b60016020526000908152604090205481565b6102fd61051e366004613bbc565b6119f4565b6102ad6105313660046136d0565b611af1565b6102fd6105443660046136d0565b6000908152600560208190526040909120015490565b6105956105683660046136d0565b6007602052600090815260409020805460019091015463ffffffff821691640100000000900460ff169083565b6040805163ffffffff90941684529115156020840152908201526060016102b9565b6102fd6105c5366004613c3e565b611b4d565b6102fd6105d83660046136d0565b60009081526005602052604090206004015490565b6102ad6105fb3660046136d0565b60009081526005602052604090206002015460ff1690565b6106926106213660046136d0565b60056020819052600091825260409091208054600182015460028301546003840154600485015495850154600686015460079096015494966001600160a01b0385169663ffffffff600160a01b8704811697600160c01b8804821697600160e01b90049091169560ff16949391908b565b604080519b8c526001600160a01b03909a1660208c015263ffffffff988916998b019990995295871660608a015295909316608088015290151560a087015260c086015260e0850152610100840191909152610120830152610140820152610160016102b9565b6107296107073660046136d0565b600090815260056020526040902060010154600160a01b900463ffffffff1690565b60405163ffffffff90911681526020016102b9565b61072961074c3660046136d0565b600090815260056020526040902060010154600160c01b900463ffffffff1690565b6102fd61077c366004613c7a565b611be9565b6102fd61078f3660046136d0565b611c05565b6102fd6107a23660046136d0565b611c44565b6102d56107b5366004613cd9565b611d75565b6107296107c83660046136d0565b600090815260056020526040902060010154600160e01b900463ffffffff1690565b6102d56107f8366004613cd9565b611fe2565b6102fd61080b3660046136d0565b60036020526000908152604090205481565b6102fd61082b366004613d11565b612250565b6102fd61083e3660046136d0565b60096020526000908152604090205481565b6102d561085e366004613db0565b612698565b6102fd610871366004613e0e565b6127af565b6102ad6108843660046136d0565b600a6020526000908152604090205460ff1681565b6102d56108a73660046136d0565b6128b8565b6102d56108ba366004613e9b565b6129bc565b60005461036d906001600160a01b031681565b6102d56108e0366004613ed3565b612c3c565b60006001196108f383611c05565b1492915050565b8461090481611af1565b6109295760405162461bcd60e51b815260040161092090613f0c565b60405180910390fd5b60008551116109935760405162461bcd60e51b815260206004820152603060248201527f6174206c65617374206f6e6520686973746f7279206861736820656e7472792060448201526f1b5d5cdd081899481c1c9bdd9a59195960821b6064820152608401610920565b600086815260066020908152604080832080546001820154600290920154600594859052928520938401546004909401546001600160a01b03909116949193915b8a51811015610b42576000610a50848d84815181106109f5576109f5613f43565b60200260200101518b8581518110610a0f57610a0f613f43565b60200260200101518d8681518110610a2957610a29613f43565b60200260200101518f8781518110610a4357610a43613f43565b6020026020010151612d90565b9050610a5c8686613f6f565b9450610ab98d84878a8f8781518110610a7757610a77613f43565b60200260200101518f8881518110610a9157610a91613f43565b60200260200101518f8981518110610aab57610aab613f43565b602002602001015188612e80565b8098508196505050898281518110610ad357610ad3613f43565b60200260200101519550600560008e8152602001908152602001600020600601548614610b1257610b05602887613f9d565b610b0f9087613fb1565b95505b8b8281518110610b2457610b24613f43565b60200260200101519350508080610b3a90613fc8565b9150506109d4565b8215610ba0576001600160a01b03861615610b6757610b628c8786612fca565b600093505b60008c815260066020526040902080546001600160a01b0319166001600160a01b03881617815560018101869055600201849055610bdc565b610bb48c87610baf8888613f6f565b612fca565b60008c815260066020526040812080546001600160a01b031916815560018101829055600201555b50506000998a52600560208190526040909a20909901989098555050505050505050565b6000828152600560205260409020600101548290600160c01b900463ffffffff16610c3d5760405162461bcd60e51b815260040161092090613fe3565b60008181526005602052604090206002015460ff1615610c6f5760405162461bcd60e51b815260040161092090614010565b600081815260056020526040902060010154600160e01b900463ffffffff16801580610ca657504263ffffffff168163ffffffff16115b610cc25760405162461bcd60e51b815260040161092090614058565b600082815260056020526040902060010154600160a01b900463ffffffff16801580610cfa57504263ffffffff168163ffffffff1611155b610d165760405162461bcd60e51b8152600401610920906140a2565b610d1f8461304c565b600085815260056020526040902060030154610d3c908590613f6f565b6000868152600560205260409081902060030182905551339187917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab6691610d8e91899190918252602082015260400190565b60405180910390a35050505050565b600085610da981611af1565b610dc55760405162461bcd60e51b815260040161092090613f0c565b6000878152600560205260409020548614610e225760405162461bcd60e51b815260206004820152601760248201527f636f6e74656e742068617368206d757374206d617463680000000000000000006044820152606401610920565b6000878152600560205260409020600101546001600160a01b03868116911614610e865760405162461bcd60e51b81526020600482015260156024820152740c2e4c4d2e8e4c2e8dee440daeae6e840dac2e8c6d605b1b6044820152606401610920565b60008781526005602052604090206001015463ffffffff600160c01b90910481169085161115610ef85760405162461bcd60e51b815260206004820152601b60248201527f74696d656f7574206d757374206265206c6f6e6720656e6f75676800000000006044820152606401610920565b600087815260056020526040902060060154831115610f595760405162461bcd60e51b815260206004820152601860248201527f626f6e64206d757374206265206869676820656e6f75676800000000000000006044820152606401610920565b50505060009384525050600560205250604090206004015490565b6000546001600160a01b031615610fd85760405162461bcd60e51b815260206004820152602260248201527f546f6b656e2063616e206f6e6c7920626520696e697469616c697a6564206f6e604482015261636560f01b6064820152608401610920565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b87518210156112a057600088838151811061101b5761101b613f43565b60200260200101519050600088848151811061103957611039613f43565b602002602001015190506000816001600160401b0381111561105d5761105d6136e9565b604051908082528060200260200182016040528015611086578160200160208202803683370190505b5090506000826001600160401b038111156110a3576110a36136e9565b6040519080825280602002602001820160405280156110cc578160200160208202803683370190505b5090506000836001600160401b038111156110e9576110e96136e9565b604051908082528060200260200182016040528015611112578160200160208202803683370190505b5090506000846001600160401b0381111561112f5761112f6136e9565b604051908082528060200260200182016040528015611158578160200160208202803683370190505b50905060005b85811015611279578c888151811061117857611178613f43565b602002602001015185828151811061119257611192613f43565b6020026020010181815250508b88815181106111b0576111b0613f43565b60200260200101518482815181106111ca576111ca613f43565b60200260200101906001600160a01b031690816001600160a01b0316815250508a88815181106111fc576111fc613f43565b602002602001015183828151811061121657611216613f43565b60200260200101818152505089888151811061123457611234613f43565b602002602001015182828151811061124e5761124e613f43565b60209081029190910101528761126381613fc8565b985050808061127190613fc8565b91505061115e565b61128687868686866108fa565b50505050505050818061129890613fc8565b925050610ffe565b6112a86114c9565b5050505050505050565b6000848152600560205260409020600101548490600160c01b900463ffffffff166112ef5760405162461bcd60e51b815260040161092090613fe3565b60008181526005602052604090206002015460ff16156113215760405162461bcd60e51b815260040161092090614010565b600081815260056020526040902060010154600160e01b900463ffffffff1680158061135857504263ffffffff168163ffffffff16115b6113745760405162461bcd60e51b815260040161092090614058565b600082815260056020526040902060010154600160a01b900463ffffffff168015806113ac57504263ffffffff168163ffffffff1611155b6113c85760405162461bcd60e51b8152600401610920906140a2565b8684600081116113ea5760405162461bcd60e51b8152600401610920906140d9565b60008281526005602052604090206006015480611437576000838152600560205260409020600701548210156114325760405162461bcd60e51b815260040161092090614108565b611461565b61144281600261413f565b8210156114615760405162461bcd60e51b81526004016109209061415e565b8988801561149a5760008281526005602052604090206006015481101561149a5760405162461bcd60e51b8152600401610920906141a8565b6114a38961304c565b6114b18c8c338c600061319d565b6114bb8c8c613276565b505050505050505050505050565b336000818152600160205260408082208054908390559154905163a9059cbb60e01b815260048101939093526024830182905290916001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015611532573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061155691906141df565b61155f57600080fd5b60405181815233907f4ce7033d118120e254016dccf195288400b28fc8936425acd5f17ce2df3ab7089060200160405180910390a250565b6000848152600560205260409020600101548490600160c01b900463ffffffff166115d45760405162461bcd60e51b815260040161092090613fe3565b600081815260056020526040902060010154600160e01b900463ffffffff1680158061160b57504263ffffffff168163ffffffff16115b6116695760405162461bcd60e51b815260206004820152602960248201527f66696e616c697a6174696f6e206465616c696e65206d757374206e6f742068616044820152681d99481c185cdcd95960ba1b6064820152608401610920565b600082815260056020526040902060010154600160a01b900463ffffffff168015806116a157504263ffffffff168163ffffffff1611155b6116bd5760405162461bcd60e51b8152600401610920906140a2565b604080516020808201899052818301889052825180830384018152606083018452805190820120608083018b905260a0830181905260c08084018990528451808503909101815260e090930184528251928201929092206000818152600790925292902054909190640100000000900460ff16156117905760405162461bcd60e51b815260206004820152602a60248201527f636f6d6d69746d656e74206d757374206e6f742068617665206265656e2072656044820152691d99585b1959081e595d60b21b6064820152608401610920565b60008181526007602052604090205463ffffffff4281169116116118025760405162461bcd60e51b8152602060048201526024808201527f72657665616c20646561646c696e65206d757374206e6f7420686176652070616044820152631cdcd95960e21b6064820152608401610920565b6000818152600760209081526040808320600181018c9055805464ff0000000019166401000000001790558b8352600590915290206006015486141561184c5761184c8989613276565b6040805189815260208101899052908101879052829033908b907fa7b2d313bc7a062e30b2c3b811aa4c9faf09755a6b4ea3bf42deff920944332f9060600160405180910390a4505050505050505050565b33600081815260086020908152604091829020849055815192835282018390527fdca703d022171824d3d639b33c1525fd2338120b4cfb89507c0b59596893acda910160405180910390a150565b60006118f78261304c565b6000898152600360205260409020546119225760405162461bcd60e51b815260040161092090614201565b600089868a6040516020016119399392919061425e565b60405160208183030381529060405280519060200120905060008189898730338b6040516020016119709796959493929190614297565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8e8e8e8e8e8e426040516119cf979695949392919061431c565b60405180910390a46119e681838b8b8b8a8a6132de565b9a9950505050505050505050565b600086815260036020526040812054611a1f5760405162461bcd60e51b815260040161092090614201565b6000878488604051602001611a369392919061425e565b60405160208183030381529060405280519060200120905060008187876000303389604051602001611a6e9796959493929190614297565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8c8c8c8c8c8c42604051611acd979695949392919061431c565b60405180910390a4611ae581838989896000806132de565b98975050505050505050565b60008181526005602052604081206001810154600290910154600160e01b90910463ffffffff169060ff16158015611b2e575063ffffffff811615155b8015611b4657504263ffffffff168163ffffffff1611155b9392505050565b600254600081815260036020908152604080832043905551919291611b749185910161436c565b60408051601f1981840301815282825280516020918201206000858152600490925291902055339082907fb87fb721c0a557bb8dff89a86796466931d82ba530a66a239263eb8735ade2e490611bcb908790614388565b60405180910390a3611bde816001613f6f565b60025590505b919050565b600080611bf588611b4d565b9050611ae58188888888886119f4565b600081611c1181611af1565b611c2d5760405162461bcd60e51b815260040161092090613f0c565b505060009081526005602052604090206004015490565b600080611c5083611c05565b9050600119811415611d6f5760008381526009602052604090205480611cde5760405162461bcd60e51b815260206004820152603760248201527f5175657374696f6e2077617320736574746c656420746f6f20736f6f6e20616e60448201527f6420686173206e6f74206265656e2072656f70656e65640000000000000000006064820152608401610920565b611ce781611c05565b9150600119821415611d6d5760405162461bcd60e51b815260206004820152604360248201527f5175657374696f6e207265706c6163656d656e742077617320736574746c656460448201527f20746f6f20736f6f6e20616e6420686173206e6f74206265656e2072656f70656064820152621b995960ea1b608482015260a401610920565b505b92915050565b6000858152600560205260409020600101548590600160c01b900463ffffffff16611db25760405162461bcd60e51b815260040161092090613fe3565b60008181526005602052604090206002015460ff1615611de45760405162461bcd60e51b815260040161092090614010565b600081815260056020526040902060010154600160e01b900463ffffffff16801580611e1b57504263ffffffff168163ffffffff16115b611e375760405162461bcd60e51b815260040161092090614058565b600082815260056020526040902060010154600160a01b900463ffffffff16801580611e6f57504263ffffffff168163ffffffff1611155b611e8b5760405162461bcd60e51b8152600401610920906140a2565b878460008111611ead5760405162461bcd60e51b8152600401610920906140d9565b60008281526005602052604090206006015480611efa57600083815260056020526040902060070154821015611ef55760405162461bcd60e51b815260040161092090614108565b611f24565b611f0581600261413f565b821015611f245760405162461bcd60e51b81526004016109209061415e565b8a898015611f5d57600082815260056020526040902060060154811015611f5d5760405162461bcd60e51b8152600401610920906141a8565b611f668961304c565b60408051602081018f90529081018d9052606081018a905260009060800160408051601f198184030181529190528051602090910120905060006001600160a01b038c1615611fb5578b611fb7565b335b9050611fc38f83613602565b611fd18f83838e600161319d565b505050505050505050505050505050565b6000858152600560205260409020600101548590600160c01b900463ffffffff1661201f5760405162461bcd60e51b815260040161092090613fe3565b60008181526005602052604090206002015460ff16156120515760405162461bcd60e51b815260040161092090614010565b600081815260056020526040902060010154600160e01b900463ffffffff1680158061208857504263ffffffff168163ffffffff16115b6120a45760405162461bcd60e51b815260040161092090614058565b600082815260056020526040902060010154600160a01b900463ffffffff168015806120dc57504263ffffffff168163ffffffff1611155b6120f85760405162461bcd60e51b8152600401610920906140a2565b87846000811161211a5760405162461bcd60e51b8152600401610920906140d9565b60008281526005602052604090206006015480612167576000838152600560205260409020600701548210156121625760405162461bcd60e51b815260040161092090614108565b612191565b61217281600261413f565b8210156121915760405162461bcd60e51b81526004016109209061415e565b8a8980156121ca576000828152600560205260409020600601548110156121ca5760405162461bcd60e51b8152600401610920906141a8565b6121d38961304c565b6001600160a01b038a166122295760405162461bcd60e51b815260206004820152601960248201527f616e737765726572206d757374206265206e6f6e2d7a65726f000000000000006044820152606401610920565b6122378d8d8c8c600061319d565b6122418d8d613276565b50505050505050505050505050565b600061225b836108e5565b6122cd5760405162461bcd60e51b815260206004820152603f60248201527f596f752063616e206f6e6c792072656f70656e207175657374696f6e7320746860448201527f6174207265736f6c76656420617320736574746c656420746f6f20736f6f6e006064820152608401610920565b60008a878b6040516020016122e49392919061425e565b60408051601f1981840301815291815281516020928301206000878152600590935291205490915081146123525760405162461bcd60e51b81526020600482015260156024820152740c6dedce8cadce840d0c2e6d040dad2e6dac2e8c6d605b1b6044820152606401610920565b6000848152600560205260409020600101546001600160a01b038a81169116146123b45760405162461bcd60e51b81526020600482015260136024820152720c2e4c4d2e8e4c2e8dee440dad2e6dac2e8c6d606b1b6044820152606401610920565b60008481526005602052604090206001015463ffffffff898116600160c01b90920416146124175760405162461bcd60e51b815260206004820152601060248201526f0e8d2dacadeeae840dad2e6dac2e8c6d60831b6044820152606401610920565b60008481526005602052604090206001015463ffffffff888116600160a01b909204161461247d5760405162461bcd60e51b81526020600482015260136024820152720dee0cadcd2dccebee8e640dad2e6dac2e8c6d606b1b6044820152606401610920565b60008481526005602052604090206007015485146124d15760405162461bcd60e51b81526020600482015260116024820152700dad2dcbec4dedcc840dad2e6dac2e8c6d607b1b6044820152606401610920565b6000848152600a602052604090205460ff161561254a5760405162461bcd60e51b815260206004820152603160248201527f5175657374696f6e20697320616c72656164792072656f70656e696e67206120604482015270383932bb34b7bab99038bab2b9ba34b7b760791b6064820152608401610920565b6000848152600960205260409020548481156125d957612569826108e5565b6125c05760405162461bcd60e51b815260206004820152602260248201527f5175657374696f6e2068617320616c7265616479206265656e2072656f70656e604482015261195960f21b6064820152608401610920565b506000818152600a60205260409020805460ff19169055805b60006125eb8e8e8e8e8e8e8e8d6118ec565b6000888152600960209081526040808320849055838352600a8252808320805460ff191660011790556005909152808220600390810154868452919092209091015491925061263991613f6f565b6000828152600560205260408082206003908101939093558482528082209092018190559051889183917f32e7d5617fb1be6bd0e7c3974d438d4514c4cf349e9330691d8abf6f6fd431219190a39d9c50505050505050505050505050565b60008681526005602081905260408220908101546006909101546126c191908690869086612d90565b905060008180156126e95750600084815260076020526040902054640100000000900460ff16155b156127815760008481526007602052604090205463ffffffff42811691161061277a5760405162461bcd60e51b815260206004820152603760248201527f596f75206d757374207761697420666f72207468652072657665616c2064656160448201527f646c696e65206265666f72652066696e616c697a696e670000000000000000006064820152608401610920565b50846127a4565b600088815260056020526040902060040154871461279f57856127a1565b825b90505b6112a8888883612c3c565b60006127ba8261304c565b6000888152600360205260409020546127e55760405162461bcd60e51b815260040161092090614201565b60008885896040516020016127fc9392919061425e565b6040516020818303038152906040528051906020012090506000818888600030338a6040516020016128349796959493929190614297565b60405160208183030381529060405280519060200120905081336001600160a01b0316827ffe2dac156a3890636ce13f65f4fdf41dcaee11526e4a5374531572d92194796c8d8d8d8d8d8d42604051612893979695949392919061431c565b60405180910390a46128ab81838a8a8a60008a6132de565b9998505050505050505050565b60008181526005602052604090206001015481906001600160a01b031633146128f35760405162461bcd60e51b81526004016109209061439b565b600082815260056020526040902060020154829060ff166129265760405162461bcd60e51b8152600401610920906143d2565b600083815260056020526040902060028101805460ff191690556001015461295b90600160c01b900463ffffffff1642614416565b600084815260056020526040808220600101805463ffffffff94909416600160e01b026001600160e01b0390941693909317909255905184917f71bf7c2b9df0b8818e7eb6746a5bf69699ebbab041f3795f9ed58e469afa9a3a91a2505050565b60008381526005602052604090206001015483906001600160a01b031633146129f75760405162461bcd60e51b81526004016109209061439b565b6000848152600560205260409020600101548490600160c01b900463ffffffff16612a345760405162461bcd60e51b815260040161092090613fe3565b60008181526005602052604090206002015460ff1615612a665760405162461bcd60e51b815260040161092090614010565b600081815260056020526040902060010154600160e01b900463ffffffff16801580612a9d57504263ffffffff168163ffffffff16115b612ab95760405162461bcd60e51b815260040161092090614058565b600082815260056020526040902060010154600160a01b900463ffffffff16801580612af157504263ffffffff168163ffffffff1611155b612b0d5760405162461bcd60e51b8152600401610920906140a2565b86858015612b4657600082815260056020526040902060060154811015612b465760405162461bcd60e51b8152600401610920906141a8565b600089815260056020526040902060010154600160e01b900463ffffffff16612be25760405162461bcd60e51b815260206004820152604260248201527f5175657374696f6e206d75737420616c7265616479206861766520616e20616e60448201527f73776572207768656e206172626974726174696f6e2069732072657175657374606482015261195960f21b608482015260a401610920565b600089815260056020526040808220600201805460ff19166001179055516001600160a01b038a16918b917f75d7939999bc902187c4aed400872883e445145f1983539166f783fa040b47629190a3505050505050505050565b60008381526005602052604090206001015483906001600160a01b03163314612c775760405162461bcd60e51b81526004016109209061439b565b600084815260056020526040902060020154849060ff16612caa5760405162461bcd60e51b8152600401610920906143d2565b6001600160a01b038316612d005760405162461bcd60e51b815260206004820152601960248201527f616e737765726572206d7573742062652070726f7669646564000000000000006044820152606401610920565b604051849086907f18d760beffe3717270cd90d9d920ec1a48c194e9ad7bba23eb1c92d3eb974f9790600090a36000858152600560205260408120600201805460ff19169055612d56908690869086908061319d565b60008581526005602052604090206004810185905560010180546001600160e01b0316600160e01b4263ffffffff16021790555050505050565b6000848484846001604051602001612dac95949392919061443e565b60405160208183030381529060405280519060200120861415612dd157506001612e77565b848484846000604051602001612deb95949392919061443e565b60405160208183030381529060405280519060200120861415612e1057506000612e77565b60405162461bcd60e51b815260206004820152603660248201527f486973746f727920696e7075742070726f766964656420646964206e6f74206d6044820152750c2e8c6d040e8d0ca40caf0e0cac6e8cac840d0c2e6d60531b6064820152608401610920565b95945050505050565b6000808215612ef9576000848152600760205260409020548490640100000000900460ff16612ed1576000908152600760205260408120805464ffffffffff19168155600101555086905085612fbd565b6000908152600760205260408120600181018054825464ffffffffff19169092559190915593505b88841415612fb7576001600160a01b038716612f735785965060011960001b8914158015612f37575060008a81526005602052604090206003015415155b15612f6e5760008a815260056020526040902060030154612f5b908b908990612fca565b60008a8152600560205260408120600301555b612fb7565b866001600160a01b0316866001600160a01b031614612fb757600085891015612f9c5788612f9e565b855b9050612faf8b89610baf848d613fb1565b869750809850505b50869050855b9850989650505050505050565b6001600160a01b038216600090815260016020526040902054612fee908290613f6f565b6001600160a01b0383166000818152600160205260409081902092909255905184907f9c121aff33b50c1a53fef034ebec5f83da2d5a5187048f9c76c397ba27c1a1a69061303f9085815260200190565b60405180910390a3505050565b806130545750565b3360009081526001602052604090205480156130ac5781811061308f5761307b8282613fb1565b336000908152600160205260409020555050565b6130998183613fb1565b3360009081526001602052604081205591505b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015613103573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061312791906141df565b6131995760405162461bcd60e51b815260206004820152603960248201527f5472616e73666572206f6620746f6b656e73206661696c65642c20696e73756660448201527f66696369656e7420617070726f7665642062616c616e63653f000000000000006064820152608401610920565b5050565b60008581526005602081815260408084209092015491516131c7929188918791899188910161443e565b60405160208183030381529060405280519060200120905060008311156131fd5760008681526005602052604090206006018390555b600086815260056020818152604092839020909101839055815187815290810183905290810184905242606082015282151560808201526001600160a01b0385169087907fe47ca4ebbbc2990134d1168821f38c5e177f3d5ee564bffeadeaa351905e62219060a00160405180910390a3505050505050565b600082815260056020526040902060048101829055600101546132a690600160c01b900463ffffffff1642614416565b600092835260056020526040909220600101805463ffffffff93909316600160e01b026001600160e01b039093169290921790915550565b6000878152600560205260409020600101548790600160c01b900463ffffffff161561334c5760405162461bcd60e51b815260206004820152601760248201527f7175657374696f6e206d757374206e6f742065786973740000000000000000006044820152606401610920565b60008563ffffffff16116133a25760405162461bcd60e51b815260206004820152601860248201527f74696d656f7574206d75737420626520706f73697469766500000000000000006044820152606401610920565b6301e133808563ffffffff16106134065760405162461bcd60e51b815260206004820152602260248201527f74696d656f7574206d757374206265206c657373207468616e20333635206461604482015261797360f01b6064820152608401610920565b816001600160a01b038716158015906134285750336001600160a01b03881614155b156134f2576001600160a01b038716600090815260086020526040902054808210156134a65760405162461bcd60e51b815260206004820152602760248201527f546f6b656e732070726f7669646564206d75737420636f766572207175657374604482015266696f6e2066656560c81b6064820152608401610920565b6134b08183613fb1565b6001600160a01b0389166000908152600160205260409020549092506134d7908290613f6f565b6001600160a01b038916600090815260016020526040902055505b6000898152600560205260409020888155600101805463ffffffff888116600160c01b0263ffffffff60c01b19918916600160a01b026001600160c01b03199093166001600160a01b038c1617929092171617905580156135a057600089815260056020908152604091829020600301839055815183815290810183905233918b917f54d68405b79f2aa4fd4e8db7b67844ad254cf8f208aac476c2894134a9deab66910160405180910390a35b83156135f757600089815260056020526040908190206007018590555189907f9641ca9d53af3bead658ffcc6c7d8c35e7dae9938367bd8eb45bee35d5c62504906135ee9087815260200190565b60405180910390a25b505050505050505050565b60008181526007602052604090205463ffffffff161561366e5760405162461bcd60e51b815260206004820152602160248201527f636f6d6d69746d656e74206d757374206e6f7420616c726561647920657869736044820152601d60fa1b6064820152608401610920565b60008281526005602052604081206001015461369990600890600160c01b900463ffffffff16614479565b90506136a58142614416565b600092835260076020526040909220805463ffffffff191663ffffffff909316929092179091555050565b6000602082840312156136e257600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613727576137276136e9565b604052919050565b60006001600160401b03821115613748576137486136e9565b5060051b60200190565b600082601f83011261376357600080fd5b813560206137786137738361372f565b6136ff565b82815260059290921b8401810191818101908684111561379757600080fd5b8286015b848110156137b2578035835291830191830161379b565b509695505050505050565b6001600160a01b03811681146137d257600080fd5b50565b600082601f8301126137e657600080fd5b813560206137f66137738361372f565b82815260059290921b8401810191818101908684111561381557600080fd5b8286015b848110156137b257803561382c816137bd565b8352918301918301613819565b600080600080600060a0868803121561385157600080fd5b8535945060208601356001600160401b038082111561386f57600080fd5b61387b89838a01613752565b9550604088013591508082111561389157600080fd5b61389d89838a016137d5565b945060608801359150808211156138b357600080fd5b6138bf89838a01613752565b935060808801359150808211156138d557600080fd5b506138e288828901613752565b9150509295509295909350565b6000806040838503121561390257600080fd5b50508035926020909101359150565b803563ffffffff81168114611be457600080fd5b600080600080600060a0868803121561393d57600080fd5b85359450602086013593506040860135613956816137bd565b925061396460608701613911565b949793965091946080013592915050565b60006020828403121561398757600080fd5b8135611b46816137bd565b60008060008060008060c087890312156139ab57600080fd5b86356001600160401b03808211156139c257600080fd5b6139ce8a838b01613752565b975060208901359150808211156139e457600080fd5b6139f08a838b01613752565b96506040890135915080821115613a0657600080fd5b613a128a838b01613752565b95506060890135915080821115613a2857600080fd5b613a348a838b016137d5565b94506080890135915080821115613a4a57600080fd5b613a568a838b01613752565b935060a0890135915080821115613a6c57600080fd5b50613a7989828a01613752565b9150509295509295509295565b60008060008060808587031215613a9c57600080fd5b5050823594602084013594506040840135936060013592509050565b600082601f830112613ac957600080fd5b81356001600160401b03811115613ae257613ae26136e9565b613af5601f8201601f19166020016136ff565b818152846020838601011115613b0a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600080600080610100898b031215613b4457600080fd5b8835975060208901356001600160401b03811115613b6157600080fd5b613b6d8b828c01613ab8565b9750506040890135613b7e816137bd565b9550613b8c60608a01613911565b9450613b9a60808a01613911565b979a969950949793969560a0850135955060c08501359460e001359350915050565b60008060008060008060c08789031215613bd557600080fd5b8635955060208701356001600160401b03811115613bf257600080fd5b613bfe89828a01613ab8565b9550506040870135613c0f816137bd565b9350613c1d60608801613911565b9250613c2b60808801613911565b915060a087013590509295509295509295565b600060208284031215613c5057600080fd5b81356001600160401b03811115613c6657600080fd5b613c7284828501613ab8565b949350505050565b60008060008060008060c08789031215613c9357600080fd5b86356001600160401b0380821115613caa57600080fd5b613cb68a838b01613ab8565b97506020890135915080821115613ccc57600080fd5b50613bfe89828a01613ab8565b600080600080600060a08688031215613cf157600080fd5b8535945060208601359350604086013592506060860135613964816137bd565b60008060008060008060008060006101208a8c031215613d3057600080fd5b8935985060208a01356001600160401b03811115613d4d57600080fd5b613d598c828d01613ab8565b98505060408a0135613d6a816137bd565b9650613d7860608b01613911565b9550613d8660808b01613911565b989b979a50959894979660a0860135965060c08601359560e0810135955061010001359350915050565b60008060008060008060c08789031215613dc957600080fd5b86359550602087013594506040870135613de2816137bd565b9350606087013592506080870135915060a0870135613e00816137bd565b809150509295509295509295565b600080600080600080600060e0888a031215613e2957600080fd5b8735965060208801356001600160401b03811115613e4657600080fd5b613e528a828b01613ab8565b9650506040880135613e63816137bd565b9450613e7160608901613911565b9350613e7f60808901613911565b925060a0880135915060c0880135905092959891949750929550565b600080600060608486031215613eb057600080fd5b833592506020840135613ec2816137bd565b929592945050506040919091013590565b600080600060608486031215613ee857600080fd5b83359250602084013591506040840135613f01816137bd565b809150509250925092565b6020808252601a908201527f7175657374696f6e206d7573742062652066696e616c697a6564000000000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115613f8257613f82613f59565b500190565b634e487b7160e01b600052601260045260246000fd5b600082613fac57613fac613f87565b500490565b600082821015613fc357613fc3613f59565b500390565b6000600019821415613fdc57613fdc613f59565b5060010190565b6020808252601390820152721c5d595cdd1a5bdb881b5d5cdd08195e1a5cdd606a1b604082015260600190565b60208082526028908201527f7175657374696f6e206d757374206e6f742062652070656e64696e672061726260408201526734ba3930ba34b7b760c11b606082015260800190565b6020808252602a908201527f66696e616c697a6174696f6e20646561646c696e65206d757374206e6f742068604082015269185d99481c185cdcd95960b21b606082015260800190565b6020808252601d908201527f6f70656e696e672064617465206d757374206861766520706173736564000000604082015260600190565b602080825260159082015274626f6e64206d75737420626520706f73697469766560581b604082015260600190565b6020808252601c908201527f626f6e64206d7573742065786365656420746865206d696e696d756d00000000604082015260600190565b600081600019048311821515161561415957614159613f59565b500290565b6020808252602a908201527f626f6e64206d75737420626520646f75626c65206174206c65617374207072656040820152691d9a5bdd5cc8189bdb9960b21b606082015260800190565b6020808252601d908201527f626f6e64206d75737420657863656564206d61785f70726576696f7573000000604082015260600190565b6000602082840312156141f157600080fd5b81518015158114611b4657600080fd5b6020808252601390820152721d195b5c1b185d19481b5d5cdd08195e1a5cdd606a1b604082015260600190565b60005b83811015614249578181015183820152602001614231565b83811115614258576000848401525b50505050565b83815263ffffffff60e01b8360e01b1660208201526000825161428881602485016020870161422e565b91909101602401949350505050565b968752606095861b6bffffffffffffffffffffffff19908116602089015260e09590951b6001600160e01b0319166034880152603887019390935290841b8316605886015290921b16606c830152608082015260a00190565b6000815180845261430881602086016020860161422e565b601f01601f19169290920160200192915050565b87815260e06020820152600061433560e08301896142f0565b6001600160a01b039790971660408301525063ffffffff948516606082015292909316608083015260a082015260c0015292915050565b6000825161437e81846020870161422e565b9190910192915050565b602081526000611b4660208301846142f0565b6020808252601d908201527f6d73672e73656e646572206d7573742062652061726269747261746f72000000604082015260600190565b60208082526024908201527f7175657374696f6e206d7573742062652070656e64696e6720617262697472616040820152633a34b7b760e11b606082015260800190565b600063ffffffff80831681851680830382111561443557614435613f59565b01949350505050565b94855260208501939093526040840191909152606090811b6bffffffffffffffffffffffff191690830152151560f81b607482015260750190565b600063ffffffff8084168061449057614490613f87565b9216919091049291505056fea2646970667358221220ea8fce0721412ca65d6022c4d7f17e3020c8b5f5afa8d3e6073b5a328556405664736f6c634300080a00337b227469746c65223a20222573222c202274797065223a20226d756c7469706c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a2022626f6f6c222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a20226461746574696d65222c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202273696e676c652d73656c656374222c20226f7574636f6d6573223a205b25735d2c202263617465676f7279223a20222573222c20226c616e67223a20222573227d7b227469746c65223a20222573222c202274797065223a202275696e74222c2022646563696d616c73223a2031382c202263617465676f7279223a20222573222c20226c616e67223a20222573227d"}
@@ -0,0 +1 @@
1
+ {"contractName":"ReentrancyGuard","abi":[],"bytecode":"0x"}
@@ -0,0 +1 @@
1
+ {"contractName":"SafeERC20","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122086177b5d8028cfcb82dab84f68cb3aec7cf1a3293e7c53e32090a8097535e71c64736f6c63430008120033"}
@@ -0,0 +1 @@
1
+ {"contractName":"SafeMath","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202fee86e8208de74b3fa4b16f3b51dcf7fac733127fc4f9e663fd47168b93810464736f6c63430008120033"}
@@ -0,0 +1 @@
1
+ {"contractName":"Strings","abi":[],"bytecode":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f4041dd1e7e51c7b6b519f1d71be36e965981c92abb0e7ce860a92219f0a8dcb64736f6c63430008120033"}
@@ -0,0 +1 @@
1
+ {"contractName":"Voting","abi":[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_requiredBalance","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"enum Voting.VoteAction","name":"action","type":"uint8"},{"indexed":true,"internalType":"uint256","name":"itemId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ItemVoteAction","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"itemId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"upvotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"downvotes","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ItemVotesUpdated","type":"event"},{"inputs":[],"name":"requiredBalance","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":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"upvoteItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"downvoteItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"removeUpvoteItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"removeDownvoteItem","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"getItemVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"itemId","type":"uint256"}],"name":"hasUserVotedItem","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"bytecode":"0x608060405234801561001057600080fd5b50604051610b58380380610b5883398101604081905261002f91610058565b600180546001600160a01b0319166001600160a01b039390931692909217909155600255610092565b6000806040838503121561006b57600080fd5b82516001600160a01b038116811461008257600080fd5b6020939093015192949293505050565b610ab7806100a16000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80638ff84d181161005b5780638ff84d18146100e4578063a1d78c0214610143578063dd4e396714610156578063fc0c546a1461019657600080fd5b806308560ace1461008d578063229a4d38146100a95780635c674b33146100be57806361641b9c146100d1575b600080fd5b61009660025481565b6040519081526020015b60405180910390f35b6100bc6100b736600461097b565b6101c1565b005b6100bc6100cc36600461097b565b610265565b6100bc6100df36600461097b565b6102fd565b61012c6100f2366004610994565b6000908152602081815260408083206001600160a01b0394909416835283825280832054600190940190915290205460ff91821692911690565b6040805192151583529015156020830152016100a0565b6100bc61015136600461097b565b610395565b61018161016436600461097b565b600090815260208190526040902060028101546003909101549091565b604080519283526020830191909152016100a0565b6001546101a9906001600160a01b031681565b6040516001600160a01b0390911681526020016100a0565b6002546001546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561020c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023091906109cc565b10156102575760405162461bcd60e51b815260040161024e906109e5565b60405180910390fd5b61026281600061042d565b50565b6002546001546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156102b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102d491906109cc565b10156102f25760405162461bcd60e51b815260040161024e906109e5565b61026281600361070d565b6002546001546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015610348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036c91906109cc565b101561038a5760405162461bcd60e51b815260040161024e906109e5565b61026281600261042d565b6002546001546040516370a0823160e01b81523360048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040491906109cc565b10156104225760405162461bcd60e51b815260040161024e906109e5565b61026281600161070d565b600081600381111561044157610441610a2f565b148061045e5750600281600381111561045c5761045c610a2f565b145b6104c45760405162461bcd60e51b815260206004820152603160248201527f46756e6374696f6e20706172616d657465722068617320746f206265207570766044820152701bdd1959081bdc88191bdddb9d9bdd1959607a1b606482015260840161024e565b600082815260208190526040812090808360038111156104e6576104e6610a2f565b146104f457816001016104f6565b815b905060008084600381111561050d5761050d610a2f565b14610518578261051d565b826001015b3360009081526020849052604090205490915060ff16801561058d5760405162461bcd60e51b8152602060048201526024808201527f557365722068617320616c7265616479206120766f7465206f6e2074686973206044820152636974656d60e01b606482015260840161024e565b3360009081526020839052604090205460ff1680156105f55760008660038111156105ba576105ba610a2f565b146105db5760028501546105cf90600161095a565b856002018190556105f3565b60038501546105eb90600161095a565b856003018190555b505b600086600381111561060957610609610a2f565b1461062a57600385015461061e90600161096f565b85600301819055610642565b600285015461063a90600161096f565b856002018190555b5033600090815260208581526040808320805460ff1990811660011790915591869052909120805490911690558686600381111561068257610682610a2f565b60405142815233907fa2729191d3d43dadea9138477a0b8a336c96a26108361f706a00de867034c1db9060200160405180910390a460028501546003860154604080519283526020830191909152429082015287907ffeac3f5efe9271717007c9fe19e216ac66326c20488b228dba241f9c8f84f0609060600160405180910390a250505050505050565b600181600381111561072157610721610a2f565b148061073e5750600381600381111561073c5761073c610a2f565b145b6107b05760405162461bcd60e51b815260206004820152603d60248201527f46756e6374696f6e20706172616d657465722068617320746f2062652072656d60448201527f6f76655570766f746564206f722072656d6f7665446f776e766f746564000000606482015260840161024e565b60008281526020819052604081209060018360038111156107d3576107d3610a2f565b146107e157816001016107e3565b815b3360009081526020829052604090205490915060ff168015156001146108595760405162461bcd60e51b815260206004820152602560248201527f5573657220646f65736e27742068617665206120766f7465206f6e2074686973604482015264206974656d60d81b606482015260840161024e565b600184600381111561086d5761086d610a2f565b1461088e57600383015461088290600161095a565b836003018190556108a6565b600283015461089e90600161095a565b836002018190555b50336000908152602083905260409020805460ff19169055848460038111156108d1576108d1610a2f565b60405142815233907fa2729191d3d43dadea9138477a0b8a336c96a26108361f706a00de867034c1db9060200160405180910390a460028301546003840154604080519283526020830191909152429082015285907ffeac3f5efe9271717007c9fe19e216ac66326c20488b228dba241f9c8f84f0609060600160405180910390a25050505050565b60006109668284610a5b565b90505b92915050565b60006109668284610a6e565b60006020828403121561098d57600080fd5b5035919050565b600080604083850312156109a757600080fd5b82356001600160a01b03811681146109be57600080fd5b946020939093013593505050565b6000602082840312156109de57600080fd5b5051919050565b6020808252602a908201527f6d73672e73656e646572206d75737420686f6c64206d696e696d756d2065726360408201526932302062616c616e636560b01b606082015260800190565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561096957610969610a45565b8082018082111561096957610969610a4556fea26469706673582212201b8def8f48f4225e00ee8963718315cdfbc431c8d62bd45587c2c0f565cd4fec64736f6c63430008120033"}
@@ -0,0 +1 @@
1
+ {"contractName":"WETH9","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"guy","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"src","type":"address"},{"indexed":false,"internalType":"uint256","name":"wad","type":"uint256"}],"name":"Withdrawal","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"guy","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"wad","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"bytecode":"0x60c0604052600d60809081526c2bb930b83832b21022ba3432b960991b60a05260009061002c9082610114565b506040805180820190915260048152630ae8aa8960e31b60208201526001906100559082610114565b506002805460ff1916601217905534801561006f57600080fd5b506101d3565b634e487b7160e01b600052604160045260246000fd5b600181811c9082168061009f57607f821691505b6020821081036100bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561010f57600081815260208120601f850160051c810160208610156100ec5750805b601f850160051c820191505b8181101561010b578281556001016100f8565b5050505b505050565b81516001600160401b0381111561012d5761012d610075565b6101418161013b845461008b565b846100c5565b602080601f831160018114610176576000841561015e5750858301515b600019600386901b1c1916600185901b17855561010b565b600085815260208120601f198616915b828110156101a557888601518255948401946001909101908401610186565b50858210156101c35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6107a8806101e26000396000f3fe60806040526004361061009c5760003560e01c8063313ce56711610064578063313ce5671461015e57806370a082311461018a57806395d89b41146101b7578063a9059cbb146101cc578063d0e30db01461009c578063dd62ed3e146101ec5761009c565b806306fdde03146100a6578063095ea7b3146100d157806318160ddd1461010157806323b872dd1461011e5780632e1a7d4d1461013e575b6100a4610224565b005b3480156100b257600080fd5b506100bb61027f565b6040516100c891906105c5565b60405180910390f35b3480156100dd57600080fd5b506100f16100ec36600461062f565b61030d565b60405190151581526020016100c8565b34801561010d57600080fd5b50475b6040519081526020016100c8565b34801561012a57600080fd5b506100f1610139366004610659565b61037a565b34801561014a57600080fd5b506100a4610159366004610695565b6104fe565b34801561016a57600080fd5b506002546101789060ff1681565b60405160ff90911681526020016100c8565b34801561019657600080fd5b506101106101a53660046106ae565b60036020526000908152604090205481565b3480156101c357600080fd5b506100bb6105a4565b3480156101d857600080fd5b506100f16101e736600461062f565b6105b1565b3480156101f857600080fd5b506101106102073660046106c9565b600460209081526000928352604080842090915290825290205481565b3360009081526003602052604081208054349290610243908490610712565b909155505060405134815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2565b6000805461028c90610725565b80601f01602080910402602001604051908101604052809291908181526020018280546102b890610725565b80156103055780601f106102da57610100808354040283529160200191610305565b820191906000526020600020905b8154815290600101906020018083116102e857829003601f168201915b505050505081565b3360008181526004602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103689086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526003602052604081205482111561039f57600080fd5b6001600160a01b03841633148015906103dd57506001600160a01b038416600090815260046020908152604080832033845290915290205460001914155b1561044b576001600160a01b038416600090815260046020908152604080832033845290915290205482111561041257600080fd5b6001600160a01b03841660009081526004602090815260408083203384529091528120805484929061044590849061075f565b90915550505b6001600160a01b0384166000908152600360205260408120805484929061047390849061075f565b90915550506001600160a01b038316600090815260036020526040812080548492906104a0908490610712565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516104ec91815260200190565b60405180910390a35060019392505050565b3360009081526003602052604090205481111561051a57600080fd5b336000908152600360205260408120805483929061053990849061075f565b9091555050604051339082156108fc029083906000818181858888f1935050505015801561056b573d6000803e3d6000fd5b5060405181815233907f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b659060200160405180910390a250565b6001805461028c90610725565b60006105be33848461037a565b9392505050565b600060208083528351808285015260005b818110156105f2578581018301518582016040015282016105d6565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461062a57600080fd5b919050565b6000806040838503121561064257600080fd5b61064b83610613565b946020939093013593505050565b60008060006060848603121561066e57600080fd5b61067784610613565b925061068560208501610613565b9150604084013590509250925092565b6000602082840312156106a757600080fd5b5035919050565b6000602082840312156106c057600080fd5b6105be82610613565b600080604083850312156106dc57600080fd5b6106e583610613565b91506106f360208401610613565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610374576103746106fc565b600181811c9082168061073957607f821691505b60208210810361075957634e487b7160e01b600052602260045260246000fd5b50919050565b81810381811115610374576103746106fc56fea2646970667358221220280b2b25c2b5e4a48a6dc3eb871dc9dffcef1efa9b00cd3781f9b7f6ad07463e64736f6c63430008120033"}
@@ -0,0 +1 @@
1
+ {"contractName":"test","abi":[],"bytecode":"0x"}
@@ -0,0 +1,22 @@
1
+
2
+ // Parse all files from the bulid/contracts folder to json and remove all properties except the abi one. Save to the same filename.
3
+ const fs = require('fs');
4
+ const path = require('path');
5
+
6
+ console.log('Start cleanning contracts...');
7
+ const buildPath = path.join(__dirname, './build/contracts');
8
+ const files = fs.readdirSync(buildPath);
9
+ files.forEach(file => {
10
+ const filePath = path.join(buildPath, file);
11
+ const contract
12
+ = JSON.parse(fs.readFileSync(filePath
13
+ , { encoding: 'utf8' }));
14
+ const abi = contract.abi;
15
+ const bytecode = contract.bytecode;
16
+ const contractName = contract.contractName;
17
+ fs.writeFileSync
18
+ (filePath, JSON.stringify({ contractName, abi, bytecode }));
19
+ }
20
+ );
21
+ console.log('Finished cleanning contracts!');
22
+
@@ -0,0 +1,81 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.18;
3
+
4
+ import "@openzeppelin/contracts/token/ERC20/presets/ERC20PresetMinterPauser.sol";
5
+ import "./IPredictionMarketV3Factory.sol";
6
+
7
+ contract FantasyERC20 is ERC20PresetMinterPauser {
8
+ event TokensClaimed(address indexed user, uint256 amount, uint256 timestamp);
9
+
10
+ mapping(address => bool) usersClaimed;
11
+ address public tokenManager;
12
+ uint256 public tokenAmountToClaim;
13
+ address PMV3Factory;
14
+ address PMV3Controller;
15
+
16
+ // ------ Modifiers ------
17
+
18
+ modifier shouldNotHaveClaimedYet() {
19
+ require(usersClaimed[msg.sender] == false, "FantasyERC20: address already claimed the tokens");
20
+ _;
21
+ }
22
+
23
+ constructor(
24
+ string memory name,
25
+ string memory symbol,
26
+ uint256 _tokenAmountToClaim,
27
+ address _tokenManager,
28
+ address _PMV3Factory,
29
+ address _PMV3Controller
30
+ ) ERC20PresetMinterPauser(name, symbol) {
31
+ tokenAmountToClaim = _tokenAmountToClaim;
32
+ tokenManager = _tokenManager;
33
+ PMV3Factory = _PMV3Factory;
34
+ PMV3Controller = _PMV3Controller;
35
+ }
36
+
37
+ /// @dev Validates if the transfer is from or to the tokenManager, blocking it otherwise
38
+ function _transfer(
39
+ address from,
40
+ address to,
41
+ uint256 amount
42
+ ) internal override {
43
+ require(
44
+ from == tokenManager || to == tokenManager,
45
+ "FantasyERC20: token transfer not allowed between the addresses"
46
+ );
47
+
48
+ super._transfer(from, to, amount);
49
+ }
50
+
51
+ /// @dev Allows user to claim the amount of tokens by minting them
52
+ function claimTokens() public shouldNotHaveClaimedYet {
53
+ _mint(msg.sender, tokenAmountToClaim);
54
+
55
+ usersClaimed[msg.sender] = true;
56
+
57
+ emit TokensClaimed(msg.sender, tokenAmountToClaim, block.timestamp);
58
+ }
59
+
60
+ /// @dev Allows user to approve and claim the amount of tokens by minting them
61
+ function claimAndApproveTokens() external shouldNotHaveClaimedYet {
62
+ claimTokens();
63
+ approve(tokenManager, 2**128 - 1);
64
+ }
65
+
66
+ /// @dev Returns if the address has already claimed or not the tokens
67
+ function hasUserClaimedTokens(address user) external view returns (bool) {
68
+ return usersClaimed[user];
69
+ }
70
+
71
+ function paused() public view virtual override returns (bool) {
72
+ bool pausedSuper = super.paused();
73
+
74
+ if (PMV3Factory != address(0) && PMV3Controller != address(0)) {
75
+ IPredictionMarketV3Factory factory = IPredictionMarketV3Factory(PMV3Factory);
76
+ pausedSuper = pausedSuper || !factory.isPMControllerActive(PMV3Controller);
77
+ }
78
+
79
+ return pausedSuper;
80
+ }
81
+ }
@@ -0,0 +1,20 @@
1
+ // SPDX-License-Identifier: MIT
2
+ pragma solidity ^0.8.18;
3
+
4
+ import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
+
6
+ interface IFantasyERC20 is IERC20 {
7
+ function mint(address account, uint256 amount) external;
8
+
9
+ function burn(address account, uint256 amount) external;
10
+
11
+ function claimTokens() external;
12
+
13
+ function claimAndApproveTokens() external;
14
+
15
+ function hasUserClaimedTokens(address user) external view returns (bool);
16
+
17
+ function pause() external;
18
+
19
+ function unpause() external;
20
+ }