Данные инструкции Solana Decode JUPPython

Программы на Python
Anonymous
Данные инструкции Solana Decode JUP

Сообщение Anonymous »

Я пытаюсь декодировать событие для события Юпитера на блокчейне Solana. Это пример транзакции. Как видите, это был бы результат, который мне нужен:
< /p>

Код: Выделить всё

{
"amm": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc",
"inputMint": "So11111111111111111111111111111111111111112",
"inputAmount": "14829998",
"outputMint": "Hjw6bEcHtbHGpQr8onG3izfJY5DJiWdt7uk2BfdSpump",
"outputAmount": "127849833"
}
Мне нужно, чтобы он получил суммы токена и шахты для этого обмена.
При попытке декодировать его с помощью этого кода: < Br />from construct import Int64ul, Bytes
from construct import Struct as cStruct
import base58

PUBLIC_KEY_LAYOUT = Bytes(32)
JUP_SWAP = cStruct(
"amm" / PUBLIC_KEY_LAYOUT,
"inputMint" / PUBLIC_KEY_LAYOUT,
"inputAmount" / Int64ul,
"outputMint" / PUBLIC_KEY_LAYOUT,
"outputAmount" / Int64ul,
)

# You can copy the data from solscan by switching to "raw" mode
hex_data = 'e445a52e51cb9a1d40c6cde8260871e20e03685f8e909053e458121c66f5a76aedc7706aa11c82f8aa952a8f2b7879a9069b8857feab8184fb687f634618c035dac439dc1aeb3b5598a0f00000000001ae49e20000000000f8ba8d41600d59ff5ede65103bfc142e5bc863e0e17ce50cc1155c425f02395f69d59e0700000000'

# Convert to bytes and snip the first 8 bytes
bytes_event = bytes.fromhex(hex_data)[8:]

decoded_event = JUP_SWAP.parse(bytes_event)
amm=base58.b58encode(decoded_event.amm).decode()
input_mint=base58.b58encode(decoded_event.inputMint).decode()
input_amount=decoded_event.inputAmount
output_mint=base58.b58encode(decoded_event.outputMint).decode()
output_amount=decoded_event.outputAmount

print(f"amm: {amm}")
print(f"inputMint: {input_mint}")
print(f"inputAmount: {input_amount}")
print(f"outputMint: {output_mint}")
print(f"outputAmount: {output_amount}")

< /code>
Результат, который я получаю, является следующим: < /p>
amm: 5Mrv98ERNPgDKHDFz8AjcebvXyf8dq9kp1yY1RAHSCJB
inputMint: CUtETTsHosks4AUNtZuBZqb4Gn9k7JetykayaCyDcFq6
inputAmount: 72057594053697688
outputMint: CjMHLni4ZdtAi91Am1Vx63jCYL2bpEArkqzjzsBuaqMV
outputAmount: 6861518115434141121
< /code>
Я попробовал это с несколькими различными способами декодирования: < /p>

V1:
amm = PublicKey(buffer[0:32]).__str__()
input_mint = PublicKey(buffer[32:64]).__str__()
input_amount = struct.unpack("

Подробнее здесь: https://stackoverflow.com/questions/793 ... ction-data

Вернуться в «Python»