@bitgo-beta/sdk-coin-sol 7.6.4-beta.31 → 7.6.4-beta.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/bigint-buffer-guard.d.ts.map +1 -0
- package/dist/cjs/src/bigint-buffer-guard.js +29 -0
- package/dist/cjs/src/config/token2022StaticConfig.d.ts.map +1 -0
- package/dist/cjs/src/config/token2022StaticConfig.js +50 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +1 -1
- package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/ataInitializationBuilder.js +196 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/closeAtaBuilder.js +69 -0
- package/dist/{src → cjs/src}/lib/constants.d.ts +24 -0
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +196 -0
- package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/customInstructionBuilder.js +289 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/src/lib/explainTransactionWasm.js +264 -0
- package/dist/{src → cjs/src}/lib/iface.d.ts +20 -2
- package/dist/cjs/src/lib/iface.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface.js +7 -0
- package/dist/{src → cjs/src}/lib/index.d.ts +1 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/index.js +4 -2
- package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +1 -0
- package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/instructionParamsFactory.js +1059 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +63 -0
- package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
- package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
- package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/solInstructionFactory.js +595 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.js +120 -0
- package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
- package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDeactivateBuilder.js +208 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.js +120 -0
- package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
- package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingWithdrawBuilder.js +78 -0
- package/dist/cjs/src/lib/token2022Config.d.ts.map +1 -0
- package/dist/cjs/src/lib/token2022Config.js +27 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.js +188 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +612 -0
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +380 -0
- package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +5 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +209 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +70 -0
- package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilderV2.js +210 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +595 -0
- package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +15 -0
- package/dist/{src → cjs/src}/sol.d.ts +40 -0
- package/dist/cjs/src/sol.d.ts.map +1 -0
- package/dist/cjs/src/sol.js +1402 -0
- package/dist/cjs/src/solToken.d.ts.map +1 -0
- package/dist/cjs/src/solToken.js +69 -0
- package/dist/cjs/src/tsol.d.ts.map +1 -0
- package/dist/cjs/src/tsol.js +24 -0
- package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
- package/dist/cjs/test/fixtures/sol.js +1433 -0
- package/dist/{test → cjs/test}/resources/sol.d.ts +27 -27
- package/dist/cjs/test/resources/sol.d.ts.map +1 -0
- package/dist/cjs/test/resources/sol.js +320 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/test/unit/explainTransactionWasm.js +26 -0
- package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
- package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
- package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/instructionParamsFactory.js +412 -0
- package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
- package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
- package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
- package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
- package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
- package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
- package/dist/cjs/test/unit/keyPair.js +177 -0
- package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
- package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
- package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
- package/dist/cjs/test/unit/sol.js +3326 -0
- package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/solInstructionFactory.js +454 -0
- package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
- package/dist/cjs/test/unit/solToken.js +31 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +1108 -0
- package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
- package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +471 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
- package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +787 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +286 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +862 -0
- package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
- package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
- package/dist/cjs/test/unit/utils.js +517 -0
- package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/versionedTransaction.js +207 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/bigint-buffer-guard.d.ts +1 -0
- package/dist/esm/config/token2022StaticConfig.d.ts +3 -0
- package/dist/esm/config/token2022StaticConfig.js +47 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/lib/ataInitializationBuilder.d.ts +47 -0
- package/dist/esm/lib/ataInitializationBuilder.js +156 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts +19 -0
- package/dist/esm/lib/closeAtaBuilder.js +62 -0
- package/dist/esm/lib/constants.d.ts +164 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +193 -0
- package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
- package/dist/esm/lib/customInstructionBuilder.js +282 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/esm/lib/explainTransactionWasm.js +261 -0
- package/dist/esm/lib/iface.d.ts +262 -0
- package/dist/esm/lib/iface.d.ts.map +1 -0
- package/dist/esm/lib/iface.js +3 -0
- package/dist/esm/lib/index.d.ts +23 -0
- package/dist/{src → esm}/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +23 -0
- package/dist/esm/lib/instructionParamsFactory.d.ts +13 -0
- package/dist/{src → esm}/lib/instructionParamsFactory.d.ts.map +1 -1
- package/dist/esm/lib/instructionParamsFactory.js +1052 -0
- package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
- package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
- package/dist/esm/lib/keyPair.d.ts +26 -0
- package/dist/esm/lib/keyPair.js +59 -0
- package/dist/esm/lib/messages/index.d.ts +2 -0
- package/dist/esm/lib/messages/index.js +2 -0
- package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
- package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
- package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
- package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
- package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
- package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
- package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/esm/lib/solInstructionFactory.js +589 -0
- package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
- package/dist/esm/lib/stakingActivateBuilder.js +113 -0
- package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
- package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
- package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
- package/dist/{src → esm}/lib/stakingDeactivateBuilder.js +31 -38
- package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
- package/dist/esm/lib/stakingDelegateBuilder.js +113 -0
- package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
- package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
- package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
- package/dist/esm/lib/stakingWithdrawBuilder.js +71 -0
- package/dist/esm/lib/token2022Config.d.ts +44 -0
- package/dist/esm/lib/token2022Config.js +23 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts +41 -0
- package/dist/esm/lib/tokenTransferBuilder.js +181 -0
- package/dist/esm/lib/transaction.d.ts +103 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +605 -0
- package/dist/esm/lib/transactionBuilder.d.ts +128 -0
- package/dist/esm/lib/transactionBuilder.js +373 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +120 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilderFactory.js +205 -0
- package/dist/esm/lib/transferBuilder.d.ts +26 -0
- package/dist/esm/lib/transferBuilder.js +63 -0
- package/dist/esm/lib/transferBuilderV2.d.ts +43 -0
- package/dist/esm/lib/transferBuilderV2.js +203 -0
- package/dist/esm/lib/utils.d.ts +200 -0
- package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +558 -0
- package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
- package/dist/esm/lib/walletInitializationBuilder.js +64 -0
- package/dist/esm/register.d.ts +3 -0
- package/dist/esm/register.js +11 -0
- package/dist/esm/sol.d.ts +267 -0
- package/dist/esm/sol.d.ts.map +1 -0
- package/dist/esm/sol.js +1361 -0
- package/dist/esm/solToken.d.ts +37 -0
- package/dist/esm/solToken.js +65 -0
- package/dist/esm/tsol.d.ts +11 -0
- package/dist/esm/tsol.js +20 -0
- package/package.json +34 -15
- package/dist/src/config/token2022StaticConfig.js +0 -50
- package/dist/src/lib/ataInitializationBuilder.js +0 -196
- package/dist/src/lib/closeAtaBuilder.js +0 -69
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -171
- package/dist/src/lib/customInstructionBuilder.js +0 -289
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -7
- package/dist/src/lib/instructionParamsFactory.js +0 -1036
- package/dist/src/lib/jitoStakePoolOperations.js +0 -200
- package/dist/src/lib/keyPair.js +0 -63
- package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
- package/dist/src/lib/solInstructionFactory.js +0 -572
- package/dist/src/lib/stakingActivateBuilder.js +0 -120
- package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
- package/dist/src/lib/stakingDelegateBuilder.js +0 -120
- package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
- package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
- package/dist/src/lib/token2022Config.js +0 -27
- package/dist/src/lib/tokenTransferBuilder.js +0 -188
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -595
- package/dist/src/lib/transactionBuilder.js +0 -380
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -202
- package/dist/src/lib/transferBuilder.js +0 -70
- package/dist/src/lib/transferBuilderV2.js +0 -210
- package/dist/src/lib/utils.js +0 -589
- package/dist/src/lib/walletInitializationBuilder.js +0 -71
- package/dist/src/register.js +0 -15
- package/dist/src/sol.d.ts.map +0 -1
- package/dist/src/sol.js +0 -1285
- package/dist/src/solToken.js +0 -69
- package/dist/src/tsol.js +0 -24
- package/dist/test/fixtures/sol.js +0 -1433
- package/dist/test/resources/sol.d.ts.map +0 -1
- package/dist/test/resources/sol.js +0 -320
- package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
- package/dist/test/unit/fixtures/solBackupKey.js +0 -8
- package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/getBuilderFactory.js +0 -10
- package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
- package/dist/test/unit/instructionParamsFactory.js +0 -412
- package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
- package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
- package/dist/test/unit/keyPair.js +0 -177
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
- package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
- package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
- package/dist/test/unit/sol.js +0 -3108
- package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
- package/dist/test/unit/solInstructionFactory.js +0 -454
- package/dist/test/unit/solToken.d.ts.map +0 -1
- package/dist/test/unit/solToken.js +0 -31
- package/dist/test/unit/transaction.d.ts.map +0 -1
- package/dist/test/unit/transaction.js +0 -983
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
- package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
- package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
- package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
- package/dist/test/unit/utils.js +0 -517
- package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
- package/dist/test/unit/versionedTransaction.js +0 -207
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
- /package/dist/{src → cjs/src}/config/token2022StaticConfig.d.ts +0 -0
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/closeAtaBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/token2022Config.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilderV2.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/register.d.ts +0 -0
- /package/dist/{src → cjs/src}/solToken.d.ts +0 -0
- /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
- /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
- /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
- /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
- /package/dist/{src → esm}/config/token2022StaticConfig.d.ts.map +0 -0
- /package/dist/{src → esm}/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/ataInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/closeAtaBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/token2022Config.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tokenTransferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilderV2.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/register.d.ts.map +0 -0
- /package/dist/{src → esm}/solToken.d.ts.map +0 -0
- /package/dist/{src → esm}/tsol.d.ts.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"versionedTransaction.d.ts","sourceRoot":"","sources":["../../../test/unit/versionedTransaction.ts"],"names":[],"mappings":""}
|
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
const should_1 = __importDefault(require("should"));
|
|
40
|
-
const src_1 = require("../../src");
|
|
41
|
-
const testData = __importStar(require("../resources/sol"));
|
|
42
|
-
const getBuilderFactory_1 = require("./getBuilderFactory");
|
|
43
|
-
const bs58_1 = __importDefault(require("bs58"));
|
|
44
|
-
const { VersionedTransaction } = require('@solana/web3.js');
|
|
45
|
-
describe('Sol Jupiter Swap Transaction', () => {
|
|
46
|
-
const walletKeyPair = new src_1.KeyPair(testData.authAccount);
|
|
47
|
-
const wallet = walletKeyPair.getKeys();
|
|
48
|
-
it('should preserve instructions and ALTs when building and signing', async function () {
|
|
49
|
-
// Jupiter Swap Transaction (Versioned)
|
|
50
|
-
const versionedTransaction = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAFDTWoM5DBCGn7cn5aV56fomo6mhD2K1c5XYhQIan41E6dG9t06ox6DMdvVuBnSEATyN/8qIq246iO5aDm1jm82x4wM40FR8Q7xSZUpUtB0lbvelaZ46oRQ2GM9hWGMukHG1EUsA1R9ZO55ClUvNMyw8IQOrfRmu3ONG50oNeluT4LgaOacN+I4d0HStcu+oh0no4XXgVUwjzk5+egiUaQDkCCjXAlSDAb46ahLAfWeKOqzO/HC/z2WgRk8RS1yc6heMZzBbR3SPDwrNvWlCZGaETaixiH9ufdOJ823Gv+MnxH1SOu6TCsX1+TMskj94D3NElDpado8okFQbUuzaijU9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIyXJY9OJInxuz0QKRSODYMLWhOZ2v8QhASOe9jb6fhZAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAAEedVb8jHAbu50xW7OaBUH/bGy3qP0jlECsc2iVrwTjwbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp+mGpF4I4ZrV12bapJ7p61Babt3ty7HYDUKtMso38OYgHCgAFAooyBAAKAAkDoQ4BAAAAAAAIAgAFDAIAAAAwKyIAAAAAAAsFBQAgDAgJk/F7ZPSErnb/CQYABwAdCAwBAQs/HgAFDg0HIB0MDBwLJg8mEBIODSAdESYeDAwkJgIDBgsmGyYWGQ4EICUaJh4MDCQmGBcBCyIjDCEeBA0VExQfMtGYU5N8/tjpC0ANAwAAAAAAWqwAAAAAAAAyAAAAAAADAAAAJiwaAAMm5AwAAgoQJwIDDAMFAAABCQQpv5UHKk+/BN9xdZPnOLzMIScoFcJHGoDZ+fVVsNSEJQI0IwUAKA4CFyo9SDjsPdfWXAdMF0mu2+xZbw9rbR6rzNAEeFkLmyKwBGBmYWUAMHCJ6Oi0A1Qjpjp1Yv3xP+sPLm2qJ//TKZd5Z9KzjvEDwb3CA77DwOtKd1MCu6h4XJjC42yc8TcL92nhzFUR6HLW3XrAIZOvBo6Ki5CRjQOMk5Q=';
|
|
51
|
-
const originalDeserialized = VersionedTransaction.deserialize(Buffer.from(versionedTransaction, 'base64'));
|
|
52
|
-
const versionedInstructions = originalDeserialized.message.compiledInstructions.map((ix) => ({
|
|
53
|
-
programIdIndex: ix.programIdIndex,
|
|
54
|
-
accountKeyIndexes: ix.accountKeyIndexes,
|
|
55
|
-
data: bs58_1.default.encode(ix.data),
|
|
56
|
-
}));
|
|
57
|
-
const addressLookupTables = originalDeserialized.message.addressTableLookups?.map((lookup) => ({
|
|
58
|
-
accountKey: lookup.accountKey.toBase58(),
|
|
59
|
-
writableIndexes: lookup.writableIndexes,
|
|
60
|
-
readonlyIndexes: lookup.readonlyIndexes,
|
|
61
|
-
})) || [];
|
|
62
|
-
const staticAccountKeys = originalDeserialized.message.staticAccountKeys.map((key) => key.toBase58());
|
|
63
|
-
staticAccountKeys[0] = testData.authAccount.pub; // Replace fee payer with our test account
|
|
64
|
-
const versionedTransactionData = {
|
|
65
|
-
versionedInstructions,
|
|
66
|
-
addressLookupTables,
|
|
67
|
-
staticAccountKeys,
|
|
68
|
-
messageHeader: originalDeserialized.message.header,
|
|
69
|
-
recentBlockhash: originalDeserialized.message.recentBlockhash,
|
|
70
|
-
};
|
|
71
|
-
const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
|
|
72
|
-
const txBuilder = factory.getCustomInstructionBuilder();
|
|
73
|
-
// Build transaction from versioned transaction data
|
|
74
|
-
txBuilder.fromVersionedTransactionData(versionedTransactionData);
|
|
75
|
-
txBuilder.nonce(testData.blockHashes.validBlockHashes[0]);
|
|
76
|
-
// Build unsigned transaction
|
|
77
|
-
const txUnsigned = (await txBuilder.build());
|
|
78
|
-
should_1.default.exist(txUnsigned);
|
|
79
|
-
txUnsigned.isVersionedTransaction().should.be.true();
|
|
80
|
-
should_1.default.exist(txUnsigned.toBroadcastFormat());
|
|
81
|
-
// Sign the transaction
|
|
82
|
-
txBuilder.sign({ key: wallet.prv });
|
|
83
|
-
const tx = (await txBuilder.build());
|
|
84
|
-
const rawTx = tx.toBroadcastFormat();
|
|
85
|
-
tx.isVersionedTransaction().should.be.true();
|
|
86
|
-
should_1.default.exist(rawTx);
|
|
87
|
-
const txBuilder2 = factory.getCustomInstructionBuilder();
|
|
88
|
-
txBuilder2.fromVersionedTransactionData(versionedTransactionData);
|
|
89
|
-
txBuilder2.nonce(testData.blockHashes.validBlockHashes[0]);
|
|
90
|
-
const tx2 = await txBuilder2.build();
|
|
91
|
-
should_1.default.equal(tx2.signablePayload.toString('hex'), txUnsigned.signablePayload.toString('hex'));
|
|
92
|
-
should_1.default.equal(tx2.type, txUnsigned.type);
|
|
93
|
-
// Verify we can add signature manually
|
|
94
|
-
const signed = tx.signature[0];
|
|
95
|
-
const txBuilder3 = factory.getCustomInstructionBuilder();
|
|
96
|
-
txBuilder3.fromVersionedTransactionData(versionedTransactionData);
|
|
97
|
-
txBuilder3.nonce(testData.blockHashes.validBlockHashes[0]);
|
|
98
|
-
await txBuilder3.addSignature({ pub: wallet.pub }, Buffer.from(bs58_1.default.decode(signed)));
|
|
99
|
-
const signedTx = await txBuilder3.build();
|
|
100
|
-
should_1.default.equal(signedTx.type, tx.type);
|
|
101
|
-
const rawSignedTx = signedTx.toBroadcastFormat();
|
|
102
|
-
should_1.default.equal(rawSignedTx, rawTx);
|
|
103
|
-
const signedDeserialized = VersionedTransaction.deserialize(Buffer.from(rawTx, 'base64'));
|
|
104
|
-
// Verify all instructions are preserved
|
|
105
|
-
const origInstructions = originalDeserialized.message.compiledInstructions;
|
|
106
|
-
const signedInstructions = signedDeserialized.message.compiledInstructions;
|
|
107
|
-
should_1.default.equal(origInstructions.length, signedInstructions.length, 'Number of instructions should match');
|
|
108
|
-
for (let i = 0; i < origInstructions.length; i++) {
|
|
109
|
-
should_1.default.equal(origInstructions[i].programIdIndex, signedInstructions[i].programIdIndex, `Instruction ${i}: programIdIndex should match`);
|
|
110
|
-
should_1.default.deepEqual(origInstructions[i].accountKeyIndexes, signedInstructions[i].accountKeyIndexes, `Instruction ${i}: accountKeyIndexes should match`);
|
|
111
|
-
should_1.default.equal(Buffer.from(origInstructions[i].data).toString('hex'), Buffer.from(signedInstructions[i].data).toString('hex'), `Instruction ${i}: data should match`);
|
|
112
|
-
}
|
|
113
|
-
// Verify all ALTs are preserved
|
|
114
|
-
const origALTs = originalDeserialized.message.addressTableLookups || [];
|
|
115
|
-
const signedALTs = signedDeserialized.message.addressTableLookups || [];
|
|
116
|
-
should_1.default.equal(origALTs.length, signedALTs.length, 'Number of ALTs should match');
|
|
117
|
-
for (let i = 0; i < origALTs.length; i++) {
|
|
118
|
-
should_1.default.equal(origALTs[i].accountKey.toBase58(), signedALTs[i].accountKey.toBase58(), `ALT ${i}: accountKey should match`);
|
|
119
|
-
should_1.default.deepEqual(origALTs[i].writableIndexes, signedALTs[i].writableIndexes, `ALT ${i}: writableIndexes should match`);
|
|
120
|
-
should_1.default.deepEqual(origALTs[i].readonlyIndexes, signedALTs[i].readonlyIndexes, `ALT ${i}: readonlyIndexes should match`);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
it('should automatically inject nonce advance instruction when using durable nonce with versioned transactions', async function () {
|
|
124
|
-
// Simple transaction with one memo instruction
|
|
125
|
-
const versionedTransactionData = {
|
|
126
|
-
versionedInstructions: [
|
|
127
|
-
{
|
|
128
|
-
programIdIndex: 1,
|
|
129
|
-
accountKeyIndexes: [0],
|
|
130
|
-
data: bs58_1.default.encode(Buffer.from('Hello Versioned Tx', 'utf-8')),
|
|
131
|
-
},
|
|
132
|
-
],
|
|
133
|
-
addressLookupTables: [],
|
|
134
|
-
staticAccountKeys: [testData.authAccount.pub, 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'],
|
|
135
|
-
messageHeader: {
|
|
136
|
-
numRequiredSignatures: 1,
|
|
137
|
-
numReadonlySignedAccounts: 0,
|
|
138
|
-
numReadonlyUnsignedAccounts: 0,
|
|
139
|
-
},
|
|
140
|
-
};
|
|
141
|
-
const durableNonceParams = {
|
|
142
|
-
walletNonceAddress: 'GHtXQBsoZHVnNFa9YevAzxNzQBz7CV5hj6bSe3u52W9n',
|
|
143
|
-
authWalletAddress: '8Y7RM6JfcX4ASSNBkrkrmScq3Z9UWV4CJBwtfSNgqTN2',
|
|
144
|
-
};
|
|
145
|
-
const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
|
|
146
|
-
const txBuilder = factory.getCustomInstructionBuilder();
|
|
147
|
-
// Providing durableNonceParams triggers automatic nonce advance injection
|
|
148
|
-
txBuilder.nonce(testData.blockHashes.validBlockHashes[0], durableNonceParams);
|
|
149
|
-
txBuilder.fromVersionedTransactionData(versionedTransactionData);
|
|
150
|
-
const tx = (await txBuilder.build());
|
|
151
|
-
const builtData = tx.getVersionedTransactionData();
|
|
152
|
-
should_1.default.exist(builtData);
|
|
153
|
-
// Nonce advance instruction should be prepended
|
|
154
|
-
builtData.versionedInstructions.length.should.equal(2);
|
|
155
|
-
const nonceInstruction = builtData.versionedInstructions[0];
|
|
156
|
-
nonceInstruction.accountKeyIndexes.length.should.equal(3);
|
|
157
|
-
// numRequiredSignatures should be updated to include nonce authority
|
|
158
|
-
const numSigners = builtData.messageHeader.numRequiredSignatures;
|
|
159
|
-
numSigners.should.equal(2);
|
|
160
|
-
// Both fee payer and nonce authority should be in signer section
|
|
161
|
-
const signerKeys = builtData.staticAccountKeys.slice(0, numSigners);
|
|
162
|
-
signerKeys.should.containEql(testData.authAccount.pub);
|
|
163
|
-
signerKeys.should.containEql(durableNonceParams.authWalletAddress);
|
|
164
|
-
// Fee payer must remain at index 0
|
|
165
|
-
builtData.staticAccountKeys[0].should.equal(testData.authAccount.pub);
|
|
166
|
-
// Required accounts for nonce advance should be added
|
|
167
|
-
builtData.staticAccountKeys.should.containEql(durableNonceParams.walletNonceAddress);
|
|
168
|
-
builtData.staticAccountKeys.should.containEql('11111111111111111111111111111111');
|
|
169
|
-
builtData.staticAccountKeys.should.containEql('SysvarRecentB1ockHashes11111111111111111111');
|
|
170
|
-
// Original instruction indices should be remapped after account reordering
|
|
171
|
-
const originalInstruction = builtData.versionedInstructions[1];
|
|
172
|
-
originalInstruction.programIdIndex.should.equal(builtData.staticAccountKeys.indexOf('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'));
|
|
173
|
-
originalInstruction.accountKeyIndexes[0].should.equal(builtData.staticAccountKeys.indexOf(testData.authAccount.pub));
|
|
174
|
-
});
|
|
175
|
-
it('should not inject nonce advance when using recentBlockhash (no durableNonceParams)', async function () {
|
|
176
|
-
const versionedTransactionData = {
|
|
177
|
-
versionedInstructions: [
|
|
178
|
-
{
|
|
179
|
-
programIdIndex: 1,
|
|
180
|
-
accountKeyIndexes: [0],
|
|
181
|
-
data: bs58_1.default.encode(Buffer.from('Hello', 'utf-8')),
|
|
182
|
-
},
|
|
183
|
-
],
|
|
184
|
-
addressLookupTables: [],
|
|
185
|
-
staticAccountKeys: [testData.authAccount.pub, 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr'],
|
|
186
|
-
messageHeader: {
|
|
187
|
-
numRequiredSignatures: 1,
|
|
188
|
-
numReadonlySignedAccounts: 0,
|
|
189
|
-
numReadonlyUnsignedAccounts: 0,
|
|
190
|
-
},
|
|
191
|
-
recentBlockhash: testData.blockHashes.validBlockHashes[0],
|
|
192
|
-
};
|
|
193
|
-
const factory = (0, getBuilderFactory_1.getBuilderFactory)('tsol');
|
|
194
|
-
const txBuilder = factory.getCustomInstructionBuilder();
|
|
195
|
-
// Regular nonce without durableNonceParams should not trigger injection
|
|
196
|
-
txBuilder.nonce(testData.blockHashes.validBlockHashes[0]);
|
|
197
|
-
txBuilder.fromVersionedTransactionData(versionedTransactionData);
|
|
198
|
-
const tx = (await txBuilder.build());
|
|
199
|
-
const builtData = tx.getVersionedTransactionData();
|
|
200
|
-
should_1.default.exist(builtData);
|
|
201
|
-
// Transaction should remain unchanged
|
|
202
|
-
builtData.versionedInstructions.length.should.equal(1);
|
|
203
|
-
builtData.messageHeader.numRequiredSignatures.should.equal(1);
|
|
204
|
-
builtData.staticAccountKeys.length.should.equal(2);
|
|
205
|
-
});
|
|
206
|
-
});
|
|
207
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbmVkVHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdmVyc2lvbmVkVHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsbUNBQWlEO0FBQ2pELDJEQUE2QztBQUM3QywyREFBd0Q7QUFDeEQsZ0RBQTBCO0FBQzFCLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBRTVELFFBQVEsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7SUFDNUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUV2QyxFQUFFLENBQUMsaUVBQWlFLEVBQUUsS0FBSztRQUN6RSx1Q0FBdUM7UUFDdkMsTUFBTSxvQkFBb0IsR0FDeEIsMG9DQUEwb0MsQ0FBQztRQUU3b0MsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTNHLE1BQU0scUJBQXFCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzRixjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWM7WUFDakMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQjtZQUN2QyxJQUFJLEVBQUUsY0FBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1NBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUosTUFBTSxtQkFBbUIsR0FDdkIsb0JBQW9C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QUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy9zb2wnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL2dldEJ1aWxkZXJGYWN0b3J5JztcbmltcG9ydCBiYXNlNTggZnJvbSAnYnM1OCc7XG5jb25zdCB7IFZlcnNpb25lZFRyYW5zYWN0aW9uIH0gPSByZXF1aXJlKCdAc29sYW5hL3dlYjMuanMnKTtcblxuZGVzY3JpYmUoJ1NvbCBKdXBpdGVyIFN3YXAgVHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gIGNvbnN0IHdhbGxldEtleVBhaXIgPSBuZXcgS2V5UGFpcih0ZXN0RGF0YS5hdXRoQWNjb3VudCk7XG4gIGNvbnN0IHdhbGxldCA9IHdhbGxldEtleVBhaXIuZ2V0S2V5cygpO1xuXG4gIGl0KCdzaG91bGQgcHJlc2VydmUgaW5zdHJ1Y3Rpb25zIGFuZCBBTFRzIHdoZW4gYnVpbGRpbmcgYW5kIHNpZ25pbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgLy8gSnVwaXRlciBTd2FwIFRyYW5zYWN0aW9uIChWZXJzaW9uZWQpXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb24gPVxuICAgICAgJ0FRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQ0FBUUFGRFRXb001REJDR243Y241YVY1NmZvbW82bWhEMksxYzVYWWhRSWFuNDFFNmRHOXQwNm94NkRNZHZWdUJuU0VBVHlOLzhxSXEyNDZpTzVhRG0xam04Mng0d000MEZSOFE3eFNaVXBVdEIwbGJ2ZWxhWjQ2b1JRMkdNOWhXR011a0hHMUVVc0ExUjlaTzU1Q2xVdk5NeXc4SVFPcmZSbXUzT05HNTBvTmVsdVQ0TGdhT2FjTitJNGQwSFN0Y3Urb2gwbm80WFhnVlV3anprNStlZ2lVYVFEa0NDalhBbFNEQWI0NmFoTEFmV2VLT3F6Ty9IQy96MldnUms4UlMxeWM2aGVNWnpCYlIzU1BEd3JOdldsQ1pHYUVUYWl4aUg5dWZkT0o4MjNHditNbnhIMVNPdTZUQ3NYMStUTXNrajk0RDNORWxEcGFkbzhva0ZRYlV1emFpalU5b0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUl5WEpZOU9KSW54dXowUUtSU09EWU1MV2hPWjJ2OFFoQVNPZTlqYjZmaFpBd1pHYitVaEZ6TC83SzI2Y3NPYjU3eU01YnZGOXhKckxFT2JPa0FBQUFBRWVkVmI4akhBYnU1MHhXN09hQlVIL2JHeTNxUDBqbEVDc2MyaVZyd1Rqd2JkOXVIWFphR1QyY3ZoUnM3cmVhd2N0SVh0WDFzM2tUcU05WVYrL3dDcCttR3BGNEk0WnJWMTJiYXBKN3A2MUJhYnQzdHk3SFlEVUt0TXNvMzhPWWdIQ2dBRkFvb3lCQUFLQUFrRG9RNEJBQUFBQUFBSUFnQUZEQUlBQUFBd0t5SUFBQUFBQUFzRkJRQWdEQWdKay9GN1pQU0VybmIvQ1FZQUJ3QWRDQXdCQVFzL0hnQUZEZzBISUIwTURCd0xKZzhtRUJJT0RTQWRFU1llREF3a0pnSURCZ3NtR3lZV0dRNEVJQ1VhSmg0TURDUW1HQmNCQ3lJakRDRWVCQTBWRXhRZk10R1lVNU44L3RqcEMwQU5Bd0FBQUFBQVdxd0FBQUFBQUFBeUFBQUFBQUFEQUFBQUppd2FBQU1tNUF3QUFnb1FKd0lEREFNRkFBQUJDUVFwdjVVSEtrKy9CTjl4ZFpQbk9Mek1JU2NvRmNKSEdvRForZlZWc05TRUpRSTBJd1VBS0E0Q0Z5bzlTRGpzUGRmV1hBZE1GMG11Mit4WmJ3OXJiUjZyek5BRWVGa0xteUt3QkdCbVlXVUFNSENKNk9pMEExUWpwanAxWXYzeFArc1BMbTJxSi8vVEtaZDVaOUt6anZFRHdiM0NBNzdEd090S2QxTUN1Nmg0WEpqQzQyeWM4VGNMOTJuaHpGVVI2SExXM1hyQUlaT3ZCbzZLaTVDUmpRT01rNVE9JztcblxuICAgIGNvbnN0IG9yaWdpbmFsRGVzZXJpYWxpemVkID0gVmVyc2lvbmVkVHJhbnNhY3Rpb24uZGVzZXJpYWxpemUoQnVmZmVyLmZyb20odmVyc2lvbmVkVHJhbnNhY3Rpb24sICdiYXNlNjQnKSk7XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zLm1hcCgoaXgpID0+ICh7XG4gICAgICBwcm9ncmFtSWRJbmRleDogaXgucHJvZ3JhbUlkSW5kZXgsXG4gICAgICBhY2NvdW50S2V5SW5kZXhlczogaXguYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICBkYXRhOiBiYXNlNTguZW5jb2RlKGl4LmRhdGEpLFxuICAgIH0pKTtcblxuICAgIGNvbnN0IGFkZHJlc3NMb29rdXBUYWJsZXMgPVxuICAgICAgb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5hZGRyZXNzVGFibGVMb29rdXBzPy5tYXAoKGxvb2t1cCkgPT4gKHtcbiAgICAgICAgYWNjb3VudEtleTogbG9va3VwLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgd3JpdGFibGVJbmRleGVzOiBsb29rdXAud3JpdGFibGVJbmRleGVzLFxuICAgICAgICByZWFkb25seUluZGV4ZXM6IGxvb2t1cC5yZWFkb25seUluZGV4ZXMsXG4gICAgICB9KSkgfHwgW107XG5cbiAgICBjb25zdCBzdGF0aWNBY2NvdW50S2V5cyA9IG9yaWdpbmFsRGVzZXJpYWxpemVkLm1lc3NhZ2Uuc3RhdGljQWNjb3VudEtleXMubWFwKChrZXkpID0+IGtleS50b0Jhc2U1OCgpKTtcbiAgICBzdGF0aWNBY2NvdW50S2V5c1swXSA9IHRlc3REYXRhLmF1dGhBY2NvdW50LnB1YjsgLy8gUmVwbGFjZSBmZWUgcGF5ZXIgd2l0aCBvdXIgdGVzdCBhY2NvdW50XG5cbiAgICBjb25zdCB2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEgPSB7XG4gICAgICB2ZXJzaW9uZWRJbnN0cnVjdGlvbnMsXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzLFxuICAgICAgc3RhdGljQWNjb3VudEtleXMsXG4gICAgICBtZXNzYWdlSGVhZGVyOiBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmhlYWRlcixcbiAgICAgIHJlY2VudEJsb2NraGFzaDogb3JpZ2luYWxEZXNlcmlhbGl6ZWQubWVzc2FnZS5yZWNlbnRCbG9ja2hhc2gsXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBCdWlsZCB0cmFuc2FjdGlvbiBmcm9tIHZlcnNpb25lZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG5cbiAgICAvLyBCdWlsZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgIGNvbnN0IHR4VW5zaWduZWQgPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkKTtcbiAgICB0eFVuc2lnbmVkLmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdCh0eFVuc2lnbmVkLnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuXG4gICAgLy8gU2lnbiB0aGUgdHJhbnNhY3Rpb25cbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogd2FsbGV0LnBydiB9KTtcbiAgICBjb25zdCB0eCA9IChhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIHR4LmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNob3VsZC5leGlzdChyYXdUeCk7XG5cbiAgICBjb25zdCB0eEJ1aWxkZXIyID0gZmFjdG9yeS5nZXRDdXN0b21JbnN0cnVjdGlvbkJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcbiAgICB0eEJ1aWxkZXIyLm5vbmNlKHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0pO1xuICAgIGNvbnN0IHR4MiA9IGF3YWl0IHR4QnVpbGRlcjIuYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbCh0eDIuc2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCdoZXgnKSwgdHhVbnNpZ25lZC5zaWduYWJsZVBheWxvYWQudG9TdHJpbmcoJ2hleCcpKTtcbiAgICBzaG91bGQuZXF1YWwodHgyLnR5cGUsIHR4VW5zaWduZWQudHlwZSk7XG5cbiAgICAvLyBWZXJpZnkgd2UgY2FuIGFkZCBzaWduYXR1cmUgbWFudWFsbHlcbiAgICBjb25zdCBzaWduZWQgPSB0eC5zaWduYXR1cmVbMF07XG4gICAgY29uc3QgdHhCdWlsZGVyMyA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyMy5mcm9tVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSk7XG4gICAgdHhCdWlsZGVyMy5ub25jZSh0ZXN0RGF0YS5ibG9ja0hhc2hlcy52YWxpZEJsb2NrSGFzaGVzWzBdKTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIzLmFkZFNpZ25hdHVyZSh7IHB1Yjogd2FsbGV0LnB1YiB9LCBCdWZmZXIuZnJvbShiYXNlNTguZGVjb2RlKHNpZ25lZCkpKTtcblxuICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgdHhCdWlsZGVyMy5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeC50eXBlLCB0eC50eXBlKTtcblxuICAgIGNvbnN0IHJhd1NpZ25lZFR4ID0gc2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBzaG91bGQuZXF1YWwocmF3U2lnbmVkVHgsIHJhd1R4KTtcblxuICAgIGNvbnN0IHNpZ25lZERlc2VyaWFsaXplZCA9IFZlcnNpb25lZFRyYW5zYWN0aW9uLmRlc2VyaWFsaXplKEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0JykpO1xuXG4gICAgLy8gVmVyaWZ5IGFsbCBpbnN0cnVjdGlvbnMgYXJlIHByZXNlcnZlZFxuICAgIGNvbnN0IG9yaWdJbnN0cnVjdGlvbnMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIGNvbnN0IHNpZ25lZEluc3RydWN0aW9ucyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zO1xuICAgIHNob3VsZC5lcXVhbChvcmlnSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgc2lnbmVkSW5zdHJ1Y3Rpb25zLmxlbmd0aCwgJ051bWJlciBvZiBpbnN0cnVjdGlvbnMgc2hvdWxkIG1hdGNoJyk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9yaWdJbnN0cnVjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0luc3RydWN0aW9uc1tpXS5wcm9ncmFtSWRJbmRleCxcbiAgICAgICAgc2lnbmVkSW5zdHJ1Y3Rpb25zW2ldLnByb2dyYW1JZEluZGV4LFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogcHJvZ3JhbUlkSW5kZXggc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwoXG4gICAgICAgIG9yaWdJbnN0cnVjdGlvbnNbaV0uYWNjb3VudEtleUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEluc3RydWN0aW9uc1tpXS5hY2NvdW50S2V5SW5kZXhlcyxcbiAgICAgICAgYEluc3RydWN0aW9uICR7aX06IGFjY291bnRLZXlJbmRleGVzIHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZXF1YWwoXG4gICAgICAgIEJ1ZmZlci5mcm9tKG9yaWdJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBCdWZmZXIuZnJvbShzaWduZWRJbnN0cnVjdGlvbnNbaV0uZGF0YSkudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBgSW5zdHJ1Y3Rpb24gJHtpfTogZGF0YSBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFZlcmlmeSBhbGwgQUxUcyBhcmUgcHJlc2VydmVkXG4gICAgY29uc3Qgb3JpZ0FMVHMgPSBvcmlnaW5hbERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgY29uc3Qgc2lnbmVkQUxUcyA9IHNpZ25lZERlc2VyaWFsaXplZC5tZXNzYWdlLmFkZHJlc3NUYWJsZUxvb2t1cHMgfHwgW107XG4gICAgc2hvdWxkLmVxdWFsKG9yaWdBTFRzLmxlbmd0aCwgc2lnbmVkQUxUcy5sZW5ndGgsICdOdW1iZXIgb2YgQUxUcyBzaG91bGQgbWF0Y2gnKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgb3JpZ0FMVHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHNob3VsZC5lcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0uYWNjb3VudEtleS50b0Jhc2U1OCgpLFxuICAgICAgICBzaWduZWRBTFRzW2ldLmFjY291bnRLZXkudG9CYXNlNTgoKSxcbiAgICAgICAgYEFMVCAke2l9OiBhY2NvdW50S2V5IHNob3VsZCBtYXRjaGBcbiAgICAgICk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKFxuICAgICAgICBvcmlnQUxUc1tpXS53cml0YWJsZUluZGV4ZXMsXG4gICAgICAgIHNpZ25lZEFMVHNbaV0ud3JpdGFibGVJbmRleGVzLFxuICAgICAgICBgQUxUICR7aX06IHdyaXRhYmxlSW5kZXhlcyBzaG91bGQgbWF0Y2hgXG4gICAgICApO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChcbiAgICAgICAgb3JpZ0FMVHNbaV0ucmVhZG9ubHlJbmRleGVzLFxuICAgICAgICBzaWduZWRBTFRzW2ldLnJlYWRvbmx5SW5kZXhlcyxcbiAgICAgICAgYEFMVCAke2l9OiByZWFkb25seUluZGV4ZXMgc2hvdWxkIG1hdGNoYFxuICAgICAgKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYXV0b21hdGljYWxseSBpbmplY3Qgbm9uY2UgYWR2YW5jZSBpbnN0cnVjdGlvbiB3aGVuIHVzaW5nIGR1cmFibGUgbm9uY2Ugd2l0aCB2ZXJzaW9uZWQgdHJhbnNhY3Rpb25zJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIC8vIFNpbXBsZSB0cmFuc2FjdGlvbiB3aXRoIG9uZSBtZW1vIGluc3RydWN0aW9uXG4gICAgY29uc3QgdmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBwcm9ncmFtSWRJbmRleDogMSxcbiAgICAgICAgICBhY2NvdW50S2V5SW5kZXhlczogWzBdLFxuICAgICAgICAgIGRhdGE6IGJhc2U1OC5lbmNvZGUoQnVmZmVyLmZyb20oJ0hlbGxvIFZlcnNpb25lZCBUeCcsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGR1cmFibGVOb25jZVBhcmFtcyA9IHtcbiAgICAgIHdhbGxldE5vbmNlQWRkcmVzczogJ0dIdFhRQnNvWkhWbk5GYTlZZXZBenhOelFCejdDVjVoajZiU2UzdTUyVzluJyxcbiAgICAgIGF1dGhXYWxsZXRBZGRyZXNzOiAnOFk3Uk02SmZjWDRBU1NOQmtya3JtU2NxM1o5VVdWNENKQnd0ZlNOZ3FUTjInLFxuICAgIH07XG5cbiAgICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3Rzb2wnKTtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEN1c3RvbUluc3RydWN0aW9uQnVpbGRlcigpO1xuXG4gICAgLy8gUHJvdmlkaW5nIGR1cmFibGVOb25jZVBhcmFtcyB0cmlnZ2VycyBhdXRvbWF0aWMgbm9uY2UgYWR2YW5jZSBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSwgZHVyYWJsZU5vbmNlUGFyYW1zKTtcbiAgICB0eEJ1aWxkZXIuZnJvbVZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSh2ZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEpO1xuXG4gICAgY29uc3QgdHggPSAoYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IGJ1aWx0RGF0YSA9IHR4LmdldFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSgpO1xuXG4gICAgc2hvdWxkLmV4aXN0KGJ1aWx0RGF0YSk7XG5cbiAgICAvLyBOb25jZSBhZHZhbmNlIGluc3RydWN0aW9uIHNob3VsZCBiZSBwcmVwZW5kZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgIGNvbnN0IG5vbmNlSW5zdHJ1Y3Rpb24gPSBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9uc1swXTtcbiAgICBub25jZUluc3RydWN0aW9uLmFjY291bnRLZXlJbmRleGVzLmxlbmd0aC5zaG91bGQuZXF1YWwoMyk7XG5cbiAgICAvLyBudW1SZXF1aXJlZFNpZ25hdHVyZXMgc2hvdWxkIGJlIHVwZGF0ZWQgdG8gaW5jbHVkZSBub25jZSBhdXRob3JpdHlcbiAgICBjb25zdCBudW1TaWduZXJzID0gYnVpbHREYXRhIS5tZXNzYWdlSGVhZGVyLm51bVJlcXVpcmVkU2lnbmF0dXJlcztcbiAgICBudW1TaWduZXJzLnNob3VsZC5lcXVhbCgyKTtcblxuICAgIC8vIEJvdGggZmVlIHBheWVyIGFuZCBub25jZSBhdXRob3JpdHkgc2hvdWxkIGJlIGluIHNpZ25lciBzZWN0aW9uXG4gICAgY29uc3Qgc2lnbmVyS2V5cyA9IGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2xpY2UoMCwgbnVtU2lnbmVycyk7XG4gICAgc2lnbmVyS2V5cy5zaG91bGQuY29udGFpbkVxbCh0ZXN0RGF0YS5hdXRoQWNjb3VudC5wdWIpO1xuICAgIHNpZ25lcktleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLmF1dGhXYWxsZXRBZGRyZXNzKTtcblxuICAgIC8vIEZlZSBwYXllciBtdXN0IHJlbWFpbiBhdCBpbmRleCAwXG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5c1swXS5zaG91bGQuZXF1YWwodGVzdERhdGEuYXV0aEFjY291bnQucHViKTtcblxuICAgIC8vIFJlcXVpcmVkIGFjY291bnRzIGZvciBub25jZSBhZHZhbmNlIHNob3VsZCBiZSBhZGRlZFxuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMuc2hvdWxkLmNvbnRhaW5FcWwoZHVyYWJsZU5vbmNlUGFyYW1zLndhbGxldE5vbmNlQWRkcmVzcyk7XG4gICAgYnVpbHREYXRhIS5zdGF0aWNBY2NvdW50S2V5cy5zaG91bGQuY29udGFpbkVxbCgnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnKTtcbiAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLnNob3VsZC5jb250YWluRXFsKCdTeXN2YXJSZWNlbnRCMW9ja0hhc2hlczExMTExMTExMTExMTExMTExMTExJyk7XG5cbiAgICAvLyBPcmlnaW5hbCBpbnN0cnVjdGlvbiBpbmRpY2VzIHNob3VsZCBiZSByZW1hcHBlZCBhZnRlciBhY2NvdW50IHJlb3JkZXJpbmdcbiAgICBjb25zdCBvcmlnaW5hbEluc3RydWN0aW9uID0gYnVpbHREYXRhIS52ZXJzaW9uZWRJbnN0cnVjdGlvbnNbMV07XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5wcm9ncmFtSWRJbmRleC5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YoJ01lbW9TcTRncUFCQVhLYjk2cW5IOFR5c05jV3hNeVdDcVhnRExHbWZjSHInKVxuICAgICk7XG4gICAgb3JpZ2luYWxJbnN0cnVjdGlvbi5hY2NvdW50S2V5SW5kZXhlc1swXS5zaG91bGQuZXF1YWwoXG4gICAgICBidWlsdERhdGEhLnN0YXRpY0FjY291bnRLZXlzLmluZGV4T2YodGVzdERhdGEuYXV0aEFjY291bnQucHViKVxuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IGluamVjdCBub25jZSBhZHZhbmNlIHdoZW4gdXNpbmcgcmVjZW50QmxvY2toYXNoIChubyBkdXJhYmxlTm9uY2VQYXJhbXMpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIHZlcnNpb25lZEluc3RydWN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvZ3JhbUlkSW5kZXg6IDEsXG4gICAgICAgICAgYWNjb3VudEtleUluZGV4ZXM6IFswXSxcbiAgICAgICAgICBkYXRhOiBiYXNlNTguZW5jb2RlKEJ1ZmZlci5mcm9tKCdIZWxsbycsICd1dGYtOCcpKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBhZGRyZXNzTG9va3VwVGFibGVzOiBbXSxcbiAgICAgIHN0YXRpY0FjY291bnRLZXlzOiBbdGVzdERhdGEuYXV0aEFjY291bnQucHViLCAnTWVtb1NxNGdxQUJBWEtiOTZxbkg4VHlzTmNXeE15V0NxWGdETEdtZmNIciddLFxuICAgICAgbWVzc2FnZUhlYWRlcjoge1xuICAgICAgICBudW1SZXF1aXJlZFNpZ25hdHVyZXM6IDEsXG4gICAgICAgIG51bVJlYWRvbmx5U2lnbmVkQWNjb3VudHM6IDAsXG4gICAgICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogMCxcbiAgICAgIH0sXG4gICAgICByZWNlbnRCbG9ja2hhc2g6IHRlc3REYXRhLmJsb2NrSGFzaGVzLnZhbGlkQmxvY2tIYXNoZXNbMF0sXG4gICAgfTtcblxuICAgIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndHNvbCcpO1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q3VzdG9tSW5zdHJ1Y3Rpb25CdWlsZGVyKCk7XG5cbiAgICAvLyBSZWd1bGFyIG5vbmNlIHdpdGhvdXQgZHVyYWJsZU5vbmNlUGFyYW1zIHNob3VsZCBub3QgdHJpZ2dlciBpbmplY3Rpb25cbiAgICB0eEJ1aWxkZXIubm9uY2UodGVzdERhdGEuYmxvY2tIYXNoZXMudmFsaWRCbG9ja0hhc2hlc1swXSk7XG4gICAgdHhCdWlsZGVyLmZyb21WZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEodmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhKTtcblxuICAgIGNvbnN0IHR4ID0gKGF3YWl0IHR4QnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBidWlsdERhdGEgPSB0eC5nZXRWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGEoKTtcblxuICAgIHNob3VsZC5leGlzdChidWlsdERhdGEpO1xuXG4gICAgLy8gVHJhbnNhY3Rpb24gc2hvdWxkIHJlbWFpbiB1bmNoYW5nZWRcbiAgICBidWlsdERhdGEhLnZlcnNpb25lZEluc3RydWN0aW9ucy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIGJ1aWx0RGF0YSEubWVzc2FnZUhlYWRlci5udW1SZXF1aXJlZFNpZ25hdHVyZXMuc2hvdWxkLmVxdWFsKDEpO1xuICAgIGJ1aWx0RGF0YSEuc3RhdGljQWNjb3VudEtleXMubGVuZ3RoLnNob3VsZC5lcXVhbCgyKTtcbiAgfSk7XG59KTtcbiJdfQ==
|