@gooddollar/goodprotocol 2.1.4 → 2.2.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (292) hide show
  1. package/artifacts/abis/IdentityV4.min.json +1 -0
  2. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  8. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +1 -1
  9. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  35. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  36. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  37. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  38. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  39. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  40. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  41. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  42. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  43. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  44. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  45. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  47. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  48. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  49. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  50. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  51. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  53. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +1 -1
  54. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +2 -2
  55. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.dbg.json +4 -0
  56. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.json +1162 -0
  57. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  58. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  59. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  60. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  61. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTest.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTestHelper.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  97. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  101. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  102. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  103. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  104. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +1 -1
  105. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  106. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  107. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  108. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  109. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  110. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  111. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  112. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  113. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  114. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  115. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  116. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  117. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  118. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  119. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  120. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  121. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  122. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  123. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  124. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  125. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  126. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  127. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  128. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  129. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +1 -1
  130. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  131. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  132. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  133. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  134. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  135. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  136. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  137. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  138. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  139. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  140. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  141. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  142. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  143. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  144. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  145. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  146. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  147. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  148. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  149. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  150. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  151. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  152. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +1 -1
  153. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  154. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  155. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  156. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  157. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  158. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  159. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  160. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  161. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  162. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  163. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  164. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  165. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  166. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  167. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  168. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  169. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  170. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  171. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  172. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  173. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  174. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  175. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  176. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  177. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  178. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  179. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  180. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  181. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  182. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  183. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  184. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  185. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  186. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  187. package/contracts/identity/IdentityV3.sol +0 -3
  188. package/contracts/identity/IdentityV4.sol +578 -0
  189. package/hardhat.config.ts +3 -4
  190. package/package.json +8 -4
  191. package/releases/deployment.json +691 -1
  192. package/test/governance/ClaimersDistribution.test.ts +1 -1
  193. package/test/governance/CompoundVotingMachine.castvote.test.ts +30 -30
  194. package/test/helpers.ts +76 -195
  195. package/test/identity/IdentityV3.test.ts +53 -129
  196. package/test/identity/IdentityV4.test.ts +454 -0
  197. package/test/reserve/GenericDistributionHelper.e2e.test.ts +445 -0
  198. package/test/utils/AdminWallet.test.ts +14 -15
  199. package/types/contracts/identity/IdentityV4.ts +2001 -0
  200. package/types/contracts/identity/index.ts +1 -0
  201. package/types/contracts/utils/UpdateReserveRatio.sol/MentoExchange.ts +81 -0
  202. package/types/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio.ts +134 -0
  203. package/types/contracts/utils/UpdateReserveRatio.sol/index.ts +5 -0
  204. package/types/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC.ts +7 -2
  205. package/types/contracts/utils/index.ts +2 -0
  206. package/types/factories/contracts/identity/IdentityV3__factory.ts +1 -1
  207. package/types/factories/contracts/identity/IdentityV4__factory.ts +1213 -0
  208. package/types/factories/contracts/identity/index.ts +1 -0
  209. package/types/factories/contracts/utils/UpdateReserveRatio.sol/MentoExchange__factory.ts +39 -0
  210. package/types/factories/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio__factory.ts +113 -0
  211. package/types/factories/contracts/utils/UpdateReserveRatio.sol/index.ts +5 -0
  212. package/types/factories/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC__factory.ts +9 -15
  213. package/types/factories/contracts/utils/index.ts +1 -0
  214. package/types/hardhat.d.ts +27 -0
  215. package/types/index.ts +4 -0
  216. package/scripts/ProxyFactory.json +0 -4425
  217. package/scripts/analytics/activeGDStakers.ts +0 -188
  218. package/scripts/analytics/activeStakers.ts +0 -25
  219. package/scripts/analytics/activeUsersCount.ts +0 -156
  220. package/scripts/analytics/activeWalletsStats.ts +0 -301
  221. package/scripts/analytics/checkActiveWallets.ts +0 -60
  222. package/scripts/analytics/checkBridgeBalances.ts +0 -442
  223. package/scripts/analytics/claimIncidentStats.ts +0 -98
  224. package/scripts/analytics/faucetStats.ts +0 -130
  225. package/scripts/analytics/gdinflow.ts +0 -57
  226. package/scripts/analytics/goodHolders.ts +0 -46
  227. package/scripts/analytics/goodgiveback.ts +0 -64
  228. package/scripts/analytics/p2pTxs.ts +0 -564
  229. package/scripts/analytics/stuckgd.ts +0 -70
  230. package/scripts/analytics/tokenInOutStats.ts +0 -48
  231. package/scripts/analytics/whitelistsyncIssue.ts +0 -87
  232. package/scripts/bulkProof.ts +0 -202
  233. package/scripts/bulkWhitelist.ts +0 -31
  234. package/scripts/deployGnosisSafe.ts +0 -111
  235. package/scripts/fetchOrDeployProxyFactory.ts +0 -46
  236. package/scripts/fv.ts +0 -263
  237. package/scripts/gdx/gdxAirdropCalculation.ts +0 -479
  238. package/scripts/getFounders.ts +0 -32
  239. package/scripts/governance/README.md +0 -70
  240. package/scripts/governance/airdropCalculation.ts +0 -1119
  241. package/scripts/governance/airdropCalculationRecover.ts +0 -416
  242. package/scripts/governance/airdropCalculationSorted.ts +0 -438
  243. package/scripts/governance/goodCheckpointSorted.ts +0 -300
  244. package/scripts/keeper/fishInactive.ts +0 -47
  245. package/scripts/minimize.sh +0 -17
  246. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +0 -131
  247. package/scripts/multichain-deploy/1_basicdao-deploy.ts +0 -294
  248. package/scripts/multichain-deploy/2_helpers-deploy.ts +0 -152
  249. package/scripts/multichain-deploy/2b_otp-deploy.ts +0 -73
  250. package/scripts/multichain-deploy/3_gdSavings-deploy.ts +0 -190
  251. package/scripts/multichain-deploy/4_ubi-deploy.ts +0 -129
  252. package/scripts/multichain-deploy/5_gov-deploy.ts +0 -179
  253. package/scripts/multichain-deploy/6_testnetFaucet.ts +0 -85
  254. package/scripts/multichain-deploy/7_superfluidfaucet-deploy.ts +0 -123
  255. package/scripts/multichain-deploy/8_disthelper-deploy.ts +0 -152
  256. package/scripts/multichain-deploy/createUniswapTestPools.ts +0 -163
  257. package/scripts/multichain-deploy/flattened/Avatar.sol +0 -913
  258. package/scripts/multichain-deploy/flattened/Controller.sol +0 -1891
  259. package/scripts/multichain-deploy/flattened/FeeFormula.sol +0 -1290
  260. package/scripts/multichain-deploy/fulldeploy.sh +0 -26
  261. package/scripts/multichain-deploy/helpers.ts +0 -647
  262. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +0 -59
  263. package/scripts/multichain-deploy/verifyEtherscan.ts +0 -177
  264. package/scripts/proposals/gip-14_1.ts +0 -251
  265. package/scripts/proposals/gip-15.ts +0 -427
  266. package/scripts/proposals/gip-25-xdc-upgrade-ubi.ts +0 -746
  267. package/scripts/proposals/gips-14_1.md +0 -29
  268. package/scripts/proposals/hack-ubi-recovery.ts +0 -414
  269. package/scripts/proposals/identityAuthPeriod.ts +0 -229
  270. package/scripts/proposals/reserveRestore.ts +0 -474
  271. package/scripts/proposals/updateDistHelper.ts +0 -180
  272. package/scripts/proposals/v4Upgrade.ts +0 -845
  273. package/scripts/releaser.js +0 -24
  274. package/scripts/staking/stakersGdRewardsCalculation.ts +0 -64
  275. package/scripts/upgradeScheme.ts +0 -97
  276. package/scripts/upgradeToV2/upgradeToV2.ts +0 -853
  277. package/scripts/upgradeToV2/upgradeToV2Recover.ts +0 -939
  278. package/scripts/upgradeToV3/v3-fix.ts +0 -120
  279. package/scripts/upgradeToV3/v3-fuse-multichain.ts +0 -117
  280. package/scripts/upgradeToV3/v3-upgrade.ts +0 -219
  281. package/scripts/upgrades/celo-defi-ubi-deploy.ts +0 -184
  282. package/scripts/upgrades/identity-upgrade.ts +0 -126
  283. package/scripts/upgrades/multichain-formula-upgrade.ts +0 -143
  284. package/scripts/upgrades/multichain-temp-fix.ts +0 -129
  285. package/scripts/upgrades/restoreFunds.ts +0 -91
  286. package/scripts/upgrades/superfluid-nft-celo-gas-token.ts +0 -159
  287. package/scripts/upgrades/transferDaoToGuardians.ts +0 -80
  288. package/scripts/upgrades/upgradeAdminWallet.ts +0 -29
  289. package/scripts/upgrades/upgradeFaucet.ts +0 -46
  290. package/scripts/utils.ts +0 -50
  291. package/scripts/verify.ts +0 -67
  292. package/scripts/voltageswaps.ts +0 -46
@@ -1,120 +0,0 @@
1
- /***
2
- * This script will deploy a fixed goodfundmanager that doenst disable staking contracts if rewards=0
3
- * It will also then re submit the staking contracts
4
- */
5
-
6
- import { network, ethers } from "hardhat";
7
-
8
- import {
9
- executeViaGuardian,
10
- executeViaSafe
11
- } from "../multichain-deploy/helpers";
12
-
13
- import releaser from "../releaser";
14
- import dao from "../../releases/deployment.json";
15
- const { name: networkName } = network;
16
-
17
- export const deployMainnet = async () => {
18
- let [root, ...signers] = await ethers.getSigners();
19
-
20
- let executionMethod = networkName === "localhost" ? "guardians" : "safe";
21
-
22
- const networkKey =
23
- networkName === "localhost" ? "production-mainnet" : networkName;
24
- let release: { [key: string]: any } = dao[networkKey];
25
-
26
- let safeOwner = new ethers.Wallet(
27
- process.env.SAFEOWNER_PRIVATE_KEY || ethers.constants.HashZero,
28
- ethers.provider
29
- );
30
-
31
- //test with guardians safe on hardhat mainnet fork
32
- if (network.name === "localhost") {
33
- root = await ethers.getImpersonatedSigner(
34
- "0xE0c5daa7CC6F88d29505f702a53bb5E67600e7Ec"
35
- );
36
- await signers[0].sendTransaction({
37
- to: root.address,
38
- value: ethers.constants.WeiPerEther
39
- });
40
- }
41
-
42
- console.log("got signers:", {
43
- networkName,
44
- networkKey,
45
- root: root.address,
46
- safeOwner: safeOwner.address,
47
- balance: await ethers.provider
48
- .getBalance(root.address)
49
- .then(_ => _.toString())
50
- });
51
-
52
- console.log("deploying goodfundmanager implementation");
53
- const gfmImpl = await (
54
- await ethers.getContractFactory("GoodFundManager")
55
- ).deploy();
56
-
57
- const proposalContracts = [
58
- release.GoodFundManager, //Fundmanager -> upgrade to new version
59
- release.GoodFundManager, //Fundmanager -> set staking rewards compound to 0
60
- release.GoodFundManager //Fundmanager -> set staking rewards aave to 0
61
- ];
62
-
63
- const proposalEthValues = proposalContracts.map(_ => 0);
64
-
65
- const proposalFunctionSignatures = [
66
- "upgradeTo(address)",
67
- "setStakingReward(uint32,address,uint32,uint32,bool)",
68
- "setStakingReward(uint32,address,uint32,uint32,bool)"
69
- ];
70
-
71
- const proposalFunctionInputs = [
72
- ethers.utils.defaultAbiCoder.encode(["address"], [gfmImpl.address]), //upgradeTo(address)
73
- ethers.utils.defaultAbiCoder.encode(
74
- ["uint32", "address", "uint32", "uint32", "bool"],
75
- [
76
- "0",
77
- "0x7b7246c78e2f900d17646ff0cb2ec47d6ba10754",
78
- "14338692",
79
- "4294967295",
80
- false
81
- ]
82
- ), //setstakingrewards to 0
83
- ethers.utils.defaultAbiCoder.encode(
84
- ["uint32", "address", "uint32", "uint32", "bool"],
85
- [
86
- "0",
87
- "0x3ff2d8eb2573819a9ef7167d2ba6fd6d31b17f4f",
88
- "14338692",
89
- "4294967295",
90
- false
91
- ]
92
- ) //setstakingrewards to 0
93
- ];
94
-
95
- if (executionMethod === "safe") {
96
- return executeViaSafe(
97
- proposalContracts,
98
- proposalEthValues,
99
- proposalFunctionSignatures,
100
- proposalFunctionInputs,
101
- networkName === "localhost"
102
- ? "0xE0c5daa7CC6F88d29505f702a53bb5E67600e7Ec"
103
- : release.GuardiansSafe,
104
- safeOwner
105
- );
106
- } else {
107
- return executeViaGuardian(
108
- proposalContracts,
109
- proposalEthValues,
110
- proposalFunctionSignatures,
111
- proposalFunctionInputs,
112
- root
113
- );
114
- }
115
- };
116
-
117
- export const main = async () => {
118
- await deployMainnet().catch(console.log);
119
- };
120
- if (process.argv[1].includes("v3-fix")) main();
@@ -1,117 +0,0 @@
1
- /***
2
- * This script will deploy a reserve upgrade and the DistributionHelper so that some of the expansion can be allocated
3
- * for non-ubi purposes
4
- * Upgrade process:
5
- * mainnet:
6
- * - deploy reserve
7
- * - deploy distributionHelper
8
- * - create proposal that:
9
- * - upgrades the reserve
10
- * - sets the distributionHelper at reserve with the agreed bps
11
- * - add to the distributionHelper the contracts addresses to receive part of the UBI
12
- */
13
-
14
- import { network, ethers } from "hardhat";
15
- import { defaultsDeep } from "lodash";
16
- import {
17
- deployDeterministic,
18
- printDeploy,
19
- executeViaGuardian,
20
- executeViaSafe,
21
- verifyProductionSigner
22
- } from "../multichain-deploy/helpers";
23
- import { deployWrapper } from "../multichain-deploy/multichainWrapper-deploy";
24
-
25
- import releaser from "../releaser";
26
- import ProtocolSettings from "../../releases/deploy-settings.json";
27
- import dao from "../../releases/deployment.json";
28
- import { BigNumber } from "ethers";
29
- const { name: networkName } = network;
30
-
31
- export const deployFuse = async () => {
32
- const isProduction = networkName.includes("production");
33
- let [root, ...signers] = await ethers.getSigners();
34
-
35
- if (isProduction) verifyProductionSigner(root);
36
-
37
- let executionMethod = "safe";
38
-
39
- const networkKey = networkName === "localhost" ? "production-mainnet" : networkName;
40
- let release: { [key: string]: any } = dao[networkKey];
41
- let settings = defaultsDeep({}, ProtocolSettings[networkName], ProtocolSettings["default"]);
42
-
43
- console.log("got signers:", {
44
- networkName,
45
- networkKey,
46
- root: root.address,
47
- balance: await ethers.provider.getBalance(root.address).then(_ => _.toString())
48
- });
49
-
50
- const Wrapper = await deployWrapper();
51
- // const Wrapper = await ethers.getContractAt("GoodDollarMintBurnWrapper", release.GoodDollarMintBurnWrapper);
52
-
53
- const proposalContracts = [
54
- release.NameService, //nameservice add Wrapper,MultiChainRouter
55
- release.GoodDollar, // give mint rights to Wrapper
56
- Wrapper.address //add multichainrouter as minter
57
- ];
58
-
59
- const proposalEthValues = proposalContracts.map(_ => 0);
60
-
61
- const proposalFunctionSignatures = [
62
- "setAddresses(bytes32[],address[])",
63
- "addMinter(address)",
64
- "addMinter(address,uint256,uint256,uint32,uint256,uint256,uint32,bool)"
65
- ];
66
-
67
- const proposalFunctionInputs = [
68
- ethers.utils.defaultAbiCoder.encode(
69
- ["bytes32[]", "address[]"],
70
- [
71
- [
72
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes("MINTBURN_WRAPPER")),
73
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes("MULTICHAIN_ROUTER"))
74
- ],
75
- [Wrapper.address, release.MultichainRouter]
76
- ]
77
- ), //setAddresses(bytes32[],address[])"
78
- ethers.utils.defaultAbiCoder.encode(["address"], [Wrapper.address]), //addMinter(address)
79
- ethers.utils.defaultAbiCoder.encode(
80
- ["address", "uint256", "uint256", "uint32", "uint256", "uint256", "uint32", "bool"],
81
- [
82
- release.MultichainRouter,
83
- 0,
84
- 0,
85
- 0,
86
- 0,
87
- 300 * 1e6 * 100, //300M G$ 2 decimals
88
- 1000, //10%
89
- false
90
- ]
91
- ) //addMinter(address,uint256,uint256,uint32,uint256,uint256,uint32,bool)
92
- ];
93
-
94
- if (executionMethod === "safe") {
95
- return executeViaSafe(
96
- proposalContracts,
97
- proposalEthValues,
98
- proposalFunctionSignatures,
99
- proposalFunctionInputs,
100
- networkName === "localhost" ? "0xE0c5daa7CC6F88d29505f702a53bb5E67600e7Ec" : release.GuardiansSafe,
101
- "fuse"
102
- );
103
- } else {
104
- return executeViaGuardian(
105
- proposalContracts,
106
- proposalEthValues,
107
- proposalFunctionSignatures,
108
- proposalFunctionInputs,
109
- root
110
- );
111
- }
112
- };
113
-
114
- export const main = async () => {
115
- await deployFuse().catch(console.log);
116
- };
117
- if (process.argv[1].includes("v3-fuse-multichain")) main();
@@ -1,219 +0,0 @@
1
- /***
2
- * This script will deploy a reserve upgrade and the DistributionHelper so that some of the expansion can be allocated
3
- * for non-ubi purposes
4
- * Upgrade process:
5
- * mainnet:
6
- * - deploy reserve
7
- * - deploy distributionHelper
8
- * - create proposal that:
9
- * - upgrades the reserve
10
- * - sets the distributionHelper at reserve with the agreed bps
11
- * - add to the distributionHelper the contracts addresses to receive part of the UBI
12
- */
13
-
14
- import { network, ethers } from "hardhat";
15
-
16
- import {
17
- deployDeterministic,
18
- printDeploy,
19
- executeViaGuardian,
20
- executeViaSafe
21
- } from "../multichain-deploy/helpers";
22
-
23
- import releaser from "../releaser";
24
- import dao from "../../releases/deployment.json";
25
- import {
26
- CompoundVotingMachine,
27
- DistributionHelper,
28
- Controller,
29
- NameService
30
- } from "../../types";
31
- const { name: networkName } = network;
32
-
33
- export const deployMainnet = async () => {
34
- let [root, ...signers] = await ethers.getSigners();
35
-
36
- let executionMethod = "safe";
37
- let communitySafe = "0x5Eb5f5fE13d1D5e6440DbD5913412299Bc5B5564";
38
-
39
- const networkKey =
40
- networkName === "localhost" ? "production-mainnet" : networkName;
41
- let release: { [key: string]: any } = dao[networkKey];
42
-
43
- let safeOwner = new ethers.Wallet(
44
- process.env.SAFEOWNER_PRIVATE_KEY || ethers.constants.HashZero,
45
- ethers.provider
46
- );
47
- //test with guardians safe on hardhat mainnet fork
48
- if (network.name === "localhost") {
49
- root = await ethers.getImpersonatedSigner(
50
- "0xE0c5daa7CC6F88d29505f702a53bb5E67600e7Ec"
51
- );
52
- await signers[0].sendTransaction({
53
- to: root.address,
54
- value: ethers.constants.WeiPerEther
55
- });
56
- }
57
-
58
- console.log("got signers:", {
59
- networkName,
60
- networkKey,
61
- root: root.address,
62
- safeOwner: safeOwner.address,
63
- balance: await ethers.provider
64
- .getBalance(root.address)
65
- .then(_ => _.toString())
66
- });
67
-
68
- console.log("deploying reserve implementation");
69
- const reserveImpl = await (
70
- await ethers.getContractFactory("GoodReserveCDai")
71
- ).deploy();
72
-
73
- console.log("deploying DistributionHelper");
74
-
75
- let DHelper: DistributionHelper;
76
- if (!release.DistributionHelper) {
77
- DHelper = (await deployDeterministic(
78
- {
79
- name: "DistributionHelper",
80
- salt: "DistributionHelper",
81
- isUpgradeable: true
82
- },
83
- [release.NameService]
84
- ).then(printDeploy)) as DistributionHelper;
85
-
86
- let torelease = {
87
- DistributionHelper: DHelper.address
88
- };
89
-
90
- await releaser(torelease, networkName, "deployment", false);
91
- } else {
92
- DHelper = (await ethers.getContractAt(
93
- "DistributionHelper",
94
- release.DistributionHelper
95
- )) as DistributionHelper;
96
- }
97
- DHelper;
98
-
99
- const ns = (await ethers.getContractAt(
100
- "NameService",
101
- release.NameService
102
- )) as NameService;
103
-
104
- const proposalContracts = [
105
- ns.address, //nameservice add DistributionHelper,MultiChainRouter,MultiChain AnyGoodDollar,
106
- DHelper.address, //update addresses from nameservice
107
- DHelper.address, //distribution helper -> add fuse community pool as recipient with 100%
108
- release.GoodReserveCDai, //upgradeTo
109
- release.GoodReserveCDai, //Reserve -> set distribution helper + non ubi bps
110
- release.GoodReserveCDai, //Reserve -> set new decline rate
111
- release.GoodFundManager, //Fundmanager -> set staking rewards compound to 0
112
- release.GoodFundManager //Fundmanager -> set staking rewards aave to 0
113
- ];
114
-
115
- const proposalEthValues = proposalContracts.map(_ => 0);
116
-
117
- const proposalFunctionSignatures = [
118
- "setAddresses(bytes32[],address[])",
119
- "updateAddresses()",
120
- "addOrUpdateRecipient((uint32,uint32,address,uint8))",
121
- "upgradeTo(address)",
122
- "setDistributionHelper(address,uint32)",
123
- "setReserveRatioDailyExpansion(uint256,uint256)",
124
- "setStakingReward(uint32,address,uint32,uint32,bool)",
125
- "setStakingReward(uint32,address,uint32,uint32,bool)"
126
- ];
127
-
128
- const proposalFunctionInputs = [
129
- ethers.utils.defaultAbiCoder.encode(
130
- ["bytes32[]", "address[]"],
131
- [
132
- [
133
- ethers.utils.keccak256(
134
- ethers.utils.toUtf8Bytes("DISTRIBUTION_HELPER")
135
- ),
136
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes("MULTICHAIN_ROUTER")),
137
- ethers.utils.keccak256(
138
- ethers.utils.toUtf8Bytes("MULTICHAIN_ANYGOODDOLLAR")
139
- )
140
- ],
141
- [DHelper.address, release.MultichainRouter, release.AnyGoodDollar]
142
- ]
143
- ), //setAddresses(bytes32[],address[])"
144
- ethers.utils.defaultAbiCoder.encode([], []), //updateAddresses()
145
- ethers.utils.defaultAbiCoder.encode(
146
- ["uint32", "uint32", "address", "uint8"],
147
- [
148
- 10000, //100% bps
149
- 122, //chainid
150
- communitySafe, //recipient address,
151
- 0 //recipient type via fuse bridge
152
- ]
153
- ), //addOrUpdateRecipient((uint32,uint32,address,uint8))
154
- ethers.utils.defaultAbiCoder.encode(["address"], [reserveImpl.address]), //upgradeTo(address)
155
- ethers.utils.defaultAbiCoder.encode(
156
- ["address", "uint32"],
157
- [DHelper.address, 1000]
158
- ), //setDistributionHelper(address,uint32)
159
- ethers.utils.defaultAbiCoder.encode(
160
- ["uint256", "uint256"],
161
- ["999554841771249", "1000000000000000"] //15% a year
162
- ), //setReserveRatioDailyExpansion(uint,uint)
163
- ethers.utils.defaultAbiCoder.encode(
164
- ["uint32", "address", "uint32", "uint32", "bool"],
165
- [
166
- "0",
167
- "0x7b7246c78e2f900d17646ff0cb2ec47d6ba10754",
168
- "14338692",
169
- "4294967295",
170
- false
171
- ]
172
- ), //setstakingrewards to 0
173
- ethers.utils.defaultAbiCoder.encode(
174
- ["uint32", "address", "uint32", "uint32", "bool"],
175
- [
176
- "0",
177
- "0x3ff2d8eb2573819a9ef7167d2ba6fd6d31b17f4f",
178
- "14338692",
179
- "4294967295",
180
- false
181
- ]
182
- ) //setstakingrewards to 0
183
- ];
184
-
185
- //make sure rewards accumulated before we set them to 0
186
- const staking = await ethers.getContractAt(
187
- "SimpleStakingV2",
188
- "0x7b7246c78e2f900d17646ff0cb2ec47d6ba10754"
189
- );
190
- (await staking.withdrawRewards()).wait();
191
- staking.attach("0x3ff2d8eb2573819a9ef7167d2ba6fd6d31b17f4f");
192
- (await staking.withdrawRewards()).wait();
193
-
194
- if (executionMethod === "safe") {
195
- return executeViaSafe(
196
- proposalContracts,
197
- proposalEthValues,
198
- proposalFunctionSignatures,
199
- proposalFunctionInputs,
200
- networkName === "localhost"
201
- ? "0xE0c5daa7CC6F88d29505f702a53bb5E67600e7Ec"
202
- : release.GuardiansSafe,
203
- safeOwner
204
- );
205
- } else {
206
- return executeViaGuardian(
207
- proposalContracts,
208
- proposalEthValues,
209
- proposalFunctionSignatures,
210
- proposalFunctionInputs,
211
- root
212
- );
213
- }
214
- };
215
-
216
- export const main = async () => {
217
- await deployMainnet().catch(console.log);
218
- };
219
- if (process.argv[1].includes("v3-upgrade")) main();
@@ -1,184 +0,0 @@
1
- /**
2
- * Step 1:
3
- * - upgrade Identity on Fuse to support whitelisting with chainid
4
- *
5
- * Step 2:
6
- * - deploy 2_helpers on Celo
7
- * - add 1000 celo to adminwallet and faucet
8
- * - monitor adminwallet + faucet on defender
9
- *
10
- * Step 3: (once guardians sign Identity upgrade)
11
- * - upgrade AdminWallet+Invites+Faucet on Fuse to support whitelisting chainid
12
- * - upgrade backend server to support whitelisting with chainid
13
- *
14
- * Step 4:
15
- * 0. deploy 3_gdStaking, deploy 4_ubi
16
- * 1. guardians vote send X% to celo ubi pool
17
- * 2. guardians vote on celo set new GOOD distribution for gdstaking + claiming ubi
18
- * 3. guardians vote on fuse set new GOOD distribution for gdstaking + claiming ubi
19
- *
20
- * NOTICE: decide if to remove "upgrade" method from gdStaking before deploying it. based on GOOD distribution decision
21
- */
22
-
23
- import { network, ethers, upgrades } from "hardhat";
24
- import { defaultsDeep } from "lodash";
25
- import prompt from "prompt";
26
-
27
- import {
28
- executeViaGuardian,
29
- executeViaSafe,
30
- verifyProductionSigner,
31
- verifyContract
32
- } from "../multichain-deploy/helpers";
33
- import ProtocolSettings from "../../releases/deploy-settings.json";
34
- import dao from "../../releases/deployment.json";
35
- import { upgrade as identityUpgrade } from "./identity-upgrade";
36
- import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
37
- import { deployHelpers } from "../multichain-deploy/2_helpers-deploy";
38
-
39
- const { name: networkName } = network;
40
- const isProduction = networkName.includes("production");
41
-
42
- let settings = defaultsDeep({}, ProtocolSettings[networkName], ProtocolSettings["default"]);
43
-
44
- const step1 = async () => {
45
- await identityUpgrade();
46
- };
47
-
48
- const step2 = async () => {
49
- await deployHelpers();
50
- };
51
-
52
- const step3 = async () => {
53
- let release: { [key: string]: any } = dao[networkName];
54
- let [root] = await ethers.getSigners();
55
-
56
- if (isProduction) verifyProductionSigner(root);
57
-
58
- const adminimpl = await (await ethers.getContractFactory("AdminWalletFuse")).deploy();
59
- const curadmin = adminimpl.attach(release.AdminWallet);
60
- console.log("deployed admin impl", adminimpl.address);
61
- const encodedAdmin = adminimpl.interface.encodeFunctionData("upgrade", [release.NameService]);
62
- const upgradetx = await (await curadmin.upgradeToAndCall(adminimpl.address, encodedAdmin)).wait();
63
- const impl = adminimpl.address;
64
- console.log("AdminWallet upgraded", { impl, txhash: upgradetx.transactionHash });
65
- await verifyContract(impl, "AdminWalletFuse", networkName);
66
-
67
- const faucetimpl = await (await ethers.getContractFactory("FuseFaucetV2")).deploy();
68
- const proxyAdmin = await ethers.getContractAt("ProxyAdmin", release.ProxyAdmin);
69
- const encoded = faucetimpl.interface.encodeFunctionData("upgrade", [
70
- release.AdminWallet,
71
- root.address,
72
- release.NameService
73
- ]);
74
- const faucettx = await (await proxyAdmin.upgradeAndCall(release.FuseFaucet, faucetimpl.address, encoded)).wait();
75
- console.log("Faucet upgraded", faucettx.transactionHash);
76
- await verifyContract(faucetimpl.address, "FuseFaucetV2", networkName);
77
-
78
- const invitesimpl = await (await ethers.getContractFactory("InvitesFuseV2")).deploy();
79
- const invitestx = await (await proxyAdmin.upgrade(release.Invites, invitesimpl.address)).wait();
80
- console.log("Invites upgraded", invitestx.transactionHash);
81
- await verifyContract(invitesimpl.address, "InvitesFuseV2", networkName);
82
-
83
- console.log("upgrade backend contracts abi + call whitelist with chainid....");
84
- };
85
-
86
- const step4 = async () => {
87
- // let [root, ...signers] = await ethers.getSigners();
88
-
89
- const isSafeSimulation = process.env.SAFE_SIMULATION === "true";
90
- const celoSigner = ethers.Wallet.fromMnemonic(process.env.MNEMONIC)
91
- .connect(ethers.provider)
92
- .connect(new ethers.providers.JsonRpcProvider("https://forno.celo.org"));
93
- const fuseSigner = ethers.Wallet.fromMnemonic(process.env.MNEMONIC)
94
- .connect(ethers.provider)
95
- .connect(new ethers.providers.JsonRpcProvider("https://rpc.fuse.io"));
96
- let networkEnv = networkName.split("-")[0];
97
- if (networkEnv === "fuse") networkEnv = "development";
98
-
99
- const celoNetwork = networkEnv + "-celo";
100
- const mainnetNetwork = "production-mainnet"; //simulate production on localhost requires running hardhat node in fork mode
101
-
102
- console.log("updating dao on networks:", { isSafeSimulation, celoNetwork, mainnetNetwork, networkName });
103
- let release: { [key: string]: any } = dao[networkName];
104
-
105
- const mainnetDeploy: [any, any, any, any] = [
106
- [dao[mainnetNetwork].DistributionHelper],
107
- [0],
108
- ["addOrUpdateRecipient((uint32,uint32,address,uint8))"],
109
- [
110
- ethers.utils.defaultAbiCoder.encode(
111
- ["uint32", "uint32", "address", "uint8"],
112
- [1000, 42220, dao[celoNetwork].UBIScheme, 1]
113
- )
114
- ]
115
- ];
116
- const fuseDeploy: [any, any, any, any] = [
117
- [release.ClaimersDistribution, release.GovernanceStakingV2 || release.GovernanceStaking],
118
- [0, 0],
119
- ["setMonthlyReputationDistribution(uint256)", "setMonthlyRewards(uint256)"],
120
- [
121
- ethers.utils.defaultAbiCoder.encode(["uint256"], [settings.governance.claimersGOODMonthly]),
122
- ethers.utils.defaultAbiCoder.encode(["uint256"], [settings.governance.stakersGOODMonthly])
123
- ]
124
- ];
125
- const celoDeploy: [any, any, any, any] = [
126
- [dao[celoNetwork].ClaimersDistribution, dao[celoNetwork].GoodDollarStaking],
127
- [0, 0],
128
- ["setMonthlyReputationDistribution(uint256)", "setMonthlyGOODRewards(uint256)"],
129
- [
130
- ethers.utils.defaultAbiCoder.encode(["uint256"], [ProtocolSettings[celoNetwork].governance.claimersGOODMonthly]),
131
- ethers.utils.defaultAbiCoder.encode(["uint256"], [ProtocolSettings[celoNetwork].governance.stakersGOODMonthly])
132
- ]
133
- ];
134
- if (isProduction || isSafeSimulation) {
135
- console.log("executing dao updates on mainnet via guardianssafe...", { isProduction, isSafeSimulation });
136
- await executeViaSafe(
137
- ...mainnetDeploy,
138
- isSafeSimulation ? "0xF0652a820dd39EC956659E0018Da022132f2f40a" : dao[mainnetNetwork].GuardiansSafe,
139
- "mainnet",
140
- isSafeSimulation
141
- );
142
- console.log("executing dao updates on fuse via guardianssafe...", dao[networkName].GuardiansSafe);
143
- await executeViaSafe(...fuseDeploy, dao[networkName].GuardiansSafe, "fuse", isSafeSimulation);
144
- console.log("executing dao updates on celo via guardianssafe...", dao[celoNetwork].GuardiansSafe);
145
- await executeViaSafe(...celoDeploy, dao[celoNetwork].GuardiansSafe, "celo", isSafeSimulation);
146
- } else {
147
- const forkProvider = new ethers.providers.JsonRpcProvider("http://localhost:8545");
148
- const ethSigner = await SignerWithAddress.create(
149
- forkProvider.getSigner("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266")
150
- );
151
- await forkProvider.send("hardhat_impersonateAccount", [dao[mainnetNetwork].GuardiansSafe]);
152
- const guardiansSigner = await SignerWithAddress.create(forkProvider.getSigner(dao[mainnetNetwork].GuardiansSafe));
153
- await ethSigner.sendTransaction({ value: ethers.constants.WeiPerEther, to: guardiansSigner.address });
154
-
155
- console.log("executing dao updates on mainnet...");
156
- await executeViaGuardian(...mainnetDeploy, guardiansSigner, "production-mainnet"); //simulate production on localhost requires running hardhat node in fork mode
157
- console.log("executing dao updates on fuse...");
158
- await executeViaGuardian(...fuseDeploy, fuseSigner, networkName);
159
- console.log("executing dao updates on celo...");
160
- await executeViaGuardian(...celoDeploy, celoSigner, celoNetwork);
161
- }
162
- };
163
-
164
- const main = async () => {
165
- prompt.start();
166
- const { stepNumber } = await prompt.get(["stepNumber"]);
167
-
168
- console.log("running step:", { stepNumber });
169
- switch (stepNumber) {
170
- case "1":
171
- await step1();
172
- break;
173
- case "2":
174
- await step2();
175
- break;
176
- case "3":
177
- await step3();
178
- break;
179
- case "4":
180
- await step4();
181
- break;
182
- }
183
- };
184
- main().catch(e => console.error(e));