@bitgo-beta/sdk-coin-sol 7.6.4-beta.31 → 7.6.4-beta.310
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/bigint-buffer-guard.d.ts.map +1 -0
- package/dist/cjs/src/bigint-buffer-guard.js +29 -0
- package/dist/cjs/src/config/token2022StaticConfig.d.ts.map +1 -0
- package/dist/cjs/src/config/token2022StaticConfig.js +50 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +1 -1
- package/dist/cjs/src/lib/ataInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/ataInitializationBuilder.js +196 -0
- package/dist/cjs/src/lib/closeAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/closeAtaBuilder.js +69 -0
- package/dist/{src → cjs/src}/lib/constants.d.ts +24 -0
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +196 -0
- package/dist/cjs/src/lib/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/customInstructionBuilder.js +289 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts +21 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/src/lib/explainTransactionWasm.js +264 -0
- package/dist/{src → cjs/src}/lib/iface.d.ts +20 -2
- package/dist/cjs/src/lib/iface.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface.js +7 -0
- package/dist/{src → cjs/src}/lib/index.d.ts +1 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/index.js +4 -2
- package/dist/{src → cjs/src}/lib/instructionParamsFactory.d.ts +1 -0
- package/dist/cjs/src/lib/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/instructionParamsFactory.js +1059 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.d.ts.map +1 -0
- package/dist/cjs/src/lib/jitoStakePoolOperations.js +200 -0
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +63 -0
- package/dist/cjs/src/lib/messages/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/messages/index.js +1 -1
- package/dist/cjs/src/lib/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/messages/messageBuilderFactory.js +19 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts +25 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/recoverNestedAtaBuilder.js +90 -0
- package/dist/cjs/src/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/solInstructionFactory.js +595 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingActivateBuilder.js +120 -0
- package/dist/cjs/src/lib/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingAuthorizeBuilder.js +89 -0
- package/dist/cjs/src/lib/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDeactivateBuilder.js +208 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingDelegateBuilder.js +120 -0
- package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingRawMsgAuthorizeBuilder.js +110 -0
- package/dist/cjs/src/lib/stakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingWithdrawBuilder.js +78 -0
- package/dist/cjs/src/lib/token2022Config.d.ts.map +1 -0
- package/dist/cjs/src/lib/token2022Config.js +27 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.js +188 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +612 -0
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +380 -0
- package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +5 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +209 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +70 -0
- package/dist/cjs/src/lib/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilderV2.js +210 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +595 -0
- package/dist/cjs/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/walletInitializationBuilder.js +71 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +15 -0
- package/dist/{src → cjs/src}/sol.d.ts +40 -0
- package/dist/cjs/src/sol.d.ts.map +1 -0
- package/dist/cjs/src/sol.js +1402 -0
- package/dist/cjs/src/solToken.d.ts.map +1 -0
- package/dist/cjs/src/solToken.js +69 -0
- package/dist/cjs/src/tsol.d.ts.map +1 -0
- package/dist/cjs/src/tsol.js +24 -0
- package/dist/{test → cjs/test}/fixtures/sol.d.ts.map +1 -1
- package/dist/cjs/test/fixtures/sol.js +1433 -0
- package/dist/{test → cjs/test}/resources/sol.d.ts +27 -27
- package/dist/cjs/test/resources/sol.d.ts.map +1 -0
- package/dist/cjs/test/resources/sol.js +320 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts +5 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/test/unit/explainTransactionWasm.js +26 -0
- package/dist/cjs/test/unit/fixtures/solBackupKey.d.ts.map +1 -0
- package/dist/cjs/test/unit/fixtures/solBackupKey.js +8 -0
- package/dist/cjs/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/getBuilderFactory.js +10 -0
- package/dist/cjs/test/unit/instructionParamsFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/instructionParamsFactory.js +412 -0
- package/dist/cjs/test/unit/instructionParamsFactory.staking.d.ts.map +1 -0
- package/dist/cjs/test/unit/instructionParamsFactory.staking.js +1059 -0
- package/dist/cjs/test/unit/jitoWasmVerification.d.ts +2 -0
- package/dist/cjs/test/unit/jitoWasmVerification.d.ts.map +1 -0
- package/dist/cjs/test/unit/jitoWasmVerification.js +78 -0
- package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
- package/dist/cjs/test/unit/keyPair.js +177 -0
- package/dist/cjs/test/unit/messages/messageBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/messages/messageBuilderFactory.js +118 -0
- package/dist/cjs/test/unit/messages/simpleMessageBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/messages/simpleMessageBuilder.js +194 -0
- package/dist/{test → cjs/test}/unit/sol.d.ts.map +1 -1
- package/dist/cjs/test/unit/sol.js +3326 -0
- package/dist/cjs/test/unit/solInstructionFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/solInstructionFactory.js +454 -0
- package/dist/cjs/test/unit/solToken.d.ts.map +1 -0
- package/dist/cjs/test/unit/solToken.js +31 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +1108 -0
- package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/StakingWithdrawBuilder.js +202 -0
- package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/ataInitBuilder.js +471 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/customInstructionBuilder.js +413 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingActivateBuilder.js +430 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +157 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDeactivateBuilder.js +384 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingDelegateBuilder.js +224 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +259 -0
- package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/tokenTransferBuilder.js +787 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilder.js +495 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +286 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilderV2.js +862 -0
- package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/walletInitBuilder.js +259 -0
- package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
- package/dist/cjs/test/unit/utils.js +517 -0
- package/dist/cjs/test/unit/versionedTransaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/versionedTransaction.js +207 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/bigint-buffer-guard.d.ts +1 -0
- package/dist/esm/config/token2022StaticConfig.d.ts +3 -0
- package/dist/esm/config/token2022StaticConfig.js +47 -0
- package/dist/esm/index.d.ts +7 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/lib/ataInitializationBuilder.d.ts +47 -0
- package/dist/esm/lib/ataInitializationBuilder.js +156 -0
- package/dist/esm/lib/closeAtaBuilder.d.ts +19 -0
- package/dist/esm/lib/closeAtaBuilder.js +62 -0
- package/dist/esm/lib/constants.d.ts +164 -0
- package/dist/esm/lib/constants.d.ts.map +1 -0
- package/dist/esm/lib/constants.js +193 -0
- package/dist/esm/lib/customInstructionBuilder.d.ts +72 -0
- package/dist/esm/lib/customInstructionBuilder.js +282 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts +21 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/esm/lib/explainTransactionWasm.js +261 -0
- package/dist/esm/lib/iface.d.ts +262 -0
- package/dist/esm/lib/iface.d.ts.map +1 -0
- package/dist/esm/lib/iface.js +3 -0
- package/dist/esm/lib/index.d.ts +23 -0
- package/dist/{src → esm}/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +23 -0
- package/dist/esm/lib/instructionParamsFactory.d.ts +13 -0
- package/dist/{src → esm}/lib/instructionParamsFactory.d.ts.map +1 -1
- package/dist/esm/lib/instructionParamsFactory.js +1052 -0
- package/dist/esm/lib/jitoStakePoolOperations.d.ts +113 -0
- package/dist/esm/lib/jitoStakePoolOperations.js +189 -0
- package/dist/esm/lib/keyPair.d.ts +26 -0
- package/dist/esm/lib/keyPair.js +59 -0
- package/dist/esm/lib/messages/index.d.ts +2 -0
- package/dist/esm/lib/messages/index.js +2 -0
- package/dist/esm/lib/messages/messageBuilderFactory.d.ts +7 -0
- package/dist/{src → esm}/lib/messages/messageBuilderFactory.js +5 -9
- package/dist/esm/lib/recoverNestedAtaBuilder.d.ts +25 -0
- package/dist/esm/lib/recoverNestedAtaBuilder.d.ts.map +1 -0
- package/dist/esm/lib/recoverNestedAtaBuilder.js +83 -0
- package/dist/esm/lib/solInstructionFactory.d.ts +10 -0
- package/dist/esm/lib/solInstructionFactory.d.ts.map +1 -0
- package/dist/esm/lib/solInstructionFactory.js +589 -0
- package/dist/esm/lib/stakingActivateBuilder.d.ts +59 -0
- package/dist/esm/lib/stakingActivateBuilder.js +113 -0
- package/dist/esm/lib/stakingAuthorizeBuilder.d.ts +43 -0
- package/dist/esm/lib/stakingAuthorizeBuilder.js +82 -0
- package/dist/esm/lib/stakingDeactivateBuilder.d.ts +81 -0
- package/dist/{src → esm}/lib/stakingDeactivateBuilder.js +31 -38
- package/dist/esm/lib/stakingDelegateBuilder.d.ts +42 -0
- package/dist/esm/lib/stakingDelegateBuilder.js +113 -0
- package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.d.ts +33 -0
- package/dist/esm/lib/stakingRawMsgAuthorizeBuilder.js +103 -0
- package/dist/esm/lib/stakingWithdrawBuilder.d.ts +31 -0
- package/dist/esm/lib/stakingWithdrawBuilder.js +71 -0
- package/dist/esm/lib/token2022Config.d.ts +44 -0
- package/dist/esm/lib/token2022Config.js +23 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts +41 -0
- package/dist/esm/lib/tokenTransferBuilder.js +181 -0
- package/dist/esm/lib/transaction.d.ts +103 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +605 -0
- package/dist/esm/lib/transactionBuilder.d.ts +128 -0
- package/dist/esm/lib/transactionBuilder.js +373 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +120 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilderFactory.js +205 -0
- package/dist/esm/lib/transferBuilder.d.ts +26 -0
- package/dist/esm/lib/transferBuilder.js +63 -0
- package/dist/esm/lib/transferBuilderV2.d.ts +43 -0
- package/dist/esm/lib/transferBuilderV2.js +203 -0
- package/dist/esm/lib/utils.d.ts +200 -0
- package/dist/{src → esm}/lib/utils.d.ts.map +1 -1
- package/dist/esm/lib/utils.js +558 -0
- package/dist/esm/lib/walletInitializationBuilder.d.ts +26 -0
- package/dist/esm/lib/walletInitializationBuilder.js +64 -0
- package/dist/esm/register.d.ts +3 -0
- package/dist/esm/register.js +11 -0
- package/dist/esm/sol.d.ts +267 -0
- package/dist/esm/sol.d.ts.map +1 -0
- package/dist/esm/sol.js +1361 -0
- package/dist/esm/solToken.d.ts +37 -0
- package/dist/esm/solToken.js +65 -0
- package/dist/esm/tsol.d.ts +11 -0
- package/dist/esm/tsol.js +20 -0
- package/package.json +34 -15
- package/dist/src/config/token2022StaticConfig.js +0 -50
- package/dist/src/lib/ataInitializationBuilder.js +0 -196
- package/dist/src/lib/closeAtaBuilder.js +0 -69
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -171
- package/dist/src/lib/customInstructionBuilder.js +0 -289
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -7
- package/dist/src/lib/instructionParamsFactory.js +0 -1036
- package/dist/src/lib/jitoStakePoolOperations.js +0 -200
- package/dist/src/lib/keyPair.js +0 -63
- package/dist/src/lib/solInstructionFactory.d.ts.map +0 -1
- package/dist/src/lib/solInstructionFactory.js +0 -572
- package/dist/src/lib/stakingActivateBuilder.js +0 -120
- package/dist/src/lib/stakingAuthorizeBuilder.js +0 -89
- package/dist/src/lib/stakingDelegateBuilder.js +0 -120
- package/dist/src/lib/stakingRawMsgAuthorizeBuilder.js +0 -110
- package/dist/src/lib/stakingWithdrawBuilder.js +0 -78
- package/dist/src/lib/token2022Config.js +0 -27
- package/dist/src/lib/tokenTransferBuilder.js +0 -188
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -595
- package/dist/src/lib/transactionBuilder.js +0 -380
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -202
- package/dist/src/lib/transferBuilder.js +0 -70
- package/dist/src/lib/transferBuilderV2.js +0 -210
- package/dist/src/lib/utils.js +0 -589
- package/dist/src/lib/walletInitializationBuilder.js +0 -71
- package/dist/src/register.js +0 -15
- package/dist/src/sol.d.ts.map +0 -1
- package/dist/src/sol.js +0 -1285
- package/dist/src/solToken.js +0 -69
- package/dist/src/tsol.js +0 -24
- package/dist/test/fixtures/sol.js +0 -1433
- package/dist/test/resources/sol.d.ts.map +0 -1
- package/dist/test/resources/sol.js +0 -320
- package/dist/test/unit/fixtures/solBackupKey.d.ts.map +0 -1
- package/dist/test/unit/fixtures/solBackupKey.js +0 -8
- package/dist/test/unit/getBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/getBuilderFactory.js +0 -10
- package/dist/test/unit/instructionParamsFactory.d.ts.map +0 -1
- package/dist/test/unit/instructionParamsFactory.js +0 -412
- package/dist/test/unit/instructionParamsFactory.staking.d.ts.map +0 -1
- package/dist/test/unit/instructionParamsFactory.staking.js +0 -1059
- package/dist/test/unit/keyPair.js +0 -177
- package/dist/test/unit/messages/messageBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/messages/messageBuilderFactory.js +0 -118
- package/dist/test/unit/messages/simpleMessageBuilder.d.ts.map +0 -1
- package/dist/test/unit/messages/simpleMessageBuilder.js +0 -194
- package/dist/test/unit/sol.js +0 -3108
- package/dist/test/unit/solInstructionFactory.d.ts.map +0 -1
- package/dist/test/unit/solInstructionFactory.js +0 -454
- package/dist/test/unit/solToken.d.ts.map +0 -1
- package/dist/test/unit/solToken.js +0 -31
- package/dist/test/unit/transaction.d.ts.map +0 -1
- package/dist/test/unit/transaction.js +0 -983
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/StakingWithdrawBuilder.js +0 -202
- package/dist/test/unit/transactionBuilder/ataInitBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/ataInitBuilder.js +0 -471
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/customInstructionBuilder.js +0 -413
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingActivateBuilder.js +0 -430
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingAuthorizeBuilder.js +0 -157
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingDeactivateBuilder.js +0 -384
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingDelegateBuilder.js +0 -224
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.js +0 -259
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/tokenTransferBuilder.js +0 -787
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +0 -495
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -286
- package/dist/test/unit/transactionBuilder/transferBuilderV2.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilderV2.js +0 -862
- package/dist/test/unit/transactionBuilder/walletInitBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/walletInitBuilder.js +0 -259
- package/dist/test/unit/utils.js +0 -517
- package/dist/test/unit/versionedTransaction.d.ts.map +0 -1
- package/dist/test/unit/versionedTransaction.js +0 -207
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/bigint-buffer-guard.d.ts +0 -0
- /package/dist/{src → cjs/src}/config/token2022StaticConfig.d.ts +0 -0
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/ataInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/closeAtaBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/customInstructionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/jitoStakePoolOperations.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/messages/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/messages/messageBuilderFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/solInstructionFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingActivateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingAuthorizeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingDeactivateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingDelegateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingWithdrawBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/token2022Config.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilderV2.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/walletInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/register.d.ts +0 -0
- /package/dist/{src → cjs/src}/solToken.d.ts +0 -0
- /package/dist/{src → cjs/src}/tsol.d.ts +0 -0
- /package/dist/{test → cjs/test}/fixtures/sol.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/fixtures/solBackupKey.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/getBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/instructionParamsFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/instructionParamsFactory.staking.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/messages/messageBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/messages/simpleMessageBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/sol.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/solInstructionFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/solToken.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/StakingWithdrawBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/ataInitBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/customInstructionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingActivateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingAuthorizeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDeactivateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingDelegateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingRawMsgAuthorizeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilderV2.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/walletInitBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/versionedTransaction.d.ts +0 -0
- /package/dist/{src → esm}/bigint-buffer-guard.d.ts.map +0 -0
- /package/dist/{src → esm}/bigint-buffer-guard.js +0 -0
- /package/dist/{src → esm}/config/token2022StaticConfig.d.ts.map +0 -0
- /package/dist/{src → esm}/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/ataInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/closeAtaBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/customInstructionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/jitoStakePoolOperations.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/messages/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/messages/messageBuilderFactory.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingActivateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingDeactivateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingDelegateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingRawMsgAuthorizeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingWithdrawBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/token2022Config.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tokenTransferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilderV2.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/walletInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/register.d.ts.map +0 -0
- /package/dist/{src → esm}/solToken.d.ts.map +0 -0
- /package/dist/{src → esm}/tsol.d.ts.map +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jitoWasmVerification.d.ts","sourceRoot":"","sources":["../../../../test/unit/jitoWasmVerification.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
/**
|
|
37
|
+
* Verification test: Jito WASM parsing works in BitGoJS
|
|
38
|
+
*/
|
|
39
|
+
const should = __importStar(require("should"));
|
|
40
|
+
const sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
41
|
+
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
42
|
+
const src_1 = require("../../src");
|
|
43
|
+
describe('Jito WASM Verification', function () {
|
|
44
|
+
let bitgo;
|
|
45
|
+
let tsol;
|
|
46
|
+
// From BitGoJS test/resources/sol.ts - JITO_STAKING_ACTIVATE_SIGNED_TX
|
|
47
|
+
const JITO_TX_BASE64 = 'AdOUrFCk9yyhi1iB1EfOOXHOeiaZGQnLRwnypt+be8r9lrYMx8w7/QTnithrqcuBApg1ctJAlJMxNZ925vMP2Q0BAAQKReV5vPklPPaLR9/x+zo6XCwhusWyPAmuEqbgVWvwi0Ecg6pe+BOG2OETfAVS9ftz6va1oE4onLBolJ2N+ZOOhJ6naP7fZEyKrpuOIYit0GvFUPv3Fsgiuc5jx3g9lS4fCeaj/uz5kDLhwd9rlyLcs2NOe440QJNrw0sMwcjrUh/80UHpgyyvEK2RdJXKDycbWyk81HAn6nNwB+1A6zmgvQSKPgjDtJW+F/RUJ9ib7FuAx+JpXBhk12dD2zm+00bWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU5Z4kwFGooUp7HpeX8OEs36dJAhZlMZWmpRKm8WZgKwaBTtTK9ooXRnL9rIYDGmPoTqFe+h1EtyKT9tvbABZQBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQEICgUHAgABAwEEBgkJDuCTBAAAAAAA';
|
|
48
|
+
before(function () {
|
|
49
|
+
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
|
|
50
|
+
bitgo.safeRegister('tsol', src_1.Tsol.createInstance);
|
|
51
|
+
bitgo.initializeTestVars();
|
|
52
|
+
tsol = bitgo.coin('tsol');
|
|
53
|
+
});
|
|
54
|
+
it('should parse Jito DepositSol transaction via WASM', function () {
|
|
55
|
+
// Verify the raw WASM parsing returns StakePoolDepositSol
|
|
56
|
+
const { Transaction, parseTransaction } = require('@bitgo/wasm-solana');
|
|
57
|
+
const txBytes = Buffer.from(JITO_TX_BASE64, 'base64');
|
|
58
|
+
const tx = Transaction.fromBytes(txBytes);
|
|
59
|
+
const wasmParsed = parseTransaction(tx);
|
|
60
|
+
// Verify WASM returns StakePoolDepositSol instruction
|
|
61
|
+
const depositSolInstr = wasmParsed.instructionsData.find((i) => i.type === 'StakePoolDepositSol');
|
|
62
|
+
should.exist(depositSolInstr, 'WASM should parse StakePoolDepositSol instruction');
|
|
63
|
+
depositSolInstr.lamports.should.equal(300000n);
|
|
64
|
+
// Now test explainTransactionWithWasm - should map to StakingActivate
|
|
65
|
+
const explained = tsol.explainTransactionWithWasm({
|
|
66
|
+
txBase64: JITO_TX_BASE64,
|
|
67
|
+
feeInfo: { fee: '5000' },
|
|
68
|
+
});
|
|
69
|
+
// Verify the transaction is correctly interpreted
|
|
70
|
+
should.exist(explained.id);
|
|
71
|
+
explained.type.should.equal('StakingActivate');
|
|
72
|
+
explained.outputAmount.should.equal('300000');
|
|
73
|
+
explained.outputs.length.should.equal(1);
|
|
74
|
+
explained.outputs[0].address.should.equal('Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb');
|
|
75
|
+
explained.outputs[0].amount.should.equal('300000');
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaml0b1dhc21WZXJpZmljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvaml0b1dhc21WZXJpZmljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILCtDQUFpQztBQUNqQyxtREFBK0Q7QUFDL0QsaURBQStDO0FBQy9DLG1DQUFpQztBQUVqQyxRQUFRLENBQUMsd0JBQXdCLEVBQUU7SUFDakMsSUFBSSxLQUFtQixDQUFDO0lBQ3hCLElBQUksSUFBVSxDQUFDO0lBRWYsdUVBQXVFO0lBQ3ZFLE1BQU0sY0FBYyxHQUNsQixrbEJBQWtsQixDQUFDO0lBRXJsQixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQVMsQ0FBQztJQUNwQyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtREFBbUQsRUFBRTtRQUN0RCwwREFBMEQ7UUFDMUQsTUFBTSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sRUFBRSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUMsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEMsc0RBQXNEO1FBQ3RELE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLENBQUM7UUFDcEgsTUFBTSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsbURBQW1ELENBQUMsQ0FBQztRQUNuRixlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0Msc0VBQXNFO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQztZQUNoRCxRQUFRLEVBQUUsY0FBYztZQUN4QixPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO1NBQ3pCLENBQUMsQ0FBQztRQUVILGtEQUFrRDtRQUNsRCxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMvQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDOUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6QyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7UUFDekYsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWZXJpZmljYXRpb24gdGVzdDogSml0byBXQVNNIHBhcnNpbmcgd29ya3MgaW4gQml0R29KU1xuICovXG5pbXBvcnQgKiBhcyBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLXRlc3QnO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstYXBpJztcbmltcG9ydCB7IFRzb2wgfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5kZXNjcmliZSgnSml0byBXQVNNIFZlcmlmaWNhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCB0c29sOiBUc29sO1xuXG4gIC8vIEZyb20gQml0R29KUyB0ZXN0L3Jlc291cmNlcy9zb2wudHMgLSBKSVRPX1NUQUtJTkdfQUNUSVZBVEVfU0lHTkVEX1RYXG4gIGNvbnN0IEpJVE9fVFhfQkFTRTY0ID1cbiAgICAnQWRPVXJGQ2s5eXloaTFpQjFFZk9PWEhPZWlhWkdRbkxSd255cHQrYmU4cjlscllNeDh3Ny9RVG5pdGhycWN1QkFwZzFjdEpBbEpNeE5aOTI1dk1QMlEwQkFBUUtSZVY1dlBrbFBQYUxSOS94K3pvNlhDd2h1c1d5UEFtdUVxYmdWV3Z3aTBFY2c2cGUrQk9HMk9FVGZBVlM5ZnR6NnZhMW9FNG9uTEJvbEoyTitaT09oSjZuYVA3ZlpFeUtycHVPSVlpdDBHdkZVUHYzRnNnaXVjNWp4M2c5bFM0ZkNlYWovdXo1a0RMaHdkOXJseUxjczJOT2U0NDBRSk5ydzBzTXdjanJVaC84MFVIcGd5eXZFSzJSZEpYS0R5Y2JXeWs4MUhBbjZuTndCKzFBNnptZ3ZRU0tQZ2pEdEpXK0YvUlVKOWliN0Z1QXgrSnBYQmhrMTJkRDJ6bSswMGJXQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQlU1WjRrd0ZHb29VcDdIcGVYOE9FczM2ZEpBaFpsTVpXbXBSS204V1pnS3dhQlR0VEs5b29YUm5MOXJJWURHbVBvVHFGZStoMUV0eUtUOXR2YkFCWlFCdDMyNGRkbG9aUFp5K0ZHenV0NXJCeTBoZTFmV3plUk9vejFoWDcvQUtuak10cjVMNnZzNkxZLzk2UkFCZVg5L1pyNkZZZFd0aHhhbGZrRXM3alFnUUVJQ2dVSEFnQUJBd0VFQmdrSkR1Q1RCQUFBQUFBQSc7XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICd0ZXN0JyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3Rzb2wnLCBUc29sLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICB0c29sID0gYml0Z28uY29pbigndHNvbCcpIGFzIFRzb2w7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFyc2UgSml0byBEZXBvc2l0U29sIHRyYW5zYWN0aW9uIHZpYSBXQVNNJywgZnVuY3Rpb24gKCkge1xuICAgIC8vIFZlcmlmeSB0aGUgcmF3IFdBU00gcGFyc2luZyByZXR1cm5zIFN0YWtlUG9vbERlcG9zaXRTb2xcbiAgICBjb25zdCB7IFRyYW5zYWN0aW9uLCBwYXJzZVRyYW5zYWN0aW9uIH0gPSByZXF1aXJlKCdAYml0Z28vd2FzbS1zb2xhbmEnKTtcbiAgICBjb25zdCB0eEJ5dGVzID0gQnVmZmVyLmZyb20oSklUT19UWF9CQVNFNjQsICdiYXNlNjQnKTtcbiAgICBjb25zdCB0eCA9IFRyYW5zYWN0aW9uLmZyb21CeXRlcyh0eEJ5dGVzKTtcbiAgICBjb25zdCB3YXNtUGFyc2VkID0gcGFyc2VUcmFuc2FjdGlvbih0eCk7XG5cbiAgICAvLyBWZXJpZnkgV0FTTSByZXR1cm5zIFN0YWtlUG9vbERlcG9zaXRTb2wgaW5zdHJ1Y3Rpb25cbiAgICBjb25zdCBkZXBvc2l0U29sSW5zdHIgPSB3YXNtUGFyc2VkLmluc3RydWN0aW9uc0RhdGEuZmluZCgoaTogeyB0eXBlOiBzdHJpbmcgfSkgPT4gaS50eXBlID09PSAnU3Rha2VQb29sRGVwb3NpdFNvbCcpO1xuICAgIHNob3VsZC5leGlzdChkZXBvc2l0U29sSW5zdHIsICdXQVNNIHNob3VsZCBwYXJzZSBTdGFrZVBvb2xEZXBvc2l0U29sIGluc3RydWN0aW9uJyk7XG4gICAgZGVwb3NpdFNvbEluc3RyLmxhbXBvcnRzLnNob3VsZC5lcXVhbCgzMDAwMDBuKTtcblxuICAgIC8vIE5vdyB0ZXN0IGV4cGxhaW5UcmFuc2FjdGlvbldpdGhXYXNtIC0gc2hvdWxkIG1hcCB0byBTdGFraW5nQWN0aXZhdGVcbiAgICBjb25zdCBleHBsYWluZWQgPSB0c29sLmV4cGxhaW5UcmFuc2FjdGlvbldpdGhXYXNtKHtcbiAgICAgIHR4QmFzZTY0OiBKSVRPX1RYX0JBU0U2NCxcbiAgICAgIGZlZUluZm86IHsgZmVlOiAnNTAwMCcgfSxcbiAgICB9KTtcblxuICAgIC8vIFZlcmlmeSB0aGUgdHJhbnNhY3Rpb24gaXMgY29ycmVjdGx5IGludGVycHJldGVkXG4gICAgc2hvdWxkLmV4aXN0KGV4cGxhaW5lZC5pZCk7XG4gICAgZXhwbGFpbmVkLnR5cGUuc2hvdWxkLmVxdWFsKCdTdGFraW5nQWN0aXZhdGUnKTtcbiAgICBleHBsYWluZWQub3V0cHV0QW1vdW50LnNob3VsZC5lcXVhbCgnMzAwMDAwJyk7XG4gICAgZXhwbGFpbmVkLm91dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICBleHBsYWluZWQub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbCgnSml0bzRBUHlmNjQySlBaUHgzaEdjNldXSjh6UEt0UmJSczRQODE1QXdiYicpO1xuICAgIGV4cGxhaW5lZC5vdXRwdXRzWzBdLmFtb3VudC5zaG91bGQuZXF1YWwoJzMwMDAwMCcpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
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 assert_1 = __importDefault(require("assert"));
|
|
40
|
+
const src_1 = require("../../src");
|
|
41
|
+
const should_1 = __importDefault(require("should"));
|
|
42
|
+
const testData = __importStar(require("../resources/sol"));
|
|
43
|
+
const utils_1 = require("../../src/lib/utils");
|
|
44
|
+
describe('Sol KeyPair', function () {
|
|
45
|
+
const defaultSeed = { seed: testData.accountWithSeed.seed };
|
|
46
|
+
describe('should create a valid KeyPair', () => {
|
|
47
|
+
it('from an empty value', () => {
|
|
48
|
+
const keyPair = new src_1.KeyPair();
|
|
49
|
+
should_1.default.exists(keyPair.getKeys().prv);
|
|
50
|
+
should_1.default.exists(keyPair.getKeys().pub);
|
|
51
|
+
keyPair.getKeys().prv?.length.should.be.belowOrEqual(88);
|
|
52
|
+
keyPair.getKeys().prv?.length.should.be.aboveOrEqual(76);
|
|
53
|
+
keyPair.getKeys().pub.length.should.be.belowOrEqual(44);
|
|
54
|
+
keyPair.getKeys().pub.length.should.be.aboveOrEqual(32);
|
|
55
|
+
});
|
|
56
|
+
it('from a private key', () => {
|
|
57
|
+
const keyPair = new src_1.KeyPair({ prv: testData.accountWithSeed.privateKey.base58 });
|
|
58
|
+
should_1.default.equal(keyPair.getKeys().pub, testData.accountWithSeed.publicKey);
|
|
59
|
+
should_1.default.equal(keyPair.getKeys().prv, testData.accountWithSeed.privateKey.base58);
|
|
60
|
+
should_1.default.equal(keyPair.getKeys(true).pub, testData.accountWithSeed.publicKey);
|
|
61
|
+
should_1.default.deepEqual(keyPair.getKeys(true).prv, testData.accountWithSeed.privateKey.uint8Array);
|
|
62
|
+
});
|
|
63
|
+
it('from an public key', () => {
|
|
64
|
+
const keyPair = new src_1.KeyPair({ pub: testData.accountWithSeed.publicKey });
|
|
65
|
+
should_1.default.equal(keyPair.getKeys().pub, testData.accountWithSeed.publicKey);
|
|
66
|
+
});
|
|
67
|
+
it('should always generate and regenerate valid key pairs', () => {
|
|
68
|
+
for (let i = 0; i < 50; i++) {
|
|
69
|
+
const keyPair = new src_1.KeyPair();
|
|
70
|
+
(0, utils_1.isValidPublicKey)(keyPair.getKeys().pub).should.be.true();
|
|
71
|
+
(0, utils_1.isValidAddress)(keyPair.getAddress()).should.be.true();
|
|
72
|
+
const prv = keyPair.getKeys().prv;
|
|
73
|
+
should_1.default.exist(prv);
|
|
74
|
+
// verify key pair can be re-generated from private portion
|
|
75
|
+
const regeneratedKeyPairFromPrv = new src_1.KeyPair({ prv: prv });
|
|
76
|
+
regeneratedKeyPairFromPrv.getKeys().should.deepEqual(keyPair.getKeys());
|
|
77
|
+
regeneratedKeyPairFromPrv.getAddress().should.equal(keyPair.getAddress());
|
|
78
|
+
regeneratedKeyPairFromPrv.should.deepEqual(keyPair);
|
|
79
|
+
should_1.default.exist(regeneratedKeyPairFromPrv.getKeys().prv);
|
|
80
|
+
// verify key pair can be re-generated from public portion
|
|
81
|
+
const pub = keyPair.getKeys().pub;
|
|
82
|
+
const regeneratedKeyPairFromPub = new src_1.KeyPair({ pub: pub });
|
|
83
|
+
regeneratedKeyPairFromPub.getKeys().pub.should.deepEqual(keyPair.getKeys().pub);
|
|
84
|
+
regeneratedKeyPairFromPub.getAddress().should.equal(keyPair.getAddress());
|
|
85
|
+
should_1.default.not.exist(regeneratedKeyPairFromPub.getKeys().prv);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
describe('should fail to create a KeyPair', function () {
|
|
90
|
+
it('from invalid options', () => {
|
|
91
|
+
// @ts-expect-error Testing for an params, should throw error
|
|
92
|
+
(0, should_1.default)(() => new src_1.KeyPair({ random: 'random' })).throwError('Invalid key pair options');
|
|
93
|
+
});
|
|
94
|
+
it('from an invalid seed', () => {
|
|
95
|
+
const seed = { seed: Buffer.alloc(8) }; // Seed should be 512 bits (64 bytes)
|
|
96
|
+
assert_1.default.throws(() => new src_1.KeyPair(seed));
|
|
97
|
+
});
|
|
98
|
+
it('from an invalid public key', () => {
|
|
99
|
+
const source = {
|
|
100
|
+
pub: '01D63D',
|
|
101
|
+
};
|
|
102
|
+
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
103
|
+
});
|
|
104
|
+
it('from an invalid private key', () => {
|
|
105
|
+
const source = {
|
|
106
|
+
prv: '82A34E',
|
|
107
|
+
};
|
|
108
|
+
assert_1.default.throws(() => new src_1.KeyPair(source));
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe('getAddress', function () {
|
|
112
|
+
it('should get an address', () => {
|
|
113
|
+
const keyPair = new src_1.KeyPair(defaultSeed);
|
|
114
|
+
const address = keyPair.getAddress();
|
|
115
|
+
address.should.equal(testData.accountWithSeed.publicKey);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
describe('getKeys', function () {
|
|
119
|
+
it('should get public keys in base58 and private in Uint8Array', () => {
|
|
120
|
+
const keyPair = new src_1.KeyPair(defaultSeed);
|
|
121
|
+
const { prv, pub } = keyPair.getKeys(true);
|
|
122
|
+
prv?.should.deepEqual(testData.accountWithSeed.privateKey.uint8Array);
|
|
123
|
+
pub.should.equal(testData.accountWithSeed.publicKey);
|
|
124
|
+
});
|
|
125
|
+
it('should get private and public keys base58', () => {
|
|
126
|
+
const keyPair = new src_1.KeyPair(defaultSeed);
|
|
127
|
+
const { prv, pub } = keyPair.getKeys();
|
|
128
|
+
prv?.should.equal(testData.accountWithSeed.privateKey.base58);
|
|
129
|
+
pub.should.equal(testData.accountWithSeed.publicKey);
|
|
130
|
+
});
|
|
131
|
+
it('should get private and public keys for a random seed', () => {
|
|
132
|
+
const keyPair = new src_1.KeyPair();
|
|
133
|
+
const { prv, pub } = keyPair.getKeys();
|
|
134
|
+
should_1.default.exist(prv);
|
|
135
|
+
should_1.default.exist(pub);
|
|
136
|
+
});
|
|
137
|
+
});
|
|
138
|
+
describe('signMessage and verifySignature', function () {
|
|
139
|
+
const message = 'test message pls ignore';
|
|
140
|
+
it('should succeed to sign a msg ', () => {
|
|
141
|
+
const keyPair = new src_1.KeyPair({ prv: testData.accountWithSeed.privateKey.base58 });
|
|
142
|
+
const signedMessage = keyPair.signMessage(message);
|
|
143
|
+
signedMessage.should.deepEqual(testData.SIGNED_MESSAGE_SIGNATURE);
|
|
144
|
+
});
|
|
145
|
+
it('should fail to sign a msg if prv key is missing', () => {
|
|
146
|
+
const keyPair = new src_1.KeyPair({ pub: testData.pubKeys.validPubKeys[0] });
|
|
147
|
+
(0, should_1.default)(() => keyPair.signMessage(message)).throwError('Missing private key');
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe('verifySignature', function () {
|
|
151
|
+
it('should succeed to verify a signature', () => {
|
|
152
|
+
const keyPair = new src_1.KeyPair({ prv: testData.accountWithSeed.privateKey.base58 });
|
|
153
|
+
const signature = testData.SIGNED_MESSAGE_SIGNATURE;
|
|
154
|
+
const message = 'test message pls ignore';
|
|
155
|
+
keyPair.verifySignature(message, signature).should.equal(true);
|
|
156
|
+
});
|
|
157
|
+
it('should succeed to verify a signature if the msg is a UInt8Array', () => {
|
|
158
|
+
const keyPair = new src_1.KeyPair({ prv: testData.accountWithSeed.privateKey.base58 });
|
|
159
|
+
const signature = testData.SIGNED_MESSAGE_SIGNATURE;
|
|
160
|
+
const message = new Uint8Array(Buffer.from('test message pls ignore'));
|
|
161
|
+
keyPair.verifySignature(message, signature).should.equal(true);
|
|
162
|
+
});
|
|
163
|
+
it('should fail to verify a signature if the prv key is not correct', () => {
|
|
164
|
+
const keyPair = new src_1.KeyPair({ prv: testData.extraAccounts.prv1 });
|
|
165
|
+
const signature = testData.SIGNED_MESSAGE_SIGNATURE;
|
|
166
|
+
const message = 'test message pls ignore';
|
|
167
|
+
keyPair.verifySignature(message, signature).should.equal(false);
|
|
168
|
+
});
|
|
169
|
+
it('should fail to verify a signature if the message is not correct', () => {
|
|
170
|
+
const keyPair = new src_1.KeyPair({ prv: testData.accountWithSeed.privateKey.base58 });
|
|
171
|
+
const signature = testData.SIGNED_MESSAGE_SIGNATURE;
|
|
172
|
+
const message = 'incorrect msg';
|
|
173
|
+
keyPair.verifySignature(message, signature).should.equal(false);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1DQUFvQztBQUNwQyxvREFBNEI7QUFDNUIsMkRBQTZDO0FBQzdDLCtDQUF1RTtBQUV2RSxRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLE1BQU0sV0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFNUQsUUFBUSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtRQUM3QyxFQUFFLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO1lBQzdCLE1BQU0sT0FBTyxHQUFHLElBQUksYUFBTyxFQUFFLENBQUM7WUFDOUIsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLGdCQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6RCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4RCxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLE1B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cnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vcmVzb3VyY2VzL3NvbCc7XG5pbXBvcnQgeyBpc1ZhbGlkUHVibGljS2V5LCBpc1ZhbGlkQWRkcmVzcyB9IGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgnU29sIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGRlZmF1bHRTZWVkID0geyBzZWVkOiB0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQuc2VlZCB9O1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgY3JlYXRlIGEgdmFsaWQgS2V5UGFpcicsICgpID0+IHtcbiAgICBpdCgnZnJvbSBhbiBlbXB0eSB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlQYWlyLmdldEtleXMoKS5wcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAga2V5UGFpci5nZXRLZXlzKCkucHJ2Py5sZW5ndGguc2hvdWxkLmJlLmJlbG93T3JFcXVhbCg4OCk7XG4gICAgICBrZXlQYWlyLmdldEtleXMoKS5wcnY/Lmxlbmd0aC5zaG91bGQuYmUuYWJvdmVPckVxdWFsKDc2KTtcbiAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnB1Yi5sZW5ndGguc2hvdWxkLmJlLmJlbG93T3JFcXVhbCg0NCk7XG4gICAgICBrZXlQYWlyLmdldEtleXMoKS5wdWIubGVuZ3RoLnNob3VsZC5iZS5hYm92ZU9yRXF1YWwoMzIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYSBwcml2YXRlIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuYWNjb3VudFdpdGhTZWVkLnByaXZhdGVLZXkuYmFzZTU4IH0pO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1YiwgdGVzdERhdGEuYWNjb3VudFdpdGhTZWVkLnB1YmxpY0tleSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHJ2LCB0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHJpdmF0ZUtleS5iYXNlNTgpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cyh0cnVlKS5wdWIsIHRlc3REYXRhLmFjY291bnRXaXRoU2VlZC5wdWJsaWNLZXkpO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbChrZXlQYWlyLmdldEtleXModHJ1ZSkucHJ2LCB0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHJpdmF0ZUtleS51aW50OEFycmF5KTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGFuIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHRlc3REYXRhLmFjY291bnRXaXRoU2VlZC5wdWJsaWNLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViLCB0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWx3YXlzIGdlbmVyYXRlIGFuZCByZWdlbmVyYXRlIHZhbGlkIGtleSBwYWlycycsICgpID0+IHtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNTA7IGkrKykge1xuICAgICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgICAgaXNWYWxpZFB1YmxpY0tleShrZXlQYWlyLmdldEtleXMoKS5wdWIpLnNob3VsZC5iZS50cnVlKCk7XG4gICAgICAgIGlzVmFsaWRBZGRyZXNzKGtleVBhaXIuZ2V0QWRkcmVzcygpKS5zaG91bGQuYmUudHJ1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHBydiA9IGtleVBhaXIuZ2V0S2V5cygpLnBydiBhcyBzdHJpbmc7XG4gICAgICAgIHNob3VsZC5leGlzdChwcnYpO1xuXG4gICAgICAgIC8vIHZlcmlmeSBrZXkgcGFpciBjYW4gYmUgcmUtZ2VuZXJhdGVkIGZyb20gcHJpdmF0ZSBwb3J0aW9uXG4gICAgICAgIGNvbnN0IHJlZ2VuZXJhdGVkS2V5UGFpckZyb21QcnYgPSBuZXcgS2V5UGFpcih7IHBydjogcHJ2IH0pO1xuICAgICAgICByZWdlbmVyYXRlZEtleVBhaXJGcm9tUHJ2LmdldEtleXMoKS5zaG91bGQuZGVlcEVxdWFsKGtleVBhaXIuZ2V0S2V5cygpKTtcbiAgICAgICAgcmVnZW5lcmF0ZWRLZXlQYWlyRnJvbVBydi5nZXRBZGRyZXNzKCkuc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0QWRkcmVzcygpKTtcbiAgICAgICAgcmVnZW5lcmF0ZWRLZXlQYWlyRnJvbVBydi5zaG91bGQuZGVlcEVxdWFsKGtleVBhaXIpO1xuICAgICAgICBzaG91bGQuZXhpc3QocmVnZW5lcmF0ZWRLZXlQYWlyRnJvbVBydi5nZXRLZXlzKCkucHJ2KTtcblxuICAgICAgICAvLyB2ZXJpZnkga2V5IHBhaXIgY2FuIGJlIHJlLWdlbmVyYXRlZCBmcm9tIHB1YmxpYyBwb3J0aW9uXG4gICAgICAgIGNvbnN0IHB1YiA9IGtleVBhaXIuZ2V0S2V5cygpLnB1YjtcbiAgICAgICAgY29uc3QgcmVnZW5lcmF0ZWRLZXlQYWlyRnJvbVB1YiA9IG5ldyBLZXlQYWlyKHsgcHViOiBwdWIgfSk7XG4gICAgICAgIHJlZ2VuZXJhdGVkS2V5UGFpckZyb21QdWIuZ2V0S2V5cygpLnB1Yi5zaG91bGQuZGVlcEVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1Yik7XG4gICAgICAgIHJlZ2VuZXJhdGVkS2V5UGFpckZyb21QdWIuZ2V0QWRkcmVzcygpLnNob3VsZC5lcXVhbChrZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgICAgIHNob3VsZC5ub3QuZXhpc3QocmVnZW5lcmF0ZWRLZXlQYWlyRnJvbVB1Yi5nZXRLZXlzKCkucHJ2KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBhIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ2Zyb20gaW52YWxpZCBvcHRpb25zJywgKCkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUZXN0aW5nIGZvciBhbiBwYXJhbXMsIHNob3VsZCB0aHJvdyBlcnJvclxuICAgICAgc2hvdWxkKCgpID0+IG5ldyBLZXlQYWlyKHsgcmFuZG9tOiAncmFuZG9tJyB9KSkudGhyb3dFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHNlZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZWVkID0geyBzZWVkOiBCdWZmZXIuYWxsb2MoOCkgfTsgLy8gIFNlZWQgc2hvdWxkIGJlIDUxMiBiaXRzICg2NCBieXRlcylcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc2VlZCkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICcwMUQ2M0QnLFxuICAgICAgfTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwcnY6ICc4MkEzNEUnLFxuICAgICAgfTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRBZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZ2V0IGFuIGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoZGVmYXVsdFNlZWQpO1xuICAgICAgY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcygpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwodGVzdERhdGEuYWNjb3VudFdpdGhTZWVkLnB1YmxpY0tleSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRLZXlzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZ2V0IHB1YmxpYyBrZXlzIGluIGJhc2U1OCBhbmQgcHJpdmF0ZSBpbiBVaW50OEFycmF5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKGRlZmF1bHRTZWVkKTtcbiAgICAgIGNvbnN0IHsgcHJ2LCBwdWIgfSA9IGtleVBhaXIuZ2V0S2V5cyh0cnVlKTtcbiAgICAgIHBydj8uc2hvdWxkLmRlZXBFcXVhbCh0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHJpdmF0ZUtleS51aW50OEFycmF5KTtcbiAgICAgIHB1Yi5zaG91bGQuZXF1YWwodGVzdERhdGEuYWNjb3VudFdpdGhTZWVkLnB1YmxpY0tleSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBwcml2YXRlIGFuZCBwdWJsaWMga2V5cyBiYXNlNTgnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoZGVmYXVsdFNlZWQpO1xuICAgICAgY29uc3QgeyBwcnYsIHB1YiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgICBwcnY/LnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHJpdmF0ZUtleS5iYXNlNTgpO1xuICAgICAgcHViLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHByaXZhdGUgYW5kIHB1YmxpYyBrZXlzIGZvciBhIHJhbmRvbSBzZWVkJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBjb25zdCB7IHBydiwgcHViIH0gPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdChwcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0KHB1Yik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaWduTWVzc2FnZSBhbmQgdmVyaWZ5U2lnbmF0dXJlJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSAndGVzdCBtZXNzYWdlIHBscyBpZ25vcmUnO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHNpZ24gYSBtc2cgJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiB0ZXN0RGF0YS5hY2NvdW50V2l0aFNlZWQucHJpdmF0ZUtleS5iYXNlNTggfSk7XG4gICAgICBjb25zdCBzaWduZWRNZXNzYWdlID0ga2V5UGFpci5zaWduTWVzc2FnZShtZXNzYWdlKTtcbiAgICAgIHNpZ25lZE1lc3NhZ2Uuc2hvdWxkLmRlZXBFcXVhbCh0ZXN0RGF0YS5TSUdORURfTUVTU0FHRV9TSUdOQVRVUkUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHNpZ24gYSBtc2cgaWYgcHJ2IGtleSBpcyBtaXNzaW5nJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiB0ZXN0RGF0YS5wdWJLZXlzLnZhbGlkUHViS2V5c1swXSB9KTtcbiAgICAgIHNob3VsZCgoKSA9PiBrZXlQYWlyLnNpZ25NZXNzYWdlKG1lc3NhZ2UpKS50aHJvd0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd2ZXJpZnlTaWduYXR1cmUnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSBhIHNpZ25hdHVyZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuYWNjb3VudFdpdGhTZWVkLnByaXZhdGVLZXkuYmFzZTU4IH0pO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gdGVzdERhdGEuU0lHTkVEX01FU1NBR0VfU0lHTkFUVVJFO1xuICAgICAgY29uc3QgbWVzc2FnZSA9ICd0ZXN0IG1lc3NhZ2UgcGxzIGlnbm9yZSc7XG4gICAgICBrZXlQYWlyLnZlcmlmeVNpZ25hdHVyZShtZXNzYWdlLCBzaWduYXR1cmUpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VjY2VlZCB0byB2ZXJpZnkgYSBzaWduYXR1cmUgaWYgdGhlIG1zZyBpcyBhIFVJbnQ4QXJyYXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IHRlc3REYXRhLmFjY291bnRXaXRoU2VlZC5wcml2YXRlS2V5LmJhc2U1OCB9KTtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRlc3REYXRhLlNJR05FRF9NRVNTQUdFX1NJR05BVFVSRTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbSgndGVzdCBtZXNzYWdlIHBscyBpZ25vcmUnKSk7XG4gICAgICBrZXlQYWlyLnZlcmlmeVNpZ25hdHVyZShtZXNzYWdlLCBzaWduYXR1cmUpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB2ZXJpZnkgYSBzaWduYXR1cmUgaWYgdGhlIHBydiBrZXkgaXMgbm90IGNvcnJlY3QnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IHRlc3REYXRhLmV4dHJhQWNjb3VudHMucHJ2MSB9KTtcbiAgICAgIGNvbnN0IHNpZ25hdHVyZSA9IHRlc3REYXRhLlNJR05FRF9NRVNTQUdFX1NJR05BVFVSRTtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSAndGVzdCBtZXNzYWdlIHBscyBpZ25vcmUnO1xuICAgICAga2V5UGFpci52ZXJpZnlTaWduYXR1cmUobWVzc2FnZSwgc2lnbmF0dXJlKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHZlcmlmeSBhIHNpZ25hdHVyZSBpZiB0aGUgbWVzc2FnZSBpcyBub3QgY29ycmVjdCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuYWNjb3VudFdpdGhTZWVkLnByaXZhdGVLZXkuYmFzZTU4IH0pO1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gdGVzdERhdGEuU0lHTkVEX01FU1NBR0VfU0lHTkFUVVJFO1xuICAgICAgY29uc3QgbWVzc2FnZSA9ICdpbmNvcnJlY3QgbXNnJztcbiAgICAgIGtleVBhaXIudmVyaWZ5U2lnbmF0dXJlKG1lc3NhZ2UsIHNpZ25hdHVyZSkuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messageBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/messageBuilderFactory.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,118 @@
|
|
|
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 should_1 = __importDefault(require("should"));
|
|
8
|
+
const src_1 = require("../../../src");
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
describe('Solana MessageBuilderFactory', function () {
|
|
11
|
+
let sandbox;
|
|
12
|
+
let factory;
|
|
13
|
+
const coinConfig = { name: 'tsol' };
|
|
14
|
+
// Common test data
|
|
15
|
+
const signatureBase64 = Buffer.from('signature1').toString('base64');
|
|
16
|
+
const testBroadcastMessage = {
|
|
17
|
+
type: sdk_core_1.MessageStandardType.SIMPLE,
|
|
18
|
+
payload: 'test message',
|
|
19
|
+
serializedSignatures: [
|
|
20
|
+
{
|
|
21
|
+
publicKey: 'pubkey1',
|
|
22
|
+
signature: signatureBase64,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
signers: ['signer1'],
|
|
26
|
+
metadata: {},
|
|
27
|
+
};
|
|
28
|
+
const unsupportedMessageTypes = [
|
|
29
|
+
sdk_core_1.MessageStandardType.UNKNOWN,
|
|
30
|
+
sdk_core_1.MessageStandardType.EIP191,
|
|
31
|
+
sdk_core_1.MessageStandardType.CIP8,
|
|
32
|
+
'UNSUPPORTED',
|
|
33
|
+
];
|
|
34
|
+
// Helper functions
|
|
35
|
+
const assertSimpleMessageBuilder = (builder) => {
|
|
36
|
+
should_1.default.exist(builder);
|
|
37
|
+
builder.should.be.instanceof(sdk_core_1.SimpleMessageBuilder);
|
|
38
|
+
};
|
|
39
|
+
const assertBuilderMessageProperties = async (builder, expectedPayload) => {
|
|
40
|
+
const message = await builder.build();
|
|
41
|
+
message.getType().should.equal(sdk_core_1.MessageStandardType.SIMPLE);
|
|
42
|
+
message.getPayload().should.equal(expectedPayload);
|
|
43
|
+
message.getSignatures().should.have.length(1);
|
|
44
|
+
message.getSigners().should.have.length(1);
|
|
45
|
+
message.getSigners()[0].should.equal('signer1');
|
|
46
|
+
message.getMetadata().should.be.an.Object();
|
|
47
|
+
return message;
|
|
48
|
+
};
|
|
49
|
+
const assertSignatureProperties = (message) => {
|
|
50
|
+
const signature = message.getSignatures()[0];
|
|
51
|
+
signature.should.have.properties(['publicKey', 'signature']);
|
|
52
|
+
signature.publicKey.pub.should.equal('pubkey1');
|
|
53
|
+
signature.signature.toString('base64').should.equal(signatureBase64);
|
|
54
|
+
};
|
|
55
|
+
const assertBroadcastFormatProperties = async (message, expectedSerializedSignatures) => {
|
|
56
|
+
const rebroadcastMessage = await message.toBroadcastFormat();
|
|
57
|
+
rebroadcastMessage.should.have.properties(['type', 'payload', 'serializedSignatures', 'signers', 'metadata']);
|
|
58
|
+
rebroadcastMessage.type.should.equal(sdk_core_1.MessageStandardType.SIMPLE);
|
|
59
|
+
rebroadcastMessage.payload.should.equal('test message');
|
|
60
|
+
rebroadcastMessage.serializedSignatures?.should.deepEqual(expectedSerializedSignatures);
|
|
61
|
+
rebroadcastMessage.signers?.should.deepEqual(['signer1']);
|
|
62
|
+
};
|
|
63
|
+
beforeEach(function () {
|
|
64
|
+
sandbox = sinon_1.default.createSandbox();
|
|
65
|
+
factory = new src_1.MessageBuilderFactory(coinConfig);
|
|
66
|
+
});
|
|
67
|
+
afterEach(function () {
|
|
68
|
+
sandbox.restore();
|
|
69
|
+
});
|
|
70
|
+
describe('getMessageBuilder', function () {
|
|
71
|
+
it('should return SimpleMessageBuilder for SIMPLE type', function () {
|
|
72
|
+
const builder = factory.getMessageBuilder(sdk_core_1.MessageStandardType.SIMPLE);
|
|
73
|
+
assertSimpleMessageBuilder(builder);
|
|
74
|
+
});
|
|
75
|
+
it('should throw error for unsupported message type', function () {
|
|
76
|
+
unsupportedMessageTypes.forEach((type) => {
|
|
77
|
+
should_1.default.throws(() => factory.getMessageBuilder(type), new RegExp(`Invalid message standard ${type}`));
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('fromBroadcastFormat', function () {
|
|
82
|
+
it('should get the correct builder type from broadcastable message', async function () {
|
|
83
|
+
const builder = factory.fromBroadcastFormat(testBroadcastMessage);
|
|
84
|
+
assertSimpleMessageBuilder(builder);
|
|
85
|
+
const message = await assertBuilderMessageProperties(builder, 'test message');
|
|
86
|
+
assertSignatureProperties(message);
|
|
87
|
+
await assertBroadcastFormatProperties(message, testBroadcastMessage.serializedSignatures);
|
|
88
|
+
});
|
|
89
|
+
it('should throw for unsupported message type in broadcastable message', function () {
|
|
90
|
+
const broadcastMessage = {
|
|
91
|
+
...testBroadcastMessage,
|
|
92
|
+
type: sdk_core_1.MessageStandardType.EIP191,
|
|
93
|
+
};
|
|
94
|
+
should_1.default.throws(() => factory.fromBroadcastFormat(broadcastMessage), new RegExp(`Invalid message standard ${sdk_core_1.MessageStandardType.EIP191}`));
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('fromBroadcastString', function () {
|
|
98
|
+
it('should parse broadcastable string and return correct builder type', async function () {
|
|
99
|
+
const broadcastString = JSON.stringify(testBroadcastMessage);
|
|
100
|
+
const broadcastHex = Buffer.from(broadcastString).toString('hex');
|
|
101
|
+
const builder = factory.fromBroadcastString(broadcastHex);
|
|
102
|
+
assertSimpleMessageBuilder(builder);
|
|
103
|
+
const message = await assertBuilderMessageProperties(builder, 'test message');
|
|
104
|
+
assertSignatureProperties(message);
|
|
105
|
+
await assertBroadcastFormatProperties(message, testBroadcastMessage.serializedSignatures);
|
|
106
|
+
});
|
|
107
|
+
it('should throw for invalid JSON string', function () {
|
|
108
|
+
try {
|
|
109
|
+
factory.fromBroadcastString('abcdefg'); // Invalid hex string
|
|
110
|
+
fail('Expected error not thrown');
|
|
111
|
+
}
|
|
112
|
+
catch (error) {
|
|
113
|
+
error.should.be.instanceof(SyntaxError);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZUJ1aWxkZXJGYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L21lc3NhZ2VzL21lc3NhZ2VCdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLGtEQUEwQjtBQUMxQixvREFBNEI7QUFDNUIsc0NBQXFEO0FBQ3JELG1EQU84QjtBQUU5QixRQUFRLENBQUMsOEJBQThCLEVBQUU7SUFDdkMsSUFBSSxPQUEyQixDQUFDO0lBQ2hDLElBQUksT0FBOEIsQ0FBQztJQUNuQyxNQUFNLFVBQVUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQWMsQ0FBQztJQUVoRCxtQkFBbUI7SUFDbkIsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckUsTUFBTSxvQkFBb0IsR0FBeUI7UUFDakQsSUFBSSxFQUFFLDhCQUFtQixDQUFDLE1BQU07UUFDaEMsT0FBTyxFQUFFLGNBQWM7UUFDdkIsb0JBQW9CLEVBQUU7WUFDcEI7Z0JBQ0UsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLFNBQVMsRUFBRSxlQUFlO2FBQzNCO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUM7UUFDcEIsUUFBUSxFQUFFLEVBQUU7S0FDYixDQUFDO0lBRUYsTUFBTSx1QkFBdUIsR0FBRztRQUM5Qiw4QkFBbUIsQ0FBQyxPQUFPO1FBQzNCLDhCQUFtQixDQUFDLE1BQU07UUFDMUIsOEJBQW1CLENBQUMsSUFBSTtRQUN4QixhQUFvQztLQUNyQyxDQUFDO0lBRUYsbUJBQW1CO0lBQ25CLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxPQUF3QixFQUFFLEVBQUU7UUFDOUQsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLCtCQUFvQixDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDO0lBRUYsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLEVBQUUsT0FBd0IsRUFBRSxlQUF1QixFQUFFLEVBQUU7UUFDakcsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdEMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsT0FBTyxDQUFDLFVBQVUsRUFBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxPQUFPLENBQUMsV0FBVyxFQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0MsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLE9BQWlCLEVBQUUsRUFBRTtRQUN0RCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDN0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxTQUFTLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUMsQ0FBQztJQUVGLE1BQU0sK0JBQStCLEdBQUcsS0FBSyxFQUMzQyxPQUFpQixFQUNqQiw0QkFBb0QsRUFDcEQsRUFBRTtRQUNGLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3RCxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsc0JBQXNCLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDOUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakUsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEQsa0JBQWtCLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3hGLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDLENBQUM7SUFFRixVQUFVLENBQUM7UUFDVCxPQUFPLEdBQUcsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sR0FBRyxJQUFJLDJCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsU0FBUyxDQUFDO1FBQ1IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLG1CQUFtQixFQUFFO1FBQzVCLEVBQUUsQ0FBQyxvREFBb0QsRUFBRTtZQUN2RCxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsOEJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdEUsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaURBQWlELEVBQUU7WUFDcEQsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3ZDLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyw0QkFBNEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZHLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtRQUM5QixFQUFFLENBQUMsZ0VBQWdFLEVBQUUsS0FBSztZQUN4RSxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVwQyxNQUFNLE9BQU8sR0FBRyxNQUFNLDhCQUE4QixDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztZQUM5RSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQyxNQUFNLCtCQUErQixDQUFDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzVGLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLG9FQUFvRSxFQUFFO1lBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUc7Z0JBQ3ZCLEdBQUcsb0JBQW9CO2dCQUN2QixJQUFJLEVBQUUsOEJBQW1CLENBQUMsTUFBTTthQUNqQyxDQUFDO1lBRUYsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLEVBQ25ELElBQUksTUFBTSxDQUFDLDRCQUE0Qiw4QkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUNyRSxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtRQUM5QixFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSztZQUMzRSxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDN0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBRTFELDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLE1BQU0sT0FBTyxHQUFHLE1BQU0sOEJBQThCLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBQzlFLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLE1BQU0sK0JBQStCLENBQUMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUU7WUFDekMsSUFBSSxDQUFDO2dCQUNILE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHFCQUFxQjtnQkFDN0QsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IE1lc3NhZ2VCdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQge1xuICBCcm9hZGNhc3RhYmxlTWVzc2FnZSxcbiAgSU1lc3NhZ2UsXG4gIElNZXNzYWdlQnVpbGRlcixcbiAgTWVzc2FnZVN0YW5kYXJkVHlwZSxcbiAgU2VyaWFsaXplZFNpZ25hdHVyZSxcbiAgU2ltcGxlTWVzc2FnZUJ1aWxkZXIsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZGVzY3JpYmUoJ1NvbGFuYSBNZXNzYWdlQnVpbGRlckZhY3RvcnknLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBzYW5kYm94OiBzaW5vbi5TaW5vblNhbmRib3g7XG4gIGxldCBmYWN0b3J5OiBNZXNzYWdlQnVpbGRlckZhY3Rvcnk7XG4gIGNvbnN0IGNvaW5Db25maWcgPSB7IG5hbWU6ICd0c29sJyB9IGFzIEJhc2VDb2luO1xuXG4gIC8vIENvbW1vbiB0ZXN0IGRhdGFcbiAgY29uc3Qgc2lnbmF0dXJlQmFzZTY0ID0gQnVmZmVyLmZyb20oJ3NpZ25hdHVyZTEnKS50b1N0cmluZygnYmFzZTY0Jyk7XG4gIGNvbnN0IHRlc3RCcm9hZGNhc3RNZXNzYWdlOiBCcm9hZGNhc3RhYmxlTWVzc2FnZSA9IHtcbiAgICB0eXBlOiBNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSxcbiAgICBwYXlsb2FkOiAndGVzdCBtZXNzYWdlJyxcbiAgICBzZXJpYWxpemVkU2lnbmF0dXJlczogW1xuICAgICAge1xuICAgICAgICBwdWJsaWNLZXk6ICdwdWJrZXkxJyxcbiAgICAgICAgc2lnbmF0dXJlOiBzaWduYXR1cmVCYXNlNjQsXG4gICAgICB9LFxuICAgIF0sXG4gICAgc2lnbmVyczogWydzaWduZXIxJ10sXG4gICAgbWV0YWRhdGE6IHt9LFxuICB9O1xuXG4gIGNvbnN0IHVuc3VwcG9ydGVkTWVzc2FnZVR5cGVzID0gW1xuICAgIE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTixcbiAgICBNZXNzYWdlU3RhbmRhcmRUeXBlLkVJUDE5MSxcbiAgICBNZXNzYWdlU3RhbmRhcmRUeXBlLkNJUDgsXG4gICAgJ1VOU1VQUE9SVEVEJyBhcyBNZXNzYWdlU3RhbmRhcmRUeXBlLFxuICBdO1xuXG4gIC8vIEhlbHBlciBmdW5jdGlvbnNcbiAgY29uc3QgYXNzZXJ0U2ltcGxlTWVzc2FnZUJ1aWxkZXIgPSAoYnVpbGRlcjogSU1lc3NhZ2VCdWlsZGVyKSA9PiB7XG4gICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgIGJ1aWxkZXIuc2hvdWxkLmJlLmluc3RhbmNlb2YoU2ltcGxlTWVzc2FnZUJ1aWxkZXIpO1xuICB9O1xuXG4gIGNvbnN0IGFzc2VydEJ1aWxkZXJNZXNzYWdlUHJvcGVydGllcyA9IGFzeW5jIChidWlsZGVyOiBJTWVzc2FnZUJ1aWxkZXIsIGV4cGVjdGVkUGF5bG9hZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICBtZXNzYWdlLmdldFR5cGUoKS5zaG91bGQuZXF1YWwoTWVzc2FnZVN0YW5kYXJkVHlwZS5TSU1QTEUpO1xuICAgIG1lc3NhZ2UuZ2V0UGF5bG9hZCgpIS5zaG91bGQuZXF1YWwoZXhwZWN0ZWRQYXlsb2FkKTtcbiAgICBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKS5zaG91bGQuaGF2ZS5sZW5ndGgoMSk7XG4gICAgbWVzc2FnZS5nZXRTaWduZXJzKCkuc2hvdWxkLmhhdmUubGVuZ3RoKDEpO1xuICAgIG1lc3NhZ2UuZ2V0U2lnbmVycygpWzBdLnNob3VsZC5lcXVhbCgnc2lnbmVyMScpO1xuICAgIG1lc3NhZ2UuZ2V0TWV0YWRhdGEoKSEuc2hvdWxkLmJlLmFuLk9iamVjdCgpO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9O1xuXG4gIGNvbnN0IGFzc2VydFNpZ25hdHVyZVByb3BlcnRpZXMgPSAobWVzc2FnZTogSU1lc3NhZ2UpID0+IHtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBtZXNzYWdlLmdldFNpZ25hdHVyZXMoKVswXTtcbiAgICBzaWduYXR1cmUuc2hvdWxkLmhhdmUucHJvcGVydGllcyhbJ3B1YmxpY0tleScsICdzaWduYXR1cmUnXSk7XG4gICAgc2lnbmF0dXJlLnB1YmxpY0tleS5wdWIuc2hvdWxkLmVxdWFsKCdwdWJrZXkxJyk7XG4gICAgc2lnbmF0dXJlLnNpZ25hdHVyZS50b1N0cmluZygnYmFzZTY0Jykuc2hvdWxkLmVxdWFsKHNpZ25hdHVyZUJhc2U2NCk7XG4gIH07XG5cbiAgY29uc3QgYXNzZXJ0QnJvYWRjYXN0Rm9ybWF0UHJvcGVydGllcyA9IGFzeW5jIChcbiAgICBtZXNzYWdlOiBJTWVzc2FnZSxcbiAgICBleHBlY3RlZFNlcmlhbGl6ZWRTaWduYXR1cmVzPzogU2VyaWFsaXplZFNpZ25hdHVyZVtdXG4gICkgPT4ge1xuICAgIGNvbnN0IHJlYnJvYWRjYXN0TWVzc2FnZSA9IGF3YWl0IG1lc3NhZ2UudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICByZWJyb2FkY2FzdE1lc3NhZ2Uuc2hvdWxkLmhhdmUucHJvcGVydGllcyhbJ3R5cGUnLCAncGF5bG9hZCcsICdzZXJpYWxpemVkU2lnbmF0dXJlcycsICdzaWduZXJzJywgJ21ldGFkYXRhJ10pO1xuICAgIHJlYnJvYWRjYXN0TWVzc2FnZS50eXBlLnNob3VsZC5lcXVhbChNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSk7XG4gICAgcmVicm9hZGNhc3RNZXNzYWdlLnBheWxvYWQuc2hvdWxkLmVxdWFsKCd0ZXN0IG1lc3NhZ2UnKTtcbiAgICByZWJyb2FkY2FzdE1lc3NhZ2Uuc2VyaWFsaXplZFNpZ25hdHVyZXM/LnNob3VsZC5kZWVwRXF1YWwoZXhwZWN0ZWRTZXJpYWxpemVkU2lnbmF0dXJlcyk7XG4gICAgcmVicm9hZGNhc3RNZXNzYWdlLnNpZ25lcnM/LnNob3VsZC5kZWVwRXF1YWwoWydzaWduZXIxJ10pO1xuICB9O1xuXG4gIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNhbmRib3ggPSBzaW5vbi5jcmVhdGVTYW5kYm94KCk7XG4gICAgZmFjdG9yeSA9IG5ldyBNZXNzYWdlQnVpbGRlckZhY3RvcnkoY29pbkNvbmZpZyk7XG4gIH0pO1xuXG4gIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgc2FuZGJveC5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRNZXNzYWdlQnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiBTaW1wbGVNZXNzYWdlQnVpbGRlciBmb3IgU0lNUExFIHR5cGUnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRNZXNzYWdlQnVpbGRlcihNZXNzYWdlU3RhbmRhcmRUeXBlLlNJTVBMRSk7XG4gICAgICBhc3NlcnRTaW1wbGVNZXNzYWdlQnVpbGRlcihidWlsZGVyKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXJyb3IgZm9yIHVuc3VwcG9ydGVkIG1lc3NhZ2UgdHlwZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIHVuc3VwcG9ydGVkTWVzc2FnZVR5cGVzLmZvckVhY2goKHR5cGUpID0+IHtcbiAgICAgICAgc2hvdWxkLnRocm93cygoKSA9PiBmYWN0b3J5LmdldE1lc3NhZ2VCdWlsZGVyKHR5cGUpLCBuZXcgUmVnRXhwKGBJbnZhbGlkIG1lc3NhZ2Ugc3RhbmRhcmQgJHt0eXBlfWApKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdEZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGdldCB0aGUgY29ycmVjdCBidWlsZGVyIHR5cGUgZnJvbSBicm9hZGNhc3RhYmxlIG1lc3NhZ2UnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5mcm9tQnJvYWRjYXN0Rm9ybWF0KHRlc3RCcm9hZGNhc3RNZXNzYWdlKTtcbiAgICAgIGFzc2VydFNpbXBsZU1lc3NhZ2VCdWlsZGVyKGJ1aWxkZXIpO1xuXG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYXNzZXJ0QnVpbGRlck1lc3NhZ2VQcm9wZXJ0aWVzKGJ1aWxkZXIsICd0ZXN0IG1lc3NhZ2UnKTtcbiAgICAgIGFzc2VydFNpZ25hdHVyZVByb3BlcnRpZXMobWVzc2FnZSk7XG4gICAgICBhd2FpdCBhc3NlcnRCcm9hZGNhc3RGb3JtYXRQcm9wZXJ0aWVzKG1lc3NhZ2UsIHRlc3RCcm9hZGNhc3RNZXNzYWdlLnNlcmlhbGl6ZWRTaWduYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZm9yIHVuc3VwcG9ydGVkIG1lc3NhZ2UgdHlwZSBpbiBicm9hZGNhc3RhYmxlIG1lc3NhZ2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBicm9hZGNhc3RNZXNzYWdlID0ge1xuICAgICAgICAuLi50ZXN0QnJvYWRjYXN0TWVzc2FnZSxcbiAgICAgICAgdHlwZTogTWVzc2FnZVN0YW5kYXJkVHlwZS5FSVAxOTEsXG4gICAgICB9O1xuXG4gICAgICBzaG91bGQudGhyb3dzKFxuICAgICAgICAoKSA9PiBmYWN0b3J5LmZyb21Ccm9hZGNhc3RGb3JtYXQoYnJvYWRjYXN0TWVzc2FnZSksXG4gICAgICAgIG5ldyBSZWdFeHAoYEludmFsaWQgbWVzc2FnZSBzdGFuZGFyZCAke01lc3NhZ2VTdGFuZGFyZFR5cGUuRUlQMTkxfWApXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZnJvbUJyb2FkY2FzdFN0cmluZycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHBhcnNlIGJyb2FkY2FzdGFibGUgc3RyaW5nIGFuZCByZXR1cm4gY29ycmVjdCBidWlsZGVyIHR5cGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBicm9hZGNhc3RTdHJpbmcgPSBKU09OLnN0cmluZ2lmeSh0ZXN0QnJvYWRjYXN0TWVzc2FnZSk7XG4gICAgICBjb25zdCBicm9hZGNhc3RIZXggPSBCdWZmZXIuZnJvbShicm9hZGNhc3RTdHJpbmcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5LmZyb21Ccm9hZGNhc3RTdHJpbmcoYnJvYWRjYXN0SGV4KTtcblxuICAgICAgYXNzZXJ0U2ltcGxlTWVzc2FnZUJ1aWxkZXIoYnVpbGRlcik7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgYXNzZXJ0QnVpbGRlck1lc3NhZ2VQcm9wZXJ0aWVzKGJ1aWxkZXIsICd0ZXN0IG1lc3NhZ2UnKTtcbiAgICAgIGFzc2VydFNpZ25hdHVyZVByb3BlcnRpZXMobWVzc2FnZSk7XG4gICAgICBhd2FpdCBhc3NlcnRCcm9hZGNhc3RGb3JtYXRQcm9wZXJ0aWVzKG1lc3NhZ2UsIHRlc3RCcm9hZGNhc3RNZXNzYWdlLnNlcmlhbGl6ZWRTaWduYXR1cmVzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZm9yIGludmFsaWQgSlNPTiBzdHJpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICB0cnkge1xuICAgICAgICBmYWN0b3J5LmZyb21Ccm9hZGNhc3RTdHJpbmcoJ2FiY2RlZmcnKTsgLy8gSW52YWxpZCBoZXggc3RyaW5nXG4gICAgICAgIGZhaWwoJ0V4cGVjdGVkIGVycm9yIG5vdCB0aHJvd24nKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9yLnNob3VsZC5iZS5pbnN0YW5jZW9mKFN5bnRheEVycm9yKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simpleMessageBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/messages/simpleMessageBuilder.ts"],"names":[],"mappings":""}
|