@gooddollar/goodprotocol 1.0.31-beta.0 → 2.0.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 (738) hide show
  1. package/README.md +25 -0
  2. package/artifacts/abis/AaveMock.min.json +1 -1
  3. package/artifacts/abis/AaveStakingFactory.min.json +1 -1
  4. package/artifacts/abis/AdminWallet.min.json +1 -1
  5. package/artifacts/abis/AdminWalletFuse.min.json +1 -0
  6. package/artifacts/abis/BuyAndBridgeHelper.min.json +1 -0
  7. package/artifacts/abis/ClaimersDistribution.min.json +1 -1
  8. package/artifacts/abis/CompoundStakingFactory.min.json +1 -1
  9. package/artifacts/abis/CompoundVotingMachine.min.json +1 -1
  10. package/artifacts/abis/DAIMock.min.json +1 -1
  11. package/artifacts/abis/DAOUpgradeableContract.min.json +1 -1
  12. package/artifacts/abis/DecimalsMock.min.json +1 -1
  13. package/artifacts/abis/DistributionHelper.min.json +1 -1
  14. package/artifacts/abis/DistributionHelperTest.min.json +1 -1
  15. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
  16. package/artifacts/abis/DonationsStaking.min.json +1 -1
  17. package/artifacts/abis/ERC20Permit.min.json +1 -0
  18. package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
  19. package/artifacts/abis/ERC677.min.json +1 -0
  20. package/artifacts/abis/ERC677Receiver.min.json +1 -0
  21. package/artifacts/abis/ExchangeHelper.min.json +1 -1
  22. package/artifacts/abis/Faucet.min.json +1 -0
  23. package/artifacts/abis/FeesFormulaMock.min.json +1 -0
  24. package/artifacts/abis/FuseFaucet.min.json +1 -1
  25. package/artifacts/abis/FuseFaucetV2.min.json +1 -0
  26. package/artifacts/abis/FuseStakingV3.min.json +1 -1
  27. package/artifacts/abis/GReputation.min.json +1 -1
  28. package/artifacts/abis/GoodAaveStaking.min.json +1 -1
  29. package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
  30. package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
  31. package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
  32. package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
  33. package/artifacts/abis/GoodDollar.min.json +1 -0
  34. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -1
  35. package/artifacts/abis/GoodDollarStaking.min.json +1 -1
  36. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -1
  37. package/artifacts/abis/GoodFundManager.min.json +1 -1
  38. package/artifacts/abis/GoodFundManagerTest.min.json +1 -1
  39. package/artifacts/abis/GoodMarketMaker.min.json +1 -1
  40. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  41. package/artifacts/abis/GovernanceStaking.min.json +1 -1
  42. package/artifacts/abis/IFeesFormula.min.json +1 -0
  43. package/artifacts/abis/IGoodDollar.min.json +1 -1
  44. package/artifacts/abis/IGoodDollarCustom.min.json +1 -0
  45. package/artifacts/abis/IGovernanceStaking.min.json +1 -0
  46. package/artifacts/abis/IIdentity.min.json +1 -1
  47. package/artifacts/abis/IIdentityV2.min.json +1 -0
  48. package/artifacts/abis/IStakingUpgrade.min.json +1 -0
  49. package/artifacts/abis/ISuperGoodDollar.min.json +1 -0
  50. package/artifacts/abis/IdentityMock.min.json +1 -0
  51. package/artifacts/abis/IdentityV2.min.json +1 -0
  52. package/artifacts/abis/InvitesFuseV2.min.json +1 -0
  53. package/artifacts/abis/InvitesV1.min.json +1 -1
  54. package/artifacts/abis/InvitesV2.min.json +1 -0
  55. package/artifacts/abis/LendingPoolMock.min.json +1 -1
  56. package/artifacts/abis/NameService.min.json +1 -1
  57. package/artifacts/abis/PayableMock.min.json +1 -0
  58. package/artifacts/abis/Proxy.min.json +1 -0
  59. package/artifacts/abis/Reputation.min.json +1 -1
  60. package/artifacts/abis/SelfApprove.min.json +1 -0
  61. package/artifacts/abis/SimpleStaking.min.json +1 -1
  62. package/artifacts/abis/SimpleStakingV2.min.json +1 -1
  63. package/artifacts/abis/SixteenDecimalsTokenMock.min.json +1 -1
  64. package/artifacts/abis/StakersDistribution.min.json +1 -1
  65. package/artifacts/abis/SuperGoodDollar.min.json +1 -0
  66. package/artifacts/abis/SuperToken.min.json +1 -0
  67. package/artifacts/abis/SuperfluidToken.min.json +1 -0
  68. package/artifacts/abis/TwentyDecimalsTokenMock.min.json +1 -1
  69. package/artifacts/abis/UBIScheme.min.json +1 -1
  70. package/artifacts/abis/USDCMock.min.json +1 -1
  71. package/artifacts/abis/UUPSProxiable.min.json +1 -0
  72. package/artifacts/abis/UUPSProxy.min.json +1 -0
  73. package/artifacts/abis/UUPSUtils.min.json +1 -0
  74. package/artifacts/abis/UpgradableMock.min.json +1 -1
  75. package/artifacts/abis/UpgradableMock2.min.json +1 -1
  76. package/artifacts/abis/UpgradableMock3.min.json +1 -1
  77. package/artifacts/abis/UpgradableMock4.min.json +1 -1
  78. package/artifacts/abis/cBATMock.min.json +1 -1
  79. package/artifacts/abis/cDAILowWorthMock.min.json +1 -1
  80. package/artifacts/abis/cDAIMock.min.json +1 -1
  81. package/artifacts/abis/cDAINonMintableMock.min.json +1 -1
  82. package/artifacts/abis/cDecimalsMock.min.json +1 -1
  83. package/artifacts/abis/cSDTMock.min.json +1 -1
  84. package/artifacts/abis/cUSDCMock.min.json +1 -1
  85. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  86. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  87. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  88. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  89. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  90. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  91. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  92. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  93. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  94. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  95. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  96. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  97. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  98. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  99. package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +184 -0
  100. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  101. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  102. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  103. package/artifacts/contracts/Interfaces.sol/IIdentity.json +70 -0
  104. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  105. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +300 -0
  106. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  107. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  108. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  109. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  110. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  111. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  112. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  113. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  114. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  115. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  116. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  117. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
  118. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +736 -0
  119. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  120. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +15 -2
  121. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +4 -0
  122. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +480 -0
  123. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  124. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +28 -2
  125. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  126. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +28 -2
  127. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  128. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +78 -3
  129. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  130. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +71 -2
  131. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
  132. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
  133. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +4 -0
  134. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.json +35 -0
  135. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  136. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  137. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +31 -5
  138. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  139. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  140. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +28 -2
  141. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  142. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +28 -2
  143. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
  144. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1081 -0
  145. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +4 -0
  146. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +505 -0
  147. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  148. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +15 -2
  149. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
  150. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +635 -0
  151. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  152. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +18 -5
  153. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  154. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  155. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  156. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  157. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  158. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  159. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  160. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +18 -5
  161. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  162. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  163. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  164. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +18 -5
  165. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  166. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  167. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  168. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +28 -2
  169. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  170. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +28 -2
  171. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  172. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  173. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +4 -0
  174. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +69 -0
  175. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  176. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
  177. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  178. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +22 -9
  179. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  180. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +95 -2
  181. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  182. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +28 -2
  183. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +4 -0
  184. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +277 -0
  185. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  186. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  187. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  188. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +18 -5
  189. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  190. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  191. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  192. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  193. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  194. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  195. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  196. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  197. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +4 -0
  198. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +18 -0
  199. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  200. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +18 -5
  201. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  202. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  203. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  204. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  205. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  206. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +18 -5
  207. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  208. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +28 -2
  209. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  210. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +28 -2
  211. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  212. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +28 -2
  213. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  214. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +28 -2
  215. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  216. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +18 -5
  217. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  218. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +18 -5
  219. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  220. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +18 -5
  221. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  222. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +18 -5
  223. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  224. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +18 -5
  225. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  226. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +18 -5
  227. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  228. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +18 -5
  229. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  230. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +18 -5
  231. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  232. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +28 -2
  233. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  234. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +28 -2
  235. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  236. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +28 -2
  237. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  238. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  239. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +31 -5
  240. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  241. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  242. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  243. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  244. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  245. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +32 -6
  246. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  247. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +15 -2
  248. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  249. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  250. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  251. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +28 -2
  252. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  253. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.json +16 -3
  254. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  255. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +16 -3
  256. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  257. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  258. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  259. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +3 -3
  260. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +20 -7
  262. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  263. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +20 -7
  264. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  265. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
  266. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +22 -9
  268. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  269. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +22 -9
  270. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  271. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
  272. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  273. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +4 -0
  274. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +768 -0
  275. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
  276. package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
  277. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
  278. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
  279. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
  280. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
  281. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
  282. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1206 -0
  283. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +4 -0
  284. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.json +99 -0
  285. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +4 -0
  286. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.json +34 -0
  287. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +4 -0
  288. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.json +355 -0
  289. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +4 -0
  290. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +2132 -0
  291. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +4 -0
  292. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2627 -0
  293. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +4 -0
  294. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +1759 -0
  295. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +4 -0
  296. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.json +682 -0
  297. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +4 -0
  298. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.json +89 -0
  299. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +4 -0
  300. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.json +19 -0
  301. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +4 -0
  302. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +32 -0
  303. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +4 -0
  304. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +10 -0
  305. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  306. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +41 -22
  307. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  308. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +94 -48
  309. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +4 -0
  310. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +830 -0
  311. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  312. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  313. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  314. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  315. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +4 -0
  316. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +184 -0
  317. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  318. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  319. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  320. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +28 -2
  321. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  322. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  323. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  324. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  325. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  326. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +35 -2
  327. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  328. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  329. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  330. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  331. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  332. package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
  333. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  334. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  335. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  336. package/artifacts/contracts/utils/NameService.sol/NameService.json +28 -2
  337. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  338. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  339. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  340. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  341. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  342. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  343. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  344. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  345. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  346. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  347. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  348. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  349. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  350. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  351. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  352. package/contracts/Interfaces.sol +57 -3
  353. package/contracts/fuseFaucet/Faucet.sol +258 -0
  354. package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
  355. package/contracts/fuseFaucet/FuseFaucetV2.sol +256 -0
  356. package/contracts/governance/GReputation.sol +104 -16
  357. package/contracts/governance/GoodDollarStaking.sol +139 -53
  358. package/contracts/governance/GovernanceStaking.sol +2 -2
  359. package/contracts/identity/IdentityV2.sol +559 -0
  360. package/contracts/invite/InvitesFuseV2.sol +337 -0
  361. package/contracts/invite/InvitesV1.sol +6 -24
  362. package/contracts/invite/InvitesV2.sol +345 -0
  363. package/contracts/mocks/AaveMock.sol +1 -1
  364. package/contracts/mocks/DAIMock.sol +1 -1
  365. package/contracts/mocks/DecimalsMock.sol +1 -1
  366. package/contracts/mocks/FeesFormularMock.sol +21 -0
  367. package/contracts/mocks/GoodDollarStakingMock.sol +16 -0
  368. package/contracts/mocks/GoodFundManagerTest.sol +1 -1
  369. package/contracts/mocks/IdentityMock.sol +58 -0
  370. package/contracts/mocks/LendingPoolMock.sol +1 -1
  371. package/contracts/mocks/PayableMock.sol +3 -0
  372. package/contracts/mocks/SixteenDecimalsTokenMock.sol +1 -6
  373. package/contracts/mocks/TwentyDecimalsTokenMock.sol +1 -6
  374. package/contracts/mocks/UpgradableMocks.sol +5 -3
  375. package/contracts/mocks/UsdcMock.sol +1 -6
  376. package/contracts/mocks/cBATMock.sol +7 -12
  377. package/contracts/mocks/cDAILowWorthMock.sol +8 -12
  378. package/contracts/mocks/cDAIMock.sol +1 -1
  379. package/contracts/mocks/cDAINonMintableMock.sol +7 -12
  380. package/contracts/mocks/cDecimalsMock.sol +1 -1
  381. package/contracts/mocks/cSDTMock.sol +3 -3
  382. package/contracts/mocks/cUSDCMock.sol +5 -5
  383. package/contracts/reserve/DistributionHelper.sol +1 -1
  384. package/contracts/reserve/GoodReserveCDai.sol +1 -1
  385. package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
  386. package/contracts/token/ERC677.sol +74 -0
  387. package/contracts/token/FeesFormula.sol +10 -0
  388. package/contracts/token/GoodDollar.sol +243 -0
  389. package/contracts/token/superfluid/ERC20Permit.sol +101 -0
  390. package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
  391. package/contracts/token/superfluid/SuperGoodDollar.sol +401 -0
  392. package/contracts/token/superfluid/SuperToken.sol +714 -0
  393. package/contracts/token/superfluid/SuperfluidToken.sol +403 -0
  394. package/contracts/token/superfluid/UUPSProxiable.sol +55 -0
  395. package/contracts/token/superfluid/UUPSProxy.sol +153 -0
  396. package/contracts/ubi/UBIScheme.sol +88 -68
  397. package/contracts/utils/AdminWallet.sol +42 -11
  398. package/contracts/utils/AdminWalletFuse.sol +271 -0
  399. package/contracts/utils/BuyAndBridgeHelper.sol +108 -0
  400. package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
  401. package/contracts/utils/ProxyFactory1967.sol +1 -1
  402. package/hardhat.config.ts +29 -6
  403. package/package.json +11 -7
  404. package/releases/deploy-settings.json +58 -4
  405. package/releases/deployment.json +65 -231
  406. package/scripts/deployFullDAO.ts +39 -19
  407. package/scripts/gdx/gdxAirdropCalculation.ts +10 -11
  408. package/scripts/governance/airdropCalculationRecover.ts +43 -33
  409. package/scripts/governance/airdropCalculationSorted.ts +438 -0
  410. package/scripts/governance/goodCheckpointSorted.ts +377 -0
  411. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +100 -0
  412. package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +123 -93
  413. package/scripts/multichain-deploy/2_helpers-deploy.ts +151 -0
  414. package/scripts/multichain-deploy/{gdSavings-deploy.ts → 3_gdSavings-deploy.ts} +106 -76
  415. package/scripts/multichain-deploy/4_ubi-deploy.ts +147 -0
  416. package/scripts/multichain-deploy/5_gov-deploy.ts +147 -0
  417. package/scripts/multichain-deploy/fulldeploy.sh +26 -0
  418. package/scripts/multichain-deploy/helpers.ts +149 -111
  419. package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
  420. package/scripts/test/localOldDaoDeploy.ts +10 -3
  421. package/scripts/upgradeToV3/v3-fix.ts +120 -0
  422. package/scripts/upgradeToV3/v3-upgrade.ts +219 -0
  423. package/scripts/upgrades/celo-defi-ubi-deploy.ts +165 -0
  424. package/scripts/upgrades/identity-upgrade.ts +109 -0
  425. package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
  426. package/test/faucet/Faucet.test.ts +157 -0
  427. package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +26 -31
  428. package/test/governance/ClaimersDistribution.test.ts +58 -6
  429. package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -3
  430. package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
  431. package/test/governance/CompoundVotingMachine.daoscheme.ts +8 -10
  432. package/test/governance/CompoundVotingMachine.delegate.test.ts +4 -5
  433. package/test/governance/CompoundVotingMachine.guardian.test.ts +5 -11
  434. package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
  435. package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
  436. package/test/governance/GReputation.test.ts +78 -32
  437. package/test/governance/GReputation.v2merkle.test.ts +186 -0
  438. package/test/governance/GoodDollarStaking.gd.test.ts +83 -1
  439. package/test/governance/GoodDollarStaking.good.test.ts +2 -1
  440. package/test/governance/GovernanceStaking.test.ts +4 -4
  441. package/test/governance/Reputation.test.ts +2 -1
  442. package/test/governance/StakersDistribution.test.ts +26 -13
  443. package/test/helpers.ts +145 -52
  444. package/test/identity/IdentityV2.test.ts +539 -0
  445. package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +10 -5
  446. package/test/invite/InvitesV2.test.ts +328 -0
  447. package/test/reserve/DistributionHelper.test.ts +2 -1
  448. package/test/reserve/GoodMarketMaker.test.ts +20 -19
  449. package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
  450. package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
  451. package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -2
  452. package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
  453. package/test/reserve/GoodReserveCDai.test.ts +14 -38
  454. package/test/reserve/GoodReserveCDai.uniswap.test.ts +21 -19
  455. package/test/staking/CompoundStakingFactory.test.ts +8 -5
  456. package/test/staking/DifferentStakingTokens.test.ts +3 -2
  457. package/test/staking/DonationsStaking.test.ts +33 -24
  458. package/test/staking/FuseStaking.test.ts +9 -9
  459. package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
  460. package/test/staking/SimpleDAIStaking.test.ts +13 -19
  461. package/test/staking/StakingRewards.test.ts +19 -16
  462. package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
  463. package/test/staking/SwapHelper.test.ts +20 -17
  464. package/test/staking/UsdcAaveStaking.test.ts +36 -33
  465. package/test/token/GoodDollar.test.ts +445 -0
  466. package/test/token/SuperGoodDollar.test.ts +422 -0
  467. package/test/ubi/UBIScheme.e2e.test.ts +6 -5
  468. package/test/ubi/UBIScheme.test.ts +37 -36
  469. package/test/ubi/UBISchemeCycle.test.ts +11 -8
  470. package/test/utils/AdminWallet.test.ts +34 -11
  471. package/test/utils/BuyAndBridgeHelper.test.ts +249 -0
  472. package/test/utils/DAOUpgradeableContract.test.ts +3 -2
  473. package/test/utils/GoodDollarMintBurnWrapper.test.ts +3 -2
  474. package/test/utils/NameService.test.ts +37 -21
  475. package/test/utils/ProtocolUpgrade.test.ts +1 -1
  476. package/test/utils/ProxyFactory.test.ts +12 -10
  477. package/truffle-config.js +18 -18
  478. package/types/AaveMock.ts +24 -15
  479. package/types/AccessControlEnumerableUpgradeable.ts +9 -0
  480. package/types/AccessControlUpgradeable.ts +9 -0
  481. package/types/AdminWallet.ts +149 -110
  482. package/types/AdminWalletFuse.ts +1268 -0
  483. package/types/BuyAndBridgeHelper.ts +279 -0
  484. package/types/CBATMock.ts +24 -15
  485. package/types/CDAILowWorthMock.ts +24 -15
  486. package/types/CDAIMock.ts +24 -15
  487. package/types/CDAINonMintableMock.ts +24 -15
  488. package/types/CDecimalsMock.ts +24 -15
  489. package/types/CSDTMock.ts +24 -15
  490. package/types/CUSDCMock.ts +24 -15
  491. package/types/ClaimersDistribution.ts +28 -0
  492. package/types/CompoundVotingMachine.ts +28 -0
  493. package/types/ContextUpgradeable.ts +77 -0
  494. package/types/DAIMock.ts +24 -15
  495. package/types/DAOUpgradeableContract.ts +28 -0
  496. package/types/DecimalsMock.ts +24 -15
  497. package/types/DistributionHelper.ts +28 -0
  498. package/types/DistributionHelperTest.ts +28 -0
  499. package/types/DistributionHelperTestHelper.ts +28 -0
  500. package/types/DonationsStaking.ts +28 -0
  501. package/types/EIP712Upgradeable.ts +77 -0
  502. package/types/ERC165Upgradeable.ts +13 -2
  503. package/types/ERC1967UpgradeUpgradeable.ts +9 -0
  504. package/types/ERC20BurnableUpgradeable.ts +24 -15
  505. package/types/ERC20PausableUpgradeable.ts +24 -15
  506. package/types/ERC20Permit.ts +186 -0
  507. package/types/ERC20PermitUpgradeable.ts +531 -0
  508. package/types/ERC20PresetMinterPauserUpgradeable.ts +129 -16
  509. package/types/ERC20Upgradeable.ts +24 -15
  510. package/types/ERC20WithTokenInfo.ts +339 -0
  511. package/types/ERC677.ts +131 -0
  512. package/types/ERC677Receiver.ts +115 -0
  513. package/types/EventsEmitter.ts +88 -0
  514. package/types/ExchangeHelper.ts +28 -0
  515. package/types/Faucet.ts +1107 -0
  516. package/types/FeesFormulaMock.ts +130 -0
  517. package/types/FuseFaucet.ts +9 -0
  518. package/types/FuseFaucetV2.ts +729 -0
  519. package/types/FuseStakingV3.ts +9 -0
  520. package/types/GReputation.ts +103 -4
  521. package/types/GoodAaveStaking.ts +24 -15
  522. package/types/GoodAaveStakingV2.ts +24 -15
  523. package/types/GoodCompoundStaking.ts +24 -15
  524. package/types/GoodCompoundStakingTest.ts +24 -15
  525. package/types/GoodCompoundStakingV2.ts +24 -15
  526. package/types/GoodDollar.ts +1733 -0
  527. package/types/GoodDollarMintBurnWrapper.ts +55 -0
  528. package/types/GoodDollarStaking.ts +92 -0
  529. package/types/GoodDollarStakingMock.ts +131 -0
  530. package/types/GoodFundManager.ts +28 -0
  531. package/types/GoodFundManagerTest.ts +28 -0
  532. package/types/GoodMarketMaker.ts +28 -0
  533. package/types/GoodReserveCDai.ts +43 -15
  534. package/types/GovernanceStaking.ts +43 -15
  535. package/types/IERC1271Upgradeable.ts +109 -0
  536. package/types/IERC1820Registry.ts +398 -0
  537. package/types/IERC1822ProxiableUpgradeable.ts +90 -0
  538. package/types/IERC20MetadataUpgradeable.ts +15 -15
  539. package/types/IERC20Permit.ts +175 -0
  540. package/types/IERC20PermitUpgradeable.ts +176 -0
  541. package/types/IERC20Upgradeable.ts +15 -15
  542. package/types/IERC777.ts +586 -0
  543. package/types/IERC777Recipient.ts +130 -0
  544. package/types/IERC777Sender.ts +130 -0
  545. package/types/IFeesFormula.ts +111 -0
  546. package/types/IGoodDollar.ts +304 -7
  547. package/types/IGoodDollarCustom.ts +618 -0
  548. package/types/IGovernanceStaking.ts +98 -0
  549. package/types/IIdentity.ts +106 -0
  550. package/types/IIdentityV2.ts +557 -0
  551. package/types/IStakingUpgrade.ts +110 -0
  552. package/types/ISuperAgreement.ts +151 -0
  553. package/types/ISuperApp.ts +410 -0
  554. package/types/ISuperGoodDollar.ts +3029 -0
  555. package/types/ISuperToken.ts +2326 -0
  556. package/types/ISuperTokenFactory.ts +415 -0
  557. package/types/ISuperfluid.ts +1565 -0
  558. package/types/ISuperfluidGovernance.ts +455 -0
  559. package/types/ISuperfluidToken.ts +951 -0
  560. package/types/IdentityMock.ts +493 -0
  561. package/types/IdentityV2.ts +1743 -0
  562. package/types/Initializable.ts +77 -0
  563. package/types/InvitesFuseV2.ts +806 -0
  564. package/types/InvitesV1.ts +9 -0
  565. package/types/InvitesV2.ts +1010 -0
  566. package/types/LendingPoolMock.ts +24 -15
  567. package/types/NameService.ts +28 -0
  568. package/types/OwnableUpgradeable.ts +9 -0
  569. package/types/PausableUpgradeable.ts +9 -0
  570. package/types/PayableMock.ts +92 -0
  571. package/types/ReentrancyGuardUpgradeable.ts +78 -0
  572. package/types/Reputation.ts +28 -0
  573. package/types/SelfApprove.ts +115 -0
  574. package/types/SimpleStaking.ts +24 -15
  575. package/types/SimpleStakingV2.ts +24 -15
  576. package/types/SixteenDecimalsTokenMock.ts +24 -15
  577. package/types/StakersDistribution.ts +28 -0
  578. package/types/SuperGoodDollar.ts +3662 -0
  579. package/types/SuperToken.ts +2434 -0
  580. package/types/SuperfluidToken.ts +951 -0
  581. package/types/TokenInfo.ts +109 -0
  582. package/types/TwentyDecimalsTokenMock.ts +24 -15
  583. package/types/UBIScheme.ts +47 -40
  584. package/types/USDCMock.ts +24 -15
  585. package/types/UUPSProxiable.ts +183 -0
  586. package/types/UUPSProxy.ts +105 -0
  587. package/types/UUPSUpgradeable.ts +28 -0
  588. package/types/UpgradableMock.ts +28 -0
  589. package/types/UpgradableMock2.ts +28 -0
  590. package/types/UpgradableMock3.ts +28 -0
  591. package/types/UpgradableMock4.ts +28 -0
  592. package/types/factories/AaveMock__factory.ts +17 -4
  593. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  594. package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
  595. package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +13 -0
  596. package/types/factories/AccessControlUpgradeable__factory.ts +13 -0
  597. package/types/factories/AdminWalletFuse__factory.ts +881 -0
  598. package/types/factories/AdminWallet__factory.ts +93 -47
  599. package/types/factories/BancorFormula__factory.ts +1 -1
  600. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  601. package/types/factories/BaseShareField__factory.ts +1 -1
  602. package/types/factories/BatUSDMockOracle__factory.ts +1 -1
  603. package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
  604. package/types/factories/CBATMock__factory.ts +17 -4
  605. package/types/factories/CDAILowWorthMock__factory.ts +17 -4
  606. package/types/factories/CDAIMock__factory.ts +17 -4
  607. package/types/factories/CDAINonMintableMock__factory.ts +17 -4
  608. package/types/factories/CDecimalsMock__factory.ts +17 -4
  609. package/types/factories/CSDTMock__factory.ts +17 -4
  610. package/types/factories/CUSDCMock__factory.ts +17 -4
  611. package/types/factories/ClaimersDistribution__factory.ts +27 -1
  612. package/types/factories/CompUSDMockOracle__factory.ts +1 -1
  613. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  614. package/types/factories/CompoundVotingMachine__factory.ts +27 -1
  615. package/types/factories/ContextUpgradeable__factory.ts +39 -0
  616. package/types/factories/DAIMock__factory.ts +17 -4
  617. package/types/factories/DAOContract__factory.ts +1 -1
  618. package/types/factories/DAOUpgradeableContract__factory.ts +27 -1
  619. package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
  620. package/types/factories/DecimalsMock__factory.ts +17 -4
  621. package/types/factories/DistributionBridgeMock__factory.ts +1 -1
  622. package/types/factories/DistributionHelperTestHelper__factory.ts +27 -1
  623. package/types/factories/DistributionHelperTest__factory.ts +27 -1
  624. package/types/factories/DistributionHelper__factory.ts +27 -1
  625. package/types/factories/DonationsStaking__factory.ts +27 -1
  626. package/types/factories/EIP712Upgradeable__factory.ts +39 -0
  627. package/types/factories/ERC165Upgradeable__factory.ts +13 -0
  628. package/types/factories/ERC1967Proxy__factory.ts +1 -1
  629. package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +13 -0
  630. package/types/factories/ERC20BurnableUpgradeable__factory.ts +16 -3
  631. package/types/factories/ERC20PausableUpgradeable__factory.ts +16 -3
  632. package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
  633. package/types/factories/ERC20Permit__factory.ts +111 -0
  634. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +99 -5
  635. package/types/factories/ERC20Upgradeable__factory.ts +17 -4
  636. package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
  637. package/types/factories/ERC677Receiver__factory.ts +55 -0
  638. package/types/factories/ERC677__factory.ts +75 -0
  639. package/types/factories/EthUSDMockOracle__factory.ts +1 -1
  640. package/types/factories/EventsEmitter__factory.ts +84 -0
  641. package/types/factories/ExchangeHelper__factory.ts +27 -1
  642. package/types/factories/Faucet__factory.ts +781 -0
  643. package/types/factories/FeesFormulaMock__factory.ts +132 -0
  644. package/types/factories/FuseFaucetV2__factory.ts +528 -0
  645. package/types/factories/FuseFaucet__factory.ts +14 -1
  646. package/types/factories/FuseStakingV3__factory.ts +14 -1
  647. package/types/factories/GReputation__factory.ts +77 -2
  648. package/types/factories/GasPriceMockOracle__factory.ts +1 -1
  649. package/types/factories/GoodAaveStakingV2__factory.ts +17 -4
  650. package/types/factories/GoodAaveStaking__factory.ts +17 -4
  651. package/types/factories/GoodCompoundStakingTest__factory.ts +17 -4
  652. package/types/factories/GoodCompoundStakingV2__factory.ts +17 -4
  653. package/types/factories/GoodCompoundStaking__factory.ts +17 -4
  654. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +34 -1
  655. package/types/factories/GoodDollarStakingMock__factory.ts +94 -1
  656. package/types/factories/GoodDollarStaking__factory.ts +70 -1
  657. package/types/factories/GoodDollar__factory.ts +1254 -0
  658. package/types/factories/GoodFundManagerTest__factory.ts +27 -1
  659. package/types/factories/GoodFundManager__factory.ts +27 -1
  660. package/types/factories/GoodMarketMaker__factory.ts +27 -1
  661. package/types/factories/GoodReserveCDai__factory.ts +30 -4
  662. package/types/factories/GovernanceStaking__factory.ts +30 -4
  663. package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
  664. package/types/factories/IERC1820Registry__factory.ts +239 -0
  665. package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  666. package/types/factories/IERC20MetadataUpgradeable__factory.ts +3 -3
  667. package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  668. package/types/factories/IERC20Permit__factory.ts +98 -0
  669. package/types/factories/IERC20Upgradeable__factory.ts +3 -3
  670. package/types/factories/IERC777Recipient__factory.ts +64 -0
  671. package/types/factories/IERC777Sender__factory.ts +61 -0
  672. package/types/factories/IERC777__factory.ts +414 -0
  673. package/types/factories/IFeesFormula__factory.ts +57 -0
  674. package/types/factories/IGoodDollarCustom__factory.ts +370 -0
  675. package/types/factories/IGoodDollar__factory.ts +184 -0
  676. package/types/factories/IGovernanceStaking__factory.ts +39 -0
  677. package/types/factories/IIdentityV2__factory.ts +312 -0
  678. package/types/factories/IIdentity__factory.ts +70 -0
  679. package/types/factories/IStakingUpgrade__factory.ts +50 -0
  680. package/types/factories/ISuperAgreement__factory.ts +78 -0
  681. package/types/factories/ISuperApp__factory.ts +272 -0
  682. package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
  683. package/types/factories/ISuperTokenFactory__factory.ts +271 -0
  684. package/types/factories/ISuperToken__factory.ts +1682 -0
  685. package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
  686. package/types/factories/ISuperfluidToken__factory.ts +697 -0
  687. package/types/factories/ISuperfluid__factory.ts +1143 -0
  688. package/types/factories/IdentityMock__factory.ts +327 -0
  689. package/types/factories/IdentityV2__factory.ts +1129 -0
  690. package/types/factories/IncentiveControllerMock__factory.ts +1 -1
  691. package/types/factories/Initializable__factory.ts +36 -0
  692. package/types/factories/InvitesFuseV2__factory.ts +553 -0
  693. package/types/factories/InvitesV1__factory.ts +14 -1
  694. package/types/factories/InvitesV2__factory.ts +683 -0
  695. package/types/factories/LendingPoolMock__factory.ts +17 -4
  696. package/types/factories/Multicall__factory.ts +1 -1
  697. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  698. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  699. package/types/factories/NameService__factory.ts +27 -1
  700. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  701. package/types/factories/OverMintTester__factory.ts +1 -1
  702. package/types/factories/OwnableUpgradeable__factory.ts +13 -0
  703. package/types/factories/PausableUpgradeable__factory.ts +13 -0
  704. package/types/factories/PayableMock__factory.ts +66 -0
  705. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  706. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  707. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  708. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  709. package/types/factories/ProxyFactory1967__factory.ts +1 -1
  710. package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  711. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  712. package/types/factories/Reputation__factory.ts +27 -1
  713. package/types/factories/SelfApprove__factory.ts +46 -0
  714. package/types/factories/SimpleStakingV2__factory.ts +16 -3
  715. package/types/factories/SimpleStaking__factory.ts +16 -3
  716. package/types/factories/SixteenDecimalsTokenMock__factory.ts +17 -4
  717. package/types/factories/StakersDistribution__factory.ts +27 -1
  718. package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
  719. package/types/factories/SuperGoodDollar__factory.ts +2680 -0
  720. package/types/factories/SuperToken__factory.ts +1809 -0
  721. package/types/factories/SuperfluidToken__factory.ts +697 -0
  722. package/types/factories/SwapHelperTest__factory.ts +1 -1
  723. package/types/factories/TokenInfo__factory.ts +62 -0
  724. package/types/factories/TwentyDecimalsTokenMock__factory.ts +17 -4
  725. package/types/factories/UBIScheme__factory.ts +40 -21
  726. package/types/factories/USDCMock__factory.ts +17 -4
  727. package/types/factories/UUPSProxiable__factory.ts +101 -0
  728. package/types/factories/UUPSProxy__factory.ts +80 -0
  729. package/types/factories/UUPSUpgradeable__factory.ts +26 -0
  730. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  731. package/types/factories/UpgradableMock2__factory.ts +27 -1
  732. package/types/factories/UpgradableMock3__factory.ts +27 -1
  733. package/types/factories/UpgradableMock4__factory.ts +27 -1
  734. package/types/factories/UpgradableMock__factory.ts +27 -1
  735. package/types/hardhat.d.ts +459 -0
  736. package/types/index.ts +98 -0
  737. package/yarn.lock +1251 -306
  738. package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +0 -170
@@ -1,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, Contract } from "ethers";
3
4
  import { expect } from "chai";
4
5
  import { GoodMarketMaker, GoodReserveCDai } from "../../types";
@@ -43,6 +44,24 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
43
44
  before(async () => {
44
45
  [founder, staker, ...signers] = await ethers.getSigners();
45
46
  schemeMock = signers.pop();
47
+
48
+ let {
49
+ controller: ctrl,
50
+ avatar: av,
51
+ gd,
52
+ identity,
53
+ daoCreator,
54
+ nameService: ns,
55
+ setDAOAddress: sda,
56
+ setSchemes,
57
+ marketMaker: mm,
58
+ daiAddress,
59
+ cdaiAddress,
60
+ reserve,
61
+ setReserveToken,
62
+ COMP
63
+ } = await loadFixture(createDAO);
64
+
46
65
  const cdaiFactory = await ethers.getContractFactory("cDAIMock");
47
66
  const daiFactory = await ethers.getContractFactory("DAIMock");
48
67
  const routerFactory = new ethers.ContractFactory(
@@ -69,23 +88,6 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
69
88
 
70
89
  tokenB = await daiFactory.deploy(); // another erc20 for uniswap router test
71
90
 
72
- let {
73
- controller: ctrl,
74
- avatar: av,
75
- gd,
76
- identity,
77
- daoCreator,
78
- nameService: ns,
79
- setDAOAddress: sda,
80
- setSchemes,
81
- marketMaker: mm,
82
- daiAddress,
83
- cdaiAddress,
84
- reserve,
85
- setReserveToken,
86
- COMP
87
- } = await createDAO();
88
-
89
91
  dai = await ethers.getContractAt("DAIMock", daiAddress);
90
92
  cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
91
93
  comp = COMP;
@@ -118,7 +120,7 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
118
120
  });
119
121
  goodReserve = reserve;
120
122
 
121
- setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
123
+ await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
122
124
  const exchangeHelperFactory = await ethers.getContractFactory(
123
125
  "ExchangeHelper"
124
126
  );
@@ -435,7 +437,7 @@ describe("GoodReserve - buy/sell with any token through uniswap", () => {
435
437
  0,
436
438
  NULL_ADDRESS
437
439
  )
438
- ).to.be.revertedWith("ERC20: transfer amount exceeds allowance");
440
+ ).to.be.revertedWith("ERC20: insufficient allowance");
439
441
  });
440
442
 
441
443
  it("shouldn't be able to sell gd to tokenA through UNISWAP without approve", async () => {
@@ -1,5 +1,5 @@
1
1
  import { default as hre, ethers, upgrades } from "hardhat";
2
- import { deployMockContract, MockContract } from "ethereum-waffle";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
3
  import { expect } from "chai";
4
4
  import {
5
5
  CERC20,
@@ -27,7 +27,7 @@ describe("CompoundStakingFactory", () => {
27
27
 
28
28
  before(async () => {
29
29
  [founder, ...signers] = await ethers.getSigners();
30
- dao = await createDAO();
30
+ dao = await loadFixture(createDAO);
31
31
 
32
32
  const compUsdOracleFactory = await ethers.getContractFactory(
33
33
  "CompUSDMockOracle"
@@ -128,13 +128,16 @@ describe("CompoundStakingFactory", () => {
128
128
 
129
129
  const INITIAL_COLLECT_INTEREST_GAS_COST = 250000;
130
130
  const INITIAL_COLLECT_COMP_GAS_COST = 150000;
131
- const gasCostForInterestTransfer = await goodCompoundStakingV2.getGasCostForInterestTransfer();
132
- expect(gasCostForInterestTransfer).to.equal(INITIAL_COLLECT_INTEREST_GAS_COST);
131
+ const gasCostForInterestTransfer =
132
+ await goodCompoundStakingV2.getGasCostForInterestTransfer();
133
+ expect(gasCostForInterestTransfer).to.equal(
134
+ INITIAL_COLLECT_INTEREST_GAS_COST
135
+ );
133
136
 
134
137
  const settings = await goodCompoundStakingV2.getSettings();
135
138
  const collectInteresetGasCost = settings[0];
136
139
  const compCollectGasCost = settings[1];
137
140
  expect(collectInteresetGasCost).to.equal(INITIAL_COLLECT_INTEREST_GAS_COST);
138
141
  expect(compCollectGasCost).to.equal(INITIAL_COLLECT_COMP_GAS_COST);
139
- });
142
+ });
140
143
  });
@@ -1,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, Contract } from "ethers";
3
4
  import { expect } from "chai";
4
5
  import {
@@ -57,14 +58,14 @@ describe("Different decimals staking token", () => {
57
58
  genericCall: gc,
58
59
  setDAOAddress,
59
60
  COMP
60
- } = await createDAO();
61
+ } = await loadFixture(createDAO);
61
62
 
62
63
  comp = COMP;
63
64
  dai = await ethers.getContractAt("DAIMock", daiAddress);
64
65
  cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
65
66
  uniswap = await deployUniswap(comp, dai);
66
67
  uniswapRouter = uniswap.router;
67
- setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
68
+ await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
68
69
  avatar = av;
69
70
  controller = ctrl;
70
71
  genericCall = gc;
@@ -1,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, constants, Contract } from "ethers";
3
4
  import { expect } from "chai";
4
5
  import {
@@ -77,7 +78,7 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
77
78
  reserve,
78
79
  setReserveToken,
79
80
  genericCall: gc
80
- } = await createDAO();
81
+ } = await loadFixture(createDAO);
81
82
 
82
83
  comp = await daiFactory.deploy();
83
84
  genericCall = gc;
@@ -235,7 +236,7 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
235
236
  "no stakingToken to stake"
236
237
  );
237
238
  });
238
-
239
+
239
240
  it("it should stake donations with ETH according to 0.3% of pool", async () => {
240
241
  let stakeAmount = ethers.utils.parseEther("20");
241
242
  const pairContract = await ethers.getContractAt(
@@ -315,15 +316,15 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
315
316
 
316
317
  expect(totalStakedAfterEnd).to.be.equal(0);
317
318
  });
318
-
319
+
319
320
  it("should not allow to stake donations when not active", async () => {
320
321
  let isActive = await donationsStaking.active();
321
322
  expect(isActive).to.be.equal(true);
322
323
  let stakeAmount = ethers.utils.parseEther("10");
323
324
  await dai["mint(address,uint256)"](donationsStaking.address, stakeAmount);
324
-
325
+
325
326
  expect(donationsStaking.stakeDonations()).to.not.be.reverted;
326
-
327
+
327
328
  let encodedData = donationsStaking.interface.encodeFunctionData(
328
329
  "setActive",
329
330
  [false]
@@ -335,10 +336,9 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
335
336
  await dai["mint(address,uint256)"](donationsStaking.address, stakeAmount);
336
337
  await expect(donationsStaking.stakeDonations()).to.be.reverted;
337
338
  // revent to original state
338
- encodedData = donationsStaking.interface.encodeFunctionData(
339
- "setActive",
340
- [true]
341
- );
339
+ encodedData = donationsStaking.interface.encodeFunctionData("setActive", [
340
+ true
341
+ ]);
342
342
  await genericCall(donationsStaking.address, encodedData);
343
343
  });
344
344
 
@@ -354,18 +354,18 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
354
354
 
355
355
  // Invalid scenarios checks
356
356
  const invalidPaths = [
357
- [NULL_ADDRESS], // less than minimum 2 length
357
+ [NULL_ADDRESS], // less than minimum 2 length
358
358
  [bat.address, dai.address], // first is not ETH null address
359
359
  [NULL_ADDRESS, bat.address] // last is not the staking token
360
360
  ];
361
361
 
362
362
  for (const invalidPath of invalidPaths) {
363
363
  encodedData = donationsStaking.interface.encodeFunctionData(
364
- "setSwapPaths",
365
- [invalidPath]
364
+ "setSwapPaths",
365
+ [invalidPath]
366
366
  );
367
367
  await genericCall(donationsStaking.address, encodedData);
368
- expect(await isEthToStakingTokenPathEqualTo(invalidPath)).to.be.false;
368
+ expect(await isEthToStakingTokenPathEqualTo(invalidPath)).to.be.false;
369
369
  }
370
370
 
371
371
  encodedData = donationsStaking.interface.encodeFunctionData(
@@ -374,23 +374,27 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
374
374
  );
375
375
  await genericCall(donationsStaking.address, encodedData);
376
376
  });
377
-
377
+
378
378
  async function isEthToStakingTokenPathEqualTo(path) {
379
379
  for (let index = 0; index < path.length; index++) {
380
380
  let expectedValue = path[index];
381
- let valueAtIndex = await donationsStaking.ethToStakingTokenSwapPath(index).catch(e=>e);
381
+ let valueAtIndex = await donationsStaking
382
+ .ethToStakingTokenSwapPath(index)
383
+ .catch(e => e);
382
384
  if (expectedValue != valueAtIndex) {
383
385
  return false;
384
386
  }
385
387
  }
386
388
 
387
- const outOfArray = await donationsStaking.ethToStakingTokenSwapPath(path.length).catch(e=>e);
389
+ const outOfArray = await donationsStaking
390
+ .ethToStakingTokenSwapPath(path.length)
391
+ .catch(e => e);
388
392
  if (!outOfArray.message) {
389
393
  return false;
390
394
  }
391
395
 
392
396
  return true;
393
- }
397
+ }
394
398
 
395
399
  it("it should set stakingContract when avatar call it ", async () => {
396
400
  let stakeAmount = ethers.utils.parseEther("6000"); // Max swap amount is around 5964 with current liquidity level so we should set it to higher number in order to test functionality
@@ -473,21 +477,26 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
473
477
  avatarDaiBalanceBeforeSet.add(stakingAmountBeforeSet.sub(safeAmount))
474
478
  ); // It should send leftover stakingToken to avatar after swap to ETH in safeAmount
475
479
  expect(stakingAmountBeforeSet).to.be.gt(safeAmount); // maxSafeAmount must be smaller than actualstaking amount so we can verify that we hit the limit for transaction amount at once
476
- });
477
-
480
+ });
481
+
478
482
  it("should set max liquidity percentage swap when avatar", async () => {
479
- const originalPercentage = await donationsStaking.maxLiquidityPercentageSwap();
483
+ const originalPercentage =
484
+ await donationsStaking.maxLiquidityPercentageSwap();
480
485
  //fail when not avatar
481
486
  const percentageToSet = 21;
482
- expect(donationsStaking.connect(staker)["setMaxLiquidityPercentageSwap(uint24)"](percentageToSet)).
483
- to.be.revertedWith("only avatar can call this method");
487
+ expect(
488
+ donationsStaking
489
+ .connect(staker)
490
+ ["setMaxLiquidityPercentageSwap(uint24)"](percentageToSet)
491
+ ).to.be.revertedWith("only avatar can call this method");
484
492
  //succeed when avatar
485
493
  let encodedData = donationsStaking.interface.encodeFunctionData(
486
494
  "setMaxLiquidityPercentageSwap",
487
495
  [percentageToSet]
488
496
  );
489
497
  await genericCall(donationsStaking.address, encodedData);
490
- const actualPercentage = await donationsStaking.maxLiquidityPercentageSwap();
498
+ const actualPercentage =
499
+ await donationsStaking.maxLiquidityPercentageSwap();
491
500
  expect(actualPercentage).to.be.equal(percentageToSet);
492
501
  //revent to original state
493
502
  encodedData = donationsStaking.interface.encodeFunctionData(
@@ -500,4 +509,4 @@ describe("DonationsStaking - DonationStaking contract that receives funds in ETH
500
509
  const version = await donationsStaking.getVersion();
501
510
  expect(version).to.be.equal("2.0.0");
502
511
  });
503
- });
512
+ });
@@ -1,8 +1,8 @@
1
- import { ethers, network as networkConfig } from "hardhat";
1
+ import hre, { ethers, network as networkConfig, waffle } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { FuseStakingV3 } from "../../types";
3
4
  import { expect } from "chai";
4
- import { deployMockContract, MockContract } from "ethereum-waffle";
5
- import hre from "hardhat";
5
+ import { MockContract } from "ethereum-waffle";
6
6
  import { abi as ubiabi } from "../../artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json";
7
7
  import { BigNumber } from "ethers";
8
8
  export const NULL_ADDRESS = "0x0000000000000000000000000000000000000000";
@@ -23,14 +23,14 @@ describe("FuseStakingV3", () => {
23
23
  let u = await hre.artifacts.readArtifact("Uniswap");
24
24
  let uf = await hre.artifacts.readArtifact("UniswapFactory");
25
25
  let up = await hre.artifacts.readArtifact("UniswapPair");
26
- uniswap = await deployMockContract(signers[0], u.abi);
27
- uniswapFactory = await deployMockContract(signers[0], uf.abi);
28
- uniswapPair = await deployMockContract(signers[0], up.abi);
26
+ uniswap = await waffle.deployMockContract(signers[0], u.abi);
27
+ uniswapFactory = await waffle.deployMockContract(signers[0], uf.abi);
28
+ uniswapPair = await waffle.deployMockContract(signers[0], up.abi);
29
29
 
30
- gdusdcPair = await deployMockContract(signers[0], up.abi);
31
- fusefusdPair = await deployMockContract(signers[0], up.abi);
30
+ gdusdcPair = await waffle.deployMockContract(signers[0], up.abi);
31
+ fusefusdPair = await waffle.deployMockContract(signers[0], up.abi);
32
32
 
33
- ubiMock = await deployMockContract(signers[0], ubiabi);
33
+ ubiMock = await waffle.deployMockContract(signers[0], ubiabi);
34
34
  await uniswap.mock.factory.returns(uniswapFactory.address);
35
35
  await uniswap.mock.WETH.returns(signers[3].address);
36
36
  await uniswapFactory.mock.getPair.returns(uniswapPair.address);
@@ -1,7 +1,12 @@
1
1
  import { default as hre, ethers, upgrades } from "hardhat";
2
- import { deployMockContract, MockContract } from "ethereum-waffle";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
3
  import { expect } from "chai";
4
- import { CERC20, GoodAaveStaking, GoodAaveStakingV2, AaveStakingFactory } from "../../types";
4
+ import {
5
+ CERC20,
6
+ GoodAaveStaking,
7
+ GoodAaveStakingV2,
8
+ AaveStakingFactory
9
+ } from "../../types";
5
10
  import { createDAO, deployUniswap } from "../helpers";
6
11
  import { Contract } from "ethers";
7
12
 
@@ -25,7 +30,7 @@ describe("AaveStakingFactory", () => {
25
30
 
26
31
  before(async () => {
27
32
  [founder, ...signers] = await ethers.getSigners();
28
- dao = await createDAO();
33
+ dao = await loadFixture(createDAO);
29
34
  const usdcFactory = await ethers.getContractFactory("USDCMock");
30
35
  const lendingPoolFactory = await ethers.getContractFactory(
31
36
  "LendingPoolMock"
@@ -128,33 +133,33 @@ describe("AaveStakingFactory", () => {
128
133
  "GoodAaveStakingV2",
129
134
  await stakingFactory.impl()
130
135
  )) as GoodAaveStakingV2;
131
- await expect(goodAaveStakingV2.init(
132
- usdc.address,
133
- lendingPool.address,
134
- dao.nameService.address,
135
- "USDC",
136
- "USDC",
137
- 5760,
138
- stakingFactory.address,
139
- incentiveController.address,
140
- aaveUsdOracle.address,
141
- [cdai, dai] // violates tokenToDaiSwapPath[0] == _token (cdai != usdc)
142
- )).to.be.revertedWith(
143
- "invalid _tokenToDaiSwapPath"
144
- );
145
- await expect(goodAaveStakingV2.init(
146
- usdc.address,
147
- lendingPool.address,
148
- dao.nameService.address,
149
- "USDC",
150
- "USDC",
151
- 5760,
152
- stakingFactory.address,
153
- incentiveController.address,
154
- aaveUsdOracle.address,
155
- [usdc.address, cdai] // violates _tokenToDaiSwapPath[] path leading to dai
156
- )).to.be.revertedWith(
157
- "invalid _tokenToDaiSwapPath"
158
- );
136
+ await expect(
137
+ goodAaveStakingV2.init(
138
+ usdc.address,
139
+ lendingPool.address,
140
+ dao.nameService.address,
141
+ "USDC",
142
+ "USDC",
143
+ 5760,
144
+ stakingFactory.address,
145
+ incentiveController.address,
146
+ aaveUsdOracle.address,
147
+ [cdai, dai] // violates tokenToDaiSwapPath[0] == _token (cdai != usdc)
148
+ )
149
+ ).to.be.revertedWith("invalid _tokenToDaiSwapPath");
150
+ await expect(
151
+ goodAaveStakingV2.init(
152
+ usdc.address,
153
+ lendingPool.address,
154
+ dao.nameService.address,
155
+ "USDC",
156
+ "USDC",
157
+ 5760,
158
+ stakingFactory.address,
159
+ incentiveController.address,
160
+ aaveUsdOracle.address,
161
+ [usdc.address, cdai] // violates _tokenToDaiSwapPath[] path leading to dai
162
+ )
163
+ ).to.be.revertedWith("invalid _tokenToDaiSwapPath");
159
164
  });
160
165
  });
@@ -1,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { Contract } from "ethers";
3
4
  import { expect } from "chai";
4
5
  import { GoodMarketMaker, GoodReserveCDai } from "../../types";
@@ -57,8 +58,8 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
57
58
  cdaiAddress,
58
59
  reserve,
59
60
  setReserveToken,
60
- runAsAvatarOnly: raao,
61
- } = await createDAO();
61
+ runAsAvatarOnly: raao
62
+ } = await loadFixture(createDAO);
62
63
  dai = await ethers.getContractAt("DAIMock", daiAddress);
63
64
  cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
64
65
  avatar = av;
@@ -94,7 +95,7 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
94
95
  daiUsdOracle = await tokenUsdOracleFactory.deploy();
95
96
  const daiFactory = await ethers.getContractFactory("DAIMock");
96
97
 
97
- setDAOAddress("UNISWAP_ROUTER", signers[0].address); // need this address for initialize simplestaking
98
+ await setDAOAddress("UNISWAP_ROUTER", signers[0].address); // need this address for initialize simplestaking
98
99
  const compUsdOracleFactory = await ethers.getContractFactory(
99
100
  "CompUSDMockOracle"
100
101
  );
@@ -1103,9 +1104,7 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
1103
1104
  .connect(staker)
1104
1105
  .stake(stakingAmount, 100, true)
1105
1106
  .catch(e => e);
1106
- expect(transaction.message).to.have.string(
1107
- "ERC20: transfer amount exceeds allowance"
1108
- );
1107
+ expect(transaction.message).to.have.string("ERC20: insufficient allowance");
1109
1108
  });
1110
1109
  it("it should be able stake and withdraw their stake in iToken", async () => {
1111
1110
  const stakingAmount = ethers.utils.parseUnits("100", 8);
@@ -1264,17 +1263,12 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
1264
1263
  it("should not be able to withdraw stake when the withdrawn amount is higher than the staked amount", async () => {
1265
1264
  const stakeAmount = ethers.utils.parseEther("100");
1266
1265
  const higherThanStakeAmount = ethers.utils.parseEther("101");
1267
- await cDAI["mint(address,uint256)"](
1268
- staker.address,
1269
- stakeAmount
1270
- );
1266
+ await cDAI["mint(address,uint256)"](staker.address, stakeAmount);
1271
1267
  await cDAI
1272
1268
  .connect(staker)
1273
1269
  .approve(goodCompoundStaking.address, higherThanStakeAmount);
1274
1270
 
1275
- await goodCompoundStaking
1276
- .connect(staker)
1277
- .stake(stakeAmount, "100", true);
1271
+ await goodCompoundStaking.connect(staker).stake(stakeAmount, "100", true);
1278
1272
 
1279
1273
  const tx = await goodCompoundStaking
1280
1274
  .connect(staker)
@@ -1283,9 +1277,7 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
1283
1277
 
1284
1278
  expect(tx.message).to.be.not.empty;
1285
1279
  // revent to original state
1286
- await goodCompoundStaking
1287
- .connect(staker)
1288
- .withdrawStake(stakeAmount, true);
1280
+ await goodCompoundStaking.connect(staker).withdrawStake(stakeAmount, true);
1289
1281
  });
1290
1282
 
1291
1283
  it("should pause the contract", async () => {
@@ -1456,14 +1448,16 @@ describe("SimpleDAISTAking - staking with cDAI mocks", () => {
1456
1448
 
1457
1449
  it("should set max liquidity percentage swap when avatar", async () => {
1458
1450
  goodCompoundStaking = await deployStaking();
1459
- const percentageBeforeSet = await goodCompoundStaking.maxLiquidityPercentageSwap();
1451
+ const percentageBeforeSet =
1452
+ await goodCompoundStaking.maxLiquidityPercentageSwap();
1460
1453
  const percentageToSet = 21;
1461
1454
  await runAsAvatarOnly(
1462
1455
  goodCompoundStaking,
1463
1456
  "setMaxLiquidityPercentageSwap(uint24)",
1464
1457
  percentageToSet
1465
- )
1466
- const percentageAfterSet = await goodCompoundStaking.maxLiquidityPercentageSwap();
1458
+ );
1459
+ const percentageAfterSet =
1460
+ await goodCompoundStaking.maxLiquidityPercentageSwap();
1467
1461
  expect(percentageAfterSet).to.be.equal(percentageToSet);
1468
1462
  expect(percentageAfterSet).to.not.equal(percentageBeforeSet);
1469
1463
  });
@@ -1,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, Contract } from "ethers";
3
4
  import { expect } from "chai";
4
5
  import { GoodMarketMaker } from "../../types";
@@ -51,19 +52,7 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
51
52
  before(async () => {
52
53
  [founder, staker, ...signers] = await ethers.getSigners();
53
54
  schemeMock = signers.pop();
54
- const cdaiFactory = await ethers.getContractFactory("cDAIMock");
55
- const cBatFactory = await ethers.getContractFactory("cBATMock");
56
- const goodFundManagerFactory = await ethers.getContractFactory(
57
- "GoodFundManager"
58
- );
59
- goodCompoundStakingFactory = await getStakingFactory(
60
- "GoodCompoundStakingV2"
61
- );
62
- goodCompoundStakingTestFactory = await getStakingFactory(
63
- "GoodCompoundStakingTest"
64
- );
65
55
 
66
- const daiFactory = await ethers.getContractFactory("DAIMock");
67
56
  let {
68
57
  controller: ctrl,
69
58
  avatar: av,
@@ -79,7 +68,21 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
79
68
  setReserveToken,
80
69
  genericCall: gc,
81
70
  COMP
82
- } = await createDAO();
71
+ } = await loadFixture(createDAO);
72
+
73
+ const cdaiFactory = await ethers.getContractFactory("cDAIMock");
74
+ const cBatFactory = await ethers.getContractFactory("cBATMock");
75
+ const goodFundManagerFactory = await ethers.getContractFactory(
76
+ "GoodFundManager"
77
+ );
78
+ goodCompoundStakingFactory = await getStakingFactory(
79
+ "GoodCompoundStakingV2"
80
+ );
81
+ goodCompoundStakingTestFactory = await getStakingFactory(
82
+ "GoodCompoundStakingTest"
83
+ );
84
+
85
+ const daiFactory = await ethers.getContractFactory("DAIMock");
83
86
 
84
87
  genericCall = gc;
85
88
  dai = await ethers.getContractAt("DAIMock", daiAddress);
@@ -129,7 +132,7 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
129
132
  const tokenUsdOracleFactory = await ethers.getContractFactory(
130
133
  "BatUSDMockOracle"
131
134
  );
132
- setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
135
+ await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
133
136
 
134
137
  daiUsdOracle = await tokenUsdOracleFactory.deploy();
135
138
  const compUsdOracleFactory = await ethers.getContractFactory(
@@ -194,8 +197,8 @@ describe("StakingRewards - staking with cDAI mocks and get Rewards in GoodDollar
194
197
  JSON.stringify(IUniswapV2Pair.abi),
195
198
  staker
196
199
  ).connect(founder);
197
- setDAOAddress("CDAI", cDAI.address);
198
- setDAOAddress("DAI", dai.address);
200
+ await setDAOAddress("CDAI", cDAI.address);
201
+ await setDAOAddress("DAI", dai.address);
199
202
 
200
203
  batUsdOracle = await tokenUsdOracleFactory.deploy();
201
204
 
@@ -1,5 +1,6 @@
1
1
  import { expect } from "chai";
2
2
  import { ethers, waffle } from "hardhat";
3
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
4
  import { createDAO, advanceBlocks } from "../helpers";
4
5
  import { StakingMockFixedAPY } from "../../types";
5
6
  import { default as StakingABI } from "../../artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json";
@@ -61,7 +62,7 @@ describe("StakingRewardsFixedAPY - generic staking for fixed APY rewards contrac
61
62
  gd,
62
63
  nameService: ns,
63
64
  setDAOAddress
64
- } = await createDAO();
65
+ } = await loadFixture(createDAO);
65
66
 
66
67
  setNSAddress = setDAOAddress;
67
68
  nameService = ns;
@@ -1,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, Contract } from "ethers";
3
4
  import { expect } from "chai";
4
5
 
@@ -38,6 +39,24 @@ describe("SwapHelper - Helper library for swap on the Uniswap", () => {
38
39
  before(async () => {
39
40
  [founder, staker, ...signers] = await ethers.getSigners();
40
41
  schemeMock = signers.pop();
42
+
43
+ let {
44
+ controller: ctrl,
45
+ avatar: av,
46
+ gd,
47
+ identity,
48
+ nameService: ns,
49
+ setDAOAddress: sda,
50
+ setSchemes,
51
+ marketMaker: mm,
52
+ daiAddress,
53
+ cdaiAddress,
54
+ reserve,
55
+ setReserveToken,
56
+ genericCall: gc,
57
+ COMP
58
+ } = await loadFixture(createDAO);
59
+
41
60
  const cdaiFactory = await ethers.getContractFactory("cDAIMock");
42
61
  const cBatFactory = await ethers.getContractFactory("cDecimalsMock");
43
62
  const goodFundManagerFactory = await ethers.getContractFactory(
@@ -54,22 +73,6 @@ describe("SwapHelper - Helper library for swap on the Uniswap", () => {
54
73
  );
55
74
  swapHelperTest = await swapHelperTestFactory.deploy();
56
75
  const daiFactory = await ethers.getContractFactory("DAIMock");
57
- let {
58
- controller: ctrl,
59
- avatar: av,
60
- gd,
61
- identity,
62
- nameService: ns,
63
- setDAOAddress: sda,
64
- setSchemes,
65
- marketMaker: mm,
66
- daiAddress,
67
- cdaiAddress,
68
- reserve,
69
- setReserveToken,
70
- genericCall: gc,
71
- COMP
72
- } = await createDAO();
73
76
 
74
77
  genericCall = gc;
75
78
  dai = await ethers.getContractAt("DAIMock", daiAddress);
@@ -109,7 +112,7 @@ describe("SwapHelper - Helper library for swap on the Uniswap", () => {
109
112
  const tokenUsdOracleFactory = await ethers.getContractFactory(
110
113
  "BatUSDMockOracle"
111
114
  );
112
- setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
115
+ await setDAOAddress("UNISWAP_ROUTER", uniswapRouter.address);
113
116
 
114
117
  const compUsdOracleFactory = await ethers.getContractFactory(
115
118
  "CompUSDMockOracle"