@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,1318 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
6
+ import { Provider, TransactionRequest } from "@ethersproject/providers";
7
+ import type {
8
+ GoodDollarMintBurnWrapper,
9
+ GoodDollarMintBurnWrapperInterface,
10
+ } from "../GoodDollarMintBurnWrapper";
11
+
12
+ const _abi = [
13
+ {
14
+ anonymous: false,
15
+ inputs: [
16
+ {
17
+ indexed: false,
18
+ internalType: "address",
19
+ name: "previousAdmin",
20
+ type: "address",
21
+ },
22
+ {
23
+ indexed: false,
24
+ internalType: "address",
25
+ name: "newAdmin",
26
+ type: "address",
27
+ },
28
+ ],
29
+ name: "AdminChanged",
30
+ type: "event",
31
+ },
32
+ {
33
+ anonymous: false,
34
+ inputs: [
35
+ {
36
+ indexed: true,
37
+ internalType: "address",
38
+ name: "beacon",
39
+ type: "address",
40
+ },
41
+ ],
42
+ name: "BeaconUpgraded",
43
+ type: "event",
44
+ },
45
+ {
46
+ anonymous: false,
47
+ inputs: [
48
+ {
49
+ indexed: false,
50
+ internalType: "address",
51
+ name: "minter",
52
+ type: "address",
53
+ },
54
+ {
55
+ indexed: false,
56
+ internalType: "address",
57
+ name: "to",
58
+ type: "address",
59
+ },
60
+ {
61
+ indexed: false,
62
+ internalType: "uint256",
63
+ name: "amount",
64
+ type: "uint256",
65
+ },
66
+ ],
67
+ name: "Burned",
68
+ type: "event",
69
+ },
70
+ {
71
+ anonymous: false,
72
+ inputs: [
73
+ {
74
+ indexed: false,
75
+ internalType: "address",
76
+ name: "minter",
77
+ type: "address",
78
+ },
79
+ {
80
+ indexed: false,
81
+ internalType: "address",
82
+ name: "to",
83
+ type: "address",
84
+ },
85
+ {
86
+ indexed: false,
87
+ internalType: "uint256",
88
+ name: "amount",
89
+ type: "uint256",
90
+ },
91
+ ],
92
+ name: "Minted",
93
+ type: "event",
94
+ },
95
+ {
96
+ anonymous: false,
97
+ inputs: [
98
+ {
99
+ indexed: false,
100
+ internalType: "address",
101
+ name: "minter",
102
+ type: "address",
103
+ },
104
+ {
105
+ indexed: false,
106
+ internalType: "uint256",
107
+ name: "totalMintCapIn",
108
+ type: "uint256",
109
+ },
110
+ {
111
+ indexed: false,
112
+ internalType: "uint256",
113
+ name: "perTxCapIn",
114
+ type: "uint256",
115
+ },
116
+ {
117
+ indexed: false,
118
+ internalType: "uint32",
119
+ name: "bpsIn",
120
+ type: "uint32",
121
+ },
122
+ {
123
+ indexed: false,
124
+ internalType: "uint256",
125
+ name: "totalMintCapOut",
126
+ type: "uint256",
127
+ },
128
+ {
129
+ indexed: false,
130
+ internalType: "uint256",
131
+ name: "perTxCapOut",
132
+ type: "uint256",
133
+ },
134
+ {
135
+ indexed: false,
136
+ internalType: "uint32",
137
+ name: "bpsOut",
138
+ type: "uint32",
139
+ },
140
+ {
141
+ indexed: false,
142
+ internalType: "bool",
143
+ name: "rewardsRole",
144
+ type: "bool",
145
+ },
146
+ {
147
+ indexed: false,
148
+ internalType: "bool",
149
+ name: "isUpdate",
150
+ type: "bool",
151
+ },
152
+ ],
153
+ name: "MinterSet",
154
+ type: "event",
155
+ },
156
+ {
157
+ anonymous: false,
158
+ inputs: [
159
+ {
160
+ indexed: false,
161
+ internalType: "bytes32",
162
+ name: "role",
163
+ type: "bytes32",
164
+ },
165
+ ],
166
+ name: "Paused",
167
+ type: "event",
168
+ },
169
+ {
170
+ anonymous: false,
171
+ inputs: [
172
+ {
173
+ indexed: true,
174
+ internalType: "bytes32",
175
+ name: "role",
176
+ type: "bytes32",
177
+ },
178
+ {
179
+ indexed: true,
180
+ internalType: "bytes32",
181
+ name: "previousAdminRole",
182
+ type: "bytes32",
183
+ },
184
+ {
185
+ indexed: true,
186
+ internalType: "bytes32",
187
+ name: "newAdminRole",
188
+ type: "bytes32",
189
+ },
190
+ ],
191
+ name: "RoleAdminChanged",
192
+ type: "event",
193
+ },
194
+ {
195
+ anonymous: false,
196
+ inputs: [
197
+ {
198
+ indexed: true,
199
+ internalType: "bytes32",
200
+ name: "role",
201
+ type: "bytes32",
202
+ },
203
+ {
204
+ indexed: true,
205
+ internalType: "address",
206
+ name: "account",
207
+ type: "address",
208
+ },
209
+ {
210
+ indexed: true,
211
+ internalType: "address",
212
+ name: "sender",
213
+ type: "address",
214
+ },
215
+ ],
216
+ name: "RoleGranted",
217
+ type: "event",
218
+ },
219
+ {
220
+ anonymous: false,
221
+ inputs: [
222
+ {
223
+ indexed: true,
224
+ internalType: "bytes32",
225
+ name: "role",
226
+ type: "bytes32",
227
+ },
228
+ {
229
+ indexed: true,
230
+ internalType: "address",
231
+ name: "account",
232
+ type: "address",
233
+ },
234
+ {
235
+ indexed: true,
236
+ internalType: "address",
237
+ name: "sender",
238
+ type: "address",
239
+ },
240
+ ],
241
+ name: "RoleRevoked",
242
+ type: "event",
243
+ },
244
+ {
245
+ anonymous: false,
246
+ inputs: [
247
+ {
248
+ indexed: false,
249
+ internalType: "address",
250
+ name: "rewarder",
251
+ type: "address",
252
+ },
253
+ {
254
+ indexed: false,
255
+ internalType: "address",
256
+ name: "to",
257
+ type: "address",
258
+ },
259
+ {
260
+ indexed: false,
261
+ internalType: "uint256",
262
+ name: "amount",
263
+ type: "uint256",
264
+ },
265
+ {
266
+ indexed: false,
267
+ internalType: "uint256",
268
+ name: "sent",
269
+ type: "uint256",
270
+ },
271
+ {
272
+ indexed: false,
273
+ internalType: "uint256",
274
+ name: "minted",
275
+ type: "uint256",
276
+ },
277
+ {
278
+ indexed: false,
279
+ internalType: "uint256",
280
+ name: "outstandingMintDebt",
281
+ type: "uint256",
282
+ },
283
+ ],
284
+ name: "SendOrMint",
285
+ type: "event",
286
+ },
287
+ {
288
+ anonymous: false,
289
+ inputs: [
290
+ {
291
+ indexed: false,
292
+ internalType: "bytes32",
293
+ name: "role",
294
+ type: "bytes32",
295
+ },
296
+ ],
297
+ name: "Unpaused",
298
+ type: "event",
299
+ },
300
+ {
301
+ anonymous: false,
302
+ inputs: [
303
+ {
304
+ indexed: false,
305
+ internalType: "uint128",
306
+ name: "newFrequency",
307
+ type: "uint128",
308
+ },
309
+ ],
310
+ name: "UpdateFrequencySet",
311
+ type: "event",
312
+ },
313
+ {
314
+ anonymous: false,
315
+ inputs: [
316
+ {
317
+ indexed: true,
318
+ internalType: "address",
319
+ name: "implementation",
320
+ type: "address",
321
+ },
322
+ ],
323
+ name: "Upgraded",
324
+ type: "event",
325
+ },
326
+ {
327
+ inputs: [],
328
+ name: "BRIDGE_ROLE",
329
+ outputs: [
330
+ {
331
+ internalType: "bytes32",
332
+ name: "",
333
+ type: "bytes32",
334
+ },
335
+ ],
336
+ stateMutability: "view",
337
+ type: "function",
338
+ },
339
+ {
340
+ inputs: [],
341
+ name: "DEFAULT_ADMIN_ROLE",
342
+ outputs: [
343
+ {
344
+ internalType: "bytes32",
345
+ name: "",
346
+ type: "bytes32",
347
+ },
348
+ ],
349
+ stateMutability: "view",
350
+ type: "function",
351
+ },
352
+ {
353
+ inputs: [],
354
+ name: "GUARDIAN_ROLE",
355
+ outputs: [
356
+ {
357
+ internalType: "bytes32",
358
+ name: "",
359
+ type: "bytes32",
360
+ },
361
+ ],
362
+ stateMutability: "view",
363
+ type: "function",
364
+ },
365
+ {
366
+ inputs: [],
367
+ name: "MINTER_ROLE",
368
+ outputs: [
369
+ {
370
+ internalType: "bytes32",
371
+ name: "",
372
+ type: "bytes32",
373
+ },
374
+ ],
375
+ stateMutability: "view",
376
+ type: "function",
377
+ },
378
+ {
379
+ inputs: [],
380
+ name: "PAUSE_ALL_ROLE",
381
+ outputs: [
382
+ {
383
+ internalType: "bytes32",
384
+ name: "",
385
+ type: "bytes32",
386
+ },
387
+ ],
388
+ stateMutability: "view",
389
+ type: "function",
390
+ },
391
+ {
392
+ inputs: [],
393
+ name: "PAUSE_BURN_ROLE",
394
+ outputs: [
395
+ {
396
+ internalType: "bytes32",
397
+ name: "",
398
+ type: "bytes32",
399
+ },
400
+ ],
401
+ stateMutability: "view",
402
+ type: "function",
403
+ },
404
+ {
405
+ inputs: [],
406
+ name: "PAUSE_MINT_ROLE",
407
+ outputs: [
408
+ {
409
+ internalType: "bytes32",
410
+ name: "",
411
+ type: "bytes32",
412
+ },
413
+ ],
414
+ stateMutability: "view",
415
+ type: "function",
416
+ },
417
+ {
418
+ inputs: [],
419
+ name: "PAUSE_REWARDS_ROLE",
420
+ outputs: [
421
+ {
422
+ internalType: "bytes32",
423
+ name: "",
424
+ type: "bytes32",
425
+ },
426
+ ],
427
+ stateMutability: "view",
428
+ type: "function",
429
+ },
430
+ {
431
+ inputs: [],
432
+ name: "PAUSE_ROUTER_ROLE",
433
+ outputs: [
434
+ {
435
+ internalType: "bytes32",
436
+ name: "",
437
+ type: "bytes32",
438
+ },
439
+ ],
440
+ stateMutability: "view",
441
+ type: "function",
442
+ },
443
+ {
444
+ inputs: [],
445
+ name: "REWARDS_ROLE",
446
+ outputs: [
447
+ {
448
+ internalType: "bytes32",
449
+ name: "",
450
+ type: "bytes32",
451
+ },
452
+ ],
453
+ stateMutability: "view",
454
+ type: "function",
455
+ },
456
+ {
457
+ inputs: [],
458
+ name: "ROUTER_ROLE",
459
+ outputs: [
460
+ {
461
+ internalType: "bytes32",
462
+ name: "",
463
+ type: "bytes32",
464
+ },
465
+ ],
466
+ stateMutability: "view",
467
+ type: "function",
468
+ },
469
+ {
470
+ inputs: [
471
+ {
472
+ internalType: "address",
473
+ name: "minter",
474
+ type: "address",
475
+ },
476
+ {
477
+ internalType: "uint256",
478
+ name: "globalLimitIn",
479
+ type: "uint256",
480
+ },
481
+ {
482
+ internalType: "uint256",
483
+ name: "perTxLimitIn",
484
+ type: "uint256",
485
+ },
486
+ {
487
+ internalType: "uint32",
488
+ name: "bpsPerDayIn",
489
+ type: "uint32",
490
+ },
491
+ {
492
+ internalType: "uint256",
493
+ name: "globalLimitOut",
494
+ type: "uint256",
495
+ },
496
+ {
497
+ internalType: "uint256",
498
+ name: "perTxLimitOut",
499
+ type: "uint256",
500
+ },
501
+ {
502
+ internalType: "uint32",
503
+ name: "bpsPerDayOut",
504
+ type: "uint32",
505
+ },
506
+ {
507
+ internalType: "bool",
508
+ name: "withRewardsRole",
509
+ type: "bool",
510
+ },
511
+ ],
512
+ name: "addMinter",
513
+ outputs: [],
514
+ stateMutability: "nonpayable",
515
+ type: "function",
516
+ },
517
+ {
518
+ inputs: [],
519
+ name: "avatar",
520
+ outputs: [
521
+ {
522
+ internalType: "address",
523
+ name: "",
524
+ type: "address",
525
+ },
526
+ ],
527
+ stateMutability: "view",
528
+ type: "function",
529
+ },
530
+ {
531
+ inputs: [
532
+ {
533
+ internalType: "address",
534
+ name: "account",
535
+ type: "address",
536
+ },
537
+ ],
538
+ name: "balanceOf",
539
+ outputs: [
540
+ {
541
+ internalType: "uint256",
542
+ name: "balance",
543
+ type: "uint256",
544
+ },
545
+ ],
546
+ stateMutability: "view",
547
+ type: "function",
548
+ },
549
+ {
550
+ inputs: [
551
+ {
552
+ internalType: "address",
553
+ name: "from",
554
+ type: "address",
555
+ },
556
+ {
557
+ internalType: "uint256",
558
+ name: "amount",
559
+ type: "uint256",
560
+ },
561
+ ],
562
+ name: "burn",
563
+ outputs: [
564
+ {
565
+ internalType: "bool",
566
+ name: "",
567
+ type: "bool",
568
+ },
569
+ ],
570
+ stateMutability: "nonpayable",
571
+ type: "function",
572
+ },
573
+ {
574
+ inputs: [],
575
+ name: "currentDay",
576
+ outputs: [
577
+ {
578
+ internalType: "uint128",
579
+ name: "",
580
+ type: "uint128",
581
+ },
582
+ ],
583
+ stateMutability: "view",
584
+ type: "function",
585
+ },
586
+ {
587
+ inputs: [],
588
+ name: "dao",
589
+ outputs: [
590
+ {
591
+ internalType: "contract Controller",
592
+ name: "",
593
+ type: "address",
594
+ },
595
+ ],
596
+ stateMutability: "view",
597
+ type: "function",
598
+ },
599
+ {
600
+ inputs: [],
601
+ name: "decimals",
602
+ outputs: [
603
+ {
604
+ internalType: "uint8",
605
+ name: "",
606
+ type: "uint8",
607
+ },
608
+ ],
609
+ stateMutability: "view",
610
+ type: "function",
611
+ },
612
+ {
613
+ inputs: [
614
+ {
615
+ internalType: "bytes32",
616
+ name: "role",
617
+ type: "bytes32",
618
+ },
619
+ ],
620
+ name: "getRoleAdmin",
621
+ outputs: [
622
+ {
623
+ internalType: "bytes32",
624
+ name: "",
625
+ type: "bytes32",
626
+ },
627
+ ],
628
+ stateMutability: "view",
629
+ type: "function",
630
+ },
631
+ {
632
+ inputs: [
633
+ {
634
+ internalType: "bytes32",
635
+ name: "role",
636
+ type: "bytes32",
637
+ },
638
+ {
639
+ internalType: "uint256",
640
+ name: "index",
641
+ type: "uint256",
642
+ },
643
+ ],
644
+ name: "getRoleMember",
645
+ outputs: [
646
+ {
647
+ internalType: "address",
648
+ name: "",
649
+ type: "address",
650
+ },
651
+ ],
652
+ stateMutability: "view",
653
+ type: "function",
654
+ },
655
+ {
656
+ inputs: [
657
+ {
658
+ internalType: "bytes32",
659
+ name: "role",
660
+ type: "bytes32",
661
+ },
662
+ ],
663
+ name: "getRoleMemberCount",
664
+ outputs: [
665
+ {
666
+ internalType: "uint256",
667
+ name: "",
668
+ type: "uint256",
669
+ },
670
+ ],
671
+ stateMutability: "view",
672
+ type: "function",
673
+ },
674
+ {
675
+ inputs: [
676
+ {
677
+ internalType: "bytes32",
678
+ name: "role",
679
+ type: "bytes32",
680
+ },
681
+ {
682
+ internalType: "address",
683
+ name: "account",
684
+ type: "address",
685
+ },
686
+ ],
687
+ name: "grantRole",
688
+ outputs: [],
689
+ stateMutability: "nonpayable",
690
+ type: "function",
691
+ },
692
+ {
693
+ inputs: [
694
+ {
695
+ internalType: "bytes32",
696
+ name: "role",
697
+ type: "bytes32",
698
+ },
699
+ {
700
+ internalType: "address",
701
+ name: "account",
702
+ type: "address",
703
+ },
704
+ ],
705
+ name: "hasRole",
706
+ outputs: [
707
+ {
708
+ internalType: "bool",
709
+ name: "",
710
+ type: "bool",
711
+ },
712
+ ],
713
+ stateMutability: "view",
714
+ type: "function",
715
+ },
716
+ {
717
+ inputs: [
718
+ {
719
+ internalType: "address",
720
+ name: "_admin",
721
+ type: "address",
722
+ },
723
+ {
724
+ internalType: "contract INameService",
725
+ name: "_nameService",
726
+ type: "address",
727
+ },
728
+ ],
729
+ name: "initialize",
730
+ outputs: [],
731
+ stateMutability: "nonpayable",
732
+ type: "function",
733
+ },
734
+ {
735
+ inputs: [
736
+ {
737
+ internalType: "address",
738
+ name: "to",
739
+ type: "address",
740
+ },
741
+ {
742
+ internalType: "uint256",
743
+ name: "amount",
744
+ type: "uint256",
745
+ },
746
+ ],
747
+ name: "mint",
748
+ outputs: [
749
+ {
750
+ internalType: "bool",
751
+ name: "",
752
+ type: "bool",
753
+ },
754
+ ],
755
+ stateMutability: "nonpayable",
756
+ type: "function",
757
+ },
758
+ {
759
+ inputs: [
760
+ {
761
+ internalType: "address",
762
+ name: "",
763
+ type: "address",
764
+ },
765
+ ],
766
+ name: "minterOutLimits",
767
+ outputs: [
768
+ {
769
+ internalType: "uint256",
770
+ name: "maxOut",
771
+ type: "uint256",
772
+ },
773
+ {
774
+ internalType: "uint256",
775
+ name: "capOut",
776
+ type: "uint256",
777
+ },
778
+ {
779
+ internalType: "uint256",
780
+ name: "totalOut",
781
+ type: "uint256",
782
+ },
783
+ {
784
+ internalType: "uint128",
785
+ name: "dailyCapOut",
786
+ type: "uint128",
787
+ },
788
+ {
789
+ internalType: "uint128",
790
+ name: "burnedToday",
791
+ type: "uint128",
792
+ },
793
+ {
794
+ internalType: "uint32",
795
+ name: "bpsPerDayOut",
796
+ type: "uint32",
797
+ },
798
+ ],
799
+ stateMutability: "view",
800
+ type: "function",
801
+ },
802
+ {
803
+ inputs: [
804
+ {
805
+ internalType: "address",
806
+ name: "",
807
+ type: "address",
808
+ },
809
+ ],
810
+ name: "minterSupply",
811
+ outputs: [
812
+ {
813
+ internalType: "uint256",
814
+ name: "maxIn",
815
+ type: "uint256",
816
+ },
817
+ {
818
+ internalType: "uint256",
819
+ name: "capIn",
820
+ type: "uint256",
821
+ },
822
+ {
823
+ internalType: "uint256",
824
+ name: "totalIn",
825
+ type: "uint256",
826
+ },
827
+ {
828
+ internalType: "uint128",
829
+ name: "dailyCapIn",
830
+ type: "uint128",
831
+ },
832
+ {
833
+ internalType: "uint128",
834
+ name: "mintedToday",
835
+ type: "uint128",
836
+ },
837
+ {
838
+ internalType: "uint128",
839
+ name: "lastUpdate",
840
+ type: "uint128",
841
+ },
842
+ {
843
+ internalType: "uint128",
844
+ name: "totalRewards",
845
+ type: "uint128",
846
+ },
847
+ {
848
+ internalType: "uint32",
849
+ name: "bpsPerDayIn",
850
+ type: "uint32",
851
+ },
852
+ {
853
+ internalType: "uint128",
854
+ name: "lastDayReset",
855
+ type: "uint128",
856
+ },
857
+ ],
858
+ stateMutability: "view",
859
+ type: "function",
860
+ },
861
+ {
862
+ inputs: [],
863
+ name: "name",
864
+ outputs: [
865
+ {
866
+ internalType: "string",
867
+ name: "",
868
+ type: "string",
869
+ },
870
+ ],
871
+ stateMutability: "view",
872
+ type: "function",
873
+ },
874
+ {
875
+ inputs: [],
876
+ name: "nameService",
877
+ outputs: [
878
+ {
879
+ internalType: "contract INameService",
880
+ name: "",
881
+ type: "address",
882
+ },
883
+ ],
884
+ stateMutability: "view",
885
+ type: "function",
886
+ },
887
+ {
888
+ inputs: [],
889
+ name: "nativeToken",
890
+ outputs: [
891
+ {
892
+ internalType: "contract IGoodDollar",
893
+ name: "",
894
+ type: "address",
895
+ },
896
+ ],
897
+ stateMutability: "view",
898
+ type: "function",
899
+ },
900
+ {
901
+ inputs: [
902
+ {
903
+ internalType: "address",
904
+ name: "sender",
905
+ type: "address",
906
+ },
907
+ {
908
+ internalType: "uint256",
909
+ name: "amount",
910
+ type: "uint256",
911
+ },
912
+ {
913
+ internalType: "bytes",
914
+ name: "data",
915
+ type: "bytes",
916
+ },
917
+ ],
918
+ name: "onTokenTransfer",
919
+ outputs: [
920
+ {
921
+ internalType: "bool",
922
+ name: "",
923
+ type: "bool",
924
+ },
925
+ ],
926
+ stateMutability: "nonpayable",
927
+ type: "function",
928
+ },
929
+ {
930
+ inputs: [],
931
+ name: "owner",
932
+ outputs: [
933
+ {
934
+ internalType: "address",
935
+ name: "",
936
+ type: "address",
937
+ },
938
+ ],
939
+ stateMutability: "view",
940
+ type: "function",
941
+ },
942
+ {
943
+ inputs: [
944
+ {
945
+ internalType: "bytes32",
946
+ name: "role",
947
+ type: "bytes32",
948
+ },
949
+ ],
950
+ name: "pause",
951
+ outputs: [],
952
+ stateMutability: "nonpayable",
953
+ type: "function",
954
+ },
955
+ {
956
+ inputs: [
957
+ {
958
+ internalType: "bytes32",
959
+ name: "role",
960
+ type: "bytes32",
961
+ },
962
+ ],
963
+ name: "paused",
964
+ outputs: [
965
+ {
966
+ internalType: "bool",
967
+ name: "",
968
+ type: "bool",
969
+ },
970
+ ],
971
+ stateMutability: "view",
972
+ type: "function",
973
+ },
974
+ {
975
+ inputs: [
976
+ {
977
+ internalType: "bytes32",
978
+ name: "role",
979
+ type: "bytes32",
980
+ },
981
+ {
982
+ internalType: "address",
983
+ name: "account",
984
+ type: "address",
985
+ },
986
+ ],
987
+ name: "renounceRole",
988
+ outputs: [],
989
+ stateMutability: "nonpayable",
990
+ type: "function",
991
+ },
992
+ {
993
+ inputs: [
994
+ {
995
+ internalType: "bytes32",
996
+ name: "role",
997
+ type: "bytes32",
998
+ },
999
+ {
1000
+ internalType: "address",
1001
+ name: "account",
1002
+ type: "address",
1003
+ },
1004
+ ],
1005
+ name: "revokeRole",
1006
+ outputs: [],
1007
+ stateMutability: "nonpayable",
1008
+ type: "function",
1009
+ },
1010
+ {
1011
+ inputs: [
1012
+ {
1013
+ internalType: "address",
1014
+ name: "to",
1015
+ type: "address",
1016
+ },
1017
+ {
1018
+ internalType: "uint256",
1019
+ name: "amount",
1020
+ type: "uint256",
1021
+ },
1022
+ ],
1023
+ name: "sendOrMint",
1024
+ outputs: [
1025
+ {
1026
+ internalType: "uint256",
1027
+ name: "totalSent",
1028
+ type: "uint256",
1029
+ },
1030
+ ],
1031
+ stateMutability: "nonpayable",
1032
+ type: "function",
1033
+ },
1034
+ {
1035
+ inputs: [
1036
+ {
1037
+ internalType: "address",
1038
+ name: "minter",
1039
+ type: "address",
1040
+ },
1041
+ {
1042
+ internalType: "uint256",
1043
+ name: "globalLimitIn",
1044
+ type: "uint256",
1045
+ },
1046
+ {
1047
+ internalType: "uint256",
1048
+ name: "perTxLimitIn",
1049
+ type: "uint256",
1050
+ },
1051
+ {
1052
+ internalType: "uint32",
1053
+ name: "bpsPerDayIn",
1054
+ type: "uint32",
1055
+ },
1056
+ {
1057
+ internalType: "uint256",
1058
+ name: "globalLimitOut",
1059
+ type: "uint256",
1060
+ },
1061
+ {
1062
+ internalType: "uint256",
1063
+ name: "perTxLimitOut",
1064
+ type: "uint256",
1065
+ },
1066
+ {
1067
+ internalType: "uint32",
1068
+ name: "bpsPerDayOut",
1069
+ type: "uint32",
1070
+ },
1071
+ ],
1072
+ name: "setMinterCaps",
1073
+ outputs: [],
1074
+ stateMutability: "nonpayable",
1075
+ type: "function",
1076
+ },
1077
+ {
1078
+ inputs: [
1079
+ {
1080
+ internalType: "uint128",
1081
+ name: "inSeconds",
1082
+ type: "uint128",
1083
+ },
1084
+ ],
1085
+ name: "setUpdateFrequency",
1086
+ outputs: [],
1087
+ stateMutability: "nonpayable",
1088
+ type: "function",
1089
+ },
1090
+ {
1091
+ inputs: [
1092
+ {
1093
+ internalType: "bytes4",
1094
+ name: "interfaceId",
1095
+ type: "bytes4",
1096
+ },
1097
+ ],
1098
+ name: "supportsInterface",
1099
+ outputs: [
1100
+ {
1101
+ internalType: "bool",
1102
+ name: "",
1103
+ type: "bool",
1104
+ },
1105
+ ],
1106
+ stateMutability: "view",
1107
+ type: "function",
1108
+ },
1109
+ {
1110
+ inputs: [],
1111
+ name: "symbol",
1112
+ outputs: [
1113
+ {
1114
+ internalType: "string",
1115
+ name: "",
1116
+ type: "string",
1117
+ },
1118
+ ],
1119
+ stateMutability: "view",
1120
+ type: "function",
1121
+ },
1122
+ {
1123
+ inputs: [],
1124
+ name: "token",
1125
+ outputs: [
1126
+ {
1127
+ internalType: "address",
1128
+ name: "",
1129
+ type: "address",
1130
+ },
1131
+ ],
1132
+ stateMutability: "view",
1133
+ type: "function",
1134
+ },
1135
+ {
1136
+ inputs: [],
1137
+ name: "totalMintCap_unused",
1138
+ outputs: [
1139
+ {
1140
+ internalType: "uint256",
1141
+ name: "",
1142
+ type: "uint256",
1143
+ },
1144
+ ],
1145
+ stateMutability: "view",
1146
+ type: "function",
1147
+ },
1148
+ {
1149
+ inputs: [],
1150
+ name: "totalMintDebt",
1151
+ outputs: [
1152
+ {
1153
+ internalType: "uint128",
1154
+ name: "",
1155
+ type: "uint128",
1156
+ },
1157
+ ],
1158
+ stateMutability: "view",
1159
+ type: "function",
1160
+ },
1161
+ {
1162
+ inputs: [],
1163
+ name: "totalMinted",
1164
+ outputs: [
1165
+ {
1166
+ internalType: "uint256",
1167
+ name: "",
1168
+ type: "uint256",
1169
+ },
1170
+ ],
1171
+ stateMutability: "view",
1172
+ type: "function",
1173
+ },
1174
+ {
1175
+ inputs: [],
1176
+ name: "totalRewards",
1177
+ outputs: [
1178
+ {
1179
+ internalType: "uint128",
1180
+ name: "",
1181
+ type: "uint128",
1182
+ },
1183
+ ],
1184
+ stateMutability: "view",
1185
+ type: "function",
1186
+ },
1187
+ {
1188
+ inputs: [
1189
+ {
1190
+ internalType: "bytes32",
1191
+ name: "role",
1192
+ type: "bytes32",
1193
+ },
1194
+ ],
1195
+ name: "unpause",
1196
+ outputs: [],
1197
+ stateMutability: "nonpayable",
1198
+ type: "function",
1199
+ },
1200
+ {
1201
+ inputs: [],
1202
+ name: "updateAvatar",
1203
+ outputs: [],
1204
+ stateMutability: "nonpayable",
1205
+ type: "function",
1206
+ },
1207
+ {
1208
+ inputs: [],
1209
+ name: "updateFrequency",
1210
+ outputs: [
1211
+ {
1212
+ internalType: "uint128",
1213
+ name: "",
1214
+ type: "uint128",
1215
+ },
1216
+ ],
1217
+ stateMutability: "view",
1218
+ type: "function",
1219
+ },
1220
+ {
1221
+ inputs: [],
1222
+ name: "upgrade1",
1223
+ outputs: [],
1224
+ stateMutability: "nonpayable",
1225
+ type: "function",
1226
+ },
1227
+ {
1228
+ inputs: [],
1229
+ name: "upgrade2",
1230
+ outputs: [],
1231
+ stateMutability: "nonpayable",
1232
+ type: "function",
1233
+ },
1234
+ {
1235
+ inputs: [
1236
+ {
1237
+ internalType: "address",
1238
+ name: "newImplementation",
1239
+ type: "address",
1240
+ },
1241
+ ],
1242
+ name: "upgradeTo",
1243
+ outputs: [],
1244
+ stateMutability: "nonpayable",
1245
+ type: "function",
1246
+ },
1247
+ {
1248
+ inputs: [
1249
+ {
1250
+ internalType: "address",
1251
+ name: "newImplementation",
1252
+ type: "address",
1253
+ },
1254
+ {
1255
+ internalType: "bytes",
1256
+ name: "data",
1257
+ type: "bytes",
1258
+ },
1259
+ ],
1260
+ name: "upgradeToAndCall",
1261
+ outputs: [],
1262
+ stateMutability: "payable",
1263
+ type: "function",
1264
+ },
1265
+ ];
1266
+
1267
+ const _bytecode =
1268
+ "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c6142ac61004b600039600081816110f001528181611130015281816113b801526113f801526142ac6000f3fe60806040526004361061025a5760003560e01c806301ffc9a71461025f57806306fdde03146102945780630e15561a146102b657806317eebf21146102eb5780631b3c90a814610319578063248a9ca31461033057806324ea54f4146103505780632d000cc0146103725780632f2ff15d146103875780632f4dae9f146103a757806330d643b5146103c7578063313ce567146103fb57806336568abe146104225780633659cfe6146104425780633e6326fc1461046257806340c10f19146104905780634162169f146104b0578063485cc955146104d15780634cabdbfb146104f15780634f1ef286146105065780634f31e2b5146105195780635955b5921461053a5780635ad411611461055c5780635aef7de61461057c5780635c9302c91461059d578063673ea086146105be57806370a08231146105e65780638da5cb5b146106065780639010d07c1461061b57806391d148541461063b578063956092121461065b57806395d89b41146107335780639ac25d08146107485780639dc29fac1461075d5780639e9e46661461077d578063a19ff6801461079d578063a217fddf14610748578063a2309ff8146107bf578063a4c0ed36146107d6578063abccdb52146107f6578063b32ad1a614610816578063b5bfddea14610838578063ca15c8731461086c578063ca4fb87c1461088c578063d5391393146108ae578063d547741f146108d0578063d56b73a4146108f0578063e1758bd814610995578063e47cbcbe146109aa578063ed56531a146109c1578063f1755339146109e1578063fc0c546a14610a01578063fe2e98b914610a22575b600080fd5b34801561026b57600080fd5b5061027f61027a366004613852565b610a44565b60405190151581526020015b60405180910390f35b3480156102a057600080fd5b506102a9610a6f565b60405161028b91906138a8565b3480156102c257600080fd5b50610169546102de90600160801b90046001600160801b031681565b60405161028b91906138db565b3480156102f757600080fd5b5061030b610306366004613904565b610af6565b60405190815260200161028b565b34801561032557600080fd5b5061032e610e1f565b005b34801561033c57600080fd5b5061030b61034b366004613930565b610f67565b34801561035c57600080fd5b5061030b60008051602061425783398151915281565b34801561037e57600080fd5b5061032e610f7c565b34801561039357600080fd5b5061032e6103a2366004613949565b610fae565b3480156103b357600080fd5b5061032e6103c2366004613930565b610fd5565b3480156103d357600080fd5b5061030b7f7a05a596cb0ce7fdea8a1e1ec73be300bdb35097c944ce1897202f7a13122eb281565b34801561040757600080fd5b50610410611045565b60405160ff909116815260200161028b565b34801561042e57600080fd5b5061032e61043d366004613949565b6110c3565b34801561044e57600080fd5b5061032e61045d366004613979565b6110e5565b34801561046e57600080fd5b5061013054610483906001600160a01b031681565b60405161028b9190613996565b34801561049c57600080fd5b5061027f6104ab366004613904565b6111ae565b3480156104bc57600080fd5b5061012e54610483906001600160a01b031681565b3480156104dd57600080fd5b5061032e6104ec3660046139aa565b611221565b3480156104fd57600080fd5b5061032e611342565b61032e610514366004613a9b565b6113ad565b34801561052557600080fd5b50610169546102de906001600160801b031681565b34801561054657600080fd5b5061030b60008051602061423783398151915281565b34801561056857600080fd5b5061032e610577366004613b11565b611463565b34801561058857600080fd5b5061012f54610483906001600160a01b031681565b3480156105a957600080fd5b50610168546102de906001600160801b031681565b3480156105ca57600080fd5b50610168546102de90600160801b90046001600160801b031681565b3480156105f257600080fd5b5061030b610601366004613979565b6114f4565b34801561061257600080fd5b50610483611576565b34801561062757600080fd5b50610483610636366004613b92565b61157e565b34801561064757600080fd5b5061027f610656366004613949565b61159d565b34801561066757600080fd5b506106da610676366004613979565b610163602052600090815260409020805460018201546002830154600384015460048501546005909501549394929391926001600160801b0380831693600160801b93849004821693838316930482169163ffffffff821691600160201b90041689565b60408051998a5260208a0198909852968801959095526001600160801b0393841660608801529183166080870152821660a0860152811660c085015263ffffffff90911660e0840152166101008201526101200161028b565b34801561073f57600080fd5b506102a96115c8565b34801561075457600080fd5b5061030b600081565b34801561076957600080fd5b5061027f610778366004613904565b61160e565b34801561078957600080fd5b5061027f610798366004613930565b6116ca565b3480156107a957600080fd5b5061030b6000805160206141d083398151915281565b3480156107cb57600080fd5b5061030b6101655481565b3480156107e257600080fd5b5061027f6107f1366004613bb4565b6116df565b34801561080257600080fd5b5061032e610811366004613c0c565b611887565b34801561082257600080fd5b5061030b60008051602061410b83398151915281565b34801561084457600080fd5b5061030b7f52ba824bfabc2bcfcdf7f0edbb486ebb05e1836c90e78047efeb949990f72e5f81565b34801561087857600080fd5b5061030b610887366004613930565b6118fc565b34801561089857600080fd5b5061030b6000805160206141b083398151915281565b3480156108ba57600080fd5b5061030b60008051602061421783398151915281565b3480156108dc57600080fd5b5061032e6108eb366004613949565b611913565b3480156108fc57600080fd5b5061095661090b366004613979565b61016a60205260009081526040902080546001820154600283015460038401546004909401549293919290916001600160801b0380821692600160801b909204169063ffffffff1686565b604080519687526020870195909552938501929092526001600160801b03908116606085015216608083015263ffffffff1660a082015260c00161028b565b3480156109a157600080fd5b5061048361191d565b3480156109b657600080fd5b5061030b6101645481565b3480156109cd57600080fd5b5061032e6109dc366004613930565b6119b5565b3480156109ed57600080fd5b5061032e6109fc366004613c78565b611a1a565b348015610a0d57600080fd5b5061016654610483906001600160a01b031681565b348015610a2e57600080fd5b5061030b60008051602061412b83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610a695750610a6982611acd565b92915050565b61016654604080516306fdde0360e01b815290516060926001600160a01b0316916306fdde03916004808301926000929190829003018186803b158015610ab557600080fd5b505afa158015610ac9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af19190810190613ca1565b905090565b60006000805160206141b0833981519152610b118133611b02565b60008051602061412b833981519152610b29816116ca565b158015610b3d5750610b3b60006116ca565b155b610b625760405162461bcd60e51b8152600401610b5990613d0e565b60405180910390fd5b610b6b33611b66565b33600090815261016360205260408120600301546001600160801b031615610bcb573360009081526101636020526040902060030154610bbd906001600160801b03600160801b820481169116613d55565b6001600160801b0316610bcd565b845b610166546040516370a0823160e01b8152919250600091610c5c916001600160a01b0316906370a0823190610c06903090600401613996565b60206040518083038186803b158015610c1e57600080fd5b505afa158015610c32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c569190613d7d565b87611de8565b90506000610c73610c6d8389613d96565b84611de8565b9050610c7f8183613dad565b3360009081526101636020526040902060040180549197508791601090610cb7908490600160801b90046001600160801b0316613dc5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508561016960108282829054906101000a90046001600160801b0316610d009190613dc5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508061016960008282829054906101000a90046001600160801b0316610d499190613dc5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506000811115610d8057610d808882611dfe565b8115610d9e5761016654610d9e906001600160a01b031689846121ee565b80610dab57610dab612244565b61016954604080513381526001600160a01b038b1660208201528082018a905260608101859052608081018490526001600160801b0390921660a0830152517fdea51570922020f525c1f30d8c1c57bd3cffe5632d70d13aaf8f8451388dbd959181900360c00190a1505050505092915050565b6101305460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610e7e57600080fd5b505afa158015610e92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb69190613df0565b61012e80546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b158015610f0c57600080fd5b505afa158015610f20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f449190613df0565b61012f80546001600160a01b0319166001600160a01b0392909216919091179055565b60009081526065602052604090206001015490565b61016854600160801b90046001600160801b0316610fac5761016880546001600160801b03166176a760881b1790555b565b610fb882826123a6565b6000828152609760205260409020610fd090826123c3565b505050565b60408051808201909152600080516020614257833981519152815260006020820181905261100b9082905b60200201513361159d565b8061101c575061101c816001611000565b6110385760405162461bcd60e51b8152600401610b5990613e23565b611041826123d8565b5050565b610166546040805163313ce56760e01b815290516000926001600160a01b03169163313ce567916004808301926020929190829003018186803b15801561108b57600080fd5b505afa15801561109f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190613e49565b6110cd8282612484565b6000828152609760205260409020610fd090826124fe565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561112e5760405162461bcd60e51b8152600401610b5990613e6c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611160612513565b6001600160a01b0316146111865760405162461bcd60e51b8152600401610b5990613ea6565b61118f8161252f565b604080516000808252602082019092526111ab91839190612537565b50565b60006000805160206142178339815191526111c98133611b02565b6111d233611b66565b6111dc8484611dfe565b7f9d228d69b5fdb8d273a2336f8fb8612d039631024ea9bf09c424a9503aa078f033858560405161120f93929190613ee0565b60405180910390a15060019392505050565b600054610100900460ff168061123a575060005460ff16155b6112565760405162461bcd60e51b8152600401610b5990613f04565b600054610100900460ff16158015611278576000805461ffff19166101011790555b611280612677565b61128982612702565b6001600160a01b0383166112d45760405162461bcd60e51b81526020600482015260126024820152717a65726f2061646d696e206164647265737360701b6044820152606401610b59565b6112dc61191d565b61016680546001600160a01b0319166001600160a01b0392831617905561016880546001600160801b03166176a760881b17905561012f546113219160009116612726565b61132c600084612726565b8015610fd0576000805461ff0019169055505050565b61016660009054906101000a90046001600160a01b03166001600160a01b031663986502756040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561139357600080fd5b505af11580156113a7573d6000803e3d6000fd5b50505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156113f65760405162461bcd60e51b8152600401610b5990613e6c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611428612513565b6001600160a01b03161461144e5760405162461bcd60e51b8152600401610b5990613ea6565b6114578261252f565b61104182826001612537565b600061146f8133611b02565b81156114aa5761148d6000805160206141b08339815191528a610fae565b6114a56000805160206142178339815191528a611913565b6114da565b6114c26000805160206142178339815191528a610fae565b6114da6000805160206141b08339815191528a611913565b6114e989898989898989612730565b505050505050505050565b610166546040516370a0823160e01b81526000916001600160a01b0316906370a0823190611526908590600401613996565b60206040518083038186803b15801561153e57600080fd5b505afa158015611552573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a699190613d7d565b6000610af181805b600082815260976020526040812061159690836129f0565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61016654604080516395d89b4160e01b815290516060926001600160a01b0316916395d89b41916004808301926000929190829003018186803b158015610ab557600080fd5b60006000805160206142178339815191526116298133611b02565b600080516020614237833981519152611641816116ca565b158015611655575061165360006116ca565b155b6116715760405162461bcd60e51b8152600401610b5990613d0e565b61167a33611b66565b61168485856129fc565b7f6ab368f832c266c8eb942b84fbcaa20aedc24a699d2a05fae2568028733b1d093386866040516116b793929190613ee0565b60405180910390a1506001949350505050565b600090815260c9602052604090205460ff1690565b610166546000906001600160a01b031633146116fa57600080fd5b600080838060200190518101906117119190613f52565b9150915080600014156117555760405162461bcd60e51b815260206004820152600c60248201526b1e995c9bc818da185a5b925960a21b6044820152606401610b59565b6001600160a01b038216611769578561176b565b815b6101305460405163bf40fac160e01b815260206004820152601160248201527026aaa62a24a1a420a4a72fa927aaaa22a960791b60448201529193506001600160a01b03169063bf40fac19060640160206040518083038186803b1580156117d257600080fd5b505afa1580156117e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061180a9190613df0565b60405163241dc2df60e01b81523060048201526001600160a01b0384811660248301526044820188905260648201849052919091169063241dc2df90608401600060405180830381600087803b15801561186357600080fd5b505af1158015611877573d6000803e3d6000fd5b5060019998505050505050505050565b6040805180820190915260008051602061425783398151915281526000602082018190526118b6908290611000565b806118c757506118c7816001611000565b6118e35760405162461bcd60e51b8152600401610b5990613e23565b6118f288888888888888612730565b5050505050505050565b6000818152609760205260408120610a6990612d30565b6110cd8282612d3a565b6101305460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561197d57600080fd5b505afa158015611991573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af19190613df0565b6040805180820190915260008051602061425783398151915281526000602082018190526119e4908290611000565b806119f557506119f5816001611000565b611a115760405162461bcd60e51b8152600401610b5990613e23565b61104182612d57565b604080518082019091526000805160206142578339815191528152600060208201819052611a49908290611000565b80611a5a5750611a5a816001611000565b611a765760405162461bcd60e51b8152600401610b5990613e23565b61016880546001600160801b03808516600160801b0291161790556040517f5497ec04d2873f2e2d376db2bb24e7e57851278c75fc1fcc9aab4db5fb70d22390611ac19084906138db565b60405180910390a15050565b60006001600160e01b03198216637965db0b60e01b1480610a6957506301ffc9a760e01b6001600160e01b0319831614610a69565b611b0c828261159d565b61104157611b24816001600160a01b03166014612ddc565b611b2f836020612ddc565b604051602001611b40929190613f80565b60408051601f198184030181529082905262461bcd60e51b8252610b59916004016138a8565b6001600160a01b03811660009081526101636020526040812060040154611b96906001600160801b031642613d96565b9050600061016660009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611be957600080fd5b505afa158015611bfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c219190613d7d565b61016854909150600160801b90046001600160801b03168210611d37576001600160a01b0383166000908152610163602052604090206005015461271090611c6f9063ffffffff1683613fef565b611c799190614024565b6001600160a01b03841660009081526101636020908152604080832060030180546001600160801b0319166001600160801b03959095169490941790935561016a9052206004015461271090611cd59063ffffffff1683613fef565b611cdf9190614024565b6001600160a01b038416600090815261016a6020908152604080832060030180546001600160801b03199081166001600160801b03968716179091556101639092529091206004018054909116429092169190911790555b611d3f612f77565b6001600160a01b03831660009081526101636020526040902060050154610168546001600160801b03908116600160201b9092041614610fd05750506001600160a01b0316600090815261016360208181526040808420600380820180546001600160801b0390811690915561016a855292909520909401805482169055610168549290915260059092018054600160201b600160a01b03191691909216600160201b02179055565b6000818310611df75781611596565b5090919050565b60008051602061410b833981519152611e16816116ca565b158015611e2a5750611e2860006116ca565b155b611e465760405162461bcd60e51b8152600401610b5990613d0e565b6001600160a01b038316301415611e8e5760405162461bcd60e51b815260206004820152600c60248201526b36b4b73a103a379039b2b63360a11b6044820152606401610b59565b33600090815261016360205260409020541580611ebb575033600090815261016360205260409020548211155b611efd5760405162461bcd60e51b81526020600482015260136024820152721b5a5b9d195c881b585e08195e18d959591959606a1b6044820152606401610b59565b33600090815261016360205260409020600301546001600160801b03161580611f7057503360009081526101636020526040902060030154611f50908390600160801b90046001600160801b0316613dad565b33600090815261016360205260409020600301546001600160801b031610155b611fb85760405162461bcd60e51b81526020600482015260196024820152781b5a5b9d195c8819185a5b1e4818d85c08195e18d959591959603a1b6044820152606401610b59565b336000908152610163602052604090206003018054839190601090611fee908490600160801b90046001600160801b0316613dc5565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550816101636000336001600160a01b03166001600160a01b03168152602001908152602001600020600201600082825461204b9190613dad565b909155505033600090815261016360205260409020600101541580612089575033600090815261016360205260409020600181015460029091015411155b6120a55760405162461bcd60e51b8152600401610b5990614038565b8161016560008282546120b89190613dad565b909155505033600090815261016a602052604090206002015482116121055733600090815261016a6020526040812060020180548492906120fa908490613d96565b9091555061211a9050565b33600090815261016a60205260408120600201555b61012e5461012f54604051633203f21960e11b8152600481018590526001600160a01b03868116602483015291821660448201526000929190911690636407e43290606401602060405180830381600087803b15801561217957600080fd5b505af115801561218d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b19190614065565b9050806113a75760405162461bcd60e51b815260206004820152600b60248201526a1b5a5b9d0819985a5b195960aa1b6044820152606401610b59565b610fd08363a9059cbb60e01b848460405160240161220d929190614082565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612fa7565b61016954610166546040516370a0823160e01b81526000926122e1926001600160801b03909116916001600160a01b03909116906370a082319061228c903090600401613996565b60206040518083038186803b1580156122a457600080fd5b505afa1580156122b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122dc9190613d7d565b611de8565b905080156111ab5761016980548291906000906123089084906001600160801b0316613d55565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555080610165600082825461233f9190613d96565b909155505061016654604051630852cd8d60e31b8152600481018390526001600160a01b03909116906342966c6890602401600060405180830381600087803b15801561238b57600080fd5b505af115801561239f573d6000803e3d6000fd5b5050505050565b6123af82610f67565b6123b98133611b02565b610fd08383613079565b6000611596836001600160a01b0384166130ff565b806123e2816116ca565b806123f257506123f260006116ca565b61243c5760405162461bcd60e51b815260206004820152601b60248201527a14185d5cd8589b1950dbdb9d1c9bdb0e881b9bdd081c185d5cd959602a1b6044820152606401610b59565b600082815260c9602052604090819020805460ff19169055517fd05bfc2250abb0f8fd265a54c53a24359c5484af63cad2e4ce87c78ab751395a90611ac19084815260200190565b6001600160a01b03811633146124f45760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610b59565b611041828261314e565b6000611596836001600160a01b0384166131b5565b60008051602061416b833981519152546001600160a01b031690565b6111ab6132a8565b6000612541612513565b905061254c8461337b565b6000835111806125595750815b1561256a57612568848461340e565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661239f57805460ff191660011781556040516125e59086906125b6908590602401613996565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b17905261340e565b50805460ff191681556125f6612513565b6001600160a01b0316826001600160a01b03161461266e5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610b59565b61239f856134f9565b600054610100900460ff1680612690575060005460ff16155b6126ac5760405162461bcd60e51b8152600401610b5990613f04565b600054610100900460ff161580156126ce576000805461ffff19166101011790555b6126d6613539565b6126de613539565b6126e6613539565b6126ee613539565b80156111ab576000805461ff001916905550565b61013080546001600160a01b0319166001600160a01b0383161790556111ab610e1f565b610fb882826135a3565b6001600160a01b03871660009081526101636020908152604080832061016a90925282206004820154919290916001600160801b03161515906127816000805160206141b08339815191528c61159d565b600185018b905589855560058501805463ffffffff191663ffffffff8b16908117909155600480870180546001600160801b031916426001600160801b031617905561016654604080516318160ddd60e01b81529051949550612710946001600160a01b03909216926318160ddd928282019260209290829003018186803b15801561280c57600080fd5b505afa158015612820573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128449190613d7d565b61284e9190613fef565b612858919061409b565b8460030160006101000a8154816001600160801b0302191690836001600160801b031602179055506127108563ffffffff1661016660009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156128d957600080fd5b505afa1580156128ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129119190613d7d565b61291b9190613fef565b612925919061409b565b6003840180546001600160801b0319166001600160801b03929092169190911790556001830187905585835560048301805463ffffffff191663ffffffff878116918217909255604080516001600160a01b038f168152602081018e90529081018c9052918a1660608301526080820189905260a0820188905260c082015281151560e08201528215156101008201527f58c3ceb7d4f068706ddc92911fae8701fac2c91c60bcc1b56ec7a6f56001aa5e906101200160405180910390a15050505050505050505050565b600061159683836135ad565b6000805160206141d0833981519152612a14816116ca565b158015612a285750612a2660006116ca565b155b612a445760405162461bcd60e51b8152600401610b5990613d0e565b33600090815261016a60205260409020541580612a71575033600090815261016a60205260409020548211155b612ab85760405162461bcd60e51b81526020600482015260186024820152771b5a5b9d195c88189d5c9b881b585e08195e18d95959195960421b6044820152606401610b59565b33600090815261016a60205260409020600301546001600160801b03161580612b2b575033600090815261016a6020526040902060030154612b0b908390600160801b90046001600160801b0316613dad565b33600090815261016a60205260409020600301546001600160801b031610155b612b775760405162461bcd60e51b815260206004820152601e60248201527f6d696e746572206275726e206461696c792063617020657863656564656400006044820152606401610b59565b33600090815261016a602052604090206003018054839190601090612bad908490600160801b90046001600160801b0316613dc5565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508161016a6000336001600160a01b03166001600160a01b031681526020019081526020016000206002016000828254612c0a9190613dad565b909155505033600090815261016a60205260409020600101541580612c48575033600090815261016a60205260409020600181015460029091015411155b612c645760405162461bcd60e51b8152600401610b5990614038565b816101655410612c8c57816101656000828254612c819190613d96565b90915550612c939050565b6000610165555b33600090815261016360205260409020600201548211612cdb57336000908152610163602052604081206002018054849290612cd0908490613d96565b90915550612cf09050565b33600090815261016360205260408120600201555b6001600160a01b038316301415612d185761016654610fd0906001600160a01b0316836135d7565b61016654610fd0906001600160a01b03168484613624565b6000610a69825490565b612d4382610f67565b612d4d8133611b02565b610fd0838361314e565b80612d61816116ca565b158015612d755750612d7360006116ca565b155b612d915760405162461bcd60e51b8152600401610b5990613d0e565b600082815260c9602052604090819020805460ff19166001179055517f0cb09dc71d57eeec2046f6854976717e4874a3cf2d6ddeddde337e5b6de6ba3190611ac19084815260200190565b60606000612deb836002613fef565b612df6906002613dad565b6001600160401b03811115612e0d57612e0d6139d8565b6040519080825280601f01601f191660200182016040528015612e37576020820181803683370190505b509050600360fc1b81600081518110612e5257612e52613e0d565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612e8157612e81613e0d565b60200101906001600160f81b031916908160001a9053506000612ea5846002613fef565b612eb0906001613dad565b90505b6001811115612f28576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612ee457612ee4613e0d565b1a60f81b828281518110612efa57612efa613e0d565b60200101906001600160f81b031916908160001a90535060049490941c93612f21816140c1565b9050612eb3565b5083156115965760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610b59565b612f846201518042614024565b61016880546001600160801b0319166001600160801b0392909216919091179055565b6000612ffc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136409092919063ffffffff16565b805190915015610fd0578080602001905181019061301a9190614065565b610fd05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b59565b613083828261159d565b6110415760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556130bb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600081815260018301602052604081205461314657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a69565b506000610a69565b613158828261159d565b156110415760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000818152600183016020526040812054801561329e5760006131d9600183613d96565b85549091506000906131ed90600190613d96565b905081811461325257600086600001828154811061320d5761320d613e0d565b906000526020600020015490508087600001848154811061323057613230613e0d565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613263576132636140d8565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a69565b6000915050610a69565b61012e5460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b1580156132ed57600080fd5b505afa158015613301573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133259190613df0565b6001600160a01b031614610fac5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610b59565b803b6133df5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610b59565b60008051602061416b83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61346d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610b59565b600080846001600160a01b03168460405161348891906140ee565b600060405180830381855af49150503d80600081146134c3576040519150601f19603f3d011682016040523d82523d6000602084013e6134c8565b606091505b50915091506134f082826040518060600160405280602781526020016141f060279139613657565b95945050505050565b6135028161337b565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b600054610100900460ff1680613552575060005460ff16155b61356e5760405162461bcd60e51b8152600401610b5990613f04565b600054610100900460ff161580156126ee576000805461ffff191661010117905580156111ab576000805461ff001916905550565b6110418282613079565b60008260000182815481106135c4576135c4613e0d565b9060005260206000200154905092915050565b611041826342966c68836040516024016135f391815260200190565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050613690565b610fd0836379cc679084846040516024016135f3929190614082565b606061364f848460008561372a565b949350505050565b60608315613666575081611596565b8251156136765782518084602001fd5b8160405162461bcd60e51b8152600401610b5991906138a8565b60006136c08260405180606001604052806025815260200161418b602591396001600160a01b0386169190613640565b805190915015610fd057808060200190518101906136de9190614065565b610fd05760405162461bcd60e51b815260206004820152601f60248201527f546f6b656e4f7065726174696f6e3a20646964206e6f742073756363656564006044820152606401610b59565b60608247101561378b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610b59565b843b6137d95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b59565b600080866001600160a01b031685876040516137f591906140ee565b60006040518083038185875af1925050503d8060008114613832576040519150601f19603f3d011682016040523d82523d6000602084013e613837565b606091505b5091509150613847828286613657565b979650505050505050565b60006020828403121561386457600080fd5b81356001600160e01b03198116811461159657600080fd5b60005b8381101561389757818101518382015260200161387f565b838111156113a75750506000910152565b60208152600082518060208401526138c781604085016020870161387c565b601f01601f19169190910160400192915050565b6001600160801b0391909116815260200190565b6001600160a01b03811681146111ab57600080fd5b6000806040838503121561391757600080fd5b8235613922816138ef565b946020939093013593505050565b60006020828403121561394257600080fd5b5035919050565b6000806040838503121561395c57600080fd5b82359150602083013561396e816138ef565b809150509250929050565b60006020828403121561398b57600080fd5b8135611596816138ef565b6001600160a01b0391909116815260200190565b600080604083850312156139bd57600080fd5b82356139c8816138ef565b9150602083013561396e816138ef565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613a1657613a166139d8565b604052919050565b60006001600160401b03821115613a3757613a376139d8565b50601f01601f191660200190565b600082601f830112613a5657600080fd5b8135613a69613a6482613a1e565b6139ee565b818152846020838601011115613a7e57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060408385031215613aae57600080fd5b8235613ab9816138ef565b915060208301356001600160401b03811115613ad457600080fd5b613ae085828601613a45565b9150509250929050565b803563ffffffff81168114613afe57600080fd5b919050565b80151581146111ab57600080fd5b600080600080600080600080610100898b031215613b2e57600080fd5b8835613b39816138ef565b97506020890135965060408901359550613b5560608a01613aea565b94506080890135935060a08901359250613b7160c08a01613aea565b915060e0890135613b8181613b03565b809150509295985092959890939650565b60008060408385031215613ba557600080fd5b50508035926020909101359150565b600080600060608486031215613bc957600080fd5b8335613bd4816138ef565b92506020840135915060408401356001600160401b03811115613bf657600080fd5b613c0286828701613a45565b9150509250925092565b600080600080600080600060e0888a031215613c2757600080fd5b8735613c32816138ef565b96506020880135955060408801359450613c4e60608901613aea565b93506080880135925060a08801359150613c6a60c08901613aea565b905092959891949750929550565b600060208284031215613c8a57600080fd5b81356001600160801b038116811461159657600080fd5b600060208284031215613cb357600080fd5b81516001600160401b03811115613cc957600080fd5b8201601f81018413613cda57600080fd5b8051613ce8613a6482613a1e565b818152856020838501011115613cfd57600080fd5b6134f082602083016020860161387c565b60208082526017908201527614185d5cd8589b1950dbdb9d1c9bdb0e881c185d5cd959604a1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b0383811690831681811015613d7557613d75613d3f565b039392505050565b600060208284031215613d8f57600080fd5b5051919050565b600082821015613da857613da8613d3f565b500390565b60008219821115613dc057613dc0613d3f565b500190565b60006001600160801b03828116848216808303821115613de757613de7613d3f565b01949350505050565b600060208284031215613e0257600080fd5b8151611596816138ef565b634e487b7160e01b600052603260045260246000fd5b6020808252600c908201526b726f6c65206d697373696e6760a01b604082015260600190565b600060208284031215613e5b57600080fd5b815160ff8116811461159657600080fd5b6020808252602c9082015260008051602061414b83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061414b83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60008060408385031215613f6557600080fd5b8251613f70816138ef565b6020939093015192949293505050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351613fb281601785016020880161387c565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613fe381602884016020880161387c565b01602801949350505050565b600081600019048311821515161561400957614009613d3f565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826140335761403361400e565b500490565b6020808252601390820152721b5a5b9d195c8818d85c08195e18d959591959606a1b604082015260600190565b60006020828403121561407757600080fd5b815161159681613b03565b6001600160a01b03929092168252602082015260400190565b60006001600160801b03838116806140b5576140b561400e565b92169190910492915050565b6000816140d0576140d0613d3f565b506000190190565b634e487b7160e01b600052603160045260246000fd5b6000825161410081846020870161387c565b919091019291505056feb2a18ae5d0b623b41098012c516d0bf4bef38c068c9e397da870c290888b19999604fa49b1cb3aa782c099225b9c340b6afeb802be5d4b3314ba27a14502cdfa46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546f6b656e4f7065726174696f6e3a206c6f772d6c6576656c2063616c6c206661696c65645407862f04286ebe607684514c14b7fffc750b6bf52ba44ea49569174845a5bd62d52416825983abd68b16e092b60c2eac31fd673bcce92494e063af530d9c30416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6b601d6a8ea5419a4251765936e52b2763485fede82d3c5dfd765cd67d30f4f2255435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220be7110f5538b98b587216b8dab95f28e4e8578c585f700d28f068e1f1e0a323764736f6c63430008080033";
1269
+
1270
+ type GoodDollarMintBurnWrapperConstructorParams =
1271
+ | [signer?: Signer]
1272
+ | ConstructorParameters<typeof ContractFactory>;
1273
+
1274
+ const isSuperArgs = (
1275
+ xs: GoodDollarMintBurnWrapperConstructorParams
1276
+ ): xs is ConstructorParameters<typeof ContractFactory> => xs.length > 1;
1277
+
1278
+ export class GoodDollarMintBurnWrapper__factory extends ContractFactory {
1279
+ constructor(...args: GoodDollarMintBurnWrapperConstructorParams) {
1280
+ if (isSuperArgs(args)) {
1281
+ super(...args);
1282
+ } else {
1283
+ super(_abi, _bytecode, args[0]);
1284
+ }
1285
+ }
1286
+
1287
+ deploy(
1288
+ overrides?: Overrides & { from?: string | Promise<string> }
1289
+ ): Promise<GoodDollarMintBurnWrapper> {
1290
+ return super.deploy(overrides || {}) as Promise<GoodDollarMintBurnWrapper>;
1291
+ }
1292
+ getDeployTransaction(
1293
+ overrides?: Overrides & { from?: string | Promise<string> }
1294
+ ): TransactionRequest {
1295
+ return super.getDeployTransaction(overrides || {});
1296
+ }
1297
+ attach(address: string): GoodDollarMintBurnWrapper {
1298
+ return super.attach(address) as GoodDollarMintBurnWrapper;
1299
+ }
1300
+ connect(signer: Signer): GoodDollarMintBurnWrapper__factory {
1301
+ return super.connect(signer) as GoodDollarMintBurnWrapper__factory;
1302
+ }
1303
+ static readonly bytecode = _bytecode;
1304
+ static readonly abi = _abi;
1305
+ static createInterface(): GoodDollarMintBurnWrapperInterface {
1306
+ return new utils.Interface(_abi) as GoodDollarMintBurnWrapperInterface;
1307
+ }
1308
+ static connect(
1309
+ address: string,
1310
+ signerOrProvider: Signer | Provider
1311
+ ): GoodDollarMintBurnWrapper {
1312
+ return new Contract(
1313
+ address,
1314
+ _abi,
1315
+ signerOrProvider
1316
+ ) as GoodDollarMintBurnWrapper;
1317
+ }
1318
+ }