@gooddollar/goodprotocol 1.0.30-beta.2 → 1.0.30-beta.3

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 (727) 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/BuyAndBridgeHelper.min.json +1 -0
  6. package/artifacts/abis/ClaimersDistribution.min.json +1 -1
  7. package/artifacts/abis/CompoundStakingFactory.min.json +1 -1
  8. package/artifacts/abis/CompoundVotingMachine.min.json +1 -1
  9. package/artifacts/abis/DAIMock.min.json +1 -1
  10. package/artifacts/abis/DAOUpgradeableContract.min.json +1 -1
  11. package/artifacts/abis/DecimalsMock.min.json +1 -1
  12. package/artifacts/abis/DistributionHelper.min.json +1 -1
  13. package/artifacts/abis/DistributionHelperTest.min.json +1 -1
  14. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
  15. package/artifacts/abis/DonationsStaking.min.json +1 -1
  16. package/artifacts/abis/ERC20Permit.min.json +1 -0
  17. package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
  18. package/artifacts/abis/ERC677.min.json +1 -0
  19. package/artifacts/abis/ERC677Receiver.min.json +1 -0
  20. package/artifacts/abis/ExchangeHelper.min.json +1 -1
  21. package/artifacts/abis/Faucet.min.json +1 -0
  22. package/artifacts/abis/FeesFormulaMock.min.json +1 -0
  23. package/artifacts/abis/FuseFaucet.min.json +1 -1
  24. package/artifacts/abis/FuseStakingV3.min.json +1 -1
  25. package/artifacts/abis/GReputation.min.json +1 -1
  26. package/artifacts/abis/GoodAaveStaking.min.json +1 -1
  27. package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
  28. package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
  29. package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
  30. package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
  31. package/artifacts/abis/GoodDollar.min.json +1 -0
  32. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -1
  33. package/artifacts/abis/GoodDollarStaking.min.json +1 -1
  34. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -1
  35. package/artifacts/abis/GoodFundManager.min.json +1 -1
  36. package/artifacts/abis/GoodFundManagerTest.min.json +1 -1
  37. package/artifacts/abis/GoodMarketMaker.min.json +1 -1
  38. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  39. package/artifacts/abis/GovernanceStaking.min.json +1 -1
  40. package/artifacts/abis/IFeesFormula.min.json +1 -0
  41. package/artifacts/abis/IGoodDollar.min.json +1 -1
  42. package/artifacts/abis/IGoodDollarCustom.min.json +1 -0
  43. package/artifacts/abis/IGovernanceStaking.min.json +1 -0
  44. package/artifacts/abis/IIdentity.min.json +1 -1
  45. package/artifacts/abis/IIdentityV2.min.json +1 -0
  46. package/artifacts/abis/IStakingUpgrade.min.json +1 -0
  47. package/artifacts/abis/ISuperGoodDollar.min.json +1 -0
  48. package/artifacts/abis/IdentityMock.min.json +1 -0
  49. package/artifacts/abis/IdentityV2.min.json +1 -0
  50. package/artifacts/abis/InvitesV1.min.json +1 -1
  51. package/artifacts/abis/InvitesV2.min.json +1 -0
  52. package/artifacts/abis/LendingPoolMock.min.json +1 -1
  53. package/artifacts/abis/NameService.min.json +1 -1
  54. package/artifacts/abis/PayableMock.min.json +1 -0
  55. package/artifacts/abis/Proxy.min.json +1 -0
  56. package/artifacts/abis/Reputation.min.json +1 -1
  57. package/artifacts/abis/SelfApprove.min.json +1 -0
  58. package/artifacts/abis/SimpleStaking.min.json +1 -1
  59. package/artifacts/abis/SimpleStakingV2.min.json +1 -1
  60. package/artifacts/abis/SixteenDecimalsTokenMock.min.json +1 -1
  61. package/artifacts/abis/StakersDistribution.min.json +1 -1
  62. package/artifacts/abis/SuperGoodDollar.min.json +1 -0
  63. package/artifacts/abis/SuperToken.min.json +1 -0
  64. package/artifacts/abis/SuperfluidToken.min.json +1 -0
  65. package/artifacts/abis/TwentyDecimalsTokenMock.min.json +1 -1
  66. package/artifacts/abis/UBIScheme.min.json +1 -1
  67. package/artifacts/abis/USDCMock.min.json +1 -1
  68. package/artifacts/abis/UUPSProxiable.min.json +1 -0
  69. package/artifacts/abis/UUPSProxy.min.json +1 -0
  70. package/artifacts/abis/UUPSUtils.min.json +1 -0
  71. package/artifacts/abis/UpgradableMock.min.json +1 -1
  72. package/artifacts/abis/UpgradableMock2.min.json +1 -1
  73. package/artifacts/abis/UpgradableMock3.min.json +1 -1
  74. package/artifacts/abis/UpgradableMock4.min.json +1 -1
  75. package/artifacts/abis/cBATMock.min.json +1 -1
  76. package/artifacts/abis/cDAILowWorthMock.min.json +1 -1
  77. package/artifacts/abis/cDAIMock.min.json +1 -1
  78. package/artifacts/abis/cDAINonMintableMock.min.json +1 -1
  79. package/artifacts/abis/cDecimalsMock.min.json +1 -1
  80. package/artifacts/abis/cSDTMock.min.json +1 -1
  81. package/artifacts/abis/cUSDCMock.min.json +1 -1
  82. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  83. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  84. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  85. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  86. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  87. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  88. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  89. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  90. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  91. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  92. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  93. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  94. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  95. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  96. package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +184 -0
  97. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  98. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  99. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  100. package/artifacts/contracts/Interfaces.sol/IIdentity.json +70 -0
  101. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  102. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +300 -0
  103. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  104. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  105. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  106. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  107. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  108. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  109. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  110. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  111. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  112. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  113. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  114. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
  115. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +736 -0
  116. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  117. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +15 -2
  118. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  119. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +28 -2
  120. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  121. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +28 -2
  122. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  123. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +78 -3
  124. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  125. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +71 -2
  126. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
  127. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
  128. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +4 -0
  129. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.json +35 -0
  130. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  131. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  132. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +31 -5
  133. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  134. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  135. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +28 -2
  136. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  137. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +28 -2
  138. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
  139. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1081 -0
  140. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  141. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +15 -2
  142. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
  143. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +640 -0
  144. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  145. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +18 -5
  146. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  147. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  148. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  149. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  150. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  151. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  152. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  153. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +18 -5
  154. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  155. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  156. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  157. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +18 -5
  158. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  159. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  160. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  161. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +35 -2
  162. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  163. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +35 -2
  164. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  165. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  166. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +4 -0
  167. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +69 -0
  168. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  169. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
  170. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  171. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +22 -9
  172. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  173. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +95 -2
  174. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  175. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +28 -2
  176. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +4 -0
  177. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +277 -0
  178. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  179. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  180. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  181. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +18 -5
  182. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  183. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  184. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  185. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  186. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  187. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  188. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  189. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  190. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +4 -0
  191. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +18 -0
  192. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  193. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +18 -5
  194. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  195. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  196. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  197. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  198. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  199. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +18 -5
  200. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  201. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +28 -2
  202. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  203. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +28 -2
  204. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  205. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +28 -2
  206. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  207. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +28 -2
  208. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  209. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +18 -5
  210. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  211. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +18 -5
  212. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  213. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +18 -5
  214. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  215. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +18 -5
  216. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  217. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +18 -5
  218. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  219. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +18 -5
  220. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  221. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +18 -5
  222. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  223. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +18 -5
  224. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  225. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +35 -2
  226. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  227. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +28 -2
  228. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  229. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +28 -2
  230. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  231. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  232. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +37 -5
  233. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  234. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  235. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  236. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  237. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  238. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +32 -6
  239. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  240. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +44 -83
  241. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  242. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  243. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +28 -2
  245. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  246. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.json +16 -3
  247. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  248. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +16 -3
  249. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  250. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  251. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  252. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +3 -3
  253. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  254. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +20 -7
  255. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  256. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +20 -7
  257. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  258. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
  259. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +22 -9
  261. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  262. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +22 -9
  263. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  264. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
  265. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  266. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +4 -0
  267. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +768 -0
  268. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
  269. package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
  270. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
  271. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
  272. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
  273. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
  274. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
  275. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1206 -0
  276. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +4 -0
  277. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.json +99 -0
  278. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +4 -0
  279. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.json +34 -0
  280. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +4 -0
  281. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.json +355 -0
  282. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +4 -0
  283. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +2132 -0
  284. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +4 -0
  285. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2590 -0
  286. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +4 -0
  287. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +1759 -0
  288. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +4 -0
  289. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.json +682 -0
  290. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +4 -0
  291. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.json +89 -0
  292. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +4 -0
  293. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.json +19 -0
  294. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +4 -0
  295. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +32 -0
  296. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +4 -0
  297. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +10 -0
  298. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  299. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +41 -22
  300. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  301. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +94 -48
  302. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  303. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  304. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  305. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  306. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +4 -0
  307. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +184 -0
  308. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  309. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  310. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  311. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +28 -2
  312. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  313. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  314. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  315. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  316. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  317. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +35 -2
  318. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  319. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  320. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  321. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  322. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  323. package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
  324. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  325. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  326. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  327. package/artifacts/contracts/utils/NameService.sol/NameService.json +28 -2
  328. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  329. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  330. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  331. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  332. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  333. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  334. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  335. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  336. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  337. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  338. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  339. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  340. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  341. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  342. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  343. package/contracts/Interfaces.sol +57 -3
  344. package/contracts/fuseFaucet/Faucet.sol +258 -0
  345. package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
  346. package/contracts/governance/GReputation.sol +104 -16
  347. package/contracts/governance/GoodDollarStaking.sol +139 -53
  348. package/contracts/governance/GovernanceStaking.sol +2 -2
  349. package/contracts/identity/IdentityV2.sol +559 -0
  350. package/contracts/invite/InvitesV1.sol +6 -24
  351. package/contracts/invite/InvitesV2.sol +338 -0
  352. package/contracts/mocks/AaveMock.sol +1 -1
  353. package/contracts/mocks/DAIMock.sol +1 -1
  354. package/contracts/mocks/DecimalsMock.sol +1 -1
  355. package/contracts/mocks/FeesFormularMock.sol +21 -0
  356. package/contracts/mocks/GoodDollarStakingMock.sol +16 -0
  357. package/contracts/mocks/GoodFundManagerTest.sol +1 -1
  358. package/contracts/mocks/IdentityMock.sol +58 -0
  359. package/contracts/mocks/LendingPoolMock.sol +1 -1
  360. package/contracts/mocks/PayableMock.sol +3 -0
  361. package/contracts/mocks/SixteenDecimalsTokenMock.sol +1 -6
  362. package/contracts/mocks/TwentyDecimalsTokenMock.sol +1 -6
  363. package/contracts/mocks/UpgradableMocks.sol +5 -3
  364. package/contracts/mocks/UsdcMock.sol +1 -6
  365. package/contracts/mocks/cBATMock.sol +7 -12
  366. package/contracts/mocks/cDAILowWorthMock.sol +8 -12
  367. package/contracts/mocks/cDAIMock.sol +1 -1
  368. package/contracts/mocks/cDAINonMintableMock.sol +7 -12
  369. package/contracts/mocks/cDecimalsMock.sol +1 -1
  370. package/contracts/mocks/cSDTMock.sol +3 -3
  371. package/contracts/mocks/cUSDCMock.sol +5 -5
  372. package/contracts/reserve/DistributionHelper.sol +5 -1
  373. package/contracts/reserve/GoodReserveCDai.sol +15 -5
  374. package/contracts/staking/FuseStakingV3.sol +42 -112
  375. package/contracts/staking/GoodFundManager.sol +2 -2
  376. package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
  377. package/contracts/token/ERC677.sol +74 -0
  378. package/contracts/token/FeesFormula.sol +10 -0
  379. package/contracts/token/GoodDollar.sol +234 -0
  380. package/contracts/token/superfluid/ERC20Permit.sol +101 -0
  381. package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
  382. package/contracts/token/superfluid/SuperGoodDollar.sol +348 -0
  383. package/contracts/token/superfluid/SuperToken.sol +712 -0
  384. package/contracts/token/superfluid/SuperfluidToken.sol +402 -0
  385. package/contracts/token/superfluid/UUPSProxiable.sol +55 -0
  386. package/contracts/token/superfluid/UUPSProxy.sol +153 -0
  387. package/contracts/ubi/UBIScheme.sol +88 -68
  388. package/contracts/utils/AdminWallet.sol +42 -11
  389. package/contracts/utils/BuyAndBridgeHelper.sol +108 -0
  390. package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
  391. package/hardhat.config.ts +60 -9
  392. package/package.json +19 -10
  393. package/releases/deploy-settings.json +47 -3
  394. package/releases/deployment.json +67 -196
  395. package/scripts/analytics/activeWalletsStats.ts +4 -0
  396. package/scripts/analytics/gdinflow.ts +3 -0
  397. package/scripts/analytics/p2pTxs.ts +582 -0
  398. package/scripts/analytics/tokenInOutStats.ts +3 -1
  399. package/scripts/deployFullDAO.ts +39 -19
  400. package/scripts/deployGnosisSafe.ts +21 -21
  401. package/scripts/gdx/gdxAirdropCalculation.ts +11 -12
  402. package/scripts/governance/airdropCalculationRecover.ts +43 -33
  403. package/scripts/governance/airdropCalculationSorted.ts +438 -0
  404. package/scripts/governance/goodCheckpointSorted.ts +377 -0
  405. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +100 -0
  406. package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +123 -93
  407. package/scripts/multichain-deploy/2_helpers-deploy.ts +152 -0
  408. package/scripts/multichain-deploy/{gdSavings-deploy.ts → 3_gdSavings-deploy.ts} +106 -76
  409. package/scripts/multichain-deploy/4_ubi-deploy.ts +147 -0
  410. package/scripts/multichain-deploy/5_gov-deploy.ts +147 -0
  411. package/scripts/multichain-deploy/fulldeploy.sh +26 -0
  412. package/scripts/multichain-deploy/helpers.ts +205 -7
  413. package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
  414. package/scripts/staking/stakersGdRewardsCalculation.ts +57 -46
  415. package/scripts/test/localOldDaoDeploy.ts +10 -3
  416. package/scripts/upgradeToV3/v3-fix.ts +120 -0
  417. package/scripts/upgradeToV3/v3-upgrade.ts +219 -0
  418. package/scripts/upgrades/celo-deploy.ts +6 -0
  419. package/scripts/upgrades/identity-upgrade.ts +153 -0
  420. package/scripts/{multichain-deploy → upgrades}/nonubiDistribution-deploy.ts +2 -5
  421. package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
  422. package/test/faucet/Faucet.test.ts +184 -0
  423. package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +4 -3
  424. package/test/governance/ClaimersDistribution.test.ts +58 -6
  425. package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -3
  426. package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
  427. package/test/governance/CompoundVotingMachine.daoscheme.ts +8 -10
  428. package/test/governance/CompoundVotingMachine.delegate.test.ts +4 -5
  429. package/test/governance/CompoundVotingMachine.guardian.test.ts +5 -11
  430. package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
  431. package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
  432. package/test/governance/GReputation.test.ts +78 -32
  433. package/test/governance/GReputation.v2merkle.test.ts +186 -0
  434. package/test/governance/GoodDollarStaking.gd.test.ts +83 -1
  435. package/test/governance/GoodDollarStaking.good.test.ts +2 -1
  436. package/test/governance/GovernanceStaking.test.ts +4 -4
  437. package/test/governance/Reputation.test.ts +2 -1
  438. package/test/governance/StakersDistribution.test.ts +26 -13
  439. package/test/helpers.ts +145 -52
  440. package/test/identity/IdentityV2.test.ts +539 -0
  441. package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +10 -5
  442. package/test/invite/InvitesV2.test.ts +499 -0
  443. package/test/reserve/DistributionHelper.test.ts +2 -1
  444. package/test/reserve/GoodMarketMaker.test.ts +20 -19
  445. package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
  446. package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
  447. package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -2
  448. package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
  449. package/test/reserve/GoodReserveCDai.test.ts +14 -38
  450. package/test/reserve/GoodReserveCDai.uniswap.test.ts +21 -19
  451. package/test/staking/CompoundStakingFactory.test.ts +8 -5
  452. package/test/staking/DifferentStakingTokens.test.ts +3 -2
  453. package/test/staking/DonationsStaking.test.ts +33 -24
  454. package/test/staking/FuseStaking.test.ts +11 -13
  455. package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
  456. package/test/staking/SimpleDAIStaking.test.ts +13 -19
  457. package/test/staking/StakingRewards.test.ts +32 -32
  458. package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
  459. package/test/staking/SwapHelper.test.ts +20 -17
  460. package/test/staking/UsdcAaveStaking.test.ts +36 -33
  461. package/test/token/GoodDollar.test.ts +342 -0
  462. package/test/token/SuperGoodDollar.test.ts +422 -0
  463. package/test/ubi/UBIScheme.e2e.test.ts +6 -5
  464. package/test/ubi/UBIScheme.test.ts +37 -36
  465. package/test/ubi/UBISchemeCycle.test.ts +11 -8
  466. package/test/utils/AdminWallet.test.ts +34 -11
  467. package/test/utils/BuyAndBridgeHelper.test.ts +249 -0
  468. package/test/utils/DAOUpgradeableContract.test.ts +3 -2
  469. package/test/utils/GoodDollarMintBurnWrapper.test.ts +3 -2
  470. package/test/utils/NameService.test.ts +37 -21
  471. package/test/utils/ProtocolUpgrade.test.ts +1 -1
  472. package/test/utils/ProxyFactory.test.ts +12 -10
  473. package/truffle-config.js +13 -4
  474. package/types/AaveMock.ts +24 -15
  475. package/types/AccessControlEnumerableUpgradeable.ts +9 -0
  476. package/types/AccessControlUpgradeable.ts +9 -0
  477. package/types/AdminWallet.ts +149 -110
  478. package/types/BuyAndBridgeHelper.ts +279 -0
  479. package/types/CBATMock.ts +24 -15
  480. package/types/CDAILowWorthMock.ts +24 -15
  481. package/types/CDAIMock.ts +24 -15
  482. package/types/CDAINonMintableMock.ts +24 -15
  483. package/types/CDecimalsMock.ts +24 -15
  484. package/types/CSDTMock.ts +24 -15
  485. package/types/CUSDCMock.ts +24 -15
  486. package/types/ClaimersDistribution.ts +28 -0
  487. package/types/CompoundVotingMachine.ts +28 -0
  488. package/types/ContextUpgradeable.ts +77 -0
  489. package/types/DAIMock.ts +24 -15
  490. package/types/DAOUpgradeableContract.ts +28 -0
  491. package/types/DecimalsMock.ts +24 -15
  492. package/types/DistributionHelper.ts +55 -0
  493. package/types/DistributionHelperTest.ts +55 -0
  494. package/types/DistributionHelperTestHelper.ts +55 -0
  495. package/types/DonationsStaking.ts +28 -0
  496. package/types/EIP712Upgradeable.ts +77 -0
  497. package/types/ERC165Upgradeable.ts +13 -2
  498. package/types/ERC1967UpgradeUpgradeable.ts +9 -0
  499. package/types/ERC20BurnableUpgradeable.ts +24 -15
  500. package/types/ERC20PausableUpgradeable.ts +24 -15
  501. package/types/ERC20Permit.ts +186 -0
  502. package/types/ERC20PermitUpgradeable.ts +531 -0
  503. package/types/ERC20PresetMinterPauserUpgradeable.ts +129 -16
  504. package/types/ERC20Upgradeable.ts +24 -15
  505. package/types/ERC20WithTokenInfo.ts +339 -0
  506. package/types/ERC677.ts +131 -0
  507. package/types/ERC677Receiver.ts +115 -0
  508. package/types/EventsEmitter.ts +88 -0
  509. package/types/ExchangeHelper.ts +28 -0
  510. package/types/Faucet.ts +1107 -0
  511. package/types/FeesFormulaMock.ts +130 -0
  512. package/types/FuseFaucet.ts +9 -0
  513. package/types/FuseStakingV3.ts +75 -208
  514. package/types/GReputation.ts +103 -4
  515. package/types/GoodAaveStaking.ts +24 -15
  516. package/types/GoodAaveStakingV2.ts +24 -15
  517. package/types/GoodCompoundStaking.ts +24 -15
  518. package/types/GoodCompoundStakingTest.ts +24 -15
  519. package/types/GoodCompoundStakingV2.ts +24 -15
  520. package/types/GoodDollar.ts +1733 -0
  521. package/types/GoodDollarMintBurnWrapper.ts +55 -0
  522. package/types/GoodDollarStaking.ts +92 -0
  523. package/types/GoodDollarStakingMock.ts +131 -0
  524. package/types/GoodFundManager.ts +28 -0
  525. package/types/GoodFundManagerTest.ts +28 -0
  526. package/types/GoodMarketMaker.ts +28 -0
  527. package/types/GoodReserveCDai.ts +55 -21
  528. package/types/GovernanceStaking.ts +43 -15
  529. package/types/IERC1271Upgradeable.ts +109 -0
  530. package/types/IERC1820Registry.ts +398 -0
  531. package/types/IERC1822ProxiableUpgradeable.ts +90 -0
  532. package/types/IERC20MetadataUpgradeable.ts +15 -15
  533. package/types/IERC20Permit.ts +175 -0
  534. package/types/IERC20PermitUpgradeable.ts +176 -0
  535. package/types/IERC20Upgradeable.ts +15 -15
  536. package/types/IERC777.ts +586 -0
  537. package/types/IERC777Recipient.ts +130 -0
  538. package/types/IERC777Sender.ts +130 -0
  539. package/types/IFeesFormula.ts +111 -0
  540. package/types/IGoodDollar.ts +304 -7
  541. package/types/IGoodDollarCustom.ts +618 -0
  542. package/types/IGovernanceStaking.ts +98 -0
  543. package/types/IIdentity.ts +106 -0
  544. package/types/IIdentityV2.ts +557 -0
  545. package/types/IStakingUpgrade.ts +110 -0
  546. package/types/ISuperAgreement.ts +151 -0
  547. package/types/ISuperApp.ts +410 -0
  548. package/types/ISuperGoodDollar.ts +3029 -0
  549. package/types/ISuperToken.ts +2326 -0
  550. package/types/ISuperTokenFactory.ts +415 -0
  551. package/types/ISuperfluid.ts +1565 -0
  552. package/types/ISuperfluidGovernance.ts +455 -0
  553. package/types/ISuperfluidToken.ts +951 -0
  554. package/types/IdentityMock.ts +493 -0
  555. package/types/IdentityV2.ts +1743 -0
  556. package/types/Initializable.ts +77 -0
  557. package/types/InvitesV1.ts +9 -0
  558. package/types/InvitesV2.ts +1015 -0
  559. package/types/LendingPoolMock.ts +24 -15
  560. package/types/NameService.ts +28 -0
  561. package/types/OwnableUpgradeable.ts +9 -0
  562. package/types/PausableUpgradeable.ts +9 -0
  563. package/types/PayableMock.ts +92 -0
  564. package/types/ReentrancyGuardUpgradeable.ts +78 -0
  565. package/types/Reputation.ts +28 -0
  566. package/types/SelfApprove.ts +115 -0
  567. package/types/SimpleStaking.ts +24 -15
  568. package/types/SimpleStakingV2.ts +24 -15
  569. package/types/SixteenDecimalsTokenMock.ts +24 -15
  570. package/types/StakersDistribution.ts +28 -0
  571. package/types/SuperGoodDollar.ts +3632 -0
  572. package/types/SuperToken.ts +2434 -0
  573. package/types/SuperfluidToken.ts +951 -0
  574. package/types/TokenInfo.ts +109 -0
  575. package/types/TwentyDecimalsTokenMock.ts +24 -15
  576. package/types/UBIScheme.ts +47 -40
  577. package/types/USDCMock.ts +24 -15
  578. package/types/UUPSProxiable.ts +183 -0
  579. package/types/UUPSProxy.ts +105 -0
  580. package/types/UUPSUpgradeable.ts +28 -0
  581. package/types/UpgradableMock.ts +28 -0
  582. package/types/UpgradableMock2.ts +28 -0
  583. package/types/UpgradableMock3.ts +28 -0
  584. package/types/UpgradableMock4.ts +28 -0
  585. package/types/factories/AaveMock__factory.ts +17 -4
  586. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  587. package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
  588. package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +13 -0
  589. package/types/factories/AccessControlUpgradeable__factory.ts +13 -0
  590. package/types/factories/AdminWallet__factory.ts +93 -47
  591. package/types/factories/BancorFormula__factory.ts +1 -1
  592. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  593. package/types/factories/BaseShareField__factory.ts +1 -1
  594. package/types/factories/BatUSDMockOracle__factory.ts +1 -1
  595. package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
  596. package/types/factories/CBATMock__factory.ts +17 -4
  597. package/types/factories/CDAILowWorthMock__factory.ts +17 -4
  598. package/types/factories/CDAIMock__factory.ts +17 -4
  599. package/types/factories/CDAINonMintableMock__factory.ts +17 -4
  600. package/types/factories/CDecimalsMock__factory.ts +17 -4
  601. package/types/factories/CSDTMock__factory.ts +17 -4
  602. package/types/factories/CUSDCMock__factory.ts +17 -4
  603. package/types/factories/ClaimersDistribution__factory.ts +27 -1
  604. package/types/factories/CompUSDMockOracle__factory.ts +1 -1
  605. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  606. package/types/factories/CompoundVotingMachine__factory.ts +27 -1
  607. package/types/factories/ContextUpgradeable__factory.ts +39 -0
  608. package/types/factories/DAIMock__factory.ts +17 -4
  609. package/types/factories/DAOContract__factory.ts +1 -1
  610. package/types/factories/DAOUpgradeableContract__factory.ts +27 -1
  611. package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
  612. package/types/factories/DecimalsMock__factory.ts +17 -4
  613. package/types/factories/DistributionBridgeMock__factory.ts +1 -1
  614. package/types/factories/DistributionHelperTestHelper__factory.ts +34 -1
  615. package/types/factories/DistributionHelperTest__factory.ts +34 -1
  616. package/types/factories/DistributionHelper__factory.ts +34 -1
  617. package/types/factories/DonationsStaking__factory.ts +27 -1
  618. package/types/factories/EIP712Upgradeable__factory.ts +39 -0
  619. package/types/factories/ERC165Upgradeable__factory.ts +13 -0
  620. package/types/factories/ERC1967Proxy__factory.ts +1 -1
  621. package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +13 -0
  622. package/types/factories/ERC20BurnableUpgradeable__factory.ts +16 -3
  623. package/types/factories/ERC20PausableUpgradeable__factory.ts +16 -3
  624. package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
  625. package/types/factories/ERC20Permit__factory.ts +111 -0
  626. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +99 -5
  627. package/types/factories/ERC20Upgradeable__factory.ts +17 -4
  628. package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
  629. package/types/factories/ERC677Receiver__factory.ts +55 -0
  630. package/types/factories/ERC677__factory.ts +75 -0
  631. package/types/factories/EthUSDMockOracle__factory.ts +1 -1
  632. package/types/factories/EventsEmitter__factory.ts +84 -0
  633. package/types/factories/ExchangeHelper__factory.ts +27 -1
  634. package/types/factories/Faucet__factory.ts +781 -0
  635. package/types/factories/FeesFormulaMock__factory.ts +132 -0
  636. package/types/factories/FuseFaucet__factory.ts +14 -1
  637. package/types/factories/FuseStakingV3__factory.ts +43 -82
  638. package/types/factories/GReputation__factory.ts +77 -2
  639. package/types/factories/GasPriceMockOracle__factory.ts +1 -1
  640. package/types/factories/GoodAaveStakingV2__factory.ts +17 -4
  641. package/types/factories/GoodAaveStaking__factory.ts +17 -4
  642. package/types/factories/GoodCompoundStakingTest__factory.ts +17 -4
  643. package/types/factories/GoodCompoundStakingV2__factory.ts +17 -4
  644. package/types/factories/GoodCompoundStaking__factory.ts +17 -4
  645. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +34 -1
  646. package/types/factories/GoodDollarStakingMock__factory.ts +94 -1
  647. package/types/factories/GoodDollarStaking__factory.ts +70 -1
  648. package/types/factories/GoodDollar__factory.ts +1254 -0
  649. package/types/factories/GoodFundManagerTest__factory.ts +27 -1
  650. package/types/factories/GoodFundManager__factory.ts +27 -1
  651. package/types/factories/GoodMarketMaker__factory.ts +27 -1
  652. package/types/factories/GoodReserveCDai__factory.ts +36 -4
  653. package/types/factories/GovernanceStaking__factory.ts +30 -4
  654. package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
  655. package/types/factories/IERC1820Registry__factory.ts +239 -0
  656. package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  657. package/types/factories/IERC20MetadataUpgradeable__factory.ts +3 -3
  658. package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  659. package/types/factories/IERC20Permit__factory.ts +98 -0
  660. package/types/factories/IERC20Upgradeable__factory.ts +3 -3
  661. package/types/factories/IERC777Recipient__factory.ts +64 -0
  662. package/types/factories/IERC777Sender__factory.ts +61 -0
  663. package/types/factories/IERC777__factory.ts +414 -0
  664. package/types/factories/IFeesFormula__factory.ts +57 -0
  665. package/types/factories/IGoodDollarCustom__factory.ts +370 -0
  666. package/types/factories/IGoodDollar__factory.ts +184 -0
  667. package/types/factories/IGovernanceStaking__factory.ts +39 -0
  668. package/types/factories/IIdentityV2__factory.ts +312 -0
  669. package/types/factories/IIdentity__factory.ts +70 -0
  670. package/types/factories/IStakingUpgrade__factory.ts +50 -0
  671. package/types/factories/ISuperAgreement__factory.ts +78 -0
  672. package/types/factories/ISuperApp__factory.ts +272 -0
  673. package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
  674. package/types/factories/ISuperTokenFactory__factory.ts +271 -0
  675. package/types/factories/ISuperToken__factory.ts +1682 -0
  676. package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
  677. package/types/factories/ISuperfluidToken__factory.ts +697 -0
  678. package/types/factories/ISuperfluid__factory.ts +1143 -0
  679. package/types/factories/IdentityMock__factory.ts +327 -0
  680. package/types/factories/IdentityV2__factory.ts +1129 -0
  681. package/types/factories/IncentiveControllerMock__factory.ts +1 -1
  682. package/types/factories/Initializable__factory.ts +36 -0
  683. package/types/factories/InvitesV1__factory.ts +14 -1
  684. package/types/factories/InvitesV2__factory.ts +688 -0
  685. package/types/factories/LendingPoolMock__factory.ts +17 -4
  686. package/types/factories/Multicall__factory.ts +1 -1
  687. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  688. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  689. package/types/factories/NameService__factory.ts +27 -1
  690. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  691. package/types/factories/OverMintTester__factory.ts +1 -1
  692. package/types/factories/OwnableUpgradeable__factory.ts +13 -0
  693. package/types/factories/PausableUpgradeable__factory.ts +13 -0
  694. package/types/factories/PayableMock__factory.ts +66 -0
  695. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  696. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  697. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  698. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  699. package/types/factories/ProxyFactory1967__factory.ts +1 -1
  700. package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  701. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  702. package/types/factories/Reputation__factory.ts +27 -1
  703. package/types/factories/SelfApprove__factory.ts +46 -0
  704. package/types/factories/SimpleStakingV2__factory.ts +16 -3
  705. package/types/factories/SimpleStaking__factory.ts +16 -3
  706. package/types/factories/SixteenDecimalsTokenMock__factory.ts +17 -4
  707. package/types/factories/StakersDistribution__factory.ts +27 -1
  708. package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
  709. package/types/factories/SuperGoodDollar__factory.ts +2643 -0
  710. package/types/factories/SuperToken__factory.ts +1809 -0
  711. package/types/factories/SuperfluidToken__factory.ts +697 -0
  712. package/types/factories/SwapHelperTest__factory.ts +1 -1
  713. package/types/factories/TokenInfo__factory.ts +62 -0
  714. package/types/factories/TwentyDecimalsTokenMock__factory.ts +17 -4
  715. package/types/factories/UBIScheme__factory.ts +40 -21
  716. package/types/factories/USDCMock__factory.ts +17 -4
  717. package/types/factories/UUPSProxiable__factory.ts +101 -0
  718. package/types/factories/UUPSProxy__factory.ts +80 -0
  719. package/types/factories/UUPSUpgradeable__factory.ts +26 -0
  720. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  721. package/types/factories/UpgradableMock2__factory.ts +27 -1
  722. package/types/factories/UpgradableMock3__factory.ts +27 -1
  723. package/types/factories/UpgradableMock4__factory.ts +27 -1
  724. package/types/factories/UpgradableMock__factory.ts +27 -1
  725. package/types/hardhat.d.ts +432 -0
  726. package/types/index.ts +92 -0
  727. package/yarn.lock +2348 -864
@@ -1,12 +1,10 @@
1
1
  import { default as hre, ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, Contract, Signer } from "ethers";
3
- import { deployMockContract, MockContract } from "ethereum-waffle";
4
4
  import { expect } from "chai";
5
- import { GoodMarketMaker, CERC20, GoodReserveCDai } from "../../types";
6
- import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/dist/src/signer-with-address";
5
+ import { GoodMarketMaker } from "../../types";
7
6
  import { createDAO, increaseTime, advanceBlocks } from "../helpers";
8
7
  import ContributionCalculation from "@gooddollar/goodcontracts/stakingModel/build/contracts/ContributionCalculation.json";
9
- import { parseUnits } from "@ethersproject/units";
10
8
 
11
9
  const BN = ethers.BigNumber;
12
10
  export const NULL_ADDRESS = ethers.constants.AddressZero;
@@ -48,8 +46,8 @@ describe("GoodReserve - staking with cDAI mocks", () => {
48
46
  daiAddress,
49
47
  cdaiAddress,
50
48
  reserve,
51
- runAsAvatarOnly: raao,
52
- } = await createDAO();
49
+ runAsAvatarOnly: raao
50
+ } = await loadFixture(createDAO);
53
51
 
54
52
  dai = await ethers.getContractAt("DAIMock", daiAddress);
55
53
  cDAI = await ethers.getContractAt("cDAIMock", cdaiAddress);
@@ -86,7 +84,6 @@ describe("GoodReserve - staking with cDAI mocks", () => {
86
84
 
87
85
  marketMaker = mm;
88
86
 
89
- const reserveFactory = await ethers.getContractFactory("GoodReserveCDai");
90
87
  console.log("deployed contribution, deploying reserve...", {
91
88
  founder: founder.address
92
89
  });
@@ -117,26 +114,8 @@ describe("GoodReserve - staking with cDAI mocks", () => {
117
114
 
118
115
  it("should set fundManager in the reserve by avatar", async () => {
119
116
  await setDAOAddress("FUND_MANAGER", founder.address);
120
- // const rFactory = await ethers.getContractFactory("GoodReserveCDai");
121
- // const ctrl = await ethers.getContractAt(
122
- // "Controller",
123
- // controller,
124
- // schemeMock
125
- // );
126
- // const encodedCall = rFactory.interface.encodeFunctionData(
127
- // "setFundManager",
128
- // [founder.address]
129
- // );
130
- // await ctrl.genericCall(goodReserve.address, encodedCall, avatar, 0);
131
- // const newFM = await goodReserve.fundManager();
132
- // expect(newFM.toString()).to.be.equal(founder.address);
133
117
  });
134
118
 
135
- // it("should returned true for isActive", async () => {
136
- // const isActive = await goodReserve.isActive();
137
- // expect(isActive.toString()).to.be.equal("true");
138
- // });
139
-
140
119
  it("should returned fixed 0.0001 market price", async () => {
141
120
  const gdPrice = await goodReserve["currentPrice()"]();
142
121
  const cdaiWorthInGD = gdPrice.mul(BN.from("100000000"));
@@ -423,9 +402,7 @@ describe("GoodReserve - staking with cDAI mocks", () => {
423
402
  let error = await exchangeHelper
424
403
  .buy([cDAI.address], amount, 0, 0, NULL_ADDRESS)
425
404
  .catch(e => e);
426
- expect(error.message).to.have.string(
427
- "ERC20: transfer amount exceeds allowance"
428
- );
405
+ expect(error.message).to.have.string("ERC20: insufficient allowance");
429
406
  });
430
407
 
431
408
  it("should not be able to buy gd without enough cDAI funds", async () => {
@@ -906,9 +883,7 @@ describe("GoodReserve - staking with cDAI mocks", () => {
906
883
  let amount = 1e8;
907
884
  await cDAI.approve(goodReserve.address, 0);
908
885
  const tx = await goodReserve.buy(amount, 0, founder.address).catch(e => e);
909
- expect(tx.message).to.have.string(
910
- "ERC20: transfer amount exceeds allowance"
911
- );
886
+ expect(tx.message).to.have.string("ERC20: insufficient allowance");
912
887
  });
913
888
  it("should be able to sell gd directly through reserve", async () => {
914
889
  const cdaiBalanceBeforeSell = await cDAI.balanceOf(founder.address);
@@ -1139,22 +1114,23 @@ describe("GoodReserve - staking with cDAI mocks", () => {
1139
1114
 
1140
1115
  await runAsAvatarOnly(
1141
1116
  goodReserve,
1142
- "setReserveRatioDailyExpansion(uint256,uint256)",
1143
- 1,
1117
+ "setReserveRatioDailyExpansion(uint256,uint256)",
1118
+ 1,
1144
1119
  1e15
1145
1120
  );
1146
1121
 
1147
1122
  let newReserveRatioDailyExpansion =
1148
1123
  await marketMaker.reserveRatioDailyExpansion();
1149
1124
  console.log(newReserveRatioDailyExpansion.toString());
1150
-
1151
- expect(newReserveRatioDailyExpansion).to.not.equal(currentReserveRatioDailyExpansion);
1125
+
1126
+ expect(newReserveRatioDailyExpansion).to.not.equal(
1127
+ currentReserveRatioDailyExpansion
1128
+ );
1152
1129
  expect(newReserveRatioDailyExpansion).to.be.equal(BN.from("1000000000000"));
1153
1130
 
1154
1131
  const encodedCall = goodReserve.interface.encodeFunctionData(
1155
- "setReserveRatioDailyExpansion",
1156
- [BN.from(currentReserveRatioDailyExpansion).div(1e12),
1157
- 1e15]
1132
+ "setReserveRatioDailyExpansion",
1133
+ [BN.from(currentReserveRatioDailyExpansion).div(1e12), 1e15]
1158
1134
  );
1159
1135
  const ctrl = await ethers.getContractAt(
1160
1136
  "Controller",
@@ -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);
@@ -71,10 +71,8 @@ describe("FuseStakingV3", () => {
71
71
  await ethers.getContractFactory("FuseStakingV3")
72
72
  ).deploy()) as FuseStakingV3;
73
73
 
74
- await staking.initialize();
75
- await staking.upgrade0();
76
- await staking.upgrade1(NULL_ADDRESS, ubiMock.address, uniswap.address);
77
- await staking.upgrade2();
74
+ await staking.initialize(uniswap.address, NULL_ADDRESS);
75
+ await staking.setUBIScheme(ubiMock.address);
78
76
  });
79
77
 
80
78
  it("should have owner", async () => {
@@ -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
  });