The Maxi Gas Station was provisioned under this PR
The GasStation contract holds ETH, and manages the configuration about when gas needs to be paid out.
The Chainlink automation page describing chain links interaction with this contract to automate can be found HERE. You can also top up link needed to cover the costs of triggering the contract.
The chainlink side of the automation can be found here:
The list of watched addresses that may be refilled can be found by calling GetWatchList
on the Maxi GasStation contract.
The specific parameters for a given watchlist address can be found by calling getAccountsInfo(address)
for an address on the watchlist. The outputs look like this:
[ getAccountInfo(address) method Response ]
isActive bool : true
minBalanceWei uint96 : 500000000000000000
minTopUpAmountWei uint96 : 200000000000000000
lastTopUpTimestamp uint56 : 1676923715
Min Balance: defines the target minimum ETH balance for this address. minTopupAmount: defines the minimum amount of ETH that will be sent as part of a topup.
In the configuration above 0.5 ETH minBalance and 0.2 minTopUp means that the this wallet will be topped up when it has under 0.3 ETH to always have 0.5 ETH.
The watchlist can be updated using the setWatchList command.
Check the Automation Page and make sure there is enough LINK. If not you can use the button to fund the upkeep with more.
Check the GasStation contract:
- Does it have enough ETH? 0.5 will always be enough for 1 upkeep? Just send ETH to the contract to fund with more.
- does the read function
checkUpkeep("0x")
return TRUE with some calldata, if so then LINK should be linking. - Has it been under minWaitPeriod(read function) since the address needing was last topped up?
If you still haven't figured out what is wrong, talk to Tritium and/or take a minute to think about the watchlists and the current state of things.
Check Upkeep will not return True unless the following reasonably selfExplanitory if statement returns true:
if (
target.lastTopUpTimestamp + minWaitPeriod <= block.timestamp &&
balance >= delta &&
delta >= target.minTopUpAmountWei
)