This repository was archived by the owner on Jun 10, 2026. It is now read-only.
Description Context
jun replay fetches checkpoints from the Sui checkpoint archive and decodes them. Currently we decode:
✅ CheckpointSummary BCS → timestamp, epoch
✅ TransactionEffects BCS → tx digest, status, gas
✅ TransactionEvents BCS → events with BCS contents
❌ TransactionData BCS → sender, transaction kind, commands
Problem
@mysten/sui/bcs defines TransactionKind with only 4 of 10+ variants:
// SDK (packages/sui/src/bcs/bcs.ts)
export const TransactionKind = bcs . enum ( 'TransactionKind' , {
ProgrammableTransaction : ProgrammableTransaction ,
ChangeEpoch : null ,
Genesis : null ,
ConsensusCommitPrologue : null ,
} ) ;
The Rust source (sui/crates/sui-types/src/transaction.rs) has:
AuthenticatorStateUpdate (variant 4)
EndOfEpochTransaction (variant 5)
RandomnessStateUpdate (variant 6)
ConsensusCommitPrologueV2 (variant 7)
ConsensusCommitPrologueV3 (variant 8)
ConsensusCommitPrologueV4 (variant 9)
ProgrammableSystemTransaction (variant 10)
Every mainnet checkpoint has a V3 or V4 prologue, so bcs.TransactionData.parse() fails on all recent data.
Impact
transactions.sender is null for archive-sourced data
Can't decode transaction commands/inputs from archive
Action
Once MystenLabs/ts-sdks adds the missing variants, update jun's archive client to decode transaction.bcs.value and populate the sender field.
Upstream issue: https://github.com/MystenLabs/ts-sdks/issues/TBD
Reactions are currently unavailable
Context
jun replayfetches checkpoints from the Sui checkpoint archive and decodes them. Currently we decode:CheckpointSummaryBCS → timestamp, epochTransactionEffectsBCS → tx digest, status, gasTransactionEventsBCS → events with BCS contentsTransactionDataBCS → sender, transaction kind, commandsProblem
@mysten/sui/bcsdefinesTransactionKindwith only 4 of 10+ variants:The Rust source (
sui/crates/sui-types/src/transaction.rs) has:AuthenticatorStateUpdate(variant 4)EndOfEpochTransaction(variant 5)RandomnessStateUpdate(variant 6)ConsensusCommitPrologueV2(variant 7)ConsensusCommitPrologueV3(variant 8)ConsensusCommitPrologueV4(variant 9)ProgrammableSystemTransaction(variant 10)Every mainnet checkpoint has a V3 or V4 prologue, so
bcs.TransactionData.parse()fails on all recent data.Impact
transactions.senderis null for archive-sourced dataAction
Once
MystenLabs/ts-sdksadds the missing variants, update jun's archive client to decodetransaction.bcs.valueand populate thesenderfield.Upstream issue: https://github.com/MystenLabs/ts-sdks/issues/TBD