toms
October 17, 2021, 12:27pm
1
Hi Team!
I'm looking into Defender + Sentinel + Autotasks right now to trigger an autotask every time an event is emitted from my contract.
The example autotask in the docs has the signature function(params)
while the autotask with injected Relayer is function(credentials)
.
How do I access both, i.e the payload from the Sentinel event as well as a relayer to execute a tx?
toms
October 17, 2021, 4:33pm
2
Tried it without the sentinel trigger but rather directly through the webhook, but always get an error saying
Error while attempting request: Transaction rejected by aggregator: not enough funds for gas
Relayer definitely has enough funds (this is arbitrum rinkeby testnet).
const { Relayer } = require('defender-relay-client');
exports.handler = async function(event) {
const relayer = new Relayer(event);
const {
body, // Object with JSON-parsed POST body
headers, // Object with key-values from HTTP headers
queryParameters, // Object with key-values from query parameters
} = event.request;
const addr = body.address;
const amount = 1;
const txRes = await relayer.sendTransaction({
to: addr,
value: amount,
speed: 'fast',
gasLimit: '21000',
});
console.log(txRes);
return txRes.hash;
}
They @toms ! Arbitrum throws the error not enough funds for gas
when you set a gas limit too low (yeah, it can be confusing). Try increasing the gasLimit of the tx, since regular transfers cost a lot more gas in an L2 than in an L1 (over 800K if I recall correctly).
1 Like
toms
October 18, 2021, 7:18pm
4
Thanks a lot, that was it! Hadn't heard of this before, but setting it to 1M worked just fine now
1 Like