@bitgo-beta/sdk-coin-flrp 1.0.1-beta.27 → 1.0.1-beta.270
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/flrp.d.ts +6 -75
- package/dist/src/flrp.d.ts.map +1 -1
- package/dist/src/flrp.js +13 -298
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -2
- package/dist/src/lib/ExportInCTxBuilder.d.ts +50 -0
- package/dist/src/lib/ExportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInCTxBuilder.js +163 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts +36 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInPTxBuilder.js +128 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts +47 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInCTxBuilder.js +213 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts +23 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInPTxBuilder.js +101 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +18 -16
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicInCTransactionBuilder.js +38 -36
- package/dist/src/lib/atomicTransactionBuilder.d.ts +34 -81
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +123 -226
- package/dist/src/lib/iface.d.ts +50 -51
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +22 -10
- package/dist/src/lib/index.d.ts +4 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +10 -2
- package/dist/src/lib/keyPair.d.ts +5 -5
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +17 -9
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +46 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +134 -0
- package/dist/src/lib/transaction.d.ts +8 -74
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +59 -207
- package/dist/src/lib/transactionBuilder.d.ts +107 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +210 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +27 -30
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +69 -75
- package/dist/src/lib/utils.d.ts +66 -151
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +205 -327
- package/dist/test/resources/account.d.ts +49 -0
- package/dist/test/resources/account.d.ts.map +1 -0
- package/dist/test/resources/account.js +52 -0
- package/dist/test/resources/transactionData/exportInC.d.ts +20 -0
- package/dist/test/resources/transactionData/exportInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInC.js +30 -0
- package/dist/test/unit/lib/exportInCTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportInCTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportInCTxBuilder.js +163 -0
- package/dist/test/unit/lib/keyPair.d.ts +2 -0
- package/dist/test/unit/lib/keyPair.d.ts.map +1 -0
- package/dist/test/unit/lib/keyPair.js +158 -0
- package/dist/test/unit/lib/utils.js +29 -223
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -13
- package/.eslintignore +0 -5
- package/.eslintrc.json +0 -7
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -0
- package/dist/src/iface.d.ts +0 -25
- package/dist/src/iface.d.ts.map +0 -1
- package/dist/src/iface.js +0 -3
- package/dist/src/lib/constants.d.ts +0 -11
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -17
- package/dist/src/lib/errors.d.ts +0 -8
- package/dist/src/lib/errors.d.ts.map +0 -1
- package/dist/src/lib/errors.js +0 -19
- package/dist/src/lib/exportInCTxBuilder.d.ts +0 -77
- package/dist/src/lib/exportInCTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInCTxBuilder.js +0 -170
- package/dist/src/lib/exportInPTxBuilder.d.ts +0 -30
- package/dist/src/lib/exportInPTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/exportInPTxBuilder.js +0 -56
- package/dist/test/unit/flrp.d.ts +0 -2
- package/dist/test/unit/flrp.d.ts.map +0 -1
- package/dist/test/unit/flrp.js +0 -118
- package/dist/test/unit/lib/atomicTransactionBuilder.d.ts +0 -2
- package/dist/test/unit/lib/atomicTransactionBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/atomicTransactionBuilder.js +0 -222
- package/dist/test/unit/lib/exportTxBuilder.d.ts +0 -2
- package/dist/test/unit/lib/exportTxBuilder.d.ts.map +0 -1
- package/dist/test/unit/lib/exportTxBuilder.js +0 -45
- package/dist/test/unit/lib/transaction.d.ts +0 -2
- package/dist/test/unit/lib/transaction.d.ts.map +0 -1
- package/dist/test/unit/lib/transaction.js +0 -460
- package/dist/test/unit/smoke.d.ts +0 -2
- package/dist/test/unit/smoke.d.ts.map +0 -1
- package/dist/test/unit/smoke.js +0 -23
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const SEED_ACCOUNT: {
|
|
2
|
+
seed: string;
|
|
3
|
+
privateKey: string;
|
|
4
|
+
publicKey: string;
|
|
5
|
+
xPrivateKey: string;
|
|
6
|
+
xPublicKey: string;
|
|
7
|
+
flrpPrivateKey: string;
|
|
8
|
+
addressMainnet: string;
|
|
9
|
+
addressTestnet: string;
|
|
10
|
+
message: string;
|
|
11
|
+
signature: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const ACCOUNT_1: {
|
|
14
|
+
seed: string;
|
|
15
|
+
privateKey: string;
|
|
16
|
+
publicKey: string;
|
|
17
|
+
xPrivateKey: string;
|
|
18
|
+
xPublicKey: string;
|
|
19
|
+
addressMainnet: string;
|
|
20
|
+
addressTestnet: string;
|
|
21
|
+
};
|
|
22
|
+
export declare const ACCOUNT_2: {
|
|
23
|
+
seed: string;
|
|
24
|
+
privateKey: string;
|
|
25
|
+
publicKey: string;
|
|
26
|
+
xPrivateKey: string;
|
|
27
|
+
xPublicKey: string;
|
|
28
|
+
};
|
|
29
|
+
export declare const ACCOUNT_3: {
|
|
30
|
+
seed: string;
|
|
31
|
+
privateKey: string;
|
|
32
|
+
publicKey: string;
|
|
33
|
+
xPrivateKey: string;
|
|
34
|
+
xPublicKey: string;
|
|
35
|
+
address: string;
|
|
36
|
+
};
|
|
37
|
+
export declare const ACCOUNT_4: {
|
|
38
|
+
seed: string;
|
|
39
|
+
privateKey: string;
|
|
40
|
+
publicKey: string;
|
|
41
|
+
xPrivateKey: string;
|
|
42
|
+
xPublicKey: string;
|
|
43
|
+
address: string;
|
|
44
|
+
};
|
|
45
|
+
export declare const INVALID_SHORT_KEYPAIR_KEY = "82A34E";
|
|
46
|
+
export declare const INVALID_PRIVATE_KEY_ERROR_MESSAGE = "Unsupported private key";
|
|
47
|
+
export declare const INVALID_PUBLIC_KEY_ERROR_MESSAGE = "Unsupported public key";
|
|
48
|
+
export declare const INVALID_LONG_KEYPAIR_PRV: string;
|
|
49
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../../test/resources/account.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;CAcxB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;CAUrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;CAQrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;CASrB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;CASrB,CAAC;AAEF,eAAO,MAAM,yBAAyB,WAAW,CAAC;AAElD,eAAO,MAAM,iCAAiC,4BAA4B,CAAC;AAE3E,eAAO,MAAM,gCAAgC,2BAA2B,CAAC;AAEzE,eAAO,MAAM,wBAAwB,QAAiC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INVALID_LONG_KEYPAIR_PRV = exports.INVALID_PUBLIC_KEY_ERROR_MESSAGE = exports.INVALID_PRIVATE_KEY_ERROR_MESSAGE = exports.INVALID_SHORT_KEYPAIR_KEY = exports.ACCOUNT_4 = exports.ACCOUNT_3 = exports.ACCOUNT_2 = exports.ACCOUNT_1 = exports.SEED_ACCOUNT = void 0;
|
|
4
|
+
exports.SEED_ACCOUNT = {
|
|
5
|
+
seed: '4c3b89f6ca897cb729d2146913877f71',
|
|
6
|
+
privateKey: 'd8f07de5977843949bf4b81b0978117c85f2582c57d7dda9a0450ff3fbef19fe',
|
|
7
|
+
publicKey: '03cd9197658fb563593560b93f8eba2aeb2e4f3781262569b3277b8da7f4f727b2',
|
|
8
|
+
xPrivateKey: 'xprv9s21ZrQH143K3uPT3aSjQNaUYJQX4MyGXmavbDN5WBMAafS3PQ9XV2E5iMXLcNUppNPBh77UynnjMTL35t5BD8vuHqAYq8G3MNEbnEER3BY',
|
|
9
|
+
xPublicKey: 'xpub661MyMwAqRbcGPTv9byjmWXD6LF1Tph7tzWXPbmh4Wt9TTmBvwTn2pYZZeQqnBEH6cTYCQEeYLLkvs7rwDN9cAKrK91rbBs8ixs532ZDZgE',
|
|
10
|
+
flrpPrivateKey: 'PrivateKey-2eYRjENrQkjWdizt6PxxP1DPF3E2w6SYWaiSAMWJwDbqVWxMLW',
|
|
11
|
+
addressMainnet: 'P-flare1uyp5n76gjqltrddur7qlrsmt3kyh8fnrrqwtal',
|
|
12
|
+
addressTestnet: 'P-costwo1uyp5n76gjqltrddur7qlrsmt3kyh8fnrmwhqk7',
|
|
13
|
+
message: 'test message',
|
|
14
|
+
signature: '1692c0a25c84d389e63692ca3b7ebc89835c3b11f6e64a505ddd71664d2a3ae914e0d1be13a824ae97331805650a0631df9ae92ba133f9aa81911f3a56807ba301',
|
|
15
|
+
};
|
|
16
|
+
exports.ACCOUNT_1 = {
|
|
17
|
+
seed: '4c3b89f6ca897cb729d2146913877f71',
|
|
18
|
+
privateKey: 'a533d8419d4518e11cd8d9f049c73a8bdaf003d6602319f967ce3c243e646ba5',
|
|
19
|
+
publicKey: '02a220e5fd108996d0e6c85db43384dcef8884bcaee1203e980f9f99f65ab3d3f3',
|
|
20
|
+
xPrivateKey: 'xprv9s21ZrQH143K4SKxfadM7W3Yq1hhwJgGAFQio8sBqaXADVo8xmQiUe2cy6GwCkwsfDZMSe4W6Gv5vHTsaUF8yoYuzq8KFJPUu2p98RAXKsJ',
|
|
21
|
+
xPublicKey: 'xpub661MyMwAqRbcGvQRmcAMUdzHP3YCLmQ7XULKbXGoPv496J8HWJiy2SM6pMHM89sQnyGiLF46dfzFB5ZRTwRmpiUq2hUkp5YccrcWG5XkS3D',
|
|
22
|
+
addressMainnet: 'P-flare1evum5n0agffrdhg2dm2vg7svfgrra5ruxnmfwk',
|
|
23
|
+
addressTestnet: 'P-costwo1evum5n0agffrdhg2dm2vg7svfgrra5ru7azz9h',
|
|
24
|
+
};
|
|
25
|
+
exports.ACCOUNT_2 = {
|
|
26
|
+
seed: '4c3b89f6ca897cb729d2146913877f71',
|
|
27
|
+
privateKey: '836d24396ff6e952e632b3552fc6591566e8be7c931a6c64fa7f685be9647841',
|
|
28
|
+
publicKey: '03cd4660ac1570473e7107ed1f31425d81a624992bbc5983fd61787c560d8fd420',
|
|
29
|
+
xPrivateKey: 'xprv9s21ZrQH143K2KjD8ytSfLWDfe2585pBJNdadLgwsEKoGLbGdHCKSK5yDnfcmToazd3oPLDXprtXnCvsn9T6MDJz1qwMPaq22oTrzqvyeDQ',
|
|
30
|
+
xPublicKey: 'xprv9s21ZrQH143K2KjD8ytSfLWDfe2585pBJNdadLgwsEKoGLbGdHCKSK5yDnfcmToazd3oPLDXprtXnCvsn9T6MDJz1qwMPaq22oTrzqvyeDQ',
|
|
31
|
+
};
|
|
32
|
+
exports.ACCOUNT_3 = {
|
|
33
|
+
seed: '4c3b89f6ca897cb729d2146913877f71',
|
|
34
|
+
privateKey: '0906840926fcd038f42921709655e8b8b06613272a3ac9040510b7d4b26f09b6',
|
|
35
|
+
publicKey: '029aa4d9f18d2994f2d833c3b9dd17a5ad9b1c3e744f0fe0b4cb1595f8f67fd12c',
|
|
36
|
+
xPrivateKey: 'xprv9s21ZrQH143K4Tto9h1DW3gmMFpxGjSyUS3V1rCUjVEDDm8xzs38GCrsCryjEbrEovHhg12d55mBx4jHK1H19RyuhzJu4GQD9HBqLZCpA6b',
|
|
37
|
+
xPublicKey: 'xpub661MyMwAqRbcGwyGFiYDsBdVuHfSgCApqey5pEc6HpmC6ZU7YQMNp1BM497dJjBnQZmNFPVQFRVLnG3yJvzyA8zGjseifmTq3HkQyq1zHqq',
|
|
38
|
+
address: 'P-costwo1xqr8ps8s6qv5jke9wltc8dc9wm5q7ck2frt5hd',
|
|
39
|
+
};
|
|
40
|
+
exports.ACCOUNT_4 = {
|
|
41
|
+
seed: '4c3b89f6ca897cb729d2146913877f71',
|
|
42
|
+
privateKey: '6d19ef12622ad2e368806483f91445ba832a0cadd73d8585bfd9de59037e79b4',
|
|
43
|
+
publicKey: '026bb5037dce5714dc9427e45eabebd689fc671b9c7ba7b0ffc74c944789ece9d1',
|
|
44
|
+
xPrivateKey: 'xprv9s21ZrQH143K2rNMJAomSkL7i7rSudnEkrm4YWS4nAAPJAQKGqitmezqp5E38uVeLWkzLN7VXnkKy3uqnc3DDXqojQ2rXGLYBwtVRVcRe7d',
|
|
45
|
+
xPublicKey: 'xpub661MyMwAqRbcFLSpQCLmotGrG9gwK6W685gfLtqgLVhNAxjTpP39KTKKfLFBxxptfe4k8KbyzWCPCFbm9xuSUXQNRQTNQoebYiupV8fSPHJ',
|
|
46
|
+
address: 'P-costwo1jvjdvg6jdqez24c5kjxgsu47mqwvpyerk22yl8',
|
|
47
|
+
};
|
|
48
|
+
exports.INVALID_SHORT_KEYPAIR_KEY = '82A34E';
|
|
49
|
+
exports.INVALID_PRIVATE_KEY_ERROR_MESSAGE = 'Unsupported private key';
|
|
50
|
+
exports.INVALID_PUBLIC_KEY_ERROR_MESSAGE = 'Unsupported public key';
|
|
51
|
+
exports.INVALID_LONG_KEYPAIR_PRV = exports.SEED_ACCOUNT.privateKey + 'F1';
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvcmVzb3VyY2VzL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxZQUFZLEdBQUc7SUFDMUIsSUFBSSxFQUFFLGtDQUFrQztJQUN4QyxVQUFVLEVBQUUsa0VBQWtFO0lBQzlFLFNBQVMsRUFBRSxvRUFBb0U7SUFDL0UsV0FBVyxFQUNULGlIQUFpSDtJQUNuSCxVQUFVLEVBQ1IsaUhBQWlIO0lBQ25ILGNBQWMsRUFBRSwrREFBK0Q7SUFDL0UsY0FBYyxFQUFFLGdEQUFnRDtJQUNoRSxjQUFjLEVBQUUsaURBQWlEO0lBQ2pFLE9BQU8sRUFBRSxjQUFjO0lBQ3ZCLFNBQVMsRUFDUCxvSUFBb0k7Q0FDdkksQ0FBQztBQUVXLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBRSxrQ0FBa0M7SUFDeEMsVUFBVSxFQUFFLGtFQUFrRTtJQUM5RSxTQUFTLEVBQUUsb0VBQW9FO0lBQy9FLFdBQVcsRUFDVCxpSEFBaUg7SUFDbkgsVUFBVSxFQUNSLGlIQUFpSDtJQUNuSCxjQUFjLEVBQUUsZ0RBQWdEO0lBQ2hFLGNBQWMsRUFBRSxpREFBaUQ7Q0FDbEUsQ0FBQztBQUVXLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBRSxrQ0FBa0M7SUFDeEMsVUFBVSxFQUFFLGtFQUFrRTtJQUM5RSxTQUFTLEVBQUUsb0VBQW9FO0lBQy9FLFdBQVcsRUFDVCxpSEFBaUg7SUFDbkgsVUFBVSxFQUNSLGlIQUFpSDtDQUNwSCxDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQUc7SUFDdkIsSUFBSSxFQUFFLGtDQUFrQztJQUN4QyxVQUFVLEVBQUUsa0VBQWtFO0lBQzlFLFNBQVMsRUFBRSxvRUFBb0U7SUFDL0UsV0FBVyxFQUNULGlIQUFpSDtJQUNuSCxVQUFVLEVBQ1IsaUhBQWlIO0lBQ25ILE9BQU8sRUFBRSxpREFBaUQ7Q0FDM0QsQ0FBQztBQUVXLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLElBQUksRUFBRSxrQ0FBa0M7SUFDeEMsVUFBVSxFQUFFLGtFQUFrRTtJQUM5RSxTQUFTLEVBQUUsb0VBQW9FO0lBQy9FLFdBQVcsRUFDVCxpSEFBaUg7SUFDbkgsVUFBVSxFQUNSLGlIQUFpSDtJQUNuSCxPQUFPLEVBQUUsaURBQWlEO0NBQzNELENBQUM7QUFFVyxRQUFBLHlCQUF5QixHQUFHLFFBQVEsQ0FBQztBQUVyQyxRQUFBLGlDQUFpQyxHQUFHLHlCQUF5QixDQUFDO0FBRTlELFFBQUEsZ0NBQWdDLEdBQUcsd0JBQXdCLENBQUM7QUFFNUQsUUFBQSx3QkFBd0IsR0FBRyxvQkFBWSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgU0VFRF9BQ0NPVU5UID0ge1xuICBzZWVkOiAnNGMzYjg5ZjZjYTg5N2NiNzI5ZDIxNDY5MTM4NzdmNzEnLFxuICBwcml2YXRlS2V5OiAnZDhmMDdkZTU5Nzc4NDM5NDliZjRiODFiMDk3ODExN2M4NWYyNTgyYzU3ZDdkZGE5YTA0NTBmZjNmYmVmMTlmZScsXG4gIHB1YmxpY0tleTogJzAzY2Q5MTk3NjU4ZmI1NjM1OTM1NjBiOTNmOGViYTJhZWIyZTRmMzc4MTI2MjU2OWIzMjc3YjhkYTdmNGY3MjdiMicsXG4gIHhQcml2YXRlS2V5OlxuICAgICd4cHJ2OXMyMVpyUUgxNDNLM3VQVDNhU2pRTmFVWUpRWDRNeUdYbWF2YkRONVdCTUFhZlMzUFE5WFYyRTVpTVhMY05VcHBOUEJoNzdVeW5uak1UTDM1dDVCRDh2dUhxQVlxOEczTU5FYm5FRVIzQlknLFxuICB4UHVibGljS2V5OlxuICAgICd4cHViNjYxTXlNd0FxUmJjR1BUdjlieWptV1hENkxGMVRwaDd0eldYUGJtaDRXdDlUVG1CdndUbjJwWVpaZVFxbkJFSDZjVFlDUUVlWUxMa3ZzN3J3RE45Y0FLcks5MXJiQnM4aXhzNTMyWkRaZ0UnLFxuICBmbHJwUHJpdmF0ZUtleTogJ1ByaXZhdGVLZXktMmVZUmpFTnJRa2pXZGl6dDZQeHhQMURQRjNFMnc2U1lXYWlTQU1XSndEYnFWV3hNTFcnLFxuICBhZGRyZXNzTWFpbm5ldDogJ1AtZmxhcmUxdXlwNW43NmdqcWx0cmRkdXI3cWxyc210M2t5aDhmbnJycXd0YWwnLFxuICBhZGRyZXNzVGVzdG5ldDogJ1AtY29zdHdvMXV5cDVuNzZnanFsdHJkZHVyN3FscnNtdDNreWg4Zm5ybXdocWs3JyxcbiAgbWVzc2FnZTogJ3Rlc3QgbWVzc2FnZScsXG4gIHNpZ25hdHVyZTpcbiAgICAnMTY5MmMwYTI1Yzg0ZDM4OWU2MzY5MmNhM2I3ZWJjODk4MzVjM2IxMWY2ZTY0YTUwNWRkZDcxNjY0ZDJhM2FlOTE0ZTBkMWJlMTNhODI0YWU5NzMzMTgwNTY1MGEwNjMxZGY5YWU5MmJhMTMzZjlhYTgxOTExZjNhNTY4MDdiYTMwMScsXG59O1xuXG5leHBvcnQgY29uc3QgQUNDT1VOVF8xID0ge1xuICBzZWVkOiAnNGMzYjg5ZjZjYTg5N2NiNzI5ZDIxNDY5MTM4NzdmNzEnLFxuICBwcml2YXRlS2V5OiAnYTUzM2Q4NDE5ZDQ1MThlMTFjZDhkOWYwNDljNzNhOGJkYWYwMDNkNjYwMjMxOWY5NjdjZTNjMjQzZTY0NmJhNScsXG4gIHB1YmxpY0tleTogJzAyYTIyMGU1ZmQxMDg5OTZkMGU2Yzg1ZGI0MzM4NGRjZWY4ODg0YmNhZWUxMjAzZTk4MGY5Zjk5ZjY1YWIzZDNmMycsXG4gIHhQcml2YXRlS2V5OlxuICAgICd4cHJ2OXMyMVpyUUgxNDNLNFNLeGZhZE03VzNZcTFoaHdKZ0dBRlFpbzhzQnFhWEFEVm84eG1RaVVlMmN5Nkd3Q2t3c2ZEWk1TZTRXNkd2NXZIVHNhVUY4eW9ZdXpxOEtGSlBVdTJwOThSQVhLc0onLFxuICB4UHVibGljS2V5OlxuICAgICd4cHViNjYxTXlNd0FxUmJjR3ZRUm1jQU1VZHpIUDNZQ0xtUTdYVUxLYlhHb1B2NDk2SjhIV0ppeTJTTTZwTUhNODlzUW55R2lMRjQ2ZGZ6RkI1WlJUd1JtcGlVcTJoVWtwNVljY3JjV0c1WGtTM0QnLFxuICBhZGRyZXNzTWFpbm5ldDogJ1AtZmxhcmUxZXZ1bTVuMGFnZmZyZGhnMmRtMnZnN3N2ZmdycmE1cnV4bm1md2snLFxuICBhZGRyZXNzVGVzdG5ldDogJ1AtY29zdHdvMWV2dW01bjBhZ2ZmcmRoZzJkbTJ2ZzdzdmZncnJhNXJ1N2F6ejloJyxcbn07XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UXzIgPSB7XG4gIHNlZWQ6ICc0YzNiODlmNmNhODk3Y2I3MjlkMjE0NjkxMzg3N2Y3MScsXG4gIHByaXZhdGVLZXk6ICc4MzZkMjQzOTZmZjZlOTUyZTYzMmIzNTUyZmM2NTkxNTY2ZThiZTdjOTMxYTZjNjRmYTdmNjg1YmU5NjQ3ODQxJyxcbiAgcHVibGljS2V5OiAnMDNjZDQ2NjBhYzE1NzA0NzNlNzEwN2VkMWYzMTQyNWQ4MWE2MjQ5OTJiYmM1OTgzZmQ2MTc4N2M1NjBkOGZkNDIwJyxcbiAgeFByaXZhdGVLZXk6XG4gICAgJ3hwcnY5czIxWnJRSDE0M0syS2pEOHl0U2ZMV0RmZTI1ODVwQkpOZGFkTGd3c0VLb0dMYkdkSENLU0s1eURuZmNtVG9hemQzb1BMRFhwcnRYbkN2c245VDZNREp6MXF3TVBhcTIyb1RyenF2eWVEUScsXG4gIHhQdWJsaWNLZXk6XG4gICAgJ3hwcnY5czIxWnJRSDE0M0syS2pEOHl0U2ZMV0RmZTI1ODVwQkpOZGFkTGd3c0VLb0dMYkdkSENLU0s1eURuZmNtVG9hemQzb1BMRFhwcnRYbkN2c245VDZNREp6MXF3TVBhcTIyb1RyenF2eWVEUScsXG59O1xuXG5leHBvcnQgY29uc3QgQUNDT1VOVF8zID0ge1xuICBzZWVkOiAnNGMzYjg5ZjZjYTg5N2NiNzI5ZDIxNDY5MTM4NzdmNzEnLFxuICBwcml2YXRlS2V5OiAnMDkwNjg0MDkyNmZjZDAzOGY0MjkyMTcwOTY1NWU4YjhiMDY2MTMyNzJhM2FjOTA0MDUxMGI3ZDRiMjZmMDliNicsXG4gIHB1YmxpY0tleTogJzAyOWFhNGQ5ZjE4ZDI5OTRmMmQ4MzNjM2I5ZGQxN2E1YWQ5YjFjM2U3NDRmMGZlMGI0Y2IxNTk1ZjhmNjdmZDEyYycsXG4gIHhQcml2YXRlS2V5OlxuICAgICd4cHJ2OXMyMVpyUUgxNDNLNFR0bzloMURXM2dtTUZweEdqU3lVUzNWMXJDVWpWRUREbTh4enMzOEdDcnNDcnlqRWJyRW92SGhnMTJkNTVtQng0akhLMUgxOVJ5dWh6SnU0R1FEOUhCcUxaQ3BBNmInLFxuICB4UHVibGljS2V5OlxuICAgICd4cHViNjYxTXlNd0FxUmJjR3d5R0ZpWURzQmRWdUhmU2dDQXBxZXk1cEVjNkhwbUM2WlU3WVFNTnAxQk00OTdkSmpCblFabU5GUFZRRlJWTG5HM3lKdnp5QTh6R2pzZWlmbVRxM0hrUXlxMXpIcXEnLFxuICBhZGRyZXNzOiAnUC1jb3N0d28xeHFyOHBzOHM2cXY1amtlOXdsdGM4ZGM5d201cTdjazJmcnQ1aGQnLFxufTtcblxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfNCA9IHtcbiAgc2VlZDogJzRjM2I4OWY2Y2E4OTdjYjcyOWQyMTQ2OTEzODc3ZjcxJyxcbiAgcHJpdmF0ZUtleTogJzZkMTllZjEyNjIyYWQyZTM2ODgwNjQ4M2Y5MTQ0NWJhODMyYTBjYWRkNzNkODU4NWJmZDlkZTU5MDM3ZTc5YjQnLFxuICBwdWJsaWNLZXk6ICcwMjZiYjUwMzdkY2U1NzE0ZGM5NDI3ZTQ1ZWFiZWJkNjg5ZmM2NzFiOWM3YmE3YjBmZmM3NGM5NDQ3ODllY2U5ZDEnLFxuICB4UHJpdmF0ZUtleTpcbiAgICAneHBydjlzMjFaclFIMTQzSzJyTk1KQW9tU2tMN2k3clN1ZG5Fa3JtNFlXUzRuQUFQSkFRS0dxaXRtZXpxcDVFMzh1VmVMV2t6TE43Vlhua0t5M3VxbmMzRERYcW9qUTJyWEdMWUJ3dFZSVmNSZTdkJyxcbiAgeFB1YmxpY0tleTpcbiAgICAneHB1YjY2MU15TXdBcVJiY0ZMU3BRQ0xtb3RHckc5Z3dLNlc2ODVnZkx0cWdMVmhOQXhqVHBQMzlLVEtLZkxGQnh4cHRmZTRrOEtieXpXQ1BDRmJtOXh1U1VYUU5SUVROUW9lYllpdXBWOGZTUEhKJyxcbiAgYWRkcmVzczogJ1AtY29zdHdvMWp2amR2ZzZqZHFlejI0YzVranhnc3U0N21xd3ZweWVyazIyeWw4Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBJTlZBTElEX1NIT1JUX0tFWVBBSVJfS0VZID0gJzgyQTM0RSc7XG5cbmV4cG9ydCBjb25zdCBJTlZBTElEX1BSSVZBVEVfS0VZX0VSUk9SX01FU1NBR0UgPSAnVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXknO1xuXG5leHBvcnQgY29uc3QgSU5WQUxJRF9QVUJMSUNfS0VZX0VSUk9SX01FU1NBR0UgPSAnVW5zdXBwb3J0ZWQgcHVibGljIGtleSc7XG5cbmV4cG9ydCBjb25zdCBJTlZBTElEX0xPTkdfS0VZUEFJUl9QUlYgPSBTRUVEX0FDQ09VTlQucHJpdmF0ZUtleSArICdGMSc7XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const EXPORT_IN_C: {
|
|
2
|
+
txhash: string;
|
|
3
|
+
unsignedHex: string;
|
|
4
|
+
signedHex: string;
|
|
5
|
+
xPrivateKey: string;
|
|
6
|
+
signature: string[];
|
|
7
|
+
privateKey: string;
|
|
8
|
+
publicKey: string;
|
|
9
|
+
amount: string;
|
|
10
|
+
cHexAddress: string;
|
|
11
|
+
pAddresses: string[];
|
|
12
|
+
mainAddress: string;
|
|
13
|
+
pAddressRelatedToPrivateKey: string;
|
|
14
|
+
corethAddress: string;
|
|
15
|
+
targetChainId: string;
|
|
16
|
+
nonce: number;
|
|
17
|
+
threshold: number;
|
|
18
|
+
fee: string;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=exportInC.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportInC.d.ts","sourceRoot":"","sources":["../../../../test/resources/transactionData/exportInC.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CA2BvB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EXPORT_IN_C = void 0;
|
|
4
|
+
// Test data for building export transactions with multiple P-addresses
|
|
5
|
+
exports.EXPORT_IN_C = {
|
|
6
|
+
txhash: 'jHRxuZjnSHYNwWpUUyob7RpfHwj1wfuQa8DGWQrkDh2RQ5Jb3',
|
|
7
|
+
unsignedHex: '0x0000000000010000007278db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da55524790000000000000000000000000000000000000000000000000000000000000000000000017dae940e7fbd1854207be51da222ec43f93b7d0b000000000098968000000000000000000000000000000000000000000000000000000000000000000000000000000009000000010000000000000000000000000000000000000000000000000000000000000000000000070000000000895427000000000000000a000000020000000103e1085f6e146def5a2c7bac91be5aab59710bbd0000000100000009000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000215afad8',
|
|
8
|
+
signedHex: '0x0000000000010000007278db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da55524790000000000000000000000000000000000000000000000000000000000000000000000017dae940e7fbd1854207be51da222ec43f93b7d0b000000000098968000000000000000000000000000000000000000000000000000000000000000000000000000000009000000010000000000000000000000000000000000000000000000000000000000000000000000070000000000895427000000000000000a000000020000000103e1085f6e146def5a2c7bac91be5aab59710bbd0000000100000009000000018ef6432440c6a0b91c7cecef787ca94742abd0759ecd98e3864992182d6b05eb6f39f08b1e032b051ff5f7893b752338bd7614a9d0b462d68bfb863680382c6c01e44d605a',
|
|
9
|
+
xPrivateKey: 'xprv9s21ZrQH143K2DW9jvDoAkVpRKi5V9XhZaVdoUcqoYPPQ9wRrLNT6VGgWBbRoSYB39Lak6kXgdTM9T3QokEi5n2JJ8EdggHLkZPX8eDiBu1',
|
|
10
|
+
signature: [
|
|
11
|
+
'0x8ef6432440c6a0b91c7cecef787ca94742abd0759ecd98e3864992182d6b05eb6f39f08b1e032b051ff5f7893b752338bd7614a9d0b462d68bfb863680382c6c01',
|
|
12
|
+
],
|
|
13
|
+
privateKey: 'bac20595af556338287cb631060473364b023dca089c50f87efd18e70655574d',
|
|
14
|
+
publicKey: '028fe87afe7b6a6a7f51beaf95357cb5a3cd75da16f8b24fa866d6ab8aef0dcabc',
|
|
15
|
+
amount: '8999975',
|
|
16
|
+
cHexAddress: '0x7Dae940e7fBd1854207Be51dA222Ec43f93b7d0b',
|
|
17
|
+
pAddresses: [
|
|
18
|
+
'P-costwo1q0ssshmwz3k77k3v0wkfr0j64dvhzzaaf9wdhq',
|
|
19
|
+
'P-costwo1n4a86kc3td6nvmwm4xh0w78mc5jjxc9g8w6en0',
|
|
20
|
+
'P-costwo1nhm2vw8653f3qwtj3kl6qa359kkt6y9r7qgljv',
|
|
21
|
+
],
|
|
22
|
+
mainAddress: 'P-costwo1q0ssshmwz3k77k3v0wkfr0j64dvhzzaaf9wdhq',
|
|
23
|
+
pAddressRelatedToPrivateKey: 'P-costwo1kr3937ujjftcue445uxfesz7w6247pf2a8ts4k',
|
|
24
|
+
corethAddress: 'C-costwo1kr3937ujjftcue445uxfesz7w6247pf2a8ts4k',
|
|
25
|
+
targetChainId: '11111111111111111111111111111111LpoYY',
|
|
26
|
+
nonce: 9,
|
|
27
|
+
threshold: 2,
|
|
28
|
+
fee: '25',
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0SW5DLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvdHJhbnNhY3Rpb25EYXRhL2V4cG9ydEluQy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RUFBdUU7QUFDMUQsUUFBQSxXQUFXLEdBQUc7SUFDekIsTUFBTSxFQUFFLG1EQUFtRDtJQUMzRCxXQUFXLEVBQ1Qsa25CQUFrbkI7SUFDcG5CLFNBQVMsRUFDUCxrbkJBQWtuQjtJQUNwbkIsV0FBVyxFQUNULGlIQUFpSDtJQUNuSCxTQUFTLEVBQUU7UUFDVCxzSUFBc0k7S0FDdkk7SUFDRCxVQUFVLEVBQUUsa0VBQWtFO0lBQzlFLFNBQVMsRUFBRSxvRUFBb0U7SUFDL0UsTUFBTSxFQUFFLFNBQVM7SUFDakIsV0FBVyxFQUFFLDRDQUE0QztJQUN6RCxVQUFVLEVBQUU7UUFDVixpREFBaUQ7UUFDakQsaURBQWlEO1FBQ2pELGlEQUFpRDtLQUNsRDtJQUNELFdBQVcsRUFBRSxpREFBaUQ7SUFDOUQsMkJBQTJCLEVBQUUsaURBQWlEO0lBQzlFLGFBQWEsRUFBRSxpREFBaUQ7SUFDaEUsYUFBYSxFQUFFLHVDQUF1QztJQUN0RCxLQUFLLEVBQUUsQ0FBQztJQUNSLFNBQVMsRUFBRSxDQUFDO0lBQ1osR0FBRyxFQUFFLElBQUk7Q0FDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGVzdCBkYXRhIGZvciBidWlsZGluZyBleHBvcnQgdHJhbnNhY3Rpb25zIHdpdGggbXVsdGlwbGUgUC1hZGRyZXNzZXNcbmV4cG9ydCBjb25zdCBFWFBPUlRfSU5fQyA9IHtcbiAgdHhoYXNoOiAnakhSeHVaam5TSFlOd1dwVVV5b2I3UnBmSHdqMXdmdVFhOERHV1Fya0RoMlJRNUpiMycsXG4gIHVuc2lnbmVkSGV4OlxuICAgICcweDAwMDAwMDAwMDAwMTAwMDAwMDcyNzhkYjVjMzBiZWQwNGMwNWNlMjA5MTc5ODEyODUwYmJiM2ZlNmQ0NmQ3ZWVmMzc0NGQ4MTRjMGRhNTU1MjQ3OTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTdkYWU5NDBlN2ZiZDE4NTQyMDdiZTUxZGEyMjJlYzQzZjkzYjdkMGIwMDAwMDAwMDAwOTg5NjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNzAwMDAwMDAwMDA4OTU0MjcwMDAwMDAwMDAwMDAwMDBhMDAwMDAwMDIwMDAwMDAwMTAzZTEwODVmNmUxNDZkZWY1YTJjN2JhYzkxYmU1YWFiNTk3MTBiYmQwMDAwMDAwMTAwMDAwMDA5MDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjE1YWZhZDgnLFxuICBzaWduZWRIZXg6XG4gICAgJzB4MDAwMDAwMDAwMDAxMDAwMDAwNzI3OGRiNWMzMGJlZDA0YzA1Y2UyMDkxNzk4MTI4NTBiYmIzZmU2ZDQ2ZDdlZWYzNzQ0ZDgxNGMwZGE1NTUyNDc5MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxN2RhZTk0MGU3ZmJkMTg1NDIwN2JlNTFkYTIyMmVjNDNmOTNiN2QwYjAwMDAwMDAwMDA5ODk2ODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA3MDAwMDAwMDAwMDg5NTQyNzAwMDAwMDAwMDAwMDAwMGEwMDAwMDAwMjAwMDAwMDAxMDNlMTA4NWY2ZTE0NmRlZjVhMmM3YmFjOTFiZTVhYWI1OTcxMGJiZDAwMDAwMDAxMDAwMDAwMDkwMDAwMDAwMThlZjY0MzI0NDBjNmEwYjkxYzdjZWNlZjc4N2NhOTQ3NDJhYmQwNzU5ZWNkOThlMzg2NDk5MjE4MmQ2YjA1ZWI2ZjM5ZjA4YjFlMDMyYjA1MWZmNWY3ODkzYjc1MjMzOGJkNzYxNGE5ZDBiNDYyZDY4YmZiODYzNjgwMzgyYzZjMDFlNDRkNjA1YScsXG4gIHhQcml2YXRlS2V5OlxuICAgICd4cHJ2OXMyMVpyUUgxNDNLMkRXOWp2RG9Ba1ZwUktpNVY5WGhaYVZkb1VjcW9ZUFBROXdSckxOVDZWR2dXQmJSb1NZQjM5TGFrNmtYZ2RUTTlUM1Fva0VpNW4ySko4RWRnZ0hMa1pQWDhlRGlCdTEnLFxuICBzaWduYXR1cmU6IFtcbiAgICAnMHg4ZWY2NDMyNDQwYzZhMGI5MWM3Y2VjZWY3ODdjYTk0NzQyYWJkMDc1OWVjZDk4ZTM4NjQ5OTIxODJkNmIwNWViNmYzOWYwOGIxZTAzMmIwNTFmZjVmNzg5M2I3NTIzMzhiZDc2MTRhOWQwYjQ2MmQ2OGJmYjg2MzY4MDM4MmM2YzAxJyxcbiAgXSxcbiAgcHJpdmF0ZUtleTogJ2JhYzIwNTk1YWY1NTYzMzgyODdjYjYzMTA2MDQ3MzM2NGIwMjNkY2EwODljNTBmODdlZmQxOGU3MDY1NTU3NGQnLFxuICBwdWJsaWNLZXk6ICcwMjhmZTg3YWZlN2I2YTZhN2Y1MWJlYWY5NTM1N2NiNWEzY2Q3NWRhMTZmOGIyNGZhODY2ZDZhYjhhZWYwZGNhYmMnLFxuICBhbW91bnQ6ICc4OTk5OTc1JyxcbiAgY0hleEFkZHJlc3M6ICcweDdEYWU5NDBlN2ZCZDE4NTQyMDdCZTUxZEEyMjJFYzQzZjkzYjdkMGInLFxuICBwQWRkcmVzc2VzOiBbXG4gICAgJ1AtY29zdHdvMXEwc3NzaG13ejNrNzdrM3Ywd2tmcjBqNjRkdmh6emFhZjl3ZGhxJyxcbiAgICAnUC1jb3N0d28xbjRhODZrYzN0ZDZudm13bTR4aDB3NzhtYzVqanhjOWc4dzZlbjAnLFxuICAgICdQLWNvc3R3bzFuaG0ydnc4NjUzZjNxd3RqM2tsNnFhMzU5a2t0Nnk5cjdxZ2xqdicsXG4gIF0sXG4gIG1haW5BZGRyZXNzOiAnUC1jb3N0d28xcTBzc3NobXd6M2s3N2szdjB3a2ZyMGo2NGR2aHp6YWFmOXdkaHEnLFxuICBwQWRkcmVzc1JlbGF0ZWRUb1ByaXZhdGVLZXk6ICdQLWNvc3R3bzFrcjM5Mzd1ampmdGN1ZTQ0NXV4ZmVzejd3NjI0N3BmMmE4dHM0aycsXG4gIGNvcmV0aEFkZHJlc3M6ICdDLWNvc3R3bzFrcjM5Mzd1ampmdGN1ZTQ0NXV4ZmVzejd3NjI0N3BmMmE4dHM0aycsXG4gIHRhcmdldENoYWluSWQ6ICcxMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMUxwb1lZJyxcbiAgbm9uY2U6IDksXG4gIHRocmVzaG9sZDogMixcbiAgZmVlOiAnMjUnLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exportInCTxBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/exportInCTxBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,163 @@
|
|
|
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
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
37
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
38
|
+
const assert = __importStar(require("assert"));
|
|
39
|
+
const transactionBuilderFactory_1 = require("../../../src/lib/transactionBuilderFactory");
|
|
40
|
+
const exportInC_1 = require("../../resources/transactionData/exportInC");
|
|
41
|
+
describe('ExportInCTxBuilder', function () {
|
|
42
|
+
const factory = new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'));
|
|
43
|
+
const txBuilder = factory.getExportInCBuilder();
|
|
44
|
+
describe('utxos ExportInCTxBuilder', function () {
|
|
45
|
+
it('should throw an error when utxos are used', async function () {
|
|
46
|
+
assert.throws(() => {
|
|
47
|
+
txBuilder.utxos([]);
|
|
48
|
+
}, new sdk_core_1.BuildTransactionError('utxos are not required in Export Tx in C-Chain'));
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
describe('amount ExportInCTxBuilder', function () {
|
|
52
|
+
it('should accept valid amounts in different formats', function () {
|
|
53
|
+
const validAmounts = [BigInt(1000), '1000'];
|
|
54
|
+
validAmounts.forEach((amount) => {
|
|
55
|
+
assert.doesNotThrow(() => {
|
|
56
|
+
txBuilder.amount(amount);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
it('should throw error for invalid amounts', function () {
|
|
61
|
+
const invalidAmounts = ['0', '-1'];
|
|
62
|
+
invalidAmounts.forEach((amount) => {
|
|
63
|
+
assert.throws(() => {
|
|
64
|
+
txBuilder.amount(amount);
|
|
65
|
+
}, sdk_core_1.BuildTransactionError);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
describe('nonce ExportInCTxBuilder', function () {
|
|
70
|
+
it('should accept valid nonces in different formats', function () {
|
|
71
|
+
const validNonces = ['1', 1, 0];
|
|
72
|
+
validNonces.forEach((nonce) => {
|
|
73
|
+
assert.doesNotThrow(() => {
|
|
74
|
+
txBuilder.nonce(nonce);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
it('should throw error for negative nonce', function () {
|
|
79
|
+
assert.throws(() => {
|
|
80
|
+
txBuilder.nonce('-1');
|
|
81
|
+
}, new sdk_core_1.BuildTransactionError('Nonce must be greater or equal than 0'));
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
describe('to ExportInCTxBuilder', function () {
|
|
85
|
+
const txBuilder = factory.getExportInCBuilder();
|
|
86
|
+
it('should accept multiple P-addresses', function () {
|
|
87
|
+
const pAddresses = exportInC_1.EXPORT_IN_C.pAddresses;
|
|
88
|
+
assert.doesNotThrow(() => {
|
|
89
|
+
txBuilder.to(pAddresses);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
it('should accept single P-address', function () {
|
|
93
|
+
assert.doesNotThrow(() => {
|
|
94
|
+
txBuilder.to(exportInC_1.EXPORT_IN_C.pAddresses[0]);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
it('should accept tilde-separated P-addresses string', function () {
|
|
98
|
+
const pAddresses = exportInC_1.EXPORT_IN_C.pAddresses.join('~');
|
|
99
|
+
assert.doesNotThrow(() => {
|
|
100
|
+
txBuilder.to(pAddresses);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
describe('should build a export txn from C to P', () => {
|
|
105
|
+
const newTxBuilder = () => factory
|
|
106
|
+
.getExportInCBuilder()
|
|
107
|
+
.fromPubKey(exportInC_1.EXPORT_IN_C.cHexAddress)
|
|
108
|
+
.nonce(exportInC_1.EXPORT_IN_C.nonce)
|
|
109
|
+
.amount(exportInC_1.EXPORT_IN_C.amount)
|
|
110
|
+
.threshold(exportInC_1.EXPORT_IN_C.threshold)
|
|
111
|
+
.locktime(10)
|
|
112
|
+
.to(exportInC_1.EXPORT_IN_C.pAddresses)
|
|
113
|
+
.feeRate(exportInC_1.EXPORT_IN_C.fee);
|
|
114
|
+
it('Should create export tx for same values', async () => {
|
|
115
|
+
const txBuilder = newTxBuilder();
|
|
116
|
+
const tx = await txBuilder.build();
|
|
117
|
+
const rawTx = tx.toBroadcastFormat();
|
|
118
|
+
rawTx.should.equal(exportInC_1.EXPORT_IN_C.unsignedHex);
|
|
119
|
+
});
|
|
120
|
+
it('Should recover export tx from raw tx', async () => {
|
|
121
|
+
const txBuilder = new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(exportInC_1.EXPORT_IN_C.unsignedHex);
|
|
122
|
+
const tx = await txBuilder.build();
|
|
123
|
+
const rawTx = tx.toBroadcastFormat();
|
|
124
|
+
rawTx.should.equal(exportInC_1.EXPORT_IN_C.unsignedHex);
|
|
125
|
+
});
|
|
126
|
+
xit('Should recover signed export from signed raw tx', async () => {
|
|
127
|
+
const txBuilder = new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(exportInC_1.EXPORT_IN_C.signedHex);
|
|
128
|
+
const tx = await txBuilder.build();
|
|
129
|
+
const rawTx = tx.toBroadcastFormat();
|
|
130
|
+
rawTx.should.equal(exportInC_1.EXPORT_IN_C.signedHex);
|
|
131
|
+
});
|
|
132
|
+
it('Should full sign a export tx for same values', async () => {
|
|
133
|
+
const txBuilder = newTxBuilder();
|
|
134
|
+
txBuilder.sign({ key: exportInC_1.EXPORT_IN_C.privateKey });
|
|
135
|
+
const tx = await txBuilder.build();
|
|
136
|
+
const rawTx = tx.toBroadcastFormat();
|
|
137
|
+
rawTx.should.equal(exportInC_1.EXPORT_IN_C.signedHex);
|
|
138
|
+
tx.signature.should.eql(exportInC_1.EXPORT_IN_C.signature);
|
|
139
|
+
});
|
|
140
|
+
it('Should full sign a export tx from unsigned raw tx', async () => {
|
|
141
|
+
const txBuilder = new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(exportInC_1.EXPORT_IN_C.unsignedHex);
|
|
142
|
+
txBuilder.sign({ key: exportInC_1.EXPORT_IN_C.privateKey });
|
|
143
|
+
const tx = await txBuilder.build();
|
|
144
|
+
const rawTx = tx.toBroadcastFormat();
|
|
145
|
+
rawTx.should.equal(exportInC_1.EXPORT_IN_C.signedHex);
|
|
146
|
+
});
|
|
147
|
+
it('Key cannot sign the transaction', () => {
|
|
148
|
+
it('Should full sign a export tx from unsigned raw tx', () => {
|
|
149
|
+
const txBuilder = new transactionBuilderFactory_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
|
|
150
|
+
.from(exportInC_1.EXPORT_IN_C.unsignedHex)
|
|
151
|
+
.fromPubKey(exportInC_1.EXPORT_IN_C.pAddresses);
|
|
152
|
+
txBuilder.sign({ key: exportInC_1.EXPORT_IN_C.privateKey });
|
|
153
|
+
txBuilder
|
|
154
|
+
.build()
|
|
155
|
+
.then(() => assert.fail('it can sign'))
|
|
156
|
+
.catch((err) => {
|
|
157
|
+
err.message.should.be.equal('Private key cannot sign the transaction');
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2xpYi9leHBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBNEM7QUFDNUMsbURBQTZEO0FBQzdELCtDQUFpQztBQUNqQywwRkFBdUY7QUFDdkYseUVBQW9GO0FBRXBGLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRTtJQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLHFEQUF5QixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRSxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUVoRCxRQUFRLENBQUMsMEJBQTBCLEVBQUU7UUFDbkMsRUFBRSxDQUFDLDJDQUEyQyxFQUFFLEtBQUs7WUFDbkQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdEIsQ0FBQyxFQUFFLElBQUksZ0NBQXFCLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsMkJBQTJCLEVBQUU7UUFDcEMsRUFBRSxDQUFDLGtEQUFrRCxFQUFFO1lBQ3JELE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBRTVDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDOUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7b0JBQ3ZCLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxDQUFD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LENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpQ0FBaUMsRUFBRSxHQUFHLEVBQUU7WUFDekMsRUFBRSxDQUFDLG9EQUFvRCxFQUFFLEdBQUcsRUFBRTtnQkFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxxREFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3FCQUNoRSxJQUFJLENBQUMsdUJBQVEsQ0FBQyxXQUFXLENBQUM7cUJBQzFCLFVBQVUsQ0FBQyx1QkFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLHVCQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztnQkFDN0MsU0FBUztxQkFDTixLQUFLLEVBQUU7cUJBQ1AsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQ3RDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNiLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztnQkFDekUsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuaW1wb3J0IHsgRVhQT1JUX0lOX0MgYXMgdGVzdERhdGEgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHJhbnNhY3Rpb25EYXRhL2V4cG9ydEluQyc7XG5cbmRlc2NyaWJlKCdFeHBvcnRJbkNUeEJ1aWxkZXInLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpO1xuICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEV4cG9ydEluQ0J1aWxkZXIoKTtcblxuICBkZXNjcmliZSgndXR4b3MgRXhwb3J0SW5DVHhCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3Igd2hlbiB1dHhvcyBhcmUgdXNlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIudXR4b3MoW10pO1xuICAgICAgfSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndXR4b3MgYXJlIG5vdCByZXF1aXJlZCBpbiBFeHBvcnQgVHggaW4gQy1DaGFpbicpKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Ftb3VudCBFeHBvcnRJbkNUeEJ1aWxkZXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgdmFsaWQgYW1vdW50cyBpbiBkaWZmZXJlbnQgZm9ybWF0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHZhbGlkQW1vdW50cyA9IFtCaWdJbnQoMTAwMCksICcxMDAwJ107XG5cbiAgICAgIHZhbGlkQW1vdW50cy5mb3JFYWNoKChhbW91bnQpID0+IHtcbiAgICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLmFtb3VudChhbW91bnQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3IgaW52YWxpZCBhbW91bnRzJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaW52YWxpZEFtb3VudHMgPSBbJzAnLCAnLTEnXTtcblxuICAgICAgaW52YWxpZEFtb3VudHMuZm9yRWFjaCgoYW1vdW50KSA9PiB7XG4gICAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci5hbW91bnQoYW1vdW50KTtcbiAgICAgICAgfSwgQnVpbGRUcmFuc2FjdGlvbkVycm9yKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnbm9uY2UgRXhwb3J0SW5DVHhCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgYWNjZXB0IHZhbGlkIG5vbmNlcyBpbiBkaWZmZXJlbnQgZm9ybWF0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHZhbGlkTm9uY2VzID0gWycxJywgMSwgMF07XG5cbiAgICAgIHZhbGlkTm9uY2VzLmZvckVhY2goKG5vbmNlKSA9PiB7XG4gICAgICAgIGFzc2VydC5kb2VzTm90VGhyb3coKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci5ub25jZShub25jZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGVycm9yIGZvciBuZWdhdGl2ZSBub25jZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIubm9uY2UoJy0xJyk7XG4gICAgICB9LCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdOb25jZSBtdXN0IGJlIGdyZWF0ZXIgb3IgZXF1YWwgdGhhbiAwJykpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgndG8gRXhwb3J0SW5DVHhCdWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0RXhwb3J0SW5DQnVpbGRlcigpO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgbXVsdGlwbGUgUC1hZGRyZXNzZXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwQWRkcmVzc2VzID0gdGVzdERhdGEucEFkZHJlc3NlcztcblxuICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiB7XG4gICAgICAgIHR4QnVpbGRlci50byhwQWRkcmVzc2VzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgc2luZ2xlIFAtYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydC5kb2VzTm90VGhyb3coKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIudG8odGVzdERhdGEucEFkZHJlc3Nlc1swXSk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYWNjZXB0IHRpbGRlLXNlcGFyYXRlZCBQLWFkZHJlc3NlcyBzdHJpbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBwQWRkcmVzc2VzID0gdGVzdERhdGEucEFkZHJlc3Nlcy5qb2luKCd+Jyk7XG5cbiAgICAgIGFzc2VydC5kb2VzTm90VGhyb3coKCkgPT4ge1xuICAgICAgICB0eEJ1aWxkZXIudG8ocEFkZHJlc3Nlcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBidWlsZCBhIGV4cG9ydCB0eG4gZnJvbSBDIHRvIFAnLCAoKSA9PiB7XG4gICAgY29uc3QgbmV3VHhCdWlsZGVyID0gKCkgPT5cbiAgICAgIGZhY3RvcnlcbiAgICAgICAgLmdldEV4cG9ydEluQ0J1aWxkZXIoKVxuICAgICAgICAuZnJvbVB1YktleSh0ZXN0RGF0YS5jSGV4QWRkcmVzcylcbiAgICAgICAgLm5vbmNlKHRlc3REYXRhLm5vbmNlKVxuICAgICAgICAuYW1vdW50KHRlc3REYXRhLmFtb3VudClcbiAgICAgICAgLnRocmVzaG9sZCh0ZXN0RGF0YS50aHJlc2hvbGQpXG4gICAgICAgIC5sb2NrdGltZSgxMClcbiAgICAgICAgLnRvKHRlc3REYXRhLnBBZGRyZXNzZXMpXG4gICAgICAgIC5mZWVSYXRlKHRlc3REYXRhLmZlZSk7XG5cbiAgICBpdCgnU2hvdWxkIGNyZWF0ZSBleHBvcnQgdHggZm9yIHNhbWUgdmFsdWVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gbmV3VHhCdWlsZGVyKCk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwodGVzdERhdGEudW5zaWduZWRIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCByZWNvdmVyIGV4cG9ydCB0eCBmcm9tIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS51bnNpZ25lZEhleCk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwodGVzdERhdGEudW5zaWduZWRIZXgpO1xuICAgIH0pO1xuXG4gICAgeGl0KCdTaG91bGQgcmVjb3ZlciBzaWduZWQgZXhwb3J0IGZyb20gc2lnbmVkIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS5zaWduZWRIZXgpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5zaWduZWRIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBmdWxsIHNpZ24gYSBleHBvcnQgdHggZm9yIHNhbWUgdmFsdWVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gbmV3VHhCdWlsZGVyKCk7XG5cbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5wcml2YXRlS2V5IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5zaWduZWRIZXgpO1xuICAgICAgdHguc2lnbmF0dXJlLnNob3VsZC5lcWwodGVzdERhdGEuc2lnbmF0dXJlKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgZnVsbCBzaWduIGEgZXhwb3J0IHR4IGZyb20gdW5zaWduZWQgcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKS5mcm9tKHRlc3REYXRhLnVuc2lnbmVkSGV4KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5wcml2YXRlS2V5IH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5zaWduZWRIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ0tleSBjYW5ub3Qgc2lnbiB0aGUgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBpdCgnU2hvdWxkIGZ1bGwgc2lnbiBhIGV4cG9ydCAgdHggZnJvbSB1bnNpZ25lZCByYXcgdHgnLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSlcbiAgICAgICAgICAuZnJvbSh0ZXN0RGF0YS51bnNpZ25lZEhleClcbiAgICAgICAgICAuZnJvbVB1YktleSh0ZXN0RGF0YS5wQWRkcmVzc2VzKTtcbiAgICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLnByaXZhdGVLZXkgfSk7XG4gICAgICAgIHR4QnVpbGRlclxuICAgICAgICAgIC5idWlsZCgpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gYXNzZXJ0LmZhaWwoJ2l0IGNhbiBzaWduJykpXG4gICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgIGVyci5tZXNzYWdlLnNob3VsZC5iZS5lcXVhbCgnUHJpdmF0ZSBrZXkgY2Fubm90IHNpZ24gdGhlIHRyYW5zYWN0aW9uJyk7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/keyPair.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,158 @@
|
|
|
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 should_1 = __importDefault(require("should"));
|
|
41
|
+
const lib_1 = require("../../../src/lib");
|
|
42
|
+
const testData = __importStar(require("../../resources/account"));
|
|
43
|
+
const pubKey = testData.ACCOUNT_1.publicKey;
|
|
44
|
+
const prvKey = testData.ACCOUNT_1.privateKey;
|
|
45
|
+
describe('Flr P Key Pair', () => {
|
|
46
|
+
describe('should create a valid KeyPair', () => {
|
|
47
|
+
it('from an empty value', () => {
|
|
48
|
+
const keyPair = new lib_1.KeyPair();
|
|
49
|
+
const pubKey = keyPair.getKeys().pub;
|
|
50
|
+
const prvKey = keyPair.getKeys().prv;
|
|
51
|
+
should_1.default.exists(pubKey);
|
|
52
|
+
should_1.default.exists(prvKey);
|
|
53
|
+
});
|
|
54
|
+
it('from a seed', () => {
|
|
55
|
+
const seed = testData.SEED_ACCOUNT.seed;
|
|
56
|
+
const keyPairObj = new lib_1.KeyPair({ seed: Buffer.from(seed, 'hex') });
|
|
57
|
+
const keys = keyPairObj.getKeys();
|
|
58
|
+
should_1.default.exists(keys.prv);
|
|
59
|
+
should_1.default.exists(keys.pub);
|
|
60
|
+
should_1.default.equal(keys.prv, testData.SEED_ACCOUNT.privateKey);
|
|
61
|
+
should_1.default.equal(keys.pub, testData.SEED_ACCOUNT.publicKey);
|
|
62
|
+
const extendedKeys = keyPairObj.getExtendedKeys();
|
|
63
|
+
should_1.default.exists(extendedKeys.xprv);
|
|
64
|
+
should_1.default.exists(extendedKeys.xpub);
|
|
65
|
+
should_1.default.equal(extendedKeys.xprv, testData.SEED_ACCOUNT.xPrivateKey);
|
|
66
|
+
should_1.default.equal(extendedKeys.xpub, testData.SEED_ACCOUNT.xPublicKey);
|
|
67
|
+
});
|
|
68
|
+
it('from a xprv', () => {
|
|
69
|
+
const keyPairObj = new lib_1.KeyPair({ prv: testData.SEED_ACCOUNT.xPrivateKey });
|
|
70
|
+
const keys = keyPairObj.getKeys();
|
|
71
|
+
should_1.default.exists(keys.prv);
|
|
72
|
+
should_1.default.exists(keys.pub);
|
|
73
|
+
should_1.default.equal(keys.prv, testData.SEED_ACCOUNT.privateKey);
|
|
74
|
+
should_1.default.equal(keys.pub, testData.SEED_ACCOUNT.publicKey);
|
|
75
|
+
const extendedKeys = keyPairObj.getExtendedKeys();
|
|
76
|
+
should_1.default.exists(extendedKeys.xprv);
|
|
77
|
+
should_1.default.exists(extendedKeys.xpub);
|
|
78
|
+
should_1.default.equal(extendedKeys.xprv, testData.SEED_ACCOUNT.xPrivateKey);
|
|
79
|
+
should_1.default.equal(extendedKeys.xpub, testData.SEED_ACCOUNT.xPublicKey);
|
|
80
|
+
});
|
|
81
|
+
it('from a xpub', () => {
|
|
82
|
+
const keyPairObj = new lib_1.KeyPair({ pub: testData.SEED_ACCOUNT.xPublicKey });
|
|
83
|
+
const keys = keyPairObj.getKeys();
|
|
84
|
+
should_1.default.not.exists(keys.prv);
|
|
85
|
+
should_1.default.exists(keys.pub);
|
|
86
|
+
should_1.default.equal(keys.pub, testData.SEED_ACCOUNT.publicKey);
|
|
87
|
+
const extendedKeys = keyPairObj.getExtendedKeys();
|
|
88
|
+
should_1.default.not.exists(extendedKeys.xprv);
|
|
89
|
+
should_1.default.exists(extendedKeys.xpub);
|
|
90
|
+
should_1.default.equal(extendedKeys.xpub, testData.SEED_ACCOUNT.xPublicKey);
|
|
91
|
+
});
|
|
92
|
+
it('from a public key', () => {
|
|
93
|
+
const keyPair = new lib_1.KeyPair({ pub: testData.ACCOUNT_3.publicKey });
|
|
94
|
+
should_1.default.equal(keyPair.getKeys().pub, testData.ACCOUNT_3.publicKey);
|
|
95
|
+
should_1.default.exists(keyPair.getAddress());
|
|
96
|
+
});
|
|
97
|
+
it('Should get same address key for account 3 private key ', () => {
|
|
98
|
+
const keyPair = new lib_1.KeyPair({ prv: testData.ACCOUNT_3.privateKey });
|
|
99
|
+
should_1.default.equal(keyPair.getKeys().prv, testData.ACCOUNT_3.privateKey);
|
|
100
|
+
should_1.default.equal(keyPair.getKeys().pub, testData.ACCOUNT_3.publicKey);
|
|
101
|
+
should_1.default.equal(keyPair.getAddress('testnet'), testData.ACCOUNT_3.address);
|
|
102
|
+
});
|
|
103
|
+
it('Should get same address key for account 4 private key ', () => {
|
|
104
|
+
const keyPair = new lib_1.KeyPair({ prv: testData.ACCOUNT_4.privateKey });
|
|
105
|
+
should_1.default.equal(keyPair.getKeys().prv, testData.ACCOUNT_4.privateKey);
|
|
106
|
+
should_1.default.equal(keyPair.getKeys().pub, testData.ACCOUNT_4.publicKey);
|
|
107
|
+
should_1.default.equal(keyPair.getAddress('testnet'), testData.ACCOUNT_4.address);
|
|
108
|
+
});
|
|
109
|
+
describe('getAddress', function () {
|
|
110
|
+
it('should get an address', () => {
|
|
111
|
+
const seed = testData.SEED_ACCOUNT.seed;
|
|
112
|
+
const keyPair = new lib_1.KeyPair({ seed: Buffer.from(seed, 'hex') });
|
|
113
|
+
const address = keyPair.getAddress();
|
|
114
|
+
address.should.equal(testData.SEED_ACCOUNT.addressMainnet);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
it('without source', () => {
|
|
118
|
+
const keyPair = new lib_1.KeyPair();
|
|
119
|
+
keyPair.getKeys().should.have.property('pub');
|
|
120
|
+
keyPair.getKeys().should.have.property('prv');
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe('should fail to create a KeyPair', () => {
|
|
124
|
+
it('from an invalid public key', () => {
|
|
125
|
+
assert_1.default.throws(() => new lib_1.KeyPair({ pub: testData.INVALID_SHORT_KEYPAIR_KEY }), (e) => e.message === testData.INVALID_PUBLIC_KEY_ERROR_MESSAGE);
|
|
126
|
+
});
|
|
127
|
+
it('from an invalid private key', () => {
|
|
128
|
+
assert_1.default.throws(() => new lib_1.KeyPair({ prv: testData.INVALID_SHORT_KEYPAIR_KEY }), (e) => e.message === testData.INVALID_PRIVATE_KEY_ERROR_MESSAGE);
|
|
129
|
+
assert_1.default.throws(() => {
|
|
130
|
+
new lib_1.KeyPair({ prv: testData.INVALID_LONG_KEYPAIR_PRV });
|
|
131
|
+
}, (e) => e.message === testData.INVALID_PRIVATE_KEY_ERROR_MESSAGE);
|
|
132
|
+
assert_1.default.throws(() => new lib_1.KeyPair({ prv: prvKey + pubKey }), (e) => e.message === testData.INVALID_PRIVATE_KEY_ERROR_MESSAGE);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe('verifyAddress', function () {
|
|
136
|
+
it('should get and match mainnet address', () => {
|
|
137
|
+
const seed = testData.SEED_ACCOUNT.seed;
|
|
138
|
+
const keyPair = new lib_1.KeyPair({ seed: Buffer.from(seed, 'hex') });
|
|
139
|
+
const address = keyPair.getAddress();
|
|
140
|
+
address.should.equal(testData.SEED_ACCOUNT.addressMainnet);
|
|
141
|
+
const prv = testData.ACCOUNT_1.privateKey;
|
|
142
|
+
const keyPair2 = new lib_1.KeyPair({ prv: prv });
|
|
143
|
+
const address2 = keyPair2.getAddress();
|
|
144
|
+
address2.should.equal(testData.ACCOUNT_1.addressMainnet);
|
|
145
|
+
});
|
|
146
|
+
it('should get and match testnet address', () => {
|
|
147
|
+
const seed = testData.SEED_ACCOUNT.seed;
|
|
148
|
+
const keyPair = new lib_1.KeyPair({ seed: Buffer.from(seed, 'hex') });
|
|
149
|
+
const address = keyPair.getAddress('testnet');
|
|
150
|
+
address.should.equal(testData.SEED_ACCOUNT.addressTestnet);
|
|
151
|
+
const prv = testData.ACCOUNT_1.privateKey;
|
|
152
|
+
const keyPair2 = new lib_1.KeyPair({ prv: prv });
|
|
153
|
+
const address2 = keyPair2.getAddress('testnet');
|
|
154
|
+
address2.should.equal(testData.ACCOUNT_1.addressTestnet);
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixvREFBNEI7QUFDNUIsMENBQTJDO0FBQzNDLGtFQUFvRDtBQUVwRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztBQUM1QyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztBQUU3QyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO0lBQzlCLFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7UUFDN0MsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtZQUM3QixNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sRUFBRSxDQUFDO1lBQzlCLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztZQUNyQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN0QixnQkFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksYUFBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNuRSxNQUFNLElBQUksR0FBRyxV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QUM5QyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM5QyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRTNELE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQzFDLE1BQU0sUUFBUSxHQUFHLElBQUksYUFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDM0MsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNoRCxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9hY2NvdW50JztcblxuY29uc3QgcHViS2V5ID0gdGVzdERhdGEuQUNDT1VOVF8xLnB1YmxpY0tleTtcbmNvbnN0IHBydktleSA9IHRlc3REYXRhLkFDQ09VTlRfMS5wcml2YXRlS2V5O1xuXG5kZXNjcmliZSgnRmxyIFAgS2V5IFBhaXInLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdzaG91bGQgY3JlYXRlIGEgdmFsaWQgS2V5UGFpcicsICgpID0+IHtcbiAgICBpdCgnZnJvbSBhbiBlbXB0eSB2YWx1ZScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuICAgICAgY29uc3QgcHViS2V5ID0ga2V5UGFpci5nZXRLZXlzKCkucHViO1xuICAgICAgY29uc3QgcHJ2S2V5ID0ga2V5UGFpci5nZXRLZXlzKCkucHJ2O1xuICAgICAgc2hvdWxkLmV4aXN0cyhwdWJLZXkpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhwcnZLZXkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYSBzZWVkJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2VlZCA9IHRlc3REYXRhLlNFRURfQUNDT1VOVC5zZWVkO1xuICAgICAgY29uc3Qga2V5UGFpck9iaiA9IG5ldyBLZXlQYWlyKHsgc2VlZDogQnVmZmVyLmZyb20oc2VlZCwgJ2hleCcpIH0pO1xuICAgICAgY29uc3Qga2V5cyA9IGtleVBhaXJPYmouZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGtleXMucHViKTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnBydiEsIHRlc3REYXRhLlNFRURfQUNDT1VOVC5wcml2YXRlS2V5KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlzLnB1YiwgdGVzdERhdGEuU0VFRF9BQ0NPVU5ULnB1YmxpY0tleSk7XG5cbiAgICAgIGNvbnN0IGV4dGVuZGVkS2V5cyA9IGtleVBhaXJPYmouZ2V0RXh0ZW5kZWRLZXlzKCk7XG4gICAgICBzaG91bGQuZXhpc3RzKGV4dGVuZGVkS2V5cy54cHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoZXh0ZW5kZWRLZXlzLnhwdWIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGV4dGVuZGVkS2V5cy54cHJ2LCB0ZXN0RGF0YS5TRUVEX0FDQ09VTlQueFByaXZhdGVLZXkpO1xuICAgICAgc2hvdWxkLmVxdWFsKGV4dGVuZGVkS2V5cy54cHViLCB0ZXN0RGF0YS5TRUVEX0FDQ09VTlQueFB1YmxpY0tleSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhIHhwcnYnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyT2JqID0gbmV3IEtleVBhaXIoeyBwcnY6IHRlc3REYXRhLlNFRURfQUNDT1VOVC54UHJpdmF0ZUtleSB9KTtcbiAgICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyT2JqLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5cy5wcnYpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhrZXlzLnB1Yik7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5cy5wcnYhLCB0ZXN0RGF0YS5TRUVEX0FDQ09VTlQucHJpdmF0ZUtleSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5cy5wdWIsIHRlc3REYXRhLlNFRURfQUNDT1VOVC5wdWJsaWNLZXkpO1xuXG4gICAgICBjb25zdCBleHRlbmRlZEtleXMgPSBrZXlQYWlyT2JqLmdldEV4dGVuZGVkS2V5cygpO1xuICAgICAgc2hvdWxkLmV4aXN0cyhleHRlbmRlZEtleXMueHBydik7XG4gICAgICBzaG91bGQuZXhpc3RzKGV4dGVuZGVkS2V5cy54cHViKTtcbiAgICAgIHNob3VsZC5lcXVhbChleHRlbmRlZEtleXMueHBydiwgdGVzdERhdGEuU0VFRF9BQ0NPVU5ULnhQcml2YXRlS2V5KTtcbiAgICAgIHNob3VsZC5lcXVhbChleHRlbmRlZEtleXMueHB1YiwgdGVzdERhdGEuU0VFRF9BQ0NPVU5ULnhQdWJsaWNLZXkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYSB4cHViJywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpck9iaiA9IG5ldyBLZXlQYWlyKHsgcHViOiB0ZXN0RGF0YS5TRUVEX0FDQ09VTlQueFB1YmxpY0tleSB9KTtcbiAgICAgIGNvbnN0IGtleXMgPSBrZXlQYWlyT2JqLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3RzKGtleXMucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5cy5wdWIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleXMucHViLCB0ZXN0RGF0YS5TRUVEX0FDQ09VTlQucHVibGljS2V5KTtcblxuICAgICAgY29uc3QgZXh0ZW5kZWRLZXlzID0ga2V5UGFpck9iai5nZXRFeHRlbmRlZEtleXMoKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3RzKGV4dGVuZGVkS2V5cy54cHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoZXh0ZW5kZWRLZXlzLnhwdWIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGV4dGVuZGVkS2V5cy54cHViLCB0ZXN0RGF0YS5TRUVEX0FDQ09VTlQueFB1YmxpY0tleSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhIHB1YmxpYyBrZXknLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHRlc3REYXRhLkFDQ09VTlRfMy5wdWJsaWNLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViLCB0ZXN0RGF0YS5BQ0NPVU5UXzMucHVibGljS2V5KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRBZGRyZXNzKCkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBnZXQgc2FtZSBhZGRyZXNzIGtleSBmb3IgYWNjb3VudCAzIHByaXZhdGUga2V5ICcsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuQUNDT1VOVF8zLnByaXZhdGVLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHJ2LCB0ZXN0RGF0YS5BQ0NPVU5UXzMucHJpdmF0ZUtleSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViLCB0ZXN0RGF0YS5BQ0NPVU5UXzMucHVibGljS2V5KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEFkZHJlc3MoJ3Rlc3RuZXQnKSwgdGVzdERhdGEuQUNDT1VOVF8zLmFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBnZXQgc2FtZSBhZGRyZXNzIGtleSBmb3IgYWNjb3VudCA0IHByaXZhdGUga2V5ICcsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogdGVzdERhdGEuQUNDT1VOVF80LnByaXZhdGVLZXkgfSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHJ2LCB0ZXN0RGF0YS5BQ0NPVU5UXzQucHJpdmF0ZUtleSk7XG4gICAgICBzaG91bGQuZXF1YWwoa2V5UGFpci5nZXRLZXlzKCkucHViLCB0ZXN0RGF0YS5BQ0NPVU5UXzQucHVibGljS2V5KTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEFkZHJlc3MoJ3Rlc3RuZXQnKSwgdGVzdERhdGEuQUNDT1VOVF80LmFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ2dldEFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBpdCgnc2hvdWxkIGdldCBhbiBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgICBjb25zdCBzZWVkID0gdGVzdERhdGEuU0VFRF9BQ0NPVU5ULnNlZWQ7XG4gICAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHNlZWQ6IEJ1ZmZlci5mcm9tKHNlZWQsICdoZXgnKSB9KTtcbiAgICAgICAgY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcygpO1xuICAgICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5TRUVEX0FDQ09VTlQuYWRkcmVzc01haW5uZXQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnd2l0aG91dCBzb3VyY2UnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwdWInKTtcbiAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwcnYnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBhIEtleVBhaXInLCAoKSA9PiB7XG4gICAgaXQoJ2Zyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gbmV3IEtleVBhaXIoeyBwdWI6IHRlc3REYXRhLklOVkFMSURfU0hPUlRfS0VZUEFJUl9LRVkgfSksXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuSU5WQUxJRF9QVUJMSUNfS0VZX0VSUk9SX01FU1NBR0VcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gbmV3IEtleVBhaXIoeyBwcnY6IHRlc3REYXRhLklOVkFMSURfU0hPUlRfS0VZUEFJUl9LRVkgfSksXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuSU5WQUxJRF9QUklWQVRFX0tFWV9FUlJPUl9NRVNTQUdFXG4gICAgICApO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIG5ldyBLZXlQYWlyKHsgcHJ2OiB0ZXN0RGF0YS5JTlZBTElEX0xPTkdfS0VZUEFJUl9QUlYgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gdGVzdERhdGEuSU5WQUxJRF9QUklWQVRFX0tFWV9FUlJPUl9NRVNTQUdFXG4gICAgICApO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gbmV3IEtleVBhaXIoeyBwcnY6IHBydktleSArIHB1YktleSB9KSxcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSB0ZXN0RGF0YS5JTlZBTElEX1BSSVZBVEVfS0VZX0VSUk9SX01FU1NBR0VcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd2ZXJpZnlBZGRyZXNzJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgZ2V0IGFuZCBtYXRjaCBtYWlubmV0IGFkZHJlc3MnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZWVkID0gdGVzdERhdGEuU0VFRF9BQ0NPVU5ULnNlZWQ7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBzZWVkOiBCdWZmZXIuZnJvbShzZWVkLCAnaGV4JykgfSk7XG4gICAgICBjb25zdCBhZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gICAgICBhZGRyZXNzLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5TRUVEX0FDQ09VTlQuYWRkcmVzc01haW5uZXQpO1xuXG4gICAgICBjb25zdCBwcnYgPSB0ZXN0RGF0YS5BQ0NPVU5UXzEucHJpdmF0ZUtleTtcbiAgICAgIGNvbnN0IGtleVBhaXIyID0gbmV3IEtleVBhaXIoeyBwcnY6IHBydiB9KTtcbiAgICAgIGNvbnN0IGFkZHJlc3MyID0ga2V5UGFpcjIuZ2V0QWRkcmVzcygpO1xuICAgICAgYWRkcmVzczIuc2hvdWxkLmVxdWFsKHRlc3REYXRhLkFDQ09VTlRfMS5hZGRyZXNzTWFpbm5ldCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBhbmQgbWF0Y2ggdGVzdG5ldCBhZGRyZXNzJywgKCkgPT4ge1xuICAgICAgY29uc3Qgc2VlZCA9IHRlc3REYXRhLlNFRURfQUNDT1VOVC5zZWVkO1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgc2VlZDogQnVmZmVyLmZyb20oc2VlZCwgJ2hleCcpIH0pO1xuICAgICAgY29uc3QgYWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcygndGVzdG5ldCcpO1xuICAgICAgYWRkcmVzcy5zaG91bGQuZXF1YWwodGVzdERhdGEuU0VFRF9BQ0NPVU5ULmFkZHJlc3NUZXN0bmV0KTtcblxuICAgICAgY29uc3QgcHJ2ID0gdGVzdERhdGEuQUNDT1VOVF8xLnByaXZhdGVLZXk7XG4gICAgICBjb25zdCBrZXlQYWlyMiA9IG5ldyBLZXlQYWlyKHsgcHJ2OiBwcnYgfSk7XG4gICAgICBjb25zdCBhZGRyZXNzMiA9IGtleVBhaXIyLmdldEFkZHJlc3MoJ3Rlc3RuZXQnKTtcbiAgICAgIGFkZHJlc3MyLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS5BQ0NPVU5UXzEuYWRkcmVzc1Rlc3RuZXQpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|