@bitgo-beta/sdk-coin-sol 7.6.4-beta.71 → 7.6.4-beta.710
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 +128 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/confidentialTransferBuilder.js +311 -0
- package/dist/{src → cjs/src}/lib/constants.d.ts +89 -2
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +269 -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 +304 -0
- package/dist/cjs/src/lib/iface.d.ts +526 -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 +5 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +93 -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 +1220 -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 +30 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
- package/dist/cjs/src/lib/serialization/compileTransactionMessage.js +205 -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 +1094 -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 +105 -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 +22 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +661 -0
- package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +9 -1
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +388 -0
- package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +14 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +222 -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 +5 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +657 -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 +1670 -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 +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/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 +5038 -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/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 +58 -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 +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/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 +909 -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 +144 -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 +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 +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/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 +628 -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 +128 -0
- package/dist/esm/lib/confidentialTransferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/confidentialTransferBuilder.js +304 -0
- package/dist/esm/lib/constants.d.ts +227 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +266 -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 +301 -0
- package/dist/esm/lib/iface.d.ts +526 -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 +27 -0
- package/dist/esm/lib/index.d.ts.map +1 -0
- package/dist/esm/lib/index.js +27 -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 +1212 -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 +30 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.d.ts.map +1 -0
- package/dist/esm/lib/serialization/compileTransactionMessage.js +202 -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 +1088 -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 +99 -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 +125 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +654 -0
- package/dist/esm/lib/transactionBuilder.d.ts +136 -0
- package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilder.js +381 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +129 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilderFactory.js +218 -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 +205 -0
- package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +619 -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 +1629 -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 +36 -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.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/customInstructionBuilder.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/customInstructionBuilder.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,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
40
|
+
const should_1 = __importDefault(require("should"));
|
|
41
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
42
|
+
const bs58 = __importStar(require("bs58"));
|
|
43
|
+
const src_1 = require("../../../src");
|
|
44
|
+
describe('Solana SimpleMessageBuilder', function () {
|
|
45
|
+
let sandbox;
|
|
46
|
+
let factory;
|
|
47
|
+
const coinConfig = { name: 'tsol' };
|
|
48
|
+
beforeEach(function () {
|
|
49
|
+
sandbox = sinon_1.default.createSandbox();
|
|
50
|
+
factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
51
|
+
});
|
|
52
|
+
afterEach(function () {
|
|
53
|
+
sandbox.restore();
|
|
54
|
+
});
|
|
55
|
+
describe('build', function () {
|
|
56
|
+
it('should build a SimpleMessage with correct payload', async function () {
|
|
57
|
+
const payload = 'Hello, Solana!';
|
|
58
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
59
|
+
builder.setPayload(payload);
|
|
60
|
+
const message = await builder.build();
|
|
61
|
+
should_1.default.exist(message);
|
|
62
|
+
message.should.be.instanceof(sdk_core_1.SimpleMessage);
|
|
63
|
+
should_1.default.equal(message.getType(), sdk_core_1.MessageStandardType.SIMPLE);
|
|
64
|
+
should_1.default.equal(message.getPayload(), payload);
|
|
65
|
+
});
|
|
66
|
+
it('should build a SimpleMessage with signatures', async function () {
|
|
67
|
+
const payload = 'Sign this message';
|
|
68
|
+
const signatures = [
|
|
69
|
+
{
|
|
70
|
+
publicKey: { pub: 'solPubKey1' },
|
|
71
|
+
signature: Buffer.from('solSignature1'),
|
|
72
|
+
},
|
|
73
|
+
];
|
|
74
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
75
|
+
builder.setPayload(payload).setSignatures(signatures);
|
|
76
|
+
const message = await builder.build();
|
|
77
|
+
should_1.default.exist(message);
|
|
78
|
+
should_1.default.equal(message.getPayload(), payload);
|
|
79
|
+
should_1.default.deepEqual(message.getSignatures(), signatures);
|
|
80
|
+
});
|
|
81
|
+
it('should build a SimpleMessage with signers', async function () {
|
|
82
|
+
const payload = 'Message with signers';
|
|
83
|
+
const signers = ['solSigner1', 'solSigner2'];
|
|
84
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
85
|
+
builder.setPayload(payload).setSigners(signers);
|
|
86
|
+
const message = await builder.build();
|
|
87
|
+
should_1.default.exist(message);
|
|
88
|
+
should_1.default.equal(message.getPayload(), payload);
|
|
89
|
+
should_1.default.deepEqual(message.getSigners(), signers);
|
|
90
|
+
});
|
|
91
|
+
it('should build a SimpleMessage with metadata', async function () {
|
|
92
|
+
const payload = 'Message with metadata';
|
|
93
|
+
const metadata = { solNetwork: 'testnet', timestamp: 1625097600 };
|
|
94
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
95
|
+
builder.setPayload(payload).setMetadata(metadata);
|
|
96
|
+
const message = await builder.build();
|
|
97
|
+
should_1.default.exist(message);
|
|
98
|
+
should_1.default.equal(message.getPayload(), payload);
|
|
99
|
+
const messageMetadata = message.getMetadata();
|
|
100
|
+
should_1.default.equal(messageMetadata?.solNetwork, metadata.solNetwork);
|
|
101
|
+
should_1.default.equal(messageMetadata?.timestamp, metadata.timestamp);
|
|
102
|
+
});
|
|
103
|
+
it('should throw error when building without payload', async function () {
|
|
104
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
105
|
+
await (0, should_1.default)(builder.build()).be.rejectedWith('Message payload must be set before building the message');
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
describe('getSignablePayload', function () {
|
|
109
|
+
it('should return Buffer with correct payload', async function () {
|
|
110
|
+
const payload = 'Signable Solana message';
|
|
111
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
112
|
+
builder.setPayload(payload);
|
|
113
|
+
const message = await builder.build();
|
|
114
|
+
const signablePayload = await message.getSignablePayload();
|
|
115
|
+
should_1.default.exist(signablePayload);
|
|
116
|
+
Buffer.isBuffer(signablePayload).should.be.true();
|
|
117
|
+
signablePayload.toString().should.equal(payload);
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
describe('toBroadcastFormat', function () {
|
|
121
|
+
it('should convert SimpleMessage to broadcastable format', async function () {
|
|
122
|
+
const payload = 'Broadcast me';
|
|
123
|
+
const signers = ['solAddress1'];
|
|
124
|
+
const signatures = [
|
|
125
|
+
{
|
|
126
|
+
publicKey: { pub: 'solPubKey1' },
|
|
127
|
+
signature: Buffer.from('solSignature1'),
|
|
128
|
+
},
|
|
129
|
+
];
|
|
130
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
131
|
+
builder.setPayload(payload).setSigners(signers).setSignatures(signatures);
|
|
132
|
+
const message = await builder.build();
|
|
133
|
+
const broadcastFormat = await message.toBroadcastFormat();
|
|
134
|
+
should_1.default.exist(broadcastFormat);
|
|
135
|
+
should_1.default.equal(broadcastFormat.type, sdk_core_1.MessageStandardType.SIMPLE);
|
|
136
|
+
should_1.default.equal(broadcastFormat.payload, payload);
|
|
137
|
+
should_1.default.deepEqual(broadcastFormat.signers, signers);
|
|
138
|
+
should_1.default.exist(broadcastFormat.serializedSignatures);
|
|
139
|
+
const serializedSignatures = broadcastFormat.serializedSignatures;
|
|
140
|
+
should_1.default.equal(serializedSignatures?.length, 1);
|
|
141
|
+
should_1.default.equal(serializedSignatures?.[0].publicKey, 'solPubKey1');
|
|
142
|
+
should_1.default.equal(serializedSignatures?.[0].signature, Buffer.from('solSignature1').toString('base64'));
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
describe('fromBroadcastFormat', function () {
|
|
146
|
+
it('should rebuild message from broadcastable format', async function () {
|
|
147
|
+
const broadcastMessage = {
|
|
148
|
+
type: sdk_core_1.MessageStandardType.SIMPLE,
|
|
149
|
+
payload: 'Solana test message',
|
|
150
|
+
serializedSignatures: [
|
|
151
|
+
{
|
|
152
|
+
publicKey: 'solPubKey1',
|
|
153
|
+
signature: Buffer.from('solSignature1').toString('base64'),
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
signers: ['solSigner1'],
|
|
157
|
+
metadata: { network: 'testnet', encoding: 'utf8' },
|
|
158
|
+
};
|
|
159
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
160
|
+
const message = await builder.fromBroadcastFormat(broadcastMessage);
|
|
161
|
+
should_1.default.exist(message);
|
|
162
|
+
should_1.default.equal(message.getType(), sdk_core_1.MessageStandardType.SIMPLE);
|
|
163
|
+
should_1.default.equal(message.getPayload(), broadcastMessage.payload);
|
|
164
|
+
should_1.default.deepEqual(message.getSigners(), broadcastMessage.signers);
|
|
165
|
+
should_1.default.exist(message.getSignatures());
|
|
166
|
+
should_1.default.equal(message.getSignatures().length, 1);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
describe('fromBroadcastString', function () {
|
|
170
|
+
it('should parse broadcastable string and return correct builder type', async function () {
|
|
171
|
+
const broadcastHex = '7b2274797065223a2253494d504c45222c227061796c6f6164223a2253544152203438373934363720746f2061646472317178763965397a70353578763336307767686c3830366430327933353839397a6b6b7132726874667876377836777963746a3279726667766572353775333037776c35363735667267773232396476713538776b6a76657564357571666e6d74657a2033316136626162353061383462383433396164636662373836626232303230663638303765366538666461363239623432343131306663376262316336623862222c2273657269616c697a65645369676e617475726573223a5b7b227075626c69634b6579223a22475a6d6a57464a543964556e70574e714a61626e524d7134747779714372396b584663337a4d4765506d6139222c227369676e6174757265223a22675235434446464f5242522f6756416b4b624a4635534d6f36495063674a376a6976694f2f7631535a7056514b6a67566e6f414f45695855614472656d6c4735516743775942725a6132486a547739386c65396e44673d3d227d5d2c227369676e657273223a5b22475a6d6a57464a543964556e70574e714a61626e524d7134747779714372396b584663337a4d4765506d6139225d2c226d65746164617461223a7b22656e636f64696e67223a2275746638227d2c227369676e61626c655061796c6f6164223a2255315242556941304f4463354e445933494852764947466b5a484978635868324f575535656e41314e5868324d7a59776432646f624467774e6d51774d6e6b7a4e5467354f58707261334579636d68305a6e68324e33673264336c6a64476f7965584a6d5a335a6c636a553364544d774e3364734e5459334e575a795a3363794d6a6c6b646e45314f486472616e5a6c645751316458466d626d31305a586f674d7a46684e6d4a68596a557759546730596a67304d7a6c685a474e6d596a63344e6d4a694d6a41794d4759324f4441335a545a6c4f475a6b595459794f5749304d6a51784d54426d597a6469596a466a4e6d493459673d3d227d';
|
|
172
|
+
const coinConfig = { name: 'sol' };
|
|
173
|
+
const factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
174
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
175
|
+
const message = await builder.build();
|
|
176
|
+
const payload = message.getPayload();
|
|
177
|
+
const payloadParts = payload.split(' ');
|
|
178
|
+
const address = message.getSigners()[0];
|
|
179
|
+
address.should.equal('GZmjWFJT9dUnpWNqJabnRMq4twyqCr9kXFc3zMGePma9');
|
|
180
|
+
const destinationAddress = payloadParts[3];
|
|
181
|
+
destinationAddress.should.equal('addr1qxv9e9zp55xv360wghl806d02y35899zkkq2rhtfxv7x6wyctj2yrfgver57u307wl5675frgw229dvq58wkjveud5uqfnmtez');
|
|
182
|
+
const amount = Number(payloadParts[1]);
|
|
183
|
+
amount.should.equal(4879467);
|
|
184
|
+
const signatureBuff = message.getSignatures()[0].signature;
|
|
185
|
+
const signatureBase58 = bs58.encode(signatureBuff);
|
|
186
|
+
signatureBase58.should.equal('3aj7xDGJrFAbNF6GLrWTHpy8UW94i6xFADJ1KdomDLaCDjUyz8Gj5vPc5mZLduFhRAUCU4BUcnBWu5te1DbMXCFf');
|
|
187
|
+
const signatureHex = signatureBuff.toString('hex');
|
|
188
|
+
signatureHex.should.equal('811e420c514e44147f81502429b245e52328e883dc809ee38af88efefd526695502a38159e800e1225d4683ade9a51b94200b0601ad96b61e34f0f7c95ef670e');
|
|
189
|
+
const publicKeyHex = message.getSignatures()[0].publicKey.pub;
|
|
190
|
+
publicKeyHex.should.equal('GZmjWFJT9dUnpWNqJabnRMq4twyqCr9kXFc3zMGePma9');
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlTWVzc2FnZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbWVzc2FnZXMvc2ltcGxlTWVzc2FnZUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLG1EQUFnRztBQUNoRywyQ0FBNkI7QUFDN0Isc0NBQXFEO0FBRXJELFFBQVEsQ0FBQyw2QkFBNkIsRUFBRTtJQUN0QyxJQUFJLE9BQTJCLENBQUM7SUFDaEMsSUFBSSxPQUE4QixDQUFDO0lBQ25DLE1BQU0sVUFBVSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBYyxDQUFDO0lBRWhELFVBQVUsQ0FBQztRQUNULE9BQU8sR0FBRyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDaEMsT0FBTyxHQUFHLElBQUksMkJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ2hCLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxLQUFLO1lBQzNELE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDO1lBQ2pDLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyw4QkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0RSxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3RDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxD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WSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQzdCLHlHQUF5RyxDQUMxRyxDQUFDO1lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTdCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuRCxlQUFlLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FDMUIsMEZBQTBGLENBQzNGLENBQUM7WUFDRixNQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUN2QixrSUFBa0ksQ0FDbkksQ0FBQztZQUNGLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQzlELFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBzaW5vbiBmcm9tICdzaW5vbic7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBCcm9hZGNhc3RhYmxlTWVzc2FnZSwgTWVzc2FnZVN0YW5kYXJkVHlwZSwgU2ltcGxlTWVzc2FnZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIGJzNTggZnJvbSAnYnM1OCc7XG5pbXBvcnQgeyBNZXNzYWdlQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnU29sYW5hIFNpbXBsZU1lc3NhZ2VCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICBsZXQgc2FuZGJveDogc2lub24uU2lub25TYW5kYm94O1xuICBsZXQgZmFjdG9yeTogTWVzc2FnZUJ1aWxkZXJGYWN0b3J5O1xuICBjb25zdCBjb2luQ29uZmlnID0geyBuYW1lOiAndHNvbCcgfSBhcyBCYXNlQ29pbjtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuICAgIGZhY3RvcnkgPSBuZXcgTWVzc2FnZUJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICB9KTtcblxuICBkZXNjcmliZSgnYnVpbGQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIFNpbXBsZU1lc3NhZ2Ugd2l0aCBjb3JyZWN0IHBheWxvYWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gJ0hlbGxvLCBTb2xhbmEhJztcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuU0lNUExFKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIG1lc3NhZ2Uuc2hvdWxkLmJlLmluc3RhbmNlb2YoU2ltcGxlTWVzc2FnZSk7XG4gICAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRUeXBlKCksIE1lc3NhZ2VTdGFuZGFyZFR5cGUuU0lNUExFKTtcbiAgICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgU2ltcGxlTWVzc2FnZSB3aXRoIHNpZ25hdHVyZXMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gJ1NpZ24gdGhpcyBtZXNzYWdlJztcbiAgICAgIGNvbnN0IHNpZ25hdHVyZXMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBwdWJsaWNLZXk6IHsgcHViOiAnc29sUHViS2V5MScgfSxcbiAgICAgICAgICBzaWduYXR1cmU6IEJ1ZmZlci5mcm9tKCdzb2xTaWduYXR1cmUxJyksXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCkuc2V0U2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcblxuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5leGlzdChtZXNzYWdlKTtcbiAgICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFBheWxvYWQoKSwgcGF5bG9hZCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpLCBzaWduYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBTaW1wbGVNZXNzYWdlIHdpdGggc2lnbmVycycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAnTWVzc2FnZSB3aXRoIHNpZ25lcnMnO1xuICAgICAgY29uc3Qgc2lnbmVycyA9IFsnc29sU2lnbmVyMScsICdzb2xTaWduZXIyJ107XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuU0lNUExFKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKS5zZXRTaWduZXJzKHNpZ25lcnMpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UpO1xuICAgICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwobWVzc2FnZS5nZXRTaWduZXJzKCksIHNpZ25lcnMpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhIFNpbXBsZU1lc3NhZ2Ugd2l0aCBtZXRhZGF0YScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAnTWVzc2FnZSB3aXRoIG1ldGFkYXRhJztcbiAgICAgIGNvbnN0IG1ldGFkYXRhID0geyBzb2xOZXR3b3JrOiAndGVzdG5ldCcsIHRpbWVzdGFtcDogMTYyNTA5NzYwMCB9O1xuXG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSk7XG4gICAgICBidWlsZGVyLnNldFBheWxvYWQocGF5bG9hZCkuc2V0TWV0YWRhdGEobWV0YWRhdGEpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UpO1xuICAgICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0UGF5bG9hZCgpLCBwYXlsb2FkKTtcbiAgICAgIGNvbnN0IG1lc3NhZ2VNZXRhZGF0YSA9IG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKTtcbiAgICAgIHNob3VsZC5lcXVhbChtZXNzYWdlTWV0YWRhdGE/LnNvbE5ldHdvcmssIG1ldGFkYXRhLnNvbE5ldHdvcmspO1xuICAgICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2VNZXRhZGF0YT8udGltZXN0YW1wLCBtZXRhZGF0YS50aW1lc3RhbXApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciB3aGVuIGJ1aWxkaW5nIHdpdGhvdXQgcGF5bG9hZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuU0lNUExFKTtcbiAgICAgIGF3YWl0IHNob3VsZChidWlsZGVyLmJ1aWxkKCkpLmJlLnJlamVjdGVkV2l0aCgnTWVzc2FnZSBwYXlsb2FkIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgbWVzc2FnZScpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0U2lnbmFibGVQYXlsb2FkJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcmV0dXJuIEJ1ZmZlciB3aXRoIGNvcnJlY3QgcGF5bG9hZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSAnU2lnbmFibGUgU29sYW5hIG1lc3NhZ2UnO1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5TSU1QTEUpO1xuICAgICAgYnVpbGRlci5zZXRQYXlsb2FkKHBheWxvYWQpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gYXdhaXQgbWVzc2FnZS5nZXRTaWduYWJsZVBheWxvYWQoKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KHNpZ25hYmxlUGF5bG9hZCk7XG4gICAgICBCdWZmZXIuaXNCdWZmZXIoc2lnbmFibGVQYXlsb2FkKS5zaG91bGQuYmUudHJ1ZSgpO1xuICAgICAgc2lnbmFibGVQYXlsb2FkLnRvU3RyaW5nKCkuc2hvdWxkLmVxdWFsKHBheWxvYWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG9Ccm9hZGNhc3RGb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjb252ZXJ0IFNpbXBsZU1lc3NhZ2UgdG8gYnJvYWRjYXN0YWJsZSBmb3JtYXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gJ0Jyb2FkY2FzdCBtZSc7XG4gICAgICBjb25zdCBzaWduZXJzID0gWydzb2xBZGRyZXNzMSddO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlcyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIHB1YmxpY0tleTogeyBwdWI6ICdzb2xQdWJLZXkxJyB9LFxuICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NvbFNpZ25hdHVyZTEnKSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKE1lc3NhZ2VTdGFuZGFyZFR5cGUuU0lNUExFKTtcbiAgICAgIGJ1aWxkZXIuc2V0UGF5bG9hZChwYXlsb2FkKS5zZXRTaWduZXJzKHNpZ25lcnMpLnNldFNpZ25hdHVyZXMoc2lnbmF0dXJlcyk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCBicm9hZGNhc3RGb3JtYXQgPSBhd2FpdCBtZXNzYWdlLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIHNob3VsZC5leGlzdChicm9hZGNhc3RGb3JtYXQpO1xuICAgICAgc2hvdWxkLmVxdWFsKGJyb2FkY2FzdEZvcm1hdC50eXBlLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSk7XG4gICAgICBzaG91bGQuZXF1YWwoYnJvYWRjYXN0Rm9ybWF0LnBheWxvYWQsIHBheWxvYWQpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChicm9hZGNhc3RGb3JtYXQuc2lnbmVycywgc2lnbmVycyk7XG4gICAgICBzaG91bGQuZXhpc3QoYnJvYWRjYXN0Rm9ybWF0LnNlcmlhbGl6ZWRTaWduYXR1cmVzKTtcbiAgICAgIGNvbnN0IHNlcmlhbGl6ZWRTaWduYXR1cmVzID0gYnJvYWRjYXN0Rm9ybWF0LnNlcmlhbGl6ZWRTaWduYXR1cmVzO1xuICAgICAgc2hvdWxkLmVxdWFsKHNlcmlhbGl6ZWRTaWduYXR1cmVzPy5sZW5ndGgsIDEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHNlcmlhbGl6ZWRTaWduYXR1cmVzPy5bMF0ucHVibGljS2V5LCAnc29sUHViS2V5MScpO1xuICAgICAgc2hvdWxkLmVxdWFsKHNlcmlhbGl6ZWRTaWduYXR1cmVzPy5bMF0uc2lnbmF0dXJlLCBCdWZmZXIuZnJvbSgnc29sU2lnbmF0dXJlMScpLnRvU3RyaW5nKCdiYXNlNjQnKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmcm9tQnJvYWRjYXN0Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcmVidWlsZCBtZXNzYWdlIGZyb20gYnJvYWRjYXN0YWJsZSBmb3JtYXQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5TSU1QTEUsXG4gICAgICAgIHBheWxvYWQ6ICdTb2xhbmEgdGVzdCBtZXNzYWdlJyxcbiAgICAgICAgc2VyaWFsaXplZFNpZ25hdHVyZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwdWJsaWNLZXk6ICdzb2xQdWJLZXkxJyxcbiAgICAgICAgICAgIHNpZ25hdHVyZTogQnVmZmVyLmZyb20oJ3NvbFNpZ25hdHVyZTEnKS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgc2lnbmVyczogWydzb2xTaWduZXIxJ10sXG4gICAgICAgIG1ldGFkYXRhOiB7IG5ldHdvcms6ICd0ZXN0bmV0JywgZW5jb2Rpbmc6ICd1dGY4JyB9LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnkuZ2V0TWVzc2FnZUJ1aWxkZXIoTWVzc2FnZVN0YW5kYXJkVHlwZS5TSU1QTEUpO1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuZnJvbUJyb2FkY2FzdEZvcm1hdChicm9hZGNhc3RNZXNzYWdlKTtcblxuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UpO1xuICAgICAgc2hvdWxkLmVxdWFsKG1lc3NhZ2UuZ2V0VHlwZSgpLCBNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSk7XG4gICAgICBzaG91bGQuZXF1YWwobWVzc2FnZS5nZXRQYXlsb2FkKCksIGJyb2FkY2FzdE1lc3NhZ2UucGF5bG9hZCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKG1lc3NhZ2UuZ2V0U2lnbmVycygpLCBicm9hZGNhc3RNZXNzYWdlLnNpZ25lcnMpO1xuICAgICAgc2hvdWxkLmV4aXN0KG1lc3NhZ2UuZ2V0U2lnbmF0dXJlcygpKTtcbiAgICAgIHNob3VsZC5lcXVhbChtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5sZW5ndGgsIDEpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdFN0cmluZycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGJyb2FkY2FzdGFibGUgc3RyaW5nIGFuZCByZXR1cm4gY29ycmVjdCBidWlsZGVyIHR5cGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPVxuICAgICAgICAnN2IyMjc0Nzk3MDY1MjIzYTIyNTM0OTRkNTA0YzQ1MjIyYzIyNzA2MTc5NmM2ZjYxNjQyMjNhMjI1MzU0NDE1MjIwMzQzODM3MzkzNDM2MzcyMDc0NmYyMDYxNjQ2NDcyMzE3MTc4NzYzOTY1Mzk3YTcwMzUzNTc4NzYzMzM2MzA3NzY3Njg2YzM4MzAzNjY0MzAzMjc5MzMzNTM4MzkzOTdhNmI2YjcxMzI3MjY4NzQ2Njc4NzYzNzc4MzY3Nzc5NjM3NDZhMzI3OTcyNjY2Nzc2NjU3MjM1Mzc3NTMzMzAzNzc3NmMzNTM2MzczNTY2NzI2Nzc3MzIzMjM5NjQ3NjcxMzUzODc3NmI2YTc2NjU3NTY0MzU3NTcxNjY2ZTZkNzQ2NTdhMjAzMzMxNjEzNjYyNjE2MjM1MzA2MTM4MzQ2MjM4MzQzMzM5NjE2NDYzNjY2MjM3MzgzNjYyNjIzMjMwMzIzMDY2MzYzODMwMzc2NTM2NjUzODY2NjQ2MTM2MzIzOTYyMzQzMjM0MzEzMTMwNjY2MzM3NjI2MjMxNjMzNjYyMzg2MjIyMmMyMjczNjU3MjY5NjE2YzY5N2E2NTY0NTM2OTY3NmU2MTc0NzU3MjY1NzMyMjNhNWI3YjIyNzA3NTYyNmM2OTYzNGI2NTc5MjIzYTIyNDc1YTZkNmE1NzQ2NGE1NDM5NjQ1NTZlNzA1NzRlNzE0YTYxNjI2ZTUyNGQ3MTM0NzQ3Nzc5NzE0MzcyMzk2YjU4NDY2MzMzN2E0ZDQ3NjU1MDZkNjEzOTIyMmMyMjczNjk2NzZlNjE3NDc1NzI2NTIyM2EyMjY3NTIzNTQzNDQ0NjQ2NGY1MjQyNTIyZjY3NTY0MTZiNGI2MjRhNDYzNTUzNGQ2ZjM2NDk1MDYzNjc0YTM3NmE2OTc2Njk0ZjJmNzYzMTUzNWE3MDU2NTE0YjZhNjc1NjZlNmY0MTRmNDU2OTU4NTU2MTQ0NzI2NTZkNmM0NzM1NTE2NzQzNzc1OTQyNzI1YTYxMzI0ODZhNTQ3NzM5Mzg2YzY1Mzk2ZTQ0NjczZDNkMjI3ZDVkMmMyMjczNjk2NzZlNjU3MjczMjIzYTViMjI0NzVhNmQ2YTU3NDY0YTU0Mzk2NDU1NmU3MDU3NGU3MTRhNjE2MjZlNTI0ZDcxMzQ3NDc3Nzk3MTQzNzIzOTZiNTg0NjYzMzM3YTRkNDc2NTUwNmQ2MTM5MjI1ZDJjMjI2ZDY1NzQ2MTY0NjE3NDYxMjIzYTdiMjI2NTZlNjM2ZjY0Njk2ZTY3MjIzYTIyNzU3NDY2MzgyMjdkMmMyMjczNjk2NzZlNjE2MjZjNjU1MDYxNzk2YzZmNjE2NDIyM2EyMjU1MzE1MjQyNTU2OTQxMzA0ZjQ0NjMzNTRlNDQ1OTMzNDk0ODUyNzY0OTQ3NDY2YjVhNDg0OTc4NjM1ODY4MzI0ZjU3NTUzNTY1NmU0MTMxNGU1ODY4MzI0ZDdhNTk3NzY0MzI2NDZmNjI0NDY3Nzc0ZTZkNTE3NzRkNmU2YjdhNGU1NDY3MzU0ZjU4NzA3MjYxMzM0NTc5NjM2ZDY4MzA1YTZlNjgzMjRlMzM2NzMyNjQzMzZjNmE2NDQ3NmY3OTY1NTg0YTZkNWEzMzVhNmM2MzZhNTUzMzY0NTQ0ZDc3NGUzMzY0NzM0ZTU0NTkzMzRlNTc1YTc5NWEzMzYzNzk0ZDZhNmM2YjY0NmU0NTMxNGY0ODY0NzI2MTZlNWE2YzY0NTc1MTMxNjQ1ODQ2NmQ2MjZkMzEzMDVhNTg2ZjY3NGQ3YTQ2Njg0ZTZkNGE2ODU5NmE1NTc3NTk1NDY3MzA1OTZhNjczMDRkN2E2YzY4NWE0NzRlNmQ1OTZhNjMzNDRlNmQ0YTY5NGQ2YTQxNzk0ZDQ3NTkzMjRmNDQ0MTMzNWE1NDVhNmM0ZjQ3NWE2YjU5NTQ1OTc5NGY1NzQ5MzA0ZDZhNTE3ODRkNTQ0MjZkNTk3YTY0Njk1OTZhNDY2YTRlNmQ0OTM0NTk2NzNkM2QyMjdkJztcbiAgICAgIGNvbnN0IGNvaW5Db25maWcgPSB7IG5hbWU6ICdzb2wnIH0gYXMgQmFzZUNvaW47XG4gICAgICBjb25zdCBmYWN0b3J5ID0gbmV3IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeShjb2luQ29uZmlnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmZyb21Ccm9hZGNhc3RTdHJpbmcoYnJvYWRjYXN0SGV4KTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIGNvbnN0IHBheWxvYWQgPSBtZXNzYWdlLmdldFBheWxvYWQoKTtcbiAgICAgIGNvbnN0IHBheWxvYWRQYXJ0cyA9IHBheWxvYWQuc3BsaXQoJyAnKTtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSBtZXNzYWdlLmdldFNpZ25lcnMoKVswXTtcbiAgICAgIGFkZHJlc3Muc2hvdWxkLmVxdWFsKCdHWm1qV0ZKVDlkVW5wV05xSmFiblJNcTR0d3lxQ3I5a1hGYzN6TUdlUG1hOScpO1xuICAgICAgY29uc3QgZGVzdGluYXRpb25BZGRyZXNzID0gcGF5bG9hZFBhcnRzWzNdO1xuICAgICAgZGVzdGluYXRpb25BZGRyZXNzLnNob3VsZC5lcXVhbChcbiAgICAgICAgJ2FkZHIxcXh2OWU5enA1NXh2MzYwd2dobDgwNmQwMnkzNTg5OXpra3Eycmh0Znh2N3g2d3ljdGoyeXJmZ3ZlcjU3dTMwN3dsNTY3NWZyZ3cyMjlkdnE1OHdranZldWQ1dXFmbm10ZXonXG4gICAgICApO1xuICAgICAgY29uc3QgYW1vdW50ID0gTnVtYmVyKHBheWxvYWRQYXJ0c1sxXSk7XG4gICAgICBhbW91bnQuc2hvdWxkLmVxdWFsKDQ4Nzk0NjcpO1xuXG4gICAgICBjb25zdCBzaWduYXR1cmVCdWZmID0gbWVzc2FnZS5nZXRTaWduYXR1cmVzKClbMF0uc2lnbmF0dXJlO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlQmFzZTU4ID0gYnM1OC5lbmNvZGUoc2lnbmF0dXJlQnVmZik7XG4gICAgICBzaWduYXR1cmVCYXNlNTguc2hvdWxkLmVxdWFsKFxuICAgICAgICAnM2FqN3hER0pyRkFiTkY2R0xyV1RIcHk4VVc5NGk2eEZBREoxS2RvbURMYUNEalV5ejhHajV2UGM1bVpMZHVGaFJBVUNVNEJVY25CV3U1dGUxRGJNWENGZidcbiAgICAgICk7XG4gICAgICBjb25zdCBzaWduYXR1cmVIZXggPSBzaWduYXR1cmVCdWZmLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIHNpZ25hdHVyZUhleC5zaG91bGQuZXF1YWwoXG4gICAgICAgICc4MTFlNDIwYzUxNGU0NDE0N2Y4MTUwMjQyOWIyNDVlNTIzMjhlODgzZGM4MDllZTM4YWY4OGVmZWZkNTI2Njk1NTAyYTM4MTU5ZTgwMGUxMjI1ZDQ2ODNhZGU5YTUxYjk0MjAwYjA2MDFhZDk2YjYxZTM0ZjBmN2M5NWVmNjcwZSdcbiAgICAgICk7XG4gICAgICBjb25zdCBwdWJsaWNLZXlIZXggPSBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKVswXS5wdWJsaWNLZXkucHViO1xuICAgICAgcHVibGljS2V5SGV4LnNob3VsZC5lcXVhbCgnR1ptaldGSlQ5ZFVucFdOcUphYm5STXE0dHd5cUNyOWtYRmMzek1HZVBtYTknKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../test/unit/register.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const sinon_1 = __importDefault(require("sinon"));
|
|
7
|
+
const assert_1 = __importDefault(require("assert"));
|
|
8
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
11
|
+
const register_1 = require("../../src/register");
|
|
12
|
+
const solToken_1 = require("../../src/solToken");
|
|
13
|
+
describe('SOL Register', function () {
|
|
14
|
+
let bitgo;
|
|
15
|
+
let registerSpy;
|
|
16
|
+
let registerTokenSpy;
|
|
17
|
+
beforeEach(function () {
|
|
18
|
+
bitgo = new sdk_api_1.BitGoAPI({ env: 'test' });
|
|
19
|
+
registerSpy = sinon_1.default.spy(bitgo, 'register');
|
|
20
|
+
registerTokenSpy = sinon_1.default.spy(sdk_core_1.GlobalCoinFactory, 'registerToken');
|
|
21
|
+
});
|
|
22
|
+
afterEach(function () {
|
|
23
|
+
registerSpy.restore();
|
|
24
|
+
registerTokenSpy.restore();
|
|
25
|
+
});
|
|
26
|
+
describe('register', function () {
|
|
27
|
+
it('should register base coins and token constructors', function () {
|
|
28
|
+
(0, register_1.register)(bitgo);
|
|
29
|
+
const registeredNames = registerSpy.getCalls().map((call) => call.args[0]);
|
|
30
|
+
// Base coins should be registered
|
|
31
|
+
assert_1.default.ok(registeredNames.includes('sol'));
|
|
32
|
+
assert_1.default.ok(registeredNames.includes('tsol'));
|
|
33
|
+
// SOL tokens from statics should be registered
|
|
34
|
+
const solTokenCount = solToken_1.SolToken.createTokenConstructors().length;
|
|
35
|
+
assert_1.default.strictEqual(registerSpy.callCount, 2 + solTokenCount);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('registerWithCoinMap', function () {
|
|
39
|
+
it('should call register internally for base coins and tokens', function () {
|
|
40
|
+
(0, register_1.registerWithCoinMap)(bitgo, statics_1.coins);
|
|
41
|
+
const registeredNames = registerSpy.getCalls().map((call) => call.args[0]);
|
|
42
|
+
// Base coins should be registered
|
|
43
|
+
assert_1.default.ok(registeredNames.includes('sol'));
|
|
44
|
+
assert_1.default.ok(registeredNames.includes('tsol'));
|
|
45
|
+
});
|
|
46
|
+
it('should add dynamic SOL tokens to the global coin map', function () {
|
|
47
|
+
(0, register_1.registerWithCoinMap)(bitgo, statics_1.coins);
|
|
48
|
+
// registerToken should have been called for SOL tokens in the coin map
|
|
49
|
+
assert_1.default.ok(registerTokenSpy.callCount > 0);
|
|
50
|
+
// Each call should pass a valid coin from the coinMap
|
|
51
|
+
for (let i = 0; i < registerTokenSpy.callCount; i++) {
|
|
52
|
+
const call = registerTokenSpy.getCall(i);
|
|
53
|
+
const staticsCoin = call.args[0];
|
|
54
|
+
assert_1.default.ok(statics_1.coins.has(staticsCoin.name), `${staticsCoin.name} should exist in the coin map`);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
it('should not add tokens to the global coin map when coin map has no SOL tokens', function () {
|
|
58
|
+
const limitedCoinMap = statics_1.coins.filter((coin) => !(coin instanceof statics_1.SolCoin));
|
|
59
|
+
(0, register_1.registerWithCoinMap)(bitgo, limitedCoinMap);
|
|
60
|
+
// registerToken should not be called since no SOL tokens are in the map
|
|
61
|
+
assert_1.default.strictEqual(registerTokenSpy.callCount, 0);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsb0RBQTRCO0FBQzVCLGlEQUErQztBQUMvQyxtREFBeUQ7QUFDekQsaURBQXFEO0FBQ3JELGlEQUFtRTtBQUNuRSxpREFBOEM7QUFFOUMsUUFBUSxDQUFDLGNBQWMsRUFBRTtJQUN2QixJQUFJLEtBQWUsQ0FBQztJQUNwQixJQUFJLFdBQTJCLENBQUM7SUFDaEMsSUFBSSxnQkFBZ0MsQ0FBQztJQUVyQyxVQUFVLENBQUM7UUFDVCxLQUFLLEdBQUcsSUFBSSxrQkFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEMsV0FBVyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLGdCQUFnQixHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsNEJBQWlCLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxTQUFTLENBQUM7UUFDUixXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdEIsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsVUFBVSxFQUFFO1FBQ25CLEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtZQUN0RCxJQUFBLG1CQUFRLEVBQUMsS0FBSyxDQUFDLENBQUM7WUFFaEIsTUFBTSxlQUFlLEdBQUcsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTNFLGtDQUFrQztZQUNsQyxnQkFBTSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDM0MsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBRTVDLCtDQUErQztZQUMvQyxNQUFNLGFBQWEsR0FBRyxtQkFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUMsTUFBTSxDQUFDO1lBQ2hFLGdCQUFNLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxDQUFDO1FBQy9ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMscUJBQXFCLEVBQUU7UUFDOUIsRUFBRSxDQUFDLDJEQUEyRCxFQUFFO1lBQzlELElBQUEsOEJBQW1CLEVBQUMsS0FBSyxFQUFFLGVBQUssQ0FBQyxDQUFDO1lBRWxDLE1BQU0sZUFBZSxHQUFHLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUzRSxrQ0FBa0M7WUFDbEMsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNDLGdCQUFNLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxzREFBc0QsRUFBRTtZQUN6RCxJQUFBLDhCQUFtQixFQUFDLEtBQUssRUFBRSxlQUFLLENBQUMsQ0FBQztZQUVsQyx1RUFBdUU7WUFDdkUsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRTFDLHNEQUFzRDtZQUN0RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sSUFBSSxHQUFHLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDekMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakMsZ0JBQU0sQ0FBQyxFQUFFLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxXQUFXLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDO1lBQzdGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4RUFBOEUsRUFBRTtZQUNqRixNQUFNLGNBQWMsR0FBRyxlQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLGlCQUFPLENBQUMsQ0FBQyxDQUFDO1lBRTFFLElBQUEsOEJBQW1CLEVBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRTNDLHdFQUF3RTtZQUN4RSxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWFwaSc7XG5pbXBvcnQgeyBHbG9iYWxDb2luRmFjdG9yeSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zLCBTb2xDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyByZWdpc3RlciwgcmVnaXN0ZXJXaXRoQ29pbk1hcCB9IGZyb20gJy4uLy4uL3NyYy9yZWdpc3Rlcic7XG5pbXBvcnQgeyBTb2xUb2tlbiB9IGZyb20gJy4uLy4uL3NyYy9zb2xUb2tlbic7XG5cbmRlc2NyaWJlKCdTT0wgUmVnaXN0ZXInLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBiaXRnbzogQml0R29BUEk7XG4gIGxldCByZWdpc3RlclNweTogc2lub24uU2lub25TcHk7XG4gIGxldCByZWdpc3RlclRva2VuU3B5OiBzaW5vbi5TaW5vblNweTtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IG5ldyBCaXRHb0FQSSh7IGVudjogJ3Rlc3QnIH0pO1xuICAgIHJlZ2lzdGVyU3B5ID0gc2lub24uc3B5KGJpdGdvLCAncmVnaXN0ZXInKTtcbiAgICByZWdpc3RlclRva2VuU3B5ID0gc2lub24uc3B5KEdsb2JhbENvaW5GYWN0b3J5LCAncmVnaXN0ZXJUb2tlbicpO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHJlZ2lzdGVyU3B5LnJlc3RvcmUoKTtcbiAgICByZWdpc3RlclRva2VuU3B5LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlZ2lzdGVyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgcmVnaXN0ZXIgYmFzZSBjb2lucyBhbmQgdG9rZW4gY29uc3RydWN0b3JzJywgZnVuY3Rpb24gKCkge1xuICAgICAgcmVnaXN0ZXIoYml0Z28pO1xuXG4gICAgICBjb25zdCByZWdpc3RlcmVkTmFtZXMgPSByZWdpc3RlclNweS5nZXRDYWxscygpLm1hcCgoY2FsbCkgPT4gY2FsbC5hcmdzWzBdKTtcblxuICAgICAgLy8gQmFzZSBjb2lucyBzaG91bGQgYmUgcmVnaXN0ZXJlZFxuICAgICAgYXNzZXJ0Lm9rKHJlZ2lzdGVyZWROYW1lcy5pbmNsdWRlcygnc29sJykpO1xuICAgICAgYXNzZXJ0Lm9rKHJlZ2lzdGVyZWROYW1lcy5pbmNsdWRlcygndHNvbCcpKTtcblxuICAgICAgLy8gU09MIHRva2VucyBmcm9tIHN0YXRpY3Mgc2hvdWxkIGJlIHJlZ2lzdGVyZWRcbiAgICAgIGNvbnN0IHNvbFRva2VuQ291bnQgPSBTb2xUb2tlbi5jcmVhdGVUb2tlbkNvbnN0cnVjdG9ycygpLmxlbmd0aDtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZWdpc3RlclNweS5jYWxsQ291bnQsIDIgKyBzb2xUb2tlbkNvdW50KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3JlZ2lzdGVyV2l0aENvaW5NYXAnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBjYWxsIHJlZ2lzdGVyIGludGVybmFsbHkgZm9yIGJhc2UgY29pbnMgYW5kIHRva2VucycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlZ2lzdGVyV2l0aENvaW5NYXAoYml0Z28sIGNvaW5zKTtcblxuICAgICAgY29uc3QgcmVnaXN0ZXJlZE5hbWVzID0gcmVnaXN0ZXJTcHkuZ2V0Q2FsbHMoKS5tYXAoKGNhbGwpID0+IGNhbGwuYXJnc1swXSk7XG5cbiAgICAgIC8vIEJhc2UgY29pbnMgc2hvdWxkIGJlIHJlZ2lzdGVyZWRcbiAgICAgIGFzc2VydC5vayhyZWdpc3RlcmVkTmFtZXMuaW5jbHVkZXMoJ3NvbCcpKTtcbiAgICAgIGFzc2VydC5vayhyZWdpc3RlcmVkTmFtZXMuaW5jbHVkZXMoJ3Rzb2wnKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFkZCBkeW5hbWljIFNPTCB0b2tlbnMgdG8gdGhlIGdsb2JhbCBjb2luIG1hcCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJlZ2lzdGVyV2l0aENvaW5NYXAoYml0Z28sIGNvaW5zKTtcblxuICAgICAgLy8gcmVnaXN0ZXJUb2tlbiBzaG91bGQgaGF2ZSBiZWVuIGNhbGxlZCBmb3IgU09MIHRva2VucyBpbiB0aGUgY29pbiBtYXBcbiAgICAgIGFzc2VydC5vayhyZWdpc3RlclRva2VuU3B5LmNhbGxDb3VudCA+IDApO1xuXG4gICAgICAvLyBFYWNoIGNhbGwgc2hvdWxkIHBhc3MgYSB2YWxpZCBjb2luIGZyb20gdGhlIGNvaW5NYXBcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcmVnaXN0ZXJUb2tlblNweS5jYWxsQ291bnQ7IGkrKykge1xuICAgICAgICBjb25zdCBjYWxsID0gcmVnaXN0ZXJUb2tlblNweS5nZXRDYWxsKGkpO1xuICAgICAgICBjb25zdCBzdGF0aWNzQ29pbiA9IGNhbGwuYXJnc1swXTtcbiAgICAgICAgYXNzZXJ0Lm9rKGNvaW5zLmhhcyhzdGF0aWNzQ29pbi5uYW1lKSwgYCR7c3RhdGljc0NvaW4ubmFtZX0gc2hvdWxkIGV4aXN0IGluIHRoZSBjb2luIG1hcGApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgYWRkIHRva2VucyB0byB0aGUgZ2xvYmFsIGNvaW4gbWFwIHdoZW4gY29pbiBtYXAgaGFzIG5vIFNPTCB0b2tlbnMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBsaW1pdGVkQ29pbk1hcCA9IGNvaW5zLmZpbHRlcigoY29pbikgPT4gIShjb2luIGluc3RhbmNlb2YgU29sQ29pbikpO1xuXG4gICAgICByZWdpc3RlcldpdGhDb2luTWFwKGJpdGdvLCBsaW1pdGVkQ29pbk1hcCk7XG5cbiAgICAgIC8vIHJlZ2lzdGVyVG9rZW4gc2hvdWxkIG5vdCBiZSBjYWxsZWQgc2luY2Ugbm8gU09MIHRva2VucyBhcmUgaW4gdGhlIG1hcFxuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlZ2lzdGVyVG9rZW5TcHkuY2FsbENvdW50LCAwKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaledUiAmount.d.ts","sourceRoot":"","sources":["../../../../test/unit/scaledUiAmount.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const scaledUiAmount_1 = require("../../src/lib/scaledUiAmount");
|
|
5
|
+
describe('Sol ScaledUiAmount conversions', function () {
|
|
6
|
+
describe('rawToUiAmountString', function () {
|
|
7
|
+
it('converts raw to UI with multiplier 1 (identity denomination)', function () {
|
|
8
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1000000000n, '1', 9).should.equal('1');
|
|
9
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1n, '1', 9).should.equal('0.000000001');
|
|
10
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(0n, '1', 9).should.equal('0');
|
|
11
|
+
});
|
|
12
|
+
it('converts raw to UI with multiplier 0.001', function () {
|
|
13
|
+
// 10^9 raw * 0.001 / 10^9 = 0.001
|
|
14
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1000000000n, '0.001', 9).should.equal('0.001');
|
|
15
|
+
// 1 raw * 0.001 / 10^9 = 10^-12
|
|
16
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1n, '0.001', 9).should.equal('0.000000000001');
|
|
17
|
+
});
|
|
18
|
+
it('converts raw to UI with multiplier 1e-9 (ticket extreme)', function () {
|
|
19
|
+
// 10^9 raw * 10^-9 / 10^9 = 10^-9
|
|
20
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1000000000n, '0.000000001', 9).should.equal('0.000000001');
|
|
21
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1n, '0.000000001', 9).should.equal('0.000000000000000001');
|
|
22
|
+
});
|
|
23
|
+
it('handles multipliers greater than 1', function () {
|
|
24
|
+
// 2 raw * 1.5 / 10^2 = 0.03
|
|
25
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(2n, '1.5', 2).should.equal('0.03');
|
|
26
|
+
// 100 raw * 12.5 / 10^2 = 12.5
|
|
27
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(100n, '12.5', 2).should.equal('12.5');
|
|
28
|
+
});
|
|
29
|
+
it('normalizes trailing zeros', function () {
|
|
30
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(500000000n, '1', 9).should.equal('0.5');
|
|
31
|
+
(0, scaledUiAmount_1.rawToUiAmountString)(1230000000n, '1', 9).should.equal('1.23');
|
|
32
|
+
});
|
|
33
|
+
it('rejects malformed inputs', function () {
|
|
34
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(-1n, '1', 9)).should.throw(/must be non-negative/);
|
|
35
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, '0', 9)).should.throw(/must be positive/);
|
|
36
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, '-0.001', 9)).should.throw(/must be positive/);
|
|
37
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, '1e-9', 9)).should.throw(/finite decimal string/);
|
|
38
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, 'abc', 9)).should.throw(/finite decimal string/);
|
|
39
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, 'NaN', 9)).should.throw(/finite decimal string/);
|
|
40
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, '1', -1)).should.throw(/non-negative integer/);
|
|
41
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1n, '1', 1.5)).should.throw(/non-negative integer/);
|
|
42
|
+
// @ts-expect-error runtime guard against non-BigInt raw
|
|
43
|
+
(() => (0, scaledUiAmount_1.rawToUiAmountString)(1000, '1', 9)).should.throw(/BigInt of base units/);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('uiAmountToRaw', function () {
|
|
47
|
+
it('converts UI to raw with multiplier 1', function () {
|
|
48
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('1', '1', 9).should.equal(1000000000n);
|
|
49
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('0.000000001', '1', 9).should.equal(1n);
|
|
50
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('0', '1', 9).should.equal(0n);
|
|
51
|
+
});
|
|
52
|
+
it('converts UI to raw with multiplier 0.001', function () {
|
|
53
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('0.001', '0.001', 9).should.equal(1000000000n);
|
|
54
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('0.000000000001', '0.001', 9).should.equal(1n);
|
|
55
|
+
});
|
|
56
|
+
it('converts UI to raw with multiplier 1e-9 (ticket extreme)', function () {
|
|
57
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('0.000000001', '0.000000001', 9).should.equal(1000000000n);
|
|
58
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('0.000000000000000001', '0.000000001', 9).should.equal(1n);
|
|
59
|
+
});
|
|
60
|
+
it('floors to integer base units', function () {
|
|
61
|
+
// 1.0000000005 UI * 10^9 = 1000000000.5 raw -> floors to 1000000000
|
|
62
|
+
(0, scaledUiAmount_1.uiAmountToRaw)('1.0000000005', '1', 9).should.equal(1000000000n);
|
|
63
|
+
});
|
|
64
|
+
it('rejects malformed inputs', function () {
|
|
65
|
+
(() => (0, scaledUiAmount_1.uiAmountToRaw)('-1', '1', 9)).should.throw(/must be non-negative/);
|
|
66
|
+
(() => (0, scaledUiAmount_1.uiAmountToRaw)('1', '0', 9)).should.throw(/must be positive/);
|
|
67
|
+
(() => (0, scaledUiAmount_1.uiAmountToRaw)('1e-9', '1', 9)).should.throw(/finite decimal string/);
|
|
68
|
+
(() => (0, scaledUiAmount_1.uiAmountToRaw)('1', '1', -1)).should.throw(/non-negative integer/);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe('round-trip exactness at multiplier extremes', function () {
|
|
72
|
+
const multipliers = ['1', '0.001', '0.000000001', '1.5', '12.5'];
|
|
73
|
+
const rawAmounts = [
|
|
74
|
+
0n,
|
|
75
|
+
1n,
|
|
76
|
+
999n,
|
|
77
|
+
1000n,
|
|
78
|
+
123456789n,
|
|
79
|
+
1000000000n,
|
|
80
|
+
999999999999999999n,
|
|
81
|
+
10n ** 27n, // > u64 max supply, still exact
|
|
82
|
+
];
|
|
83
|
+
for (const multiplier of multipliers) {
|
|
84
|
+
it(`round-trips every raw amount through UI at multiplier ${multiplier}`, function () {
|
|
85
|
+
for (const raw of rawAmounts) {
|
|
86
|
+
const ui = (0, scaledUiAmount_1.rawToUiAmountString)(raw, multiplier, 9);
|
|
87
|
+
(0, scaledUiAmount_1.uiAmountToRaw)(ui, multiplier, 9).should.equal(raw);
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
it('round-trips at decimals other than 9', function () {
|
|
92
|
+
for (const decimals of [0, 2, 6, 18]) {
|
|
93
|
+
for (const raw of rawAmounts) {
|
|
94
|
+
const ui = (0, scaledUiAmount_1.rawToUiAmountString)(raw, '0.001', decimals);
|
|
95
|
+
(0, scaledUiAmount_1.uiAmountToRaw)(ui, '0.001', decimals).should.equal(raw);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NhbGVkVWlBbW91bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvc2NhbGVkVWlBbW91bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxrQkFBZ0I7QUFDaEIsaUVBQWtGO0FBRWxGLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRTtJQUN6QyxRQUFRLENBQUMscUJBQXFCLEVBQUU7UUFDOUIsRUFBRSxDQUFDLDhEQUE4RCxFQUFFO1lBQ2pFLElBQUEsb0NBQW1CLEVBQUMsV0FBYyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzlELElBQUEsb0NBQW1CLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzVELElBQUEsb0NBQW1CLEVBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFO1lBQzdDLGtDQUFrQztZQUNsQyxJQUFBLG9DQUFtQixFQUFDLFdBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxnQ0FBZ0M7WUFDaEMsSUFBQSxvQ0FBbUIsRUFBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwREFBMEQsRUFBRTtZQUM3RCxrQ0FBa0M7WUFDbEMsSUFBQSxvQ0FBbUIsRUFBQyxXQUFjLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxD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LFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxFQUFFLENBQUMseURBQXlELFVBQVUsRUFBRSxFQUFFO2dCQUN4RSxLQUFLLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUM3QixNQUFNLEVBQUUsR0FBRyxJQUFBLG9DQUFtQixFQUFDLEdBQUcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ25ELElBQUEsOEJBQWEsRUFBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3JELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxFQUFFLENBQUMsc0NBQXNDLEVBQUU7WUFDekMsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JDLEtBQUssTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQzdCLE1BQU0sRUFBRSxHQUFHLElBQUEsb0NBQW1CLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztvQkFDdkQsSUFBQSw4QkFBYSxFQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3Nob3VsZCc7XG5pbXBvcnQgeyByYXdUb1VpQW1vdW50U3RyaW5nLCB1aUFtb3VudFRvUmF3IH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9zY2FsZWRVaUFtb3VudCc7XG5cbmRlc2NyaWJlKCdTb2wgU2NhbGVkVWlBbW91bnQgY29udmVyc2lvbnMnLCBmdW5jdGlvbiAoKSB7XG4gIGRlc2NyaWJlKCdyYXdUb1VpQW1vdW50U3RyaW5nJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdjb252ZXJ0cyByYXcgdG8gVUkgd2l0aCBtdWx0aXBsaWVyIDEgKGlkZW50aXR5IGRlbm9taW5hdGlvbiknLCBmdW5jdGlvbiAoKSB7XG4gICAgICByYXdUb1VpQW1vdW50U3RyaW5nKDFfMDAwXzAwMF8wMDBuLCAnMScsIDkpLnNob3VsZC5lcXVhbCgnMScpO1xuICAgICAgcmF3VG9VaUFtb3VudFN0cmluZygxbiwgJzEnLCA5KS5zaG91bGQuZXF1YWwoJzAuMDAwMDAwMDAxJyk7XG4gICAgICByYXdUb1VpQW1vdW50U3RyaW5nKDBuLCAnMScsIDkpLnNob3VsZC5lcXVhbCgnMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvbnZlcnRzIHJhdyB0byBVSSB3aXRoIG11bHRpcGxpZXIgMC4wMDEnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyAxMF45IHJhdyAqIDAuMDAxIC8gMTBeOSA9IDAuMDAxXG4gICAgICByYXdUb1VpQW1vdW50U3RyaW5nKDFfMDAwXzAwMF8wMDBuLCAnMC4wMDEnLCA5KS5zaG91bGQuZXF1YWwoJzAuMDAxJyk7XG4gICAgICAvLyAxIHJhdyAqIDAuMDAxIC8gMTBeOSA9IDEwXi0xMlxuICAgICAgcmF3VG9VaUFtb3VudFN0cmluZygxbiwgJzAuMDAxJywgOSkuc2hvdWxkLmVxdWFsKCcwLjAwMDAwMDAwMDAwMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvbnZlcnRzIHJhdyB0byBVSSB3aXRoIG11bHRpcGxpZXIgMWUtOSAodGlja2V0IGV4dHJlbWUpJywgZnVuY3Rpb24gKCkge1xuICAgICAgLy8gMTBeOSByYXcgKiAxMF4tOSAvIDEwXjkgPSAxMF4tOVxuICAgICAgcmF3VG9VaUFtb3VudFN0cmluZygxXzAwMF8wMDBfMDAwbiwgJzAuMDAwMDAwMDAxJywgOSkuc2hvdWxkLmVxdWFsKCcwLjAwMDAwMDAwMScpO1xuICAgICAgcmF3VG9VaUFtb3VudFN0cmluZygxbiwgJzAuMDAwMDAwMDAxJywgOSkuc2hvdWxkLmVxdWFsKCcwLjAwMDAwMDAwMDAwMDAwMDAwMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2hhbmRsZXMgbXVsdGlwbGllcnMgZ3JlYXRlciB0aGFuIDEnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyAyIHJhdyAqIDEuNSAvIDEwXjIgPSAwLjAzXG4gICAgICByYXdUb1VpQW1vdW50U3RyaW5nKDJuLCAnMS41JywgMikuc2hvdWxkLmVxdWFsKCcwLjAzJyk7XG4gICAgICAvLyAxMDAgcmF3ICogMTIuNSAvIDEwXjIgPSAxMi41XG4gICAgICByYXdUb1VpQW1vdW50U3RyaW5nKDEwMG4sICcxMi41JywgMikuc2hvdWxkLmVxdWFsKCcxMi41Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnbm9ybWFsaXplcyB0cmFpbGluZyB6ZXJvcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJhd1RvVWlBbW91bnRTdHJpbmcoNTAwXzAwMF8wMDBuLCAnMScsIDkpLnNob3VsZC5lcXVhbCgnMC41Jyk7XG4gICAgICByYXdUb1VpQW1vdW50U3RyaW5nKDFfMjMwXzAwMF8wMDBuLCAnMScsIDkpLnNob3VsZC5lcXVhbCgnMS4yMycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgbWFsZm9ybWVkIGlucHV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICgoKSA9PiByYXdUb1VpQW1vdW50U3RyaW5nKC0xbiwgJzEnLCA5KSkuc2hvdWxkLnRocm93KC9tdXN0IGJlIG5vbi1uZWdhdGl2ZS8pO1xuICAgICAgKCgpID0+IHJhd1RvVWlBbW91bnRTdHJpbmcoMW4sICcwJywgOSkpLnNob3VsZC50aHJvdygvbXVzdCBiZSBwb3NpdGl2ZS8pO1xuICAgICAgKCgpID0+IHJhd1RvVWlBbW91bnRTdHJpbmcoMW4sICctMC4wMDEnLCA5KSkuc2hvdWxkLnRocm93KC9tdXN0IGJlIHBvc2l0aXZlLyk7XG4gICAgICAoKCkgPT4gcmF3VG9VaUFtb3VudFN0cmluZygxbiwgJzFlLTknLCA5KSkuc2hvdWxkLnRocm93KC9maW5pdGUgZGVjaW1hbCBzdHJpbmcvKTtcbiAgICAgICgoKSA9PiByYXdUb1VpQW1vdW50U3RyaW5nKDFuLCAnYWJjJywgOSkpLnNob3VsZC50aHJvdygvZmluaXRlIGRlY2ltYWwgc3RyaW5nLyk7XG4gICAgICAoKCkgPT4gcmF3VG9VaUFtb3VudFN0cmluZygxbiwgJ05hTicsIDkpKS5zaG91bGQudGhyb3coL2Zpbml0ZSBkZWNpbWFsIHN0cmluZy8pO1xuICAgICAgKCgpID0+IHJhd1RvVWlBbW91bnRTdHJpbmcoMW4sICcxJywgLTEpKS5zaG91bGQudGhyb3coL25vbi1uZWdhdGl2ZSBpbnRlZ2VyLyk7XG4gICAgICAoKCkgPT4gcmF3VG9VaUFtb3VudFN0cmluZygxbiwgJzEnLCAxLjUpKS5zaG91bGQudGhyb3coL25vbi1uZWdhdGl2ZSBpbnRlZ2VyLyk7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHJ1bnRpbWUgZ3VhcmQgYWdhaW5zdCBub24tQmlnSW50IHJhd1xuICAgICAgKCgpID0+IHJhd1RvVWlBbW91bnRTdHJpbmcoMTAwMCwgJzEnLCA5KSkuc2hvdWxkLnRocm93KC9CaWdJbnQgb2YgYmFzZSB1bml0cy8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndWlBbW91bnRUb1JhdycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnY29udmVydHMgVUkgdG8gcmF3IHdpdGggbXVsdGlwbGllciAxJywgZnVuY3Rpb24gKCkge1xuICAgICAgdWlBbW91bnRUb1JhdygnMScsICcxJywgOSkuc2hvdWxkLmVxdWFsKDFfMDAwXzAwMF8wMDBuKTtcbiAgICAgIHVpQW1vdW50VG9SYXcoJzAuMDAwMDAwMDAxJywgJzEnLCA5KS5zaG91bGQuZXF1YWwoMW4pO1xuICAgICAgdWlBbW91bnRUb1JhdygnMCcsICcxJywgOSkuc2hvdWxkLmVxdWFsKDBuKTtcbiAgICB9KTtcblxuICAgIGl0KCdjb252ZXJ0cyBVSSB0byByYXcgd2l0aCBtdWx0aXBsaWVyIDAuMDAxJywgZnVuY3Rpb24gKCkge1xuICAgICAgdWlBbW91bnRUb1JhdygnMC4wMDEnLCAnMC4wMDEnLCA5KS5zaG91bGQuZXF1YWwoMV8wMDBfMDAwXzAwMG4pO1xuICAgICAgdWlBbW91bnRUb1JhdygnMC4wMDAwMDAwMDAwMDEnLCAnMC4wMDEnLCA5KS5zaG91bGQuZXF1YWwoMW4pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2NvbnZlcnRzIFVJIHRvIHJhdyB3aXRoIG11bHRpcGxpZXIgMWUtOSAodGlja2V0IGV4dHJlbWUpJywgZnVuY3Rpb24gKCkge1xuICAgICAgdWlBbW91bnRUb1JhdygnMC4wMDAwMDAwMDEnLCAnMC4wMDAwMDAwMDEnLCA5KS5zaG91bGQuZXF1YWwoMV8wMDBfMDAwXzAwMG4pO1xuICAgICAgdWlBbW91bnRUb1JhdygnMC4wMDAwMDAwMDAwMDAwMDAwMDEnLCAnMC4wMDAwMDAwMDEnLCA5KS5zaG91bGQuZXF1YWwoMW4pO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zsb29ycyB0byBpbnRlZ2VyIGJhc2UgdW5pdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAvLyAxLjAwMDAwMDAwMDUgVUkgKiAxMF45ID0gMTAwMDAwMDAwMC41IHJhdyAtPiBmbG9vcnMgdG8gMTAwMDAwMDAwMFxuICAgICAgdWlBbW91bnRUb1JhdygnMS4wMDAwMDAwMDA1JywgJzEnLCA5KS5zaG91bGQuZXF1YWwoMV8wMDBfMDAwXzAwMG4pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JlamVjdHMgbWFsZm9ybWVkIGlucHV0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICgoKSA9PiB1aUFtb3VudFRvUmF3KCctMScsICcxJywgOSkpLnNob3VsZC50aHJvdygvbXVzdCBiZSBub24tbmVnYXRpdmUvKTtcbiAgICAgICgoKSA9PiB1aUFtb3VudFRvUmF3KCcxJywgJzAnLCA5KSkuc2hvdWxkLnRocm93KC9tdXN0IGJlIHBvc2l0aXZlLyk7XG4gICAgICAoKCkgPT4gdWlBbW91bnRUb1JhdygnMWUtOScsICcxJywgOSkpLnNob3VsZC50aHJvdygvZmluaXRlIGRlY2ltYWwgc3RyaW5nLyk7XG4gICAgICAoKCkgPT4gdWlBbW91bnRUb1JhdygnMScsICcxJywgLTEpKS5zaG91bGQudGhyb3coL25vbi1uZWdhdGl2ZSBpbnRlZ2VyLyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdyb3VuZC10cmlwIGV4YWN0bmVzcyBhdCBtdWx0aXBsaWVyIGV4dHJlbWVzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IG11bHRpcGxpZXJzID0gWycxJywgJzAuMDAxJywgJzAuMDAwMDAwMDAxJywgJzEuNScsICcxMi41J107XG4gICAgY29uc3QgcmF3QW1vdW50cyA9IFtcbiAgICAgIDBuLFxuICAgICAgMW4sXG4gICAgICA5OTluLFxuICAgICAgMV8wMDBuLFxuICAgICAgMTIzXzQ1Nl83ODluLFxuICAgICAgMV8wMDBfMDAwXzAwMG4sXG4gICAgICA5OTlfOTk5Xzk5OV85OTlfOTk5Xzk5OW4sXG4gICAgICAxMG4gKiogMjduLCAvLyA+IHU2NCBtYXggc3VwcGx5LCBzdGlsbCBleGFjdFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IG11bHRpcGxpZXIgb2YgbXVsdGlwbGllcnMpIHtcbiAgICAgIGl0KGByb3VuZC10cmlwcyBldmVyeSByYXcgYW1vdW50IHRocm91Z2ggVUkgYXQgbXVsdGlwbGllciAke211bHRpcGxpZXJ9YCwgZnVuY3Rpb24gKCkge1xuICAgICAgICBmb3IgKGNvbnN0IHJhdyBvZiByYXdBbW91bnRzKSB7XG4gICAgICAgICAgY29uc3QgdWkgPSByYXdUb1VpQW1vdW50U3RyaW5nKHJhdywgbXVsdGlwbGllciwgOSk7XG4gICAgICAgICAgdWlBbW91bnRUb1Jhdyh1aSwgbXVsdGlwbGllciwgOSkuc2hvdWxkLmVxdWFsKHJhdyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGl0KCdyb3VuZC10cmlwcyBhdCBkZWNpbWFscyBvdGhlciB0aGFuIDknLCBmdW5jdGlvbiAoKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlY2ltYWxzIG9mIFswLCAyLCA2LCAxOF0pIHtcbiAgICAgICAgZm9yIChjb25zdCByYXcgb2YgcmF3QW1vdW50cykge1xuICAgICAgICAgIGNvbnN0IHVpID0gcmF3VG9VaUFtb3VudFN0cmluZyhyYXcsICcwLjAwMScsIGRlY2ltYWxzKTtcbiAgICAgICAgICB1aUFtb3VudFRvUmF3KHVpLCAnMC4wMDEnLCBkZWNpbWFscykuc2hvdWxkLmVxdWFsKHJhdyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decodeV1Message.d.ts","sourceRoot":"","sources":["../../../../../test/unit/serialization/decodeV1Message.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
require("should");
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const message_1 = require("../../../src/lib/serialization/codecs/v1/message");
|
|
6
|
+
const config_1 = require("../../../src/lib/serialization/codecs/v1/config");
|
|
7
|
+
const A = '3h1zGmCwsRJn5kU4LdYD8QfUoXjW8YqZcZsRsYxVvNpq';
|
|
8
|
+
const B = '9xQeWvGcCvsftH8sN4jWQcBpkT2yLdMfZqNpVxKjRwSb';
|
|
9
|
+
const BLOCKHASH = 'GHtXQBsoZHVnNFa9YevAzFr17DJjgHXk3ycTKD5xD3Zi';
|
|
10
|
+
function sampleMessage() {
|
|
11
|
+
const config = (0, config_1.encodeConfigMaskAndValues)({
|
|
12
|
+
computeUnitLimit: 200000,
|
|
13
|
+
heapSize: 32768,
|
|
14
|
+
loadedAccountsDataSizeLimit: 65536,
|
|
15
|
+
priorityFee: 5000,
|
|
16
|
+
});
|
|
17
|
+
return (0, message_1.encodeV1Message)({
|
|
18
|
+
header: { numSignerAccounts: 1, numReadonlySignerAccounts: 0, numReadonlyNonSignerAccounts: 1 },
|
|
19
|
+
configMask: config.mask,
|
|
20
|
+
configValues: config.values,
|
|
21
|
+
blockhash: BLOCKHASH,
|
|
22
|
+
staticAccounts: [A, B],
|
|
23
|
+
compiledInstructions: [{ programAddressIndex: 1, accountIndices: [0, 1], data: new Uint8Array([1, 2, 3]) }],
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
describe('decodeV1Message', () => {
|
|
27
|
+
it('round-trips an encoded v1 message', () => {
|
|
28
|
+
const bytes = sampleMessage();
|
|
29
|
+
const decoded = (0, message_1.decodeV1Message)(bytes);
|
|
30
|
+
decoded.header.numSignerAccounts.should.equal(1);
|
|
31
|
+
decoded.header.numReadonlySignerAccounts.should.equal(0);
|
|
32
|
+
decoded.header.numReadonlyNonSignerAccounts.should.equal(1);
|
|
33
|
+
decoded.configMask.should.equal(0b11 | 0b100 | 0b1000 | 0b10000);
|
|
34
|
+
decoded.configValues.should.eql([
|
|
35
|
+
{ kind: 'u64', value: 5000n },
|
|
36
|
+
{ kind: 'u32', value: 200000 },
|
|
37
|
+
{ kind: 'u32', value: 65536 },
|
|
38
|
+
{ kind: 'u32', value: 32768 },
|
|
39
|
+
]);
|
|
40
|
+
decoded.blockhash.should.equal(BLOCKHASH);
|
|
41
|
+
decoded.staticAccounts.should.eql([A, B]);
|
|
42
|
+
decoded.compiledInstructions.should.eql([
|
|
43
|
+
{ programAddressIndex: 1, accountIndices: [0, 1], data: new Uint8Array([1, 2, 3]) },
|
|
44
|
+
]);
|
|
45
|
+
decoded.byteLength.should.equal(bytes.length);
|
|
46
|
+
});
|
|
47
|
+
it('rejects an unknown config mask bit', () => {
|
|
48
|
+
const bytes = sampleMessage();
|
|
49
|
+
bytes[4] = 0xff;
|
|
50
|
+
(() => (0, message_1.decodeV1Message)(bytes)).should.throw(sdk_core_1.BuildTransactionError, { message: /Unknown config mask/ });
|
|
51
|
+
});
|
|
52
|
+
it('rejects an out-of-range program index', () => {
|
|
53
|
+
const bytes = sampleMessage();
|
|
54
|
+
const programIdxByte = 42 + 2 * 32 + 4 + 8 + 4 + 4;
|
|
55
|
+
bytes[programIdxByte] = 0xff;
|
|
56
|
+
(() => (0, message_1.decodeV1Message)(bytes)).should.throw(sdk_core_1.BuildTransactionError, { message: /program index/ });
|
|
57
|
+
});
|
|
58
|
+
it('rejects a truncated message', () => {
|
|
59
|
+
const bytes = sampleMessage();
|
|
60
|
+
(() => (0, message_1.decodeV1Message)(bytes.subarray(0, bytes.length - 1))).should.throw(sdk_core_1.BuildTransactionError);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb2RlVjFNZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3NlcmlhbGl6YXRpb24vZGVjb2RlVjFNZXNzYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsa0JBQWdCO0FBQ2hCLG1EQUE2RDtBQUM3RCw4RUFBb0c7QUFDcEcsNEVBQTRGO0FBRTVGLE1BQU0sQ0FBQyxHQUFHLDhDQUE4QyxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxHQUFHLDhDQUE4QyxDQUFDO0FBQ3pELE1BQU0sU0FBUyxHQUFHLDhDQUE4QyxDQUFDO0FBRWpFLFNBQVMsYUFBYTtJQUNwQixNQUFNLE1BQU0sR0FBRyxJQUFBLGtDQUF5QixFQUFDO1FBQ3ZDLGdCQUFnQixFQUFFLE1BQU87UUFDekIsUUFBUSxFQUFFLEtBQU07UUFDaEIsMkJBQTJCLEVBQUUsS0FBTTtRQUNuQyxXQUFXLEVBQUUsSUFBSztLQUNuQixDQUFDLENBQUM7SUFDSCxPQUFPLElBQUEseUJBQWUsRUFBQztRQUNyQixNQUFNLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLEVBQUUseUJBQXlCLEVBQUUsQ0FBQyxFQUFFLDRCQUE0QixFQUFFLENBQUMsRUFBRTtRQUMvRixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUk7UUFDdkIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxNQUFNO1FBQzNCLFNBQVMsRUFBRSxTQUFTO1FBQ3BCLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsb0JBQW9CLEVBQUUsQ0FBQyxFQUFFLG1CQUFtQixFQUFFLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7S0FDNUcsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFFBQVEs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QUFDLDZCQUE2QixFQUFFLEdBQUcsRUFBRTtRQUNyQyxNQUFNLEtBQUssR0FBRyxhQUFhLEVBQUUsQ0FBQztRQUM5QixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEseUJBQWUsRUFBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdDQUFxQixDQUFDLENBQUM7SUFDbkcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGRlY29kZVYxTWVzc2FnZSwgZW5jb2RlVjFNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9zZXJpYWxpemF0aW9uL2NvZGVjcy92MS9tZXNzYWdlJztcbmltcG9ydCB7IGVuY29kZUNvbmZpZ01hc2tBbmRWYWx1ZXMgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL3NlcmlhbGl6YXRpb24vY29kZWNzL3YxL2NvbmZpZyc7XG5cbmNvbnN0IEEgPSAnM2gxekdtQ3dzUkpuNWtVNExkWUQ4UWZVb1hqVzhZcVpjWnNSc1l4VnZOcHEnO1xuY29uc3QgQiA9ICc5eFFlV3ZHY0N2c2Z0SDhzTjRqV1FjQnBrVDJ5TGRNZlpxTnBWeEtqUndTYic7XG5jb25zdCBCTE9DS0hBU0ggPSAnR0h0WFFCc29aSFZuTkZhOVlldkF6RnIxN0RKamdIWGszeWNUS0Q1eEQzWmknO1xuXG5mdW5jdGlvbiBzYW1wbGVNZXNzYWdlKCk6IFVpbnQ4QXJyYXkge1xuICBjb25zdCBjb25maWcgPSBlbmNvZGVDb25maWdNYXNrQW5kVmFsdWVzKHtcbiAgICBjb21wdXRlVW5pdExpbWl0OiAyMDBfMDAwLFxuICAgIGhlYXBTaXplOiAzMl83NjgsXG4gICAgbG9hZGVkQWNjb3VudHNEYXRhU2l6ZUxpbWl0OiA2NV81MzYsXG4gICAgcHJpb3JpdHlGZWU6IDVfMDAwLFxuICB9KTtcbiAgcmV0dXJuIGVuY29kZVYxTWVzc2FnZSh7XG4gICAgaGVhZGVyOiB7IG51bVNpZ25lckFjY291bnRzOiAxLCBudW1SZWFkb25seVNpZ25lckFjY291bnRzOiAwLCBudW1SZWFkb25seU5vblNpZ25lckFjY291bnRzOiAxIH0sXG4gICAgY29uZmlnTWFzazogY29uZmlnLm1hc2ssXG4gICAgY29uZmlnVmFsdWVzOiBjb25maWcudmFsdWVzLFxuICAgIGJsb2NraGFzaDogQkxPQ0tIQVNILFxuICAgIHN0YXRpY0FjY291bnRzOiBbQSwgQl0sXG4gICAgY29tcGlsZWRJbnN0cnVjdGlvbnM6IFt7IHByb2dyYW1BZGRyZXNzSW5kZXg6IDEsIGFjY291bnRJbmRpY2VzOiBbMCwgMV0sIGRhdGE6IG5ldyBVaW50OEFycmF5KFsxLCAyLCAzXSkgfV0sXG4gIH0pO1xufVxuXG5kZXNjcmliZSgnZGVjb2RlVjFNZXNzYWdlJywgKCkgPT4ge1xuICBpdCgncm91bmQtdHJpcHMgYW4gZW5jb2RlZCB2MSBtZXNzYWdlJywgKCkgPT4ge1xuICAgIGNvbnN0IGJ5dGVzID0gc2FtcGxlTWVzc2FnZSgpO1xuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVWMU1lc3NhZ2UoYnl0ZXMpO1xuICAgIGRlY29kZWQuaGVhZGVyLm51bVNpZ25lckFjY291bnRzLnNob3VsZC5lcXVhbCgxKTtcbiAgICBkZWNvZGVkLmhlYWRlci5udW1SZWFkb25seVNpZ25lckFjY291bnRzLnNob3VsZC5lcXVhbCgwKTtcbiAgICBkZWNvZGVkLmhlYWRlci5udW1SZWFkb25seU5vblNpZ25lckFjY291bnRzLnNob3VsZC5lcXVhbCgxKTtcbiAgICBkZWNvZGVkLmNvbmZpZ01hc2suc2hvdWxkLmVxdWFsKDBiMTEgfCAwYjEwMCB8IDBiMTAwMCB8IDBiMTAwMDApO1xuICAgIGRlY29kZWQuY29uZmlnVmFsdWVzLnNob3VsZC5lcWwoW1xuICAgICAgeyBraW5kOiAndTY0JywgdmFsdWU6IDVfMDAwbiB9LFxuICAgICAgeyBraW5kOiAndTMyJywgdmFsdWU6IDIwMF8wMDAgfSxcbiAgICAgIHsga2luZDogJ3UzMicsIHZhbHVlOiA2NV81MzYgfSxcbiAgICAgIHsga2luZDogJ3UzMicsIHZhbHVlOiAzMl83NjggfSxcbiAgICBdKTtcbiAgICBkZWNvZGVkLmJsb2NraGFzaC5zaG91bGQuZXF1YWwoQkxPQ0tIQVNIKTtcbiAgICBkZWNvZGVkLnN0YXRpY0FjY291bnRzLnNob3VsZC5lcWwoW0EsIEJdKTtcbiAgICBkZWNvZGVkLmNvbXBpbGVkSW5zdHJ1Y3Rpb25zLnNob3VsZC5lcWwoW1xuICAgICAgeyBwcm9ncmFtQWRkcmVzc0luZGV4OiAxLCBhY2NvdW50SW5kaWNlczogWzAsIDFdLCBkYXRhOiBuZXcgVWludDhBcnJheShbMSwgMiwgM10pIH0sXG4gICAgXSk7XG4gICAgZGVjb2RlZC5ieXRlTGVuZ3RoLnNob3VsZC5lcXVhbChieXRlcy5sZW5ndGgpO1xuICB9KTtcblxuICBpdCgncmVqZWN0cyBhbiB1bmtub3duIGNvbmZpZyBtYXNrIGJpdCcsICgpID0+IHtcbiAgICBjb25zdCBieXRlcyA9IHNhbXBsZU1lc3NhZ2UoKTtcbiAgICBieXRlc1s0XSA9IDB4ZmY7XG4gICAgKCgpID0+IGRlY29kZVYxTWVzc2FnZShieXRlcykpLnNob3VsZC50aHJvdyhCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIHsgbWVzc2FnZTogL1Vua25vd24gY29uZmlnIG1hc2svIH0pO1xuICB9KTtcblxuICBpdCgncmVqZWN0cyBhbiBvdXQtb2YtcmFuZ2UgcHJvZ3JhbSBpbmRleCcsICgpID0+IHtcbiAgICBjb25zdCBieXRlcyA9IHNhbXBsZU1lc3NhZ2UoKTtcbiAgICBjb25zdCBwcm9ncmFtSWR4Qnl0ZSA9IDQyICsgMiAqIDMyICsgNCArIDggKyA0ICsgNDtcbiAgICBieXRlc1twcm9ncmFtSWR4Qnl0ZV0gPSAweGZmO1xuICAgICgoKSA9PiBkZWNvZGVWMU1lc3NhZ2UoYnl0ZXMpKS5zaG91bGQudGhyb3coQnVpbGRUcmFuc2FjdGlvbkVycm9yLCB7IG1lc3NhZ2U6IC9wcm9ncmFtIGluZGV4LyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3JlamVjdHMgYSB0cnVuY2F0ZWQgbWVzc2FnZScsICgpID0+IHtcbiAgICBjb25zdCBieXRlcyA9IHNhbXBsZU1lc3NhZ2UoKTtcbiAgICAoKCkgPT4gZGVjb2RlVjFNZXNzYWdlKGJ5dGVzLnN1YmFycmF5KDAsIGJ5dGVzLmxlbmd0aCAtIDEpKSkuc2hvdWxkLnRocm93KEJ1aWxkVHJhbnNhY3Rpb25FcnJvcik7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseWireTransaction.d.ts","sourceRoot":"","sources":["../../../../../test/unit/serialization/parseWireTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|