@gooddollar/goodprotocol 1.0.28 → 1.0.29-beta.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 (352) hide show
  1. package/artifacts/abis/BulkProof.min.json +1 -1
  2. package/artifacts/abis/DistributionBridgeMock.min.json +1 -0
  3. package/artifacts/abis/DistributionHelper.min.json +1 -0
  4. package/artifacts/abis/DistributionHelperTest.min.json +1 -0
  5. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -0
  6. package/artifacts/abis/ERC20.min.json +1 -1
  7. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -0
  8. package/artifacts/abis/GoodDollarStaking.min.json +1 -0
  9. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -0
  10. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  11. package/artifacts/abis/IERC2917.min.json +1 -1
  12. package/artifacts/abis/IGoodDollarStakingTest.min.json +1 -0
  13. package/artifacts/abis/IMultichainRouter.min.json +1 -0
  14. package/artifacts/abis/IRouter.min.json +1 -0
  15. package/artifacts/abis/IWrapper.min.json +1 -0
  16. package/artifacts/abis/Math64x64.min.json +1 -0
  17. package/artifacts/abis/MultichainBridgeHelper.min.json +1 -0
  18. package/artifacts/abis/MultichainRouterMock.min.json +1 -0
  19. package/artifacts/abis/OverMintTester.min.json +1 -1
  20. package/artifacts/abis/PausableControl.min.json +1 -0
  21. package/artifacts/abis/RewardsMinter.min.json +1 -0
  22. package/artifacts/abis/StakingMockFixedAPY.min.json +1 -0
  23. package/artifacts/abis/StakingRewardsFixedAPY.min.json +1 -0
  24. package/artifacts/abis/TokenOperation.min.json +1 -0
  25. package/artifacts/abis/cERC20.min.json +1 -1
  26. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  27. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  28. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  29. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  30. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  31. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ERC20.json +13 -0
  35. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/IERC2917.json +13 -0
  40. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  43. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  44. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  45. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  46. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +4 -0
  47. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.json +67 -0
  48. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  49. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  50. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  51. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  52. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  53. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  54. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  55. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  56. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  57. package/artifacts/contracts/Interfaces.sol/cERC20.json +13 -0
  58. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  59. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  60. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  61. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  62. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  63. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  64. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  65. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  66. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +4 -0
  67. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +1322 -0
  68. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +4 -0
  69. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.json +35 -0
  70. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  71. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  72. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  73. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  74. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  75. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  77. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  78. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  79. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +4 -0
  83. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +152 -0
  84. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +4 -0
  85. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +662 -0
  86. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +4 -0
  87. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +680 -0
  88. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  90. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +4 -0
  91. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +1322 -0
  92. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  94. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +4 -0
  97. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.json +59 -0
  98. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +4 -0
  99. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +81 -0
  100. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +4 -0
  101. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.json +49 -0
  102. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +4 -4
  104. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  106. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +4 -0
  108. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +682 -0
  109. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  111. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  114. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  115. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  116. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  118. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  119. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  120. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  121. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  123. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  125. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  127. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  128. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +4 -0
  129. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +662 -0
  130. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  131. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  132. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  133. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  134. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  135. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  136. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +75 -35
  137. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  138. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  139. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  140. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  141. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  142. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  143. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  144. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  145. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  146. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  147. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  148. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  149. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  150. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  151. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  152. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  153. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  154. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  155. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  156. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  157. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  158. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  159. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  160. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  161. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  162. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  163. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  164. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  165. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +4 -0
  166. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +10 -0
  167. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +4 -0
  168. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.json +268 -0
  169. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  170. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  171. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  172. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  173. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  174. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  175. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +3 -34
  176. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  177. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  178. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  179. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  180. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  181. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  182. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +4 -0
  183. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +1263 -0
  184. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +4 -0
  185. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.json +59 -0
  186. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +4 -0
  187. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.json +69 -0
  188. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +4 -0
  189. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +10 -0
  190. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +4 -0
  191. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +79 -0
  192. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  193. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  194. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  195. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  196. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  197. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  198. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  199. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  200. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  201. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  202. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  203. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  204. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  205. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  206. package/contracts/Interfaces.sol +20 -0
  207. package/contracts/governance/GoodDollarStaking.sol +510 -0
  208. package/contracts/governance/MultiBaseGovernanceShareField.sol +1 -0
  209. package/contracts/mocks/DistributionBridgeMock.sol +50 -0
  210. package/contracts/mocks/DistributionHelperTest.sol +22 -0
  211. package/contracts/mocks/GoodDollarStakingMock.sol +24 -0
  212. package/contracts/mocks/MultichainRouterMock.sol +38 -0
  213. package/contracts/mocks/OverMintTester.sol +39 -25
  214. package/contracts/mocks/StakingMockFixedAPY.sol +78 -0
  215. package/contracts/reserve/DistributionHelper.sol +142 -0
  216. package/contracts/reserve/GoodReserveCDai.sol +95 -41
  217. package/contracts/staking/utils/Math64X64.sol +268 -0
  218. package/contracts/staking/utils/StakingRewardsFixedAPY.sol +336 -0
  219. package/contracts/utils/BulkProof.sol +10 -10
  220. package/contracts/utils/GoodDollarMintBurnWrapper.sol +638 -0
  221. package/contracts/utils/MultichainBridgeHelper.sol +39 -0
  222. package/hardhat.config.ts +5 -3
  223. package/package.json +7 -4
  224. package/patches/@openzeppelin+hardhat-upgrades+1.7.0.patch.depracate +67 -0
  225. package/releases/deployment.json +10 -3
  226. package/releases/olddao.json +1 -1
  227. package/scripts/analytics/activeUsersCount.ts +65 -0
  228. package/scripts/analytics/activeWalletsStats.ts +150 -0
  229. package/scripts/analytics/claimIncidentStats.ts +117 -0
  230. package/scripts/analytics/faucetStats.ts +103 -0
  231. package/scripts/analytics/goodHolders.ts +50 -0
  232. package/scripts/{misc → analytics}/goodgiveback.ts +0 -0
  233. package/scripts/governance/airdropCalculation.ts +1 -0
  234. package/scripts/multichain-deploy/basicdao-deploy.ts +20 -5
  235. package/scripts/multichain-deploy/gdSavings-deploy.ts +232 -0
  236. package/scripts/multichain-deploy/helpers.ts +73 -8
  237. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +56 -0
  238. package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +170 -0
  239. package/scripts/voltageswaps.ts +47 -0
  240. package/test/governance/ClaimersDistribution.test.ts +1 -1
  241. package/test/governance/GoodDollarStaking.gd.test.ts +559 -0
  242. package/test/governance/GoodDollarStaking.good.test.ts +998 -0
  243. package/test/governance/GovernanceStaking.test.ts +43 -0
  244. package/test/helpers.ts +9 -12
  245. package/test/reserve/DistributionHelper.test.ts +394 -0
  246. package/test/reserve/GoodReserveCDai.distribution.test.ts +296 -0
  247. package/test/reserve/GoodReserveCDai.gdx.test.ts +21 -16
  248. package/test/reserve/GoodReserveCDai.pause.test.ts +116 -0
  249. package/test/staking/StakingRewardsFixedAPY.test.ts +900 -0
  250. package/test/utils/AdminWallet.test.ts +35 -6
  251. package/test/utils/GoodDollarMintBurnWrapper.test.ts +796 -0
  252. package/tsconfig.json +4 -9
  253. package/types/AccessControl.ts +361 -0
  254. package/types/CERC20.ts +25 -0
  255. package/types/DistributionBridgeMock.ts +251 -0
  256. package/types/DistributionHelper.ts +908 -0
  257. package/types/DistributionHelperTest.ts +909 -0
  258. package/types/DistributionHelperTestHelper.ts +945 -0
  259. package/types/ERC165.ts +104 -0
  260. package/types/ERC20.ts +101 -49
  261. package/types/GoodDollarMintBurnWrapper.ts +1806 -0
  262. package/types/GoodDollarStaking.ts +1855 -0
  263. package/types/GoodDollarStakingMock.ts +1855 -0
  264. package/types/GoodReserveCDai.ts +90 -55
  265. package/types/IAccessControl.ts +306 -0
  266. package/types/IERC165.ts +104 -0
  267. package/types/IERC20.ts +300 -0
  268. package/types/IERC20Metadata.ts +339 -0
  269. package/types/IERC2917.ts +25 -0
  270. package/types/IGoodDollarStakingTest.ts +160 -0
  271. package/types/IMultichainRouter.ts +166 -0
  272. package/types/IRouter.ts +143 -0
  273. package/types/IWrapper.ts +143 -0
  274. package/types/MultichainBridgeHelper.ts +170 -0
  275. package/types/MultichainRouterMock.ts +141 -0
  276. package/types/Pausable.ts +103 -0
  277. package/types/PausableControl.ts +125 -0
  278. package/types/{BulkProof.ts → RewardsMinter.ts} +24 -28
  279. package/types/StakingMockFixedAPY.ts +995 -0
  280. package/types/StakingRewardsFixedAPY.ts +428 -0
  281. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  282. package/types/factories/AccessControl__factory.ts +227 -0
  283. package/types/factories/AdminWallet__factory.ts +1 -1
  284. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  285. package/types/factories/BaseShareField__factory.ts +1 -1
  286. package/types/factories/CERC20__factory.ts +13 -0
  287. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  288. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  289. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  290. package/types/factories/DAOContract__factory.ts +1 -1
  291. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  292. package/types/factories/DistributionBridgeMock__factory.ts +207 -0
  293. package/types/factories/DistributionHelperTestHelper__factory.ts +737 -0
  294. package/types/factories/DistributionHelperTest__factory.ts +717 -0
  295. package/types/factories/DistributionHelper__factory.ts +713 -0
  296. package/types/factories/DonationsStaking__factory.ts +1 -1
  297. package/types/factories/ERC165__factory.ts +39 -0
  298. package/types/factories/ERC20__factory.ts +13 -0
  299. package/types/factories/ExchangeHelper__factory.ts +1 -1
  300. package/types/factories/FuseFaucet__factory.ts +1 -1
  301. package/types/factories/FuseStakingV3__factory.ts +1 -1
  302. package/types/factories/GReputation__factory.ts +1 -1
  303. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  304. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  305. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  306. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  307. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  308. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1318 -0
  309. package/types/factories/GoodDollarStakingMock__factory.ts +1404 -0
  310. package/types/factories/GoodDollarStaking__factory.ts +1400 -0
  311. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  312. package/types/factories/GoodFundManager__factory.ts +1 -1
  313. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  314. package/types/factories/GoodReserveCDai__factory.ts +74 -34
  315. package/types/factories/GovernanceStaking__factory.ts +1 -1
  316. package/types/factories/IAccessControl__factory.ts +198 -0
  317. package/types/factories/IERC165__factory.ts +42 -0
  318. package/types/factories/IERC20Metadata__factory.ts +248 -0
  319. package/types/factories/IERC20__factory.ts +203 -0
  320. package/types/factories/IERC2917__factory.ts +13 -0
  321. package/types/factories/IGoodDollarStakingTest__factory.ts +68 -0
  322. package/types/factories/IMultichainRouter__factory.ts +82 -0
  323. package/types/factories/IRouter__factory.ts +71 -0
  324. package/types/factories/IWrapper__factory.ts +71 -0
  325. package/types/factories/InvitesV1__factory.ts +1 -1
  326. package/types/factories/MultichainBridgeHelper__factory.ts +134 -0
  327. package/types/factories/MultichainRouterMock__factory.ts +141 -0
  328. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  329. package/types/factories/OverMintTester__factory.ts +3 -3
  330. package/types/factories/PausableControl__factory.ts +84 -0
  331. package/types/factories/Pausable__factory.ts +62 -0
  332. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  333. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  334. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  335. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  336. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  337. package/types/factories/Reputation__factory.ts +1 -1
  338. package/types/factories/RewardsMinter__factory.ts +47 -0
  339. package/types/factories/StakersDistribution__factory.ts +1 -1
  340. package/types/factories/StakingMockFixedAPY__factory.ts +745 -0
  341. package/types/factories/StakingRewardsFixedAPY__factory.ts +287 -0
  342. package/types/factories/SwapHelperTest__factory.ts +1 -1
  343. package/types/factories/UBIScheme__factory.ts +1 -1
  344. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  345. package/types/factories/UpgradableMock2__factory.ts +1 -1
  346. package/types/factories/UpgradableMock3__factory.ts +1 -1
  347. package/types/factories/UpgradableMock4__factory.ts +1 -1
  348. package/types/factories/UpgradableMock__factory.ts +1 -1
  349. package/types/hardhat.d.ts +225 -9
  350. package/types/index.ts +50 -4
  351. package/yarn.lock +180 -104
  352. package/types/factories/BulkProof__factory.ts +0 -89
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"Math64x64","sourceName":"contracts/staking/utils/Math64X64.sol","abi":[],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"MultichainBridgeHelper","sourceName":"contracts/utils/MultichainBridgeHelper.sol","abi":[{"inputs":[],"name":"anyGoodDollar","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goodDollar","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"multiChainBridge","outputs":[{"internalType":"contract IMultichainRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"onTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"MultichainRouterMock","sourceName":"contracts/mocks/MultichainRouterMock.sol","abi":[{"inputs":[{"internalType":"contract IWrapper","name":"_wrapper","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"AnySwap","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"chainId","type":"uint256"}],"name":"anySwapOut","outputs":[],"stateMutability":"nonpayable","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -1 +1 @@
1
- {"_format":"hh-sol-artifact-1","contractName":"OverMintTester","sourceName":"contracts/mocks/OverMintTester.sol","abi":[{"inputs":[{"internalType":"contract ERC20","name":"_stakingToken","type":"address"},{"internalType":"contract GovernanceStaking","name":"_stakingContract","type":"address"},{"internalType":"contract ERC20","name":"_rewardToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"overMintTest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingContract","outputs":[{"internalType":"contract GovernanceStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
1
+ {"_format":"hh-sol-artifact-1","contractName":"OverMintTester","sourceName":"contracts/mocks/OverMintTester.sol","abi":[{"inputs":[{"internalType":"contract ERC20","name":"_stakingToken","type":"address"},{"internalType":"contract IGoodDollarStakingTest","name":"_stakingContract","type":"address"},{"internalType":"contract ERC20","name":"_rewardToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"overMintTest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingContract","outputs":[{"internalType":"contract IGoodDollarStakingTest","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract ERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"PausableControl","sourceName":"contracts/utils/GoodDollarMintBurnWrapper.sol","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"PAUSE_ALL_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"RewardsMinter","sourceName":"contracts/governance/GoodDollarStaking.sol","abi":[{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendOrMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"StakingMockFixedAPY","sourceName":"contracts/mocks/StakingMockFixedAPY.sol","abi":[{"inputs":[{"internalType":"uint128","name":"_interestRatePerBlock","type":"uint128"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHARE_DECIMALS","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHARE_PRECISION","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"amountToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[{"internalType":"uint256","name":"compoundedSavings","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compoundNextBlock","outputs":[{"internalType":"uint256","name":"compoundedSavings","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"earnedRewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardsDebt","outputs":[{"internalType":"uint256","name":"debt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getSavings","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"interestRatePerBlockX64","outputs":[{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"lastSharePrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"principle","outputs":[{"internalType":"uint256","name":"deposited","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint128","name":"_interestRatePerBlock","type":"uint128"}],"name":"setAPY","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sharePrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"sharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sharesSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakersInfo","outputs":[{"internalType":"uint128","name":"lastSharePrice","type":"uint128"},{"internalType":"uint128","name":"rewardsPaid","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stats","outputs":[{"internalType":"uint128","name":"lastUpdateBlock","type":"uint128"},{"internalType":"uint128","name":"totalStaked","type":"uint128"},{"internalType":"uint128","name":"totalRewardsPaid","type":"uint128"},{"internalType":"uint256","name":"savings","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"undoReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_shares","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"depositComponent","type":"uint256"},{"internalType":"uint256","name":"rewardComponent","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_shares","type":"uint256"}],"name":"withdrawAndUndo","outputs":[{"internalType":"uint256","name":"depositComponent","type":"uint256"},{"internalType":"uint256","name":"rewardComponent","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"StakingRewardsFixedAPY","sourceName":"contracts/staking/utils/StakingRewardsFixedAPY.sol","abi":[{"inputs":[],"name":"PRECISION","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHARE_DECIMALS","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SHARE_PRECISION","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"amountToShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"earned","outputs":[{"internalType":"uint256","name":"earnedRewards","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardsDebt","outputs":[{"internalType":"uint256","name":"debt","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getSavings","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"interestRatePerBlockX64","outputs":[{"internalType":"int128","name":"","type":"int128"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"lastSharePrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"principle","outputs":[{"internalType":"uint256","name":"deposited","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sharePrice","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"sharesOf","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sharesSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakersInfo","outputs":[{"internalType":"uint128","name":"lastSharePrice","type":"uint128"},{"internalType":"uint128","name":"rewardsPaid","type":"uint128"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stats","outputs":[{"internalType":"uint128","name":"lastUpdateBlock","type":"uint128"},{"internalType":"uint128","name":"totalStaked","type":"uint128"},{"internalType":"uint128","name":"totalRewardsPaid","type":"uint128"},{"internalType":"uint256","name":"savings","type":"uint256"}],"stateMutability":"view","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -0,0 +1 @@
1
+ {"_format":"hh-sol-artifact-1","contractName":"TokenOperation","sourceName":"contracts/utils/GoodDollarMintBurnWrapper.sol","abi":[],"linkReferences":{},"deployedLinkReferences":{}}
@@ -1 +1 @@
1
- {"_format":"hh-sol-artifact-1","contractName":"cERC20","sourceName":"contracts/Interfaces.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","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":"exchangeRateCurrent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeRateStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"redeemUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
1
+ {"_format":"hh-sol-artifact-1","contractName":"cERC20","sourceName":"contracts/Interfaces.sol","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exchangeRateCurrent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"exchangeRateStored","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mintAmount","type":"uint256"}],"name":"redeemUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"}],"linkReferences":{},"deployedLinkReferences":{}}
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -126,6 +126,19 @@
126
126
  "stateMutability": "view",
127
127
  "type": "function"
128
128
  },
129
+ {
130
+ "inputs": [
131
+ {
132
+ "internalType": "uint256",
133
+ "name": "amount",
134
+ "type": "uint256"
135
+ }
136
+ ],
137
+ "name": "burn",
138
+ "outputs": [],
139
+ "stateMutability": "nonpayable",
140
+ "type": "function"
141
+ },
129
142
  {
130
143
  "inputs": [],
131
144
  "name": "decimals",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -183,6 +183,19 @@
183
183
  "stateMutability": "view",
184
184
  "type": "function"
185
185
  },
186
+ {
187
+ "inputs": [
188
+ {
189
+ "internalType": "uint256",
190
+ "name": "amount",
191
+ "type": "uint256"
192
+ }
193
+ ],
194
+ "name": "burn",
195
+ "outputs": [],
196
+ "stateMutability": "nonpayable",
197
+ "type": "function"
198
+ },
186
199
  {
187
200
  "inputs": [
188
201
  {
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
+ }
@@ -0,0 +1,67 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IMultichainRouter",
4
+ "sourceName": "contracts/Interfaces.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "token",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "to",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "amount",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "uint256",
25
+ "name": "toChainID",
26
+ "type": "uint256"
27
+ }
28
+ ],
29
+ "name": "anySwapOut",
30
+ "outputs": [],
31
+ "stateMutability": "nonpayable",
32
+ "type": "function"
33
+ },
34
+ {
35
+ "inputs": [
36
+ {
37
+ "internalType": "address",
38
+ "name": "token",
39
+ "type": "address"
40
+ },
41
+ {
42
+ "internalType": "address",
43
+ "name": "to",
44
+ "type": "address"
45
+ },
46
+ {
47
+ "internalType": "uint256",
48
+ "name": "amount",
49
+ "type": "uint256"
50
+ },
51
+ {
52
+ "internalType": "uint256",
53
+ "name": "toChainID",
54
+ "type": "uint256"
55
+ }
56
+ ],
57
+ "name": "anySwapOutUnderlying",
58
+ "outputs": [],
59
+ "stateMutability": "nonpayable",
60
+ "type": "function"
61
+ }
62
+ ],
63
+ "bytecode": "0x",
64
+ "deployedBytecode": "0x",
65
+ "linkReferences": {},
66
+ "deployedLinkReferences": {}
67
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -126,6 +126,19 @@
126
126
  "stateMutability": "view",
127
127
  "type": "function"
128
128
  },
129
+ {
130
+ "inputs": [
131
+ {
132
+ "internalType": "uint256",
133
+ "name": "amount",
134
+ "type": "uint256"
135
+ }
136
+ ],
137
+ "name": "burn",
138
+ "outputs": [],
139
+ "stateMutability": "nonpayable",
140
+ "type": "function"
141
+ },
129
142
  {
130
143
  "inputs": [],
131
144
  "name": "decimals",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }
@@ -318,8 +318,8 @@
318
318
  "type": "receive"
319
319
  }
320
320
  ],
321
- "bytecode": "0x608060405234801561001057600080fd5b50611619806100206000396000f3fe6080604052600436106100e85760003560e01c8063119e5bf3146100f45780632c159a1a1461012a5780632d000cc01461014a5780633771dcf8146101615780635bc758e2146101815780635c9302c9146101a557806378e97925146101bb5780637befab10146101d157806389b08f111461020a57806393a08de414610273578063a4c0ed3614610290578063aa31e459146102c0578063c4d66de8146102f0578063c5da103314610310578063cce987d414610348578063e6ea39391461036c578063e97eefd214610382578063f84b40f5146103a2578063fe173b97146103b857600080fd5b366100ef57005b600080fd5b34801561010057600080fd5b50600b54610114906001600160a01b031681565b604051610121919061121b565b60405180910390f35b34801561013657600080fd5b50600654610114906001600160a01b031681565b34801561015657600080fd5b5061015f6103f7565b005b34801561016d57600080fd5b5061015f61017c366004611244565b61052b565b34801561018d57600080fd5b5061019760035481565b604051908152602001610121565b3480156101b157600080fd5b5061019760055481565b3480156101c757600080fd5b5061019760045481565b3480156101dd57600080fd5b50600a546101f590600160601b900463ffffffff1681565b60405163ffffffff9091168152602001610121565b34801561021657600080fd5b5061024f610225366004611244565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff909116602083015201610121565b34801561027f57600080fd5b50600a546101f59063ffffffff1681565b34801561029c57600080fd5b506102b06102ab366004611268565b610963565b6040519015158152602001610121565b3480156102cc57600080fd5b506102b06102db366004611244565b60086020526000908152604090205460ff1681565b3480156102fc57600080fd5b5061015f61030b366004611244565b610b8c565b34801561031c57600080fd5b5061019761032b3660046112f0565b600760209081526000928352604080842090915290825290205481565b34801561035457600080fd5b50600a546101f590600160801b900463ffffffff1681565b34801561037857600080fd5b5061019760025481565b34801561038e57600080fd5b506102b061039d366004611244565b610cdc565b3480156103ae57600080fd5b5061019760015481565b3480156103c457600080fd5b50600a546103df90600160201b90046001600160401b031681565b6040516001600160401b039091168152602001610121565b600a8054600160201b600160601b031916629502f9602a1b1790819055610432906001600160401b03600160201b90910416620927c0611336565b6001600160401b0316600281815561044a9190611365565b600155600a805463ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b805473495d133b938596c9984d462f007b676bdc57ecec6001600160a01b0319909116811790915560405163095ea7b360e01b815273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb56004820152600019602482015263095ea7b390604401602060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190611384565b50565b60005a905081610539610fc8565b6005546001600160a01b0382166000908152600960205260409020546001600160801b03908116911614158061059b5750600a546001600160a01b03821660009081526009602052604090205463ffffffff918216600160801b909104909116105b6105e15760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061061190849060040161121b565b60206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611384565b8061068557506001600160a01b03811660009081526008602052604090205460ff16155b6106e05760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b60648201526084016105d8565b600060076005546106f191906113bc565b6001600160a01b0383166000908152600960205260408120546005549293509091610725916001600160801b0316906113d0565b9050600781116107355780610738565b60075b90508181116107475780610752565b6107528260016113e7565b90506000816107628460016113e7565b61076c91906113d0565b90505b8281116107e4576001600160a01b038416600090815260096020526040812060010182600781106107a2576107a26113ff565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806107dc90611415565b91505061076f565b506000805b83811161085a576001600160a01b0385166000908152600960205260409020600101816007811061081c5761081c6113ff565b600291828204019190066010029054906101000a90046001600160801b0316826108469190611430565b91508061085281611415565b9150506107e9565b50600a5460015461087891600160601b900463ffffffff1690611365565b816001600160801b0316106108ec5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b60648201526084016105d8565b6108f586610fe9565b505050505a61090490826113d0565b6109109061a4106113e7565b600a5490915033906108fc9061093690600160201b90046001600160401b031684611365565b6040518115909202916000818181858888f1935050505015801561095e573d6000803e3d6000fd5b505050565b600b546000906001600160a01b031633146109a95760405162461bcd60e51b81526020600482015260066024820152651b9bdd0811c960d21b60448201526064016105d8565b600a54600160801b900463ffffffff168411156109f35760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016105d8565b60408051600280825260608201835273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb59260009291906020830190803683370190505090503381600081518110610a4057610a406113ff565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9957600080fd5b505afa158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad19190611471565b81600181518110610ae457610ae46113ff565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe590610b2890899060009086908d90429060040161148e565b600060405180830381600087803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b7e91908101906114ff565b506001979650505050505050565b600054610100900460ff1680610ba5575060005460ff16155b610c085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105d8565b600054610100900460ff16158015610c2a576000805461ffff19166101011790555b600a8054600160201b600160601b031916629502f9602a1b1790819055610c65906001600160401b03600160201b90910416620927c0611336565b6001600160401b03166002818155610c7d9190611365565b600155600a805442600455600680546001600160a01b0319166001600160a01b03861617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b011790558015610cd8576000805461ff00191690555b5050565b6000806201518060045442610cf191906113d0565b610cfb91906115b0565b6001600160a01b038416600090815260096020526040812054919250906001600160801b038084169116141580610d5857506001600160a01b0384166000908152600960205260409020546003600160801b90910463ffffffff16105b8015610e035750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610d8f90879060040161121b565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611384565b80610e0357506001600160a01b03841660009081526008602052604090205460ff16155b6001600160a01b038516600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f01049283019260010382029150808411610e37579050505050505090506000600784610e8f91906113bc565b6001600160a01b03871660009081526009602052604081205491925090610ebf906001600160801b0316866113d0565b905060078111610ecf5780610ed2565b60075b9050818111610ee15780610eec565b610eec8260016113e7565b9050600081610efc8460016113e7565b610f0691906113d0565b90505b828111610f49576000848260078110610f2457610f246113ff565b6001600160801b03909216602092909202015280610f4181611415565b915050610f09565b506000805b838111610f8a57848160078110610f6757610f676113ff565b6020020151610f769083611430565b915080610f8281611415565b915050610f4e565b50848015610fbc5750600a54600154610fb091600160601b900463ffffffff1690611365565b816001600160801b0316105b98975050505050505050565b6201518060045442610fda91906113d0565b610fe491906115b0565b600555565b806001600160a01b0316316002541161100157600080fd5b6000816001600160a01b03163160025461101b91906113d0565b90506000600760055461102e91906113bc565b6005546001600160a01b0385166000908152600960205260409020549192506001600160801b03918216911614156110bc576001600160a01b0383166000908152600960205260409020805460019190601090611099908490600160801b900463ffffffff166115c4565b92506101000a81548163ffffffff021916908363ffffffff1602179055506110e9565b6001600160a01b0383166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038416600090815260096020526040902080546001600160801b0319166001600160801b0390921691909117815582906001018260078110611137576111376113ff565b600291828204019190066010028282829054906101000a90046001600160801b03166111639190611430565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b038316600081815260086020526040808220805460ff191660011790555184156108fc0291859190818181858888f193505050501580156111d2573d6000803e3d6000fd5b50826001600160a01b03167ff60e56b8021f6ac77bd50d4acdbed9ad9e85107144d43090774a9ebe5ffed9858360405161120e91815260200190565b60405180910390a2505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461052857600080fd5b60006020828403121561125657600080fd5b81356112618161122f565b9392505050565b6000806000806060858703121561127e57600080fd5b84356112898161122f565b93506020850135925060408501356001600160401b03808211156112ac57600080fd5b818701915087601f8301126112c057600080fd5b8135818111156112cf57600080fd5b8860208285010111156112e157600080fd5b95989497505060200194505050565b6000806040838503121561130357600080fd5b8235915060208301356113158161122f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038281168482168115158284048211161561135c5761135c611320565b02949350505050565b600081600019048311821515161561137f5761137f611320565b500290565b60006020828403121561139657600080fd5b8151801515811461126157600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826113cb576113cb6113a6565b500690565b6000828210156113e2576113e2611320565b500390565b600082198211156113fa576113fa611320565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561142957611429611320565b5060010190565b60006001600160801b0382811684821680830382111561145257611452611320565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561148357600080fd5b81516112618161122f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114de5784516001600160a01b0316835293830193918301916001016114b9565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561151257600080fd5b82516001600160401b038082111561152957600080fd5b818501915085601f83011261153d57600080fd5b81518181111561154f5761154f61145b565b8060051b604051601f19603f830116810181811085821117156115745761157461145b565b60405291825284820192508381018501918883111561159257600080fd5b938501935b82851015610fbc57845184529385019392850192611597565b6000826115bf576115bf6113a6565b500490565b600063ffffffff8083168185168083038211156114525761145261132056fea26469706673582212205a58709ad2f58e2ab700545c57d90be66138c290b726d33be7ef4ef15348d0d964736f6c63430008080033",
322
- "deployedBytecode": "0x6080604052600436106100e85760003560e01c8063119e5bf3146100f45780632c159a1a1461012a5780632d000cc01461014a5780633771dcf8146101615780635bc758e2146101815780635c9302c9146101a557806378e97925146101bb5780637befab10146101d157806389b08f111461020a57806393a08de414610273578063a4c0ed3614610290578063aa31e459146102c0578063c4d66de8146102f0578063c5da103314610310578063cce987d414610348578063e6ea39391461036c578063e97eefd214610382578063f84b40f5146103a2578063fe173b97146103b857600080fd5b366100ef57005b600080fd5b34801561010057600080fd5b50600b54610114906001600160a01b031681565b604051610121919061121b565b60405180910390f35b34801561013657600080fd5b50600654610114906001600160a01b031681565b34801561015657600080fd5b5061015f6103f7565b005b34801561016d57600080fd5b5061015f61017c366004611244565b61052b565b34801561018d57600080fd5b5061019760035481565b604051908152602001610121565b3480156101b157600080fd5b5061019760055481565b3480156101c757600080fd5b5061019760045481565b3480156101dd57600080fd5b50600a546101f590600160601b900463ffffffff1681565b60405163ffffffff9091168152602001610121565b34801561021657600080fd5b5061024f610225366004611244565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff909116602083015201610121565b34801561027f57600080fd5b50600a546101f59063ffffffff1681565b34801561029c57600080fd5b506102b06102ab366004611268565b610963565b6040519015158152602001610121565b3480156102cc57600080fd5b506102b06102db366004611244565b60086020526000908152604090205460ff1681565b3480156102fc57600080fd5b5061015f61030b366004611244565b610b8c565b34801561031c57600080fd5b5061019761032b3660046112f0565b600760209081526000928352604080842090915290825290205481565b34801561035457600080fd5b50600a546101f590600160801b900463ffffffff1681565b34801561037857600080fd5b5061019760025481565b34801561038e57600080fd5b506102b061039d366004611244565b610cdc565b3480156103ae57600080fd5b5061019760015481565b3480156103c457600080fd5b50600a546103df90600160201b90046001600160401b031681565b6040516001600160401b039091168152602001610121565b600a8054600160201b600160601b031916629502f9602a1b1790819055610432906001600160401b03600160201b90910416620927c0611336565b6001600160401b0316600281815561044a9190611365565b600155600a805463ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b805473495d133b938596c9984d462f007b676bdc57ecec6001600160a01b0319909116811790915560405163095ea7b360e01b815273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb56004820152600019602482015263095ea7b390604401602060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190611384565b50565b60005a905081610539610fc8565b6005546001600160a01b0382166000908152600960205260409020546001600160801b03908116911614158061059b5750600a546001600160a01b03821660009081526009602052604090205463ffffffff918216600160801b909104909116105b6105e15760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061061190849060040161121b565b60206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611384565b8061068557506001600160a01b03811660009081526008602052604090205460ff16155b6106e05760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b60648201526084016105d8565b600060076005546106f191906113bc565b6001600160a01b0383166000908152600960205260408120546005549293509091610725916001600160801b0316906113d0565b9050600781116107355780610738565b60075b90508181116107475780610752565b6107528260016113e7565b90506000816107628460016113e7565b61076c91906113d0565b90505b8281116107e4576001600160a01b038416600090815260096020526040812060010182600781106107a2576107a26113ff565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806107dc90611415565b91505061076f565b506000805b83811161085a576001600160a01b0385166000908152600960205260409020600101816007811061081c5761081c6113ff565b600291828204019190066010029054906101000a90046001600160801b0316826108469190611430565b91508061085281611415565b9150506107e9565b50600a5460015461087891600160601b900463ffffffff1690611365565b816001600160801b0316106108ec5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b60648201526084016105d8565b6108f586610fe9565b505050505a61090490826113d0565b6109109061a4106113e7565b600a5490915033906108fc9061093690600160201b90046001600160401b031684611365565b6040518115909202916000818181858888f1935050505015801561095e573d6000803e3d6000fd5b505050565b600b546000906001600160a01b031633146109a95760405162461bcd60e51b81526020600482015260066024820152651b9bdd0811c960d21b60448201526064016105d8565b600a54600160801b900463ffffffff168411156109f35760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016105d8565b60408051600280825260608201835273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb59260009291906020830190803683370190505090503381600081518110610a4057610a406113ff565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9957600080fd5b505afa158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad19190611471565b81600181518110610ae457610ae46113ff565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe590610b2890899060009086908d90429060040161148e565b600060405180830381600087803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b7e91908101906114ff565b506001979650505050505050565b600054610100900460ff1680610ba5575060005460ff16155b610c085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105d8565b600054610100900460ff16158015610c2a576000805461ffff19166101011790555b600a8054600160201b600160601b031916629502f9602a1b1790819055610c65906001600160401b03600160201b90910416620927c0611336565b6001600160401b03166002818155610c7d9190611365565b600155600a805442600455600680546001600160a01b0319166001600160a01b03861617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b011790558015610cd8576000805461ff00191690555b5050565b6000806201518060045442610cf191906113d0565b610cfb91906115b0565b6001600160a01b038416600090815260096020526040812054919250906001600160801b038084169116141580610d5857506001600160a01b0384166000908152600960205260409020546003600160801b90910463ffffffff16105b8015610e035750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610d8f90879060040161121b565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611384565b80610e0357506001600160a01b03841660009081526008602052604090205460ff16155b6001600160a01b038516600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f01049283019260010382029150808411610e37579050505050505090506000600784610e8f91906113bc565b6001600160a01b03871660009081526009602052604081205491925090610ebf906001600160801b0316866113d0565b905060078111610ecf5780610ed2565b60075b9050818111610ee15780610eec565b610eec8260016113e7565b9050600081610efc8460016113e7565b610f0691906113d0565b90505b828111610f49576000848260078110610f2457610f246113ff565b6001600160801b03909216602092909202015280610f4181611415565b915050610f09565b506000805b838111610f8a57848160078110610f6757610f676113ff565b6020020151610f769083611430565b915080610f8281611415565b915050610f4e565b50848015610fbc5750600a54600154610fb091600160601b900463ffffffff1690611365565b816001600160801b0316105b98975050505050505050565b6201518060045442610fda91906113d0565b610fe491906115b0565b600555565b806001600160a01b0316316002541161100157600080fd5b6000816001600160a01b03163160025461101b91906113d0565b90506000600760055461102e91906113bc565b6005546001600160a01b0385166000908152600960205260409020549192506001600160801b03918216911614156110bc576001600160a01b0383166000908152600960205260409020805460019190601090611099908490600160801b900463ffffffff166115c4565b92506101000a81548163ffffffff021916908363ffffffff1602179055506110e9565b6001600160a01b0383166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038416600090815260096020526040902080546001600160801b0319166001600160801b0390921691909117815582906001018260078110611137576111376113ff565b600291828204019190066010028282829054906101000a90046001600160801b03166111639190611430565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b038316600081815260086020526040808220805460ff191660011790555184156108fc0291859190818181858888f193505050501580156111d2573d6000803e3d6000fd5b50826001600160a01b03167ff60e56b8021f6ac77bd50d4acdbed9ad9e85107144d43090774a9ebe5ffed9858360405161120e91815260200190565b60405180910390a2505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461052857600080fd5b60006020828403121561125657600080fd5b81356112618161122f565b9392505050565b6000806000806060858703121561127e57600080fd5b84356112898161122f565b93506020850135925060408501356001600160401b03808211156112ac57600080fd5b818701915087601f8301126112c057600080fd5b8135818111156112cf57600080fd5b8860208285010111156112e157600080fd5b95989497505060200194505050565b6000806040838503121561130357600080fd5b8235915060208301356113158161122f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038281168482168115158284048211161561135c5761135c611320565b02949350505050565b600081600019048311821515161561137f5761137f611320565b500290565b60006020828403121561139657600080fd5b8151801515811461126157600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826113cb576113cb6113a6565b500690565b6000828210156113e2576113e2611320565b500390565b600082198211156113fa576113fa611320565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561142957611429611320565b5060010190565b60006001600160801b0382811684821680830382111561145257611452611320565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561148357600080fd5b81516112618161122f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114de5784516001600160a01b0316835293830193918301916001016114b9565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561151257600080fd5b82516001600160401b038082111561152957600080fd5b818501915085601f83011261153d57600080fd5b81518181111561154f5761154f61145b565b8060051b604051601f19603f830116810181811085821117156115745761157461145b565b60405291825284820192508381018501918883111561159257600080fd5b938501935b82851015610fbc57845184529385019392850192611597565b6000826115bf576115bf6113a6565b500490565b600063ffffffff8083168185168083038211156114525761145261132056fea26469706673582212205a58709ad2f58e2ab700545c57d90be66138c290b726d33be7ef4ef15348d0d964736f6c63430008080033",
321
+ "bytecode": "0x608060405234801561001057600080fd5b50611619806100206000396000f3fe6080604052600436106100e85760003560e01c8063119e5bf3146100f45780632c159a1a1461012a5780632d000cc01461014a5780633771dcf8146101615780635bc758e2146101815780635c9302c9146101a557806378e97925146101bb5780637befab10146101d157806389b08f111461020a57806393a08de414610273578063a4c0ed3614610290578063aa31e459146102c0578063c4d66de8146102f0578063c5da103314610310578063cce987d414610348578063e6ea39391461036c578063e97eefd214610382578063f84b40f5146103a2578063fe173b97146103b857600080fd5b366100ef57005b600080fd5b34801561010057600080fd5b50600b54610114906001600160a01b031681565b604051610121919061121b565b60405180910390f35b34801561013657600080fd5b50600654610114906001600160a01b031681565b34801561015657600080fd5b5061015f6103f7565b005b34801561016d57600080fd5b5061015f61017c366004611244565b61052b565b34801561018d57600080fd5b5061019760035481565b604051908152602001610121565b3480156101b157600080fd5b5061019760055481565b3480156101c757600080fd5b5061019760045481565b3480156101dd57600080fd5b50600a546101f590600160601b900463ffffffff1681565b60405163ffffffff9091168152602001610121565b34801561021657600080fd5b5061024f610225366004611244565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff909116602083015201610121565b34801561027f57600080fd5b50600a546101f59063ffffffff1681565b34801561029c57600080fd5b506102b06102ab366004611268565b610963565b6040519015158152602001610121565b3480156102cc57600080fd5b506102b06102db366004611244565b60086020526000908152604090205460ff1681565b3480156102fc57600080fd5b5061015f61030b366004611244565b610b8c565b34801561031c57600080fd5b5061019761032b3660046112f0565b600760209081526000928352604080842090915290825290205481565b34801561035457600080fd5b50600a546101f590600160801b900463ffffffff1681565b34801561037857600080fd5b5061019760025481565b34801561038e57600080fd5b506102b061039d366004611244565b610cdc565b3480156103ae57600080fd5b5061019760015481565b3480156103c457600080fd5b50600a546103df90600160201b90046001600160401b031681565b6040516001600160401b039091168152602001610121565b600a8054600160201b600160601b031916629502f9602a1b1790819055610432906001600160401b03600160201b90910416620927c0611336565b6001600160401b0316600281815561044a9190611365565b600155600a805463ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b805473495d133b938596c9984d462f007b676bdc57ecec6001600160a01b0319909116811790915560405163095ea7b360e01b815273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb56004820152600019602482015263095ea7b390604401602060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190611384565b50565b60005a905081610539610fc8565b6005546001600160a01b0382166000908152600960205260409020546001600160801b03908116911614158061059b5750600a546001600160a01b03821660009081526009602052604090205463ffffffff918216600160801b909104909116105b6105e15760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061061190849060040161121b565b60206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611384565b8061068557506001600160a01b03811660009081526008602052604090205460ff16155b6106e05760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b60648201526084016105d8565b600060076005546106f191906113bc565b6001600160a01b0383166000908152600960205260408120546005549293509091610725916001600160801b0316906113d0565b9050600781116107355780610738565b60075b90508181116107475780610752565b6107528260016113e7565b90506000816107628460016113e7565b61076c91906113d0565b90505b8281116107e4576001600160a01b038416600090815260096020526040812060010182600781106107a2576107a26113ff565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806107dc90611415565b91505061076f565b506000805b83811161085a576001600160a01b0385166000908152600960205260409020600101816007811061081c5761081c6113ff565b600291828204019190066010029054906101000a90046001600160801b0316826108469190611430565b91508061085281611415565b9150506107e9565b50600a5460015461087891600160601b900463ffffffff1690611365565b816001600160801b0316106108ec5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b60648201526084016105d8565b6108f586610fe9565b505050505a61090490826113d0565b6109109061a4106113e7565b600a5490915033906108fc9061093690600160201b90046001600160401b031684611365565b6040518115909202916000818181858888f1935050505015801561095e573d6000803e3d6000fd5b505050565b600b546000906001600160a01b031633146109a95760405162461bcd60e51b81526020600482015260066024820152651b9bdd0811c960d21b60448201526064016105d8565b600a54600160801b900463ffffffff168411156109f35760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016105d8565b60408051600280825260608201835273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb59260009291906020830190803683370190505090503381600081518110610a4057610a406113ff565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9957600080fd5b505afa158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad19190611471565b81600181518110610ae457610ae46113ff565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe590610b2890899060009086908d90429060040161148e565b600060405180830381600087803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b7e91908101906114ff565b506001979650505050505050565b600054610100900460ff1680610ba5575060005460ff16155b610c085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105d8565b600054610100900460ff16158015610c2a576000805461ffff19166101011790555b600a8054600160201b600160601b031916629502f9602a1b1790819055610c65906001600160401b03600160201b90910416620927c0611336565b6001600160401b03166002818155610c7d9190611365565b600155600a805442600455600680546001600160a01b0319166001600160a01b03861617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b011790558015610cd8576000805461ff00191690555b5050565b6000806201518060045442610cf191906113d0565b610cfb91906115b0565b6001600160a01b038416600090815260096020526040812054919250906001600160801b038084169116141580610d5857506001600160a01b0384166000908152600960205260409020546003600160801b90910463ffffffff16105b8015610e035750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610d8f90879060040161121b565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611384565b80610e0357506001600160a01b03841660009081526008602052604090205460ff16155b6001600160a01b038516600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f01049283019260010382029150808411610e37579050505050505090506000600784610e8f91906113bc565b6001600160a01b03871660009081526009602052604081205491925090610ebf906001600160801b0316866113d0565b905060078111610ecf5780610ed2565b60075b9050818111610ee15780610eec565b610eec8260016113e7565b9050600081610efc8460016113e7565b610f0691906113d0565b90505b828111610f49576000848260078110610f2457610f246113ff565b6001600160801b03909216602092909202015280610f4181611415565b915050610f09565b506000805b838111610f8a57848160078110610f6757610f676113ff565b6020020151610f769083611430565b915080610f8281611415565b915050610f4e565b50848015610fbc5750600a54600154610fb091600160601b900463ffffffff1690611365565b816001600160801b0316105b98975050505050505050565b6201518060045442610fda91906113d0565b610fe491906115b0565b600555565b806001600160a01b0316316002541161100157600080fd5b6000816001600160a01b03163160025461101b91906113d0565b90506000600760055461102e91906113bc565b6005546001600160a01b0385166000908152600960205260409020549192506001600160801b03918216911614156110bc576001600160a01b0383166000908152600960205260409020805460019190601090611099908490600160801b900463ffffffff166115c4565b92506101000a81548163ffffffff021916908363ffffffff1602179055506110e9565b6001600160a01b0383166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038416600090815260096020526040902080546001600160801b0319166001600160801b0390921691909117815582906001018260078110611137576111376113ff565b600291828204019190066010028282829054906101000a90046001600160801b03166111639190611430565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b038316600081815260086020526040808220805460ff191660011790555184156108fc0291859190818181858888f193505050501580156111d2573d6000803e3d6000fd5b50826001600160a01b03167ff60e56b8021f6ac77bd50d4acdbed9ad9e85107144d43090774a9ebe5ffed9858360405161120e91815260200190565b60405180910390a2505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461052857600080fd5b60006020828403121561125657600080fd5b81356112618161122f565b9392505050565b6000806000806060858703121561127e57600080fd5b84356112898161122f565b93506020850135925060408501356001600160401b03808211156112ac57600080fd5b818701915087601f8301126112c057600080fd5b8135818111156112cf57600080fd5b8860208285010111156112e157600080fd5b95989497505060200194505050565b6000806040838503121561130357600080fd5b8235915060208301356113158161122f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038281168482168115158284048211161561135c5761135c611320565b02949350505050565b600081600019048311821515161561137f5761137f611320565b500290565b60006020828403121561139657600080fd5b8151801515811461126157600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826113cb576113cb6113a6565b500690565b6000828210156113e2576113e2611320565b500390565b600082198211156113fa576113fa611320565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561142957611429611320565b5060010190565b60006001600160801b0382811684821680830382111561145257611452611320565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561148357600080fd5b81516112618161122f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114de5784516001600160a01b0316835293830193918301916001016114b9565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561151257600080fd5b82516001600160401b038082111561152957600080fd5b818501915085601f83011261153d57600080fd5b81518181111561154f5761154f61145b565b8060051b604051601f19603f830116810181811085821117156115745761157461145b565b60405291825284820192508381018501918883111561159257600080fd5b938501935b82851015610fbc57845184529385019392850192611597565b6000826115bf576115bf6113a6565b500490565b600063ffffffff8083168185168083038211156114525761145261132056fea2646970667358221220044b6cab0cd579c2f09b9952ed73d74e995884b36d5ecead6e11dbac847992b464736f6c63430008080033",
322
+ "deployedBytecode": "0x6080604052600436106100e85760003560e01c8063119e5bf3146100f45780632c159a1a1461012a5780632d000cc01461014a5780633771dcf8146101615780635bc758e2146101815780635c9302c9146101a557806378e97925146101bb5780637befab10146101d157806389b08f111461020a57806393a08de414610273578063a4c0ed3614610290578063aa31e459146102c0578063c4d66de8146102f0578063c5da103314610310578063cce987d414610348578063e6ea39391461036c578063e97eefd214610382578063f84b40f5146103a2578063fe173b97146103b857600080fd5b366100ef57005b600080fd5b34801561010057600080fd5b50600b54610114906001600160a01b031681565b604051610121919061121b565b60405180910390f35b34801561013657600080fd5b50600654610114906001600160a01b031681565b34801561015657600080fd5b5061015f6103f7565b005b34801561016d57600080fd5b5061015f61017c366004611244565b61052b565b34801561018d57600080fd5b5061019760035481565b604051908152602001610121565b3480156101b157600080fd5b5061019760055481565b3480156101c757600080fd5b5061019760045481565b3480156101dd57600080fd5b50600a546101f590600160601b900463ffffffff1681565b60405163ffffffff9091168152602001610121565b34801561021657600080fd5b5061024f610225366004611244565b6009602052600090815260409020546001600160801b03811690600160801b900463ffffffff1682565b604080516001600160801b03909316835263ffffffff909116602083015201610121565b34801561027f57600080fd5b50600a546101f59063ffffffff1681565b34801561029c57600080fd5b506102b06102ab366004611268565b610963565b6040519015158152602001610121565b3480156102cc57600080fd5b506102b06102db366004611244565b60086020526000908152604090205460ff1681565b3480156102fc57600080fd5b5061015f61030b366004611244565b610b8c565b34801561031c57600080fd5b5061019761032b3660046112f0565b600760209081526000928352604080842090915290825290205481565b34801561035457600080fd5b50600a546101f590600160801b900463ffffffff1681565b34801561037857600080fd5b5061019760025481565b34801561038e57600080fd5b506102b061039d366004611244565b610cdc565b3480156103ae57600080fd5b5061019760015481565b3480156103c457600080fd5b50600a546103df90600160201b90046001600160401b031681565b6040516001600160401b039091168152602001610121565b600a8054600160201b600160601b031916629502f9602a1b1790819055610432906001600160401b03600160201b90910416620927c0611336565b6001600160401b0316600281815561044a9190611365565b600155600a805463ffffffff600160601b03600160a01b03191660036501f40000000160611b01179055600b805473495d133b938596c9984d462f007b676bdc57ecec6001600160a01b0319909116811790915560405163095ea7b360e01b815273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb56004820152600019602482015263095ea7b390604401602060405180830381600087803b1580156104f057600080fd5b505af1158015610504573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105289190611384565b50565b60005a905081610539610fc8565b6005546001600160a01b0382166000908152600960205260409020546001600160801b03908116911614158061059b5750600a546001600160a01b03821660009081526009602052604090205463ffffffff918216600160801b909104909116105b6105e15760405162461bcd60e51b81526020600482015260126024820152716d6178206461696c7920746f7070696e677360701b60448201526064015b60405180910390fd5b600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf9061061190849060040161121b565b60206040518083038186803b15801561062957600080fd5b505afa15801561063d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106619190611384565b8061068557506001600160a01b03811660009081526008602052604090205460ff16155b6106e05760405162461bcd60e51b815260206004820152602660248201527f55736572206e6f742077686974656c6973746564206f72206e6f742066697273604482015265742074696d6560d01b60648201526084016105d8565b600060076005546106f191906113bc565b6001600160a01b0383166000908152600960205260408120546005549293509091610725916001600160801b0316906113d0565b9050600781116107355780610738565b60075b90508181116107475780610752565b6107528260016113e7565b90506000816107628460016113e7565b61076c91906113d0565b90505b8281116107e4576001600160a01b038416600090815260096020526040812060010182600781106107a2576107a26113ff565b600291828204019190066010026101000a8154816001600160801b0302191690836001600160801b0316021790555080806107dc90611415565b91505061076f565b506000805b83811161085a576001600160a01b0385166000908152600960205260409020600101816007811061081c5761081c6113ff565b600291828204019190066010029054906101000a90046001600160801b0316826108469190611430565b91508061085281611415565b9150506107e9565b50600a5460015461087891600160601b900463ffffffff1690611365565b816001600160801b0316106108ec5760405162461bcd60e51b815260206004820152603460248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f206044820152736d616e792074696d65732074686973207765656b60601b60648201526084016105d8565b6108f586610fe9565b505050505a61090490826113d0565b6109109061a4106113e7565b600a5490915033906108fc9061093690600160201b90046001600160401b031684611365565b6040518115909202916000818181858888f1935050505015801561095e573d6000803e3d6000fd5b505050565b600b546000906001600160a01b031633146109a95760405162461bcd60e51b81526020600482015260066024820152651b9bdd0811c960d21b60448201526064016105d8565b600a54600160801b900463ffffffff168411156109f35760405162461bcd60e51b8152602060048201526008602482015267736c69707061676560c01b60448201526064016105d8565b60408051600280825260608201835273e3f85aad0c8dd7337427b9df5d0fb741d65eeeb59260009291906020830190803683370190505090503381600081518110610a4057610a406113ff565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610a9957600080fd5b505afa158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad19190611471565b81600181518110610ae457610ae46113ff565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe590610b2890899060009086908d90429060040161148e565b600060405180830381600087803b158015610b4257600080fd5b505af1158015610b56573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b7e91908101906114ff565b506001979650505050505050565b600054610100900460ff1680610ba5575060005460ff16155b610c085760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105d8565b600054610100900460ff16158015610c2a576000805461ffff19166101011790555b600a8054600160201b600160601b031916629502f9602a1b1790819055610c65906001600160401b03600160201b90910416620927c0611336565b6001600160401b03166002818155610c7d9190611365565b600155600a805442600455600680546001600160a01b0319166001600160a01b03861617905563ffffffff600160601b03600160a01b03191660036501f40000000160611b011790558015610cd8576000805461ff00191690555b5050565b6000806201518060045442610cf191906113d0565b610cfb91906115b0565b6001600160a01b038416600090815260096020526040812054919250906001600160801b038084169116141580610d5857506001600160a01b0384166000908152600960205260409020546003600160801b90910463ffffffff16105b8015610e035750600654604051633af32abf60e01b81526001600160a01b0390911690633af32abf90610d8f90879060040161121b565b60206040518083038186803b158015610da757600080fd5b505afa158015610dbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddf9190611384565b80610e0357506001600160a01b03841660009081526008602052604090205460ff16155b6001600160a01b038516600090815260096020526040808220815160e0810192839052939450919291600101906007908285855b82829054906101000a90046001600160801b03166001600160801b031681526020019060100190602082600f01049283019260010382029150808411610e37579050505050505090506000600784610e8f91906113bc565b6001600160a01b03871660009081526009602052604081205491925090610ebf906001600160801b0316866113d0565b905060078111610ecf5780610ed2565b60075b9050818111610ee15780610eec565b610eec8260016113e7565b9050600081610efc8460016113e7565b610f0691906113d0565b90505b828111610f49576000848260078110610f2457610f246113ff565b6001600160801b03909216602092909202015280610f4181611415565b915050610f09565b506000805b838111610f8a57848160078110610f6757610f676113ff565b6020020151610f769083611430565b915080610f8281611415565b915050610f4e565b50848015610fbc5750600a54600154610fb091600160601b900463ffffffff1690611365565b816001600160801b0316105b98975050505050505050565b6201518060045442610fda91906113d0565b610fe491906115b0565b600555565b806001600160a01b0316316002541161100157600080fd5b6000816001600160a01b03163160025461101b91906113d0565b90506000600760055461102e91906113bc565b6005546001600160a01b0385166000908152600960205260409020549192506001600160801b03918216911614156110bc576001600160a01b0383166000908152600960205260409020805460019190601090611099908490600160801b900463ffffffff166115c4565b92506101000a81548163ffffffff021916908363ffffffff1602179055506110e9565b6001600160a01b0383166000908152600960205260409020805463ffffffff60801b1916600160801b1790555b6005546001600160a01b038416600090815260096020526040902080546001600160801b0319166001600160801b0390921691909117815582906001018260078110611137576111376113ff565b600291828204019190066010028282829054906101000a90046001600160801b03166111639190611430565b82546001600160801b039182166101009390930a9283029190920219909116179055506001600160a01b038316600081815260086020526040808220805460ff191660011790555184156108fc0291859190818181858888f193505050501580156111d2573d6000803e3d6000fd5b50826001600160a01b03167ff60e56b8021f6ac77bd50d4acdbed9ad9e85107144d43090774a9ebe5ffed9858360405161120e91815260200190565b60405180910390a2505050565b6001600160a01b0391909116815260200190565b6001600160a01b038116811461052857600080fd5b60006020828403121561125657600080fd5b81356112618161122f565b9392505050565b6000806000806060858703121561127e57600080fd5b84356112898161122f565b93506020850135925060408501356001600160401b03808211156112ac57600080fd5b818701915087601f8301126112c057600080fd5b8135818111156112cf57600080fd5b8860208285010111156112e157600080fd5b95989497505060200194505050565b6000806040838503121561130357600080fd5b8235915060208301356113158161122f565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b038281168482168115158284048211161561135c5761135c611320565b02949350505050565b600081600019048311821515161561137f5761137f611320565b500290565b60006020828403121561139657600080fd5b8151801515811461126157600080fd5b634e487b7160e01b600052601260045260246000fd5b6000826113cb576113cb6113a6565b500690565b6000828210156113e2576113e2611320565b500390565b600082198211156113fa576113fa611320565b500190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561142957611429611320565b5060010190565b60006001600160801b0382811684821680830382111561145257611452611320565b01949350505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561148357600080fd5b81516112618161122f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156114de5784516001600160a01b0316835293830193918301916001016114b9565b50506001600160a01b03969096166060850152505050608001529392505050565b6000602080838503121561151257600080fd5b82516001600160401b038082111561152957600080fd5b818501915085601f83011261153d57600080fd5b81518181111561154f5761154f61145b565b8060051b604051601f19603f830116810181811085821117156115745761157461145b565b60405291825284820192508381018501918883111561159257600080fd5b938501935b82851015610fbc57845184529385019392850192611597565b6000826115bf576115bf6113a6565b500490565b600063ffffffff8083168185168083038211156114525761145261132056fea2646970667358221220044b6cab0cd579c2f09b9952ed73d74e995884b36d5ecead6e11dbac847992b464736f6c63430008080033",
323
323
  "linkReferences": {},
324
324
  "deployedLinkReferences": {}
325
325
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/252dd82c79ad9963b2f7d10f9fb343c3.json"
3
+ "buildInfo": "../../../build-info/a79b8d10bad8ca69bdc79e1a0e60f3ca.json"
4
4
  }