From 22d2df3782f8546632dd504f2d55cd6b2ece3c0b Mon Sep 17 00:00:00 2001 From: thloyi Date: Thu, 12 Feb 2026 12:44:36 +0800 Subject: [PATCH] fix juptierv6 swap kind --- pkg/shreder/program_juptierv6.go | 21 +++++++++++++++++++-- pkg/shreder/program_juptierv6_test.go | 2 +- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/pkg/shreder/program_juptierv6.go b/pkg/shreder/program_juptierv6.go index f31df78..137fce3 100644 --- a/pkg/shreder/program_juptierv6.go +++ b/pkg/shreder/program_juptierv6.go @@ -157,6 +157,9 @@ const ( PerenaStar JupiterRfqV2 GoonFiV2 + Scorch + VaultLiquidUnstake + XOrca ) var swapKindNames = [122]string{"Saber", "SaberAddDecimalsDeposit", "SaberAddDecimalsWithdraw", "TokenSwap", "Sencha", "Step", "Cropper", @@ -316,7 +319,7 @@ func decodeSwap(dec *bin.Decoder) (Swap, error) { BoopdotfunWrappedBuy, BoopdotfunWrappedSell, MeteoraDynamicBondingCurveSwapWithRemainingAccounts, PumpWrappedBuyV2, PumpWrappedSellV2, PumpSwapBuyV2, PumpSwapSellV2, Aquifer, PumpWrappedBuyV3, PumpWrappedSellV3, PumpSwapBuyV3, PumpSwapSellV3, JupiterLendDeposit, JupiterLendRedeem, RaydiumV2, - MeteoraDammV2WithRemainingAccounts, Obsidian, PumpWrappedBuyV4, PumpWrappedSellV4, CarrotIssue, CarrotRedeem: + MeteoraDammV2WithRemainingAccounts, Obsidian, PumpWrappedBuyV4, PumpWrappedSellV4, CarrotIssue, CarrotRedeem, XOrca: return out, nil // -------- bool payload -------- @@ -406,9 +409,23 @@ func decodeSwap(dec *bin.Decoder) (Swap, error) { return Swap{}, err } return out, nil + case Scorch: + // side + if err := skipTwoU64(); err != nil { + return Swap{}, err + } + return out, nil + case VaultLiquidUnstake: + // [{"name":"lst_amounts","type":{"array":["u64",5]}},{"name":"seed","type":"u64"}] + for i := 0; i <= 5; i++ { + if err := skipU64(); err != nil { + return Swap{}, err + } + } + return out, nil default: // Unknown/new variant: assume no payload (keeps decoder aligned for RoutePlanStepV2 if it really is no-payload). - return out, nil + return out, fmt.Errorf("unknown Swap variant: %d", tag) } } diff --git a/pkg/shreder/program_juptierv6_test.go b/pkg/shreder/program_juptierv6_test.go index ac0b614..50b37e4 100644 --- a/pkg/shreder/program_juptierv6_test.go +++ b/pkg/shreder/program_juptierv6_test.go @@ -65,7 +65,7 @@ func TestDecodeRouteArg(t *testing.T) { }, { name: "Jupiter V6 RouteArg Test 1", - hexData: "e517cb977ae3ad2a0200000028640001510000000000000000640102c09ee605000000005e1bc48efa000000d00700", + hexData: "e517cb977ae3ad2a03000000646400017ab0b6c3d206f46577050000000c0000526401025f00640203bb628e2902000000338c430100000000320000", }, } for _, tt := range tests {