@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.
- package/artifacts/abis/BuyFromReserveHelper.min.json +1 -0
- package/artifacts/abis/Faucet.min.json +1 -1
- package/artifacts/abis/GoodDollar2.min.json +1 -0
- package/artifacts/abis/ISuperToken.min.json +1 -1
- package/artifacts/abis/IdentityV3.min.json +1 -0
- package/artifacts/abis/SuperGoodDollar.min.json +1 -1
- package/artifacts/abis/SuperToken.min.json +1 -1
- package/artifacts/abis/SuperfluidFaucet.min.json +1 -1
- package/artifacts/abis/UBISchemeV2.min.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
- package/artifacts/contracts/IQuoter.sol/IQuoterV2.dbg.json +4 -0
- package/artifacts/contracts/IQuoter.sol/IQuoterV2.json +211 -0
- package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
- package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +57 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +2 -2
- package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.json +46 -28
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
- package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
- package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +4 -0
- package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +1089 -0
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +2 -2
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +2 -2
- package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
- package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.json +2 -2
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +2 -2
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.json +2 -2
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.json +2 -2
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +2 -2
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +2 -2
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +2 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -2
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +2 -2
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +2 -2
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
- package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +2 -2
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +2 -2
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +2 -2
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +2 -2
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +2 -2
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +2 -2
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +2 -2
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +2 -2
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +2 -2
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +2 -2
- package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.json +2 -2
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +2 -2
- package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +2 -2
- package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +4 -0
- package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.json +1206 -0
- package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.json +2 -2
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.json +0 -52
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2 -74
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +2 -54
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +2 -7
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +2 -2
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
- package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.json +2 -2
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
- package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +4 -0
- package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.json +476 -0
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.json +2 -2
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.json +2 -2
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.json +2 -2
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.json +2 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
- package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
- package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.json +2 -2
- package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
- package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.json +2 -2
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/NameService.sol/NameService.json +2 -2
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.json +2 -2
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.json +2 -2
- package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
- package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
- package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
- package/artifacts/contracts/utils/ReserveRestore.sol/ReserveRestore.json +2 -2
- package/contracts/IQuoter.sol +108 -0
- package/contracts/fuseFaucet/Faucet.sol +49 -37
- package/contracts/fuseFaucet/SuperfluidFacuet.sol +29 -8
- package/contracts/identity/IdentityV3.sol +534 -0
- package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +8 -9
- package/contracts/token/GoodDollar.sol +1 -1
- package/contracts/token/GoodDollar2.sol +13 -0
- package/contracts/token/superfluid/ISuperToken.sol +0 -19
- package/contracts/token/superfluid/SuperGoodDollar.sol +2 -21
- package/contracts/token/superfluid/SuperToken.sol +2 -2
- package/contracts/token/superfluid/SuperfluidToken.sol +66 -67
- package/contracts/ubi/UBISchemeV2.sol +12 -18
- package/contracts/utils/BuyFromReserveHelper.sol +129 -0
- package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
- package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +177 -256
- package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
- package/dist/test-sdk/deploySuperGoodDollar.d.ts +1 -1
- package/dist/test-sdk/deploySuperGoodDollar.js +4 -8
- package/dist/test-sdk/index.js +1 -5
- package/hardhat.config.ts +37 -30
- package/package.json +3 -2
- package/releases/deploy-settings.json +5 -1
- package/releases/deployment.json +27 -1
- package/releases/olddao.json +1 -1
- package/scripts/analytics/activeGDStakers.ts +188 -0
- package/scripts/fv.ts +19 -1
- package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +28 -5
- package/scripts/multichain-deploy/1_basicdao-deploy.ts +111 -73
- package/scripts/multichain-deploy/2_helpers-deploy.ts +13 -8
- package/scripts/multichain-deploy/4_ubi-deploy.ts +17 -19
- package/scripts/multichain-deploy/5_gov-deploy.ts +58 -26
- package/scripts/multichain-deploy/flattened/Avatar.sol +913 -0
- package/scripts/multichain-deploy/flattened/Controller.sol +1891 -0
- package/scripts/multichain-deploy/flattened/FeeFormula.sol +1290 -0
- package/scripts/multichain-deploy/fulldeploy.sh +17 -17
- package/scripts/multichain-deploy/helpers.ts +203 -70
- package/scripts/multichain-deploy/verify.ts +41 -0
- package/test/governance/ClaimersDistribution.test.ts +1 -1
- package/test/helpers.ts +59 -46
- package/test/identity/IdentityV2.test.ts +4 -1
- package/test/identity/IdentityV3.test.ts +449 -0
- package/test/invite/InvitesV2.test.ts +1 -1
- package/test/token/GoodDollar.test.ts +1 -1
- package/test/token/SuperGoodDollar.nohost.test.ts +383 -0
- package/test/token/SuperGoodDollar.test.ts +2 -10
- package/test/ubi/UBIScheme.e2e.test.ts +5 -5
- package/test/ubi/UBISchemeCycle.test.ts +69 -22
- package/test/ubi/UBISchemeV2.test.ts +636 -0
- package/test/utils/AdminWallet.test.ts +1 -1
- package/test/utils/ProxyFactory.test.ts +4 -1
- package/types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.ts +108 -0
- package/types/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
- package/types/contracts/IQuoter.sol/IQuoterV2.ts +297 -0
- package/types/contracts/IQuoter.sol/index.ts +4 -0
- package/types/contracts/Interfaces.sol/AToken.ts +81 -0
- package/types/contracts/Interfaces.sol/IAaveIncentivesControllerV3.ts +156 -0
- package/types/contracts/Interfaces.sol/ILendingPoolV3.ts +254 -0
- package/types/contracts/fuseFaucet/Faucet.ts +109 -11
- package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor.ts +648 -0
- package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable.ts +843 -0
- package/types/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
- package/types/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.ts +79 -41
- package/types/contracts/identity/IdentityV3.ts +1899 -0
- package/types/contracts/identity/index.ts +1 -0
- package/types/contracts/index.ts +2 -0
- package/types/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper.ts +1252 -0
- package/types/contracts/reserve/GoodReserveADai.ts +2212 -0
- package/types/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2.ts +1808 -0
- package/types/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
- package/types/contracts/token/GoodDollar18.ts +1871 -0
- package/types/contracts/token/GoodDollar2.ts +1871 -0
- package/types/contracts/token/index.ts +1 -0
- package/types/contracts/token/superfluid/ISuperToken.ts +0 -84
- package/types/contracts/token/superfluid/SuperGoodDollar.ts +12 -126
- package/types/contracts/token/superfluid/SuperToken.ts +0 -84
- package/types/contracts/ubi/UBISchemeV2.ts +3 -14
- package/types/contracts/utils/BuyFromReserveHelper.ts +699 -0
- package/types/contracts/utils/BuyGDClone.sol/IQuoterV2.ts +184 -0
- package/types/contracts/utils/BuyGDClone.sol/ISwapRouter.ts +306 -0
- package/types/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677.ts +108 -0
- package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange.ts +81 -0
- package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.ts +161 -0
- package/types/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
- package/types/contracts/utils/ReserveRestore.sol/MentoExchange.ts +81 -0
- package/types/contracts/utils/ReserveRestore.sol/ReserveRestore.ts +112 -0
- package/types/contracts/utils/ReserveRestore.sol/index.ts +5 -0
- package/types/contracts/utils/index.ts +1 -0
- package/types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.ts +146 -0
- package/types/factories/@openzeppelin/contracts/proxy/ERC1967/index.ts +1 -0
- package/types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +1 -1
- package/types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.ts +1 -1
- package/types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/presets/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
- package/types/factories/@superfluid-finance/ethereum-contracts/contracts/libs/EventsEmitter__factory.ts +1 -1
- package/types/factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/ConstantInflowNFT__factory.ts +1 -1
- package/types/factories/@superfluid-finance/ethereum-contracts/contracts/superfluid/ConstantOutflowNFT__factory.ts +1 -1
- package/types/factories/contracts/IQuoter.sol/IQuoterV2__factory.ts +226 -0
- package/types/factories/contracts/IQuoter.sol/index.ts +4 -0
- package/types/factories/contracts/Interfaces.sol/AToken__factory.ts +36 -0
- package/types/factories/contracts/Interfaces.sol/IAaveIncentivesControllerV3__factory.ts +88 -0
- package/types/factories/contracts/Interfaces.sol/ILendingPoolV3__factory.ts +186 -0
- package/types/factories/contracts/fuseFaucet/Faucet__factory.ts +56 -1
- package/types/factories/contracts/fuseFaucet/FuseFaucetV2__factory.ts +1 -1
- package/types/factories/contracts/fuseFaucet/FuseFaucet__factory.ts +1 -1
- package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributorUpgradeable__factory.ts +572 -0
- package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/EthDistributor__factory.ts +482 -0
- package/types/factories/contracts/fuseFaucet/SuperfluidBaseFacuet.sol/index.ts +4 -0
- package/types/factories/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet__factory.ts +45 -27
- package/types/factories/contracts/governance/ClaimersDistribution__factory.ts +1 -1
- package/types/factories/contracts/governance/CompoundVotingMachine__factory.ts +1 -1
- package/types/factories/contracts/governance/GReputation__factory.ts +1 -1
- package/types/factories/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking__factory.ts +1 -1
- package/types/factories/contracts/governance/GovernanceStaking__factory.ts +1 -1
- package/types/factories/contracts/governance/Reputation__factory.ts +1 -1
- package/types/factories/contracts/governance/StakersDistribution__factory.ts +1 -1
- package/types/factories/contracts/identity/IdentityV2__factory.ts +1 -1
- package/types/factories/contracts/identity/IdentityV3__factory.ts +1140 -0
- package/types/factories/contracts/identity/index.ts +1 -0
- package/types/factories/contracts/index.ts +1 -0
- package/types/factories/contracts/invite/InvitesFuseV2__factory.ts +1 -1
- package/types/factories/contracts/invite/InvitesV1__factory.ts +1 -1
- package/types/factories/contracts/invite/InvitesV2__factory.ts +1 -1
- package/types/factories/contracts/invite/OneTimeReward__factory.ts +1 -1
- package/types/factories/contracts/mocks/AaveMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/AaveUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/BatUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/CBATMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDAILowWorthMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDAIMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDAINonMintableMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CDecimalsMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CSDTMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CUSDCMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper__factory.ts +1 -1
- package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/CeloDistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +929 -0
- package/types/factories/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/DAIMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/DaiEthPriceMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/DecimalsMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/DistributionBridgeMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper__factory.ts +1 -1
- package/types/factories/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/EthUSDMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/GasPriceMockOracle__factory.ts +1 -1
- package/types/factories/contracts/mocks/GoodCompoundStakingTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/GoodDollarStakingMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/GoodFundManagerTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/IdentityMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/IncentiveControllerMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/LendingPoolMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/OverMintTester.sol/OverMintTester__factory.ts +1 -1
- package/types/factories/contracts/mocks/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/contracts/mocks/PayableMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/SixteenDecimalsTokenMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/StakingMockFixedAPY__factory.ts +1 -1
- package/types/factories/contracts/mocks/SwapHelperTest__factory.ts +1 -1
- package/types/factories/contracts/mocks/TwentyDecimalsTokenMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock2__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock3__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock4__factory.ts +1 -1
- package/types/factories/contracts/mocks/UpgradableMocks.sol/UpgradableMock__factory.ts +1 -1
- package/types/factories/contracts/mocks/UsdcMock.sol/USDCMock__factory.ts +1 -1
- package/types/factories/contracts/reserve/CeloDistributionHelper__factory.ts +1 -1
- package/types/factories/contracts/reserve/DistributionHelper__factory.ts +1 -1
- package/types/factories/contracts/reserve/ExchangeHelper__factory.ts +1 -1
- package/types/factories/contracts/reserve/GoodMarketMaker__factory.ts +1 -1
- package/types/factories/contracts/reserve/GoodReserveADai__factory.ts +1502 -0
- package/types/factories/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai__factory.ts +1 -1
- package/types/factories/contracts/staking/BaseShareFieldV2__factory.ts +1 -1
- package/types/factories/contracts/staking/BaseShareField__factory.ts +1 -1
- package/types/factories/contracts/staking/DonationsStaking__factory.ts +1 -1
- package/types/factories/contracts/staking/FuseStakingV3.sol/FuseStakingV3__factory.ts +1 -1
- package/types/factories/contracts/staking/GoodFundManager__factory.ts +1 -1
- package/types/factories/contracts/staking/UniswapV2SwapHelper__factory.ts +1 -1
- package/types/factories/contracts/staking/aave/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/GoodAaveStakingV2__factory.ts +1240 -0
- package/types/factories/contracts/staking/aave/GoodAave3StakingV2.sol/index.ts +4 -0
- package/types/factories/contracts/staking/aave/GoodAaveStakingV2__factory.ts +1 -1
- package/types/factories/contracts/staking/aave/GoodAaveStaking__factory.ts +1 -1
- package/types/factories/contracts/staking/compound/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/contracts/staking/compound/GoodCompoundStakingV2__factory.ts +1 -1
- package/types/factories/contracts/staking/compound/GoodCompoundStaking__factory.ts +1 -1
- package/types/factories/contracts/token/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
- package/types/factories/contracts/token/GoodDollar18__factory.ts +1257 -0
- package/types/factories/contracts/token/GoodDollar2__factory.ts +1257 -0
- package/types/factories/contracts/token/GoodDollar__factory.ts +1 -1
- package/types/factories/contracts/token/MultichainFeeFormula__factory.ts +1 -1
- package/types/factories/contracts/token/index.ts +1 -0
- package/types/factories/contracts/token/superfluid/ISuperToken__factory.ts +0 -52
- package/types/factories/contracts/token/superfluid/SuperGoodDollar__factory.ts +1 -73
- package/types/factories/contracts/token/superfluid/SuperToken__factory.ts +1 -53
- package/types/factories/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy__factory.ts +1 -1
- package/types/factories/contracts/ubi/UBISchemeV2__factory.ts +1 -6
- package/types/factories/contracts/ubi/UBIScheme__factory.ts +1 -1
- package/types/factories/contracts/utils/AdminWalletFuse__factory.ts +1 -1
- package/types/factories/contracts/utils/AdminWallet__factory.ts +1 -1
- package/types/factories/contracts/utils/BancorFormula__factory.ts +1 -1
- package/types/factories/contracts/utils/BulkWhitelist__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyAndBridgeHelper__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyFromReserveHelper__factory.ts +566 -0
- package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyGDClone.sol/BuyGDClone__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyGDClone.sol/DonateGDClone__factory.ts +1 -1
- package/types/factories/contracts/utils/BuyGDClone.sol/IQuoterV2__factory.ts +126 -0
- package/types/factories/contracts/utils/BuyGDClone.sol/ISwapRouter__factory.ts +220 -0
- package/types/factories/contracts/utils/DAOContract__factory.ts +1 -1
- package/types/factories/contracts/utils/DAOUpgradeableContract__factory.ts +1 -1
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/BasicAMBErc677ToErc677__factory.ts +86 -0
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill__factory.ts +1 -1
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/Initializable__factory.ts +1 -1
- package/types/factories/contracts/utils/FuseOldBridgeKill.sol/Ownable__factory.ts +1 -1
- package/types/factories/contracts/utils/GDFaucet__factory.ts +1 -1
- package/types/factories/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper__factory.ts +1 -1
- package/types/factories/contracts/utils/IdentityFix__factory.ts +1 -1
- package/types/factories/contracts/utils/LastauthReduction__factory.ts +1 -1
- package/types/factories/contracts/utils/MultiCall.sol/Multicall__factory.ts +1 -1
- package/types/factories/contracts/utils/MultichainBridgeHelper__factory.ts +1 -1
- package/types/factories/contracts/utils/NameService__factory.ts +1 -1
- package/types/factories/contracts/utils/OneTimePaymentsV2__factory.ts +1 -1
- package/types/factories/contracts/utils/OneTimePayments__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeFuseRecover__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeFuse__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeRecover__factory.ts +1 -1
- package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/MentoExchange__factory.ts +39 -0
- package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/ProtocolUpgradeV4Mento__factory.ts +152 -0
- package/types/factories/contracts/utils/ProtocolUpgradeV4Mento.sol/index.ts +5 -0
- package/types/factories/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy__factory.ts +1 -1
- package/types/factories/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967__factory.ts +1 -1
- package/types/factories/contracts/utils/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/contracts/utils/ReserveRestore.sol/MentoExchange__factory.ts +39 -0
- package/types/factories/contracts/utils/ReserveRestore.sol/ReserveRestore__factory.ts +95 -0
- package/types/factories/contracts/utils/ReserveRestore.sol/index.ts +5 -0
- package/types/factories/contracts/utils/ReserveRestore__factory.ts +1 -1
- package/types/factories/contracts/utils/index.ts +1 -0
- package/types/hardhat.d.ts +45 -0
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
14
|
-
fi
|
|
15
|
-
npx hardhat run ./scripts/multichain-deploy/3_gdSavings-deploy.ts --network $NETWORK
|
|
16
|
-
if [ $? != 0 ]; then
|
|
17
|
-
|
|
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
|
-
|
|
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
|
|
3
|
-
import * as safeethers from "ethers";
|
|
3
|
+
import { network, ethers } from "hardhat";
|
|
4
4
|
import { TransactionResponse, TransactionReceipt } from "@ethersproject/providers";
|
|
5
|
-
|
|
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
|
|
12
|
-
import { MetaTransactionData
|
|
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
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
103
|
-
](...tokenArgs
|
|
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
|
-
|
|
112
|
+
if (withNFTs) {
|
|
113
|
+
const constantInflowNFT = await ethers.getContractAt("ConstantInflowNFT", InFlowNFT.address);
|
|
108
114
|
|
|
109
|
-
|
|
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
|
-
|
|
466
|
+
maybeProxy: boolean = true,
|
|
426
467
|
forcedConstructorArguments?: string
|
|
427
468
|
) => {
|
|
428
|
-
const
|
|
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)
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
73
|
-
|
|
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
|
-
|
|
80
|
-
|
|
70
|
+
const constantInflowNFT = await ethers.deployContract("ConstantInflowNFT", [
|
|
71
|
+
sfContracts.host,
|
|
72
|
+
outNftProxy.address
|
|
73
|
+
]);
|
|
81
74
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
|
|
99
|
-
.
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
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
|
-
|
|
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 (
|
|
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(
|
|
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("
|
|
515
|
-
[nameService.address
|
|
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(
|
|
30
|
+
} = await loadFixture(createDAOv2);
|
|
28
31
|
|
|
29
32
|
genericCall = gc;
|
|
30
33
|
identity = (await ethers.getContractAt("IdentityV2", idv2)) as IdentityV2;
|