@gooddollar/goodprotocol 2.0.30 → 2.0.31
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/SuperfluidFaucet.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/IQuoterV2.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
- package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
- package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.json +28 -4
- package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
- package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
- package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
- package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
- 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/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
- package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
- package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
- package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
- package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
- package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
- 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/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
- 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/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
- 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/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
- package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
- 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/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
- package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
- 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/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
- package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
- 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/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
- package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
- package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
- 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/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/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
- 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/GoodDollar.sol/GoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
- package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
- package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
- 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/UUPSUtils.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
- package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
- package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
- 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/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
- package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
- package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
- 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/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
- package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
- package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
- package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
- 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/IdentityFix.sol/IdentityFix.dbg.json +1 -1
- package/artifacts/contracts/utils/LastauthReduction.sol/LastauthReduction.dbg.json +1 -1
- 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/NameService.sol/NameService.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
- package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
- 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/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
- package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
- 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/ReserveRestore.sol/ReserveRestore.dbg.json +1 -1
- package/contracts/fuseFaucet/SuperfluidFacuet.sol +27 -14
- package/package.json +1 -1
- package/scripts/multichain-deploy/7_superfluidfaucet-deploy.ts +5 -4
- package/types/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.ts +58 -15
- package/types/factories/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet__factory.ts +27 -3
|
@@ -18,7 +18,7 @@ contract SuperfluidFaucet is
|
|
|
18
18
|
|
|
19
19
|
bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
|
|
20
20
|
uint public constant GAS_TOPPING_AMOUNT = 350000;
|
|
21
|
-
uint public constant FIRST_GAS_TOPPING_AMOUNT =
|
|
21
|
+
uint public constant FIRST_GAS_TOPPING_AMOUNT = 15e5;
|
|
22
22
|
|
|
23
23
|
uint256 public _deprecated;
|
|
24
24
|
uint256 public maxValuePerPeriod;
|
|
@@ -63,43 +63,56 @@ contract SuperfluidFaucet is
|
|
|
63
63
|
emit SettingsUpdated(_maxValuePerPeriod, _toppingPeriod);
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
function canTop(
|
|
66
|
+
function canTop(
|
|
67
|
+
address recipient,
|
|
68
|
+
uint256 baseFee
|
|
69
|
+
) public view returns (bool) {
|
|
70
|
+
RecipientInfo memory info = recipientInfo[recipient];
|
|
71
|
+
bool firstTime = info.lastWithdrawalPeriod == 0;
|
|
72
|
+
uint amount = getToppingValue(firstTime, baseFee);
|
|
67
73
|
if (recipient == address(0)) return false;
|
|
68
|
-
if (recipient.balance >= amount
|
|
74
|
+
if (recipient.balance >= amount) return false;
|
|
69
75
|
|
|
70
76
|
uint256 amountToSend = amount.sub(recipient.balance);
|
|
71
77
|
if (address(this).balance < amountToSend) return false;
|
|
72
78
|
|
|
73
79
|
uint256 currentPeriod = block.timestamp / toppingPeriod;
|
|
74
|
-
RecipientInfo memory info = recipientInfo[recipient];
|
|
75
80
|
|
|
76
81
|
if (currentPeriod > info.lastWithdrawalPeriod) {
|
|
77
82
|
return true; // New period, reset counters
|
|
78
83
|
}
|
|
79
84
|
|
|
80
|
-
|
|
81
|
-
|
|
85
|
+
// first time has larger amount so we skip this check
|
|
86
|
+
if (
|
|
87
|
+
!firstTime &&
|
|
88
|
+
info.totalWithdrawnThisPeriod.add(amountToSend) > maxValuePerPeriod
|
|
89
|
+
) return false;
|
|
82
90
|
|
|
83
91
|
return true;
|
|
84
92
|
}
|
|
85
93
|
|
|
86
|
-
|
|
94
|
+
// kept for compatability with AdminWallet
|
|
95
|
+
function canTop(address recipient) public view returns (bool) {
|
|
96
|
+
uint blockFee = block.basefee == 0 ? 1e7 : block.basefee;
|
|
97
|
+
return canTop(recipient, blockFee);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function getToppingValue(
|
|
101
|
+
bool firstTime,
|
|
102
|
+
uint baseFee
|
|
103
|
+
) public pure returns (uint) {
|
|
87
104
|
//top wallet with current base fee + 10% for priority fee and l1 fees
|
|
88
105
|
return
|
|
89
106
|
((firstTime ? FIRST_GAS_TOPPING_AMOUNT : GAS_TOPPING_AMOUNT) *
|
|
90
|
-
|
|
107
|
+
baseFee *
|
|
91
108
|
110) / 100;
|
|
92
109
|
}
|
|
93
110
|
|
|
94
111
|
function topWallet(address payable recipient) external onlyRole(ADMIN_ROLE) {
|
|
112
|
+
require(canTop(recipient), "Recipient cannot be topped up");
|
|
95
113
|
RecipientInfo storage info = recipientInfo[recipient];
|
|
96
114
|
bool firstTime = info.lastWithdrawalPeriod == 0;
|
|
97
|
-
uint amount = getToppingValue(firstTime);
|
|
98
|
-
//first time we always allow, no canTop check required
|
|
99
|
-
if (!firstTime) {
|
|
100
|
-
require(canTop(recipient, amount), "Recipient cannot be topped up");
|
|
101
|
-
}
|
|
102
|
-
|
|
115
|
+
uint amount = getToppingValue(firstTime, block.basefee);
|
|
103
116
|
uint256 currentPeriod = block.timestamp / toppingPeriod;
|
|
104
117
|
|
|
105
118
|
if (currentPeriod > info.lastWithdrawalPeriod) {
|
package/package.json
CHANGED
|
@@ -109,14 +109,15 @@ const upgrade = async () => {
|
|
|
109
109
|
const proxy = (await ethers.getContractAt("SuperfluidFaucet", release.SuperfluidFaucet)) as SuperfluidFaucet;
|
|
110
110
|
const impl = await ethers.deployContract("SuperfluidFaucet");
|
|
111
111
|
console.log("impl:", impl.address);
|
|
112
|
-
const callData = proxy.interface.encodeFunctionData("updateSettings", [ethers.utils.parseEther("0.0000035"), 30]);
|
|
113
|
-
const tx = await proxy.upgradeToAndCall(impl.address, callData);
|
|
112
|
+
// const callData = proxy.interface.encodeFunctionData("updateSettings", [ethers.utils.parseEther("0.0000035"), 30]);
|
|
113
|
+
// const tx = await proxy.upgradeToAndCall(impl.address, callData);
|
|
114
|
+
const tx = await proxy.upgradeTo(impl.address);
|
|
114
115
|
console.log(tx.hash);
|
|
115
116
|
const res = await tx.wait();
|
|
116
117
|
console.log(res.transactionHash);
|
|
117
118
|
};
|
|
118
119
|
export const main = async () => {
|
|
119
|
-
|
|
120
|
-
await deployHelpers();
|
|
120
|
+
await upgrade();
|
|
121
|
+
// await deployHelpers();
|
|
121
122
|
};
|
|
122
123
|
if (process.argv[1].includes("7_superfluidfaucet")) main();
|
|
@@ -34,9 +34,10 @@ export interface SuperfluidFaucetInterface extends utils.Interface {
|
|
|
34
34
|
"FIRST_GAS_TOPPING_AMOUNT()": FunctionFragment;
|
|
35
35
|
"GAS_TOPPING_AMOUNT()": FunctionFragment;
|
|
36
36
|
"_deprecated()": FunctionFragment;
|
|
37
|
+
"canTop(address)": FunctionFragment;
|
|
37
38
|
"canTop(address,uint256)": FunctionFragment;
|
|
38
39
|
"getRoleAdmin(bytes32)": FunctionFragment;
|
|
39
|
-
"getToppingValue(bool)": FunctionFragment;
|
|
40
|
+
"getToppingValue(bool,uint256)": FunctionFragment;
|
|
40
41
|
"grantRole(bytes32,address)": FunctionFragment;
|
|
41
42
|
"hasRole(bytes32,address)": FunctionFragment;
|
|
42
43
|
"initialize(uint256,uint256,address)": FunctionFragment;
|
|
@@ -61,7 +62,8 @@ export interface SuperfluidFaucetInterface extends utils.Interface {
|
|
|
61
62
|
| "FIRST_GAS_TOPPING_AMOUNT"
|
|
62
63
|
| "GAS_TOPPING_AMOUNT"
|
|
63
64
|
| "_deprecated"
|
|
64
|
-
| "canTop"
|
|
65
|
+
| "canTop(address)"
|
|
66
|
+
| "canTop(address,uint256)"
|
|
65
67
|
| "getRoleAdmin"
|
|
66
68
|
| "getToppingValue"
|
|
67
69
|
| "grantRole"
|
|
@@ -102,7 +104,11 @@ export interface SuperfluidFaucetInterface extends utils.Interface {
|
|
|
102
104
|
values?: undefined
|
|
103
105
|
): string;
|
|
104
106
|
encodeFunctionData(
|
|
105
|
-
functionFragment: "canTop",
|
|
107
|
+
functionFragment: "canTop(address)",
|
|
108
|
+
values: [string]
|
|
109
|
+
): string;
|
|
110
|
+
encodeFunctionData(
|
|
111
|
+
functionFragment: "canTop(address,uint256)",
|
|
106
112
|
values: [string, BigNumberish]
|
|
107
113
|
): string;
|
|
108
114
|
encodeFunctionData(
|
|
@@ -111,7 +117,7 @@ export interface SuperfluidFaucetInterface extends utils.Interface {
|
|
|
111
117
|
): string;
|
|
112
118
|
encodeFunctionData(
|
|
113
119
|
functionFragment: "getToppingValue",
|
|
114
|
-
values: [boolean]
|
|
120
|
+
values: [boolean, BigNumberish]
|
|
115
121
|
): string;
|
|
116
122
|
encodeFunctionData(
|
|
117
123
|
functionFragment: "grantRole",
|
|
@@ -182,7 +188,14 @@ export interface SuperfluidFaucetInterface extends utils.Interface {
|
|
|
182
188
|
functionFragment: "_deprecated",
|
|
183
189
|
data: BytesLike
|
|
184
190
|
): Result;
|
|
185
|
-
decodeFunctionResult(
|
|
191
|
+
decodeFunctionResult(
|
|
192
|
+
functionFragment: "canTop(address)",
|
|
193
|
+
data: BytesLike
|
|
194
|
+
): Result;
|
|
195
|
+
decodeFunctionResult(
|
|
196
|
+
functionFragment: "canTop(address,uint256)",
|
|
197
|
+
data: BytesLike
|
|
198
|
+
): Result;
|
|
186
199
|
decodeFunctionResult(
|
|
187
200
|
functionFragment: "getRoleAdmin",
|
|
188
201
|
data: BytesLike
|
|
@@ -385,9 +398,14 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
385
398
|
|
|
386
399
|
_deprecated(overrides?: CallOverrides): Promise<[BigNumber]>;
|
|
387
400
|
|
|
388
|
-
canTop(
|
|
401
|
+
"canTop(address)"(
|
|
389
402
|
recipient: string,
|
|
390
|
-
|
|
403
|
+
overrides?: CallOverrides
|
|
404
|
+
): Promise<[boolean]>;
|
|
405
|
+
|
|
406
|
+
"canTop(address,uint256)"(
|
|
407
|
+
recipient: string,
|
|
408
|
+
baseFee: BigNumberish,
|
|
391
409
|
overrides?: CallOverrides
|
|
392
410
|
): Promise<[boolean]>;
|
|
393
411
|
|
|
@@ -395,6 +413,7 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
395
413
|
|
|
396
414
|
getToppingValue(
|
|
397
415
|
firstTime: boolean,
|
|
416
|
+
baseFee: BigNumberish,
|
|
398
417
|
overrides?: CallOverrides
|
|
399
418
|
): Promise<[BigNumber]>;
|
|
400
419
|
|
|
@@ -487,9 +506,14 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
487
506
|
|
|
488
507
|
_deprecated(overrides?: CallOverrides): Promise<BigNumber>;
|
|
489
508
|
|
|
490
|
-
canTop(
|
|
509
|
+
"canTop(address)"(
|
|
491
510
|
recipient: string,
|
|
492
|
-
|
|
511
|
+
overrides?: CallOverrides
|
|
512
|
+
): Promise<boolean>;
|
|
513
|
+
|
|
514
|
+
"canTop(address,uint256)"(
|
|
515
|
+
recipient: string,
|
|
516
|
+
baseFee: BigNumberish,
|
|
493
517
|
overrides?: CallOverrides
|
|
494
518
|
): Promise<boolean>;
|
|
495
519
|
|
|
@@ -497,6 +521,7 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
497
521
|
|
|
498
522
|
getToppingValue(
|
|
499
523
|
firstTime: boolean,
|
|
524
|
+
baseFee: BigNumberish,
|
|
500
525
|
overrides?: CallOverrides
|
|
501
526
|
): Promise<BigNumber>;
|
|
502
527
|
|
|
@@ -589,9 +614,14 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
589
614
|
|
|
590
615
|
_deprecated(overrides?: CallOverrides): Promise<BigNumber>;
|
|
591
616
|
|
|
592
|
-
canTop(
|
|
617
|
+
"canTop(address)"(
|
|
593
618
|
recipient: string,
|
|
594
|
-
|
|
619
|
+
overrides?: CallOverrides
|
|
620
|
+
): Promise<boolean>;
|
|
621
|
+
|
|
622
|
+
"canTop(address,uint256)"(
|
|
623
|
+
recipient: string,
|
|
624
|
+
baseFee: BigNumberish,
|
|
595
625
|
overrides?: CallOverrides
|
|
596
626
|
): Promise<boolean>;
|
|
597
627
|
|
|
@@ -599,6 +629,7 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
599
629
|
|
|
600
630
|
getToppingValue(
|
|
601
631
|
firstTime: boolean,
|
|
632
|
+
baseFee: BigNumberish,
|
|
602
633
|
overrides?: CallOverrides
|
|
603
634
|
): Promise<BigNumber>;
|
|
604
635
|
|
|
@@ -757,9 +788,14 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
757
788
|
|
|
758
789
|
_deprecated(overrides?: CallOverrides): Promise<BigNumber>;
|
|
759
790
|
|
|
760
|
-
canTop(
|
|
791
|
+
"canTop(address)"(
|
|
792
|
+
recipient: string,
|
|
793
|
+
overrides?: CallOverrides
|
|
794
|
+
): Promise<BigNumber>;
|
|
795
|
+
|
|
796
|
+
"canTop(address,uint256)"(
|
|
761
797
|
recipient: string,
|
|
762
|
-
|
|
798
|
+
baseFee: BigNumberish,
|
|
763
799
|
overrides?: CallOverrides
|
|
764
800
|
): Promise<BigNumber>;
|
|
765
801
|
|
|
@@ -770,6 +806,7 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
770
806
|
|
|
771
807
|
getToppingValue(
|
|
772
808
|
firstTime: boolean,
|
|
809
|
+
baseFee: BigNumberish,
|
|
773
810
|
overrides?: CallOverrides
|
|
774
811
|
): Promise<BigNumber>;
|
|
775
812
|
|
|
@@ -859,9 +896,14 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
859
896
|
|
|
860
897
|
_deprecated(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
|
861
898
|
|
|
862
|
-
canTop(
|
|
899
|
+
"canTop(address)"(
|
|
900
|
+
recipient: string,
|
|
901
|
+
overrides?: CallOverrides
|
|
902
|
+
): Promise<PopulatedTransaction>;
|
|
903
|
+
|
|
904
|
+
"canTop(address,uint256)"(
|
|
863
905
|
recipient: string,
|
|
864
|
-
|
|
906
|
+
baseFee: BigNumberish,
|
|
865
907
|
overrides?: CallOverrides
|
|
866
908
|
): Promise<PopulatedTransaction>;
|
|
867
909
|
|
|
@@ -872,6 +914,7 @@ export interface SuperfluidFaucet extends BaseContract {
|
|
|
872
914
|
|
|
873
915
|
getToppingValue(
|
|
874
916
|
firstTime: boolean,
|
|
917
|
+
baseFee: BigNumberish,
|
|
875
918
|
overrides?: CallOverrides
|
|
876
919
|
): Promise<PopulatedTransaction>;
|
|
877
920
|
|