@bitgo-beta/sdk-coin-flrp 1.0.1-beta.38 → 1.0.1-beta.381
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 +10 -17
- package/dist/src/flrp.d.ts.map +1 -1
- package/dist/src/flrp.js +51 -77
- 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 +43 -0
- package/dist/src/lib/ExportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInCTxBuilder.js +150 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts +24 -0
- package/dist/src/lib/ExportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ExportInPTxBuilder.js +151 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts +30 -0
- package/dist/src/lib/ImportInCTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInCTxBuilder.js +166 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts +34 -0
- package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/ImportInPTxBuilder.js +175 -0
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts +12 -16
- package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicInCTransactionBuilder.js +30 -41
- package/dist/src/lib/atomicTransactionBuilder.d.ts +54 -70
- package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/atomicTransactionBuilder.js +158 -213
- package/dist/src/lib/iface.d.ts +65 -57
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +20 -14
- package/dist/src/lib/index.d.ts +5 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +12 -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 +41 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/permissionlessValidatorTxBuilder.js +126 -0
- package/dist/src/lib/transaction.d.ts +30 -66
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +338 -199
- package/dist/src/lib/transactionBuilder.d.ts +115 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +228 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +50 -30
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +129 -72
- package/dist/src/lib/utils.d.ts +106 -146
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +305 -321
- package/dist/test/resources/account.d.ts +81 -0
- package/dist/test/resources/account.d.ts.map +1 -0
- package/dist/test/resources/account.js +79 -0
- package/dist/test/resources/transactionData/exportInC.d.ts +50 -0
- package/dist/test/resources/transactionData/exportInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInC.js +58 -0
- package/dist/test/resources/transactionData/exportInP.d.ts +60 -0
- package/dist/test/resources/transactionData/exportInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/exportInP.js +101 -0
- package/dist/test/resources/transactionData/importInC.d.ts +56 -0
- package/dist/test/resources/transactionData/importInC.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInC.js +120 -0
- package/dist/test/resources/transactionData/importInP.d.ts +66 -0
- package/dist/test/resources/transactionData/importInP.d.ts.map +1 -0
- package/dist/test/resources/transactionData/importInP.js +84 -0
- package/dist/test/unit/flrp.js +449 -68
- 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 +193 -0
- package/dist/test/unit/lib/exportInPTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/exportInPTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/exportInPTxBuilder.js +122 -0
- package/dist/test/unit/lib/importInCTxBuilder.d.ts +2 -0
- package/dist/test/unit/lib/importInCTxBuilder.d.ts.map +1 -0
- package/dist/test/unit/lib/importInCTxBuilder.js +177 -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 +216 -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/signFlowTestSuit.d.ts +20 -0
- package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
- package/dist/test/unit/lib/signFlowTestSuit.js +83 -0
- package/dist/test/unit/lib/transactionBuilderFactory.d.ts +2 -0
- package/dist/test/unit/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/lib/transactionBuilderFactory.js +60 -0
- package/dist/test/unit/lib/utils.js +601 -207
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -10
- 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/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,216 @@
|
|
|
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 coinConfig = statics_1.coins.get('tflrp');
|
|
14
|
+
const factory = new lib_1.TransactionBuilderFactory(coinConfig);
|
|
15
|
+
describe('feeState requirement', () => {
|
|
16
|
+
it('should throw if feeState is not set when building', async () => {
|
|
17
|
+
const txBuilder = factory
|
|
18
|
+
.getImportInPBuilder()
|
|
19
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
20
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
21
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.corethAddresses)
|
|
22
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
23
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos)
|
|
24
|
+
.context(importInP_1.IMPORT_IN_P.context);
|
|
25
|
+
await txBuilder.build().should.be.rejectedWith('Fee state is required');
|
|
26
|
+
});
|
|
27
|
+
it('should accept valid feeState', () => {
|
|
28
|
+
const txBuilder = factory.getImportInPBuilder();
|
|
29
|
+
(() => txBuilder.feeState(importInP_1.IMPORT_IN_P.feeState)).should.not.throw();
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe('validate txBuilder fields', () => {
|
|
33
|
+
const txBuilder = factory.getImportInPBuilder();
|
|
34
|
+
it('should fail target chain id length incorrect', () => {
|
|
35
|
+
assert_1.default.throws(() => {
|
|
36
|
+
txBuilder.externalChainId(Buffer.from(importInP_1.IMPORT_IN_P.INVALID_CHAIN_ID));
|
|
37
|
+
}, (e) => e.message === 'Chain id are 32 byte size');
|
|
38
|
+
});
|
|
39
|
+
it('should fail target chain id not a valid base58 string', () => {
|
|
40
|
+
assert_1.default.throws(() => {
|
|
41
|
+
txBuilder.externalChainId(importInP_1.IMPORT_IN_P.INVALID_CHAIN_ID);
|
|
42
|
+
}, (e) => e.message === 'Non-base58 character');
|
|
43
|
+
});
|
|
44
|
+
it('should fail target chain id cb58 invalid checksum', () => {
|
|
45
|
+
assert_1.default.throws(() => {
|
|
46
|
+
txBuilder.externalChainId(importInP_1.IMPORT_IN_P.VALID_C_CHAIN_ID.slice(2));
|
|
47
|
+
}, (e) => e.message === 'Invalid checksum');
|
|
48
|
+
});
|
|
49
|
+
it('should fail validate Utxos empty array', () => {
|
|
50
|
+
assert_1.default.throws(() => {
|
|
51
|
+
txBuilder.validateUtxos([]);
|
|
52
|
+
}, (e) => e.message === 'UTXOs array cannot be empty');
|
|
53
|
+
});
|
|
54
|
+
it('should fail when utxos hex array is empty', () => {
|
|
55
|
+
assert_1.default.throws(() => {
|
|
56
|
+
txBuilder.decodedUtxos([]);
|
|
57
|
+
}, (e) => e.message === 'UTXOs array cannot be empty');
|
|
58
|
+
});
|
|
59
|
+
it('should fail when context is not set when building', async () => {
|
|
60
|
+
const builder = factory
|
|
61
|
+
.getImportInPBuilder()
|
|
62
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
63
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
64
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.corethAddresses)
|
|
65
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
66
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos)
|
|
67
|
+
.feeState(importInP_1.IMPORT_IN_P.feeState);
|
|
68
|
+
// context is NOT set
|
|
69
|
+
await builder.build().should.be.rejectedWith('context is required');
|
|
70
|
+
});
|
|
71
|
+
it('should fail when fromPubKey addresses are not set', async () => {
|
|
72
|
+
const builder = factory
|
|
73
|
+
.getImportInPBuilder()
|
|
74
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
75
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
76
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
77
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos)
|
|
78
|
+
.feeState(importInP_1.IMPORT_IN_P.feeState)
|
|
79
|
+
.context(importInP_1.IMPORT_IN_P.context);
|
|
80
|
+
await builder.build().should.be.rejectedWith('fromAddresses are required');
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
(0, signFlowTestSuit_1.default)({
|
|
84
|
+
transactionType: 'Import P2C',
|
|
85
|
+
newTxFactory: () => new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')),
|
|
86
|
+
newTxBuilder: () => new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
|
|
87
|
+
.getImportInPBuilder()
|
|
88
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
89
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
90
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.corethAddresses)
|
|
91
|
+
.to(importInP_1.IMPORT_IN_P.pAddresses)
|
|
92
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
93
|
+
.feeState(importInP_1.IMPORT_IN_P.feeState)
|
|
94
|
+
.context(importInP_1.IMPORT_IN_P.context)
|
|
95
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos),
|
|
96
|
+
unsignedTxHex: importInP_1.IMPORT_IN_P.unsignedHex,
|
|
97
|
+
halfSignedTxHex: importInP_1.IMPORT_IN_P.halfSigntxHex,
|
|
98
|
+
fullSignedTxHex: importInP_1.IMPORT_IN_P.signedHex,
|
|
99
|
+
privateKey: {
|
|
100
|
+
prv1: importInP_1.IMPORT_IN_P.privateKeys[2],
|
|
101
|
+
prv2: importInP_1.IMPORT_IN_P.privateKeys[0],
|
|
102
|
+
},
|
|
103
|
+
txHash: importInP_1.IMPORT_IN_P.txhash,
|
|
104
|
+
});
|
|
105
|
+
it('Should full sign a import tx from unsigned raw tx', () => {
|
|
106
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.unsignedHex);
|
|
107
|
+
txBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[0] });
|
|
108
|
+
txBuilder
|
|
109
|
+
.build()
|
|
110
|
+
.then(() => assert_1.default.fail('it can sign'))
|
|
111
|
+
.catch((err) => {
|
|
112
|
+
err.message.should.be.equal('Private key cannot sign the transaction');
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('on-chain verified transactions', () => {
|
|
116
|
+
it('should verify on-chain tx id for signed P-chain import', async () => {
|
|
117
|
+
const signedImportHex = '0x0000000000110000007200000000000000000000000000000000000000000000000000000000000000000000000158734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000070000000002e79f04000000000000000000000002000000033329be7d01cd3ebaae6654d7327dd9f17a2e15817e918a5e8083ae4c9f2f0ed77055c24bf3665001c7324437c96c7c8a6a152da2385c1db5c3ab1f91000000000000000078db5c30bed04c05ce209179812850bbb3fe6d46d7eef3744d814c0da555247900000001063ec620d1892f802c8f0c124d05ce1e73a85686bea2b09380fc58f6d72497db0000000058734f94af871c3d131b56131b6fb7a0291eacadd261e69dfb42a9cdf6f7fddd000000050000000002faf0800000000200000000000000010000000100000009000000022ed4ebc2c81e38820cc7bd6e952d10bd30382fa0679c8a0ba5dc67990a09125656d47eadcc622af935fd5dad654f9b00d3b9563df38e875ef1964e1c9ded851100ec514ace26baefce3ffeab94e3580443abcc3cea669a87c7c26ef8ffa3fe79b330e4bdbacabfd1cce9f7b6a9f2515b4fdf627f7d2678e9532d861a7673444aa700';
|
|
118
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(signedImportHex);
|
|
119
|
+
const tx = await txBuilder.build();
|
|
120
|
+
const rawTx = tx.toBroadcastFormat();
|
|
121
|
+
rawTx.should.equal(signedImportHex);
|
|
122
|
+
tx.id.should.equal('2vwvuXp47dsUmqb4vkaMk7UsukrZNapKXT2ruZhVibbjMDpqr9');
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
describe('addressesIndex extraction and signature slot mapping', () => {
|
|
126
|
+
it('should correctly parse half-signed tx and add second signature', async () => {
|
|
127
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.halfSigntxHex);
|
|
128
|
+
txBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[0] });
|
|
129
|
+
const tx = await txBuilder.build();
|
|
130
|
+
const rawTx = tx.toBroadcastFormat();
|
|
131
|
+
rawTx.should.equal(importInP_1.IMPORT_IN_P.signedHex);
|
|
132
|
+
tx.id.should.equal(importInP_1.IMPORT_IN_P.txhash);
|
|
133
|
+
});
|
|
134
|
+
it('should preserve transaction structure when parsing unsigned tx', async () => {
|
|
135
|
+
const freshBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
|
|
136
|
+
.getImportInPBuilder()
|
|
137
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
138
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
139
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.corethAddresses)
|
|
140
|
+
.to(importInP_1.IMPORT_IN_P.pAddresses)
|
|
141
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
142
|
+
.feeState(importInP_1.IMPORT_IN_P.feeState)
|
|
143
|
+
.context(importInP_1.IMPORT_IN_P.context)
|
|
144
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos);
|
|
145
|
+
const freshTx = await freshBuilder.build();
|
|
146
|
+
const freshHex = freshTx.toBroadcastFormat();
|
|
147
|
+
const parsedBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(freshHex);
|
|
148
|
+
const parsedTx = await parsedBuilder.build();
|
|
149
|
+
const parsedHex = parsedTx.toBroadcastFormat();
|
|
150
|
+
parsedHex.should.equal(freshHex);
|
|
151
|
+
});
|
|
152
|
+
it('should sign parsed unsigned tx and produce same result as fresh sign', async () => {
|
|
153
|
+
const freshBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
|
|
154
|
+
.getImportInPBuilder()
|
|
155
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
156
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
157
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.corethAddresses)
|
|
158
|
+
.to(importInP_1.IMPORT_IN_P.pAddresses)
|
|
159
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
160
|
+
.feeState(importInP_1.IMPORT_IN_P.feeState)
|
|
161
|
+
.context(importInP_1.IMPORT_IN_P.context)
|
|
162
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos);
|
|
163
|
+
freshBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[2] });
|
|
164
|
+
freshBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[0] });
|
|
165
|
+
const freshTx = await freshBuilder.build();
|
|
166
|
+
const parsedBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.unsignedHex);
|
|
167
|
+
parsedBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[2] });
|
|
168
|
+
parsedBuilder.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[0] });
|
|
169
|
+
const parsedTx = await parsedBuilder.build();
|
|
170
|
+
parsedTx.toBroadcastFormat().should.equal(freshTx.toBroadcastFormat());
|
|
171
|
+
parsedTx.id.should.equal(freshTx.id);
|
|
172
|
+
});
|
|
173
|
+
it('should correctly handle signing flow: build -> parse -> sign -> parse -> sign', async () => {
|
|
174
|
+
const builder1 = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
|
|
175
|
+
.getImportInPBuilder()
|
|
176
|
+
.threshold(importInP_1.IMPORT_IN_P.threshold)
|
|
177
|
+
.locktime(importInP_1.IMPORT_IN_P.locktime)
|
|
178
|
+
.fromPubKey(importInP_1.IMPORT_IN_P.corethAddresses)
|
|
179
|
+
.to(importInP_1.IMPORT_IN_P.pAddresses)
|
|
180
|
+
.externalChainId(importInP_1.IMPORT_IN_P.sourceChainId)
|
|
181
|
+
.feeState(importInP_1.IMPORT_IN_P.feeState)
|
|
182
|
+
.context(importInP_1.IMPORT_IN_P.context)
|
|
183
|
+
.decodedUtxos(importInP_1.IMPORT_IN_P.utxos);
|
|
184
|
+
const unsignedTx = await builder1.build();
|
|
185
|
+
const unsignedHex = unsignedTx.toBroadcastFormat();
|
|
186
|
+
const builder2 = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(unsignedHex);
|
|
187
|
+
builder2.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[2] });
|
|
188
|
+
const halfSignedTx = await builder2.build();
|
|
189
|
+
const halfSignedHex = halfSignedTx.toBroadcastFormat();
|
|
190
|
+
const builder3 = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(halfSignedHex);
|
|
191
|
+
builder3.sign({ key: importInP_1.IMPORT_IN_P.privateKeys[0] });
|
|
192
|
+
const fullSignedTx = await builder3.build();
|
|
193
|
+
fullSignedTx.toBroadcastFormat().should.equal(importInP_1.IMPORT_IN_P.signedHex);
|
|
194
|
+
fullSignedTx.id.should.equal(importInP_1.IMPORT_IN_P.txhash);
|
|
195
|
+
});
|
|
196
|
+
it('should have correct number of signatures after full sign flow', async () => {
|
|
197
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.signedHex);
|
|
198
|
+
const tx = await txBuilder.build();
|
|
199
|
+
const txJson = tx.toJson();
|
|
200
|
+
txJson.signatures.length.should.equal(2);
|
|
201
|
+
});
|
|
202
|
+
it('should have 1 signature after half sign', async () => {
|
|
203
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.halfSigntxHex);
|
|
204
|
+
const tx = await txBuilder.build();
|
|
205
|
+
const txJson = tx.toJson();
|
|
206
|
+
txJson.signatures.length.should.equal(1);
|
|
207
|
+
});
|
|
208
|
+
it('should have 0 signatures for unsigned tx', async () => {
|
|
209
|
+
const txBuilder = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')).from(importInP_1.IMPORT_IN_P.unsignedHex);
|
|
210
|
+
const tx = await txBuilder.build();
|
|
211
|
+
const txJson = tx.toJson();
|
|
212
|
+
txJson.signatures.length.should.equal(0);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5QVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2xpYi9pbXBvcnRJblBUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsa0JBQWdCO0FBQ2hCLHlFQUFvRjtBQUNwRiwwQ0FBNkQ7QUFDN0QsaURBQTRDO0FBQzVDLDBFQUE4QztBQUU5QyxRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsTUFBTSxPQUFPLEdBQUcsSUFBSSwrQkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxRCxRQUFRLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1FBQ3BDLEVBQUUsQ0FBQyxtREFBbUQsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRSxNQUFNLFNBQVMsR0FBRyxPQUFPO2lCQUN0QixtQkFBbUIsRUFBRTtpQkFDckIsU0FBUyxDQUFDLHVCQUFRLENBQUMsU0FBUyxDQUFDO2lCQUM3QixRQUFRLENBQUMsdUJBQVEsQ0FBQyxRQUFRLENBQUM7aUJBQzNCLFVBQVUsQ0FBQyx1QkFBUSxDQUFDLGVBQWUsQ0FBQztpQkFDcEMsZUFBZSxDQUFDLHVCQUFRLENBQUMsYUFBYSxDQUFDO2lCQUN2QyxZQUFZLENBQUMsdUJBQVEsQ0FBQyxLQUFLLENBQUM7aUJBQzVCLE9BQU8sQ0FBQyx1QkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTdCLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDMUUsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLE1BQU0sU0FBUyxHQUFHLE9BQU8s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QyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pHLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ3hELE1BQU0sU0FBUyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQy9GLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAnc2hvdWxkJztcbmltcG9ydCB7IElNUE9SVF9JTl9QIGFzIHRlc3REYXRhIH0gZnJvbSAnLi4vLi4vcmVzb3VyY2VzL3RyYW5zYWN0aW9uRGF0YS9pbXBvcnRJblAnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWInO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBzaWduRmxvd1Rlc3QgZnJvbSAnLi9zaWduRmxvd1Rlc3RTdWl0JztcblxuZGVzY3JpYmUoJ0ZscnAgSW1wb3J0IEluIFAgVHggQnVpbGRlcicsICgpID0+IHtcbiAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgndGZscnAnKTtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5Db25maWcpO1xuXG4gIGRlc2NyaWJlKCdmZWVTdGF0ZSByZXF1aXJlbWVudCcsICgpID0+IHtcbiAgICBpdCgnc2hvdWxkIHRocm93IGlmIGZlZVN0YXRlIGlzIG5vdCBzZXQgd2hlbiBidWlsZGluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnlcbiAgICAgICAgLmdldEltcG9ydEluUEJ1aWxkZXIoKVxuICAgICAgICAudGhyZXNob2xkKHRlc3REYXRhLnRocmVzaG9sZClcbiAgICAgICAgLmxvY2t0aW1lKHRlc3REYXRhLmxvY2t0aW1lKVxuICAgICAgICAuZnJvbVB1YktleSh0ZXN0RGF0YS5jb3JldGhBZGRyZXNzZXMpXG4gICAgICAgIC5leHRlcm5hbENoYWluSWQodGVzdERhdGEuc291cmNlQ2hhaW5JZClcbiAgICAgICAgLmRlY29kZWRVdHhvcyh0ZXN0RGF0YS51dHhvcylcbiAgICAgICAgLmNvbnRleHQodGVzdERhdGEuY29udGV4dCk7XG5cbiAgICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ZlZSBzdGF0ZSBpcyByZXF1aXJlZCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhY2NlcHQgdmFsaWQgZmVlU3RhdGUnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEltcG9ydEluUEJ1aWxkZXIoKTtcbiAgICAgICgoKSA9PiB0eEJ1aWxkZXIuZmVlU3RhdGUodGVzdERhdGEuZmVlU3RhdGUpKS5zaG91bGQubm90LnRocm93KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCd2YWxpZGF0ZSB0eEJ1aWxkZXIgZmllbGRzJywgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0SW1wb3J0SW5QQnVpbGRlcigpO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRhcmdldCBjaGFpbiBpZCBsZW5ndGggaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci5leHRlcm5hbENoYWluSWQoQnVmZmVyLmZyb20odGVzdERhdGEuSU5WQUxJRF9DSEFJTl9JRCkpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdDaGFpbiBpZCBhcmUgMzIgYnl0ZSBzaXplJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0YXJnZXQgY2hhaW4gaWQgbm90IGEgdmFsaWQgYmFzZTU4IHN0cmluZycsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eEJ1aWxkZXIuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLklOVkFMSURfQ0hBSU5fSUQpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdOb24tYmFzZTU4IGNoYXJhY3RlcidcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdGFyZ2V0IGNoYWluIGlkIGNiNTggaW52YWxpZCBjaGVja3N1bScsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eEJ1aWxkZXIuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLlZBTElEX0NfQ0hBSU5fSUQuc2xpY2UoMikpO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdJbnZhbGlkIGNoZWNrc3VtJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB2YWxpZGF0ZSBVdHhvcyBlbXB0eSBhcnJheScsICgpID0+IHtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0eEJ1aWxkZXIudmFsaWRhdGVVdHhvcyhbXSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gJ1VUWE9zIGFycmF5IGNhbm5vdCBiZSBlbXB0eSdcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgd2hlbiB1dHhvcyBoZXggYXJyYXkgaXMgZW1wdHknLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLmRlY29kZWRVdHhvcyhbXSk7XG4gICAgICAgIH0sXG4gICAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gJ1VUWE9zIGFycmF5IGNhbm5vdCBiZSBlbXB0eSdcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgd2hlbiBjb250ZXh0IGlzIG5vdCBzZXQgd2hlbiBidWlsZGluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBmYWN0b3J5XG4gICAgICAgIC5nZXRJbXBvcnRJblBCdWlsZGVyKClcbiAgICAgICAgLnRocmVzaG9sZCh0ZXN0RGF0YS50aHJlc2hvbGQpXG4gICAgICAgIC5sb2NrdGltZSh0ZXN0RGF0YS5sb2NrdGltZSlcbiAgICAgICAgLmZyb21QdWJLZXkodGVzdERhdGEuY29yZXRoQWRkcmVzc2VzKVxuICAgICAgICAuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLnNvdXJjZUNoYWluSWQpXG4gICAgICAgIC5kZWNvZGVkVXR4b3ModGVzdERhdGEudXR4b3MpXG4gICAgICAgIC5mZWVTdGF0ZSh0ZXN0RGF0YS5mZWVTdGF0ZSk7XG4gICAgICAvLyBjb250ZXh0IGlzIE5PVCBzZXRcblxuICAgICAgYXdhaXQgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ2NvbnRleHQgaXMgcmVxdWlyZWQnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB3aGVuIGZyb21QdWJLZXkgYWRkcmVzc2VzIGFyZSBub3Qgc2V0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IGZhY3RvcnlcbiAgICAgICAgLmdldEltcG9ydEluUEJ1aWxkZXIoKVxuICAgICAgICAudGhyZXNob2xkKHRlc3REYXRhLnRocmVzaG9sZClcbiAgICAgICAgLmxvY2t0aW1lKHRlc3REYXRhLmxvY2t0aW1lKVxuICAgICAgICAuZXh0ZXJuYWxDaGFpbklkKHRlc3REYXRhLnNvdXJjZUNoYWluSWQpXG4gICAgICAgIC5kZWNvZGVkVXR4b3ModGVzdERhdGEudXR4b3MpXG4gICAgICAgIC5mZWVTdGF0ZSh0ZXN0RGF0YS5mZWVTdGF0ZSlcbiAgICAgICAgLmNvbnRleHQodGVzdERhdGEuY29udGV4dCk7XG5cbiAgICAgIGF3YWl0IGJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdmcm9tQWRkcmVzc2VzIGFyZSByZXF1aXJlZCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBzaWduRmxvd1Rlc3Qoe1xuICAgIHRyYW5zYWN0aW9uVHlwZTogJ0ltcG9ydCBQMkMnLFxuICAgIG5ld1R4RmFjdG9yeTogKCkgPT4gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKSxcbiAgICBuZXdUeEJ1aWxkZXI6ICgpID0+XG4gICAgICBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpXG4gICAgICAgIC5nZXRJbXBvcnRJblBCdWlsZGVyKClcbiAgICAgICAgLnRocmVzaG9sZCh0ZXN0RGF0YS50aHJlc2hvbGQpXG4gICAgICAgIC5sb2NrdGltZSh0ZXN0RGF0YS5sb2NrdGltZSlcbiAgICAgICAgLmZyb21QdWJLZXkodGVzdERhdGEuY29yZXRoQWRkcmVzc2VzKVxuICAgICAgICAudG8odGVzdERhdGEucEFkZHJlc3NlcylcbiAgICAgICAgLmV4dGVybmFsQ2hhaW5JZCh0ZXN0RGF0YS5zb3VyY2VDaGFpbklkKVxuICAgICAgICAuZmVlU3RhdGUodGVzdERhdGEuZmVlU3RhdGUpXG4gICAgICAgIC5jb250ZXh0KHRlc3REYXRhLmNvbnRleHQpXG4gICAgICAgIC5kZWNvZGVkVXR4b3ModGVzdERhdGEudXR4b3MpLFxuICAgIHVuc2lnbmVkVHhIZXg6IHRlc3REYXRhLnVuc2lnbmVkSGV4LFxuICAgIGhhbGZTaWduZWRUeEhleDogdGVzdERhdGEuaGFsZlNpZ250eEhleCxcbiAgICBmdWxsU2lnbmVkVHhIZXg6IHRlc3REYXRhLnNpZ25lZEhleCxcbiAgICBwcml2YXRlS2V5OiB7XG4gICAgICBwcnYxOiB0ZXN0RGF0YS5wcml2YXRlS2V5c1syXSxcbiAgICAgIHBydjI6IHRlc3REYXRhLnByaXZhdGVLZXlzWzBdLFxuICAgIH0sXG4gICAgdHhIYXNoOiB0ZXN0RGF0YS50eGhhc2gsXG4gIH0pO1xuXG4gIGl0KCdTaG91bGQgZnVsbCBzaWduIGEgaW1wb3J0IHR4IGZyb20gdW5zaWduZWQgcmF3IHR4JywgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS51bnNpZ25lZEhleCk7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLnByaXZhdGVLZXlzWzBdIH0pO1xuICAgIHR4QnVpbGRlclxuICAgICAgLmJ1aWxkKClcbiAgICAgIC50aGVuKCgpID0+IGFzc2VydC5mYWlsKCdpdCBjYW4gc2lnbicpKVxuICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgZXJyLm1lc3NhZ2Uuc2hvdWxkLmJlLmVxdWFsKCdQcml2YXRlIGtleSBjYW5ub3Qgc2lnbiB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnb24tY2hhaW4gdmVyaWZpZWQgdHJhbnNhY3Rpb25zJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgdmVyaWZ5IG9uLWNoYWluIHR4IGlkIGZvciBzaWduZWQgUC1jaGFpbiBpbXBvcnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzaWduZWRJbXBvcnRIZXggPVxuICAgICAgICAnMHgwMDAwMDAwMDAwMTEwMDAwMDA3MjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTU4NzM0Zjk0YWY4NzFjM2QxMzFiNTYxMzFiNmZiN2EwMjkxZWFjYWRkMjYxZTY5ZGZiNDJhOWNkZjZmN2ZkZGQwMDAwMDAwNzAwMDAwMDAwMDJlNzlmMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMzMzMjliZTdkMDFjZDNlYmFhZTY2NTRkNzMyN2RkOWYxN2EyZTE1ODE3ZTkxOGE1ZTgwODNhZTRjOWYyZjBlZDc3MDU1YzI0YmYzNjY1MDAxYzczMjQ0MzdjOTZjN2M4YTZhMTUyZGEyMzg1YzFkYjVjM2FiMWY5MTAwMDAwMDAwMDAwMDAwMDA3OGRiNWMzMGJlZDA0YzA1Y2UyMDkxNzk4MTI4NTBiYmIzZmU2ZDQ2ZDdlZWYzNzQ0ZDgxNGMwZGE1NTUyNDc5MDAwMDAwMDEwNjNlYzYyMGQxODkyZjgwMmM4ZjBjMTI0ZDA1Y2UxZTczYTg1Njg2YmVhMmIwOTM4MGZjNThmNmQ3MjQ5N2RiMDAwMDAwMDA1ODczNGY5NGFmODcxYzNkMTMxYjU2MTMxYjZmYjdhMDI5MWVhY2FkZDI2MWU2OWRmYjQyYTljZGY2ZjdmZGRkMDAwMDAwMDUwMDAwMDAwMDAyZmFmMDgwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDEwMDAwMDAwOTAwMDAwMDAyMmVkNGViYzJjODFlMzg4MjBjYzdiZDZlOTUyZDEwYmQzMDM4MmZhMDY3OWM4YTBiYTVkYzY3OTkwYTA5MTI1NjU2ZDQ3ZWFkY2M2MjJhZjkzNWZkNWRhZDY1NGY5YjAwZDNiOTU2M2RmMzhlODc1ZWYxOTY0ZTFjOWRlZDg1MTEwMGVjNTE0YWNlMjZiYWVmY2UzZmZlYWI5NGUzNTgwNDQzYWJjYzNjZWE2NjlhODdjN2MyNmVmOGZmYTNmZTc5YjMzMGU0YmRiYWNhYmZkMWNjZTlmN2I2YTlmMjUxNWI0ZmRmNjI3ZjdkMjY3OGU5NTMyZDg2MWE3NjczNDQ0YWE3MDAnO1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKS5mcm9tKHNpZ25lZEltcG9ydEhleCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKHNpZ25lZEltcG9ydEhleCk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoJzJ2d3Z1WHA0N2RzVW1xYjR2a2FNazdVc3VrclpOYXBLWFQycnVaaFZpYmJqTURwcXI5Jyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdhZGRyZXNzZXNJbmRleCBleHRyYWN0aW9uIGFuZCBzaWduYXR1cmUgc2xvdCBtYXBwaW5nJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgY29ycmVjdGx5IHBhcnNlIGhhbGYtc2lnbmVkIHR4IGFuZCBhZGQgc2Vjb25kIHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS5oYWxmU2lnbnR4SGV4KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5wcml2YXRlS2V5c1swXSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwodGVzdERhdGEuc2lnbmVkSGV4KTtcbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbCh0ZXN0RGF0YS50eGhhc2gpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBwcmVzZXJ2ZSB0cmFuc2FjdGlvbiBzdHJ1Y3R1cmUgd2hlbiBwYXJzaW5nIHVuc2lnbmVkIHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZnJlc2hCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKVxuICAgICAgICAuZ2V0SW1wb3J0SW5QQnVpbGRlcigpXG4gICAgICAgIC50aHJlc2hvbGQodGVzdERhdGEudGhyZXNob2xkKVxuICAgICAgICAubG9ja3RpbWUodGVzdERhdGEubG9ja3RpbWUpXG4gICAgICAgIC5mcm9tUHViS2V5KHRlc3REYXRhLmNvcmV0aEFkZHJlc3NlcylcbiAgICAgICAgLnRvKHRlc3REYXRhLnBBZGRyZXNzZXMpXG4gICAgICAgIC5leHRlcm5hbENoYWluSWQodGVzdERhdGEuc291cmNlQ2hhaW5JZClcbiAgICAgICAgLmZlZVN0YXRlKHRlc3REYXRhLmZlZVN0YXRlKVxuICAgICAgICAuY29udGV4dCh0ZXN0RGF0YS5jb250ZXh0KVxuICAgICAgICAuZGVjb2RlZFV0eG9zKHRlc3REYXRhLnV0eG9zKTtcblxuICAgICAgY29uc3QgZnJlc2hUeCA9IGF3YWl0IGZyZXNoQnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgZnJlc2hIZXggPSBmcmVzaFR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICBjb25zdCBwYXJzZWRCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKS5mcm9tKGZyZXNoSGV4KTtcbiAgICAgIGNvbnN0IHBhcnNlZFR4ID0gYXdhaXQgcGFyc2VkQnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcGFyc2VkSGV4ID0gcGFyc2VkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHBhcnNlZEhleC5zaG91bGQuZXF1YWwoZnJlc2hIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzaWduIHBhcnNlZCB1bnNpZ25lZCB0eCBhbmQgcHJvZHVjZSBzYW1lIHJlc3VsdCBhcyBmcmVzaCBzaWduJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZnJlc2hCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKVxuICAgICAgICAuZ2V0SW1wb3J0SW5QQnVpbGRlcigpXG4gICAgICAgIC50aHJlc2hvbGQodGVzdERhdGEudGhyZXNob2xkKVxuICAgICAgICAubG9ja3RpbWUodGVzdERhdGEubG9ja3RpbWUpXG4gICAgICAgIC5mcm9tUHViS2V5KHRlc3REYXRhLmNvcmV0aEFkZHJlc3NlcylcbiAgICAgICAgLnRvKHRlc3REYXRhLnBBZGRyZXNzZXMpXG4gICAgICAgIC5leHRlcm5hbENoYWluSWQodGVzdERhdGEuc291cmNlQ2hhaW5JZClcbiAgICAgICAgLmZlZVN0YXRlKHRlc3REYXRhLmZlZVN0YXRlKVxuICAgICAgICAuY29udGV4dCh0ZXN0RGF0YS5jb250ZXh0KVxuICAgICAgICAuZGVjb2RlZFV0eG9zKHRlc3REYXRhLnV0eG9zKTtcblxuICAgICAgZnJlc2hCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLnByaXZhdGVLZXlzWzJdIH0pO1xuICAgICAgZnJlc2hCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLnByaXZhdGVLZXlzWzBdIH0pO1xuXG4gICAgICBjb25zdCBmcmVzaFR4ID0gYXdhaXQgZnJlc2hCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCBwYXJzZWRCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKS5mcm9tKHRlc3REYXRhLnVuc2lnbmVkSGV4KTtcbiAgICAgIHBhcnNlZEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEucHJpdmF0ZUtleXNbMl0gfSk7XG4gICAgICBwYXJzZWRCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLnByaXZhdGVLZXlzWzBdIH0pO1xuICAgICAgY29uc3QgcGFyc2VkVHggPSBhd2FpdCBwYXJzZWRCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBwYXJzZWRUeC50b0Jyb2FkY2FzdEZvcm1hdCgpLnNob3VsZC5lcXVhbChmcmVzaFR4LnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuICAgICAgcGFyc2VkVHguaWQuc2hvdWxkLmVxdWFsKGZyZXNoVHguaWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBjb3JyZWN0bHkgaGFuZGxlIHNpZ25pbmcgZmxvdzogYnVpbGQgLT4gcGFyc2UgLT4gc2lnbiAtPiBwYXJzZSAtPiBzaWduJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlcjEgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpXG4gICAgICAgIC5nZXRJbXBvcnRJblBCdWlsZGVyKClcbiAgICAgICAgLnRocmVzaG9sZCh0ZXN0RGF0YS50aHJlc2hvbGQpXG4gICAgICAgIC5sb2NrdGltZSh0ZXN0RGF0YS5sb2NrdGltZSlcbiAgICAgICAgLmZyb21QdWJLZXkodGVzdERhdGEuY29yZXRoQWRkcmVzc2VzKVxuICAgICAgICAudG8odGVzdERhdGEucEFkZHJlc3NlcylcbiAgICAgICAgLmV4dGVybmFsQ2hhaW5JZCh0ZXN0RGF0YS5zb3VyY2VDaGFpbklkKVxuICAgICAgICAuZmVlU3RhdGUodGVzdERhdGEuZmVlU3RhdGUpXG4gICAgICAgIC5jb250ZXh0KHRlc3REYXRhLmNvbnRleHQpXG4gICAgICAgIC5kZWNvZGVkVXR4b3ModGVzdERhdGEudXR4b3MpO1xuXG4gICAgICBjb25zdCB1bnNpZ25lZFR4ID0gYXdhaXQgYnVpbGRlcjEuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkSGV4ID0gdW5zaWduZWRUeC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgY29uc3QgYnVpbGRlcjIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpLmZyb20odW5zaWduZWRIZXgpO1xuICAgICAgYnVpbGRlcjIuc2lnbih7IGtleTogdGVzdERhdGEucHJpdmF0ZUtleXNbMl0gfSk7XG4gICAgICBjb25zdCBoYWxmU2lnbmVkVHggPSBhd2FpdCBidWlsZGVyMi5idWlsZCgpO1xuICAgICAgY29uc3QgaGFsZlNpZ25lZEhleCA9IGhhbGZTaWduZWRUeC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgY29uc3QgYnVpbGRlcjMgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpLmZyb20oaGFsZlNpZ25lZEhleCk7XG4gICAgICBidWlsZGVyMy5zaWduKHsga2V5OiB0ZXN0RGF0YS5wcml2YXRlS2V5c1swXSB9KTtcbiAgICAgIGNvbnN0IGZ1bGxTaWduZWRUeCA9IGF3YWl0IGJ1aWxkZXIzLmJ1aWxkKCk7XG4gICAgICBmdWxsU2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKS5zaG91bGQuZXF1YWwodGVzdERhdGEuc2lnbmVkSGV4KTtcbiAgICAgIGZ1bGxTaWduZWRUeC5pZC5zaG91bGQuZXF1YWwodGVzdERhdGEudHhoYXNoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGF2ZSBjb3JyZWN0IG51bWJlciBvZiBzaWduYXR1cmVzIGFmdGVyIGZ1bGwgc2lnbiBmbG93JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0ZmxycCcpKS5mcm9tKHRlc3REYXRhLnNpZ25lZEhleCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICB0eEpzb24uc2lnbmF0dXJlcy5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYXZlIDEgc2lnbmF0dXJlIGFmdGVyIGhhbGYgc2lnbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS5oYWxmU2lnbnR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHR4SnNvbi5zaWduYXR1cmVzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhdmUgMCBzaWduYXR1cmVzIGZvciB1bnNpZ25lZCB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSkuZnJvbSh0ZXN0RGF0YS51bnNpZ25lZEhleCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICB0eEpzb24uc2lnbmF0dXJlcy5sZW5ndGguc2hvdWxkLmVxdWFsKDApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -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
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
* @param {signFlowTestSuitArgs} data with require info.
|
|
18
|
+
*/
|
|
19
|
+
export default function signFlowTestSuit(data: signFlowTestSuitArgs): void;
|
|
20
|
+
//# 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;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAoFzE"}
|
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
* @param {signFlowTestSuitArgs} data with require info.
|
|
7
|
+
*/
|
|
8
|
+
function signFlowTestSuit(data) {
|
|
9
|
+
describe(`should sign ${data.transactionType} in full flow `, () => {
|
|
10
|
+
it('Should create tx for same values', async () => {
|
|
11
|
+
const txBuilder = data.newTxBuilder();
|
|
12
|
+
const tx = await txBuilder.build();
|
|
13
|
+
const rawTx = tx.toBroadcastFormat();
|
|
14
|
+
rawTx.should.equal(data.unsignedTxHex);
|
|
15
|
+
});
|
|
16
|
+
it('Should recover tx from raw tx', async () => {
|
|
17
|
+
const txBuilder = data.newTxFactory().from(data.unsignedTxHex);
|
|
18
|
+
const tx = await txBuilder.build();
|
|
19
|
+
const rawTx = tx.toBroadcastFormat();
|
|
20
|
+
rawTx.should.equal(data.unsignedTxHex);
|
|
21
|
+
});
|
|
22
|
+
it('Should create half signed tx for same values', async () => {
|
|
23
|
+
const txBuilder = data.newTxBuilder();
|
|
24
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
25
|
+
const tx = await txBuilder.build();
|
|
26
|
+
const rawTx = tx.toBroadcastFormat();
|
|
27
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
28
|
+
});
|
|
29
|
+
it('Should recover half signed tx from raw tx', async () => {
|
|
30
|
+
const txBuilder = data.newTxFactory().from(data.halfSignedTxHex);
|
|
31
|
+
const tx = await txBuilder.build();
|
|
32
|
+
const rawTx = tx.toBroadcastFormat();
|
|
33
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
34
|
+
});
|
|
35
|
+
it('Should half sign tx from unsigned raw tx', async () => {
|
|
36
|
+
const txBuilder = data.newTxFactory().from(data.unsignedTxHex);
|
|
37
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
38
|
+
const tx = await txBuilder.build();
|
|
39
|
+
const rawTx = tx.toBroadcastFormat();
|
|
40
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
41
|
+
});
|
|
42
|
+
it('Should recover half signed tx from half signed raw tx', async () => {
|
|
43
|
+
const txBuilder = data.newTxFactory().from(data.halfSignedTxHex);
|
|
44
|
+
const tx = await txBuilder.build();
|
|
45
|
+
const rawTx = tx.toBroadcastFormat();
|
|
46
|
+
rawTx.should.equal(data.halfSignedTxHex);
|
|
47
|
+
});
|
|
48
|
+
it('Should recover signed tx from signed raw tx', async () => {
|
|
49
|
+
const txBuilder = data.newTxFactory().from(data.fullSignedTxHex);
|
|
50
|
+
const tx = await txBuilder.build();
|
|
51
|
+
const rawTx = tx.toBroadcastFormat();
|
|
52
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
53
|
+
tx.id.should.equal(data.txHash);
|
|
54
|
+
});
|
|
55
|
+
it('Should full sign a tx for same values', async () => {
|
|
56
|
+
const txBuilder = data.newTxBuilder();
|
|
57
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
58
|
+
txBuilder.sign({ key: data.privateKey.prv2 });
|
|
59
|
+
const tx = await txBuilder.build();
|
|
60
|
+
const rawTx = tx.toBroadcastFormat();
|
|
61
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
62
|
+
tx.id.should.equal(data.txHash);
|
|
63
|
+
});
|
|
64
|
+
it('Should full sign a tx from half signed raw tx', async () => {
|
|
65
|
+
const txBuilder = data.newTxFactory().from(data.halfSignedTxHex);
|
|
66
|
+
txBuilder.sign({ key: data.privateKey.prv2 });
|
|
67
|
+
const tx = await txBuilder.build();
|
|
68
|
+
const rawTx = tx.toBroadcastFormat();
|
|
69
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
70
|
+
tx.id.should.equal(data.txHash);
|
|
71
|
+
});
|
|
72
|
+
it('Should full sign a tx from unsigned raw tx', async () => {
|
|
73
|
+
const txBuilder = data.newTxFactory().from(data.unsignedTxHex);
|
|
74
|
+
txBuilder.sign({ key: data.privateKey.prv1 });
|
|
75
|
+
txBuilder.sign({ key: data.privateKey.prv2 });
|
|
76
|
+
const tx = await txBuilder.build();
|
|
77
|
+
const rawTx = tx.toBroadcastFormat();
|
|
78
|
+
rawTx.should.equal(data.fullSignedTxHex);
|
|
79
|
+
tx.id.should.equal(data.txHash);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbkZsb3dUZXN0U3VpdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9saWIvc2lnbkZsb3dUZXN0U3VpdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxtQ0FvRkM7QUF4RkQ7OztHQUdHO0FBQ0gsU0FBd0IsZ0JBQWdCLENBQUMsSUFBMEI7SUFDakUsUUFBUSxDQUFDLGVBQWUsSUFBSSxDQUFDLGVBQWUsZ0JBQWdCLEVBQUUsR0FBRyxFQUFFO1FBQ2pFLEVBQUUsQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNoRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDckMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzdDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENB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SSxFQUFFLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM3RCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM5QyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDekMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXIsIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIHNpZ25GbG93VGVzdFN1aXRBcmdzIHtcbiAgdHJhbnNhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIG5ld1R4RmFjdG9yeTogKCkgPT4gQmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3Rvcnk7XG4gIG5ld1R4QnVpbGRlcjogKCkgPT4gQmFzZVRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgdW5zaWduZWRUeEhleDogc3RyaW5nO1xuICBoYWxmU2lnbmVkVHhIZXg6IHN0cmluZztcbiAgZnVsbFNpZ25lZFR4SGV4OiBzdHJpbmc7XG4gIHByaXZhdGVLZXk6IHsgcHJ2MTogc3RyaW5nOyBwcnYyOiBzdHJpbmcgfTtcbiAgdHhIYXNoOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGVzdCBzdWl0IGZvY3VzIGluIHJhdyB0eCBzaWduaW5nIGNoYW5nZXMuXG4gKiBAcGFyYW0ge3NpZ25GbG93VGVzdFN1aXRBcmdzfSBkYXRhIHdpdGggcmVxdWlyZSBpbmZvLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBzaWduRmxvd1Rlc3RTdWl0KGRhdGE6IHNpZ25GbG93VGVzdFN1aXRBcmdzKTogdm9pZCB7XG4gIGRlc2NyaWJlKGBzaG91bGQgc2lnbiAke2RhdGEudHJhbnNhY3Rpb25UeXBlfSBpbiBmdWxsIGZsb3cgYCwgKCkgPT4ge1xuICAgIGl0KCdTaG91bGQgY3JlYXRlIHR4IGZvciBzYW1lIHZhbHVlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhCdWlsZGVyKCk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKGRhdGEudW5zaWduZWRUeEhleCk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIHJlY292ZXIgdHggZnJvbSByYXcgdHgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBkYXRhLm5ld1R4RmFjdG9yeSgpLmZyb20oZGF0YS51bnNpZ25lZFR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS51bnNpZ25lZFR4SGV4KTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgY3JlYXRlIGhhbGYgc2lnbmVkIHR4IGZvciBzYW1lIHZhbHVlcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhCdWlsZGVyKCk7XG5cbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkYXRhLnByaXZhdGVLZXkucHJ2MSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5oYWxmU2lnbmVkVHhIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCByZWNvdmVyIGhhbGYgc2lnbmVkIHR4IGZyb20gcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEZhY3RvcnkoKS5mcm9tKGRhdGEuaGFsZlNpZ25lZFR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5oYWxmU2lnbmVkVHhIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBoYWxmIHNpZ24gdHggZnJvbSB1bnNpZ25lZCByYXcgdHgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBkYXRhLm5ld1R4RmFjdG9yeSgpLmZyb20oZGF0YS51bnNpZ25lZFR4SGV4KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiBkYXRhLnByaXZhdGVLZXkucHJ2MSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5oYWxmU2lnbmVkVHhIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCByZWNvdmVyIGhhbGYgc2lnbmVkIHR4IGZyb20gaGFsZiBzaWduZWQgcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEZhY3RvcnkoKS5mcm9tKGRhdGEuaGFsZlNpZ25lZFR4SGV4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCByYXdUeCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgICByYXdUeC5zaG91bGQuZXF1YWwoZGF0YS5oYWxmU2lnbmVkVHhIZXgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCByZWNvdmVyIHNpZ25lZCB0eCBmcm9tIHNpZ25lZCByYXcgdHgnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBkYXRhLm5ld1R4RmFjdG9yeSgpLmZyb20oZGF0YS5mdWxsU2lnbmVkVHhIZXgpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbChkYXRhLmZ1bGxTaWduZWRUeEhleCk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoZGF0YS50eEhhc2gpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBmdWxsIHNpZ24gYSB0eCBmb3Igc2FtZSB2YWx1ZXMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSBkYXRhLm5ld1R4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRhdGEucHJpdmF0ZUtleS5wcnYxIH0pO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IGRhdGEucHJpdmF0ZUtleS5wcnYyIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdHgudG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICAgIHJhd1R4LnNob3VsZC5lcXVhbChkYXRhLmZ1bGxTaWduZWRUeEhleCk7XG4gICAgICB0eC5pZC5zaG91bGQuZXF1YWwoZGF0YS50eEhhc2gpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBmdWxsIHNpZ24gYSB0eCBmcm9tIGhhbGYgc2lnbmVkIHJhdyB0eCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGRhdGEubmV3VHhGYWN0b3J5KCkuZnJvbShkYXRhLmhhbGZTaWduZWRUeEhleCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGF0YS5wcml2YXRlS2V5LnBydjIgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKGRhdGEuZnVsbFNpZ25lZFR4SGV4KTtcbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbChkYXRhLnR4SGFzaCk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIGZ1bGwgc2lnbiBhIHR4IGZyb20gdW5zaWduZWQgcmF3IHR4JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZGF0YS5uZXdUeEZhY3RvcnkoKS5mcm9tKGRhdGEudW5zaWduZWRUeEhleCk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGF0YS5wcml2YXRlS2V5LnBydjEgfSk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogZGF0YS5wcml2YXRlS2V5LnBydjIgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgcmF3VHggPSB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgcmF3VHguc2hvdWxkLmVxdWFsKGRhdGEuZnVsbFNpZ25lZFR4SGV4KTtcbiAgICAgIHR4LmlkLnNob3VsZC5lcXVhbChkYXRhLnR4SGFzaCk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
|