From af5e30283eb1ee1f81e4ec4db32cadbbaa51ae6f Mon Sep 17 00:00:00 2001 From: bingyuyap Date: Tue, 13 Aug 2024 08:41:55 +0800 Subject: [PATCH] ft_watcher: sol swap layer parser ft_watcher: test: mock tests ft_watcher: working solana swap layer parser ft_watcher: fix tests ft_watcher: fix swap recipients and token balances ft_watcher: remove unused mock files ft_watcher: update mock file names ft_watcher: move getTokenBalance ft_watcher: clean sol parser ft_watcher: add batched parseFill ft_watcher: update names ft_watcher: minor tweaks ft_watcher: formatter ft_watcher: fix tests ft_watcher: add comment Signed-off-by: bingyuyap --- common/src/solana.ts | 47 + watcher/jest.config.json | 2 +- ...VYicxWEnM7WNvAHGB1yw1dBCGzKXVanC4TxRK.json | 32 + ...gcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json | 926 +++++++ ...SN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json | 907 +++++++ ...xcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json | 862 ++++++ ...XFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj.json | 127 + ...oE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR.json | 144 + ...gcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json | 532 ++++ ...SN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json | 521 ++++ ...igj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka.json | 229 ++ ...xcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json | 500 ++++ ...BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP.json | 164 ++ watcher/src/fastTransfer/consts.ts | 3 + watcher/src/fastTransfer/swapLayer/parser.ts | 11 +- .../src/fastTransfer/swapLayer/solParser.ts | 383 +++ watcher/src/fastTransfer/types.ts | 4 +- watcher/src/idls/swap_layer.json | 2399 +++++++++++++++++ .../SolanaSwapLayerParser.test.ts | 296 ++ 19 files changed, 8083 insertions(+), 6 deletions(-) create mode 100644 watcher/mock/api.devnet.solana.com/parsedAccountInfo_Uku7YHVYicxWEnM7WNvAHGB1yw1dBCGzKXVanC4TxRK.json create mode 100644 watcher/mock/api.devnet.solana.com/parsedTransaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json create mode 100644 watcher/mock/api.devnet.solana.com/parsedTransaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json create mode 100644 watcher/mock/api.devnet.solana.com/parsedTransaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json create mode 100644 watcher/mock/api.devnet.solana.com/transaction_eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP.json create mode 100644 watcher/src/fastTransfer/swapLayer/solParser.ts create mode 100644 watcher/src/idls/swap_layer.json create mode 100644 watcher/src/watchers/__tests__/fastTransfer/SolanaSwapLayerParser.test.ts diff --git a/common/src/solana.ts b/common/src/solana.ts index 57bbf8fa..538cdc82 100644 --- a/common/src/solana.ts +++ b/common/src/solana.ts @@ -5,6 +5,7 @@ import { MessageV0, PublicKeyInitData, PublicKey, + VersionedTransactionResponse, } from '@solana/web3.js'; import axios from 'axios'; import { decode } from 'bs58'; @@ -128,3 +129,49 @@ export function parseWormholeSequenceFromLogs(logs: string[]): number | null { } return null; } + +export function blockTimeToDate(blockTime: number) { + return new Date(blockTime * 1000); +} + +/** + * Calculates the change in token balance for a specified token within an associated token account + * owned by a given owner. If the tokenBalance is not found, an amount of 0n is to be assumed + * + * @param transaction - The transaction object, which contains metadata and details about pre and post + * transaction states, including token balances. + * @param owner - The public key of the owner of the associated token account whose token balance + * change is to be calculated. + * @param mint - The mint address of the specific token for which the balance change is to be calculated. + * + * @returns The difference between the token balance after the transaction (`postTokenBalance`) and + * the token balance before the transaction (`preTokenBalance`). This value is returned as a `BigInt` + * and represents the change in token balance for the specified owner and token. + */ +export function getTokenBalanceChange( + transaction: VersionedTransactionResponse, + owner: string, + mint: string +) { + const preTokenBalances = transaction.meta?.preTokenBalances || []; + const postTokenBalances = transaction.meta?.postTokenBalances || []; + + const preTokenBalance = preTokenBalances.find((tb) => tb.mint === mint && tb.owner === owner) || { + uiTokenAmount: { + amount: 0n, + }, + }; + + const postTokenBalance = postTokenBalances.find( + (tb) => tb.mint === mint && tb.owner === owner + ) || { + uiTokenAmount: { + amount: 0n, + }, + }; + + const change = + BigInt(postTokenBalance.uiTokenAmount.amount) - BigInt(preTokenBalance.uiTokenAmount.amount); + + return change; +} diff --git a/watcher/jest.config.json b/watcher/jest.config.json index c52383d0..9fce5284 100644 --- a/watcher/jest.config.json +++ b/watcher/jest.config.json @@ -3,7 +3,7 @@ "transform": { "^.+\\.tsx?$": "ts-jest" }, - "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", + "testRegex": "(/__tests__/.*|/tests/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$", "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"], "setupFiles": ["./setup-jest.ts"], "testPathIgnorePatterns": ["sdk", "/node_modules/", "/dist/"] diff --git a/watcher/mock/api.devnet.solana.com/parsedAccountInfo_Uku7YHVYicxWEnM7WNvAHGB1yw1dBCGzKXVanC4TxRK.json b/watcher/mock/api.devnet.solana.com/parsedAccountInfo_Uku7YHVYicxWEnM7WNvAHGB1yw1dBCGzKXVanC4TxRK.json new file mode 100644 index 00000000..39efa38f --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/parsedAccountInfo_Uku7YHVYicxWEnM7WNvAHGB1yw1dBCGzKXVanC4TxRK.json @@ -0,0 +1,32 @@ +{ + "context": { + "apiVersion": "1.18.15", + "slot": 2860 + }, + "value": { + "data": { + "parsed": { + "info": { + "isNative": false, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HRTQAZJF7YNogjDUehhVShJxtFdBr8gNWsVJbvL1kvXU", + "state": "initialized", + "tokenAmount": { + "amount": "6900000000", + "decimals": 6, + "uiAmount": 6900, + "uiAmountString": "6900" + } + }, + "type": "account" + }, + "program": "spl-token", + "space": 165 + }, + "executable": false, + "lamports": 2039280, + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "rentEpoch": 18446744073709552000, + "space": 165 + } +} diff --git a/watcher/mock/api.devnet.solana.com/parsedTransaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json b/watcher/mock/api.devnet.solana.com/parsedTransaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json new file mode 100644 index 00000000..db7e202c --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/parsedTransaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json @@ -0,0 +1,926 @@ +{ + "blockTime": 1723853802, + "meta": { + "computeUnitsConsumed": 264136, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "parsed": { + "info": { + "account": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "systemProgram": "11111111111111111111111111111111", + "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "wallet": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm" + }, + "type": "create" + }, + "program": "spl-associated-token-account", + "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "extensionTypes": ["immutableOwner"], + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + }, + "type": "getAccountDataSize" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "lamports": 2039280, + "newAccount": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 165 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG" + }, + "type": "initializeImmutableOwner" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm" + }, + "type": "initializeAccount3" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "systemProgram": "11111111111111111111111111111111", + "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "wallet": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm" + }, + "type": "create" + }, + "program": "spl-associated-token-account", + "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "extensionTypes": ["immutableOwner"], + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB" + }, + "type": "getAccountDataSize" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "lamports": 2039280, + "newAccount": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 165 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4" + }, + "type": "initializeImmutableOwner" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm" + }, + "type": "initializeAccount3" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "pGBxsLfyJ4hYyCnYknswKDuwrKvM1qEAnR2MwdRT9Ha", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "data": "YwCdjauLTfC", + "programId": "TokenRouter11111111111111111111111111111111", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "amount": "48960395", + "authority": "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "destination": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "source": "pGBxsLfyJ4hYyCnYknswKDuwrKvM1qEAnR2MwdRT9Ha" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "pGBxsLfyJ4hYyCnYknswKDuwrKvM1qEAnR2MwdRT9Ha", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "7UR2vxkjV6WhTsNRPj5gbkcfsmcec9jsHgHVDCU7QMCi6CTVLtf", + "programId": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "authority": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "destination": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "source": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "tokenAmount": { + "amount": "48504428", + "decimals": 6, + "uiAmount": 48.504428, + "uiAmountString": "48.504428" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "59p8WydnSZtUFofa4xbmA6CRmor6WpUexZbMZaZKGQfeJFro219NrXM2uv", + "programId": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "amount": "48504428", + "authority": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "destination": "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "source": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 4 + }, + { + "parsed": { + "info": { + "amount": "48508532", + "authority": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "destination": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "source": "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 4 + }, + { + "accounts": ["D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"], + "data": "QMqFu4fYGGeUEysFnenhAvDWgqp1W7DbrMv3z8JcyrP4Bu3Yyyj7irLW76wEzMiFqkMXcsUXJG1WLwjdCWzNTL6957kdfWSD7SPFG2av5YHKd6ZabdHbRqj2C6tiXDZukVqh95sgQN6Cs3E7UdG9reH2hHJC5DLR9p9ie7vzoBkoJ39", + "programId": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "authority": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "destination": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "tokenAmount": { + "amount": "48508532", + "decimals": 6, + "uiAmount": 48.508532, + "uiAmountString": "48.508532" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "amount": "455967", + "authority": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "destination": "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "source": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "account": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "authority": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "destination": "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "tokenAmount": { + "amount": "48508532", + "decimals": 6, + "uiAmount": 48.508532, + "uiAmountString": "48.508532" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "account": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program ComputeBudget111111111111111111111111111111 invoke [1]", + "Program ComputeBudget111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteSwapRelay", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 670028 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 663388 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 659504 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20544 of 675503 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 637157 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 630517 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 626633 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 22044 of 644132 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 594800 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 587836 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20639 of 604862 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program log: Override in_amount: 1000000000, quoted_out_amount: 47800000, slippage_bps: 50", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [2]", + "Program log: Instruction: SharedAccountsRoute", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 554104 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [3]", + "Program log: Instruction: Swap", + "Program log: fee_growth: 5353217", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 498177 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 490475 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 49250 of 532334 compute units", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [3]", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 483 of 480414 compute units", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 475084 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 101121 of 568622 compute units", + "Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 dC7kAgAAAAA=", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program log: USDC dust: 455967", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 462440 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 455474 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 448429 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 439888 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 263986 of 699850 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499997988896447940, 0, 0, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, 1141440, + 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, 8369767, + 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "postTokenBalances": [ + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "102367901", + "decimals": 6, + "uiAmount": 102.367901, + "uiAmountString": "102.367901" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "98072638", + "decimals": 6, + "uiAmount": 98.072638, + "uiAmountString": "98.072638" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9582017540251", + "decimals": 6, + "uiAmount": 9582017.540251, + "uiAmountString": "9582017.540251" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716245682904", + "decimals": 6, + "uiAmount": 2716245.682904, + "uiAmountString": "2716245.682904" + } + } + ], + "preBalances": [ + 499997988891768800, 2644800, 2039280, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, + 1141440, 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, + 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "48960395", + "decimals": 6, + "uiAmount": 48.960395, + "uiAmountString": "48.960395" + } + }, + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101911934", + "decimals": 6, + "uiAmount": 101.911934, + "uiAmountString": "101.911934" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "49564106", + "decimals": 6, + "uiAmount": 49.564106, + "uiAmountString": "49.564106" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9581969035823", + "decimals": 6, + "uiAmount": 9581969.035823, + "uiAmountString": "9581969.035823" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716294191436", + "decimals": 6, + "uiAmount": 2716294.191436, + "uiAmountString": "2716294.191436" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 118, + "transaction": { + "message": { + "accountKeys": [ + { + "pubkey": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "signer": true, + "source": "transaction", + "writable": true + }, + { + "pubkey": "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "pGBxsLfyJ4hYyCnYknswKDuwrKvM1qEAnR2MwdRT9Ha", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "ComputeBudget111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "SwapLayer1111111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "TokenRouter11111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "11111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai", + "signer": false, + "source": "lookupTable", + "writable": false + } + ], + "addressTableLookups": [ + { + "accountKey": "GxS6FiQ3mNnAar9HGQ6mxP7t6FcwmHkU7peSeQDUHmpN", + "readonlyIndexes": [5, 176, 195], + "writableIndexes": [191, 189, 190, 193, 194, 197] + } + ], + "instructions": [ + { + "accounts": [], + "data": "GZPvto", + "programId": "ComputeBudget111111111111111111111111111111", + "stackHeight": null + }, + { + "accounts": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "pGBxsLfyJ4hYyCnYknswKDuwrKvM1qEAnR2MwdRT9Ha", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "TokenRouter11111111111111111111111111111111", + "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "11111111111111111111111111111111", + "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "Je475fSVNtFtV67TKNEDrwAfBAPXgUHNBds6Mvc16LSYjQFCDePBLbVB3fQ93PWAQKy", + "programId": "SwapLayer1111111111111111111111111111111111", + "stackHeight": null + } + ], + "recentBlockhash": "GrAAdcsJdrEXVLxmCTdswrH5fWBhpCjSgN1pvN8mT71G" + }, + "signatures": [ + "39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/parsedTransaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json b/watcher/mock/api.devnet.solana.com/parsedTransaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json new file mode 100644 index 00000000..f507d3fc --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/parsedTransaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json @@ -0,0 +1,907 @@ +{ + "blockTime": 1723853801, + "meta": { + "computeUnitsConsumed": 250558, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "parsed": { + "info": { + "account": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "systemProgram": "11111111111111111111111111111111", + "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "wallet": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P" + }, + "type": "create" + }, + "program": "spl-associated-token-account", + "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "extensionTypes": ["immutableOwner"], + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + }, + "type": "getAccountDataSize" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "lamports": 2039280, + "newAccount": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 165 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh" + }, + "type": "initializeImmutableOwner" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P" + }, + "type": "initializeAccount3" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "systemProgram": "11111111111111111111111111111111", + "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "wallet": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P" + }, + "type": "create" + }, + "program": "spl-associated-token-account", + "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "extensionTypes": ["immutableOwner"], + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB" + }, + "type": "getAccountDataSize" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "lamports": 2039280, + "newAccount": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 165 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy" + }, + "type": "initializeImmutableOwner" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P" + }, + "type": "initializeAccount3" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "AQWz5an2qYL6SNq1jNtxCHPD3TtTx75ruMaGydPzjjRW", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "data": "YwCdjauLTfC", + "programId": "TokenRouter11111111111111111111111111111111", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "amount": "49559912", + "authority": "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "destination": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "source": "AQWz5an2qYL6SNq1jNtxCHPD3TtTx75ruMaGydPzjjRW" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "AQWz5an2qYL6SNq1jNtxCHPD3TtTx75ruMaGydPzjjRW", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "7UR2vxkjV6WhTsNRPj5gbkcfskuJJkrHMNtjRc4dSX71NWbgePy", + "programId": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "authority": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "destination": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "source": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "tokenAmount": { + "amount": "49559912", + "decimals": 6, + "uiAmount": 49.559912, + "uiAmountString": "49.559912" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "59p8WydnSZtUAhWjjy5EJLxkX5hwix8nEA37oFZ6jXEMYW1tw1575E1F6Q", + "programId": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "amount": "49559912", + "authority": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "destination": "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "source": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 4 + }, + { + "parsed": { + "info": { + "amount": "49564106", + "authority": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "destination": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "source": "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 4 + }, + { + "accounts": ["D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"], + "data": "QMqFu4fYGGeUEysFnenhAvDWgqp1W7DbrMv3z8JcyrP4Bu3Yyyj7irLW76wEzMiFqkMXcsUXJG1WLwjdCWzNTL6957kdfWSD7SPFG2av5YHKd6RJ3TbjMQWFVurroMefUxoJUzBcHzvg3e4m8wMGuUeHChNbaMu28T4XPbN9JThqHnF", + "programId": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "authority": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "destination": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "tokenAmount": { + "amount": "49564106", + "decimals": 6, + "uiAmount": 49.564106, + "uiAmountString": "49.564106" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "authority": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "destination": "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "tokenAmount": { + "amount": "49564106", + "decimals": 6, + "uiAmount": 49.564106, + "uiAmountString": "49.564106" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "account": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program ComputeBudget111111111111111111111111111111 invoke [1]", + "Program ComputeBudget111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteSwapDirect", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 670114 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 663474 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 659590 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20544 of 675589 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 640243 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 633603 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 629719 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20544 of 645718 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 601084 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 594121 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20596 of 611104 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program log: Override in_amount: 1000000000, quoted_out_amount: 49200000, slippage_bps: 50", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [2]", + "Program log: Instruction: SharedAccountsRoute", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 560171 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [3]", + "Program log: Instruction: Swap", + "Program log: fee_growth: 5469088", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 504257 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 496555 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 49237 of 538401 compute units", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [3]", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 483 of 486494 compute units", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 481164 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 101108 of 574689 compute units", + "Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 ykn0AgAAAAA=", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 469052 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 462007 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 453466 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 250408 of 699850 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499997988891768800, 0, 0, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, 1141440, + 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, 8369767, + 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "postTokenBalances": [ + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101911934", + "decimals": 6, + "uiAmount": 101.911934, + "uiAmountString": "101.911934" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "49564106", + "decimals": 6, + "uiAmount": 49.564106, + "uiAmountString": "49.564106" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9581969035823", + "decimals": 6, + "uiAmount": 9581969.035823, + "uiAmountString": "9581969.035823" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716294191436", + "decimals": 6, + "uiAmount": 2716294.191436, + "uiAmountString": "2716294.191436" + } + } + ], + "preBalances": [ + 499997988887159360, 2575200, 2039280, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, + 1141440, 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, + 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "49559912", + "decimals": 6, + "uiAmount": 49.559912, + "uiAmountString": "49.559912" + } + }, + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101911934", + "decimals": 6, + "uiAmount": 101.911934, + "uiAmountString": "101.911934" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9581919475911", + "decimals": 6, + "uiAmount": 9581919.475911, + "uiAmountString": "9581919.475911" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716343755542", + "decimals": 6, + "uiAmount": 2716343.755542, + "uiAmountString": "2716343.755542" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 114, + "transaction": { + "message": { + "accountKeys": [ + { + "pubkey": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "signer": true, + "source": "transaction", + "writable": true + }, + { + "pubkey": "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "AQWz5an2qYL6SNq1jNtxCHPD3TtTx75ruMaGydPzjjRW", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "ComputeBudget111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "SwapLayer1111111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "TokenRouter11111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "11111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai", + "signer": false, + "source": "lookupTable", + "writable": false + } + ], + "addressTableLookups": [ + { + "accountKey": "GxS6FiQ3mNnAar9HGQ6mxP7t6FcwmHkU7peSeQDUHmpN", + "readonlyIndexes": [5, 176, 195], + "writableIndexes": [191, 189, 190, 193, 194, 197] + } + ], + "instructions": [ + { + "accounts": [], + "data": "GZPvto", + "programId": "ComputeBudget111111111111111111111111111111", + "stackHeight": null + }, + { + "accounts": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "AQWz5an2qYL6SNq1jNtxCHPD3TtTx75ruMaGydPzjjRW", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "TokenRouter11111111111111111111111111111111", + "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "11111111111111111111111111111111", + "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "7ajEyWmHhk3wNREsuSGnkH2HWjKT9rkhs18tWfsWSZRTovVLnuvvb7yG2vuidXseJ7R", + "programId": "SwapLayer1111111111111111111111111111111111", + "stackHeight": null + } + ], + "recentBlockhash": "CeV5eMWn6NqKGAU9LAKJtDmbPz9xtJw1t561vDzBAG1x" + }, + "signatures": [ + "3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/parsedTransaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json b/watcher/mock/api.devnet.solana.com/parsedTransaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json new file mode 100644 index 00000000..a4c02773 --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/parsedTransaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json @@ -0,0 +1,862 @@ +{ + "blockTime": 1723586654, + "meta": { + "computeUnitsConsumed": 259511, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "parsed": { + "info": { + "lamports": 2331600, + "newAccount": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "owner": "SwapLayer1111111111111111111111111111111111", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 207 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "account": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "systemProgram": "11111111111111111111111111111111", + "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "wallet": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f" + }, + "type": "create" + }, + "program": "spl-associated-token-account", + "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "extensionTypes": ["immutableOwner"], + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" + }, + "type": "getAccountDataSize" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "lamports": 2039280, + "newAccount": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 165 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g" + }, + "type": "initializeImmutableOwner" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f" + }, + "type": "initializeAccount3" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "systemProgram": "11111111111111111111111111111111", + "tokenProgram": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "wallet": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f" + }, + "type": "create" + }, + "program": "spl-associated-token-account", + "programId": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "extensionTypes": ["immutableOwner"], + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB" + }, + "type": "getAccountDataSize" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "lamports": 2039280, + "newAccount": "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "source": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "space": 165 + }, + "type": "createAccount" + }, + "program": "system", + "programId": "11111111111111111111111111111111", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi" + }, + "type": "initializeImmutableOwner" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f" + }, + "type": "initializeAccount3" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "7STSZJv1cu7JC9fB74rgMXyW9ZJcbtnF3Za9dJG7mXSm", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "data": "YwCdjauLTfC", + "programId": "TokenRouter11111111111111111111111111111111", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "amount": "198749580", + "authority": "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "destination": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "source": "7STSZJv1cu7JC9fB74rgMXyW9ZJcbtnF3Za9dJG7mXSm" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "7STSZJv1cu7JC9fB74rgMXyW9ZJcbtnF3Za9dJG7mXSm", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "7UR2vxkjV6WhTsNRPj5gbkcfssaMjMaDK8uvuSXRWP6btiLLbfM", + "programId": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "stackHeight": 2 + }, + { + "parsed": { + "info": { + "authority": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "destination": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "source": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "tokenAmount": { + "amount": "198749580", + "decimals": 6, + "uiAmount": 198.74958, + "uiAmountString": "198.74958" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "accounts": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "59p8WydnSZtUzVfUMCeuS5EyQF9DMp2p2n5N94T23vMLoX7mmRQXdSnkNU", + "programId": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "amount": "198749580", + "authority": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "destination": "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "source": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 4 + }, + { + "parsed": { + "info": { + "amount": "198766368", + "authority": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "destination": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "source": "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9" + }, + "type": "transfer" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 4 + }, + { + "accounts": ["D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf"], + "data": "QMqFu4fYGGeUEysFnenhAvDWgqp1W7DbrMv3z8JcyrP4Bu3Yyyj7irLW76wEzMiFqkMXcsUXJG1WLwjdCWzNTL6957kdfWSD7SPFG2av5YHKd7krJUq6enaJyM49iQAZ9AxQkPmhmooHfEoy9kSyXiyZiXzjAWRgXVAHjxP5RgWZjgK", + "programId": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "authority": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "destination": "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "source": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "tokenAmount": { + "amount": "198766368", + "decimals": 6, + "uiAmount": 198.766368, + "uiAmountString": "198.766368" + } + }, + "type": "transferChecked" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 3 + }, + { + "parsed": { + "info": { + "account": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "destination": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "owner": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f" + }, + "type": "closeAccount" + }, + "program": "spl-token", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "stackHeight": 2 + } + ] + } + ], + "logMessages": [ + "Program ComputeBudget111111111111111111111111111111 invoke [1]", + "Program ComputeBudget111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteSwapPayload", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 702229 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 695589 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 691705 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 25044 of 712204 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 664864 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 658224 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 654340 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 22044 of 671839 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 628776 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 621812 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20430 of 638629 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program log: Override in_amount: 1000000000, quoted_out_amount: 1000036525, slippage_bps: 50", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [2]", + "Program log: Instruction: SharedAccountsRoute", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 586209 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [3]", + "Program log: Instruction: Swap", + "Program log: fee_growth: 21931529", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 530342 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 522640 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 49190 of 564439 compute units", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [3]", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 483 of 512579 compute units", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 507249 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 101060 of 600726 compute units", + "Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 IO/YCwAAAAA=", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 495137 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 259361 of 749850 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499995992976573250, 0, 0, 2331600, 0, 2039280, 2039280, 2039280, 1, 1141440, 0, 1141440, 0, + 2039280, 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 2067120, 1419840, 1141440, + 14801671630, 50202380623, 929020800, 731913600, 1, 1141440, 0 + ], + "postTokenBalances": [ + { + "accountIndex": 5, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "198766368", + "decimals": 6, + "uiAmount": 198.766368, + "uiAmountString": "198.766368" + } + }, + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 7, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 13, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HD7nTtFsw1CmjvmYyB5Qit7ycKgtqmGu79ENSWuh2iw9", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "5760000", + "decimals": 6, + "uiAmount": 5.76, + "uiAmountString": "5.76" + } + }, + { + "accountIndex": 15, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9583457949331", + "decimals": 6, + "uiAmount": 9583457.949331, + "uiAmountString": "9583457.949331" + } + }, + { + "accountIndex": 16, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2714805142465", + "decimals": 6, + "uiAmount": 2714805.142465, + "uiAmountString": "2714805.142465" + } + } + ], + "preBalances": [ + 499995992975882240, 3027600, 2039280, 0, 0, 0, 2039280, 2039280, 1, 1141440, 0, 1141440, 0, + 2039280, 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 2067120, 1419840, 1141440, + 14801671630, 50202380623, 929020800, 731913600, 1, 1141440, 0 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "198749580", + "decimals": 6, + "uiAmount": 198.74958, + "uiAmountString": "198.74958" + } + }, + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 7, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 13, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HD7nTtFsw1CmjvmYyB5Qit7ycKgtqmGu79ENSWuh2iw9", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "5760000", + "decimals": 6, + "uiAmount": 5.76, + "uiAmountString": "5.76" + } + }, + { + "accountIndex": 15, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9583259199751", + "decimals": 6, + "uiAmount": 9583259.199751, + "uiAmountString": "9583259.199751" + } + }, + { + "accountIndex": 16, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2715003908833", + "decimals": 6, + "uiAmount": 2715003.908833, + "uiAmountString": "2715003.908833" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 605, + "transaction": { + "message": { + "accountKeys": [ + { + "pubkey": "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "signer": true, + "source": "transaction", + "writable": true + }, + { + "pubkey": "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "7STSZJv1cu7JC9fB74rgMXyW9ZJcbtnF3Za9dJG7mXSm", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "signer": false, + "source": "transaction", + "writable": true + }, + { + "pubkey": "ComputeBudget111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "SwapLayer1111111111111111111111111111111111", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "signer": false, + "source": "transaction", + "writable": false + }, + { + "pubkey": "BQH11JvNJNkwPsuYKrf5KCJhMpNKYsTaNwoaV4VrHh4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "signer": false, + "source": "lookupTable", + "writable": true + }, + { + "pubkey": "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "TokenRouter11111111111111111111111111111111", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "11111111111111111111111111111111", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "signer": false, + "source": "lookupTable", + "writable": false + }, + { + "pubkey": "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai", + "signer": false, + "source": "lookupTable", + "writable": false + } + ], + "addressTableLookups": [ + { + "accountKey": "2aTqsSkPJs1RtnAaEP6pF16a9Tn8ioQNvP6hn9msatuC", + "readonlyIndexes": [0, 2, 30, 27, 6, 26, 4, 10], + "writableIndexes": [1] + }, + { + "accountKey": "GxS6FiQ3mNnAar9HGQ6mxP7t6FcwmHkU7peSeQDUHmpN", + "readonlyIndexes": [176, 195], + "writableIndexes": [191, 189, 190, 193, 194, 197] + } + ], + "instructions": [ + { + "accounts": [], + "data": "JbeT91", + "programId": "ComputeBudget111111111111111111111111111111", + "stackHeight": null + }, + { + "accounts": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "7STSZJv1cu7JC9fB74rgMXyW9ZJcbtnF3Za9dJG7mXSm", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "TokenRouter11111111111111111111111111111111", + "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "BQH11JvNJNkwPsuYKrf5KCJhMpNKYsTaNwoaV4VrHh4", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "11111111111111111111111111111111", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "data": "EPCipkEKcmw933vny75ML8uokfAunsUyTaXsh8VVx3n6rktjZFwSj4Ydbm7mLG1nGD5", + "programId": "SwapLayer1111111111111111111111111111111111", + "stackHeight": null + } + ], + "recentBlockhash": "6es7tXGTJeSNiyAhMUN7xqGbjmoQyFsTsrb8N5mh8ViP" + }, + "signatures": [ + "4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj.json b/watcher/mock/api.devnet.solana.com/transaction_2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj.json new file mode 100644 index 00000000..3bb955d7 --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj.json @@ -0,0 +1,127 @@ +{ + "blockTime": 1723704439, + "meta": { + "computeUnitsConsumed": 22303, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "accounts": [4, 6, 3, 2], + "data": "g7RbsQtxkZGey", + "programIdIndex": 7, + "stackHeight": 2 + }, + { + "accounts": [4, 1, 2], + "data": "A", + "programIdIndex": 7, + "stackHeight": 2 + } + ] + } + ], + "loadedAddresses": { + "readonly": [], + "writable": [] + }, + "logMessages": [ + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: ReleaseInbound", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 189869 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 181331 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 22303 of 200000 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [1379995000, 4287360, 0, 2039280, 0, 1141440, 14801671630, 929020800], + "postTokenBalances": [ + { + "accountIndex": 3, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HRTQAZJF7YNogjDUehhVShJxtFdBr8gNWsVJbvL1kvXU", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "6900000000", + "decimals": 6, + "uiAmount": 6900, + "uiAmountString": "6900" + } + } + ], + "preBalances": [1380000000, 0, 2248080, 2039280, 2039280, 1141440, 14801671630, 929020800], + "preTokenBalances": [ + { + "accountIndex": 3, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HRTQAZJF7YNogjDUehhVShJxtFdBr8gNWsVJbvL1kvXU", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 4, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GFJ6699xu2BER8t98S4Vy6ZQam4mvr539AaqvHHBh9i3", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "6900000000", + "decimals": 6, + "uiAmount": 6900, + "uiAmountString": "6900" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 177, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 3, + "numRequiredSignatures": 1 + }, + "staticAccountKeys": [ + "HpJdHnhTVYasnxiRhY4Mh29aZ4xX3soum6heFnaLjtTA", + "6nUMVeXVt55kCm9Z9reaEu388ZWeJvaZyXb9GywfXpJp", + "GFJ6699xu2BER8t98S4Vy6ZQam4mvr539AaqvHHBh9i3", + "Uku7YHVYicxWEnM7WNvAHGB1yw1dBCGzKXVanC4TxRK", + "DUqDbHhvs8DgkVarHzd5F6FtcjpkcSnDttQAdiqS3qwz", + "SwapLayer1111111111111111111111111111111111", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "recentBlockhash": "FpXxL5aUHU8KmKENmgDKQ2zut7vcZphQBw2CRavnJQT9", + "compiledInstructions": [ + { + "programIdIndex": 5, + "accountKeyIndexes": [0, 1, 2, 3, 4, 6, 7], + "data": { + "type": "Buffer", + "data": [116, 169, 86, 154, 87, 2, 36, 20] + } + } + ], + "addressTableLookups": [] + }, + "signatures": [ + "2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR.json b/watcher/mock/api.devnet.solana.com/transaction_32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR.json new file mode 100644 index 00000000..9c468e0b --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR.json @@ -0,0 +1,144 @@ +{ + "blockTime": 1723586394, + "meta": { + "computeUnitsConsumed": 46277, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "accounts": [5, 0, 1, 3, 2, 9], + "data": "YwCdjauLTfC", + "programIdIndex": 7, + "stackHeight": 2 + }, + { + "accounts": [2, 3, 1], + "data": "3Db9PaGG3zPZ", + "programIdIndex": 9, + "stackHeight": 3 + }, + { + "accounts": [2, 0, 1], + "data": "A", + "programIdIndex": 9, + "stackHeight": 3 + } + ] + } + ], + "loadedAddresses": { + "readonly": [], + "writable": [] + }, + "logMessages": [ + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteTransferDirect", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 165979 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 159016 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20517 of 175920 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 consumed 46277 of 200000 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499997988882772600, 0, 0, 2039280, 1141440, 2067120, 1419840, 1141440, 0, 929020800 + ], + "postTokenBalances": [ + { + "accountIndex": 3, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "20000000000", + "decimals": 6, + "uiAmount": 20000, + "uiAmountString": "20000" + } + } + ], + "preBalances": [ + 499997988878539000, 2199360, 2039280, 2039280, 1141440, 2067120, 1419840, 1141440, 0, + 929020800 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "CsMMaWW4F1ST4AMfyf5uuYqySk8yzadXADkwci5nzLgq", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "20000000000", + "decimals": 6, + "uiAmount": 20000, + "uiAmountString": "20000" + } + }, + { + "accountIndex": 3, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 109, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 6, + "numRequiredSignatures": 1 + }, + "staticAccountKeys": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "CsMMaWW4F1ST4AMfyf5uuYqySk8yzadXADkwci5nzLgq", + "9fuj6D2Z6nDZdY1TBekVgdDctwQiQdFUygAQD3Amcb8h", + "3G82KZPnMVmqpvArmXf9Gr6ZjXAx9AR7u9LH7PSej3YU", + "SwapLayer1111111111111111111111111111111111", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "TokenRouter11111111111111111111111111111111", + "FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" + ], + "recentBlockhash": "BEv9AAEJYN49mRMKk5jf2rdGKAc5wpmW7orax6aWpsVS", + "compiledInstructions": [ + { + "programIdIndex": 4, + "accountKeyIndexes": [0, 5, 1, 2, 6, 0, 7, 3, 8, 9], + "data": { + "type": "Buffer", + "data": [233, 87, 221, 31, 40, 175, 108, 183] + } + } + ], + "addressTableLookups": [] + }, + "signatures": [ + "32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json b/watcher/mock/api.devnet.solana.com/transaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json new file mode 100644 index 00000000..9d23dc82 --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1.json @@ -0,0 +1,532 @@ +{ + "blockTime": 1723853802, + "meta": { + "computeUnitsConsumed": 264136, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "accounts": [0, 3, 15, 16, 19, 29], + "data": "1", + "programIdIndex": 18, + "stackHeight": 2 + }, + { + "accounts": [16], + "data": "84eT", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [0, 3], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 19, + "stackHeight": 3 + }, + { + "accounts": [3], + "data": "P", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [3, 16], + "data": "6dD61yfzUwHr3Su7JeUW3uqgb4qfyDS3M6rQgKKEqz2fj", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [0, 4, 15, 17, 19, 29], + "data": "1", + "programIdIndex": 18, + "stackHeight": 2 + }, + { + "accounts": [17], + "data": "84eT", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [0, 4], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 19, + "stackHeight": 3 + }, + { + "accounts": [4], + "data": "P", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [4, 17], + "data": "6dD61yfzUwHr3Su7JeUW3uqgb4qfyDS3M6rQgKKEqz2fj", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [12, 0, 1, 3, 2, 29], + "data": "YwCdjauLTfC", + "programIdIndex": 14, + "stackHeight": 2 + }, + { + "accounts": [2, 3, 1], + "data": "3cinsnFjLAvb", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [2, 0, 1], + "data": "A", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [ + 29, 20, 15, 3, 8, 9, 4, 16, 17, 21, 21, 22, 21, 30, 29, 20, 23, 8, 24, 9, 25, 26, 27, + 28, 31 + ], + "data": "7UR2vxkjV6WhTsNRPj5gbkcfsmcec9jsHgHVDCU7QMCi6CTVLtf", + "programIdIndex": 21, + "stackHeight": 2 + }, + { + "accounts": [3, 16, 8, 15], + "data": "hUmcSJ2Ku7Uv9", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [29, 20, 23, 8, 24, 9, 25, 26, 27, 28, 31], + "data": "59p8WydnSZtUFofa4xbmA6CRmor6WpUexZbMZaZKGQfeJFro219NrXM2uv", + "programIdIndex": 30, + "stackHeight": 3 + }, + { + "accounts": [8, 24, 20], + "data": "3XYU99dQaxd5", + "programIdIndex": 29, + "stackHeight": 4 + }, + { + "accounts": [25, 9, 23], + "data": "3Ytggx1dkVDZ", + "programIdIndex": 29, + "stackHeight": 4 + }, + { + "accounts": [22], + "data": "QMqFu4fYGGeUEysFnenhAvDWgqp1W7DbrMv3z8JcyrP4Bu3Yyyj7irLW76wEzMiFqkMXcsUXJG1WLwjdCWzNTL6957kdfWSD7SPFG2av5YHKd6ZabdHbRqj2C6tiXDZukVqh95sgQN6Cs3E7UdG9reH2hHJC5DLR9p9ie7vzoBkoJ39", + "programIdIndex": 21, + "stackHeight": 3 + }, + { + "accounts": [9, 17, 4, 20], + "data": "haiqpekS1AX7j", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [3, 5, 15], + "data": "3JoazqVqyKWf", + "programIdIndex": 29, + "stackHeight": 2 + }, + { + "accounts": [3, 0, 15], + "data": "A", + "programIdIndex": 29, + "stackHeight": 2 + }, + { + "accounts": [4, 17, 6, 15], + "data": "haiqpekS1AX7j", + "programIdIndex": 29, + "stackHeight": 2 + }, + { + "accounts": [4, 0, 15], + "data": "A", + "programIdIndex": 29, + "stackHeight": 2 + } + ] + } + ], + "loadedAddresses": { + "readonly": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "writable": [ + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4" + ] + }, + "logMessages": [ + "Program ComputeBudget111111111111111111111111111111 invoke [1]", + "Program ComputeBudget111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteSwapRelay", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 670028 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 663388 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 659504 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20544 of 675503 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 637157 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 630517 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 626633 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 22044 of 644132 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 594800 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 587836 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20639 of 604862 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program log: Override in_amount: 1000000000, quoted_out_amount: 47800000, slippage_bps: 50", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [2]", + "Program log: Instruction: SharedAccountsRoute", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 554104 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [3]", + "Program log: Instruction: Swap", + "Program log: fee_growth: 5353217", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 498177 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 490475 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 49250 of 532334 compute units", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [3]", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 483 of 480414 compute units", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 475084 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 101121 of 568622 compute units", + "Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 dC7kAgAAAAA=", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program log: USDC dust: 455967", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 462440 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 455474 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 448429 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 439888 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 263986 of 699850 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499997988896447940, 0, 0, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, 1141440, + 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, 8369767, + 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "postTokenBalances": [ + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "102367901", + "decimals": 6, + "uiAmount": 102.367901, + "uiAmountString": "102.367901" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "98072638", + "decimals": 6, + "uiAmount": 98.072638, + "uiAmountString": "98.072638" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9582017540251", + "decimals": 6, + "uiAmount": 9582017.540251, + "uiAmountString": "9582017.540251" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716245682904", + "decimals": 6, + "uiAmount": 2716245.682904, + "uiAmountString": "2716245.682904" + } + } + ], + "preBalances": [ + 499997988891768800, 2644800, 2039280, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, + 1141440, 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, + 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "48960395", + "decimals": 6, + "uiAmount": 48.960395, + "uiAmountString": "48.960395" + } + }, + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101911934", + "decimals": 6, + "uiAmount": 101.911934, + "uiAmountString": "101.911934" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "49564106", + "decimals": 6, + "uiAmount": 49.564106, + "uiAmountString": "49.564106" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9581969035823", + "decimals": 6, + "uiAmount": 9581969.035823, + "uiAmountString": "9581969.035823" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716294191436", + "decimals": 6, + "uiAmount": 2716294.191436, + "uiAmountString": "2716294.191436" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 118, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 13, + "numRequiredSignatures": 1 + }, + "staticAccountKeys": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr", + "pGBxsLfyJ4hYyCnYknswKDuwrKvM1qEAnR2MwdRT9Ha", + "AyAm1cRLTSkBdk7PusEGdCBUEofbnCp9VKudeKFBNGGG", + "J97GunrirB2KysnSGcrhzhm8nC45ygG9SQcD5xDF71w4", + "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "ComputeBudget111111111111111111111111111111", + "SwapLayer1111111111111111111111111111111111", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "TokenRouter11111111111111111111111111111111", + "H5PM3UTgeSaDBR1nZKJiRsFCZx69ogmePwEppjZ2gtEm", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "11111111111111111111111111111111", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf" + ], + "recentBlockhash": "GrAAdcsJdrEXVLxmCTdswrH5fWBhpCjSgN1pvN8mT71G", + "compiledInstructions": [ + { + "programIdIndex": 10, + "accountKeyIndexes": [], + "data": { + "type": "Buffer", + "data": [2, 96, 174, 10, 0] + } + }, + { + "programIdIndex": 11, + "accountKeyIndexes": [ + 0, 12, 1, 2, 13, 0, 14, 15, 3, 4, 5, 16, 17, 29, 29, 18, 19, 6, 7, 29, 20, 15, 3, 8, 9, + 4, 16, 17, 21, 21, 22, 21, 30, 29, 20, 23, 8, 24, 9, 25, 26, 27, 28, 31 + ], + "data": { + "type": "Buffer", + "data": [ + 108, 241, 108, 248, 142, 211, 140, 252, 37, 0, 0, 0, 193, 32, 155, 51, 65, 214, 156, + 129, 0, 1, 0, 0, 0, 17, 1, 100, 0, 1, 0, 202, 154, 59, 0, 0, 0, 0, 192, 94, 217, 2, 0, + 0, 0, 0, 50, 0, 0 + ] + } + } + ], + "addressTableLookups": [ + { + "accountKey": "GxS6FiQ3mNnAar9HGQ6mxP7t6FcwmHkU7peSeQDUHmpN", + "readonlyIndexes": [5, 176, 195], + "writableIndexes": [191, 189, 190, 193, 194, 197] + } + ] + }, + "signatures": [ + "39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json b/watcher/mock/api.devnet.solana.com/transaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json new file mode 100644 index 00000000..84c8db84 --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ.json @@ -0,0 +1,521 @@ +{ + "blockTime": 1723853801, + "meta": { + "computeUnitsConsumed": 250558, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "accounts": [0, 3, 15, 16, 19, 29], + "data": "1", + "programIdIndex": 18, + "stackHeight": 2 + }, + { + "accounts": [16], + "data": "84eT", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [0, 3], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 19, + "stackHeight": 3 + }, + { + "accounts": [3], + "data": "P", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [3, 16], + "data": "6NSeWMWcLrdKyiAHLUcYTkLHrb3oSLinGaTiGSFBcEbUM", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [0, 4, 15, 17, 19, 29], + "data": "1", + "programIdIndex": 18, + "stackHeight": 2 + }, + { + "accounts": [17], + "data": "84eT", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [0, 4], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 19, + "stackHeight": 3 + }, + { + "accounts": [4], + "data": "P", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [4, 17], + "data": "6NSeWMWcLrdKyiAHLUcYTkLHrb3oSLinGaTiGSFBcEbUM", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [12, 0, 1, 3, 2, 29], + "data": "YwCdjauLTfC", + "programIdIndex": 14, + "stackHeight": 2 + }, + { + "accounts": [2, 3, 1], + "data": "3Wtgw31sA999", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [2, 0, 1], + "data": "A", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [ + 29, 20, 15, 3, 8, 9, 4, 16, 17, 21, 21, 22, 21, 30, 29, 20, 23, 8, 24, 9, 25, 26, 27, + 28, 31 + ], + "data": "7UR2vxkjV6WhTsNRPj5gbkcfskuJJkrHMNtjRc4dSX71NWbgePy", + "programIdIndex": 21, + "stackHeight": 2 + }, + { + "accounts": [3, 16, 8, 15], + "data": "hRtrtpqTBZudo", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [29, 20, 23, 8, 24, 9, 25, 26, 27, 28, 31], + "data": "59p8WydnSZtUAhWjjy5EJLxkX5hwix8nEA37oFZ6jXEMYW1tw1575E1F6Q", + "programIdIndex": 30, + "stackHeight": 3 + }, + { + "accounts": [8, 24, 20], + "data": "3Wtgw31sA999", + "programIdIndex": 29, + "stackHeight": 4 + }, + { + "accounts": [25, 9, 23], + "data": "3oJ2263niPpB", + "programIdIndex": 29, + "stackHeight": 4 + }, + { + "accounts": [22], + "data": "QMqFu4fYGGeUEysFnenhAvDWgqp1W7DbrMv3z8JcyrP4Bu3Yyyj7irLW76wEzMiFqkMXcsUXJG1WLwjdCWzNTL6957kdfWSD7SPFG2av5YHKd6RJ3TbjMQWFVurroMefUxoJUzBcHzvg3e4m8wMGuUeHChNbaMu28T4XPbN9JThqHnF", + "programIdIndex": 21, + "stackHeight": 3 + }, + { + "accounts": [9, 17, 4, 20], + "data": "igHq98DwZvfvd", + "programIdIndex": 29, + "stackHeight": 3 + }, + { + "accounts": [3, 0, 15], + "data": "A", + "programIdIndex": 29, + "stackHeight": 2 + }, + { + "accounts": [4, 17, 6, 15], + "data": "igHq98DwZvfvd", + "programIdIndex": 29, + "stackHeight": 2 + }, + { + "accounts": [4, 0, 15], + "data": "A", + "programIdIndex": 29, + "stackHeight": 2 + } + ] + } + ], + "loadedAddresses": { + "readonly": [ + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "writable": [ + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4" + ] + }, + "logMessages": [ + "Program ComputeBudget111111111111111111111111111111 invoke [1]", + "Program ComputeBudget111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteSwapDirect", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 670114 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 663474 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 659590 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20544 of 675589 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 640243 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 633603 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 629719 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20544 of 645718 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 601084 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 594121 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20596 of 611104 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program log: Override in_amount: 1000000000, quoted_out_amount: 49200000, slippage_bps: 50", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [2]", + "Program log: Instruction: SharedAccountsRoute", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 560171 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [3]", + "Program log: Instruction: Swap", + "Program log: fee_growth: 5469088", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 504257 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 496555 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 49237 of 538401 compute units", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [3]", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 483 of 486494 compute units", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 481164 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 101108 of 574689 compute units", + "Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 ykn0AgAAAAA=", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 469052 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 462007 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 453466 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 250408 of 699850 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499997988891768800, 0, 0, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, 1141440, + 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, 8369767, + 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "postTokenBalances": [ + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101911934", + "decimals": 6, + "uiAmount": 101.911934, + "uiAmountString": "101.911934" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "49564106", + "decimals": 6, + "uiAmount": 49.564106, + "uiAmountString": "49.564106" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9581969035823", + "decimals": 6, + "uiAmount": 9581969.035823, + "uiAmountString": "9581969.035823" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716294191436", + "decimals": 6, + "uiAmount": 2716294.191436, + "uiAmountString": "2716294.191436" + } + } + ], + "preBalances": [ + 499997988887159360, 2575200, 2039280, 0, 0, 2039280, 2039280, 6103000000, 2039280, 2039280, 1, + 1141440, 2067120, 1419840, 1141440, 0, 14801671630, 50202380623, 731913600, 1, 0, 1141440, 0, + 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 929020800, 1141440, 0 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "49559912", + "decimals": 6, + "uiAmount": 49.559912, + "uiAmountString": "49.559912" + } + }, + { + "accountIndex": 5, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101911934", + "decimals": 6, + "uiAmount": 101.911934, + "uiAmountString": "101.911934" + } + }, + { + "accountIndex": 6, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 8, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 9, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 24, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9581919475911", + "decimals": 6, + "uiAmount": 9581919.475911, + "uiAmountString": "9581919.475911" + } + }, + { + "accountIndex": 25, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2716343755542", + "decimals": 6, + "uiAmount": 2716343.755542, + "uiAmountString": "2716343.755542" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 114, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 13, + "numRequiredSignatures": 1 + }, + "staticAccountKeys": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU", + "AQWz5an2qYL6SNq1jNtxCHPD3TtTx75ruMaGydPzjjRW", + "EyJaQ4q7oqaxMPBydgthZNehcvnBcWQytYyzxuwEqxvh", + "YdyzyZ5hqXg8HtkCTKBYKJwmB878cacKLkgddYZcmZy", + "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "Ab3c3hNA9uhEUh8xfdEo3sqApPwEjo7HbUCS2ixbGerd", + "GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "ComputeBudget111111111111111111111111111111", + "SwapLayer1111111111111111111111111111111111", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "TokenRouter11111111111111111111111111111111", + "2JwqRK5YZn49SgBpPTM8GMrU6ADcvyWZsYYQwfVnwT3P", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "11111111111111111111111111111111", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf" + ], + "recentBlockhash": "CeV5eMWn6NqKGAU9LAKJtDmbPz9xtJw1t561vDzBAG1x", + "compiledInstructions": [ + { + "programIdIndex": 10, + "accountKeyIndexes": [], + "data": { + "type": "Buffer", + "data": [2, 96, 174, 10, 0] + } + }, + { + "programIdIndex": 11, + "accountKeyIndexes": [ + 0, 12, 1, 2, 13, 0, 14, 15, 3, 4, 5, 16, 17, 29, 29, 18, 19, 6, 7, 29, 20, 15, 3, 8, 9, + 4, 16, 17, 21, 21, 22, 21, 30, 29, 20, 23, 8, 24, 9, 25, 26, 27, 28, 31 + ], + "data": { + "type": "Buffer", + "data": [ + 40, 166, 72, 2, 172, 18, 32, 75, 37, 0, 0, 0, 193, 32, 155, 51, 65, 214, 156, 129, 0, + 1, 0, 0, 0, 17, 1, 100, 0, 1, 0, 202, 154, 59, 0, 0, 0, 0, 128, 187, 238, 2, 0, 0, 0, + 0, 50, 0, 0 + ] + } + } + ], + "addressTableLookups": [ + { + "accountKey": "GxS6FiQ3mNnAar9HGQ6mxP7t6FcwmHkU7peSeQDUHmpN", + "readonlyIndexes": [5, 176, 195], + "writableIndexes": [191, 189, 190, 193, 194, 197] + } + ] + }, + "signatures": [ + "3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka.json b/watcher/mock/api.devnet.solana.com/transaction_4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka.json new file mode 100644 index 00000000..a2cc84cd --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka.json @@ -0,0 +1,229 @@ +{ + "blockTime": 1723586395, + "meta": { + "computeUnitsConsumed": 84539, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "accounts": [0, 3], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 13, + "stackHeight": 2 + }, + { + "accounts": [3, 11], + "data": "6XtCxUFoq35mVC7aAoaxb2ML4at4EqLiwbf3sduCSttRT", + "programIdIndex": 12, + "stackHeight": 2 + }, + { + "accounts": [8, 0, 1, 3, 2, 12], + "data": "YwCdjauLTfC", + "programIdIndex": 10, + "stackHeight": 2 + }, + { + "accounts": [2, 3, 1], + "data": "3VVg9R6urdgK", + "programIdIndex": 12, + "stackHeight": 3 + }, + { + "accounts": [2, 0, 1], + "data": "A", + "programIdIndex": 12, + "stackHeight": 3 + }, + { + "accounts": [0, 5], + "data": "3Bxs3zzLZLuLQEYX", + "programIdIndex": 13, + "stackHeight": 2 + }, + { + "accounts": [3, 4, 8], + "data": "3Db9PaGG3zPZ", + "programIdIndex": 12, + "stackHeight": 2 + }, + { + "accounts": [3, 6, 8], + "data": "3VN6MXnXcdm1", + "programIdIndex": 12, + "stackHeight": 2 + }, + { + "accounts": [3, 0, 8], + "data": "A", + "programIdIndex": 12, + "stackHeight": 2 + } + ] + } + ], + "loadedAddresses": { + "readonly": [], + "writable": [] + }, + "logMessages": [ + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteTransferRelay", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 177619 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 149261 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 142298 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20558 of 159243 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 132949 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 125960 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 118998 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 84539 of 200000 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 8995425120, 0, 0, 0, 2039280, 1000000000, 2039280, 1141440, 2067120, 1419840, 1141440, + 14801671630, 929020800, 1 + ], + "postTokenBalances": [ + { + "accountIndex": 4, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "40000000000", + "decimals": 6, + "uiAmount": 40000, + "uiAmountString": "40000" + } + }, + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "101455967", + "decimals": 6, + "uiAmount": 101.455967, + "uiAmountString": "101.455967" + } + } + ], + "preBalances": [ + 9991121880, 2268960, 2039280, 0, 2039280, 0, 2039280, 1141440, 2067120, 1419840, 1141440, + 14801671630, 929020800, 1 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "DF7VbsSLSqQq2JYT5E4ZPLaDUxwcvHMZfE2JLxwWjbWV", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "20101455967", + "decimals": 6, + "uiAmount": 20101.455967, + "uiAmountString": "20101.455967" + } + }, + { + "accountIndex": 4, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "20000000000", + "decimals": 6, + "uiAmount": 20000, + "uiAmountString": "20000" + } + }, + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "Dwje1WjgG2DB2cen7ABFLfJwsimzDYgx9dnHbzeL23U5", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 113, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 7, + "numRequiredSignatures": 1 + }, + "staticAccountKeys": [ + "Hqgqbc3gnBj21DQsRdzfNkYmgPD1n1p7SfFxvAbdXwmf", + "DF7VbsSLSqQq2JYT5E4ZPLaDUxwcvHMZfE2JLxwWjbWV", + "CodmQvMvgUNP2LUMrDonCBvK3Sr3GcQ48k8LB5ryuwxC", + "8HTUYRpoysrabnXj4CgqnSq71oGNnwi8YiQcAypCYTy2", + "3G82KZPnMVmqpvArmXf9Gr6ZjXAx9AR7u9LH7PSej3YU", + "FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF", + "8FkGHGFqGUEi6brD4uWN3dwPW56eg2pqj9zXchtsqqJe", + "SwapLayer1111111111111111111111111111111111", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "TokenRouter11111111111111111111111111111111", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "11111111111111111111111111111111" + ], + "recentBlockhash": "27ydpkzi361MWHsUCsjRV7NdidnBa2bN9Tsrq6parHmL", + "compiledInstructions": [ + { + "programIdIndex": 7, + "accountKeyIndexes": [0, 0, 8, 1, 2, 9, 0, 10, 3, 4, 5, 6, 11, 12, 13], + "data": { + "type": "Buffer", + "data": [201, 115, 7, 40, 86, 54, 76, 213] + } + } + ], + "addressTableLookups": [] + }, + "signatures": [ + "4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json b/watcher/mock/api.devnet.solana.com/transaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json new file mode 100644 index 00000000..8cfe852d --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x.json @@ -0,0 +1,500 @@ +{ + "blockTime": 1723586654, + "meta": { + "computeUnitsConsumed": 259511, + "err": null, + "fee": 5000, + "innerInstructions": [ + { + "index": 1, + "instructions": [ + { + "accounts": [0, 3], + "data": "11118em6u9fB1NgUvo9tNm1C1LqowY9KsaYbNpP2oUUVfDTGPfzjFcjKt4QcffEg5cRL3q", + "programIdIndex": 27, + "stackHeight": 2 + }, + { + "accounts": [0, 4, 3, 23, 27, 25], + "data": "1", + "programIdIndex": 26, + "stackHeight": 2 + }, + { + "accounts": [23], + "data": "84eT", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [0, 4], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 27, + "stackHeight": 3 + }, + { + "accounts": [4], + "data": "P", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [4, 23], + "data": "6V8s5bWtii7XgXzy8crQLjPJXX2xqkmQMQ5XHbfe3o5Xd", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [0, 5, 3, 24, 27, 25], + "data": "1", + "programIdIndex": 26, + "stackHeight": 2 + }, + { + "accounts": [24], + "data": "84eT", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [0, 5], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 27, + "stackHeight": 3 + }, + { + "accounts": [5], + "data": "P", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [5, 24], + "data": "6V8s5bWtii7XgXzy8crQLjPJXX2xqkmQMQ5XHbfe3o5Xd", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [20, 0, 1, 4, 2, 25], + "data": "YwCdjauLTfC", + "programIdIndex": 22, + "stackHeight": 2 + }, + { + "accounts": [2, 4, 1], + "data": "3czKsMM2N34s", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [2, 0, 1], + "data": "A", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [ + 25, 10, 3, 4, 6, 7, 5, 23, 24, 11, 11, 12, 11, 28, 25, 10, 14, 6, 15, 7, 16, 17, 18, + 19, 29 + ], + "data": "7UR2vxkjV6WhTsNRPj5gbkcfssaMjMaDK8uvuSXRWP6btiLLbfM", + "programIdIndex": 11, + "stackHeight": 2 + }, + { + "accounts": [4, 23, 6, 3], + "data": "htojvZk1p56mB", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [25, 10, 14, 6, 15, 7, 16, 17, 18, 19, 29], + "data": "59p8WydnSZtUzVfUMCeuS5EyQF9DMp2p2n5N94T23vMLoX7mmRQXdSnkNU", + "programIdIndex": 28, + "stackHeight": 3 + }, + { + "accounts": [6, 15, 10], + "data": "3czKsMM2N34s", + "programIdIndex": 25, + "stackHeight": 4 + }, + { + "accounts": [16, 7, 14], + "data": "3Jy6HZcFcrJB", + "programIdIndex": 25, + "stackHeight": 4 + }, + { + "accounts": [12], + "data": "QMqFu4fYGGeUEysFnenhAvDWgqp1W7DbrMv3z8JcyrP4Bu3Yyyj7irLW76wEzMiFqkMXcsUXJG1WLwjdCWzNTL6957kdfWSD7SPFG2av5YHKd7krJUq6enaJyM49iQAZ9AxQkPmhmooHfEoy9kSyXiyZiXzjAWRgXVAHjxP5RgWZjgK", + "programIdIndex": 11, + "stackHeight": 3 + }, + { + "accounts": [7, 24, 5, 10], + "data": "gXGHyRsEKTZWd", + "programIdIndex": 25, + "stackHeight": 3 + }, + { + "accounts": [4, 0, 3], + "data": "A", + "programIdIndex": 25, + "stackHeight": 2 + } + ] + } + ], + "loadedAddresses": { + "readonly": [ + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "TokenRouter11111111111111111111111111111111", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", + "11111111111111111111111111111111", + "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "3NxDBWt55DZnEwwQ2bhQ3xWG8Jd18TdUXAG4Zdr7jDai" + ], + "writable": [ + "BQH11JvNJNkwPsuYKrf5KCJhMpNKYsTaNwoaV4VrHh4", + "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "4oY1eVHJrt7ywuFoQnAZwto4qcQip1QhYMAhD11PU4QL", + "4dSG9tKHZR4CAictyEnH9XuGZyKapodWXq5xyg7uFwE9", + "FqFkv2xNNCUyx1RYV61pGZ9AMzGfgcD8uXC9zCF5JKnR", + "8kZSTVuV7C4GD9ZVR4wDtRSXv1SvsSQPfqUbthueRNGV", + "2B48L1ACPvVb67UKeSMkUGdzrnhvNMm6pFt2nspGKxs4" + ] + }, + "logMessages": [ + "Program ComputeBudget111111111111111111111111111111 invoke [1]", + "Program ComputeBudget111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteSwapPayload", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 702229 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 695589 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 691705 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 25044 of 712204 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [2]", + "Program log: Create", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: GetAccountDataSize", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1622 of 664864 compute units", + "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program 11111111111111111111111111111111 invoke [3]", + "Program 11111111111111111111111111111111 success", + "Program log: Initialize the associated token account", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeImmutableOwner", + "Program log: Please upgrade to SPL Token 2022 for immutable owner support", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 658224 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 654340 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 22044 of 671839 compute units", + "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 628776 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 621812 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20430 of 638629 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program log: Override in_amount: 1000000000, quoted_out_amount: 1000036525, slippage_bps: 50", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [2]", + "Program log: Instruction: SharedAccountsRoute", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 586209 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [3]", + "Program log: Instruction: Swap", + "Program log: fee_growth: 21931529", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 530342 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [4]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 522640 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 49190 of 564439 compute units", + "Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [3]", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 483 of 512579 compute units", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: TransferChecked", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6201 of 507249 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 101060 of 600726 compute units", + "Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 IO/YCwAAAAA=", + "Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 495137 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program SwapLayer1111111111111111111111111111111111 consumed 259361 of 749850 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499995992976573250, 0, 0, 2331600, 0, 2039280, 2039280, 2039280, 1, 1141440, 0, 1141440, 0, + 2039280, 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 2067120, 1419840, 1141440, + 14801671630, 50202380623, 929020800, 731913600, 1, 1141440, 0 + ], + "postTokenBalances": [ + { + "accountIndex": 5, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "198766368", + "decimals": 6, + "uiAmount": 198.766368, + "uiAmountString": "198.766368" + } + }, + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 7, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 13, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HD7nTtFsw1CmjvmYyB5Qit7ycKgtqmGu79ENSWuh2iw9", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "5760000", + "decimals": 6, + "uiAmount": 5.76, + "uiAmountString": "5.76" + } + }, + { + "accountIndex": 15, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9583457949331", + "decimals": 6, + "uiAmount": 9583457.949331, + "uiAmountString": "9583457.949331" + } + }, + { + "accountIndex": 16, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2714805142465", + "decimals": 6, + "uiAmount": 2714805.142465, + "uiAmountString": "2714805.142465" + } + } + ], + "preBalances": [ + 499995992975882240, 3027600, 2039280, 0, 0, 0, 2039280, 2039280, 1, 1141440, 0, 1141440, 0, + 2039280, 8369767, 2039280, 2039280, 120407360, 70407360, 70407360, 2067120, 1419840, 1141440, + 14801671630, 50202380623, 929020800, 731913600, 1, 1141440, 0 + ], + "preTokenBalances": [ + { + "accountIndex": 2, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "198749580", + "decimals": 6, + "uiAmount": 198.74958, + "uiAmountString": "198.74958" + } + }, + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 7, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "0", + "decimals": 6, + "uiAmount": null, + "uiAmountString": "0" + } + }, + { + "accountIndex": 13, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "HD7nTtFsw1CmjvmYyB5Qit7ycKgtqmGu79ENSWuh2iw9", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "5760000", + "decimals": 6, + "uiAmount": 5.76, + "uiAmountString": "5.76" + } + }, + { + "accountIndex": 15, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "9583259199751", + "decimals": 6, + "uiAmount": 9583259.199751, + "uiAmountString": "9583259.199751" + } + }, + { + "accountIndex": 16, + "mint": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", + "owner": "4fuUiYxTQ6QCrdSq9ouBYcTM7bqSwYTSyLueGZLTy4T4", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "2715003908833", + "decimals": 6, + "uiAmount": 2715003.908833, + "uiAmountString": "2715003.908833" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 605, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 0, + "numReadonlyUnsignedAccounts": 5, + "numRequiredSignatures": 1 + }, + "staticAccountKeys": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J", + "7STSZJv1cu7JC9fB74rgMXyW9ZJcbtnF3Za9dJG7mXSm", + "91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f", + "DdtioCBKaji8HaVjQ9Nan2qeRYPrN1w3JLoLYUguva7g", + "4QxYjfHmxMuiEv3RudpzJD1pWsUf5Ubm9si22vU5fEwi", + "DVCeozFGbe6ew3eWTnZByjHeYqTq1cvbrB7JJhkLxaRJ", + "HkphEpUqnFBxBuCPEq5j1HA9L8EwmsmRT6UcFKziptM1", + "ComputeBudget111111111111111111111111111111", + "SwapLayer1111111111111111111111111111111111", + "GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ", + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4", + "D8cy77BBepLMngZx6ZukaTff5hCt1HrWyKk3Hnd9oitf" + ], + "recentBlockhash": "6es7tXGTJeSNiyAhMUN7xqGbjmoQyFsTsrb8N5mh8ViP", + "compiledInstructions": [ + { + "programIdIndex": 8, + "accountKeyIndexes": [], + "data": { + "type": "Buffer", + "data": [2, 176, 113, 11, 0] + } + }, + { + "programIdIndex": 9, + "accountKeyIndexes": [ + 0, 20, 1, 2, 21, 0, 22, 3, 4, 5, 13, 23, 24, 25, 25, 26, 27, 25, 10, 3, 4, 6, 7, 5, 23, + 24, 11, 11, 12, 11, 28, 25, 10, 14, 6, 15, 7, 16, 17, 18, 19, 29 + ], + "data": { + "type": "Buffer", + "data": [ + 82, 168, 4, 109, 220, 211, 26, 20, 37, 0, 0, 0, 193, 32, 155, 51, 65, 214, 156, 129, + 0, 1, 0, 0, 0, 17, 1, 100, 0, 1, 0, 202, 154, 59, 0, 0, 0, 0, 173, 88, 155, 59, 0, 0, + 0, 0, 50, 0, 0 + ] + } + } + ], + "addressTableLookups": [ + { + "accountKey": "2aTqsSkPJs1RtnAaEP6pF16a9Tn8ioQNvP6hn9msatuC", + "readonlyIndexes": [0, 2, 30, 27, 6, 26, 4, 10], + "writableIndexes": [1] + }, + { + "accountKey": "GxS6FiQ3mNnAar9HGQ6mxP7t6FcwmHkU7peSeQDUHmpN", + "readonlyIndexes": [176, 195], + "writableIndexes": [191, 189, 190, 193, 194, 197] + } + ] + }, + "signatures": [ + "4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x" + ] + }, + "version": 0 +} diff --git a/watcher/mock/api.devnet.solana.com/transaction_eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP.json b/watcher/mock/api.devnet.solana.com/transaction_eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP.json new file mode 100644 index 00000000..5358d1b0 --- /dev/null +++ b/watcher/mock/api.devnet.solana.com/transaction_eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP.json @@ -0,0 +1,164 @@ +{ + "blockTime": 1723586601, + "meta": { + "computeUnitsConsumed": 64847, + "err": null, + "fee": 10000, + "innerInstructions": [ + { + "index": 0, + "instructions": [ + { + "accounts": [0, 5], + "data": "11116J1mMKUcau8VFWdYE8WJGE5iguSfdgYdXw3oa8AL2mABDNtinEawvWxcgEob53HvT9", + "programIdIndex": 13, + "stackHeight": 2 + }, + { + "accounts": [0, 6], + "data": "11119os1e9qSs2u7TsThXqkBSRVFxhmYaFKFZ1waB2X7armDmvK3p5GmLdUxYdg3h7QSrL", + "programIdIndex": 13, + "stackHeight": 2 + }, + { + "accounts": [6, 11], + "data": "6aLQuSWKRkWk8qiVbEqk2T55SXvbbAbxiBMa4FoJ1ELMh", + "programIdIndex": 12, + "stackHeight": 2 + }, + { + "accounts": [8, 4, 2, 6, 3, 12], + "data": "YwCdjauLTfC", + "programIdIndex": 10, + "stackHeight": 2 + }, + { + "accounts": [3, 6, 2], + "data": "3DZprdvKLnc7", + "programIdIndex": 12, + "stackHeight": 3 + }, + { + "accounts": [3, 4, 2], + "data": "A", + "programIdIndex": 12, + "stackHeight": 3 + } + ] + } + ], + "loadedAddresses": { + "readonly": [], + "writable": [] + }, + "logMessages": [ + "Program SwapLayer1111111111111111111111111111111111 invoke [1]", + "Program log: Instruction: CompleteTransferPayload", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program 11111111111111111111111111111111 invoke [2]", + "Program 11111111111111111111111111111111 success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", + "Program log: Instruction: InitializeAccount3", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4241 of 171514 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 invoke [2]", + "Program log: Instruction: ConsumePreparedFill", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: Transfer", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 149675 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]", + "Program log: Instruction: CloseAccount", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3015 of 142711 compute units", + "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", + "Program TokenRouter11111111111111111111111111111111 consumed 20430 of 159528 compute units", + "Program TokenRouter11111111111111111111111111111111 success", + "Program SwapLayer1111111111111111111111111111111111 consumed 64847 of 200000 compute units", + "Program SwapLayer1111111111111111111111111111111111 success" + ], + "postBalances": [ + 499999994313449900, 1380000000, 0, 0, 4760640, 2248080, 2039280, 1141440, 2067120, 1419840, + 1141440, 14801671630, 929020800, 1 + ], + "postTokenBalances": [ + { + "accountIndex": 6, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "ECiEWJndTfUJaEQ59gYgy6e4331mkrh1USQCmDcBwBvj", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "6900000000", + "decimals": 6, + "uiAmount": 6900, + "uiAmountString": "6900" + } + } + ], + "preBalances": [ + 499999994317747260, 1380000000, 2721360, 2039280, 0, 0, 0, 1141440, 2067120, 1419840, 1141440, + 14801671630, 929020800, 1 + ], + "preTokenBalances": [ + { + "accountIndex": 3, + "mint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "owner": "8jwioGKqu23fBLMeVdNfMTm41Wnv3TKVKQmA1Ga9518J", + "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "uiTokenAmount": { + "amount": "6900000000", + "decimals": 6, + "uiAmount": 6900, + "uiAmountString": "6900" + } + } + ], + "rewards": [], + "status": { + "Ok": null + } + }, + "slot": 149, + "transaction": { + "message": { + "header": { + "numReadonlySignedAccounts": 1, + "numReadonlyUnsignedAccounts": 7, + "numRequiredSignatures": 2 + }, + "staticAccountKeys": [ + "pFCBP4bhqdSsrWUVTgqhPsLrfEdChBK17vgFM7TxjxQ", + "2mm9H91zrubibdM43RSvDxZV8nGsVqmHYXQFwWYJF87Z", + "8jwioGKqu23fBLMeVdNfMTm41Wnv3TKVKQmA1Ga9518J", + "8twwMXfGvwgvdSvnBRX29YeMDPiJJvQ7fNjMoCZ3frEk", + "Fs9SFNPwzfM8J1MjjSAME1Vsyshvp58TYvgU9WT8VxwY", + "ECiEWJndTfUJaEQ59gYgy6e4331mkrh1USQCmDcBwBvj", + "DeaMAkhEJgCVmH2abZBf1ioFX8C5rXqrfHwYM2JJq62z", + "SwapLayer1111111111111111111111111111111111", + "BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV", + "CewK6bBB9cPVGSVm5pbe7oaouZrimzXJETCkuGyeg1i4", + "TokenRouter11111111111111111111111111111111", + "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", + "11111111111111111111111111111111" + ], + "recentBlockhash": "oaoSvEKNKSms92RjP1hfFBGaqzVbxtKE7uwdXuBMWQg", + "compiledInstructions": [ + { + "programIdIndex": 7, + "accountKeyIndexes": [0, 1, 8, 2, 3, 9, 4, 10, 5, 6, 11, 12, 13], + "data": { + "type": "Buffer", + "data": [14, 221, 53, 29, 211, 192, 38, 178] + } + } + ], + "addressTableLookups": [] + }, + "signatures": [ + "eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP", + "2YgdE792Ujh452S1P3ou4excNvzcUJqaQm8RC93qYuke3h2NfAv2gQCY8cGheVZ4EcVgTrBWPr7BiNKw2ewbXMq4" + ] + }, + "version": 0 +} diff --git a/watcher/src/fastTransfer/consts.ts b/watcher/src/fastTransfer/consts.ts index 9efd8fe2..779ff3c9 100644 --- a/watcher/src/fastTransfer/consts.ts +++ b/watcher/src/fastTransfer/consts.ts @@ -6,11 +6,14 @@ export type FastTransferContracts = 'MatchingEngine' | 'TokenRouter' | 'USDCMint export type MatchingEngineProgramId = 'mPydpGUWxzERTNpyvTKdvS7v8kvw5sgwfiP8WQFrXVS'; export type TokenRouterProgramId = 'tD8RmtdcV7bzBeuFgyrFc8wvayj988ChccEzRQzo6md'; export type USDCMintAddress = '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU'; +export type SwapLayerProgramId = 'SwapLayer1111111111111111111111111111111111'; export interface SolanaContractAddresses { MatchingEngine: MatchingEngineProgramId; TokenRouter: TokenRouterProgramId; USDCMint: USDCMintAddress; + // Devnet has no swap layer as they need the mainnet quotes from Uniswap + SwapLayer?: SwapLayerProgramId; } export interface EthereumContractAddresses { diff --git a/watcher/src/fastTransfer/swapLayer/parser.ts b/watcher/src/fastTransfer/swapLayer/parser.ts index baae874c..a4b100bf 100644 --- a/watcher/src/fastTransfer/swapLayer/parser.ts +++ b/watcher/src/fastTransfer/swapLayer/parser.ts @@ -1,5 +1,5 @@ import { ethers } from 'ethers'; -import { RedeemSwap } from '../types'; +import { TransferCompletion } from '../types'; import { parseVaa } from '@wormhole-foundation/wormhole-monitor-common'; class SwapLayerParser { @@ -15,7 +15,10 @@ class SwapLayerParser { ]); } - async parseSwapLayerTransaction(txHash: string, blockTime: number): Promise { + async parseSwapLayerTransaction( + txHash: string, + blockTime: number + ): Promise { const receipt = await this.provider.getTransactionReceipt(txHash); const tx = await this.provider.getTransaction(txHash); @@ -67,7 +70,7 @@ class SwapLayerParser { }; } - async getFTSwapInRange(fromBlock: number, toBlock: number): Promise { + async getFTSwapInRange(fromBlock: number, toBlock: number): Promise { const filter = { address: this.swapLayerAddress, fromBlock, @@ -87,7 +90,7 @@ class SwapLayerParser { }) ); - return results.filter((result): result is RedeemSwap => result !== null); + return results.filter((result): result is TransferCompletion => result !== null); } private async fetchBlockTime( diff --git a/watcher/src/fastTransfer/swapLayer/solParser.ts b/watcher/src/fastTransfer/swapLayer/solParser.ts new file mode 100644 index 00000000..272d912c --- /dev/null +++ b/watcher/src/fastTransfer/swapLayer/solParser.ts @@ -0,0 +1,383 @@ +import { + Connection, + ParsedMessageAccount, + PublicKey, + VersionedTransactionResponse, + MessageCompiledInstruction, + ParsedAccountData, +} from '@solana/web3.js'; +import { BorshCoder } from '@coral-xyz/anchor'; +import { Network } from '@wormhole-foundation/sdk-base'; +import { FAST_TRANSFER_CONTRACTS } from '../consts'; +import SWAP_LAYER_IDL from '../../idls/swap_layer.json'; +import { TransferCompletion } from '../types'; +import { + blockTimeToDate, + getTokenBalanceChange, +} from '@wormhole-foundation/wormhole-monitor-common'; + +const ACCOUNT_NOT_FOUND = 'Account not found'; +const BLOCKTIME_NOT_FOUND = 'Blocktime not found'; +const INSUFFICIENT_ACCOUNTS = 'Account length insufficient'; + +export class SwapLayerParser { + private readonly swapLayerBorshCoder: BorshCoder; + private readonly SWAP_LAYER_PROGRAM_ID: PublicKey; + private readonly USDC_MINT: PublicKey; + private readonly connection: Connection; + + constructor(network: Network, connection: Connection) { + this.connection = connection; + this.SWAP_LAYER_PROGRAM_ID = new PublicKey( + FAST_TRANSFER_CONTRACTS[network]?.Solana?.SwapLayer || + 'SwapLayer1111111111111111111111111111111111' + ); + this.USDC_MINT = new PublicKey( + FAST_TRANSFER_CONTRACTS[network]?.Solana?.USDCMint || + 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v' + ); + this.swapLayerBorshCoder = new BorshCoder(SWAP_LAYER_IDL as any); + } + + // === main logic === + + /** + * Processes a single transaction to parse relevant instructions. + * + * @param transaction - The Solana transaction response containing the instruction. + * + * @returns A `TransferCompletion` object containing parsed details from the transaction, + * or `null` if no relevant instructions were found. + */ + private async processTransaction( + transaction: VersionedTransactionResponse + ): Promise { + const sig = transaction.transaction.signatures[0]; + const programInstructions = this.getProgramInstructions(transaction); + + for (const { ix } of programInstructions) { + const decoded = this.swapLayerBorshCoder.instruction.decode(Buffer.from(ix.data)); + if (!decoded) continue; + + try { + switch (decoded.name) { + case 'complete_swap_direct': + case 'complete_swap_relay': + case 'complete_swap_payload': + return await this.parseSwapInstruction(transaction, ix, decoded.name); + + case 'complete_transfer_direct': + case 'complete_transfer_relay': + case 'complete_transfer_payload': + return await this.parseTransferInstruction(transaction, ix, decoded.name); + + case 'release_inbound': + return await this.parseReleaseInbound(transaction, ix, decoded.name); + + default: + // we will not log when there are unknown instructions to prevent log congestion + continue; + } + } catch (error) { + console.error(`Error processing ${decoded.name} in transaction ${sig}:`, error); + // Continue to the next instruction if there's an error + continue; + } + } + + return null; + } + + /** + * Fetches and processes a single transaction by its signature. This is only used for testing for now. + * + * @param signature - The signature of the transaction to fetch and process. + * + * @returns A `TransferCompletion` object containing parsed details from the transaction, + * or `null` if no relevant instructions were found. + */ + async parseTransaction(signature: string): Promise { + const transaction = await this.connection.getTransaction(signature, { + maxSupportedTransactionVersion: 0, + }); + if (!transaction) return null; + + return this.processTransaction(transaction); + } + + /** + * Fetches and processes multiple transactions in a batch. This should be used in production env for better optimization. + * + * @param signatures - An array of transaction signatures to fetch and process. + * + * @returns An array of `TransferCompletion` objects containing parsed details from each transaction. + * If a transaction doesn't contain relevant instructions or an error occurs, it will be omitted from the result array. + */ + async parseTransactions(signatures: string[]): Promise { + const transactions = await this.connection.getTransactions(signatures, { + maxSupportedTransactionVersion: 0, + }); + + // Filter out null transactions + const nonNullTransactions = transactions.filter( + (tx): tx is VersionedTransactionResponse => tx !== null + ); + + // Process each transaction and filter out null results + const promises = nonNullTransactions.map(async (tx) => await this.processTransaction(tx)); + + const results = await Promise.all(promises); + + // Filter out null results from the processed transactions + return results.filter((res): res is TransferCompletion => res !== null); + } + + // === parsing logic === + + /** + * Parses a swap instruction from a Solana transaction + * + * @param transaction - The Solana transaction response containing the instruction. + * @param ix - The compiled instruction to parse within the transaction. + * @param instructionName - The type of swap instruction, which can be one of: + * `complete_swap_direct`, `complete_swap_payload`, `complete_swap_relay` + * + * @returns A `TransferCompletion` object containing details about the swap, such as + * recipient, fill account, output token, and amount, or `null` if the instruction + * cannot be processed. + * + * @throws Will throw an error if the transaction block time is not found, the number of + * accounts in the transaction is insufficient, or if the required account information + * (recipient or fill account) is missing. + */ + private async parseSwapInstruction( + transaction: VersionedTransactionResponse, + ix: MessageCompiledInstruction, + instructionName: 'complete_swap_direct' | 'complete_swap_payload' | 'complete_swap_relay' + ): Promise { + const sig = transaction.transaction.signatures[0]; + const blockTime = this.throwIfBlocktimeNotFound(transaction); + + const accounts = await this.getAccountsByParsedTransaction(sig); + const minRequiredAccounts = 19; + + if (accounts.length < minRequiredAccounts) { + throw new Error(`${INSUFFICIENT_ACCOUNTS} for ${instructionName} in ${sig}`); + } + + const fillAccountIndex = 2; + const stagedInboundIndex = 7; + const dstMintIndex = 12; + const recipientIndex = 18; + + const recipient = accounts[ix.accountKeyIndexes[recipientIndex]].pubkey.toBase58(); + const outputToken = accounts[ix.accountKeyIndexes[dstMintIndex]].pubkey.toBase58(); + + const tokenBalance = + instructionName !== 'complete_swap_payload' + ? getTokenBalanceChange(transaction, recipient, outputToken) + : 0n; + + const stagedInbound = + instructionName === 'complete_swap_payload' + ? accounts[ix.accountKeyIndexes[stagedInboundIndex]].pubkey.toBase58() + : undefined; + + return { + fill_id: accounts[ix.accountKeyIndexes[fillAccountIndex]].pubkey.toBase58(), + output_token: outputToken, + recipient: recipient, + redeem_time: blockTimeToDate(blockTime), + output_amount: tokenBalance, + staged_inbound: stagedInbound, + tx_hash: sig, + relaying_fee: 0n, + }; + } + + /** + * Parses a transfer instruction from a Solana transaction + * + * @param transaction - The Solana transaction response containing the instruction. + * @param ix - The compiled instruction to parse within the transaction. + * @param instructionName - The type of transfer instruction, which can be one of: + * 'complete_transfer_direct', 'complete_transfer_payload', or 'complete_transfer_relay'. + * + * @returns A `TransferCompletion` object containing details about the transfer, such as + * recipient, fill account, output token, and amount, or `null` if the instruction + * configuration is not found. + * + * @throws Will throw an error if the transaction block time is not found, the number of + * accounts in the transaction is insufficient, or if the required account information + * (recipient or fill account) is missing. + */ private async parseTransferInstruction( + transaction: VersionedTransactionResponse, + ix: MessageCompiledInstruction, + instructionName: + | 'complete_transfer_direct' + | 'complete_transfer_payload' + | 'complete_transfer_relay' + ): Promise { + const sig = transaction.transaction.signatures[0]; + if (!transaction.blockTime) { + throw new Error(`Transaction block time not found: ${sig}`); + } + + const instructionConfig = this.getInstructionConfig(instructionName); + + const { fillAccountIndex, recipientIndex } = instructionConfig; + + if (ix.accountKeyIndexes.length <= recipientIndex) { + throw new Error(`${INSUFFICIENT_ACCOUNTS} for ${instructionName} in ${sig}`); + } + + const recipient = this.getAccountKey(transaction, ix, recipientIndex); + if (!recipient) { + throw new Error( + `${ACCOUNT_NOT_FOUND}: recipient for ${instructionName} in transaction ${sig}` + ); + } + + const tokenBalance = + instructionName !== 'complete_transfer_payload' + ? getTokenBalanceChange(transaction, recipient.toBase58(), this.USDC_MINT.toBase58()) + : 0n; + + const fillAccount = this.getAccountKey(transaction, ix, fillAccountIndex); + if (!fillAccount) { + throw new Error(`${ACCOUNT_NOT_FOUND}: fill for ${instructionName} in transaction ${sig}`); + } + + return { + recipient: recipient.toBase58(), + tx_hash: sig, + relaying_fee: 0n, + fill_id: fillAccount.toBase58(), + output_token: this.USDC_MINT.toBase58(), + redeem_time: blockTimeToDate(transaction.blockTime), + output_amount: tokenBalance, + staged_inbound: + instructionName === 'complete_transfer_payload' + ? this.getAccountKey(transaction, ix, 8)?.toBase58() + : undefined, + }; + } + + /** + * Parses a 'release_inbound' instruction from a Solana transaction + * + * @param transaction - The Solana transaction response containing the instruction. + * @param ix - The compiled instruction to parse within the transaction. + * @param instructionName - The name of the instruction, which can be of `release_inbound` + * + * @returns A `TransferCompletion` object containing details about the release inbound process, + * such as recipient, output token, and amount, or `null` if the instruction cannot be processed. + * + * @throws Will throw an error if the transaction block time is not found, the number of + * accounts in the transaction is insufficient, or if the required account information + * (destination token account, mint) is missing or not in the expected format. + */ + private async parseReleaseInbound( + transaction: VersionedTransactionResponse, + ix: MessageCompiledInstruction, + instructionName: string + ): Promise { + const sig = transaction.transaction.signatures[0]; + const blockTime = this.throwIfBlocktimeNotFound(transaction); + + if (ix.accountKeyIndexes.length < 6) { + throw new Error(`${INSUFFICIENT_ACCOUNTS} for ${instructionName} in ${sig}`); + } + + const stagedInboundIndex = 2; + const dstTokenAccIndex = 3; + const mintIndex = 5; + + const dstTokenAccount = this.getAccountKey(transaction, ix, dstTokenAccIndex); + if (!dstTokenAccount) { + throw new Error(`${ACCOUNT_NOT_FOUND}: dstTokenAccount for ${instructionName} in {sig}`); + } + + const parsedTA = await this.connection.getParsedAccountInfo(dstTokenAccount); + + if (!parsedTA.value || !('parsed' in parsedTA.value.data)) { + throw new Error('Unable to parse release_inbound token account owner.'); + } + + const parsedData = parsedTA.value.data as ParsedAccountData; + const recipient = new PublicKey(parsedData.parsed.info.owner); + const mint = this.getAccountKey(transaction, ix, mintIndex); + + if (!mint) { + throw new Error(`${ACCOUNT_NOT_FOUND}: mint for ${instructionName} in {sig}`); + } + + return { + tx_hash: sig, + relaying_fee: 0n, + fill_id: '', + output_token: mint.toBase58(), + recipient: recipient.toBase58(), + redeem_time: blockTimeToDate(blockTime), + output_amount: getTokenBalanceChange(transaction, recipient.toBase58(), mint.toBase58()), + staged_inbound: this.getAccountKey(transaction, ix, stagedInboundIndex)?.toBase58(), + }; + } + + // === helper functions for sol parser === + + private getProgramInstructions(transaction: VersionedTransactionResponse) { + const message = transaction.transaction.message; + const programIdIndex = message.staticAccountKeys.findIndex((i) => + i.equals(this.SWAP_LAYER_PROGRAM_ID) + ); + return message.compiledInstructions + .map((ix, seq) => ({ ix, seq })) + .filter((i) => i.ix.programIdIndex === programIdIndex); + } + + private getAccountKey( + transaction: VersionedTransactionResponse, + ix: MessageCompiledInstruction, + accountIndex: number + ): PublicKey | null { + const accountKeyIndex = ix.accountKeyIndexes[accountIndex]; + return accountKeyIndex !== undefined + ? transaction.transaction.message.getAccountKeys().staticAccountKeys[accountKeyIndex] + : null; + } + + private getInstructionConfig( + instructionName: + | 'complete_transfer_direct' + | 'complete_transfer_payload' + | 'complete_transfer_relay' + ) { + switch (instructionName) { + case 'complete_transfer_direct': + return { fillAccountIndex: 1, recipientIndex: 8 }; + case 'complete_transfer_relay': + return { fillAccountIndex: 2, recipientIndex: 10 }; + case 'complete_transfer_payload': + return { fillAccountIndex: 3, recipientIndex: 10 }; + } + } + + async getAccountsByParsedTransaction(txHash: string): Promise { + const tx = await this.connection.getParsedTransaction(txHash, { + maxSupportedTransactionVersion: 0, + }); + + if (!tx) { + throw new Error(`[getAccountsByParsedTransaction] unable to get transaction ${txHash}`); + } + return tx.transaction.message.accountKeys; + } + + throwIfBlocktimeNotFound(transaction: VersionedTransactionResponse): number { + if (!transaction.blockTime) + throw new Error(`${BLOCKTIME_NOT_FOUND}: ${transaction.transaction.signatures[0]}`); + + return transaction.blockTime; + } +} diff --git a/watcher/src/fastTransfer/types.ts b/watcher/src/fastTransfer/types.ts index b3926833..6a2412af 100644 --- a/watcher/src/fastTransfer/types.ts +++ b/watcher/src/fastTransfer/types.ts @@ -145,7 +145,7 @@ export type AuctionUpdatedEvent = { data: AuctionUpdated; }; -export type RedeemSwap = { +export type TransferCompletion = { tx_hash: string; recipient: string; output_token: string; @@ -153,4 +153,6 @@ export type RedeemSwap = { relaying_fee: bigint; redeem_time: Date; fill_id: string; + // on Solana Swap Layer, this acts as a link between complete_{transfer, swap}_payload and release_inbound + staged_inbound?: string; }; diff --git a/watcher/src/idls/swap_layer.json b/watcher/src/idls/swap_layer.json new file mode 100644 index 00000000..932c12b9 --- /dev/null +++ b/watcher/src/idls/swap_layer.json @@ -0,0 +1,2399 @@ +{ + "address": "SwapLayer1111111111111111111111111111111111", + "metadata": { + "name": "swap_layer", + "version": "0.0.0", + "spec": "0.1.0", + "description": "Created with Anchor" + }, + "instructions": [ + { + "name": "add_peer", + "docs": [ + "Adds a peer to the swap layer. The peer is identified by the `chain` and", + "`address` fields. The `relay_params` field is used to configure the relay", + "parameters for the peer (i.e., the gas dropoff and relaying fee) as well", + "as the execution parameters for the peer (i.e., chain specific execution costs).", + "", + "# Arguments", + "", + "* `ctx` - The context for adding the peer.", + "* `args` - The arguments for adding the peer." + ], + "discriminator": [165, 134, 139, 216, 120, 149, 247, 255], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "admin", + "accounts": [ + { + "name": "owner_or_assistant", + "signer": true + }, + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + } + ] + }, + { + "name": "peer", + "writable": true + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "args", + "type": { + "defined": { + "name": "AddPeerArgs" + } + } + } + ] + }, + { + "name": "cancel_ownership_transfer_request", + "docs": [ + "Cancels an ownership transfer request.", + "", + "This instruction cancels an ownership transfer request by resetting the `pending_owner` field", + "in the `Custodian` account. This instruction can only be called by the `owner`.", + "", + "# Arguments", + "", + "* `ctx` - The context for canceling the ownership transfer request." + ], + "discriminator": [167, 61, 9, 35, 192, 41, 64, 178], + "accounts": [ + { + "name": "admin", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "custodian", + "writable": true + } + ] + } + ], + "args": [] + }, + { + "name": "close_staged_outbound", + "docs": [ + "Closes the `staged_outbound` account in the swap layer. This should be executed", + "when the user decides to cancel the staged outbound transfer. This could be the", + "result of a failed swap when initiating an outbound swap.", + "", + "# Arguments", + "", + "* `ctx` - The context for closing the staged outbound." + ], + "discriminator": [67, 69, 31, 1, 231, 243, 10, 12], + "accounts": [ + { + "name": "sender", + "docs": ["This signer must be the same one encoded in the prepared order."], + "writable": true, + "signer": true + }, + { + "name": "target_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "prepared_by", + "writable": true + }, + { + "name": "staged_outbound", + "docs": ["Staging for outbound transfer. This instruction closes this account."], + "writable": true + }, + { + "name": "staged_custody_token", + "docs": ["This custody token account will be closed by the end of the instruction."], + "writable": true + }, + { + "name": "sender_token", + "docs": ["already check that the sender is the same as the prepared_by account."], + "writable": true, + "optional": true + }, + { + "name": "token_program" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "complete_swap_direct", + "docs": [ + "Completes a direct swap in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for completing the swap.", + "* `instruction_data` - The instruction data for completing the swap." + ], + "discriminator": [40, 166, 72, 2, 172, 18, 32, 75], + "accounts": [ + { + "name": "complete_swap", + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "consume_swap_layer_fill", + "accounts": [ + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "fill", + "writable": true + }, + { + "name": "fill_custody_token", + "docs": [ + "Custody token account. This account will be closed at the end of this instruction. It just", + "acts as a conduit to allow this program to be the transfer initiator in the CCTP message.", + "" + ], + "writable": true + }, + { + "name": "source_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "beneficiary", + "writable": true + }, + { + "name": "token_router_program" + } + ] + }, + { + "name": "authority" + }, + { + "name": "src_swap_token", + "docs": [ + "Temporary swap token account to receive USDC from the prepared fill. This account will be", + "closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "dst_swap_token", + "docs": [ + "Temporary swap token account to receive destination mint after the swap. This account will", + "be closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "fee_recipient_token", + "docs": ["token account."], + "writable": true + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "dst_mint" + }, + { + "name": "token_program" + }, + { + "name": "dst_token_program" + }, + { + "name": "associated_token_program" + }, + { + "name": "system_program" + } + ] + }, + { + "name": "recipient_token", + "docs": [ + "Recipient associated token account. The recipient authority check is necessary to ensure", + "that the recipient is the intended recipient of the bridged tokens.", + "", + "If OutputToken::Other, this account will be deserialized to ensure that the recipient is", + "the owner of this token account.", + "" + ], + "writable": true + }, + { + "name": "recipient", + "docs": ["account must be encoded in the prepared fill."], + "writable": true + } + ], + "args": [ + { + "name": "instruction_data", + "type": "bytes" + } + ] + }, + { + "name": "complete_swap_payload", + "docs": [ + "Completes a payload swap in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for completing the swap.", + "* `instruction_data` - The instruction data for completing the swap." + ], + "discriminator": [82, 168, 4, 109, 220, 211, 26, 20], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "consume_swap_layer_fill", + "accounts": [ + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "fill", + "writable": true + }, + { + "name": "fill_custody_token", + "docs": [ + "Custody token account. This account will be closed at the end of this instruction. It just", + "acts as a conduit to allow this program to be the transfer initiator in the CCTP message.", + "" + ], + "writable": true + }, + { + "name": "source_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "beneficiary", + "writable": true + }, + { + "name": "token_router_program" + } + ] + }, + { + "name": "staged_inbound", + "writable": true + }, + { + "name": "src_swap_token", + "docs": [ + "Temporary swap token account to receive USDC from the prepared fill. This account will be", + "closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "dst_swap_token", + "docs": [ + "Temporary swap token account to receive destination mint after the swap. This account will", + "be closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "fee_recipient_token", + "docs": ["token account."], + "writable": true + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "dst_mint" + }, + { + "name": "token_program" + }, + { + "name": "dst_token_program" + }, + { + "name": "associated_token_program" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "instruction_data", + "type": "bytes" + } + ] + }, + { + "name": "complete_swap_relay", + "docs": [ + "Completes a relay swap in the swap layer. If gas dropoff is", + "specified, the program will transfer the requested number of lamports", + "from the payer to the relayer. In return, the program will transfer", + "the specified number of USDC to the `fee_recipient_token` account.", + "", + "# Arguments", + "", + "* `ctx` - The context for completing the swap.", + "* `instruction_data` - The instruction data for completing the swap." + ], + "discriminator": [108, 241, 108, 248, 142, 211, 140, 252], + "accounts": [ + { + "name": "complete_swap", + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "consume_swap_layer_fill", + "accounts": [ + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "fill", + "writable": true + }, + { + "name": "fill_custody_token", + "docs": [ + "Custody token account. This account will be closed at the end of this instruction. It just", + "acts as a conduit to allow this program to be the transfer initiator in the CCTP message.", + "" + ], + "writable": true + }, + { + "name": "source_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "beneficiary", + "writable": true + }, + { + "name": "token_router_program" + } + ] + }, + { + "name": "authority" + }, + { + "name": "src_swap_token", + "docs": [ + "Temporary swap token account to receive USDC from the prepared fill. This account will be", + "closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "dst_swap_token", + "docs": [ + "Temporary swap token account to receive destination mint after the swap. This account will", + "be closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "fee_recipient_token", + "docs": ["token account."], + "writable": true + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "dst_mint" + }, + { + "name": "token_program" + }, + { + "name": "dst_token_program" + }, + { + "name": "associated_token_program" + }, + { + "name": "system_program" + } + ] + }, + { + "name": "recipient_token", + "docs": [ + "Recipient associated token account. The recipient authority check is necessary to ensure", + "that the recipient is the intended recipient of the bridged tokens.", + "", + "If OutputToken::Other, this account will be deserialized to ensure that the recipient is", + "the owner of this token account.", + "" + ], + "writable": true + }, + { + "name": "recipient", + "docs": ["account must be encoded in the prepared fill."], + "writable": true + } + ], + "args": [ + { + "name": "instruction_data", + "type": "bytes" + } + ] + }, + { + "name": "complete_transfer_direct", + "docs": [ + "Completes a direct transfer in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for completing the direct transfer." + ], + "discriminator": [233, 87, 221, 31, 40, 175, 108, 183], + "accounts": [ + { + "name": "consume_swap_layer_fill", + "accounts": [ + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "fill", + "writable": true + }, + { + "name": "fill_custody_token", + "docs": [ + "Custody token account. This account will be closed at the end of this instruction. It just", + "acts as a conduit to allow this program to be the transfer initiator in the CCTP message.", + "" + ], + "writable": true + }, + { + "name": "source_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "beneficiary", + "writable": true + }, + { + "name": "token_router_program" + } + ] + }, + { + "name": "recipient_token_account", + "docs": [ + "Recipient associated token account. The recipient authority check", + "is necessary to ensure that the recipient is the intended recipient", + "of the bridged tokens. Mutable." + ], + "writable": true + }, + { + "name": "recipient", + "docs": [ + "recipient token account must be encoded in the prepared fill. This recipient", + "must also be encoded in the swap message." + ] + }, + { + "name": "token_program" + } + ], + "args": [] + }, + { + "name": "complete_transfer_payload", + "docs": [ + "Completes a payload transfer in the swap layer. This instruction stages", + "the inbound transfer and creates a custody token account for the inbound", + "transfer. The arbitrary payload is stored in the `staged_inbound` account.", + "", + "# Arguments", + "", + "* `ctx` - The context for completing the payload transfer." + ], + "discriminator": [14, 221, 53, 29, 211, 192, 38, 178], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "consume_swap_layer_fill", + "accounts": [ + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "fill", + "writable": true + }, + { + "name": "fill_custody_token", + "docs": [ + "Custody token account. This account will be closed at the end of this instruction. It just", + "acts as a conduit to allow this program to be the transfer initiator in the CCTP message.", + "" + ], + "writable": true + }, + { + "name": "source_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "beneficiary", + "writable": true + }, + { + "name": "token_router_program" + } + ] + }, + { + "name": "staged_inbound", + "docs": [ + "The staged inbound account that will be created to hold the arbitrary", + "payload that the recipient will receive. This account also warehouses", + "the seeds necessary to derive the staged custody token account." + ], + "writable": true + }, + { + "name": "staged_custody_token", + "docs": [ + "The staged custody token account that will be created to hold the USDC", + "that the recipient will receive. This account is derived from the staged", + "inbound account." + ], + "writable": true + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "token_program" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "complete_transfer_relay", + "docs": [ + "Completes a transfer with relay in the swap layer. If gas dropoff is", + "specified, the program will transfer the requested number of lamports", + "from the payer to the relayer. In return, the program will transfer", + "the specified number of USDC to the `fee_recipient_token` account.", + "", + "# Arguments", + "", + "* `ctx` - The context for completing the transfer relay." + ], + "discriminator": [201, 115, 7, 40, 86, 54, 76, 213], + "accounts": [ + { + "name": "payer", + "docs": [ + "The payer of the transaction. This could either be the recipient or a relayer." + ], + "writable": true, + "signer": true + }, + { + "name": "consume_swap_layer_fill", + "accounts": [ + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "fill", + "writable": true + }, + { + "name": "fill_custody_token", + "docs": [ + "Custody token account. This account will be closed at the end of this instruction. It just", + "acts as a conduit to allow this program to be the transfer initiator in the CCTP message.", + "" + ], + "writable": true + }, + { + "name": "source_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "beneficiary", + "writable": true + }, + { + "name": "token_router_program" + } + ] + }, + { + "name": "complete_token_account", + "writable": true + }, + { + "name": "recipient_token_account", + "docs": [ + "Recipient associated token account. The recipient authority check", + "is necessary to ensure that the recipient is the intended recipient", + "of the bridged tokens." + ], + "writable": true + }, + { + "name": "recipient", + "docs": [ + "transaction. This instruction verifies that the recipient key", + "passed in this context matches the intended recipient in the fill." + ], + "writable": true + }, + { + "name": "fee_recipient_token", + "writable": true + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "token_program" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "confirm_ownership_transfer_request", + "docs": [ + "Confirms an ownership transfer request.", + "", + "This instruction confirms the ownership transfer request and sets the new `owner` in the", + "`Custodian` account. This instruction can only be called by the `pending_owner`. The", + "`pending_owner` must be the same as the `pending_owner` in the `Custodian` account.", + "", + "# Arguments", + "", + "* `ctx` - The context for confirming the ownership transfer request." + ], + "discriminator": [118, 148, 109, 68, 201, 30, 139, 53], + "accounts": [ + { + "name": "pending_owner", + "docs": ["Must be the pending owner of the program set in the [`Custodian`]", "account."], + "signer": true + }, + { + "name": "custodian", + "writable": true + } + ], + "args": [] + }, + { + "name": "initialize", + "docs": [ + "Initializes the swap layer. This instruction must be called once after", + "the program is deployed. This instruction initializes the `Custodian`", + "account and sets the `owner`, `fee_recipient`, `owner_assistant`, and", + "`fee_updater` fields.", + "fields.", + "", + "# Arguments", + "", + "* `ctx` - The context for the initialization." + ], + "discriminator": [175, 175, 109, 31, 13, 152, 155, 237], + "accounts": [ + { + "name": "owner", + "docs": ["Owner of the program, who presumably deployed this program."], + "writable": true, + "signer": true + }, + { + "name": "custodian", + "docs": [ + "Sender Config account, which saves program data useful for other", + "instructions, specifically for outbound transfers. Also saves the payer", + "of the [`initialize`](crate::initialize) instruction as the program's", + "owner." + ], + "writable": true + }, + { + "name": "owner_assistant" + }, + { + "name": "fee_recipient" + }, + { + "name": "fee_recipient_token" + }, + { + "name": "fee_updater" + }, + { + "name": "program_data", + "docs": [ + "We use the program data to make sure this owner is the upgrade authority (the true owner,", + "who deployed this program)." + ], + "writable": true + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "initiate_swap_exact_in", + "docs": [ + "Initiates a swap with exact input in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for initiating the swap.", + "* `instruction_data` - The instruction data for initiating the swap." + ], + "discriminator": [92, 141, 83, 248, 20, 79, 30, 13], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "prepared_by", + "writable": true + }, + { + "name": "staged_outbound", + "docs": [ + "Staging for outbound transfer. This account has all of the instructions needed to initiate", + "the transfer.", + "", + "This account may be closed by the end of the instruction if there is no dust after the swap." + ], + "writable": true + }, + { + "name": "staged_custody_token", + "docs": [ + "This custody token account may be closed by the end of the instruction if there is no dust", + "after the swap." + ], + "writable": true + }, + { + "name": "usdc_refund_token" + }, + { + "name": "target_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "prepared_order", + "writable": true + }, + { + "name": "swap_authority" + }, + { + "name": "src_swap_token", + "docs": [ + "Temporary swap token account to receive source mint from the staged custody token. This", + "account will be closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "dst_swap_token", + "docs": [ + "Temporary swap token account to receive destination mint after the swap. This account will", + "be closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "src_mint", + "docs": ["This account must be verified as the source mint for the swap."] + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "token_router_custodian" + }, + { + "name": "target_router_endpoint" + }, + { + "name": "prepared_custody_token", + "writable": true + }, + { + "name": "token_router_program" + }, + { + "name": "associated_token_program" + }, + { + "name": "src_token_program" + }, + { + "name": "token_program" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "instruction_data", + "type": "bytes" + } + ] + }, + { + "name": "initiate_transfer", + "docs": [ + "Initiates a USDC transfer in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for initiating the transfer." + ], + "discriminator": [128, 229, 77, 5, 65, 234, 228, 75], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + }, + { + "name": "prepared_by", + "writable": true + }, + { + "name": "staged_outbound", + "docs": [ + "Staging for outbound transfer. This account has all of the instructions needed to initiate", + "the transfer.", + "", + "This account will be closed by the end of the instruction." + ], + "writable": true + }, + { + "name": "staged_custody_token", + "docs": ["This custody token account will be closed by the end of the instruction."], + "writable": true + }, + { + "name": "usdc_refund_token" + }, + { + "name": "target_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "token_router_custodian" + }, + { + "name": "target_router_endpoint" + }, + { + "name": "prepared_order", + "writable": true + }, + { + "name": "prepared_custody_token", + "writable": true + }, + { + "name": "usdc", + "accounts": [ + { + "name": "mint" + } + ] + }, + { + "name": "token_router_program" + }, + { + "name": "token_program" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "release_inbound", + "docs": [ + "Releases an inbound transfer in the swap layer. Only the encoded", + "recipient can release the inbound transfer.", + "", + "# Arguments", + "", + "* `ctx` - The context for releasing the inbound transfer." + ], + "discriminator": [116, 169, 86, 154, 87, 2, 36, 20], + "accounts": [ + { + "name": "recipient", + "docs": ["This signer must be the same one encoded in the staged transfer."], + "signer": true + }, + { + "name": "beneficiary", + "docs": [ + "the payer). If someone were to stage a transfer via a stage transfer ix and he had no", + "intention of consuming it, he will be out of luck. We will reward the redeemer with the", + "closed account funds with a payer of his choosing." + ], + "writable": true + }, + { + "name": "staged_inbound", + "writable": true + }, + { + "name": "dst_token", + "docs": [ + "Destination token account, which the redeemer may not own. But because the redeemer is a", + "signer and is the one encoded in the Deposit Fill message, he may have the tokens be sent", + "to any account he chooses (this one).", + "" + ], + "writable": true + }, + { + "name": "staged_custody_token", + "docs": [ + "Staged custody token account. This account will be closed at the end of this instruction." + ], + "writable": true + }, + { + "name": "mint" + }, + { + "name": "token_program" + } + ], + "args": [] + }, + { + "name": "stage_outbound", + "docs": [ + "Stages an outbound transfer or swap in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for staging the outbound transfer.", + "* `args` - The arguments for staging the outbound transfer." + ], + "discriminator": [69, 205, 153, 23, 99, 248, 131, 98], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "sender", + "docs": [ + "This signer is mutable in case the integrator wants to separate the payer of accounts from", + "the sender, who may be sending lamports ([StageOutboundArgs::is_native] is true)." + ], + "writable": true, + "signer": true, + "optional": true + }, + { + "name": "program_transfer_authority", + "optional": true + }, + { + "name": "sender_token", + "docs": [ + "If provided, this token account's mint must be equal to the source mint.", + "", + "NOTE: This account may not be necessary because the sender may send lamports directly", + "([StageOutboundArgs::is_native] is true)." + ], + "writable": true, + "optional": true + }, + { + "name": "target_peer", + "accounts": [ + { + "name": "peer" + } + ] + }, + { + "name": "staged_outbound", + "docs": [ + "Staged outbound account, which contains all of the instructions needed to initiate a", + "transfer on behalf of the sender." + ], + "writable": true, + "signer": true + }, + { + "name": "staged_custody_token", + "docs": [ + "Custody token account for the staged outbound transfer. This account will be owned by the", + "registered peer." + ], + "writable": true + }, + { + "name": "usdc_refund_token", + "writable": true + }, + { + "name": "src_mint", + "docs": ["Mint can either be USDC or whichever mint is used to swap into USDC."] + }, + { + "name": "src_token_program" + }, + { + "name": "token_program" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "args", + "type": { + "defined": { + "name": "StageOutboundArgs" + } + } + } + ] + }, + { + "name": "submit_ownership_transfer_request", + "docs": [ + "Submits an ownership transfer request.", + "", + "This instruction sets the `pending_owner` field in the `Custodian` account. This instruction", + "can only be called by the `owner`. The `pending_owner` address must be valid, meaning it", + "cannot be the zero address or the current owner.", + "", + "# Arguments", + "", + "* `ctx` - The context for submitting the ownership transfer request." + ], + "discriminator": [215, 13, 88, 199, 48, 195, 19, 225], + "accounts": [ + { + "name": "admin", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "custodian", + "writable": true + } + ] + }, + { + "name": "new_owner", + "docs": ["New Owner.", ""] + } + ], + "args": [] + }, + { + "name": "update_fee_recipient", + "docs": [ + "Updates the `fee_recipient` field in the `Custodian` account.", + "", + "This instruction is used to update the `fee_recipient` field in the `Custodian` account. This", + "instruction can only be called by the `owner` and `owner_assistant`. The `fee_recipient` must", + "be a valid token account. The `fee_recipient` receives any relayer fees received by the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for updating the fee recipient." + ], + "discriminator": [249, 0, 198, 35, 183, 123, 57, 188], + "accounts": [ + { + "name": "admin", + "accounts": [ + { + "name": "owner_or_assistant", + "signer": true + }, + { + "name": "custodian", + "writable": true + } + ] + }, + { + "name": "new_fee_recipient_token" + }, + { + "name": "new_fee_recipient", + "docs": ["New Fee Recipient.", ""] + } + ], + "args": [] + }, + { + "name": "update_fee_updater", + "docs": [ + "Updates the `fee_updater` field in the `Custodian` account.", + "", + "# Arguments", + "", + "* `ctx` - The context for updating the fee updater." + ], + "discriminator": [151, 53, 252, 33, 160, 246, 212, 86], + "accounts": [ + { + "name": "admin", + "accounts": [ + { + "name": "owner_or_assistant", + "signer": true + }, + { + "name": "custodian", + "writable": true + } + ] + }, + { + "name": "new_fee_updater", + "docs": ["New Fee Updater.", ""] + } + ], + "args": [] + }, + { + "name": "update_owner_assistant", + "docs": [ + "Updates the `owner_assistant` field in the `Custodian` account.", + "", + "This instruction is used to update the `owner_assistant` field in the `Custodian` account. This", + "instruction can only be called by the `owner`.", + "", + "# Arguments", + "", + "* `ctx` - The context for updating the owner assistant." + ], + "discriminator": [153, 83, 175, 53, 168, 34, 131, 22], + "accounts": [ + { + "name": "admin", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "custodian", + "writable": true + } + ] + }, + { + "name": "new_owner_assistant", + "docs": ["New Assistant.", ""] + } + ], + "args": [] + }, + { + "name": "update_peer", + "docs": [ + "Updates a peer in the swap layer. This allows the `owner` to update", + "the peer address and relay parameters.", + "", + "# Arguments", + "", + "* `ctx` - The context for updating the peer.", + "* `args` - The arguments for updating the peer." + ], + "discriminator": [34, 240, 139, 39, 182, 104, 150, 232], + "accounts": [ + { + "name": "admin", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + } + ] + }, + { + "name": "peer", + "writable": true + } + ], + "args": [ + { + "name": "args", + "type": { + "defined": { + "name": "AddPeerArgs" + } + } + } + ] + }, + { + "name": "update_relay_parameters", + "docs": [ + "Updates the relay parameters in the swap layer.", + "", + "# Arguments", + "", + "* `ctx` - The context for updating the relay parameters.", + "* `args` - The arguments for updating the relay parameters." + ], + "discriminator": [14, 75, 26, 86, 220, 131, 198, 205], + "accounts": [ + { + "name": "fee_updater", + "accounts": [ + { + "name": "fee_updater", + "signer": true + }, + { + "name": "custodian", + "accounts": [ + { + "name": "custodian" + } + ] + } + ] + }, + { + "name": "peer", + "writable": true + } + ], + "args": [ + { + "name": "args", + "type": { + "defined": { + "name": "UpdateRelayParametersArgs" + } + } + } + ] + } + ], + "accounts": [ + { + "name": "Custodian", + "discriminator": [132, 228, 139, 184, 112, 228, 108, 240] + }, + { + "name": "Peer", + "discriminator": [50, 8, 19, 55, 40, 253, 37, 58] + }, + { + "name": "PreparedFill", + "discriminator": [202, 241, 65, 186, 110, 235, 238, 80] + }, + { + "name": "StagedInbound", + "discriminator": [65, 230, 81, 119, 138, 87, 231, 76] + }, + { + "name": "StagedOutbound", + "discriminator": [88, 31, 179, 29, 184, 53, 196, 180] + } + ], + "errors": [ + { + "code": 6000, + "name": "DummyError" + }, + { + "code": 6002, + "name": "ExceedsCpiAccountRealloc" + }, + { + "code": 6004, + "name": "U64Overflow" + }, + { + "code": 6032, + "name": "InvalidTargetChain" + }, + { + "code": 6048, + "name": "RelayerFeeOverflow" + }, + { + "code": 6256, + "name": "AssistantZeroPubkey" + }, + { + "code": 6257, + "name": "FeeRecipientZeroPubkey" + }, + { + "code": 6258, + "name": "FeeUpdaterZeroPubkey" + }, + { + "code": 6259, + "name": "InvalidRedeemMode" + }, + { + "code": 6260, + "name": "InvalidOutputToken" + }, + { + "code": 6261, + "name": "InvalidRelayerFee" + }, + { + "code": 6262, + "name": "InvalidSwapMessage" + }, + { + "code": 6263, + "name": "InvalidRecipient" + }, + { + "code": 6264, + "name": "InvalidFeeUpdater" + }, + { + "code": 6265, + "name": "ChainNotAllowed" + }, + { + "code": 6266, + "name": "InvalidPeer" + }, + { + "code": 6267, + "name": "InvalidGasDropoff" + }, + { + "code": 6268, + "name": "RelayingDisabled" + }, + { + "code": 6269, + "name": "InvalidExecutionParams" + }, + { + "code": 6270, + "name": "UnsupportedExecutionParams" + }, + { + "code": 6271, + "name": "GasConversionOverflow" + }, + { + "code": 6272, + "name": "GasDropoffCalculationFailed" + }, + { + "code": 6273, + "name": "ExceedsMaxRelayingFee" + }, + { + "code": 6274, + "name": "InvalidPreparedOrder" + }, + { + "code": 6275, + "name": "InvalidFeeRecipient" + }, + { + "code": 6276, + "name": "PayloadTooLarge" + }, + { + "code": 6277, + "name": "UnsupportedFillType" + }, + { + "code": 6278, + "name": "SwapTimeLimitNotExceeded" + }, + { + "code": 6280, + "name": "ImmutableProgram" + }, + { + "code": 6512, + "name": "InvalidBaseFee" + }, + { + "code": 6513, + "name": "InvalidGasPrice" + }, + { + "code": 6514, + "name": "InvalidGasTokenPrice" + }, + { + "code": 6515, + "name": "InvalidUpdateThreshold" + }, + { + "code": 6516, + "name": "InvalidNativeTokenPrice" + }, + { + "code": 6517, + "name": "InvalidMargin" + }, + { + "code": 6518, + "name": "EvmGasCalculationFailed" + }, + { + "code": 6576, + "name": "EitherSenderOrProgramTransferAuthority" + }, + { + "code": 6578, + "name": "SenderTokenRequired" + }, + { + "code": 6580, + "name": "SenderRequired" + }, + { + "code": 6608, + "name": "RelayingFeeExceedsMinAmountOut" + }, + { + "code": 6610, + "name": "ZeroMinAmountOut" + }, + { + "code": 6612, + "name": "DelegatedAmountMismatch" + }, + { + "code": 6614, + "name": "ExactInRequired" + }, + { + "code": 6616, + "name": "InsufficientAmountIn" + }, + { + "code": 6768, + "name": "SwapPastDeadline" + }, + { + "code": 6770, + "name": "InvalidLimitAmount" + }, + { + "code": 6772, + "name": "InvalidSwapType" + }, + { + "code": 6774, + "name": "InsufficientAmountOut" + }, + { + "code": 6776, + "name": "MinAmountOutRequired" + }, + { + "code": 6784, + "name": "InvalidSourceResidual" + }, + { + "code": 6786, + "name": "SourceResidualMismatch" + }, + { + "code": 6800, + "name": "InvalidJupiterV6AuthorityId", + "msg": "Jupiter V6 Authority ID must be >= 0 and < 8" + }, + { + "code": 6802, + "name": "SameMint" + }, + { + "code": 6816, + "name": "InvalidSwapAuthority" + }, + { + "code": 6818, + "name": "InvalidSourceSwapToken" + }, + { + "code": 6819, + "name": "InvalidDestinationSwapToken" + }, + { + "code": 6820, + "name": "InvalidSourceMint" + }, + { + "code": 6821, + "name": "InvalidDestinationMint" + }, + { + "code": 6832, + "name": "NotJupiterV6DirectRoute" + }, + { + "code": 6834, + "name": "JupiterV6DexProgramMismatch" + }, + { + "code": 6836, + "name": "InvalidJupiterV6QuotedOutAmount" + }, + { + "code": 6838, + "name": "SwapFailed" + }, + { + "code": 6840, + "name": "InvalidSwapInAmount" + }, + { + "code": 7024, + "name": "NoTransferOwnershipRequest" + }, + { + "code": 7025, + "name": "NotPendingOwner" + }, + { + "code": 7026, + "name": "InvalidNewOwner" + }, + { + "code": 7027, + "name": "AlreadyOwner" + }, + { + "code": 7028, + "name": "OwnerOnly" + }, + { + "code": 7029, + "name": "OwnerOrAssistantOnly" + } + ], + "types": [ + { + "name": "AddPeerArgs", + "type": { + "kind": "struct", + "fields": [ + { + "name": "chain", + "type": "u16" + }, + { + "name": "address", + "type": { + "array": ["u8", 32] + } + }, + { + "name": "relay_params", + "type": { + "defined": { + "name": "RelayParams" + } + } + } + ] + } + }, + { + "name": "Custodian", + "type": { + "kind": "struct", + "fields": [ + { + "name": "owner", + "docs": ["Program's owner."], + "type": "pubkey" + }, + { + "name": "pending_owner", + "type": { + "option": "pubkey" + } + }, + { + "name": "owner_assistant", + "docs": ["Program's assistant. Can be used to update the relayer fee and swap rate."], + "type": "pubkey" + }, + { + "name": "fee_updater", + "docs": ["Program's fee updater. Can be used to update fee parameters and the like."], + "type": "pubkey" + }, + { + "name": "fee_recipient_token", + "docs": ["Program's fee recipient. Receives relayer fees in USDC."], + "type": "pubkey" + } + ] + } + }, + { + "name": "ExecutionParams", + "type": { + "kind": "enum", + "variants": [ + { + "name": "None" + }, + { + "name": "Evm", + "fields": [ + { + "name": "gas_price", + "type": "u32" + }, + { + "name": "gas_price_margin", + "type": "u32" + } + ] + } + ] + } + }, + { + "name": "FillType", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Unset" + }, + { + "name": "WormholeCctpDeposit" + }, + { + "name": "FastFill" + } + ] + } + }, + { + "name": "Peer", + "docs": ["Foreign Peer account data."], + "type": { + "kind": "struct", + "fields": [ + { + "name": "seeds", + "type": { + "defined": { + "name": "PeerSeeds" + } + } + }, + { + "name": "address", + "docs": ["Peer address. Cannot be zero address."], + "type": { + "array": ["u8", 32] + } + }, + { + "name": "relay_params", + "docs": ["Relay parameters."], + "type": { + "defined": { + "name": "RelayParams" + } + } + } + ] + } + }, + { + "name": "PeerSeeds", + "type": { + "kind": "struct", + "fields": [ + { + "name": "chain", + "docs": ["Peer chain. Cannot equal `1` (Solana's Chain ID)."], + "type": "u16" + }, + { + "name": "bump", + "type": "u8" + } + ] + } + }, + { + "name": "PreparedFill", + "type": { + "kind": "struct", + "fields": [ + { + "name": "seeds", + "type": { + "defined": { + "name": "PreparedFillSeeds" + } + } + }, + { + "name": "info", + "type": { + "defined": { + "name": "PreparedFillInfo" + } + } + }, + { + "name": "redeemer_message", + "type": "bytes" + } + ] + } + }, + { + "name": "PreparedFillInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "prepared_custody_token_bump", + "docs": ["Bump seed for the custody token account associated with [PreparedFill]."], + "type": "u8" + }, + { + "name": "prepared_by", + "docs": ["Who paid the lamports to create the [PreparedFill] account."], + "type": "pubkey" + }, + { + "name": "fill_type", + "docs": ["NOTE: If [FillType::Unset], the [PreparedFill] account is invalid."], + "type": { + "defined": { + "name": "FillType" + } + } + }, + { + "name": "source_chain", + "docs": ["Wormhole chain ID reflecting where the order was created."], + "type": "u16" + }, + { + "name": "order_sender", + "docs": ["Universal address of the order sender."], + "type": { + "array": ["u8", 32] + } + }, + { + "name": "redeemer", + "docs": ["Authority allowed to redeem [PreparedFill]."], + "type": "pubkey" + }, + { + "name": "timestamp", + "docs": [ + "Timestamp at the time a fill was issued. This time will either be a VAA time for a direct", + "fill from another Token Router or timestamp from [matching_engine::state::FastFill] as a", + "result of a market order.", + "", + "NOTE: This timestamp is not used by the Token Router. It only provides more information for", + "an integrator so he can perform special handling based on when the fill happened." + ], + "type": "i64" + } + ] + } + }, + { + "name": "PreparedFillSeeds", + "type": { + "kind": "struct", + "fields": [ + { + "name": "fill_source", + "type": "pubkey" + }, + { + "name": "bump", + "type": "u8" + } + ] + } + }, + { + "name": "RedeemOption", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Relay", + "fields": [ + { + "name": "gas_dropoff", + "docs": ["Normalized amount of gas to drop off on destination network."], + "type": "u32" + }, + { + "name": "max_relayer_fee", + "docs": ["Maximum fee that a relayer can charge for the transfer."], + "type": "u64" + } + ] + }, + { + "name": "Payload", + "fields": ["bytes"] + } + ] + } + }, + { + "name": "RelayParams", + "type": { + "kind": "struct", + "fields": [ + { + "name": "base_fee", + "type": "u32" + }, + { + "name": "native_token_price", + "type": "u64" + }, + { + "name": "max_gas_dropoff", + "type": "u32" + }, + { + "name": "gas_dropoff_margin", + "type": "u32" + }, + { + "name": "execution_params", + "type": { + "defined": { + "name": "ExecutionParams" + } + } + }, + { + "name": "swap_time_limit", + "type": { + "defined": { + "name": "SwapTimeLimit" + } + } + } + ] + } + }, + { + "name": "StageOutboundArgs", + "docs": ["Arguments for [stage_outbound]."], + "type": { + "kind": "struct", + "fields": [ + { + "name": "amount_in", + "type": "u64" + }, + { + "name": "min_amount_out", + "type": { + "option": "u64" + } + }, + { + "name": "is_exact_in", + "docs": [ + "This argument only applies to relays. If exact in is specified, the relaying fee will be", + "removed from the amount in. Otherwise it will be added to the amount in to guarantee the", + "USDC amount specified above.", + "", + "For swaps, this argument will determine whether which initiate swap instruction to use." + ], + "type": "bool" + }, + { + "name": "target_chain", + "docs": ["The Wormhole chain ID of the network to transfer tokens to."], + "type": "u16" + }, + { + "name": "recipient", + "docs": ["The recipient of the transfer."], + "type": { + "array": ["u8", 32] + } + }, + { + "name": "redeem_option", + "type": { + "option": { + "defined": { + "name": "RedeemOption" + } + } + } + }, + { + "name": "encoded_output_token", + "type": { + "option": "bytes" + } + } + ] + } + }, + { + "name": "StagedInbound", + "type": { + "kind": "struct", + "fields": [ + { + "name": "seeds", + "type": { + "defined": { + "name": "StagedInboundSeeds" + } + } + }, + { + "name": "info", + "type": { + "defined": { + "name": "StagedInboundInfo" + } + } + }, + { + "name": "recipient_payload", + "type": "bytes" + } + ] + } + }, + { + "name": "StagedInboundInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "custody_token", + "type": "pubkey" + }, + { + "name": "staged_by", + "docs": ["Payer that created this StagedInbound."], + "type": "pubkey" + }, + { + "name": "source_chain", + "docs": ["Exposed out of convenience for the receiving program."], + "type": "u16" + }, + { + "name": "sender", + "docs": ["The sender of the swap message."], + "type": { + "array": ["u8", 32] + } + }, + { + "name": "recipient", + "docs": ["The encoded recipient must be the caller."], + "type": "pubkey" + }, + { + "name": "is_native", + "docs": ["Indicates whether the output token type is Gas."], + "type": "bool" + } + ] + } + }, + { + "name": "StagedInboundSeeds", + "type": { + "kind": "struct", + "fields": [ + { + "name": "prepared_fill", + "type": "pubkey" + }, + { + "name": "bump", + "type": "u8" + } + ] + } + }, + { + "name": "StagedOutbound", + "type": { + "kind": "struct", + "fields": [ + { + "name": "info", + "type": { + "defined": { + "name": "StagedOutboundInfo" + } + } + }, + { + "name": "staged_redeem", + "type": { + "defined": { + "name": "StagedRedeem" + } + } + }, + { + "name": "encoded_output_token", + "type": "bytes" + } + ] + } + }, + { + "name": "StagedOutboundInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "custody_token_bump", + "type": "u8" + }, + { + "name": "prepared_by", + "docs": ["One who paid the lamports to create [StagedOutbound]."], + "type": "pubkey" + }, + { + "name": "sender", + "docs": ["Sender of the swap message."], + "type": "pubkey" + }, + { + "name": "target_chain", + "docs": ["Wormhole chain ID of the target network."], + "type": "u16" + }, + { + "name": "recipient", + "docs": ["Intended recipient of the transfer."], + "type": { + "array": ["u8", 32] + } + }, + { + "name": "is_exact_in", + "docs": ["This value is only checked for swaps."], + "type": "bool" + }, + { + "name": "usdc_refund_token", + "docs": [ + "The specified token account to refund USDC. This account is required by the Token Router", + "program in case a fast order is reverted at the Matching Engine after it has been placed." + ], + "type": "pubkey" + }, + { + "name": "min_amount_out", + "type": { + "option": "u64" + } + } + ] + } + }, + { + "name": "StagedRedeem", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Direct" + }, + { + "name": "Relay", + "fields": [ + { + "name": "gas_dropoff", + "type": "u32" + }, + { + "name": "relaying_fee", + "type": "u64" + } + ] + }, + { + "name": "Payload", + "fields": ["bytes"] + } + ] + } + }, + { + "name": "SwapTimeLimit", + "type": { + "kind": "struct", + "fields": [ + { + "name": "fast_limit", + "type": "u16" + }, + { + "name": "finalized_limit", + "type": "u16" + } + ] + } + }, + { + "name": "UpdateRelayParametersArgs", + "type": { + "kind": "struct", + "fields": [ + { + "name": "chain", + "type": "u16" + }, + { + "name": "relay_params", + "type": { + "defined": { + "name": "RelayParams" + } + } + } + ] + } + } + ] +} diff --git a/watcher/src/watchers/__tests__/fastTransfer/SolanaSwapLayerParser.test.ts b/watcher/src/watchers/__tests__/fastTransfer/SolanaSwapLayerParser.test.ts new file mode 100644 index 00000000..5f959665 --- /dev/null +++ b/watcher/src/watchers/__tests__/fastTransfer/SolanaSwapLayerParser.test.ts @@ -0,0 +1,296 @@ +import { SwapLayerParser } from '../../../fastTransfer/swapLayer/solParser'; +import { + Connection, + ParsedAccountData, + ParsedTransactionWithMeta, + PublicKey, + VersionedTransactionResponse, +} from '@solana/web3.js'; +import path from 'path'; +import { readFileSync } from 'fs'; +import { TransferCompletion } from '../../../fastTransfer/types'; + +jest.setTimeout(60_000); + +// Mock the Connection class +jest.mock('@solana/web3.js', () => { + const actual = jest.requireActual('@solana/web3.js'); + return { + ...actual, + Connection: jest.fn().mockImplementation(() => ({ + getTransaction: jest.fn(), + getParsedTransaction: jest.fn(), + })), + }; +}); + +function mockGetTransaction(network: string = 'devnet') { + return async (txHash: string) => { + const mockDataPath = path.join( + __dirname, + '..', + '..', + '..', + '..', + 'mock', + `api.${network}.solana.com`, + `transaction_${txHash}.json` + ); + const data = JSON.parse(readFileSync(mockDataPath, 'utf-8')); + + // Convert string account keys to PublicKey objects + if (data.transaction?.message?.accountKeys) { + data.transaction.message.accountKeys = data.transaction.message.accountKeys.map( + (key: string) => new PublicKey(key) + ); + } + + // Convert staticAccountKeys if present + if (data.transaction?.message?.staticAccountKeys) { + data.transaction.message.staticAccountKeys = data.transaction.message.staticAccountKeys.map( + (key: string) => new PublicKey(key) + ); + } + + data.transaction.message.getAccountKeys = function () { + return { + staticAccountKeys: this.staticAccountKeys || this.accountKeys, + accountKeys: this.accountKeys, + }; + }; + + return data as VersionedTransactionResponse; + }; +} + +function mockGetParsedTransaction(network: string = 'devnet') { + return async (txHash: string) => { + const mockDataPath = path.join( + __dirname, + '..', + '..', + '..', + '..', + 'mock', + `api.${network}.solana.com`, + `parsedTransaction_${txHash}.json` + ); + const data = JSON.parse(readFileSync(mockDataPath, 'utf-8')); + + // Convert string pubkeys to PublicKey objects + if (data.transaction?.message?.accountKeys) { + data.transaction.message.accountKeys = data.transaction.message.accountKeys.map( + (account: any) => ({ + ...account, + pubkey: new PublicKey(account.pubkey), + }) + ); + } + + // Convert programId in instructions + if (data.transaction?.message?.instructions) { + data.transaction.message.instructions = data.transaction.message.instructions.map( + (instruction: any) => ({ + ...instruction, + programId: new PublicKey(instruction.programId), + }) + ); + } + return data as ParsedTransactionWithMeta; + }; +} + +function mockGetParsedAccountInfo(network: string = 'devnet') { + return async (account: PublicKey) => { + const mockDataPath = path.join( + __dirname, + '..', + '..', + '..', + '..', + 'mock', + `api.${network}.solana.com`, + `parsedAccountInfo_${account.toBase58()}.json` + ); + const data = JSON.parse(readFileSync(mockDataPath, 'utf-8')); + + // Convert string pubkeys to PublicKey objects + if (data.value?.data.parsed?.info?.owner) { + data.value.data.parsed.info.owner = new PublicKey(data.value.data.parsed.info.owner); + } + + return data as ParsedAccountData; + }; +} + +function seralizedRes(result: TransferCompletion | null) { + if (!result) throw new Error('result is null'); + return { + ...result, + output_amount: result.output_amount.toString(), + relaying_fee: result.relaying_fee.toString(), + }; +} + +describe('SwapLayerParser', () => { + let parser: SwapLayerParser; + let connection: Connection; + + beforeEach(() => { + jest.clearAllMocks(); + + connection = new Connection('devnet') as jest.Mocked; + // Mock getTransaction, getParsedTransaction, and getParsedAccountInfo methods + connection.getTransaction = jest.fn().mockImplementation(mockGetTransaction('devnet')); + connection.getParsedTransaction = jest + .fn() + .mockImplementation(mockGetParsedTransaction('devnet')); + connection.getParsedAccountInfo = jest + .fn() + .mockImplementation(mockGetParsedAccountInfo('devnet')); + + parser = new SwapLayerParser('Devnet', connection); + }); + + test('parseTransaction for complete_transfer_direct', async () => { + const txHash = + '32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR'; + const result = await parser.parseTransaction(txHash); + const expected = { + fill_id: 'BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV', + output_token: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', + recipient: 'FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF', + redeem_time: new Date('2024-08-13T21:59:54.000Z'), + output_amount: '20000000000', + staged_inbound: undefined, + tx_hash: + '32goGrEsPb6Kky65Z4wX6wswzjDbT9pBWs1HSZFsfWhxoA1fnSsoE9hJgtepPL8VyKQJUdRrfGWPrXCizDufArwR', + relaying_fee: '0', + }; + + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); + + test('parseTransaction for complete_transfer_relay', async () => { + const txHash = + '4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka'; + + const result = await parser.parseTransaction(txHash); + + const expected = { + recipient: 'FQ4PBuykgHqemPhqqktJL9y1L7oTbShYiwGkwgM1VceF', + tx_hash: + '4EWH6ZetTTjdYSbxqXddKNKLKDpBctELAhqChmkey2jwunZaj1Digj1fQxBMxtw6uhDeqkX3ev2vucu7jrexhWka', + relaying_fee: '0', + fill_id: 'BkWHY4H2kEVevdUeiRmFYNtg5zURRbTEtjt29KWdbjzV', + output_token: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', + redeem_time: new Date('2024-08-13T21:59:55.000Z'), + output_amount: '20000000000', + staged_inbound: undefined, + }; + + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); + + test('parseTransaction for complete_swap_direct', async () => { + const txHash = + '3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ'; + + const result = await parser.parseTransaction(txHash); + const expected = { + recipient: 'GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx', + tx_hash: + '3Ufce773W4xgVsZiGBhSRPQssfaNdrEWeTBPLTnQSFZHsVx9ADaSN9yQBF6kcQMyDAoAnM3BVU88tQ2TbDZn1kUJ', + relaying_fee: '0', + fill_id: '9txX9C9wG8RKUWFzjvkqeCPmMVMKpkYD1HStjLYLRvoU', + output_token: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', + redeem_time: new Date('2024-08-17T00:16:41.000Z'), + output_amount: '49564106', + staged_inbound: undefined, + }; + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); + + test('parseTransaction for complete_swap_relay', async () => { + const txHash = + '39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1'; + + const result = await parser.parseTransaction(txHash); + const expected = { + fill_id: 'Hru6CBfyXtG18zF33DnXEjmECjgj1eMjNfPRaESBqpUr', + output_token: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', + recipient: 'GcppBeM1UYGU4b7aX9uPAqL4ZEUThNHt5FpxPtzBE1xx', + redeem_time: new Date('2024-08-17T00:16:42.000Z'), + output_amount: '48508532', + staged_inbound: undefined, + tx_hash: + '39K8aHVDmyAjne6J4PBFkvmKZH9CQR9QpbmTFafeiTLxeWg5n5RgcRdX5AYhebLR9shiUHrDeqg4YSD1EhRZNpS1', + relaying_fee: '0', + }; + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); + + test('parseTransaction for complete_transfer_payload', async () => { + const txHash = + 'eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP'; + + const result = await parser.parseTransaction(txHash); + const expected = { + recipient: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', + tx_hash: + 'eo2CugBsJ9Efbtg9TAiYyBvvZZsbh93ZZcLDxxjbmbEpZojCF8BDphVVrCjXtMkSLaP2EGQE5zSrjU4r6fxsxRP', + relaying_fee: '0', + fill_id: '8jwioGKqu23fBLMeVdNfMTm41Wnv3TKVKQmA1Ga9518J', + output_token: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', + redeem_time: new Date('2024-08-13T22:03:21.000Z'), + output_amount: '0', + staged_inbound: 'ECiEWJndTfUJaEQ59gYgy6e4331mkrh1USQCmDcBwBvj', + }; + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); + + test('parseTransaction for complete_swap_payload', async () => { + const txHash = + '4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x'; + + const result = await parser.parseTransaction(txHash); + const expected = { + fill_id: 'ESccxJbedTgsu7kwK6uNWnMrg3GiD7pgexXfWeyZNK3J', + output_token: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', + recipient: 'GGztQqQ6pCPaJQnNpXBgELr5cs3WwDakRbh1iEMzjgSJ', + redeem_time: new Date('2024-08-13T22:04:14.000Z'), + output_amount: '0', + staged_inbound: '91AQfKMvRGFrGWscXhD1FQs929P2M28ehAMS75xEVw6f', + tx_hash: + '4yCcw8MJ1BokhPJM2fQC3BMfoezteM4MkaHLfjPrLG25AEW4EeNxcNsrgU3ECkwQ1sy3AKFseafxM2mfjdwbzo8x', + relaying_fee: '0', + }; + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); + + test('parseTransaction for release_inbound', async () => { + const txHash = + '2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj'; + + const result = await parser.parseTransaction(txHash); + const expected = { + tx_hash: + '2EFLPdYpdJzeoe4HD4fNRWwphhy9HyEHFj3EQtY9agUPmQ5LjJkXFjEt5dnshS9sSTby9nN2QF9BaCbVyiBFGLxj', + relaying_fee: '0', + fill_id: '', + output_token: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', + recipient: 'HRTQAZJF7YNogjDUehhVShJxtFdBr8gNWsVJbvL1kvXU', + redeem_time: new Date('2024-08-15T06:47:19.000Z'), + output_amount: '6900000000', + staged_inbound: 'GFJ6699xu2BER8t98S4Vy6ZQam4mvr539AaqvHHBh9i3', + }; + const serializedRes = seralizedRes(result); + expect(serializedRes).toEqual(expected); + }); +});