Skip to content

feat: support per-call value transfers in batch transactions #2293

@gakonst

Description

@gakonst

Summary

The Tempo transaction spec defines per-call value transfers in batch transactions:

pub struct Call {
    to: TxKind,
    value: U256,  // ← Value per call is spec'd
    input: Bytes
}

However, the node currently rejects batch transactions with non-zero call values:

error code -32603: Revm error: value transfer in Tempo Transaction not allowed

Context

Expected Behavior

Batch transactions should allow per-call value transfers, enabling atomic operations like:

  • ETH transfers + contract calls in one tx
  • Multi-recipient payments
  • DEX operations with ETH value

Acceptance Criteria

  • Node accepts batch transactions with non-zero value in Call structs
  • Gas estimation accounts for value transfers correctly
  • Re-enable CAST BATCH-SEND WITH VALUE test in tempo-foundry CI

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions