@gooddollar/goodprotocol 2.0.13 → 2.0.14-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/abis/DistributionBridgeMock.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/GasPriceMockOracle.min.json +1 -1
- package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
- package/artifacts/abis/GoodReserveCDai.min.json +1 -1
- package/artifacts/abis/IFeesFormula.min.json +1 -1
- package/artifacts/abis/ISuperGoodDollar.min.json +1 -1
- package/artifacts/abis/ISuperToken.min.json +1 -0
- package/artifacts/abis/MultichainFeeFormula.min.json +1 -0
- package/artifacts/abis/SuperGoodDollar.min.json +1 -1
- package/artifacts/abis/SuperToken.min.json +1 -1
- package/artifacts/abis/UBIScheme.min.json +1 -1
- package/artifacts/abis/UBISchemeV2.min.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
- package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/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 +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +2 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +2 -2
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
- package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
- package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +2 -2
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +2 -2
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +2 -2
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +2 -2
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +2 -2
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +122 -17
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +242 -17
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +256 -18
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +2 -2
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +15 -2
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +6 -6
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +2 -2
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
- package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +2 -2
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +2 -2
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +2 -2
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +2 -2
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +2 -2
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +2 -2
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +2 -2
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +2 -2
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +2 -2
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +2 -2
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +242 -17
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +45 -19
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +2 -2
- package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
- package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +2 -2
- package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +4 -0
- package/artifacts/contracts/token/{FeesFormula.sol → IFeesFormula.sol}/IFeesFormula.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +4 -0
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.json +58 -0
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +159 -5
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +4 -0
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.json +1609 -0
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +233 -190
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +198 -193
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +20 -2
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +20 -2
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +2 -2
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
- package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
- package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.json +2 -2
- package/artifacts/contracts/utils/BuyGDClone.sol/ISwapRouter.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
- package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
- package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
- package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.json +2 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -2
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
- package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
- package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.json +2 -2
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
- package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
- package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/NameService.sol/NameService.json +2 -2
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.json +2 -2
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.json +2 -2
- package/artifacts/contracts/utils/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/invite/InvitesFuseV2.sol +3 -2
- package/contracts/mocks/DistributionBridgeMock.sol +42 -15
- package/contracts/mocks/DistributionHelperTest.sol +6 -2
- package/contracts/mocks/FeesFormularMock.sol +14 -14
- package/contracts/mocks/GasPriceMockOracle.sol +7 -1
- package/contracts/reserve/DistributionHelper.sol +147 -23
- package/contracts/reserve/GoodReserveCDai.sol +39 -47
- package/contracts/staking/GoodFundManager.sol +18 -37
- package/contracts/token/GoodDollar.sol +11 -16
- package/contracts/token/MultichainFeeFormula.sol +34 -0
- package/contracts/token/superfluid/ConstantFlowNFTs.sol +3 -0
- package/contracts/token/superfluid/ISuperGoodDollar.sol +4 -5
- package/contracts/token/superfluid/ISuperToken.sol +464 -0
- package/contracts/token/superfluid/SuperGoodDollar.sol +408 -376
- package/contracts/token/superfluid/SuperToken.sol +144 -144
- package/contracts/ubi/UBIScheme.sol +9 -5
- package/contracts/ubi/UBISchemeV2.sol +6 -0
- package/contracts/utils/AdminWallet.sol +2 -1
- package/contracts/utils/AdminWalletFuse.sol +2 -1
- package/contracts/utils/BuyAndBridgeHelper.sol +13 -13
- package/contracts/utils/MultiCall.sol +8 -10
- package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
- package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +233 -190
- package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
- package/hardhat.config.ts +46 -15
- package/package.json +7 -7
- package/releases/deploy-settings.json +3 -1
- package/releases/deployment.json +6 -2
- package/scripts/analytics/faucetStats.ts +19 -15
- package/scripts/fv.ts +305 -0
- package/scripts/multichain-deploy/1_basicdao-deploy.ts +18 -9
- package/scripts/multichain-deploy/helpers.ts +204 -64
- package/scripts/proposals/gip-15.ts +427 -0
- package/scripts/upgrades/multichain-formula-upgrade.ts +140 -0
- package/scripts/upgrades/restoreFunds.ts +91 -0
- package/scripts/upgrades/superfluid-nft-celo-gas-token.ts +159 -0
- package/scripts/utils.ts +15 -0
- package/test/helpers.ts +73 -10
- package/test/reserve/DistributionHelper.test.ts +183 -218
- package/test/reserve/GoodReserveCDai.distribution.test.ts +21 -144
- package/test/reserve/GoodReserveCDai.test.ts +98 -302
- package/test/staking/StakingRewards.test.ts +324 -936
- package/test/token/CeloGasToken.test.ts +108 -0
- package/test/token/SuperGoodDollar.test.ts +15 -6
- package/test/utils/AdminWallet.test.ts +97 -38
- package/test/utils/BuyAndBridgeHelper.test.ts +9 -33
- package/truffle-config.js +24 -6
- package/types/ConstantInflowNFT.ts +969 -0
- package/types/ConstantOutflowNFT.ts +1031 -0
- package/types/DistributionBridgeMock.ts +203 -70
- package/types/DistributionHelper.ts +325 -30
- package/types/DistributionHelperTest.ts +325 -30
- package/types/DistributionHelperTestHelper.ts +355 -35
- package/types/FlowNFTBase.ts +887 -0
- package/types/GasPriceMockOracle.ts +29 -0
- package/types/GoodReserveCDai.ts +79 -20
- package/types/IConstantFlowAgreementV1.ts +1391 -0
- package/types/IConstantInflowNFT.ts +772 -0
- package/types/IConstantOutflowNFT.ts +834 -0
- package/types/IERC721.ts +487 -0
- package/types/IERC721Metadata.ts +538 -0
- package/types/IFlowNFTBase.ts +711 -0
- package/types/IInstantDistributionAgreementV1.ts +1183 -0
- package/types/ILayerZeroFeeEstimator.ts +136 -0
- package/types/IMessagePassingBridge.ts +774 -0
- package/types/ISETH.ts +2668 -0
- package/types/ISETHCustom.ts +161 -0
- package/types/ISuperGoodDollar.ts +277 -25
- package/types/ISuperToken.ts +202 -346
- package/types/ISuperfluid.ts +7 -2
- package/types/ISuperfluidGovernance.ts +40 -5
- package/types/MultichainFeeFormula.ts +130 -0
- package/types/SuperGoodDollar.ts +383 -349
- package/types/SuperToken.ts +319 -344
- package/types/UBIScheme.ts +36 -0
- package/types/UBISchemeV2.ts +36 -0
- package/types/factories/AaveMock__factory.ts +1 -1
- package/types/factories/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
- package/types/factories/AdminWalletFuse__factory.ts +1 -1
- package/types/factories/AdminWallet__factory.ts +1 -1
- 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 +1 -1
- package/types/factories/BuyGDCloneFactory__factory.ts +1 -1
- package/types/factories/BuyGDClone__factory.ts +1 -1
- package/types/factories/CBATMock__factory.ts +1 -1
- package/types/factories/CDAILowWorthMock__factory.ts +1 -1
- package/types/factories/CDAIMock__factory.ts +1 -1
- package/types/factories/CDAINonMintableMock__factory.ts +1 -1
- package/types/factories/CDecimalsMock__factory.ts +1 -1
- package/types/factories/CSDTMock__factory.ts +1 -1
- package/types/factories/CUSDCMock__factory.ts +1 -1
- package/types/factories/ClaimersDistribution__factory.ts +1 -1
- package/types/factories/CompUSDMockOracle__factory.ts +1 -1
- package/types/factories/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/CompoundVotingMachine__factory.ts +1 -1
- package/types/factories/ConstantInflowNFT__factory.ts +758 -0
- package/types/factories/ConstantOutflowNFT__factory.ts +817 -0
- package/types/factories/DAIMock__factory.ts +1 -1
- package/types/factories/DAOContract__factory.ts +1 -1
- package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
- package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
- package/types/factories/DecimalsMock__factory.ts +1 -1
- package/types/factories/DistributionBridgeMock__factory.ts +121 -16
- package/types/factories/DistributionHelperTestHelper__factory.ts +255 -17
- package/types/factories/DistributionHelperTest__factory.ts +241 -16
- package/types/factories/DistributionHelper__factory.ts +241 -16
- package/types/factories/DonationsStaking__factory.ts +1 -1
- package/types/factories/ERC1967Proxy__factory.ts +1 -1
- package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
- package/types/factories/ERC20Upgradeable__factory.ts +1 -1
- package/types/factories/EthUSDMockOracle__factory.ts +1 -1
- package/types/factories/EventsEmitter__factory.ts +1 -1
- package/types/factories/ExchangeHelper__factory.ts +1 -1
- package/types/factories/Faucet__factory.ts +1 -1
- package/types/factories/FeesFormulaMock__factory.ts +1 -1
- package/types/factories/FlowNFTBase__factory.ts +642 -0
- package/types/factories/FuseFaucetV2__factory.ts +1 -1
- package/types/factories/FuseFaucet__factory.ts +1 -1
- package/types/factories/FuseStakingV3__factory.ts +1 -1
- package/types/factories/GDFaucet__factory.ts +1 -1
- package/types/factories/GReputation__factory.ts +1 -1
- package/types/factories/GasPriceMockOracle__factory.ts +14 -1
- package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
- package/types/factories/GoodAaveStaking__factory.ts +1 -1
- package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
- package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
- package/types/factories/GoodCompoundStaking__factory.ts +1 -1
- package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1 -1
- package/types/factories/GoodDollarStakingMock__factory.ts +1 -1
- package/types/factories/GoodDollarStaking__factory.ts +1 -1
- package/types/factories/GoodDollar__factory.ts +1 -1
- package/types/factories/GoodFundManagerTest__factory.ts +1 -1
- package/types/factories/GoodFundManager__factory.ts +1 -1
- package/types/factories/GoodMarketMaker__factory.ts +1 -1
- package/types/factories/GoodReserveCDai__factory.ts +44 -18
- package/types/factories/GovernanceStaking__factory.ts +1 -1
- package/types/factories/IConstantFlowAgreementV1__factory.ts +1064 -0
- package/types/factories/IConstantInflowNFT__factory.ts +551 -0
- package/types/factories/IConstantOutflowNFT__factory.ts +614 -0
- package/types/factories/IERC721Metadata__factory.ts +356 -0
- package/types/factories/IERC721__factory.ts +308 -0
- package/types/factories/IFlowNFTBase__factory.ts +512 -0
- package/types/factories/IInstantDistributionAgreementV1__factory.ts +1015 -0
- package/types/factories/ILayerZeroFeeEstimator__factory.ts +79 -0
- package/types/factories/IMessagePassingBridge__factory.ts +446 -0
- package/types/factories/ISETHCustom__factory.ts +56 -0
- package/types/factories/ISETH__factory.ts +1866 -0
- package/types/factories/ISuperGoodDollar__factory.ts +159 -5
- package/types/factories/ISuperTokenFactory__factory.ts +5 -0
- package/types/factories/ISuperToken__factory.ts +130 -191
- package/types/factories/ISuperfluidGovernance__factory.ts +23 -5
- package/types/factories/ISuperfluid__factory.ts +10 -0
- package/types/factories/IdentityFix__factory.ts +1 -1
- package/types/factories/IdentityMock__factory.ts +1 -1
- package/types/factories/IdentityV2__factory.ts +1 -1
- package/types/factories/IncentiveControllerMock__factory.ts +1 -1
- package/types/factories/InvitesFuseV2__factory.ts +1 -1
- package/types/factories/InvitesV1__factory.ts +1 -1
- package/types/factories/InvitesV2__factory.ts +1 -1
- package/types/factories/LendingPoolMock__factory.ts +1 -1
- package/types/factories/Multicall__factory.ts +1 -1
- package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
- package/types/factories/MultichainFeeFormula__factory.ts +113 -0
- package/types/factories/MultichainRouterMock__factory.ts +1 -1
- package/types/factories/NameService__factory.ts +1 -1
- package/types/factories/OneTimePaymentsV2__factory.ts +1 -1
- package/types/factories/OneTimePayments__factory.ts +1 -1
- package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
- package/types/factories/OverMintTester__factory.ts +1 -1
- package/types/factories/PayableMock__factory.ts +1 -1
- 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/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/Reputation__factory.ts +1 -1
- package/types/factories/SixteenDecimalsTokenMock__factory.ts +1 -1
- package/types/factories/StakersDistribution__factory.ts +1 -1
- package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
- package/types/factories/SuperGoodDollar__factory.ts +230 -187
- package/types/factories/SuperToken__factory.ts +197 -192
- package/types/factories/SwapHelperTest__factory.ts +1 -1
- package/types/factories/TwentyDecimalsTokenMock__factory.ts +1 -1
- package/types/factories/UBISchemeV2__factory.ts +19 -1
- package/types/factories/UBIScheme__factory.ts +19 -1
- package/types/factories/USDCMock__factory.ts +1 -1
- package/types/factories/UUPSProxy__factory.ts +1 -1
- package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
- package/types/factories/UpgradableMock2__factory.ts +1 -1
- package/types/factories/UpgradableMock3__factory.ts +1 -1
- package/types/factories/UpgradableMock4__factory.ts +1 -1
- package/types/factories/UpgradableMock__factory.ts +1 -1
- package/types/hardhat.d.ts +166 -4
- package/types/index.ts +34 -4
- package/yarn.lock +1288 -719
- package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +0 -4
- /package/contracts/token/{FeesFormula.sol → IFeesFormula.sol} +0 -0
|
@@ -3,19 +3,23 @@ pragma solidity >=0.8;
|
|
|
3
3
|
|
|
4
4
|
import { UUPSProxiable } from "./UUPSProxiable.sol";
|
|
5
5
|
|
|
6
|
-
import { ISuperfluid, ISuperfluidGovernance, ISuperToken, ISuperAgreement, IERC20, IERC777, TokenInfo } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol";
|
|
6
|
+
import { ISuperfluid, ISuperfluidGovernance, ISuperToken as ISuperTokenOriginal, ISuperAgreement, IERC20, IERC777, TokenInfo } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluid.sol";
|
|
7
7
|
import { ISuperfluidToken } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/ISuperfluidToken.sol";
|
|
8
|
-
|
|
9
8
|
import { ERC777Helper } from "@superfluid-finance/ethereum-contracts/contracts/libs/ERC777Helper.sol";
|
|
9
|
+
import { IConstantOutflowNFT } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantOutflowNFT.sol";
|
|
10
|
+
import { IConstantInflowNFT } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IConstantInflowNFT.sol";
|
|
11
|
+
import { IPoolAdminNFT } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolAdminNFT.sol";
|
|
12
|
+
import { IPoolMemberNFT } from "@superfluid-finance/ethereum-contracts/contracts/interfaces/superfluid/IPoolMemberNFT.sol";
|
|
10
13
|
|
|
11
14
|
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
12
15
|
import { SafeMath } from "@openzeppelin/contracts/utils/math/SafeMath.sol";
|
|
13
16
|
import { SafeCast } from "@openzeppelin/contracts/utils/math/SafeCast.sol";
|
|
14
17
|
import { IERC777Recipient } from "@openzeppelin/contracts/token/ERC777/IERC777Recipient.sol";
|
|
15
18
|
import { IERC777Sender } from "@openzeppelin/contracts/token/ERC777/IERC777Sender.sol";
|
|
16
|
-
import { Address } from "@openzeppelin/contracts/utils/
|
|
19
|
+
import { AddressUpgradeable as Address } from "@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol";
|
|
17
20
|
|
|
18
21
|
import { SuperfluidToken } from "./SuperfluidToken.sol";
|
|
22
|
+
import { ISuperToken } from "./ISuperToken.sol";
|
|
19
23
|
|
|
20
24
|
/**
|
|
21
25
|
* @title Superfluid's super token implementation
|
|
@@ -60,42 +64,45 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
60
64
|
/// @dev ERC777 operators support data
|
|
61
65
|
ERC777Helper.Operators internal _operators;
|
|
62
66
|
|
|
67
|
+
/// @notice Constant Outflow NFT proxy address
|
|
68
|
+
IConstantOutflowNFT public constantOutflowNFT;
|
|
69
|
+
|
|
70
|
+
/// @notice Constant Inflow NFT proxy address
|
|
71
|
+
IConstantInflowNFT public constantInflowNFT;
|
|
72
|
+
|
|
73
|
+
/// @notice Pool Admin NFT proxy address
|
|
74
|
+
IPoolAdminNFT public poolAdminNFT;
|
|
75
|
+
|
|
76
|
+
/// @notice Pool Member NFT proxy address
|
|
77
|
+
IPoolMemberNFT public poolMemberNFT;
|
|
78
|
+
|
|
63
79
|
// NOTE: for future compatibility, these are reserved solidity slots
|
|
64
|
-
// The sub-class of SuperToken solidity slot will start after
|
|
80
|
+
// The sub-class of SuperToken solidity slot will start after _reserve26
|
|
65
81
|
|
|
66
82
|
// NOTE: Whenever modifying the storage layout here it is important to update the validateStorageLayout
|
|
67
83
|
// function in its respective mock contract to ensure that it doesn't break anything or lead to unexpected
|
|
68
84
|
// behaviors/layout when upgrading
|
|
69
85
|
|
|
70
|
-
uint256 internal
|
|
71
|
-
uint256 private _reserve23;
|
|
72
|
-
uint256 private _reserve24;
|
|
73
|
-
uint256 private _reserve25;
|
|
74
|
-
uint256 private _reserve26;
|
|
86
|
+
uint256 internal _reserve26;
|
|
75
87
|
uint256 private _reserve27;
|
|
76
88
|
uint256 private _reserve28;
|
|
77
89
|
uint256 private _reserve29;
|
|
78
90
|
uint256 private _reserve30;
|
|
79
91
|
uint256 internal _reserve31;
|
|
80
92
|
|
|
81
|
-
constructor(
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
93
|
+
constructor(
|
|
94
|
+
ISuperfluid host
|
|
95
|
+
)
|
|
96
|
+
SuperfluidToken(host) // solhint-disable-next-line no-empty-blocks
|
|
97
|
+
{}
|
|
87
98
|
|
|
99
|
+
/// @dev Initialize the Super Token proxy
|
|
88
100
|
function initialize(
|
|
89
101
|
IERC20 underlyingToken,
|
|
90
102
|
uint8 underlyingDecimals,
|
|
91
103
|
string calldata n,
|
|
92
104
|
string calldata s
|
|
93
|
-
)
|
|
94
|
-
external
|
|
95
|
-
virtual
|
|
96
|
-
override
|
|
97
|
-
initializer // OpenZeppelin Initializable
|
|
98
|
-
{
|
|
105
|
+
) public virtual override onlyInitializing {
|
|
99
106
|
_underlyingToken = underlyingToken;
|
|
100
107
|
_underlyingDecimals = underlyingDecimals;
|
|
101
108
|
|
|
@@ -186,6 +193,7 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
186
193
|
* @param userData bytes extra information provided by the token holder (if any)
|
|
187
194
|
* @param operatorData bytes extra information provided by the operator (if any)
|
|
188
195
|
* @param requireReceptionAck if true, contract recipients are required to implement ERC777TokensRecipient
|
|
196
|
+
* @notice this is overridden in supergooddollar to enforce fees
|
|
189
197
|
*/
|
|
190
198
|
function _send(
|
|
191
199
|
address operator,
|
|
@@ -323,11 +331,7 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
323
331
|
* - `account` cannot be the zero address.
|
|
324
332
|
* - `spender` cannot be the zero address.
|
|
325
333
|
*/
|
|
326
|
-
function _approve(
|
|
327
|
-
address account,
|
|
328
|
-
address spender,
|
|
329
|
-
uint256 amount
|
|
330
|
-
) internal {
|
|
334
|
+
function _approve(address account, address spender, uint256 amount) internal {
|
|
331
335
|
if (account == address(0)) {
|
|
332
336
|
revert SUPER_TOKEN_APPROVE_FROM_ZERO_ADDRESS();
|
|
333
337
|
}
|
|
@@ -422,40 +426,32 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
422
426
|
return _totalSupply;
|
|
423
427
|
}
|
|
424
428
|
|
|
425
|
-
function balanceOf(
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
override
|
|
429
|
-
returns (uint256 balance)
|
|
430
|
-
{
|
|
429
|
+
function balanceOf(
|
|
430
|
+
address account
|
|
431
|
+
) public view override returns (uint256 balance) {
|
|
431
432
|
// solhint-disable-next-line not-rely-on-time
|
|
432
433
|
(int256 availableBalance, , , ) = super.realtimeBalanceOfNow(account);
|
|
433
434
|
return availableBalance < 0 ? 0 : uint256(availableBalance);
|
|
434
435
|
}
|
|
435
436
|
|
|
436
|
-
function transfer(
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
returns (bool)
|
|
441
|
-
{
|
|
437
|
+
function transfer(
|
|
438
|
+
address recipient,
|
|
439
|
+
uint256 amount
|
|
440
|
+
) public virtual override returns (bool) {
|
|
442
441
|
return _transferFrom(msg.sender, msg.sender, recipient, amount);
|
|
443
442
|
}
|
|
444
443
|
|
|
445
|
-
function allowance(
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
returns (uint256)
|
|
450
|
-
{
|
|
444
|
+
function allowance(
|
|
445
|
+
address account,
|
|
446
|
+
address spender
|
|
447
|
+
) public view override returns (uint256) {
|
|
451
448
|
return _allowances[account][spender];
|
|
452
449
|
}
|
|
453
450
|
|
|
454
|
-
function approve(
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
{
|
|
451
|
+
function approve(
|
|
452
|
+
address spender,
|
|
453
|
+
uint256 amount
|
|
454
|
+
) public override returns (bool) {
|
|
459
455
|
_approve(msg.sender, spender, amount);
|
|
460
456
|
return true;
|
|
461
457
|
}
|
|
@@ -468,11 +464,10 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
468
464
|
return _transferFrom(msg.sender, holder, recipient, amount);
|
|
469
465
|
}
|
|
470
466
|
|
|
471
|
-
function increaseAllowance(
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
{
|
|
467
|
+
function increaseAllowance(
|
|
468
|
+
address spender,
|
|
469
|
+
uint256 addedValue
|
|
470
|
+
) public override returns (bool) {
|
|
476
471
|
_approve(
|
|
477
472
|
msg.sender,
|
|
478
473
|
spender,
|
|
@@ -481,11 +476,10 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
481
476
|
return true;
|
|
482
477
|
}
|
|
483
478
|
|
|
484
|
-
function decreaseAllowance(
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
{
|
|
479
|
+
function decreaseAllowance(
|
|
480
|
+
address spender,
|
|
481
|
+
uint256 subtractedValue
|
|
482
|
+
) public override returns (bool) {
|
|
489
483
|
_approve(
|
|
490
484
|
msg.sender,
|
|
491
485
|
spender,
|
|
@@ -517,12 +511,10 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
517
511
|
_burn(msg.sender, msg.sender, amount, data, new bytes(0));
|
|
518
512
|
}
|
|
519
513
|
|
|
520
|
-
function isOperatorFor(
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
returns (bool)
|
|
525
|
-
{
|
|
514
|
+
function isOperatorFor(
|
|
515
|
+
address operator,
|
|
516
|
+
address tokenHolder
|
|
517
|
+
) external view override returns (bool) {
|
|
526
518
|
return _operators.isOperatorFor(operator, tokenHolder);
|
|
527
519
|
}
|
|
528
520
|
|
|
@@ -580,24 +572,6 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
580
572
|
* SuperToken custom token functions
|
|
581
573
|
*************************************************************************/
|
|
582
574
|
|
|
583
|
-
/// unused - place holder
|
|
584
|
-
function selfMint(
|
|
585
|
-
address account,
|
|
586
|
-
uint256 amount,
|
|
587
|
-
bytes memory userData
|
|
588
|
-
) external override onlySelf {
|
|
589
|
-
revert();
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
/// unused - place holder
|
|
593
|
-
function selfBurn(
|
|
594
|
-
address account,
|
|
595
|
-
uint256 amount,
|
|
596
|
-
bytes memory userData
|
|
597
|
-
) external override onlySelf {
|
|
598
|
-
revert();
|
|
599
|
-
}
|
|
600
|
-
|
|
601
575
|
/// still used by erc20permit
|
|
602
576
|
function selfApproveFor(
|
|
603
577
|
address account,
|
|
@@ -607,55 +581,6 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
607
581
|
_approve(account, spender, amount);
|
|
608
582
|
}
|
|
609
583
|
|
|
610
|
-
/// unused - place holder
|
|
611
|
-
function selfTransferFrom(
|
|
612
|
-
address holder,
|
|
613
|
-
address spender,
|
|
614
|
-
address recipient,
|
|
615
|
-
uint256 amount
|
|
616
|
-
) external override onlySelf {
|
|
617
|
-
revert();
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
/**************************************************************************
|
|
621
|
-
* SuperToken extra functions
|
|
622
|
-
*************************************************************************/
|
|
623
|
-
|
|
624
|
-
function transferAll(address recipient) external override {
|
|
625
|
-
_transferFrom(msg.sender, msg.sender, recipient, balanceOf(msg.sender));
|
|
626
|
-
}
|
|
627
|
-
|
|
628
|
-
/**************************************************************************
|
|
629
|
-
* ERC20 wrapping
|
|
630
|
-
*************************************************************************/
|
|
631
|
-
|
|
632
|
-
/// @dev ISuperfluidGovernance.getUnderlyingToken implementation
|
|
633
|
-
function getUnderlyingToken() external view override returns (address) {
|
|
634
|
-
return address(_underlyingToken);
|
|
635
|
-
}
|
|
636
|
-
|
|
637
|
-
/// @dev ISuperToken.upgrade implementation
|
|
638
|
-
function upgrade(uint256 amount) external override {
|
|
639
|
-
//keep only for interface override not required for G$
|
|
640
|
-
revert();
|
|
641
|
-
}
|
|
642
|
-
|
|
643
|
-
/// @dev ISuperToken.upgradeTo implementation
|
|
644
|
-
function upgradeTo(
|
|
645
|
-
address to,
|
|
646
|
-
uint256 amount,
|
|
647
|
-
bytes calldata data
|
|
648
|
-
) external override {
|
|
649
|
-
//keep only for interface override not required for G$
|
|
650
|
-
revert();
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
/// @dev ISuperToken.downgrade implementation
|
|
654
|
-
function downgrade(uint256 amount) external override {
|
|
655
|
-
//keep only for interface override not required for G$
|
|
656
|
-
revert();
|
|
657
|
-
}
|
|
658
|
-
|
|
659
584
|
/**************************************************************************
|
|
660
585
|
* Superfluid Batch Operations
|
|
661
586
|
*************************************************************************/
|
|
@@ -687,20 +612,95 @@ contract SuperToken is UUPSProxiable, SuperfluidToken, ISuperToken {
|
|
|
687
612
|
_transferFrom(account, spender, recipient, amount);
|
|
688
613
|
}
|
|
689
614
|
|
|
690
|
-
function
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
615
|
+
function operationSend(
|
|
616
|
+
address spender,
|
|
617
|
+
address recipient,
|
|
618
|
+
uint256 amount,
|
|
619
|
+
bytes memory userData
|
|
620
|
+
) external override onlyHost {
|
|
621
|
+
_send(msg.sender, spender, recipient, amount, userData, "", true);
|
|
696
622
|
}
|
|
697
623
|
|
|
698
|
-
function
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
{
|
|
703
|
-
|
|
624
|
+
function operationIncreaseAllowance(
|
|
625
|
+
address account,
|
|
626
|
+
address spender,
|
|
627
|
+
uint256 addedValue
|
|
628
|
+
) external override onlyHost {
|
|
629
|
+
_approve(account, spender, _allowances[account][spender] + addedValue);
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
function operationDecreaseAllowance(
|
|
633
|
+
address account,
|
|
634
|
+
address spender,
|
|
635
|
+
uint256 subtractedValue
|
|
636
|
+
) external override onlyHost {
|
|
637
|
+
_approve(
|
|
638
|
+
account,
|
|
639
|
+
spender,
|
|
640
|
+
_allowances[account][spender].sub(
|
|
641
|
+
subtractedValue,
|
|
642
|
+
"SuperToken: decreased allowance below zero"
|
|
643
|
+
)
|
|
644
|
+
);
|
|
645
|
+
}
|
|
646
|
+
|
|
647
|
+
/**************************************************************************
|
|
648
|
+
* Celo gas token functions
|
|
649
|
+
*************************************************************************/
|
|
650
|
+
|
|
651
|
+
/**
|
|
652
|
+
* @notice Reserve balance for making payments for gas in this StableToken currency.
|
|
653
|
+
* @param from The account to reserve balance from
|
|
654
|
+
* @param value The amount of balance to reserve
|
|
655
|
+
* @dev Note that this function is called by the protocol when paying for tx fees in this
|
|
656
|
+
* currency. After the tx is executed, gas is refunded to the sender and credited to the
|
|
657
|
+
* various tx fee recipients via a call to `creditGasFees`. Note too that the events emitted
|
|
658
|
+
* by `creditGasFees` reflect the *net* gas fee payments for the transaction.
|
|
659
|
+
*/
|
|
660
|
+
function debitGasFees(address from, uint256 value) external {
|
|
661
|
+
require(msg.sender == address(0), "Only VM can call");
|
|
662
|
+
SuperfluidToken._burn(from, value);
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
/**
|
|
666
|
+
* @notice Alternative function to credit balance after making payments
|
|
667
|
+
* for gas in this StableToken currency.
|
|
668
|
+
* @param from The account to debit balance from
|
|
669
|
+
* @param feeRecipient Coinbase address
|
|
670
|
+
* @param gatewayFeeRecipient Gateway address
|
|
671
|
+
* @param baseFeeRecipient baseFee recipient address
|
|
672
|
+
* @param tipTxFee Coinbase fee
|
|
673
|
+
* @param baseTxFee base fee
|
|
674
|
+
* @param gatewayFee Gateway fee
|
|
675
|
+
* @dev Note that this function is called by the protocol when paying for tx fees in this
|
|
676
|
+
* currency. Before the tx is executed, gas is debited from the sender via a call to
|
|
677
|
+
* `debitGasFees`. Note too that the events emitted by `creditGasFees` reflect the *net* gas fee
|
|
678
|
+
* payments for the transaction.
|
|
679
|
+
*/
|
|
680
|
+
function creditGasFees(
|
|
681
|
+
address from,
|
|
682
|
+
address feeRecipient,
|
|
683
|
+
address gatewayFeeRecipient,
|
|
684
|
+
address baseFeeRecipient,
|
|
685
|
+
uint256 refund,
|
|
686
|
+
uint256 tipTxFee,
|
|
687
|
+
uint256 gatewayFee,
|
|
688
|
+
uint256 baseTxFee
|
|
689
|
+
) external {
|
|
690
|
+
require(msg.sender == address(0), "Only VM can call");
|
|
691
|
+
SuperfluidToken._mint(from, refund);
|
|
692
|
+
|
|
693
|
+
_creditGas(from, feeRecipient, tipTxFee);
|
|
694
|
+
_creditGas(from, baseFeeRecipient, baseTxFee);
|
|
695
|
+
_creditGas(from, gatewayFeeRecipient, gatewayFee);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
function _creditGas(address from, address to, uint256 value) internal {
|
|
699
|
+
if (to == address(0)) {
|
|
700
|
+
return;
|
|
701
|
+
}
|
|
702
|
+
SuperfluidToken._mint(to, value);
|
|
703
|
+
emit Transfer(from, to, value);
|
|
704
704
|
}
|
|
705
705
|
|
|
706
706
|
/**************************************************************************
|
|
@@ -552,11 +552,9 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
552
552
|
* @param _accounts to fish
|
|
553
553
|
* @return A bool indicating if all the UBIs were fished
|
|
554
554
|
*/
|
|
555
|
-
function fishMulti(
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
returns (uint256)
|
|
559
|
-
{
|
|
555
|
+
function fishMulti(
|
|
556
|
+
address[] memory _accounts
|
|
557
|
+
) public requireStarted returns (uint256) {
|
|
560
558
|
uint256 i;
|
|
561
559
|
uint256 bounty;
|
|
562
560
|
|
|
@@ -609,4 +607,10 @@ contract UBIScheme is DAOUpgradeableContract {
|
|
|
609
607
|
_onlyAvatar();
|
|
610
608
|
activeUsersCount = _activeUserCount;
|
|
611
609
|
}
|
|
610
|
+
|
|
611
|
+
function withdraw(uint256 _amount, address _recipient) external {
|
|
612
|
+
_onlyAvatar();
|
|
613
|
+
IGoodDollar token = nativeToken();
|
|
614
|
+
require(token.transfer(_recipient, _amount), "withdraw failed");
|
|
615
|
+
}
|
|
612
616
|
}
|
|
@@ -467,4 +467,10 @@ contract UBISchemeV2 is DAOUpgradeableContract {
|
|
|
467
467
|
_onlyAvatar();
|
|
468
468
|
reserveFactor = _reserveFactor;
|
|
469
469
|
}
|
|
470
|
+
|
|
471
|
+
function withdraw(uint256 _amount, address _recipient) external {
|
|
472
|
+
_onlyAvatar();
|
|
473
|
+
IGoodDollar token = nativeToken();
|
|
474
|
+
require(token.transfer(_recipient, _amount), "withdraw failed");
|
|
475
|
+
}
|
|
470
476
|
}
|
|
@@ -245,8 +245,9 @@ contract AdminWallet is
|
|
|
245
245
|
toppings[currentDay()][_user] < toppingTimes,
|
|
246
246
|
"User wallet has been topped too many times today"
|
|
247
247
|
);
|
|
248
|
+
require(address(_user).balance < toppingAmount / 4, "hasBalance");
|
|
249
|
+
|
|
248
250
|
lastGdBalance[_user] = gdBalance;
|
|
249
|
-
if (address(_user).balance >= toppingAmount / 4) return;
|
|
250
251
|
|
|
251
252
|
_topWallet(_user);
|
|
252
253
|
}
|
|
@@ -245,8 +245,9 @@ contract AdminWalletFuse is
|
|
|
245
245
|
toppings[currentDay()][_user] < toppingTimes,
|
|
246
246
|
"User wallet has been topped too many times today"
|
|
247
247
|
);
|
|
248
|
+
require(address(_user).balance < toppingAmount / 4, "hasBalance");
|
|
249
|
+
|
|
248
250
|
lastGdBalance[_user] = gdBalance;
|
|
249
|
-
if (address(_user).balance >= toppingAmount / 4) return;
|
|
250
251
|
|
|
251
252
|
_topWallet(_user);
|
|
252
253
|
}
|
|
@@ -38,11 +38,10 @@ contract BuyAndBridgeHelper {
|
|
|
38
38
|
gdx = exHelper.nameService().getAddress("RESERVE");
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
function buyAndBridge(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
{
|
|
41
|
+
function buyAndBridge(
|
|
42
|
+
BuyParams memory _params,
|
|
43
|
+
uint256 _toChain
|
|
44
|
+
) public payable returns (uint256) {
|
|
46
45
|
require(_toChain == FUSE || _toChain == CELO, "invalid chainId");
|
|
47
46
|
uint256 valueToSend;
|
|
48
47
|
if (_params.buyPath[0] != address(0)) {
|
|
@@ -71,7 +70,6 @@ contract BuyAndBridgeHelper {
|
|
|
71
70
|
|
|
72
71
|
require(bought > 0, "buy failed");
|
|
73
72
|
|
|
74
|
-
address gdx = exHelper.nameService().getAddress("RESERVE");
|
|
75
73
|
//make sure we send GDX we received to buyer
|
|
76
74
|
if (ERC20(gdx).balanceOf(address(this)) >= bought) {
|
|
77
75
|
require(ERC20(gdx).transfer(msg.sender, bought), "gdx");
|
|
@@ -96,13 +94,15 @@ contract BuyAndBridgeHelper {
|
|
|
96
94
|
abi.encodePacked(_recipient)
|
|
97
95
|
);
|
|
98
96
|
} else if (_toChain == CELO) {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
97
|
+
// TODO: implement with new bridge
|
|
98
|
+
revert("not implemented");
|
|
99
|
+
// IGoodDollar(gd).approve(address(multiChainBridge), _amount);
|
|
100
|
+
// multiChainBridge.anySwapOutUnderlying(
|
|
101
|
+
// anyGoodDollar,
|
|
102
|
+
// _recipient,
|
|
103
|
+
// _amount,
|
|
104
|
+
// _toChain
|
|
105
|
+
// );
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
108
|
}
|
|
@@ -21,10 +21,10 @@ contract Multicall {
|
|
|
21
21
|
bytes data;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
function aggregate(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
{
|
|
24
|
+
function aggregate(
|
|
25
|
+
Call[] memory calls,
|
|
26
|
+
bool strict
|
|
27
|
+
) public returns (uint256 blockNumber, Return[] memory returnData) {
|
|
28
28
|
blockNumber = block.number;
|
|
29
29
|
returnData = new Return[](calls.length);
|
|
30
30
|
for (uint256 i = 0; i < calls.length; i++) {
|
|
@@ -43,11 +43,9 @@ contract Multicall {
|
|
|
43
43
|
balance = addr.balance;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
function getBlockHash(
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
returns (bytes32 blockHash)
|
|
50
|
-
{
|
|
46
|
+
function getBlockHash(
|
|
47
|
+
uint256 blockNumber
|
|
48
|
+
) public view returns (bytes32 blockHash) {
|
|
51
49
|
blockHash = blockhash(blockNumber);
|
|
52
50
|
}
|
|
53
51
|
|
|
@@ -64,7 +62,7 @@ contract Multicall {
|
|
|
64
62
|
view
|
|
65
63
|
returns (uint256 difficulty)
|
|
66
64
|
{
|
|
67
|
-
difficulty = block.
|
|
65
|
+
difficulty = block.prevrandao;
|
|
68
66
|
}
|
|
69
67
|
|
|
70
68
|
function getCurrentBlockGasLimit() public view returns (uint256 gaslimit) {
|