@bitgo-beta/sdk-coin-sol 7.6.4-beta.62 → 7.6.4-beta.621
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/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 +201 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts +51 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/closeAtaBuilder.js +147 -0
- package/dist/{src → cjs/src}/lib/constants.d.ts +45 -2
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +216 -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 +79 -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 +3 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +89 -0
- package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +3 -1
- package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/instructionParamsFactory.js +1122 -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 +649 -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/token2022Resolve.d.ts +106 -0
- package/dist/cjs/src/lib/token2022Resolve.d.ts.map +1 -0
- package/dist/cjs/src/lib/token2022Resolve.js +199 -0
- package/dist/cjs/src/lib/tokenExtensions.d.ts +31 -0
- package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenExtensions.js +112 -0
- package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +27 -1
- package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.js +237 -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 +69 -0
- package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilderV2.js +254 -0
- package/dist/{src → cjs/src}/lib/utils.d.ts +5 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +635 -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 +5 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +29 -0
- package/dist/{src → cjs/src}/sol.d.ts +112 -3
- package/dist/cjs/src/sol.d.ts.map +1 -0
- package/dist/cjs/src/sol.js +1617 -0
- package/dist/{src → cjs/src}/solToken.d.ts +7 -0
- package/dist/cjs/src/solToken.d.ts.map +1 -0
- package/dist/cjs/src/solToken.js +79 -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 +29 -29
- 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 +425 -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/cjs/test/unit/register.d.ts +2 -0
- package/dist/cjs/test/unit/register.d.ts.map +1 -0
- package/dist/cjs/test/unit/register.js +65 -0
- package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
- package/dist/cjs/test/unit/sol.js +4790 -0
- package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/solInstructionFactory.js +611 -0
- package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
- package/dist/cjs/test/unit/solToken.js +37 -0
- package/dist/cjs/test/unit/token2022Resolve.d.ts +2 -0
- package/dist/cjs/test/unit/token2022Resolve.d.ts.map +1 -0
- package/dist/cjs/test/unit/token2022Resolve.js +252 -0
- package/dist/cjs/test/unit/tokenExtensions.d.ts +2 -0
- package/dist/cjs/test/unit/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/test/unit/tokenExtensions.js +32 -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/closeAtaBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/closeAtaBuilder.js +333 -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 +926 -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 +910 -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 +557 -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/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/lib/ataInitializationBuilder.d.ts +47 -0
- package/dist/{src → esm}/lib/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/esm/lib/ataInitializationBuilder.js +161 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts +51 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/esm/lib/closeAtaBuilder.js +140 -0
- package/dist/esm/lib/constants.d.ts +183 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +213 -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 +321 -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 +25 -0
- package/dist/{src → esm}/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +25 -0
- package/dist/esm/lib/instructionParamsFactory.d.ts +14 -0
- package/dist/esm/lib/instructionParamsFactory.d.ts.map +1 -0
- package/dist/esm/lib/instructionParamsFactory.js +1114 -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 +643 -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/token2022Resolve.d.ts +106 -0
- package/dist/esm/lib/token2022Resolve.d.ts.map +1 -0
- package/dist/esm/lib/token2022Resolve.js +194 -0
- package/dist/esm/lib/tokenExtensions.d.ts +31 -0
- package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/esm/lib/tokenExtensions.js +105 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts +67 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tokenTransferBuilder.js +230 -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 +69 -0
- package/dist/esm/lib/transferBuilderV2.d.ts.map +1 -0
- package/dist/esm/lib/transferBuilderV2.js +247 -0
- package/dist/esm/lib/utils.d.ts +205 -0
- package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +597 -0
- package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
- package/dist/esm/lib/walletInitializationBuilder.js +64 -0
- package/dist/esm/register.d.ts +5 -0
- package/dist/esm/register.d.ts.map +1 -0
- package/dist/esm/register.js +24 -0
- package/dist/esm/sol.d.ts +349 -0
- package/dist/esm/sol.d.ts.map +1 -0
- package/dist/esm/sol.js +1576 -0
- package/dist/esm/solToken.d.ts +44 -0
- package/dist/esm/solToken.d.ts.map +1 -0
- package/dist/esm/solToken.js +75 -0
- package/dist/esm/tsol.d.ts +11 -0
- package/dist/esm/tsol.js +20 -0
- package/package.json +35 -16
- package/dist/src/config/token2022StaticConfig.d.ts +0 -3
- package/dist/src/config/token2022StaticConfig.d.ts.map +0 -1
- package/dist/src/config/token2022StaticConfig.js +0 -50
- package/dist/src/lib/ataInitializationBuilder.js +0 -196
- package/dist/src/lib/closeAtaBuilder.d.ts +0 -19
- package/dist/src/lib/closeAtaBuilder.d.ts.map +0 -1
- 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/index.js +0 -77
- package/dist/src/lib/instructionParamsFactory.d.ts.map +0 -1
- 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.d.ts +0 -44
- package/dist/src/lib/token2022Config.d.ts.map +0 -1
- package/dist/src/lib/token2022Config.js +0 -27
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
- 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.d.ts +0 -43
- package/dist/src/lib/transferBuilderV2.d.ts.map +0 -1
- 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.d.ts +0 -3
- package/dist/src/register.d.ts.map +0 -1
- package/dist/src/register.js +0 -15
- package/dist/src/sol.d.ts.map +0 -1
- package/dist/src/sol.js +0 -1324
- package/dist/src/solToken.d.ts.map +0 -1
- 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 -3180
- 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}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/ataInitializationBuilder.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/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/walletInitializationBuilder.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}/index.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/transactionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/tsol.d.ts.map +0 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
2
|
+
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { Transaction } from './transaction';
|
|
4
|
+
import { ExtraAccountMeta, PermissionlessThawIdempotent, TokenAssociateRecipient } from './iface';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
export interface SendParams {
|
|
7
|
+
address: string;
|
|
8
|
+
amount: string;
|
|
9
|
+
tokenName: string;
|
|
10
|
+
tokenAddress?: string;
|
|
11
|
+
programId?: string;
|
|
12
|
+
decimalPlaces?: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class TokenTransferBuilder extends TransactionBuilder {
|
|
15
|
+
private _sendParams;
|
|
16
|
+
private _createAtaParams;
|
|
17
|
+
private _transferHookAccounts?;
|
|
18
|
+
private _permissionlessThaw?;
|
|
19
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
20
|
+
/**
|
|
21
|
+
* Set the resolved sRFC-37 Token ACL permissionless-thaw params for this transfer.
|
|
22
|
+
*
|
|
23
|
+
* These must be resolved live by the caller (e.g. via `Sol.resolvePermissionlessThaw`) since
|
|
24
|
+
* builders remain offline and never perform RPC. When set, the built transaction bundles a
|
|
25
|
+
* `PermissionlessThawIdempotent` instruction after any ATA creation and before the transfer, so
|
|
26
|
+
* a freshly created (frozen) allowlist/blocklist token account is thawed atomically with the
|
|
27
|
+
* transfer — all-or-nothing.
|
|
28
|
+
*
|
|
29
|
+
* @param {PermissionlessThawIdempotent['params']} params - resolved thaw params
|
|
30
|
+
* @returns {TokenTransferBuilder} This transaction builder
|
|
31
|
+
*/
|
|
32
|
+
permissionlessThaw(params: PermissionlessThawIdempotent['params']): this;
|
|
33
|
+
/**
|
|
34
|
+
* Set the resolved Token-2022 Transfer Hook extra account metas for this transfer.
|
|
35
|
+
*
|
|
36
|
+
* These must be resolved live by the caller (e.g. via `Sol.resolveTransferHookAccounts`)
|
|
37
|
+
* since builders remain offline and never perform RPC. The order is significant and
|
|
38
|
+
* must match the hook's ExtraAccountMetaList.
|
|
39
|
+
*
|
|
40
|
+
* @param {ExtraAccountMeta[]} metas - resolved extra account metas, in hook order
|
|
41
|
+
* @returns {TokenTransferBuilder} This transaction builder
|
|
42
|
+
*/
|
|
43
|
+
transferHookAccounts(metas: ExtraAccountMeta[]): this;
|
|
44
|
+
protected get transactionType(): TransactionType;
|
|
45
|
+
initBuilder(tx: Transaction): void;
|
|
46
|
+
/**
|
|
47
|
+
* Set a transfer
|
|
48
|
+
*
|
|
49
|
+
* @param {SendParams} params - params for the transfer
|
|
50
|
+
* @param {string} params.address - the receiver token address
|
|
51
|
+
* @param {string} params.amount - the amount sent
|
|
52
|
+
* @param {string} params.tokenName - name of token that is intended to send
|
|
53
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
54
|
+
*/
|
|
55
|
+
send({ address, amount, tokenName, tokenAddress, programId, decimalPlaces }: SendParams): this;
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param {TokenAssociateRecipient} recipient - recipient of the associated token account creation
|
|
59
|
+
* @param {string} recipient.ownerAddress - owner of the associated token account
|
|
60
|
+
* @param {string} recipient.tokenName - name of the token that is intended to associate
|
|
61
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
62
|
+
*/
|
|
63
|
+
createAssociatedTokenAccount(recipient: TokenAssociateRecipient): this;
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=tokenTransferBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenTransferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/tokenTransferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAyB,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAU5C,OAAO,EAEL,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EAGxB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,qBAAqB,CAAC,CAAqB;IACnD,OAAO,CAAC,mBAAmB,CAAC,CAAyC;gBAEzD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C;;;;;;;;;;;OAWG;IACH,kBAAkB,CAAC,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,IAAI;IAKxE;;;;;;;;;OASG;IACH,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,IAAI;IAKrD,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IA6BlC;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,UAAU,GAAG,IAAI;IAa9F;;;;;;OAMG;IACH,4BAA4B,CAAC,SAAS,EAAE,uBAAuB,GAAG,IAAI;IAmBtE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;CA8G5D"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import { BuildTransactionError, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { getAssociatedTokenAccountAddress, getSolTokenFromTokenName, isValidAmount, validateAddress, validateMintAddress, validateOwnerAddress, } from './utils';
|
|
3
|
+
import { InstructionBuilderTypes } from './constants';
|
|
4
|
+
import assert from 'assert';
|
|
5
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
6
|
+
import _ from 'lodash';
|
|
7
|
+
const UNSIGNED_BIGINT_MAX = BigInt('18446744073709551615');
|
|
8
|
+
export class TokenTransferBuilder extends TransactionBuilder {
|
|
9
|
+
constructor(_coinConfig) {
|
|
10
|
+
super(_coinConfig);
|
|
11
|
+
this._sendParams = [];
|
|
12
|
+
this._createAtaParams = [];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Set the resolved sRFC-37 Token ACL permissionless-thaw params for this transfer.
|
|
16
|
+
*
|
|
17
|
+
* These must be resolved live by the caller (e.g. via `Sol.resolvePermissionlessThaw`) since
|
|
18
|
+
* builders remain offline and never perform RPC. When set, the built transaction bundles a
|
|
19
|
+
* `PermissionlessThawIdempotent` instruction after any ATA creation and before the transfer, so
|
|
20
|
+
* a freshly created (frozen) allowlist/blocklist token account is thawed atomically with the
|
|
21
|
+
* transfer — all-or-nothing.
|
|
22
|
+
*
|
|
23
|
+
* @param {PermissionlessThawIdempotent['params']} params - resolved thaw params
|
|
24
|
+
* @returns {TokenTransferBuilder} This transaction builder
|
|
25
|
+
*/
|
|
26
|
+
permissionlessThaw(params) {
|
|
27
|
+
this._permissionlessThaw = params;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Set the resolved Token-2022 Transfer Hook extra account metas for this transfer.
|
|
32
|
+
*
|
|
33
|
+
* These must be resolved live by the caller (e.g. via `Sol.resolveTransferHookAccounts`)
|
|
34
|
+
* since builders remain offline and never perform RPC. The order is significant and
|
|
35
|
+
* must match the hook's ExtraAccountMetaList.
|
|
36
|
+
*
|
|
37
|
+
* @param {ExtraAccountMeta[]} metas - resolved extra account metas, in hook order
|
|
38
|
+
* @returns {TokenTransferBuilder} This transaction builder
|
|
39
|
+
*/
|
|
40
|
+
transferHookAccounts(metas) {
|
|
41
|
+
this._transferHookAccounts = metas;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
get transactionType() {
|
|
45
|
+
return TransactionType.Send;
|
|
46
|
+
}
|
|
47
|
+
initBuilder(tx) {
|
|
48
|
+
super.initBuilder(tx);
|
|
49
|
+
for (const instruction of this._instructionsData) {
|
|
50
|
+
if (instruction.type === InstructionBuilderTypes.TokenTransfer) {
|
|
51
|
+
const transferInstruction = instruction;
|
|
52
|
+
this.sender(transferInstruction.params.fromAddress);
|
|
53
|
+
this.send({
|
|
54
|
+
address: transferInstruction.params.toAddress,
|
|
55
|
+
amount: transferInstruction.params.amount,
|
|
56
|
+
tokenName: transferInstruction.params.tokenName,
|
|
57
|
+
tokenAddress: transferInstruction.params.tokenAddress,
|
|
58
|
+
programId: transferInstruction.params.programId,
|
|
59
|
+
decimalPlaces: transferInstruction.params.decimalPlaces,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
if (instruction.type === InstructionBuilderTypes.CreateAssociatedTokenAccount) {
|
|
63
|
+
const ataInitInstruction = instruction;
|
|
64
|
+
this._createAtaParams.push({
|
|
65
|
+
ownerAddress: ataInitInstruction.params.ownerAddress,
|
|
66
|
+
tokenName: ataInitInstruction.params.tokenName,
|
|
67
|
+
ataAddress: ataInitInstruction.params.ataAddress,
|
|
68
|
+
tokenAddress: ataInitInstruction.params.mintAddress,
|
|
69
|
+
programId: ataInitInstruction.params.programId,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Set a transfer
|
|
76
|
+
*
|
|
77
|
+
* @param {SendParams} params - params for the transfer
|
|
78
|
+
* @param {string} params.address - the receiver token address
|
|
79
|
+
* @param {string} params.amount - the amount sent
|
|
80
|
+
* @param {string} params.tokenName - name of token that is intended to send
|
|
81
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
82
|
+
*/
|
|
83
|
+
send({ address, amount, tokenName, tokenAddress, programId, decimalPlaces }) {
|
|
84
|
+
validateAddress(address, 'address');
|
|
85
|
+
if (!amount || !isValidAmount(amount)) {
|
|
86
|
+
throw new BuildTransactionError('Invalid or missing amount, got: ' + amount);
|
|
87
|
+
}
|
|
88
|
+
if (BigInt(amount) > UNSIGNED_BIGINT_MAX) {
|
|
89
|
+
throw new BuildTransactionError(`input amount ${amount} exceeds big int limit ${UNSIGNED_BIGINT_MAX}`);
|
|
90
|
+
}
|
|
91
|
+
this._sendParams.push({ address, amount, tokenName: tokenName, tokenAddress, programId, decimalPlaces });
|
|
92
|
+
return this;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
* @param {TokenAssociateRecipient} recipient - recipient of the associated token account creation
|
|
97
|
+
* @param {string} recipient.ownerAddress - owner of the associated token account
|
|
98
|
+
* @param {string} recipient.tokenName - name of the token that is intended to associate
|
|
99
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
100
|
+
*/
|
|
101
|
+
createAssociatedTokenAccount(recipient) {
|
|
102
|
+
validateOwnerAddress(recipient.ownerAddress);
|
|
103
|
+
let tokenAddress;
|
|
104
|
+
if (recipient.tokenAddress) {
|
|
105
|
+
tokenAddress = recipient.tokenAddress;
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
const token = getSolTokenFromTokenName(recipient.tokenName);
|
|
109
|
+
if (token) {
|
|
110
|
+
tokenAddress = token.tokenAddress;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
throw new BuildTransactionError('Invalid token name, got: ' + recipient.tokenName);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
validateMintAddress(tokenAddress);
|
|
117
|
+
this._createAtaParams.push(recipient);
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
/** @inheritdoc */
|
|
121
|
+
async buildImplementation() {
|
|
122
|
+
assert(this._sender, 'Sender must be set before building the transaction');
|
|
123
|
+
const sendInstructions = await Promise.all(this._sendParams.map(async (sendParams) => {
|
|
124
|
+
let tokenAddress;
|
|
125
|
+
let tokenName;
|
|
126
|
+
let programId;
|
|
127
|
+
let decimals;
|
|
128
|
+
if (sendParams.tokenAddress && sendParams.programId && sendParams.decimalPlaces != null) {
|
|
129
|
+
tokenAddress = sendParams.tokenAddress;
|
|
130
|
+
tokenName = sendParams.tokenName;
|
|
131
|
+
programId = sendParams.programId;
|
|
132
|
+
decimals = sendParams.decimalPlaces;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const coin = getSolTokenFromTokenName(sendParams.tokenName);
|
|
136
|
+
if (coin) {
|
|
137
|
+
tokenAddress = coin.tokenAddress;
|
|
138
|
+
tokenName = coin.name;
|
|
139
|
+
programId = coin.programId;
|
|
140
|
+
decimals = coin.decimalPlaces;
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
throw new Error(`Could not determine token information for ${sendParams.tokenName}`);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const sourceAddress = await getAssociatedTokenAccountAddress(tokenAddress, this._sender, false, programId);
|
|
147
|
+
return {
|
|
148
|
+
type: InstructionBuilderTypes.TokenTransfer,
|
|
149
|
+
params: {
|
|
150
|
+
fromAddress: this._sender,
|
|
151
|
+
toAddress: sendParams.address,
|
|
152
|
+
amount: sendParams.amount,
|
|
153
|
+
tokenName: tokenName,
|
|
154
|
+
sourceAddress: sourceAddress,
|
|
155
|
+
tokenAddress: tokenAddress,
|
|
156
|
+
programId: programId,
|
|
157
|
+
decimalPlaces: decimals,
|
|
158
|
+
...(this._transferHookAccounts ? { transferHookAccounts: this._transferHookAccounts } : {}),
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
}));
|
|
162
|
+
const uniqueCreateAtaParams = _.uniqBy(this._createAtaParams, (recipient) => {
|
|
163
|
+
return recipient.ownerAddress + recipient.tokenName;
|
|
164
|
+
});
|
|
165
|
+
const createAtaInstructions = await Promise.all(uniqueCreateAtaParams.map(async (recipient) => {
|
|
166
|
+
let tokenAddress;
|
|
167
|
+
let tokenName;
|
|
168
|
+
let programId;
|
|
169
|
+
if (recipient.tokenAddress && recipient.programId) {
|
|
170
|
+
tokenName = recipient.tokenName;
|
|
171
|
+
tokenAddress = recipient.tokenAddress;
|
|
172
|
+
programId = recipient.programId;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
const coin = getSolTokenFromTokenName(recipient.tokenName);
|
|
176
|
+
if (coin) {
|
|
177
|
+
tokenName = coin.name;
|
|
178
|
+
tokenAddress = coin.tokenAddress;
|
|
179
|
+
programId = coin.programId;
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
throw new Error(`Could not determine token information for ${recipient.tokenName}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// Use the provided ataAddress if it exists, otherwise calculate it
|
|
186
|
+
let ataAddress = recipient.ataAddress;
|
|
187
|
+
if (!ataAddress) {
|
|
188
|
+
ataAddress = await getAssociatedTokenAccountAddress(tokenAddress, recipient.ownerAddress, false, programId);
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
type: InstructionBuilderTypes.CreateAssociatedTokenAccount,
|
|
192
|
+
params: {
|
|
193
|
+
ownerAddress: recipient.ownerAddress,
|
|
194
|
+
mintAddress: tokenAddress,
|
|
195
|
+
ataAddress,
|
|
196
|
+
// Match transactionBuilder fee payer selection: when a distinct fee payer
|
|
197
|
+
// is set (e.g. gas tank), it must fund ATA rent — not the token sender.
|
|
198
|
+
payerAddress: this._feePayer ?? this._sender,
|
|
199
|
+
tokenName: tokenName,
|
|
200
|
+
programId: programId,
|
|
201
|
+
},
|
|
202
|
+
};
|
|
203
|
+
}));
|
|
204
|
+
const addPriorityFeeInstruction = {
|
|
205
|
+
type: InstructionBuilderTypes.SetPriorityFee,
|
|
206
|
+
params: {
|
|
207
|
+
fee: this._priorityFee,
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
// When resolved, emit the permissionless thaw between ATA creation and the transfer so the
|
|
211
|
+
// built order is [CreateATA?, PermissionlessThawIdempotent, TokenTransfer].
|
|
212
|
+
const thawInstructions = this._permissionlessThaw
|
|
213
|
+
? [{ type: InstructionBuilderTypes.PermissionlessThawIdempotent, params: this._permissionlessThaw }]
|
|
214
|
+
: [];
|
|
215
|
+
if (!this._priorityFee || this._priorityFee === Number(0)) {
|
|
216
|
+
this._instructionsData = [...createAtaInstructions, ...thawInstructions, ...sendInstructions];
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
// order is important, createAtaInstructions must be before sendInstructions
|
|
220
|
+
this._instructionsData = [
|
|
221
|
+
addPriorityFeeInstruction,
|
|
222
|
+
...createAtaInstructions,
|
|
223
|
+
...thawInstructions,
|
|
224
|
+
...sendInstructions,
|
|
225
|
+
];
|
|
226
|
+
}
|
|
227
|
+
return await super.buildImplementation();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5RSxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLHdCQUF3QixFQUN4QixhQUFhLEVBQ2IsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixvQkFBb0IsR0FDckIsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBU3RELE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLENBQUMsTUFBTSxRQUFRLENBQUM7QUFXdkIsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsc0JBQXNCLENBQUMsQ0FBQztBQUUzRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBTTFELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBTmIsZ0JBQVcsR0FBaUIsRUFBRSxDQUFDO1FBT3JDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0gsa0JBQWtCLENBQUMsTUFBOEM7UUFDL0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztRQUNsQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxvQkFBb0IsQ0FBQyxLQUF5QjtRQUM1QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFdEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssdUJBQXVCLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQy9ELE1BQU0sbUJBQW1CLEdBQWtCLFdBQVcsQ0FBQztnQkFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3BELElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ1IsT0FBTyxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxTQUFTO29CQUM3QyxNQUFNLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQ3pDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsU0FBUztvQkFDL0MsWUFBWSxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxZQUFZO29CQUNyRCxTQUFTLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFNBQVM7b0JBQy9DLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsYUFBYTtpQkFDeEQsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksV0FBVyxDQUFDLElBQUksS0FBSyx1QkFBdUIsQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2dCQUM5RSxNQUFNLGtCQUFrQixHQUFZLFdBQVcsQ0FBQztnQkFDaEQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztvQkFDekIsWUFBWSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxZQUFZO29CQUNwRCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVM7b0JBQzlDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsVUFBVTtvQkFDaEQsWUFBWSxFQUFFLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxXQUFXO29CQUNuRCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVM7aUJBQy9DLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQWM7UUFDckYsZUFBZSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxnQkFBZ0IsTUFBTSwwQkFBMEIsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7UUFDekcsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsNEJBQTRCLENBQUMsU0FBa0M7UUFDN0Qsb0JBQW9CLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzdDLElBQUksWUFBb0IsQ0FBQztRQUN6QixJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixZQUFZLEdBQUcsU0FBUyxDQUFDLFlBQVksQ0FBQztRQUN4QyxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxHQUFHLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1RCxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDO1lBQ3BDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUkscUJBQXFCLENBQUMsMkJBQTJCLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3JGLENBQUM7UUFDSCxDQUFDO1FBQ0QsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7UUFDM0UsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxVQUFzQixFQUEwQixFQUFFO1lBQzVFLElBQUksWUFBb0IsQ0FBQztZQUN6QixJQUFJLFNBQWlCLENBQUM7WUFDdEIsSUFBSSxTQUE2QixDQUFDO1lBQ2xDLElBQUksUUFBNEIsQ0FBQztZQUNqQyxJQUFJLFVBQVUsQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLFNBQVMsSUFBSSxVQUFVLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN4RixZQUFZLEdBQUcsVUFBVSxDQUFDLFlBQVksQ0FBQztnQkFDdkMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLENBQUM7Z0JBQ2pDLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDO2dCQUNqQyxRQUFRLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQztZQUN0QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEdBQUcsd0JBQXdCLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNULFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO29CQUNqQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDdEIsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7b0JBQzNCLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2dCQUNoQyxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsVUFBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZGLENBQUM7WUFDSCxDQUFDO1lBQ0QsTUFBTSxhQUFhLEdBQUcsTUFBTSxnQ0FBZ0MsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0csT0FBTztnQkFDTCxJQUFJLEVBQUUsdUJBQXVCLENBQUMsYUFBYTtnQkFDM0MsTUFBTSxFQUFFO29CQUNOLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTztvQkFDekIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxPQUFPO29CQUM3QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07b0JBQ3pCLFNBQVMsRUFBRSxTQUFTO29CQUNwQixhQUFhLEVBQUUsYUFBYTtvQkFDNUIsWUFBWSxFQUFFLFlBQVk7b0JBQzFCLFNBQVMsRUFBRSxTQUFTO29CQUNwQixhQUFhLEVBQUUsUUFBUTtvQkFDdkIsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUM1RjthQUNGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFNBQWtDLEVBQUUsRUFBRTtZQUNuRyxPQUFPLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0scUJBQXFCLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUM3QyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQWtDLEVBQW9CLEVBQUU7WUFDdkYsSUFBSSxZQUFvQixDQUFDO1lBQ3pCLElBQUksU0FBaUIsQ0FBQztZQUN0QixJQUFJLFNBQTZCLENBQUM7WUFDbEMsSUFBSSxTQUFTLENBQUMsWUFBWSxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbEQsU0FBUyxHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLFlBQVksR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO2dCQUN0QyxTQUFTLEdBQUcsU0FBUyxDQUFDLFNBQVMsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEdBQUcsd0JBQXdCLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNULFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO29CQUN0QixZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztvQkFDakMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQzdCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztnQkFDdEYsQ0FBQztZQUNILENBQUM7WUFFRCxtRUFBbUU7WUFDbkUsSUFBSSxVQUFVLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztZQUN0QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2hCLFVBQVUsR0FBRyxNQUFNLGdDQUFnQyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM5RyxDQUFDO1lBQ0QsT0FBTztnQkFDTCxJQUFJLEVBQUUsdUJBQXVCLENBQUMsNEJBQTRCO2dCQUMxRCxNQUFNLEVBQUU7b0JBQ04sWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO29CQUNwQyxXQUFXLEVBQUUsWUFBWTtvQkFDekIsVUFBVTtvQkFDViwwRUFBMEU7b0JBQzFFLHdFQUF3RTtvQkFDeEUsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU87b0JBQzVDLFNBQVMsRUFBRSxTQUFTO29CQUNwQixTQUFTLEVBQUUsU0FBUztpQkFDckI7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUNGLE1BQU0seUJBQXlCLEdBQW1CO1lBQ2hELElBQUksRUFBRSx1QkFBdUIsQ0FBQyxjQUFjO1lBQzVDLE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLFlBQVk7YUFDdkI7U0FDRixDQUFDO1FBRUYsMkZBQTJGO1FBQzNGLDRFQUE0RTtRQUM1RSxNQUFNLGdCQUFnQixHQUFtQyxJQUFJLENBQUMsbUJBQW1CO1lBQy9FLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixDQUFDLDRCQUE0QixFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNwRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRVAsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMxRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxHQUFHLHFCQUFxQixFQUFFLEdBQUcsZ0JBQWdCLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hHLENBQUM7YUFBTSxDQUFDO1lBQ04sNEVBQTRFO1lBQzVFLElBQUksQ0FBQyxpQkFBaUIsR0FBRztnQkFDdkIseUJBQXlCO2dCQUN6QixHQUFHLHFCQUFxQjtnQkFDeEIsR0FBRyxnQkFBZ0I7Z0JBQ25CLEdBQUcsZ0JBQWdCO2FBQ3BCLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7XG4gIGdldEFzc29jaWF0ZWRUb2tlbkFjY291bnRBZGRyZXNzLFxuICBnZXRTb2xUb2tlbkZyb21Ub2tlbk5hbWUsXG4gIGlzVmFsaWRBbW91bnQsXG4gIHZhbGlkYXRlQWRkcmVzcyxcbiAgdmFsaWRhdGVNaW50QWRkcmVzcyxcbiAgdmFsaWRhdGVPd25lckFkZHJlc3MsXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQge1xuICBBdGFJbml0LFxuICBFeHRyYUFjY291bnRNZXRhLFxuICBQZXJtaXNzaW9ubGVzc1RoYXdJZGVtcG90ZW50LFxuICBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCxcbiAgVG9rZW5UcmFuc2ZlcixcbiAgU2V0UHJpb3JpdHlGZWUsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGludGVyZmFjZSBTZW5kUGFyYW1zIHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgdG9rZW5OYW1lOiBzdHJpbmc7XG4gIHRva2VuQWRkcmVzcz86IHN0cmluZztcbiAgcHJvZ3JhbUlkPzogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xufVxuXG5jb25zdCBVTlNJR05FRF9CSUdJTlRfTUFYID0gQmlnSW50KCcxODQ0Njc0NDA3MzcwOTU1MTYxNScpO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9zZW5kUGFyYW1zOiBTZW5kUGFyYW1zW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3JlYXRlQXRhUGFyYW1zOiBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudFtdO1xuICBwcml2YXRlIF90cmFuc2Zlckhvb2tBY2NvdW50cz86IEV4dHJhQWNjb3VudE1ldGFbXTtcbiAgcHJpdmF0ZSBfcGVybWlzc2lvbmxlc3NUaGF3PzogUGVybWlzc2lvbmxlc3NUaGF3SWRlbXBvdGVudFsncGFyYW1zJ107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX2NyZWF0ZUF0YVBhcmFtcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgcmVzb2x2ZWQgc1JGQy0zNyBUb2tlbiBBQ0wgcGVybWlzc2lvbmxlc3MtdGhhdyBwYXJhbXMgZm9yIHRoaXMgdHJhbnNmZXIuXG4gICAqXG4gICAqIFRoZXNlIG11c3QgYmUgcmVzb2x2ZWQgbGl2ZSBieSB0aGUgY2FsbGVyIChlLmcuIHZpYSBgU29sLnJlc29sdmVQZXJtaXNzaW9ubGVzc1RoYXdgKSBzaW5jZVxuICAgKiBidWlsZGVycyByZW1haW4gb2ZmbGluZSBhbmQgbmV2ZXIgcGVyZm9ybSBSUEMuIFdoZW4gc2V0LCB0aGUgYnVpbHQgdHJhbnNhY3Rpb24gYnVuZGxlcyBhXG4gICAqIGBQZXJtaXNzaW9ubGVzc1RoYXdJZGVtcG90ZW50YCBpbnN0cnVjdGlvbiBhZnRlciBhbnkgQVRBIGNyZWF0aW9uIGFuZCBiZWZvcmUgdGhlIHRyYW5zZmVyLCBzb1xuICAgKiBhIGZyZXNobHkgY3JlYXRlZCAoZnJvemVuKSBhbGxvd2xpc3QvYmxvY2tsaXN0IHRva2VuIGFjY291bnQgaXMgdGhhd2VkIGF0b21pY2FsbHkgd2l0aCB0aGVcbiAgICogdHJhbnNmZXIg4oCUIGFsbC1vci1ub3RoaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge1Blcm1pc3Npb25sZXNzVGhhd0lkZW1wb3RlbnRbJ3BhcmFtcyddfSBwYXJhbXMgLSByZXNvbHZlZCB0aGF3IHBhcmFtc1xuICAgKiBAcmV0dXJucyB7VG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcGVybWlzc2lvbmxlc3NUaGF3KHBhcmFtczogUGVybWlzc2lvbmxlc3NUaGF3SWRlbXBvdGVudFsncGFyYW1zJ10pOiB0aGlzIHtcbiAgICB0aGlzLl9wZXJtaXNzaW9ubGVzc1RoYXcgPSBwYXJhbXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSByZXNvbHZlZCBUb2tlbi0yMDIyIFRyYW5zZmVyIEhvb2sgZXh0cmEgYWNjb3VudCBtZXRhcyBmb3IgdGhpcyB0cmFuc2Zlci5cbiAgICpcbiAgICogVGhlc2UgbXVzdCBiZSByZXNvbHZlZCBsaXZlIGJ5IHRoZSBjYWxsZXIgKGUuZy4gdmlhIGBTb2wucmVzb2x2ZVRyYW5zZmVySG9va0FjY291bnRzYClcbiAgICogc2luY2UgYnVpbGRlcnMgcmVtYWluIG9mZmxpbmUgYW5kIG5ldmVyIHBlcmZvcm0gUlBDLiBUaGUgb3JkZXIgaXMgc2lnbmlmaWNhbnQgYW5kXG4gICAqIG11c3QgbWF0Y2ggdGhlIGhvb2sncyBFeHRyYUFjY291bnRNZXRhTGlzdC5cbiAgICpcbiAgICogQHBhcmFtIHtFeHRyYUFjY291bnRNZXRhW119IG1ldGFzIC0gcmVzb2x2ZWQgZXh0cmEgYWNjb3VudCBtZXRhcywgaW4gaG9vayBvcmRlclxuICAgKiBAcmV0dXJucyB7VG9rZW5UcmFuc2ZlckJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgdHJhbnNmZXJIb29rQWNjb3VudHMobWV0YXM6IEV4dHJhQWNjb3VudE1ldGFbXSk6IHRoaXMge1xuICAgIHRoaXMuX3RyYW5zZmVySG9va0FjY291bnRzID0gbWV0YXM7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcblxuICAgIGZvciAoY29uc3QgaW5zdHJ1Y3Rpb24gb2YgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSkge1xuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlRva2VuVHJhbnNmZXIpIHtcbiAgICAgICAgY29uc3QgdHJhbnNmZXJJbnN0cnVjdGlvbjogVG9rZW5UcmFuc2ZlciA9IGluc3RydWN0aW9uO1xuICAgICAgICB0aGlzLnNlbmRlcih0cmFuc2Zlckluc3RydWN0aW9uLnBhcmFtcy5mcm9tQWRkcmVzcyk7XG4gICAgICAgIHRoaXMuc2VuZCh7XG4gICAgICAgICAgYWRkcmVzczogdHJhbnNmZXJJbnN0cnVjdGlvbi5wYXJhbXMudG9BZGRyZXNzLFxuICAgICAgICAgIGFtb3VudDogdHJhbnNmZXJJbnN0cnVjdGlvbi5wYXJhbXMuYW1vdW50LFxuICAgICAgICAgIHRva2VuTmFtZTogdHJhbnNmZXJJbnN0cnVjdGlvbi5wYXJhbXMudG9rZW5OYW1lLFxuICAgICAgICAgIHRva2VuQWRkcmVzczogdHJhbnNmZXJJbnN0cnVjdGlvbi5wYXJhbXMudG9rZW5BZGRyZXNzLFxuICAgICAgICAgIHByb2dyYW1JZDogdHJhbnNmZXJJbnN0cnVjdGlvbi5wYXJhbXMucHJvZ3JhbUlkLFxuICAgICAgICAgIGRlY2ltYWxQbGFjZXM6IHRyYW5zZmVySW5zdHJ1Y3Rpb24ucGFyYW1zLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKGluc3RydWN0aW9uLnR5cGUgPT09IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLkNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQpIHtcbiAgICAgICAgY29uc3QgYXRhSW5pdEluc3RydWN0aW9uOiBBdGFJbml0ID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIHRoaXMuX2NyZWF0ZUF0YVBhcmFtcy5wdXNoKHtcbiAgICAgICAgICBvd25lckFkZHJlc3M6IGF0YUluaXRJbnN0cnVjdGlvbi5wYXJhbXMub3duZXJBZGRyZXNzLFxuICAgICAgICAgIHRva2VuTmFtZTogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy50b2tlbk5hbWUsXG4gICAgICAgICAgYXRhQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy5hdGFBZGRyZXNzLFxuICAgICAgICAgIHRva2VuQWRkcmVzczogYXRhSW5pdEluc3RydWN0aW9uLnBhcmFtcy5taW50QWRkcmVzcyxcbiAgICAgICAgICBwcm9ncmFtSWQ6IGF0YUluaXRJbnN0cnVjdGlvbi5wYXJhbXMucHJvZ3JhbUlkLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIFNldCBhIHRyYW5zZmVyXG4gICAqXG4gICAqIEBwYXJhbSB7U2VuZFBhcmFtc30gcGFyYW1zIC0gcGFyYW1zIGZvciB0aGUgdHJhbnNmZXJcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5hZGRyZXNzIC0gdGhlIHJlY2VpdmVyIHRva2VuIGFkZHJlc3NcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5hbW91bnQgLSB0aGUgYW1vdW50IHNlbnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy50b2tlbk5hbWUgLSBuYW1lIG9mIHRva2VuIHRoYXQgaXMgaW50ZW5kZWQgdG8gc2VuZFxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHNlbmQoeyBhZGRyZXNzLCBhbW91bnQsIHRva2VuTmFtZSwgdG9rZW5BZGRyZXNzLCBwcm9ncmFtSWQsIGRlY2ltYWxQbGFjZXMgfTogU2VuZFBhcmFtcyk6IHRoaXMge1xuICAgIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzLCAnYWRkcmVzcycpO1xuICAgIGlmICghYW1vdW50IHx8ICFpc1ZhbGlkQW1vdW50KGFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBhbW91bnQsIGdvdDogJyArIGFtb3VudCk7XG4gICAgfVxuICAgIGlmIChCaWdJbnQoYW1vdW50KSA+IFVOU0lHTkVEX0JJR0lOVF9NQVgpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYGlucHV0IGFtb3VudCAke2Ftb3VudH0gZXhjZWVkcyBiaWcgaW50IGxpbWl0ICR7VU5TSUdORURfQklHSU5UX01BWH1gKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zZW5kUGFyYW1zLnB1c2goeyBhZGRyZXNzLCBhbW91bnQsIHRva2VuTmFtZTogdG9rZW5OYW1lLCB0b2tlbkFkZHJlc3MsIHByb2dyYW1JZCwgZGVjaW1hbFBsYWNlcyB9KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0ge1Rva2VuQXNzb2NpYXRlUmVjaXBpZW50fSByZWNpcGllbnQgLSByZWNpcGllbnQgb2YgdGhlIGFzc29jaWF0ZWQgdG9rZW4gYWNjb3VudCBjcmVhdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcmVjaXBpZW50Lm93bmVyQWRkcmVzcyAtIG93bmVyIG9mIHRoZSBhc3NvY2lhdGVkIHRva2VuIGFjY291bnRcbiAgICogQHBhcmFtIHtzdHJpbmd9IHJlY2lwaWVudC50b2tlbk5hbWUgLSBuYW1lIG9mIHRoZSB0b2tlbiB0aGF0IGlzIGludGVuZGVkIHRvIGFzc29jaWF0ZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGNyZWF0ZUFzc29jaWF0ZWRUb2tlbkFjY291bnQocmVjaXBpZW50OiBUb2tlbkFzc29jaWF0ZVJlY2lwaWVudCk6IHRoaXMge1xuICAgIHZhbGlkYXRlT3duZXJBZGRyZXNzKHJlY2lwaWVudC5vd25lckFkZHJlc3MpO1xuICAgIGxldCB0b2tlbkFkZHJlc3M6IHN0cmluZztcbiAgICBpZiAocmVjaXBpZW50LnRva2VuQWRkcmVzcykge1xuICAgICAgdG9rZW5BZGRyZXNzID0gcmVjaXBpZW50LnRva2VuQWRkcmVzcztcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdG9rZW4gPSBnZXRTb2xUb2tlbkZyb21Ub2tlbk5hbWUocmVjaXBpZW50LnRva2VuTmFtZSk7XG4gICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgdG9rZW5BZGRyZXNzID0gdG9rZW4udG9rZW5BZGRyZXNzO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0b2tlbiBuYW1lLCBnb3Q6ICcgKyByZWNpcGllbnQudG9rZW5OYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdmFsaWRhdGVNaW50QWRkcmVzcyh0b2tlbkFkZHJlc3MpO1xuXG4gICAgdGhpcy5fY3JlYXRlQXRhUGFyYW1zLnB1c2gocmVjaXBpZW50KTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgJ1NlbmRlciBtdXN0IGJlIHNldCBiZWZvcmUgYnVpbGRpbmcgdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgY29uc3Qgc2VuZEluc3RydWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdGhpcy5fc2VuZFBhcmFtcy5tYXAoYXN5bmMgKHNlbmRQYXJhbXM6IFNlbmRQYXJhbXMpOiBQcm9taXNlPFRva2VuVHJhbnNmZXI+ID0+IHtcbiAgICAgICAgbGV0IHRva2VuQWRkcmVzczogc3RyaW5nO1xuICAgICAgICBsZXQgdG9rZW5OYW1lOiBzdHJpbmc7XG4gICAgICAgIGxldCBwcm9ncmFtSWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGRlY2ltYWxzOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChzZW5kUGFyYW1zLnRva2VuQWRkcmVzcyAmJiBzZW5kUGFyYW1zLnByb2dyYW1JZCAmJiBzZW5kUGFyYW1zLmRlY2ltYWxQbGFjZXMgIT0gbnVsbCkge1xuICAgICAgICAgIHRva2VuQWRkcmVzcyA9IHNlbmRQYXJhbXMudG9rZW5BZGRyZXNzO1xuICAgICAgICAgIHRva2VuTmFtZSA9IHNlbmRQYXJhbXMudG9rZW5OYW1lO1xuICAgICAgICAgIHByb2dyYW1JZCA9IHNlbmRQYXJhbXMucHJvZ3JhbUlkO1xuICAgICAgICAgIGRlY2ltYWxzID0gc2VuZFBhcmFtcy5kZWNpbWFsUGxhY2VzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGNvaW4gPSBnZXRTb2xUb2tlbkZyb21Ub2tlbk5hbWUoc2VuZFBhcmFtcy50b2tlbk5hbWUpO1xuICAgICAgICAgIGlmIChjb2luKSB7XG4gICAgICAgICAgICB0b2tlbkFkZHJlc3MgPSBjb2luLnRva2VuQWRkcmVzcztcbiAgICAgICAgICAgIHRva2VuTmFtZSA9IGNvaW4ubmFtZTtcbiAgICAgICAgICAgIHByb2dyYW1JZCA9IGNvaW4ucHJvZ3JhbUlkO1xuICAgICAgICAgICAgZGVjaW1hbHMgPSBjb2luLmRlY2ltYWxQbGFjZXM7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGRldGVybWluZSB0b2tlbiBpbmZvcm1hdGlvbiBmb3IgJHtzZW5kUGFyYW1zLnRva2VuTmFtZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc291cmNlQWRkcmVzcyA9IGF3YWl0IGdldEFzc29jaWF0ZWRUb2tlbkFjY291bnRBZGRyZXNzKHRva2VuQWRkcmVzcywgdGhpcy5fc2VuZGVyLCBmYWxzZSwgcHJvZ3JhbUlkKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5Ub2tlblRyYW5zZmVyLFxuICAgICAgICAgIHBhcmFtczoge1xuICAgICAgICAgICAgZnJvbUFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIHRvQWRkcmVzczogc2VuZFBhcmFtcy5hZGRyZXNzLFxuICAgICAgICAgICAgYW1vdW50OiBzZW5kUGFyYW1zLmFtb3VudCxcbiAgICAgICAgICAgIHRva2VuTmFtZTogdG9rZW5OYW1lLFxuICAgICAgICAgICAgc291cmNlQWRkcmVzczogc291cmNlQWRkcmVzcyxcbiAgICAgICAgICAgIHRva2VuQWRkcmVzczogdG9rZW5BZGRyZXNzLFxuICAgICAgICAgICAgcHJvZ3JhbUlkOiBwcm9ncmFtSWQsXG4gICAgICAgICAgICBkZWNpbWFsUGxhY2VzOiBkZWNpbWFscyxcbiAgICAgICAgICAgIC4uLih0aGlzLl90cmFuc2Zlckhvb2tBY2NvdW50cyA/IHsgdHJhbnNmZXJIb29rQWNjb3VudHM6IHRoaXMuX3RyYW5zZmVySG9va0FjY291bnRzIH0gOiB7fSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCB1bmlxdWVDcmVhdGVBdGFQYXJhbXMgPSBfLnVuaXFCeSh0aGlzLl9jcmVhdGVBdGFQYXJhbXMsIChyZWNpcGllbnQ6IFRva2VuQXNzb2NpYXRlUmVjaXBpZW50KSA9PiB7XG4gICAgICByZXR1cm4gcmVjaXBpZW50Lm93bmVyQWRkcmVzcyArIHJlY2lwaWVudC50b2tlbk5hbWU7XG4gICAgfSk7XG4gICAgY29uc3QgY3JlYXRlQXRhSW5zdHJ1Y3Rpb25zID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICB1bmlxdWVDcmVhdGVBdGFQYXJhbXMubWFwKGFzeW5jIChyZWNpcGllbnQ6IFRva2VuQXNzb2NpYXRlUmVjaXBpZW50KTogUHJvbWlzZTxBdGFJbml0PiA9PiB7XG4gICAgICAgIGxldCB0b2tlbkFkZHJlc3M6IHN0cmluZztcbiAgICAgICAgbGV0IHRva2VuTmFtZTogc3RyaW5nO1xuICAgICAgICBsZXQgcHJvZ3JhbUlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChyZWNpcGllbnQudG9rZW5BZGRyZXNzICYmIHJlY2lwaWVudC5wcm9ncmFtSWQpIHtcbiAgICAgICAgICB0b2tlbk5hbWUgPSByZWNpcGllbnQudG9rZW5OYW1lO1xuICAgICAgICAgIHRva2VuQWRkcmVzcyA9IHJlY2lwaWVudC50b2tlbkFkZHJlc3M7XG4gICAgICAgICAgcHJvZ3JhbUlkID0gcmVjaXBpZW50LnByb2dyYW1JZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBjb2luID0gZ2V0U29sVG9rZW5Gcm9tVG9rZW5OYW1lKHJlY2lwaWVudC50b2tlbk5hbWUpO1xuICAgICAgICAgIGlmIChjb2luKSB7XG4gICAgICAgICAgICB0b2tlbk5hbWUgPSBjb2luLm5hbWU7XG4gICAgICAgICAgICB0b2tlbkFkZHJlc3MgPSBjb2luLnRva2VuQWRkcmVzcztcbiAgICAgICAgICAgIHByb2dyYW1JZCA9IGNvaW4ucHJvZ3JhbUlkO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBkZXRlcm1pbmUgdG9rZW4gaW5mb3JtYXRpb24gZm9yICR7cmVjaXBpZW50LnRva2VuTmFtZX1gKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2UgdGhlIHByb3ZpZGVkIGF0YUFkZHJlc3MgaWYgaXQgZXhpc3RzLCBvdGhlcndpc2UgY2FsY3VsYXRlIGl0XG4gICAgICAgIGxldCBhdGFBZGRyZXNzID0gcmVjaXBpZW50LmF0YUFkZHJlc3M7XG4gICAgICAgIGlmICghYXRhQWRkcmVzcykge1xuICAgICAgICAgIGF0YUFkZHJlc3MgPSBhd2FpdCBnZXRBc3NvY2lhdGVkVG9rZW5BY2NvdW50QWRkcmVzcyh0b2tlbkFkZHJlc3MsIHJlY2lwaWVudC5vd25lckFkZHJlc3MsIGZhbHNlLCBwcm9ncmFtSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdHlwZTogSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ3JlYXRlQXNzb2NpYXRlZFRva2VuQWNjb3VudCxcbiAgICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAgIG93bmVyQWRkcmVzczogcmVjaXBpZW50Lm93bmVyQWRkcmVzcyxcbiAgICAgICAgICAgIG1pbnRBZGRyZXNzOiB0b2tlbkFkZHJlc3MsXG4gICAgICAgICAgICBhdGFBZGRyZXNzLFxuICAgICAgICAgICAgLy8gTWF0Y2ggdHJhbnNhY3Rpb25CdWlsZGVyIGZlZSBwYXllciBzZWxlY3Rpb246IHdoZW4gYSBkaXN0aW5jdCBmZWUgcGF5ZXJcbiAgICAgICAgICAgIC8vIGlzIHNldCAoZS5nLiBnYXMgdGFuayksIGl0IG11c3QgZnVuZCBBVEEgcmVudCDigJQgbm90IHRoZSB0b2tlbiBzZW5kZXIuXG4gICAgICAgICAgICBwYXllckFkZHJlc3M6IHRoaXMuX2ZlZVBheWVyID8/IHRoaXMuX3NlbmRlcixcbiAgICAgICAgICAgIHRva2VuTmFtZTogdG9rZW5OYW1lLFxuICAgICAgICAgICAgcHJvZ3JhbUlkOiBwcm9ncmFtSWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICBjb25zdCBhZGRQcmlvcml0eUZlZUluc3RydWN0aW9uOiBTZXRQcmlvcml0eUZlZSA9IHtcbiAgICAgIHR5cGU6IEluc3RydWN0aW9uQnVpbGRlclR5cGVzLlNldFByaW9yaXR5RmVlLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIGZlZTogdGhpcy5fcHJpb3JpdHlGZWUsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBXaGVuIHJlc29sdmVkLCBlbWl0IHRoZSBwZXJtaXNzaW9ubGVzcyB0aGF3IGJldHdlZW4gQVRBIGNyZWF0aW9uIGFuZCB0aGUgdHJhbnNmZXIgc28gdGhlXG4gICAgLy8gYnVpbHQgb3JkZXIgaXMgW0NyZWF0ZUFUQT8sIFBlcm1pc3Npb25sZXNzVGhhd0lkZW1wb3RlbnQsIFRva2VuVHJhbnNmZXJdLlxuICAgIGNvbnN0IHRoYXdJbnN0cnVjdGlvbnM6IFBlcm1pc3Npb25sZXNzVGhhd0lkZW1wb3RlbnRbXSA9IHRoaXMuX3Blcm1pc3Npb25sZXNzVGhhd1xuICAgICAgPyBbeyB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5QZXJtaXNzaW9ubGVzc1RoYXdJZGVtcG90ZW50LCBwYXJhbXM6IHRoaXMuX3Blcm1pc3Npb25sZXNzVGhhdyB9XVxuICAgICAgOiBbXTtcblxuICAgIGlmICghdGhpcy5fcHJpb3JpdHlGZWUgfHwgdGhpcy5fcHJpb3JpdHlGZWUgPT09IE51bWJlcigwKSkge1xuICAgICAgdGhpcy5faW5zdHJ1Y3Rpb25zRGF0YSA9IFsuLi5jcmVhdGVBdGFJbnN0cnVjdGlvbnMsIC4uLnRoYXdJbnN0cnVjdGlvbnMsIC4uLnNlbmRJbnN0cnVjdGlvbnNdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBvcmRlciBpcyBpbXBvcnRhbnQsIGNyZWF0ZUF0YUluc3RydWN0aW9ucyBtdXN0IGJlIGJlZm9yZSBzZW5kSW5zdHJ1Y3Rpb25zXG4gICAgICB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhID0gW1xuICAgICAgICBhZGRQcmlvcml0eUZlZUluc3RydWN0aW9uLFxuICAgICAgICAuLi5jcmVhdGVBdGFJbnN0cnVjdGlvbnMsXG4gICAgICAgIC4uLnRoYXdJbnN0cnVjdGlvbnMsXG4gICAgICAgIC4uLnNlbmRJbnN0cnVjdGlvbnMsXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { BaseTransaction, ITokenEnablement, TransactionRecipient, TransactionType } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { Transaction as SolTransaction, VersionedTransaction } from '@solana/web3.js';
|
|
4
|
+
import BigNumber from 'bignumber.js';
|
|
5
|
+
import { KeyPair } from '.';
|
|
6
|
+
import { DurableNonceParams, InstructionParams, TransactionExplanation, TxData, VersionedTransactionData } from './iface';
|
|
7
|
+
export declare class Transaction extends BaseTransaction {
|
|
8
|
+
protected _solTransaction: SolTransaction;
|
|
9
|
+
private _lamportsPerSignature;
|
|
10
|
+
private _tokenAccountRentExemptAmount;
|
|
11
|
+
protected _type: TransactionType;
|
|
12
|
+
protected _instructionsData: InstructionParams[];
|
|
13
|
+
private _useTokenAddressTokenName;
|
|
14
|
+
private _versionedTransaction;
|
|
15
|
+
private _versionedTransactionData;
|
|
16
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
17
|
+
get solTransaction(): SolTransaction;
|
|
18
|
+
set solTransaction(tx: SolTransaction);
|
|
19
|
+
private get numberOfRequiredSignatures();
|
|
20
|
+
private get numberOfATACreationInstructions();
|
|
21
|
+
/** @inheritDoc */
|
|
22
|
+
get signablePayload(): Buffer;
|
|
23
|
+
/** @inheritDoc **/
|
|
24
|
+
get id(): string;
|
|
25
|
+
get lamportsPerSignature(): number | undefined;
|
|
26
|
+
set lamportsPerSignature(lamportsPerSignature: number | undefined);
|
|
27
|
+
get tokenAccountRentExemptAmount(): string | undefined;
|
|
28
|
+
set tokenAccountRentExemptAmount(tokenAccountRentExemptAmount: string | undefined);
|
|
29
|
+
/** @inheritDoc */
|
|
30
|
+
get signature(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* Set the transaction type.
|
|
33
|
+
*
|
|
34
|
+
* @param {TransactionType} transactionType The transaction type to be set.
|
|
35
|
+
*/
|
|
36
|
+
setTransactionType(transactionType: TransactionType): void;
|
|
37
|
+
/**
|
|
38
|
+
* Set the instructionData.
|
|
39
|
+
*
|
|
40
|
+
* @param {InstructionParams[]} instructionData The instruction data to be set.
|
|
41
|
+
*/
|
|
42
|
+
setInstructionsData(instructionData: InstructionParams[]): void;
|
|
43
|
+
get useTokenAddressTokenName(): boolean;
|
|
44
|
+
setUseTokenAddressTokenName(value: boolean): void;
|
|
45
|
+
/**
|
|
46
|
+
* Check if this transaction is a VersionedTransaction
|
|
47
|
+
* @returns {boolean} True if this is a VersionedTransaction
|
|
48
|
+
*/
|
|
49
|
+
isVersionedTransaction(): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Get the original VersionedTransaction if this transaction was parsed from one
|
|
52
|
+
* @returns {VersionedTransaction | undefined} The VersionedTransaction or undefined
|
|
53
|
+
*/
|
|
54
|
+
get versionedTransaction(): VersionedTransaction | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Set a built VersionedTransaction
|
|
57
|
+
* @param {VersionedTransaction} versionedTx The VersionedTransaction to set
|
|
58
|
+
*/
|
|
59
|
+
set versionedTransaction(versionedTx: VersionedTransaction | undefined);
|
|
60
|
+
/**
|
|
61
|
+
* Get the stored VersionedTransactionData
|
|
62
|
+
* @returns {VersionedTransactionData | undefined} The stored data or undefined
|
|
63
|
+
*/
|
|
64
|
+
getVersionedTransactionData(): VersionedTransactionData | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Set the VersionedTransactionData for this transaction
|
|
67
|
+
* @param {VersionedTransactionData | undefined} data The versioned transaction data to store, or undefined to clear
|
|
68
|
+
*/
|
|
69
|
+
setVersionedTransactionData(data: VersionedTransactionData | undefined): void;
|
|
70
|
+
/** @inheritdoc */
|
|
71
|
+
canSign(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Signs transaction.
|
|
74
|
+
*
|
|
75
|
+
* @param {KeyPair} keyPair Signer keys.
|
|
76
|
+
*/
|
|
77
|
+
sign(keyPair: KeyPair[] | KeyPair): Promise<void>;
|
|
78
|
+
/** @inheritdoc */
|
|
79
|
+
toBroadcastFormat(): string;
|
|
80
|
+
/**
|
|
81
|
+
* Sets this transaction payload
|
|
82
|
+
*
|
|
83
|
+
* @param rawTransaction
|
|
84
|
+
*/
|
|
85
|
+
fromRawTransaction(rawTransaction: string): void;
|
|
86
|
+
/** @inheritdoc */
|
|
87
|
+
toJson(): TxData;
|
|
88
|
+
/**
|
|
89
|
+
* Get the nonce from the Solana Transaction
|
|
90
|
+
* Throws if not set
|
|
91
|
+
*/
|
|
92
|
+
private getNonce;
|
|
93
|
+
/**
|
|
94
|
+
* Load the input and output data on this transaction.
|
|
95
|
+
*/
|
|
96
|
+
loadInputsAndOutputs(): void;
|
|
97
|
+
/** @inheritDoc */
|
|
98
|
+
explainTransaction(): TransactionExplanation;
|
|
99
|
+
private calculateFee;
|
|
100
|
+
protected getExplainedTransaction(outputAmount: BigNumber, outputs: TransactionRecipient[], memo?: undefined | string, durableNonce?: undefined | DurableNonceParams, tokenEnablements?: ITokenEnablement[]): TransactionExplanation;
|
|
101
|
+
private explainRawMsgAuthorizeTransaction;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"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"}
|