1 Commits

Author SHA1 Message Date
thloyi
22d2df3782 fix juptierv6 swap kind 2026-02-12 12:44:48 +08:00
2 changed files with 20 additions and 3 deletions

View File

@@ -157,6 +157,9 @@ const (
PerenaStar PerenaStar
JupiterRfqV2 JupiterRfqV2
GoonFiV2 GoonFiV2
Scorch
VaultLiquidUnstake
XOrca
) )
var swapKindNames = [122]string{"Saber", "SaberAddDecimalsDeposit", "SaberAddDecimalsWithdraw", "TokenSwap", "Sencha", "Step", "Cropper", 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, BoopdotfunWrappedBuy, BoopdotfunWrappedSell, MeteoraDynamicBondingCurveSwapWithRemainingAccounts,
PumpWrappedBuyV2, PumpWrappedSellV2, PumpSwapBuyV2, PumpSwapSellV2, Aquifer, PumpWrappedBuyV3, PumpWrappedSellV3, PumpWrappedBuyV2, PumpWrappedSellV2, PumpSwapBuyV2, PumpSwapSellV2, Aquifer, PumpWrappedBuyV3, PumpWrappedSellV3,
PumpSwapBuyV3, PumpSwapSellV3, JupiterLendDeposit, JupiterLendRedeem, RaydiumV2, PumpSwapBuyV3, PumpSwapSellV3, JupiterLendDeposit, JupiterLendRedeem, RaydiumV2,
MeteoraDammV2WithRemainingAccounts, Obsidian, PumpWrappedBuyV4, PumpWrappedSellV4, CarrotIssue, CarrotRedeem: MeteoraDammV2WithRemainingAccounts, Obsidian, PumpWrappedBuyV4, PumpWrappedSellV4, CarrotIssue, CarrotRedeem, XOrca:
return out, nil return out, nil
// -------- bool payload -------- // -------- bool payload --------
@@ -406,9 +409,23 @@ func decodeSwap(dec *bin.Decoder) (Swap, error) {
return Swap{}, err return Swap{}, err
} }
return out, nil 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: default:
// Unknown/new variant: assume no payload (keeps decoder aligned for RoutePlanStepV2 if it really is no-payload). // 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)
} }
} }

View File

@@ -65,7 +65,7 @@ func TestDecodeRouteArg(t *testing.T) {
}, },
{ {
name: "Jupiter V6 RouteArg Test 1", name: "Jupiter V6 RouteArg Test 1",
hexData: "e517cb977ae3ad2a0200000028640001510000000000000000640102c09ee605000000005e1bc48efa000000d00700", hexData: "e517cb977ae3ad2a03000000646400017ab0b6c3d206f46577050000000c0000526401025f00640203bb628e2902000000338c430100000000320000",
}, },
} }
for _, tt := range tests { for _, tt := range tests {