@gooddollar/goodprotocol 2.0.34-beta.4 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (709) hide show
  1. package/README.md +12 -0
  2. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  8. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  9. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  34. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  35. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  36. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  37. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  38. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  39. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  40. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  41. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  42. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  43. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  44. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  45. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  46. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  47. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  48. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  49. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  50. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  51. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  52. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  53. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  54. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  55. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  56. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +1 -1
  57. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  58. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  59. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  60. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  61. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  97. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  104. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  105. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  106. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  107. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  108. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  109. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  110. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  111. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  112. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  113. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  114. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  115. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  116. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  117. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  118. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  119. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  120. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  121. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  122. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  123. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  124. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  125. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  126. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  127. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  128. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  129. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  130. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  131. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  132. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +1 -1
  133. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  134. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  135. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  136. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  137. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  138. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  139. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  140. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  141. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  142. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  143. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  144. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  145. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  146. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  147. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  148. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  149. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +2 -7
  150. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  151. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  152. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  153. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  154. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  155. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  156. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +1 -1
  157. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  158. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  159. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  160. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  161. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  162. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  163. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  164. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  165. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  166. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  167. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  168. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  169. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  170. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  171. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  172. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  173. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  174. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  175. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  176. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
  177. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  178. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  179. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  180. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  181. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  182. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  183. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  184. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  185. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  186. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  187. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  188. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  189. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  190. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  191. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  192. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
  193. package/contracts/IUniswapV3.sol +2 -0
  194. package/contracts/fuseFaucet/Faucet.sol +6 -0
  195. package/contracts/fuseFaucet/FuseFaucetV2.sol +10 -0
  196. package/contracts/mocks/GenericDistributionHelperTest.sol +31 -0
  197. package/contracts/reserve/GenericDistributionHelper.sol +28 -20
  198. package/contracts/utils/ProxyFactory1967.sol +1 -0
  199. package/hardhat.config.ts +29 -21
  200. package/package.json +3 -2
  201. package/releases/deployment.json +1 -0
  202. package/releases/olddao.json +1 -1
  203. package/scripts/fv.ts +0 -2
  204. package/scripts/multichain-deploy/fulldeploy.sh +17 -17
  205. package/scripts/multichain-deploy/helpers.ts +7 -5
  206. package/scripts/proposals/gip-25-xdc-upgrade-ubi.ts +447 -0
  207. package/scripts/upgrades/upgradeFaucet.ts +46 -0
  208. package/test/governance/ClaimersDistribution.test.ts +1 -1
  209. package/test/reserve/GenericDistributionHelper.test.ts +315 -0
  210. package/test/ubi/UBISchemeCycle.test.ts +30 -63
  211. package/types/@openzeppelin/contracts/proxy/ERC1967/index.ts +0 -1
  212. package/types/@uniswap/index.ts +0 -2
  213. package/types/AaveMock.ts +1031 -0
  214. package/types/AaveStakingFactory.ts +290 -0
  215. package/types/AaveUSDMockOracle.ts +89 -0
  216. package/types/AccessControl.ts +361 -0
  217. package/types/AccessControlEnumerableUpgradeable.ts +444 -0
  218. package/types/AccessControlUpgradeable.ts +371 -0
  219. package/types/AdminWallet.ts +1234 -0
  220. package/types/AdminWalletFuse.ts +1340 -0
  221. package/types/AggregatorV3Interface.ts +192 -0
  222. package/types/Avatar.ts +121 -0
  223. package/types/BancorFormula.ts +974 -0
  224. package/types/BaseShareField.ts +442 -0
  225. package/types/BaseShareFieldV2.ts +361 -0
  226. package/types/{contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange.ts → BatUSDMockOracle.ts} +30 -22
  227. package/types/BuyAndBridgeHelper.ts +279 -0
  228. package/types/BuyGDClone.ts +383 -0
  229. package/types/BuyGDCloneFactory.ts +180 -0
  230. package/types/CBATMock.ts +1203 -0
  231. package/types/CDAILowWorthMock.ts +1169 -0
  232. package/types/CDAIMock.ts +1219 -0
  233. package/types/CDAINonMintableMock.ts +1169 -0
  234. package/types/CDecimalsMock.ts +1203 -0
  235. package/types/CERC20.ts +552 -0
  236. package/types/CSDTMock.ts +1203 -0
  237. package/types/CUSDCMock.ts +1203 -0
  238. package/types/ClaimersDistribution.ts +634 -0
  239. package/types/CompUSDMockOracle.ts +89 -0
  240. package/types/CompoundStakingFactory.ts +261 -0
  241. package/types/CompoundVotingMachine.ts +1718 -0
  242. package/types/ContextUpgradeable.ts +77 -0
  243. package/types/ContributionCalc.ts +164 -0
  244. package/types/Controller.ts +547 -0
  245. package/types/DAIMock.ts +1092 -0
  246. package/types/DAOContract.ts +162 -0
  247. package/types/DAOUpgradeableContract.ts +299 -0
  248. package/types/DaiEthPriceMockOracle.ts +89 -0
  249. package/types/DecimalsMock.ts +1031 -0
  250. package/types/DistributionBridgeMock.ts +384 -0
  251. package/types/{contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper.ts → DistributionHelper.ts} +351 -345
  252. package/types/{contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper.ts → DistributionHelperTest.ts} +361 -349
  253. package/types/{contracts/reserve/GenericDistributionHelper.ts → DistributionHelperTestHelper.ts} +417 -401
  254. package/types/DonationsStaking.ts +805 -0
  255. package/types/EIP712Upgradeable.ts +77 -0
  256. package/types/ERC165.ts +104 -0
  257. package/types/ERC165Upgradeable.ts +115 -0
  258. package/types/ERC1967Proxy.ts +147 -0
  259. package/types/{@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts → ERC1967Upgrade.ts} +21 -23
  260. package/types/ERC1967UpgradeUpgradeable.ts +116 -0
  261. package/types/ERC20.ts +417 -0
  262. package/types/ERC20BurnableUpgradeable.ts +488 -0
  263. package/types/ERC20PausableUpgradeable.ts +458 -0
  264. package/types/ERC20Permit.ts +186 -0
  265. package/types/ERC20PermitUpgradeable.ts +531 -0
  266. package/types/ERC20PresetMinterPauserUpgradeable.ts +1136 -0
  267. package/types/ERC20Upgradeable.ts +426 -0
  268. package/types/ERC20WithTokenInfo.ts +339 -0
  269. package/types/ERC677.ts +131 -0
  270. package/types/ERC677Receiver.ts +115 -0
  271. package/types/EthUSDMockOracle.ts +138 -0
  272. package/types/EventsEmitter.ts +88 -0
  273. package/types/ExchangeHelper.ts +550 -0
  274. package/types/Faucet.ts +1167 -0
  275. package/types/FeesFormulaMock.ts +130 -0
  276. package/types/FuseFaucet.ts +507 -0
  277. package/types/FuseFaucetV2.ts +846 -0
  278. package/types/FuseStakingV3.ts +1212 -0
  279. package/types/GDFaucet.ts +221 -0
  280. package/types/GReputation.ts +2119 -0
  281. package/types/GasPriceMockOracle.ts +118 -0
  282. package/types/GlobalConstraintInterface.ts +134 -0
  283. package/types/GoodAaveStaking.ts +1761 -0
  284. package/types/{contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2.ts → GoodAaveStakingV2.ts} +100 -177
  285. package/types/GoodCompoundStaking.ts +1847 -0
  286. package/types/GoodCompoundStakingTest.ts +1957 -0
  287. package/types/GoodCompoundStakingV2.ts +1645 -0
  288. package/types/{contracts/token/GoodDollar18.ts → GoodDollar.ts} +140 -278
  289. package/types/GoodDollarMintBurnWrapper.ts +1792 -0
  290. package/types/GoodDollarStaking.ts +1947 -0
  291. package/types/GoodDollarStakingMock.ts +1986 -0
  292. package/types/GoodFundManager.ts +1126 -0
  293. package/types/GoodFundManagerTest.ts +1165 -0
  294. package/types/GoodMarketMaker.ts +1002 -0
  295. package/types/{contracts/reserve/GoodReserveADai.ts → GoodReserveCDai.ts} +197 -343
  296. package/types/GovernanceStaking.ts +1295 -0
  297. package/types/{contracts/Interfaces.sol/IAaveIncentivesControllerV3.ts → IAaveIncentivesController.ts} +47 -48
  298. package/types/IAccessControl.ts +306 -0
  299. package/types/IAccessControlEnumerableUpgradeable.ts +380 -0
  300. package/types/IAccessControlUpgradeable.ts +307 -0
  301. package/types/IAdminWallet.ts +171 -0
  302. package/types/{contracts/Interfaces.sol/AToken.ts → IBeacon.ts} +30 -22
  303. package/types/IBeaconUpgradeable.ts +89 -0
  304. package/types/IConsensus.ts +225 -0
  305. package/types/IDonationStaking.ts +98 -0
  306. package/types/IERC1271Upgradeable.ts +109 -0
  307. package/types/IERC165.ts +104 -0
  308. package/types/IERC165Upgradeable.ts +104 -0
  309. package/types/IERC1820Registry.ts +398 -0
  310. package/types/IERC1822Proxiable.ts +89 -0
  311. package/types/IERC1822ProxiableUpgradeable.ts +90 -0
  312. package/types/IERC20.ts +300 -0
  313. package/types/IERC20Metadata.ts +339 -0
  314. package/types/IERC20MetadataUpgradeable.ts +340 -0
  315. package/types/IERC20Permit.ts +175 -0
  316. package/types/IERC20PermitUpgradeable.ts +176 -0
  317. package/types/IERC20Upgradeable.ts +300 -0
  318. package/types/IERC2917.ts +661 -0
  319. package/types/IERC777.ts +586 -0
  320. package/types/IERC777Recipient.ts +130 -0
  321. package/types/IERC777Sender.ts +130 -0
  322. package/types/IFeesFormula.ts +111 -0
  323. package/types/IFirstClaimPool.ts +136 -0
  324. package/types/IGoodDollar.ts +876 -0
  325. package/types/IGoodDollarCustom.ts +618 -0
  326. package/types/IGoodDollarStakingTest.ts +160 -0
  327. package/types/IGoodStaking.ts +264 -0
  328. package/types/IGovernanceStaking.ts +98 -0
  329. package/types/{contracts/utils/ReserveRestore.sol/MentoExchange.ts → IHasRouter.ts} +24 -22
  330. package/types/IIdentity.ts +508 -0
  331. package/types/IIdentityV2.ts +591 -0
  332. package/types/ILayerZeroFeeEstimator.ts +136 -0
  333. package/types/{contracts/Interfaces.sol/ILendingPoolV3.ts → ILendingPool.ts} +76 -89
  334. package/types/IMessagePassingBridge.ts +774 -0
  335. package/types/IMultichainRouter.ts +166 -0
  336. package/types/INameService.ts +86 -0
  337. package/types/IRouter.ts +143 -0
  338. package/types/IStakingUpgrade.ts +110 -0
  339. package/types/IStaticOracle.ts +677 -0
  340. package/types/ISuperAgreement.ts +151 -0
  341. package/types/ISuperApp.ts +410 -0
  342. package/types/ISuperGoodDollar.ts +3029 -0
  343. package/types/ISuperToken.ts +2326 -0
  344. package/types/ISuperTokenFactory.ts +415 -0
  345. package/types/ISuperfluid.ts +1565 -0
  346. package/types/ISuperfluidGovernance.ts +455 -0
  347. package/types/ISuperfluidToken.ts +951 -0
  348. package/types/ISwapRouter.ts +298 -0
  349. package/types/IUBIScheme.ts +121 -0
  350. package/types/IUniswapV3Factory.ts +333 -0
  351. package/types/IWrapper.ts +143 -0
  352. package/types/IdentityFix.ts +141 -0
  353. package/types/IdentityMock.ts +527 -0
  354. package/types/IdentityV2.ts +1782 -0
  355. package/types/IncentiveControllerMock.ts +207 -0
  356. package/types/Initializable.ts +77 -0
  357. package/types/IntVoteInterface.ts +468 -0
  358. package/types/InvitesFuseV2.ts +840 -0
  359. package/types/InvitesV1.ts +806 -0
  360. package/types/InvitesV2.ts +1016 -0
  361. package/types/LendingPoolMock.ts +1259 -0
  362. package/types/MultiBaseGovernanceShareField.ts +411 -0
  363. package/types/Multicall.ts +298 -0
  364. package/types/MultichainBridgeHelper.ts +170 -0
  365. package/types/MultichainFeeFormula.ts +130 -0
  366. package/types/MultichainRouterMock.ts +141 -0
  367. package/types/NameService.ts +386 -0
  368. package/types/OldMarketMaker.ts +113 -0
  369. package/types/OneTimePayments.ts +396 -0
  370. package/types/OneTimePaymentsV2.ts +456 -0
  371. package/types/OverMintTester.ts +176 -0
  372. package/types/OverMintTesterRegularStake.ts +177 -0
  373. package/types/OwnableUpgradeable.ts +175 -0
  374. package/types/Pausable.ts +103 -0
  375. package/types/PausableControl.ts +125 -0
  376. package/types/PausableUpgradeable.ts +112 -0
  377. package/types/PayableMock.ts +92 -0
  378. package/types/PegSwap.ts +112 -0
  379. package/types/ProtocolUpgrade.ts +272 -0
  380. package/types/ProtocolUpgradeFuse.ts +166 -0
  381. package/types/ProtocolUpgradeFuseRecover.ts +167 -0
  382. package/types/ProtocolUpgradeRecover.ts +264 -0
  383. package/types/Proxy.ts +66 -0
  384. package/types/ProxyAdmin.ts +254 -0
  385. package/types/ProxyFactory1967.ts +284 -0
  386. package/types/ReentrancyGuardUpgradeable.ts +78 -0
  387. package/types/Reputation.ts +964 -0
  388. package/types/ReputationInterface.ts +261 -0
  389. package/types/ReputationTestHelper.ts +175 -0
  390. package/types/Reserve.ts +112 -0
  391. package/types/RewardsMinter.ts +107 -0
  392. package/types/SchemeRegistrar.ts +164 -0
  393. package/types/SelfApprove.ts +115 -0
  394. package/types/SimpleStaking.ts +1523 -0
  395. package/types/SimpleStakingV2.ts +1427 -0
  396. package/types/SixteenDecimalsTokenMock.ts +1032 -0
  397. package/types/StakersDistribution.ts +949 -0
  398. package/types/Staking.ts +158 -0
  399. package/types/StakingMockFixedAPY.ts +995 -0
  400. package/types/StakingRewardsFixedAPY.ts +428 -0
  401. package/types/SuperGoodDollar.ts +3662 -0
  402. package/types/SuperToken.ts +2434 -0
  403. package/types/SuperfluidToken.ts +951 -0
  404. package/types/SwapHelperTest.ts +120 -0
  405. package/types/TokenInfo.ts +109 -0
  406. package/types/TwentyDecimalsTokenMock.ts +1032 -0
  407. package/types/UBIScheme.ts +1461 -0
  408. package/types/UBISchemeV2.ts +1192 -0
  409. package/types/USDCMock.ts +1031 -0
  410. package/types/UUPSProxiable.ts +183 -0
  411. package/types/UUPSProxy.ts +105 -0
  412. package/types/UUPSUpgradeable.ts +207 -0
  413. package/types/Uniswap.ts +423 -0
  414. package/types/UniswapFactory.ts +106 -0
  415. package/types/UniswapPair.ts +187 -0
  416. package/types/UniswapV2SwapHelper.ts +124 -0
  417. package/types/UpgradableMock.ts +349 -0
  418. package/types/UpgradableMock2.ts +311 -0
  419. package/types/UpgradableMock3.ts +336 -0
  420. package/types/UpgradableMock4.ts +336 -0
  421. package/types/contracts/index.ts +0 -4
  422. package/types/contracts/reserve/index.ts +0 -1
  423. package/types/contracts/ubi/UBISchemeV2.ts +3 -14
  424. package/types/contracts/utils/BuyGDClone.sol/index.ts +2 -0
  425. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +0 -1
  426. package/types/factories/@uniswap/index.ts +0 -1
  427. package/types/factories/AaveMock__factory.ts +740 -0
  428. package/types/factories/AaveStakingFactory__factory.ts +262 -0
  429. package/types/factories/AaveUSDMockOracle__factory.ts +75 -0
  430. package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +292 -0
  431. package/types/factories/AccessControlUpgradeable__factory.ts +247 -0
  432. package/types/factories/AccessControl__factory.ts +227 -0
  433. package/types/factories/AdminWalletFuse__factory.ts +933 -0
  434. package/types/factories/AdminWallet__factory.ts +865 -0
  435. package/types/factories/AggregatorV3Interface__factory.ts +121 -0
  436. package/types/factories/Avatar__factory.ts +59 -0
  437. package/types/factories/BancorFormula__factory.ts +674 -0
  438. package/types/factories/BaseShareFieldV2__factory.ts +251 -0
  439. package/types/factories/BaseShareField__factory.ts +307 -0
  440. package/types/factories/BatUSDMockOracle__factory.ts +75 -0
  441. package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
  442. package/types/factories/BuyGDCloneFactory__factory.ts +196 -0
  443. package/types/factories/BuyGDClone__factory.ts +343 -0
  444. package/types/factories/CBATMock__factory.ts +844 -0
  445. package/types/factories/CDAILowWorthMock__factory.ts +834 -0
  446. package/types/factories/CDAIMock__factory.ts +857 -0
  447. package/types/factories/CDAINonMintableMock__factory.ts +834 -0
  448. package/types/factories/CDecimalsMock__factory.ts +844 -0
  449. package/types/factories/CERC20__factory.ts +381 -0
  450. package/types/factories/CSDTMock__factory.ts +844 -0
  451. package/types/factories/CUSDCMock__factory.ts +844 -0
  452. package/types/factories/ClaimersDistribution__factory.ts +430 -0
  453. package/types/factories/CompUSDMockOracle__factory.ts +75 -0
  454. package/types/factories/CompoundStakingFactory__factory.ts +249 -0
  455. package/types/factories/CompoundVotingMachine__factory.ts +1208 -0
  456. package/types/factories/ContextUpgradeable__factory.ts +39 -0
  457. package/types/factories/ContributionCalc__factory.ts +83 -0
  458. package/types/factories/Controller__factory.ts +359 -0
  459. package/types/factories/DAIMock__factory.ts +783 -0
  460. package/types/factories/DAOContract__factory.ts +118 -0
  461. package/types/factories/DAOUpgradeableContract__factory.ts +227 -0
  462. package/types/factories/DaiEthPriceMockOracle__factory.ts +79 -0
  463. package/types/factories/DecimalsMock__factory.ts +755 -0
  464. package/types/factories/DistributionBridgeMock__factory.ts +312 -0
  465. package/types/factories/DistributionHelperTestHelper__factory.ts +1008 -0
  466. package/types/factories/DistributionHelperTest__factory.ts +975 -0
  467. package/types/factories/DistributionHelper__factory.ts +971 -0
  468. package/types/factories/DonationsStaking__factory.ts +580 -0
  469. package/types/factories/EIP712Upgradeable__factory.ts +39 -0
  470. package/types/factories/ERC165Upgradeable__factory.ts +58 -0
  471. package/types/factories/ERC165__factory.ts +39 -0
  472. package/types/factories/ERC1967Proxy__factory.ts +130 -0
  473. package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +88 -0
  474. package/types/factories/ERC1967Upgrade__factory.ts +71 -0
  475. package/types/factories/ERC20BurnableUpgradeable__factory.ts +344 -0
  476. package/types/factories/ERC20PausableUpgradeable__factory.ts +352 -0
  477. package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
  478. package/types/factories/ERC20Permit__factory.ts +111 -0
  479. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +827 -0
  480. package/types/factories/ERC20Upgradeable__factory.ts +345 -0
  481. package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
  482. package/types/factories/ERC20__factory.ts +285 -0
  483. package/types/factories/ERC677Receiver__factory.ts +55 -0
  484. package/types/factories/ERC677__factory.ts +75 -0
  485. package/types/factories/EthUSDMockOracle__factory.ts +108 -0
  486. package/types/factories/EventsEmitter__factory.ts +84 -0
  487. package/types/factories/ExchangeHelper__factory.ts +427 -0
  488. package/types/factories/Faucet__factory.ts +826 -0
  489. package/types/factories/FeesFormulaMock__factory.ts +132 -0
  490. package/types/factories/FuseFaucetV2__factory.ts +592 -0
  491. package/types/factories/FuseFaucet__factory.ts +386 -0
  492. package/types/factories/FuseStakingV3__factory.ts +806 -0
  493. package/types/factories/GDFaucet__factory.ts +188 -0
  494. package/types/factories/GReputation__factory.ts +1490 -0
  495. package/types/factories/GasPriceMockOracle__factory.ts +88 -0
  496. package/types/factories/GlobalConstraintInterface__factory.ts +72 -0
  497. package/types/factories/GoodAaveStakingV2__factory.ts +1240 -0
  498. package/types/factories/GoodAaveStaking__factory.ts +1276 -0
  499. package/types/factories/GoodCompoundStakingTest__factory.ts +1470 -0
  500. package/types/factories/GoodCompoundStakingV2__factory.ts +1182 -0
  501. package/types/factories/GoodCompoundStaking__factory.ts +1316 -0
  502. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1330 -0
  503. package/types/factories/GoodDollarStakingMock__factory.ts +1497 -0
  504. package/types/factories/GoodDollarStaking__factory.ts +1469 -0
  505. package/types/factories/{contracts/token/GoodDollar18__factory.ts → GoodDollar__factory.ts} +23 -26
  506. package/types/factories/GoodFundManagerTest__factory.ts +801 -0
  507. package/types/factories/GoodFundManager__factory.ts +759 -0
  508. package/types/factories/GoodMarketMaker__factory.ts +687 -0
  509. package/types/factories/GoodReserveCDai__factory.ts +1489 -0
  510. package/types/factories/GovernanceStaking__factory.ts +948 -0
  511. package/types/factories/{contracts/Interfaces.sol/IAaveIncentivesControllerV3__factory.ts → IAaveIncentivesController__factory.ts} +22 -27
  512. package/types/factories/IAccessControlEnumerableUpgradeable__factory.ts +247 -0
  513. package/types/factories/IAccessControlUpgradeable__factory.ts +202 -0
  514. package/types/factories/IAccessControl__factory.ts +198 -0
  515. package/types/factories/IAdminWallet__factory.ts +75 -0
  516. package/types/factories/{contracts/utils/ReserveRestore.sol/MentoExchange__factory.ts → IBeaconUpgradeable__factory.ts} +11 -11
  517. package/types/factories/IBeacon__factory.ts +36 -0
  518. package/types/factories/IConsensus__factory.ts +116 -0
  519. package/types/factories/IDonationStaking__factory.ts +33 -0
  520. package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
  521. package/types/factories/IERC165Upgradeable__factory.ts +45 -0
  522. package/types/factories/IERC165__factory.ts +42 -0
  523. package/types/factories/IERC1820Registry__factory.ts +239 -0
  524. package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  525. package/types/factories/IERC1822Proxiable__factory.ts +39 -0
  526. package/types/factories/IERC20MetadataUpgradeable__factory.ts +252 -0
  527. package/types/factories/IERC20Metadata__factory.ts +248 -0
  528. package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  529. package/types/factories/IERC20Permit__factory.ts +98 -0
  530. package/types/factories/IERC20Upgradeable__factory.ts +209 -0
  531. package/types/factories/IERC20__factory.ts +203 -0
  532. package/types/factories/IERC2917__factory.ts +493 -0
  533. package/types/factories/IERC777Recipient__factory.ts +64 -0
  534. package/types/factories/IERC777Sender__factory.ts +61 -0
  535. package/types/factories/IERC777__factory.ts +414 -0
  536. package/types/factories/IFeesFormula__factory.ts +57 -0
  537. package/types/factories/IFirstClaimPool__factory.ts +65 -0
  538. package/types/factories/IGoodDollarCustom__factory.ts +370 -0
  539. package/types/factories/IGoodDollarStakingTest__factory.ts +68 -0
  540. package/types/factories/IGoodDollar__factory.ts +595 -0
  541. package/types/factories/IGoodStaking__factory.ts +175 -0
  542. package/types/factories/IGovernanceStaking__factory.ts +39 -0
  543. package/types/factories/IHasRouter__factory.ts +36 -0
  544. package/types/factories/IIdentityV2__factory.ts +331 -0
  545. package/types/factories/IIdentity__factory.ts +284 -0
  546. package/types/factories/ILayerZeroFeeEstimator__factory.ts +79 -0
  547. package/types/factories/{contracts/Interfaces.sol/ILendingPoolV3__factory.ts → ILendingPool__factory.ts} +14 -32
  548. package/types/factories/IMessagePassingBridge__factory.ts +446 -0
  549. package/types/factories/IMultichainRouter__factory.ts +82 -0
  550. package/types/factories/INameService__factory.ts +42 -0
  551. package/types/factories/{@uniswap/v2-periphery/contracts/interfaces/IWETH__factory.ts → IRouter__factory.ts} +28 -24
  552. package/types/factories/IStakingUpgrade__factory.ts +50 -0
  553. package/types/factories/IStaticOracle__factory.ts +407 -0
  554. package/types/factories/ISuperAgreement__factory.ts +78 -0
  555. package/types/factories/ISuperApp__factory.ts +272 -0
  556. package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
  557. package/types/factories/ISuperTokenFactory__factory.ts +271 -0
  558. package/types/factories/ISuperToken__factory.ts +1682 -0
  559. package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
  560. package/types/factories/ISuperfluidToken__factory.ts +697 -0
  561. package/types/factories/ISuperfluid__factory.ts +1143 -0
  562. package/types/factories/ISwapRouter__factory.ts +217 -0
  563. package/types/factories/IUBIScheme__factory.ts +68 -0
  564. package/types/factories/IUniswapV3Factory__factory.ts +222 -0
  565. package/types/factories/IWrapper__factory.ts +71 -0
  566. package/types/factories/IdentityFix__factory.ts +110 -0
  567. package/types/factories/IdentityMock__factory.ts +346 -0
  568. package/types/factories/IdentityV2__factory.ts +1147 -0
  569. package/types/factories/IncentiveControllerMock__factory.ts +166 -0
  570. package/types/factories/Initializable__factory.ts +36 -0
  571. package/types/factories/IntVoteInterface__factory.ts +349 -0
  572. package/types/factories/InvitesFuseV2__factory.ts +571 -0
  573. package/types/factories/InvitesV1__factory.ts +553 -0
  574. package/types/factories/InvitesV2__factory.ts +688 -0
  575. package/types/factories/LendingPoolMock__factory.ts +927 -0
  576. package/types/factories/MultiBaseGovernanceShareField__factory.ts +240 -0
  577. package/types/factories/Multicall__factory.ts +215 -0
  578. package/types/factories/MultichainBridgeHelper__factory.ts +134 -0
  579. package/types/factories/MultichainFeeFormula__factory.ts +113 -0
  580. package/types/factories/MultichainRouterMock__factory.ts +141 -0
  581. package/types/factories/NameService__factory.ts +290 -0
  582. package/types/factories/OldMarketMaker__factory.ts +62 -0
  583. package/types/factories/OneTimePaymentsV2__factory.ts +369 -0
  584. package/types/factories/OneTimePayments__factory.ts +323 -0
  585. package/types/factories/OverMintTesterRegularStake__factory.ts +156 -0
  586. package/types/factories/OverMintTester__factory.ts +152 -0
  587. package/types/factories/OwnableUpgradeable__factory.ts +91 -0
  588. package/types/factories/PausableControl__factory.ts +84 -0
  589. package/types/factories/PausableUpgradeable__factory.ts +78 -0
  590. package/types/factories/Pausable__factory.ts +62 -0
  591. package/types/factories/PayableMock__factory.ts +66 -0
  592. package/types/factories/PegSwap__factory.ts +46 -0
  593. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +146 -0
  594. package/types/factories/ProtocolUpgradeFuse__factory.ts +142 -0
  595. package/types/factories/ProtocolUpgradeRecover__factory.ts +184 -0
  596. package/types/factories/ProtocolUpgrade__factory.ts +207 -0
  597. package/types/factories/ProxyAdmin__factory.ts +128 -0
  598. package/types/factories/ProxyFactory1967__factory.ts +223 -0
  599. package/types/factories/Proxy__factory.ts +28 -0
  600. package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  601. package/types/factories/ReputationInterface__factory.ts +168 -0
  602. package/types/factories/ReputationTestHelper__factory.ts +141 -0
  603. package/types/factories/Reputation__factory.ts +693 -0
  604. package/types/factories/Reserve__factory.ts +52 -0
  605. package/types/factories/RewardsMinter__factory.ts +47 -0
  606. package/types/factories/SchemeRegistrar__factory.ts +114 -0
  607. package/types/factories/SelfApprove__factory.ts +46 -0
  608. package/types/factories/SimpleStakingV2__factory.ts +999 -0
  609. package/types/factories/SimpleStaking__factory.ts +1058 -0
  610. package/types/factories/SixteenDecimalsTokenMock__factory.ts +747 -0
  611. package/types/factories/StakersDistribution__factory.ts +617 -0
  612. package/types/factories/StakingMockFixedAPY__factory.ts +745 -0
  613. package/types/factories/StakingRewardsFixedAPY__factory.ts +287 -0
  614. package/types/factories/Staking__factory.ts +74 -0
  615. package/types/factories/SuperGoodDollar__factory.ts +2680 -0
  616. package/types/factories/SuperToken__factory.ts +1809 -0
  617. package/types/factories/SuperfluidToken__factory.ts +697 -0
  618. package/types/factories/SwapHelperTest__factory.ts +96 -0
  619. package/types/factories/TokenInfo__factory.ts +62 -0
  620. package/types/factories/TwentyDecimalsTokenMock__factory.ts +747 -0
  621. package/types/factories/UBISchemeV2__factory.ts +837 -0
  622. package/types/factories/UBIScheme__factory.ts +1034 -0
  623. package/types/factories/USDCMock__factory.ts +740 -0
  624. package/types/factories/UUPSProxiable__factory.ts +101 -0
  625. package/types/factories/UUPSProxy__factory.ts +80 -0
  626. package/types/factories/UUPSUpgradeable__factory.ts +128 -0
  627. package/types/factories/UniswapFactory__factory.ts +50 -0
  628. package/types/factories/UniswapPair__factory.ts +117 -0
  629. package/types/factories/UniswapV2SwapHelper__factory.ts +101 -0
  630. package/types/factories/Uniswap__factory.ts +272 -0
  631. package/types/factories/UpgradableMock2__factory.ts +236 -0
  632. package/types/factories/UpgradableMock3__factory.ts +249 -0
  633. package/types/factories/UpgradableMock4__factory.ts +249 -0
  634. package/types/factories/UpgradableMock__factory.ts +262 -0
  635. package/types/factories/contracts/index.ts +0 -2
  636. package/types/factories/contracts/reserve/index.ts +0 -1
  637. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +1 -6
  638. package/types/factories/contracts/utils/BuyGDClone.sol/index.ts +2 -0
  639. package/types/hardhat.d.ts +18 -54
  640. package/types/index.ts +2 -10
  641. package/artifacts/abis/GenericDistributionHelper.min.json +0 -1
  642. package/artifacts/abis/INonfungiblePositionManager.min.json +0 -1
  643. package/artifacts/abis/IUniswapV3Pool.min.json +0 -1
  644. package/artifacts/contracts/IQuoter.sol/IQuoterV2.dbg.json +0 -4
  645. package/artifacts/contracts/IQuoter.sol/IQuoterV2.json +0 -211
  646. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +0 -4
  647. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.json +0 -102
  648. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +0 -4
  649. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.json +0 -93
  650. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +0 -4
  651. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.json +0 -931
  652. package/contracts/IQuoter.sol +0 -108
  653. package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +0 -1099
  654. package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +0 -2627
  655. package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +0 -32
  656. package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +0 -82
  657. package/dist/test-sdk/deploySuperGoodDollar.d.ts +0 -6
  658. package/dist/test-sdk/deploySuperGoodDollar.js +0 -46
  659. package/dist/test-sdk/index.d.ts +0 -1
  660. package/dist/test-sdk/index.js +0 -13
  661. package/scripts/multichain-deploy/verify.ts +0 -41
  662. package/scripts/proposals/gip-25-xdc-upgrade.ts +0 -438
  663. package/types/@uniswap/v2-periphery/contracts/index.ts +0 -5
  664. package/types/@uniswap/v2-periphery/contracts/interfaces/IWETH.ts +0 -159
  665. package/types/@uniswap/v2-periphery/contracts/interfaces/index.ts +0 -4
  666. package/types/@uniswap/v2-periphery/index.ts +0 -5
  667. package/types/contracts/IQuoter.sol/IQuoterV2.ts +0 -297
  668. package/types/contracts/IQuoter.sol/index.ts +0 -4
  669. package/types/contracts/IUniswapV3.sol/INonfungiblePositionManager.ts +0 -151
  670. package/types/contracts/IUniswapV3.sol/IUniswapV3Factory.ts +0 -155
  671. package/types/contracts/IUniswapV3.sol/IUniswapV3Pool.ts +0 -179
  672. package/types/contracts/IUniswapV3.sol/index.ts +0 -5
  673. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor.ts +0 -648
  674. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable.ts +0 -843
  675. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +0 -4
  676. package/types/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +0 -4
  677. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +0 -4
  678. package/types/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677.ts +0 -108
  679. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts +0 -161
  680. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +0 -5
  681. package/types/contracts/utils/ReserveRestore.sol/ReserveRestore.ts +0 -112
  682. package/types/contracts/utils/ReserveRestore.sol/index.ts +0 -5
  683. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +0 -146
  684. package/types/factories/@uniswap/v2-periphery/contracts/index.ts +0 -4
  685. package/types/factories/@uniswap/v2-periphery/contracts/interfaces/index.ts +0 -4
  686. package/types/factories/@uniswap/v2-periphery/index.ts +0 -4
  687. package/types/factories/contracts/IQuoter.sol/IQuoterV2__factory.ts +0 -226
  688. package/types/factories/contracts/IQuoter.sol/index.ts +0 -4
  689. package/types/factories/contracts/IUniswapV3.sol/INonfungiblePositionManager__factory.ts +0 -121
  690. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Factory__factory.ts +0 -84
  691. package/types/factories/contracts/IUniswapV3.sol/IUniswapV3Pool__factory.ts +0 -108
  692. package/types/factories/contracts/IUniswapV3.sol/index.ts +0 -5
  693. package/types/factories/contracts/Interfaces.sol/AToken__factory.ts +0 -36
  694. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable__factory.ts +0 -572
  695. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor__factory.ts +0 -482
  696. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +0 -4
  697. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +0 -929
  698. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/GenericDistributionHelper__factory.ts +0 -935
  699. package/types/factories/contracts/reserve/GenericDistributionHelper copy.sol/index.ts +0 -4
  700. package/types/factories/contracts/reserve/GenericDistributionHelper__factory.ts +0 -987
  701. package/types/factories/contracts/reserve/GoodReserveADai__factory.ts +0 -1502
  702. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2__factory.ts +0 -1240
  703. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +0 -4
  704. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677__factory.ts +0 -86
  705. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange__factory.ts +0 -39
  706. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +0 -152
  707. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +0 -5
  708. package/types/factories/contracts/utils/ReserveRestore.sol/ReserveRestore__factory.ts +0 -95
  709. package/types/factories/contracts/utils/ReserveRestore.sol/index.ts +0 -5
@@ -0,0 +1,1276 @@
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
+ GoodAaveStaking,
9
+ GoodAaveStakingInterface,
10
+ } from "../GoodAaveStaking";
11
+
12
+ const _abi = [
13
+ {
14
+ anonymous: false,
15
+ inputs: [
16
+ {
17
+ indexed: true,
18
+ internalType: "address",
19
+ name: "owner",
20
+ type: "address",
21
+ },
22
+ {
23
+ indexed: true,
24
+ internalType: "address",
25
+ name: "spender",
26
+ type: "address",
27
+ },
28
+ {
29
+ indexed: false,
30
+ internalType: "uint256",
31
+ name: "value",
32
+ type: "uint256",
33
+ },
34
+ ],
35
+ name: "Approval",
36
+ type: "event",
37
+ },
38
+ {
39
+ anonymous: false,
40
+ inputs: [
41
+ {
42
+ indexed: false,
43
+ internalType: "uint8",
44
+ name: "version",
45
+ type: "uint8",
46
+ },
47
+ ],
48
+ name: "Initialized",
49
+ type: "event",
50
+ },
51
+ {
52
+ anonymous: false,
53
+ inputs: [
54
+ {
55
+ indexed: false,
56
+ internalType: "address",
57
+ name: "recipient",
58
+ type: "address",
59
+ },
60
+ {
61
+ indexed: false,
62
+ internalType: "uint256",
63
+ name: "iTokenGains",
64
+ type: "uint256",
65
+ },
66
+ {
67
+ indexed: false,
68
+ internalType: "uint256",
69
+ name: "tokenGains",
70
+ type: "uint256",
71
+ },
72
+ {
73
+ indexed: false,
74
+ internalType: "uint256",
75
+ name: "actualTokenRedeemed",
76
+ type: "uint256",
77
+ },
78
+ {
79
+ indexed: false,
80
+ internalType: "uint256",
81
+ name: "actualRewardTokenEarned",
82
+ type: "uint256",
83
+ },
84
+ {
85
+ indexed: false,
86
+ internalType: "uint256",
87
+ name: "interestCollectedInDAI",
88
+ type: "uint256",
89
+ },
90
+ ],
91
+ name: "InterestCollected",
92
+ type: "event",
93
+ },
94
+ {
95
+ anonymous: false,
96
+ inputs: [
97
+ {
98
+ indexed: true,
99
+ internalType: "address",
100
+ name: "staker",
101
+ type: "address",
102
+ },
103
+ {
104
+ indexed: false,
105
+ internalType: "address",
106
+ name: "token",
107
+ type: "address",
108
+ },
109
+ {
110
+ indexed: false,
111
+ internalType: "uint256",
112
+ name: "value",
113
+ type: "uint256",
114
+ },
115
+ ],
116
+ name: "StakeWithdraw",
117
+ type: "event",
118
+ },
119
+ {
120
+ anonymous: false,
121
+ inputs: [
122
+ {
123
+ indexed: true,
124
+ internalType: "address",
125
+ name: "staker",
126
+ type: "address",
127
+ },
128
+ {
129
+ indexed: false,
130
+ internalType: "address",
131
+ name: "token",
132
+ type: "address",
133
+ },
134
+ {
135
+ indexed: false,
136
+ internalType: "uint256",
137
+ name: "value",
138
+ type: "uint256",
139
+ },
140
+ ],
141
+ name: "Staked",
142
+ type: "event",
143
+ },
144
+ {
145
+ anonymous: false,
146
+ inputs: [
147
+ {
148
+ indexed: true,
149
+ internalType: "address",
150
+ name: "from",
151
+ type: "address",
152
+ },
153
+ {
154
+ indexed: true,
155
+ internalType: "address",
156
+ name: "to",
157
+ type: "address",
158
+ },
159
+ {
160
+ indexed: false,
161
+ internalType: "uint256",
162
+ name: "value",
163
+ type: "uint256",
164
+ },
165
+ ],
166
+ name: "Transfer",
167
+ type: "event",
168
+ },
169
+ {
170
+ inputs: [],
171
+ name: "aaveUSDOracle",
172
+ outputs: [
173
+ {
174
+ internalType: "address",
175
+ name: "",
176
+ type: "address",
177
+ },
178
+ ],
179
+ stateMutability: "view",
180
+ type: "function",
181
+ },
182
+ {
183
+ inputs: [],
184
+ name: "accAmountPerShare",
185
+ outputs: [
186
+ {
187
+ internalType: "uint256",
188
+ name: "",
189
+ type: "uint256",
190
+ },
191
+ ],
192
+ stateMutability: "view",
193
+ type: "function",
194
+ },
195
+ {
196
+ inputs: [],
197
+ name: "accumulatedRewards",
198
+ outputs: [
199
+ {
200
+ internalType: "uint256",
201
+ name: "",
202
+ type: "uint256",
203
+ },
204
+ ],
205
+ stateMutability: "view",
206
+ type: "function",
207
+ },
208
+ {
209
+ inputs: [
210
+ {
211
+ internalType: "address",
212
+ name: "owner",
213
+ type: "address",
214
+ },
215
+ {
216
+ internalType: "address",
217
+ name: "spender",
218
+ type: "address",
219
+ },
220
+ ],
221
+ name: "allowance",
222
+ outputs: [
223
+ {
224
+ internalType: "uint256",
225
+ name: "",
226
+ type: "uint256",
227
+ },
228
+ ],
229
+ stateMutability: "view",
230
+ type: "function",
231
+ },
232
+ {
233
+ inputs: [
234
+ {
235
+ internalType: "address",
236
+ name: "spender",
237
+ type: "address",
238
+ },
239
+ {
240
+ internalType: "uint256",
241
+ name: "amount",
242
+ type: "uint256",
243
+ },
244
+ ],
245
+ name: "approve",
246
+ outputs: [
247
+ {
248
+ internalType: "bool",
249
+ name: "",
250
+ type: "bool",
251
+ },
252
+ ],
253
+ stateMutability: "nonpayable",
254
+ type: "function",
255
+ },
256
+ {
257
+ inputs: [],
258
+ name: "avatar",
259
+ outputs: [
260
+ {
261
+ internalType: "address",
262
+ name: "",
263
+ type: "address",
264
+ },
265
+ ],
266
+ stateMutability: "view",
267
+ type: "function",
268
+ },
269
+ {
270
+ inputs: [
271
+ {
272
+ internalType: "address",
273
+ name: "account",
274
+ type: "address",
275
+ },
276
+ ],
277
+ name: "balanceOf",
278
+ outputs: [
279
+ {
280
+ internalType: "uint256",
281
+ name: "",
282
+ type: "uint256",
283
+ },
284
+ ],
285
+ stateMutability: "view",
286
+ type: "function",
287
+ },
288
+ {
289
+ inputs: [],
290
+ name: "claimReputation",
291
+ outputs: [],
292
+ stateMutability: "nonpayable",
293
+ type: "function",
294
+ },
295
+ {
296
+ inputs: [],
297
+ name: "collectInterestGasCost",
298
+ outputs: [
299
+ {
300
+ internalType: "uint32",
301
+ name: "",
302
+ type: "uint32",
303
+ },
304
+ ],
305
+ stateMutability: "view",
306
+ type: "function",
307
+ },
308
+ {
309
+ inputs: [
310
+ {
311
+ internalType: "address",
312
+ name: "_recipient",
313
+ type: "address",
314
+ },
315
+ ],
316
+ name: "collectUBIInterest",
317
+ outputs: [
318
+ {
319
+ internalType: "uint256",
320
+ name: "actualTokenRedeemed",
321
+ type: "uint256",
322
+ },
323
+ {
324
+ internalType: "uint256",
325
+ name: "actualRewardTokenRedeemed",
326
+ type: "uint256",
327
+ },
328
+ {
329
+ internalType: "uint256",
330
+ name: "actualDai",
331
+ type: "uint256",
332
+ },
333
+ ],
334
+ stateMutability: "nonpayable",
335
+ type: "function",
336
+ },
337
+ {
338
+ inputs: [
339
+ {
340
+ internalType: "bool",
341
+ name: "_returnTokenBalanceInUSD",
342
+ type: "bool",
343
+ },
344
+ {
345
+ internalType: "bool",
346
+ name: "_returnTokenGainsInUSD",
347
+ type: "bool",
348
+ },
349
+ ],
350
+ name: "currentGains",
351
+ outputs: [
352
+ {
353
+ internalType: "uint256",
354
+ name: "",
355
+ type: "uint256",
356
+ },
357
+ {
358
+ internalType: "uint256",
359
+ name: "",
360
+ type: "uint256",
361
+ },
362
+ {
363
+ internalType: "uint256",
364
+ name: "",
365
+ type: "uint256",
366
+ },
367
+ {
368
+ internalType: "uint256",
369
+ name: "",
370
+ type: "uint256",
371
+ },
372
+ {
373
+ internalType: "uint256",
374
+ name: "",
375
+ type: "uint256",
376
+ },
377
+ ],
378
+ stateMutability: "view",
379
+ type: "function",
380
+ },
381
+ {
382
+ inputs: [],
383
+ name: "dao",
384
+ outputs: [
385
+ {
386
+ internalType: "contract Controller",
387
+ name: "",
388
+ type: "address",
389
+ },
390
+ ],
391
+ stateMutability: "view",
392
+ type: "function",
393
+ },
394
+ {
395
+ inputs: [],
396
+ name: "decimals",
397
+ outputs: [
398
+ {
399
+ internalType: "uint8",
400
+ name: "",
401
+ type: "uint8",
402
+ },
403
+ ],
404
+ stateMutability: "view",
405
+ type: "function",
406
+ },
407
+ {
408
+ inputs: [
409
+ {
410
+ internalType: "address",
411
+ name: "spender",
412
+ type: "address",
413
+ },
414
+ {
415
+ internalType: "uint256",
416
+ name: "subtractedValue",
417
+ type: "uint256",
418
+ },
419
+ ],
420
+ name: "decreaseAllowance",
421
+ outputs: [
422
+ {
423
+ internalType: "bool",
424
+ name: "",
425
+ type: "bool",
426
+ },
427
+ ],
428
+ stateMutability: "nonpayable",
429
+ type: "function",
430
+ },
431
+ {
432
+ inputs: [],
433
+ name: "getGasCostForInterestTransfer",
434
+ outputs: [
435
+ {
436
+ internalType: "uint32",
437
+ name: "",
438
+ type: "uint32",
439
+ },
440
+ ],
441
+ stateMutability: "view",
442
+ type: "function",
443
+ },
444
+ {
445
+ inputs: [
446
+ {
447
+ internalType: "address",
448
+ name: "user",
449
+ type: "address",
450
+ },
451
+ ],
452
+ name: "getProductivity",
453
+ outputs: [
454
+ {
455
+ internalType: "uint256",
456
+ name: "",
457
+ type: "uint256",
458
+ },
459
+ {
460
+ internalType: "uint256",
461
+ name: "",
462
+ type: "uint256",
463
+ },
464
+ ],
465
+ stateMutability: "view",
466
+ type: "function",
467
+ },
468
+ {
469
+ inputs: [],
470
+ name: "getRouter",
471
+ outputs: [
472
+ {
473
+ internalType: "contract Uniswap",
474
+ name: "",
475
+ type: "address",
476
+ },
477
+ ],
478
+ stateMutability: "view",
479
+ type: "function",
480
+ },
481
+ {
482
+ inputs: [
483
+ {
484
+ internalType: "address",
485
+ name: "_oracle",
486
+ type: "address",
487
+ },
488
+ {
489
+ internalType: "uint256",
490
+ name: "_amount",
491
+ type: "uint256",
492
+ },
493
+ {
494
+ internalType: "uint256",
495
+ name: "_decimals",
496
+ type: "uint256",
497
+ },
498
+ ],
499
+ name: "getTokenValueInUSD",
500
+ outputs: [
501
+ {
502
+ internalType: "uint256",
503
+ name: "",
504
+ type: "uint256",
505
+ },
506
+ ],
507
+ stateMutability: "view",
508
+ type: "function",
509
+ },
510
+ {
511
+ inputs: [
512
+ {
513
+ internalType: "address",
514
+ name: "_staker",
515
+ type: "address",
516
+ },
517
+ ],
518
+ name: "getUserMintedAndPending",
519
+ outputs: [
520
+ {
521
+ internalType: "uint256",
522
+ name: "",
523
+ type: "uint256",
524
+ },
525
+ {
526
+ internalType: "uint256",
527
+ name: "",
528
+ type: "uint256",
529
+ },
530
+ ],
531
+ stateMutability: "view",
532
+ type: "function",
533
+ },
534
+ {
535
+ inputs: [
536
+ {
537
+ internalType: "address",
538
+ name: "user",
539
+ type: "address",
540
+ },
541
+ {
542
+ internalType: "uint256",
543
+ name: "rewardsPerBlock",
544
+ type: "uint256",
545
+ },
546
+ {
547
+ internalType: "uint256",
548
+ name: "blockStart",
549
+ type: "uint256",
550
+ },
551
+ {
552
+ internalType: "uint256",
553
+ name: "blockEnd",
554
+ type: "uint256",
555
+ },
556
+ ],
557
+ name: "getUserPendingReward",
558
+ outputs: [
559
+ {
560
+ internalType: "uint256",
561
+ name: "",
562
+ type: "uint256",
563
+ },
564
+ ],
565
+ stateMutability: "view",
566
+ type: "function",
567
+ },
568
+ {
569
+ inputs: [],
570
+ name: "iToken",
571
+ outputs: [
572
+ {
573
+ internalType: "contract ERC20",
574
+ name: "",
575
+ type: "address",
576
+ },
577
+ ],
578
+ stateMutability: "view",
579
+ type: "function",
580
+ },
581
+ {
582
+ inputs: [
583
+ {
584
+ internalType: "uint256",
585
+ name: "_amount",
586
+ type: "uint256",
587
+ },
588
+ ],
589
+ name: "iTokenWorthInToken",
590
+ outputs: [
591
+ {
592
+ internalType: "uint256",
593
+ name: "",
594
+ type: "uint256",
595
+ },
596
+ ],
597
+ stateMutability: "view",
598
+ type: "function",
599
+ },
600
+ {
601
+ inputs: [
602
+ {
603
+ internalType: "address",
604
+ name: "spender",
605
+ type: "address",
606
+ },
607
+ {
608
+ internalType: "uint256",
609
+ name: "addedValue",
610
+ type: "uint256",
611
+ },
612
+ ],
613
+ name: "increaseAllowance",
614
+ outputs: [
615
+ {
616
+ internalType: "bool",
617
+ name: "",
618
+ type: "bool",
619
+ },
620
+ ],
621
+ stateMutability: "nonpayable",
622
+ type: "function",
623
+ },
624
+ {
625
+ inputs: [
626
+ {
627
+ internalType: "address",
628
+ name: "_token",
629
+ type: "address",
630
+ },
631
+ {
632
+ internalType: "address",
633
+ name: "_lendingPool",
634
+ type: "address",
635
+ },
636
+ {
637
+ internalType: "contract INameService",
638
+ name: "_ns",
639
+ type: "address",
640
+ },
641
+ {
642
+ internalType: "string",
643
+ name: "_tokenName",
644
+ type: "string",
645
+ },
646
+ {
647
+ internalType: "string",
648
+ name: "_tokenSymbol",
649
+ type: "string",
650
+ },
651
+ {
652
+ internalType: "uint64",
653
+ name: "_maxRewardThreshold",
654
+ type: "uint64",
655
+ },
656
+ {
657
+ internalType: "address",
658
+ name: "_tokenUsdOracle",
659
+ type: "address",
660
+ },
661
+ {
662
+ internalType: "contract IAaveIncentivesController",
663
+ name: "_incentiveController",
664
+ type: "address",
665
+ },
666
+ {
667
+ internalType: "address",
668
+ name: "_aaveUSDOracle",
669
+ type: "address",
670
+ },
671
+ {
672
+ internalType: "address[]",
673
+ name: "_tokenToDaiSwapPath",
674
+ type: "address[]",
675
+ },
676
+ ],
677
+ name: "init",
678
+ outputs: [],
679
+ stateMutability: "nonpayable",
680
+ type: "function",
681
+ },
682
+ {
683
+ inputs: [
684
+ {
685
+ internalType: "address",
686
+ name: "_token",
687
+ type: "address",
688
+ },
689
+ {
690
+ internalType: "address",
691
+ name: "_iToken",
692
+ type: "address",
693
+ },
694
+ {
695
+ internalType: "contract INameService",
696
+ name: "_ns",
697
+ type: "address",
698
+ },
699
+ {
700
+ internalType: "string",
701
+ name: "_tokenName",
702
+ type: "string",
703
+ },
704
+ {
705
+ internalType: "string",
706
+ name: "_tokenSymbol",
707
+ type: "string",
708
+ },
709
+ {
710
+ internalType: "uint64",
711
+ name: "_maxRewardThreshold",
712
+ type: "uint64",
713
+ },
714
+ ],
715
+ name: "initialize",
716
+ outputs: [],
717
+ stateMutability: "nonpayable",
718
+ type: "function",
719
+ },
720
+ {
721
+ inputs: [],
722
+ name: "isPaused",
723
+ outputs: [
724
+ {
725
+ internalType: "bool",
726
+ name: "",
727
+ type: "bool",
728
+ },
729
+ ],
730
+ stateMutability: "view",
731
+ type: "function",
732
+ },
733
+ {
734
+ inputs: [],
735
+ name: "lastRewardBlock",
736
+ outputs: [
737
+ {
738
+ internalType: "uint256",
739
+ name: "",
740
+ type: "uint256",
741
+ },
742
+ ],
743
+ stateMutability: "view",
744
+ type: "function",
745
+ },
746
+ {
747
+ inputs: [],
748
+ name: "lendingPool",
749
+ outputs: [
750
+ {
751
+ internalType: "contract ILendingPool",
752
+ name: "",
753
+ type: "address",
754
+ },
755
+ ],
756
+ stateMutability: "view",
757
+ type: "function",
758
+ },
759
+ {
760
+ inputs: [],
761
+ name: "maxLiquidityPercentageSwap",
762
+ outputs: [
763
+ {
764
+ internalType: "uint24",
765
+ name: "",
766
+ type: "uint24",
767
+ },
768
+ ],
769
+ stateMutability: "view",
770
+ type: "function",
771
+ },
772
+ {
773
+ inputs: [],
774
+ name: "maxMultiplierThreshold",
775
+ outputs: [
776
+ {
777
+ internalType: "uint64",
778
+ name: "",
779
+ type: "uint64",
780
+ },
781
+ ],
782
+ stateMutability: "view",
783
+ type: "function",
784
+ },
785
+ {
786
+ inputs: [],
787
+ name: "mintedRewards",
788
+ outputs: [
789
+ {
790
+ internalType: "uint256",
791
+ name: "",
792
+ type: "uint256",
793
+ },
794
+ ],
795
+ stateMutability: "view",
796
+ type: "function",
797
+ },
798
+ {
799
+ inputs: [],
800
+ name: "name",
801
+ outputs: [
802
+ {
803
+ internalType: "string",
804
+ name: "",
805
+ type: "string",
806
+ },
807
+ ],
808
+ stateMutability: "view",
809
+ type: "function",
810
+ },
811
+ {
812
+ inputs: [],
813
+ name: "nameService",
814
+ outputs: [
815
+ {
816
+ internalType: "contract INameService",
817
+ name: "",
818
+ type: "address",
819
+ },
820
+ ],
821
+ stateMutability: "view",
822
+ type: "function",
823
+ },
824
+ {
825
+ inputs: [],
826
+ name: "nativeToken",
827
+ outputs: [
828
+ {
829
+ internalType: "contract IGoodDollar",
830
+ name: "",
831
+ type: "address",
832
+ },
833
+ ],
834
+ stateMutability: "view",
835
+ type: "function",
836
+ },
837
+ {
838
+ inputs: [
839
+ {
840
+ internalType: "bool",
841
+ name: "_isPaused",
842
+ type: "bool",
843
+ },
844
+ ],
845
+ name: "pause",
846
+ outputs: [],
847
+ stateMutability: "nonpayable",
848
+ type: "function",
849
+ },
850
+ {
851
+ inputs: [
852
+ {
853
+ internalType: "contract ERC20",
854
+ name: "_token",
855
+ type: "address",
856
+ },
857
+ ],
858
+ name: "recover",
859
+ outputs: [],
860
+ stateMutability: "nonpayable",
861
+ type: "function",
862
+ },
863
+ {
864
+ inputs: [
865
+ {
866
+ internalType: "address",
867
+ name: "user",
868
+ type: "address",
869
+ },
870
+ {
871
+ internalType: "uint256",
872
+ name: "rewardsPerBlock",
873
+ type: "uint256",
874
+ },
875
+ {
876
+ internalType: "uint256",
877
+ name: "blockStart",
878
+ type: "uint256",
879
+ },
880
+ {
881
+ internalType: "uint256",
882
+ name: "blockEnd",
883
+ type: "uint256",
884
+ },
885
+ ],
886
+ name: "rewardsMinted",
887
+ outputs: [
888
+ {
889
+ internalType: "uint256",
890
+ name: "",
891
+ type: "uint256",
892
+ },
893
+ ],
894
+ stateMutability: "nonpayable",
895
+ type: "function",
896
+ },
897
+ {
898
+ inputs: [
899
+ {
900
+ internalType: "uint24",
901
+ name: "_maxPercentage",
902
+ type: "uint24",
903
+ },
904
+ ],
905
+ name: "setMaxLiquidityPercentageSwap",
906
+ outputs: [],
907
+ stateMutability: "nonpayable",
908
+ type: "function",
909
+ },
910
+ {
911
+ inputs: [
912
+ {
913
+ internalType: "uint32",
914
+ name: "_collectInterestGasCost",
915
+ type: "uint32",
916
+ },
917
+ {
918
+ internalType: "uint32",
919
+ name: "_rewardTokenCollectCost",
920
+ type: "uint32",
921
+ },
922
+ ],
923
+ name: "setcollectInterestGasCostParams",
924
+ outputs: [],
925
+ stateMutability: "nonpayable",
926
+ type: "function",
927
+ },
928
+ {
929
+ inputs: [
930
+ {
931
+ internalType: "uint256",
932
+ name: "_amount",
933
+ type: "uint256",
934
+ },
935
+ {
936
+ internalType: "uint256",
937
+ name: "_donationPer",
938
+ type: "uint256",
939
+ },
940
+ {
941
+ internalType: "bool",
942
+ name: "_inInterestToken",
943
+ type: "bool",
944
+ },
945
+ ],
946
+ name: "stake",
947
+ outputs: [],
948
+ stateMutability: "nonpayable",
949
+ type: "function",
950
+ },
951
+ {
952
+ inputs: [],
953
+ name: "symbol",
954
+ outputs: [
955
+ {
956
+ internalType: "string",
957
+ name: "",
958
+ type: "string",
959
+ },
960
+ ],
961
+ stateMutability: "view",
962
+ type: "function",
963
+ },
964
+ {
965
+ inputs: [],
966
+ name: "token",
967
+ outputs: [
968
+ {
969
+ internalType: "contract ERC20",
970
+ name: "",
971
+ type: "address",
972
+ },
973
+ ],
974
+ stateMutability: "view",
975
+ type: "function",
976
+ },
977
+ {
978
+ inputs: [],
979
+ name: "tokenDecimalDifference",
980
+ outputs: [
981
+ {
982
+ internalType: "uint8",
983
+ name: "",
984
+ type: "uint8",
985
+ },
986
+ ],
987
+ stateMutability: "view",
988
+ type: "function",
989
+ },
990
+ {
991
+ inputs: [
992
+ {
993
+ internalType: "uint256",
994
+ name: "",
995
+ type: "uint256",
996
+ },
997
+ ],
998
+ name: "tokenToDaiSwapPath",
999
+ outputs: [
1000
+ {
1001
+ internalType: "address",
1002
+ name: "",
1003
+ type: "address",
1004
+ },
1005
+ ],
1006
+ stateMutability: "view",
1007
+ type: "function",
1008
+ },
1009
+ {
1010
+ inputs: [],
1011
+ name: "tokenUsdOracle",
1012
+ outputs: [
1013
+ {
1014
+ internalType: "address",
1015
+ name: "",
1016
+ type: "address",
1017
+ },
1018
+ ],
1019
+ stateMutability: "view",
1020
+ type: "function",
1021
+ },
1022
+ {
1023
+ inputs: [],
1024
+ name: "totalEffectiveStakes",
1025
+ outputs: [
1026
+ {
1027
+ internalType: "uint256",
1028
+ name: "",
1029
+ type: "uint256",
1030
+ },
1031
+ ],
1032
+ stateMutability: "view",
1033
+ type: "function",
1034
+ },
1035
+ {
1036
+ inputs: [],
1037
+ name: "totalProductivity",
1038
+ outputs: [
1039
+ {
1040
+ internalType: "uint256",
1041
+ name: "",
1042
+ type: "uint256",
1043
+ },
1044
+ ],
1045
+ stateMutability: "view",
1046
+ type: "function",
1047
+ },
1048
+ {
1049
+ inputs: [],
1050
+ name: "totalSupply",
1051
+ outputs: [
1052
+ {
1053
+ internalType: "uint256",
1054
+ name: "",
1055
+ type: "uint256",
1056
+ },
1057
+ ],
1058
+ stateMutability: "view",
1059
+ type: "function",
1060
+ },
1061
+ {
1062
+ inputs: [
1063
+ {
1064
+ internalType: "address",
1065
+ name: "to",
1066
+ type: "address",
1067
+ },
1068
+ {
1069
+ internalType: "uint256",
1070
+ name: "amount",
1071
+ type: "uint256",
1072
+ },
1073
+ ],
1074
+ name: "transfer",
1075
+ outputs: [
1076
+ {
1077
+ internalType: "bool",
1078
+ name: "",
1079
+ type: "bool",
1080
+ },
1081
+ ],
1082
+ stateMutability: "nonpayable",
1083
+ type: "function",
1084
+ },
1085
+ {
1086
+ inputs: [
1087
+ {
1088
+ internalType: "address",
1089
+ name: "from",
1090
+ type: "address",
1091
+ },
1092
+ {
1093
+ internalType: "address",
1094
+ name: "to",
1095
+ type: "address",
1096
+ },
1097
+ {
1098
+ internalType: "uint256",
1099
+ name: "amount",
1100
+ type: "uint256",
1101
+ },
1102
+ ],
1103
+ name: "transferFrom",
1104
+ outputs: [
1105
+ {
1106
+ internalType: "bool",
1107
+ name: "",
1108
+ type: "bool",
1109
+ },
1110
+ ],
1111
+ stateMutability: "nonpayable",
1112
+ type: "function",
1113
+ },
1114
+ {
1115
+ inputs: [],
1116
+ name: "updateAvatar",
1117
+ outputs: [],
1118
+ stateMutability: "nonpayable",
1119
+ type: "function",
1120
+ },
1121
+ {
1122
+ inputs: [
1123
+ {
1124
+ internalType: "address",
1125
+ name: "",
1126
+ type: "address",
1127
+ },
1128
+ ],
1129
+ name: "users",
1130
+ outputs: [
1131
+ {
1132
+ internalType: "uint256",
1133
+ name: "amount",
1134
+ type: "uint256",
1135
+ },
1136
+ {
1137
+ internalType: "uint256",
1138
+ name: "effectiveStakes",
1139
+ type: "uint256",
1140
+ },
1141
+ {
1142
+ internalType: "uint256",
1143
+ name: "rewardDebt",
1144
+ type: "uint256",
1145
+ },
1146
+ {
1147
+ internalType: "uint256",
1148
+ name: "rewardEarn",
1149
+ type: "uint256",
1150
+ },
1151
+ {
1152
+ internalType: "uint256",
1153
+ name: "rewardMinted",
1154
+ type: "uint256",
1155
+ },
1156
+ {
1157
+ internalType: "uint64",
1158
+ name: "lastRewardTime",
1159
+ type: "uint64",
1160
+ },
1161
+ {
1162
+ internalType: "uint64",
1163
+ name: "multiplierResetTime",
1164
+ type: "uint64",
1165
+ },
1166
+ ],
1167
+ stateMutability: "view",
1168
+ type: "function",
1169
+ },
1170
+ {
1171
+ inputs: [],
1172
+ name: "withdrawRewards",
1173
+ outputs: [],
1174
+ stateMutability: "nonpayable",
1175
+ type: "function",
1176
+ },
1177
+ {
1178
+ inputs: [
1179
+ {
1180
+ internalType: "uint256",
1181
+ name: "_amount",
1182
+ type: "uint256",
1183
+ },
1184
+ {
1185
+ internalType: "bool",
1186
+ name: "_inInterestToken",
1187
+ type: "bool",
1188
+ },
1189
+ ],
1190
+ name: "withdrawStake",
1191
+ outputs: [],
1192
+ stateMutability: "nonpayable",
1193
+ type: "function",
1194
+ },
1195
+ ];
1196
+
1197
+ const _bytecode =
1198
+ "0x608060405234801561001057600080fd5b50615396806100206000396000f3fe608060405234801561001057600080fd5b50600436106102725760003560e01c806302329a291461027757806306fdde031461028c578063095ea7b3146102aa57806309b04fb4146102cd5780630cd865ec1461030857806318160ddd1461031b5780631b3c90a81461032d5780631ce720f31461033557806323b872dd1461035457806328e964e9146103675780632ba7cff9146103a95780632bbbdc89146103c9578063313ce567146103dc57806337455990146103e457806339509351146104125780633a608032146104255780633e6326fc1461042e578063408cfe24146104415780634162169f1461045457806343d93ca01461046757806346b30ff51461047a5780634a291b0114610482578063561b24631461048b578063574c5c931461049e5780635a6d735c146104b15780635aef7de6146104c257806370a08231146104d5578063899e1b6c146104fe57806389eb64261461052957806395d89b411461053c578063995a1229146105445780639c81ff6b14610557578063a457c2d714610560578063a59a997314610573578063a82415ae14610586578063a87430ba14610599578063a9059cbb14610631578063a9f8d18114610644578063ad1e5d751461064d578063b0ce7abb14610660578063b0f479a114610673578063b187bd261461067b578063b76e230e1461068f578063bea28115146106bb578063c7b8981c146106c4578063dd62ed3e146106cc578063e1758bd8146106df578063e319828c146106e7578063e32f1726146106f0578063e660b53f14610703578063ead8dbd41461070b578063edb5b8631461071e578063f412a6af14610731578063fc0c546a1461075b575b600080fd5b61028a610285366004614485565b61076e565b005b610294610794565b6040516102a191906144a2565b60405180910390f35b6102bd6102b8366004614515565b610826565b60405190151581526020016102a1565b6102e06102db366004614541565b610840565b604080519586526020860194909452928401919091526060830152608082015260a0016102a1565b61028a61031636600461457a565b610a69565b6035545b6040519081526020016102a1565b61028a610c45565b60a1546103429060ff1681565b60405160ff90911681526020016102a1565b6102bd610362366004614597565b610d6c565b61039461037536600461457a565b6001600160a01b0316600090815260a26020526040902054609a549091565b604080519283526020830191909152016102a1565b60da546103bc906001600160a01b031681565b6040516102a191906145d8565b61028a6103d73660046145fe565b610d90565b610342610dd7565b6103f76103f236600461457a565b610e4a565b604080519384526020840192909252908201526060016102a1565b6102bd610420366004614515565b610f4f565b61031f609c5481565b6067546103bc906001600160a01b031681565b60d6546103bc906001600160a01b031681565b6065546103bc906001600160a01b031681565b61028a61047536600461462c565b610f71565b61028a610f9d565b61031f609b5481565b61028a610499366004614651565b6110c8565b61031f6104ac36600461468a565b611696565b61031f6104bf3660046146c5565b90565b6066546103bc906001600160a01b031681565b61031f6104e336600461457a565b6001600160a01b031660009081526033602052604090205490565b609f54610511906001600160401b031681565b6040516001600160401b0390911681526020016102a1565b60d7546103bc906001600160a01b031681565b610294611724565b61028a610552366004614873565b611733565b61031f609e5481565b6102bd61056e366004614515565b611990565b60d8546103bc906001600160a01b031681565b61031f61059436600461468a565b611a0b565b6105f06105a736600461457a565b60a26020526000908152604090208054600182015460028301546003840154600485015460059095015493949293919290916001600160401b0380821691600160401b90041687565b60408051978852602088019690965294860193909352606085019190915260808401526001600160401b0390811660a08401521660c082015260e0016102a1565b6102bd61063f366004614515565b611c40565b61031f60a05481565b61031f61065b366004614971565b611c4e565b6103bc61066e3660046146c5565b611ce3565b6103bc611d0d565b60d6546102bd90600160a01b900460ff1681565b60da546106a690600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016102a1565b61031f609a5481565b61028a611d7d565b61031f6106da3660046149a6565b611ecf565b6103bc611efa565b61031f609d5481565b61028a6106fe3660046149d4565b611f46565b6106a6612234565b61028a610719366004614a82565b612347565b61039461072c36600461457a565b61294c565b60d65461074790600160a81b900462ffffff1681565b60405162ffffff90911681526020016102a1565b60d5546103bc906001600160a01b031681565b610776612aac565b60d68054911515600160a01b0260ff60a01b19909216919091179055565b6060603680546107a390614aa7565b80601f01602080910402602001604051908101604052809291908181526020018280546107cf90614aa7565b801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b5050505050905090565b600033610834818585612b6f565b60019150505b92915050565b60d6546040516370a0823160e01b815260009182918291829182916001600160a01b031690829082906370a082319061087d9030906004016145d8565b602060405180830381865afa15801561089a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108be9190614ae1565b90506000896108ce576000610950565b60d75460d5546040805163313ce56760e01b81529051610950936001600160a01b0390811693879391169163313ce567916004808201926020929091908290030181865afa158015610924573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109489190614b0b565b60ff16611c4e565b6040805160018082528183019092529192506000919060208083019080368337505060d55482519293506001600160a01b03169183915060009061099657610996614b26565b60200260200101906001600160a01b031690816001600160a01b031681525050609a5483116109d65750600097508796509094509250849150610a5f9050565b6000609a54846109e69190614b52565b905060008b6109f6576000610a4c565b60d75460d5546040805163313ce56760e01b81529051610a4c936001600160a01b0390811693879391169163313ce567916004808201926020929091908290030181865afa158015610924573d6000803e3d6000fd5b919a508a99509397509195509093505050505b9295509295909350565b610a71612aac565b6040516370a0823160e01b81526000906001600160a01b038316906370a0823190610aa09030906004016145d8565b602060405180830381865afa158015610abd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae19190614ae1565b60d6549091506001600160a01b0390811690831603610b8457609a54158015610b13575060d654600160a01b900460ff165b610b845760405162461bcd60e51b815260206004820152603760248201527f63616e207265636f7665722069546f6b656e206f6e6c79207768656e2073746160448201527635b2b9903430bb32903132b2b7103bb4ba34323930bbb760491b60648201526084015b60405180910390fd5b60665460405163a9059cbb60e01b81526001600160a01b038481169263a9059cbb92610bb892909116908590600401614b65565b6020604051808303816000875af1158015610bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfb9190614b7e565b610c415760405162461bcd60e51b81526020600482015260176024820152761c9958dbdd995c881d1c985b9cd9995c8819985a5b1959604a1b6044820152606401610b7b565b5050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610ca8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccc9190614ba6565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610d26573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d4a9190614ba6565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600033610d7a858285612c93565b610d85858585612d0d565b506001949350505050565b610d98612aac565b60da8054600160a01b600160e01b031916600160a01b63ffffffff9485160263ffffffff60c01b191617600160c01b9290931691909102919091179055565b60d5546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610e21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e459190614b0b565b905090565b6000806000610e57612f8d565b306001600160a01b03851603610ec05760405162461bcd60e51b815260206004820152602860248201527f526563697069656e742063616e6e6f7420626520746865207374616b696e672060448201526718dbdb9d1c9858dd60c21b6064820152608401610b7b565b600080610ece600080610840565b50505091509150610edf828761306a565b604080516001600160a01b038b16815260208101879052908101859052606081018490526080810183905260a0810182905292975090955093507f38c2c21f82a20481909d7aef48247b0743f69728fbb599c274039e2eecf8bb179060c00160405180910390a150509193909250565b600033610834818585610f628383611ecf565b610f6c9190614bc3565b612b6f565b610f79612aac565b60d6805462ffffff909216600160a81b0262ffffff60a81b19909216919091179055565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190610fcc90600401614bd6565b602060405180830381865afa158015610fe9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100d9190614ba6565b90506001600160a01b038116156110c55760408051600180825281830190925260009160208083019080368337019050509050308160008151811061105457611054614b26565b6001600160a01b03928316602091820292909201015260405163455518ef60e11b815290831690638aaa31de906110919033908590600401614c40565b600060405180830381600087803b1580156110ab57600080fd5b505af11580156110bf573d6000803e3d6000fd5b50505050505b50565b6110d0613399565b60d654600160a01b900460ff161561111e5760405162461bcd60e51b815260206004820152601160248201527014dd185ada5b99c81a5cc81c185d5cd959607a1b6044820152606401610b7b565b81158061112b5750816064145b6111865760405162461bcd60e51b815260206004820152602660248201527f446f6e6174696f6e2070657263656e746167652073686f756c6420626520302060448201526506f72203130360d41b6064820152608401610b7b565b600083116111e85760405162461bcd60e51b815260206004820152602960248201527f596f75206e65656420746f207374616b65206120706f73697469766520746f6b604482015268195b88185b5bdd5b9d60ba1b6064820152608401610b7b565b806111fe5760d5546001600160a01b031661120b565b60d6546001600160a01b03165b6001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604481018690526064016020604051808303816000875af115801561126d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112919190614b7e565b6113005760405162461bcd60e51b815260206004820152603a60248201527f7472616e7366657246726f6d206661696c65642c206d616b652073757265207960448201527937ba9030b8383937bb32b2103a37b5b2b7103a3930b739b332b960311b6064820152608401610b7b565b8061130b578261130d565b825b925080151560000361132257611322836133f2565b61132c338461346a565b60675460405163bf40fac160e01b8152600091829182916001600160a01b03169063bf40fac19061135f90600401614c6c565b602060405180830381865afa15801561137c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a09190614ba6565b6001600160a01b031663d0250144306040518263ffffffff1660e01b81526004016113cb91906145d8565b608060405180830381865afa1580156113e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140c9190614c92565b5092509250925061143f61141d3390565b878563ffffffff16856001600160401b0316856001600160401b03168a613519565b5060675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061146f90600401614bd6565b602060405180830381865afa15801561148c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b09190614ba6565b90506001600160a01b0381161561163c5760d5546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa15801561150b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061152f9190614b0b565b60ff166012146115d55760d560009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b09190614b0b565b6115bb906012614cf1565b6115c690600a614dee565b6115d09089614dfd565b6115d7565b875b60405163a39b215360e01b81529091506001600160a01b0383169063a39b2153906116089033908590600401614b65565b600060405180830381600087803b15801561162257600080fd5b505af1158015611636573d6000803e3d6000fd5b50505050505b60d55460405133917f5dac0c1b1112564a045ba943c9d50270893e8e826c49be8e7073adc713ab7bd79161167b916001600160a01b0316908b90614b65565b60405180910390a250505050611691600160a355565b505050565b6001600160a01b038416600090815260a2602052604081206116b6612f8d565b6116c1858585613574565b6116d18682600001546001613679565b600381018054600091829055600483018054919283926116f2908490614bc3565b9091555050609d54611705908290614bc3565b609d55611719662386f26fc1000082614e1c565b979650505050505050565b6060603780546107a390614aa7565b60d880546001600160a01b0319166001600160a01b038b169081179091556040516335ea6a7560e01b8152600091906335ea6a7590611776908e906004016145d8565b61018060405180830381865afa158015611794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b89190614eab565b90506117cc8b8260e001518b8b8b8b611f46565b8a6001600160a01b0316826000815181106117e9576117e9614b26565b60200260200101516001600160a01b03161480156118bd575060675460405163bf40fac160e01b815260206004820152600360248201526244414960e81b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa15801561185e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118829190614ba6565b6001600160a01b0316826001845161189a9190614b52565b815181106118aa576118aa614b26565b60200260200101516001600160a01b0316145b6119075760405162461bcd60e51b815260206004820152601b60248201527a0d2dcecc2d8d2c840bee8ded6cadca8de88c2d2a6eec2e0a0c2e8d602b1b6044820152606401610b7b565b815161191a9060db9060208501906143fd565b5060d780546001600160a01b03199081166001600160a01b038881169190911790925560d9805490911686831617905560da80549185166001600160c01b031990921691909117613d0960a41b1763ffffffff60c01b1916610c3560c41b1790556119836139a3565b5050505050505050505050565b6000338161199e8286611ecf565b9050838110156119fe5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b7b565b610d858286868403612b6f565b6001600160a01b038416600090815260a260209081526040808320815160e081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600501546001600160401b0380821660a0840152600160401b9091041660c0820152609c54609b54839015801590611a965750854310155b8015611aa25750438510155b15611c2457600060a05443611ab79190614b52565b90506000611acc89662386f26fc10000614dfd565b611ad69083614dfd565b90506000806000611ae688613b07565b60a1549295509093509150611aff9060ff16600a614dee565b609b54611b0c9190614dfd565b611b2185676765c793fa10079d601b1b614dfd565b611b2b9190614e1c565b611b359088614bc3565b9650878315611c1d57604081015160a154676765c793fa10079d601b1b908a90611b639060ff16600a614dee565b8460200151611b729190614dfd565b611b7c9190614dfd565b611b869190614e1c565b611b909190614b52565b96506000611ba685670de0b6b3a7640000614dfd565b611bbb89676765c793fa10079d601b1b614dfd565b611bc59190614e1c565b905064174876e80081611bd9856064614dfd565b600a611be6886064614dfd565b611bf1906005614dfd565b611bfb9190614e1c565b611c059190614bc3565b611c0f9190614dfd565b611c199190614e1c565b9750505b5050505050505b808360600151611c349190614bc3565b98975050505050505050565b600033610834818585612d0d565b6000808490506000816001600160a01b03166350d25bcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cb89190614ae1565b9050611cc584600a614f98565b611ccf8683614dfd565b611cd99190614e1c565b9695505050505050565b60db8181548110611cf357600080fd5b6000918252602090912001546001600160a01b0316905081565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190611d3c90600401614fa4565b602060405180830381865afa158015611d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e459190614ba6565b611d85613399565b60675460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190611db390600401614c6c565b602060405180830381865afa158015611dd0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df49190614ba6565b60675460405163bf40fac160e01b81526001600160a01b039283169263f03b289092169063bf40fac190611e2a90600401614fcc565b602060405180830381865afa158015611e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6b9190614ba6565b336040518363ffffffff1660e01b8152600401611e89929190614fea565b600060405180830381600087803b158015611ea357600080fd5b505af1158015611eb7573d6000803e3d6000fd5b50505050611ec3610f9d565b611ecd600160a355565b565b6001600160a01b03918216600090815260346020908152604080832093909416825291909152205490565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401611d3c565b600054610100900460ff1615808015611f665750600054600160ff909116105b80611f805750303b158015611f80575060005460ff166001145b611fe35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610b7b565b6000805460ff191660011790558015612006576000805461ff0019166101001790555b61200f85613bb6565b60d580546001600160a01b03808a166001600160a01b03199283161790925560d68054928916929091169190911790556120498484613bd9565b60d5546040805163313ce56760e01b815290516012926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015612093573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b79190614b0b565b60ff16111561211f5760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e20646563696d616c732073686f756c64206265206c65737320746860448201526d616e20313820646563696d616c7360901b6064820152608401610b7b565b60d560009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612172573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121969190614b0b565b6121a1906012614cf1565b60a1805460ff191660ff92909216919091179055609f80546001600160401b0319166001600160401b03841617905560d6805462ffffff60a81b1916604b60aa1b179055801561222b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b60408051600180825281830190925260009182919060208083019080368337505060d55482519293506001600160a01b03169183915060009061227957612279614b26565b6001600160a01b03928316602091820292909201015260d9546040516345accf9360e11b81526000929190911690638b599f26906122bd9085903090600401615004565b602060405180830381865afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe9190614ae1565b905080156123305760da546123299063ffffffff600160c01b8204811691600160a01b90041661502e565b9250505090565b505060da54600160a01b900463ffffffff16919050565b61234f613399565b600081156123f25760d65460405163a9059cbb60e01b815284916001600160a01b03169063a9059cbb906123899033908590600401614b65565b6020604051808303816000875af11580156123a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cc9190614b7e565b6123e85760405162461bcd60e51b8152600401610b7b90615052565b925082905061250e565b50816123fd81613c0a565b60d5546040516370a0823160e01b81526000916001600160a01b0316906370a082319061242e9030906004016145d8565b602060405180830381865afa15801561244b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246f9190614ae1565b90508181101561247d578091505b60d5546001600160a01b031663a9059cbb33846040518363ffffffff1660e01b81526004016124ad929190614b65565b6020604051808303816000875af11580156124cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f09190614b7e565b61250c5760405162461bcd60e51b8152600401610b7b90615052565b505b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061253d90600401614c6c565b602060405180830381865afa15801561255a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257e9190614ba6565b905061258a3385613cef565b6000806000836001600160a01b031663d0250144306040518263ffffffff1660e01b81526004016125bb91906145d8565b608060405180830381865afa1580156125d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125fc9190614c92565b5092509250925061262e61260d3390565b888563ffffffff16856001600160401b0316856001600160401b0316613e11565b5060675460405163bf40fac160e01b81526001600160a01b038087169263f03b28909291169063bf40fac19061266690600401614fcc565b602060405180830381865afa158015612683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a79190614ba6565b336040518363ffffffff1660e01b81526004016126c5929190614fea565b600060405180830381600087803b1580156126df57600080fd5b505af11580156126f3573d6000803e3d6000fd5b505060675460405163bf40fac160e01b8152600093506001600160a01b03909116915063bf40fac19061272890600401614bd6565b602060405180830381865afa158015612745573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127699190614ba6565b90506001600160a01b038116156128f55760d5546040805163313ce56760e01b815290516000926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614b0b565b60ff1660121461288e5760d560009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612845573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128699190614b0b565b612874906012614cf1565b61287f90600a614dee565b612889908a614dfd565b612890565b885b604051631f22c54760e11b81529091506001600160a01b03831690633e458a8e906128c19033908590600401614b65565b600060405180830381600087803b1580156128db57600080fd5b505af11580156128ef573d6000803e3d6000fd5b50505050505b60d55460405133917f89b2bca2609b9ce42215fdd646f9162cdfb9c1620c93db1cc6302479489d3f3291612934916001600160a01b0316908a90614b65565b60405180910390a2505050505050610c41600160a355565b60675460405163bf40fac160e01b815260009182918291829182916001600160a01b03169063bf40fac19061298390600401614c6c565b602060405180830381865afa1580156129a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c49190614ba6565b6001600160a01b031663d0250144306040518263ffffffff1660e01b81526004016129ef91906145d8565b608060405180830381865afa158015612a0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a309190614c92565b509250925092506000612a5d878563ffffffff16856001600160401b0316856001600160401b0316611a0b565b6001600160a01b038816600090815260a26020526040902060040154909150612a8e90662386f26fc1000090614e1c565b612a9f662386f26fc1000083614e1c565b9550955050505050915091565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015612af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b199190614ba6565b6001600160a01b031614611ecd5760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610b7b565b6001600160a01b038316612bd15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b7b565b6001600160a01b038216612c325760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b7b565b6001600160a01b0383811660008181526034602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000612c9f8484611ecf565b90506000198114612d075781811015612cfa5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b7b565b612d078484848403612b6f565b50505050565b612d18838383613e6c565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac190612d4790600401614bd6565b602060405180830381865afa158015612d64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d889190614ba6565b60675460405163bf40fac160e01b8152919250600091829182916001600160a01b039091169063bf40fac190612dc090600401614c6c565b602060405180830381865afa158015612ddd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e019190614ba6565b6001600160a01b031663d0250144306040518263ffffffff1660e01b8152600401612e2c91906145d8565b608060405180830381865afa158015612e49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e6d9190614c92565b50925092509250612e9987868563ffffffff16856001600160401b0316856001600160401b0316613e11565b50612ec186868563ffffffff16856001600160401b0316856001600160401b03166000613519565b506001600160a01b0384161561222b57604051631f22c54760e11b81526001600160a01b03851690633e458a8e90612eff908a908990600401614b65565b600060405180830381600087803b158015612f1957600080fd5b505af1158015612f2d573d6000803e3d6000fd5b505060405163a39b215360e01b81526001600160a01b038716925063a39b21539150612f5f9089908990600401614b65565b600060405180830381600087803b158015612f7957600080fd5b505af1158015611983573d6000803e3d6000fd5b60675460405163bf40fac160e01b81526001600160a01b039091169063bf40fac190612fbb90600401614c6c565b602060405180830381865afa158015612fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffc9190614ba6565b6001600160a01b0316336001600160a01b031614611ecd5760405162461bcd60e51b815260206004820152602560248201527f4f6e6c792046756e644d616e616765722063616e2063616c6c2074686973206d604482015264195d1a1bd960da1b6064820152608401610b7b565b6000806000306001600160a01b031673__$a7857c79f7039505337147dc025cce365e$__63f10a60ab909160d560009054906101000a90046001600160a01b031660db6001815481106130bf576130bf614b26565b60009182526020909120015460d65460405160e086901b6001600160e01b03191681526001600160a01b03948516600482015292841660248401529216604482015260648101899052600160a81b90910462ffffff16608482015260a401602060405180830381865af415801561313a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061315e9190614ae1565b60d85460d554604051631a4ca37b60e21b81529295506001600160a01b03918216926369328dec9261319892169087903090600401615084565b6020604051808303816000875af11580156131b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131db9190614ae1565b5060d5546040516370a0823160e01b81526001600160a01b03909116906370a082319061320c9030906004016145d8565b602060405180830381865afa158015613229573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061324d9190614ae1565b6040805160018082528183019092529194506000919060208083019080368337505060d55482519293506001600160a01b03169183915060009061329357613293614b26565b6001600160a01b03928316602091820292909201015260d954604051633111e7b360e01b8152911690633111e7b3906132d6908490600019908a906004016150a7565b6020604051808303816000875af11580156132f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133199190614ae1565b925083156133915761338e60db80548060200260200160405190810160405280929190818152602001828054801561337a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161335c575b5030949350899250600091508a9050614005565b91505b509250925092565b600260a354036133eb5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610b7b565b600260a355565b60d85460d55460405163e8eda9df60e01b81526001600160a01b039182166004820152602481018490523060448201526000606482015291169063e8eda9df90608401600060405180830381600087803b15801561344f57600080fd5b505af1158015613463573d6000803e3d6000fd5b5050505050565b6001600160a01b0382166134c05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610b7b565b80603560008282546134d29190614bc3565b90915550506001600160a01b038216600081815260336020908152604080832080548601905551848152600080516020615341833981519152910160405180910390a35050565b6000613526858585613574565b6001600160a01b038716600090815260a26020526040902054613556908890613550908990614bc3565b84613679565b85609a546135649190614bc3565b609a555060019695505050505050565b609b546000036135875750504360a05550565b81431015801561359857508160a054105b156135a35760a08290555b60008260a0541080156135b65750824310155b6135c25760a0546135c4565b825b905060008243116135d557436135d7565b825b9050838110806135e75750828210155b156135f3575050505050565b60006135ff8383614b52565b9050600061361487662386f26fc10000614dfd565b61361e9083614dfd565b60a1549091506136329060ff16600a614dee565b609b5461363f9190614dfd565b61365482676765c793fa10079d601b1b614dfd565b61365e9190614e1c565b609c5461366b9190614bc3565b609c55505060a05550505050565b6001600160a01b038316600090815260a260205260409020805460018201548015613825576040805160e0810182528454815260018501546020820152600285015491810191909152600384015460608201526004840154608082015260058401546001600160401b0380821660a0840152600160401b9091041660c08201526000908190819061370990613b07565b9250925092508260001461381d576002860154609c5460a15460009291676765c793fa10079d601b1b916137419060ff16600a614dee565b61374b9089614dfd565b6137559190614dfd565b61375f9190614e1c565b6137699190614b52565b9050600061377f85670de0b6b3a7640000614dfd565b61379483676765c793fa10079d601b1b614dfd565b61379e9190614e1c565b905064174876e800816137b2856064614dfd565b600a6137bf886064614dfd565b6137ca906005614dfd565b6137d49190614e1c565b6137de9190614bc3565b6137e89190614dfd565b6137f29190614e1c565b91508188600301546138049190614bc3565b6003890155609e54613817908390614bc3565b609e5550505b50505061384c565b600583018054600160401b600160801b031916600160401b436001600160401b0316021790555b8185116138e257600583018054600160401b600160801b031916600160401b436001600160401b03160217905581156138dd57600082846001015487856138939190614b52565b61389d9190614dfd565b6138a79190614e1c565b9050808460010160008282546138bd9190614b52565b9250508190555080609b60008282546138d69190614b52565b9091555050505b61392e565b8360000361392e576138f48286614b52565b8360010160008282546139079190614bc3565b9091555061391790508286614b52565b609b60008282546139289190614bc3565b90915550505b6005830180546001600160401b031916436001600160401b0316179055848355609c5460a154676765c793fa10079d601b1b91906139709060ff16600a614dee565b856001015461397f9190614dfd565b6139899190614dfd565b6139939190614e1c565b8360020181905550505050505050565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac1906139d290600401614fa4565b602060405180830381865afa1580156139ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a139190614ba6565b60d55460405163095ea7b360e01b81529192506001600160a01b03169063095ea7b390613a4890849060001990600401614b65565b6020604051808303816000875af1158015613a67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a8b9190614b7e565b5060d55460d85460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392613ac49291169060001990600401614b65565b6020604051808303816000875af1158015613ae3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c419190614b7e565b6000806000808460c001518560a00151613b2191906150da565b609f5460c08701516001600160401b039283169350600092613b5092811691613b4b911643614b52565b6143a5565b905060008660a001516001600160401b031643613b6d9190614b52565b609f549091506000906001600160401b0316841015613b9557613b908484614b52565b613b98565b60005b90506000613ba68284614b52565b9299919850919650945050505050565b606780546001600160a01b0319166001600160a01b0383161790556110c5610c45565b600054610100900460ff16613c005760405162461bcd60e51b8152600401610b7b906150fa565b610c4182826143bd565b60d85460d554604051631a4ca37b60e21b81526000926001600160a01b03908116926369328dec92613c46929091169086903090600401615084565b6020604051808303816000875af1158015613c65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c899190614ae1565b905060008111610c415760405162461bcd60e51b815260206004820152602b60248201527f57697468647261776e20616d6f756e742073686f756c6420626520626967676560448201526a72207468616e207a65726f60a81b6064820152608401610b7b565b6001600160a01b038216613d4f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610b7b565b6001600160a01b03821660009081526033602052604090205481811015613dc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610b7b565b6001600160a01b0383166000818152603360209081526040808320868603905560358054879003905551858152919291600080516020615341833981519152910160405180910390a3505050565b6000613e1e848484613574565b6001600160a01b038616600090815260a26020526040902054613e4f908790613e48908890614b52565b6001613679565b84609a54613e5d9190614b52565b609a5550600195945050505050565b6001600160a01b038316613ed05760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b7b565b6001600160a01b038216613f325760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b7b565b6001600160a01b03831660009081526033602052604090205481811015613faa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610b7b565b6001600160a01b03808516600081815260336020526040808220868603905592861680825290839020805486019055915160008051602061534183398151915290613ff89086815260200190565b60405180910390a3612d07565b600080866001600160a01b031663b0f479a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015614046573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061406a9190614ba6565b9050606060006001600160a01b03168760008151811061408c5761408c614b26565b60200260200101516001600160a01b0316036141a857816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141049190614ba6565b8760008151811061411757614117614b26565b6001600160a01b039283166020918202929092010152604051637ff36ab560e01b815290831690637ff36ab590889061415a9089908c908a904290600401615145565b60006040518083038185885af1158015614178573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526141a1919081019061517a565b9050614371565b60006001600160a01b031687600189516141c29190614b52565b815181106141d2576141d2614b26565b60200260200101516001600160a01b0316036142f357816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015614226573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061424a9190614ba6565b87600189516142599190614b52565b8151811061426957614269614b26565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe5906142ac90899089908c908a9042906004016151ff565b6000604051808303816000875af11580156142cb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526141a1919081019061517a565b6040516338ed173960e01b81526001600160a01b038316906338ed17399061432790899089908c908a9042906004016151ff565b6000604051808303816000875af1158015614346573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261436e919081019061517a565b90505b80600182516143809190614b52565b8151811061439057614390614b26565b60200260200101519250505095945050505050565b60008183106143b457816143b6565b825b9392505050565b600054610100900460ff166143e45760405162461bcd60e51b8152600401610b7b906150fa565b60366143f08382615281565b5060376116918282615281565b828054828255906000526020600020908101928215614452579160200282015b8281111561445257825182546001600160a01b0319166001600160a01b0390911617825560209092019160019091019061441d565b5061445e929150614462565b5090565b5b8082111561445e5760008155600101614463565b80151581146110c557600080fd5b60006020828403121561449757600080fd5b81356143b681614477565b600060208083528351808285015260005b818110156144cf578581018301518582016040015282016144b3565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146110c557600080fd5b8035614510816144f0565b919050565b6000806040838503121561452857600080fd5b8235614533816144f0565b946020939093013593505050565b6000806040838503121561455457600080fd5b823561455f81614477565b9150602083013561456f81614477565b809150509250929050565b60006020828403121561458c57600080fd5b81356143b6816144f0565b6000806000606084860312156145ac57600080fd5b83356145b7816144f0565b925060208401356145c7816144f0565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b63ffffffff811681146110c557600080fd5b6000806040838503121561461157600080fd5b823561461c816145ec565b9150602083013561456f816145ec565b60006020828403121561463e57600080fd5b813562ffffff811681146143b657600080fd5b60008060006060848603121561466657600080fd5b8335925060208401359150604084013561467f81614477565b809150509250925092565b600080600080608085870312156146a057600080fd5b84356146ab816144f0565b966020860135965060408601359560600135945092505050565b6000602082840312156146d757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60405161018081016001600160401b0381118282101715614717576147176146de565b60405290565b604051601f8201601f191681016001600160401b0381118282101715614745576147456146de565b604052919050565b600082601f83011261475e57600080fd5b81356001600160401b03811115614777576147776146de565b61478a601f8201601f191660200161471d565b81815284602083860101111561479f57600080fd5b816020850160208301376000918101602001919091529392505050565b6001600160401b03811681146110c557600080fd5b8035614510816147bc565b60006001600160401b038211156147f5576147f56146de565b5060051b60200190565b600082601f83011261481057600080fd5b81356020614825614820836147dc565b61471d565b82815260059290921b8401810191818101908684111561484457600080fd5b8286015b8481101561486857803561485b816144f0565b8352918301918301614848565b509695505050505050565b6000806000806000806000806000806101408b8d03121561489357600080fd5b61489c8b614505565b99506148aa60208c01614505565b98506148b860408c01614505565b975060608b01356001600160401b03808211156148d457600080fd5b6148e08e838f0161474d565b985060808d01359150808211156148f657600080fd5b6149028e838f0161474d565b975061491060a08e016147d1565b965061491e60c08e01614505565b955061492c60e08e01614505565b945061493b6101008e01614505565b93506101208d013591508082111561495257600080fd5b5061495f8d828e016147ff565b9150509295989b9194979a5092959850565b60008060006060848603121561498657600080fd5b8335614991816144f0565b95602085013595506040909401359392505050565b600080604083850312156149b957600080fd5b82356149c4816144f0565b9150602083013561456f816144f0565b60008060008060008060c087890312156149ed57600080fd5b86356149f8816144f0565b95506020870135614a08816144f0565b94506040870135614a18816144f0565b935060608701356001600160401b0380821115614a3457600080fd5b614a408a838b0161474d565b94506080890135915080821115614a5657600080fd5b50614a6389828a0161474d565b92505060a0870135614a74816147bc565b809150509295509295509295565b60008060408385031215614a9557600080fd5b82359150602083013561456f81614477565b600181811c90821680614abb57607f821691505b602082108103614adb57634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215614af357600080fd5b5051919050565b805160ff8116811461451057600080fd5b600060208284031215614b1d57600080fd5b6143b682614afa565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561083a5761083a614b3c565b6001600160a01b03929092168252602082015260400190565b600060208284031215614b9057600080fd5b81516143b681614477565b8051614510816144f0565b600060208284031215614bb857600080fd5b81516143b6816144f0565b8082018082111561083a5761083a614b3c565b6020808252600c908201526b4744414f5f5354414b45525360a01b604082015260600190565b600081518084526020808501945080840160005b83811015614c355781516001600160a01b031687529582019590820190600101614c10565b509495945050505050565b6001600160a01b0383168152604060208201819052600090614c6490830184614bfc565b949350505050565b6020808252600c908201526b232aa7222fa6a0a720a3a2a960a11b604082015260600190565b60008060008060808587031215614ca857600080fd5b8451614cb3816145ec565b6020860151909450614cc4816147bc565b6040860151909350614cd5816147bc565b6060860151909250614ce681614477565b939692955090935050565b60ff828116828216039081111561083a5761083a614b3c565b600181815b80851115614d45578160001904821115614d2b57614d2b614b3c565b80851615614d3857918102915b93841c9390800290614d0f565b509250929050565b600082614d5c5750600161083a565b81614d695750600061083a565b8160018114614d7f5760028114614d8957614da5565b600191505061083a565b60ff841115614d9a57614d9a614b3c565b50506001821b61083a565b5060208310610133831016604e8410600b8410161715614dc8575081810a61083a565b614dd28383614d0a565b8060001904821115614de657614de6614b3c565b029392505050565b60006143b660ff841683614d4d565b6000816000190483118215151615614e1757614e17614b3c565b500290565b600082614e3957634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215614e5057600080fd5b604051602081016001600160401b0381118282101715614e7257614e726146de565b6040529151825250919050565b80516001600160801b038116811461451057600080fd5b805164ffffffffff8116811461451057600080fd5b60006101808284031215614ebe57600080fd5b614ec66146f4565b614ed08484614e3e565b8152614ede60208401614e7f565b6020820152614eef60408401614e7f565b6040820152614f0060608401614e7f565b6060820152614f1160808401614e7f565b6080820152614f2260a08401614e7f565b60a0820152614f3360c08401614e96565b60c0820152614f4460e08401614b9b565b60e0820152610100614f57818501614b9b565b90820152610120614f69848201614b9b565b90820152610140614f7b848201614b9b565b90820152610160614f8d848201614afa565b908201529392505050565b60006143b68383614d4d565b6020808252600e908201526d2aa724a9aba0a82fa927aaaa22a960911b604082015260600190565b6020808252600490820152634344414960e01b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6040815260006150176040830185614bfc565b905060018060a01b03831660208301529392505050565b63ffffffff81811683821601908082111561504b5761504b614b3c565b5092915050565b6020808252601890820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b604082015260600190565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6060815260006150ba6060830186614bfc565b6020830194909452506001600160a01b0391909116604090910152919050565b6001600160401b0382811682821603908082111561504b5761504b614b3c565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b84815260806020820152600061515e6080830186614bfc565b6001600160a01b03949094166040830152506060015292915050565b6000602080838503121561518d57600080fd5b82516001600160401b038111156151a357600080fd5b8301601f810185136151b457600080fd5b80516151c2614820826147dc565b81815260059190911b820183019083810190878311156151e157600080fd5b928401925b82841015611719578351825292840192908401906151e6565b85815284602082015260a06040820152600061521e60a0830186614bfc565b6001600160a01b0394909416606083015250608001529392505050565b601f82111561169157600081815260208120601f850160051c810160208610156152625750805b601f850160051c820191505b818110156110bf5782815560010161526e565b81516001600160401b0381111561529a5761529a6146de565b6152ae816152a88454614aa7565b8461523b565b602080601f8311600181146152e357600084156152cb5750858301515b600019600386901b1c1916600185901b1785556110bf565b600085815260208120601f198616915b82811015615312578886015182559484019460019091019084016152f3565b50858210156153305787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202fae2ecf21abd0216a8f5d0a4f65f659b0d6f3dc71663e3f7650b96d6e3ba1b764736f6c63430008100033";
1199
+
1200
+ type GoodAaveStakingConstructorParams =
1201
+ | [linkLibraryAddresses: GoodAaveStakingLibraryAddresses, signer?: Signer]
1202
+ | ConstructorParameters<typeof ContractFactory>;
1203
+
1204
+ const isSuperArgs = (
1205
+ xs: GoodAaveStakingConstructorParams
1206
+ ): xs is ConstructorParameters<typeof ContractFactory> => {
1207
+ return (
1208
+ typeof xs[0] === "string" ||
1209
+ (Array.isArray as (arg: any) => arg is readonly any[])(xs[0]) ||
1210
+ "_isInterface" in xs[0]
1211
+ );
1212
+ };
1213
+
1214
+ export class GoodAaveStaking__factory extends ContractFactory {
1215
+ constructor(...args: GoodAaveStakingConstructorParams) {
1216
+ if (isSuperArgs(args)) {
1217
+ super(...args);
1218
+ } else {
1219
+ const [linkLibraryAddresses, signer] = args;
1220
+ super(
1221
+ _abi,
1222
+ GoodAaveStaking__factory.linkBytecode(linkLibraryAddresses),
1223
+ signer
1224
+ );
1225
+ }
1226
+ }
1227
+
1228
+ static linkBytecode(
1229
+ linkLibraryAddresses: GoodAaveStakingLibraryAddresses
1230
+ ): string {
1231
+ let linkedBytecode = _bytecode;
1232
+
1233
+ linkedBytecode = linkedBytecode.replace(
1234
+ new RegExp("__\\$a7857c79f7039505337147dc025cce365e\\$__", "g"),
1235
+ linkLibraryAddresses[
1236
+ "contracts/staking/UniswapV2SwapHelper.sol:UniswapV2SwapHelper"
1237
+ ]
1238
+ .replace(/^0x/, "")
1239
+ .toLowerCase()
1240
+ );
1241
+
1242
+ return linkedBytecode;
1243
+ }
1244
+
1245
+ deploy(
1246
+ overrides?: Overrides & { from?: string | Promise<string> }
1247
+ ): Promise<GoodAaveStaking> {
1248
+ return super.deploy(overrides || {}) as Promise<GoodAaveStaking>;
1249
+ }
1250
+ getDeployTransaction(
1251
+ overrides?: Overrides & { from?: string | Promise<string> }
1252
+ ): TransactionRequest {
1253
+ return super.getDeployTransaction(overrides || {});
1254
+ }
1255
+ attach(address: string): GoodAaveStaking {
1256
+ return super.attach(address) as GoodAaveStaking;
1257
+ }
1258
+ connect(signer: Signer): GoodAaveStaking__factory {
1259
+ return super.connect(signer) as GoodAaveStaking__factory;
1260
+ }
1261
+ static readonly bytecode = _bytecode;
1262
+ static readonly abi = _abi;
1263
+ static createInterface(): GoodAaveStakingInterface {
1264
+ return new utils.Interface(_abi) as GoodAaveStakingInterface;
1265
+ }
1266
+ static connect(
1267
+ address: string,
1268
+ signerOrProvider: Signer | Provider
1269
+ ): GoodAaveStaking {
1270
+ return new Contract(address, _abi, signerOrProvider) as GoodAaveStaking;
1271
+ }
1272
+ }
1273
+
1274
+ export interface GoodAaveStakingLibraryAddresses {
1275
+ ["contracts/staking/UniswapV2SwapHelper.sol:UniswapV2SwapHelper"]: string;
1276
+ }