Skip to content

feat(tempo): generate native MPP settlement sequences - #200

Open
decofe wants to merge 1 commit into
mainfrom
centaur/mpp-settlement-sequences-1788873044
Open

decofe wants to merge 1 commit into
mainfrom
centaur/mpp-settlement-sequences-1788873044

Conversation

@decofe

@decofe decofe commented Sep 8, 2026

Copy link
Copy Markdown
Member

Summary

Support native TIP-20 Channel Reserve open -> settle workloads for Tempo's MPP benchmark preset.

  • Add sequence-step save outputs (raw, tx_hash, and sender) derived from the signed transaction. Saved steps are signed synchronously while preserving bounded, ordered output and existing inclusion dependencies.
  • Add a Tempo mpp_settle template that decodes the saved open, recovers its payer, derives the channel descriptor and transaction context, and signs the EIP-712 settlement voucher.
  • Validate the opening chain/call, settlement sender, voucher signer, and amount. This supports an initial settlement up to the opening deposit; it does not depend on receipts or support top-up-dependent amounts.
  • Document the fields and add regression coverage for deterministic multi-worker generation, whole-sequence budgets, voucher recovery, sponsored opens, malformed input, and saved bindings.

Validation

  • 228 unit tests across txgen-core, txgen-cli, and txgen-tempo passed, excluding the two existing 1,000/10,000-account auth-map generation tests (unrelated, expensive debug-build tests).
  • All five new MPP integration tests passed. The broader integration run was stopped at the existing 1,000-account auth-map CLI test; the full integration suite was not completed.
  • Nightly formatting and clippy for those crates and all targets passed.
  • Executed Tempo's updated mpp.yml against a fresh local Tempo v1.14.0 dev node: 50 opens and 50 settlements across three accounts, all 100 receipts successful. Every open was included before its settlement, all channels ended with settled = deposit = 1, every payee received its deposit, allowances stayed zero, and the reserve token balance returned to zero.

The local run verifies correctness, not throughput. Settlement leaves the channel state present; it is not a close operation.

Prompted by: @shekhirin

Co-authored-by: Derek Cofausper <256792747+decofe@users.noreply.github.com>
pull Bot pushed a commit to Dustin4444/tempo that referenced this pull request Sep 8, 2026
Adds `public-mix.yml` with plain TIP-20 transfers, memo transfers,
mints, and native MPP opens in relative submitted-transaction shares of
25:40:1:15. Renames the shared ABI to `tip20.abi.json`, adds
`transferWithMemo`, and updates its preset references.

MPP uses an ordinary single-step open sequence supported by txgen main.
A TODO links [txgen tempoxyz#200](tempoxyz/txgen#200)
for adding signed settlement later. The multi-region runner separately
needs `public-mix` added to its preset allowlist.

Validation: checked the open-only sequence against txgen main's sequence
schema, removal of settlement/save fields, preserved transaction shares,
ABI arguments, references, and the linked TODO. Nushell resolution for
both presets and `git diff --check` passed. The [earlier 60-second
benchmark](https://github.com/tempoxyz/tempo/actions/runs/34240689460)
passed with settlement enabled; this open-only revision has not been
benchmarked again.

Prompted by: @shekhirin

---------

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
decofe added a commit to tempoxyz/tempo that referenced this pull request Sep 9, 2026
Adds `public-mix.yml` with plain TIP-20 transfers, memo transfers,
mints, and native MPP opens in relative submitted-transaction shares of
25:40:1:15. Renames the shared ABI to `tip20.abi.json`, adds
`transferWithMemo`, and updates its preset references.

MPP uses an ordinary single-step open sequence supported by txgen main.
A TODO links [txgen #200](tempoxyz/txgen#200)
for adding signed settlement later. The multi-region runner separately
needs `public-mix` added to its preset allowlist.

Validation: checked the open-only sequence against txgen main's sequence
schema, removal of settlement/save fields, preserved transaction shares,
ABI arguments, references, and the linked TODO. Nushell resolution for
both presets and `git diff --check` passed. The [earlier 60-second
benchmark](https://github.com/tempoxyz/tempo/actions/runs/34240689460)
passed with settlement enabled; this open-only revision has not been
benchmarked again.

Prompted by: @shekhirin

---------

Co-authored-by: Alexey Shekhirin <5773434+shekhirin@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants