@bitgo-beta/sdk-coin-sol 7.6.4-beta.79 → 7.6.4-beta.790
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/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +12 -1
- package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/ataInitializationBuilder.js +231 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts +55 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/closeAtaBuilder.js +162 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts +136 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.js +375 -0
- package/dist/{src → cjs/src}/lib/constants.d.ts +97 -2
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +277 -0
- package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +13 -2
- package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/customInstructionBuilder.js +392 -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 +304 -0
- package/dist/cjs/src/lib/iface.d.ts +549 -0
- 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 +9 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +106 -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 +1284 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
- package/dist/{src → cjs/src}/lib/keyPair.d.ts +6 -0
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +112 -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/scaledUiAmount.d.ts +30 -0
- package/dist/cjs/src/lib/scaledUiAmount.d.ts.map +1 -0
- package/dist/cjs/src/lib/scaledUiAmount.js +112 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts +21 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/config.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/config.js +34 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts +14 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/instruction.js +32 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts +27 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/message.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/codecs/v1/message.js +196 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts +36 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.js +211 -0
- package/dist/cjs/src/lib/serialization/index.d.ts +5 -0
- package/dist/cjs/src/lib/serialization/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/index.js +27 -0
- package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts +9 -0
- package/dist/cjs/src/lib/serialization/parseWireTransaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/parseWireTransaction.js +58 -0
- package/dist/cjs/src/lib/serialization/wire-transaction.d.ts +14 -0
- package/dist/cjs/src/lib/serialization/wire-transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/wire-transaction.js +51 -0
- package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +1 -1
- package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/solInstructionFactory.js +1129 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.js +129 -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 +214 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.js +126 -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 +87 -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 +26 -0
- package/dist/cjs/src/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenExtensions.js +109 -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/{src → cjs/src}/lib/transaction.d.ts +46 -1
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +761 -0
- package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +42 -1
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +462 -0
- package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +37 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +249 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +81 -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 +252 -0
- package/dist/{src → cjs/src}/lib/utils.d.ts +16 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +681 -0
- package/dist/cjs/src/lib/v1CustomInstructionBuilder.d.ts +29 -0
- package/dist/cjs/src/lib/v1CustomInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/v1CustomInstructionBuilder.js +36 -0
- package/dist/cjs/src/lib/v1PaymentBuilder.d.ts +36 -0
- package/dist/cjs/src/lib/v1PaymentBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/v1PaymentBuilder.js +70 -0
- package/dist/cjs/src/lib/v1TransactionBuilder.d.ts +253 -0
- package/dist/cjs/src/lib/v1TransactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/v1TransactionBuilder.js +601 -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 +114 -3
- package/dist/cjs/src/sol.d.ts.map +1 -0
- package/dist/cjs/src/sol.js +1707 -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/ctEnablementVerify.d.ts +2 -0
- package/dist/cjs/test/unit/ctEnablementVerify.d.ts.map +1 -0
- package/dist/cjs/test/unit/ctEnablementVerify.js +142 -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 +66 -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/cjs/test/unit/scaledUiAmount.d.ts +2 -0
- package/dist/cjs/test/unit/scaledUiAmount.d.ts.map +1 -0
- package/dist/cjs/test/unit/scaledUiAmount.js +101 -0
- package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/decodeV1Message.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/decodeV1Message.js +63 -0
- package/dist/cjs/test/unit/serialization/exportV1.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/exportV1.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/exportV1.js +21 -0
- package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/parseWireTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/parseWireTransaction.js +90 -0
- package/dist/cjs/test/unit/serialization/transactionV1.d.ts +2 -0
- package/dist/cjs/test/unit/serialization/transactionV1.d.ts.map +1 -0
- package/dist/cjs/test/unit/serialization/transactionV1.js +136 -0
- package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
- package/dist/cjs/test/unit/sol.js +5364 -0
- package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/solInstructionFactory.js +623 -0
- package/dist/cjs/test/unit/solIntentVersion.d.ts +2 -0
- package/dist/cjs/test/unit/solIntentVersion.d.ts.map +1 -0
- package/dist/cjs/test/unit/solIntentVersion.js +59 -0
- package/dist/cjs/test/unit/solSafeRecovery.d.ts +2 -0
- package/dist/cjs/test/unit/solSafeRecovery.d.ts.map +1 -0
- package/dist/cjs/test/unit/solSafeRecovery.js +202 -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 +73 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +1129 -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 +508 -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 +343 -0
- package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/computeUnitLimit.js +346 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialEnablementV1.js +123 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferBuilder.js +955 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1.js +193 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/confidentialTransferV1Ops.js +167 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +724 -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 +302 -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/v1PaymentBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/v1PaymentBuilder.js +138 -0
- package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.d.ts +2 -0
- package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/v1TransactionBuilder.js +331 -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 +663 -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 +58 -0
- package/dist/esm/lib/ataInitializationBuilder.d.ts.map +1 -0
- package/dist/esm/lib/ataInitializationBuilder.js +191 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts +55 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/esm/lib/closeAtaBuilder.js +155 -0
- package/dist/esm/lib/confidentialTransferBuilder.d.ts +136 -0
- package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/confidentialTransferBuilder.js +368 -0
- package/dist/esm/lib/constants.d.ts +235 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +274 -0
- package/dist/esm/lib/customInstructionBuilder.d.ts +83 -0
- package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +1 -1
- package/dist/esm/lib/customInstructionBuilder.js +385 -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 +301 -0
- package/dist/esm/lib/iface.d.ts +549 -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 +31 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +31 -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 +1276 -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 +32 -0
- package/dist/esm/lib/keyPair.d.ts.map +1 -0
- package/dist/esm/lib/keyPair.js +75 -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/scaledUiAmount.d.ts +30 -0
- package/dist/esm/lib/scaledUiAmount.d.ts.map +1 -0
- package/dist/esm/lib/scaledUiAmount.js +108 -0
- package/dist/esm/lib/serialization/codecs/v1/config.d.ts +21 -0
- package/dist/esm/lib/serialization/codecs/v1/config.d.ts.map +1 -0
- package/dist/esm/lib/serialization/codecs/v1/config.js +30 -0
- package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts +14 -0
- package/dist/esm/lib/serialization/codecs/v1/instruction.d.ts.map +1 -0
- package/dist/esm/lib/serialization/codecs/v1/instruction.js +29 -0
- package/dist/esm/lib/serialization/codecs/v1/message.d.ts +27 -0
- package/dist/esm/lib/serialization/codecs/v1/message.d.ts.map +1 -0
- package/dist/esm/lib/serialization/codecs/v1/message.js +188 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.d.ts +36 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.js +208 -0
- package/dist/esm/lib/serialization/index.d.ts +5 -0
- package/dist/esm/lib/serialization/index.d.ts.map +1 -0
- package/dist/esm/lib/serialization/index.js +5 -0
- package/dist/esm/lib/serialization/parseWireTransaction.d.ts +9 -0
- package/dist/esm/lib/serialization/parseWireTransaction.d.ts.map +1 -0
- package/dist/esm/lib/serialization/parseWireTransaction.js +50 -0
- package/dist/esm/lib/serialization/wire-transaction.d.ts +14 -0
- package/dist/esm/lib/serialization/wire-transaction.d.ts.map +1 -0
- package/dist/esm/lib/serialization/wire-transaction.js +48 -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 +1123 -0
- package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
- package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingActivateBuilder.js +122 -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.d.ts.map +1 -1
- package/dist/esm/lib/stakingDeactivateBuilder.js +207 -0
- package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
- package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingDelegateBuilder.js +119 -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/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +1 -1
- package/dist/esm/lib/stakingWithdrawBuilder.js +80 -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 +26 -0
- package/dist/esm/lib/tokenExtensions.d.ts.map +1 -0
- package/dist/esm/lib/tokenExtensions.js +103 -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 +148 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +754 -0
- package/dist/esm/lib/transactionBuilder.d.ts +169 -0
- package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilder.js +455 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +152 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilderFactory.js +245 -0
- package/dist/esm/lib/transferBuilder.d.ts +26 -0
- package/dist/{src → esm}/lib/transferBuilder.d.ts.map +1 -1
- package/dist/esm/lib/transferBuilder.js +74 -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 +245 -0
- package/dist/esm/lib/utils.d.ts +216 -0
- package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +642 -0
- package/dist/esm/lib/v1CustomInstructionBuilder.d.ts +29 -0
- package/dist/esm/lib/v1CustomInstructionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/v1CustomInstructionBuilder.js +32 -0
- package/dist/esm/lib/v1PaymentBuilder.d.ts +36 -0
- package/dist/esm/lib/v1PaymentBuilder.d.ts.map +1 -0
- package/dist/esm/lib/v1PaymentBuilder.js +63 -0
- package/dist/esm/lib/v1TransactionBuilder.d.ts +253 -0
- package/dist/esm/lib/v1TransactionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/v1TransactionBuilder.js +591 -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 +351 -0
- package/dist/esm/sol.d.ts.map +1 -0
- package/dist/esm/sol.js +1666 -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 +37 -17
- 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.d.ts.map +0 -1
- 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 +0 -244
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -7
- package/dist/src/lib/index.d.ts.map +0 -1
- 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.d.ts.map +0 -1
- 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/stakingDeactivateBuilder.js +0 -208
- 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.d.ts.map +0 -1
- 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/jitoStakePoolOperations.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/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/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/jitoStakePoolOperations.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/stakingAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.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 @@
|
|
|
1
|
+
{"version":3,"file":"confidentialTransferV1.d.ts","sourceRoot":"","sources":["../../../../../test/unit/transactionBuilder/confidentialTransferV1.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,193 @@
|
|
|
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
|
+
require("should");
|
|
40
|
+
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
41
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
42
|
+
const src_1 = require("../../../src");
|
|
43
|
+
const parseWireTransaction_1 = require("../../../src/lib/serialization/parseWireTransaction");
|
|
44
|
+
const testData = __importStar(require("../../resources/sol"));
|
|
45
|
+
const getBuilderFactory_1 = require("../getBuilderFactory");
|
|
46
|
+
describe('Solana Confidential Transfer Builder - v1', () => {
|
|
47
|
+
const factory = (0, getBuilderFactory_1.getBuilderFactory)('sol');
|
|
48
|
+
const account = new src_1.KeyPair(testData.associatedTokenAccounts.accounts[0]).getKeys();
|
|
49
|
+
const recentBlockHash = 'GHtXQBsoZHVnNFa9YevAzFr17DJjgHXk3ycTKD5xD3Zi';
|
|
50
|
+
const gasTank = new src_1.KeyPair({ prv: testData.prvKeys.prvKey1.base58 }).getKeys();
|
|
51
|
+
const nonceAccount = new src_1.KeyPair(testData.nonceAccount).getKeys();
|
|
52
|
+
const mintAddress = testData.associatedTokenAccountsForSol2022.mintId;
|
|
53
|
+
const tokenAddress = testData.associatedTokenAccountsForSol2022.accounts[0].ata;
|
|
54
|
+
const destinationTokenAddress = 'ENn8a2tGMS9bR5XV7smGHJvNgzkyxJmnD2eUvQxY5jSP';
|
|
55
|
+
const authorityAddress = account.pub;
|
|
56
|
+
const zeroBytes36 = '00'.repeat(36);
|
|
57
|
+
const zeroBytes64 = '00'.repeat(64);
|
|
58
|
+
const proofDataHex = '00'.repeat(320);
|
|
59
|
+
const v1Config = {
|
|
60
|
+
computeUnitLimit: 200000,
|
|
61
|
+
heapSize: 32768,
|
|
62
|
+
loadedAccountsDataSizeLimit: 65536,
|
|
63
|
+
priorityFee: 5000,
|
|
64
|
+
};
|
|
65
|
+
const ctBuilder = () => {
|
|
66
|
+
const txBuilder = factory.getConfidentialTransferBuilder();
|
|
67
|
+
txBuilder.nonce(recentBlockHash);
|
|
68
|
+
txBuilder.sender(account.pub);
|
|
69
|
+
txBuilder.sign({ key: account.prv });
|
|
70
|
+
return txBuilder;
|
|
71
|
+
};
|
|
72
|
+
const addTransfer = (builder) => {
|
|
73
|
+
builder
|
|
74
|
+
.applyPendingBalance({
|
|
75
|
+
tokenAddress,
|
|
76
|
+
authorityAddress,
|
|
77
|
+
expectedPendingBalanceCreditCounter: '2',
|
|
78
|
+
newDecryptableAvailableBalance: zeroBytes36,
|
|
79
|
+
})
|
|
80
|
+
.verifyEqualityProof({ proofData: proofDataHex })
|
|
81
|
+
.verifyValidityProof({ proofData: proofDataHex })
|
|
82
|
+
.verifyRangeProof({ proofData: '00'.repeat(1000) })
|
|
83
|
+
.confidentialTransfer({
|
|
84
|
+
sourceTokenAddress: tokenAddress,
|
|
85
|
+
mintAddress,
|
|
86
|
+
destinationTokenAddress,
|
|
87
|
+
authorityAddress,
|
|
88
|
+
newSourceDecryptableAvailableBalance: zeroBytes36,
|
|
89
|
+
transferAmountAuditorCiphertextLo: zeroBytes64,
|
|
90
|
+
transferAmountAuditorCiphertextHi: zeroBytes64,
|
|
91
|
+
equalityProofInstructionOffset: 1,
|
|
92
|
+
ciphertextValidityProofInstructionOffset: 2,
|
|
93
|
+
rangeProofInstructionOffset: 3,
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
it('should build a v1 confidential transfer transaction (0x81 prefix, within 4096 bytes)', async () => {
|
|
97
|
+
const builder = ctBuilder();
|
|
98
|
+
addTransfer(builder);
|
|
99
|
+
builder.version(1).transactionConfig(v1Config);
|
|
100
|
+
const tx = await builder.build();
|
|
101
|
+
tx.isVersionedTransaction().should.equal(true);
|
|
102
|
+
tx.v1TransactionBytes.should.be.an.instanceOf(Uint8Array);
|
|
103
|
+
const rawTx = tx.toBroadcastFormat();
|
|
104
|
+
const wire = Buffer.from(rawTx, 'base64');
|
|
105
|
+
// v1 version byte prefix
|
|
106
|
+
wire[0].should.equal(0x81);
|
|
107
|
+
// within the v1 wire size limit
|
|
108
|
+
wire.length.should.be.lessThanOrEqual(4096);
|
|
109
|
+
// config preserved in the decoded v1 message
|
|
110
|
+
});
|
|
111
|
+
it('injects the AdvanceNonceAccount instruction and assembles user + gas-tank signatures in signer order for durable nonce', async () => {
|
|
112
|
+
const builder = ctBuilder();
|
|
113
|
+
addTransfer(builder);
|
|
114
|
+
builder.nonce(recentBlockHash, {
|
|
115
|
+
walletNonceAddress: nonceAccount.pub,
|
|
116
|
+
authWalletAddress: gasTank.pub,
|
|
117
|
+
});
|
|
118
|
+
builder.version(1).transactionConfig(v1Config);
|
|
119
|
+
const unsigned = (await builder.build());
|
|
120
|
+
const messageBytes = unsigned.v1MessageBytes;
|
|
121
|
+
unsigned.isVersionedTransaction().should.equal(true);
|
|
122
|
+
unsigned.v1TransactionBytes[0].should.equal(0x81);
|
|
123
|
+
// 2 required signers: user (fee payer) + gas-tank nonce authority
|
|
124
|
+
messageBytes[1].should.equal(2);
|
|
125
|
+
const decoded = (0, src_1.decodeV1Message)(messageBytes);
|
|
126
|
+
// nonce hash occupies the blockhash field
|
|
127
|
+
decoded.blockhash.should.equal(recentBlockHash);
|
|
128
|
+
// first instruction is AdvanceNonceAccount (System Program, discriminator 4)
|
|
129
|
+
decoded.compiledInstructions[0].data[0].should.equal(4);
|
|
130
|
+
decoded.staticAccounts[decoded.compiledInstructions[0].programAddressIndex].should.equal(web3_js_1.SystemProgram.programId.toBase58());
|
|
131
|
+
// signer order: fee payer (user) first, then gas tank
|
|
132
|
+
decoded.staticAccounts.slice(0, 2).should.deepEqual([account.pub, gasTank.pub]);
|
|
133
|
+
// attach the gas-tank HSM signature over the same message bytes
|
|
134
|
+
const signWith = (keyPair, msg) => {
|
|
135
|
+
const prv = keyPair.prv;
|
|
136
|
+
if (typeof prv !== 'string') {
|
|
137
|
+
throw new Error('Missing private key for test signer');
|
|
138
|
+
}
|
|
139
|
+
const kp = new src_1.KeyPair({ prv });
|
|
140
|
+
return tweetnacl_1.default.sign.detached(msg, kp.getKeys(true).prv);
|
|
141
|
+
};
|
|
142
|
+
const gasTankSig = signWith(gasTank, messageBytes);
|
|
143
|
+
builder.addSignature({ pub: gasTank.pub }, Buffer.from(gasTankSig));
|
|
144
|
+
const signed = (await builder.build());
|
|
145
|
+
// message byte-identity between build and sign
|
|
146
|
+
Buffer.from(signed.v1MessageBytes).equals(Buffer.from(messageBytes)).should.be.true();
|
|
147
|
+
signed.v1TransactionBytes.length.should.equal(messageBytes.length + 2 * 64);
|
|
148
|
+
const parsed = (0, src_1.parseWireTransaction)(signed.v1TransactionBytes);
|
|
149
|
+
parsed.signerPublicKeys.should.deepEqual([account.pub, gasTank.pub]);
|
|
150
|
+
(0, parseWireTransaction_1.verifyV1Signatures)(parsed.messageBytes, parsed.signatures, parsed.signerPublicKeys);
|
|
151
|
+
});
|
|
152
|
+
it('should require transactionConfig when version(1) is set', async () => {
|
|
153
|
+
const builder = ctBuilder();
|
|
154
|
+
addTransfer(builder);
|
|
155
|
+
builder.version(1);
|
|
156
|
+
await builder.build().should.be.rejectedWith(/transactionConfig is required/);
|
|
157
|
+
});
|
|
158
|
+
it('should reject v1 transactions that exceed the 4096-byte wire limit at broadcast', async () => {
|
|
159
|
+
const builder = ctBuilder();
|
|
160
|
+
addTransfer(builder);
|
|
161
|
+
builder.version(1).transactionConfig(v1Config);
|
|
162
|
+
const tx = await builder.build();
|
|
163
|
+
const rawTx = tx.toBroadcastFormat();
|
|
164
|
+
// Force an oversized v1 payload by padding the wire bytes past the limit.
|
|
165
|
+
const wire = Buffer.from(rawTx, 'base64');
|
|
166
|
+
const oversized = Buffer.concat([wire, Buffer.alloc(4097)]);
|
|
167
|
+
oversized[0].should.equal(0x81);
|
|
168
|
+
// Broadcast the oversized v1 tx through Sol.prototype.broadcastTransaction with an RPC
|
|
169
|
+
// stub that must not be reached - the size guard short-circuits before the RPC call.
|
|
170
|
+
const coin = { getDataFromNode: () => Promise.reject(new Error('RPC should not be reached')) };
|
|
171
|
+
await src_1.Sol.prototype.broadcastTransaction
|
|
172
|
+
.call(coin, { serializedSignedTransaction: oversized.toString('base64') })
|
|
173
|
+
.should.be.rejectedWith(/exceeds the 4096-byte size limit/);
|
|
174
|
+
});
|
|
175
|
+
it('should leave the non-v1 path unchanged (v0/legacy default)', async () => {
|
|
176
|
+
const builder = ctBuilder();
|
|
177
|
+
builder.configureAccount({
|
|
178
|
+
tokenAddress,
|
|
179
|
+
mintAddress,
|
|
180
|
+
authorityAddress,
|
|
181
|
+
decryptableZeroBalance: zeroBytes36,
|
|
182
|
+
maximumPendingBalanceCreditCounter: '65536',
|
|
183
|
+
proofInstructionOffset: 1,
|
|
184
|
+
});
|
|
185
|
+
const tx = await builder.build();
|
|
186
|
+
const rawTx = tx.toBroadcastFormat();
|
|
187
|
+
// legacy transaction does not carry the 0x81 v1 prefix
|
|
188
|
+
Buffer.from(rawTx, 'base64')[0].should.not.equal(0x81);
|
|
189
|
+
tx.isVersionedTransaction().should.equal(false);
|
|
190
|
+
src_1.Utils.isValidRawTransaction(rawTx).should.equal(true);
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlkZW50aWFsVHJhbnNmZXJWMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvY29uZmlkZW50aWFsVHJhbnNmZXJWMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtCQUFnQjtBQUNoQiwwREFBNkI7QUFDN0IsNkNBQWdEO0FBQ2hELHNDQUF1RztBQUN2Ryw4RkFBeUY7QUFFekYsOERBQWdEO0FBQ2hELDREQUF5RDtBQUV6RCxRQUFRLENBQUMsMkNBQTJDLEVBQUUsR0FBRyxFQUFFO0lBQ3pELE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BGLE1BQU0sZUFBZSxHQUFHLDhDQUE4QyxDQUFDO0lBQ3ZFLE1BQU0sT0FBTyxHQUFHLElBQUksYUFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEYsTUFBTSxZQUFZLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRWxFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUM7SUFDdEUsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDaEYsTUFBTSx1QkFBdUIsR0FBRyw4Q0FBOEMsQ0FBQztJQUMvRSxNQUFNLGdCQUFn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LEVBQUUsV0FBVztZQUNuQyxrQ0FBa0MsRUFBRSxPQUFPO1lBQzNDLHNCQUFzQixFQUFFLENBQUM7U0FDMUIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxFQUFFLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakMsTUFBTSxLQUFLLEdBQUksRUFBa0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3RELHVEQUF1RDtRQUN2RCxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0RCxFQUFrQixDQUFDLHNCQUFzQixFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxXQUFLLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IG5hY2wgZnJvbSAndHdlZXRuYWNsJztcbmltcG9ydCB7IFN5c3RlbVByb2dyYW0gfSBmcm9tICdAc29sYW5hL3dlYjMuanMnO1xuaW1wb3J0IHsgZGVjb2RlVjFNZXNzYWdlLCBLZXlQYWlyLCBwYXJzZVdpcmVUcmFuc2FjdGlvbiwgU29sLCBUcmFuc2FjdGlvbiwgVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgdmVyaWZ5VjFTaWduYXR1cmVzIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9zZXJpYWxpemF0aW9uL3BhcnNlV2lyZVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFNvbGFuYUtleXMgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9zb2wnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi9nZXRCdWlsZGVyRmFjdG9yeSc7XG5cbmRlc2NyaWJlKCdTb2xhbmEgQ29uZmlkZW50aWFsIFRyYW5zZmVyIEJ1aWxkZXIgLSB2MScsICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IGdldEJ1aWxkZXJGYWN0b3J5KCdzb2wnKTtcbiAgY29uc3QgYWNjb3VudCA9IG5ldyBLZXlQYWlyKHRlc3REYXRhLmFzc29jaWF0ZWRUb2tlbkFjY291bnRzLmFjY291bnRzWzBdKS5nZXRLZXlzKCk7XG4gIGNvbnN0IHJlY2VudEJsb2NrSGFzaCA9ICdHSHRYUUJzb1pIVm5ORmE5WWV2QXpGcjE3REpqZ0hYazN5Y1RLRDV4RDNaaSc7XG4gIGNvbnN0IGdhc1RhbmsgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEucHJ2S2V5cy5wcnZLZXkxLmJhc2U1OCB9KS5nZXRLZXlzKCk7XG4gIGNvbnN0IG5vbmNlQWNjb3VudCA9IG5ldyBLZXlQYWlyKHRlc3REYXRhLm5vbmNlQWNjb3VudCkuZ2V0S2V5cygpO1xuXG4gIGNvbnN0IG1pbnRBZGRyZXNzID0gdGVzdERhdGEuYXNzb2NpYXRlZFRva2VuQWNjb3VudHNGb3JTb2wyMDIyLm1pbnRJZDtcbiAgY29uc3QgdG9rZW5BZGRyZXNzID0gdGVzdERhdGEuYXNzb2NpYXRlZFRva2VuQWNjb3VudHNGb3JTb2wyMDIyLmFjY291bnRzWzBdLmF0YTtcbiAgY29uc3QgZGVzdGluYXRpb25Ub2tlbkFkZHJlc3MgPSAnRU5uOGEydEdNUzliUjVYVjdzbUdISnZOZ3preXhKbW5EMmVVdlF4WTVqU1AnO1xuICBjb25zdCBhdXRob3JpdHlBZGRyZXNzID0gYWNjb3VudC5wdWI7XG5cbiAgY29uc3QgemVyb0J5dGVzMzYgPSAnMDAnLnJlcGVhdCgzNik7XG4gIGNvbnN0IHplcm9CeXRlczY0ID0gJzAwJy5yZXBlYXQoNjQpO1xuICBjb25zdCBwcm9vZkRhdGFIZXggPSAnMDAnLnJlcGVhdCgzMjApO1xuXG4gIGNvbnN0IHYxQ29uZmlnID0ge1xuICAgIGNvbXB1dGVVbml0TGltaXQ6IDIwMF8wMDAsXG4gICAgaGVhcFNpemU6IDMyXzc2OCxcbiAgICBsb2FkZWRBY2NvdW50c0RhdGFTaXplTGltaXQ6IDY1XzUzNixcbiAgICBwcmlvcml0eUZlZTogNV8wMDAsXG4gIH07XG5cbiAgY29uc3QgY3RCdWlsZGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0Q29uZmlkZW50aWFsVHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLm5vbmNlKHJlY2VudEJsb2NrSGFzaCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcihhY2NvdW50LnB1Yik7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGFjY291bnQucHJ2IH0pO1xuICAgIHJldHVybiB0eEJ1aWxkZXI7XG4gIH07XG5cbiAgY29uc3QgYWRkVHJhbnNmZXIgPSAoYnVpbGRlcjogUmV0dXJuVHlwZTx0eXBlb2YgY3RCdWlsZGVyPikgPT4ge1xuICAgIGJ1aWxkZXJcbiAgICAgIC5hcHBseVBlbmRpbmdCYWxhbmNlKHtcbiAgICAgICAgdG9rZW5BZGRyZXNzLFxuICAgICAgICBhdXRob3JpdHlBZGRyZXNzLFxuICAgICAgICBleHBlY3RlZFBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlcjogJzInLFxuICAgICAgICBuZXdEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2U6IHplcm9CeXRlczM2LFxuICAgICAgfSlcbiAgICAgIC52ZXJpZnlFcXVhbGl0eVByb29mKHsgcHJvb2ZEYXRhOiBwcm9vZkRhdGFIZXggfSlcbiAgICAgIC52ZXJpZnlWYWxpZGl0eVByb29mKHsgcHJvb2ZEYXRhOiBwcm9vZkRhdGFIZXggfSlcbiAgICAgIC52ZXJpZnlSYW5nZVByb29mKHsgcHJvb2ZEYXRhOiAnMDAnLnJlcGVhdCgxMDAwKSB9KVxuICAgICAgLmNvbmZpZGVudGlhbFRyYW5zZmVyKHtcbiAgICAgICAgc291cmNlVG9rZW5BZGRyZXNzOiB0b2tlbkFkZHJlc3MsXG4gICAgICAgIG1pbnRBZGRyZXNzLFxuICAgICAgICBkZXN0aW5hdGlvblRva2VuQWRkcmVzcyxcbiAgICAgICAgYXV0aG9yaXR5QWRkcmVzcyxcbiAgICAgICAgbmV3U291cmNlRGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlOiB6ZXJvQnl0ZXMzNixcbiAgICAgICAgdHJhbnNmZXJBbW91bnRBdWRpdG9yQ2lwaGVydGV4dExvOiB6ZXJvQnl0ZXM2NCxcbiAgICAgICAgdHJhbnNmZXJBbW91bnRBdWRpdG9yQ2lwaGVydGV4dEhpOiB6ZXJvQnl0ZXM2NCxcbiAgICAgICAgZXF1YWxpdHlQcm9vZkluc3RydWN0aW9uT2Zmc2V0OiAxLFxuICAgICAgICBjaXBoZXJ0ZXh0VmFsaWRpdHlQcm9vZkluc3RydWN0aW9uT2Zmc2V0OiAyLFxuICAgICAgICByYW5nZVByb29mSW5zdHJ1Y3Rpb25PZmZzZXQ6IDMsXG4gICAgICB9KTtcbiAgfTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgdjEgY29uZmlkZW50aWFsIHRyYW5zZmVyIHRyYW5zYWN0aW9uICgweDgxIHByZWZpeCwgd2l0aGluIDQwOTYgYnl0ZXMpJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBjdEJ1aWxkZXIoKTtcbiAgICBhZGRUcmFuc2ZlcihidWlsZGVyKTtcbiAgICBidWlsZGVyLnZlcnNpb24oMSkudHJhbnNhY3Rpb25Db25maWcodjFDb25maWcpO1xuXG4gICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAodHggYXMgVHJhbnNhY3Rpb24pLmlzVmVyc2lvbmVkVHJhbnNhY3Rpb24oKS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgKHR4IGFzIFRyYW5zYWN0aW9uKS52MVRyYW5zYWN0aW9uQnl0ZXMhLnNob3VsZC5iZS5hbi5pbnN0YW5jZU9mKFVpbnQ4QXJyYXkpO1xuXG4gICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIGNvbnN0IHdpcmUgPSBCdWZmZXIuZnJvbShyYXdUeCwgJ2Jhc2U2NCcpO1xuXG4gICAgLy8gdjEgdmVyc2lvbiBieXRlIHByZWZpeFxuICAgIHdpcmVbMF0uc2hvdWxkLmVxdWFsKDB4ODEpO1xuICAgIC8vIHdpdGhpbiB0aGUgdjEgd2lyZSBzaXplIGxpbWl0XG4gICAgd2lyZS5sZW5ndGguc2hvdWxkLmJlLmxlc3NUaGFuT3JFcXVhbCg0MDk2KTtcblxuICAgIC8vIGNvbmZpZyBwcmVzZXJ2ZWQgaW4gdGhlIGRlY29kZWQgdjEgbWVzc2FnZVxuICB9KTtcblxuICBpdCgnaW5qZWN0cyB0aGUgQWR2YW5jZU5vbmNlQWNjb3VudCBpbnN0cnVjdGlvbiBhbmQgYXNzZW1ibGVzIHVzZXIgKyBnYXMtdGFuayBzaWduYXR1cmVzIGluIHNpZ25lciBvcmRlciBmb3IgZHVyYWJsZSBub25jZScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBidWlsZGVyID0gY3RCdWlsZGVyKCk7XG4gICAgYWRkVHJhbnNmZXIoYnVpbGRlcik7XG4gICAgYnVpbGRlci5ub25jZShyZWNlbnRCbG9ja0hhc2gsIHtcbiAgICAgIHdhbGxldE5vbmNlQWRkcmVzczogbm9uY2VBY2NvdW50LnB1YixcbiAgICAgIGF1dGhXYWxsZXRBZGRyZXNzOiBnYXNUYW5rLnB1YixcbiAgICB9KTtcbiAgICBidWlsZGVyLnZlcnNpb24oMSkudHJhbnNhY3Rpb25Db25maWcodjFDb25maWcpO1xuXG4gICAgY29uc3QgdW5zaWduZWQgPSAoYXdhaXQgYnVpbGRlci5idWlsZCgpKSBhcyBUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBtZXNzYWdlQnl0ZXMgPSB1bnNpZ25lZC52MU1lc3NhZ2VCeXRlcyE7XG4gICAgdW5zaWduZWQuaXNWZXJzaW9uZWRUcmFuc2FjdGlvbigpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB1bnNpZ25lZC52MVRyYW5zYWN0aW9uQnl0ZXMhWzBdLnNob3VsZC5lcXVhbCgweDgxKTtcblxuICAgIC8vIDIgcmVxdWlyZWQgc2lnbmVyczogdXNlciAoZmVlIHBheWVyKSArIGdhcy10YW5rIG5vbmNlIGF1dGhvcml0eVxuICAgIG1lc3NhZ2VCeXRlc1sxXS5zaG91bGQuZXF1YWwoMik7XG5cbiAgICBjb25zdCBkZWNvZGVkID0gZGVjb2RlVjFNZXNzYWdlKG1lc3NhZ2VCeXRlcyk7XG4gICAgLy8gbm9uY2UgaGFzaCBvY2N1cGllcyB0aGUgYmxvY2toYXNoIGZpZWxkXG4gICAgZGVjb2RlZC5ibG9ja2hhc2guc2hvdWxkLmVxdWFsKHJlY2VudEJsb2NrSGFzaCk7XG4gICAgLy8gZmlyc3QgaW5zdHJ1Y3Rpb24gaXMgQWR2YW5jZU5vbmNlQWNjb3VudCAoU3lzdGVtIFByb2dyYW0sIGRpc2NyaW1pbmF0b3IgNClcbiAgICBkZWNvZGVkLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zWzBdLmRhdGFbMF0uc2hvdWxkLmVxdWFsKDQpO1xuICAgIGRlY29kZWQuc3RhdGljQWNjb3VudHNbZGVjb2RlZC5jb21waWxlZEluc3RydWN0aW9uc1swXS5wcm9ncmFtQWRkcmVzc0luZGV4XS5zaG91bGQuZXF1YWwoXG4gICAgICBTeXN0ZW1Qcm9ncmFtLnByb2dyYW1JZC50b0Jhc2U1OCgpXG4gICAgKTtcbiAgICAvLyBzaWduZXIgb3JkZXI6IGZlZSBwYXllciAodXNlcikgZmlyc3QsIHRoZW4gZ2FzIHRhbmtcbiAgICBkZWNvZGVkLnN0YXRpY0FjY291bnRzLnNsaWNlKDAsIDIpLnNob3VsZC5kZWVwRXF1YWwoW2FjY291bnQucHViLCBnYXNUYW5rLnB1Yl0pO1xuXG4gICAgLy8gYXR0YWNoIHRoZSBnYXMtdGFuayBIU00gc2lnbmF0dXJlIG92ZXIgdGhlIHNhbWUgbWVzc2FnZSBieXRlc1xuICAgIGNvbnN0IHNpZ25XaXRoID0gKGtleVBhaXI6IFNvbGFuYUtleXMsIG1zZzogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkgPT4ge1xuICAgICAgY29uc3QgcHJ2ID0ga2V5UGFpci5wcnY7XG4gICAgICBpZiAodHlwZW9mIHBydiAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5IGZvciB0ZXN0IHNpZ25lcicpO1xuICAgICAgfVxuICAgICAgY29uc3Qga3AgPSBuZXcgS2V5UGFpcih7IHBydiB9KTtcbiAgICAgIHJldHVybiBuYWNsLnNpZ24uZGV0YWNoZWQobXNnLCBrcC5nZXRLZXlzKHRydWUpLnBydiBhcyBVaW50OEFycmF5KTtcbiAgICB9O1xuICAgIGNvbnN0IGdhc1RhbmtTaWcgPSBzaWduV2l0aChnYXNUYW5rLCBtZXNzYWdlQnl0ZXMpO1xuICAgIGJ1aWxkZXIuYWRkU2lnbmF0dXJlKHsgcHViOiBnYXNUYW5rLnB1YiB9LCBCdWZmZXIuZnJvbShnYXNUYW5rU2lnKSk7XG4gICAgY29uc3Qgc2lnbmVkID0gKGF3YWl0IGJ1aWxkZXIuYnVpbGQoKSkgYXMgVHJhbnNhY3Rpb247XG5cbiAgICAvLyBtZXNzYWdlIGJ5dGUtaWRlbnRpdHkgYmV0d2VlbiBidWlsZCBhbmQgc2lnblxuICAgIEJ1ZmZlci5mcm9tKHNpZ25lZC52MU1lc3NhZ2VCeXRlcyEpLmVxdWFscyhCdWZmZXIuZnJvbShtZXNzYWdlQnl0ZXMpKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgIHNpZ25lZC52MVRyYW5zYWN0aW9uQnl0ZXMhLmxlbmd0aC5zaG91bGQuZXF1YWwobWVzc2FnZUJ5dGVzLmxlbmd0aCArIDIgKiA2NCk7XG5cbiAgICBjb25zdCBwYXJzZWQgPSBwYXJzZVdpcmVUcmFuc2FjdGlvbihzaWduZWQudjFUcmFuc2FjdGlvbkJ5dGVzISk7XG4gICAgcGFyc2VkLnNpZ25lclB1YmxpY0tleXMuc2hvdWxkLmRlZXBFcXVhbChbYWNjb3VudC5wdWIsIGdhc1RhbmsucHViXSk7XG4gICAgdmVyaWZ5VjFTaWduYXR1cmVzKHBhcnNlZC5tZXNzYWdlQnl0ZXMsIHBhcnNlZC5zaWduYXR1cmVzLCBwYXJzZWQuc2lnbmVyUHVibGljS2V5cyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcmVxdWlyZSB0cmFuc2FjdGlvbkNvbmZpZyB3aGVuIHZlcnNpb24oMSkgaXMgc2V0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBjdEJ1aWxkZXIoKTtcbiAgICBhZGRUcmFuc2ZlcihidWlsZGVyKTtcbiAgICBidWlsZGVyLnZlcnNpb24oMSk7XG5cbiAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCgvdHJhbnNhY3Rpb25Db25maWcgaXMgcmVxdWlyZWQvKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCByZWplY3QgdjEgdHJhbnNhY3Rpb25zIHRoYXQgZXhjZWVkIHRoZSA0MDk2LWJ5dGUgd2lyZSBsaW1pdCBhdCBicm9hZGNhc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYnVpbGRlciA9IGN0QnVpbGRlcigpO1xuICAgIGFkZFRyYW5zZmVyKGJ1aWxkZXIpO1xuICAgIGJ1aWxkZXIudmVyc2lvbigxKS50cmFuc2FjdGlvbkNvbmZpZyh2MUNvbmZpZyk7XG5cbiAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCByYXdUeCA9ICh0eCBhcyBUcmFuc2FjdGlvbikudG9Ccm9hZGNhc3RGb3JtYXQoKTtcblxuICAgIC8vIEZvcmNlIGFuIG92ZXJzaXplZCB2MSBwYXlsb2FkIGJ5IHBhZGRpbmcgdGhlIHdpcmUgYnl0ZXMgcGFzdCB0aGUgbGltaXQuXG4gICAgY29uc3Qgd2lyZSA9IEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0Jyk7XG4gICAgY29uc3Qgb3ZlcnNpemVkID0gQnVmZmVyLmNvbmNhdChbd2lyZSwgQnVmZmVyLmFsbG9jKDQwOTcpXSk7XG4gICAgb3ZlcnNpemVkWzBdLnNob3VsZC5lcXVhbCgweDgxKTtcblxuICAgIC8vIEJyb2FkY2FzdCB0aGUgb3ZlcnNpemVkIHYxIHR4IHRocm91Z2ggU29sLnByb3RvdHlwZS5icm9hZGNhc3RUcmFuc2FjdGlvbiB3aXRoIGFuIFJQQ1xuICAgIC8vIHN0dWIgdGhhdCBtdXN0IG5vdCBiZSByZWFjaGVkIC0gdGhlIHNpemUgZ3VhcmQgc2hvcnQtY2lyY3VpdHMgYmVmb3JlIHRoZSBSUEMgY2FsbC5cbiAgICBjb25zdCBjb2luID0geyBnZXREYXRhRnJvbU5vZGU6ICgpID0+IFByb21pc2UucmVqZWN0KG5ldyBFcnJvcignUlBDIHNob3VsZCBub3QgYmUgcmVhY2hlZCcpKSB9IGFzIHVua25vd24gYXMgU29sO1xuICAgIGF3YWl0IChTb2wucHJvdG90eXBlLmJyb2FkY2FzdFRyYW5zYWN0aW9uIGFzIChvcHRzOiB7IHNlcmlhbGl6ZWRTaWduZWRUcmFuc2FjdGlvbjogc3RyaW5nIH0pID0+IFByb21pc2U8bmV2ZXI+KVxuICAgICAgLmNhbGwoY29pbiwgeyBzZXJpYWxpemVkU2lnbmVkVHJhbnNhY3Rpb246IG92ZXJzaXplZC50b1N0cmluZygnYmFzZTY0JykgfSlcbiAgICAgIC5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKC9leGNlZWRzIHRoZSA0MDk2LWJ5dGUgc2l6ZSBsaW1pdC8pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGxlYXZlIHRoZSBub24tdjEgcGF0aCB1bmNoYW5nZWQgKHYwL2xlZ2FjeSBkZWZhdWx0KScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBidWlsZGVyID0gY3RCdWlsZGVyKCk7XG4gICAgYnVpbGRlci5jb25maWd1cmVBY2NvdW50KHtcbiAgICAgIHRva2VuQWRkcmVzcyxcbiAgICAgIG1pbnRBZGRyZXNzLFxuICAgICAgYXV0aG9yaXR5QWRkcmVzcyxcbiAgICAgIGRlY3J5cHRhYmxlWmVyb0JhbGFuY2U6IHplcm9CeXRlczM2LFxuICAgICAgbWF4aW11bVBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlcjogJzY1NTM2JyxcbiAgICAgIHByb29mSW5zdHJ1Y3Rpb25PZmZzZXQ6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCByYXdUeCA9ICh0eCBhcyBUcmFuc2FjdGlvbikudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAvLyBsZWdhY3kgdHJhbnNhY3Rpb24gZG9lcyBub3QgY2FycnkgdGhlIDB4ODEgdjEgcHJlZml4XG4gICAgQnVmZmVyLmZyb20ocmF3VHgsICdiYXNlNjQnKVswXS5zaG91bGQubm90LmVxdWFsKDB4ODEpO1xuICAgICh0eCBhcyBUcmFuc2FjdGlvbikuaXNWZXJzaW9uZWRUcmFuc2FjdGlvbigpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgVXRpbHMuaXNWYWxpZFJhd1RyYW5zYWN0aW9uKHJhd1R4KS5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confidentialTransferV1Ops.d.ts","sourceRoot":"","sources":["../../../../../test/unit/transactionBuilder/confidentialTransferV1Ops.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
require("should");
|
|
37
|
+
const src_1 = require("../../../src");
|
|
38
|
+
const testData = __importStar(require("../../resources/sol"));
|
|
39
|
+
const getBuilderFactory_1 = require("../getBuilderFactory");
|
|
40
|
+
describe('Solana Confidential Transfer Builder - v1 per-op', () => {
|
|
41
|
+
const factory = (0, getBuilderFactory_1.getBuilderFactory)('sol');
|
|
42
|
+
const account = new src_1.KeyPair(testData.associatedTokenAccounts.accounts[0]).getKeys();
|
|
43
|
+
const recentBlockHash = 'GHtXQBsoZHVnNFa9YevAzFr17DJjgHXk3ycTKD5xD3Zi';
|
|
44
|
+
const mintAddress = testData.associatedTokenAccountsForSol2022.mintId;
|
|
45
|
+
const tokenAddress = testData.associatedTokenAccountsForSol2022.accounts[0].ata;
|
|
46
|
+
const destinationTokenAddress = 'ENn8a2tGMS9bR5XV7smGHJvNgzkyxJmnD2eUvQxY5jSP';
|
|
47
|
+
const authorityAddress = account.pub;
|
|
48
|
+
const zeroBytes36 = '00'.repeat(36);
|
|
49
|
+
const zeroBytes64 = '00'.repeat(64);
|
|
50
|
+
const proofDataHex = '00'.repeat(320);
|
|
51
|
+
const v1Config = {
|
|
52
|
+
computeUnitLimit: 200000,
|
|
53
|
+
heapSize: 32768,
|
|
54
|
+
loadedAccountsDataSizeLimit: 65536,
|
|
55
|
+
priorityFee: 5000,
|
|
56
|
+
};
|
|
57
|
+
const ctBuilder = () => {
|
|
58
|
+
const b = factory.getConfidentialTransferBuilder();
|
|
59
|
+
b.nonce(recentBlockHash).sender(account.pub).sign({ key: account.prv });
|
|
60
|
+
return b;
|
|
61
|
+
};
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
|
+
const toV1 = (b) => b.version(1).transactionConfig(v1Config);
|
|
64
|
+
const assertV1 = (tx) => {
|
|
65
|
+
const wire = Buffer.from(tx.toBroadcastFormat(), 'base64');
|
|
66
|
+
wire[0].should.equal(0x81);
|
|
67
|
+
wire.length.should.be.lessThanOrEqual(4096);
|
|
68
|
+
tx.v1MessageBytes.should.be.an.instanceOf(Uint8Array);
|
|
69
|
+
};
|
|
70
|
+
it('should build a Deposit as a valid v1 transaction', async () => {
|
|
71
|
+
const b = ctBuilder();
|
|
72
|
+
b.confidentialDeposit({ tokenAddress, mintAddress, authorityAddress, amount: '1000000', decimals: 6 });
|
|
73
|
+
const tx = await toV1(b).build();
|
|
74
|
+
assertV1(tx);
|
|
75
|
+
});
|
|
76
|
+
it('should build a Withdraw (with equality + range proofs) as a valid v1 transaction', async () => {
|
|
77
|
+
const b = ctBuilder();
|
|
78
|
+
b.confidentialWithdraw({
|
|
79
|
+
tokenAddress,
|
|
80
|
+
mintAddress,
|
|
81
|
+
authorityAddress,
|
|
82
|
+
amount: '500000',
|
|
83
|
+
decimals: 6,
|
|
84
|
+
newDecryptableAvailableBalance: zeroBytes36,
|
|
85
|
+
equalityProofInstructionOffset: 1,
|
|
86
|
+
rangeProofInstructionOffset: 2,
|
|
87
|
+
})
|
|
88
|
+
.verifyEqualityProof({ proofData: proofDataHex })
|
|
89
|
+
.verifyRangeProof({ proofData: '00'.repeat(1000) });
|
|
90
|
+
const tx = await toV1(b).build();
|
|
91
|
+
assertV1(tx);
|
|
92
|
+
});
|
|
93
|
+
it('should force ApplyPendingBalance to instruction #1 even when added last', async () => {
|
|
94
|
+
const b = ctBuilder();
|
|
95
|
+
// Deliberately add Deposit first, then ApplyPendingBalance out of order.
|
|
96
|
+
b.confidentialDeposit({
|
|
97
|
+
tokenAddress,
|
|
98
|
+
mintAddress,
|
|
99
|
+
authorityAddress,
|
|
100
|
+
amount: '1000000',
|
|
101
|
+
decimals: 6,
|
|
102
|
+
}).applyPendingBalance({
|
|
103
|
+
tokenAddress,
|
|
104
|
+
authorityAddress,
|
|
105
|
+
expectedPendingBalanceCreditCounter: '2',
|
|
106
|
+
newDecryptableAvailableBalance: zeroBytes36,
|
|
107
|
+
});
|
|
108
|
+
const tx = await toV1(b).build();
|
|
109
|
+
assertV1(tx);
|
|
110
|
+
const instructions = tx.toJson().instructionsData;
|
|
111
|
+
instructions.should.have.length(2);
|
|
112
|
+
instructions[0].type.should.equal('ApplyPendingBalance');
|
|
113
|
+
instructions[1].type.should.equal('ConfidentialDeposit');
|
|
114
|
+
});
|
|
115
|
+
it('should build a private Transfer with all proofs as a valid v1 transaction', async () => {
|
|
116
|
+
const b = ctBuilder();
|
|
117
|
+
b.applyPendingBalance({
|
|
118
|
+
tokenAddress,
|
|
119
|
+
authorityAddress,
|
|
120
|
+
expectedPendingBalanceCreditCounter: '2',
|
|
121
|
+
newDecryptableAvailableBalance: zeroBytes36,
|
|
122
|
+
})
|
|
123
|
+
.verifyEqualityProof({ proofData: proofDataHex })
|
|
124
|
+
.verifyValidityProof({ proofData: proofDataHex })
|
|
125
|
+
.verifyRangeProof({ proofData: '00'.repeat(1000) })
|
|
126
|
+
.confidentialTransfer({
|
|
127
|
+
sourceTokenAddress: tokenAddress,
|
|
128
|
+
mintAddress,
|
|
129
|
+
destinationTokenAddress,
|
|
130
|
+
authorityAddress,
|
|
131
|
+
newSourceDecryptableAvailableBalance: zeroBytes36,
|
|
132
|
+
transferAmountAuditorCiphertextLo: zeroBytes64,
|
|
133
|
+
transferAmountAuditorCiphertextHi: zeroBytes64,
|
|
134
|
+
equalityProofInstructionOffset: 1,
|
|
135
|
+
ciphertextValidityProofInstructionOffset: 2,
|
|
136
|
+
rangeProofInstructionOffset: 3,
|
|
137
|
+
});
|
|
138
|
+
const tx = await toV1(b).build();
|
|
139
|
+
assertV1(tx);
|
|
140
|
+
const instructions = tx.toJson().instructionsData;
|
|
141
|
+
instructions[0].type.should.equal('ApplyPendingBalance');
|
|
142
|
+
instructions[4].type.should.equal('ConfidentialTransfer');
|
|
143
|
+
});
|
|
144
|
+
it('should build ConfigureAccount + VerifyPubkeyValidity as a valid v1 transaction', async () => {
|
|
145
|
+
const b = ctBuilder();
|
|
146
|
+
b.configureAccount({
|
|
147
|
+
tokenAddress,
|
|
148
|
+
mintAddress,
|
|
149
|
+
authorityAddress,
|
|
150
|
+
decryptableZeroBalance: zeroBytes36,
|
|
151
|
+
maximumPendingBalanceCreditCounter: '65536',
|
|
152
|
+
proofInstructionOffset: 1,
|
|
153
|
+
}).verifyPubkeyValidity({ proofData: proofDataHex });
|
|
154
|
+
const tx = await toV1(b).build();
|
|
155
|
+
assertV1(tx);
|
|
156
|
+
});
|
|
157
|
+
it('should build each verify-proof instruction through v1', async () => {
|
|
158
|
+
const b = ctBuilder();
|
|
159
|
+
b.verifyEqualityProof({ proofData: proofDataHex })
|
|
160
|
+
.verifyValidityProof({ proofData: proofDataHex })
|
|
161
|
+
.verifyRangeProof({ proofData: '00'.repeat(1000) })
|
|
162
|
+
.verifyPubkeyValidity({ proofData: proofDataHex });
|
|
163
|
+
const tx = await toV1(b).build();
|
|
164
|
+
assertV1(tx);
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlkZW50aWFsVHJhbnNmZXJWMU9wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvY29uZmlkZW50aWFsVHJhbnNmZXJWMU9wcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtCQUFnQjtBQUNoQixzQ0FBb0Q7QUFDcEQsOERBQWdEO0FBQ2hELDREQUF5RDtBQUV6RCxRQUFRLENBQUMsa0RBQWtELEVBQUUsR0FBRyxFQUFFO0lBQ2hFLE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BGLE1BQU0sZUFBZSxHQUFHLDhDQUE4QyxDQUFDO0lBRXZFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUM7SUFDdEUsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDaEYsTUFBTSx1QkFBdUIsR0FBRyw4Q0FBOEMsQ0FBQztJQUMvRSxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7SUFFckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFdEMsTUFBTSxRQUFRLEdBQUc7UUFDZixnQkFBZ0Is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QUM7SUFDZixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNyRSxNQUFNLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsbUJBQW1CLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDL0MsbUJBQW1CLENBQUMsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLENBQUM7YUFDaEQsZ0JBQWdCLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ2xELG9CQUFvQixDQUFDLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7UUFDckQsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIsIFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9zb2wnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi9nZXRCdWlsZGVyRmFjdG9yeSc7XG5cbmRlc2NyaWJlKCdTb2xhbmEgQ29uZmlkZW50aWFsIFRyYW5zZmVyIEJ1aWxkZXIgLSB2MSBwZXItb3AnLCAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgnc29sJyk7XG4gIGNvbnN0IGFjY291bnQgPSBuZXcgS2V5UGFpcih0ZXN0RGF0YS5hc3NvY2lhdGVkVG9rZW5BY2NvdW50cy5hY2NvdW50c1swXSkuZ2V0S2V5cygpO1xuICBjb25zdCByZWNlbnRCbG9ja0hhc2ggPSAnR0h0WFFCc29aSFZuTkZhOVlldkF6RnIxN0RKamdIWGszeWNUS0Q1eEQzWmknO1xuXG4gIGNvbnN0IG1pbnRBZGRyZXNzID0gdGVzdERhdGEuYXNzb2NpYXRlZFRva2VuQWNjb3VudHNGb3JTb2wyMDIyLm1pbnRJZDtcbiAgY29uc3QgdG9rZW5BZGRyZXNzID0gdGVzdERhdGEuYXNzb2NpYXRlZFRva2VuQWNjb3VudHNGb3JTb2wyMDIyLmFjY291bnRzWzBdLmF0YTtcbiAgY29uc3QgZGVzdGluYXRpb25Ub2tlbkFkZHJlc3MgPSAnRU5uOGEydEdNUzliUjVYVjdzbUdISnZOZ3preXhKbW5EMmVVdlF4WTVqU1AnO1xuICBjb25zdCBhdXRob3JpdHlBZGRyZXNzID0gYWNjb3VudC5wdWI7XG5cbiAgY29uc3QgemVyb0J5dGVzMzYgPSAnMDAnLnJlcGVhdCgzNik7XG4gIGNvbnN0IHplcm9CeXRlczY0ID0gJzAwJy5yZXBlYXQoNjQpO1xuICBjb25zdCBwcm9vZkRhdGFIZXggPSAnMDAnLnJlcGVhdCgzMjApO1xuXG4gIGNvbnN0IHYxQ29uZmlnID0ge1xuICAgIGNvbXB1dGVVbml0TGltaXQ6IDIwMF8wMDAsXG4gICAgaGVhcFNpemU6IDMyXzc2OCxcbiAgICBsb2FkZWRBY2NvdW50c0RhdGFTaXplTGltaXQ6IDY1XzUzNixcbiAgICBwcmlvcml0eUZlZTogNV8wMDAsXG4gIH07XG5cbiAgY29uc3QgY3RCdWlsZGVyID0gKCkgPT4ge1xuICAgIGNvbnN0IGIgPSBmYWN0b3J5LmdldENvbmZpZGVudGlhbFRyYW5zZmVyQnVpbGRlcigpO1xuICAgIGIubm9uY2UocmVjZW50QmxvY2tIYXNoKS5zZW5kZXIoYWNjb3VudC5wdWIpLnNpZ24oeyBrZXk6IGFjY291bnQucHJ2IH0pO1xuICAgIHJldHVybiBiO1xuICB9O1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGNvbnN0IHRvVjEgPSAoYjogYW55KSA9PiBiLnZlcnNpb24oMSkudHJhbnNhY3Rpb25Db25maWcodjFDb25maWcpO1xuXG4gIGNvbnN0IGFzc2VydFYxID0gKHR4OiBUcmFuc2FjdGlvbikgPT4ge1xuICAgIGNvbnN0IHdpcmUgPSBCdWZmZXIuZnJvbSgodHggYXMgVHJhbnNhY3Rpb24pLnRvQnJvYWRjYXN0Rm9ybWF0KCksICdiYXNlNjQnKTtcbiAgICB3aXJlWzBdLnNob3VsZC5lcXVhbCgweDgxKTtcbiAgICB3aXJlLmxlbmd0aC5zaG91bGQuYmUubGVzc1RoYW5PckVxdWFsKDQwOTYpO1xuICAgICh0eCBhcyBUcmFuc2FjdGlvbikudjFNZXNzYWdlQnl0ZXMhLnNob3VsZC5iZS5hbi5pbnN0YW5jZU9mKFVpbnQ4QXJyYXkpO1xuICB9O1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBEZXBvc2l0IGFzIGEgdmFsaWQgdjEgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYiA9IGN0QnVpbGRlcigpO1xuICAgIGIuY29uZmlkZW50aWFsRGVwb3NpdCh7IHRva2VuQWRkcmVzcywgbWludEFkZHJlc3MsIGF1dGhvcml0eUFkZHJlc3MsIGFtb3VudDogJzEwMDAwMDAnLCBkZWNpbWFsczogNiB9KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRvVjEoYikuYnVpbGQoKTtcbiAgICBhc3NlcnRWMSh0eCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBXaXRoZHJhdyAod2l0aCBlcXVhbGl0eSArIHJhbmdlIHByb29mcykgYXMgYSB2YWxpZCB2MSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBiID0gY3RCdWlsZGVyKCk7XG4gICAgYi5jb25maWRlbnRpYWxXaXRoZHJhdyh7XG4gICAgICB0b2tlbkFkZHJlc3MsXG4gICAgICBtaW50QWRkcmVzcyxcbiAgICAgIGF1dGhvcml0eUFkZHJlc3MsXG4gICAgICBhbW91bnQ6ICc1MDAwMDAnLFxuICAgICAgZGVjaW1hbHM6IDYsXG4gICAgICBuZXdEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2U6IHplcm9CeXRlczM2LFxuICAgICAgZXF1YWxpdHlQcm9vZkluc3RydWN0aW9uT2Zmc2V0OiAxLFxuICAgICAgcmFuZ2VQcm9vZkluc3RydWN0aW9uT2Zmc2V0OiAyLFxuICAgIH0pXG4gICAgICAudmVyaWZ5RXF1YWxpdHlQcm9vZih7IHByb29mRGF0YTogcHJvb2ZEYXRhSGV4IH0pXG4gICAgICAudmVyaWZ5UmFuZ2VQcm9vZih7IHByb29mRGF0YTogJzAwJy5yZXBlYXQoMTAwMCkgfSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0b1YxKGIpLmJ1aWxkKCk7XG4gICAgYXNzZXJ0VjEodHgpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGZvcmNlIEFwcGx5UGVuZGluZ0JhbGFuY2UgdG8gaW5zdHJ1Y3Rpb24gIzEgZXZlbiB3aGVuIGFkZGVkIGxhc3QnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYiA9IGN0QnVpbGRlcigpO1xuICAgIC8vIERlbGliZXJhdGVseSBhZGQgRGVwb3NpdCBmaXJzdCwgdGhlbiBBcHBseVBlbmRpbmdCYWxhbmNlIG91dCBvZiBvcmRlci5cbiAgICBiLmNvbmZpZGVudGlhbERlcG9zaXQoe1xuICAgICAgdG9rZW5BZGRyZXNzLFxuICAgICAgbWludEFkZHJlc3MsXG4gICAgICBhdXRob3JpdHlBZGRyZXNzLFxuICAgICAgYW1vdW50OiAnMTAwMDAwMCcsXG4gICAgICBkZWNpbWFsczogNixcbiAgICB9KS5hcHBseVBlbmRpbmdCYWxhbmNlKHtcbiAgICAgIHRva2VuQWRkcmVzcyxcbiAgICAgIGF1dGhvcml0eUFkZHJlc3MsXG4gICAgICBleHBlY3RlZFBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlcjogJzInLFxuICAgICAgbmV3RGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlOiB6ZXJvQnl0ZXMzNixcbiAgICB9KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRvVjEoYikuYnVpbGQoKTtcbiAgICBhc3NlcnRWMSh0eCk7XG4gICAgY29uc3QgaW5zdHJ1Y3Rpb25zID0gdHgudG9Kc29uKCkuaW5zdHJ1Y3Rpb25zRGF0YTtcbiAgICBpbnN0cnVjdGlvbnMuc2hvdWxkLmhhdmUubGVuZ3RoKDIpO1xuICAgIGluc3RydWN0aW9uc1swXS50eXBlLnNob3VsZC5lcXVhbCgnQXBwbHlQZW5kaW5nQmFsYW5jZScpO1xuICAgIGluc3RydWN0aW9uc1sxXS50eXBlLnNob3VsZC5lcXVhbCgnQ29uZmlkZW50aWFsRGVwb3NpdCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgcHJpdmF0ZSBUcmFuc2ZlciB3aXRoIGFsbCBwcm9vZnMgYXMgYSB2YWxpZCB2MSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBiID0gY3RCdWlsZGVyKCk7XG4gICAgYi5hcHBseVBlbmRpbmdCYWxhbmNlKHtcbiAgICAgIHRva2VuQWRkcmVzcyxcbiAgICAgIGF1dGhvcml0eUFkZHJlc3MsXG4gICAgICBleHBlY3RlZFBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlcjogJzInLFxuICAgICAgbmV3RGVjcnlwdGFibGVBdmFpbGFibGVCYWxhbmNlOiB6ZXJvQnl0ZXMzNixcbiAgICB9KVxuICAgICAgLnZlcmlmeUVxdWFsaXR5UHJvb2YoeyBwcm9vZkRhdGE6IHByb29mRGF0YUhleCB9KVxuICAgICAgLnZlcmlmeVZhbGlkaXR5UHJvb2YoeyBwcm9vZkRhdGE6IHByb29mRGF0YUhleCB9KVxuICAgICAgLnZlcmlmeVJhbmdlUHJvb2YoeyBwcm9vZkRhdGE6ICcwMCcucmVwZWF0KDEwMDApIH0pXG4gICAgICAuY29uZmlkZW50aWFsVHJhbnNmZXIoe1xuICAgICAgICBzb3VyY2VUb2tlbkFkZHJlc3M6IHRva2VuQWRkcmVzcyxcbiAgICAgICAgbWludEFkZHJlc3MsXG4gICAgICAgIGRlc3RpbmF0aW9uVG9rZW5BZGRyZXNzLFxuICAgICAgICBhdXRob3JpdHlBZGRyZXNzLFxuICAgICAgICBuZXdTb3VyY2VEZWNyeXB0YWJsZUF2YWlsYWJsZUJhbGFuY2U6IHplcm9CeXRlczM2LFxuICAgICAgICB0cmFuc2ZlckFtb3VudEF1ZGl0b3JDaXBoZXJ0ZXh0TG86IHplcm9CeXRlczY0LFxuICAgICAgICB0cmFuc2ZlckFtb3VudEF1ZGl0b3JDaXBoZXJ0ZXh0SGk6IHplcm9CeXRlczY0LFxuICAgICAgICBlcXVhbGl0eVByb29mSW5zdHJ1Y3Rpb25PZmZzZXQ6IDEsXG4gICAgICAgIGNpcGhlcnRleHRWYWxpZGl0eVByb29mSW5zdHJ1Y3Rpb25PZmZzZXQ6IDIsXG4gICAgICAgIHJhbmdlUHJvb2ZJbnN0cnVjdGlvbk9mZnNldDogMyxcbiAgICAgIH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdG9WMShiKS5idWlsZCgpO1xuICAgIGFzc2VydFYxKHR4KTtcbiAgICBjb25zdCBpbnN0cnVjdGlvbnMgPSB0eC50b0pzb24oKS5pbnN0cnVjdGlvbnNEYXRhO1xuICAgIGluc3RydWN0aW9uc1swXS50eXBlLnNob3VsZC5lcXVhbCgnQXBwbHlQZW5kaW5nQmFsYW5jZScpO1xuICAgIGluc3RydWN0aW9uc1s0XS50eXBlLnNob3VsZC5lcXVhbCgnQ29uZmlkZW50aWFsVHJhbnNmZXInKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBDb25maWd1cmVBY2NvdW50ICsgVmVyaWZ5UHVia2V5VmFsaWRpdHkgYXMgYSB2YWxpZCB2MSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBiID0gY3RCdWlsZGVyKCk7XG4gICAgYi5jb25maWd1cmVBY2NvdW50KHtcbiAgICAgIHRva2VuQWRkcmVzcyxcbiAgICAgIG1pbnRBZGRyZXNzLFxuICAgICAgYXV0aG9yaXR5QWRkcmVzcyxcbiAgICAgIGRlY3J5cHRhYmxlWmVyb0JhbGFuY2U6IHplcm9CeXRlczM2LFxuICAgICAgbWF4aW11bVBlbmRpbmdCYWxhbmNlQ3JlZGl0Q291bnRlcjogJzY1NTM2JyxcbiAgICAgIHByb29mSW5zdHJ1Y3Rpb25PZmZzZXQ6IDEsXG4gICAgfSkudmVyaWZ5UHVia2V5VmFsaWRpdHkoeyBwcm9vZkRhdGE6IHByb29mRGF0YUhleCB9KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHRvVjEoYikuYnVpbGQoKTtcbiAgICBhc3NlcnRWMSh0eCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgZWFjaCB2ZXJpZnktcHJvb2YgaW5zdHJ1Y3Rpb24gdGhyb3VnaCB2MScsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBiID0gY3RCdWlsZGVyKCk7XG4gICAgYi52ZXJpZnlFcXVhbGl0eVByb29mKHsgcHJvb2ZEYXRhOiBwcm9vZkRhdGFIZXggfSlcbiAgICAgIC52ZXJpZnlWYWxpZGl0eVByb29mKHsgcHJvb2ZEYXRhOiBwcm9vZkRhdGFIZXggfSlcbiAgICAgIC52ZXJpZnlSYW5nZVByb29mKHsgcHJvb2ZEYXRhOiAnMDAnLnJlcGVhdCgxMDAwKSB9KVxuICAgICAgLnZlcmlmeVB1YmtleVZhbGlkaXR5KHsgcHJvb2ZEYXRhOiBwcm9vZkRhdGFIZXggfSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0b1YxKGIpLmJ1aWxkKCk7XG4gICAgYXNzZXJ0VjEodHgpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customInstructionBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/transactionBuilder/customInstructionBuilder.ts"],"names":[],"mappings":""}
|