@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,4 +1,5 @@
1
1
  import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { expect } from "chai";
3
4
  import { UBIScheme } from "../../types";
4
5
  import { createDAO, deployUBI, advanceBlocks, increaseTime } from "../helpers";
@@ -26,7 +27,7 @@ describe("UBIScheme cycle", () => {
26
27
  [root, acct, claimer1, claimer2, claimer3, ...signers] =
27
28
  await ethers.getSigners();
28
29
 
29
- const deployedDAO = await createDAO();
30
+ const deployedDAO = await loadFixture(createDAO);
30
31
  let {
31
32
  nameService: ns,
32
33
  genericCall: gn,
@@ -125,12 +126,13 @@ describe("UBIScheme cycle", () => {
125
126
  expect(
126
127
  await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
127
128
  ).to.be.equal(10); //10 days passed total
129
+
128
130
  let transaction = await (await ubiScheme.connect(claimer1).claim()).wait(); //claims in new ubi cycle
129
- expect(
130
- await goodDollar.balanceOf(claimer1.address).then(_ => _.toNumber())
131
- ).to.be.equal(
132
- 1000 + 58593 //58 amount of new ubicycle
133
- );
131
+ let dailyClaimAmount = (await ubiScheme.dailyCyclePool()).div(1000); //initialy we have by default min 1000 active users
132
+
133
+ expect(await goodDollar.balanceOf(claimer1.address)).to.be.equal(
134
+ dailyClaimAmount.add(1000)
135
+ ); //intial 10 from first claim pool + daily
134
136
  const cycleEvent = transaction.events.find(
135
137
  e => e.event === "UBICycleCalculated"
136
138
  );
@@ -140,7 +142,8 @@ describe("UBIScheme cycle", () => {
140
142
  expect(
141
143
  await ubiScheme.currentDayInCycle().then(_ => _.toNumber())
142
144
  ).to.be.equal(0); //new cycle started
143
- expect(cycleEvent.args.dailyUBIPool).to.be.equal(117187); //pool balance: (1000000 - 62500 given to first claimer) divided by 8 days - only first claimer got 62500 in first cycle
145
+ //intial balance on cycle start 1000000 - 125(one user that claimed) = 999875, divide by cycle length (8) = 124984
146
+ expect(cycleEvent.args.dailyUBIPool).to.be.equal(124984);
144
147
  });
145
148
 
146
149
  it("should calculate cycle early if we can increase current daily pool", async () => {
@@ -177,7 +180,7 @@ describe("UBIScheme cycle", () => {
177
180
  //increase ubi pool balance
178
181
  let encoded = goodDollar.interface.encodeFunctionData("mint", [
179
182
  ubiScheme.address,
180
- 1000
183
+ 100
181
184
  ]);
182
185
  await genericCall(goodDollar.address, encoded);
183
186
  let balance = await goodDollar.balanceOf(ubiScheme.address);
@@ -1,5 +1,6 @@
1
1
  import { expect } from "chai";
2
2
  import { ethers, upgrades, network } from "hardhat";
3
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
4
  import { createDAO } from "../helpers";
4
5
  import { Contract } from "ethers";
5
6
  import { AdminWallet } from "../../types";
@@ -39,16 +40,19 @@ describe("AdminWallet", () => {
39
40
  admin2,
40
41
  toWhitelist
41
42
  ] = signers.slice(10);
42
- let { identity: id } = await createDAO();
43
- identity = await ethers.getContractAt("IIdentity", id);
43
+ let { identity: id, nameService } = await loadFixture(createDAO);
44
+ identity = await ethers.getContractAt("IdentityV2", id);
44
45
 
45
46
  adminWallet = (await upgrades.deployProxy(
46
47
  await ethers.getContractFactory("AdminWallet"),
47
- [[], signers[0].address, id],
48
+ [[], nameService.address, signers[0].address, 1e10],
48
49
  { kind: "uups" }
49
50
  )) as AdminWallet;
50
51
 
51
- identity.addIdentityAdmin(adminWallet.address);
52
+ await identity.grantRole(
53
+ ethers.utils.keccak256(ethers.utils.toUtf8Bytes("identity_admin")),
54
+ adminWallet.address
55
+ );
52
56
 
53
57
  toppingTimes = await adminWallet.toppingTimes();
54
58
  toppingAmount = await adminWallet.toppingAmount();
@@ -87,6 +91,12 @@ describe("AdminWallet", () => {
87
91
  });
88
92
  });
89
93
 
94
+ it("should have owner", async () => {
95
+ expect(
96
+ await adminWallet.hasRole(ethers.constants.HashZero, signers[0].address)
97
+ ).to.eq(true);
98
+ });
99
+
90
100
  it("should not top admin list when empty", async () => {
91
101
  await expect(adminWallet["topAdmins(uint256)"](0)).revertedWith(
92
102
  "Admin list is empty"
@@ -142,7 +152,10 @@ describe("AdminWallet", () => {
142
152
 
143
153
  await adminWallet
144
154
  .connect(admin2)
145
- .whitelist(toWhitelist.address, "did:test" + Math.random());
155
+ ["whitelist(address,string)"](
156
+ toWhitelist.address,
157
+ "did:test" + Math.random()
158
+ );
146
159
  const newBalance = await ethers.provider.getBalance(admin2.address);
147
160
  expect(newBalance).to.be.gte(expectedTopping);
148
161
  });
@@ -154,7 +167,9 @@ describe("AdminWallet", () => {
154
167
 
155
168
  it("should allow admin to whitelist and remove whitelist", async () => {
156
169
  expect(await identity.isWhitelisted(whitelisted.address)).to.false;
157
- await adminWallet.connect(admin).whitelist(whitelisted.address, "did:test");
170
+ await adminWallet
171
+ .connect(admin)
172
+ ["whitelist(address,string)"](whitelisted.address, "did:test");
158
173
 
159
174
  expect(await identity.isWhitelisted(whitelisted.address)).to.true;
160
175
  await adminWallet.connect(admin).removeWhitelist(whitelisted.address);
@@ -164,10 +179,14 @@ describe("AdminWallet", () => {
164
179
  it("should not allow non-admin to whitelist and remove whitelist", async () => {
165
180
  expect(await identity.isWhitelisted(whitelisted.address)).to.false;
166
181
  await expect(
167
- adminWallet.connect(stranger).whitelist(whitelisted.address, "did:test")
182
+ adminWallet
183
+ .connect(stranger)
184
+ ["whitelist(address,string)"](whitelisted.address, "did:test")
168
185
  ).revertedWith("Caller is not admin");
169
186
  expect(await identity.isWhitelisted(whitelisted.address)).to.false;
170
- await adminWallet.connect(admin).whitelist(whitelisted.address, "did:test");
187
+ await adminWallet
188
+ .connect(admin)
189
+ ["whitelist(address,string)"](whitelisted.address, "did:test");
171
190
  expect(await identity.isWhitelisted(whitelisted.address)).to.true;
172
191
  await expect(
173
192
  adminWallet.connect(stranger).removeWhitelist(whitelisted.address)
@@ -245,20 +264,24 @@ describe("AdminWallet", () => {
245
264
 
246
265
  it("should whitelist user", async () => {
247
266
  expect(await identity.isWhitelisted(stranger2.address)).to.false;
248
- await adminWallet.connect(admin2).whitelist(stranger2.address, "did:test3");
267
+ await adminWallet
268
+ .connect(admin2)
269
+ ["whitelist(address,string)"](stranger2.address, "did:test3");
249
270
  expect(await identity.isWhitelisted(stranger2.address)).to.true;
250
271
  });
251
272
 
252
273
  it("should not allow whitelisting with existing did", async () => {
253
274
  await expect(
254
- adminWallet.connect(admin2).whitelist(stranger.address, "did:test")
275
+ adminWallet
276
+ .connect(admin2)
277
+ ["whitelist(address,string)"](stranger.address, "did:test")
255
278
  ).revertedWith("DID already registered");
256
279
  });
257
280
 
258
281
  it("should not allow anyone to upgrade", async () => {
259
282
  await expect(
260
283
  adminWallet.connect(admin2).upgradeTo(adminWallet.address)
261
- ).revertedWith("Ownable: caller is not the owner");
284
+ ).revertedWith("not owner");
262
285
  });
263
286
 
264
287
  it("should allow owner to upgrade", async () => {
@@ -0,0 +1,249 @@
1
+ import { ethers, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
+ import { expect } from "chai";
4
+ import {
5
+ GoodReserveCDai,
6
+ DistributionBridgeMock,
7
+ IGoodDollar
8
+ } from "../../types";
9
+ import { createDAO } from "../helpers";
10
+
11
+ export const NULL_ADDRESS = ethers.constants.AddressZero;
12
+
13
+ describe("BuyAndBridgeHelper ", () => {
14
+ let goodReserve: GoodReserveCDai;
15
+ let goodDollar: IGoodDollar,
16
+ deployedDAO,
17
+ genericCall,
18
+ avatar,
19
+ founder,
20
+ signers,
21
+ setDAOAddress,
22
+ nameService,
23
+ cDai;
24
+
25
+ before(async () => {
26
+ [founder, ...signers] = await ethers.getSigners();
27
+
28
+ deployedDAO = await loadFixture(createDAO);
29
+
30
+ nameService = deployedDAO.nameService;
31
+ genericCall = deployedDAO.genericCall;
32
+ cDai = deployedDAO.cdaiAddress;
33
+ avatar = deployedDAO.avatar;
34
+ setDAOAddress = deployedDAO.setDAOAddress;
35
+ const gd = deployedDAO.gd;
36
+ const identity = deployedDAO.identity;
37
+
38
+ console.log("deployed dao", {
39
+ founder: founder.address,
40
+ gd,
41
+ identity,
42
+ avatar,
43
+ cDai
44
+ });
45
+
46
+ goodDollar = (await ethers.getContractAt("IGoodDollar", gd)) as IGoodDollar;
47
+
48
+ console.log("deployed contribution, deploying reserve...", {
49
+ founder: founder.address
50
+ });
51
+
52
+ goodReserve = deployedDAO.reserve as GoodReserveCDai;
53
+ });
54
+
55
+ const fixture = async () => {
56
+ const df = await ethers.getContractFactory("DistributionHelperTestHelper");
57
+ const rf = await ethers.getContractFactory("DistributionBridgeMock");
58
+
59
+ await setDAOAddress("UNISWAP_ROUTER", signers[0].address);
60
+
61
+ const exchangeHelperFactory = await ethers.getContractFactory(
62
+ "ExchangeHelper"
63
+ );
64
+ const bnbFactory = await ethers.getContractFactory("BuyAndBridgeHelper");
65
+
66
+ const exchangeHelper = await upgrades.deployProxy(
67
+ exchangeHelperFactory,
68
+ [nameService.address],
69
+ { kind: "uups" }
70
+ );
71
+
72
+ await setDAOAddress("EXCHANGE_HELPER", exchangeHelper.address);
73
+
74
+ const bridge = (await rf.deploy()) as DistributionBridgeMock;
75
+
76
+ await setDAOAddress("MULTICHAIN_ROUTER", bridge.address);
77
+ await setDAOAddress("BRIDGE_CONTRACT", bridge.address);
78
+ await exchangeHelper.setAddresses();
79
+ const bnb = await bnbFactory.deploy(exchangeHelper.address);
80
+
81
+ return { exchangeHelper: bnb, bridge };
82
+ };
83
+
84
+ it("should have contracts updated", async () => {
85
+ const { exchangeHelper, bridge } = await loadFixture(fixture);
86
+
87
+ expect(await exchangeHelper.gd()).equal(goodDollar.address);
88
+ expect(await exchangeHelper.fuseBridge()).equal(bridge.address);
89
+ expect(await exchangeHelper.multiChainBridge()).equal(bridge.address);
90
+ expect(await exchangeHelper.anyGoodDollar()).equal(
91
+ ethers.constants.AddressZero
92
+ );
93
+ });
94
+
95
+ it("should buy and bridge to Fuse", async () => {
96
+ const { exchangeHelper, bridge } = await loadFixture(fixture);
97
+ let daiAmount = ethers.utils.parseEther("100");
98
+ const dai = await ethers.getContractAt("DAIMock", deployedDAO.daiAddress);
99
+
100
+ // const cdaiRateStored = await cDAI.exchangeRateStored();
101
+ await dai["mint(uint256)"](daiAmount);
102
+ await dai.approve(exchangeHelper.address, daiAmount);
103
+
104
+ const gdBalanceBefore = await goodDollar.balanceOf(founder.address);
105
+ const daiBalanceBefore = await dai.balanceOf(founder.address);
106
+ const priceBefore = await goodReserve["currentPrice()"]();
107
+ const gdxBalanceBefore = await goodReserve.balanceOf(founder.address);
108
+
109
+ let transaction = await (
110
+ await exchangeHelper.buyAndBridge(
111
+ {
112
+ buyPath: [dai.address],
113
+ tokenAmount: daiAmount,
114
+ minReturn: 0,
115
+ minDAIAmount: 0,
116
+ targetAddress: NULL_ADDRESS
117
+ },
118
+ 122
119
+ )
120
+ ).wait();
121
+ const gdBalanceAfter = await goodDollar.balanceOf(founder.address);
122
+ const daiBalanceAfter = await dai.balanceOf(founder.address);
123
+ const helperBalanceAfter = await dai.balanceOf(exchangeHelper.address);
124
+ const priceAfter = await goodReserve["currentPrice()"]();
125
+ const gdxBalanceAfter = await goodReserve.balanceOf(founder.address);
126
+ const bridgeBalanceAfter = await goodDollar.balanceOf(bridge.address);
127
+ const helperGdBalanceAfter = await goodDollar.balanceOf(
128
+ exchangeHelper.address
129
+ );
130
+
131
+ expect(helperGdBalanceAfter).eq(0); //G$s should be at the fuse bridge
132
+ expect(helperBalanceAfter).equal(0);
133
+ expect(bridgeBalanceAfter).gt(0); //G$s should be at the fuse bridge
134
+
135
+ expect(gdBalanceAfter.eq(gdBalanceBefore)).to.be.true; //should not receive any G$s
136
+ expect(gdxBalanceAfter.gt(gdxBalanceBefore)).to.be.true; //should receive the GDX
137
+ expect(daiBalanceBefore.gt(daiBalanceAfter)).to.be.true;
138
+ expect(priceAfter.toString()).to.be.equal(priceBefore.toString());
139
+
140
+ const events = await bridge.queryFilter(bridge.filters.OnToken());
141
+ expect(events[0].args.sender).to.equal(exchangeHelper.address);
142
+ expect(events[0].args.amount).gt(0);
143
+ expect(events[0].args.data).to.equal(founder.address.toLowerCase());
144
+ });
145
+
146
+ it("should buy and bridge to Celo", async () => {
147
+ const { exchangeHelper, bridge } = await loadFixture(fixture);
148
+ let daiAmount = ethers.utils.parseEther("100");
149
+ const dai = await ethers.getContractAt("DAIMock", deployedDAO.daiAddress);
150
+
151
+ // const cdaiRateStored = await cDAI.exchangeRateStored();
152
+ await dai["mint(uint256)"](daiAmount);
153
+ await dai.approve(exchangeHelper.address, daiAmount);
154
+
155
+ const gdBalanceBefore = await goodDollar.balanceOf(founder.address);
156
+ const daiBalanceBefore = await dai.balanceOf(founder.address);
157
+ const priceBefore = await goodReserve["currentPrice()"]();
158
+ const gdxBalanceBefore = await goodReserve.balanceOf(founder.address);
159
+
160
+ let transaction = await (
161
+ await exchangeHelper.buyAndBridge(
162
+ {
163
+ buyPath: [dai.address],
164
+ tokenAmount: daiAmount,
165
+ minReturn: 0,
166
+ minDAIAmount: 0,
167
+ targetAddress: NULL_ADDRESS
168
+ },
169
+ 42220
170
+ )
171
+ ).wait();
172
+ const gdBalanceAfter = await goodDollar.balanceOf(founder.address);
173
+ const daiBalanceAfter = await dai.balanceOf(founder.address);
174
+ const helperBalanceAfter = await dai.balanceOf(exchangeHelper.address);
175
+
176
+ const priceAfter = await goodReserve["currentPrice()"]();
177
+ const gdxBalanceAfter = await goodReserve.balanceOf(founder.address);
178
+ const bridgeBalanceAfter = await goodDollar.balanceOf(bridge.address);
179
+ const helperGdBalanceAfter = await goodDollar.balanceOf(
180
+ exchangeHelper.address
181
+ );
182
+
183
+ expect(helperGdBalanceAfter).gt(0); //in case of the mock it doesnt call transferFrom, so bought G$s stay in helper when testing multichain
184
+ expect(helperBalanceAfter).equal(0);
185
+ expect(bridgeBalanceAfter).eq(0); //in case of multichain the G$s stay with the helper
186
+
187
+ expect(gdBalanceAfter.eq(gdBalanceBefore)).to.be.true; //should not receive any G$s
188
+ expect(gdxBalanceAfter.gt(gdxBalanceBefore)).to.be.true; //should receive the GDX
189
+ expect(daiBalanceBefore.gt(daiBalanceAfter)).to.be.true;
190
+ expect(priceAfter.toString()).to.be.equal(priceBefore.toString());
191
+
192
+ const events = await bridge.queryFilter(bridge.filters.AnySwap());
193
+ expect(events[0].args.token).to.equal(await exchangeHelper.anyGoodDollar());
194
+ expect(events[0].args.recipient).to.equal(founder.address);
195
+ expect(events[0].args.amount).gt(0);
196
+ expect(events[0].args.chainId).to.equal(42220);
197
+ });
198
+
199
+ it("should fail to buy with unsupported target chain", async () => {
200
+ const { exchangeHelper, bridge } = await loadFixture(fixture);
201
+ expect(await exchangeHelper.CELO()).equal(42220);
202
+ expect(await exchangeHelper.FUSE()).equal(122);
203
+ let daiAmount = ethers.utils.parseEther("100");
204
+ const dai = await ethers.getContractAt("DAIMock", deployedDAO.daiAddress);
205
+
206
+ // const cdaiRateStored = await cDAI.exchangeRateStored();
207
+ await dai["mint(uint256)"](daiAmount);
208
+ await dai.approve(exchangeHelper.address, daiAmount);
209
+
210
+ await expect(
211
+ exchangeHelper.buyAndBridge(
212
+ {
213
+ buyPath: [dai.address],
214
+ tokenAmount: daiAmount,
215
+ minReturn: 0,
216
+ minDAIAmount: 0,
217
+ targetAddress: NULL_ADDRESS
218
+ },
219
+ 12
220
+ )
221
+ ).revertedWith("chain");
222
+ });
223
+
224
+ it("should fail only in tests on uniswap call when buying with ether", async () => {
225
+ const { exchangeHelper, bridge } = await loadFixture(fixture);
226
+ expect(await exchangeHelper.CELO()).equal(42220);
227
+ expect(await exchangeHelper.FUSE()).equal(122);
228
+ let daiAmount = ethers.utils.parseEther("100");
229
+ const dai = await ethers.getContractAt("DAIMock", deployedDAO.daiAddress);
230
+
231
+ // const cdaiRateStored = await cDAI.exchangeRateStored();
232
+ await dai["mint(uint256)"](daiAmount);
233
+ await dai.approve(exchangeHelper.address, daiAmount);
234
+
235
+ await expect(
236
+ exchangeHelper.buyAndBridge(
237
+ {
238
+ buyPath: [NULL_ADDRESS, dai.address],
239
+ tokenAmount: daiAmount,
240
+ minReturn: 0,
241
+ minDAIAmount: 0,
242
+ targetAddress: NULL_ADDRESS
243
+ },
244
+ 122,
245
+ { value: daiAmount }
246
+ )
247
+ ).revertedWith("Transaction reverted: function");
248
+ });
249
+ });
@@ -1,5 +1,6 @@
1
1
  import { expect } from "chai";
2
2
  import { ethers, upgrades } from "hardhat";
3
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
4
  import { createDAO } from "../helpers";
4
5
 
5
6
  describe("DAOUpgradeableContract", () => {
@@ -12,7 +13,7 @@ describe("DAOUpgradeableContract", () => {
12
13
  avatar: av,
13
14
  genericCall: gc,
14
15
  nameService: ns
15
- } = await createDAO();
16
+ } = await createDAO(); //await loadFixture(createDAO) doesnt work here when other tests use deployMockContract (FuseStaking)
16
17
 
17
18
  avatar = av;
18
19
  genericCall = gc;
@@ -24,7 +25,7 @@ describe("DAOUpgradeableContract", () => {
24
25
  const upgradableMockFactory = await ethers.getContractFactory(
25
26
  "UpgradableMock3"
26
27
  );
27
-
28
+
28
29
  const daoUpgradableProxy = await upgrades.deployProxy(
29
30
  upgradableMockFactory,
30
31
  [nameService.address],
@@ -1,4 +1,5 @@
1
1
  import { ethers, waffle, upgrades } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { expect } from "chai";
3
4
  import {
4
5
  GoodReserveCDai,
@@ -59,7 +60,7 @@ describe("GoodDollarMintBurnWrapper", () => {
59
60
  cdaiAddress,
60
61
  genericCall: gc,
61
62
  nameService: ns
62
- } = await createDAO();
63
+ } = await loadFixture(createDAO);
63
64
 
64
65
  nameService = ns;
65
66
  genericCall = gc;
@@ -224,7 +225,7 @@ describe("GoodDollarMintBurnWrapper", () => {
224
225
  it("should have erc20 token info", async () => {
225
226
  const { wrapper } = await waffle.loadFixture(fixture);
226
227
 
227
- expect(await wrapper.decimals()).to.equal(2);
228
+ expect(await wrapper.decimals()).to.equal(await goodDollar.decimals());
228
229
  expect(await wrapper.name()).to.equal("GoodDollar");
229
230
  expect(await wrapper.symbol()).to.equal("G$");
230
231
  });
@@ -1,5 +1,6 @@
1
1
  import { expect } from "chai";
2
- import { ethers, upgrades, network } from 'hardhat';
2
+ import { ethers, upgrades, network } from "hardhat";
3
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
3
4
  import { createDAO } from "../helpers";
4
5
  import { getImplementationAddress } from "@openzeppelin/upgrades-core";
5
6
 
@@ -8,7 +9,13 @@ export const NULL_ADDRESS = ethers.constants.AddressZero;
8
9
  export const BLOCK_INTERVAL = 1;
9
10
 
10
11
  describe("NameService - Setup and functionalities", () => {
11
- let nameService, dai, avatar, controller, schemeMock, signers, genericCall,
12
+ let nameService,
13
+ dai,
14
+ avatar,
15
+ controller,
16
+ schemeMock,
17
+ signers,
18
+ genericCall,
12
19
  runAsAvatarOnly;
13
20
 
14
21
  before(async () => {
@@ -29,8 +36,8 @@ describe("NameService - Setup and functionalities", () => {
29
36
  setSchemes,
30
37
  marketMaker: mm,
31
38
  genericCall: gc,
32
- runAsAvatarOnly: raao,
33
- } = await createDAO();
39
+ runAsAvatarOnly: raao
40
+ } = await loadFixture(createDAO);
34
41
 
35
42
  controller = ctrl;
36
43
  avatar = av;
@@ -60,7 +67,7 @@ describe("NameService - Setup and functionalities", () => {
60
67
  it("should set multiple addresses by avatar", async () => {
61
68
  await runAsAvatarOnly(
62
69
  nameService,
63
- "setAddresses(bytes32[],address[])",
70
+ "setAddresses(bytes32[],address[])",
64
71
  [
65
72
  ethers.utils.keccak256(ethers.utils.toUtf8Bytes("DAI")),
66
73
  ethers.utils.keccak256(ethers.utils.toUtf8Bytes("cDAI"))
@@ -79,32 +86,41 @@ describe("NameService - Setup and functionalities", () => {
79
86
  await ethers.getContractFactory("NameService"),
80
87
  [
81
88
  controller,
82
- [
83
- "CONTROLLER",
84
- ].map(_ => ethers.utils.keccak256(ethers.utils.toUtf8Bytes(_))),
85
- [
86
- controller
87
- ]
89
+ ["CONTROLLER"].map(_ =>
90
+ ethers.utils.keccak256(ethers.utils.toUtf8Bytes(_))
91
+ ),
92
+ [controller]
88
93
  ],
89
94
  {
90
95
  kind: "uups"
91
96
  }
92
97
  );
93
- const implementationBeforeUpgrade =
94
- await getImplementationAddress(network.provider, nameServiceProxy.address);
95
- const newNameServiceLogic = await (await ethers.getContractFactory("NameService")).deploy();
98
+ const implementationBeforeUpgrade = await getImplementationAddress(
99
+ network.provider,
100
+ nameServiceProxy.address
101
+ );
102
+ const newNameServiceLogic = await (
103
+ await ethers.getContractFactory("NameService")
104
+ ).deploy();
96
105
  const encodedData = nameServiceProxy.interface.encodeFunctionData(
97
106
  "upgradeTo",
98
107
  [newNameServiceLogic.address]
99
108
  );
100
109
  await (await genericCall(nameServiceProxy.address, encodedData)).wait();
101
- const implementationAfterUpgrade =
102
- await getImplementationAddress(network.provider, nameServiceProxy.address);
103
- expect(implementationBeforeUpgrade).to.not.equal(implementationAfterUpgrade);
110
+ const implementationAfterUpgrade = await getImplementationAddress(
111
+ network.provider,
112
+ nameServiceProxy.address
113
+ );
114
+ expect(implementationBeforeUpgrade).to.not.equal(
115
+ implementationAfterUpgrade
116
+ );
104
117
  expect(implementationAfterUpgrade).to.equal(newNameServiceLogic.address);
105
118
 
106
- const newNameServiceLogic2 = await (await ethers.getContractFactory("NameService")).deploy();
107
- await expect(nameServiceProxy.upgradeTo(newNameServiceLogic2.address)).
108
- to.be.revertedWith("only avatar can call this method");
109
- });
119
+ const newNameServiceLogic2 = await (
120
+ await ethers.getContractFactory("NameService")
121
+ ).deploy();
122
+ await expect(
123
+ nameServiceProxy.upgradeTo(newNameServiceLogic2.address)
124
+ ).to.be.revertedWith("only avatar can call this method");
125
+ });
110
126
  });
@@ -1,6 +1,6 @@
1
1
  import { default as hre, ethers, upgrades, network } 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
5
  import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/dist/src/signer-with-address";
6
6
  import { deploy } from "../../scripts/test/localOldDaoDeploy";
@@ -1,7 +1,7 @@
1
1
  import hre, { ethers } from "hardhat";
2
+ import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
2
3
  import { BigNumber, Contract } from "ethers";
3
4
  import { expect } from "chai";
4
- import { deployMockContract, MockContract } from "ethereum-waffle";
5
5
 
6
6
  import { ProxyFactory1967, ERC1967Proxy } from "../../types";
7
7
  const BN = ethers.BigNumber;
@@ -18,20 +18,22 @@ describe("proxyfactory", () => {
18
18
  factory = (await f.deploy()) as unknown as ProxyFactory1967;
19
19
  });
20
20
 
21
- it("[@skip-on-coverage] [hardhat BUG] should deploy with linked library", async () => {
21
+ it("should deploy with linked library", async () => {
22
22
  const uf = await ethers.getContractFactory("UniswapV2SwapHelper");
23
23
  const uniswap = await uf.deploy();
24
24
  const Contract = await ethers.getContractFactory("CompoundStakingFactory", {
25
25
  libraries: { UniswapV2SwapHelper: uniswap.address }
26
26
  });
27
- expect(
28
- await factory.deployCode(308932532, Contract.bytecode).catch(e => e)
29
- ).to.be.an("error");
30
- // const tx = await (
31
- // await factory.deployCode(308932532, Contract.bytecode)
32
- // ).wait();
33
- // const event = tx.events.find(_ => _.event === "ContractDeployed");
34
- // expect(event).not.empty;
27
+ // expect(
28
+ // await factory.deployCode(308932532, Contract.bytecode).catch(e => e)
29
+ // ).to.be.an("error");
30
+ const tx = await (
31
+ await factory.deployCode(308932532, Contract.bytecode, {
32
+ gasLimit: 30000000 //required for hardhat, reverts without putting a specific gaslimit
33
+ })
34
+ ).wait();
35
+ const event = tx.events.find(_ => _.event === "ContractCreated");
36
+ expect(event).not.empty;
35
37
  });
36
38
 
37
39
  it("should deploy non upgradable code", async () => {
package/truffle-config.js CHANGED
@@ -18,7 +18,7 @@
18
18
  *
19
19
  */
20
20
 
21
- // const HDWalletProvider = require('@truffle/hdwallet-provider');
21
+ const Web3 = require("web3");
22
22
  // const infuraKey = "fj4jll3k.....";
23
23
  //
24
24
  // const fs = require('fs');
@@ -98,6 +98,14 @@ module.exports = {
98
98
  confirmations: 1, // # of confs to wait between deployments. (default: 0)
99
99
  timeoutBlocks: 20, // # of blocks before a deployment times out (minimum/default: 50)
100
100
  skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
101
+ },
102
+ celo: {
103
+ provider: () => new Web3.providers.HttpProvider(`https://forno.celo.org`),
104
+ network_id: 42220, // Ropsten's id
105
+ gas: 150000, // Ropsten has a lower block limit than mainnet
106
+ confirmations: 1, // # of confs to wait between deployments. (default: 0)
107
+ timeoutBlocks: 20, // # of blocks before a deployment times out (minimum/default: 50)
108
+ skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
101
109
  }
102
110
 
103
111
  // Useful for private networks
@@ -116,7 +124,7 @@ module.exports = {
116
124
  // Configure your compilers
117
125
  compilers: {
118
126
  solc: {
119
- version: "0.8.8", // Fetch exact version from solc-bin (default: truffle's version)
127
+ version: "0.8.16", // Fetch exact version from solc-bin (default: truffle's version)
120
128
  settings: {
121
129
  // See the solidity docs for advice about optimization and evmVersion
122
130
  optimizer: {
@@ -137,7 +145,8 @@ module.exports = {
137
145
  enabled: false
138
146
  },
139
147
  api_keys: {
140
- etherscan: process.env.ETHERSCAN_KEY
148
+ etherscan: process.env.ETHERSCAN_KEY,
149
+ celoscan: process.env.CELOSCAN_KEY
141
150
  },
142
- plugins: ["truffle-source-verify"]
151
+ plugins: ["truffle-plugin-verify"]
143
152
  };