@gooddollar/goodprotocol 2.0.5-beta.5 → 2.0.5-beta.7
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/Faucet.min.json +1 -1
- package/artifacts/abis/FuseFaucetV2.min.json +1 -1
- package/artifacts/abis/IFirstClaimPool.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/IFirstClaimPool.json +7 -0
- 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 +28 -9
- 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 +28 -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/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +2 -2
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +2 -2
- package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
- package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
- 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/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
- 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/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/cBATMock.sol/cBATMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +2 -2
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +2 -2
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
- package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
- package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
- package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
- package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
- package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
- package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
- package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
- 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/FeesFormula.sol/IFeesFormula.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/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/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2 -2
- package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
- package/artifacts/contracts/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/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/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/DataTypes.sol/DataTypes.dbg.json +1 -1
- 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/MultiCall.sol/Multicall.dbg.json +1 -1
- 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/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/ProxyFactory1967.dbg.json +1 -1
- 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 +46 -61
- package/contracts/fuseFaucet/Faucet.sol +9 -8
- package/contracts/fuseFaucet/FuseFaucetV2.sol +16 -9
- package/contracts/invite/InvitesFuseV2.sol +1 -1
- package/contracts/invite/InvitesV2.sol +20 -30
- package/contracts/token/superfluid/UUPSProxy.sol +1 -1
- package/package.json +2 -2
- package/releases/deployment.json +4 -2
- package/scripts/multichain-deploy/helpers.ts +13 -2
- package/scripts/proposals/gip-14_1.ts +255 -0
- package/scripts/proposals/gips-14_1.md +29 -0
- package/test/faucet/Faucet.test.ts +166 -130
- package/types/Faucet.ts +50 -21
- package/types/FuseFaucetV2.ts +50 -0
- package/types/IFirstClaimPool.ts +21 -0
- package/types/factories/AaveStakingFactory__factory.ts +1 -1
- package/types/factories/AdminWalletFuse__factory.ts +1 -1
- package/types/factories/AdminWallet__factory.ts +1 -1
- package/types/factories/BaseShareFieldV2__factory.ts +1 -1
- package/types/factories/BaseShareField__factory.ts +1 -1
- package/types/factories/BuyAndBridgeHelper__factory.ts +1 -1
- package/types/factories/ClaimersDistribution__factory.ts +1 -1
- package/types/factories/CompoundStakingFactory__factory.ts +1 -1
- package/types/factories/CompoundVotingMachine__factory.ts +1 -1
- package/types/factories/DAOContract__factory.ts +1 -1
- package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
- package/types/factories/DistributionBridgeMock__factory.ts +1 -1
- package/types/factories/DistributionHelperTestHelper__factory.ts +1 -1
- package/types/factories/DistributionHelperTest__factory.ts +1 -1
- package/types/factories/DistributionHelper__factory.ts +1 -1
- package/types/factories/DonationsStaking__factory.ts +1 -1
- package/types/factories/ExchangeHelper__factory.ts +1 -1
- package/types/factories/Faucet__factory.ts +27 -8
- package/types/factories/FuseFaucetV2__factory.ts +27 -1
- package/types/factories/FuseFaucet__factory.ts +1 -1
- package/types/factories/FuseStakingV3__factory.ts +1 -1
- package/types/factories/GReputation__factory.ts +1 -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 +1 -1
- package/types/factories/GovernanceStaking__factory.ts +1 -1
- package/types/factories/IFirstClaimPool__factory.ts +7 -0
- package/types/factories/IdentityMock__factory.ts +1 -1
- package/types/factories/IdentityV2__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/MultichainBridgeHelper__factory.ts +1 -1
- package/types/factories/MultichainRouterMock__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/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/ReputationTestHelper__factory.ts +1 -1
- package/types/factories/Reputation__factory.ts +1 -1
- package/types/factories/StakersDistribution__factory.ts +1 -1
- package/types/factories/SuperGoodDollar__factory.ts +1 -1
- package/types/factories/SwapHelperTest__factory.ts +1 -1
- package/types/factories/UBIScheme__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/yarn.lock +4 -4
|
@@ -74,8 +74,8 @@
|
|
|
74
74
|
"type": "function"
|
|
75
75
|
}
|
|
76
76
|
],
|
|
77
|
-
"bytecode": "
|
|
78
|
-
"deployedBytecode": "
|
|
77
|
+
"bytecode": "0x608060405234801561001057600080fd5b5060405161033c38038061033c83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102a9806100936000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80635653eeeb1461004657806391d61f3e1461005b578063c52164c61461006e575b600080fd5b6100596100543660046101c9565b61009d565b005b6100596100693660046101c9565b610136565b600054610081906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60005b81811015610130576000546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906100da908790879060040161020a565b6020604051808303816000875af11580156100f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011d9190610223565b50806101288161024c565b9150506100a0565b50505050565b60005b8181101561013057600054604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610173908790879060040161020a565b6020604051808303816000875af1158015610192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b69190610223565b50806101c18161024c565b915050610139565b6000806000606084860312156101de57600080fd5b83356001600160a01b03811681146101f557600080fd5b95602085013595506040909401359392505050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561023557600080fd5b8151801515811461024557600080fd5b9392505050565b60006001820161026c57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206c73c2a622a13a1420388daec412af012e94d78e840b29507bd279ce90dd324d64736f6c63430008100033",
|
|
78
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80635653eeeb1461004657806391d61f3e1461005b578063c52164c61461006e575b600080fd5b6100596100543660046101c9565b61009d565b005b6100596100693660046101c9565b610136565b600054610081906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b60005b81811015610130576000546040516340c10f1960e01b81526001600160a01b03909116906340c10f19906100da908790879060040161020a565b6020604051808303816000875af11580156100f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061011d9190610223565b50806101288161024c565b9150506100a0565b50505050565b60005b8181101561013057600054604051632770a7eb60e21b81526001600160a01b0390911690639dc29fac90610173908790879060040161020a565b6020604051808303816000875af1158015610192573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101b69190610223565b50806101c18161024c565b915050610139565b6000806000606084860312156101de57600080fd5b83356001600160a01b03811681146101f557600080fd5b95602085013595506040909401359392505050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561023557600080fd5b8151801515811461024557600080fd5b9392505050565b60006001820161026c57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212206c73c2a622a13a1420388daec412af012e94d78e840b29507bd279ce90dd324d64736f6c63430008100033",
|
|
79
79
|
"linkReferences": {},
|
|
80
80
|
"deployedLinkReferences": {}
|
|
81
81
|
}
|
package/contracts/Interfaces.sol
CHANGED
|
@@ -19,10 +19,10 @@ interface ERC20 {
|
|
|
19
19
|
|
|
20
20
|
function totalSupply() external view returns (uint256);
|
|
21
21
|
|
|
22
|
-
function allowance(
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
function allowance(
|
|
23
|
+
address owner,
|
|
24
|
+
address spender
|
|
25
|
+
) external view returns (uint256);
|
|
26
26
|
|
|
27
27
|
function transferFrom(
|
|
28
28
|
address sender,
|
|
@@ -136,24 +136,25 @@ interface IERC2917 is ERC20 {
|
|
|
136
136
|
/// @notice It will get the productivity of given user.
|
|
137
137
|
/// @dev it will return 0 if user has no productivity proved in the contract.
|
|
138
138
|
/// @return user's productivity and overall productivity.
|
|
139
|
-
function getProductivity(
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
returns (uint256, uint256);
|
|
139
|
+
function getProductivity(
|
|
140
|
+
address user
|
|
141
|
+
) external view returns (uint256, uint256);
|
|
143
142
|
|
|
144
143
|
/// @notice increase a user's productivity.
|
|
145
144
|
/// @dev Note the best practice will be restrict the callee to prove of productivity's contract address.
|
|
146
145
|
/// @return true to confirm that the productivity added success.
|
|
147
|
-
function increaseProductivity(
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
function increaseProductivity(
|
|
147
|
+
address user,
|
|
148
|
+
uint256 value
|
|
149
|
+
) external returns (bool);
|
|
150
150
|
|
|
151
151
|
/// @notice decrease a user's productivity.
|
|
152
152
|
/// @dev Note the best practice will be restrict the callee to prove of productivity's contract address.
|
|
153
153
|
/// @return true to confirm that the productivity removed success.
|
|
154
|
-
function decreaseProductivity(
|
|
155
|
-
|
|
156
|
-
|
|
154
|
+
function decreaseProductivity(
|
|
155
|
+
address user,
|
|
156
|
+
uint256 value
|
|
157
|
+
) external returns (bool);
|
|
157
158
|
|
|
158
159
|
/// @notice take() will return the interests that callee will get at current block height.
|
|
159
160
|
/// @dev it will always calculated by block.number, so it will change when block height changes.
|
|
@@ -233,28 +234,24 @@ interface Uniswap {
|
|
|
233
234
|
uint256 reserveOut
|
|
234
235
|
) external pure returns (uint256 amountOut);
|
|
235
236
|
|
|
236
|
-
function getAmountsOut(
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
237
|
+
function getAmountsOut(
|
|
238
|
+
uint256 amountIn,
|
|
239
|
+
address[] memory path
|
|
240
|
+
) external pure returns (uint256[] memory amounts);
|
|
240
241
|
}
|
|
241
242
|
|
|
242
243
|
interface UniswapFactory {
|
|
243
|
-
function getPair(
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
244
|
+
function getPair(
|
|
245
|
+
address tokenA,
|
|
246
|
+
address tokenB
|
|
247
|
+
) external view returns (address);
|
|
247
248
|
}
|
|
248
249
|
|
|
249
250
|
interface UniswapPair {
|
|
250
251
|
function getReserves()
|
|
251
252
|
external
|
|
252
253
|
view
|
|
253
|
-
returns (
|
|
254
|
-
uint112 reserve0,
|
|
255
|
-
uint112 reserve1,
|
|
256
|
-
uint32 blockTimestampLast
|
|
257
|
-
);
|
|
254
|
+
returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
|
|
258
255
|
|
|
259
256
|
function kLast() external view returns (uint256);
|
|
260
257
|
|
|
@@ -317,10 +314,9 @@ interface IIdentityV2 is IIdentity {
|
|
|
317
314
|
uint256 dateAuthenticated
|
|
318
315
|
) external;
|
|
319
316
|
|
|
320
|
-
function getWhitelistedRoot(
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
returns (address root);
|
|
317
|
+
function getWhitelistedRoot(
|
|
318
|
+
address account
|
|
319
|
+
) external view returns (address root);
|
|
324
320
|
}
|
|
325
321
|
|
|
326
322
|
interface IUBIScheme {
|
|
@@ -335,13 +331,14 @@ interface IFirstClaimPool {
|
|
|
335
331
|
function awardUser(address user) external returns (uint256);
|
|
336
332
|
|
|
337
333
|
function claimAmount() external view returns (uint256);
|
|
334
|
+
|
|
335
|
+
function end() external;
|
|
338
336
|
}
|
|
339
337
|
|
|
340
338
|
interface ProxyAdmin {
|
|
341
|
-
function getProxyImplementation(
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
returns (address);
|
|
339
|
+
function getProxyImplementation(
|
|
340
|
+
address proxy
|
|
341
|
+
) external view returns (address);
|
|
345
342
|
|
|
346
343
|
function getProxyAdmin(address proxy) external view returns (address);
|
|
347
344
|
|
|
@@ -371,7 +368,9 @@ interface AggregatorV3Interface {
|
|
|
371
368
|
// getRoundData and latestRoundData should both raise "No data present"
|
|
372
369
|
// if they do not have data to report, instead of returning unset values
|
|
373
370
|
// which could be misinterpreted as actual reported values.
|
|
374
|
-
function getRoundData(
|
|
371
|
+
function getRoundData(
|
|
372
|
+
uint80 _roundId
|
|
373
|
+
)
|
|
375
374
|
external
|
|
376
375
|
view
|
|
377
376
|
returns (
|
|
@@ -429,10 +428,9 @@ interface ILendingPool {
|
|
|
429
428
|
* @param asset The address of the underlying asset of the reserve
|
|
430
429
|
* @return The state of the reserve
|
|
431
430
|
**/
|
|
432
|
-
function getReserveData(
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
returns (DataTypes.ReserveData memory);
|
|
431
|
+
function getReserveData(
|
|
432
|
+
address asset
|
|
433
|
+
) external view returns (DataTypes.ReserveData memory);
|
|
436
434
|
}
|
|
437
435
|
|
|
438
436
|
interface IDonationStaking {
|
|
@@ -461,36 +459,23 @@ interface IAaveIncentivesController {
|
|
|
461
459
|
* @param user The address of the user
|
|
462
460
|
* @return The rewards
|
|
463
461
|
**/
|
|
464
|
-
function getRewardsBalance(
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
462
|
+
function getRewardsBalance(
|
|
463
|
+
address[] calldata assets,
|
|
464
|
+
address user
|
|
465
|
+
) external view returns (uint256);
|
|
468
466
|
}
|
|
469
467
|
|
|
470
468
|
interface IGoodStaking {
|
|
471
|
-
function collectUBIInterest(
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
uint256,
|
|
475
|
-
uint256,
|
|
476
|
-
uint256
|
|
477
|
-
);
|
|
469
|
+
function collectUBIInterest(
|
|
470
|
+
address recipient
|
|
471
|
+
) external returns (uint256, uint256, uint256);
|
|
478
472
|
|
|
479
473
|
function iToken() external view returns (address);
|
|
480
474
|
|
|
481
475
|
function currentGains(
|
|
482
476
|
bool _returnTokenBalanceInUSD,
|
|
483
477
|
bool _returnTokenGainsInUSD
|
|
484
|
-
)
|
|
485
|
-
external
|
|
486
|
-
view
|
|
487
|
-
returns (
|
|
488
|
-
uint256,
|
|
489
|
-
uint256,
|
|
490
|
-
uint256,
|
|
491
|
-
uint256,
|
|
492
|
-
uint256
|
|
493
|
-
);
|
|
478
|
+
) external view returns (uint256, uint256, uint256, uint256, uint256);
|
|
494
479
|
|
|
495
480
|
function getRewardEarned(address user) external view returns (uint256);
|
|
496
481
|
|
|
@@ -47,6 +47,7 @@ contract Faucet is Initializable, UUPSUpgradeable, AccessControlUpgradeable {
|
|
|
47
47
|
uint64 public maxDailyNewWallets;
|
|
48
48
|
uint64 public dailyNewWalletsCount;
|
|
49
49
|
uint32 public version;
|
|
50
|
+
uint8 public minTopping; //percentage of topping amount, that user can request to top
|
|
50
51
|
|
|
51
52
|
function initialize(
|
|
52
53
|
NameService _ns,
|
|
@@ -65,6 +66,7 @@ contract Faucet is Initializable, UUPSUpgradeable, AccessControlUpgradeable {
|
|
|
65
66
|
nameService = _ns;
|
|
66
67
|
maxPerWeekMultiplier = 2;
|
|
67
68
|
maxDailyNewWallets = 5000;
|
|
69
|
+
minTopping = 15;
|
|
68
70
|
}
|
|
69
71
|
|
|
70
72
|
function _authorizeUpgrade(
|
|
@@ -75,13 +77,6 @@ contract Faucet is Initializable, UUPSUpgradeable, AccessControlUpgradeable {
|
|
|
75
77
|
return IIdentityV2(nameService.getAddress("IDENTITY"));
|
|
76
78
|
}
|
|
77
79
|
|
|
78
|
-
function upgrade() public {
|
|
79
|
-
require(version == 0, "already upgraded");
|
|
80
|
-
if (maxDailyNewWallets == 0) maxDailyNewWallets = 5000;
|
|
81
|
-
version++;
|
|
82
|
-
setGasTopping(gasTopping / gasPrice);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
80
|
modifier reimburseGas() {
|
|
86
81
|
uint256 _gasRefund = gasleft();
|
|
87
82
|
_;
|
|
@@ -157,6 +152,8 @@ contract Faucet is Initializable, UUPSUpgradeable, AccessControlUpgradeable {
|
|
|
157
152
|
|
|
158
153
|
function canTop(address _user) external view returns (bool) {
|
|
159
154
|
if (getToppingAmount() < address(_user).balance) return false;
|
|
155
|
+
uint256 toTop = getToppingAmount() - address(_user).balance;
|
|
156
|
+
if ((toTop * 100) / getToppingAmount() < minTopping) return false;
|
|
160
157
|
|
|
161
158
|
address whitelistedRoot = getIdentity().getWhitelistedRoot(_user);
|
|
162
159
|
_user = whitelistedRoot == address(0) ? _user : whitelistedRoot;
|
|
@@ -206,8 +203,8 @@ contract Faucet is Initializable, UUPSUpgradeable, AccessControlUpgradeable {
|
|
|
206
203
|
? _wallet
|
|
207
204
|
: payable(whitelistedRoot);
|
|
208
205
|
|
|
209
|
-
require(getToppingAmount() > address(_wallet).balance);
|
|
210
206
|
uint256 toTop = getToppingAmount() - address(_wallet).balance;
|
|
207
|
+
require((toTop * 100) / getToppingAmount() >= minTopping, "low toTop");
|
|
211
208
|
|
|
212
209
|
uint256 dayOfWeek = currentDay % 7;
|
|
213
210
|
|
|
@@ -259,4 +256,8 @@ contract Faucet is Initializable, UUPSUpgradeable, AccessControlUpgradeable {
|
|
|
259
256
|
function setGasPrice(uint64 _price) external onlyRole(DEFAULT_ADMIN_ROLE) {
|
|
260
257
|
gasPrice = _price;
|
|
261
258
|
}
|
|
259
|
+
|
|
260
|
+
function setMinTopping(uint8 _minTop) external onlyRole(DEFAULT_ADMIN_ROLE) {
|
|
261
|
+
minTopping = _minTop;
|
|
262
|
+
}
|
|
262
263
|
}
|
|
@@ -46,6 +46,7 @@ contract FuseFaucetV2 is Initializable {
|
|
|
46
46
|
address public relayer;
|
|
47
47
|
address public owner;
|
|
48
48
|
uint32 public version;
|
|
49
|
+
uint8 public minTopping;
|
|
49
50
|
|
|
50
51
|
function initialize(
|
|
51
52
|
NameService _ns,
|
|
@@ -53,15 +54,17 @@ contract FuseFaucetV2 is Initializable {
|
|
|
53
54
|
address _relayer,
|
|
54
55
|
uint64 gweiTopping
|
|
55
56
|
) public initializer {
|
|
56
|
-
|
|
57
|
+
relayer = _relayer;
|
|
57
58
|
gasPrice = _gasPrice;
|
|
58
|
-
|
|
59
|
+
gasTopping = gweiTopping; //1m gwei
|
|
60
|
+
perDayRoughLimit = 2 * gasTopping;
|
|
59
61
|
maxDailyToppings = 3;
|
|
60
62
|
startTime = block.timestamp;
|
|
61
63
|
nameService = _ns;
|
|
62
64
|
maxPerWeekMultiplier = 2;
|
|
63
65
|
maxSwapAmount = 1000;
|
|
64
66
|
maxDailyNewWallets = 5000;
|
|
67
|
+
minTopping = 15;
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
modifier upgrader(uint32 _newversion) {
|
|
@@ -175,6 +178,8 @@ contract FuseFaucetV2 is Initializable {
|
|
|
175
178
|
|
|
176
179
|
function canTop(address _user) external view returns (bool) {
|
|
177
180
|
if (getToppingAmount() < address(_user).balance) return false;
|
|
181
|
+
uint256 toTop = getToppingAmount() - address(_user).balance;
|
|
182
|
+
if ((toTop * 100) / getToppingAmount() < minTopping) return false;
|
|
178
183
|
|
|
179
184
|
address whitelistedRoot = getIdentity().getWhitelistedRoot(_user);
|
|
180
185
|
_user = whitelistedRoot == address(0) ? _user : whitelistedRoot;
|
|
@@ -209,12 +214,9 @@ contract FuseFaucetV2 is Initializable {
|
|
|
209
214
|
* can only be done by admin the amount of times specified in constructor per day
|
|
210
215
|
* @param _user The address to transfer to
|
|
211
216
|
*/
|
|
212
|
-
function topWallet(
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
toppingLimit(_user)
|
|
216
|
-
onlyAuthorized(_user)
|
|
217
|
-
{
|
|
217
|
+
function topWallet(
|
|
218
|
+
address payable _user
|
|
219
|
+
) public reimburseGas toppingLimit(_user) onlyAuthorized(_user) {
|
|
218
220
|
_topWallet(_user);
|
|
219
221
|
}
|
|
220
222
|
|
|
@@ -227,8 +229,9 @@ contract FuseFaucetV2 is Initializable {
|
|
|
227
229
|
? _wallet
|
|
228
230
|
: payable(whitelistedRoot);
|
|
229
231
|
|
|
230
|
-
require(getToppingAmount() > address(_wallet).balance);
|
|
232
|
+
// require(getToppingAmount() > address(_wallet).balance);
|
|
231
233
|
uint256 toTop = getToppingAmount() - address(_wallet).balance;
|
|
234
|
+
require((toTop * 100) / getToppingAmount() >= minTopping, "low toTop");
|
|
232
235
|
|
|
233
236
|
uint256 dayOfWeek = currentDay % 7;
|
|
234
237
|
|
|
@@ -276,4 +279,8 @@ contract FuseFaucetV2 is Initializable {
|
|
|
276
279
|
function setGasPrice(uint64 _price) external onlyOwner {
|
|
277
280
|
gasPrice = _price;
|
|
278
281
|
}
|
|
282
|
+
|
|
283
|
+
function setMinTopping(uint8 _minTop) external onlyOwner {
|
|
284
|
+
minTopping = _minTop;
|
|
285
|
+
}
|
|
279
286
|
}
|
|
@@ -305,7 +305,7 @@ contract InvitesFuseV2 is Initializable {
|
|
|
305
305
|
|
|
306
306
|
function end() public ownerOrAvatar isActive {
|
|
307
307
|
uint256 gdBalance = goodDollar.balanceOf(address(this));
|
|
308
|
-
goodDollar.transfer(
|
|
308
|
+
goodDollar.transfer(msg.sender, gdBalance);
|
|
309
309
|
payable(msg.sender).transfer(address(this).balance);
|
|
310
310
|
active = false;
|
|
311
311
|
}
|
|
@@ -100,11 +100,9 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
100
100
|
levelExpirationEnabled = false;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
function _authorizeUpgrade(
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
ownerOrAvatar
|
|
107
|
-
{}
|
|
103
|
+
function _authorizeUpgrade(
|
|
104
|
+
address newImplementation
|
|
105
|
+
) internal override ownerOrAvatar {}
|
|
108
106
|
|
|
109
107
|
function getIdentity() public view returns (IIdentityV2) {
|
|
110
108
|
return IIdentityV2(nameService.getAddress("IDENTITY"));
|
|
@@ -149,11 +147,9 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
149
147
|
emit InviteeJoined(inviter, msg.sender);
|
|
150
148
|
}
|
|
151
149
|
|
|
152
|
-
function _whitelistedOnChainOrDefault(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
returns (uint256 chainId)
|
|
156
|
-
{
|
|
150
|
+
function _whitelistedOnChainOrDefault(
|
|
151
|
+
address _invitee
|
|
152
|
+
) internal view returns (uint256 chainId) {
|
|
157
153
|
(bool success, bytes memory result) = address(getIdentity()).staticcall(
|
|
158
154
|
abi.encodeWithSignature("getWhitelistedOnChainId(address)", _invitee)
|
|
159
155
|
);
|
|
@@ -181,19 +177,15 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
181
177
|
isLevelExpired == false;
|
|
182
178
|
}
|
|
183
179
|
|
|
184
|
-
function getInvitees(
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
returns (address[] memory)
|
|
188
|
-
{
|
|
180
|
+
function getInvitees(
|
|
181
|
+
address _inviter
|
|
182
|
+
) public view returns (address[] memory) {
|
|
189
183
|
return users[_inviter].invitees;
|
|
190
184
|
}
|
|
191
185
|
|
|
192
|
-
function getPendingInvitees(
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
returns (address[] memory)
|
|
196
|
-
{
|
|
186
|
+
function getPendingInvitees(
|
|
187
|
+
address _inviter
|
|
188
|
+
) public view returns (address[] memory) {
|
|
197
189
|
address[] memory pending = users[_inviter].pending;
|
|
198
190
|
uint256 cur = 0;
|
|
199
191
|
uint256 total = 0;
|
|
@@ -230,19 +222,17 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
230
222
|
* @dev pay bounty for the inviter of _invitee
|
|
231
223
|
* invitee need to be whitelisted
|
|
232
224
|
*/
|
|
233
|
-
function bountyFor(
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
returns (uint256 bounty)
|
|
237
|
-
{
|
|
225
|
+
function bountyFor(
|
|
226
|
+
address _invitee
|
|
227
|
+
) public isActive returns (uint256 bounty) {
|
|
238
228
|
require(canCollectBountyFor(_invitee), "user not elligble for bounty yet");
|
|
239
229
|
return _bountyFor(_invitee, true);
|
|
240
230
|
}
|
|
241
231
|
|
|
242
|
-
function _bountyFor(
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
{
|
|
232
|
+
function _bountyFor(
|
|
233
|
+
address _invitee,
|
|
234
|
+
bool isSingleBounty
|
|
235
|
+
) internal returns (uint256 bounty) {
|
|
246
236
|
address invitedBy = users[_invitee].invitedBy;
|
|
247
237
|
uint256 joinedAt = users[_invitee].joinedAt;
|
|
248
238
|
Level memory level = levels[users[invitedBy].level];
|
|
@@ -317,7 +307,7 @@ contract InvitesV2 is DAOUpgradeableContract {
|
|
|
317
307
|
|
|
318
308
|
function end() public ownerOrAvatar isActive {
|
|
319
309
|
uint256 gdBalance = goodDollar.balanceOf(address(this));
|
|
320
|
-
goodDollar.transfer(
|
|
310
|
+
goodDollar.transfer(msg.sender, gdBalance);
|
|
321
311
|
payable(msg.sender).transfer(address(this).balance);
|
|
322
312
|
active = false;
|
|
323
313
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddollar/goodprotocol",
|
|
3
|
-
"version": "2.0.5-beta.
|
|
3
|
+
"version": "2.0.5-beta.7",
|
|
4
4
|
"description": "GoodDollar Protocol",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"prepack": "npm run minimize",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"@gnosis.pm/safe-core-sdk-types": "^1.7.0",
|
|
80
80
|
"@gnosis.pm/safe-ethers-lib": "^1.7.0",
|
|
81
81
|
"@gnosis.pm/safe-service-client": "^1.4.0",
|
|
82
|
-
"@nomicfoundation/hardhat-network-helpers": "^1.0.
|
|
82
|
+
"@nomicfoundation/hardhat-network-helpers": "^1.0.8",
|
|
83
83
|
"@nomiclabs/hardhat-ethers": "^2.2.1",
|
|
84
84
|
"@nomiclabs/hardhat-etherscan": "^3.1.0",
|
|
85
85
|
"@nomiclabs/hardhat-waffle": "^2.0.3",
|
package/releases/deployment.json
CHANGED
|
@@ -439,7 +439,8 @@
|
|
|
439
439
|
"GuardiansSafe": "0x5878123fe880881f1Ecc92D5fd31e5D3F5Fba2e9",
|
|
440
440
|
"IdentityOld": "0xFa8d865A962ca8456dF331D78806152d3aC5B84F",
|
|
441
441
|
"MultichainRouter": "0x735aBE48e8782948a37C7765ECb76b98CdE97B0F",
|
|
442
|
-
"GoodDollarMintBurnWrapper": "0x031b2B7C7854dd8EE9C4A644D7e54aD17F56e3cB"
|
|
442
|
+
"GoodDollarMintBurnWrapper": "0x031b2B7C7854dd8EE9C4A644D7e54aD17F56e3cB",
|
|
443
|
+
"CommunitySafe": "0x5Eb5f5fE13d1D5e6440DbD5913412299Bc5B5564"
|
|
443
444
|
},
|
|
444
445
|
"pre-production-celo": {
|
|
445
446
|
"ProxyFactory": "0x99C22e78A579e2176311c736C4c9F0b0D5A47806",
|
|
@@ -477,7 +478,8 @@
|
|
|
477
478
|
"Faucet": "0x4F93Fa058b03953C851eFaA2e4FC5C34afDFAb84",
|
|
478
479
|
"Invites": "0x36829D1Cda92FFF5782d5d48991620664FC857d3",
|
|
479
480
|
"UBIScheme": "0x43d72Ff17701B2DA814620735C39C620Ce0ea4A1",
|
|
480
|
-
"OneTimePayments": "0xB27D247f5C2a61D2Cb6b6E67FEE51d839447e97d"
|
|
481
|
+
"OneTimePayments": "0xB27D247f5C2a61D2Cb6b6E67FEE51d839447e97d",
|
|
482
|
+
"SwapHelper": "0xE45CaB86609a16dFaDec112FDd61E4EA80EdaA8D"
|
|
481
483
|
},
|
|
482
484
|
"gnosis": {
|
|
483
485
|
"GuardiansSafe": "0x84c10b45fe51bfb4f86c19a47fdbc187d4572fb8"
|
|
@@ -143,6 +143,7 @@ export const executeViaGuardian = async (
|
|
|
143
143
|
let release: { [key: string]: any } = dao[network || networkName];
|
|
144
144
|
const ctrl = await (await ethers.getContractAt("Controller", release.Controller)).connect(guardian);
|
|
145
145
|
|
|
146
|
+
const results = [];
|
|
146
147
|
for (let i = 0; i < contracts.length; i++) {
|
|
147
148
|
const contract = contracts[i];
|
|
148
149
|
console.log("executing:", contracts[i], functionSigs[i], functionInputs[i]);
|
|
@@ -151,7 +152,11 @@ export const executeViaGuardian = async (
|
|
|
151
152
|
if (contract === ctrl.address) {
|
|
152
153
|
console.log("executing directly on controller:", sigHash, encoded);
|
|
153
154
|
|
|
154
|
-
|
|
155
|
+
const tx = await guardian
|
|
156
|
+
.sendTransaction({ to: contract, data: encoded })
|
|
157
|
+
.then(printDeploy)
|
|
158
|
+
.then(_ => _.wait());
|
|
159
|
+
results.push(tx);
|
|
155
160
|
} else {
|
|
156
161
|
const simulationResult = await ctrl.callStatic.genericCall(contract, encoded, release.Avatar, ethValues[i], {
|
|
157
162
|
from: await guardian.getAddress()
|
|
@@ -162,9 +167,15 @@ export const executeViaGuardian = async (
|
|
|
162
167
|
simulationResult
|
|
163
168
|
});
|
|
164
169
|
if (simulationResult[0] === false) throw new Error("simulation failed:" + contract);
|
|
165
|
-
|
|
170
|
+
const tx = await ctrl
|
|
171
|
+
.genericCall(contract, encoded, release.Avatar, ethValues[i])
|
|
172
|
+
.then(printDeploy)
|
|
173
|
+
.then(_ => _.wait());
|
|
174
|
+
// console.log("generic call events:", tx.events);
|
|
175
|
+
results.push(tx);
|
|
166
176
|
}
|
|
167
177
|
}
|
|
178
|
+
return results;
|
|
168
179
|
};
|
|
169
180
|
|
|
170
181
|
export const executeViaSafe = async (
|