@gooddollar/goodprotocol 1.0.30 → 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 +44 -83
- 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/staking/FuseStakingV3.sol +42 -112
- package/contracts/staking/GoodFundManager.sol +2 -2
- 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 +33 -7
- 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/v3-fix.ts +120 -0
- 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 +11 -13
- package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
- package/test/staking/SimpleDAIStaking.test.ts +13 -19
- package/test/staking/StakingRewards.test.ts +32 -32
- 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 +75 -208
- 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 +43 -82
- 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
|
@@ -14,7 +14,7 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
14
14
|
|
|
15
15
|
uint256 exchangeRate = uint256(100e28).div(99);
|
|
16
16
|
|
|
17
|
-
constructor(ERC20PresetMinterPauserUpgradeable _dai) {
|
|
17
|
+
constructor(ERC20PresetMinterPauserUpgradeable _dai) initializer {
|
|
18
18
|
__ERC20PresetMinterPauser_init("Compound DAI", "cDAI");
|
|
19
19
|
dai = _dai;
|
|
20
20
|
}
|
|
@@ -22,19 +22,15 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
22
22
|
function mint(uint256 daiAmount) public returns (uint256) {
|
|
23
23
|
dai.transferFrom(msg.sender, address(this), daiAmount);
|
|
24
24
|
//mul by 1e10 to match to precision of 1e28 of the exchange rate
|
|
25
|
-
_mint(
|
|
26
|
-
msg.sender,
|
|
27
|
-
rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)
|
|
28
|
-
); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
25
|
+
_mint(msg.sender, rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19)); //div to reduce precision from RAY 1e27 to 1e8 precision of cDAI
|
|
29
26
|
return 1;
|
|
30
27
|
}
|
|
31
28
|
|
|
32
29
|
function redeem(uint256 cdaiAmount) public returns (uint256) {
|
|
33
|
-
uint256 daiAmount =
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
);
|
|
30
|
+
uint256 daiAmount = rmul(
|
|
31
|
+
cdaiAmount * 1e10, //bring cdai 8 decimals to rdai precision
|
|
32
|
+
exchangeRateStored().div(10)
|
|
33
|
+
);
|
|
38
34
|
//div to reduce precision from 1e28 of exchange rate to 1e27 that DSMath works on
|
|
39
35
|
// uint256 daiAmount = cdaiAmount.mul(100).div(99);
|
|
40
36
|
_burn(msg.sender, cdaiAmount);
|
|
@@ -43,8 +39,7 @@ contract cDAINonMintableMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
function redeemUnderlying(uint256 daiAmount) public returns (uint256) {
|
|
46
|
-
uint256 cdaiAmount =
|
|
47
|
-
rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19);
|
|
42
|
+
uint256 cdaiAmount = rdiv(daiAmount * 1e10, exchangeRateStored()).div(1e19);
|
|
48
43
|
_burn(msg.sender, cdaiAmount);
|
|
49
44
|
dai.transfer(msg.sender, daiAmount);
|
|
50
45
|
return 0;
|
|
@@ -15,7 +15,7 @@ contract cDecimalsMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
15
15
|
uint256 exchangeRate = 20000000000000000; // initial exchange rate 0.02 from original cToken
|
|
16
16
|
uint256 mantissa = 18;
|
|
17
17
|
|
|
18
|
-
constructor(ERC20PresetMinterPauserUpgradeable _edt) {
|
|
18
|
+
constructor(ERC20PresetMinterPauserUpgradeable _edt) initializer {
|
|
19
19
|
__ERC20PresetMinterPauser_init("Compound EDT", "cEDT");
|
|
20
20
|
edt = _edt;
|
|
21
21
|
mantissa = 18 + _edt.decimals() - 8;
|
|
@@ -14,7 +14,7 @@ contract cSDTMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
14
14
|
uint256 exchangeRate = 2000000000000000000000000; // initial exchange rate 0.02 from original cToken
|
|
15
15
|
uint256 mantissa = 26;
|
|
16
16
|
|
|
17
|
-
constructor(ERC20PresetMinterPauserUpgradeable _edt) {
|
|
17
|
+
constructor(ERC20PresetMinterPauserUpgradeable _edt) initializer {
|
|
18
18
|
__ERC20PresetMinterPauser_init("Compound SDT", "cSDT");
|
|
19
19
|
edt = _edt;
|
|
20
20
|
}
|
|
@@ -38,8 +38,8 @@ contract cSDTMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
function redeemUnderlying(uint256 edtAmount) public returns (uint256) {
|
|
41
|
-
uint256 cEdtAmount =
|
|
42
|
-
|
|
41
|
+
uint256 cEdtAmount = ((edtAmount / 1e8) * (10**mantissa)) /
|
|
42
|
+
exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
|
|
43
43
|
_burn(msg.sender, cEdtAmount);
|
|
44
44
|
edt.transfer(msg.sender, edtAmount);
|
|
45
45
|
return 0;
|
|
@@ -15,7 +15,7 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
15
15
|
uint256 exchangeRate = 200000000000000; // initial exchange rate 0.02 from original cToken
|
|
16
16
|
uint256 mantissa = 16;
|
|
17
17
|
|
|
18
|
-
constructor(ERC20PresetMinterPauserUpgradeable _usdc) {
|
|
18
|
+
constructor(ERC20PresetMinterPauserUpgradeable _usdc) initializer {
|
|
19
19
|
__ERC20PresetMinterPauser_init("Compound USDC", "cUSDC");
|
|
20
20
|
usdc = _usdc;
|
|
21
21
|
}
|
|
@@ -31,8 +31,8 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
function redeem(uint256 cUsdcAmount) public returns (uint256) {
|
|
34
|
-
uint256 usdcAmount =
|
|
35
|
-
|
|
34
|
+
uint256 usdcAmount = ((cUsdcAmount / 1e2) * exchangeRateStored()) /
|
|
35
|
+
10**mantissa; // based on https://compound.finance/docs#protocol-math
|
|
36
36
|
|
|
37
37
|
_burn(msg.sender, cUsdcAmount);
|
|
38
38
|
usdc.transfer(msg.sender, usdcAmount);
|
|
@@ -40,8 +40,8 @@ contract cUSDCMock is DSMath, ERC20PresetMinterPauserUpgradeable {
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
function redeemUnderlying(uint256 usdcAmount) public returns (uint256) {
|
|
43
|
-
uint256 cUsdcAmount =
|
|
44
|
-
|
|
43
|
+
uint256 cUsdcAmount = (usdcAmount * 1e2 * (10**mantissa)) /
|
|
44
|
+
exchangeRateStored(); // based on https://compound.finance/docs#protocol-math
|
|
45
45
|
_burn(msg.sender, cUsdcAmount);
|
|
46
46
|
usdc.transfer(msg.sender, usdcAmount);
|
|
47
47
|
return 0;
|
|
@@ -8,7 +8,7 @@ import "@openzeppelin/contracts/utils/math/Math.sol";
|
|
|
8
8
|
|
|
9
9
|
import "../utils/DAOUpgradeableContract.sol";
|
|
10
10
|
|
|
11
|
-
import "hardhat/console.sol";
|
|
11
|
+
// import "hardhat/console.sol";
|
|
12
12
|
|
|
13
13
|
/***
|
|
14
14
|
* @dev DistributionHelper receives funds and distributes them to recipients
|
|
@@ -98,12 +98,27 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
98
98
|
/**
|
|
99
99
|
* @dev initialize
|
|
100
100
|
*/
|
|
101
|
-
function initialize() public initializer {
|
|
101
|
+
function initialize(address _uniswap, address _gd) public initializer {
|
|
102
102
|
__Ownable_init_unchained();
|
|
103
|
-
consensus = IConsensus(
|
|
104
|
-
address(0x3014ca10b91cb3D0AD85fEf7A3Cb95BCAc9c0f79)
|
|
105
|
-
);
|
|
103
|
+
consensus = IConsensus(address(0x3014ca10b91cb3D0AD85fEf7A3Cb95BCAc9c0f79));
|
|
106
104
|
validators.push(address(0xcb876A393F05a6677a8a029f1C6D7603B416C0A6));
|
|
105
|
+
stakeBackRatio = 33333; //%33
|
|
106
|
+
communityPoolRatio = 33333; //%33
|
|
107
|
+
maxSlippageRatio = 3000; //3%
|
|
108
|
+
keeperFeeRatio = 30; //0.03%
|
|
109
|
+
RATIO_BASE = 100000; //100%
|
|
110
|
+
uniswap = Uniswap(
|
|
111
|
+
_uniswap == address(0)
|
|
112
|
+
? 0xE3F85aAd0c8DD7337427B9dF5d0fB741d65EEEB5
|
|
113
|
+
: _uniswap
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
GD = IGoodDollar(_gd);
|
|
117
|
+
uniswapFactory = UniswapFactory(uniswap.factory());
|
|
118
|
+
uniswapPair = UniswapPair(uniswapFactory.getPair(uniswap.WETH(), _gd));
|
|
119
|
+
pegSwap = PegSwap(0xdfE016328E7BcD6FA06614fE3AF3877E931F7e0a);
|
|
120
|
+
USDC = address(0x620fd5fa44BE6af63715Ef4E65DDFA0387aD13F5);
|
|
121
|
+
fUSD = address(0x249BE57637D8B013Ad64785404b24aeBaE9B098B);
|
|
107
122
|
}
|
|
108
123
|
|
|
109
124
|
modifier notPaused() {
|
|
@@ -116,79 +131,13 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
116
131
|
_;
|
|
117
132
|
}
|
|
118
133
|
|
|
119
|
-
function
|
|
120
|
-
if (RATIO_BASE == 0) {
|
|
121
|
-
stakeBackRatio = 33333; //%33
|
|
122
|
-
communityPoolRatio = 33333; //%33
|
|
123
|
-
maxSlippageRatio = 3000; //3%
|
|
124
|
-
keeperFeeRatio = 30; //0.03%
|
|
125
|
-
RATIO_BASE = 100000; //100%
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
function upgrade1(
|
|
130
|
-
address _gd,
|
|
131
|
-
address _ubischeme,
|
|
132
|
-
address _uniswap
|
|
133
|
-
) external {
|
|
134
|
-
if (address(uniswapPair) == address(0)) {
|
|
135
|
-
uniswap = Uniswap(
|
|
136
|
-
_uniswap == address(0)
|
|
137
|
-
? 0xFB76e9E7d88E308aB530330eD90e84a952570319
|
|
138
|
-
: _uniswap
|
|
139
|
-
);
|
|
140
|
-
GD = IGoodDollar(_gd);
|
|
141
|
-
ubischeme = UBIScheme(_ubischeme);
|
|
142
|
-
|
|
143
|
-
uniswapFactory = UniswapFactory(uniswap.factory());
|
|
144
|
-
uniswapPair = UniswapPair(
|
|
145
|
-
uniswapFactory.getPair(uniswap.WETH(), _gd)
|
|
146
|
-
);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
function upgrade2() external {
|
|
151
|
-
if (USDC == address(0)) {
|
|
152
|
-
USDC = address(0x620fd5fa44BE6af63715Ef4E65DDFA0387aD13F5);
|
|
153
|
-
fUSD = address(0x249BE57637D8B013Ad64785404b24aeBaE9B098B);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
function upgrade3() external {
|
|
158
|
-
if (guardian == address(0)) {
|
|
159
|
-
paused = true;
|
|
160
|
-
guardian = address(0x5128E3C1f8846724cc1007Af9b4189713922E4BB);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
function upgrade4() external {
|
|
165
|
-
if (address(pegSwap) == address(0)) {
|
|
166
|
-
pegSwap = PegSwap(0xdfE016328E7BcD6FA06614fE3AF3877E931F7e0a);
|
|
167
|
-
paused = false;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function upgrade5() external {
|
|
134
|
+
function approve() external {
|
|
172
135
|
cERC20(fUSD).approve(address(pegSwap), type(uint256).max);
|
|
173
136
|
cERC20(USDC).approve(address(uniswap), type(uint256).max);
|
|
174
137
|
}
|
|
175
138
|
|
|
176
|
-
function
|
|
177
|
-
|
|
178
|
-
uniswap = Uniswap(0xE3F85aAd0c8DD7337427B9dF5d0fB741d65EEEB5);
|
|
179
|
-
uniswapFactory = UniswapFactory(uniswap.factory());
|
|
180
|
-
uniswapPair = UniswapPair(
|
|
181
|
-
uniswapFactory.getPair(uniswap.WETH(), address(GD))
|
|
182
|
-
);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
function setContracts(address _gd, address _ubischeme) public onlyOwner {
|
|
186
|
-
if (_gd != address(0)) {
|
|
187
|
-
GD = IGoodDollar(_gd);
|
|
188
|
-
}
|
|
189
|
-
if (_ubischeme != address(0)) {
|
|
190
|
-
ubischeme = UBIScheme(_ubischeme);
|
|
191
|
-
}
|
|
139
|
+
function setUBIScheme(address _ubischeme) public onlyOwner {
|
|
140
|
+
ubischeme = UBIScheme(_ubischeme);
|
|
192
141
|
}
|
|
193
142
|
|
|
194
143
|
function stake() public payable returns (bool) {
|
|
@@ -230,17 +179,15 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
230
179
|
|
|
231
180
|
function withdrawAll() public onlyGuardian {
|
|
232
181
|
for (uint256 i = 0; i < validators.length; i++) {
|
|
233
|
-
uint256 cur = consensus.delegatedAmount(
|
|
234
|
-
address(this),
|
|
235
|
-
validators[i]
|
|
236
|
-
);
|
|
182
|
+
uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
|
|
237
183
|
if (cur == 0) continue;
|
|
238
184
|
undelegateWithCatch(validators[i], cur);
|
|
239
185
|
}
|
|
240
186
|
uint256 effectiveBalance = balance(); //use only undelegated funds
|
|
241
187
|
pendingFuseEarnings = 0;
|
|
242
188
|
if (effectiveBalance > 0) {
|
|
243
|
-
msg.sender.call{ value: effectiveBalance }("");
|
|
189
|
+
(bool ok, ) = msg.sender.call{ value: effectiveBalance }("");
|
|
190
|
+
require(ok, "transfer failed");
|
|
244
191
|
}
|
|
245
192
|
}
|
|
246
193
|
|
|
@@ -254,10 +201,7 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
254
201
|
);
|
|
255
202
|
uint256 perValidator = _value.div(validators.length);
|
|
256
203
|
for (uint256 i = 0; i < validators.length; i++) {
|
|
257
|
-
uint256 cur = consensus.delegatedAmount(
|
|
258
|
-
address(this),
|
|
259
|
-
validators[i]
|
|
260
|
-
);
|
|
204
|
+
uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
|
|
261
205
|
if (cur == 0) continue;
|
|
262
206
|
if (cur <= perValidator) {
|
|
263
207
|
undelegateWithCatch(validators[i], cur);
|
|
@@ -296,10 +240,7 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
296
240
|
uint256 perValidator = (totalDelegated() + _value) / validators.length;
|
|
297
241
|
uint256 left = _value;
|
|
298
242
|
for (uint256 i = 0; i < validators.length && left > 0; i++) {
|
|
299
|
-
uint256 cur = consensus.delegatedAmount(
|
|
300
|
-
address(this),
|
|
301
|
-
validators[i]
|
|
302
|
-
);
|
|
243
|
+
uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
|
|
303
244
|
|
|
304
245
|
if (cur < perValidator) {
|
|
305
246
|
uint256 toDelegate = perValidator.sub(cur);
|
|
@@ -319,20 +260,14 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
319
260
|
function totalDelegated() public view returns (uint256) {
|
|
320
261
|
uint256 total = 0;
|
|
321
262
|
for (uint256 i = 0; i < validators.length; i++) {
|
|
322
|
-
uint256 cur = consensus.delegatedAmount(
|
|
323
|
-
address(this),
|
|
324
|
-
validators[i]
|
|
325
|
-
);
|
|
263
|
+
uint256 cur = consensus.delegatedAmount(address(this), validators[i]);
|
|
326
264
|
total += cur;
|
|
327
265
|
}
|
|
328
266
|
return total;
|
|
329
267
|
}
|
|
330
268
|
|
|
331
269
|
function removeValidator(address _validator) public onlyOwner {
|
|
332
|
-
uint256 delegated = consensus.delegatedAmount(
|
|
333
|
-
address(this),
|
|
334
|
-
_validator
|
|
335
|
-
);
|
|
270
|
+
uint256 delegated = consensus.delegatedAmount(address(this), _validator);
|
|
336
271
|
if (delegated > 0) {
|
|
337
272
|
uint256 prevBalance = balance();
|
|
338
273
|
undelegateWithCatch(_validator, delegated);
|
|
@@ -356,18 +291,13 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
356
291
|
|
|
357
292
|
function collectUBIInterest() public notPaused {
|
|
358
293
|
uint256 curDay = ubischeme.currentDay();
|
|
359
|
-
require(
|
|
360
|
-
curDay != lastDayCollected,
|
|
361
|
-
"can collect only once in a ubi cycle"
|
|
362
|
-
);
|
|
294
|
+
require(curDay != lastDayCollected, "can collect only once in a ubi cycle");
|
|
363
295
|
|
|
364
296
|
uint256 earnings = balance() - pendingFuseEarnings;
|
|
365
297
|
require(pendingFuseEarnings + earnings > 0, "no earnings to collect");
|
|
366
298
|
|
|
367
299
|
lastDayCollected = curDay;
|
|
368
|
-
uint256 fuseUBI = earnings.mul(RATIO_BASE - stakeBackRatio).div(
|
|
369
|
-
RATIO_BASE
|
|
370
|
-
);
|
|
300
|
+
uint256 fuseUBI = earnings.mul(RATIO_BASE - stakeBackRatio).div(RATIO_BASE);
|
|
371
301
|
uint256 stakeBack = earnings - fuseUBI;
|
|
372
302
|
|
|
373
303
|
uint256[] memory fuseswapResult = _buyGD(fuseUBI + pendingFuseEarnings); //buy GD with X% of earnings
|
|
@@ -378,9 +308,9 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
378
308
|
uint256 keeperFee = gdBought.mul(keeperFeeRatio).div(RATIO_BASE);
|
|
379
309
|
if (keeperFee > 0) GD.transfer(msg.sender, keeperFee);
|
|
380
310
|
gdBought -= keeperFee;
|
|
381
|
-
uint256 communityPoolContribution = gdBought
|
|
382
|
-
|
|
383
|
-
|
|
311
|
+
uint256 communityPoolContribution = gdBought.mul(communityPoolRatio).div(
|
|
312
|
+
RATIO_BASE
|
|
313
|
+
); //subtract fee // * ommunityPoolRatio // = G$ after fee * communityPoolRatio%
|
|
384
314
|
|
|
385
315
|
uint256 ubiAfterFeeAndPool = gdBought.sub(communityPoolContribution);
|
|
386
316
|
|
|
@@ -407,13 +337,10 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
407
337
|
function _buyGD(uint256 _value) internal returns (uint256[] memory) {
|
|
408
338
|
//buy from uniwasp
|
|
409
339
|
require(_value > 0, "buy value should be > 0");
|
|
410
|
-
(uint256 maxFuse, uint256 fuseGDOut) = calcMaxFuseWithPriceImpact(
|
|
340
|
+
(uint256 maxFuse, uint256 fuseGDOut) = calcMaxFuseWithPriceImpact(_value);
|
|
341
|
+
(uint256 maxFuseUSDC, uint256 usdcGDOut) = calcMaxFuseUSDCWithPriceImpact(
|
|
411
342
|
_value
|
|
412
343
|
);
|
|
413
|
-
(
|
|
414
|
-
uint256 maxFuseUSDC,
|
|
415
|
-
uint256 usdcGDOut
|
|
416
|
-
) = calcMaxFuseUSDCWithPriceImpact(_value);
|
|
417
344
|
address[] memory path;
|
|
418
345
|
if (maxFuse >= maxFuseUSDC) {
|
|
419
346
|
path = new address[](2);
|
|
@@ -471,9 +398,12 @@ contract FuseStakingV3 is Initializable, OwnableUpgradeable {
|
|
|
471
398
|
address[] memory path = new address[](2);
|
|
472
399
|
path[1] = fUSD;
|
|
473
400
|
path[0] = uniswap.WETH();
|
|
474
|
-
uint256[] memory result = uniswap.swapExactETHForTokens{
|
|
475
|
-
|
|
476
|
-
|
|
401
|
+
uint256[] memory result = uniswap.swapExactETHForTokens{ value: maxFuse }(
|
|
402
|
+
(tokenOut * 95) / 100,
|
|
403
|
+
path,
|
|
404
|
+
address(this),
|
|
405
|
+
block.timestamp
|
|
406
|
+
);
|
|
477
407
|
|
|
478
408
|
pegSwap.swap(result[1], fUSD, USDC);
|
|
479
409
|
usedFuse = result[0];
|
|
@@ -194,10 +194,10 @@ contract GoodFundManager is DAOUpgradeableContract, DSMath {
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
-
if (exist &&
|
|
197
|
+
if (exist && _isBlackListed) {
|
|
198
198
|
activeContracts[i] = activeContracts[activeContracts.length - 1];
|
|
199
199
|
activeContracts.pop();
|
|
200
|
-
} else if (!exist && !
|
|
200
|
+
} else if (!exist && !_isBlackListed) {
|
|
201
201
|
activeContracts.push(_stakingAddress);
|
|
202
202
|
}
|
|
203
203
|
emit StakingRewardSet(
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
// we use a custom file and not openzeppelin directly since the DAOStack Controller expects `mint` to return bool
|
|
3
|
+
// we also add the erc20 permit
|
|
4
|
+
|
|
5
|
+
pragma solidity ^0.8.0;
|
|
6
|
+
|
|
7
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20PermitUpgradeable.sol";
|
|
8
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
|
|
9
|
+
import "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";
|
|
10
|
+
import "@openzeppelin/contracts-upgradeable/access/AccessControlEnumerableUpgradeable.sol";
|
|
11
|
+
import "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
|
|
12
|
+
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @dev {ERC20} token, including:
|
|
16
|
+
*
|
|
17
|
+
* - ability for holders to burn (destroy) their tokens
|
|
18
|
+
* - a minter role that allows for token minting (creation)
|
|
19
|
+
* - a pauser role that allows to stop all token transfers
|
|
20
|
+
*
|
|
21
|
+
* This contract uses {AccessControl} to lock permissioned functions using the
|
|
22
|
+
* different roles - head to its documentation for details.
|
|
23
|
+
*
|
|
24
|
+
* The account that deploys the contract will be granted the minter and pauser
|
|
25
|
+
* roles, as well as the default admin role, which will let it grant both minter
|
|
26
|
+
* and pauser roles to other accounts.
|
|
27
|
+
*/
|
|
28
|
+
contract ERC20PresetMinterPauserUpgradeable is
|
|
29
|
+
Initializable,
|
|
30
|
+
ContextUpgradeable,
|
|
31
|
+
AccessControlEnumerableUpgradeable,
|
|
32
|
+
ERC20PermitUpgradeable,
|
|
33
|
+
ERC20BurnableUpgradeable,
|
|
34
|
+
ERC20PausableUpgradeable
|
|
35
|
+
{
|
|
36
|
+
function initialize(string memory name, string memory symbol)
|
|
37
|
+
public
|
|
38
|
+
virtual
|
|
39
|
+
initializer
|
|
40
|
+
{
|
|
41
|
+
__ERC20PresetMinterPauser_init(name, symbol);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
|
|
45
|
+
bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* @dev Grants `DEFAULT_ADMIN_ROLE`, `MINTER_ROLE` and `PAUSER_ROLE` to the
|
|
49
|
+
* account that deploys the contract.
|
|
50
|
+
*
|
|
51
|
+
* See {ERC20-constructor}.
|
|
52
|
+
*/
|
|
53
|
+
function __ERC20PresetMinterPauser_init(
|
|
54
|
+
string memory name,
|
|
55
|
+
string memory symbol
|
|
56
|
+
) internal initializer {
|
|
57
|
+
__Context_init_unchained();
|
|
58
|
+
__ERC165_init_unchained();
|
|
59
|
+
__AccessControl_init_unchained();
|
|
60
|
+
__AccessControlEnumerable_init_unchained();
|
|
61
|
+
__ERC20_init_unchained(name, symbol);
|
|
62
|
+
__ERC20Burnable_init_unchained();
|
|
63
|
+
__Pausable_init_unchained();
|
|
64
|
+
__ERC20Pausable_init_unchained();
|
|
65
|
+
__ERC20PresetMinterPauser_init_unchained(name, symbol);
|
|
66
|
+
__ERC20Permit_init_unchained(name);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function __ERC20PresetMinterPauser_init_unchained(
|
|
70
|
+
string memory name,
|
|
71
|
+
string memory symbol
|
|
72
|
+
) internal initializer {
|
|
73
|
+
_setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
|
|
74
|
+
|
|
75
|
+
_setupRole(MINTER_ROLE, _msgSender());
|
|
76
|
+
_setupRole(PAUSER_ROLE, _msgSender());
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* @dev Creates `amount` new tokens for `to`.
|
|
81
|
+
*
|
|
82
|
+
* See {ERC20-_mint}.
|
|
83
|
+
*
|
|
84
|
+
* Requirements:
|
|
85
|
+
*
|
|
86
|
+
* - the caller must have the `MINTER_ROLE`.
|
|
87
|
+
*/
|
|
88
|
+
function mint(address to, uint256 amount) public virtual returns (bool) {
|
|
89
|
+
require(
|
|
90
|
+
hasRole(MINTER_ROLE, _msgSender()),
|
|
91
|
+
"ERC20PresetMinterPauser: must have minter role to mint"
|
|
92
|
+
);
|
|
93
|
+
_mint(to, amount);
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* @dev Pauses all token transfers.
|
|
99
|
+
*
|
|
100
|
+
* See {ERC20Pausable} and {Pausable-_pause}.
|
|
101
|
+
*
|
|
102
|
+
* Requirements:
|
|
103
|
+
*
|
|
104
|
+
* - the caller must have the `PAUSER_ROLE`.
|
|
105
|
+
*/
|
|
106
|
+
function pause() public virtual {
|
|
107
|
+
require(
|
|
108
|
+
hasRole(PAUSER_ROLE, _msgSender()),
|
|
109
|
+
"ERC20PresetMinterPauser: must have pauser role to pause"
|
|
110
|
+
);
|
|
111
|
+
_pause();
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* @dev Unpauses all token transfers.
|
|
116
|
+
*
|
|
117
|
+
* See {ERC20Pausable} and {Pausable-_unpause}.
|
|
118
|
+
*
|
|
119
|
+
* Requirements:
|
|
120
|
+
*
|
|
121
|
+
* - the caller must have the `PAUSER_ROLE`.
|
|
122
|
+
*/
|
|
123
|
+
function unpause() public virtual {
|
|
124
|
+
require(
|
|
125
|
+
hasRole(PAUSER_ROLE, _msgSender()),
|
|
126
|
+
"ERC20PresetMinterPauser: must have pauser role to unpause"
|
|
127
|
+
);
|
|
128
|
+
_unpause();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function _beforeTokenTransfer(
|
|
132
|
+
address from,
|
|
133
|
+
address to,
|
|
134
|
+
uint256 amount
|
|
135
|
+
) internal virtual override(ERC20Upgradeable, ERC20PausableUpgradeable) {
|
|
136
|
+
super._beforeTokenTransfer(from, to, amount);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
uint256[50] private __gap;
|
|
140
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity >=0.8;
|
|
4
|
+
|
|
5
|
+
/* @title ERC677Receiver interface
|
|
6
|
+
*/
|
|
7
|
+
interface ERC677Receiver {
|
|
8
|
+
function onTokenTransfer(
|
|
9
|
+
address _from,
|
|
10
|
+
uint256 _value,
|
|
11
|
+
bytes calldata _data
|
|
12
|
+
) external returns (bool);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
abstract contract ERC677 {
|
|
16
|
+
event Transfer(
|
|
17
|
+
address indexed from,
|
|
18
|
+
address indexed to,
|
|
19
|
+
uint256 value,
|
|
20
|
+
bytes data
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
function transfer(address to, uint256 value) public virtual returns (bool);
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @dev transfer token to a contract address with additional data if the recipient is a contact.
|
|
27
|
+
* @param _to The address to transfer to.
|
|
28
|
+
* @param _value The amount to be transferred.
|
|
29
|
+
* @param _data The extra data to be passed to the receiving contract.
|
|
30
|
+
* @return true if transfer is successful
|
|
31
|
+
*/
|
|
32
|
+
function _transferAndCall(
|
|
33
|
+
address _to,
|
|
34
|
+
uint256 _value,
|
|
35
|
+
bytes memory _data
|
|
36
|
+
) internal returns (bool) {
|
|
37
|
+
bool res = transfer(_to, _value);
|
|
38
|
+
emit Transfer(msg.sender, _to, _value, _data);
|
|
39
|
+
|
|
40
|
+
if (isContract(_to)) {
|
|
41
|
+
require(contractFallback(_to, _value, _data), "Contract fallback failed");
|
|
42
|
+
}
|
|
43
|
+
return res;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* @dev Contract fallback function. Is called if transferAndCall is called
|
|
47
|
+
* to a contract
|
|
48
|
+
*/
|
|
49
|
+
function contractFallback(
|
|
50
|
+
address _to,
|
|
51
|
+
uint256 _value,
|
|
52
|
+
bytes memory _data
|
|
53
|
+
) internal virtual returns (bool) {
|
|
54
|
+
ERC677Receiver receiver = ERC677Receiver(_to);
|
|
55
|
+
require(
|
|
56
|
+
receiver.onTokenTransfer(msg.sender, _value, _data),
|
|
57
|
+
"Contract Fallback failed"
|
|
58
|
+
);
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* @dev Function to check if given address is a contract
|
|
63
|
+
* @param _addr Address to check
|
|
64
|
+
* @return true if given address is a contract
|
|
65
|
+
*/
|
|
66
|
+
|
|
67
|
+
function isContract(address _addr) internal view returns (bool) {
|
|
68
|
+
uint256 length;
|
|
69
|
+
assembly {
|
|
70
|
+
length := extcodesize(_addr)
|
|
71
|
+
}
|
|
72
|
+
return length > 0;
|
|
73
|
+
}
|
|
74
|
+
}
|