Skip to content

Three values a short-epoch devnet cannot accept - #29

Merged
rssh merged 1 commit into
mainfrom
feat/wi-080-devnet-fixes
Aug 13, 2026
Merged

rssh merged 1 commit into
mainfrom
feat/wi-080-devnet-fixes

Conversation

@rssh

@rssh rssh commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

Found standing up the WI-080 peg-in sweep against a local devnet. Each of these stopped the round trip with an error that named something else.

  • init printed the oracle one-shot through TransactionInput's toString. That line exists to be copied into oracle.tx-out-ref, which parses TXHASH#INDEX and rejects everything else — so the next command died with Invalid TxOutRef format. It now prints the form it documents.
  • deploy-bridge published the peg_in/peg_out withdraw hashes but not the addresses an SPO is configured with (pegin_script_address / pegout_script_address). Bech32-encoding a script hash by hand eventually picks the wrong network, and the result is not an error but an address no PegInRequest is ever minted to — an empty bridge rather than a failure.
  • pegin-request's one-hour TTL is now bridge.pegin-request-ttl-seconds. A validity interval may not end past the node's era-forecast horizon, which reaches roughly one epoch; on a short-epoch devnet an hour is unsubmittable, reported as TimeTranslationPastHorizon naming a future slot. Default unchanged at 3600.

With these the peg-in round trip passes end to end on the compose bench (bridge deploy → 35-byte beacon deposit → PegInRequest → the TM spending the deposit on regtest).

Found standing up the WI-080 peg-in sweep against a local devnet, where each one stopped the
round trip with an error that named something else.

`init` printed the oracle one-shot through TransactionInput's toString. That line exists to be
copied into `oracle.tx-out-ref`, which parses TXHASH#INDEX and rejects everything else, so the
next command failed with "Invalid TxOutRef format". It now prints the form it documents.
`deploy-bridge` published the peg_in/peg_out withdraw hashes but not the ADDRESSES an SPO
configures; hand-encoding a script hash eventually picks the wrong network, and the result is
not an error but an address no PegInRequest is minted to. And `pegin-request`'s one-hour TTL is
now bridge.pegin-request-ttl-seconds: a validity interval may not end past the node's
era-forecast horizon, which reaches about one epoch, so on a short-epoch devnet an hour is
unsubmittable — reported as TimeTranslationPastHorizon, which names a future slot and says
nothing about the TTL.
@rssh
rssh merged commit 05f39f1 into main Aug 13, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant