@bitgo/sdk-coin-dot 4.11.7 → 4.13.0
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/{src → cjs/src}/dot.d.ts +0 -7
- package/dist/cjs/src/dot.d.ts.map +1 -0
- package/dist/cjs/src/dot.js +623 -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/addressInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/addressInitializationBuilder.js +182 -0
- package/dist/cjs/src/lib/batchTransactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/batchTransactionBuilder.js +229 -0
- package/dist/cjs/src/lib/claimBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/claimBuilder.js +117 -0
- package/dist/cjs/src/lib/errors.d.ts.map +1 -0
- package/dist/cjs/src/lib/errors.js +19 -0
- package/dist/cjs/src/lib/iface.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface.js +128 -0
- package/dist/cjs/src/lib/iface_utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface_utils.js +92 -0
- package/dist/{src → cjs/src}/lib/index.d.ts +2 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/index.js +4 -2
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +117 -0
- package/dist/cjs/src/lib/nativeTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/nativeTransferBuilder.js +219 -0
- package/dist/cjs/src/lib/proxyBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/proxyBuilder.js +116 -0
- package/dist/cjs/src/lib/singletonRegistry.d.ts.map +1 -0
- package/dist/cjs/src/lib/singletonRegistry.js +20 -0
- package/dist/cjs/src/lib/stakingBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/stakingBuilder.js +167 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +624 -0
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +351 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +104 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +11 -0
- package/dist/cjs/src/lib/txnSchema.d.ts.map +1 -0
- package/dist/cjs/src/lib/txnSchema.js +117 -0
- package/dist/cjs/src/lib/unnominateBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/unnominateBuilder.js +48 -0
- package/dist/cjs/src/lib/unstakeBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/unstakeBuilder.js +87 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +491 -0
- package/dist/cjs/src/lib/wasmParser.d.ts +57 -0
- package/dist/cjs/src/lib/wasmParser.d.ts.map +1 -0
- package/dist/cjs/src/lib/wasmParser.js +345 -0
- package/dist/cjs/src/lib/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/withdrawUnstakedBuilder.js +88 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +11 -0
- package/dist/cjs/src/resources/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/resources/index.js +1 -1
- package/dist/cjs/src/resources/mainnet.d.ts.map +1 -0
- package/dist/cjs/src/resources/mainnet.js +5 -0
- package/dist/cjs/src/resources/polkadotAssetHub.d.ts.map +1 -0
- package/dist/cjs/src/resources/polkadotAssetHub.js +5 -0
- package/dist/cjs/src/resources/westend.d.ts.map +1 -0
- package/dist/{test/resources/testnet.js → cjs/src/resources/westend.js} +3 -3
- package/dist/cjs/src/resources/westendAssetHub.d.ts.map +1 -0
- package/dist/{src → cjs/src}/resources/westendAssetHub.js +1 -1
- package/dist/cjs/src/tdot.d.ts.map +1 -0
- package/dist/cjs/src/tdot.js +27 -0
- package/dist/cjs/test/fixtures.d.ts.map +1 -0
- package/dist/cjs/test/fixtures.js +439 -0
- package/dist/cjs/test/resources/index.d.ts.map +1 -0
- package/dist/cjs/test/resources/index.js +157 -0
- package/dist/cjs/test/resources/testnet.d.ts.map +1 -0
- package/dist/{src/resources/westend.js → cjs/test/resources/testnet.js} +3 -3
- package/dist/{test → cjs/test}/unit/address.d.ts.map +1 -1
- package/dist/cjs/test/unit/address.js +45 -0
- package/dist/{test → cjs/test}/unit/dot.d.ts.map +1 -1
- package/dist/cjs/test/unit/dot.js +944 -0
- package/dist/{test → cjs/test}/unit/keypair.d.ts.map +1 -1
- package/dist/cjs/test/unit/keypair.js +111 -0
- package/dist/cjs/test/unit/transaction.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction.js +269 -0
- package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/addressInitializationBuilder.js +265 -0
- package/dist/cjs/test/unit/transactionBuilder/base.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/base.js +233 -0
- package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/batchTransactionBuilder.js +521 -0
- package/dist/cjs/test/unit/transactionBuilder/claimBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/claimBuilder.js +129 -0
- package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/proxyBuilder.js +88 -0
- package/dist/cjs/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +1 -0
- package/dist/{test → cjs/test}/unit/transactionBuilder/singeltonRegistry.js +1 -1
- package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/stakingBuilder.js +235 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transactionBuilderFactory.js +107 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/transferBuilder.js +437 -0
- package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/unnominateBuilder.js +97 -0
- package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/unstakeBuilder.js +116 -0
- package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +115 -0
- package/dist/{test → cjs/test}/unit/utils.d.ts.map +1 -1
- package/dist/cjs/test/unit/utils.js +117 -0
- package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts +22 -0
- package/dist/cjs/test/unit/wasmBuilderByteComparison.d.ts.map +1 -0
- package/dist/cjs/test/unit/wasmBuilderByteComparison.js +197 -0
- package/dist/cjs/test/unit/wasmParserExplanation.d.ts +15 -0
- package/dist/cjs/test/unit/wasmParserExplanation.d.ts.map +1 -0
- package/dist/cjs/test/unit/wasmParserExplanation.js +147 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/dot.d.ts +147 -0
- package/dist/esm/dot.d.ts.map +1 -0
- package/dist/esm/dot.js +583 -0
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +5 -0
- package/dist/esm/lib/addressInitializationBuilder.d.ts +79 -0
- package/dist/esm/lib/addressInitializationBuilder.js +175 -0
- package/dist/esm/lib/batchTransactionBuilder.d.ts +62 -0
- package/dist/esm/lib/batchTransactionBuilder.js +222 -0
- package/dist/esm/lib/claimBuilder.d.ts +58 -0
- package/dist/esm/lib/claimBuilder.js +110 -0
- package/dist/esm/lib/errors.d.ts +8 -0
- package/dist/esm/lib/errors.js +14 -0
- package/dist/esm/lib/iface.d.ts +337 -0
- package/dist/esm/lib/iface.js +125 -0
- package/dist/esm/lib/iface_utils.d.ts +59 -0
- package/dist/esm/lib/iface_utils.js +83 -0
- package/dist/esm/lib/index.d.ts +21 -0
- package/dist/{src → esm}/lib/index.d.ts.map +1 -1
- package/dist/esm/lib/index.js +20 -0
- package/dist/esm/lib/keyPair.d.ts +38 -0
- package/dist/esm/lib/keyPair.js +77 -0
- package/dist/esm/lib/nativeTransferBuilder.d.ts +84 -0
- package/dist/esm/lib/nativeTransferBuilder.js +212 -0
- package/dist/esm/lib/proxyBuilder.d.ts +54 -0
- package/dist/esm/lib/proxyBuilder.js +109 -0
- package/dist/esm/lib/singletonRegistry.d.ts +7 -0
- package/dist/esm/lib/singletonRegistry.js +16 -0
- package/dist/esm/lib/stakingBuilder.d.ts +66 -0
- package/dist/esm/lib/stakingBuilder.js +160 -0
- package/dist/esm/lib/transaction.d.ts +83 -0
- package/dist/{src → esm}/lib/transaction.d.ts.map +1 -1
- package/dist/esm/lib/transaction.js +584 -0
- package/dist/esm/lib/transactionBuilder.d.ts +131 -0
- package/dist/esm/lib/transactionBuilder.js +311 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +28 -0
- package/dist/esm/lib/transactionBuilderFactory.js +97 -0
- package/dist/esm/lib/transferBuilder.d.ts +11 -0
- package/dist/esm/lib/transferBuilder.js +7 -0
- package/dist/esm/lib/txnSchema.d.ts +15 -0
- package/dist/esm/lib/txnSchema.js +111 -0
- package/dist/esm/lib/unnominateBuilder.d.ts +24 -0
- package/dist/esm/lib/unnominateBuilder.js +44 -0
- package/dist/esm/lib/unstakeBuilder.d.ts +38 -0
- package/dist/esm/lib/unstakeBuilder.js +80 -0
- package/dist/esm/lib/utils.d.ts +261 -0
- package/dist/esm/lib/utils.js +451 -0
- package/dist/esm/lib/wasmParser.d.ts +57 -0
- package/dist/esm/lib/wasmParser.d.ts.map +1 -0
- package/dist/esm/lib/wasmParser.js +341 -0
- package/dist/esm/lib/withdrawUnstakedBuilder.d.ts +38 -0
- package/dist/esm/lib/withdrawUnstakedBuilder.js +81 -0
- package/dist/esm/register.d.ts +3 -0
- package/dist/esm/register.js +7 -0
- package/dist/esm/resources/index.d.ts +5 -0
- package/dist/esm/resources/index.js +5 -0
- package/dist/esm/resources/mainnet.d.ts +2 -0
- package/dist/esm/resources/mainnet.js +2 -0
- package/dist/esm/resources/polkadotAssetHub.d.ts +2 -0
- package/dist/esm/resources/polkadotAssetHub.js +2 -0
- package/dist/esm/resources/westend.d.ts +2 -0
- package/dist/esm/resources/westend.js +2 -0
- package/dist/esm/resources/westendAssetHub.d.ts +2 -0
- package/dist/esm/resources/westendAssetHub.js +2 -0
- package/dist/esm/tdot.d.ts +12 -0
- package/dist/esm/tdot.js +23 -0
- package/package.json +30 -12
- package/dist/src/dot.d.ts.map +0 -1
- package/dist/src/dot.js +0 -610
- package/dist/src/lib/addressInitializationBuilder.js +0 -182
- package/dist/src/lib/batchTransactionBuilder.js +0 -229
- package/dist/src/lib/claimBuilder.js +0 -117
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/iface.js +0 -128
- package/dist/src/lib/iface_utils.js +0 -92
- package/dist/src/lib/keyPair.js +0 -117
- package/dist/src/lib/nativeTransferBuilder.js +0 -219
- package/dist/src/lib/proxyBuilder.js +0 -116
- package/dist/src/lib/singletonRegistry.js +0 -20
- package/dist/src/lib/stakingBuilder.js +0 -167
- package/dist/src/lib/transaction.js +0 -610
- package/dist/src/lib/transactionBuilder.js +0 -351
- package/dist/src/lib/transactionBuilderFactory.js +0 -104
- package/dist/src/lib/transferBuilder.js +0 -11
- package/dist/src/lib/txnSchema.js +0 -117
- package/dist/src/lib/unnominateBuilder.js +0 -48
- package/dist/src/lib/unstakeBuilder.js +0 -87
- package/dist/src/lib/utils.js +0 -491
- package/dist/src/lib/withdrawUnstakedBuilder.js +0 -88
- package/dist/src/register.js +0 -11
- package/dist/src/resources/mainnet.js +0 -5
- package/dist/src/resources/polkadotAssetHub.js +0 -5
- package/dist/src/tdot.js +0 -27
- package/dist/test/fixtures.d.ts.map +0 -1
- package/dist/test/fixtures.js +0 -439
- package/dist/test/resources/index.d.ts.map +0 -1
- package/dist/test/resources/index.js +0 -157
- package/dist/test/resources/testnet.d.ts.map +0 -1
- package/dist/test/unit/address.js +0 -45
- package/dist/test/unit/dot.js +0 -816
- package/dist/test/unit/keypair.js +0 -111
- package/dist/test/unit/transaction.d.ts.map +0 -1
- package/dist/test/unit/transaction.js +0 -269
- package/dist/test/unit/transactionBuilder/addressInitializationBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/addressInitializationBuilder.js +0 -265
- package/dist/test/unit/transactionBuilder/base.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/base.js +0 -233
- package/dist/test/unit/transactionBuilder/batchTransactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/batchTransactionBuilder.js +0 -521
- package/dist/test/unit/transactionBuilder/claimBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/claimBuilder.js +0 -129
- package/dist/test/unit/transactionBuilder/proxyBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/proxyBuilder.js +0 -88
- package/dist/test/unit/transactionBuilder/singeltonRegistry.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/stakingBuilder.js +0 -235
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transactionBuilderFactory.js +0 -107
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/transferBuilder.js +0 -437
- package/dist/test/unit/transactionBuilder/unnominateBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/unnominateBuilder.js +0 -97
- package/dist/test/unit/transactionBuilder/unstakeBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/unstakeBuilder.js +0 -116
- package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/withdrawUnstakedBuilder.js +0 -115
- package/dist/test/unit/utils.js +0 -117
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/addressInitializationBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/batchTransactionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/claimBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/errors.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/iface.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/iface_utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/nativeTransferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/proxyBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/singletonRegistry.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/stakingBuilder.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/transactionBuilderFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/txnSchema.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/unnominateBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/unstakeBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/withdrawUnstakedBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/register.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/mainnet.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/polkadotAssetHub.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/westend.d.ts +0 -0
- /package/dist/{src → cjs/src}/resources/westendAssetHub.d.ts +0 -0
- /package/dist/{src → cjs/src}/tdot.d.ts +0 -0
- /package/dist/{test → cjs/test}/fixtures.d.ts +0 -0
- /package/dist/{test → cjs/test}/resources/index.d.ts +0 -0
- /package/dist/{test → cjs/test}/resources/materialData.json +0 -0
- /package/dist/{test → cjs/test}/resources/materialDataModified.json +0 -0
- /package/dist/{test → cjs/test}/resources/testnet.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/address.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/dot.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/keypair.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transaction.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/addressInitializationBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/base.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/batchTransactionBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/claimBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/proxyBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/singeltonRegistry.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/stakingBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transactionBuilderFactory.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/transferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/unnominateBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/unstakeBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transactionBuilder/withdrawUnstakedBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/utils.d.ts +0 -0
- /package/dist/{src → esm}/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/addressInitializationBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/batchTransactionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/claimBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/errors.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/iface.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/iface_utils.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/nativeTransferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/proxyBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/singletonRegistry.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/stakingBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilderFactory.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/txnSchema.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/unnominateBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/unstakeBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/utils.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/withdrawUnstakedBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/register.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/index.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/mainnet.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/polkadotAssetHub.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/westend.d.ts.map +0 -0
- /package/dist/{src → esm}/resources/westendAssetHub.d.ts.map +0 -0
- /package/dist/{src → esm}/tdot.d.ts.map +0 -0
|
@@ -1,111 +0,0 @@
|
|
|
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 sdk_core_1 = require("@bitgo/sdk-core");
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const bs58_1 = __importDefault(require("bs58"));
|
|
9
|
-
const should_1 = __importDefault(require("should"));
|
|
10
|
-
const src_1 = require("../../src");
|
|
11
|
-
const utils_1 = __importDefault(require("../../src/lib/utils"));
|
|
12
|
-
const resources_1 = require("../resources");
|
|
13
|
-
describe('Dot KeyPair', () => {
|
|
14
|
-
const defaultSeed = { seed: Buffer.alloc(32) };
|
|
15
|
-
const { account1, account2, account3, default: defaultAccount, bs58Account } = resources_1.accounts;
|
|
16
|
-
describe('Keypair creation', () => {
|
|
17
|
-
it('initial state', () => {
|
|
18
|
-
const keyPair = new src_1.KeyPair();
|
|
19
|
-
should_1.default.exists(keyPair.getKeys().prv);
|
|
20
|
-
should_1.default.exists(keyPair.getKeys().pub);
|
|
21
|
-
should_1.default.equal(keyPair.getKeys().prv?.length, 64);
|
|
22
|
-
should_1.default.equal(keyPair.getKeys().pub.length, 64);
|
|
23
|
-
});
|
|
24
|
-
it('initialization from private key', () => {
|
|
25
|
-
let keyPair = new src_1.KeyPair({ prv: account1.secretKey });
|
|
26
|
-
should_1.default.equal(keyPair.getKeys().prv, account1.secretKey);
|
|
27
|
-
should_1.default.equal(keyPair.getKeys().pub, account1.publicKey);
|
|
28
|
-
keyPair = new src_1.KeyPair({ prv: account2.secretKey });
|
|
29
|
-
should_1.default.equal(keyPair.getKeys().prv, account2.secretKey);
|
|
30
|
-
should_1.default.equal(keyPair.getKeys().pub, account2.publicKey);
|
|
31
|
-
});
|
|
32
|
-
it('initialization from public key', () => {
|
|
33
|
-
const keyPair = new src_1.KeyPair({ pub: account3.publicKey });
|
|
34
|
-
should_1.default.equal(keyPair.getKeys().pub, account3.publicKey);
|
|
35
|
-
});
|
|
36
|
-
it('initialization from base58 public key', () => {
|
|
37
|
-
const decodedbs58Buffer = bs58_1.default.decode(bs58Account.publicKey);
|
|
38
|
-
const publicKeyHexString = decodedbs58Buffer.toString('hex');
|
|
39
|
-
const keyPair = new src_1.KeyPair({ pub: bs58Account.publicKey });
|
|
40
|
-
should_1.default.equal(keyPair.getKeys().pub, publicKeyHexString);
|
|
41
|
-
});
|
|
42
|
-
});
|
|
43
|
-
describe('KeyPair validation', () => {
|
|
44
|
-
it('should fail to create from an invalid seed', () => {
|
|
45
|
-
const seed = { seed: Buffer.alloc(8) }; // Seed should be 512 bits (64 bytes)
|
|
46
|
-
assert_1.default.throws(() => new src_1.KeyPair(seed), /bad seed size/);
|
|
47
|
-
});
|
|
48
|
-
it('should create from a valid seed', () => {
|
|
49
|
-
const seed = { seed: Buffer.alloc(32) }; // Seed should be 512 bits (64 bytes)
|
|
50
|
-
should_1.default.doesNotThrow(() => new src_1.KeyPair(seed));
|
|
51
|
-
});
|
|
52
|
-
it('should fail to create from an invalid public key', () => {
|
|
53
|
-
const source = {
|
|
54
|
-
pub: '01D63D',
|
|
55
|
-
};
|
|
56
|
-
assert_1.default.throws(() => new src_1.KeyPair(source), /Expected a valid key to convert/);
|
|
57
|
-
});
|
|
58
|
-
it('should fail to create from an invalid private key', () => {
|
|
59
|
-
const source = {
|
|
60
|
-
prv: '82A34',
|
|
61
|
-
};
|
|
62
|
-
assert_1.default.throws(() => new src_1.KeyPair(source), /Invalid base32 characters/);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe('getAddress', () => {
|
|
66
|
-
it('should get an address', () => {
|
|
67
|
-
let keyPair = new src_1.KeyPair(defaultSeed);
|
|
68
|
-
let address = keyPair.getAddress(sdk_core_1.DotAddressFormat.substrate);
|
|
69
|
-
address.should.equal(defaultAccount.address);
|
|
70
|
-
keyPair = new src_1.KeyPair({ prv: account2.secretKey });
|
|
71
|
-
address = keyPair.getAddress(sdk_core_1.DotAddressFormat.substrate);
|
|
72
|
-
address.should.equal(account2.address);
|
|
73
|
-
});
|
|
74
|
-
it('should get an address with bs58 pub key', () => {
|
|
75
|
-
const keyPair = new src_1.KeyPair({ pub: bs58Account.publicKey });
|
|
76
|
-
const address = keyPair.getAddress(sdk_core_1.DotAddressFormat.substrate);
|
|
77
|
-
address.should.equal(bs58Account.address);
|
|
78
|
-
utils_1.default.isValidAddress(address).should.equal(true);
|
|
79
|
-
});
|
|
80
|
-
it('should get a polkadot network address', () => {
|
|
81
|
-
const keyPair = new src_1.KeyPair({ pub: bs58Account.publicKey });
|
|
82
|
-
const address = keyPair.getAddress(sdk_core_1.DotAddressFormat.polkadot);
|
|
83
|
-
address.should.equal(bs58Account.polkadotAddress);
|
|
84
|
-
utils_1.default.isValidAddress(address).should.equal(true);
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
describe('getSigningKeyPair', () => {
|
|
88
|
-
it('should create a signing keypair', () => {
|
|
89
|
-
const keyPair = new src_1.KeyPair({ prv: account1.secretKey });
|
|
90
|
-
const address = keyPair.getAddress(sdk_core_1.DotAddressFormat.substrate);
|
|
91
|
-
address.should.equal(account1.address);
|
|
92
|
-
});
|
|
93
|
-
});
|
|
94
|
-
describe('getKeys', () => {
|
|
95
|
-
it('should get private and public keys in the protocol default format', () => {
|
|
96
|
-
const keyPair = new src_1.KeyPair(defaultSeed);
|
|
97
|
-
const { prv, pub } = keyPair.getKeys();
|
|
98
|
-
pub.should.equal(defaultAccount.publicKey);
|
|
99
|
-
if (prv) {
|
|
100
|
-
prv.should.equal(defaultAccount.secretKey);
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
it('should get private and public keys for a random seed', () => {
|
|
104
|
-
const keyPair = new src_1.KeyPair();
|
|
105
|
-
const { prv, pub } = keyPair.getKeys();
|
|
106
|
-
should_1.default.exist(prv);
|
|
107
|
-
should_1.default.exist(pub);
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5cGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlwYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOENBQW1EO0FBQ25ELG9EQUE0QjtBQUM1QixnREFBd0I7QUFDeEIsb0RBQTRCO0FBQzVCLG1DQUFvQztBQUNwQyxnRUFBd0M7QUFDeEMsNENBQXdDO0FBRXhDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO0lBQzNCLE1BQU0sV0FBVyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUUvQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsR0FBRyxvQkFBUSxDQUFDO0lBRXhGLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxHQUFHLEVBQUU7UUFDaEMsRUFBRSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7WUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLEVBQUUsQ0FBQztZQUM5QixnQkFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFLEdBQUcsRUFBRTtZQUN6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RUFBRTtZQUMzRSxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6QyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDM0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDUixHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHNEQUFzRCxFQUFFLEdBQUcsRUFBRTtZQUM5RCxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQzlCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLGdCQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERvdEFkZHJlc3NGb3JtYXQgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IGJzNTggZnJvbSAnYnM1OCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCB7IGFjY291bnRzIH0gZnJvbSAnLi4vcmVzb3VyY2VzJztcblxuZGVzY3JpYmUoJ0RvdCBLZXlQYWlyJywgKCkgPT4ge1xuICBjb25zdCBkZWZhdWx0U2VlZCA9IHsgc2VlZDogQnVmZmVyLmFsbG9jKDMyKSB9O1xuXG4gIGNvbnN0IHsgYWNjb3VudDEsIGFjY291bnQyLCBhY2NvdW50MywgZGVmYXVsdDogZGVmYXVsdEFjY291bnQsIGJzNThBY2NvdW50IH0gPSBhY2NvdW50cztcblxuICBkZXNjcmliZSgnS2V5cGFpciBjcmVhdGlvbicsICgpID0+IHtcbiAgICBpdCgnaW5pdGlhbCBzdGF0ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlQYWlyLmdldEtleXMoKS5wcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlQYWlyLmdldEtleXMoKS5wdWIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnBydj8ubGVuZ3RoLCA2NCk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViLmxlbmd0aCwgNjQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2luaXRpYWxpemF0aW9uIGZyb20gcHJpdmF0ZSBrZXknLCAoKSA9PiB7XG4gICAgICBsZXQga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBhY2NvdW50MS5zZWNyZXRLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHJ2LCBhY2NvdW50MS5zZWNyZXRLZXkpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1YiwgYWNjb3VudDEucHVibGljS2V5KTtcblxuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBhY2NvdW50Mi5zZWNyZXRLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHJ2LCBhY2NvdW50Mi5zZWNyZXRLZXkpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1YiwgYWNjb3VudDIucHVibGljS2V5KTtcbiAgICB9KTtcblxuICAgIGl0KCdpbml0aWFsaXphdGlvbiBmcm9tIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IGFjY291bnQzLnB1YmxpY0tleSB9KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wdWIsIGFjY291bnQzLnB1YmxpY0tleSk7XG4gICAgfSk7XG5cbiAgICBpdCgnaW5pdGlhbGl6YXRpb24gZnJvbSBiYXNlNTggcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGRlY29kZWRiczU4QnVmZmVyOiBCdWZmZXIgPSBiczU4LmRlY29kZShiczU4QWNjb3VudC5wdWJsaWNLZXkpO1xuICAgICAgY29uc3QgcHVibGljS2V5SGV4U3RyaW5nID0gZGVjb2RlZGJzNThCdWZmZXIudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IGJzNThBY2NvdW50LnB1YmxpY0tleSB9KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wdWIsIHB1YmxpY0tleUhleFN0cmluZyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdLZXlQYWlyIHZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBmcm9tIGFuIGludmFsaWQgc2VlZCcsICgpID0+IHtcbiAgICAgIGNvbnN0IHNlZWQgPSB7IHNlZWQ6IEJ1ZmZlci5hbGxvYyg4KSB9OyAvLyAgU2VlZCBzaG91bGQgYmUgNTEyIGJpdHMgKDY0IGJ5dGVzKVxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzZWVkKSwgL2JhZCBzZWVkIHNpemUvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgY3JlYXRlIGZyb20gYSB2YWxpZCBzZWVkJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2VlZCA9IHsgc2VlZDogQnVmZmVyLmFsbG9jKDMyKSB9OyAvLyAgU2VlZCBzaG91bGQgYmUgNTEyIGJpdHMgKDY0IGJ5dGVzKVxuICAgICAgc2hvdWxkLmRvZXNOb3RUaHJvdygoKSA9PiBuZXcgS2V5UGFpcihzZWVkKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gY3JlYXRlIGZyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICcwMUQ2M0QnLFxuICAgICAgfTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSwgL0V4cGVjdGVkIGEgdmFsaWQga2V5IHRvIGNvbnZlcnQvKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byBjcmVhdGUgZnJvbSBhbiBpbnZhbGlkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwcnY6ICc4MkEzNCcsXG4gICAgICB9O1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBuZXcgS2V5UGFpcihzb3VyY2UpLCAvSW52YWxpZCBiYXNlMzIgY2hhcmFjdGVycy8pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0QWRkcmVzcycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdldCBhbiBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgbGV0IGtleVBhaXIgPSBuZXcgS2V5UGFpcihkZWZhdWx0U2VlZCk7XG4gICAgICBsZXQgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcyhEb3RBZGRyZXNzRm9ybWF0LnN1YnN0cmF0ZSk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbChkZWZhdWx0QWNjb3VudC5hZGRyZXNzKTtcblxuICAgICAga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBhY2NvdW50Mi5zZWNyZXRLZXkgfSk7XG4gICAgICBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKERvdEFkZHJlc3NGb3JtYXQuc3Vic3RyYXRlKTtcbiAgICAgIGFkZHJlc3Muc2hvdWxkLmVxdWFsKGFjY291bnQyLmFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgYW4gYWRkcmVzcyB3aXRoIGJzNTggcHViIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogYnM1OEFjY291bnQucHVibGljS2V5IH0pO1xuICAgICAgY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcyhEb3RBZGRyZXNzRm9ybWF0LnN1YnN0cmF0ZSk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbChiczU4QWNjb3VudC5hZGRyZXNzKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IGEgcG9sa2Fkb3QgbmV0d29yayBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViOiBiczU4QWNjb3VudC5wdWJsaWNLZXkgfSk7XG4gICAgICBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKERvdEFkZHJlc3NGb3JtYXQucG9sa2Fkb3QpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwoYnM1OEFjY291bnQucG9sa2Fkb3RBZGRyZXNzKTtcbiAgICAgIHV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldFNpZ25pbmdLZXlQYWlyJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY3JlYXRlIGEgc2lnbmluZyBrZXlwYWlyJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBhY2NvdW50MS5zZWNyZXRLZXkgfSk7XG4gICAgICBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKERvdEFkZHJlc3NGb3JtYXQuc3Vic3RyYXRlKTtcbiAgICAgIGFkZHJlc3Muc2hvdWxkLmVxdWFsKGFjY291bnQxLmFkZHJlc3MpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0S2V5cycsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIGdldCBwcml2YXRlIGFuZCBwdWJsaWMga2V5cyBpbiB0aGUgcHJvdG9jb2wgZGVmYXVsdCBmb3JtYXQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoZGVmYXVsdFNlZWQpO1xuICAgICAgY29uc3QgeyBwcnYsIHB1YiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgICBwdWIuc2hvdWxkLmVxdWFsKGRlZmF1bHRBY2NvdW50LnB1YmxpY0tleSk7XG4gICAgICBpZiAocHJ2KSB7XG4gICAgICAgIHBydi5zaG91bGQuZXF1YWwoZGVmYXVsdEFjY291bnQuc2VjcmV0S2V5KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHByaXZhdGUgYW5kIHB1YmxpYyBrZXlzIGZvciBhIHJhbmRvbSBzZWVkJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKCk7XG4gICAgICBjb25zdCB7IHBydiwgcHViIH0gPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdChwcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0KHB1Yik7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":""}
|
|
@@ -1,269 +0,0 @@
|
|
|
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 sdk_core_1 = require("@bitgo/sdk-core");
|
|
7
|
-
const assert_1 = __importDefault(require("assert"));
|
|
8
|
-
const should_1 = __importDefault(require("should"));
|
|
9
|
-
const src_1 = require("../../src");
|
|
10
|
-
const utils_1 = __importDefault(require("../../src/lib/utils"));
|
|
11
|
-
const resources_1 = require("../resources");
|
|
12
|
-
const base_1 = require("./transactionBuilder/base");
|
|
13
|
-
const transaction_1 = require("../../src/lib/transaction");
|
|
14
|
-
class StubTransaction extends src_1.Transaction {
|
|
15
|
-
setTxJson(json) {
|
|
16
|
-
this._txJson = json;
|
|
17
|
-
}
|
|
18
|
-
toJson() {
|
|
19
|
-
if (this._txJson) {
|
|
20
|
-
return this._txJson;
|
|
21
|
-
}
|
|
22
|
-
return super.toJson();
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
describe('Dot Transaction', () => {
|
|
26
|
-
let tx;
|
|
27
|
-
const config = (0, base_1.buildTestConfig)();
|
|
28
|
-
const material = utils_1.default.getMaterial(config);
|
|
29
|
-
beforeEach(() => {
|
|
30
|
-
tx = new StubTransaction(config);
|
|
31
|
-
});
|
|
32
|
-
describe('empty transaction', () => {
|
|
33
|
-
it('should throw empty transaction', () => {
|
|
34
|
-
assert_1.default.throws(() => tx.toJson(), /Empty transaction/);
|
|
35
|
-
assert_1.default.throws(() => tx.toBroadcastFormat(), /Empty transaction/);
|
|
36
|
-
});
|
|
37
|
-
it('should not sign', async () => {
|
|
38
|
-
try {
|
|
39
|
-
tx.sign(new src_1.KeyPair({ prv: resources_1.accounts.account1.secretKey }));
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
should_1.default.equal(e.message, 'No transaction data to sign');
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
describe('sign transaction', () => {
|
|
47
|
-
it('cannot sign - wrong account secret', () => {
|
|
48
|
-
tx.sender(resources_1.accounts.account1.address);
|
|
49
|
-
should_1.default.deepEqual(tx.canSign({ key: resources_1.accounts.account2.secretKey }), false);
|
|
50
|
-
});
|
|
51
|
-
it('can sign', () => {
|
|
52
|
-
tx.sender(resources_1.accounts.account2.address);
|
|
53
|
-
should_1.default.deepEqual(tx.canSign({ key: resources_1.accounts.account2.secretKey }), true);
|
|
54
|
-
});
|
|
55
|
-
it('can generate valid txHash from signed transaction', () => {
|
|
56
|
-
const signedTx = resources_1.rawTx.transfer.westendSigned2;
|
|
57
|
-
const txHash = utils_1.default.getTxHash(signedTx);
|
|
58
|
-
const expectedHash = '0x252e9b53c1d068c275ef4c9b5afcffb2df42859203be1305d148c0c1441a5b20';
|
|
59
|
-
txHash.should.equal(expectedHash);
|
|
60
|
-
});
|
|
61
|
-
});
|
|
62
|
-
describe('should build from raw unsigned tx', async () => {
|
|
63
|
-
it('Transaction size validation', async () => {
|
|
64
|
-
const builder = new src_1.TransferBuilder(config).material(material);
|
|
65
|
-
builder.from(resources_1.rawTx.transfer.unsigned);
|
|
66
|
-
builder
|
|
67
|
-
.validity({ firstValid: 3933 })
|
|
68
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
|
|
69
|
-
.sender({ address: resources_1.accounts.account1.address });
|
|
70
|
-
const tx = (await builder.build());
|
|
71
|
-
should_1.default.deepEqual(tx.transactionSize(), resources_1.rawTx.transfer.unsigned.length / 2);
|
|
72
|
-
});
|
|
73
|
-
it('Should rebuild different hex if keepAlive is true or false for transferAll txs', async () => {
|
|
74
|
-
const keepAliveFalseBuilder = new src_1.TransferBuilder(config).material(material);
|
|
75
|
-
keepAliveFalseBuilder.from(resources_1.rawTx.transfer.unsigned);
|
|
76
|
-
keepAliveFalseBuilder
|
|
77
|
-
.validity({ firstValid: 3933 })
|
|
78
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
|
|
79
|
-
.sender({ address: resources_1.accounts.account1.address });
|
|
80
|
-
const keepAliveFalseTx = (await keepAliveFalseBuilder.build()).toJson();
|
|
81
|
-
const keepAliveTrueBuilder = new src_1.TransferBuilder(config).material(material);
|
|
82
|
-
keepAliveTrueBuilder.from(resources_1.rawTx.transferAll.signed);
|
|
83
|
-
keepAliveTrueBuilder
|
|
84
|
-
.validity({ firstValid: 3933 })
|
|
85
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
|
|
86
|
-
.sender({ address: resources_1.accounts.account1.address });
|
|
87
|
-
const keepAliveTrueTx = (await keepAliveTrueBuilder.build()).toJson();
|
|
88
|
-
should_1.default.notEqual(keepAliveFalseTx.id, keepAliveTrueTx.id);
|
|
89
|
-
should_1.default.notEqual(keepAliveFalseTx.keepAlive, keepAliveTrueTx.keepAlive);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
describe('Dot Explain Transaction', () => {
|
|
93
|
-
// let tx: StubTransaction;
|
|
94
|
-
const sender = resources_1.accounts.account1;
|
|
95
|
-
const receiver = resources_1.accounts.account3;
|
|
96
|
-
it('should explain a transfer transaction', async () => {
|
|
97
|
-
const json = JSON.parse(resources_1.jsonTransactions.transfer);
|
|
98
|
-
tx.setTxJson(json);
|
|
99
|
-
tx.transactionType(sdk_core_1.TransactionType.Send);
|
|
100
|
-
const explain = tx.explainTransaction();
|
|
101
|
-
explain.id.should.equal('0xecb860905342cf985b39276a07d6e6696746de4623c07df863f69cba153f939a');
|
|
102
|
-
explain.outputAmount.should.equal('1000000000000');
|
|
103
|
-
explain.outputs[0].amount.should.equal('1000000000000');
|
|
104
|
-
explain.outputs[0].address.should.equal(resources_1.accounts.account2.address);
|
|
105
|
-
explain.fee.fee.should.equal('0');
|
|
106
|
-
explain.changeAmount.should.equal('0');
|
|
107
|
-
explain.type.should.equal(sdk_core_1.TransactionType.Send);
|
|
108
|
-
});
|
|
109
|
-
it('should explain a proxy transfer transaction', async () => {
|
|
110
|
-
const json = JSON.parse(resources_1.jsonTransactions.proxyTransfer);
|
|
111
|
-
tx.setTxJson(json);
|
|
112
|
-
tx.transactionType(sdk_core_1.TransactionType.Send);
|
|
113
|
-
const explain = tx.explainTransaction();
|
|
114
|
-
explain.outputAmount.should.equal('90034235235322');
|
|
115
|
-
explain.outputs[0].amount.should.equal('90034235235322');
|
|
116
|
-
explain.outputs[0].address.should.equal(resources_1.accounts.account2.address);
|
|
117
|
-
explain.fee.fee.should.equal('0');
|
|
118
|
-
explain.changeAmount.should.equal('0');
|
|
119
|
-
explain.type.should.equal(sdk_core_1.TransactionType.Send);
|
|
120
|
-
explain.owner?.should.equal(sender.address);
|
|
121
|
-
explain.forceProxyType?.should.equal('Any');
|
|
122
|
-
});
|
|
123
|
-
it('should explain a address initialization transaction', async () => {
|
|
124
|
-
const json = JSON.parse(resources_1.jsonTransactions.walletInitialization);
|
|
125
|
-
tx.setTxJson(json);
|
|
126
|
-
tx.transactionType(sdk_core_1.TransactionType.AddressInitialization);
|
|
127
|
-
const explain = tx.explainTransaction();
|
|
128
|
-
explain.outputAmount.should.equal('0');
|
|
129
|
-
explain.fee.fee.should.equal('0');
|
|
130
|
-
explain.changeAmount.should.equal('0');
|
|
131
|
-
explain.type.should.equal(sdk_core_1.TransactionType.AddressInitialization);
|
|
132
|
-
explain.owner?.should.equal(receiver.address);
|
|
133
|
-
explain.proxyType?.should.equal('Any');
|
|
134
|
-
explain.delay?.should.equal('0');
|
|
135
|
-
});
|
|
136
|
-
it('should explain a staking transaction', async () => {
|
|
137
|
-
const json = JSON.parse(resources_1.jsonTransactions.staking);
|
|
138
|
-
tx.setTxJson(json);
|
|
139
|
-
tx.transactionType(sdk_core_1.TransactionType.StakingActivate);
|
|
140
|
-
const explain = tx.explainTransaction();
|
|
141
|
-
explain.outputAmount.should.equal('50000000000000');
|
|
142
|
-
explain.outputs[0].amount.should.equal('50000000000000');
|
|
143
|
-
explain.outputs[0].address.should.equal(resources_1.accounts.account2.address);
|
|
144
|
-
explain.fee.fee.should.equal('0');
|
|
145
|
-
explain.changeAmount.should.equal('0');
|
|
146
|
-
explain.type.should.equal(sdk_core_1.TransactionType.StakingActivate);
|
|
147
|
-
explain.payee?.should.equal('Staked');
|
|
148
|
-
});
|
|
149
|
-
it('should explain a staking transaction with receiver account', async () => {
|
|
150
|
-
const json = JSON.parse(resources_1.jsonTransactions.stakingPayee);
|
|
151
|
-
tx.setTxJson(json);
|
|
152
|
-
tx.transactionType(sdk_core_1.TransactionType.StakingActivate);
|
|
153
|
-
const explain = tx.explainTransaction();
|
|
154
|
-
explain.outputAmount.should.equal('50000000000000');
|
|
155
|
-
explain.outputs[0].amount.should.equal('50000000000000');
|
|
156
|
-
explain.outputs[0].address.should.equal(resources_1.accounts.account2.address);
|
|
157
|
-
explain.fee.fee.should.equal('0');
|
|
158
|
-
explain.changeAmount.should.equal('0');
|
|
159
|
-
explain.type.should.equal(sdk_core_1.TransactionType.StakingActivate);
|
|
160
|
-
explain.payee?.should.equal(resources_1.accounts.account2.address);
|
|
161
|
-
});
|
|
162
|
-
it('should explain a staking unlock transaction', async () => {
|
|
163
|
-
const json = JSON.parse(resources_1.jsonTransactions.unstaking);
|
|
164
|
-
tx.setTxJson(json);
|
|
165
|
-
tx.transactionType(sdk_core_1.TransactionType.StakingUnlock);
|
|
166
|
-
const explain = tx.explainTransaction();
|
|
167
|
-
explain.outputAmount.should.equal('50000000000000');
|
|
168
|
-
explain.outputs[0].amount.should.equal('50000000000000');
|
|
169
|
-
explain.outputs[0].address.should.equal(resources_1.accounts.account1.address);
|
|
170
|
-
explain.fee.fee.should.equal('0');
|
|
171
|
-
explain.changeAmount.should.equal('0');
|
|
172
|
-
explain.type.should.equal(sdk_core_1.TransactionType.StakingUnlock);
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
describe('inputs and outputs', () => {
|
|
176
|
-
it('should generate inputs and output for a batch staking transaction', async () => {
|
|
177
|
-
const builder = new src_1.BatchTransactionBuilder(config).material(material);
|
|
178
|
-
builder.from(resources_1.rawTx.stake.batchAll.signed);
|
|
179
|
-
builder
|
|
180
|
-
.validity({ firstValid: 3933 })
|
|
181
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
|
|
182
|
-
const tx = await builder.build();
|
|
183
|
-
(0, should_1.default)(tx.inputs).not.be.null();
|
|
184
|
-
(0, should_1.default)(tx.inputs.length).eql(2);
|
|
185
|
-
// Staked amount
|
|
186
|
-
(0, should_1.default)(tx.inputs[0].address).eql(resources_1.accounts.account1.address);
|
|
187
|
-
(0, should_1.default)(tx.inputs[0].value).eql('500000000000');
|
|
188
|
-
(0, should_1.default)(tx.inputs[0].coin).eql('tdot');
|
|
189
|
-
// Add proxy storage fee
|
|
190
|
-
(0, should_1.default)(tx.inputs[1].address).eql(resources_1.accounts.account1.address);
|
|
191
|
-
(0, should_1.default)(tx.inputs[1].value).eql('10036500000');
|
|
192
|
-
(0, should_1.default)(tx.inputs[1].coin).eql('tdot');
|
|
193
|
-
(0, should_1.default)(tx.outputs).not.be.null();
|
|
194
|
-
(0, should_1.default)(tx.outputs.length).eql(2);
|
|
195
|
-
// Staked amount
|
|
196
|
-
(0, should_1.default)(tx.outputs[0].address).eql(transaction_1.STAKING_DESTINATION);
|
|
197
|
-
(0, should_1.default)(tx.outputs[0].value).eql('500000000000');
|
|
198
|
-
(0, should_1.default)(tx.outputs[0].coin).eql('tdot');
|
|
199
|
-
// Add proxy storage fee
|
|
200
|
-
(0, should_1.default)(tx.outputs[1].address).eql(resources_1.accounts.stakingProxy.address);
|
|
201
|
-
(0, should_1.default)(tx.outputs[1].value).eql('10036500000');
|
|
202
|
-
(0, should_1.default)(tx.outputs[1].coin).eql('tdot');
|
|
203
|
-
});
|
|
204
|
-
it('should generate inputs and output for a batch unstaking transaction', async () => {
|
|
205
|
-
const builder = new src_1.BatchTransactionBuilder(config).material(material);
|
|
206
|
-
builder.from(resources_1.rawTx.unstake.batchAll.signed);
|
|
207
|
-
builder
|
|
208
|
-
.validity({ firstValid: 3933 })
|
|
209
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
|
|
210
|
-
const tx = await builder.build();
|
|
211
|
-
(0, should_1.default)(tx.inputs).not.be.null();
|
|
212
|
-
(0, should_1.default)(tx.inputs.length).eql(1);
|
|
213
|
-
// Remove proxy storage fee refund
|
|
214
|
-
(0, should_1.default)(tx.inputs[0].address).eql(resources_1.accounts.stakingProxy.address);
|
|
215
|
-
(0, should_1.default)(tx.inputs[0].value).eql('10036500000');
|
|
216
|
-
(0, should_1.default)(tx.inputs[0].coin).eql('tdot');
|
|
217
|
-
(0, should_1.default)(tx.outputs).not.be.null();
|
|
218
|
-
(0, should_1.default)(tx.outputs.length).eql(1);
|
|
219
|
-
// Remove proxy storage fee refund
|
|
220
|
-
(0, should_1.default)(tx.outputs[0].address).eql(resources_1.accounts.account1.address);
|
|
221
|
-
(0, should_1.default)(tx.outputs[0].value).eql('10036500000');
|
|
222
|
-
(0, should_1.default)(tx.outputs[0].coin).eql('tdot');
|
|
223
|
-
});
|
|
224
|
-
it('should generate inputs and output for a stake more transaction', async () => {
|
|
225
|
-
const builder = new src_1.StakingBuilder(config).material(material);
|
|
226
|
-
builder.from(resources_1.rawTx.stakeMore.signed);
|
|
227
|
-
builder
|
|
228
|
-
.validity({ firstValid: 3933 })
|
|
229
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
|
|
230
|
-
const tx = await builder.build();
|
|
231
|
-
(0, should_1.default)(tx.inputs).not.be.null();
|
|
232
|
-
(0, should_1.default)(tx.inputs.length).eql(1);
|
|
233
|
-
// Amount to add to stake
|
|
234
|
-
(0, should_1.default)(tx.inputs[0].address).eql(resources_1.accounts.account1.address);
|
|
235
|
-
(0, should_1.default)(tx.inputs[0].value).eql('90034235235322');
|
|
236
|
-
(0, should_1.default)(tx.inputs[0].coin).eql('tdot');
|
|
237
|
-
(0, should_1.default)(tx.outputs).not.be.null();
|
|
238
|
-
(0, should_1.default)(tx.outputs.length).eql(1);
|
|
239
|
-
(0, should_1.default)(tx.outputs[0].address).eql(transaction_1.STAKING_DESTINATION);
|
|
240
|
-
(0, should_1.default)(tx.outputs[0].value).eql('90034235235322');
|
|
241
|
-
(0, should_1.default)(tx.outputs[0].coin).eql('tdot');
|
|
242
|
-
});
|
|
243
|
-
it('should generate inputs and output for an unstake transaction', async () => {
|
|
244
|
-
const builder = new src_1.UnstakeBuilder(config).material(material);
|
|
245
|
-
builder.from(resources_1.rawTx.unstake.signed);
|
|
246
|
-
builder
|
|
247
|
-
.validity({ firstValid: 3933 })
|
|
248
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
|
|
249
|
-
const tx = await builder.build();
|
|
250
|
-
(0, should_1.default)(tx.inputs).not.be.null();
|
|
251
|
-
(0, should_1.default)(tx.inputs.length).eql(0);
|
|
252
|
-
(0, should_1.default)(tx.outputs).not.be.null();
|
|
253
|
-
(0, should_1.default)(tx.outputs.length).eql(0);
|
|
254
|
-
});
|
|
255
|
-
it('should generate inputs and output for a withdraw staked transaction', async () => {
|
|
256
|
-
const builder = new src_1.WithdrawUnstakedBuilder(config).material(material);
|
|
257
|
-
builder.from(resources_1.rawTx.withdrawUnbonded.signed);
|
|
258
|
-
builder
|
|
259
|
-
.validity({ firstValid: 3933 })
|
|
260
|
-
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
|
|
261
|
-
const tx = await builder.build();
|
|
262
|
-
(0, should_1.default)(tx.inputs).not.be.null();
|
|
263
|
-
(0, should_1.default)(tx.inputs.length).eql(0);
|
|
264
|
-
(0, should_1.default)(tx.outputs).not.be.null();
|
|
265
|
-
(0, should_1.default)(tx.outputs.length).eql(0);
|
|
266
|
-
});
|
|
267
|
-
});
|
|
268
|
-
});
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBa0Q7QUFDbEQsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixtQ0FTbUI7QUFDbkIsZ0VBQXdDO0FBQ3hDLDRDQUFpRTtBQUNqRSxvREFBNEQ7QUFDNUQsMkRBQWdFO0FBRWhFLE1BQU0sZUFBZ0IsU0FBUSxpQkFBVztJQUd2QyxTQUFTLENBQUMsSUFBc0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQUVELFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsSUFBSSxFQUFtQixDQUFDO0lBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUEsc0JBQWUsR0FBRSxDQUFDO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLGVBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFM0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNkLEVBQUUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLEVBQUU7UUFDakMsRUFBRSxDQUFDLGdDQUFnQyxFQUFFLEdBQUcsRUFBRTtZQUN4QyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztZQUN0RCxnQkFBTSxDQUFDLE1BQU0sQ0FB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RSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLElBQUEsZ0JBQU0sRUFBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHtcbiAgS2V5UGFpcixcbiAgVHJhbnNhY3Rpb24sXG4gIFRyYW5zZmVyQnVpbGRlcixcbiAgSW50ZXJmYWNlLFxuICBCYXRjaFRyYW5zYWN0aW9uQnVpbGRlcixcbiAgU3Rha2luZ0J1aWxkZXIsXG4gIFVuc3Rha2VCdWlsZGVyLFxuICBXaXRoZHJhd1Vuc3Rha2VkQnVpbGRlcixcbn0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCB1dGlscyBmcm9tICcuLi8uLi9zcmMvbGliL3V0aWxzJztcbmltcG9ydCB7IHJhd1R4LCBhY2NvdW50cywganNvblRyYW5zYWN0aW9ucyB9IGZyb20gJy4uL3Jlc291cmNlcyc7XG5pbXBvcnQgeyBidWlsZFRlc3RDb25maWcgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlci9iYXNlJztcbmltcG9ydCB7IFNUQUtJTkdfREVTVElOQVRJT04gfSBmcm9tICcuLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uJztcblxuY2xhc3MgU3R1YlRyYW5zYWN0aW9uIGV4dGVuZHMgVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIF90eEpzb246IEludGVyZmFjZS5UeERhdGE7XG5cbiAgc2V0VHhKc29uKGpzb246IEludGVyZmFjZS5UeERhdGEpIHtcbiAgICB0aGlzLl90eEpzb24gPSBqc29uO1xuICB9XG5cbiAgdG9Kc29uKCk6IEludGVyZmFjZS5UeERhdGEge1xuICAgIGlmICh0aGlzLl90eEpzb24pIHtcbiAgICAgIHJldHVybiB0aGlzLl90eEpzb247XG4gICAgfVxuICAgIHJldHVybiBzdXBlci50b0pzb24oKTtcbiAgfVxufVxuXG5kZXNjcmliZSgnRG90IFRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICBsZXQgdHg6IFN0dWJUcmFuc2FjdGlvbjtcbiAgY29uc3QgY29uZmlnID0gYnVpbGRUZXN0Q29uZmlnKCk7XG4gIGNvbnN0IG1hdGVyaWFsID0gdXRpbHMuZ2V0TWF0ZXJpYWwoY29uZmlnKTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICB0eCA9IG5ldyBTdHViVHJhbnNhY3Rpb24oY29uZmlnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2VtcHR5IHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgZW1wdHkgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4LnRvSnNvbigpLCAvRW1wdHkgdHJhbnNhY3Rpb24vKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgL0VtcHR5IHRyYW5zYWN0aW9uLyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIG5vdCBzaWduJywgYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdHguc2lnbihuZXcgS2V5UGFpcih7IHBydjogYWNjb3VudHMuYWNjb3VudDEuc2VjcmV0S2V5IH0pKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2hvdWxkLmVxdWFsKGUubWVzc2FnZSwgJ05vIHRyYW5zYWN0aW9uIGRhdGEgdG8gc2lnbicpO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2lnbiB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnY2Fubm90IHNpZ24gLSB3cm9uZyBhY2NvdW50IHNlY3JldCcsICgpID0+IHtcbiAgICAgIHR4LnNlbmRlcihhY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguY2FuU2lnbih7IGtleTogYWNjb3VudHMuYWNjb3VudDIuc2VjcmV0S2V5IH0pLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FuIHNpZ24nLCAoKSA9PiB7XG4gICAgICB0eC5zZW5kZXIoYWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LmNhblNpZ24oeyBrZXk6IGFjY291bnRzLmFjY291bnQyLnNlY3JldEtleSB9KSwgdHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnY2FuIGdlbmVyYXRlIHZhbGlkIHR4SGFzaCBmcm9tIHNpZ25lZCB0cmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0gcmF3VHgudHJhbnNmZXIud2VzdGVuZFNpZ25lZDI7XG4gICAgICBjb25zdCB0eEhhc2ggPSB1dGlscy5nZXRUeEhhc2goc2lnbmVkVHgpO1xuICAgICAgY29uc3QgZXhwZWN0ZWRIYXNoID0gJzB4MjUyZTliNTNjMWQwNjhjMjc1ZWY0YzliNWFmY2ZmYjJkZjQyODU5MjAzYmUxMzA1ZDE0OGMwYzE0NDFhNWIyMCc7XG5cbiAgICAgIHR4SGFzaC5zaG91bGQuZXF1YWwoZXhwZWN0ZWRIYXNoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBidWlsZCBmcm9tIHJhdyB1bnNpZ25lZCB0eCcsIGFzeW5jICgpID0+IHtcbiAgICBpdCgnVHJhbnNhY3Rpb24gc2l6ZSB2YWxpZGF0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBUcmFuc2ZlckJ1aWxkZXIoY29uZmlnKS5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICBidWlsZGVyLmZyb20ocmF3VHgudHJhbnNmZXIudW5zaWduZWQpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzIH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJylcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IGFjY291bnRzLmFjY291bnQxLmFkZHJlc3MgfSk7XG4gICAgICBjb25zdCB0eCA9IChhd2FpdCBidWlsZGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC50cmFuc2FjdGlvblNpemUoKSwgcmF3VHgudHJhbnNmZXIudW5zaWduZWQubGVuZ3RoIC8gMik7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIHJlYnVpbGQgZGlmZmVyZW50IGhleCBpZiBrZWVwQWxpdmUgaXMgdHJ1ZSBvciBmYWxzZSBmb3IgdHJhbnNmZXJBbGwgdHhzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qga2VlcEFsaXZlRmFsc2VCdWlsZGVyID0gbmV3IFRyYW5zZmVyQnVpbGRlcihjb25maWcpLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgICAgIGtlZXBBbGl2ZUZhbHNlQnVpbGRlci5mcm9tKHJhd1R4LnRyYW5zZmVyLnVuc2lnbmVkKTtcbiAgICAgIGtlZXBBbGl2ZUZhbHNlQnVpbGRlclxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzIH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJylcbiAgICAgICAgLnNlbmRlcih7IGFkZHJlc3M6IGFjY291bnRzLmFjY291bnQxLmFkZHJlc3MgfSk7XG4gICAgICBjb25zdCBrZWVwQWxpdmVGYWxzZVR4ID0gKGF3YWl0IGtlZXBBbGl2ZUZhbHNlQnVpbGRlci5idWlsZCgpKS50b0pzb24oKTtcblxuICAgICAgY29uc3Qga2VlcEFsaXZlVHJ1ZUJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGNvbmZpZykubWF0ZXJpYWwobWF0ZXJpYWwpO1xuICAgICAga2VlcEFsaXZlVHJ1ZUJ1aWxkZXIuZnJvbShyYXdUeC50cmFuc2ZlckFsbC5zaWduZWQpO1xuICAgICAga2VlcEFsaXZlVHJ1ZUJ1aWxkZXJcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMyB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpXG4gICAgICAgIC5zZW5kZXIoeyBhZGRyZXNzOiBhY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzIH0pO1xuICAgICAgY29uc3Qga2VlcEFsaXZlVHJ1ZVR4ID0gKGF3YWl0IGtlZXBBbGl2ZVRydWVCdWlsZGVyLmJ1aWxkKCkpLnRvSnNvbigpO1xuXG4gICAgICBzaG91bGQubm90RXF1YWwoa2VlcEFsaXZlRmFsc2VUeC5pZCwga2VlcEFsaXZlVHJ1ZVR4LmlkKTtcbiAgICAgIHNob3VsZC5ub3RFcXVhbChrZWVwQWxpdmVGYWxzZVR4LmtlZXBBbGl2ZSwga2VlcEFsaXZlVHJ1ZVR4LmtlZXBBbGl2ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdEb3QgRXhwbGFpbiBUcmFuc2FjdGlvbicsICgpID0+IHtcbiAgICAvLyBsZXQgdHg6IFN0dWJUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBzZW5kZXIgPSBhY2NvdW50cy5hY2NvdW50MTtcbiAgICBjb25zdCByZWNlaXZlciA9IGFjY291bnRzLmFjY291bnQzO1xuXG4gICAgaXQoJ3Nob3VsZCBleHBsYWluIGEgdHJhbnNmZXIgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShqc29uVHJhbnNhY3Rpb25zLnRyYW5zZmVyKSBhcyBJbnRlcmZhY2UuVHhEYXRhO1xuICAgICAgdHguc2V0VHhKc29uKGpzb24pO1xuICAgICAgdHgudHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICAgIGNvbnN0IGV4cGxhaW4gPSB0eC5leHBsYWluVHJhbnNhY3Rpb24oKTtcbiAgICAgIGV4cGxhaW4uaWQuc2hvdWxkLmVxdWFsKCcweGVjYjg2MDkwNTM0MmNmOTg1YjM5Mjc2YTA3ZDZlNjY5Njc0NmRlNDYyM2MwN2RmODYzZjY5Y2JhMTUzZjkzOWEnKTtcbiAgICAgIGV4cGxhaW4ub3V0cHV0QW1vdW50LnNob3VsZC5lcXVhbCgnMTAwMDAwMDAwMDAwMCcpO1xuICAgICAgZXhwbGFpbi5vdXRwdXRzWzBdLmFtb3VudC5zaG91bGQuZXF1YWwoJzEwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGV4cGxhaW4ub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbChhY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICAgIGV4cGxhaW4uZmVlLmZlZS5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICAgIGV4cGxhaW4uY2hhbmdlQW1vdW50LnNob3VsZC5lcXVhbCgnMCcpO1xuICAgICAgZXhwbGFpbi50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGV4cGxhaW4gYSBwcm94eSB0cmFuc2ZlciB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGpzb25UcmFuc2FjdGlvbnMucHJveHlUcmFuc2ZlcikgYXMgSW50ZXJmYWNlLlR4RGF0YTtcbiAgICAgIHR4LnNldFR4SnNvbihqc29uKTtcbiAgICAgIHR4LnRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICBjb25zdCBleHBsYWluID0gdHguZXhwbGFpblRyYW5zYWN0aW9uKCk7XG4gICAgICBleHBsYWluLm91dHB1dEFtb3VudC5zaG91bGQuZXF1YWwoJzkwMDM0MjM1MjM1MzIyJyk7XG4gICAgICBleHBsYWluLm91dHB1dHNbMF0uYW1vdW50LnNob3VsZC5lcXVhbCgnOTAwMzQyMzUyMzUzMjInKTtcbiAgICAgIGV4cGxhaW4ub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbChhY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICAgIGV4cGxhaW4uZmVlLmZlZS5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICAgIGV4cGxhaW4uY2hhbmdlQW1vdW50LnNob3VsZC5lcXVhbCgnMCcpO1xuICAgICAgZXhwbGFpbi50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICBleHBsYWluLm93bmVyPy5zaG91bGQuZXF1YWwoc2VuZGVyLmFkZHJlc3MpO1xuICAgICAgZXhwbGFpbi5mb3JjZVByb3h5VHlwZT8uc2hvdWxkLmVxdWFsKCdBbnknKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXhwbGFpbiBhIGFkZHJlc3MgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBqc29uID0gSlNPTi5wYXJzZShqc29uVHJhbnNhY3Rpb25zLndhbGxldEluaXRpYWxpemF0aW9uKSBhcyBJbnRlcmZhY2UuVHhEYXRhO1xuICAgICAgdHguc2V0VHhKc29uKGpzb24pO1xuICAgICAgdHgudHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgICAgY29uc3QgZXhwbGFpbiA9IHR4LmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICAgICAgZXhwbGFpbi5vdXRwdXRBbW91bnQuc2hvdWxkLmVxdWFsKCcwJyk7XG4gICAgICBleHBsYWluLmZlZS5mZWUuc2hvdWxkLmVxdWFsKCcwJyk7XG4gICAgICBleHBsYWluLmNoYW5nZUFtb3VudC5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICAgIGV4cGxhaW4udHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgICBleHBsYWluLm93bmVyPy5zaG91bGQuZXF1YWwocmVjZWl2ZXIuYWRkcmVzcyk7XG4gICAgICBleHBsYWluLnByb3h5VHlwZT8uc2hvdWxkLmVxdWFsKCdBbnknKTtcbiAgICAgIGV4cGxhaW4uZGVsYXk/LnNob3VsZC5lcXVhbCgnMCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBleHBsYWluIGEgc3Rha2luZyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKGpzb25UcmFuc2FjdGlvbnMuc3Rha2luZykgYXMgSW50ZXJmYWNlLlR4RGF0YTtcbiAgICAgIHR4LnNldFR4SnNvbihqc29uKTtcbiAgICAgIHR4LnRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlKTtcbiAgICAgIGNvbnN0IGV4cGxhaW4gPSB0eC5leHBsYWluVHJhbnNhY3Rpb24oKTtcbiAgICAgIGV4cGxhaW4ub3V0cHV0QW1vdW50LnNob3VsZC5lcXVhbCgnNTAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGV4cGxhaW4ub3V0cHV0c1swXS5hbW91bnQuc2hvdWxkLmVxdWFsKCc1MDAwMDAwMDAwMDAwMCcpO1xuICAgICAgZXhwbGFpbi5vdXRwdXRzWzBdLmFkZHJlc3Muc2hvdWxkLmVxdWFsKGFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgICAgZXhwbGFpbi5mZWUuZmVlLnNob3VsZC5lcXVhbCgnMCcpO1xuICAgICAgZXhwbGFpbi5jaGFuZ2VBbW91bnQuc2hvdWxkLmVxdWFsKCcwJyk7XG4gICAgICBleHBsYWluLnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nQWN0aXZhdGUpO1xuICAgICAgZXhwbGFpbi5wYXllZT8uc2hvdWxkLmVxdWFsKCdTdGFrZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXhwbGFpbiBhIHN0YWtpbmcgdHJhbnNhY3Rpb24gd2l0aCByZWNlaXZlciBhY2NvdW50JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoanNvblRyYW5zYWN0aW9ucy5zdGFraW5nUGF5ZWUpIGFzIEludGVyZmFjZS5UeERhdGE7XG4gICAgICB0eC5zZXRUeEpzb24oanNvbik7XG4gICAgICB0eC50cmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdBY3RpdmF0ZSk7XG4gICAgICBjb25zdCBleHBsYWluID0gdHguZXhwbGFpblRyYW5zYWN0aW9uKCk7XG4gICAgICBleHBsYWluLm91dHB1dEFtb3VudC5zaG91bGQuZXF1YWwoJzUwMDAwMDAwMDAwMDAwJyk7XG4gICAgICBleHBsYWluLm91dHB1dHNbMF0uYW1vdW50LnNob3VsZC5lcXVhbCgnNTAwMDAwMDAwMDAwMDAnKTtcbiAgICAgIGV4cGxhaW4ub3V0cHV0c1swXS5hZGRyZXNzLnNob3VsZC5lcXVhbChhY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICAgIGV4cGxhaW4uZmVlLmZlZS5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICAgIGV4cGxhaW4uY2hhbmdlQW1vdW50LnNob3VsZC5lcXVhbCgnMCcpO1xuICAgICAgZXhwbGFpbi50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU3Rha2luZ0FjdGl2YXRlKTtcbiAgICAgIGV4cGxhaW4ucGF5ZWU/LnNob3VsZC5lcXVhbChhY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXhwbGFpbiBhIHN0YWtpbmcgdW5sb2NrIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QganNvbiA9IEpTT04ucGFyc2UoanNvblRyYW5zYWN0aW9ucy51bnN0YWtpbmcpIGFzIEludGVyZmFjZS5UeERhdGE7XG4gICAgICB0eC5zZXRUeEpzb24oanNvbik7XG4gICAgICB0eC50cmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2spO1xuICAgICAgY29uc3QgZXhwbGFpbiA9IHR4LmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICAgICAgZXhwbGFpbi5vdXRwdXRBbW91bnQuc2hvdWxkLmVxdWFsKCc1MDAwMDAwMDAwMDAwMCcpO1xuICAgICAgZXhwbGFpbi5vdXRwdXRzWzBdLmFtb3VudC5zaG91bGQuZXF1YWwoJzUwMDAwMDAwMDAwMDAwJyk7XG4gICAgICBleHBsYWluLm91dHB1dHNbMF0uYWRkcmVzcy5zaG91bGQuZXF1YWwoYWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgICBleHBsYWluLmZlZS5mZWUuc2hvdWxkLmVxdWFsKCcwJyk7XG4gICAgICBleHBsYWluLmNoYW5nZUFtb3VudC5zaG91bGQuZXF1YWwoJzAnKTtcbiAgICAgIGV4cGxhaW4udHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2spO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnaW5wdXRzIGFuZCBvdXRwdXRzJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgaW5wdXRzIGFuZCBvdXRwdXQgZm9yIGEgYmF0Y2ggc3Rha2luZyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIoY29uZmlnKS5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICBidWlsZGVyLmZyb20ocmF3VHguc3Rha2UuYmF0Y2hBbGwuc2lnbmVkKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMyB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgc2hvdWxkKHR4LmlucHV0cykubm90LmJlLm51bGwoKTtcbiAgICAgIHNob3VsZCh0eC5pbnB1dHMubGVuZ3RoKS5lcWwoMik7XG5cbiAgICAgIC8vIFN0YWtlZCBhbW91bnRcbiAgICAgIHNob3VsZCh0eC5pbnB1dHNbMF0uYWRkcmVzcykuZXFsKGFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0c1swXS52YWx1ZSkuZXFsKCc1MDAwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZCh0eC5pbnB1dHNbMF0uY29pbikuZXFsKCd0ZG90Jyk7XG5cbiAgICAgIC8vIEFkZCBwcm94eSBzdG9yYWdlIGZlZVxuICAgICAgc2hvdWxkKHR4LmlucHV0c1sxXS5hZGRyZXNzKS5lcWwoYWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgICBzaG91bGQodHguaW5wdXRzWzFdLnZhbHVlKS5lcWwoJzEwMDM2NTAwMDAwJyk7XG4gICAgICBzaG91bGQodHguaW5wdXRzWzFdLmNvaW4pLmVxbCgndGRvdCcpO1xuXG4gICAgICBzaG91bGQodHgub3V0cHV0cykubm90LmJlLm51bGwoKTtcbiAgICAgIHNob3VsZCh0eC5vdXRwdXRzLmxlbmd0aCkuZXFsKDIpO1xuXG4gICAgICAvLyBTdGFrZWQgYW1vdW50XG4gICAgICBzaG91bGQodHgub3V0cHV0c1swXS5hZGRyZXNzKS5lcWwoU1RBS0lOR19ERVNUSU5BVElPTik7XG4gICAgICBzaG91bGQodHgub3V0cHV0c1swXS52YWx1ZSkuZXFsKCc1MDAwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZCh0eC5vdXRwdXRzWzBdLmNvaW4pLmVxbCgndGRvdCcpO1xuXG4gICAgICAvLyBBZGQgcHJveHkgc3RvcmFnZSBmZWVcbiAgICAgIHNob3VsZCh0eC5vdXRwdXRzWzFdLmFkZHJlc3MpLmVxbChhY2NvdW50cy5zdGFraW5nUHJveHkuYWRkcmVzcyk7XG4gICAgICBzaG91bGQodHgub3V0cHV0c1sxXS52YWx1ZSkuZXFsKCcxMDAzNjUwMDAwMCcpO1xuICAgICAgc2hvdWxkKHR4Lm91dHB1dHNbMV0uY29pbikuZXFsKCd0ZG90Jyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdlbmVyYXRlIGlucHV0cyBhbmQgb3V0cHV0IGZvciBhIGJhdGNoIHVuc3Rha2luZyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIoY29uZmlnKS5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICBidWlsZGVyLmZyb20ocmF3VHgudW5zdGFrZS5iYXRjaEFsbC5zaWduZWQpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzIH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJyk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBzaG91bGQodHguaW5wdXRzKS5ub3QuYmUubnVsbCgpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0cy5sZW5ndGgpLmVxbCgxKTtcblxuICAgICAgLy8gUmVtb3ZlIHByb3h5IHN0b3JhZ2UgZmVlIHJlZnVuZFxuICAgICAgc2hvdWxkKHR4LmlucHV0c1swXS5hZGRyZXNzKS5lcWwoYWNjb3VudHMuc3Rha2luZ1Byb3h5LmFkZHJlc3MpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0c1swXS52YWx1ZSkuZXFsKCcxMDAzNjUwMDAwMCcpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0c1swXS5jb2luKS5lcWwoJ3Rkb3QnKTtcblxuICAgICAgc2hvdWxkKHR4Lm91dHB1dHMpLm5vdC5iZS5udWxsKCk7XG4gICAgICBzaG91bGQodHgub3V0cHV0cy5sZW5ndGgpLmVxbCgxKTtcblxuICAgICAgLy8gUmVtb3ZlIHByb3h5IHN0b3JhZ2UgZmVlIHJlZnVuZFxuICAgICAgc2hvdWxkKHR4Lm91dHB1dHNbMF0uYWRkcmVzcykuZXFsKGFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkKHR4Lm91dHB1dHNbMF0udmFsdWUpLmVxbCgnMTAwMzY1MDAwMDAnKTtcbiAgICAgIHNob3VsZCh0eC5vdXRwdXRzWzBdLmNvaW4pLmVxbCgndGRvdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBpbnB1dHMgYW5kIG91dHB1dCBmb3IgYSBzdGFrZSBtb3JlIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBTdGFraW5nQnVpbGRlcihjb25maWcpLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgICAgIGJ1aWxkZXIuZnJvbShyYXdUeC5zdGFrZU1vcmUuc2lnbmVkKTtcbiAgICAgIGJ1aWxkZXJcbiAgICAgICAgLnZhbGlkaXR5KHsgZmlyc3RWYWxpZDogMzkzMyB9KVxuICAgICAgICAucmVmZXJlbmNlQmxvY2soJzB4MTQ5Nzk5YmM5NjAyY2I1Y2YyMDFmMzQyNWZiOGQyNTNiMmQ0ZTYxZmMxMTlkY2FiMzI0OWYzMDdmNTk0NzU0ZCcpO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgc2hvdWxkKHR4LmlucHV0cykubm90LmJlLm51bGwoKTtcbiAgICAgIHNob3VsZCh0eC5pbnB1dHMubGVuZ3RoKS5lcWwoMSk7XG5cbiAgICAgIC8vIEFtb3VudCB0byBhZGQgdG8gc3Rha2VcbiAgICAgIHNob3VsZCh0eC5pbnB1dHNbMF0uYWRkcmVzcykuZXFsKGFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0c1swXS52YWx1ZSkuZXFsKCc5MDAzNDIzNTIzNTMyMicpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0c1swXS5jb2luKS5lcWwoJ3Rkb3QnKTtcblxuICAgICAgc2hvdWxkKHR4Lm91dHB1dHMpLm5vdC5iZS5udWxsKCk7XG4gICAgICBzaG91bGQodHgub3V0cHV0cy5sZW5ndGgpLmVxbCgxKTtcblxuICAgICAgc2hvdWxkKHR4Lm91dHB1dHNbMF0uYWRkcmVzcykuZXFsKFNUQUtJTkdfREVTVElOQVRJT04pO1xuICAgICAgc2hvdWxkKHR4Lm91dHB1dHNbMF0udmFsdWUpLmVxbCgnOTAwMzQyMzUyMzUzMjInKTtcbiAgICAgIHNob3VsZCh0eC5vdXRwdXRzWzBdLmNvaW4pLmVxbCgndGRvdCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBpbnB1dHMgYW5kIG91dHB1dCBmb3IgYW4gdW5zdGFrZSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVW5zdGFrZUJ1aWxkZXIoY29uZmlnKS5tYXRlcmlhbChtYXRlcmlhbCk7XG4gICAgICBidWlsZGVyLmZyb20ocmF3VHgudW5zdGFrZS5zaWduZWQpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAudmFsaWRpdHkoeyBmaXJzdFZhbGlkOiAzOTMzIH0pXG4gICAgICAgIC5yZWZlcmVuY2VCbG9jaygnMHgxNDk3OTliYzk2MDJjYjVjZjIwMWYzNDI1ZmI4ZDI1M2IyZDRlNjFmYzExOWRjYWIzMjQ5ZjMwN2Y1OTQ3NTRkJyk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuXG4gICAgICBzaG91bGQodHguaW5wdXRzKS5ub3QuYmUubnVsbCgpO1xuICAgICAgc2hvdWxkKHR4LmlucHV0cy5sZW5ndGgpLmVxbCgwKTtcblxuICAgICAgc2hvdWxkKHR4Lm91dHB1dHMpLm5vdC5iZS5udWxsKCk7XG4gICAgICBzaG91bGQodHgub3V0cHV0cy5sZW5ndGgpLmVxbCgwKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2VuZXJhdGUgaW5wdXRzIGFuZCBvdXRwdXQgZm9yIGEgd2l0aGRyYXcgc3Rha2VkIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBXaXRoZHJhd1Vuc3Rha2VkQnVpbGRlcihjb25maWcpLm1hdGVyaWFsKG1hdGVyaWFsKTtcbiAgICAgIGJ1aWxkZXIuZnJvbShyYXdUeC53aXRoZHJhd1VuYm9uZGVkLnNpZ25lZCk7XG4gICAgICBidWlsZGVyXG4gICAgICAgIC52YWxpZGl0eSh7IGZpcnN0VmFsaWQ6IDM5MzMgfSlcbiAgICAgICAgLnJlZmVyZW5jZUJsb2NrKCcweDE0OTc5OWJjOTYwMmNiNWNmMjAxZjM0MjVmYjhkMjUzYjJkNGU2MWZjMTE5ZGNhYjMyNDlmMzA3ZjU5NDc1NGQnKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHNob3VsZCh0eC5pbnB1dHMpLm5vdC5iZS5udWxsKCk7XG4gICAgICBzaG91bGQodHguaW5wdXRzLmxlbmd0aCkuZXFsKDApO1xuXG4gICAgICBzaG91bGQodHgub3V0cHV0cykubm90LmJlLm51bGwoKTtcbiAgICAgIHNob3VsZCh0eC5vdXRwdXRzLmxlbmd0aCkuZXFsKDApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"addressInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/addressInitializationBuilder.ts"],"names":[],"mappings":""}
|