From 37fafde36b7b232dc1b28b6c37610fb36330ee56 Mon Sep 17 00:00:00 2001 From: Mohammed Ryaan Date: Mon, 10 Aug 2026 11:57:29 +0530 Subject: [PATCH] feat(sdk-coin-sol): use idempotent Create-ATA and fee payer rent Create-ATA now uses the idempotent instruction, and ATA rent is paid by the fee payer when set so gas-tank consolidations can fund child ATAs. Ticket: CHALO-1261 Co-authored-by: Cursor --- .../src/lib/ataInitializationBuilder.ts | 3 +- .../src/lib/jitoStakePoolOperations.ts | 4 +- .../src/lib/solInstructionFactory.ts | 16 +++-- .../src/lib/tokenTransferBuilder.ts | 4 +- .../sdk-coin-sol/src/lib/transferBuilderV2.ts | 5 +- modules/sdk-coin-sol/test/resources/sol.ts | 58 +++++++++---------- .../test/unit/solInstructionFactory.ts | 48 ++++++++++++--- .../tokenTransferBuilder.ts | 44 ++++++++++++++ .../transactionBuilder/transferBuilderV2.ts | 56 +++++++++++++++++- 9 files changed, 187 insertions(+), 51 deletions(-) diff --git a/modules/sdk-coin-sol/src/lib/ataInitializationBuilder.ts b/modules/sdk-coin-sol/src/lib/ataInitializationBuilder.ts index d99e555835..c9507a4321 100644 --- a/modules/sdk-coin-sol/src/lib/ataInitializationBuilder.ts +++ b/modules/sdk-coin-sol/src/lib/ataInitializationBuilder.ts @@ -176,7 +176,8 @@ export class AtaInitializationBuilder extends TransactionBuilder { mintAddress: tokenAddress, ataAddress: ataPk, ownerAddress: recipient.ownerAddress, - payerAddress: this._sender, + // Match transactionBuilder fee payer selection when a distinct fee payer is set. + payerAddress: this._feePayer ?? this._sender, tokenName: recipient.tokenName, programId: programId, }, diff --git a/modules/sdk-coin-sol/src/lib/jitoStakePoolOperations.ts b/modules/sdk-coin-sol/src/lib/jitoStakePoolOperations.ts index a054cd86ba..fa5abc4de3 100644 --- a/modules/sdk-coin-sol/src/lib/jitoStakePoolOperations.ts +++ b/modules/sdk-coin-sol/src/lib/jitoStakePoolOperations.ts @@ -11,7 +11,7 @@ import { } from '@solana/spl-stake-pool'; import { createApproveInstruction, - createAssociatedTokenAccountInstruction, + createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, TOKEN_PROGRAM_ID, } from '@solana/spl-token'; @@ -129,7 +129,7 @@ export function depositSolInstructions( const instructions: TransactionInstruction[] = []; if (createAssociatedTokenAccount) { - instructions.push(createAssociatedTokenAccountInstruction(from, associatedAddress, from, poolMint)); + instructions.push(createAssociatedTokenAccountIdempotentInstruction(from, associatedAddress, from, poolMint)); } instructions.push( diff --git a/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts b/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts index d517f1250d..cfcc7b2c4b 100644 --- a/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts +++ b/modules/sdk-coin-sol/src/lib/solInstructionFactory.ts @@ -1,7 +1,7 @@ import { SolStakingTypeEnum } from '@bitgo/public-types'; import { SolCoin } from '@bitgo/statics'; import { - createAssociatedTokenAccountInstruction, + createAssociatedTokenAccountIdempotentInstruction, createCloseAccountInstruction, createMintToInstruction, createBurnInstruction, @@ -520,10 +520,14 @@ function stakingWithdrawInstruction(data: StakingWithdraw): TransactionInstructi } /** - * Construct Create and Initialize Nonce Solana instructions + * Construct an idempotent Create Associated Token Account instruction. * - * @param {WalletInit} data - the data to build the instruction - * @returns {TransactionInstruction[]} An array containing Create and Initialize Nonce Solana instruction + * Uses createAssociatedTokenAccountIdempotentInstruction so the instruction is a + * no-op when the ATA already exists (discriminator byte = 1), instead of failing + * like the legacy createAssociatedTokenAccountInstruction (empty data). + * + * @param {AtaInit} data - the data to build the instruction + * @returns {TransactionInstruction[]} An array containing the Create ATA instruction */ function createATAInstruction(data: AtaInit): TransactionInstruction[] { const { @@ -536,7 +540,7 @@ function createATAInstruction(data: AtaInit): TransactionInstruction[] { let associatedTokenAccountInstruction: TransactionInstruction; if (programId && programId === TOKEN_2022_PROGRAM_ID.toString()) { - associatedTokenAccountInstruction = createAssociatedTokenAccountInstruction( + associatedTokenAccountInstruction = createAssociatedTokenAccountIdempotentInstruction( new PublicKey(payerAddress), new PublicKey(ataAddress), new PublicKey(ownerAddress), @@ -544,7 +548,7 @@ function createATAInstruction(data: AtaInit): TransactionInstruction[] { TOKEN_2022_PROGRAM_ID ); } else { - associatedTokenAccountInstruction = createAssociatedTokenAccountInstruction( + associatedTokenAccountInstruction = createAssociatedTokenAccountIdempotentInstruction( new PublicKey(payerAddress), new PublicKey(ataAddress), new PublicKey(ownerAddress), diff --git a/modules/sdk-coin-sol/src/lib/tokenTransferBuilder.ts b/modules/sdk-coin-sol/src/lib/tokenTransferBuilder.ts index 87fcdeb88f..1a8eefb9d2 100644 --- a/modules/sdk-coin-sol/src/lib/tokenTransferBuilder.ts +++ b/modules/sdk-coin-sol/src/lib/tokenTransferBuilder.ts @@ -191,7 +191,9 @@ export class TokenTransferBuilder extends TransactionBuilder { ownerAddress: recipient.ownerAddress, mintAddress: tokenAddress, ataAddress, - payerAddress: this._sender, + // Match transactionBuilder fee payer selection: when a distinct fee payer + // is set (e.g. gas tank), it must fund ATA rent — not the token sender. + payerAddress: this._feePayer ?? this._sender, tokenName: tokenName, programId: programId, }, diff --git a/modules/sdk-coin-sol/src/lib/transferBuilderV2.ts b/modules/sdk-coin-sol/src/lib/transferBuilderV2.ts index 15be8a5234..820bed25ab 100644 --- a/modules/sdk-coin-sol/src/lib/transferBuilderV2.ts +++ b/modules/sdk-coin-sol/src/lib/transferBuilderV2.ts @@ -211,7 +211,10 @@ export class TransferBuilderV2 extends TransactionBuilder { tokenName: tokenName, mintAddress: tokenAddress, ataAddress: recipientTokenAddress, - payerAddress: this._sender, + // Match transactionBuilder fee payer selection: when a distinct fee payer + // is set (e.g. gas tank on consolidation), it must fund ATA rent — the + // token sender/authority often has no SOL. + payerAddress: this._feePayer ?? this._sender, programId: programId, }, }; diff --git a/modules/sdk-coin-sol/test/resources/sol.ts b/modules/sdk-coin-sol/test/resources/sol.ts index 6d304a2242..527b6ff7a7 100644 --- a/modules/sdk-coin-sol/test/resources/sol.ts +++ b/modules/sdk-coin-sol/test/resources/sol.ts @@ -163,7 +163,7 @@ export const JITO_STAKING_ACTIVATE_SIGNED_TX = 'AdOUrFCk9yyhi1iB1EfOOXHOeiaZGQnLRwnypt+be8r9lrYMx8w7/QTnithrqcuBApg1ctJAlJMxNZ925vMP2Q0BAAQKReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgKwaBTtTK9ooXRnL9rIYDGmPoTqFe+h1EtyKT9tvbABZQBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEICgUHAgABAwEEBgkJDuCTBAAAAAAA'; export const JITO_STAKING_ACTIVATE_SIGNED_TX_WITH_ATA = - 'AZTtxNZUVVSkMfFXVRpVC8JZTXvbZIjenqGOIdNEWK51GbJBfw85aErDZoeU5brkEKyofnU1r0iSIRCTzy5AVQ0BAAULReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBoFO1Mr2ihdGcv2shgMaY+hOoV76HUS3IpP229sAFlAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAggGAAEABAYKAAkKBQcCAAEDAQQGCgkO4JMEAAAAAAA='; + 'Ab16u0S+y8U6D/bOkUzwePVGH0yYBnSS3gxslVcWFn7hRjLYdbNf2eYwBpaOvigUHSJDsYyKl+Tu9oxrAP3UYAsBAAULReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBoFO1Mr2ihdGcv2shgMaY+hOoV76HUS3IpP229sAFlAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAggGAAEABAYKAQEJCgUHAgABAwEEBgoJDuCTBAAAAAAA'; export const STAKING_ACTIVATE_SIGNED_TX_WITH_MEMO = 'AsTWc6tgb0h6qBA/kcVgr35lpWYxit9d99IscSJ5OUHkTz4AUK0dI7MNX9kw1GMIvxGKg7uw709b/9K1CeUgRgHdrX1nKO30P/91RhNMJpknfdDHmq48duVvvPRhlXirbMNm0yqn2q4iEWk3U8pS4ASPAU2L0jlk1NSqnw5sxMcOAgAICkXlebz5JTz2i0ff8fs6OlwsIbrFsjwJrhKm4FVr8ItBYnsvugEnYfm5Gbz5TLtMncgFHZ8JMpkxTTlJIzJovekAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALH5eXiaHEfRPEjYei8nFxDrf5MmCVEXMWKQvWwp2vXZBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0GodgXkTdUKpg0N73+KnqyVX9TXIp4citopJ3AAAAAAAah2BelAgULaAeR5s5tuI4eW3FQ9h/GeQpOtNEAAAAABqfVFxjHdMkoVmOYaR1etoteuKObS21cc1VbIQAAAAAGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAan1RcZNYTQ/u2bs0MdEyBr5UQoG1e4VmzFN1/0AAAA4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEEAgIAATQAAAAA4JMEAAAAAADIAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABQIBCHQAAAAAReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0FF5Xm8+SU89otH3/H7OjpcLCG6xbI8Ca4SpuBVa/CLQQAAAAAAAAAAAAAAAAAAAABF5Xm8+SU89otH3/H7OjpcLCG6xbI8Ca4SpuBVa/CLQQUGAQMHCQYABAIAAAAEAAl0ZXN0IG1lbW8='; @@ -175,7 +175,7 @@ export const JITO_STAKING_ACTIVATE_SIGNED_TX_WITH_MEMO = 'AVuU0ma/g7Ur8yGbZDVeoyHWdhh3fCilgfUoKq84lkq7wyhSySwqgR/WC3JAOiRGiW4/8S2244duw6GQNNb3vQYBAAULReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgKwVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBoFO1Mr2ihdGcv2shgMaY+hOoV76HUS3IpP229sAFlAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAgkKBQcCAAEDAQQGCgkO4JMEAAAAAAAIAAl0ZXN0IG1lbW8='; export const JITO_STAKING_ACTIVATE_SIGNED_TX_WITH_MEMO_WITH_ATA = - 'ASaJANQg/mvSVTeaXw/e32174VCxUvdLjnrvFT54vJ0Qlp7icj38OEIFYRvoepXQsePQD8jIKrWvSuUF4DrYHQ4BAAYMReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0GgU7UyvaKF0Zy/ayGAxpj6E6hXvodRLcik/bb2wAWUAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDCAYAAQAEBgsACgoFBwIAAQMBBAYLCQ7gkwQAAAAAAAkACXRlc3QgbWVtbw=='; + 'ASEQ1H5xcTpbsOxjEVPbK0k2sPmsqjOp6VjQtgMMXPucBRXL8YdmbyW9sDKtS2dSaYKu+nN7lX5m3B0d8K/1yQ4BAAYMReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0GgU7UyvaKF0Zy/ayGAxpj6E6hXvodRLcik/bb2wAWUAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDCAYAAQAEBgsBAQoKBQcCAAEDAQQGCwkO4JMEAAAAAAAJAAl0ZXN0IG1lbW8='; export const STAKING_ACTIVATE_UNSIGNED_TX = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAHCUXlebz5JTz2i0ff8fs6OlwsIbrFsjwJrhKm4FVr8ItBYnsvugEnYfm5Gbz5TLtMncgFHZ8JMpkxTTlJIzJovekAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALH5eXiaHEfRPEjYei8nFxDrf5MmCVEXMWKQvWwp2vXZBqHYF5E3VCqYNDe9/ip6slV/U1yKeHIraKSdwAAAAAAGodgXpQIFC2gHkebObbiOHltxUPYfxnkKTrTRAAAAAAan1RcYx3TJKFZjmGkdXraLXrijm0ttXHNVWyEAAAAABqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAGp9UXGTWE0P7tm7NDHRMga+VEKBtXuFZsxTdf9AAAAOMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAwICAAE0AAAAAOCTBAAAAAAAyAAAAAAAAAAGodgXkTdUKpg0N73+KnqyVX9TXIp4citopJ3AAAAAAAQCAQd0AAAAAEXlebz5JTz2i0ff8fs6OlwsIbrFsjwJrhKm4FVr8ItBReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0EAAAAAAAAAAAAAAAAAAAAAReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0EEBgEDBggFAAQCAAAA'; @@ -187,7 +187,7 @@ export const JITO_STAKING_ACTIVATE_UNSIGNED_TX = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQKReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgKwaBTtTK9ooXRnL9rIYDGmPoTqFe+h1EtyKT9tvbABZQBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEICgUHAgABAwEEBgkJDuCTBAAAAAAA'; export const JITO_STAKING_ACTIVATE_UNSIGNED_TX_WITH_ATA = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAULReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBoFO1Mr2ihdGcv2shgMaY+hOoV76HUS3IpP229sAFlAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAggGAAEABAYKAAkKBQcCAAEDAQQGCgkO4JMEAAAAAAA='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAULReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBoFO1Mr2ihdGcv2shgMaY+hOoV76HUS3IpP229sAFlAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAggGAAEABAYKAQEJCgUHAgABAwEEBgoJDuCTBAAAAAAA'; export const STAKING_ACTIVATE_UNSIGNED_TX_WITH_MEMO = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAICkXlebz5JTz2i0ff8fs6OlwsIbrFsjwJrhKm4FVr8ItBYnsvugEnYfm5Gbz5TLtMncgFHZ8JMpkxTTlJIzJovekAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALH5eXiaHEfRPEjYei8nFxDrf5MmCVEXMWKQvWwp2vXZBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0GodgXkTdUKpg0N73+KnqyVX9TXIp4citopJ3AAAAAAAah2BelAgULaAeR5s5tuI4eW3FQ9h/GeQpOtNEAAAAABqfVFxjHdMkoVmOYaR1etoteuKObS21cc1VbIQAAAAAGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAan1RcZNYTQ/u2bs0MdEyBr5UQoG1e4VmzFN1/0AAAA4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEEAgIAATQAAAAA4JMEAAAAAADIAAAAAAAAAAah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABQIBCHQAAAAAReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0FF5Xm8+SU89otH3/H7OjpcLCG6xbI8Ca4SpuBVa/CLQQAAAAAAAAAAAAAAAAAAAABF5Xm8+SU89otH3/H7OjpcLCG6xbI8Ca4SpuBVa/CLQQUGAQMHCQYABAIAAAAEAAl0ZXN0IG1lbW8='; @@ -199,7 +199,7 @@ export const JITO_STAKING_ACTIVATE_UNSIGNED_TX_WITH_MEMO = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAULReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgKwVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBoFO1Mr2ihdGcv2shgMaY+hOoV76HUS3IpP229sAFlAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAgkKBQcCAAEDAQQGCgkO4JMEAAAAAAAIAAl0ZXN0IG1lbW8='; export const JITO_STAKING_ACTIVATE_UNSIGNED_TX_WITH_MEMO_WITH_ATA = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYMReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0GgU7UyvaKF0Zy/ayGAxpj6E6hXvodRLcik/bb2wAWUAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDCAYAAQAEBgsACgoFBwIAAQMBBAYLCQ7gkwQAAAAAAAkACXRlc3QgbWVtbw=='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYMReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgK4yXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0GgU7UyvaKF0Zy/ayGAxpj6E6hXvodRLcik/bb2wAWUAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDCAYAAQAEBgsBAQoKBQcCAAEDAQQGCwkO4JMEAAAAAAAJAAl0ZXN0IG1lbW8='; export const STAKING_DEACTIVATE_SIGNED_TX = 'AUfyWtl4IUxhH21qX/H03hJZer1XxQaxL2r/uDTM/u1GzBIyePCHu78O2SkWGEYP6eDdiY3OLfJmUM1jiy8NCAoBAAIEReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Fiey+6ASdh+bkZvPlMu0ydyAUdnwkymTFNOUkjMmi96Qah2BeRN1QqmDQ3vf4qerJVf1NcinhyK2ikncAAAAAABqfVFxjHdMkoVmOYaR1etoteuKObS21cc1VbIQAAAADjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQECAwEDAAQFAAAA'; @@ -336,45 +336,45 @@ export const associatedTokenAccountsForSol2022 = { }; export const ATA_INIT_UNSIGNED_TX = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQGAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEBAwYAAQAEAgUA'; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAQGAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEBAwYAAQAEAgUBAQ=='; export const ATA_INIT_UNSIGNED_TX_WITH_MEMO = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQIDBgABAAQCBgAFABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQIDBgABAAQCBgEBBQAXdGVzdCBtZW1vIHBsZWFzZSBpZ25vcmU='; export const ATA_INIT_SIGNED_TX = - 'AX4m5TMjyAv7u18h9IVnwX6eXpUkaidR5563WZuDoP290YIJEverx+gXgCIefWk4Kxh98FXAguWmFOs5K6BzhAMBAAQGAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEBAwYAAQAEAgUA'; + 'AQoJsOAQONa+CjMN/Var2N7g98Xg1TIODdVWkeOT0qiNclsed/vUAtnkX+mXgx37qW82Y1iIgANUms1cUUeWhQMBAAQGAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEBAwYAAQAEAgUBAQ=='; export const ATA_INIT_SIGNED_TX_WITH_MEMO = - 'AUXapQuHac/y7epf9M8yxmIaiBaTcYR5kBWawuhIkbKSYWQvMJoNQgzcqZRqRM5Mtkaa18ed6UhZa9FBYoBs6g8BAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQIDBgABAAQCBgAFABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; + 'ATO+58ubGPEqe20UgmPh+f7MTFptB5SFaIes+TZXC3VGMFr6ufDnzZpIIKbGvjzxgpUCMSLU9Gnu3DmeTrUb6QoBAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eRPnWyN8hzxKVQ4TDLI3w9B+9bjXlvcVElL/sY0IDBtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYQVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQIDBgABAAQCBgEBBQAXdGVzdCBtZW1vIHBsZWFzZSBpZ25vcmU='; export const ATA_INIT_UNSIGNED_TX_DURABLE_NONCE = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dv+hKJ+pxZaLwHGEyk2Svp5PfAC5ZEi/wYI1tPTHHhbpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4Wcb6evO+2606PWXzaqvJdDGxu+TC0vbg5HymAgNFL11hBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDAwMBBwAEBAAAAAQGAAIABQMIAAYAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dv+hKJ+pxZaLwHGEyk2Svp5PfAC5ZEi/wYI1tPTHHhbpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4Wcb6evO+2606PWXzaqvJdDGxu+TC0vbg5HymAgNFL11hBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDAwMBBwAEBAAAAAQGAAIABQMIAQEGABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; export const ATA_INIT_SIGNED_TX_DURABLE_NONCE = - 'AeAAb9SsPsnSJtdrDjbHgA40IpfiBnfRXXJgOyIpaXYr/CYkKIxcW02Y9L1z44sHZUY5Y/ZOmojso6UIloUsJQYBAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dv+hKJ+pxZaLwHGEyk2Svp5PfAC5ZEi/wYI1tPTHHhbpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4Wcb6evO+2606PWXzaqvJdDGxu+TC0vbg5HymAgNFL11hBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDAwMBBwAEBAAAAAQGAAIABQMIAAYAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; + 'AWTwRRrByInOqFF6vw1dQovPrORBFEE8NjoQKNGHiD6wg/Qq8pGQNDcnE1Yyf0lqViTtOn4LSsFiSj/0lHT05wYBAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dv+hKJ+pxZaLwHGEyk2Svp5PfAC5ZEi/wYI1tPTHHhbpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4Wcb6evO+2606PWXzaqvJdDGxu+TC0vbg5HymAgNFL11hBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEDAwMBBwAEBAAAAAQGAAIABQMIAQEGABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; export const ATA_INIT_UNSIGNED_DIFF_OWNER_TX = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEDBgABBQQCBgA='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEDBgABBQQCBgEB'; export const ATA_INIT_UNSIGNED_DIFF_OWNER_TX_WITH_MEMO = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYIAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAgMGAAEFBAIHAAYAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYIAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAgMGAAEFBAIHAQEGABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; export const ATA_INIT_SIGNED_DIFF_OWNER_TX = - 'AZrMhJOOrfDY+afYzND4rc4SKiIKBzNVphkU3zegZ2ja8DpvO9rX4M9rkP8odM4GJ0NRw2F5c6smcsbYBHy7dg4BAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEDBgABBQQCBgA='; + 'AQ++sg/vHv6LVFByOVYX7i5zYZnsSbXwUqleRSJeDWrjBJBLRzuq4Pu0MzFwGWV7dvLC1ZmM9tV1EaFyggkbDwgBAAUHAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEDBgABBQQCBgEB'; export const ATA_INIT_SIGNED_DIFF_OWNER_TX_WITH_MEMO = - 'AeTwOeLO0fzk7WT/DFslsgemUeYrn1+Mcp57W0tLffKkNuC76wmS51AociRlJSLQmK8VDvPZYI16RwdH97o8zw4BAAYIAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAgMGAAEFBAIHAAYAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; + 'ARaikTJC2lJ65HhVa6wDxrvzUYv4REXVNqnfWUCgEcxM4XeWa+Wn+rWar0A4cPWRAweVAs3zv44FWkeO5OypHgsBAAYIAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dvaTl6KytqClZGklXqchMVa7LR5SUmqIR88NvH96YEiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYfXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAgMGAAEFBAIHAQEGABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; export const MULTI_ATA_INIT_UNSIGNED_TX = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gan1RcZLFxRIYzJTD1K8X9Y2u4Im6H9ROPb2YoAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQIFBwACAAYDCQgABQcAAQcEAwkIAA=='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IECBQYAAgAGAwgBAQUGAAEHBAMIAQE='; export const MULTI_ATA_INIT_UNSIGNED_TX_WITH_OPTIONAL_PARAMS = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQAFBgABCAQDCQAFBgABCAcDCQA='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQEBBQYAAQgEAwkBAQUGAAEIBwMJAQE='; export const MULTI_ATA_INIT_UNSIGNED_TX_WITH_MEMO = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAgLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksXFEhjMlMPUrxf1ja7gibof1E49vZigAAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBAwUHAAIABgMKCQAFBwABBwQDCgkACAAXdGVzdCBtZW1vIHBsZWFzZSBpZ25vcmU='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQEBBQYAAQcEAwkBAQgAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; export const MULTI_ATA_INIT_UNSIGNED_TX_WITH_MEMO_OPTIONAL_PARAM = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAgLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUGAAIABgMKAAUGAAEIBAMKAAUGAAEIBwMKAAkAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAgLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUGAAIABgMKAQEFBgABCAQDCgEBBQYAAQgHAwoBAQkAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; export const MULTI_ATA_INIT_SIGNED_TX_WITH_MEMO_OPTIONAL_PARAM1 = - 'AUM2qto/NeX5CCNQZkcypMWYwGbL3XQnNzYOa+mrqMsaKyj9IQ1iws960wek2wrHixVP+KSfJ6JQVZvlR0ckggkBAAgMAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dzF+Mz0BGjJZdQeF7uPrCgtXbWr7ogQmMqLvC6kyyYVIiaTa+qMoTb2KM9ALcn34R7kFF4fMls5zHVgRd7hzYWkT51sjfIc8SlUOEwyyN8PQfvW415b3FRJS/7GNCAwbYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeZjMvy0EWLYVy8xrGjZ8R0np/vcwZiLhsbWJEBILyajJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYdEDifv3IHbw1cr91SvksbLsVBROfMcuHJXdMSzttNpe9ciwyz/5w34xprZd5zG+oxzdEyNuw4l5uTVJxVwzCdoFSlNamSkhBk0k6HFg2jh8fDW13bySu4HkH6hAQQVEjQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEEBgYAAwAHBAsABgYAAgkFBAsABgYAAQkIBAsACgAXdGVzdCBtZW1vIHBsZWFzZSBpZ25vcmU='; + 'ASF3CQ/RGlDMajbPpPbFih5ZNJp5Ndn1oQ29hsqwyKBOK+MOtcRPBrgmXXI2oSrHDqb71wcmZBpZpu1uQsdnyw4BAAgMAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dzF+Mz0BGjJZdQeF7uPrCgtXbWr7ogQmMqLvC6kyyYVIiaTa+qMoTb2KM9ALcn34R7kFF4fMls5zHVgRd7hzYWkT51sjfIc8SlUOEwyyN8PQfvW415b3FRJS/7GNCAwbYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADeZjMvy0EWLYVy8xrGjZ8R0np/vcwZiLhsbWJEBILyajJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnG+nrzvtutOj1l82qryXQxsbvkwtL24OR8pgIDRS9dYdEDifv3IHbw1cr91SvksbLsVBROfMcuHJXdMSzttNpe9ciwyz/5w34xprZd5zG+oxzdEyNuw4l5uTVJxVwzCdoFSlNamSkhBk0k6HFg2jh8fDW13bySu4HkH6hAQQVEjQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEEBgYAAwAHBAsBAQYGAAIJBQQLAQEGBgABCQgECwEBCgAXdGVzdCBtZW1vIHBsZWFzZSBpZ25vcmU='; export const MULTI_ATA_INIT_SIGNED_TX = - 'AausUJHnWQt7C4fVi/0G/yM4YYr+ddap0jwc9ZAjtuV8yePGov9pYTjOiqMlxQvLBXa5hSp7iF8LOn9lRMUCvAQBAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IECBQYAAgAGAwgABQYAAQcEAwgA'; + 'AaAgd7WADK2N7k+P9UlJFWqaGPRzy1Bso/Nwiv+3xFQ2r8rtVvudCxUjOO74+Zw7p4NO5ylDtekHuPRfvzhejg0BAAYJAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IECBQYAAgAGAwgBAQUGAAEHBAMIAQE='; export const MULTI_ATA_INIT_SIGNED_TX_OPTIONAL_PARAM = - 'AU5kYwWpsfrb0vAAJJFN+FZw5Tu8/gIGMDCB4mKCfjV4H6RUXHv7R9UEPgZAthU/I2S06iAxrjq7ImH+clnEywkBAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQAFBgABCAQDCQAFBgABCAcDCQA='; + 'AQ/kv/6GokgG99UirSYx8fPr52o/EIvK80hjjevedN7tXYB1UoA7NTQxYtR1r2269hYoWgRrhC3DT/5wY+uMdg8BAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQEBBQYAAQgEAwkBAQUGAAEIBwMJAQE='; export const MULTI_ATA_INIT_SIGNED_TX_WITH_MEMO = - 'AXpSAiyQLXOqUGMHqotsuXcV13K/Kp5gnfNilb2U5PAcmlSHs3uPpW9z31xLeFaHAawotmA8UABz3r3wuiKLmwMBAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQAFBgABBwQDCQAIABd0ZXN0IG1lbW8gcGxlYXNlIGlnbm9yZQ=='; + 'AWscK9T7QxPrJB/qH+E+V8tavpilI2WmmhpYs5zy6i2iNDETNKqCasDAA6Vpf82pZPYZhx56OEwVRsS9WPfqgwABAAcKAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWH1yLDLP/nDfjGmtl3nMb6jHN0TI27DiXm5NUnFXDMJ2gVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQMFBgACAAYDCQEBBQYAAQcEAwkBAQgAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; export const MULTI_ATA_INIT_SIGNED_TX_WITH_MEMO_OPTIONAL_PARAM = - 'AeKXd6OusitC9FNXzaRaOhKKRwjBn9mNLK6x3kDlWgBaSXwc5UVs1z9AVeIE4djqmsg8cVcAIf0h3FVkhVZIow4BAAgLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUGAAIABgMKAAUGAAEIBAMKAAUGAAEIBwMKAAkAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; + 'AbL4PXSOTsNSJdYBsdIu7A2XOk1k8DpayHsZd+yjSB3he4uQaq5Jy67Jgx/7MNHIeIRGrgvWS4dW2pIAbqTbegABAAgLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eImk2vqjKE29ijPQC3J9+Ee5BReHzJbOcx1YEXe4c2FpE+dbI3yHPEpVDhMMsjfD0H71uNeW9xUSUv+xjQgMG2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3mYzL8tBFi2FcvMaxo2fEdJ6f73MGYi4bG1iRASC8moyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZxvp6877brTo9ZfNqq8l0MbG75MLS9uDkfKYCA0UvXWHRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXvXIsMs/+cN+Maa2XecxvqMc3RMjbsOJebk1ScVcMwnaBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0G3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUGAAIABgMKAQEFBgABCAQDCgEBBQYAAQgHAwoBAQkAF3Rlc3QgbWVtbyBwbGVhc2UgaWdub3Jl'; export const tokenTransfers = { owner: 'i34VuFZY1Lz8Tg9ajAqq5MNjE3ES32uVR8oPFFtLd9F', @@ -432,15 +432,15 @@ export const MULTI_TOKEN_TRANSFER_SIGNED = export const MULTI_ASSET_TOKEN_TRANSFER_UNSIGNED = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUNCoMkjRrCRUK+mb1OrcYVsRHoGOkX5c9n9deT5Gq/d1YY19xOQg+B6cqXSn9ODw0NMlw+NO0os7hLyaFGBpYImBSE0DU4DP2SziCyqdIkA1dTOtESUHgIvbhAqzPE8m82TN7ajWa08Nplu4ugENukXhibq406iJdXhn9fMg/aoOKjj+uLLZZjiJkwlHU3Vn15l+FRIC5QMRowGMwKpBrxqakYG1L37ZDq6w2tS3G+tFODYWdhMXF+kwlYEF+3o4nVr5n/dIL/oi8hfjGlFSmwdz8RbwZtK1lLU9iyVjpUr1PEwOI2V24CciOMqaX5S23/oruLzNLutfWxG3ul8rGSsYH3TO/T+4RPYsp+1vFBiz+G+vCIZkfZgCWb8Kr753tsAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAC0OvO6sgw/Oe88FIyFZAYUpBBD7rMG3lmWOA8Q7BBajtEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQUJAAkDgJaYAAAAAAAMBAELBQAKDOCTBAAAAAAACQwEAQsDAAoM4JMEAAAAAAAJDAQCCgQACgzgkwQAAAAAAAkMBAcIBgAKDOCTBAAAAAAACQ=='; export const TOKEN_TRANSFER_UNSIGNED_WITH_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnRA4n7zuUo8ghhHczHNLMQklQMsrjVjRAPLqos7bTaXgVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksVo7gioRfc9KXiM8DXDFFshqzRNgGLqlAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUDAgkABAQAAAAGBgABBAcFCgAKBAMHBAAKDOCTBAAAAAAACQgACXRlc3QgbWVtbw=='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnRA4n7zuUo8ghhHczHNLMQklQMsrjVjRAPLqos7bTaXgVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksVo7gioRfc9KXiM8DXDFFshqzRNgGLqlAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUDAgkABAQAAAAGBgABBAcFCgEBCgQDBwQACgzgkwQAAAAAAAkIAAl0ZXN0IG1lbW8='; export const TOKEN_TRANSFER_UNSIGNED_WITH_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE_WITH_OPTIONAL_PARAMS = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dstKPy47z/Dq4I02mhBXGTbP9R3C+quPu54TJWzf9ohW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuqRgbUvftkOrrDa1Lcb60U4NhZ2ExcX6TCVgQX7ejidXPunKtWdaUXgDtculuknl1oO5Dz7CHrwvjz6emEVw9uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXgVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksVo7gioRfc9KXiM8DXDFFshqzRNgGLqlAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUDAgkABAQAAAAGBgABAwcFCgAKBAQHAwAKDOCTBAAAAAAACQgACXRlc3QgbWVtbw=='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYLAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dstKPy47z/Dq4I02mhBXGTbP9R3C+quPu54TJWzf9ohW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuqRgbUvftkOrrDa1Lcb60U4NhZ2ExcX6TCVgQX7ejidXPunKtWdaUXgDtculuknl1oO5Dz7CHrwvjz6emEVw9uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnRA4n79yB28NXK/dUr5LGy7FQUTnzHLhyV3TEs7bTaXgVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksVo7gioRfc9KXiM8DXDFFshqzRNgGLqlAAAAG3fbh12Whk9nL4UbO63msHLSF7V9bN5E6jPWFfv8AqeMy2vkvq+zotj/3pEAF5f39mvoVh1a2HFqV+QSzuNCBBAUDAgkABAQAAAAGBgABAwcFCgEBCgQEBwMACgzgkwQAAAAAAAkIAAl0ZXN0IG1lbW8='; export const MULTI_TOKEN_TRANSFER_UNSIGNED_WITH_UNIQUE_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcMAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEHBQMCCgAEBAAAAAcACQOAlpgAAAAAAAYGAAEECAULAAsEAwgEAAoM4JMEAAAAAAAJCwQDCAQACgzgkwQAAAAAAAkLBAMIBAAKDOCTBAAAAAAACQkACXRlc3QgbWVtbw=='; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcMAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEHBQMCCgAEBAAAAAcACQOAlpgAAAAAAAYGAAEECAULAQELBAMIBAAKDOCTBAAAAAAACQsEAwgEAAoM4JMEAAAAAAAJCwQDCAQACgzgkwQAAAAAAAkJAAl0ZXN0IG1lbW8='; export const MULTI_TOKEN_TRANSFER_UNSIGNED_WITH_MULTI_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE = - 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcQAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6c2OtUqiAY5oPhxdb4JRUq7kZNuFpmM/AJNk1vd/+P9XUk/WvcUIKh/GFYIG/p0g8ysNCsjsheHUzaT6XNbzQpNQ5atdI+MFzJL5dUqw4NRdw+mkmCd1N2pvGbKpLfgPC5M3tqNZrTw2mW7i6AQ26ReGJurjTqIl1eGf18yD9qg4m/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4Wyjj+uLLZZjiJkwlHU3Vn15l+FRIC5QMRowGMwKpBrxqakYG1L37ZDq6w2tS3G+tFODYWdhMXF+kwlYEF+3o4nVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAA0QOJ+87lKPIIYR3MxzSzEJJUDLK41Y0QDy6qLO202l4FSlNamSkhBk0k6HFg2jh8fDW13bySu4HkH6hAQQVEjQan1RcZLFaO4IqEX3PSl4jPA1wxRbIas0TYBi6pQAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQkJAwUOAAQEAAAACwAJA4CWmAAAAAAACgYAAggMCQ8ACgYAAwQMCQ8ACgYAAQcMCQ8ADwQGDAgACgzgkwQAAAAAAAkPBAYMBAAKDOCTBAAAAAAACQ8EBgwHAAoM4JMEAAAAAAAJDQAJdGVzdCBtZW1v'; + 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcQAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6c2OtUqiAY5oPhxdb4JRUq7kZNuFpmM/AJNk1vd/+P9XUk/WvcUIKh/GFYIG/p0g8ysNCsjsheHUzaT6XNbzQpNQ5atdI+MFzJL5dUqw4NRdw+mkmCd1N2pvGbKpLfgPC5M3tqNZrTw2mW7i6AQ26ReGJurjTqIl1eGf18yD9qg4m/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4Wyjj+uLLZZjiJkwlHU3Vn15l+FRIC5QMRowGMwKpBrxqakYG1L37ZDq6w2tS3G+tFODYWdhMXF+kwlYEF+3o4nVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WQMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAA0QOJ+87lKPIIYR3MxzSzEJJUDLK41Y0QDy6qLO202l4FSlNamSkhBk0k6HFg2jh8fDW13bySu4HkH6hAQQVEjQan1RcZLFaO4IqEX3PSl4jPA1wxRbIas0TYBi6pQAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQkJAwUOAAQEAAAACwAJA4CWmAAAAAAACgYAAggMCQ8BAQoGAAMEDAkPAQEKBgABBwwJDwEBDwQGDAgACgzgkwQAAAAAAAkPBAYMBAAKDOCTBAAAAAAACQ8EBgwHAAoM4JMEAAAAAAAJDQAJdGVzdCBtZW1v'; export const SINGLE_TOKEN_TRANSFER_WITH_ATA_CREATION = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAYJQlxb88UapZ0T6mWzABhtX/lDiPrAaUMbsl4vmXpBgd4Ya1unhtoJ3Rc6KaGQND1nozFD8KFn3Y4g9AH/pAefh3YVdbX/1crWlQ+Gw+N/Z/AQevfYXSftzGWYuTBFDxo/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMlyWPTiSJ8bs9ECkUjg2DC1oTmdr/EIQEjnvY2+n4WaR1+rfN0q5fmLy3KefW6kwPonSxd9hYC4DVZ3FlWyrI0QOJ+87lKPIIYR3MxzSzEJJUDLK41Y0QDy6qLO202l4Gp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpEHPqtGYOjjqVfHgg1S32M4qMe2AQO/kDy1+CEYQwkisCBAcAAQUGAwgHAAgEAgYBAAoMECcAAAAAAAAJ'; @@ -481,7 +481,7 @@ export const TOKEN_TRANSFERV2_UNSIGNED_TX_WITH_MEMO_AND_DURABLE_NONCE = export const TOKEN_TRANSFERV2_UNSIGNED_TX_WITHOUT_MEMO = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEDB9PhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6eV0vFcDDm3en053wiq58b8EOSxYYqVW4hvmokzTNXhbKkYG1L37ZDq6w2tS3G+tFODYWdhMXF+kwlYEF+3o4nVAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAADRA4n7zuUo8ghhHczHNLMQklQMsrjVjRAPLqos7bTaXgbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IECBAAJA4CWmAAAAAAABgQCBQMBCgzgkwQAAAAAAAk='; export const TOKEN_TRANSFERV2_SIGNED_TX_WITH_WITH_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE = - 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6YFuGKbbmvYuYOEQbChKG+WuYI2fE347NqZ69yEMwLgt8J9pcpMO6phb8lpGMXDWE90iihiM6rJKQ1G/3CBAAAgAHDdPhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEFBgMDCwEEBAAAAAgACQOAlpgAAAAAAAcGAQIFCQYMAAwEBAkFAQoM4JMEAAAAAAAJCgAJdGVzdCBtZW1v'; + 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkS+NIbUwxTqY0aRjI7m1Kh0Sxpo8jEFr3klPUz5oPqVfAPROrStOG+Niph0pcBhS0RjM3kGwjGQfRvy/tpuIMAgEHDdPhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEFBgMDCwEEBAAAAAgACQOAlpgAAAAAAAcGAAIFCQYMAQEMBAQJBQEKDOCTBAAAAAAACQoACXRlc3QgbWVtbw=='; export const TOKEN_TRANSFERV2_SIGNED_TX_WITH_MEMO_AND_DURABLE_NONCE = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADqJhmEt88zLxgKgZR3AggYCapll2gaJEFoMD2K8+RWeZDp/N56dg16DZKy1erGENDJtUSFQ/eOOXxt9YcjQGQHAgEGC9PhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dv+hKJ+pxZaLwHGEyk2Svp5PfAC5ZEi/wYI1tPTHHhbpXS8VwMObd6fTnfCKrnxvwQ5LFhipVbiG+aiTNM1eFsqRgbUvftkOrrDa1Lcb60U4NhZ2ExcX6TCVgQX7ejidUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMGRm/lIRcy/+ytunLDm+e8jOW7xfcSayxDmzpAAAAA0QOJ+87lKPIIYR3MxzSzEJJUDLK41Y0QDy6qLO202l4FSlNamSkhBk0k6HFg2jh8fDW13bySu4HkH6hAQQVEjQan1RcZLFaO4IqEX3PSl4jPA1wxRbIas0TYBi6pQAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQQFAwIJAQQEAAAABgAJA4CWmAAAAAAACgQDBwQBCgzgkwQAAAAAAAkIAAl0ZXN0IG1lbW8='; export const MULTI_TOKEN_TRANSFERV2_SIGNED = @@ -493,7 +493,7 @@ export const NATIVE_AND_TOKEN_TRANSFERV2_UNSIGNED = export const MULTI_NATIVE_AND_TOKEN_TRANSFERV2_UNSIGNED = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAECNPhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0EAxPE0fqi8zYGKbihafYdJgknwg8wIfK86jxD3ILOvGakYG1L37ZDq6w2tS3G+tFODYWdhMXF+kwlYEF+3o4nVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQUFAAkDgJaYAAAAAAAEAgEDDAIAAADgkwQAAAAAAAcEAgYDAQoM4JMEAAAAAAAJBwQCBgMBCgzgkwQAAAAAAAkHBAIGAwEKDOCTBAAAAAAACQ=='; export const TOKEN_TRANSFERV2_SIGNED_TX_WITH_WITH_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE_WITH_OPTIONAL_PARAMS = - 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD3tn3W4bzL6vRS+2qoSg8WKLmjxgsLrIG/4kRy5n5Ie1+t8zsLtocwc8ulKU5i6g6oO3lTCglw6Vgu6Jm5Mu4FAgAHDdPhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dstKPy47z/Dq4I02mhBXGTbP9R3C+quPu54TJWzf9ohW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuqRgbUvftkOrrDa1Lcb60U4NhZ2ExcX6TCVgQX7ejidXPunKtWdaUXgDtculuknl1oO5Dz7CHrwvjz6emEVw9uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifv3IHbw1cr91SvksbLsVBROfMcuHJXdMSzttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEFBgMDCwEEBAAAAAgACQOAlpgAAAAAAAcGAQIECQYMAAwEBQkEAQoM4JMEAAAAAAAJCgAJdGVzdCBtZW1v'; + 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8Bh4SwPyM+w/7u+O7F2y3OWl44bkGt8pe3zO4cOtv0Qrw2i25PI7OMae3GzXts3VcQkA3rm9ESHaQuJcn7RYLAgEHDdPhdfVnHvE4DTw6gLpHWddJ/hL8IhXVdS3cKq2ekMAfAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dstKPy47z/Dq4I02mhBXGTbP9R3C+quPu54TJWzf9ohW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuqRgbUvftkOrrDa1Lcb60U4NhZ2ExcX6TCVgQX7ejidXPunKtWdaUXgDtculuknl1oO5Dz7CHrwvjz6emEVw9uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifv3IHbw1cr91SvksbLsVBROfMcuHJXdMSzttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEFBgMDCwEEBAAAAAgACQOAlpgAAAAAAAcGAAIECQYMAQEMBAUJBAEKDOCTBAAAAAAACQoACXRlc3QgbWVtbw=='; export const JITO_STAKE_POOL_DATA_ENCODED = 'AUUePdUNO3uFNgRcK3rC7CWUc+vCWuO8vh++sX1S+8e+eXhXwruGsaac0PTcoWwisNzj3eyWuEBcCPHEcDrQj9NUtd6+o5sz4PHc+gqPYiqVuLTrluhPL6HjF2cPHpbB2P0j4HUJut3t/bUWqQuRl7tQR0MlXQ43xf9dzookHu3EMZ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4f/NFB6YMsrxCtkXSVyg8nG1spPNRwJ+pzcAftQOs5oL0J5qP+7PmQMuHB32uXItyzY057jjRAk2vDSwzByOtSHwbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCpMX/jsf9cOACrkYQCkRwuAD0DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADoAwAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6AMAAAAAAAABAAAAAAAAAADS9oX3AxMuAHGG8eUtTDgAAwAAAAAAAAEAAAAAAAAAAPdO5G5V4RQApItSanmLFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA='; diff --git a/modules/sdk-coin-sol/test/unit/solInstructionFactory.ts b/modules/sdk-coin-sol/test/unit/solInstructionFactory.ts index 03a9f4c144..1acb860d22 100644 --- a/modules/sdk-coin-sol/test/unit/solInstructionFactory.ts +++ b/modules/sdk-coin-sol/test/unit/solInstructionFactory.ts @@ -6,7 +6,7 @@ import { InstructionBuilderTypes, MEMO_PROGRAM_PK } from '../../src/lib/constant import { InstructionParams } from '../../src/lib/iface'; import { PublicKey, SystemProgram, TransactionInstruction } from '@solana/web3.js'; import { - createAssociatedTokenAccountInstruction, + createAssociatedTokenAccountIdempotentInstruction, createTransferCheckedInstruction, createMintToInstruction, createBurnInstruction, @@ -14,6 +14,7 @@ import { createTransferCheckedWithFeeInstruction, } from '@solana/spl-token'; import BigNumber from 'bignumber.js'; +import { isIdempotentAtaInstruction } from '../../src/lib/utils'; describe('Instruction Builder Tests: ', function () { describe('Succeed ', function () { @@ -109,14 +110,43 @@ describe('Instruction Builder Tests: ', function () { }; const result = solInstructionFactory(createATAParams); - should.deepEqual(result, [ - createAssociatedTokenAccountInstruction( - new PublicKey(payerAddress), - new PublicKey(ataAddress), - new PublicKey(ownerAddress), - new PublicKey(mintAddress) - ), - ]); + const expected = createAssociatedTokenAccountIdempotentInstruction( + new PublicKey(payerAddress), + new PublicKey(ataAddress), + new PublicKey(ownerAddress), + new PublicKey(mintAddress) + ); + should.deepEqual(result, [expected]); + isIdempotentAtaInstruction(result[0]).should.equal(true); + }); + + it('Create associated token account for Token-2022', () => { + const mintAddress = testData.associatedTokenAccounts.mintId; + const ataAddress = testData.associatedTokenAccounts.accounts[0].ata; + const ownerAddress = testData.associatedTokenAccounts.accounts[0].pub; + const payerAddress = testData.associatedTokenAccounts.accounts[0].pub; + const createATAParams: InstructionParams = { + type: InstructionBuilderTypes.CreateAssociatedTokenAccount, + params: { + mintAddress, + ataAddress, + ownerAddress, + payerAddress, + tokenName: testData.associatedTokenAccounts.mint, + programId: TOKEN_2022_PROGRAM_ID.toString(), + }, + }; + + const result = solInstructionFactory(createATAParams); + const expected = createAssociatedTokenAccountIdempotentInstruction( + new PublicKey(payerAddress), + new PublicKey(ataAddress), + new PublicKey(ownerAddress), + new PublicKey(mintAddress), + TOKEN_2022_PROGRAM_ID + ); + should.deepEqual(result, [expected]); + isIdempotentAtaInstruction(result[0]).should.equal(true); }); it('Token Transfer', () => { diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts index b555b330b0..618e1ee2c5 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts @@ -797,4 +797,48 @@ describe('Sol Token Transfer Builder', () => { ).throwError('Invalid token name, got: ' + invalidTokenName); }); }); + + describe('Create ATA rent payer selection', () => { + const feePayerAccount = new KeyPair(testData.feePayerAccount).getKeys(); + + before(async () => { + ataAddress = await Utils.getAssociatedTokenAccountAddress(mintUSDC, otherAccount.pub); + }); + + it('uses feePayer as Create-ATA rent payer when feePayer is set', async () => { + const txBuilder = factory.getTokenTransferBuilder(); + txBuilder.nonce(recentBlockHash); + txBuilder.feePayer(feePayerAccount.pub); + txBuilder.sender(walletPK); + txBuilder.send({ address: otherAccount.pub, amount, tokenName: nameUSDC }); + txBuilder.createAssociatedTokenAccount({ + ownerAddress: otherAccount.pub, + tokenName: nameUSDC, + ataAddress, + }); + txBuilder.setPriorityFee(priorityFee); + const tx = await txBuilder.build(); + const createAta = tx.toJson().instructionsData.find((i) => i.type === 'CreateAssociatedTokenAccount'); + should.exist(createAta); + createAta.params.payerAddress.should.equal(feePayerAccount.pub); + createAta.params.payerAddress.should.not.equal(walletPK); + }); + + it('falls back to sender as Create-ATA rent payer when feePayer is unset', async () => { + const txBuilder = factory.getTokenTransferBuilder(); + txBuilder.nonce(recentBlockHash); + txBuilder.sender(walletPK); + txBuilder.send({ address: otherAccount.pub, amount, tokenName: nameUSDC }); + txBuilder.createAssociatedTokenAccount({ + ownerAddress: otherAccount.pub, + tokenName: nameUSDC, + ataAddress, + }); + txBuilder.setPriorityFee(priorityFee); + const tx = await txBuilder.build(); + const createAta = tx.toJson().instructionsData.find((i) => i.type === 'CreateAssociatedTokenAccount'); + should.exist(createAta); + createAta.params.payerAddress.should.equal(walletPK); + }); + }); }); diff --git a/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts b/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts index 60cd1ebbf8..1642e994e9 100644 --- a/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts +++ b/modules/sdk-coin-sol/test/unit/transactionBuilder/transferBuilderV2.ts @@ -460,7 +460,7 @@ describe('Sol Transfer Builder V2', () => { mintAddress: mintUSDC, ataAddress: ataAddress, ownerAddress: otherAccount.pub, - payerAddress: walletPK, + payerAddress: feePayerAccount.pub, tokenName: nameUSDC, programId: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', }); @@ -530,7 +530,7 @@ describe('Sol Transfer Builder V2', () => { mintAddress: mintAMS, ataAddress: '8KLnroP6hHkr1ZsQL4k6A3i2yhhnv2kr2Teedx7a26Eg', ownerAddress: otherAccount.pub, - payerAddress: walletPK, + payerAddress: feePayerAccount.pub, tokenName: nameAMS, programId: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL', }); @@ -873,4 +873,56 @@ describe('Sol Transfer Builder V2', () => { ); }); }); + + describe('Create ATA rent payer selection', () => { + before(async () => { + ataAddress = await Utils.getAssociatedTokenAccountAddress(mintUSDC, otherAccount.pub); + }); + + it('uses feePayer as Create-ATA rent payer when feePayer is set', async () => { + const txBuilder = factory.getTransferBuilderV2(); + txBuilder.nonce(recentBlockHash); + txBuilder.feePayer(feePayerAccount.pub); + txBuilder.sender(walletPK); + txBuilder.send({ address: otherAccount.pub, amount, tokenName: nameUSDC }); + txBuilder.createAssociatedTokenAccount({ ownerAddress: otherAccount.pub, tokenName: nameUSDC }); + txBuilder.setPriorityFee(priorityFee); + const tx = await txBuilder.build(); + const createAta = tx.toJson().instructionsData.find((i) => i.type === 'CreateAssociatedTokenAccount'); + should.exist(createAta); + createAta.params.payerAddress.should.equal(feePayerAccount.pub); + createAta.params.payerAddress.should.not.equal(walletPK); + }); + + it('falls back to sender as Create-ATA rent payer when feePayer is unset', async () => { + const txBuilder = factory.getTransferBuilderV2(); + txBuilder.nonce(recentBlockHash); + txBuilder.sender(walletPK); + txBuilder.send({ address: otherAccount.pub, amount, tokenName: nameUSDC }); + txBuilder.createAssociatedTokenAccount({ ownerAddress: otherAccount.pub, tokenName: nameUSDC }); + txBuilder.setPriorityFee(priorityFee); + const tx = await txBuilder.build(); + const createAta = tx.toJson().instructionsData.find((i) => i.type === 'CreateAssociatedTokenAccount'); + should.exist(createAta); + createAta.params.payerAddress.should.equal(walletPK); + }); + + it('emits idempotent Create-ATA instruction data', async () => { + const txBuilder = factory.getTransferBuilderV2(); + txBuilder.nonce(recentBlockHash); + txBuilder.feePayer(feePayerAccount.pub); + txBuilder.sender(walletPK); + txBuilder.send({ address: otherAccount.pub, amount, tokenName: nameUSDC }); + txBuilder.createAssociatedTokenAccount({ ownerAddress: otherAccount.pub, tokenName: nameUSDC }); + txBuilder.setPriorityFee(priorityFee); + const tx = await txBuilder.build(); + // Re-parse via factory to get wire instructions and assert idempotent discriminator. + const rebuilt = await factory.from(tx.toBroadcastFormat()).build(); + const raw = rebuilt.toBroadcastFormat(); + should.equal(Utils.isValidRawTransaction(raw), true); + // Explain/instruction path already accepts idempotent ATA; ensure create is present. + const createAta = rebuilt.toJson().instructionsData.find((i) => i.type === 'CreateAssociatedTokenAccount'); + should.exist(createAta); + }); + }); });