@bitgo-beta/sdk-coin-flrp 1.0.1-beta.272 → 1.0.1-beta.273
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/lib/ImportInPTxBuilder.d.ts +12 -2
- package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -1
- package/dist/src/lib/ImportInPTxBuilder.js +128 -32
- package/dist/src/lib/atomicTransactionBuilder.d.ts +15 -2
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +29 -3
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +13 -4
- package/dist/src/lib/transactionBuilderFactory.d.ts +2 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +26 -15
- package/dist/src/lib/utils.d.ts +8 -0
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +53 -1
- package/dist/test/resources/transactionData/importInP.d.ts +35 -0
- package/dist/test/resources/transactionData/importInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInP.js +58 -0
- package/dist/test/unit/lib/importInPTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importInPTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importInPTxBuilder.js +73 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts +21 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
- package/dist/test/unit/lib/signFlowTestSuit.js +90 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IMPORT_IN_P = void 0;
|
|
4
|
+
exports.IMPORT_IN_P = {
|
|
5
|
+
txhash: 'E9zZjFzTshfrZZv17n17gFKwj9ijyRaj6nQ1cJed3gYxSBUaX',
|
|
6
|
+
unsignedHex: '0x0000000000110000007200000000000000000000000000000000000000000000000000000000000000000000000158734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000070000000002e7b2b80000000000000000000000020000000312cb32eaf92553064db98d271b56cba079ec78f5a6e0c1abd0132f70efb77e2274637ff336a29a57c386d58d09a9ae77cf1cf07bf1c9de44ebb0c9f3000000000000000078db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da555247900000001836b0141f34b3f855b69a0837e8ac0ede628333a4fbb389fb6a939709b0dbfa90000000058734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000050000000002faf080000000020000000000000001',
|
|
7
|
+
signedHex: '0x0000000000110000007200000000000000000000000000000000000000000000000000000000000000000000000158734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000070000000002e7b2b80000000000000000000000020000000312cb32eaf92553064db98d271b56cba079ec78f5a6e0c1abd0132f70efb77e2274637ff336a29a57c386d58d09a9ae77cf1cf07bf1c9de44ebb0c9f3000000000000000078db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da555247900000001836b0141f34b3f855b69a0837e8ac0ede628333a4fbb389fb6a939709b0dbfa90000000058734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000050000000002faf080000000020000000000000001000000010000000900000002ef08753ef72f04e7f55ed806de709ebac9dae71f152c4d9dc63f4d33caaac7380ea00017b948172268ff47955dccb3812772b63c9fc0a6d6f135a968eebb2e9d01b9c7e056bac529f03cf05e2f1d3f18884546b19e59baeb9d87fe297b9fa2f6813dda416a2d19a5b13aa0b4850f0082c5cfdfd15b20069ecda47e1b5bf611c89e00',
|
|
8
|
+
xPrivateKey: 'xprv9s21ZrQH143K2DW9jvDoAkVpRKi5V9XhZaVdoUcqoYPPQ9wRrLNT6VGgWBbRoSYB39Lak6kXgdTM9T3QokEi5n2JJ8EdggHLkZPX8eDiBu1',
|
|
9
|
+
signature: [
|
|
10
|
+
'0x33f126dee90108c473af9513ebd9eb1591a701b5dfc69041075b303b858fee0609ca9a60208b46f6836f0baf1a9fba740d97b65d45caae10470b5fa707eb45c900',
|
|
11
|
+
],
|
|
12
|
+
halfSignedSignature: '0xef08753ef72f04e7f55ed806de709ebac9dae71f152c4d9dc63f4d33caaac7380ea00017b948172268ff47955dccb3812772b63c9fc0a6d6f135a968eebb2e9d01',
|
|
13
|
+
halfSigntxHex: '0x0000000000110000007200000000000000000000000000000000000000000000000000000000000000000000000158734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000070000000002e7b2b80000000000000000000000020000000312cb32eaf92553064db98d271b56cba079ec78f5a6e0c1abd0132f70efb77e2274637ff336a29a57c386d58d09a9ae77cf1cf07bf1c9de44ebb0c9f3000000000000000078db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da555247900000001836b0141f34b3f855b69a0837e8ac0ede628333a4fbb389fb6a939709b0dbfa90000000058734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000050000000002faf080000000020000000000000001000000010000000900000002ef08753ef72f04e7f55ed806de709ebac9dae71f152c4d9dc63f4d33caaac7380ea00017b948172268ff47955dccb3812772b63c9fc0a6d6f135a968eebb2e9d010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000',
|
|
14
|
+
fullSigntxHex: '0x0000000000110000007200000000000000000000000000000000000000000000000000000000000000000000000158734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000070000000002e7b2b80000000000000000000000020000000312cb32eaf92553064db98d271b56cba079ec78f5a6e0c1abd0132f70efb77e2274637ff336a29a57c386d58d09a9ae77cf1cf07bf1c9de44ebb0c9f3000000000000000078db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da555247900000001836b0141f34b3f855b69a0837e8ac0ede628333a4fbb389fb6a939709b0dbfa90000000058734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000050000000002faf080000000020000000000000001000000010000000900000002ef08753ef72f04e7f55ed806de709ebac9dae71f152c4d9dc63f4d33caaac7380ea00017b948172268ff47955dccb3812772b63c9fc0a6d6f135a968eebb2e9d01b9c7e056bac529f03cf05e2f1d3f18884546b19e59baeb9d87fe297b9fa2f6813dda416a2d19a5b13aa0b4850f0082c5cfdfd15b20069ecda47e1b5bf611c89e00',
|
|
15
|
+
fullSignedSignature: '0xb9c7e056bac529f03cf05e2f1d3f18884546b19e59baeb9d87fe297b9fa2f6813dda416a2d19a5b13aa0b4850f0082c5cfdfd15b20069ecda47e1b5bf611c89e00',
|
|
16
|
+
outputs: [
|
|
17
|
+
{
|
|
18
|
+
outputID: 0,
|
|
19
|
+
amount: '50000000',
|
|
20
|
+
txid: 'zstyYq5riDKYDSR3fUYKKkuXKJ1aJCe8WNrXKqEBJD4CGwzFw',
|
|
21
|
+
outputidx: '0',
|
|
22
|
+
addresses: [
|
|
23
|
+
'0x12cb32eaf92553064db98d271b56cba079ec78f5',
|
|
24
|
+
'0xa6e0c1abd0132f70efb77e2274637ff336a29a57',
|
|
25
|
+
'0xc386d58d09a9ae77cf1cf07bf1c9de44ebb0c9f3',
|
|
26
|
+
],
|
|
27
|
+
threshold: 2,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
cAddressPrivateKey: '14977929a4e00e4af1c33545240a6a5a08ca3034214618f6b04b72b80883be3a',
|
|
31
|
+
cAddressPublicKey: '033ca1801f51484063f3bce093413ca06f7d91c44c3883f642eb103eda5e0eaed3',
|
|
32
|
+
amount: '50000000', // 0.00005 FLR
|
|
33
|
+
cHexAddress: '0x28A05933dC76e4e6c25f35D5c9b2A58769700E76',
|
|
34
|
+
pAddresses: [
|
|
35
|
+
'P-costwo1zt9n96hey4fsvnde35n3k4kt5pu7c784dzewzd',
|
|
36
|
+
'P-costwo1cwrdtrgf4xh80ncu7palrjw7gn4mpj0n4dxghh',
|
|
37
|
+
'P-costwo15msvr27szvhhpmah0c38gcml7vm29xjh7tcek8',
|
|
38
|
+
],
|
|
39
|
+
mainAddress: 'P-costwo1q0ssshmwz3k77k3v0wkfr0j64dvhzzaaf9wdhq',
|
|
40
|
+
corethAddress: [
|
|
41
|
+
'C-costwo1zt9n96hey4fsvnde35n3k4kt5pu7c784dzewzd',
|
|
42
|
+
'C-costwo1cwrdtrgf4xh80ncu7palrjw7gn4mpj0n4dxghh',
|
|
43
|
+
'C-costwo15msvr27szvhhpmah0c38gcml7vm29xjh7tcek8',
|
|
44
|
+
],
|
|
45
|
+
privateKeys: [
|
|
46
|
+
'14977929a4e00e4af1c33545240a6a5a08ca3034214618f6b04b72b80883be3a',
|
|
47
|
+
'7cf4f2c6ba02376bd586217f4a7cd4061e1908e38cf1614278606548d7eb6f7a',
|
|
48
|
+
'002939e9312351e9e23c58015d7ef977ef9f5eaa290e8375b1c4b7f071e0ac1a',
|
|
49
|
+
],
|
|
50
|
+
sourceChainId: 'vE8M98mEQH6wk56sStD1ML8HApTgSqfJZLk9gQ3Fsd4i6m3Bi',
|
|
51
|
+
nonce: 9,
|
|
52
|
+
threshold: 2,
|
|
53
|
+
fee: '1261000', // Fee derived from expected hex (input - output = 50000000 - 48739000)
|
|
54
|
+
locktime: 0,
|
|
55
|
+
INVALID_CHAIN_ID: 'wrong chain id',
|
|
56
|
+
VALID_C_CHAIN_ID: 'yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp',
|
|
57
|
+
};
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5QLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvdHJhbnNhY3Rpb25EYXRhL2ltcG9ydEluUC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsbURBQW1EO0lBQzNELFdBQVcsRUFDVCxnbUJBQWdtQjtJQUNsbUIsU0FBUyxFQUNQLDQzQkFBNDNCO0lBQzkzQixXQUFXLEVBQ1QsaUhBQWlIO0lBQ25ILFNBQVMsRUFBRTtRQUNULHNJQUFzSTtLQUN2STtJQUVELG1CQUFtQixFQUNqQixzSUFBc0k7SUFDeEksYUFBYSxFQUNYLDQzQkFBNDNCO0lBQzkzQixhQUFhLEVBQ1gsNDNCQUE0M0I7SUFDOTNCLG1CQUFtQixFQUNqQixzSUFBc0k7SUFFeEksT0FBTyxFQUFFO1FBQ1A7WUFDRSxRQUFRLEVBQUUsQ0FBQztZQUNYLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLElBQUksRUFBRSxtREFBbUQ7WUFDekQsU0FBUyxFQUFFLEdBQUc7WUFDZCxTQUFTLEVBQUU7Z0JBQ1QsNENBQTRDO2dCQUM1Qyw0Q0FBNEM7Z0JBQzVDLDRDQUE0QzthQUM3QztZQUNELFNBQVMsRUFBRSxDQUFDO1NBQ2I7S0FDRjtJQUNELGtCQUFrQixFQUFFLGtFQUFrRTtJQUN0RixpQkFBaUIsRUFBRSxvRUFBb0U7SUFDdkYsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjO0lBQ2xDLFdBQVcsRUFBRSw0Q0FBNEM7SUFDekQsVUFBVSxFQUFFO1FBQ1YsaURBQWlEO1FBQ2pELGlEQUFpRDtRQUNqRCxpREFBaUQ7S0FDbEQ7SUFDRCxXQUFXLEVBQUUsaURBQWlEO0lBQzlELGFBQWEsRUFBRTtRQUNiLGlEQUFpRDtRQUNqRCxpREFBaUQ7UUFDakQsaURBQWlEO0tBQ2xEO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSxrRUFBa0U7S0FDbkU7SUFDRCxhQUFhLEVBQUUsbURBQW1EO0lBQ2xFLEtBQUssRUFBRSxDQUFDO0lBQ1IsU0FBUyxFQUFFLENBQUM7SUFDWixHQUFHLEVBQUUsU0FBUyxFQUFFLHVFQUF1RTtJQUN2RixRQUFRLEVBQUUsQ0FBQztJQUNYLGdCQUFnQixFQUFFLGdCQUFnQjtJQUNsQyxnQkFBZ0IsRUFBRSxtREFBbUQ7Q0FDdEUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBJTVBPUlRfSU5fUCA9IHtcbiAgdHhoYXNoOiAnRTl6WmpGelRzaGZyWlp2MTduMTdnRkt3ajlpanlSYWo2blExY0plZDNnWXhTQlVhWCcsXG4gIHVuc2lnbmVkSGV4OlxuICAgICcweDAwMDAwMDAwMDAxMTAwMDAwMDcyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxNTg3MzRmOTRhZjg3MWMzZDEzMWI1NjEzMWI2ZmI3YTAyOTFlYWNhZGQyNjFlNjlkZmI0MmE5Y2RmNmY3ZmRkZDAwMDAwMDA3MDAwMDAwMDAwMmU3YjJiODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAzMTJjYjMyZWFmOTI1NTMwNjRkYjk4ZDI3MWI1NmNiYTA3OWVjNzhmNWE2ZTBjMWFiZDAxMzJmNzBlZmI3N2UyMjc0NjM3ZmYzMzZhMjlhNTdjMzg2ZDU4ZDA5YTlhZTc3Y2YxY2YwN2JmMWM5ZGU0NGViYjBjOWYzMDAwMDAwMDAwMDAwMDAwMDc4ZGI1YzMwYmVkMDRjMDVjZTIwOTE3OTgxMjg1MGJiYjNmZTZkNDZkN2VlZjM3NDRkODE0YzBkYTU1NTI0NzkwMDAwMDAwMTgzNmIwMTQxZjM0YjNmODU1YjY5YTA4MzdlOGFjMGVkZTYyODMzM2E0ZmJiMzg5ZmI2YTkzOTcwOWIwZGJmYTkwMDAwMDAwMDU4NzM0Zjk0YWY4NzFjM2QxMzFiNTYxMzFiNmZiN2EwMjkxZWFjYWRkMjYxZTY5ZGZiNDJhOWNkZjZmN2ZkZGQwMDAwMDAwNTAwMDAwMDAwMDJmYWYwODAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDEnLFxuICBzaWduZWRIZXg6XG4gICAgJzB4MDAwMDAwMDAwMDExMDAwMDAwNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1ODczNGY5NGFmODcxYzNkMTMxYjU2MTMxYjZmYjdhMDI5MWVhY2FkZDI2MWU2OWRmYjQyYTljZGY2ZjdmZGRkMDAwMDAwMDcwMDAwMDAwMDAyZTdiMmI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDMxMmNiMzJlYWY5MjU1MzA2NGRiOThkMjcxYjU2Y2JhMDc5ZWM3OGY1YTZlMGMxYWJkMDEzMmY3MGVmYjc3ZTIyNzQ2MzdmZjMzNmEyOWE1N2MzODZkNThkMDlhOWFlNzdjZjFjZjA3YmYxYzlkZTQ0ZWJiMGM5ZjMwMDAwMDAwMDAwMDAwMDAwNzhkYjVjMzBiZWQwNGMwNWNlMjA5MTc5ODEyODUwYmJiM2ZlNmQ0NmQ3ZWVmMzc0NGQ4MTRjMGRhNTU1MjQ3OTAwMDAwMDAxODM2YjAxNDFmMzRiM2Y4NTViNjlhMDgzN2U4YWMwZWRlNjI4MzMzYTRmYmIzODlmYjZhOTM5NzA5YjBkYmZhOTAwMDAwMDAwNTg3MzRmOTRhZjg3MWMzZDEzMWI1NjEzMWI2ZmI3YTAyOTFlYWNhZGQyNjFlNjlkZmI0MmE5Y2RmNmY3ZmRkZDAwMDAwMDA1MDAwMDAwMDAwMmZhZjA4MDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAxMDAwMDAwMDkwMDAwMDAwMmVmMDg3NTNlZjcyZjA0ZTdmNTVlZDgwNmRlNzA5ZWJhYzlkYWU3MWYxNTJjNGQ5ZGM2M2Y0ZDMzY2FhYWM3MzgwZWEwMDAxN2I5NDgxNzIyNjhmZjQ3OTU1ZGNjYjM4MTI3NzJiNjNjOWZjMGE2ZDZmMTM1YTk2OGVlYmIyZTlkMDFiOWM3ZTA1NmJhYzUyOWYwM2NmMDVlMmYxZDNmMTg4ODQ1NDZiMTllNTliYWViOWQ4N2ZlMjk3YjlmYTJmNjgxM2RkYTQxNmEyZDE5YTViMTNhYTBiNDg1MGYwMDgyYzVjZmRmZDE1YjIwMDY5ZWNkYTQ3ZTFiNWJmNjExYzg5ZTAwJyxcbiAgeFByaXZhdGVLZXk6XG4gICAgJ3hwcnY5czIxWnJRSDE0M0syRFc5anZEb0FrVnBSS2k1VjlYaFphVmRvVWNxb1lQUFE5d1JyTE5UNlZHZ1dCYlJvU1lCMzlMYWs2a1hnZFRNOVQzUW9rRWk1bjJKSjhFZGdnSExrWlBYOGVEaUJ1MScsXG4gIHNpZ25hdHVyZTogW1xuICAgICcweDMzZjEyNmRlZTkwMTA4YzQ3M2FmOTUxM2ViZDllYjE1OTFhNzAxYjVkZmM2OTA0MTA3NWIzMDNiODU4ZmVlMDYwOWNhOWE2MDIwOGI0NmY2ODM2ZjBiYWYxYTlmYmE3NDBkOTdiNjVkNDVjYWFlMTA0NzBiNWZhNzA3ZWI0NWM5MDAnLFxuICBdLFxuXG4gIGhhbGZTaWduZWRTaWduYXR1cmU6XG4gICAgJzB4ZWYwODc1M2VmNzJmMDRlN2Y1NWVkODA2ZGU3MDllYmFjOWRhZTcxZjE1MmM0ZDlkYzYzZjRkMzNjYWFhYzczODBlYTAwMDE3Yjk0ODE3MjI2OGZmNDc5NTVkY2NiMzgxMjc3MmI2M2M5ZmMwYTZkNmYxMzVhOTY4ZWViYjJlOWQwMScsXG4gIGhhbGZTaWdudHhIZXg6XG4gICAgJzB4MDAwMDAwMDAwMDExMDAwMDAwNzIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE1ODczNGY5NGFmODcxYzNkMTMxYjU2MTMxYjZmYjdhMDI5MWVhY2FkZDI2MWU2OWRmYjQyYTljZGY2ZjdmZGRkMDAwMDAwMDcwMDAwMDAwMDAyZTdiMmI4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDMxMmNiMzJlYWY5MjU1MzA2NGRiOThkMjcxYjU2Y2JhMDc5ZWM3OGY1YTZlMGMxYWJkMDEzMmY3MGVmYjc3ZTIyNzQ2MzdmZjMzNmEyOWE1N2MzODZkNThkMDlhOWFlNzdjZjFjZjA3YmYxYzlkZTQ0ZWJiMGM5ZjMwMDAwMDAwMDAwMDAwMDAwNzhkYjVjMzBiZWQwNGMwNWNlMjA5MTc5ODEyODUwYmJiM2ZlNmQ0NmQ3ZWVmMzc0NGQ4MTRjMGRhNTU1MjQ3OTAwMDAwMDAxODM2YjAxNDFmMzRiM2Y4NTViNjlhMDgzN2U4YWMwZWRlNjI4MzMzYTRmYmIzODlmYjZhOTM5NzA5YjBkYmZhOTAwMDAwMDAwNTg3MzRmOTRhZjg3MWMzZDEzMWI1NjEzMWI2ZmI3YTAyOTFlYWNhZGQyNjFlNjlkZmI0MmE5Y2RmNmY3ZmRkZDAwMDAwMDA1MDAwMDAwMDAwMmZhZjA4MDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAxMDAwMDAwMDkwMDAwMDAwMmVmMDg3NTNlZjcyZjA0ZTdmNTVlZDgwNmRlNzA5ZWJhYzlkYWU3MWYxNTJjNGQ5ZGM2M2Y0ZDMzY2FhYWM3MzgwZWEwMDAxN2I5NDgxNzIyNjhmZjQ3OTU1ZGNjYjM4MTI3NzJiNjNjOWZjMGE2ZDZmMTM1YTk2OGVlYmIyZTlkMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgZnVsbFNpZ250eEhleDpcbiAgICAnMHgwMDAwMDAwMDAwMTEwMDAwMDA3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTU4NzM0Zjk0YWY4NzFjM2QxMzFiNTYxMzFiNmZiN2EwMjkxZWFjYWRkMjYxZTY5ZGZiNDJhOWNkZjZmN2ZkZGQwMDAwMDAwNzAwMDAwMDAwMDJlN2IyYjgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMzEyY2IzMmVhZjkyNTUzMDY0ZGI5OGQyNzFiNTZjYmEwNzllYzc4ZjVhNmUwYzFhYmQwMTMyZjcwZWZiNzdlMjI3NDYzN2ZmMzM2YTI5YTU3YzM4NmQ1OGQwOWE5YWU3N2NmMWNmMDdiZjFjOWRlNDRlYmIwYzlmMzAwMDAwMDAwMDAwMDAwMDA3OGRiNWMzMGJlZDA0YzA1Y2UyMDkxNzk4MTI4NTBiYmIzZmU2ZDQ2ZDdlZWYzNzQ0ZDgxNGMwZGE1NTUyNDc5MDAwMDAwMDE4MzZiMDE0MWYzNGIzZjg1NWI2OWEwODM3ZThhYzBlZGU2MjgzMzNhNGZiYjM4OWZiNmE5Mzk3MDliMGRiZmE5MDAwMDAwMDA1ODczNGY5NGFmODcxYzNkMTMxYjU2MTMxYjZmYjdhMDI5MWVhY2FkZDI2MWU2OWRmYjQyYTljZGY2ZjdmZGRkMDAwMDAwMDUwMDAwMDAwMDAyZmFmMDgwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDEwMDAwMDAwOTAwMDAwMDAyZWYwODc1M2VmNzJmMDRlN2Y1NWVkODA2ZGU3MDllYmFjOWRhZTcxZjE1MmM0ZDlkYzYzZjRkMzNjYWFhYzczODBlYTAwMDE3Yjk0ODE3MjI2OGZmNDc5NTVkY2NiMzgxMjc3MmI2M2M5ZmMwYTZkNmYxMzVhOTY4ZWViYjJlOWQwMWI5YzdlMDU2YmFjNTI5ZjAzY2YwNWUyZjFkM2YxODg4NDU0NmIxOWU1OWJhZWI5ZDg3ZmUyOTdiOWZhMmY2ODEzZGRhNDE2YTJkMTlhNWIxM2FhMGI0ODUwZjAwODJjNWNmZGZkMTViMjAwNjllY2RhNDdlMWI1YmY2MTFjODllMDAnLFxuICBmdWxsU2lnbmVkU2lnbmF0dXJlOlxuICAgICcweGI5YzdlMDU2YmFjNTI5ZjAzY2YwNWUyZjFkM2YxODg4NDU0NmIxOWU1OWJhZWI5ZDg3ZmUyOTdiOWZhMmY2ODEzZGRhNDE2YTJkMTlhNWIxM2FhMGI0ODUwZjAwODJjNWNmZGZkMTViMjAwNjllY2RhNDdlMWI1YmY2MTFjODllMDAnLFxuXG4gIG91dHB1dHM6IFtcbiAgICB7XG4gICAgICBvdXRwdXRJRDogMCxcbiAgICAgIGFtb3VudDogJzUwMDAwMDAwJyxcbiAgICAgIHR4aWQ6ICd6c3R5WXE1cmlES1lEU1IzZlVZS0trdVhLSjFhSkNlOFdOclhLcUVCSkQ0Q0d3ekZ3JyxcbiAgICAgIG91dHB1dGlkeDogJzAnLFxuICAgICAgYWRkcmVzc2VzOiBbXG4gICAgICAgICcweDEyY2IzMmVhZjkyNTUzMDY0ZGI5OGQyNzFiNTZjYmEwNzllYzc4ZjUnLFxuICAgICAgICAnMHhhNmUwYzFhYmQwMTMyZjcwZWZiNzdlMjI3NDYzN2ZmMzM2YTI5YTU3JyxcbiAgICAgICAgJzB4YzM4NmQ1OGQwOWE5YWU3N2NmMWNmMDdiZjFjOWRlNDRlYmIwYzlmMycsXG4gICAgICBdLFxuICAgICAgdGhyZXNob2xkOiAyLFxuICAgIH0sXG4gIF0sXG4gIGNBZGRyZXNzUHJpdmF0ZUtleTogJzE0OTc3OTI5YTRlMDBlNGFmMWMzMzU0NTI0MGE2YTVhMDhjYTMwMzQyMTQ2MThmNmIwNGI3MmI4MDg4M2JlM2EnLFxuICBjQWRkcmVzc1B1YmxpY0tleTogJzAzM2NhMTgwMWY1MTQ4NDA2M2YzYmNlMDkzNDEzY2EwNmY3ZDkxYzQ0YzM4ODNmNjQyZWIxMDNlZGE1ZTBlYWVkMycsXG4gIGFtb3VudDogJzUwMDAwMDAwJywgLy8gMC4wMDAwNSBGTFJcbiAgY0hleEFkZHJlc3M6ICcweDI4QTA1OTMzZEM3NmU0ZTZjMjVmMzVENWM5YjJBNTg3Njk3MDBFNzYnLFxuICBwQWRkcmVzc2VzOiBbXG4gICAgJ1AtY29zdHdvMXp0OW45NmhleTRmc3ZuZGUzNW4zazRrdDVwdTdjNzg0ZHpld3pkJyxcbiAgICAnUC1jb3N0d28xY3dyZHRyZ2Y0eGg4MG5jdTdwYWxyanc3Z240bXBqMG40ZHhnaGgnLFxuICAgICdQLWNvc3R3bzE1bXN2cjI3c3p2aGhwbWFoMGMzOGdjbWw3dm0yOXhqaDd0Y2VrOCcsXG4gIF0sXG4gIG1haW5BZGRyZXNzOiAnUC1jb3N0d28xcTBzc3NobXd6M2s3N2szdjB3a2ZyMGo2NGR2aHp6YWFmOXdkaHEnLFxuICBjb3JldGhBZGRyZXNzOiBbXG4gICAgJ0MtY29zdHdvMXp0OW45NmhleTRmc3ZuZGUzNW4zazRrdDVwdTdjNzg0ZHpld3pkJyxcbiAgICAnQy1jb3N0d28xY3dyZHRyZ2Y0eGg4MG5jdTdwYWxyanc3Z240bXBqMG40ZHhnaGgnLFxuICAgICdDLWNvc3R3bzE1bXN2cjI3c3p2aGhwbWFoMGMzOGdjbWw3dm0yOXhqaDd0Y2VrOCcsXG4gIF0sXG4gIHByaXZhdGVLZXlzOiBbXG4gICAgJzE0OTc3OTI5YTRlMDBlNGFmMWMzMzU0NTI0MGE2YTVhMDhjYTMwMzQyMTQ2MThmNmIwNGI3MmI4MDg4M2JlM2EnLFxuICAgICc3Y2Y0ZjJjNmJhMDIzNzZiZDU4NjIxN2Y0YTdjZDQwNjFlMTkwOGUzOGNmMTYxNDI3ODYwNjU0OGQ3ZWI2ZjdhJyxcbiAgICAnMDAyOTM5ZTkzMTIzNTFlOWUyM2M1ODAxNWQ3ZWY5NzdlZjlmNWVhYTI5MGU4Mzc1YjFjNGI3ZjA3MWUwYWMxYScsXG4gIF0sXG4gIHNvdXJjZUNoYWluSWQ6ICd2RThNOThtRVFINndrNTZzU3REMU1MOEhBcFRnU3FmSlpMazlnUTNGc2Q0aTZtM0JpJyxcbiAgbm9uY2U6IDksXG4gIHRocmVzaG9sZDogMixcbiAgZmVlOiAnMTI2MTAwMCcsIC8vIEZlZSBkZXJpdmVkIGZyb20gZXhwZWN0ZWQgaGV4IChpbnB1dCAtIG91dHB1dCA9IDUwMDAwMDAwIC0gNDg3MzkwMDApXG4gIGxvY2t0aW1lOiAwLFxuICBJTlZBTElEX0NIQUlOX0lEOiAnd3JvbmcgY2hhaW4gaWQnLFxuICBWQUxJRF9DX0NIQUlOX0lEOiAneUg4RDdUaE5Ka3htdGt1djJqZ0JhNFAxUm4zUXByNHBQcjdRWU5mY2RvUzZrNkhXcCcsXG59O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importInPTxBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/importInPTxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
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 assert_1 = __importDefault(require("assert"));
|
|
7
|
+
require("should");
|
|
8
|
+
const importInP_1 = require("../../resources/transactionData/importInP");
|
|
9
|
+
const lib_1 = require("../../../src/lib");
|
|
10
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
11
|
+
const signFlowTestSuit_1 = __importDefault(require("./signFlowTestSuit"));
|
|
12
|
+
describe('Flrp Import In P Tx Builder', () => {
|
|
13
|
+
const factory = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'));
|
|
14
|
+
describe('validate txBuilder fields', () => {
|
|
15
|
+
const txBuilder = factory.getImportInPBuilder();
|
|
16
|
+
it('should fail target chain id length incorrect', () => {
|
|
17
|
+
assert_1.default.throws(() => {
|
|
18
|
+
txBuilder.externalChainId(Buffer.from(importInP_1.IMPORT_IN_P.INVALID_CHAIN_ID));
|
|
19
|
+
}, (e) => e.message === 'Chain id are 32 byte size');
|
|
20
|
+
});
|
|
21
|
+
it('should fail target chain id not a valid base58 string', () => {
|
|
22
|
+
assert_1.default.throws(() => {
|
|
23
|
+
txBuilder.externalChainId(importInP_1.IMPORT_IN_P.INVALID_CHAIN_ID);
|
|
24
|
+
}, (e) => e.message === 'Non-base58 character');
|
|
25
|
+
});
|
|
26
|
+
it('should fail target chain id cb58 invalid checksum', () => {
|
|
27
|
+
assert_1.default.throws(() => {
|
|
28
|
+
txBuilder.externalChainId(importInP_1.IMPORT_IN_P.VALID_C_CHAIN_ID.slice(2));
|
|
29
|
+
}, (e) => e.message === 'Invalid checksum');
|
|
30
|
+
});
|
|
31
|
+
it('should fail validate Utxos empty string', () => {
|
|
32
|
+
assert_1.default.throws(() => {
|
|
33
|
+
txBuilder.validateUtxos([]);
|
|
34
|
+
}, (e) => e.message === 'UTXOs array cannot be empty');
|
|
35
|
+
});
|
|
36
|
+
it('should fail validate Utxos without amount field', () => {
|
|
37
|
+
assert_1.default.throws(() => {
|
|
38
|
+
txBuilder.validateUtxos([{ outputID: '' }]);
|
|
39
|
+
}, (e) => e.message === 'UTXO missing required field: amount');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
(0, signFlowTestSuit_1.default)({
|
|
43
|
+
transactionType: 'Import P2C',
|
|
44
|
+
newTxFactory: () => new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')),
|
|
45
|
+
newTxBuilder: () => new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
|
|
46
|
+
.getImportInPBuilder()
|
|
47
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
48
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
49
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.pAddresses)
|
|
50
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
51
|
+
.fee(importInP_1.IMPORT_IN_P.fee)
|
|
52
|
+
.utxos(importInP_1.IMPORT_IN_P.outputs),
|
|
53
|
+
unsignedTxHex: importInP_1.IMPORT_IN_P.unsignedHex,
|
|
54
|
+
halfSignedTxHex: importInP_1.IMPORT_IN_P.halfSigntxHex,
|
|
55
|
+
fullSignedTxHex: importInP_1.IMPORT_IN_P.fullSigntxHex,
|
|
56
|
+
privateKey: {
|
|
57
|
+
prv1: importInP_1.IMPORT_IN_P.privateKeys[0],
|
|
58
|
+
prv2: importInP_1.IMPORT_IN_P.privateKeys[1],
|
|
59
|
+
},
|
|
60
|
+
txHash: importInP_1.IMPORT_IN_P.txhash,
|
|
61
|
+
});
|
|
62
|
+
it('Should full sign a import tx from unsigned raw tx', () => {
|
|
63
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.unsignedHex);
|
|
64
|
+
txBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[0] });
|
|
65
|
+
txBuilder
|
|
66
|
+
.build()
|
|
67
|
+
.then(() => assert_1.default.fail('it can sign'))
|
|
68
|
+
.catch((err) => {
|
|
69
|
+
err.message.should.be.equal('Private key cannot sign the transaction');
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5QVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2xpYi9pbXBvcnRJblBUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsa0JBQWdCO0FBQ2hCLHlFQUFvRjtBQUNwRiwwQ0FBNkU7QUFDN0UsaURBQTRDO0FBQzVDLDBFQUE4QztBQUU5QyxRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFaEQsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEdBQUcsRUFBRTtZQUN0RCxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUU7Z0JBQ0gsU0FBUyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVCQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ3BFLENBQUMsRUFDRCxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSywyQkFBMkIsQ0FDdEQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHVEQUF1RCxFQUFFLEdBQUcsRUFBRTtZQUMvRCxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUU7Z0JBQ0gsU0FBUyxDQUFDLGVBQWUsQ0FBQyx1QkFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDdkQsQ0FBQyxFQUNELENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLHNCQUFzQixDQUNqRCxDQUFDO1FBQ0osQ0FBQyxD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RyxFQUFFLEVBQUU7WUFDYixHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgSU1QT1JUX0lOX1AgYXMgdGVzdERhdGEgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHJhbnNhY3Rpb25EYXRhL2ltcG9ydEluUCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBEZWNvZGVkVXR4b09iaiB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWInO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBzaWduRmxvd1Rlc3QgZnJvbSAnLi9zaWduRmxvd1Rlc3RTdWl0JztcblxuZGVzY3JpYmUoJ0ZscnAgSW1wb3J0IEluIFAgVHggQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSk7XG4gIGRlc2NyaWJlKCd2YWxpZGF0ZSB0eEJ1aWxkZXIgZmllbGRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0SW1wb3J0SW5QQnVpbGRlcigpO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRhcmdldCBjaGFpbiBpZCBsZW5ndGggaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci5leHRlcm5hbENoYWluSWQoQnVmZmVyLmZyb20odGVzdERhdGEuSU5WQUxJRF9DSEFJTl9JRCkpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdDaGFpbiBpZCBhcmUgMzIgYnl0ZSBzaXplJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0YXJnZXQgY2hhaW4gaWQgbm90IGEgdmFsaWQgYmFzZTU4IHN0cmluZycsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eEJ1aWxkZXIuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLklOVkFMSURfQ0hBSU5fSUQpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdOb24tYmFzZTU4IGNoYXJhY3RlcidcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdGFyZ2V0IGNoYWluIGlkIGNiNTggaW52YWxpZCBjaGVja3N1bScsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eEJ1aWxkZXIuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLlZBTElEX0NfQ0hBSU5fSUQuc2xpY2UoMikpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdJbnZhbGlkIGNoZWNrc3VtJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB2YWxpZGF0ZSBVdHhvcyBlbXB0eSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLnZhbGlkYXRlVXR4b3MoW10pO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdVVFhPcyBhcnJheSBjYW5ub3QgYmUgZW1wdHknXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHZhbGlkYXRlIFV0eG9zIHdpdGhvdXQgYW1vdW50IGZpZWxkJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci52YWxpZGF0ZVV0eG9zKFt7IG91dHB1dElEOiAnJyB9IGFzIGFueSBhcyBEZWNvZGVkVXR4b09ial0pO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdVVFhPIG1pc3NpbmcgcmVxdWlyZWQgZmllbGQ6IGFtb3VudCdcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHNpZ25GbG93VGVzdCh7XG4gICAgdHJhbnNhY3Rpb25UeXBlOiAnSW1wb3J0IFAyQycsXG4gICAgbmV3VHhGYWN0b3J5OiAoKSA9PiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpLFxuICAgIG5ld1R4QnVpbGRlcjogKCkgPT5cbiAgICAgIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSlcbiAgICAgICAgLmdldEltcG9ydEluUEJ1aWxkZXIoKVxuICAgICAgICAudGhyZXNob2xkKHRlc3REYXRhLnRocmVzaG9sZClcbiAgICAgICAgLmxvY2t0aW1lKHRlc3REYXRhLmxvY2t0aW1lKVxuICAgICAgICAuZnJvbVB1YktleSh0ZXN0RGF0YS5wQWRkcmVzc2VzKVxuICAgICAgICAuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLnNvdXJjZUNoYWluSWQpXG4gICAgICAgIC5mZWUodGVzdERhdGEuZmVlKVxuICAgICAgICAudXR4b3ModGVzdERhdGEub3V0cHV0cyksXG4gICAgdW5zaWduZWRUeEhleDogdGVzdERhdGEudW5zaWduZWRIZXgsXG4gICAgaGFsZlNpZ25lZFR4SGV4OiB0ZXN0RGF0YS5oYWxmU2lnbnR4SGV4LFxuICAgIGZ1bGxTaWduZWRUeEhleDogdGVzdERhdGEuZnVsbFNpZ250eEhleCxcbiAgICBwcml2YXRlS2V5OiB7XG4gICAgICBwcnYxOiB0ZXN0RGF0YS5wcml2YXRlS2V5c1swXSxcbiAgICAgIHBydjI6IHRlc3REYXRhLnByaXZhdGVLZXlzWzFdLFxuICAgIH0sXG4gICAgdHhIYXNoOiB0ZXN0RGF0YS50eGhhc2gsXG4gIH0pO1xuXG4gIGl0KCdTaG91bGQgZnVsbCBzaWduIGEgaW1wb3J0IHR4IGZyb20gdW5zaWduZWQgcmF3IHR4JywgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS51bnNpZ25lZEhleCk7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLnByaXZhdGVLZXlzWzBdIH0pO1xuICAgIHR4QnVpbGRlclxuICAgICAgLmJ1aWxkKClcbiAgICAgIC50aGVuKCgpID0+IGFzc2VydC5mYWlsKCdpdCBjYW4gc2lnbicpKVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmJlLmVxdWFsKCdQcml2YXRlIGtleSBjYW5ub3Qgc2lnbiB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BaseTransactionBuilder, BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export interface signFlowTestSuitArgs {
|
|
3
|
+
transactionType: string;
|
|
4
|
+
newTxFactory: () => BaseTransactionBuilderFactory;
|
|
5
|
+
newTxBuilder: () => BaseTransactionBuilder;
|
|
6
|
+
unsignedTxHex: string;
|
|
7
|
+
halfSignedTxHex: string;
|
|
8
|
+
fullSignedTxHex: string;
|
|
9
|
+
privateKey: {
|
|
10
|
+
prv1: string;
|
|
11
|
+
prv2: string;
|
|
12
|
+
};
|
|
13
|
+
txHash: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Test suit focus in raw tx signing changes.
|
|
17
|
+
* TODO(BG-54381): Coin Agnostic Testing
|
|
18
|
+
* @param {signFlowTestSuitArgs} data with require info.
|
|
19
|
+
*/
|
|
20
|
+
export default function signFlowTestSuit(data: signFlowTestSuitArgs): void;
|
|
21
|
+
//# sourceMappingURL=signFlowTestSuit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signFlowTestSuit.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/signFlowTestSuit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAE7F,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,6BAA6B,CAAC;IAClD,YAAY,EAAE,MAAM,sBAAsB,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CA2FzE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = signFlowTestSuit;
|
|
4
|
+
/**
|
|
5
|
+
* Test suit focus in raw tx signing changes.
|
|
6
|
+
* TODO(BG-54381): Coin Agnostic Testing
|
|
7
|
+
* @param {signFlowTestSuitArgs} data with require info.
|
|
8
|
+
*/
|
|
9
|
+
function signFlowTestSuit(data) {
|
|
10
|
+
describe(`should sign ${data.transactionType} in full flow `, () => {
|
|
11
|
+
it('Should create tx for same values', async () => {
|
|
12
|
+
const txBuilder = data.newTxBuilder();
|
|
13
|
+
const tx = await txBuilder.build();
|
|
14
|
+
const rawTx = tx.toBroadcastFormat();
|
|
15
|
+
rawTx.should.equal(data.unsignedTxHex);
|
|
16
|
+
tx.id.should.equal(data.txHash);
|
|
17
|
+
});
|
|
18
|
+
it('Should recover tx from raw tx', async () => {
|
|
19
|
+
const txBuilder = data.newTxFactory().from(data.unsignedTxHex);
|
|
20
|
+
const tx = await txBuilder.build();
|
|
21
|
+
const rawTx = tx.toBroadcastFormat();
|
|
22
|
+
rawTx.should.equal(data.unsignedTxHex);
|
|
23
|
+
tx.id.should.equal(data.txHash);
|
|
24
|
+
});
|
|
25
|
+
it('Should create half signed tx for same values', async () => {
|
|
26
|
+
const txBuilder = data.newTxBuilder();
|
|
27
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
28
|
+
const tx = await txBuilder.build();
|
|
29
|
+
const rawTx = tx.toBroadcastFormat();
|
|
30
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
31
|
+
tx.id.should.equal(data.txHash);
|
|
32
|
+
});
|
|
33
|
+
it('Should recover half signed tx from raw tx', async () => {
|
|
34
|
+
const txBuilder = data.newTxFactory().from(data.halfSignedTxHex);
|
|
35
|
+
const tx = await txBuilder.build();
|
|
36
|
+
const rawTx = tx.toBroadcastFormat();
|
|
37
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
38
|
+
tx.id.should.equal(data.txHash);
|
|
39
|
+
});
|
|
40
|
+
it('Should half sign tx from unsigned raw tx', async () => {
|
|
41
|
+
const txBuilder = data.newTxFactory().from(data.unsignedTxHex);
|
|
42
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
43
|
+
const tx = await txBuilder.build();
|
|
44
|
+
const rawTx = tx.toBroadcastFormat();
|
|
45
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
46
|
+
tx.id.should.equal(data.txHash);
|
|
47
|
+
});
|
|
48
|
+
it('Should recover half signed tx from half signed raw tx', async () => {
|
|
49
|
+
const txBuilder = data.newTxFactory().from(data.halfSignedTxHex);
|
|
50
|
+
const tx = await txBuilder.build();
|
|
51
|
+
const rawTx = tx.toBroadcastFormat();
|
|
52
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
53
|
+
tx.id.should.equal(data.txHash);
|
|
54
|
+
});
|
|
55
|
+
it('Should recover signed tx from signed raw tx', async () => {
|
|
56
|
+
const txBuilder = data.newTxFactory().from(data.fullSignedTxHex);
|
|
57
|
+
const tx = await txBuilder.build();
|
|
58
|
+
const rawTx = tx.toBroadcastFormat();
|
|
59
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
60
|
+
tx.id.should.equal(data.txHash);
|
|
61
|
+
});
|
|
62
|
+
it('Should full sign a tx for same values', async () => {
|
|
63
|
+
const txBuilder = data.newTxBuilder();
|
|
64
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
65
|
+
txBuilder.sign({ key: data.privateKey.prv2 });
|
|
66
|
+
const tx = await txBuilder.build();
|
|
67
|
+
const rawTx = tx.toBroadcastFormat();
|
|
68
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
69
|
+
tx.id.should.equal(data.txHash);
|
|
70
|
+
});
|
|
71
|
+
it('Should full sign a tx from half signed raw tx', async () => {
|
|
72
|
+
const txBuilder = data.newTxFactory().from(data.halfSignedTxHex);
|
|
73
|
+
txBuilder.sign({ key: data.privateKey.prv2 });
|
|
74
|
+
const tx = await txBuilder.build();
|
|
75
|
+
const rawTx = tx.toBroadcastFormat();
|
|
76
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
77
|
+
tx.id.should.equal(data.txHash);
|
|
78
|
+
});
|
|
79
|
+
it('Should full sign a tx from unsigned raw tx', async () => {
|
|
80
|
+
const txBuilder = data.newTxFactory().from(data.unsignedTxHex);
|
|
81
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
82
|
+
txBuilder.sign({ key: data.privateKey.prv2 });
|
|
83
|
+
const tx = await txBuilder.build();
|
|
84
|
+
const rawTx = tx.toBroadcastFormat();
|
|
85
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
86
|
+
tx.id.should.equal(data.txHash);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbkZsb3dUZXN0U3VpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9saWIvc2lnbkZsb3dUZXN0U3VpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxtQ0EyRkM7QUFoR0Q7Ozs7R0FJRztBQUNILFNBQXdCLGdCQUFnQixDQUFDLElBQTBCO0lBQ2pFLFFBQVEsQ0FBQyxlQUFlLElBQUksQ0FBQyxlQUFlLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtRQUNqRSxFQUFFLENBQUMsa0NBQWtDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2QyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN2QyxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUV0QyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQ0FBMkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN6RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN4RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1REFBdUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMzRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFdEMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsK0NBQStDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDN0QsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDakUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNENBQTRDLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDMUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDL0QsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ3pDLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBzaWduRmxvd1Rlc3RTdWl0QXJncyB7XG4gIHRyYW5zYWN0aW9uVHlwZTogc3RyaW5nO1xuICBuZXdUeEZhY3Rvcnk6ICgpID0+IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5O1xuICBuZXdUeEJ1aWxkZXI6ICgpID0+IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIHVuc2lnbmVkVHhIZXg6IHN0cmluZztcbiAgaGFsZlNpZ25lZFR4SGV4OiBzdHJpbmc7XG4gIGZ1bGxTaWduZWRUeEhleDogc3RyaW5nO1xuICBwcml2YXRlS2V5OiB7IHBydjE6IHN0cmluZzsgcHJ2Mjogc3RyaW5nIH07XG4gIHR4SGFzaDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRlc3Qgc3VpdCBmb2N1cyBpbiByYXcgdHggc2lnbmluZyBjaGFuZ2VzLlxuICogVE9ETyhCRy01NDM4MSk6IENvaW4gQWdub3N0aWMgVGVzdGluZ1xuICogQHBhcmFtIHtzaWduRmxvd1Rlc3RTdWl0QXJnc30gZGF0YSB3aXRoIHJlcXVpcmUgaW5mby5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2lnbkZsb3dUZXN0U3VpdChkYXRhOiBzaWduRmxvd1Rlc3RTdWl0QXJncyk6IHZvaWQge1xuICBkZXNjcmliZShgc2hvdWxkIHNpZ24gJHtkYXRhLnRyYW5zYWN0aW9uVHlwZX0gaW4gZnVsbCBmbG93IGAsICgpID0+IHtcbiAgICBpdCgnU2hvdWxkIGNyZWF0ZSB0eCBmb3Igc2FtZSB2YWx1ZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBkYXRhLm5ld1R4QnVpbGRlcigpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbChkYXRhLnVuc2lnbmVkVHhIZXgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKGRhdGEudHhIYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgcmVjb3ZlciB0eCBmcm9tIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhGYWN0b3J5KCkuZnJvbShkYXRhLnVuc2lnbmVkVHhIZXgpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbChkYXRhLnVuc2lnbmVkVHhIZXgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKGRhdGEudHhIYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgY3JlYXRlIGhhbGYgc2lnbmVkIHR4IGZvciBzYW1lIHZhbHVlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhCdWlsZGVyKCk7XG5cbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkYXRhLnByaXZhdGVLZXkucHJ2MSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5oYWxmU2lnbmVkVHhIZXgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKGRhdGEudHhIYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgcmVjb3ZlciBoYWxmIHNpZ25lZCB0eCBmcm9tIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhGYWN0b3J5KCkuZnJvbShkYXRhLmhhbGZTaWduZWRUeEhleCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKGRhdGEuaGFsZlNpZ25lZFR4SGV4KTtcbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbChkYXRhLnR4SGFzaCk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIGhhbGYgc2lnbiB0eCBmcm9tIHVuc2lnbmVkIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhGYWN0b3J5KCkuZnJvbShkYXRhLnVuc2lnbmVkVHhIZXgpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRhdGEucHJpdmF0ZUtleS5wcnYxIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbChkYXRhLmhhbGZTaWduZWRUeEhleCk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoZGF0YS50eEhhc2gpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCByZWNvdmVyIGhhbGYgc2lnbmVkIHR4IGZyb20gaGFsZiBzaWduZWQgcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEZhY3RvcnkoKS5mcm9tKGRhdGEuaGFsZlNpZ25lZFR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5oYWxmU2lnbmVkVHhIZXgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKGRhdGEudHhIYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgcmVjb3ZlciBzaWduZWQgdHggZnJvbSBzaWduZWQgcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEZhY3RvcnkoKS5mcm9tKGRhdGEuZnVsbFNpZ25lZFR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5mdWxsU2lnbmVkVHhIZXgpO1xuICAgICAgdHguaWQuc2hvdWxkLmVxdWFsKGRhdGEudHhIYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgZnVsbCBzaWduIGEgdHggZm9yIHNhbWUgdmFsdWVzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEJ1aWxkZXIoKTtcblxuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRhdGEucHJpdmF0ZUtleS5wcnYxIH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRhdGEucHJpdmF0ZUtleS5wcnYyIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbChkYXRhLmZ1bGxTaWduZWRUeEhleCk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoZGF0YS50eEhhc2gpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBmdWxsIHNpZ24gYSB0eCBmcm9tIGhhbGYgc2lnbmVkIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhGYWN0b3J5KCkuZnJvbShkYXRhLmhhbGZTaWduZWRUeEhleCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGF0YS5wcml2YXRlS2V5LnBydjIgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKGRhdGEuZnVsbFNpZ25lZFR4SGV4KTtcbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbChkYXRhLnR4SGFzaCk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIGZ1bGwgc2lnbiBhIHR4IGZyb20gdW5zaWduZWQgcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEZhY3RvcnkoKS5mcm9tKGRhdGEudW5zaWduZWRUeEhleCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGF0YS5wcml2YXRlS2V5LnBydjEgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGF0YS5wcml2YXRlS2V5LnBydjIgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKGRhdGEuZnVsbFNpZ25lZFR4SGV4KTtcbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbChkYXRhLnR4SGFzaCk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|