From 47f3e5e6fe1d0ae79aa6abe589d4424bd18a4ba5 Mon Sep 17 00:00:00 2001 From: Ben Guidarelli Date: Wed, 6 Dec 2023 15:27:55 -0500 Subject: [PATCH] update sequence tracker deserialization to account for bump and emitter type (#3578) --- .../src/solana/wormhole/accounts/sequence.ts | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/sdk/js/src/solana/wormhole/accounts/sequence.ts b/sdk/js/src/solana/wormhole/accounts/sequence.ts index ad9ba80d0..1ad674814 100644 --- a/sdk/js/src/solana/wormhole/accounts/sequence.ts +++ b/sdk/js/src/solana/wormhole/accounts/sequence.ts @@ -32,16 +32,29 @@ export async function getSequenceTracker( export class SequenceTracker { sequence: bigint; + bump?: number; + emitterType?: number; - constructor(sequence: bigint) { + constructor(sequence: bigint, bump?: number, emitterType?: number) { this.sequence = sequence; + this.bump = bump; + this.emitterType = emitterType; } static deserialize(data: Buffer): SequenceTracker { - if (data.length != 8) { - throw new Error("data.length != 8"); + if (data.length !== 8 && data.length !== 10) { + throw new Error("data.length != 8 or data.length != 10"); } - return new SequenceTracker(data.readBigUInt64LE(0)); + + let bump, emitterType; + const sequence = data.readBigUInt64LE(0); + + if (data.length === 10) { + bump = data[8]; + emitterType = data[9]; + } + + return new SequenceTracker(sequence, bump, emitterType); } value(): bigint {