@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,315 @@
1
+ import { ethers, upgrades, artifacts } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
+ import { expect } from "chai";
4
+ import { GoodReserveCDai, DistributionBridgeMock, IGoodDollar, GenericDistributionHelperTestHelper } from "../../types";
5
+ import { createDAO, increaseTime } from "../helpers";
6
+ import * as waffle from "ethereum-waffle";
7
+
8
+ const BN = ethers.BigNumber;
9
+ export const NULL_ADDRESS = ethers.constants.AddressZero;
10
+ export const BLOCK_INTERVAL = 1;
11
+
12
+ describe("GenericDistributionHelper", () => {
13
+ let goodReserve: GoodReserveCDai;
14
+ let goodDollar: IGoodDollar, genericCall, avatar, founder, signers, setDAOAddress, nameService, cDai;
15
+
16
+ before(async () => {
17
+ [founder, ...signers] = await ethers.getSigners();
18
+ let {
19
+ controller: ctrl,
20
+ avatar: av,
21
+ gd,
22
+ identity,
23
+ setDAOAddress: sda,
24
+ setSchemes,
25
+ reserve,
26
+ cdaiAddress,
27
+ genericCall: gc,
28
+ nameService: ns
29
+ } = await loadFixture(createDAO);
30
+
31
+ nameService = ns;
32
+ genericCall = gc;
33
+ cDai = cdaiAddress;
34
+ avatar = av;
35
+ setDAOAddress = sda;
36
+
37
+ console.log("deployed dao", {
38
+ founder: founder.address,
39
+ gd,
40
+ identity,
41
+ avatar
42
+ });
43
+
44
+ goodDollar = (await ethers.getContractAt("IGoodDollar", gd)) as IGoodDollar;
45
+
46
+ console.log("deployed contribution, deploying reserve...", {
47
+ founder: founder.address
48
+ });
49
+
50
+ goodReserve = reserve as GoodReserveCDai;
51
+ });
52
+
53
+ const fixture = async () => {
54
+ const mpbf = await artifacts.readArtifact("IStaticOracle");
55
+
56
+ let oracle = await waffle.deployMockContract(founder, mpbf.abi);
57
+ oracle.mock.quoteAllAvailablePoolsWithTimePeriod.returns(1e13, []);
58
+ oracle.mock.prepareAllAvailablePoolsWithTimePeriod.returns([]);
59
+
60
+ const distHelper = (await upgrades.deployProxy(
61
+ await ethers.getContractFactory("GenericDistributionHelperTestHelper"),
62
+ [
63
+ nameService.address,
64
+ oracle.address,
65
+ ethers.constants.AddressZero,
66
+ ethers.constants.AddressZero,
67
+ ethers.constants.AddressZero,
68
+ {
69
+ maxFee: "5000000000000000",
70
+ minBalanceForFees: "10000000000000000",
71
+ percentageToSellForFee: "5",
72
+ maxSlippage: "5"
73
+ }
74
+ ],
75
+ { kind: "uups" }
76
+ )) as GenericDistributionHelperTestHelper;
77
+
78
+ //make sure disthelper has enough native token so it doesnt try to swap G$s
79
+ await founder.sendTransaction({
80
+ to: distHelper.address,
81
+ value: ethers.constants.WeiPerEther
82
+ });
83
+ const bridge = (await ethers.deployContract("DistributionBridgeMock")) as DistributionBridgeMock;
84
+
85
+ const encodedCall = distHelper.interface.encodeFunctionData("setFeeSettings", [
86
+ {
87
+ maxFee: "5000000000000000",
88
+ minBalanceForFees: "10000000000000000",
89
+ percentageToSellForFee: "5",
90
+ maxSlippage: "5"
91
+ }
92
+ ]);
93
+
94
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
95
+ await distHelper.setBridges(bridge.address);
96
+
97
+ return { distHelper, bridge, oracle };
98
+ };
99
+
100
+ it("should not allow to add recipient", async () => {
101
+ const { distHelper } = await loadFixture(fixture);
102
+
103
+ const recipient = signers[0];
104
+
105
+ await expect(
106
+ distHelper.addOrUpdateRecipient({
107
+ bps: 3000,
108
+ chainId: 42220,
109
+ addr: recipient.address,
110
+ transferType: 0
111
+ })
112
+ ).to.be.revertedWith(/is missing role 0x0000000000000000000000000000000000000000000000000000000000000000/);
113
+ });
114
+
115
+ it("should allow to add recipient by avatar", async () => {
116
+ const { distHelper } = await loadFixture(fixture);
117
+
118
+ const recipient = signers[0];
119
+
120
+ const encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
121
+ {
122
+ bps: 3000,
123
+ chainId: 42220,
124
+ addr: recipient.address,
125
+ transferType: 0
126
+ }
127
+ ]);
128
+
129
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
130
+ const dr = await distHelper.distributionRecipients(0);
131
+ expect(dr.addr).to.equal(recipient.address);
132
+ expect(dr.chainId).to.equal(42220);
133
+ expect(dr.bps).to.equal(3000);
134
+ expect(dr.transferType).to.equal(0);
135
+ });
136
+
137
+ it("should allow to update recipient by avatar", async () => {
138
+ const { distHelper } = await loadFixture(fixture);
139
+
140
+ const recipient = signers[0];
141
+
142
+ let encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
143
+ {
144
+ bps: 1000,
145
+ chainId: 4447,
146
+ addr: recipient.address,
147
+ transferType: 1
148
+ }
149
+ ]);
150
+
151
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
152
+
153
+ encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
154
+ {
155
+ bps: 1500,
156
+ chainId: 45,
157
+ addr: recipient.address,
158
+ transferType: 0
159
+ }
160
+ ]);
161
+
162
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
163
+
164
+ const updEvents = await distHelper.queryFilter(distHelper.filters.RecipientUpdated());
165
+ const addEvents = await distHelper.queryFilter(distHelper.filters.RecipientAdded());
166
+
167
+ const dr = await distHelper.distributionRecipients(0);
168
+ expect(dr.addr).to.equal(recipient.address);
169
+ expect(dr.chainId).to.equal(45);
170
+ expect(dr.bps).to.equal(1500);
171
+ expect(dr.transferType).to.equal(0);
172
+ });
173
+
174
+ it("should distribute via layerzero bridge", async () => {
175
+ const { distHelper, bridge } = await loadFixture(fixture);
176
+
177
+ const recipient = signers[0];
178
+
179
+ let encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
180
+ {
181
+ bps: 2000,
182
+ chainId: 42220,
183
+ addr: recipient.address,
184
+ transferType: 0
185
+ }
186
+ ]);
187
+
188
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
189
+
190
+ await goodDollar.mint(distHelper.address, "100000000000");
191
+ await founder.sendTransaction({
192
+ to: distHelper.address,
193
+ value: ethers.constants.WeiPerEther
194
+ });
195
+ await distHelper.onDistribution("100000000000");
196
+ expect(await goodDollar.allowance(distHelper.address, bridge.address)).to.equal((100000000000 * 2000) / 10000);
197
+
198
+ const events = await bridge.queryFilter(bridge.filters.BridgeLz());
199
+ expect(events[0].args.recipient).to.equal(recipient.address);
200
+ expect(events[0].args.amount).to.equal((100000000000 * 2000) / 10000);
201
+ expect(events[0].args.chainId).to.equal(42220);
202
+ expect(events[0].args.fee).to.equal(5e14);
203
+ });
204
+
205
+ it("should distribute via transferAndCall", async () => {
206
+ const { distHelper, bridge } = await loadFixture(fixture);
207
+
208
+ const recipient = signers[0];
209
+
210
+ let encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
211
+ {
212
+ bps: 2555,
213
+ chainId: 4447,
214
+ addr: signers[0].address,
215
+ transferType: 2
216
+ }
217
+ ]);
218
+
219
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
220
+
221
+ await goodDollar.mint(distHelper.address, "100000000000");
222
+ await distHelper.onDistribution("100000000000");
223
+ expect(await goodDollar.balanceOf(signers[0].address)).to.equal((100000000000 * 2555) / 10000);
224
+ });
225
+
226
+ it("should distribute to multiple recipients", async () => {
227
+ const { distHelper, bridge } = await loadFixture(fixture);
228
+
229
+ const recipient = signers[0];
230
+
231
+ let encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
232
+ {
233
+ bps: 2555,
234
+ chainId: 4447,
235
+ addr: signers[0].address,
236
+ transferType: 1
237
+ }
238
+ ]);
239
+
240
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
241
+
242
+ encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
243
+ {
244
+ bps: 1000,
245
+ chainId: 4447,
246
+ addr: signers[1].address,
247
+ transferType: 1
248
+ }
249
+ ]);
250
+
251
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
252
+
253
+ encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
254
+ {
255
+ bps: 5,
256
+ chainId: 4447,
257
+ addr: signers[2].address,
258
+ transferType: 2
259
+ }
260
+ ]);
261
+
262
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
263
+
264
+ await goodDollar.mint(distHelper.address, "100000000000");
265
+ await distHelper.onDistribution("100000000000");
266
+ expect(await goodDollar.balanceOf(signers[0].address)).to.equal((100000000000 * 2555) / 10000);
267
+ expect(await goodDollar.balanceOf(signers[1].address)).to.equal((100000000000 * 1000) / 10000);
268
+ expect(await goodDollar.balanceOf(signers[2].address)).to.equal((100000000000 * 5) / 10000);
269
+ });
270
+
271
+ it("should emit distribution event for multiple recipients", async () => {
272
+ const { distHelper, bridge } = await loadFixture(fixture);
273
+
274
+ let encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
275
+ {
276
+ bps: 2555,
277
+ chainId: 122,
278
+ addr: signers[0].address,
279
+ transferType: 0
280
+ }
281
+ ]);
282
+
283
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
284
+
285
+ encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
286
+ {
287
+ bps: 1000,
288
+ chainId: 4447,
289
+ addr: signers[1].address,
290
+ transferType: 1
291
+ }
292
+ ]);
293
+
294
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
295
+
296
+ encodedCall = distHelper.interface.encodeFunctionData("addOrUpdateRecipient", [
297
+ {
298
+ bps: 5,
299
+ chainId: 4447,
300
+ addr: signers[2].address,
301
+ transferType: 2
302
+ }
303
+ ]);
304
+
305
+ await genericCall(distHelper.address, encodedCall, avatar.address, 0);
306
+
307
+ await goodDollar.mint(distHelper.address, "100000000000");
308
+ await distHelper.onDistribution("100000000000");
309
+
310
+ const DistributionEvents = await distHelper.queryFilter(distHelper.filters.Distribution());
311
+ expect(DistributionEvents[0].args.distributionRecipients[0].addr).eq(signers[0].address);
312
+ expect(DistributionEvents[0].args.distributionRecipients[1].addr).eq(signers[1].address);
313
+ expect(DistributionEvents[0].args.distributionRecipients[2].addr).eq(signers[2].address);
314
+ });
315
+ });
@@ -13,19 +13,10 @@ const ONE_DAY = 86400;
13
13
  describe("UBIScheme cycle", () => {
14
14
  let goodDollar, firstClaimPool;
15
15
  let reputation;
16
- let root,
17
- acct,
18
- claimer1,
19
- claimer2,
20
- claimer3,
21
- signers,
22
- nameService,
23
- genericCall,
24
- ubiScheme: UBIScheme;
16
+ let root, acct, claimer1, claimer2, claimer3, signers, nameService, genericCall, ubiScheme: UBIScheme;
25
17
 
26
18
  before(async () => {
27
- [root, acct, claimer1, claimer2, claimer3, ...signers] =
28
- await ethers.getSigners();
19
+ [root, acct, claimer1, claimer2, claimer3, ...signers] = await ethers.getSigners();
29
20
 
30
21
  const deployedDAO = await loadFixture(createDAO);
31
22
  let {
@@ -64,9 +55,7 @@ describe("UBIScheme cycle", () => {
64
55
 
65
56
  it("should be able to change cycleLength if avatar", async () => {
66
57
  // initializing the ubi
67
- let encodedCall = ubiScheme.interface.encodeFunctionData("setCycleLength", [
68
- 8
69
- ]);
58
+ let encodedCall = ubiScheme.interface.encodeFunctionData("setCycleLength", [8]);
70
59
  await genericCall(ubiScheme.address, encodedCall);
71
60
  expect(await ubiScheme.cycleLength()).to.be.equal(8);
72
61
  });
@@ -81,10 +70,7 @@ describe("UBIScheme cycle", () => {
81
70
 
82
71
  it("should set ubischeme", async () => {
83
72
  // initializing the ubi
84
- let encodedCall = firstClaimPool.interface.encodeFunctionData(
85
- "setUBIScheme",
86
- [ubiScheme.address]
87
- );
73
+ let encodedCall = firstClaimPool.interface.encodeFunctionData("setUBIScheme", [ubiScheme.address]);
88
74
 
89
75
  await genericCall(firstClaimPool.address, encodedCall);
90
76
  // await firstClaimPool.start();
@@ -99,9 +85,7 @@ describe("UBIScheme cycle", () => {
99
85
  let currentCycle = await ubiScheme.currentCycleLength();
100
86
  let dailyAmount = await ubiScheme.dailyUbi();
101
87
  expect(currentCycle.toNumber()).to.be.gt(0);
102
- const cycleEvent = transaction.events.find(
103
- e => e.event === "UBICycleCalculated"
104
- );
88
+ const cycleEvent = transaction.events.find(e => e.event === "UBICycleCalculated");
105
89
  console.log({
106
90
  dailyAmount: dailyAmount.toString(),
107
91
  event: cycleEvent.args
@@ -117,50 +101,40 @@ describe("UBIScheme cycle", () => {
117
101
  await ubiScheme.connect(claimer2).claim();
118
102
  increaseTime(ONE_DAY);
119
103
  let transaction = await ubiScheme.connect(claimer2).claim();
120
- expect(
121
- await goodDollar.balanceOf(claimer2.address).then(_ => _.toNumber())
122
- ).to.be.equal(125 + (await ubiScheme.dailyUbi().then(_ => _.toNumber()))); //first day 125 , second claim 125000 wei daily pool divided by 1000 active users = 125
123
- expect(
124
- await ubiScheme.dailyCyclePool().then(_ => _.toNumber())
125
- ).to.be.equal(125000);
126
- expect(
127
- await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
128
- ).to.be.equal(1); //1 day passed
104
+ expect(await goodDollar.balanceOf(claimer2.address).then(_ => _.toNumber())).to.be.equal(
105
+ 125 + (await ubiScheme.dailyUbi().then(_ => _.toNumber()))
106
+ ); //first day 125 , second claim 125000 wei daily pool divided by 1000 active users = 125
107
+ expect(await ubiScheme.dailyCyclePool().then(_ => _.toNumber())).to.be.equal(125000);
108
+ expect(await ubiScheme.currentDayInCycle().then(_ => _.toNumber())).to.be.equal(1); //1 day passed
129
109
  });
130
110
 
131
111
  it("should calculate next cycle even if day passed without claims(setDay)", async () => {
132
112
  increaseTime(ONE_DAY * 9);
133
- expect(
134
- await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
135
- ).to.be.equal(10); //10 days passed total
136
-
113
+ expect(await ubiScheme.currentDayInCycle().then(_ => _.toNumber())).to.be.equal(10); //10 days passed total
114
+
115
+ const claimerBalanceBefore = await goodDollar.balanceOf(claimer1.address);
116
+ const minActiveUsers = await ubiScheme.minActiveUsers();
117
+ let dailyClaimAmount = (await ubiScheme.dailyCyclePool()).div(minActiveUsers); //initialy we have by default min 1000 active users
118
+ const estimatedUbi = await ubiScheme.estimateNextDailyUBI();
119
+ let totalClaimed = 0;
120
+ const currentDay = (await ubiScheme.currentDay()).toNumber();
121
+ for (let i = currentDay; i >= 0; i--) {
122
+ totalClaimed += (await ubiScheme.claimDay(i)).claimAmount.toNumber();
123
+ }
137
124
  let transaction = await (await ubiScheme.connect(claimer1).claim()).wait(); //claims in new ubi cycle
138
- let dailyClaimAmount = (await ubiScheme.dailyCyclePool()).div(1000); //initialy we have by default min 1000 active users
139
-
140
- expect(await goodDollar.balanceOf(claimer1.address)).to.be.equal(
141
- dailyClaimAmount.add(125)
142
- ); //intial 10 from first claim pool + daily
143
- const cycleEvent = transaction.events.find(
144
- e => e.event === "UBICycleCalculated"
145
- );
125
+ const cycleEvent = transaction.events.find(e => e.event === "UBICycleCalculated");
146
126
 
127
+ expect(await goodDollar.balanceOf(claimer1.address)).to.be.equal(claimerBalanceBefore.add(dailyClaimAmount)); //intial 10 from first claim pool + daily
128
+ expect(dailyClaimAmount).eq(estimatedUbi);
147
129
  expect(cycleEvent).to.be.not.empty;
148
-
149
- expect(
150
- await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
151
- ).to.be.equal(0); //new cycle started
130
+ expect(await ubiScheme.currentDayInCycle().then(_ => _.toNumber())).to.be.equal(0); //new cycle started
152
131
  //intial balance on cycle start 1000000 - 375(3 user that claimed in previous tests) = 99625, divide by cycle length (8) = 124953
153
- expect(cycleEvent.args.dailyUBIPool).to.be.equal(
154
- (BigInt(1000000) - BigInt(375)) / BigInt(8)
155
- );
132
+ expect(cycleEvent.args.dailyUBIPool).to.be.equal((BigInt(1000000) - BigInt(totalClaimed)) / BigInt(8));
156
133
  });
157
134
 
158
135
  it("should calculate cycle early if we can increase current daily pool", async () => {
159
136
  //increase ubi pool balance
160
- let encoded = goodDollar.interface.encodeFunctionData("mint", [
161
- ubiScheme.address,
162
- 400000
163
- ]);
137
+ let encoded = goodDollar.interface.encodeFunctionData("mint", [ubiScheme.address, 400000]);
164
138
  await genericCall(goodDollar.address, encoded);
165
139
  let balance = await goodDollar.balanceOf(ubiScheme.address);
166
140
 
@@ -173,9 +147,7 @@ describe("UBIScheme cycle", () => {
173
147
  const estimated = await ubiScheme.estimateNextDailyUBI();
174
148
  await increaseTime(ONE_DAY); //make sure
175
149
  let transaction = await (await ubiScheme.connect(claimer1).claim()).wait();
176
- const cycleEvent = transaction.events.find(
177
- e => e.event === "UBICycleCalculated"
178
- );
150
+ const cycleEvent = transaction.events.find(e => e.event === "UBICycleCalculated");
179
151
  const dailyUBI = await ubiScheme.dailyUbi();
180
152
  expect(dailyUBI).to.eq(estimated); //the estimated before actual calculation should be correct, ie equal to actual dailyUBI calculated after first claim.
181
153
  expect(cycleEvent).to.be.not.empty;
@@ -187,10 +159,7 @@ describe("UBIScheme cycle", () => {
187
159
 
188
160
  it("should not calculate cycle early if not possible to increase daily ubi pool", async () => {
189
161
  //increase ubi pool balance
190
- let encoded = goodDollar.interface.encodeFunctionData("mint", [
191
- ubiScheme.address,
192
- 100
193
- ]);
162
+ let encoded = goodDollar.interface.encodeFunctionData("mint", [ubiScheme.address, 100]);
194
163
  await genericCall(goodDollar.address, encoded);
195
164
  let balance = await goodDollar.balanceOf(ubiScheme.address);
196
165
  const curCycleLen = await ubiScheme.cycleLength();
@@ -200,9 +169,7 @@ describe("UBIScheme cycle", () => {
200
169
 
201
170
  await increaseTime(ONE_DAY); //make sure
202
171
  let transaction = await (await ubiScheme.connect(claimer1).claim()).wait();
203
- const cycleEvent = transaction.events.find(
204
- e => e.event === "UBICycleCalculated"
205
- );
172
+ const cycleEvent = transaction.events.find(e => e.event === "UBICycleCalculated");
206
173
  expect(cycleEvent).to.be.undefined;
207
174
  });
208
175
  });
@@ -1,5 +1,4 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- export type { ERC1967Proxy } from "./ERC1967Proxy";
5
4
  export type { ERC1967Upgrade } from "./ERC1967Upgrade";
@@ -1,7 +1,5 @@
1
1
  /* Autogenerated file. Do not edit manually. */
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- import type * as v2Periphery from "./v2-periphery";
5
- export type { v2Periphery };
6
4
  import type * as v3Core from "./v3-core";
7
5
  export type { v3Core };