@bitgo-beta/sdk-coin-etc 1.2.3-alpha.402 → 1.2.3-alpha.404
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/.eslintignore +5 -0
- package/.mocharc.yml +8 -0
- package/CHANGELOG.md +741 -0
- package/package.json +9 -12
- package/dist/test/resources.d.ts +0 -16
- package/dist/test/resources.d.ts.map +0 -1
- package/dist/test/resources.js +0 -29
- package/dist/test/unit/etc.d.ts +0 -2
- package/dist/test/unit/etc.d.ts.map +0 -1
- package/dist/test/unit/etc.js +0 -194
- package/dist/test/unit/getBuilder.d.ts +0 -3
- package/dist/test/unit/getBuilder.d.ts.map +0 -1
- package/dist/test/unit/getBuilder.js +0 -10
- package/dist/test/unit/transaction.d.ts +0 -2
- package/dist/test/unit/transaction.d.ts.map +0 -1
- package/dist/test/unit/transaction.js +0 -93
- package/dist/test/unit/transactionBuilder/send.d.ts +0 -2
- package/dist/test/unit/transactionBuilder/send.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/send.js +0 -117
- package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +0 -2
- package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +0 -1
- package/dist/test/unit/transactionBuilder/walletInitialization.js +0 -131
- package/dist/tsconfig.tsbuildinfo +0 -1
package/dist/test/unit/etc.js
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
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 sdk_test_1 = require("@bitgo-beta/sdk-test");
|
|
40
|
-
const sdk_api_1 = require("@bitgo-beta/sdk-api");
|
|
41
|
-
const src_1 = require("../../src");
|
|
42
|
-
const sinon_1 = __importDefault(require("sinon"));
|
|
43
|
-
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
44
|
-
const getBuilder_1 = require("./getBuilder");
|
|
45
|
-
const should = __importStar(require("should"));
|
|
46
|
-
describe('Ethereum Classic', function () {
|
|
47
|
-
let bitgo;
|
|
48
|
-
before(function () {
|
|
49
|
-
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
|
|
50
|
-
bitgo.initializeTestVars();
|
|
51
|
-
bitgo.safeRegister('etc', src_1.Etc.createInstance);
|
|
52
|
-
bitgo.safeRegister('tetc', src_1.Tetc.createInstance);
|
|
53
|
-
});
|
|
54
|
-
it('should instantiate the coin', function () {
|
|
55
|
-
let localBasecoin = bitgo.coin('tetc');
|
|
56
|
-
localBasecoin.should.be.an.instanceof(src_1.Tetc);
|
|
57
|
-
localBasecoin = bitgo.coin('etc');
|
|
58
|
-
localBasecoin.should.be.an.instanceof(src_1.Etc);
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('Wallet Recovery Wizard', function () {
|
|
62
|
-
let sandbox;
|
|
63
|
-
let bitgo;
|
|
64
|
-
let tetcCoin;
|
|
65
|
-
const sourceRootAddress = '0x321cbe223ff1c3d0c03b73b8c648ef2d91e4aaa1';
|
|
66
|
-
const backupKeyAddress = '0x921f162bfd472424d6065b919c3f6e3bf13fe3d7';
|
|
67
|
-
const destinationWalletAddress = '0x76e2dcc49618f3b9769fc8a80b6991388570b3ae';
|
|
68
|
-
const walletPassPhrase = 'Z@oOQ6fkpzjkJXxM<bN1';
|
|
69
|
-
beforeEach(function () {
|
|
70
|
-
sandbox = sinon_1.default.createSandbox();
|
|
71
|
-
const callBack = sandbox.stub(src_1.Etc.prototype, 'queryAddressBalance');
|
|
72
|
-
callBack.withArgs(sourceRootAddress).resolves(new ethereumjs_util_1.BN('2190000000000000000'));
|
|
73
|
-
callBack.withArgs(backupKeyAddress).resolves(new ethereumjs_util_1.BN('190000000000000000'));
|
|
74
|
-
callBack.withArgs('0x5273e0d869226ccf579a81b6d291fb3702ba9dec').resolves(new ethereumjs_util_1.BN('0'));
|
|
75
|
-
callBack.withArgs('0x1b9af47cc3048fe1d31ad72299611d3df3926755').resolves(new ethereumjs_util_1.BN('190000000000000000'));
|
|
76
|
-
callBack.withArgs('0x7fcf95a9106a0ed3bd09e653c8ea3d5e489bfb23').resolves(new ethereumjs_util_1.BN('2190000000000000000'));
|
|
77
|
-
});
|
|
78
|
-
afterEach(function () {
|
|
79
|
-
sandbox.restore();
|
|
80
|
-
});
|
|
81
|
-
before(function () {
|
|
82
|
-
bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'test' });
|
|
83
|
-
bitgo.safeRegister('tetc', src_1.Tetc.createInstance);
|
|
84
|
-
bitgo.initializeTestVars();
|
|
85
|
-
});
|
|
86
|
-
describe('Non-BitGo Recovery', function () {
|
|
87
|
-
beforeEach(function () {
|
|
88
|
-
tetcCoin = bitgo.coin('tetc');
|
|
89
|
-
});
|
|
90
|
-
it('should build a recovery transaction for non-bitgo recovery', async function () {
|
|
91
|
-
const walletContractAddress = sourceRootAddress;
|
|
92
|
-
const recovery = (await tetcCoin.recover({
|
|
93
|
-
userKey: '{"iv":"rP+aJBBP5VkYiGmc0KPz4A==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"/B4OU/PQ1Eg=","ct":"HvCzOA23n6WxgFcBdH3ZqrLnZl5NckPPUyC/UDSv/KO8ZPBb1xZVTTY2ZY6/JBG8dHp/ApvAlRFm1SC+MjZ/OF9LC6Zjz8vsoLiS0BHB+z8Z6qB/16aWJbEIRzEmgEkWRn10l9m646GS00qGNHKG1VBURvUOYN4="}',
|
|
94
|
-
backupKey: '{"iv":"rDHtZUUKxaCQaIzGMB0b0w==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"0bmqSuxoVlA=","ct":"LyKRuUNVcRzhY5LUF15jKdKOpP04nUHs88FYPK1ZB9yuBSEGduQPjJs+xO62NCDh3pyiX1YeHBe9N6Gsm5Va0jSCk8XQ5pCwNuiO1RXvESAhfrXCivJMfRLVmCgaM79YMWapL7syUa//6mhu/1l4tPBBoZoBYc8="}',
|
|
95
|
-
walletContractAddress,
|
|
96
|
-
walletPassphrase: walletPassPhrase,
|
|
97
|
-
recoveryDestination: destinationWalletAddress,
|
|
98
|
-
}));
|
|
99
|
-
recovery.should.not.be.undefined();
|
|
100
|
-
recovery.should.have.property('id');
|
|
101
|
-
recovery.should.have.property('tx');
|
|
102
|
-
const txBuilder = (0, getBuilder_1.getBuilder)('tetc');
|
|
103
|
-
txBuilder.from(recovery.tx);
|
|
104
|
-
const tx = await txBuilder.build();
|
|
105
|
-
tx.toBroadcastFormat().should.not.be.empty();
|
|
106
|
-
});
|
|
107
|
-
it('should error when the backup key is unfunded (cannot pay gas)', async function () {
|
|
108
|
-
await tetcCoin
|
|
109
|
-
.recover({
|
|
110
|
-
userKey: '{"iv":"RI3d7nXJnnMTJFEKE5U6CA==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"qZtZ8FXlr5I=","ct":"F49E7Pi3duSQ9v1iauXuQ6q6SqmGHLPQ9RNJTmfJp0AH2mwNe1bl/pMpwsaT12Ay3x3roLsi5+WFzePK8q1z43xwKfMWjTdsxj0yHpwa+8kOyckEnKyZ5J/AUw0nS7ujegTelaKR/wT2D+mvpJejQ+NRs9Lvyrg="}\n',
|
|
111
|
-
backupKey: '{"iv":"XJPzySPeTTAbLVol9fsQUA==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"6LzbWSvK9Wo=","ct":"8fBnXkAX38ZtoHjN9MBUSkJ3dGgR8FuAmOo1sO7XfOu6Pan23YVpy468dKgl0C+UkzBQbnepNQ0UOf3kEudTYqt3/HgtvUcDdkkD3YDfEF1gVN7ndiBabF2C3SwnMNxUkuD0n5YWaRmaBPo+A2AGj4VrQ0wzFZs="}',
|
|
112
|
-
walletContractAddress: destinationWalletAddress,
|
|
113
|
-
walletPassphrase: walletPassPhrase,
|
|
114
|
-
recoveryDestination: sourceRootAddress,
|
|
115
|
-
})
|
|
116
|
-
.should.be.rejectedWith('Backup key address 0x5273e0d869226ccf579a81b6d291fb3702ba9dec has balance 0 Gwei.This address must have a balance of at least 10000000 Gwei to perform recoveries. Try sending some funds to this address then retry.');
|
|
117
|
-
});
|
|
118
|
-
it('should get the next sequence id for an address', async function () {
|
|
119
|
-
const baseCoin = bitgo.coin('tetc');
|
|
120
|
-
const walletContractAddress = '0x2E0b5638Bf3F774AF116029b09415AA9FDD812d5';
|
|
121
|
-
const sequenceId = await baseCoin.querySequenceId(walletContractAddress);
|
|
122
|
-
sequenceId.should.not.be.undefined();
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
describe('Unsigned sweep for cold wallet', function () {
|
|
126
|
-
const userXprv = 'xprv9s21ZrQH143K38Cfd5PyKGajVbA1sZYwAKQif8qvJMfMmSY85spqTnd4taexRHc9F92QCgBzHosCauYcnJWT9eWxfFKvSjAKoSgQkf74DoM';
|
|
127
|
-
const userXpub = 'xpub661MyMwAqRbcFcH8j6vygQXU3czWH2GnXYLKTXFXrhCLeEsGdR961awYjr3yC8eUj9rqhgFWHVbQJWqZS7kXpLBDzvoCKDLaBujsCH12Zfj';
|
|
128
|
-
const backupXprv = 'xprv9s21ZrQH143K3WkGc7rUw4NU5ZZTPczbMk9GajGxpJYhJXtfnYUL4j1x6vAGcxUg9XFzEHpQWPy3aYyJZcuGnYbc2eNzrsyNn3SRNdQa1PC';
|
|
129
|
-
const backupXpub = 'xpub661MyMwAqRbcGYaF52itktGhGDfiL9CBBTh4TSXV6QqGgXRbhSS5DAaTbdCPJA425XwkvwyCKtTmoxcUTAUgKUf7Qr5Ks9gJP9DTfiV2PhU';
|
|
130
|
-
const walletContractAddress = '0x7fcf95a9106a0ed3bd09e653c8ea3d5e489bfb23';
|
|
131
|
-
// tetc wallet 1 receiveAddress 4
|
|
132
|
-
const recoveryDestination = '0x321cbe223ff1c3d0c03b73b8c648ef2d91e4aaa1';
|
|
133
|
-
const gasPrice = 25000000000;
|
|
134
|
-
beforeEach(function () {
|
|
135
|
-
tetcCoin = bitgo.coin('tetc');
|
|
136
|
-
});
|
|
137
|
-
afterEach(function () {
|
|
138
|
-
sandbox.restore();
|
|
139
|
-
});
|
|
140
|
-
it('should generate an ETH unsigned sweep', async function () {
|
|
141
|
-
const transaction = (await tetcCoin.recover({
|
|
142
|
-
userKey: userXpub,
|
|
143
|
-
backupKey: backupXpub,
|
|
144
|
-
walletContractAddress,
|
|
145
|
-
recoveryDestination,
|
|
146
|
-
gasPrice,
|
|
147
|
-
}));
|
|
148
|
-
should.exist(transaction);
|
|
149
|
-
transaction.should.have.property('txHex');
|
|
150
|
-
transaction.should.have.property('userKey');
|
|
151
|
-
transaction.should.have.property('backupKey');
|
|
152
|
-
transaction.should.have.property('gasLimit');
|
|
153
|
-
transaction.gasLimit.should.equal('500000');
|
|
154
|
-
transaction.should.have.property('gasPrice');
|
|
155
|
-
transaction.gasPrice.should.equal('25000000000');
|
|
156
|
-
transaction.should.have.property('walletContractAddress');
|
|
157
|
-
transaction.walletContractAddress.should.equal('0x7fcf95a9106a0ed3bd09e653c8ea3d5e489bfb23');
|
|
158
|
-
transaction.should.have.property('recipient');
|
|
159
|
-
});
|
|
160
|
-
it('should add a second signature', async function () {
|
|
161
|
-
const transaction = (await tetcCoin.recover({
|
|
162
|
-
userKey: userXpub,
|
|
163
|
-
backupKey: backupXpub,
|
|
164
|
-
walletContractAddress,
|
|
165
|
-
recoveryDestination,
|
|
166
|
-
gasPrice,
|
|
167
|
-
}));
|
|
168
|
-
const txPrebuild = {
|
|
169
|
-
txHex: transaction.txHex,
|
|
170
|
-
};
|
|
171
|
-
const params = {
|
|
172
|
-
txPrebuild,
|
|
173
|
-
prv: userXprv,
|
|
174
|
-
};
|
|
175
|
-
// sign transaction once
|
|
176
|
-
const halfSigned = await tetcCoin.signTransaction(params);
|
|
177
|
-
const halfSignedParams = {
|
|
178
|
-
txPrebuild: halfSigned,
|
|
179
|
-
isLastSignature: true,
|
|
180
|
-
walletContractAddress: walletContractAddress,
|
|
181
|
-
prv: backupXprv,
|
|
182
|
-
};
|
|
183
|
-
// sign transaction twice with the "isLastSignature" flag
|
|
184
|
-
const finalSignedTx = (await tetcCoin.signTransaction(halfSignedParams));
|
|
185
|
-
finalSignedTx.should.have.property('txHex');
|
|
186
|
-
const txBuilder = tetcCoin.getTransactionBuilder();
|
|
187
|
-
txBuilder.from(finalSignedTx.txHex);
|
|
188
|
-
const rebuiltTx = await txBuilder.build();
|
|
189
|
-
rebuiltTx.signature.length.should.equal(2);
|
|
190
|
-
rebuiltTx.outputs.length.should.equal(1);
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2V0Yy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUErRDtBQUMvRCxpREFBK0M7QUFDL0MsbUNBQTBEO0FBQzFELGtEQUEwQjtBQUcxQixxREFBcUM7QUFDckMsNkNBQTBDO0FBRTFDLCtDQUFpQztBQUVqQyxRQUFRLENBQUMsa0JBQWtCLEVBQUU7SUFDM0IsSUFBSSxLQUFtQixDQUFDO0lBRXhCLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDdEQsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsU0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLFVBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsRCxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw2QkFBNkIsRUFBRTtRQUNoQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBSSxDQUFDLENBQUM7UUFFNUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLHdCQUF3QixF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QyxLQUFLLENBQUMsQ0FBQztZQUNwQyxNQUFNLFNBQVMsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgRXRjLCBUZXRjLCBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IE9mZmxpbmVWYXVsdFR4SW5mbywgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5cbmltcG9ydCB7IEJOIH0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCB7IGdldEJ1aWxkZXIgfSBmcm9tICcuL2dldEJ1aWxkZXInO1xuaW1wb3J0IHsgRnVsbHlTaWduZWRUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHNob3VsZCBmcm9tICdzaG91bGQnO1xuXG5kZXNjcmliZSgnRXRoZXJldW0gQ2xhc3NpYycsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICdtb2NrJyB9KTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ2V0YycsIEV0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCd0ZXRjJywgVGV0Yy5jcmVhdGVJbnN0YW5jZSk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgaW5zdGFudGlhdGUgdGhlIGNvaW4nLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCd0ZXRjJyk7XG4gICAgbG9jYWxCYXNlY29pbi5zaG91bGQuYmUuYW4uaW5zdGFuY2VvZihUZXRjKTtcblxuICAgIGxvY2FsQmFzZWNvaW4gPSBiaXRnby5jb2luKCdldGMnKTtcbiAgICBsb2NhbEJhc2Vjb2luLnNob3VsZC5iZS5hbi5pbnN0YW5jZW9mKEV0Yyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdXYWxsZXQgUmVjb3ZlcnkgV2l6YXJkJywgZnVuY3Rpb24gKCkge1xuICBsZXQgc2FuZGJveDtcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCB0ZXRjQ29pbjogVGV0YztcblxuICBjb25zdCBzb3VyY2VSb290QWRkcmVzcyA9ICcweDMyMWNiZTIyM2ZmMWMzZDBjMDNiNzNiOGM2NDhlZjJkOTFlNGFhYTEnO1xuICBjb25zdCBiYWNrdXBLZXlBZGRyZXNzID0gJzB4OTIxZjE2MmJmZDQ3MjQyNGQ2MDY1YjkxOWMzZjZlM2JmMTNmZTNkNyc7XG4gIGNvbnN0IGRlc3RpbmF0aW9uV2FsbGV0QWRkcmVzcyA9ICcweDc2ZTJkY2M0OTYxOGYzYjk3NjlmYzhhODBiNjk5MTM4ODU3MGIzYWUnO1xuICBjb25zdCB3YWxsZXRQYXNzUGhyYXNlID0gJ1pAb09RNmZrcHpqa0pYeE08Yk4xJztcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94ID0gc2lub24uY3JlYXRlU2FuZGJveCgpO1xuICAgIGNvbnN0IGNhbGxCYWNrID0gc2FuZGJveC5zdHViKEV0Yy5wcm90b3R5cGUsICdxdWVyeUFkZHJlc3NCYWxhbmNlJyBhcyBrZXlvZiBFdGMpO1xuICAgIGNhbGxCYWNrLndpdGhBcmdzKHNvdXJjZVJvb3RBZGRyZXNzKS5yZXNvbHZlcyhuZXcgQk4oJzIxOTAwMDAwMDAwMDAwMDAwMDAnKSk7XG4gICAgY2FsbEJhY2sud2l0aEFyZ3MoYmFja3VwS2V5QWRkcmVzcykucmVzb2x2ZXMobmV3IEJOKCcxOTAwMDAwMDAwMDAwMDAwMDAnKSk7XG4gICAgY2FsbEJhY2sud2l0aEFyZ3MoJzB4NTI3M2UwZDg2OTIyNmNjZjU3OWE4MWI2ZDI5MWZiMzcwMmJhOWRlYycpLnJlc29sdmVzKG5ldyBCTignMCcpKTtcbiAgICBjYWxsQmFjay53aXRoQXJncygnMHgxYjlhZjQ3Y2MzMDQ4ZmUxZDMxYWQ3MjI5OTYxMWQzZGYzOTI2NzU1JykucmVzb2x2ZXMobmV3IEJOKCcxOTAwMDAwMDAwMDAwMDAwMDAnKSk7XG4gICAgY2FsbEJhY2sud2l0aEFyZ3MoJzB4N2ZjZjk1YTkxMDZhMGVkM2JkMDllNjUzYzhlYTNkNWU0ODliZmIyMycpLnJlc29sdmVzKG5ldyBCTignMjE5MDAwMDAwMDAwMDAwMDAwMCcpKTtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzYW5kYm94LnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICBiaXRnbyA9IFRlc3RCaXRHby5kZWNvcmF0ZShCaXRHb0FQSSwgeyBlbnY6ICd0ZXN0JyB9KTtcbiAgICBiaXRnby5zYWZlUmVnaXN0ZXIoJ3RldGMnLCBUZXRjLmNyZWF0ZUluc3RhbmNlKTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ05vbi1CaXRHbyBSZWNvdmVyeScsIGZ1bmN0aW9uICgpIHtcbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHRldGNDb2luID0gYml0Z28uY29pbigndGV0YycpIGFzIFRldGM7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgcmVjb3ZlcnkgdHJhbnNhY3Rpb24gZm9yIG5vbi1iaXRnbyByZWNvdmVyeScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdhbGxldENvbnRyYWN0QWRkcmVzcyA9IHNvdXJjZVJvb3RBZGRyZXNzO1xuICAgICAgY29uc3QgcmVjb3ZlcnkgPSAoYXdhaXQgdGV0Y0NvaW4ucmVjb3Zlcih7XG4gICAgICAgIHVzZXJLZXk6XG4gICAgICAgICAgJ3tcIml2XCI6XCJyUCthSkJCUDVWa1lpR21jMEtQejRBPT1cIixcInZcIjoxLFwiaXRlclwiOjEwMDAwLFwia3NcIjoyNTYsXCJ0c1wiOjY0LFwibW9kZVwiOlwiY2NtXCIsXCJhZGF0YVwiOlwiXCIsXCJjaXBoZXJcIjpcImFlc1wiLFwic2FsdFwiOlwiL0I0T1UvUFExRWc9XCIsXCJjdFwiOlwiSHZDek9BMjNuNld4Z0ZjQmRIM1pxckxuWmw1TmNrUFBVeUMvVURTdi9LTzhaUEJiMXhaVlRUWTJaWTYvSkJHOGRIcC9BcHZBbFJGbTFTQytNalovT0Y5TEM2Wmp6OHZzb0xpUzBCSEIrejhaNnFCLzE2YVdKYkVJUnpFbWdFa1dSbjEwbDltNjQ2R1MwMHFHTkhLRzFWQlVSdlVPWU40PVwifScsXG4gICAgICAgIGJhY2t1cEtleTpcbiAgICAgICAgICAne1wiaXZcIjpcInJESHRaVVVLeGFDUWFJekdNQjBiMHc9PVwiLFwidlwiOjEsXCJpdGVyXCI6MTAwMDAsXCJrc1wiOjI1NixcInRzXCI6NjQsXCJtb2RlXCI6XCJjY21cIixcImFkYXRhXCI6XCJcIixcImNpcGhlclwiOlwiYWVzXCIsXCJzYWx0XCI6XCIwYm1xU3V4b1ZsQT1cIixcImN0XCI6XCJMeUtSdVVOVmNSemhZNUxVRjE1aktkS09wUDA0blVIczg4RllQSzFaQjl5dUJTRUdkdVFQakpzK3hPNjJOQ0RoM3B5aVgxWWVIQmU5TjZHc201VmEwalNDazhYUTVwQ3dOdWlPMVJYdkVTQWhmclhDaXZKTWZSTFZtQ2dhTTc5WU1XYXBMN3N5VWEvLzZtaHUvMWw0dFBCQm9ab0JZYzg9XCJ9JyxcbiAgICAgICAgd2FsbGV0Q29udHJhY3RBZGRyZXNzLFxuICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB3YWxsZXRQYXNzUGhyYXNlLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uOiBkZXN0aW5hdGlvbldhbGxldEFkZHJlc3MsXG4gICAgICB9KSkgYXMgT2ZmbGluZVZhdWx0VHhJbmZvO1xuXG4gICAgICByZWNvdmVyeS5zaG91bGQubm90LmJlLnVuZGVmaW5lZCgpO1xuICAgICAgcmVjb3Zlcnkuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2lkJyk7XG4gICAgICByZWNvdmVyeS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndHgnKTtcblxuICAgICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGV0YycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIHR4QnVpbGRlci5mcm9tKHJlY292ZXJ5LnR4KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLnNob3VsZC5ub3QuYmUuZW1wdHkoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXJyb3Igd2hlbiB0aGUgYmFja3VwIGtleSBpcyB1bmZ1bmRlZCAoY2Fubm90IHBheSBnYXMpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgdGV0Y0NvaW5cbiAgICAgICAgLnJlY292ZXIoe1xuICAgICAgICAgIHVzZXJLZXk6XG4gICAgICAgICAgICAne1wiaXZcIjpcIlJJM2Q3blhKbm5NVEpGRUtFNVU2Q0E9PVwiLFwidlwiOjEsXCJpdGVyXCI6MTAwMDAsXCJrc1wiOjI1NixcInRzXCI6NjQsXCJtb2RlXCI6XCJjY21cIixcImFkYXRhXCI6XCJcIixcImNpcGhlclwiOlwiYWVzXCIsXCJzYWx0XCI6XCJxWnRaOEZYbHI1ST1cIixcImN0XCI6XCJGNDlFN1BpM2R1U1E5djFpYXVYdVE2cTZTcW1HSExQUTlSTkpUbWZKcDBBSDJtd05lMWJsL3BNcHdzYVQxMkF5M3gzcm9Mc2k1K1dGemVQSzhxMXo0M3h3S2ZNV2pUZHN4ajB5SHB3YSs4a095Y2tFbkt5WjVKL0FVdzBuUzd1amVnVGVsYUtSL3dUMkQrbXZwSmVqUStOUnM5THZ5cmc9XCJ9XFxuJyxcbiAgICAgICAgICBiYWNrdXBLZXk6XG4gICAgICAgICAgICAne1wiaXZcIjpcIlhKUHp5U1BlVFRBYkxWb2w5ZnNRVUE9PVwiLFwidlwiOjEsXCJpdGVyXCI6MTAwMDAsXCJrc1wiOjI1NixcInRzXCI6NjQsXCJtb2RlXCI6XCJjY21cIixcImFkYXRhXCI6XCJcIixcImNpcGhlclwiOlwiYWVzXCIsXCJzYWx0XCI6XCI2THpiV1N2SzlXbz1cIixcImN0XCI6XCI4ZkJuWGtBWDM4WnRvSGpOOU1CVVNrSjNkR2dSOEZ1QW1PbzFzTzdYZk91NlBhbjIzWVZweTQ2OGRLZ2wwQytVa3pCUWJuZXBOUTBVT2Yza0V1ZFRZcXQzL0hndHZVY0Rka2tEM1lEZkVGMWdWTjduZGlCYWJGMkMzU3duTU54VWt1RDBuNVlXYVJtYUJQbytBMkFHajRWclEwd3pGWnM9XCJ9JyxcbiAgICAgICAgICB3YWxsZXRDb250cmFjdEFkZHJlc3M6IGRlc3RpbmF0aW9uV2FsbGV0QWRkcmVzcyxcbiAgICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB3YWxsZXRQYXNzUGhyYXNlLFxuICAgICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb246IHNvdXJjZVJvb3RBZGRyZXNzLFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLmJlLnJlamVjdGVkV2l0aChcbiAgICAgICAgICAnQmFja3VwIGtleSBhZGRyZXNzIDB4NTI3M2UwZDg2OTIyNmNjZjU3OWE4MWI2ZDI5MWZiMzcwMmJhOWRlYyBoYXMgYmFsYW5jZSAgMCBHd2VpLlRoaXMgYWRkcmVzcyBtdXN0IGhhdmUgYSBiYWxhbmNlIG9mIGF0IGxlYXN0IDEwMDAwMDAwIEd3ZWkgdG8gcGVyZm9ybSByZWNvdmVyaWVzLiBUcnkgc2VuZGluZyBzb21lIGZ1bmRzIHRvIHRoaXMgYWRkcmVzcyB0aGVuIHJldHJ5LidcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBuZXh0IHNlcXVlbmNlIGlkIGZvciBhbiBhZGRyZXNzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYmFzZUNvaW4gPSBiaXRnby5jb2luKCd0ZXRjJykgYXMgVGV0YztcbiAgICAgIGNvbnN0IHdhbGxldENvbnRyYWN0QWRkcmVzcyA9ICcweDJFMGI1NjM4QmYzRjc3NEFGMTE2MDI5YjA5NDE1QUE5RkREODEyZDUnO1xuICAgICAgY29uc3Qgc2VxdWVuY2VJZCA9IGF3YWl0IGJhc2VDb2luLnF1ZXJ5U2VxdWVuY2VJZCh3YWxsZXRDb250cmFjdEFkZHJlc3MpO1xuICAgICAgc2VxdWVuY2VJZC5zaG91bGQubm90LmJlLnVuZGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVW5zaWduZWQgc3dlZXAgZm9yIGNvbGQgd2FsbGV0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHVzZXJYcHJ2ID1cbiAgICAgICd4cHJ2OXMyMVpyUUgxNDNLMzhDZmQ1UHlLR2FqVmJBMXNaWXdBS1FpZjhxdkpNZk1tU1k4NXNwcVRuZDR0YWV4UkhjOUY5MlFDZ0J6SG9zQ2F1WWNuSldUOWVXeGZGS3ZTakFLb1NnUWtmNzREb00nO1xuICAgIGNvbnN0IHVzZXJYcHViID1cbiAgICAgICd4cHViNjYxTXlNd0FxUmJjRmNIOGo2dnlnUVhVM2N6V0gyR25YWUxLVFhGWHJoQ0xlRXNHZFI5NjFhd1lqcjN5QzhlVWo5cnFoZ0ZXSFZiUUpXcVpTN2tYcExCRHp2b0NLRExhQnVqc0NIMTJaZmonO1xuICAgIGNvbnN0IGJhY2t1cFhwcnYgPVxuICAgICAgJ3hwcnY5czIxWnJRSDE0M0szV2tHYzdyVXc0TlU1WlpUUGN6Yk1rOUdhakd4cEpZaEpYdGZuWVVMNGoxeDZ2QUdjeFVnOVhGekVIcFFXUHkzYVl5SlpjdUduWWJjMmVOenJzeU5uM1NSTmRRYTFQQyc7XG4gICAgY29uc3QgYmFja3VwWHB1YiA9XG4gICAgICAneHB1YjY2MU15TXdBcVJiY0dZYUY1Mml0a3RHaEdEZmlMOUNCQlRoNFRTWFY2UXFHZ1hSYmhTUzVEQWFUYmRDUEpBNDI1WHdrdnd5Q0t0VG1veGNVVEFVZ0tVZjdRcjVLczlnSlA5RFRmaVYyUGhVJztcblxuICAgIGNvbnN0IHdhbGxldENvbnRyYWN0QWRkcmVzcyA9ICcweDdmY2Y5NWE5MTA2YTBlZDNiZDA5ZTY1M2M4ZWEzZDVlNDg5YmZiMjMnO1xuICAgIC8vIHRldGMgd2FsbGV0IDEgcmVjZWl2ZUFkZHJlc3MgNFxuICAgIGNvbnN0IHJlY292ZXJ5RGVzdGluYXRpb24gPSAnMHgzMjFjYmUyMjNmZjFjM2QwYzAzYjczYjhjNjQ4ZWYyZDkxZTRhYWExJztcbiAgICBjb25zdCBnYXNQcmljZSA9IDI1MDAwMDAwMDAwO1xuXG4gICAgYmVmb3JlRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICB0ZXRjQ29pbiA9IGJpdGdvLmNvaW4oJ3RldGMnKSBhcyBUZXRjO1xuICAgIH0pO1xuXG4gICAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIHNhbmRib3gucmVzdG9yZSgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBhbiBFVEggdW5zaWduZWQgc3dlZXAnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbjogT2ZmbGluZVZhdWx0VHhJbmZvID0gKGF3YWl0IHRldGNDb2luLnJlY292ZXIoe1xuICAgICAgICB1c2VyS2V5OiB1c2VyWHB1YixcbiAgICAgICAgYmFja3VwS2V5OiBiYWNrdXBYcHViLFxuICAgICAgICB3YWxsZXRDb250cmFjdEFkZHJlc3MsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb24sXG4gICAgICAgIGdhc1ByaWNlLFxuICAgICAgfSkpIGFzIE9mZmxpbmVWYXVsdFR4SW5mbztcbiAgICAgIHNob3VsZC5leGlzdCh0cmFuc2FjdGlvbik7XG4gICAgICB0cmFuc2FjdGlvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndHhIZXgnKTtcbiAgICAgIHRyYW5zYWN0aW9uLnNob3VsZC5oYXZlLnByb3BlcnR5KCd1c2VyS2V5Jyk7XG4gICAgICB0cmFuc2FjdGlvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnYmFja3VwS2V5Jyk7XG4gICAgICB0cmFuc2FjdGlvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZ2FzTGltaXQnKTtcbiAgICAgIHRyYW5zYWN0aW9uLmdhc0xpbWl0LnNob3VsZC5lcXVhbCgnNTAwMDAwJyk7XG4gICAgICB0cmFuc2FjdGlvbi5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZ2FzUHJpY2UnKTtcbiAgICAgIHRyYW5zYWN0aW9uLmdhc1ByaWNlLnNob3VsZC5lcXVhbCgnMjUwMDAwMDAwMDAnKTtcbiAgICAgIHRyYW5zYWN0aW9uLnNob3VsZC5oYXZlLnByb3BlcnR5KCd3YWxsZXRDb250cmFjdEFkZHJlc3MnKTtcbiAgICAgIHRyYW5zYWN0aW9uLndhbGxldENvbnRyYWN0QWRkcmVzcy5zaG91bGQuZXF1YWwoJzB4N2ZjZjk1YTkxMDZhMGVkM2JkMDllNjUzYzhlYTNkNWU0ODliZmIyMycpO1xuICAgICAgdHJhbnNhY3Rpb24uc2hvdWxkLmhhdmUucHJvcGVydHkoJ3JlY2lwaWVudCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBhZGQgYSBzZWNvbmQgc2lnbmF0dXJlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHJhbnNhY3Rpb24gPSAoYXdhaXQgdGV0Y0NvaW4ucmVjb3Zlcih7XG4gICAgICAgIHVzZXJLZXk6IHVzZXJYcHViLFxuICAgICAgICBiYWNrdXBLZXk6IGJhY2t1cFhwdWIsXG4gICAgICAgIHdhbGxldENvbnRyYWN0QWRkcmVzcyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAgZ2FzUHJpY2UsXG4gICAgICB9KSkgYXMgT2ZmbGluZVZhdWx0VHhJbmZvO1xuXG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0ge1xuICAgICAgICB0eEhleDogdHJhbnNhY3Rpb24udHhIZXgsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHBydjogdXNlclhwcnYsXG4gICAgICB9O1xuICAgICAgLy8gc2lnbiB0cmFuc2FjdGlvbiBvbmNlXG4gICAgICBjb25zdCBoYWxmU2lnbmVkID0gYXdhaXQgdGV0Y0NvaW4uc2lnblRyYW5zYWN0aW9uKHBhcmFtcyBhcyBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTtcbiAgICAgIGNvbnN0IGhhbGZTaWduZWRQYXJhbXMgPSB7XG4gICAgICAgIHR4UHJlYnVpbGQ6IGhhbGZTaWduZWQsXG4gICAgICAgIGlzTGFzdFNpZ25hdHVyZTogdHJ1ZSxcbiAgICAgICAgd2FsbGV0Q29udHJhY3RBZGRyZXNzOiB3YWxsZXRDb250cmFjdEFkZHJlc3MsXG4gICAgICAgIHBydjogYmFja3VwWHBydixcbiAgICAgIH07XG4gICAgICAvLyBzaWduIHRyYW5zYWN0aW9uIHR3aWNlIHdpdGggdGhlIFwiaXNMYXN0U2lnbmF0dXJlXCIgZmxhZ1xuICAgICAgY29uc3QgZmluYWxTaWduZWRUeCA9IChhd2FpdCB0ZXRjQ29pbi5zaWduVHJhbnNhY3Rpb24oXG4gICAgICAgIGhhbGZTaWduZWRQYXJhbXMgYXMgU2lnblRyYW5zYWN0aW9uT3B0aW9uc1xuICAgICAgKSkgYXMgRnVsbHlTaWduZWRUcmFuc2FjdGlvbjtcbiAgICAgIGZpbmFsU2lnbmVkVHguc2hvdWxkLmhhdmUucHJvcGVydHkoJ3R4SGV4Jyk7XG4gICAgICBjb25zdCB0eEJ1aWxkZXIgPSB0ZXRjQ29pbi5nZXRUcmFuc2FjdGlvbkJ1aWxkZXIoKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICB0eEJ1aWxkZXIuZnJvbShmaW5hbFNpZ25lZFR4LnR4SGV4KTtcbiAgICAgIGNvbnN0IHJlYnVpbHRUeCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgcmVidWlsdFR4LnNpZ25hdHVyZS5sZW5ndGguc2hvdWxkLmVxdWFsKDIpO1xuICAgICAgcmVidWlsdFR4Lm91dHB1dHMubGVuZ3RoLnNob3VsZC5lcXVhbCgxKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,kBAEzC,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBuilder = void 0;
|
|
4
|
-
const src_1 = require("../../src");
|
|
5
|
-
const statics_1 = require("@bitgo-beta/statics");
|
|
6
|
-
const getBuilder = (coin) => {
|
|
7
|
-
return new src_1.TransactionBuilder(statics_1.coins.get(coin));
|
|
8
|
-
};
|
|
9
|
-
exports.getBuilder = getBuilder;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9nZXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUErQztBQUMvQyxpREFBNEM7QUFFckMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQXNCLEVBQUU7SUFDN0QsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFGVyxRQUFBLFVBQVUsY0FFckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuZXhwb3J0IGNvbnN0IGdldEJ1aWxkZXIgPSAoY29pbjogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyID0+IHtcbiAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KGNvaW4pKTtcbn07XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":""}
|
|
@@ -1,93 +0,0 @@
|
|
|
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 statics_1 = require("@bitgo-beta/statics");
|
|
42
|
-
const sdk_coin_eth_1 = require("@bitgo-beta/sdk-coin-eth");
|
|
43
|
-
const testData = __importStar(require("../resources"));
|
|
44
|
-
const utils_1 = require("../../src/lib/utils");
|
|
45
|
-
describe('Etc Transaction', () => {
|
|
46
|
-
const coinConfig = statics_1.coins.get('etc');
|
|
47
|
-
const common = (0, utils_1.getCommon)(coinConfig.network.type);
|
|
48
|
-
/**
|
|
49
|
-
*
|
|
50
|
-
*/
|
|
51
|
-
function getTransaction() {
|
|
52
|
-
return new sdk_coin_eth_1.Transaction(coinConfig, common);
|
|
53
|
-
}
|
|
54
|
-
describe('should throw ', () => {
|
|
55
|
-
it('an empty transaction', () => {
|
|
56
|
-
const tx = getTransaction();
|
|
57
|
-
assert_1.default.throws(() => {
|
|
58
|
-
tx.toJson();
|
|
59
|
-
});
|
|
60
|
-
assert_1.default.throws(() => {
|
|
61
|
-
tx.toBroadcastFormat();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe('should return', () => {
|
|
66
|
-
it('a valid transaction', () => {
|
|
67
|
-
const tx = getTransaction();
|
|
68
|
-
tx.setTransactionData(testData.TXDATA);
|
|
69
|
-
should_1.default.deepEqual(tx.toJson(), testData.TXDATA);
|
|
70
|
-
should_1.default.equal(tx.toBroadcastFormat(), testData.UNSIGNED_TX);
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
describe('should sign', () => {
|
|
74
|
-
it('invalid', () => {
|
|
75
|
-
const tx = getTransaction();
|
|
76
|
-
return tx.sign(testData.KEYPAIR_PRV).should.be.rejected();
|
|
77
|
-
});
|
|
78
|
-
it('valid', () => {
|
|
79
|
-
const tx = getTransaction();
|
|
80
|
-
tx.setTransactionData(testData.TXDATA);
|
|
81
|
-
return tx.sign(testData.KEYPAIR_PRV).should.be.fulfilled();
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
describe('should return encoded tx', () => {
|
|
85
|
-
it('valid sign', async () => {
|
|
86
|
-
const tx = getTransaction();
|
|
87
|
-
tx.setTransactionData(testData.TXDATA);
|
|
88
|
-
await tx.sign(testData.KEYPAIR_PRV);
|
|
89
|
-
should_1.default.equal(tx.toBroadcastFormat(), testData.ENCODED_TRANSACTION);
|
|
90
|
-
});
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLGlEQUE0QztBQUM1QywyREFBdUQ7QUFDdkQsdURBQXlDO0FBQ3pDLCtDQUFnRDtBQUVoRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBQSxpQkFBUyxFQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFbEQ7O09BRUc7SUFDSCxTQUFTLGNBQWM7UUFDckIsT0FBTyxJQUFJLDBCQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUM3QixFQUFFLENBQUMsc0JBQXNCLEVBQUUsR0FBRyxFQUFFO1lBQzlCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQzVCLGdCQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTtnQkFDakIsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUM7WUFDSCxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1FBQzdCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7WUFDN0IsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDNUIsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDM0IsRUFBRSxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDakIsTUFBTSxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7WUFDNUIsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzVELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUU7WUFDZixNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUM1QixFQUFFLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUN4QyxFQUFFLENBQUMsWUFBWSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFCLE1BQU0sRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQzVCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29pbi1ldGgnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vcmVzb3VyY2VzJztcbmltcG9ydCB7IGdldENvbW1vbiB9IGZyb20gJy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgnRXRjIFRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCdldGMnKTtcbiAgY29uc3QgY29tbW9uID0gZ2V0Q29tbW9uKGNvaW5Db25maWcubmV0d29yay50eXBlKTtcblxuICAvKipcbiAgICpcbiAgICovXG4gIGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcsIGNvbW1vbik7XG4gIH1cblxuICBkZXNjcmliZSgnc2hvdWxkIHRocm93ICcsICgpID0+IHtcbiAgICBpdCgnYW4gZW1wdHkgdHJhbnNhY3Rpb24nLCAoKSA9PiB7XG4gICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHtcbiAgICAgICAgdHgudG9Kc29uKCk7XG4gICAgICB9KTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ge1xuICAgICAgICB0eC50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzaG91bGQgcmV0dXJuJywgKCkgPT4ge1xuICAgIGl0KCdhIHZhbGlkIHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LnRvSnNvbigpLCB0ZXN0RGF0YS5UWERBVEEpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlVOU0lHTkVEX1RYKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBzaWduJywgKCkgPT4ge1xuICAgIGl0KCdpbnZhbGlkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgcmV0dXJuIHR4LnNpZ24odGVzdERhdGEuS0VZUEFJUl9QUlYpLnNob3VsZC5iZS5yZWplY3RlZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3ZhbGlkJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICByZXR1cm4gdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVikuc2hvdWxkLmJlLmZ1bGZpbGxlZCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIHJldHVybiBlbmNvZGVkIHR4JywgKCkgPT4ge1xuICAgIGl0KCd2YWxpZCBzaWduJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgdHguc2V0VHJhbnNhY3Rpb25EYXRhKHRlc3REYXRhLlRYREFUQSk7XG4gICAgICBhd2FpdCB0eC5zaWduKHRlc3REYXRhLktFWVBBSVJfUFJWKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5FTkNPREVEX1RSQU5TQUNUSU9OKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/send.ts"],"names":[],"mappings":""}
|
|
@@ -1,117 +0,0 @@
|
|
|
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 should_1 = __importDefault(require("should"));
|
|
40
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
41
|
-
const builder_1 = require("../../../src/lib/builder");
|
|
42
|
-
const testData = __importStar(require("../../resources"));
|
|
43
|
-
const sdk_coin_eth_1 = require("@bitgo-beta/sdk-coin-eth");
|
|
44
|
-
describe('Etc send transaction', function () {
|
|
45
|
-
let txBuilder;
|
|
46
|
-
const contractAddress = '0x7073b82be1d932c70afe505e1fe211916e978c34';
|
|
47
|
-
const initTxBuilder = () => {
|
|
48
|
-
txBuilder = (0, builder_1.getBuilder)('tetc');
|
|
49
|
-
txBuilder.fee({
|
|
50
|
-
fee: '1000000000',
|
|
51
|
-
gasLimit: '12100000',
|
|
52
|
-
});
|
|
53
|
-
txBuilder.counter(2);
|
|
54
|
-
txBuilder.type(sdk_core_1.TransactionType.Send);
|
|
55
|
-
txBuilder.contract(contractAddress);
|
|
56
|
-
};
|
|
57
|
-
const key = testData.KEYPAIR_PRV.getKeys().prv;
|
|
58
|
-
it('a send funds transaction', async () => {
|
|
59
|
-
initTxBuilder();
|
|
60
|
-
const recipient = testData.ACCOUNT_2;
|
|
61
|
-
const amount = '1000000000';
|
|
62
|
-
const expireTime = 1590066728;
|
|
63
|
-
const sequenceId = 5;
|
|
64
|
-
txBuilder
|
|
65
|
-
.transfer()
|
|
66
|
-
.amount(amount)
|
|
67
|
-
.to(recipient)
|
|
68
|
-
.expirationTime(1590066728)
|
|
69
|
-
.contractSequenceId(sequenceId)
|
|
70
|
-
.key(key);
|
|
71
|
-
txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
|
|
72
|
-
const tx = await txBuilder.build();
|
|
73
|
-
should_1.default.equal(tx.toJson().chainId, 63);
|
|
74
|
-
should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_BROADCAST);
|
|
75
|
-
should_1.default.equal(tx.signature.length, 2);
|
|
76
|
-
should_1.default.equal(tx.inputs.length, 1);
|
|
77
|
-
should_1.default.equal(tx.inputs[0].address, contractAddress);
|
|
78
|
-
should_1.default.equal(tx.inputs[0].value, amount);
|
|
79
|
-
should_1.default.equal(tx.outputs.length, 1);
|
|
80
|
-
should_1.default.equal(tx.outputs[0].address, recipient);
|
|
81
|
-
should_1.default.equal(tx.outputs[0].value, amount);
|
|
82
|
-
const data = tx.toJson().data;
|
|
83
|
-
const { to, amount: parsedAmount, expireTime: parsedExpireTime, sequenceId: parsedSequenceId, } = (0, sdk_coin_eth_1.decodeTransferData)(data);
|
|
84
|
-
should_1.default.equal(to, recipient);
|
|
85
|
-
should_1.default.equal(parsedAmount, amount);
|
|
86
|
-
should_1.default.equal(parsedExpireTime, expireTime);
|
|
87
|
-
should_1.default.equal(parsedSequenceId, sequenceId);
|
|
88
|
-
});
|
|
89
|
-
it('a send funds with amount 0 transaction', async () => {
|
|
90
|
-
initTxBuilder();
|
|
91
|
-
txBuilder.transfer().amount('0').to(testData.ACCOUNT_2).expirationTime(1590066728).contractSequenceId(5).key(key);
|
|
92
|
-
txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
|
|
93
|
-
const tx = await txBuilder.build();
|
|
94
|
-
should_1.default.equal(tx.toBroadcastFormat(), testData.SEND_TX_AMOUNT_ZERO_BROADCAST);
|
|
95
|
-
});
|
|
96
|
-
it('unsigned transaction with final v check', async () => {
|
|
97
|
-
initTxBuilder();
|
|
98
|
-
txBuilder.transfer().amount('0').to(testData.ACCOUNT_2).expirationTime(1590066728).contractSequenceId(5).key(key);
|
|
99
|
-
const tx = await txBuilder.build();
|
|
100
|
-
should_1.default.equal(tx.toJson().v, '0xa1');
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
describe('should sign and build from serialized', () => {
|
|
104
|
-
it('a send funds transaction from serialized', async () => {
|
|
105
|
-
const txBuilder = (0, builder_1.getBuilder)('tetc');
|
|
106
|
-
txBuilder.from(testData.SEND_TX_BROADCAST);
|
|
107
|
-
const signedTx = await txBuilder.build();
|
|
108
|
-
should_1.default.equal(signedTx.toBroadcastFormat(), testData.SEND_TX_BROADCAST);
|
|
109
|
-
});
|
|
110
|
-
it('a send funds transaction with amount 0 from serialized', async () => {
|
|
111
|
-
const txBuilder = (0, builder_1.getBuilder)('tetc');
|
|
112
|
-
txBuilder.from(testData.SEND_TX_AMOUNT_ZERO_BROADCAST);
|
|
113
|
-
const signedTx = await txBuilder.build();
|
|
114
|
-
should_1.default.equal(signedTx.toBroadcastFormat(), testData.SEND_TX_AMOUNT_ZERO_BROADCAST);
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90cmFuc2FjdGlvbkJ1aWxkZXIvc2VuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixtREFBdUQ7QUFFdkQsc0RBQXNEO0FBQ3RELDBEQUE0QztBQUM1QywyREFBOEQ7QUFFOUQsUUFBUSxDQUFDLHNCQUFzQixFQUFFO0lBQy9CLElBQUksU0FBNkIsQ0FBQztJQUNsQyxNQUFNLGVBQWUsR0FBRyw0Q0FBNEMsQ0FBQztJQUNyRSxNQUFNLGFBQWEsR0FBRyxHQUFTLEVBQUU7UUFDL0IsU0FBUyxHQUFHLElBQUEsb0JBQVUsRUFBQyxNQUFNLENBQXVCLENBQUM7UUFDckQsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNaLEdBQUcsRUFBRSxZQUFZO1lBQ2pCLFFBQVEsRUFBRSxVQUFVO1NBQ3JCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBQ0YsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFhLENBQUM7SUFFekQsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3hDLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM5QixNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDckIsU0FB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QztRQUMzRCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQ3JGLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYy9saWIvYnVpbGRlcic7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgZGVjb2RlVHJhbnNmZXJEYXRhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvaW4tZXRoJztcblxuZGVzY3JpYmUoJ0V0YyBzZW5kIHRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICBsZXQgdHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9ICcweDcwNzNiODJiZTFkOTMyYzcwYWZlNTA1ZTFmZTIxMTkxNmU5NzhjMzQnO1xuICBjb25zdCBpbml0VHhCdWlsZGVyID0gKCk6IHZvaWQgPT4ge1xuICAgIHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RldGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcxMDAwMDAwMDAwJyxcbiAgICAgIGdhc0xpbWl0OiAnMTIxMDAwMDAnLFxuICAgIH0pO1xuICAgIHR4QnVpbGRlci5jb3VudGVyKDIpO1xuICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICB0eEJ1aWxkZXIuY29udHJhY3QoY29udHJhY3RBZGRyZXNzKTtcbiAgfTtcbiAgY29uc3Qga2V5ID0gdGVzdERhdGEuS0VZUEFJUl9QUlYuZ2V0S2V5cygpLnBydiBhcyBzdHJpbmc7XG5cbiAgaXQoJ2Egc2VuZCBmdW5kcyB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgY29uc3QgcmVjaXBpZW50ID0gdGVzdERhdGEuQUNDT1VOVF8yO1xuICAgIGNvbnN0IGFtb3VudCA9ICcxMDAwMDAwMDAwJztcbiAgICBjb25zdCBleHBpcmVUaW1lID0gMTU5MDA2NjcyODtcbiAgICBjb25zdCBzZXF1ZW5jZUlkID0gNTtcbiAgICB0eEJ1aWxkZXJcbiAgICAgIC50cmFuc2ZlcigpXG4gICAgICAuYW1vdW50KGFtb3VudClcbiAgICAgIC50byhyZWNpcGllbnQpXG4gICAgICAuZXhwaXJhdGlvblRpbWUoMTU5MDA2NjcyOClcbiAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoc2VxdWVuY2VJZClcbiAgICAgIC5rZXkoa2V5KTtcbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuUFJJVkFURV9LRVlfMSB9KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS5jaGFpbklkLCA2Myk7XG5cbiAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuU0VORF9UWF9CUk9BRENBU1QpO1xuICAgIHNob3VsZC5lcXVhbCh0eC5zaWduYXR1cmUubGVuZ3RoLCAyKTtcbiAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzLmxlbmd0aCwgMSk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS5hZGRyZXNzLCBjb250cmFjdEFkZHJlc3MpO1xuICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0udmFsdWUsIGFtb3VudCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS5hZGRyZXNzLCByZWNpcGllbnQpO1xuICAgIHNob3VsZC5lcXVhbCh0eC5vdXRwdXRzWzBdLnZhbHVlLCBhbW91bnQpO1xuXG4gICAgY29uc3QgZGF0YSA9IHR4LnRvSnNvbigpLmRhdGE7XG4gICAgY29uc3Qge1xuICAgICAgdG8sXG4gICAgICBhbW91bnQ6IHBhcnNlZEFtb3VudCxcbiAgICAgIGV4cGlyZVRpbWU6IHBhcnNlZEV4cGlyZVRpbWUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJzZWRTZXF1ZW5jZUlkLFxuICAgIH0gPSBkZWNvZGVUcmFuc2ZlckRhdGEoZGF0YSk7XG4gICAgc2hvdWxkLmVxdWFsKHRvLCByZWNpcGllbnQpO1xuICAgIHNob3VsZC5lcXVhbChwYXJzZWRBbW91bnQsIGFtb3VudCk7XG4gICAgc2hvdWxkLmVxdWFsKHBhcnNlZEV4cGlyZVRpbWUsIGV4cGlyZVRpbWUpO1xuICAgIHNob3VsZC5lcXVhbChwYXJzZWRTZXF1ZW5jZUlkLCBzZXF1ZW5jZUlkKTtcbiAgfSk7XG5cbiAgaXQoJ2Egc2VuZCBmdW5kcyB3aXRoIGFtb3VudCAwIHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgIGluaXRUeEJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIudHJhbnNmZXIoKS5hbW91bnQoJzAnKS50byh0ZXN0RGF0YS5BQ0NPVU5UXzIpLmV4cGlyYXRpb25UaW1lKDE1OTAwNjY3MjgpLmNvbnRyYWN0U2VxdWVuY2VJZCg1KS5rZXkoa2V5KTtcbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuUFJJVkFURV9LRVlfMSB9KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5TRU5EX1RYX0FNT1VOVF9aRVJPX0JST0FEQ0FTVCk7XG4gIH0pO1xuICBpdCgndW5zaWduZWQgdHJhbnNhY3Rpb24gd2l0aCBmaW5hbCB2IGNoZWNrJywgYXN5bmMgKCkgPT4ge1xuICAgIGluaXRUeEJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIudHJhbnNmZXIoKS5hbW91bnQoJzAnKS50byh0ZXN0RGF0YS5BQ0NPVU5UXzIpLmV4cGlyYXRpb25UaW1lKDE1OTAwNjY3MjgpLmNvbnRyYWN0U2VxdWVuY2VJZCg1KS5rZXkoa2V5KTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS52LCAnMHhhMScpO1xuICB9KTtcbn0pO1xuXG5kZXNjcmliZSgnc2hvdWxkIHNpZ24gYW5kIGJ1aWxkIGZyb20gc2VyaWFsaXplZCcsICgpID0+IHtcbiAgaXQoJ2Egc2VuZCBmdW5kcyB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGV0YycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICB0eEJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5TRU5EX1RYX0JST0FEQ0FTVCk7XG4gICAgY29uc3Qgc2lnbmVkVHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBzaG91bGQuZXF1YWwoc2lnbmVkVHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuU0VORF9UWF9CUk9BRENBU1QpO1xuICB9KTtcblxuICBpdCgnYSBzZW5kIGZ1bmRzIHRyYW5zYWN0aW9uIHdpdGggYW1vdW50IDAgZnJvbSBzZXJpYWxpemVkJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RldGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEuU0VORF9UWF9BTU9VTlRfWkVST19CUk9BRENBU1QpO1xuICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKHNpZ25lZFR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlNFTkRfVFhfQU1PVU5UX1pFUk9fQlJPQURDQVNUKTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"walletInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/walletInitialization.ts"],"names":[],"mappings":""}
|