CELO-Testnet: Cannot estimate gas

Hi,

at first: great work :slight_smile:

Currently, I am using Defender and try to mint a RentableNFT using the Relay and Autotask at the CELO Testnet.

I updated and deployed the corresponding contracts, following your "Gasless Metatransactions" Workshop Video.

:computer: Environment

  • Relay
  • Autotask

:memo:Details
I try to mint a RentableNFT but when i call the the defender webhook i will get the following error.

{
  autotaskRunId: '3e48011b-3159-4407-96de-c75457e90309',
  autotaskId: '071f3a2d-9887-4226-8592-80aacc7f4493',
  trigger: 'webhook',
  status: 'error',
  createdAt: '2023-05-04T10:56:11.005Z',
  requestId: '071dcf5f-6735-43b7-886f-14c4f13e71d0',
  encodedLogs: '',
  message: 'cannot estimate gas; transaction may fail or may require manual gas limit [ See: https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT ] (error={"code":3,"data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001845434453413a20696e76616c6964207369676e61747572650000000000000000"}, method="call", transaction={"from":"0xa7269c1dE1ce0F8B1e7181BD9EBe85C6649B1CB0","to":"0x569fC196Db2114F9F1D0F66ac87748313016533E","data":"0xbf5d3bdb000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000b8fe3795f6b49f35f7779f559e7a0431679ce402000000000000000000000000b8fe3795f6b49f35f7779f559e7a0431679ce4020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002efc1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000a4d85d3d2700000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261667962656966666170766b727576327677746f6d7377717a7869617864676d3264666c65743263786d683674346978726761657a756d627734000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000041d777fc0a0a6482cfedda54ea87ddda7355e1d67de47639ec30aa0587fc118df356b5e57f4048d71a7f00cd34411d42f692fc76e45c652089ac59365c066bb1d90100000000000000000000000000000000000000000000000000000000000000","accessList":null}, code=UNPREDICTABLE_GAS_LIMIT, version=providers/5.5.2)'
}

I'm a newbie at this topic. So I have no idea what I'm doing wrong.
Can you help me, please!

:1234: Code to reproduce

modified contract

relay script
you will find the relay script in "src/autotasks/relay"

test script:

ok, I found out that the error is thrown in the verify of the MinimalForwarder.
But what i'm doing wrong? I think it is the signature. But currently i dont know which mistake i do :frowning:

Update

now it is working. it was a falsy signature.
To create the correct one, i have two possibilities, which seems to work.

create the correct signatur with the web3 celo provider

But i don't know if this solution is stable and works reliable.
I like this one because i don't need a private key for the call.

create the correct signatur with ethSigUtils

Its like in your tutorial, but i need the private key for the call.

What is your opinion?