@gooddollar/goodprotocol 1.0.31-beta.0 → 2.0.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.
- package/README.md +25 -0
- package/artifacts/abis/AaveMock.min.json +1 -1
- package/artifacts/abis/AaveStakingFactory.min.json +1 -1
- package/artifacts/abis/AdminWallet.min.json +1 -1
- package/artifacts/abis/AdminWalletFuse.min.json +1 -0
- package/artifacts/abis/BuyAndBridgeHelper.min.json +1 -0
- package/artifacts/abis/ClaimersDistribution.min.json +1 -1
- package/artifacts/abis/CompoundStakingFactory.min.json +1 -1
- package/artifacts/abis/CompoundVotingMachine.min.json +1 -1
- package/artifacts/abis/DAIMock.min.json +1 -1
- package/artifacts/abis/DAOUpgradeableContract.min.json +1 -1
- package/artifacts/abis/DecimalsMock.min.json +1 -1
- package/artifacts/abis/DistributionHelper.min.json +1 -1
- package/artifacts/abis/DistributionHelperTest.min.json +1 -1
- package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
- package/artifacts/abis/DonationsStaking.min.json +1 -1
- package/artifacts/abis/ERC20Permit.min.json +1 -0
- package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
- package/artifacts/abis/ERC677.min.json +1 -0
- package/artifacts/abis/ERC677Receiver.min.json +1 -0
- package/artifacts/abis/ExchangeHelper.min.json +1 -1
- package/artifacts/abis/Faucet.min.json +1 -0
- package/artifacts/abis/FeesFormulaMock.min.json +1 -0
- package/artifacts/abis/FuseFaucet.min.json +1 -1
- package/artifacts/abis/FuseFaucetV2.min.json +1 -0
- package/artifacts/abis/FuseStakingV3.min.json +1 -1
- package/artifacts/abis/GReputation.min.json +1 -1
- package/artifacts/abis/GoodAaveStaking.min.json +1 -1
- package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
- package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
- package/artifacts/abis/GoodDollar.min.json +1 -0
- package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -1
- package/artifacts/abis/GoodDollarStaking.min.json +1 -1
- package/artifacts/abis/GoodDollarStakingMock.min.json +1 -1
- package/artifacts/abis/GoodFundManager.min.json +1 -1
- package/artifacts/abis/GoodFundManagerTest.min.json +1 -1
- package/artifacts/abis/GoodMarketMaker.min.json +1 -1
- package/artifacts/abis/GoodReserveCDai.min.json +1 -1
- package/artifacts/abis/GovernanceStaking.min.json +1 -1
- package/artifacts/abis/IFeesFormula.min.json +1 -0
- package/artifacts/abis/IGoodDollar.min.json +1 -1
- package/artifacts/abis/IGoodDollarCustom.min.json +1 -0
- package/artifacts/abis/IGovernanceStaking.min.json +1 -0
- package/artifacts/abis/IIdentity.min.json +1 -1
- package/artifacts/abis/IIdentityV2.min.json +1 -0
- package/artifacts/abis/IStakingUpgrade.min.json +1 -0
- package/artifacts/abis/ISuperGoodDollar.min.json +1 -0
- package/artifacts/abis/IdentityMock.min.json +1 -0
- package/artifacts/abis/IdentityV2.min.json +1 -0
- package/artifacts/abis/InvitesFuseV2.min.json +1 -0
- package/artifacts/abis/InvitesV1.min.json +1 -1
- package/artifacts/abis/InvitesV2.min.json +1 -0
- package/artifacts/abis/LendingPoolMock.min.json +1 -1
- package/artifacts/abis/NameService.min.json +1 -1
- package/artifacts/abis/PayableMock.min.json +1 -0
- package/artifacts/abis/Proxy.min.json +1 -0
- package/artifacts/abis/Reputation.min.json +1 -1
- package/artifacts/abis/SelfApprove.min.json +1 -0
- package/artifacts/abis/SimpleStaking.min.json +1 -1
- package/artifacts/abis/SimpleStakingV2.min.json +1 -1
- package/artifacts/abis/SixteenDecimalsTokenMock.min.json +1 -1
- package/artifacts/abis/StakersDistribution.min.json +1 -1
- package/artifacts/abis/SuperGoodDollar.min.json +1 -0
- package/artifacts/abis/SuperToken.min.json +1 -0
- package/artifacts/abis/SuperfluidToken.min.json +1 -0
- package/artifacts/abis/TwentyDecimalsTokenMock.min.json +1 -1
- package/artifacts/abis/UBIScheme.min.json +1 -1
- package/artifacts/abis/USDCMock.min.json +1 -1
- package/artifacts/abis/UUPSProxiable.min.json +1 -0
- package/artifacts/abis/UUPSProxy.min.json +1 -0
- package/artifacts/abis/UUPSUtils.min.json +1 -0
- package/artifacts/abis/UpgradableMock.min.json +1 -1
- package/artifacts/abis/UpgradableMock2.min.json +1 -1
- package/artifacts/abis/UpgradableMock3.min.json +1 -1
- package/artifacts/abis/UpgradableMock4.min.json +1 -1
- package/artifacts/abis/cBATMock.min.json +1 -1
- package/artifacts/abis/cDAILowWorthMock.min.json +1 -1
- package/artifacts/abis/cDAIMock.min.json +1 -1
- package/artifacts/abis/cDAINonMintableMock.min.json +1 -1
- package/artifacts/abis/cDecimalsMock.min.json +1 -1
- package/artifacts/abis/cSDTMock.min.json +1 -1
- package/artifacts/abis/cUSDCMock.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/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/IGoodDollar.json +184 -0
- 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/IIdentity.json +70 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +300 -0
- 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/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/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +736 -0
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +15 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +4 -0
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +480 -0
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +28 -2
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +28 -2
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +78 -3
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +71 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +4 -0
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.json +35 -0
- 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 +31 -5
- 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 +28 -2
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +28 -2
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1081 -0
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +4 -0
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +505 -0
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +15 -2
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +635 -0
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +18 -5
- 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/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 +18 -5
- 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 +18 -5
- 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 +28 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +28 -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 +4 -0
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +69 -0
- 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 +22 -9
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +95 -2
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +28 -2
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +4 -0
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +277 -0
- 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 +18 -5
- 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 +4 -0
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +18 -0
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +18 -5
- 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 +18 -5
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +28 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +28 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +28 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +28 -2
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +18 -5
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +18 -5
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +18 -5
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +18 -5
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +18 -5
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +18 -5
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +18 -5
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +18 -5
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +28 -2
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +28 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +28 -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 +31 -5
- 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 +32 -6
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +15 -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 +28 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.json +16 -3
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +16 -3
- 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 +3 -3
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +20 -7
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +20 -7
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +22 -9
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +22 -9
- 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 +4 -0
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +768 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
- package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
- package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1206 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.json +99 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.json +34 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.json +355 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +2132 -0
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2627 -0
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +1759 -0
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.json +682 -0
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.json +89 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.json +19 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +32 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +10 -0
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +41 -22
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +94 -48
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +4 -0
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +830 -0
- 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/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +4 -0
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +184 -0
- 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 +28 -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/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +35 -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/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 +28 -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/contracts/Interfaces.sol +57 -3
- package/contracts/fuseFaucet/Faucet.sol +258 -0
- package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
- package/contracts/fuseFaucet/FuseFaucetV2.sol +256 -0
- package/contracts/governance/GReputation.sol +104 -16
- package/contracts/governance/GoodDollarStaking.sol +139 -53
- package/contracts/governance/GovernanceStaking.sol +2 -2
- package/contracts/identity/IdentityV2.sol +559 -0
- package/contracts/invite/InvitesFuseV2.sol +337 -0
- package/contracts/invite/InvitesV1.sol +6 -24
- package/contracts/invite/InvitesV2.sol +345 -0
- package/contracts/mocks/AaveMock.sol +1 -1
- package/contracts/mocks/DAIMock.sol +1 -1
- package/contracts/mocks/DecimalsMock.sol +1 -1
- package/contracts/mocks/FeesFormularMock.sol +21 -0
- package/contracts/mocks/GoodDollarStakingMock.sol +16 -0
- package/contracts/mocks/GoodFundManagerTest.sol +1 -1
- package/contracts/mocks/IdentityMock.sol +58 -0
- package/contracts/mocks/LendingPoolMock.sol +1 -1
- package/contracts/mocks/PayableMock.sol +3 -0
- package/contracts/mocks/SixteenDecimalsTokenMock.sol +1 -6
- package/contracts/mocks/TwentyDecimalsTokenMock.sol +1 -6
- package/contracts/mocks/UpgradableMocks.sol +5 -3
- package/contracts/mocks/UsdcMock.sol +1 -6
- package/contracts/mocks/cBATMock.sol +7 -12
- package/contracts/mocks/cDAILowWorthMock.sol +8 -12
- package/contracts/mocks/cDAIMock.sol +1 -1
- package/contracts/mocks/cDAINonMintableMock.sol +7 -12
- package/contracts/mocks/cDecimalsMock.sol +1 -1
- package/contracts/mocks/cSDTMock.sol +3 -3
- package/contracts/mocks/cUSDCMock.sol +5 -5
- package/contracts/reserve/DistributionHelper.sol +1 -1
- package/contracts/reserve/GoodReserveCDai.sol +1 -1
- package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
- package/contracts/token/ERC677.sol +74 -0
- package/contracts/token/FeesFormula.sol +10 -0
- package/contracts/token/GoodDollar.sol +243 -0
- package/contracts/token/superfluid/ERC20Permit.sol +101 -0
- package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
- package/contracts/token/superfluid/SuperGoodDollar.sol +401 -0
- package/contracts/token/superfluid/SuperToken.sol +714 -0
- package/contracts/token/superfluid/SuperfluidToken.sol +403 -0
- package/contracts/token/superfluid/UUPSProxiable.sol +55 -0
- package/contracts/token/superfluid/UUPSProxy.sol +153 -0
- package/contracts/ubi/UBIScheme.sol +88 -68
- package/contracts/utils/AdminWallet.sol +42 -11
- package/contracts/utils/AdminWalletFuse.sol +271 -0
- package/contracts/utils/BuyAndBridgeHelper.sol +108 -0
- package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
- package/contracts/utils/ProxyFactory1967.sol +1 -1
- package/hardhat.config.ts +29 -6
- package/package.json +11 -7
- package/releases/deploy-settings.json +58 -4
- package/releases/deployment.json +65 -231
- package/scripts/deployFullDAO.ts +39 -19
- package/scripts/gdx/gdxAirdropCalculation.ts +10 -11
- package/scripts/governance/airdropCalculationRecover.ts +43 -33
- package/scripts/governance/airdropCalculationSorted.ts +438 -0
- package/scripts/governance/goodCheckpointSorted.ts +377 -0
- package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +100 -0
- package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +123 -93
- package/scripts/multichain-deploy/2_helpers-deploy.ts +151 -0
- package/scripts/multichain-deploy/{gdSavings-deploy.ts → 3_gdSavings-deploy.ts} +106 -76
- package/scripts/multichain-deploy/4_ubi-deploy.ts +147 -0
- package/scripts/multichain-deploy/5_gov-deploy.ts +147 -0
- package/scripts/multichain-deploy/fulldeploy.sh +26 -0
- package/scripts/multichain-deploy/helpers.ts +149 -111
- package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
- package/scripts/test/localOldDaoDeploy.ts +10 -3
- package/scripts/upgradeToV3/v3-fix.ts +120 -0
- package/scripts/upgradeToV3/v3-upgrade.ts +219 -0
- package/scripts/upgrades/celo-defi-ubi-deploy.ts +165 -0
- package/scripts/upgrades/identity-upgrade.ts +109 -0
- package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
- package/test/faucet/Faucet.test.ts +157 -0
- package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +26 -31
- package/test/governance/ClaimersDistribution.test.ts +58 -6
- package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -3
- package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
- package/test/governance/CompoundVotingMachine.daoscheme.ts +8 -10
- package/test/governance/CompoundVotingMachine.delegate.test.ts +4 -5
- package/test/governance/CompoundVotingMachine.guardian.test.ts +5 -11
- package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
- package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
- package/test/governance/GReputation.test.ts +78 -32
- package/test/governance/GReputation.v2merkle.test.ts +186 -0
- package/test/governance/GoodDollarStaking.gd.test.ts +83 -1
- package/test/governance/GoodDollarStaking.good.test.ts +2 -1
- package/test/governance/GovernanceStaking.test.ts +4 -4
- package/test/governance/Reputation.test.ts +2 -1
- package/test/governance/StakersDistribution.test.ts +26 -13
- package/test/helpers.ts +145 -52
- package/test/identity/IdentityV2.test.ts +539 -0
- package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +10 -5
- package/test/invite/InvitesV2.test.ts +328 -0
- package/test/reserve/DistributionHelper.test.ts +2 -1
- package/test/reserve/GoodMarketMaker.test.ts +20 -19
- package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
- package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
- package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -2
- package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
- package/test/reserve/GoodReserveCDai.test.ts +14 -38
- package/test/reserve/GoodReserveCDai.uniswap.test.ts +21 -19
- package/test/staking/CompoundStakingFactory.test.ts +8 -5
- package/test/staking/DifferentStakingTokens.test.ts +3 -2
- package/test/staking/DonationsStaking.test.ts +33 -24
- package/test/staking/FuseStaking.test.ts +9 -9
- package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
- package/test/staking/SimpleDAIStaking.test.ts +13 -19
- package/test/staking/StakingRewards.test.ts +19 -16
- package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
- package/test/staking/SwapHelper.test.ts +20 -17
- package/test/staking/UsdcAaveStaking.test.ts +36 -33
- package/test/token/GoodDollar.test.ts +445 -0
- package/test/token/SuperGoodDollar.test.ts +422 -0
- package/test/ubi/UBIScheme.e2e.test.ts +6 -5
- package/test/ubi/UBIScheme.test.ts +37 -36
- package/test/ubi/UBISchemeCycle.test.ts +11 -8
- package/test/utils/AdminWallet.test.ts +34 -11
- package/test/utils/BuyAndBridgeHelper.test.ts +249 -0
- package/test/utils/DAOUpgradeableContract.test.ts +3 -2
- package/test/utils/GoodDollarMintBurnWrapper.test.ts +3 -2
- package/test/utils/NameService.test.ts +37 -21
- package/test/utils/ProtocolUpgrade.test.ts +1 -1
- package/test/utils/ProxyFactory.test.ts +12 -10
- package/truffle-config.js +18 -18
- package/types/AaveMock.ts +24 -15
- package/types/AccessControlEnumerableUpgradeable.ts +9 -0
- package/types/AccessControlUpgradeable.ts +9 -0
- package/types/AdminWallet.ts +149 -110
- package/types/AdminWalletFuse.ts +1268 -0
- package/types/BuyAndBridgeHelper.ts +279 -0
- package/types/CBATMock.ts +24 -15
- package/types/CDAILowWorthMock.ts +24 -15
- package/types/CDAIMock.ts +24 -15
- package/types/CDAINonMintableMock.ts +24 -15
- package/types/CDecimalsMock.ts +24 -15
- package/types/CSDTMock.ts +24 -15
- package/types/CUSDCMock.ts +24 -15
- package/types/ClaimersDistribution.ts +28 -0
- package/types/CompoundVotingMachine.ts +28 -0
- package/types/ContextUpgradeable.ts +77 -0
- package/types/DAIMock.ts +24 -15
- package/types/DAOUpgradeableContract.ts +28 -0
- package/types/DecimalsMock.ts +24 -15
- package/types/DistributionHelper.ts +28 -0
- package/types/DistributionHelperTest.ts +28 -0
- package/types/DistributionHelperTestHelper.ts +28 -0
- package/types/DonationsStaking.ts +28 -0
- package/types/EIP712Upgradeable.ts +77 -0
- package/types/ERC165Upgradeable.ts +13 -2
- package/types/ERC1967UpgradeUpgradeable.ts +9 -0
- package/types/ERC20BurnableUpgradeable.ts +24 -15
- package/types/ERC20PausableUpgradeable.ts +24 -15
- package/types/ERC20Permit.ts +186 -0
- package/types/ERC20PermitUpgradeable.ts +531 -0
- package/types/ERC20PresetMinterPauserUpgradeable.ts +129 -16
- package/types/ERC20Upgradeable.ts +24 -15
- package/types/ERC20WithTokenInfo.ts +339 -0
- package/types/ERC677.ts +131 -0
- package/types/ERC677Receiver.ts +115 -0
- package/types/EventsEmitter.ts +88 -0
- package/types/ExchangeHelper.ts +28 -0
- package/types/Faucet.ts +1107 -0
- package/types/FeesFormulaMock.ts +130 -0
- package/types/FuseFaucet.ts +9 -0
- package/types/FuseFaucetV2.ts +729 -0
- package/types/FuseStakingV3.ts +9 -0
- package/types/GReputation.ts +103 -4
- package/types/GoodAaveStaking.ts +24 -15
- package/types/GoodAaveStakingV2.ts +24 -15
- package/types/GoodCompoundStaking.ts +24 -15
- package/types/GoodCompoundStakingTest.ts +24 -15
- package/types/GoodCompoundStakingV2.ts +24 -15
- package/types/GoodDollar.ts +1733 -0
- package/types/GoodDollarMintBurnWrapper.ts +55 -0
- package/types/GoodDollarStaking.ts +92 -0
- package/types/GoodDollarStakingMock.ts +131 -0
- package/types/GoodFundManager.ts +28 -0
- package/types/GoodFundManagerTest.ts +28 -0
- package/types/GoodMarketMaker.ts +28 -0
- package/types/GoodReserveCDai.ts +43 -15
- package/types/GovernanceStaking.ts +43 -15
- package/types/IERC1271Upgradeable.ts +109 -0
- package/types/IERC1820Registry.ts +398 -0
- package/types/IERC1822ProxiableUpgradeable.ts +90 -0
- package/types/IERC20MetadataUpgradeable.ts +15 -15
- package/types/IERC20Permit.ts +175 -0
- package/types/IERC20PermitUpgradeable.ts +176 -0
- package/types/IERC20Upgradeable.ts +15 -15
- package/types/IERC777.ts +586 -0
- package/types/IERC777Recipient.ts +130 -0
- package/types/IERC777Sender.ts +130 -0
- package/types/IFeesFormula.ts +111 -0
- package/types/IGoodDollar.ts +304 -7
- package/types/IGoodDollarCustom.ts +618 -0
- package/types/IGovernanceStaking.ts +98 -0
- package/types/IIdentity.ts +106 -0
- package/types/IIdentityV2.ts +557 -0
- package/types/IStakingUpgrade.ts +110 -0
- package/types/ISuperAgreement.ts +151 -0
- package/types/ISuperApp.ts +410 -0
- package/types/ISuperGoodDollar.ts +3029 -0
- package/types/ISuperToken.ts +2326 -0
- package/types/ISuperTokenFactory.ts +415 -0
- package/types/ISuperfluid.ts +1565 -0
- package/types/ISuperfluidGovernance.ts +455 -0
- package/types/ISuperfluidToken.ts +951 -0
- package/types/IdentityMock.ts +493 -0
- package/types/IdentityV2.ts +1743 -0
- package/types/Initializable.ts +77 -0
- package/types/InvitesFuseV2.ts +806 -0
- package/types/InvitesV1.ts +9 -0
- package/types/InvitesV2.ts +1010 -0
- package/types/LendingPoolMock.ts +24 -15
- package/types/NameService.ts +28 -0
- package/types/OwnableUpgradeable.ts +9 -0
- package/types/PausableUpgradeable.ts +9 -0
- package/types/PayableMock.ts +92 -0
- package/types/ReentrancyGuardUpgradeable.ts +78 -0
- package/types/Reputation.ts +28 -0
- package/types/SelfApprove.ts +115 -0
- package/types/SimpleStaking.ts +24 -15
- package/types/SimpleStakingV2.ts +24 -15
- package/types/SixteenDecimalsTokenMock.ts +24 -15
- package/types/StakersDistribution.ts +28 -0
- package/types/SuperGoodDollar.ts +3662 -0
- package/types/SuperToken.ts +2434 -0
- package/types/SuperfluidToken.ts +951 -0
- package/types/TokenInfo.ts +109 -0
- package/types/TwentyDecimalsTokenMock.ts +24 -15
- package/types/UBIScheme.ts +47 -40
- package/types/USDCMock.ts +24 -15
- package/types/UUPSProxiable.ts +183 -0
- package/types/UUPSProxy.ts +105 -0
- package/types/UUPSUpgradeable.ts +28 -0
- package/types/UpgradableMock.ts +28 -0
- package/types/UpgradableMock2.ts +28 -0
- package/types/UpgradableMock3.ts +28 -0
- package/types/UpgradableMock4.ts +28 -0
- package/types/factories/AaveMock__factory.ts +17 -4
- package/types/factories/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
- package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +13 -0
- package/types/factories/AccessControlUpgradeable__factory.ts +13 -0
- package/types/factories/AdminWalletFuse__factory.ts +881 -0
- package/types/factories/AdminWallet__factory.ts +93 -47
- package/types/factories/BancorFormula__factory.ts +1 -1
- package/types/factories/BaseShareFieldV2__factory.ts +1 -1
- package/types/factories/BaseShareField__factory.ts +1 -1
- package/types/factories/BatUSDMockOracle__factory.ts +1 -1
- package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
- package/types/factories/CBATMock__factory.ts +17 -4
- package/types/factories/CDAILowWorthMock__factory.ts +17 -4
- package/types/factories/CDAIMock__factory.ts +17 -4
- package/types/factories/CDAINonMintableMock__factory.ts +17 -4
- package/types/factories/CDecimalsMock__factory.ts +17 -4
- package/types/factories/CSDTMock__factory.ts +17 -4
- package/types/factories/CUSDCMock__factory.ts +17 -4
- package/types/factories/ClaimersDistribution__factory.ts +27 -1
- package/types/factories/CompUSDMockOracle__factory.ts +1 -1
- package/types/factories/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/CompoundVotingMachine__factory.ts +27 -1
- package/types/factories/ContextUpgradeable__factory.ts +39 -0
- package/types/factories/DAIMock__factory.ts +17 -4
- package/types/factories/DAOContract__factory.ts +1 -1
- package/types/factories/DAOUpgradeableContract__factory.ts +27 -1
- package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
- package/types/factories/DecimalsMock__factory.ts +17 -4
- package/types/factories/DistributionBridgeMock__factory.ts +1 -1
- package/types/factories/DistributionHelperTestHelper__factory.ts +27 -1
- package/types/factories/DistributionHelperTest__factory.ts +27 -1
- package/types/factories/DistributionHelper__factory.ts +27 -1
- package/types/factories/DonationsStaking__factory.ts +27 -1
- package/types/factories/EIP712Upgradeable__factory.ts +39 -0
- package/types/factories/ERC165Upgradeable__factory.ts +13 -0
- package/types/factories/ERC1967Proxy__factory.ts +1 -1
- package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +13 -0
- package/types/factories/ERC20BurnableUpgradeable__factory.ts +16 -3
- package/types/factories/ERC20PausableUpgradeable__factory.ts +16 -3
- package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
- package/types/factories/ERC20Permit__factory.ts +111 -0
- package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +99 -5
- package/types/factories/ERC20Upgradeable__factory.ts +17 -4
- package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
- package/types/factories/ERC677Receiver__factory.ts +55 -0
- package/types/factories/ERC677__factory.ts +75 -0
- package/types/factories/EthUSDMockOracle__factory.ts +1 -1
- package/types/factories/EventsEmitter__factory.ts +84 -0
- package/types/factories/ExchangeHelper__factory.ts +27 -1
- package/types/factories/Faucet__factory.ts +781 -0
- package/types/factories/FeesFormulaMock__factory.ts +132 -0
- package/types/factories/FuseFaucetV2__factory.ts +528 -0
- package/types/factories/FuseFaucet__factory.ts +14 -1
- package/types/factories/FuseStakingV3__factory.ts +14 -1
- package/types/factories/GReputation__factory.ts +77 -2
- package/types/factories/GasPriceMockOracle__factory.ts +1 -1
- package/types/factories/GoodAaveStakingV2__factory.ts +17 -4
- package/types/factories/GoodAaveStaking__factory.ts +17 -4
- package/types/factories/GoodCompoundStakingTest__factory.ts +17 -4
- package/types/factories/GoodCompoundStakingV2__factory.ts +17 -4
- package/types/factories/GoodCompoundStaking__factory.ts +17 -4
- package/types/factories/GoodDollarMintBurnWrapper__factory.ts +34 -1
- package/types/factories/GoodDollarStakingMock__factory.ts +94 -1
- package/types/factories/GoodDollarStaking__factory.ts +70 -1
- package/types/factories/GoodDollar__factory.ts +1254 -0
- package/types/factories/GoodFundManagerTest__factory.ts +27 -1
- package/types/factories/GoodFundManager__factory.ts +27 -1
- package/types/factories/GoodMarketMaker__factory.ts +27 -1
- package/types/factories/GoodReserveCDai__factory.ts +30 -4
- package/types/factories/GovernanceStaking__factory.ts +30 -4
- package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
- package/types/factories/IERC1820Registry__factory.ts +239 -0
- package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
- package/types/factories/IERC20MetadataUpgradeable__factory.ts +3 -3
- package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
- package/types/factories/IERC20Permit__factory.ts +98 -0
- package/types/factories/IERC20Upgradeable__factory.ts +3 -3
- package/types/factories/IERC777Recipient__factory.ts +64 -0
- package/types/factories/IERC777Sender__factory.ts +61 -0
- package/types/factories/IERC777__factory.ts +414 -0
- package/types/factories/IFeesFormula__factory.ts +57 -0
- package/types/factories/IGoodDollarCustom__factory.ts +370 -0
- package/types/factories/IGoodDollar__factory.ts +184 -0
- package/types/factories/IGovernanceStaking__factory.ts +39 -0
- package/types/factories/IIdentityV2__factory.ts +312 -0
- package/types/factories/IIdentity__factory.ts +70 -0
- package/types/factories/IStakingUpgrade__factory.ts +50 -0
- package/types/factories/ISuperAgreement__factory.ts +78 -0
- package/types/factories/ISuperApp__factory.ts +272 -0
- package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
- package/types/factories/ISuperTokenFactory__factory.ts +271 -0
- package/types/factories/ISuperToken__factory.ts +1682 -0
- package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
- package/types/factories/ISuperfluidToken__factory.ts +697 -0
- package/types/factories/ISuperfluid__factory.ts +1143 -0
- package/types/factories/IdentityMock__factory.ts +327 -0
- package/types/factories/IdentityV2__factory.ts +1129 -0
- package/types/factories/IncentiveControllerMock__factory.ts +1 -1
- package/types/factories/Initializable__factory.ts +36 -0
- package/types/factories/InvitesFuseV2__factory.ts +553 -0
- package/types/factories/InvitesV1__factory.ts +14 -1
- package/types/factories/InvitesV2__factory.ts +683 -0
- package/types/factories/LendingPoolMock__factory.ts +17 -4
- package/types/factories/Multicall__factory.ts +1 -1
- package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
- package/types/factories/MultichainRouterMock__factory.ts +1 -1
- package/types/factories/NameService__factory.ts +27 -1
- package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/OverMintTester__factory.ts +1 -1
- package/types/factories/OwnableUpgradeable__factory.ts +13 -0
- package/types/factories/PausableUpgradeable__factory.ts +13 -0
- package/types/factories/PayableMock__factory.ts +66 -0
- package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
- package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
- package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
- package/types/factories/ProtocolUpgrade__factory.ts +1 -1
- package/types/factories/ProxyFactory1967__factory.ts +1 -1
- package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
- package/types/factories/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/Reputation__factory.ts +27 -1
- package/types/factories/SelfApprove__factory.ts +46 -0
- package/types/factories/SimpleStakingV2__factory.ts +16 -3
- package/types/factories/SimpleStaking__factory.ts +16 -3
- package/types/factories/SixteenDecimalsTokenMock__factory.ts +17 -4
- package/types/factories/StakersDistribution__factory.ts +27 -1
- package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
- package/types/factories/SuperGoodDollar__factory.ts +2680 -0
- package/types/factories/SuperToken__factory.ts +1809 -0
- package/types/factories/SuperfluidToken__factory.ts +697 -0
- package/types/factories/SwapHelperTest__factory.ts +1 -1
- package/types/factories/TokenInfo__factory.ts +62 -0
- package/types/factories/TwentyDecimalsTokenMock__factory.ts +17 -4
- package/types/factories/UBIScheme__factory.ts +40 -21
- package/types/factories/USDCMock__factory.ts +17 -4
- package/types/factories/UUPSProxiable__factory.ts +101 -0
- package/types/factories/UUPSProxy__factory.ts +80 -0
- package/types/factories/UUPSUpgradeable__factory.ts +26 -0
- package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
- package/types/factories/UpgradableMock2__factory.ts +27 -1
- package/types/factories/UpgradableMock3__factory.ts +27 -1
- package/types/factories/UpgradableMock4__factory.ts +27 -1
- package/types/factories/UpgradableMock__factory.ts +27 -1
- package/types/hardhat.d.ts +459 -0
- package/types/index.ts +98 -0
- package/yarn.lock +1251 -306
- package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +0 -170
|
@@ -6,19 +6,25 @@ import Safe from "@gnosis.pm/safe-core-sdk";
|
|
|
6
6
|
import EthersAdapter from "@gnosis.pm/safe-ethers-lib";
|
|
7
7
|
import { MetaTransactionData } from "@gnosis.pm/safe-core-sdk-types";
|
|
8
8
|
import SafeClient from "@gnosis.pm/safe-service-client";
|
|
9
|
-
|
|
9
|
+
import util from "util";
|
|
10
10
|
import dao from "../../releases/deployment.json";
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const exec = util.promisify(require("child_process").exec);
|
|
13
|
+
|
|
14
|
+
const networkName = network.name === "localhost" ? "production-mainnet" : network.name;
|
|
14
15
|
let totalGas = 0;
|
|
15
16
|
const gasUsage = {};
|
|
16
|
-
const GAS_SETTINGS = { gasLimit:
|
|
17
|
+
const GAS_SETTINGS = { gasLimit: 10000000 };
|
|
17
18
|
let release: { [key: string]: any } = dao[networkName];
|
|
18
19
|
|
|
19
|
-
export const
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
export const verifyProductionSigner = signer => {
|
|
21
|
+
if (signer.address.toLowerCase() !== "0x5128E3C1f8846724cc1007Af9b4189713922E4BB".toLowerCase()) {
|
|
22
|
+
throw new Error(
|
|
23
|
+
"signer not 0x5128E3C1f8846724cc1007Af9b4189713922E4BB to get same deployed addresses on production"
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
export const printDeploy = async (c: Contract | TransactionResponse): Promise<Contract | TransactionResponse> => {
|
|
22
28
|
if (c instanceof Contract) {
|
|
23
29
|
await c.deployed();
|
|
24
30
|
console.log("deployed to: ", c.address);
|
|
@@ -41,30 +47,45 @@ export const countTotalGas = async (tx, name) => {
|
|
|
41
47
|
} else console.log("no gas data", { res, tx });
|
|
42
48
|
};
|
|
43
49
|
|
|
44
|
-
export const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
export const deploySuperGoodDollar = async (superfluidHost, tokenArgs) => {
|
|
51
|
+
const SuperGoodDollar = (await deployDeterministic(
|
|
52
|
+
{
|
|
53
|
+
name: "SuperGoodDollar",
|
|
54
|
+
salt: "SuperGoodDollarLogic"
|
|
55
|
+
},
|
|
56
|
+
[superfluidHost]
|
|
57
|
+
).then(printDeploy)) as Contract;
|
|
58
|
+
|
|
59
|
+
const uupsFactory = await ethers.getContractFactory("UUPSProxy");
|
|
60
|
+
const GoodDollarProxy = (await deployDeterministic(
|
|
61
|
+
{
|
|
62
|
+
name: "SuperGoodDollar",
|
|
63
|
+
factory: uupsFactory
|
|
64
|
+
},
|
|
65
|
+
[]
|
|
66
|
+
).then(printDeploy)) as Contract;
|
|
67
|
+
|
|
68
|
+
await GoodDollarProxy.initializeProxy(SuperGoodDollar.address);
|
|
69
|
+
|
|
70
|
+
await SuperGoodDollar.attach(GoodDollarProxy.address)[
|
|
71
|
+
"initialize(string,string,uint256,address,address,address,address)"
|
|
72
|
+
](...tokenArgs);
|
|
73
|
+
|
|
74
|
+
const GoodDollar = await ethers.getContractAt("ISuperGoodDollar", GoodDollarProxy.address);
|
|
75
|
+
return GoodDollar;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const deployDeterministic = async (contract, args: any[], factoryOpts = {}, redeployProxyFactory = false) => {
|
|
49
79
|
try {
|
|
50
80
|
let proxyFactory;
|
|
51
|
-
if (networkName.startsWith("develop")) {
|
|
52
|
-
proxyFactory = await (
|
|
53
|
-
|
|
54
|
-
).deploy();
|
|
55
|
-
} else
|
|
56
|
-
proxyFactory = await ethers.getContractAt(
|
|
57
|
-
"ProxyFactory1967",
|
|
58
|
-
release.ProxyFactory
|
|
59
|
-
);
|
|
81
|
+
if (networkName.startsWith("develop") && redeployProxyFactory) {
|
|
82
|
+
proxyFactory = await (await ethers.getContractFactory("ProxyFactory1967")).deploy();
|
|
83
|
+
} else proxyFactory = await ethers.getContractAt("ProxyFactory1967", release.ProxyFactory);
|
|
60
84
|
const Contract =
|
|
61
|
-
(contract.factory as ContractFactory) ||
|
|
62
|
-
(await ethers.getContractFactory(contract.name, factoryOpts));
|
|
85
|
+
(contract.factory as ContractFactory) || (await ethers.getContractFactory(contract.name, factoryOpts));
|
|
63
86
|
|
|
64
87
|
const salt = ethers.BigNumber.from(
|
|
65
|
-
ethers.utils.keccak256(
|
|
66
|
-
ethers.utils.toUtf8Bytes(contract.salt || contract.name)
|
|
67
|
-
)
|
|
88
|
+
ethers.utils.keccak256(ethers.utils.toUtf8Bytes(contract.salt || contract.name))
|
|
68
89
|
);
|
|
69
90
|
|
|
70
91
|
if (contract.isUpgradeable === true) {
|
|
@@ -72,30 +93,19 @@ export const deployDeterministic = async (
|
|
|
72
93
|
args,
|
|
73
94
|
proxyFactory: proxyFactory.address
|
|
74
95
|
});
|
|
75
|
-
const encoded = Contract.interface.encodeFunctionData(
|
|
76
|
-
contract.initializer || "initialize",
|
|
77
|
-
args
|
|
78
|
-
);
|
|
96
|
+
const encoded = Contract.interface.encodeFunctionData(contract.initializer || "initialize", args);
|
|
79
97
|
const tx = await Contract.deploy(GAS_SETTINGS);
|
|
80
98
|
const impl = await tx.deployed();
|
|
81
99
|
console.log("implementation deployed:", contract.name, impl.address);
|
|
82
100
|
await countTotalGas(tx, contract.name);
|
|
83
101
|
|
|
84
|
-
const tx2 = await proxyFactory.deployProxy(
|
|
102
|
+
const tx2 = await proxyFactory.deployProxy(salt, impl.address, encoded, GAS_SETTINGS);
|
|
103
|
+
await countTotalGas(tx2, contract.name);
|
|
104
|
+
const deployTx = await tx2.wait().catch(e => console.error("failed to deploy proxy, assuming it exists...", e));
|
|
105
|
+
const proxyAddr = await proxyFactory["getDeploymentAddress(uint256,address)"](
|
|
85
106
|
salt,
|
|
86
|
-
|
|
87
|
-
encoded,
|
|
88
|
-
GAS_SETTINGS
|
|
107
|
+
await proxyFactory.signer.getAddress()
|
|
89
108
|
);
|
|
90
|
-
await countTotalGas(tx2, contract.name);
|
|
91
|
-
const deployTx = await tx2
|
|
92
|
-
.wait()
|
|
93
|
-
.catch(e =>
|
|
94
|
-
console.error("failed to deploy proxy, assuming it exists...", e)
|
|
95
|
-
);
|
|
96
|
-
const proxyAddr = await proxyFactory[
|
|
97
|
-
"getDeploymentAddress(uint256,address)"
|
|
98
|
-
](salt, await proxyFactory.signer.getAddress());
|
|
99
109
|
console.log("proxy deployed:", contract.name, proxyAddr);
|
|
100
110
|
return Contract.attach(proxyAddr);
|
|
101
111
|
} else {
|
|
@@ -104,17 +114,10 @@ export const deployDeterministic = async (
|
|
|
104
114
|
args
|
|
105
115
|
});
|
|
106
116
|
const constructor = Contract.interface.encodeDeploy(args);
|
|
107
|
-
const bytecode = ethers.utils.solidityPack(
|
|
108
|
-
|
|
109
|
-
[Contract.bytecode, constructor]
|
|
110
|
-
);
|
|
111
|
-
const deployTx = await (
|
|
112
|
-
await proxyFactory.deployCode(salt, bytecode, GAS_SETTINGS)
|
|
113
|
-
).wait();
|
|
117
|
+
const bytecode = ethers.utils.solidityPack(["bytes", "bytes"], [Contract.bytecode, constructor]);
|
|
118
|
+
const deployTx = await (await proxyFactory.deployCode(salt, bytecode, GAS_SETTINGS)).wait();
|
|
114
119
|
|
|
115
|
-
const proxyAddr = await proxyFactory[
|
|
116
|
-
"getDeploymentAddress(uint256,address,bytes32)"
|
|
117
|
-
](
|
|
120
|
+
const proxyAddr = await proxyFactory["getDeploymentAddress(uint256,address,bytes32)"](
|
|
118
121
|
salt,
|
|
119
122
|
await proxyFactory.signer.getAddress(),
|
|
120
123
|
ethers.utils.keccak256(bytecode)
|
|
@@ -134,45 +137,32 @@ export const executeViaGuardian = async (
|
|
|
134
137
|
ethValues,
|
|
135
138
|
functionSigs,
|
|
136
139
|
functionInputs,
|
|
137
|
-
guardian: Signer
|
|
140
|
+
guardian: Signer,
|
|
141
|
+
network?: string
|
|
138
142
|
) => {
|
|
139
|
-
let release: { [key: string]: any } = dao[networkName];
|
|
140
|
-
const ctrl = await (
|
|
141
|
-
await ethers.getContractAt("Controller", release.Controller)
|
|
142
|
-
).connect(guardian);
|
|
143
|
+
let release: { [key: string]: any } = dao[network || networkName];
|
|
144
|
+
const ctrl = await (await ethers.getContractAt("Controller", release.Controller)).connect(guardian);
|
|
143
145
|
|
|
144
146
|
for (let i = 0; i < contracts.length; i++) {
|
|
145
147
|
const contract = contracts[i];
|
|
146
148
|
console.log("executing:", contracts[i], functionSigs[i], functionInputs[i]);
|
|
147
|
-
const sigHash = ethers.utils
|
|
148
|
-
|
|
149
|
-
.slice(0, 10);
|
|
150
|
-
const encoded = ethers.utils.solidityPack(
|
|
151
|
-
["bytes4", "bytes"],
|
|
152
|
-
[sigHash, functionInputs[i]]
|
|
153
|
-
);
|
|
149
|
+
const sigHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(functionSigs[i])).slice(0, 10);
|
|
150
|
+
const encoded = ethers.utils.solidityPack(["bytes4", "bytes"], [sigHash, functionInputs[i]]);
|
|
154
151
|
if (contract === ctrl.address) {
|
|
155
152
|
console.log("executing directly on controller:", sigHash, encoded);
|
|
156
153
|
|
|
157
|
-
await guardian
|
|
158
|
-
.sendTransaction({ to: contract, data: encoded })
|
|
159
|
-
.then(printDeploy);
|
|
154
|
+
await guardian.sendTransaction({ to: contract, data: encoded }).then(printDeploy);
|
|
160
155
|
} else {
|
|
161
|
-
const simulationResult = await ctrl.callStatic.genericCall(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
release.Avatar,
|
|
165
|
-
ethValues[i],
|
|
166
|
-
{ from: await guardian.getAddress() }
|
|
167
|
-
);
|
|
156
|
+
const simulationResult = await ctrl.callStatic.genericCall(contract, encoded, release.Avatar, ethValues[i], {
|
|
157
|
+
from: await guardian.getAddress()
|
|
158
|
+
});
|
|
168
159
|
console.log("executing genericCall:", {
|
|
169
160
|
sigHash,
|
|
170
161
|
encoded,
|
|
171
162
|
simulationResult
|
|
172
163
|
});
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
.then(printDeploy);
|
|
164
|
+
if (simulationResult[0] === false) throw new Error("simulation failed:" + contract);
|
|
165
|
+
await ctrl.genericCall(contract, encoded, release.Avatar, ethValues[i]).then(printDeploy);
|
|
176
166
|
}
|
|
177
167
|
}
|
|
178
168
|
};
|
|
@@ -183,13 +173,52 @@ export const executeViaSafe = async (
|
|
|
183
173
|
functionSigs,
|
|
184
174
|
functionInputs,
|
|
185
175
|
safeAddress: string,
|
|
186
|
-
|
|
187
|
-
|
|
176
|
+
safeSignerOrNetwork?: Signer | string,
|
|
177
|
+
isSimulation = false
|
|
188
178
|
) => {
|
|
179
|
+
if (typeof safeSignerOrNetwork !== "object" && !process.env.SAFEOWNER_PRIVATE_KEY) {
|
|
180
|
+
throw new Error("safe signer is missing");
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
let safeSigner = new ethers.Wallet(process.env.SAFEOWNER_PRIVATE_KEY, new ethers.providers.CloudflareProvider());
|
|
184
|
+
if (typeof safeSignerOrNetwork === "string") {
|
|
185
|
+
switch (safeSignerOrNetwork) {
|
|
186
|
+
case "mainnet":
|
|
187
|
+
break;
|
|
188
|
+
case "celo":
|
|
189
|
+
safeSigner = new ethers.Wallet(process.env.SAFEOWNER_PRIVATE_KEY).connect(
|
|
190
|
+
new ethers.providers.JsonRpcProvider("https://forno.celo.org")
|
|
191
|
+
);
|
|
192
|
+
break;
|
|
193
|
+
case "fuse":
|
|
194
|
+
safeSigner = new ethers.Wallet(process.env.SAFEOWNER_PRIVATE_KEY).connect(
|
|
195
|
+
new ethers.providers.JsonRpcProvider("https://rpc.fuse.io")
|
|
196
|
+
);
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
} else if (safeSignerOrNetwork) {
|
|
200
|
+
safeSigner = safeSignerOrNetwork as any;
|
|
201
|
+
}
|
|
202
|
+
const chainId = await safeSigner.getChainId();
|
|
203
|
+
console.log("safeSigner:", safeSigner.address, { chainId });
|
|
204
|
+
let txServiceUrl;
|
|
205
|
+
switch (chainId) {
|
|
206
|
+
case 1:
|
|
207
|
+
txServiceUrl = "https://safe-transaction-mainnet.safe.global";
|
|
208
|
+
break;
|
|
209
|
+
case 122:
|
|
210
|
+
txServiceUrl = "https://gateway.safe.fuse.io";
|
|
211
|
+
break;
|
|
212
|
+
case 42220:
|
|
213
|
+
txServiceUrl = "https://mainnet-tx-svc.celo-safe-prod.celo-networks-dev.org";
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
console.log("creating safe adapter", { txServiceUrl });
|
|
189
217
|
const ethAdapter = new EthersAdapter({
|
|
190
218
|
ethers: safeethers,
|
|
191
219
|
signerOrProvider: safeSigner
|
|
192
220
|
});
|
|
221
|
+
console.log("creating safe client", { txServiceUrl });
|
|
193
222
|
|
|
194
223
|
const safeService = new SafeClient({
|
|
195
224
|
txServiceUrl,
|
|
@@ -199,36 +228,23 @@ export const executeViaSafe = async (
|
|
|
199
228
|
const safeSdk = await Safe.create({ ethAdapter, safeAddress });
|
|
200
229
|
|
|
201
230
|
let release: { [key: string]: any } = dao[networkName];
|
|
202
|
-
const ctrl = await ethers.getContractAt(
|
|
203
|
-
"Controller",
|
|
204
|
-
release.Controller,
|
|
205
|
-
null
|
|
206
|
-
);
|
|
231
|
+
const ctrl = await ethers.getContractAt("Controller", release.Controller, null);
|
|
207
232
|
|
|
208
233
|
const safeTransactionData: MetaTransactionData[] = [];
|
|
209
234
|
|
|
210
235
|
for (let i = 0; i < contracts.length; i++) {
|
|
211
236
|
const contract = contracts[i];
|
|
212
237
|
|
|
213
|
-
const sigHash = ethers.utils
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
const encoded = ethers.utils.solidityPack(
|
|
217
|
-
["bytes4", "bytes"],
|
|
218
|
-
[sigHash, functionInputs[i]]
|
|
219
|
-
);
|
|
220
|
-
console.log(
|
|
221
|
-
"creating tx:",
|
|
222
|
-
contracts[i],
|
|
223
|
-
functionSigs[i],
|
|
224
|
-
functionInputs[i],
|
|
225
|
-
encoded
|
|
226
|
-
);
|
|
238
|
+
const sigHash = ethers.utils.keccak256(ethers.utils.toUtf8Bytes(functionSigs[i])).slice(0, 10);
|
|
239
|
+
const encoded = ethers.utils.solidityPack(["bytes4", "bytes"], [sigHash, functionInputs[i]]);
|
|
240
|
+
console.log("creating tx:", contracts[i], functionSigs[i], functionInputs[i], encoded);
|
|
227
241
|
if (contract === ctrl.address) {
|
|
228
|
-
const simulationResult =
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
242
|
+
const simulationResult =
|
|
243
|
+
isSimulation === false &&
|
|
244
|
+
(await ctrl.callStatic[functionSigs[i]](...functionInputs[i], {
|
|
245
|
+
from: safeAddress,
|
|
246
|
+
value: ethValues[i]
|
|
247
|
+
}));
|
|
232
248
|
console.log("executing controller call:", {
|
|
233
249
|
sigHash,
|
|
234
250
|
encoded,
|
|
@@ -247,17 +263,17 @@ export const executeViaSafe = async (
|
|
|
247
263
|
avatar: release.Avatar,
|
|
248
264
|
value: ethValues[i]
|
|
249
265
|
});
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
release.Avatar,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
console.log("executing genericCall:", {
|
|
266
|
+
|
|
267
|
+
const simulationResult =
|
|
268
|
+
isSimulation === false &&
|
|
269
|
+
(await ctrl.callStatic.genericCall(contract, encoded, release.Avatar, ethValues[i], {
|
|
270
|
+
from: safeAddress
|
|
271
|
+
}));
|
|
272
|
+
console.log("executing genericCall simulation result:", {
|
|
258
273
|
sigHash,
|
|
259
274
|
simulationResult
|
|
260
275
|
});
|
|
276
|
+
if (isSimulation === false && simulationResult[0] === false) throw new Error("simulation failed:" + contract);
|
|
261
277
|
const genericEncode = ctrl.interface.encodeFunctionData("genericCall", [
|
|
262
278
|
contract,
|
|
263
279
|
encoded,
|
|
@@ -295,3 +311,25 @@ export const executeViaSafe = async (
|
|
|
295
311
|
senderAddress
|
|
296
312
|
});
|
|
297
313
|
};
|
|
314
|
+
|
|
315
|
+
export const verifyContract = async (
|
|
316
|
+
address,
|
|
317
|
+
contractName,
|
|
318
|
+
networkName,
|
|
319
|
+
proxyName?: string,
|
|
320
|
+
forcedConstructorArguments?: string
|
|
321
|
+
) => {
|
|
322
|
+
let networkProvider = network.name.includes("-") ? network.name.split("-")[1] : "fuse";
|
|
323
|
+
networkProvider = networkProvider === "mainnet" ? "ethereum" : networkProvider;
|
|
324
|
+
console.log("truffle compile...");
|
|
325
|
+
await exec("npx truffle compile");
|
|
326
|
+
const cmd = `npx truffle run verify ${proxyName ? "--custom-proxy " + proxyName : ""} ${contractName}@${address} ${
|
|
327
|
+
forcedConstructorArguments ? "--forceConstructorArgs string:" + forcedConstructorArguments.slice(2) : ""
|
|
328
|
+
} --network ${networkProvider}`;
|
|
329
|
+
console.log("running...:", cmd);
|
|
330
|
+
await exec(cmd).then(({ stdout, stderr }) => {
|
|
331
|
+
console.log("Result for:", cmd);
|
|
332
|
+
console.log(stdout);
|
|
333
|
+
console.log(stderr);
|
|
334
|
+
});
|
|
335
|
+
};
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { run, network, ethers } from "hardhat";
|
|
2
|
+
import { omit, pick, defaultsDeep } from "lodash";
|
|
3
|
+
import dao from "../../releases/deployment.json";
|
|
4
|
+
import ProtocolSettings from "../../releases/deploy-settings.json";
|
|
5
|
+
import util from "util";
|
|
6
|
+
|
|
7
|
+
const exec = util.promisify(require("child_process").exec);
|
|
8
|
+
|
|
9
|
+
const delay = ms => new Promise(res => setTimeout(res, 1000));
|
|
10
|
+
|
|
11
|
+
const getImplementationAddress = async addr => {
|
|
12
|
+
console.log("finding impl for:", addr);
|
|
13
|
+
let proxy = await ethers.provider.getStorageAt(
|
|
14
|
+
addr,
|
|
15
|
+
"0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc"
|
|
16
|
+
);
|
|
17
|
+
let res = addr;
|
|
18
|
+
if (proxy != ethers.constants.HashZero) res = "0x" + proxy.slice(-40);
|
|
19
|
+
else {
|
|
20
|
+
const code = await ethers.getDefaultProvider().getCode(addr);
|
|
21
|
+
if (code.startsWith("0x363d3d373d3d3d363d73"))
|
|
22
|
+
res = "0x" + code.slice(22, 62);
|
|
23
|
+
}
|
|
24
|
+
console.log("impl address for:", addr, res);
|
|
25
|
+
return res;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const main = async () => {
|
|
29
|
+
let withTruffle = true;
|
|
30
|
+
let ps = [];
|
|
31
|
+
const release = dao[network.name];
|
|
32
|
+
let settings = defaultsDeep(
|
|
33
|
+
{},
|
|
34
|
+
ProtocolSettings[network.name],
|
|
35
|
+
ProtocolSettings["default"]
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
const networkProvider = network.name.includes("-")
|
|
39
|
+
? network.name.split("-")[1]
|
|
40
|
+
: network.name;
|
|
41
|
+
|
|
42
|
+
// const impl = await getImplementationAddress(release.AdminWallet);
|
|
43
|
+
// console.log({ impl, aw: release.AdminWallet });
|
|
44
|
+
|
|
45
|
+
let toVerify = omit(release, [
|
|
46
|
+
"Avatar",
|
|
47
|
+
"Controller",
|
|
48
|
+
"DAOCreator",
|
|
49
|
+
"AddFounders",
|
|
50
|
+
"FeeFormula",
|
|
51
|
+
"network",
|
|
52
|
+
"networkId",
|
|
53
|
+
"GuardiansSafe",
|
|
54
|
+
"GuardiansSafeOld",
|
|
55
|
+
"MultichainRouter"
|
|
56
|
+
]);
|
|
57
|
+
|
|
58
|
+
if (withTruffle) {
|
|
59
|
+
console.log("truffle compile....");
|
|
60
|
+
const { stdout, stderr } = await exec("npx truffle compile");
|
|
61
|
+
} else {
|
|
62
|
+
//verify the first proxy
|
|
63
|
+
const identityProxy = toVerify["Identity"];
|
|
64
|
+
await run("verify:verify", {
|
|
65
|
+
address: identityProxy,
|
|
66
|
+
contract: "contracts/utils/ProxyFactory1967.sol:ERC1967Proxy"
|
|
67
|
+
}).catch(e =>
|
|
68
|
+
console.log("failed verifying proxy:", identityProxy, e.message)
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
const uupsProxy = toVerify["GoodDollar"];
|
|
72
|
+
await run("verify:verify", {
|
|
73
|
+
address: uupsProxy,
|
|
74
|
+
contract: "contracts/token/superfluid/UUPSProxy.sol:UUPSProxy"
|
|
75
|
+
}).catch(e =>
|
|
76
|
+
console.log("failed verifying uups proxy:", uupsProxy, e.message)
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
// toVerify = pick(release, ["GoodDollarStaking"]);
|
|
80
|
+
for (let key in toVerify) {
|
|
81
|
+
let constructorArguments = [];
|
|
82
|
+
let forcedConstructorArguments = "";
|
|
83
|
+
const address = toVerify[key];
|
|
84
|
+
// }
|
|
85
|
+
// const ps = Object.entries(toVerify).map(([key, address]) => {
|
|
86
|
+
let contract;
|
|
87
|
+
let contractName = key;
|
|
88
|
+
let proxy = "--custom-proxy ERC1967Proxy";
|
|
89
|
+
switch (key) {
|
|
90
|
+
case "AdminWallet":
|
|
91
|
+
contract = "contracts/utils/AdminWallet.sol:AdminWallet";
|
|
92
|
+
break;
|
|
93
|
+
case "Faucet":
|
|
94
|
+
contract = "contracts/fuseFaucet/Faucet.sol:Faucet";
|
|
95
|
+
break;
|
|
96
|
+
case "Invites":
|
|
97
|
+
contractName = "InvitesV2";
|
|
98
|
+
contract = "contracts/invite/InvitesV2.sol:InvitesV2";
|
|
99
|
+
break;
|
|
100
|
+
case "ProxyFactory":
|
|
101
|
+
proxy = "";
|
|
102
|
+
contractName = "ProxyFactory1967";
|
|
103
|
+
contract = "contracts/utils/ProxyFactory1967.sol:ProxyFactory1967";
|
|
104
|
+
break;
|
|
105
|
+
case "NameService":
|
|
106
|
+
contract = "contracts/utils/NameService.sol:NameService";
|
|
107
|
+
break;
|
|
108
|
+
case "GReputation":
|
|
109
|
+
contract = "contracts/governance/GReputation.sol:GReputation";
|
|
110
|
+
break;
|
|
111
|
+
case "Identity":
|
|
112
|
+
contractName = "IdentityV2";
|
|
113
|
+
contract = "contracts/identity/IdentityV2.sol:IdentityV2";
|
|
114
|
+
break;
|
|
115
|
+
case "GoodDollarStaking":
|
|
116
|
+
proxy = "";
|
|
117
|
+
contract =
|
|
118
|
+
"contracts/governance/GoodDollarStaking.sol:GoodDollarStaking";
|
|
119
|
+
constructorArguments = [
|
|
120
|
+
release.NameService,
|
|
121
|
+
ethers.BigNumber.from(settings.savings.blockAPY),
|
|
122
|
+
ethers.BigNumber.from(settings.savings.blocksPerYear),
|
|
123
|
+
settings.savings.daysUntilUpgrade
|
|
124
|
+
];
|
|
125
|
+
forcedConstructorArguments = ethers.utils.defaultAbiCoder.encode(
|
|
126
|
+
["address", "uint128", "uint128", "uint32"],
|
|
127
|
+
constructorArguments
|
|
128
|
+
);
|
|
129
|
+
break;
|
|
130
|
+
case "GoodDollar":
|
|
131
|
+
proxy = "--custom-proxy UUPSProxy";
|
|
132
|
+
contractName = "SuperGoodDollar";
|
|
133
|
+
contract =
|
|
134
|
+
"contracts/token/superfluid/SuperGoodDollar.sol:SuperGoodDollar";
|
|
135
|
+
constructorArguments = [settings.superfluidHost];
|
|
136
|
+
forcedConstructorArguments = ethers.utils.defaultAbiCoder.encode(
|
|
137
|
+
["address"],
|
|
138
|
+
constructorArguments
|
|
139
|
+
);
|
|
140
|
+
break;
|
|
141
|
+
default:
|
|
142
|
+
contract = undefined;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (withTruffle) {
|
|
146
|
+
if (key === "GoodDollar") {
|
|
147
|
+
//verify the proxy first without constructor args (truffle verify plugin bug)
|
|
148
|
+
const cmd = `npx truffle run verify ${proxy} ${contractName}@${address} --network ${networkProvider}`;
|
|
149
|
+
console.log("running...:", cmd);
|
|
150
|
+
await exec(cmd).then(({ stdout, stderr }) => {
|
|
151
|
+
console.log("Result for:", cmd);
|
|
152
|
+
console.log(stdout);
|
|
153
|
+
console.log(stderr);
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
const cmd = `npx truffle run verify ${proxy} ${contractName}@${address} ${
|
|
157
|
+
forcedConstructorArguments
|
|
158
|
+
? "--forceConstructorArgs string:" +
|
|
159
|
+
forcedConstructorArguments.slice(2)
|
|
160
|
+
: ""
|
|
161
|
+
} --network ${networkProvider}`;
|
|
162
|
+
|
|
163
|
+
console.log("running...:", cmd);
|
|
164
|
+
|
|
165
|
+
ps.push(
|
|
166
|
+
exec(cmd).then(({ stdout, stderr }) => {
|
|
167
|
+
console.log("Result for:", cmd);
|
|
168
|
+
console.log(stdout);
|
|
169
|
+
console.log(stderr);
|
|
170
|
+
})
|
|
171
|
+
);
|
|
172
|
+
await delay(1000);
|
|
173
|
+
} else {
|
|
174
|
+
let task = "verify";
|
|
175
|
+
let params = {
|
|
176
|
+
address,
|
|
177
|
+
contract
|
|
178
|
+
};
|
|
179
|
+
if (
|
|
180
|
+
constructorArguments.length > 0 &&
|
|
181
|
+
contract.includes("SuperGoodDollar") === false
|
|
182
|
+
) {
|
|
183
|
+
task = "verify:verify";
|
|
184
|
+
params["constructorArguments"] = constructorArguments;
|
|
185
|
+
}
|
|
186
|
+
console.log("verifying:", task, params);
|
|
187
|
+
|
|
188
|
+
await run(task, params).catch(e =>
|
|
189
|
+
console.log("failed verifying:", address, contract, e.message)
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
await Promise.all(ps);
|
|
195
|
+
};
|
|
196
|
+
|
|
197
|
+
main().catch(e => console.log(e));
|
|
@@ -23,6 +23,7 @@ import FundManager from "@gooddollar/goodcontracts/stakingModel/build/contracts/
|
|
|
23
23
|
import SimpleDAIStaking from "@gooddollar/goodcontracts/stakingModel/build/contracts/SimpleDAIStaking.json";
|
|
24
24
|
import BridgeMock from "@gooddollar/goodcontracts/stakingModel/build/contracts/BridgeMock.json";
|
|
25
25
|
import DonationsStaking from "@gooddollar/goodcontracts/upgradables/build/contracts/DonationsStaking.json";
|
|
26
|
+
import AdminWalletABI from "@gooddollar/goodcontracts/build/contracts/AdminWallet.json";
|
|
26
27
|
import OTPABI from "@gooddollar/goodcontracts/build/contracts/OneTimePayments.json";
|
|
27
28
|
|
|
28
29
|
import releaser from "../releaser";
|
|
@@ -106,9 +107,15 @@ export const deploy = async (networkName = name, single = false) => {
|
|
|
106
107
|
|
|
107
108
|
const deployAdminWallet = async dao => {
|
|
108
109
|
const signers = await ethers.getSigners();
|
|
109
|
-
const adminWallet = await
|
|
110
|
-
|
|
111
|
-
|
|
110
|
+
const adminWallet = await new ethers.ContractFactory(
|
|
111
|
+
AdminWalletABI.abi,
|
|
112
|
+
AdminWalletABI.bytecode,
|
|
113
|
+
signers[0]
|
|
114
|
+
).deploy(
|
|
115
|
+
signers.slice(0, 10).map(_ => _.address),
|
|
116
|
+
ethers.utils.parseUnits("1000000", "gwei"),
|
|
117
|
+
4,
|
|
118
|
+
dao.identity
|
|
112
119
|
);
|
|
113
120
|
|
|
114
121
|
const id = await ethers.getContractAt("IIdentity", dao.identity);
|