@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
@@ -1,26 +1,26 @@
1
1
  #run with source .env && ./scripts/multichain-deploy/fulldeploy.sh
2
2
  NETWORK=$1
3
3
  npx hardhat run ./scripts/multichain-deploy/0_proxyFactory-deploy.ts --network $NETWORK
4
- if [ $? != 0 ]; then
5
- exit 1;
6
- fi
4
+ # if [ $? != 0 ]; then
5
+ # exit 1;
6
+ # fi
7
7
  npx hardhat run ./scripts/multichain-deploy/1_basicdao-deploy.ts --network $NETWORK
8
- if [ $? != 0 ]; then
9
- exit 1;
10
- fi
8
+ # if [ $? != 0 ]; then
9
+ # exit 1;
10
+ # fi
11
11
  npx hardhat run ./scripts/multichain-deploy/2_helpers-deploy.ts --network $NETWORK
12
- if [ $? != 0 ]; then
13
- exit 1;
14
- fi
15
- npx hardhat run ./scripts/multichain-deploy/3_gdSavings-deploy.ts --network $NETWORK
16
- if [ $? != 0 ]; then
17
- exit 1;
18
- fi
12
+ # # if [ $? != 0 ]; then
13
+ # # exit 1;
14
+ # # fi
15
+ # npx hardhat run ./scripts/multichain-deploy/3_gdSavings-deploy.ts --network $NETWORK
16
+ # if [ $? != 0 ]; then
17
+ # exit 1;
18
+ # fi
19
19
  npx hardhat run ./scripts/multichain-deploy/4_ubi-deploy.ts --network $NETWORK
20
20
  if [ $? != 0 ]; then
21
21
  exit 1;
22
22
  fi
23
- npx hardhat run ./scripts/multichain-deploy/5_gov-deploy.ts --network $NETWORK
24
- if [ $? != 0 ]; then
25
- exit 1;
26
- fi
23
+ # npx hardhat run ./scripts/multichain-deploy/5_gov-deploy.ts --network $NETWORK
24
+ # if [ $? != 0 ]; then
25
+ # exit 1;
26
+ # fi
@@ -1,22 +1,20 @@
1
+ import { readFileSync } from "fs";
1
2
  import { Contract, ContractFactory, Signer } from "ethers";
2
- import { network, ethers, upgrades, run } from "hardhat";
3
- import * as safeethers from "ethers";
3
+ import { network, ethers } from "hardhat";
4
4
  import { TransactionResponse, TransactionReceipt } from "@ethersproject/providers";
5
- // import Safe from "@gnosis.pm/safe-core-sdk";
6
- import EthersAdapter from "@gnosis.pm/safe-ethers-lib";
7
- // import { MetaTransactionData } from "@gnosis.pm/safe-core-sdk-types";
8
- // import SafeClient from "@gnosis.pm/safe-service-client";
5
+ import { getImplementationAddress } from "@openzeppelin/upgrades-core";
9
6
 
10
7
  import SafeApiKit from "@safe-global/api-kit";
11
- import Safe, { Eip1193Provider } from "@safe-global/protocol-kit";
12
- import { MetaTransactionData, OperationType } from "@safe-global/types-kit";
8
+ import Safe from "@safe-global/protocol-kit";
9
+ import { MetaTransactionData } from "@safe-global/types-kit";
13
10
 
14
11
  import util from "util";
15
12
  import dao from "../../releases/deployment.json";
13
+ import { ProxyFactory1967 } from "../../types";
16
14
 
17
15
  const exec = util.promisify(require("child_process").exec);
18
16
 
19
- const networkName = network.name === "localhost" ? "production-mainnet" : network.name;
17
+ const networkName = network.name;
20
18
  let totalGas = 0;
21
19
  const gasUsage = {};
22
20
  const GAS_SETTINGS = { gasLimit: 10000000 };
@@ -60,6 +58,7 @@ export const deploySuperGoodDollar = async (
60
58
  { superfluidHost, superfluidInflowNFTLogic, superfluidOutflowNFTLogic },
61
59
  tokenArgs
62
60
  ) => {
61
+ const withNFTs = !!(superfluidInflowNFTLogic && superfluidOutflowNFTLogic);
63
62
  const SuperGoodDollar = (await deployDeterministic(
64
63
  {
65
64
  name: "SuperGoodDollar",
@@ -79,59 +78,67 @@ export const deploySuperGoodDollar = async (
79
78
 
80
79
  await GoodDollarProxy.initializeProxy(SuperGoodDollar.address).then(printDeploy);
81
80
 
82
- const OutFlowNFT = (await deployDeterministic(
83
- {
84
- name: "SuperGoodDollar OutflowNFT",
85
- factory: uupsFactory
86
- },
87
- []
88
- ).then(printDeploy)) as Contract;
89
-
90
- const InFlowNFT = (await deployDeterministic(
91
- {
92
- name: "SuperGoodDollar InflowNFT",
93
- factory: uupsFactory
94
- },
95
- []
96
- ).then(printDeploy)) as Contract;
97
-
98
- await OutFlowNFT.initializeProxy(superfluidOutflowNFTLogic);
99
- await InFlowNFT.initializeProxy(superfluidInflowNFTLogic);
100
-
81
+ let OutFlowNFT = await ethers.getContractAt("ConstantOutflowNFT", ethers.constants.AddressZero);
82
+ let InFlowNFT = await ethers.getContractAt("ConstantOutflowNFT", ethers.constants.AddressZero);
83
+
84
+ if (withNFTs) {
85
+ OutFlowNFT = (await deployDeterministic(
86
+ {
87
+ name: "SuperGoodDollar OutflowNFT",
88
+ factory: uupsFactory
89
+ },
90
+ []
91
+ ).then(printDeploy)) as Contract;
92
+
93
+ InFlowNFT = (await deployDeterministic(
94
+ {
95
+ name: "SuperGoodDollar InflowNFT",
96
+ factory: uupsFactory
97
+ },
98
+ []
99
+ ).then(printDeploy)) as Contract;
100
+
101
+ console.log("initializing superfluid nfts proxies");
102
+ await OutFlowNFT.initializeProxy(superfluidOutflowNFTLogic);
103
+ await InFlowNFT.initializeProxy(superfluidInflowNFTLogic);
104
+ }
105
+ console.log("initializing supergooddollar");
101
106
  await SuperGoodDollar.attach(GoodDollarProxy.address)[
102
- "initialize(string,string,uint256,address,address,address,address,address,address)"
103
- ](...tokenArgs, OutFlowNFT.address, InFlowNFT.address);
107
+ "initialize(string,string,uint256,address,address,address,address)"
108
+ ](...tokenArgs);
104
109
 
105
110
  const GoodDollar = await ethers.getContractAt("ISuperGoodDollar", GoodDollarProxy.address);
106
111
 
107
- const constantInflowNFT = await ethers.getContractAt("ConstantInflowNFT", InFlowNFT.address);
112
+ if (withNFTs) {
113
+ const constantInflowNFT = await ethers.getContractAt("ConstantInflowNFT", InFlowNFT.address);
108
114
 
109
- const constantOutflowNFT = await ethers.getContractAt("ConstantOutflowNFT", OutFlowNFT.address);
110
-
111
- await constantOutflowNFT
112
- .attach(OutFlowNFT.address)
113
- .initialize(
114
- GoodDollarProxy.address,
115
- (await GoodDollar.symbol()) + " Outflow NFT",
116
- (await GoodDollar.symbol()) + " COF"
117
- );
118
- await constantInflowNFT
119
- .attach(InFlowNFT.address)
120
- .initialize(
121
- GoodDollarProxy.address,
122
- (await GoodDollar.symbol()) + " Inflow NFT",
123
- (await GoodDollar.symbol()) + " CIF"
124
- );
115
+ const constantOutflowNFT = await ethers.getContractAt("ConstantOutflowNFT", OutFlowNFT.address);
125
116
 
117
+ console.log("initializing inflow and outflow nfts");
118
+ await constantOutflowNFT
119
+ .attach(OutFlowNFT.address)
120
+ .initialize(
121
+ GoodDollarProxy.address,
122
+ (await GoodDollar.symbol()) + " Outflow NFT",
123
+ (await GoodDollar.symbol()) + " COF"
124
+ );
125
+ await constantInflowNFT
126
+ .attach(InFlowNFT.address)
127
+ .initialize(
128
+ GoodDollarProxy.address,
129
+ (await GoodDollar.symbol()) + " Inflow NFT",
130
+ (await GoodDollar.symbol()) + " CIF"
131
+ );
132
+ }
126
133
  return GoodDollar;
127
134
  };
128
135
 
129
136
  export const deployDeterministic = async (contract, args: any[], factoryOpts = {}, redeployProxyFactory = false) => {
130
137
  try {
131
- let proxyFactory;
138
+ let proxyFactory: ProxyFactory1967;
132
139
  if (networkName.startsWith("develop") && redeployProxyFactory) {
133
- proxyFactory = await (await ethers.getContractFactory("ProxyFactory1967")).deploy();
134
- } else proxyFactory = await ethers.getContractAt("ProxyFactory1967", release.ProxyFactory);
140
+ proxyFactory = (await (await ethers.getContractFactory("ProxyFactory1967")).deploy()) as ProxyFactory1967;
141
+ } else proxyFactory = (await ethers.getContractAt("ProxyFactory1967", release.ProxyFactory)) as ProxyFactory1967;
135
142
  const Contract =
136
143
  (contract.factory as ContractFactory) || (await ethers.getContractFactory(contract.name, factoryOpts));
137
144
 
@@ -140,39 +147,73 @@ export const deployDeterministic = async (contract, args: any[], factoryOpts = {
140
147
  );
141
148
 
142
149
  if (contract.isUpgradeable === true) {
150
+ const proxyAddr = await proxyFactory["getDeploymentAddress(uint256,address)"](
151
+ salt,
152
+ await proxyFactory.signer.getAddress()
153
+ );
154
+ const code = await ethers.provider.getCode(proxyAddr);
155
+ if (code && code !== "0x") {
156
+ const implAddr = await getImplementationAddress(ethers.provider, proxyAddr).catch(e => "0x");
157
+ if (implAddr && implAddr !== "0x") {
158
+ console.log("proxy exists and impl set already:", contract.name, proxyAddr, implAddr);
159
+ return Contract.attach(proxyAddr);
160
+ }
161
+ }
162
+
143
163
  console.log("Deploying:", contract.name, "using proxyfactory", {
144
164
  args,
165
+ proxyAddr,
145
166
  proxyFactory: proxyFactory.address
146
167
  });
168
+
147
169
  const encoded = Contract.interface.encodeFunctionData(contract.initializer || "initialize", args);
148
170
  const tx = await Contract.deploy(GAS_SETTINGS);
149
171
  const impl = await tx.deployed();
150
172
  console.log("implementation deployed:", contract.name, impl.address);
151
173
  await countTotalGas(tx, contract.name);
174
+ let tx2;
175
+ try {
176
+ if (contract.withProxyFactory === false) {
177
+ console.log("deploying proxy without proxy factory", { salt, impl: impl.address, encoded });
178
+ const proxy = await ethers.getContractFactory("contracts/utils/ProxyFactory1967.sol:ERC1967Proxy");
179
+ tx2 = await proxyFactory.deployCode(salt, proxy.bytecode, GAS_SETTINGS);
180
+ await tx2.wait();
181
+ console.log("proxy deployed initializing...", contract.name, proxyAddr, tx2.hash);
182
+ tx2 = await proxy.attach(proxyAddr).initialize(impl.address, encoded);
183
+ console.log("proxy initialized:", contract.name, proxyAddr, tx2.hash);
184
+ } else {
185
+ console.log("deploying proxy with proxyfactory", { salt, impl: impl.address, encoded });
186
+ tx2 = await proxyFactory.deployProxy(salt, impl.address, encoded, GAS_SETTINGS);
187
+ }
188
+ await countTotalGas(tx2, contract.name);
189
+ const deployTx = await tx2.wait();
190
+ } catch (e) {
191
+ console.error("failed to deploy proxy, assuming it exists...", e);
192
+ }
152
193
 
153
- const tx2 = await proxyFactory.deployProxy(salt, impl.address, encoded, GAS_SETTINGS);
154
- await countTotalGas(tx2, contract.name);
155
- const deployTx = await tx2.wait().catch(e => console.error("failed to deploy proxy, assuming it exists...", e));
156
- const proxyAddr = await proxyFactory["getDeploymentAddress(uint256,address)"](
157
- salt,
158
- await proxyFactory.signer.getAddress()
159
- );
160
194
  console.log("proxy deployed:", contract.name, proxyAddr);
161
195
  return Contract.attach(proxyAddr);
162
196
  } else {
163
- console.log("Deploying:", contract.name, "using proxyfactory code", {
164
- proxyFactory: proxyFactory.address,
165
- args
166
- });
167
197
  const constructor = Contract.interface.encodeDeploy(args);
168
198
  const bytecode = ethers.utils.solidityPack(["bytes", "bytes"], [Contract.bytecode, constructor]);
169
- const deployTx = await (await proxyFactory.deployCode(salt, bytecode, GAS_SETTINGS)).wait();
170
-
171
199
  const proxyAddr = await proxyFactory["getDeploymentAddress(uint256,address,bytes32)"](
172
200
  salt,
173
201
  await proxyFactory.signer.getAddress(),
174
202
  ethers.utils.keccak256(bytecode)
175
203
  );
204
+ const code = await ethers.provider.getCode(proxyAddr);
205
+ if (code && code !== "0x") {
206
+ console.log("contract already exists:", contract.name, proxyAddr);
207
+ return Contract.attach(proxyAddr);
208
+ }
209
+
210
+ console.log("Deploying:", contract.name, "using proxyfactory code", {
211
+ proxyFactory: proxyFactory.address,
212
+ args
213
+ });
214
+
215
+ const deployTx = await (await proxyFactory.deployCode(salt, bytecode, GAS_SETTINGS)).wait();
216
+
176
217
  console.log("proxy deployed:", contract.name, proxyAddr);
177
218
 
178
219
  return Contract.attach(proxyAddr);
@@ -422,16 +463,108 @@ export const verifyContract = async (
422
463
  address,
423
464
  contractPath,
424
465
  networkName = network.name,
425
- proxyName?: string,
466
+ maybeProxy: boolean = true,
426
467
  forcedConstructorArguments?: string
427
468
  ) => {
428
- const cmd = `yarn hardhat verify --contract ${contractPath} ${address} ${
469
+ const impl = await getImplementationAddress(ethers.provider, address).catch(e => "");
470
+ const contractAddress = maybeProxy ? impl || address : address;
471
+ console.log("verifying contract:", { contractPath, address, impl, networkName, forcedConstructorArguments });
472
+ const cmd = `yarn hardhat verify --contract ${contractPath} ${contractAddress} ${
429
473
  forcedConstructorArguments ?? ""
430
474
  } --network ${networkName}`;
431
475
  console.log("running...:", cmd);
432
- await exec(cmd).then(({ stdout, stderr }) => {
433
- console.log("Result for:", cmd);
434
- console.log(stdout);
435
- console.log(stderr);
436
- });
476
+ await exec(cmd)
477
+ .then(({ stdout, stderr }) => {
478
+ console.log("Result for:", cmd);
479
+ console.log(stdout);
480
+ console.log(stderr);
481
+ })
482
+ .catch(e => {
483
+ console.error("Error verifying contract:", e);
484
+ });
485
+ if (maybeProxy && impl) {
486
+ const chainid = network.config.chainId.toString();
487
+ console.log("linking proxy to impl", { impl, address });
488
+ const body = new URLSearchParams({
489
+ chaini: network.config.chainId.toString(),
490
+ apikey: process.env.ETHERSCAN_KEY,
491
+ module: "contract",
492
+ action: "verifyproxycontract",
493
+ address
494
+ });
495
+
496
+ const response = await fetch(`https://api.etherscan.io/v2/api?chainid=${chainid}`, {
497
+ method: "POST",
498
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
499
+ body
500
+ });
501
+
502
+ const data = await response.json();
503
+ if (data.status !== "1") {
504
+ return console.log(`Proxy Verification submission failed: ${data.result}`);
505
+ }
506
+
507
+ const guid = data.result;
508
+ console.log(`Proxy Verification submitted. GUID: ${guid}`);
509
+ }
437
510
  };
511
+
512
+ /**
513
+ * Verify a flattened contract on Etherscan
514
+ * @param {string} contractPath - Path to the contract (e.g., contracts/MyContract.sol)
515
+ * @param {string} contractName - Contract name (e.g., MyContract)
516
+ * @param {string} contractAddress - Deployed contract address
517
+ * @param {string} compilerVersion - Compiler version (e.g., v0.8.24+commit.e11b9ed9)
518
+ * @param {Array} constructorArgs - Object with {types:[], values:[]} for encoding
519
+ */
520
+ export async function verifyOnEtherscan(
521
+ chainid,
522
+ contractPath,
523
+ contractName,
524
+ contractAddress,
525
+ compilerVersion,
526
+ constructorArgs = { types: [], values: [] }
527
+ ) {
528
+ const apiKey = process.env.ETHERSCAN_KEY;
529
+ if (!apiKey) {
530
+ throw new Error("ETHERSCAN_API_KEY not set in .env");
531
+ }
532
+
533
+ const sourceCode = readFileSync(contractPath, "utf8");
534
+
535
+ let constructorEncoded = "";
536
+ if (constructorArgs.types && constructorArgs.values) {
537
+ constructorEncoded = ethers.utils.defaultAbiCoder.encode(constructorArgs.types, constructorArgs.values).slice(2); // Remove '0x'
538
+ }
539
+
540
+ console.log("Submitting verification request to Etherscan...", { chainid, contractAddress, contractName });
541
+
542
+ const body = new URLSearchParams({
543
+ chainid,
544
+ apikey: apiKey,
545
+ module: "contract",
546
+ action: "verifysourcecode",
547
+ contractaddress: contractAddress,
548
+ sourceCode: sourceCode,
549
+ codeformat: "solidity-single-file",
550
+ contractname: contractName,
551
+ compilerversion: compilerVersion,
552
+ optimizationUsed: "1",
553
+ runs: "200",
554
+ constructorArguements: constructorEncoded
555
+ });
556
+
557
+ const response = await fetch(`https://api.etherscan.io/v2/api?chainid=${chainid}`, {
558
+ method: "POST",
559
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
560
+ body
561
+ });
562
+
563
+ const data = await response.json();
564
+ if (data.status !== "1") {
565
+ return console.log(`Verification submission failed: ${data.result}`);
566
+ }
567
+
568
+ const guid = data.result;
569
+ console.log(`Verification submitted. GUID: ${guid}`);
570
+ }
@@ -0,0 +1,41 @@
1
+ import { network, ethers, upgrades, run } from "hardhat";
2
+
3
+ import {
4
+ deployDeterministic,
5
+ deploySuperGoodDollar,
6
+ verifyProductionSigner,
7
+ verifyContract,
8
+ verifyOnEtherscan
9
+ } from "./helpers";
10
+ import releaser from "../releaser";
11
+ import ProtocolSettings from "../../releases/deploy-settings.json";
12
+ import dao from "../../releases/deployment.json";
13
+ import { getImplementationAddress } from "@openzeppelin/upgrades-core";
14
+
15
+ const main = async () => {
16
+ const release = dao[network.name] || {};
17
+ console.log("verifying network:", network.name, release);
18
+ const protocolSettings = ProtocolSettings[network.name] || ProtocolSettings["default"];
19
+ // await verifyContract(release.ProxyFactory, "contracts/utils/ProxyFactory1967.sol:ProxyFactory1967");
20
+ // await verifyContract(release.Identity, "contracts/utils/ProxyFactory1967.sol:ERC1967Proxy", false);
21
+ // await verifyContract(release.Identity, "contracts/identity/IdentityV3.sol:IdentityV3", network.name);
22
+ // await verifyContract(release.NameService, "contracts/utils/NameService.sol:NameService", network.name);
23
+ // if (protocolSettings.superfluidHost) {
24
+ // await verifyContract(release.GoodDollar, "contracts/token/superfluid/UUPSProxy.sol:UUPSProxy", network.name, false);
25
+ // await verifyContract(
26
+ // release.GoodDollar,
27
+ // "contracts/token/superfluid/SuperGoodDollar.sol:SuperGoodDollar",
28
+ // network.name,
29
+ // true,
30
+ // ethers.constants.AddressZero
31
+ // );
32
+ // } else {
33
+ // await verifyContract(release.GoodDollar, "contracts/token/GoodDollar.sol:GoodDollar", network.name);
34
+ // }
35
+
36
+ // await verifyContract(release.AdminWallet, "contracts/utils/AdminWallet.sol:AdminWallet", network.name);
37
+ // await verifyContract(release.Faucet, "contracts/fuseFaucet/Faucet.sol:Faucet", network.name);
38
+ // await verifyContract(release.Invites, "contracts/invite/InvitesV2.sol:InvitesV2", network.name);
39
+ await verifyContract(release.UBIScheme, "contracts/ubi/UBISchemeV2.sol:UBISchemeV2", network.name);
40
+ };
41
+ main();
@@ -240,7 +240,7 @@ describe("ClaimersDistribution", () => {
240
240
  // console.log({ totalGas }, tx.gasUsed.toNumber(), tx2.gasUsed.toNumber());
241
241
  }
242
242
  console.log(Object.keys(gasCosts));
243
- expect(totalGas / 30).gt(480000);
243
+ expect(totalGas / 30).gt(470000);
244
244
  });
245
245
 
246
246
  it("should not cost alot of gas to claim with reputation distribution with regular token [@skip-on-coverage]", async () => {
package/test/helpers.ts CHANGED
@@ -58,53 +58,67 @@ export const deploySuperGoodDollar = async (sfContracts, tokenArgs) => {
58
58
  "contracts/token/superfluid/UUPSProxy.sol:UUPSProxy"
59
59
  );
60
60
  const GoodDollarProxy = await GoodDollarProxyFactory.deploy();
61
+ console.log("deployed supergooddollar proxy, initializing proxy...");
62
+ await GoodDollarProxy.initializeProxy(SuperGoodDollar.address);
61
63
 
62
- console.log("deploying flow nfts...");
63
-
64
- const outNftProxy = await GoodDollarProxyFactory.deploy();
65
- const inNftProxy = await GoodDollarProxyFactory.deploy();
66
-
67
- const constantInflowNFT = await ethers.deployContract("ConstantInflowNFT", [
68
- sfContracts.host,
69
- outNftProxy.address
70
- ]);
64
+ if (sfContracts.host !== ethers.constants.AddressZero) {
65
+ console.log("deploying flow nfts...");
71
66
 
72
- const constantOutflowNFT = await ethers.deployContract("ConstantOutflowNFT", [
73
- sfContracts.host,
74
- inNftProxy.address
75
- ]);
76
- await outNftProxy.initializeProxy(constantOutflowNFT.address);
77
- await inNftProxy.initializeProxy(constantInflowNFT.address);
67
+ const outNftProxy = await GoodDollarProxyFactory.deploy();
68
+ const inNftProxy = await GoodDollarProxyFactory.deploy();
78
69
 
79
- console.log("deployed supergooddollar proxy, initializing proxy...");
80
- await GoodDollarProxy.initializeProxy(SuperGoodDollar.address);
70
+ const constantInflowNFT = await ethers.deployContract("ConstantInflowNFT", [
71
+ sfContracts.host,
72
+ outNftProxy.address
73
+ ]);
81
74
 
82
- console.log("initializing supergooddollar....");
83
- await SuperGoodDollar.attach(GoodDollarProxy.address)[
84
- "initialize(string,string,uint256,address,address,address,address,address,address)"
85
- ](...tokenArgs, outNftProxy.address, inNftProxy.address);
86
- const GoodDollar = await ethers.getContractAt(
87
- "SuperGoodDollar",
88
- GoodDollarProxy.address
89
- );
90
- console.log("supergooddollar created successfully");
91
-
92
- await constantOutflowNFT
93
- .attach(outNftProxy.address)
94
- .initialize(
95
- (await GoodDollar.symbol()) + " Outflow NFT",
96
- (await GoodDollar.symbol()) + " COF"
75
+ const constantOutflowNFT = await ethers.deployContract(
76
+ "ConstantOutflowNFT",
77
+ [sfContracts.host, inNftProxy.address]
97
78
  );
98
- await constantInflowNFT
99
- .attach(inNftProxy.address)
100
- .initialize(
101
- (await GoodDollar.symbol()) + " Inflow NFT",
102
- (await GoodDollar.symbol()) + " CIF"
79
+ await outNftProxy.initializeProxy(constantOutflowNFT.address);
80
+ await inNftProxy.initializeProxy(constantInflowNFT.address);
81
+
82
+ console.log("initializing supergooddollar....");
83
+ await SuperGoodDollar.attach(GoodDollarProxy.address)[
84
+ "initialize(string,string,uint256,address,address,address,address)"
85
+ ](...tokenArgs);
86
+ const GoodDollar = await ethers.getContractAt(
87
+ "SuperGoodDollar",
88
+ GoodDollarProxy.address
103
89
  );
90
+ console.log("supergooddollar created successfully");
104
91
 
105
- return GoodDollar;
92
+ await constantOutflowNFT
93
+ .attach(outNftProxy.address)
94
+ .initialize(
95
+ (await GoodDollar.symbol()) + " Outflow NFT",
96
+ (await GoodDollar.symbol()) + " COF"
97
+ );
98
+ await constantInflowNFT
99
+ .attach(inNftProxy.address)
100
+ .initialize(
101
+ (await GoodDollar.symbol()) + " Inflow NFT",
102
+ (await GoodDollar.symbol()) + " CIF"
103
+ );
104
+ return GoodDollar;
105
+ } else {
106
+ console.log("initializing supergooddollar....");
107
+ await SuperGoodDollar.attach(GoodDollarProxy.address)[
108
+ "initialize(string,string,uint256,address,address,address,address)"
109
+ ](...tokenArgs);
110
+ const GoodDollar = await ethers.getContractAt(
111
+ "SuperGoodDollar",
112
+ GoodDollarProxy.address
113
+ );
114
+ console.log("supergooddollar created successfully");
115
+ return GoodDollar;
116
+ }
106
117
  };
107
- export const createDAO = async (tokenType: "super" | "regular" = "super") => {
118
+ export const createDAO = async (
119
+ tokenType: "super" | "regular" = "super",
120
+ identity: "v2" | "v3" = "v3"
121
+ ) => {
108
122
  let [root, ...signers] = await ethers.getSigners();
109
123
 
110
124
  const sfContracts = await deploySuperFluid();
@@ -122,7 +136,9 @@ export const createDAO = async (tokenType: "super" | "regular" = "super") => {
122
136
  root
123
137
  );
124
138
 
125
- const IdentityFactory = await ethers.getContractFactory("IdentityV2");
139
+ const IdentityFactory = await ethers.getContractFactory(
140
+ identity === "v2" ? "IdentityV2" : "IdentityV3"
141
+ );
126
142
 
127
143
  const FeeFormulaFactory = new ethers.ContractFactory(
128
144
  FeeFormulaABI.abi,
@@ -441,10 +457,7 @@ export const createDAO = async (tokenType: "super" | "regular" = "super") => {
441
457
  await setDAOAddress("REPUTATION", reputation.address);
442
458
 
443
459
  console.log("setting reserve token...");
444
- await cDAI["mint(address,uint256)"](
445
- goodReserve.address,
446
- 10000
447
- );
460
+ await cDAI["mint(address,uint256)"](goodReserve.address, 10000);
448
461
  await setReserveToken(
449
462
  cDAI.address,
450
463
  "100", //1gd
@@ -511,8 +524,8 @@ export const deployUBI = async (deployedDAO, withFirstClaim = true) => {
511
524
  });
512
525
 
513
526
  let ubiScheme = await upgrades.deployProxy(
514
- await ethers.getContractFactory("UBIScheme"),
515
- [nameService.address, firstClaim.address, 14],
527
+ await ethers.getContractFactory("UBISchemeV2"),
528
+ [nameService.address],
516
529
  { kind: "uups" }
517
530
  );
518
531
 
@@ -16,6 +16,9 @@ describe("Identity", () => {
16
16
 
17
17
  let avatar, gd: IGoodDollar, Controller, id: IIdentity;
18
18
 
19
+ const createDAOv2 = async () => {
20
+ return createDAO("super", "v2");
21
+ };
19
22
  before(async () => {
20
23
  [founder, ...signers] = await ethers.getSigners();
21
24
  let {
@@ -24,7 +27,7 @@ describe("Identity", () => {
24
27
  gd: gooddollar,
25
28
  identity: idv2,
26
29
  genericCall: gc
27
- } = await loadFixture(createDAO);
30
+ } = await loadFixture(createDAOv2);
28
31
 
29
32
  genericCall = gc;
30
33
  identity = (await ethers.getContractAt("IdentityV2", idv2)) as IdentityV2;