Agent Gas Values

Context

Gas estimation is hard. eth_estimateGas calls have historically caused our agents many issues across different RPC providers and networks. Given that we now have a reasonable dataset on how much gas is needed for different contract methods, we are moving to custom-coding our gas limits using estimates from previous gas usage data.


Standard EVM

Home

Update

  • Take average limit for one message (50k) and double base to 100k
  • Each additional message dequeued is ~5k gas so double that cost to 10k per message
  • 100k + (num_messages * 10k)

Improper Update:

  • Subset of update gas (update calls improperUpdate)
  • Using same estimation as update
  • 100k + (num_messages * 10k)

DoubleUpdate:

  • Signature check is ~50k
  • Double that for two signature checks in double update 100k
  • Double total for safety to 200k

Replica

Update

  • 70k on average
  • Double that to 140k (constant)

Prove

  • 100k on average
  • Double that to 200k (constant since merkle proofs always same size)

Process

  • Minimum 850k required
  • Double minimum to 1.7M

ProveAndProcess

  • 1.7M for process
  • 200k for prove
  • 1.9M total

DoubleUpdate:

  • Signature check is ~50k
  • Double that for two signature checks in double update 100k
  • Double total for safety to 200k

XAppConnectionManager

UnenrollReplica:

  • 60k average
  • Double that to 120k

OwnerUnenrollReplica:

  • Cheaper version of normal unenrollReplica without signature check
  • Use same estimate of 120k