2026-01-06 16:42:07 +08:00
|
|
|
package shreder
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"encoding/hex"
|
|
|
|
|
"testing"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestDecodeRouteV2Arg(t *testing.T) {
|
|
|
|
|
tests := []struct {
|
|
|
|
|
name string
|
|
|
|
|
hexData string
|
|
|
|
|
}{
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteV2Arg Test 0",
|
|
|
|
|
hexData: "bb64facc31c4af14809fd500000000002222e8db1800000064000a000000020000005601fe102700016310270102",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteV2Arg Test 1",
|
|
|
|
|
hexData: "bb64facc31c4af144ff91634b90000004e6c4d05000000002c013200000003000000520000000000000000102700014f102701024310270203",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteV2Arg Test 2",
|
|
|
|
|
hexData: "bb64facc31c4af14ba2eafa02c1d0000777a9b2200000000f4010a0000000100000052000000000000000010270001",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteV2Arg Test 3",
|
|
|
|
|
hexData: "bb64facc31c4af144a3521186b07000030508d0e00000000c201320000000300000052000000000000000010270001740110270102590010270203",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteV2Arg Test 4",
|
|
|
|
|
hexData: "bb64facc31c4af14092d05050000000013701f198c0100008102380100000300000059011027000168001027010251000000000000000010270203",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteV2Arg Test 5",
|
|
|
|
|
hexData: "bb64facc31c4af1480969800000000006f44ad39bd0000001202320000000200000068001027000151000000000000000010270102",
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
|
instrData, err := hex.DecodeString(tt.hexData)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("failed to decode hex string: %v", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
t.Logf("raw bytes: %x", instrData[8:])
|
|
|
|
|
args, err := decodeJupiterV6RouteV2Arg(instrData[8:])
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("failed to decode jupiter arguments: %v", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
t.Logf("decoded args: %+v", args)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestDecodeRouteArg(t *testing.T) {
|
|
|
|
|
tests := []struct {
|
|
|
|
|
name string
|
|
|
|
|
hexData string
|
|
|
|
|
}{
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteArg Test 0",
|
|
|
|
|
hexData: "e517cb977ae3ad2a030000004f6400014f64010251000000000000000064020340420f00000000005c1c81900e000000640000",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteArg Test 1",
|
2026-02-12 12:44:36 +08:00
|
|
|
hexData: "e517cb977ae3ad2a03000000646400017ab0b6c3d206f46577050000000c0000526401025f00640203bb628e2902000000338c430100000000320000",
|
2026-01-06 16:42:07 +08:00
|
|
|
},
|
2026-02-17 19:13:12 +08:00
|
|
|
{
|
|
|
|
|
name: "Jupiter V6 RouteArg Test 2",
|
|
|
|
|
hexData: "e517cb977ae3ad2a04000000642300024b00000000410002761acfb15ea9fdcd0501200204769358e96343759bf8014402046196591e1e020000f5bf6fe101000000d00700",
|
|
|
|
|
},
|
2026-01-06 16:42:07 +08:00
|
|
|
}
|
|
|
|
|
for _, tt := range tests {
|
|
|
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
|
|
|
instrData, err := hex.DecodeString(tt.hexData)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("failed to decode hex string: %v", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
t.Logf("raw bytes: %x", instrData[8:])
|
|
|
|
|
args, err := decodeJupiterV6RouteArg(instrData[8:])
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatalf("failed to decode jupiter arguments: %v", err)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
t.Logf("decoded args: %+v", args)
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|