@bitgo/sdk-coin-cspr 2.4.1 → 2.4.3

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.
Files changed (47) hide show
  1. package/dist/test/fixtures/cspr.d.ts +4 -0
  2. package/dist/test/fixtures/cspr.d.ts.map +1 -0
  3. package/dist/test/fixtures/cspr.js +7 -0
  4. package/dist/test/fixtures/resources.d.ts +92 -0
  5. package/dist/test/fixtures/resources.d.ts.map +1 -0
  6. package/dist/test/fixtures/resources.js +96 -0
  7. package/dist/test/integration/index.d.ts +1 -0
  8. package/dist/test/integration/index.d.ts.map +1 -0
  9. package/dist/test/integration/index.js +1 -0
  10. package/dist/test/unit/cspr.d.ts +2 -0
  11. package/dist/test/unit/cspr.d.ts.map +1 -0
  12. package/dist/test/unit/cspr.js +680 -0
  13. package/dist/test/unit/lib/keyPair.d.ts +2 -0
  14. package/dist/test/unit/lib/keyPair.d.ts.map +1 -0
  15. package/dist/test/unit/lib/keyPair.js +159 -0
  16. package/dist/test/unit/lib/signMessage.d.ts +2 -0
  17. package/dist/test/unit/lib/signMessage.d.ts.map +1 -0
  18. package/dist/test/unit/lib/signMessage.js +68 -0
  19. package/dist/test/unit/lib/transaction.d.ts +2 -0
  20. package/dist/test/unit/lib/transaction.d.ts.map +1 -0
  21. package/dist/test/unit/lib/transaction.js +271 -0
  22. package/dist/test/unit/lib/transactionBuilder/delegateBuilder.d.ts +2 -0
  23. package/dist/test/unit/lib/transactionBuilder/delegateBuilder.d.ts.map +1 -0
  24. package/dist/test/unit/lib/transactionBuilder/delegateBuilder.js +191 -0
  25. package/dist/test/unit/lib/transactionBuilder/transactionBuilder.d.ts +2 -0
  26. package/dist/test/unit/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -0
  27. package/dist/test/unit/lib/transactionBuilder/transactionBuilder.js +315 -0
  28. package/dist/test/unit/lib/transactionBuilder/transferBuilder.d.ts +2 -0
  29. package/dist/test/unit/lib/transactionBuilder/transferBuilder.d.ts.map +1 -0
  30. package/dist/test/unit/lib/transactionBuilder/transferBuilder.js +519 -0
  31. package/dist/test/unit/lib/transactionBuilder/undelegateBuilder.d.ts +2 -0
  32. package/dist/test/unit/lib/transactionBuilder/undelegateBuilder.d.ts.map +1 -0
  33. package/dist/test/unit/lib/transactionBuilder/undelegateBuilder.js +192 -0
  34. package/dist/test/unit/lib/transactionBuilder/walletInitialization.d.ts +2 -0
  35. package/dist/test/unit/lib/transactionBuilder/walletInitialization.d.ts.map +1 -0
  36. package/dist/test/unit/lib/transactionBuilder/walletInitialization.js +338 -0
  37. package/dist/test/unit/lib/transactionBuilderFactory.d.ts +2 -0
  38. package/dist/test/unit/lib/transactionBuilderFactory.d.ts.map +1 -0
  39. package/dist/test/unit/lib/transactionBuilderFactory.js +328 -0
  40. package/dist/test/unit/lib/util.d.ts +2 -0
  41. package/dist/test/unit/lib/util.d.ts.map +1 -0
  42. package/dist/test/unit/lib/util.js +176 -0
  43. package/dist/tsconfig.tsbuildinfo +1 -0
  44. package/package.json +9 -6
  45. package/.eslintignore +0 -4
  46. package/.mocharc.yml +0 -8
  47. package/CHANGELOG.md +0 -847
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=undelegateBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undelegateBuilder.d.ts","sourceRoot":"","sources":["../../../../../test/unit/lib/transactionBuilder/undelegateBuilder.ts"],"names":[],"mappings":""}
@@ -0,0 +1,192 @@
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 = __importStar(require("should"));
41
+ const lib_1 = require("../../../../src/lib");
42
+ const constants_1 = require("../../../../src/lib/constants");
43
+ const testData = __importStar(require("../../../fixtures/resources"));
44
+ const sdk_core_1 = require("@bitgo/sdk-core");
45
+ const statics_1 = require("@bitgo/statics");
46
+ describe('CSPR Undelegate Builder', () => {
47
+ const factory = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tcspr'));
48
+ const sender = testData.ACCOUNT_1;
49
+ const owner1Address = new lib_1.KeyPair({ pub: testData.ACCOUNT_1.publicKey }).getAddress();
50
+ const validator = constants_1.DELEGATE_VALIDATOR_ACCOUNT;
51
+ const initUndelegateTxBuilder = () => {
52
+ const builder = factory.getUndelegateBuilder();
53
+ return builder;
54
+ };
55
+ const addFeeToBuilder = (builder, gasLimit, gasPrice) => {
56
+ builder.fee({ gasLimit: gasLimit, gasPrice: gasPrice });
57
+ return builder;
58
+ };
59
+ const addSourceToBuilder = (builder, source) => {
60
+ builder.source({ address: new lib_1.KeyPair({ pub: source.publicKey }).getAddress() });
61
+ return builder;
62
+ };
63
+ const addValidatorToBuilder = (builder, validator) => {
64
+ builder.validator(validator);
65
+ return builder;
66
+ };
67
+ const addAmountToBuilder = (builder, amount) => {
68
+ builder.amount(amount);
69
+ return builder;
70
+ };
71
+ const initUnsignedUndelegateTxBuilder = () => {
72
+ let builder = initUndelegateTxBuilder();
73
+ builder = addFeeToBuilder(builder, testData.FEE.gasLimit, testData.FEE.gasPrice);
74
+ builder = addSourceToBuilder(builder, sender);
75
+ builder = addValidatorToBuilder(builder, validator);
76
+ builder = addAmountToBuilder(builder, '10');
77
+ return builder;
78
+ };
79
+ describe('should build ', () => {
80
+ it('an init valid undelegate transaction', async () => {
81
+ const txBuilder = initUnsignedUndelegateTxBuilder();
82
+ txBuilder.sign({ key: testData.ACCOUNT_1.privateKey });
83
+ txBuilder.sign({ key: testData.ACCOUNT_2.privateKey });
84
+ const tx = await txBuilder.build();
85
+ const txJson = tx.toJson();
86
+ should.deepEqual(txJson.fee, testData.FEE);
87
+ should.deepEqual(tx.signature.length, 2);
88
+ should.equal(txJson.from, owner1Address);
89
+ tx.type.should.equal(sdk_core_1.TransactionType.StakingUnlock);
90
+ });
91
+ it('an init valid undelegate transaction with an external signature', async () => {
92
+ const txBuilder = initUnsignedUndelegateTxBuilder();
93
+ txBuilder.sign({ key: testData.ACCOUNT_2.privateKey });
94
+ txBuilder.signature(testData.EXTERNAL_SIGNATURE.signature, new lib_1.KeyPair({ pub: testData.EXTERNAL_SIGNATURE.publicKey }));
95
+ const tx = await txBuilder.build();
96
+ const txJson = tx.toJson();
97
+ should.equal(txJson.from, owner1Address);
98
+ should.deepEqual(tx.signature.length, 2);
99
+ tx.type.should.equal(sdk_core_1.TransactionType.StakingUnlock);
100
+ });
101
+ it('an init undelegate transaction with external signature included twice', async () => {
102
+ const txBuilder = initUnsignedUndelegateTxBuilder();
103
+ txBuilder.signature(testData.EXTERNAL_SIGNATURE.signature, new lib_1.KeyPair({ pub: testData.EXTERNAL_SIGNATURE.publicKey }));
104
+ txBuilder.signature(testData.EXTERNAL_SIGNATURE.signature, new lib_1.KeyPair({ pub: testData.EXTERNAL_SIGNATURE.publicKey }));
105
+ const tx = await txBuilder.build();
106
+ const txJson = tx.toJson();
107
+ should.equal(txJson.from, owner1Address);
108
+ should.deepEqual(tx.signature.length, 1);
109
+ tx.type.should.equal(sdk_core_1.TransactionType.StakingUnlock);
110
+ });
111
+ it('an undelegate transaction with large amount', async function () {
112
+ const amount = '10000000000000000';
113
+ let txBuilder = initUnsignedUndelegateTxBuilder();
114
+ txBuilder = addAmountToBuilder(txBuilder, amount);
115
+ const tx = await txBuilder.build();
116
+ const txJson = tx.toJson();
117
+ txJson.amount.should.equal(amount);
118
+ });
119
+ });
120
+ describe('should fail to build', () => {
121
+ it('a undelegate transaction without fee', async () => {
122
+ let txBuilder = initUndelegateTxBuilder();
123
+ txBuilder = addSourceToBuilder(txBuilder, sender);
124
+ txBuilder = addValidatorToBuilder(txBuilder, validator);
125
+ txBuilder = addAmountToBuilder(txBuilder, '10');
126
+ await txBuilder.build().should.be.rejectedWith(testData.INVALID_TRANSACTION_MISSING_FEE);
127
+ });
128
+ it('a undelegate transaction without amount', async () => {
129
+ let txBuilder = initUndelegateTxBuilder();
130
+ txBuilder = addFeeToBuilder(txBuilder, testData.FEE.gasLimit, testData.FEE.gasPrice);
131
+ txBuilder = addSourceToBuilder(txBuilder, sender);
132
+ txBuilder = addValidatorToBuilder(txBuilder, validator);
133
+ await txBuilder.build().should.be.rejectedWith(testData.INVALID_TRANSACTION_MISSING_AMOUNT);
134
+ });
135
+ it('a undelegate transaction with invalid source', async () => {
136
+ let txBuilder = initUndelegateTxBuilder();
137
+ txBuilder = addFeeToBuilder(txBuilder, testData.FEE.gasLimit, testData.FEE.gasPrice);
138
+ txBuilder = addValidatorToBuilder(txBuilder, validator);
139
+ txBuilder = addAmountToBuilder(txBuilder, '10');
140
+ await txBuilder.build().should.be.rejectedWith(testData.INVALID_TRANSACTION_MISSING_SOURCE);
141
+ });
142
+ it('a undelegate transaction without validator', async () => {
143
+ let txBuilder = initUndelegateTxBuilder();
144
+ txBuilder = addFeeToBuilder(txBuilder, testData.FEE.gasLimit, testData.FEE.gasPrice);
145
+ txBuilder = addSourceToBuilder(txBuilder, sender);
146
+ txBuilder = addAmountToBuilder(txBuilder, '10');
147
+ const tx = await txBuilder.build();
148
+ const txJson = tx.toJson();
149
+ should.equal(txJson.from, owner1Address);
150
+ tx.type.should.equal(sdk_core_1.TransactionType.StakingUnlock);
151
+ should.equal(txJson.validator, constants_1.DELEGATE_VALIDATOR_ACCOUNT);
152
+ });
153
+ });
154
+ describe('should validate', () => {
155
+ const factory = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tcspr'));
156
+ it('an address', async () => {
157
+ const txBuilder = factory.getUndelegateBuilder();
158
+ txBuilder.validateAddress({ address: testData.VALID_ADDRESS });
159
+ assert_1.default.throws(() => txBuilder.validateAddress({ address: testData.INVALID_ADDRESS }), new RegExp('Invalid address ' + testData.INVALID_ADDRESS));
160
+ });
161
+ it('a validator address', async () => {
162
+ let txBuilder = initUndelegateTxBuilder();
163
+ txBuilder = addFeeToBuilder(txBuilder, testData.FEE.gasLimit, testData.FEE.gasPrice);
164
+ txBuilder = addSourceToBuilder(txBuilder, sender);
165
+ txBuilder = addAmountToBuilder(txBuilder, '10');
166
+ assert_1.default.throws(() => txBuilder.validator('abc'), /Invalid address/);
167
+ });
168
+ it('fee value should be greater than zero', () => {
169
+ const txBuilder = factory.getUndelegateBuilder();
170
+ assert_1.default.throws(() => txBuilder.fee({ gasLimit: '-10' }));
171
+ should.doesNotThrow(() => txBuilder.fee(testData.FEE));
172
+ });
173
+ it('amount value should be greater than zero', () => {
174
+ const txBuilder = factory.getUndelegateBuilder();
175
+ assert_1.default.throws(() => txBuilder.amount('-1'));
176
+ should.doesNotThrow(() => txBuilder.amount('1'));
177
+ });
178
+ it('a private key', () => {
179
+ const txBuilder = factory.getUndelegateBuilder();
180
+ assert_1.default.throws(() => txBuilder.validateKey({ key: 'abc' }), /Unsupported private key/);
181
+ should.doesNotThrow(() => txBuilder.validateKey({ key: testData.ACCOUNT_1.privateKey }));
182
+ });
183
+ it('a length of signers', () => {
184
+ const txBuilder = initUnsignedUndelegateTxBuilder();
185
+ should.doesNotThrow(() => txBuilder.sign({ key: testData.ACCOUNT_1.privateKey }));
186
+ should.doesNotThrow(() => txBuilder.sign({ key: testData.ACCOUNT_2.privateKey }));
187
+ should.doesNotThrow(() => txBuilder.sign({ key: testData.ACCOUNT_3.privateKey }));
188
+ assert_1.default.throws(() => txBuilder.sign({ key: testData.ACCOUNT_4.privateKey }), new RegExp('A maximum of 3 can sign the transaction.'));
189
+ });
190
+ });
191
+ });
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5kZWxlZ2F0ZUJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvbGliL3RyYW5zYWN0aW9uQnVpbGRlci91bmRlbGVnYXRlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QiwrQ0FBaUM7QUFDakMsNkNBQXlFO0FBQ3pFLDZEQUEyRTtBQUMzRSxzRUFBd0Q7QUFDeEQsOENBQWtEO0FBRWxELDRDQUF1QztBQUV2QyxRQUFRLENBQUMseUJBQXlCLEVBQUUsR0FBRyxFQUFFO0lBQ3ZDLE1BQU0sT0FBTyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7SUFDbEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxhQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RGLE1BQU0sU0FBUyxHQUFHLHNDQUEwQixDQUFDO0lBRTdDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxFQUFFO1FBQ25DLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQy9DLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQztJQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsT0FBMEIsRUFBRSxRQUFnQixFQUFFLFFBQWdCLEVBQUUsRUFBRTtRQUN6RixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUM7SUFFRixNQUFNLGtC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Q0FDWCxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUMsRUFDNUQsSUFBSSxNQUFNLENBQUMsMENBQTBDLENBQUMsQ0FDdkQsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgS2V5UGFpciwgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4uLy4uLy4uLy4uL3NyYy9saWInO1xuaW1wb3J0IHsgREVMRUdBVEVfVkFMSURBVE9SX0FDQ09VTlQgfSBmcm9tICcuLi8uLi8uLi8uLi9zcmMvbGliL2NvbnN0YW50cyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi8uLi9maXh0dXJlcy9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFVuZGVsZWdhdGVCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3JjL2xpYi91bmRlbGVnYXRlQnVpbGRlcic7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuZGVzY3JpYmUoJ0NTUFIgVW5kZWxlZ2F0ZSBCdWlsZGVyJywgKCkgPT4ge1xuICBjb25zdCBmYWN0b3J5ID0gbmV3IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkoY29pbnMuZ2V0KCd0Y3NwcicpKTtcbiAgY29uc3Qgc2VuZGVyID0gdGVzdERhdGEuQUNDT1VOVF8xO1xuICBjb25zdCBvd25lcjFBZGRyZXNzID0gbmV3IEtleVBhaXIoeyBwdWI6IHRlc3REYXRhLkFDQ09VTlRfMS5wdWJsaWNLZXkgfSkuZ2V0QWRkcmVzcygpO1xuICBjb25zdCB2YWxpZGF0b3IgPSBERUxFR0FURV9WQUxJREFUT1JfQUNDT1VOVDtcblxuICBjb25zdCBpbml0VW5kZWxlZ2F0ZVR4QnVpbGRlciA9ICgpID0+IHtcbiAgICBjb25zdCBidWlsZGVyID0gZmFjdG9yeS5nZXRVbmRlbGVnYXRlQnVpbGRlcigpO1xuICAgIHJldHVybiBidWlsZGVyO1xuICB9O1xuXG4gIGNvbnN0IGFkZEZlZVRvQnVpbGRlciA9IChidWlsZGVyOiBVbmRlbGVnYXRlQnVpbGRlciwgZ2FzTGltaXQ6IHN0cmluZywgZ2FzUHJpY2U6IHN0cmluZykgPT4ge1xuICAgIGJ1aWxkZXIuZmVlKHsgZ2FzTGltaXQ6IGdhc0xpbWl0LCBnYXNQcmljZTogZ2FzUHJpY2UgfSk7XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH07XG5cbiAgY29uc3QgYWRkU291cmNlVG9CdWlsZGVyID0gKGJ1aWxkZXI6IFVuZGVsZWdhdGVCdWlsZGVyLCBzb3VyY2UpID0+IHtcbiAgICBidWlsZGVyLnNvdXJjZSh7IGFkZHJlc3M6IG5ldyBLZXlQYWlyKHsgcHViOiBzb3VyY2UucHVibGljS2V5IH0pLmdldEFkZHJlc3MoKSB9KTtcbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfTtcblxuICBjb25zdCBhZGRWYWxpZGF0b3JUb0J1aWxkZXIgPSAoYnVpbGRlcjogVW5kZWxlZ2F0ZUJ1aWxkZXIsIHZhbGlkYXRvcjogc3RyaW5nKSA9PiB7XG4gICAgYnVpbGRlci52YWxpZGF0b3IodmFsaWRhdG9yKTtcbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfTtcblxuICBjb25zdCBhZGRBbW91bnRUb0J1aWxkZXIgPSAoYnVpbGRlcjogVW5kZWxlZ2F0ZUJ1aWxkZXIsIGFtb3VudDogc3RyaW5nKSA9PiB7XG4gICAgYnVpbGRlci5hbW91bnQoYW1vdW50KTtcbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfTtcblxuICBjb25zdCBpbml0VW5zaWduZWRVbmRlbGVnYXRlVHhCdWlsZGVyID0gKCkgPT4ge1xuICAgIGxldCBidWlsZGVyID0gaW5pdFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICBidWlsZGVyID0gYWRkRmVlVG9CdWlsZGVyKGJ1aWxkZXIsIHRlc3REYXRhLkZFRS5nYXNMaW1pdCwgdGVzdERhdGEuRkVFLmdhc1ByaWNlKTtcbiAgICBidWlsZGVyID0gYWRkU291cmNlVG9CdWlsZGVyKGJ1aWxkZXIsIHNlbmRlcik7XG4gICAgYnVpbGRlciA9IGFkZFZhbGlkYXRvclRvQnVpbGRlcihidWlsZGVyLCB2YWxpZGF0b3IpO1xuICAgIGJ1aWxkZXIgPSBhZGRBbW91bnRUb0J1aWxkZXIoYnVpbGRlciwgJzEwJyk7XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBidWlsZCAnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGluaXQgdmFsaWQgdW5kZWxlZ2F0ZSB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGluaXRVbnNpZ25lZFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5BQ0NPVU5UXzEucHJpdmF0ZUtleSB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5BQ0NPVU5UXzIucHJpdmF0ZUtleSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHhKc29uLmZlZSwgdGVzdERhdGEuRkVFKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguc2lnbmF0dXJlLmxlbmd0aCwgMik7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmZyb20sIG93bmVyMUFkZHJlc3MpO1xuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdVbmxvY2spO1xuICAgIH0pO1xuXG4gICAgaXQoJ2FuIGluaXQgdmFsaWQgdW5kZWxlZ2F0ZSB0cmFuc2FjdGlvbiB3aXRoIGFuIGV4dGVybmFsIHNpZ25hdHVyZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGluaXRVbnNpZ25lZFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5BQ0NPVU5UXzIucHJpdmF0ZUtleSB9KTtcbiAgICAgIHR4QnVpbGRlci5zaWduYXR1cmUoXG4gICAgICAgIHRlc3REYXRhLkVYVEVSTkFMX1NJR05BVFVSRS5zaWduYXR1cmUsXG4gICAgICAgIG5ldyBLZXlQYWlyKHsgcHViOiB0ZXN0RGF0YS5FWFRFUk5BTF9TSUdOQVRVUkUucHVibGljS2V5IH0pXG4gICAgICApO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5mcm9tLCBvd25lcjFBZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguc2lnbmF0dXJlLmxlbmd0aCwgMik7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gaW5pdCB1bmRlbGVnYXRlIHRyYW5zYWN0aW9uIHdpdGggZXh0ZXJuYWwgc2lnbmF0dXJlIGluY2x1ZGVkIHR3aWNlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gaW5pdFVuc2lnbmVkVW5kZWxlZ2F0ZVR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLnNpZ25hdHVyZShcbiAgICAgICAgdGVzdERhdGEuRVhURVJOQUxfU0lHTkFUVVJFLnNpZ25hdHVyZSxcbiAgICAgICAgbmV3IEtleVBhaXIoeyBwdWI6IHRlc3REYXRhLkVYVEVSTkFMX1NJR05BVFVSRS5wdWJsaWNLZXkgfSlcbiAgICAgICk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbmF0dXJlKFxuICAgICAgICB0ZXN0RGF0YS5FWFRFUk5BTF9TSUdOQVRVUkUuc2lnbmF0dXJlLFxuICAgICAgICBuZXcgS2V5UGFpcih7IHB1YjogdGVzdERhdGEuRVhURVJOQUxfU0lHTkFUVVJFLnB1YmxpY0tleSB9KVxuICAgICAgKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5mcm9tLCBvd25lcjFBZGRyZXNzKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguc2lnbmF0dXJlLmxlbmd0aCwgMSk7XG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuU3Rha2luZ1VubG9jayk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5kZWxlZ2F0ZSB0cmFuc2FjdGlvbiB3aXRoIGxhcmdlIGFtb3VudCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFtb3VudCA9ICcxMDAwMDAwMDAwMDAwMDAwMCc7XG4gICAgICBsZXQgdHhCdWlsZGVyID0gaW5pdFVuc2lnbmVkVW5kZWxlZ2F0ZVR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyID0gYWRkQW1vdW50VG9CdWlsZGVyKHR4QnVpbGRlciwgYW1vdW50KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHR4SnNvbi5hbW91bnQuc2hvdWxkLmVxdWFsKGFtb3VudCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgZmFpbCB0byBidWlsZCcsICgpID0+IHtcbiAgICBpdCgnYSB1bmRlbGVnYXRlIHRyYW5zYWN0aW9uIHdpdGhvdXQgZmVlJywgYXN5bmMgKCkgPT4ge1xuICAgICAgbGV0IHR4QnVpbGRlciA9IGluaXRVbmRlbGVnYXRlVHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIgPSBhZGRTb3VyY2VUb0J1aWxkZXIodHhCdWlsZGVyLCBzZW5kZXIpO1xuICAgICAgdHhCdWlsZGVyID0gYWRkVmFsaWRhdG9yVG9CdWlsZGVyKHR4QnVpbGRlciwgdmFsaWRhdG9yKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZEFtb3VudFRvQnVpbGRlcih0eEJ1aWxkZXIsICcxMCcpO1xuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCh0ZXN0RGF0YS5JTlZBTElEX1RSQU5TQUNUSU9OX01JU1NJTkdfRkVFKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHVuZGVsZWdhdGUgdHJhbnNhY3Rpb24gd2l0aG91dCBhbW91bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgdHhCdWlsZGVyID0gaW5pdFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZEZlZVRvQnVpbGRlcih0eEJ1aWxkZXIsIHRlc3REYXRhLkZFRS5nYXNMaW1pdCwgdGVzdERhdGEuRkVFLmdhc1ByaWNlKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZFNvdXJjZVRvQnVpbGRlcih0eEJ1aWxkZXIsIHNlbmRlcik7XG4gICAgICB0eEJ1aWxkZXIgPSBhZGRWYWxpZGF0b3JUb0J1aWxkZXIodHhCdWlsZGVyLCB2YWxpZGF0b3IpO1xuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCh0ZXN0RGF0YS5JTlZBTElEX1RSQU5TQUNUSU9OX01JU1NJTkdfQU1PVU5UKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHVuZGVsZWdhdGUgdHJhbnNhY3Rpb24gd2l0aCBpbnZhbGlkIHNvdXJjZScsIGFzeW5jICgpID0+IHtcbiAgICAgIGxldCB0eEJ1aWxkZXIgPSBpbml0VW5kZWxlZ2F0ZVR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyID0gYWRkRmVlVG9CdWlsZGVyKHR4QnVpbGRlciwgdGVzdERhdGEuRkVFLmdhc0xpbWl0LCB0ZXN0RGF0YS5GRUUuZ2FzUHJpY2UpO1xuICAgICAgdHhCdWlsZGVyID0gYWRkVmFsaWRhdG9yVG9CdWlsZGVyKHR4QnVpbGRlciwgdmFsaWRhdG9yKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZEFtb3VudFRvQnVpbGRlcih0eEJ1aWxkZXIsICcxMCcpO1xuICAgICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLmJlLnJlamVjdGVkV2l0aCh0ZXN0RGF0YS5JTlZBTElEX1RSQU5TQUNUSU9OX01JU1NJTkdfU09VUkNFKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHVuZGVsZWdhdGUgdHJhbnNhY3Rpb24gd2l0aG91dCB2YWxpZGF0b3InLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgdHhCdWlsZGVyID0gaW5pdFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZEZlZVRvQnVpbGRlcih0eEJ1aWxkZXIsIHRlc3REYXRhLkZFRS5nYXNMaW1pdCwgdGVzdERhdGEuRkVFLmdhc1ByaWNlKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZFNvdXJjZVRvQnVpbGRlcih0eEJ1aWxkZXIsIHNlbmRlcik7XG4gICAgICB0eEJ1aWxkZXIgPSBhZGRBbW91bnRUb0J1aWxkZXIodHhCdWlsZGVyLCAnMTAnKTtcblxuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5mcm9tLCBvd25lcjFBZGRyZXNzKTtcbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVW5sb2NrKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24udmFsaWRhdG9yLCBERUxFR0FURV9WQUxJREFUT1JfQUNDT1VOVCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgdmFsaWRhdGUnLCAoKSA9PiB7XG4gICAgY29uc3QgZmFjdG9yeSA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGNzcHInKSk7XG5cbiAgICBpdCgnYW4gYWRkcmVzcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VW5kZWxlZ2F0ZUJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzOiB0ZXN0RGF0YS5WQUxJRF9BRERSRVNTIH0pO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gdHhCdWlsZGVyLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRlc3REYXRhLklOVkFMSURfQUREUkVTUyB9KSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnSW52YWxpZCBhZGRyZXNzICcgKyB0ZXN0RGF0YS5JTlZBTElEX0FERFJFU1MpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ2EgdmFsaWRhdG9yIGFkZHJlc3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBsZXQgdHhCdWlsZGVyID0gaW5pdFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZEZlZVRvQnVpbGRlcih0eEJ1aWxkZXIsIHRlc3REYXRhLkZFRS5nYXNMaW1pdCwgdGVzdERhdGEuRkVFLmdhc1ByaWNlKTtcbiAgICAgIHR4QnVpbGRlciA9IGFkZFNvdXJjZVRvQnVpbGRlcih0eEJ1aWxkZXIsIHNlbmRlcik7XG4gICAgICB0eEJ1aWxkZXIgPSBhZGRBbW91bnRUb0J1aWxkZXIodHhCdWlsZGVyLCAnMTAnKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gdHhCdWlsZGVyLnZhbGlkYXRvcignYWJjJyksIC9JbnZhbGlkIGFkZHJlc3MvKTtcbiAgICB9KTtcblxuICAgIGl0KCdmZWUgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB6ZXJvJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRVbmRlbGVnYXRlQnVpbGRlcigpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIuZmVlKHsgZ2FzTGltaXQ6ICctMTAnIH0pKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdHhCdWlsZGVyLmZlZSh0ZXN0RGF0YS5GRUUpKTtcbiAgICB9KTtcblxuICAgIGl0KCdhbW91bnQgdmFsdWUgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB6ZXJvJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRVbmRlbGVnYXRlQnVpbGRlcigpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIuYW1vdW50KCctMScpKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdHhCdWlsZGVyLmFtb3VudCgnMScpKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRVbmRlbGVnYXRlQnVpbGRlcigpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIudmFsaWRhdGVLZXkoeyBrZXk6ICdhYmMnIH0pLCAvVW5zdXBwb3J0ZWQgcHJpdmF0ZSBrZXkvKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdHhCdWlsZGVyLnZhbGlkYXRlS2V5KHsga2V5OiB0ZXN0RGF0YS5BQ0NPVU5UXzEucHJpdmF0ZUtleSB9KSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSBsZW5ndGggb2Ygc2lnbmVycycsICgpID0+IHtcbiAgICAgIGNvbnN0IHR4QnVpbGRlciA9IGluaXRVbnNpZ25lZFVuZGVsZWdhdGVUeEJ1aWxkZXIoKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLkFDQ09VTlRfMS5wcml2YXRlS2V5IH0pKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLkFDQ09VTlRfMi5wcml2YXRlS2V5IH0pKTtcbiAgICAgIHNob3VsZC5kb2VzTm90VGhyb3coKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLkFDQ09VTlRfMy5wcml2YXRlS2V5IH0pKTtcbiAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICgpID0+IHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5BQ0NPVU5UXzQucHJpdmF0ZUtleSB9KSxcbiAgICAgICAgbmV3IFJlZ0V4cCgnQSBtYXhpbXVtIG9mIDMgY2FuIHNpZ24gdGhlIHRyYW5zYWN0aW9uLicpXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=walletInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitialization.d.ts","sourceRoot":"","sources":["../../../../../test/unit/lib/transactionBuilder/walletInitialization.ts"],"names":[],"mappings":""}