@gooddollar/goodprotocol 2.0.32 → 2.0.34-beta.0

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 (566) hide show
  1. package/artifacts/abis/BuyFromReserveHelper.min.json +1 -0
  2. package/artifacts/abis/Faucet.min.json +1 -1
  3. package/artifacts/abis/GoodDollar2.min.json +1 -0
  4. package/artifacts/abis/ISuperToken.min.json +1 -1
  5. package/artifacts/abis/IdentityV3.min.json +1 -0
  6. package/artifacts/abis/SuperGoodDollar.min.json +1 -1
  7. package/artifacts/abis/SuperToken.min.json +1 -1
  8. package/artifacts/abis/SuperfluidFaucet.min.json +1 -1
  9. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  10. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  11. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  12. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  13. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  14. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  15. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  16. package/artifacts/contracts/IQuoter.sol/IQuoterV2.dbg.json +4 -0
  17. package/artifacts/contracts/IQuoter.sol/IQuoterV2.json +211 -0
  18. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  40. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  43. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  44. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  45. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  46. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  47. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  48. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  49. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  50. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +57 -2
  51. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  52. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  53. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  54. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +2 -2
  55. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  56. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.json +46 -28
  57. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  58. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  59. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  60. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  61. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  62. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  63. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  64. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
  65. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  66. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  67. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  68. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  69. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  70. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  71. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  72. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  73. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  74. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  75. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  76. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
  77. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +4 -0
  78. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +1089 -0
  79. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  80. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +2 -2
  81. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  82. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  83. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  84. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +2 -2
  85. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  86. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.json +2 -2
  87. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +2 -2
  89. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  91. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  93. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.json +2 -2
  95. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.json +2 -2
  97. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  99. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +2 -2
  101. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  103. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  104. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +2 -2
  105. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  106. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  107. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +2 -2
  109. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -2
  111. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  113. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +2 -2
  115. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  116. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
  117. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  118. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  119. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  120. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
  121. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  123. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
  125. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  127. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  128. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +2 -2
  129. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  130. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  131. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  132. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  133. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  134. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  135. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  136. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  137. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  138. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +2 -2
  139. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  140. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +2 -2
  141. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  142. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  143. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  144. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  145. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  146. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +2 -2
  147. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  148. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  149. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  150. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  151. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  152. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  153. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  154. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  155. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  156. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +2 -2
  157. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  158. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +2 -2
  159. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  160. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +2 -2
  161. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  162. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +2 -2
  163. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  164. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +2 -2
  165. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  166. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +2 -2
  167. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  168. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +2 -2
  169. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  170. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +2 -2
  171. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  172. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.json +2 -2
  173. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  174. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
  175. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  176. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  177. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  178. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  179. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  180. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  181. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
  182. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  183. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  184. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  185. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  186. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  187. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  188. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  189. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  190. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  191. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  192. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  193. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  194. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  195. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  196. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  197. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  198. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  199. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  200. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  201. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  202. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  203. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  204. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  205. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  206. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  207. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  208. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  209. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  210. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  211. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
  212. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  213. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  214. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +2 -2
  215. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  216. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  217. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  218. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +2 -2
  219. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +4 -0
  220. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.json +1206 -0
  221. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  222. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  223. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.json +2 -2
  224. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  225. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  226. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  227. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  228. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  229. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.json +0 -52
  230. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  231. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2 -74
  232. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  233. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +2 -54
  234. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  235. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  236. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  237. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  238. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
  239. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  240. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
  241. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  242. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  243. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  244. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +2 -7
  245. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  246. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  247. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  248. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +2 -2
  249. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  250. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  251. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  252. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  253. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  254. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.json +2 -2
  255. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  256. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
  257. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +4 -0
  258. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.json +476 -0
  259. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  260. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.json +2 -2
  261. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  262. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.json +2 -2
  263. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  264. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.json +2 -2
  265. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  266. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  267. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  268. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  269. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  270. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  271. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  272. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  273. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  274. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.json +2 -2
  275. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  276. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.json +2 -2
  277. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  278. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  279. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.json +2 -2
  280. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  281. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.json +2 -2
  282. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  283. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.json +2 -2
  284. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  285. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.json +2 -2
  286. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  287. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -2
  288. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  289. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  290. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  291. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  292. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  293. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.json +2 -2
  294. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
  295. package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.json +2 -2
  296. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  297. package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
  298. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  299. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  300. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  301. package/artifacts/contracts/utils/NameService.sol/NameService.json +2 -2
  302. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  303. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.json +2 -2
  304. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  305. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.json +2 -2
  306. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  307. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  308. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.json +2 -2
  309. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  310. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  311. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  312. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  313. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  314. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  315. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  316. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  317. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  318. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  319. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  320. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  321. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  322. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  323. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  324. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
  325. package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.json +2 -2
  326. package/contracts/IQuoter.sol +108 -0
  327. package/contracts/fuseFaucet/Faucet.sol +49 -37
  328. package/contracts/fuseFaucet/SuperfluidFacuet.sol +29 -8
  329. package/contracts/identity/IdentityV3.sol +534 -0
  330. package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +8 -9
  331. package/contracts/token/GoodDollar.sol +1 -1
  332. package/contracts/token/GoodDollar2.sol +13 -0
  333. package/contracts/token/superfluid/ISuperToken.sol +0 -19
  334. package/contracts/token/superfluid/SuperGoodDollar.sol +2 -21
  335. package/contracts/token/superfluid/SuperToken.sol +2 -2
  336. package/contracts/token/superfluid/SuperfluidToken.sol +66 -67
  337. package/contracts/ubi/UBISchemeV2.sol +12 -18
  338. package/contracts/utils/BuyFromReserveHelper.sol +129 -0
  339. package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
  340. package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +177 -256
  341. package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
  342. package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  343. package/dist/test-sdk/deploySuperGoodDollar.d.ts +1 -1
  344. package/dist/test-sdk/deploySuperGoodDollar.js +4 -8
  345. package/dist/test-sdk/index.js +1 -5
  346. package/hardhat.config.ts +37 -30
  347. package/package.json +3 -2
  348. package/releases/deploy-settings.json +5 -1
  349. package/releases/deployment.json +27 -1
  350. package/releases/olddao.json +1 -1
  351. package/scripts/analytics/activeGDStakers.ts +188 -0
  352. package/scripts/fv.ts +19 -1
  353. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +28 -5
  354. package/scripts/multichain-deploy/1_basicdao-deploy.ts +111 -73
  355. package/scripts/multichain-deploy/2_helpers-deploy.ts +13 -8
  356. package/scripts/multichain-deploy/4_ubi-deploy.ts +17 -19
  357. package/scripts/multichain-deploy/5_gov-deploy.ts +58 -26
  358. package/scripts/multichain-deploy/flattened/Avatar.sol +913 -0
  359. package/scripts/multichain-deploy/flattened/Controller.sol +1891 -0
  360. package/scripts/multichain-deploy/flattened/FeeFormula.sol +1290 -0
  361. package/scripts/multichain-deploy/fulldeploy.sh +17 -17
  362. package/scripts/multichain-deploy/helpers.ts +203 -70
  363. package/scripts/multichain-deploy/verify.ts +41 -0
  364. package/test/governance/ClaimersDistribution.test.ts +1 -1
  365. package/test/helpers.ts +59 -46
  366. package/test/identity/IdentityV2.test.ts +4 -1
  367. package/test/identity/IdentityV3.test.ts +449 -0
  368. package/test/invite/InvitesV2.test.ts +1 -1
  369. package/test/token/GoodDollar.test.ts +1 -1
  370. package/test/token/SuperGoodDollar.nohost.test.ts +383 -0
  371. package/test/token/SuperGoodDollar.test.ts +2 -10
  372. package/test/ubi/UBIScheme.e2e.test.ts +5 -5
  373. package/test/ubi/UBISchemeCycle.test.ts +69 -22
  374. package/test/ubi/UBISchemeV2.test.ts +636 -0
  375. package/test/utils/AdminWallet.test.ts +1 -1
  376. package/test/utils/ProxyFactory.test.ts +4 -1
  377. package/types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +108 -0
  378. package/types/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
  379. package/types/contracts/IQuoter.sol/IQuoterV2.ts +297 -0
  380. package/types/contracts/IQuoter.sol/index.ts +4 -0
  381. package/types/contracts/Interfaces.sol/AToken.ts +81 -0
  382. package/types/contracts/Interfaces.sol/IAaveIncentivesControllerV3.ts +156 -0
  383. package/types/contracts/Interfaces.sol/ILendingPoolV3.ts +254 -0
  384. package/types/contracts/fuseFaucet/Faucet.ts +109 -11
  385. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor.ts +648 -0
  386. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable.ts +843 -0
  387. package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
  388. package/types/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.ts +79 -41
  389. package/types/contracts/identity/IdentityV3.ts +1899 -0
  390. package/types/contracts/identity/index.ts +1 -0
  391. package/types/contracts/index.ts +2 -0
  392. package/types/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper.ts +1252 -0
  393. package/types/contracts/reserve/GoodReserveADai.ts +2212 -0
  394. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2.ts +1808 -0
  395. package/types/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
  396. package/types/contracts/token/GoodDollar18.ts +1871 -0
  397. package/types/contracts/token/GoodDollar2.ts +1871 -0
  398. package/types/contracts/token/index.ts +1 -0
  399. package/types/contracts/token/superfluid/ISuperToken.ts +0 -84
  400. package/types/contracts/token/superfluid/SuperGoodDollar.ts +12 -126
  401. package/types/contracts/token/superfluid/SuperToken.ts +0 -84
  402. package/types/contracts/ubi/UBISchemeV2.ts +3 -14
  403. package/types/contracts/utils/BuyFromReserveHelper.ts +699 -0
  404. package/types/contracts/utils/BuyGDClone.sol/IQuoterV2.ts +184 -0
  405. package/types/contracts/utils/BuyGDClone.sol/ISwapRouter.ts +306 -0
  406. package/types/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677.ts +108 -0
  407. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange.ts +81 -0
  408. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts +161 -0
  409. package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
  410. package/types/contracts/utils/ReserveRestore.sol/MentoExchange.ts +81 -0
  411. package/types/contracts/utils/ReserveRestore.sol/ReserveRestore.ts +112 -0
  412. package/types/contracts/utils/ReserveRestore.sol/index.ts +5 -0
  413. package/types/contracts/utils/index.ts +1 -0
  414. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +146 -0
  415. package/types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
  416. package/types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +1 -1
  417. package/types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.ts +1 -1
  418. package/types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
  419. package/types/factories/@superfluid-finance/ethereum-contracts/contracts/libs/EventsEmitter__factory.ts +1 -1
  420. package/types/factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/ConstantInflowNFT__factory.ts +1 -1
  421. package/types/factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/ConstantOutflowNFT__factory.ts +1 -1
  422. package/types/factories/contracts/IQuoter.sol/IQuoterV2__factory.ts +226 -0
  423. package/types/factories/contracts/IQuoter.sol/index.ts +4 -0
  424. package/types/factories/contracts/Interfaces.sol/AToken__factory.ts +36 -0
  425. package/types/factories/contracts/Interfaces.sol/IAaveIncentivesControllerV3__factory.ts +88 -0
  426. package/types/factories/contracts/Interfaces.sol/ILendingPoolV3__factory.ts +186 -0
  427. package/types/factories/contracts/fuseFaucet/Faucet__factory.ts +56 -1
  428. package/types/factories/contracts/fuseFaucet/FuseFaucetV2__factory.ts +1 -1
  429. package/types/factories/contracts/fuseFaucet/FuseFaucet__factory.ts +1 -1
  430. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable__factory.ts +572 -0
  431. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor__factory.ts +482 -0
  432. package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
  433. package/types/factories/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet__factory.ts +45 -27
  434. package/types/factories/contracts/governance/ClaimersDistribution__factory.ts +1 -1
  435. package/types/factories/contracts/governance/CompoundVotingMachine__factory.ts +1 -1
  436. package/types/factories/contracts/governance/GReputation__factory.ts +1 -1
  437. package/types/factories/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking__factory.ts +1 -1
  438. package/types/factories/contracts/governance/GovernanceStaking__factory.ts +1 -1
  439. package/types/factories/contracts/governance/Reputation__factory.ts +1 -1
  440. package/types/factories/contracts/governance/StakersDistribution__factory.ts +1 -1
  441. package/types/factories/contracts/identity/IdentityV2__factory.ts +1 -1
  442. package/types/factories/contracts/identity/IdentityV3__factory.ts +1140 -0
  443. package/types/factories/contracts/identity/index.ts +1 -0
  444. package/types/factories/contracts/index.ts +1 -0
  445. package/types/factories/contracts/invite/InvitesFuseV2__factory.ts +1 -1
  446. package/types/factories/contracts/invite/InvitesV1__factory.ts +1 -1
  447. package/types/factories/contracts/invite/InvitesV2__factory.ts +1 -1
  448. package/types/factories/contracts/invite/OneTimeReward__factory.ts +1 -1
  449. package/types/factories/contracts/mocks/AaveMock__factory.ts +1 -1
  450. package/types/factories/contracts/mocks/AaveUSDMockOracle__factory.ts +1 -1
  451. package/types/factories/contracts/mocks/BatUSDMockOracle__factory.ts +1 -1
  452. package/types/factories/contracts/mocks/CBATMock__factory.ts +1 -1
  453. package/types/factories/contracts/mocks/CDAILowWorthMock__factory.ts +1 -1
  454. package/types/factories/contracts/mocks/CDAIMock__factory.ts +1 -1
  455. package/types/factories/contracts/mocks/CDAINonMintableMock__factory.ts +1 -1
  456. package/types/factories/contracts/mocks/CDecimalsMock__factory.ts +1 -1
  457. package/types/factories/contracts/mocks/CSDTMock__factory.ts +1 -1
  458. package/types/factories/contracts/mocks/CUSDCMock__factory.ts +1 -1
  459. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper__factory.ts +1 -1
  460. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest__factory.ts +1 -1
  461. package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +929 -0
  462. package/types/factories/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle__factory.ts +1 -1
  463. package/types/factories/contracts/mocks/DAIMock__factory.ts +1 -1
  464. package/types/factories/contracts/mocks/DaiEthPriceMockOracle__factory.ts +1 -1
  465. package/types/factories/contracts/mocks/DecimalsMock__factory.ts +1 -1
  466. package/types/factories/contracts/mocks/DistributionBridgeMock__factory.ts +1 -1
  467. package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +1 -1
  468. package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest__factory.ts +1 -1
  469. package/types/factories/contracts/mocks/EthUSDMockOracle__factory.ts +1 -1
  470. package/types/factories/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock__factory.ts +1 -1
  471. package/types/factories/contracts/mocks/GasPriceMockOracle__factory.ts +1 -1
  472. package/types/factories/contracts/mocks/GoodCompoundStakingTest__factory.ts +1 -1
  473. package/types/factories/contracts/mocks/GoodDollarStakingMock__factory.ts +1 -1
  474. package/types/factories/contracts/mocks/GoodFundManagerTest__factory.ts +1 -1
  475. package/types/factories/contracts/mocks/IdentityMock__factory.ts +1 -1
  476. package/types/factories/contracts/mocks/IncentiveControllerMock__factory.ts +1 -1
  477. package/types/factories/contracts/mocks/LendingPoolMock__factory.ts +1 -1
  478. package/types/factories/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock__factory.ts +1 -1
  479. package/types/factories/contracts/mocks/OverMintTester.sol/OverMintTester__factory.ts +1 -1
  480. package/types/factories/contracts/mocks/OverMintTesterRegularStake__factory.ts +1 -1
  481. package/types/factories/contracts/mocks/PayableMock__factory.ts +1 -1
  482. package/types/factories/contracts/mocks/SixteenDecimalsTokenMock__factory.ts +1 -1
  483. package/types/factories/contracts/mocks/StakingMockFixedAPY__factory.ts +1 -1
  484. package/types/factories/contracts/mocks/SwapHelperTest__factory.ts +1 -1
  485. package/types/factories/contracts/mocks/TwentyDecimalsTokenMock__factory.ts +1 -1
  486. package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock2__factory.ts +1 -1
  487. package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock3__factory.ts +1 -1
  488. package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock4__factory.ts +1 -1
  489. package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock__factory.ts +1 -1
  490. package/types/factories/contracts/mocks/UsdcMock.sol/USDCMock__factory.ts +1 -1
  491. package/types/factories/contracts/reserve/CeloDistributionHelper__factory.ts +1 -1
  492. package/types/factories/contracts/reserve/DistributionHelper__factory.ts +1 -1
  493. package/types/factories/contracts/reserve/ExchangeHelper__factory.ts +1 -1
  494. package/types/factories/contracts/reserve/GoodMarketMaker__factory.ts +1 -1
  495. package/types/factories/contracts/reserve/GoodReserveADai__factory.ts +1502 -0
  496. package/types/factories/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai__factory.ts +1 -1
  497. package/types/factories/contracts/staking/BaseShareFieldV2__factory.ts +1 -1
  498. package/types/factories/contracts/staking/BaseShareField__factory.ts +1 -1
  499. package/types/factories/contracts/staking/DonationsStaking__factory.ts +1 -1
  500. package/types/factories/contracts/staking/FuseStakingV3.sol/FuseStakingV3__factory.ts +1 -1
  501. package/types/factories/contracts/staking/GoodFundManager__factory.ts +1 -1
  502. package/types/factories/contracts/staking/UniswapV2SwapHelper__factory.ts +1 -1
  503. package/types/factories/contracts/staking/aave/AaveStakingFactory__factory.ts +1 -1
  504. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2__factory.ts +1240 -0
  505. package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
  506. package/types/factories/contracts/staking/aave/GoodAaveStakingV2__factory.ts +1 -1
  507. package/types/factories/contracts/staking/aave/GoodAaveStaking__factory.ts +1 -1
  508. package/types/factories/contracts/staking/compound/CompoundStakingFactory__factory.ts +1 -1
  509. package/types/factories/contracts/staking/compound/GoodCompoundStakingV2__factory.ts +1 -1
  510. package/types/factories/contracts/staking/compound/GoodCompoundStaking__factory.ts +1 -1
  511. package/types/factories/contracts/token/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
  512. package/types/factories/contracts/token/GoodDollar18__factory.ts +1257 -0
  513. package/types/factories/contracts/token/GoodDollar2__factory.ts +1257 -0
  514. package/types/factories/contracts/token/GoodDollar__factory.ts +1 -1
  515. package/types/factories/contracts/token/MultichainFeeFormula__factory.ts +1 -1
  516. package/types/factories/contracts/token/index.ts +1 -0
  517. package/types/factories/contracts/token/superfluid/ISuperToken__factory.ts +0 -52
  518. package/types/factories/contracts/token/superfluid/SuperGoodDollar__factory.ts +1 -73
  519. package/types/factories/contracts/token/superfluid/SuperToken__factory.ts +1 -53
  520. package/types/factories/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy__factory.ts +1 -1
  521. package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +1 -6
  522. package/types/factories/contracts/ubi/UBIScheme__factory.ts +1 -1
  523. package/types/factories/contracts/utils/AdminWalletFuse__factory.ts +1 -1
  524. package/types/factories/contracts/utils/AdminWallet__factory.ts +1 -1
  525. package/types/factories/contracts/utils/BancorFormula__factory.ts +1 -1
  526. package/types/factories/contracts/utils/BulkWhitelist__factory.ts +1 -1
  527. package/types/factories/contracts/utils/BuyAndBridgeHelper__factory.ts +1 -1
  528. package/types/factories/contracts/utils/BuyFromReserveHelper__factory.ts +566 -0
  529. package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory__factory.ts +1 -1
  530. package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDClone__factory.ts +1 -1
  531. package/types/factories/contracts/utils/BuyGDClone.sol/DonateGDClone__factory.ts +1 -1
  532. package/types/factories/contracts/utils/BuyGDClone.sol/IQuoterV2__factory.ts +126 -0
  533. package/types/factories/contracts/utils/BuyGDClone.sol/ISwapRouter__factory.ts +220 -0
  534. package/types/factories/contracts/utils/DAOContract__factory.ts +1 -1
  535. package/types/factories/contracts/utils/DAOUpgradeableContract__factory.ts +1 -1
  536. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677__factory.ts +86 -0
  537. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill__factory.ts +1 -1
  538. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/Initializable__factory.ts +1 -1
  539. package/types/factories/contracts/utils/FuseOldBridgeKill.sol/Ownable__factory.ts +1 -1
  540. package/types/factories/contracts/utils/GDFaucet__factory.ts +1 -1
  541. package/types/factories/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper__factory.ts +1 -1
  542. package/types/factories/contracts/utils/IdentityFix__factory.ts +1 -1
  543. package/types/factories/contracts/utils/LastauthReduction__factory.ts +1 -1
  544. package/types/factories/contracts/utils/MultiCall.sol/Multicall__factory.ts +1 -1
  545. package/types/factories/contracts/utils/MultichainBridgeHelper__factory.ts +1 -1
  546. package/types/factories/contracts/utils/NameService__factory.ts +1 -1
  547. package/types/factories/contracts/utils/OneTimePaymentsV2__factory.ts +1 -1
  548. package/types/factories/contracts/utils/OneTimePayments__factory.ts +1 -1
  549. package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +1 -1
  550. package/types/factories/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade__factory.ts +1 -1
  551. package/types/factories/contracts/utils/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  552. package/types/factories/contracts/utils/ProtocolUpgradeFuse__factory.ts +1 -1
  553. package/types/factories/contracts/utils/ProtocolUpgradeRecover__factory.ts +1 -1
  554. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange__factory.ts +39 -0
  555. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +152 -0
  556. package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
  557. package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
  558. package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
  559. package/types/factories/contracts/utils/ReputationTestHelper__factory.ts +1 -1
  560. package/types/factories/contracts/utils/ReserveRestore.sol/MentoExchange__factory.ts +39 -0
  561. package/types/factories/contracts/utils/ReserveRestore.sol/ReserveRestore__factory.ts +95 -0
  562. package/types/factories/contracts/utils/ReserveRestore.sol/index.ts +5 -0
  563. package/types/factories/contracts/utils/ReserveRestore__factory.ts +1 -1
  564. package/types/factories/contracts/utils/index.ts +1 -0
  565. package/types/hardhat.d.ts +45 -0
  566. package/types/index.ts +8 -2
package/scripts/fv.ts CHANGED
@@ -13,6 +13,7 @@ const saveImage = async (id, idx) => {
13
13
  }).then(_ => _.json());
14
14
  console.log({ age });
15
15
  const i1 = await fetch("http://localhost:9090/enrollment-3d/" + id).then(_ => _.json());
16
+ console.log(i1);
16
17
  fs.writeFileSync("fvimages/" + id + "_" + idx + ".jpg", i1.auditTrailBase64, {
17
18
  encoding: "base64"
18
19
  });
@@ -239,9 +240,26 @@ const exportScans = async ids => {
239
240
  });
240
241
  await Promise.all(exports);
241
242
  };
243
+
244
+ const deleteIdentifier = async (id, walletAddress) => {
245
+ const res = await fetch("https://goodserver.gooddollar.org/admin/verify/face/delete", {
246
+ method: "POST",
247
+ headers: { "content-type": "application/json" },
248
+ body: JSON.stringify({
249
+ password: process.env.ADMIN_PASSWORD,
250
+ enrollmentIdentifier: id,
251
+ walletAddress
252
+ })
253
+ })
254
+ .then(_ => _.json())
255
+ .catch(_ => _);
256
+ console.log(res);
257
+ };
242
258
  // checkIndexedOrDelete();
243
259
  // fixInvalidIndexed();
244
260
  // console.log(process.env.ADMIN_PASSWORD);
245
261
  // deleteIdentifiers(process.env.ADMIN_PASSWORD);
246
262
  // main();
247
- saveImages(["", "", ""]);
263
+ // saveImages(["", "", ""]);
264
+ // saveImage("0x62c60cefbc22d0109d63ab3b517d0631a58aedc5", 0);
265
+ deleteIdentifier("0x62c60cefbc22d0109d63ab3b517d0631a58aedc5", "0x2254690603d951f46b480df000f254e9a7b77246");
@@ -1,9 +1,10 @@
1
- import { network, ethers, upgrades, run } from "hardhat";
2
- import { Contract } from "ethers";
1
+ import hre from "hardhat";
2
+ import { network, ethers } from "hardhat";
3
3
 
4
- import { verifyProductionSigner } from "./helpers";
4
+ import { verifyContract, verifyOnEtherscan, verifyProductionSigner } from "./helpers";
5
5
  import releaser from "../../scripts/releaser";
6
6
  import dao from "../../releases/deployment.json";
7
+ import { keccak256, parseUnits, toUtf8Bytes } from "ethers/lib/utils";
7
8
 
8
9
  const { name } = network;
9
10
  const celoProxyByteCode =
@@ -15,7 +16,7 @@ export const deployUniversalProxyFactory = async () => {
15
16
  const deployTx = {
16
17
  nonce: 0,
17
18
  gasPrice: 50e9,
18
- gasLimit: 891002,
19
+ gasLimit: 2891002,
19
20
  data: celoProxyByteCode
20
21
  };
21
22
 
@@ -98,8 +99,30 @@ export const deployProxy = async (defaultAdmin = null) => {
98
99
  await releaser(release, network.name, "deployment", false);
99
100
  };
100
101
 
102
+ const deployProxyMethod2 = async (defaultAdmin = null) => {
103
+ let [signer] = await ethers.getSigners();
104
+ console.log("deploying proxyfactory with signer", {
105
+ address: signer.address,
106
+ balance: await ethers.provider.getBalance(signer.address).then(_ => _.toString())
107
+ });
108
+ const artifact = await hre.artifacts.readArtifact("ProxyFactory1967");
109
+ const result = await hre.deployments.deterministic("ProxyFactory", {
110
+ skipIfAlreadyDeployed: true,
111
+ salt: keccak256(toUtf8Bytes("ProxyFactory")),
112
+ contract: artifact,
113
+ from: signer.address
114
+ });
115
+ const deployed = await result.deploy();
116
+ console.log(result, deployed);
117
+ const release = {
118
+ ProxyFactory: deployed.address
119
+ };
120
+ await releaser(release, network.name, "deployment", false);
121
+ await verifyContract(deployed.address, artifact.sourceName + ":" + artifact.contractName);
122
+ };
101
123
  export const main = async (networkName = name) => {
102
- await deployProxy();
124
+ // await deployProxy();
125
+ await deployProxyMethod2();
103
126
  };
104
127
 
105
128
  if (process.argv[1].includes("proxyFactory-deploy")) {
@@ -12,12 +12,18 @@ import DAOCreatorABI from "@gooddollar/goodcontracts/build/contracts/DaoCreatorG
12
12
  // import IdentityABI from "@gooddollar/goodcontracts/build/contracts/Identity.json";
13
13
  import FeeFormulaABI from "@gooddollar/goodcontracts/build/contracts/FeeFormula.json";
14
14
 
15
- import { deployDeterministic, deploySuperGoodDollar, verifyProductionSigner } from "./helpers";
15
+ import {
16
+ deployDeterministic,
17
+ deploySuperGoodDollar,
18
+ verifyProductionSigner,
19
+ verifyContract,
20
+ verifyOnEtherscan
21
+ } from "./helpers";
16
22
  import releaser from "../releaser";
17
23
  import ProtocolSettings from "../../releases/deploy-settings.json";
18
24
  import dao from "../../releases/deployment.json";
19
25
  import { TransactionResponse } from "@ethersproject/providers";
20
-
26
+ import { getImplementationAddress } from "@openzeppelin/upgrades-core";
21
27
  const printDeploy = async (c: Contract | TransactionResponse): Promise<Contract | TransactionResponse> => {
22
28
  if (c instanceof Contract) {
23
29
  await c.deployed();
@@ -33,10 +39,11 @@ const printDeploy = async (c: Contract | TransactionResponse): Promise<Contract
33
39
  export const createDAO = async () => {
34
40
  let protocolSettings = defaultsDeep({}, ProtocolSettings[network.name], ProtocolSettings["default"]);
35
41
 
36
- let release: { [key: string]: any } = dao[network.name];
42
+ let release: { [key: string]: any } = dao[network.name] || {};
37
43
  const isProduction = network.name.includes("production");
38
44
 
39
45
  let [root] = await ethers.getSigners();
46
+
40
47
  const daoOwner = root.address;
41
48
  if (isProduction) verifyProductionSigner(root);
42
49
 
@@ -52,16 +59,13 @@ export const createDAO = async () => {
52
59
 
53
60
  const FeeFormulaFactory = new ethers.ContractFactory(FeeFormulaABI.abi, FeeFormulaABI.bytecode, root);
54
61
 
55
- const proxyFactory = await ethers.getContractAt("ProxyFactory1967", release.ProxyFactory);
56
- const salt = ethers.BigNumber.from(ethers.utils.keccak256(ethers.utils.toUtf8Bytes("NameService")));
57
- const nameserviceFutureAddress = await proxyFactory["getDeploymentAddress(uint256,address)"](salt, root.address);
58
- console.log("deploying identity", { nameserviceFutureAddress });
62
+ console.log("deploying identity");
59
63
  let Identity;
60
- if (release.Identity) Identity = await ethers.getContractAt("IdentityV2", release.Identity);
64
+ if (release.Identity) Identity = await ethers.getContractAt("IdentityV3", release.Identity);
61
65
  else
62
66
  Identity = (await deployDeterministic(
63
67
  {
64
- name: "IdentityV2",
68
+ name: "IdentityV3",
65
69
  salt: "Identity",
66
70
  isUpgradeable: true
67
71
  },
@@ -70,7 +74,17 @@ export const createDAO = async () => {
70
74
 
71
75
  let daoCreator;
72
76
  if (release.DAOCreator) daoCreator = await DAOCreatorFactory.attach(release.DAOCreator);
73
- else daoCreator = (await DAOCreatorFactory.deploy().then(printDeploy)) as Contract;
77
+ else {
78
+ daoCreator = await deployDeterministic(
79
+ {
80
+ name: "DAOCreator",
81
+ factory: DAOCreatorFactory,
82
+ isUpgradeable: false
83
+ },
84
+ []
85
+ );
86
+ // daoCreator = (await DAOCreatorFactory.deploy().then(printDeploy)) as Contract;
87
+ }
74
88
 
75
89
  let FeeFormula;
76
90
  if (release.FeeFormula) FeeFormula = await FeeFormulaFactory.attach(release.FeeFormula);
@@ -80,8 +94,7 @@ export const createDAO = async () => {
80
94
  )) as Contract;
81
95
 
82
96
  let GoodDollar;
83
- let { superfluidHost, superfluidInflowNFTLogic, superfluidOutflowNFTLogic } =
84
- protocolSettings;
97
+ let { superfluidHost, superfluidInflowNFTLogic, superfluidOutflowNFTLogic } = protocolSettings;
85
98
  if (protocolSettings.superfluidHost) {
86
99
  GoodDollar = await deploySuperGoodDollar(
87
100
  {
@@ -118,66 +131,58 @@ export const createDAO = async () => {
118
131
  ).then(printDeploy)) as Contract;
119
132
  }
120
133
 
121
- const GReputation = (await deployDeterministic(
122
- {
123
- name: "GReputation",
124
- isUpgradeable: true,
125
- initializer: "initialize(address, string, bytes32, uint256)"
126
- },
127
- [
128
- ethers.constants.AddressZero,
129
- "fuse",
130
- protocolSettings.governance.gdaoAirdrop, //should fail on real deploy if not set
131
- protocolSettings.governance.gdaoTotalSupply //should fail on real deploy if not set
132
- ]
133
- ).then(printDeploy)) as Contract;
134
-
135
134
  // console.log("setting identity auth period");
136
135
  // await Identity.setAuthenticationPeriod(365).then(printDeploy);
137
136
 
138
- console.log("creating dao");
139
- await daoCreator.forgeOrg(GoodDollar.address, GReputation.address, [], 0, []).then(printDeploy);
140
- console.log("forgeOrg done ");
141
- const Avatar = new ethers.Contract(
142
- await daoCreator.avatar(),
137
+ const avatar = await daoCreator.avatar();
138
+ let Avatar = new ethers.Contract(
139
+ avatar,
143
140
  ["function owner() view returns (address)", "function nativeToken() view returns (address)"],
144
141
  root
145
142
  );
146
-
147
- console.log("Done deploying DAO, setting schemes permissions");
148
-
149
- let schemes = [daoOwner, Identity.address];
143
+ if (avatar === ethers.constants.AddressZero) {
144
+ console.log("creating dao");
145
+ await daoCreator.forgeOrg(GoodDollar.address, ethers.constants.AddressZero, [], 0, []).then(printDeploy);
146
+ console.log("forgeOrg done ");
147
+ console.log("Done deploying DAO, setting schemes permissions");
148
+
149
+ Avatar = new ethers.Contract(
150
+ await daoCreator.avatar(),
151
+ ["function owner() view returns (address)", "function nativeToken() view returns (address)"],
152
+ root
153
+ );
154
+ let schemes = [daoOwner, Identity.address];
155
+
156
+ console.log("setting schemes", schemes);
157
+
158
+ await daoCreator
159
+ .setSchemes(
160
+ Avatar.address,
161
+ schemes,
162
+ schemes.map(_ => ethers.constants.HashZero),
163
+ ["0x0000001f", "0x00000001"],
164
+ ""
165
+ )
166
+ .then(printDeploy);
167
+ } else {
168
+ console.log("dao already exists, avatar is", avatar);
169
+ }
150
170
 
151
171
  const gd = await Avatar.nativeToken();
152
172
 
153
173
  const controller = await Avatar.owner();
154
174
 
155
- console.log("setting schemes", schemes);
156
-
157
- await daoCreator
158
- .setSchemes(
159
- Avatar.address,
160
- schemes,
161
- schemes.map(_ => ethers.constants.HashZero),
162
- ["0x0000001f", "0x00000001"],
163
- ""
164
- )
165
- .then(printDeploy);
166
-
167
175
  const NameService = await deployDeterministic({ name: "NameService", isUpgradeable: true }, [
168
176
  controller,
169
- ["CONTROLLER", "AVATAR", "IDENTITY", "GOODDOLLAR", "REPUTATION"].map(_ =>
170
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes(_))
171
- ),
172
- [controller, Avatar.address, Identity.address, gd, GReputation.address]
177
+ ["CONTROLLER", "AVATAR", "IDENTITY", "GOODDOLLAR"].map(_ => ethers.utils.keccak256(ethers.utils.toUtf8Bytes(_))),
178
+ [controller, Avatar.address, Identity.address, gd]
173
179
  ]);
174
180
 
175
- console.log("set GRep nameservice..");
176
- await (await GReputation.updateDAO(NameService.address)).wait();
177
181
  console.log("set Identity nameservice..");
178
182
 
179
- await Identity.initDAO(NameService.address).then(printDeploy);
180
-
183
+ if ((await Identity.nameService()) == ethers.constants.AddressZero) {
184
+ await Identity.initDAO(NameService.address).then(printDeploy);
185
+ }
181
186
  //verifications
182
187
  const Controller = await ethers.getContractAt("Controller", controller);
183
188
 
@@ -194,37 +199,24 @@ export const createDAO = async () => {
194
199
 
195
200
  const deployerIsNotGDPauser = (await GoodDollar.isPauser(root.address)) === false;
196
201
 
197
- const deployerIsNotRepMinter = (await GReputation.hasRole(GReputation.MINTER_ROLE(), root.address)) === false;
198
- const avatarIsRepMinter = await GReputation.hasRole(GReputation.MINTER_ROLE(), Avatar.address);
199
-
200
202
  const deployerIsIdentityOwner = await Identity.hasRole(ethers.constants.HashZero, root.address);
201
203
 
202
- const avatarIsIdentityOwner = await Identity.hasRole(ethers.constants.HashZero, Avatar.address);
203
-
204
- //try to modify DAO -> should not succeed
205
- await (await GReputation.updateDAO(ethers.constants.AddressZero)).wait();
206
-
207
- const grepHasDAOSet = (await GReputation.nameService()) === NameService.address;
208
-
209
- const factoryIsNotGoodOwner = (await GReputation.hasRole(ethers.constants.HashZero, proxyFactory.address)) === false;
204
+ const avatarIsIdentityOwner = (await Identity.hasRole(ethers.constants.HashZero, Avatar.address)) === true;
210
205
 
211
- const factoryIsNotGDMinter = (await GoodDollar.isMinter(proxyFactory.address)) === false;
206
+ const factoryIsNotGDMinter = (await GoodDollar.isMinter(release.ProxyFactory)) === false;
212
207
 
213
208
  const factoryIsNotGDPauser = (await GoodDollar.isPauser(root.address)) === false;
214
-
209
+ const identityNameService = (await Identity.nameService()) === NameService.address;
215
210
  console.log({
216
211
  daoOwnerDaoPermissions,
217
212
  deployerIsNotGDMinter,
218
- deployerIsNotRepMinter,
219
213
  deployerIsNotGDPauser,
220
- factoryIsNotGoodOwner,
221
214
  factoryIsNotGDMinter,
222
215
  factoryIsNotGDPauser,
223
- avatarIsRepMinter,
224
216
  deployerIsIdentityOwner,
225
217
  avatarIsIdentityOwner,
226
218
  avatarIsGDMinter,
227
- grepHasDAOSet
219
+ identityNameService
228
220
  });
229
221
 
230
222
  release = {
@@ -234,11 +226,57 @@ export const createDAO = async () => {
234
226
  Controller: controller,
235
227
  Identity: Identity.address,
236
228
  NameService: NameService.address,
237
- GReputation: GReputation.address,
238
229
  FeeFormula: FeeFormula.address,
239
230
  DAOCreator: daoCreator.address
240
231
  };
241
232
  await releaser(release, network.name, "deployment", false);
233
+
234
+ await verifyOnEtherscan(
235
+ network.config.chainId,
236
+ "scripts/multichain-deploy/flattened/Avatar.sol",
237
+ "Avatar",
238
+ Avatar.address,
239
+ "v0.5.16+commit.9c3226ce",
240
+ {
241
+ types: ["string", "address", "address"],
242
+ values: ["GoodDollar", GoodDollar.address, ethers.constants.AddressZero]
243
+ }
244
+ );
245
+ await verifyOnEtherscan(
246
+ network.config.chainId,
247
+ "scripts/multichain-deploy/flattened/Controller.sol",
248
+ "Controller",
249
+ Controller.address,
250
+ "v0.5.16+commit.9c3226ce",
251
+ {
252
+ types: ["address"],
253
+ values: [Avatar.address]
254
+ }
255
+ );
256
+ await verifyOnEtherscan(
257
+ network.config.chainId,
258
+ "scripts/multichain-deploy/flattened/FeeFormula.sol",
259
+ "FeeFormula",
260
+ FeeFormula.address,
261
+ "v0.5.16+commit.9c3226ce",
262
+ {
263
+ types: ["uint256"],
264
+ values: [0]
265
+ }
266
+ );
267
+
268
+ let impl = await getImplementationAddress(ethers.provider, Identity.address);
269
+ await verifyContract(impl, "contracts/identity/IdentityV3.sol:IdentityV3", network.name);
270
+ impl = await getImplementationAddress(ethers.provider, NameService.address);
271
+ await verifyContract(impl, "contracts/utils/NameService.sol:NameService", network.name);
272
+ if (protocolSettings.superfluidHost) {
273
+ impl = await getImplementationAddress(ethers.provider, GoodDollar.address);
274
+ await verifyContract(GoodDollar.address, "contracts/token/superfluid/UUPSProxy.sol:UUPSProxy", network.name);
275
+ await verifyContract(impl, "contracts/token/superfluid/SuperGoodDollar.sol:SuperGoodDollar", network.name);
276
+ } else {
277
+ impl = await getImplementationAddress(ethers.provider, GoodDollar.address);
278
+ await verifyContract(impl, "contracts/token/GoodDollar.sol:GoodDollar", network.name);
279
+ }
242
280
  };
243
281
 
244
282
  export const main = async () => {
@@ -11,6 +11,7 @@ import releaser from "../releaser";
11
11
  import ProtocolSettings from "../../releases/deploy-settings.json";
12
12
  import dao from "../../releases/deployment.json";
13
13
  import { TransactionResponse } from "@ethersproject/providers";
14
+ import { AdminWallet, Faucet } from "../../types";
14
15
 
15
16
  const { name } = network;
16
17
 
@@ -64,24 +65,28 @@ export const deployHelpers = async () => {
64
65
  isUpgradeable: true
65
66
  },
66
67
  [walletAdmins, release.NameService, root.address, protocolSettings.gasPrice]
67
- ).then(printDeploy)) as Contract;
68
+ ).then(printDeploy)) as AdminWallet;
69
+
70
+ await AdminWallet.setDefaults(1e6, 9e6, 3, protocolSettings.gasPrice);
68
71
  // const AdminWallet = await ethers.getContractAt("AdminWallet", release.AdminWallet);
69
72
 
70
73
  const gd = await ethers.getContractAt("IGoodDollar", release.GoodDollar);
71
74
 
72
75
  const decimals = await gd.decimals();
73
76
 
74
- const Faucet = await deployDeterministic({ name: "Faucet", salt: "Faucet", isUpgradeable: true }, [
77
+ const Faucet = (await deployDeterministic({ name: "Faucet", salt: "Faucet", isUpgradeable: true }, [
75
78
  release.NameService,
76
79
  protocolSettings.gasPrice,
77
80
  AdminWallet.address,
78
81
  root.address
79
- ]);
82
+ ])) as Faucet;
83
+
84
+ await Faucet.setGasTopping(1.5e6);
80
85
  // const Faucet = await ethers.getContractAt("Faucet", release.Faucet);
81
86
 
82
87
  const Invites = await deployDeterministic({ name: "InvitesV2", salt: "InvitesV2", isUpgradeable: true }, [
83
88
  release.NameService,
84
- ethers.BigNumber.from(100).mul(ethers.BigNumber.from("10").pow(decimals)),
89
+ ethers.utils.parseUnits("100", decimals),
85
90
  root.address
86
91
  ]);
87
92
 
@@ -124,7 +129,7 @@ export const deployHelpers = async () => {
124
129
 
125
130
  if (!network.name.includes("production")) {
126
131
  console.log("minting G$s to invites on dev envs");
127
- await gd.mint(Invites.address, ethers.BigNumber.from(1e6).mul(ethers.BigNumber.from("10").pow(decimals))); //1million GD
132
+ await gd.mint(Invites.address, ethers.utils.parseUnits("1000000", decimals)); //1million GD
128
133
  }
129
134
 
130
135
  console.log({
@@ -134,11 +139,11 @@ export const deployHelpers = async () => {
134
139
  });
135
140
 
136
141
  let impl = await getImplementationAddress(ethers.provider, AdminWallet.address);
137
- await verifyContract(impl, "AdminWallet", network.name);
142
+ await verifyContract(impl, "contracts/utils/AdminWallet.sol:AdminWallet", network.name);
138
143
  impl = await getImplementationAddress(ethers.provider, Faucet.address);
139
- await verifyContract(impl, "Faucet", network.name);
144
+ await verifyContract(impl, "contracts/fuseFaucet/Faucet.sol:Faucet", network.name);
140
145
  impl = await getImplementationAddress(ethers.provider, Invites.address);
141
- await verifyContract(impl, "InvitesV2", network.name);
146
+ await verifyContract(impl, "contracts/invite/InvitesV2.sol:InvitesV2", network.name);
142
147
  };
143
148
 
144
149
  export const main = async () => {
@@ -56,36 +56,37 @@ export const deployHelpers = async () => {
56
56
  console.log("deploying ubi pool");
57
57
  const UBIScheme = (await deployDeterministic(
58
58
  {
59
- name: "UBIScheme",
59
+ name: "UBISchemeV2",
60
+ factory: await ethers.getContractFactory("UBISchemeV2"),
60
61
  isUpgradeable: true
61
62
  },
62
- [release.NameService, ethers.constants.AddressZero, protocolSettings.ubi.maxInactiveDays]
63
+ [release.NameService]
63
64
  ).then(printDeploy)) as Contract;
64
65
 
65
- console.log("deploying claimers distribution");
66
-
67
- const ClaimersDistribution = (await deployDeterministic({ name: "ClaimersDistribution", isUpgradeable: true }, [
68
- release.NameService
69
- ]).then(printDeploy)) as Contract;
66
+ const torelease = {
67
+ UBIScheme: UBIScheme.address
68
+ };
69
+ release = {
70
+ ...release,
71
+ ...torelease
72
+ };
73
+ await releaser(torelease, network.name, "deployment", false);
70
74
 
71
75
  console.log("setting nameservice addresses via guardian");
72
76
  const proposalContracts = [
73
- release.NameService //nameservice add MinterWrapper
77
+ release.NameService //nameservice
74
78
  ];
75
79
 
76
80
  const proposalEthValues = proposalContracts.map(_ => 0);
77
81
 
78
82
  const proposalFunctionSignatures = [
79
- "setAddresses(bytes32[],address[])" //add ubischeme and claimersdistribution in nameservice
83
+ "setAddresses(bytes32[],address[])" //add ubischeme
80
84
  ];
81
85
 
82
86
  const proposalFunctionInputs = [
83
87
  ethers.utils.defaultAbiCoder.encode(
84
88
  ["bytes32[]", "address[]"],
85
- [
86
- [keccak256(toUtf8Bytes("UBISCHEME")), keccak256(toUtf8Bytes("GDAO_CLAIMERS"))],
87
- [UBIScheme.address, ClaimersDistribution.address]
88
- ]
89
+ [[keccak256(toUtf8Bytes("UBISCHEME"))], [UBIScheme.address]]
89
90
  )
90
91
  ];
91
92
 
@@ -96,12 +97,6 @@ export const deployHelpers = async () => {
96
97
  await gd.mint(UBIScheme.address, ethers.BigNumber.from(1e6).mul(ethers.BigNumber.from("10").pow(decimals))); //1million GD
97
98
  }
98
99
 
99
- let impl = await getImplementationAddress(ethers.provider, UBIScheme.address);
100
- await verifyContract(impl, "UBIScheme", network.name);
101
-
102
- impl = await getImplementationAddress(ethers.provider, ClaimersDistribution.address);
103
- await verifyContract(impl, "ClaimersDistribution", network.name);
104
-
105
100
  try {
106
101
  if (viaGuardians) {
107
102
  await executeViaSafe(
@@ -123,6 +118,9 @@ export const deployHelpers = async () => {
123
118
  } catch (e) {
124
119
  console.error("proposal execution failed...", e.message);
125
120
  }
121
+
122
+ let impl = await getImplementationAddress(ethers.provider, UBIScheme.address);
123
+ await verifyContract(impl, "contracts/ubi/UBISchemeV2.sol:UBISchemeV2", network.name);
126
124
  };
127
125
 
128
126
  export const main = async (networkName = name) => {
@@ -5,11 +5,13 @@
5
5
  import { network, ethers, upgrades, run } from "hardhat";
6
6
  import { Contract } from "ethers";
7
7
  import { defaultsDeep } from "lodash";
8
+ import { getImplementationAddress } from "@openzeppelin/upgrades-core";
8
9
  import {
9
10
  deployDeterministic,
10
11
  executeViaGuardian,
11
12
  executeViaSafe,
12
- verifyProductionSigner
13
+ verifyProductionSigner,
14
+ verifyContract
13
15
  } from "./helpers";
14
16
  import releaser from "../releaser";
15
17
  import ProtocolSettings from "../../releases/deploy-settings.json";
@@ -19,9 +21,7 @@ import { keccak256, toUtf8Bytes } from "ethers/lib/utils";
19
21
 
20
22
  const { name } = network;
21
23
 
22
- const printDeploy = async (
23
- c: Contract | TransactionResponse
24
- ): Promise<Contract | TransactionResponse> => {
24
+ const printDeploy = async (c: Contract | TransactionResponse): Promise<Contract | TransactionResponse> => {
25
25
  if (c instanceof Contract) {
26
26
  await c.deployed();
27
27
  console.log("deployed to: ", c.address);
@@ -34,11 +34,7 @@ const printDeploy = async (
34
34
  };
35
35
 
36
36
  export const deployGov = async () => {
37
- let protocolSettings = defaultsDeep(
38
- {},
39
- ProtocolSettings[network.name],
40
- ProtocolSettings["default"]
41
- );
37
+ let protocolSettings = defaultsDeep({}, ProtocolSettings[network.name], ProtocolSettings["default"]);
42
38
  let release: { [key: string]: any } = dao[network.name];
43
39
 
44
40
  let [root] = await ethers.getSigners();
@@ -52,11 +48,23 @@ export const deployGov = async () => {
52
48
  console.log("got signers:", {
53
49
  network,
54
50
  root: root.address,
55
- balance: await ethers.provider
56
- .getBalance(root.address)
57
- .then(_ => _.toString())
51
+ balance: await ethers.provider.getBalance(root.address).then(_ => _.toString())
58
52
  });
59
53
 
54
+ const GReputation = (await deployDeterministic(
55
+ {
56
+ name: "GReputation",
57
+ isUpgradeable: true,
58
+ initializer: "initialize(address, string, bytes32, uint256)"
59
+ },
60
+ [
61
+ release.NameService,
62
+ "fuse",
63
+ protocolSettings.governance.gdaoAirdrop, //should fail on real deploy if not set
64
+ protocolSettings.governance.gdaoTotalSupply //should fail on real deploy if not set
65
+ ]
66
+ ).then(printDeploy)) as Contract;
67
+
60
68
  console.log("deploying voting machine");
61
69
 
62
70
  const VotingMachine = (await deployDeterministic(
@@ -72,8 +80,16 @@ export const deployGov = async () => {
72
80
  ]
73
81
  ).then(printDeploy)) as Contract;
74
82
 
83
+ console.log("deploying claimers distribution");
84
+
85
+ const ClaimersDistribution = (await deployDeterministic({ name: "ClaimersDistribution", isUpgradeable: true }, [
86
+ release.NameService
87
+ ]).then(printDeploy)) as Contract;
88
+
75
89
  const torelease = {
76
- CompoundVotingMachine: VotingMachine.address
90
+ CompoundVotingMachine: VotingMachine.address,
91
+ GReputation: GReputation.address,
92
+ ClaimersDistribution: ClaimersDistribution.address
77
93
  };
78
94
  release = {
79
95
  ...release,
@@ -81,29 +97,51 @@ export const deployGov = async () => {
81
97
  };
82
98
  await releaser(torelease, network.name, "deployment", false);
83
99
 
100
+ const deployerIsNotRepMinter = (await GReputation.hasRole(GReputation.MINTER_ROLE(), root.address)) === false;
101
+ const avatarIsRepMinter = await GReputation.hasRole(GReputation.MINTER_ROLE(), release.Avatar);
102
+ const grepHasDAOSet = (await GReputation.nameService()) === release.NameService;
103
+ const factoryIsNotGoodOwner = (await GReputation.hasRole(ethers.constants.HashZero, release.ProxyFactory)) === false;
104
+ console.log("verify GReputation permissions", {
105
+ deployerIsNotRepMinter,
106
+ avatarIsRepMinter,
107
+ grepHasDAOSet,
108
+ factoryIsNotGoodOwner
109
+ });
110
+
84
111
  console.log("adding genericcall permissions to voting contract.");
85
112
  const proposalContracts = [
113
+ release.NameService,
86
114
  release.Controller //nameservice add MinterWrapper
87
115
  ];
88
116
 
89
117
  const proposalEthValues = proposalContracts.map(_ => 0);
90
118
 
91
119
  const proposalFunctionSignatures = [
120
+ "setAddresses(bytes32[],address[])", //add reputation
92
121
  "registerScheme(address,bytes32,bytes4,address)" //make sure compoundvotingmachine has generic call so it can control the DAO
93
122
  ];
94
123
 
95
124
  const proposalFunctionInputs = [
96
125
  ethers.utils.defaultAbiCoder.encode(
97
- ["address", "bytes32", "bytes4", "address"],
126
+ ["bytes32[]", "address[]"],
98
127
  [
99
- release.CompoundVotingMachine,
100
- ethers.constants.HashZero,
101
- "0x000000f1",
102
- release.Avatar
128
+ [keccak256(toUtf8Bytes("REPUTATION")), keccak256(toUtf8Bytes("GDAO_CLAIMERS"))],
129
+ [GReputation.address, ClaimersDistribution.address]
103
130
  ]
131
+ ),
132
+ ethers.utils.defaultAbiCoder.encode(
133
+ ["address", "bytes32", "bytes4", "address"],
134
+ [release.CompoundVotingMachine, ethers.constants.HashZero, "0x000000f1", release.Avatar]
104
135
  )
105
136
  ];
106
137
 
138
+ let impl = await getImplementationAddress(ethers.provider, ClaimersDistribution.address);
139
+ await verifyContract(impl, "ClaimersDistribution", network.name);
140
+ impl = await getImplementationAddress(ethers.provider, VotingMachine.address);
141
+ await verifyContract(impl, "CompoundVotingMachine", network.name);
142
+ impl = await getImplementationAddress(ethers.provider, GReputation.address);
143
+ await verifyContract(impl, "GReputation", network.name);
144
+
107
145
  try {
108
146
  if (viaGuardians) {
109
147
  await executeViaSafe(
@@ -126,15 +164,9 @@ export const deployGov = async () => {
126
164
  console.error("proposal execution failed...", e.message);
127
165
  }
128
166
 
129
- const Controller = await ethers.getContractAt(
130
- "Controller",
131
- release.Controller
132
- );
167
+ const Controller = await ethers.getContractAt("Controller", release.Controller);
133
168
 
134
- const votingMachineDaoPermissions = await Controller.getSchemePermissions(
135
- daoOwner,
136
- release.Avatar
137
- );
169
+ const votingMachineDaoPermissions = await Controller.getSchemePermissions(daoOwner, release.Avatar);
138
170
 
139
171
  console.log({
140
172
  votingMachineDaoPermissions