@bitgo-beta/sdk-coin-avaxc 2.2.3-alpha.45 → 2.2.3-alpha.451
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/avaxc.d.ts +46 -17
- package/dist/src/avaxc.d.ts.map +1 -1
- package/dist/src/avaxc.js +221 -86
- package/dist/src/avaxcToken.d.ts +1 -1
- package/dist/src/avaxcToken.d.ts.map +1 -1
- package/dist/src/avaxcToken.js +3 -3
- package/dist/src/iface.d.ts +6 -3
- package/dist/src/iface.d.ts.map +1 -1
- package/dist/src/iface.js +1 -1
- package/dist/src/index.js +6 -2
- package/dist/src/lib/index.js +23 -9
- package/dist/src/lib/keyPair.js +10 -11
- package/dist/src/lib/transactionBuilder.js +2 -2
- package/dist/src/lib/utils.d.ts +2 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +31 -10
- package/dist/test/resources/avaxc.d.ts +122 -0
- package/dist/test/resources/avaxc.d.ts.map +1 -0
- package/dist/test/resources/avaxc.js +137 -0
- package/dist/test/unit/avaxc.d.ts +2 -0
- package/dist/test/unit/avaxc.d.ts.map +1 -0
- package/dist/test/unit/avaxc.js +1104 -0
- package/dist/test/unit/avaxcToken.d.ts +2 -0
- package/dist/test/unit/avaxcToken.d.ts.map +1 -0
- package/dist/test/unit/avaxcToken.js +68 -0
- package/dist/test/unit/getBuilder.d.ts +3 -0
- package/dist/test/unit/getBuilder.d.ts.map +1 -0
- package/dist/test/unit/getBuilder.js +10 -0
- package/dist/test/unit/helpers.d.ts +15 -0
- package/dist/test/unit/helpers.d.ts.map +1 -0
- package/dist/test/unit/helpers.js +54 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +135 -0
- package/dist/test/unit/transactionBuilder/transfer.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transfer.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transfer.js +223 -0
- package/dist/test/unit/transactionBuilder/walletInitializationBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/walletInitializationBuilder.js +174 -0
- package/dist/test/unit/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transferBuilder.js +119 -0
- package/dist/test/unit/util.d.ts +2 -0
- package/dist/test/unit/util.d.ts.map +1 -0
- package/dist/test/unit/util.js +235 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +22 -16
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -135
|
@@ -0,0 +1,223 @@
|
|
|
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 sdk_coin_eth_1 = require("@bitgo-beta/sdk-coin-eth");
|
|
42
|
+
const testData = __importStar(require("../../resources/avaxc"));
|
|
43
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
44
|
+
const getBuilder_1 = require("../getBuilder");
|
|
45
|
+
describe('Avax C-Chain Transfer Transaction', function () {
|
|
46
|
+
let txBuilder;
|
|
47
|
+
const contractAddress = testData.TEST_ACCOUNT.ethAddress;
|
|
48
|
+
const initTxBuilder = () => {
|
|
49
|
+
txBuilder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
50
|
+
txBuilder.fee({
|
|
51
|
+
fee: '280000000000',
|
|
52
|
+
gasLimit: '7000000',
|
|
53
|
+
});
|
|
54
|
+
txBuilder.counter(1);
|
|
55
|
+
txBuilder.type(sdk_core_1.TransactionType.Send);
|
|
56
|
+
txBuilder.contract(contractAddress);
|
|
57
|
+
};
|
|
58
|
+
it('Should build transfer tx', async function () {
|
|
59
|
+
initTxBuilder();
|
|
60
|
+
txBuilder
|
|
61
|
+
.transfer()
|
|
62
|
+
.amount('100000000000000000') // This represents 0.1 Avax = 0.1 Ether
|
|
63
|
+
.contractSequenceId(1)
|
|
64
|
+
.expirationTime(50000)
|
|
65
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
66
|
+
.key(testData.OWNER_2.ethKey);
|
|
67
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
68
|
+
const tx = await txBuilder.build();
|
|
69
|
+
const txJson = tx.toJson();
|
|
70
|
+
should_1.default.exists(txJson.chainId);
|
|
71
|
+
should_1.default.exists(txJson.from);
|
|
72
|
+
should_1.default.exists(txJson.to);
|
|
73
|
+
txJson.nonce.should.equals(1);
|
|
74
|
+
txJson.from?.should.equals(testData.OWNER_1.ethAddress);
|
|
75
|
+
txJson.chainId?.should.equals('0xa869');
|
|
76
|
+
txJson.gasLimit.should.equals('7000000');
|
|
77
|
+
txJson._type.should.equals(sdk_coin_eth_1.ETHTransactionType.LEGACY);
|
|
78
|
+
txJson.gasPrice.should.equals('280000000000');
|
|
79
|
+
});
|
|
80
|
+
it('Should build with counter 0 if not manually defined', async function () {
|
|
81
|
+
const builder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
82
|
+
builder.fee({
|
|
83
|
+
fee: '280000000000',
|
|
84
|
+
gasLimit: '7000000',
|
|
85
|
+
});
|
|
86
|
+
builder.type(sdk_core_1.TransactionType.Send);
|
|
87
|
+
builder.contract(testData.TEST_ACCOUNT.ethAddress);
|
|
88
|
+
builder
|
|
89
|
+
.transfer()
|
|
90
|
+
.amount('100000000000000000') // This represents 0.1 Avax = 0.1 Ether
|
|
91
|
+
.contractSequenceId(1)
|
|
92
|
+
.expirationTime(50000)
|
|
93
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
94
|
+
.key(testData.OWNER_2.ethKey);
|
|
95
|
+
builder.sign({ key: testData.OWNER_1.ethKey });
|
|
96
|
+
const tx = await builder.build();
|
|
97
|
+
const txJson = tx.toJson();
|
|
98
|
+
should_1.default.exists(txJson.chainId);
|
|
99
|
+
should_1.default.exists(txJson.from);
|
|
100
|
+
should_1.default.exists(txJson.to);
|
|
101
|
+
txJson.nonce.should.equals(0);
|
|
102
|
+
txJson.from.should.equals(testData.OWNER_1.ethAddress);
|
|
103
|
+
txJson.chainId.should.equals('0xa869');
|
|
104
|
+
txJson.gasLimit.should.equals('7000000');
|
|
105
|
+
txJson._type.should.equals(sdk_coin_eth_1.ETHTransactionType.LEGACY);
|
|
106
|
+
txJson.gasPrice.should.equals('280000000000');
|
|
107
|
+
});
|
|
108
|
+
it('Should build transfer with default type', async function () {
|
|
109
|
+
const builder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
110
|
+
builder.fee({
|
|
111
|
+
fee: '280000000000',
|
|
112
|
+
gasLimit: '7000000',
|
|
113
|
+
});
|
|
114
|
+
builder.counter(1);
|
|
115
|
+
builder.contract(testData.TEST_ACCOUNT.ethAddress);
|
|
116
|
+
builder
|
|
117
|
+
.transfer()
|
|
118
|
+
.amount('100000000000000000') // This represents 0.1 Avax = 0.1 Ether
|
|
119
|
+
.contractSequenceId(1)
|
|
120
|
+
.expirationTime(50000)
|
|
121
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
122
|
+
.key(testData.OWNER_2.ethKey);
|
|
123
|
+
builder.sign({ key: testData.OWNER_1.ethKey });
|
|
124
|
+
const tx = await builder.build();
|
|
125
|
+
const txJson = tx.toJson();
|
|
126
|
+
should_1.default.exists(txJson.chainId);
|
|
127
|
+
should_1.default.exists(txJson.from);
|
|
128
|
+
should_1.default.exists(txJson.to);
|
|
129
|
+
txJson.nonce.should.equals(1);
|
|
130
|
+
txJson.from?.should.equals(testData.OWNER_1.ethAddress);
|
|
131
|
+
txJson.chainId?.should.equals('0xa869');
|
|
132
|
+
txJson.gasLimit.should.equals('7000000');
|
|
133
|
+
txJson._type.should.equals(sdk_coin_eth_1.ETHTransactionType.LEGACY);
|
|
134
|
+
txJson.gasPrice.should.equals('280000000000');
|
|
135
|
+
});
|
|
136
|
+
it('Should create transfer object if not created or return it if already initialized', async function () {
|
|
137
|
+
const builder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
138
|
+
builder.fee({
|
|
139
|
+
fee: '280000000000',
|
|
140
|
+
gasLimit: '7000000',
|
|
141
|
+
});
|
|
142
|
+
builder.counter(1);
|
|
143
|
+
builder.contract(testData.TEST_ACCOUNT.ethAddress);
|
|
144
|
+
builder.type(sdk_core_1.TransactionType.Send);
|
|
145
|
+
const transferObj = builder.transfer().amount('5000').contractSequenceId(2).to(testData.TEST_ACCOUNT_2.ethAddress);
|
|
146
|
+
const transferObj2 = builder.transfer();
|
|
147
|
+
should_1.default.deepEqual(transferObj2, transferObj);
|
|
148
|
+
});
|
|
149
|
+
it('Should fail building transfer tx without fee', async function () {
|
|
150
|
+
const builder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
151
|
+
builder.counter(1);
|
|
152
|
+
builder.type(sdk_core_1.TransactionType.Send);
|
|
153
|
+
builder.contract(testData.TEST_ACCOUNT.ethAddress);
|
|
154
|
+
builder
|
|
155
|
+
.transfer()
|
|
156
|
+
.amount('100000000000000000') // This represents 0.1 Avax = 0.1 Ether
|
|
157
|
+
.contractSequenceId(1)
|
|
158
|
+
.expirationTime(50000)
|
|
159
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
160
|
+
.key(testData.OWNER_2.ethKey);
|
|
161
|
+
builder.sign({ key: testData.OWNER_1.ethKey });
|
|
162
|
+
builder.build().should.be.rejectedWith('Invalid transaction: missing fee');
|
|
163
|
+
});
|
|
164
|
+
it('Should fail getting transfer object with non-send type', async function () {
|
|
165
|
+
const builder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
166
|
+
builder.fee({
|
|
167
|
+
fee: '280000000000',
|
|
168
|
+
gasLimit: '7000000',
|
|
169
|
+
});
|
|
170
|
+
builder.counter(1);
|
|
171
|
+
builder.contract(testData.TEST_ACCOUNT.ethAddress);
|
|
172
|
+
builder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
173
|
+
assert_1.default.throws(() => builder.transfer(), (e) => e.message === 'Transfers can only be set for send transactions');
|
|
174
|
+
});
|
|
175
|
+
it('Should build unsigned transfer with final v', async function () {
|
|
176
|
+
initTxBuilder();
|
|
177
|
+
txBuilder
|
|
178
|
+
.transfer()
|
|
179
|
+
.amount('100000000000000000') // This represents 0.1 Avax = 0.1 Ether
|
|
180
|
+
.contractSequenceId(1)
|
|
181
|
+
.expirationTime(50000)
|
|
182
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
183
|
+
.key(testData.OWNER_2.ethKey);
|
|
184
|
+
const tx = await txBuilder.build();
|
|
185
|
+
const txJson = tx.toJson();
|
|
186
|
+
should_1.default.exists(txJson.chainId);
|
|
187
|
+
should_1.default.exists(txJson.to);
|
|
188
|
+
txJson.nonce.should.equals(1);
|
|
189
|
+
should_1.default.equal(txJson.chainId, '0xa869');
|
|
190
|
+
txJson.gasLimit.should.equals('7000000');
|
|
191
|
+
should_1.default.equal(txJson.gasPrice, '280000000000');
|
|
192
|
+
should_1.default.equal(txJson.v, '0x0150f5');
|
|
193
|
+
});
|
|
194
|
+
it('Should build fee market transaction', async function () {
|
|
195
|
+
initTxBuilder();
|
|
196
|
+
txBuilder.fee({
|
|
197
|
+
fee: '280000000000',
|
|
198
|
+
eip1559: {
|
|
199
|
+
maxPriorityFeePerGas: '5',
|
|
200
|
+
maxFeePerGas: '30',
|
|
201
|
+
},
|
|
202
|
+
gasLimit: '7000000',
|
|
203
|
+
});
|
|
204
|
+
txBuilder
|
|
205
|
+
.transfer()
|
|
206
|
+
.amount('100000000000000000') // This represents 0.1 Avax = 0.1 Ether
|
|
207
|
+
.contractSequenceId(1)
|
|
208
|
+
.expirationTime(50000)
|
|
209
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
210
|
+
.key(testData.OWNER_2.ethKey);
|
|
211
|
+
const tx = await txBuilder.build();
|
|
212
|
+
const txJson = tx.toJson();
|
|
213
|
+
txJson._type.should.equals(sdk_coin_eth_1.ETHTransactionType.EIP1559);
|
|
214
|
+
should_1.default.exists(txJson.chainId);
|
|
215
|
+
should_1.default.exists(txJson.to);
|
|
216
|
+
txJson.nonce.should.equals(1);
|
|
217
|
+
should_1.default.equal(txJson.chainId, '0xa869');
|
|
218
|
+
txJson.gasLimit.should.equals('7000000');
|
|
219
|
+
should_1.default.equal(txJson.maxPriorityFeePerGas, '5');
|
|
220
|
+
should_1.default.equal(txJson.maxFeePerGas, '30');
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3RyYW5zZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUc1QiwyREFBc0U7QUFDdEUsZ0VBQWtEO0FBQ2xELG1EQUF1RDtBQUN2RCw4Q0FBMkM7QUFFM0MsUUFBUSxDQUFDLG1DQUFtQyxFQUFFO0lBQzVDLElBQUksU0FBNkIsQ0FBQztJQUNsQyxNQUFNLGVBQWUsR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztJQUN6RCxNQUFNLGFBQWEsR0FBRyxHQUFTLEVBQUU7UUFDL0IsU0FBUyxHQUFHLElBQUEsdUJBQVUsRUFBQyxRQUFRLENBQXVCLENBQUM7UUFDdkQsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNaLEdBQUcsRUFBRSxjQUFjO1lBQ25CLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEMsQ0FBQyxDQUFDO0lBRUYsRUFBRSxDQUFDLDBCQUEwQixFQUFFLEtBQUs7UUFDbEMsYUFBYSxFQUFFLENBQUM7UUFDaEIsU0FBUzthQUNOLFFBQVEsRUFBRTthQUNWLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLHVDQUF1QzthQUNwRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7YUFDckIsY0FBYyxDQUFDLEtBQUssQ0FBQzthQUNyQixFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUM7YUFDdEMsR0FBRyxDQUFD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SyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUNBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkQsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLGdCQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUIsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDekMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQy9DLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IEVUSFRyYW5zYWN0aW9uVHlwZSwgVHhEYXRhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvaW4tZXRoJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9hdmF4Yyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi4vZ2V0QnVpbGRlcic7XG5cbmRlc2NyaWJlKCdBdmF4IEMtQ2hhaW4gVHJhbnNmZXIgVHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gIGxldCB0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgY29uc3QgY29udHJhY3RBZGRyZXNzID0gdGVzdERhdGEuVEVTVF9BQ0NPVU5ULmV0aEFkZHJlc3M7XG4gIGNvbnN0IGluaXRUeEJ1aWxkZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGF2YXhjJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgIGdhc0xpbWl0OiAnNzAwMDAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgIHR4QnVpbGRlci5jb250cmFjdChjb250cmFjdEFkZHJlc3MpO1xuICB9O1xuXG4gIGl0KCdTaG91bGQgYnVpbGQgdHJhbnNmZXIgdHgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgaW5pdFR4QnVpbGRlcigpO1xuICAgIHR4QnVpbGRlclxuICAgICAgLnRyYW5zZmVyKClcbiAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMCcpIC8vIFRoaXMgcmVwcmVzZW50cyAwLjEgQXZheCA9IDAuMSBFdGhlclxuICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgxKVxuICAgICAgLmV4cGlyYXRpb25UaW1lKDUwMDAwKVxuICAgICAgLnRvKHRlc3REYXRhLlRFU1RfQUNDT1VOVF8yLmV0aEFkZHJlc3MpXG4gICAgICAua2V5KHRlc3REYXRhLk9XTkVSXzIuZXRoS2V5KTtcbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuT1dORVJfMS5ldGhLZXkgfSk7XG5cbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IHR4SnNvbjogVHhEYXRhID0gdHgudG9Kc29uKCk7XG5cbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi5jaGFpbklkKTtcbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi5mcm9tKTtcbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi50byk7XG4gICAgdHhKc29uLm5vbmNlLnNob3VsZC5lcXVhbHMoMSk7XG4gICAgdHhKc29uLmZyb20/LnNob3VsZC5lcXVhbHModGVzdERhdGEuT1dORVJfMS5ldGhBZGRyZXNzKTtcbiAgICB0eEpzb24uY2hhaW5JZD8uc2hvdWxkLmVxdWFscygnMHhhODY5Jyk7XG4gICAgdHhKc29uLmdhc0xpbWl0LnNob3VsZC5lcXVhbHMoJzcwMDAwMDAnKTtcbiAgICB0eEpzb24uX3R5cGUuc2hvdWxkLmVxdWFscyhFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZKTtcbiAgICB0eEpzb24uZ2FzUHJpY2UhLnNob3VsZC5lcXVhbHMoJzI4MDAwMDAwMDAwMCcpO1xuICB9KTtcblxuICBpdCgnU2hvdWxkIGJ1aWxkIHdpdGggY291bnRlciAwIGlmIG5vdCBtYW51YWxseSBkZWZpbmVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YXZheGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgYnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgIGdhc0xpbWl0OiAnNzAwMDAwMCcsXG4gICAgfSk7XG4gICAgYnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICBidWlsZGVyLmNvbnRyYWN0KHRlc3REYXRhLlRFU1RfQUNDT1VOVC5ldGhBZGRyZXNzKTtcbiAgICBidWlsZGVyXG4gICAgICAudHJhbnNmZXIoKVxuICAgICAgLmFtb3VudCgnMTAwMDAwMDAwMDAwMDAwMDAwJykgLy8gVGhpcyByZXByZXNlbnRzIDAuMSBBdmF4ID0gMC4xIEV0aGVyXG4gICAgICAuY29udHJhY3RTZXF1ZW5jZUlkKDEpXG4gICAgICAuZXhwaXJhdGlvblRpbWUoNTAwMDApXG4gICAgICAudG8odGVzdERhdGEuVEVTVF9BQ0NPVU5UXzIuZXRoQWRkcmVzcylcbiAgICAgIC5rZXkodGVzdERhdGEuT1dORVJfMi5ldGhLZXkpO1xuICAgIGJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuT1dORVJfMS5ldGhLZXkgfSk7XG5cbiAgICBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIGNvbnN0IHR4SnNvbjogVHhEYXRhID0gdHgudG9Kc29uKCk7XG5cbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi5jaGFpbklkKTtcbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi5mcm9tKTtcbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi50byk7XG4gICAgdHhKc29uLm5vbmNlLnNob3VsZC5lcXVhbHMoMCk7XG4gICAgdHhKc29uLmZyb20hLnNob3VsZC5lcXVhbHModGVzdERhdGEuT1dORVJfMS5ldGhBZGRyZXNzKTtcbiAgICB0eEpzb24uY2hhaW5JZCEuc2hvdWxkLmVxdWFscygnMHhhODY5Jyk7XG4gICAgdHhKc29uLmdhc0xpbWl0LnNob3VsZC5lcXVhbHMoJzcwMDAwMDAnKTtcbiAgICB0eEpzb24uX3R5cGUuc2hvdWxkLmVxdWFscyhFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZKTtcbiAgICB0eEpzb24uZ2FzUHJpY2UhLnNob3VsZC5lcXVhbHMoJzI4MDAwMDAwMDAwMCcpO1xuICB9KTtcblxuICBpdCgnU2hvdWxkIGJ1aWxkIHRyYW5zZmVyIHdpdGggZGVmYXVsdCB0eXBlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YXZheGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgYnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgIGdhc0xpbWl0OiAnNzAwMDAwMCcsXG4gICAgfSk7XG4gICAgYnVpbGRlci5jb3VudGVyKDEpO1xuICAgIGJ1aWxkZXIuY29udHJhY3QodGVzdERhdGEuVEVTVF9BQ0NPVU5ULmV0aEFkZHJlc3MpO1xuICAgIGJ1aWxkZXJcbiAgICAgIC50cmFuc2ZlcigpXG4gICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAnKSAvLyBUaGlzIHJlcHJlc2VudHMgMC4xIEF2YXggPSAwLjEgRXRoZXJcbiAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoMSlcbiAgICAgIC5leHBpcmF0aW9uVGltZSg1MDAwMClcbiAgICAgIC50byh0ZXN0RGF0YS5URVNUX0FDQ09VTlRfMi5ldGhBZGRyZXNzKVxuICAgICAgLmtleSh0ZXN0RGF0YS5PV05FUl8yLmV0aEtleSk7XG4gICAgYnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5PV05FUl8xLmV0aEtleSB9KTtcblxuICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IHR4SnNvbjogVHhEYXRhID0gdHgudG9Kc29uKCk7XG5cbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi5jaGFpbklkKTtcbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi5mcm9tKTtcbiAgICBzaG91bGQuZXhpc3RzKHR4SnNvbi50byk7XG4gICAgdHhKc29uLm5vbmNlLnNob3VsZC5lcXVhbHMoMSk7XG4gICAgdHhKc29uLmZyb20/LnNob3VsZC5lcXVhbHModGVzdERhdGEuT1dORVJfMS5ldGhBZGRyZXNzKTtcbiAgICB0eEpzb24uY2hhaW5JZD8uc2hvdWxkLmVxdWFscygnMHhhODY5Jyk7XG4gICAgdHhKc29uLmdhc0xpbWl0LnNob3VsZC5lcXVhbHMoJzcwMDAwMDAnKTtcbiAgICB0eEpzb24uX3R5cGUuc2hvdWxkLmVxdWFscyhFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZKTtcbiAgICB0eEpzb24uZ2FzUHJpY2UhLnNob3VsZC5lcXVhbHMoJzI4MDAwMDAwMDAwMCcpO1xuICB9KTtcblxuICBpdCgnU2hvdWxkIGNyZWF0ZSB0cmFuc2ZlciBvYmplY3QgaWYgbm90IGNyZWF0ZWQgb3IgcmV0dXJuIGl0IGlmIGFscmVhZHkgaW5pdGlhbGl6ZWQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RhdmF4YycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICBidWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcyODAwMDAwMDAwMDAnLFxuICAgICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgICB9KTtcbiAgICBidWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgYnVpbGRlci5jb250cmFjdCh0ZXN0RGF0YS5URVNUX0FDQ09VTlQuZXRoQWRkcmVzcyk7XG4gICAgYnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5TZW5kKTtcbiAgICBjb25zdCB0cmFuc2Zlck9iaiA9IGJ1aWxkZXIudHJhbnNmZXIoKS5hbW91bnQoJzUwMDAnKS5jb250cmFjdFNlcXVlbmNlSWQoMikudG8odGVzdERhdGEuVEVTVF9BQ0NPVU5UXzIuZXRoQWRkcmVzcyk7XG4gICAgY29uc3QgdHJhbnNmZXJPYmoyID0gYnVpbGRlci50cmFuc2ZlcigpO1xuXG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0cmFuc2Zlck9iajIsIHRyYW5zZmVyT2JqKTtcbiAgfSk7XG5cbiAgaXQoJ1Nob3VsZCBmYWlsIGJ1aWxkaW5nIHRyYW5zZmVyIHR4IHdpdGhvdXQgZmVlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YXZheGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgYnVpbGRlci5jb3VudGVyKDEpO1xuICAgIGJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgYnVpbGRlci5jb250cmFjdCh0ZXN0RGF0YS5URVNUX0FDQ09VTlQuZXRoQWRkcmVzcyk7XG4gICAgYnVpbGRlclxuICAgICAgLnRyYW5zZmVyKClcbiAgICAgIC5hbW91bnQoJzEwMDAwMDAwMDAwMDAwMDAwMCcpIC8vIFRoaXMgcmVwcmVzZW50cyAwLjEgQXZheCA9IDAuMSBFdGhlclxuICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgxKVxuICAgICAgLmV4cGlyYXRpb25UaW1lKDUwMDAwKVxuICAgICAgLnRvKHRlc3REYXRhLlRFU1RfQUNDT1VOVF8yLmV0aEFkZHJlc3MpXG4gICAgICAua2V5KHRlc3REYXRhLk9XTkVSXzIuZXRoS2V5KTtcbiAgICBidWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pO1xuXG4gICAgYnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgZmVlJyk7XG4gIH0pO1xuXG4gIGl0KCdTaG91bGQgZmFpbCBnZXR0aW5nIHRyYW5zZmVyIG9iamVjdCB3aXRoIG5vbi1zZW5kIHR5cGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RhdmF4YycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICBidWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcyODAwMDAwMDAwMDAnLFxuICAgICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgICB9KTtcbiAgICBidWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgYnVpbGRlci5jb250cmFjdCh0ZXN0RGF0YS5URVNUX0FDQ09VTlQuZXRoQWRkcmVzcyk7XG4gICAgYnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICgpID0+IGJ1aWxkZXIudHJhbnNmZXIoKSxcbiAgICAgIChlOiBhbnkpID0+IGUubWVzc2FnZSA9PT0gJ1RyYW5zZmVycyBjYW4gb25seSBiZSBzZXQgZm9yIHNlbmQgdHJhbnNhY3Rpb25zJ1xuICAgICk7XG4gIH0pO1xuXG4gIGl0KCdTaG91bGQgYnVpbGQgdW5zaWduZWQgdHJhbnNmZXIgd2l0aCBmaW5hbCB2JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGluaXRUeEJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXJcbiAgICAgIC50cmFuc2ZlcigpXG4gICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAnKSAvLyBUaGlzIHJlcHJlc2VudHMgMC4xIEF2YXggPSAwLjEgRXRoZXJcbiAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoMSlcbiAgICAgIC5leHBpcmF0aW9uVGltZSg1MDAwMClcbiAgICAgIC50byh0ZXN0RGF0YS5URVNUX0FDQ09VTlRfMi5ldGhBZGRyZXNzKVxuICAgICAgLmtleSh0ZXN0RGF0YS5PV05FUl8yLmV0aEtleSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCB0eEpzb246IFR4RGF0YSA9IHR4LnRvSnNvbigpO1xuXG4gICAgc2hvdWxkLmV4aXN0cyh0eEpzb24uY2hhaW5JZCk7XG4gICAgc2hvdWxkLmV4aXN0cyh0eEpzb24udG8pO1xuICAgIHR4SnNvbi5ub25jZS5zaG91bGQuZXF1YWxzKDEpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24uY2hhaW5JZCwgJzB4YTg2OScpO1xuICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWxzKCc3MDAwMDAwJyk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5nYXNQcmljZSwgJzI4MDAwMDAwMDAwMCcpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24udiwgJzB4MDE1MGY1Jyk7XG4gIH0pO1xuXG4gIGl0KCdTaG91bGQgYnVpbGQgZmVlIG1hcmtldCB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcyODAwMDAwMDAwMDAnLFxuICAgICAgZWlwMTU1OToge1xuICAgICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogJzUnLFxuICAgICAgICBtYXhGZWVQZXJHYXM6ICczMCcsXG4gICAgICB9LFxuICAgICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgICB9KTtcbiAgICB0eEJ1aWxkZXJcbiAgICAgIC50cmFuc2ZlcigpXG4gICAgICAuYW1vdW50KCcxMDAwMDAwMDAwMDAwMDAwMDAnKSAvLyBUaGlzIHJlcHJlc2VudHMgMC4xIEF2YXggPSAwLjEgRXRoZXJcbiAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoMSlcbiAgICAgIC5leHBpcmF0aW9uVGltZSg1MDAwMClcbiAgICAgIC50byh0ZXN0RGF0YS5URVNUX0FDQ09VTlRfMi5ldGhBZGRyZXNzKVxuICAgICAgLmtleSh0ZXN0RGF0YS5PV05FUl8yLmV0aEtleSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCB0eEpzb246IFR4RGF0YSA9IHR4LnRvSnNvbigpO1xuXG4gICAgdHhKc29uLl90eXBlLnNob3VsZC5lcXVhbHMoRVRIVHJhbnNhY3Rpb25UeXBlLkVJUDE1NTkpO1xuICAgIHNob3VsZC5leGlzdHModHhKc29uLmNoYWluSWQpO1xuICAgIHNob3VsZC5leGlzdHModHhKc29uLnRvKTtcbiAgICB0eEpzb24ubm9uY2Uuc2hvdWxkLmVxdWFscygxKTtcbiAgICBzaG91bGQuZXF1YWwodHhKc29uLmNoYWluSWQsICcweGE4NjknKTtcbiAgICB0eEpzb24uZ2FzTGltaXQuc2hvdWxkLmVxdWFscygnNzAwMDAwMCcpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24ubWF4UHJpb3JpdHlGZWVQZXJHYXMsICc1Jyk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5tYXhGZWVQZXJHYXMsICczMCcpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/walletInitializationBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,174 @@
|
|
|
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 sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
42
|
+
const testData = __importStar(require("../../resources/avaxc"));
|
|
43
|
+
const sdk_coin_eth_1 = require("@bitgo-beta/sdk-coin-eth");
|
|
44
|
+
const getBuilder_1 = require("../getBuilder");
|
|
45
|
+
describe('AvaxC Wallet Initialization Builder', function () {
|
|
46
|
+
let txBuilder;
|
|
47
|
+
const initTxBuilder = () => {
|
|
48
|
+
txBuilder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
49
|
+
txBuilder.fee({
|
|
50
|
+
fee: '280000000000',
|
|
51
|
+
gasLimit: '7000000',
|
|
52
|
+
});
|
|
53
|
+
txBuilder.counter(1);
|
|
54
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
55
|
+
};
|
|
56
|
+
describe('Avax C-Chain Wallet Initialization Transaction', () => {
|
|
57
|
+
it('Should build walletInitialization', async () => {
|
|
58
|
+
initTxBuilder();
|
|
59
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
60
|
+
txBuilder.owner(testData.OWNER_2.ethAddress);
|
|
61
|
+
txBuilder.owner(testData.OWNER_3.ethAddress);
|
|
62
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
63
|
+
const tx = await txBuilder.build();
|
|
64
|
+
const txJson = tx.toJson();
|
|
65
|
+
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
66
|
+
txJson.gasLimit.should.equal('7000000');
|
|
67
|
+
txJson._type.should.equals(sdk_coin_eth_1.ETHTransactionType.LEGACY);
|
|
68
|
+
txJson.gasPrice.should.equal('280000000000');
|
|
69
|
+
should_1.default.equal(txJson.nonce, 1);
|
|
70
|
+
should_1.default.equal(txJson.chainId, '0xa869');
|
|
71
|
+
should_1.default.equal(tx.toBroadcastFormat(), testData.TX_BROADCAST);
|
|
72
|
+
});
|
|
73
|
+
it('Should build with counter 0 if not manually defined', async () => {
|
|
74
|
+
txBuilder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
75
|
+
txBuilder.fee({
|
|
76
|
+
fee: '280000000000',
|
|
77
|
+
gasLimit: '7000000',
|
|
78
|
+
});
|
|
79
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
80
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
81
|
+
txBuilder.owner(testData.OWNER_2.ethAddress);
|
|
82
|
+
txBuilder.owner(testData.OWNER_3.ethAddress);
|
|
83
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
84
|
+
const tx = await txBuilder.build();
|
|
85
|
+
const txJson = tx.toJson();
|
|
86
|
+
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
87
|
+
txJson.gasLimit.should.equal('7000000');
|
|
88
|
+
txJson._type.should.equals(sdk_coin_eth_1.ETHTransactionType.LEGACY);
|
|
89
|
+
txJson.gasPrice.should.equal('280000000000');
|
|
90
|
+
should_1.default.equal(txJson.chainId, '0xa869');
|
|
91
|
+
should_1.default.equal(txJson.v, '0x0150f5');
|
|
92
|
+
should_1.default.equal(tx.toBroadcastFormat(), testData.TX_BROADCAST_ZERO_NONCE);
|
|
93
|
+
});
|
|
94
|
+
it('Should throw if building walletInitialization without fee', async function () {
|
|
95
|
+
txBuilder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
96
|
+
txBuilder.counter(1);
|
|
97
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
98
|
+
txBuilder.counter(1);
|
|
99
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
100
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
101
|
+
txBuilder.owner(testData.OWNER_2.ethAddress);
|
|
102
|
+
txBuilder.owner(testData.OWNER_3.ethAddress);
|
|
103
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
104
|
+
txBuilder.build().should.be.rejectedWith('Invalid transaction: missing fee');
|
|
105
|
+
});
|
|
106
|
+
it('Should throw if building walletInitialization without type', async function () {
|
|
107
|
+
txBuilder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
108
|
+
txBuilder.fee({
|
|
109
|
+
fee: '280000000000',
|
|
110
|
+
gasLimit: '7000000',
|
|
111
|
+
});
|
|
112
|
+
txBuilder.counter(1);
|
|
113
|
+
assert_1.default.throws(() => txBuilder.owner(testData.OWNER_1.ethAddress), (e) => e.message === 'Multisig wallet owner can only be set for initialization transactions');
|
|
114
|
+
});
|
|
115
|
+
it('Should throw if building walletInitialization without owners', async function () {
|
|
116
|
+
initTxBuilder();
|
|
117
|
+
txBuilder.fee({
|
|
118
|
+
fee: '280000000000',
|
|
119
|
+
gasLimit: '7000000',
|
|
120
|
+
});
|
|
121
|
+
txBuilder.counter(1);
|
|
122
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
123
|
+
assert_1.default.throws(() => txBuilder.sign({ key: testData.OWNER_1.ethKey }), (e) => e.message === 'Cannot sign an wallet initialization transaction without owners');
|
|
124
|
+
});
|
|
125
|
+
it('Should throw if building walletInitialization with only one owner', async function () {
|
|
126
|
+
initTxBuilder();
|
|
127
|
+
txBuilder.fee({
|
|
128
|
+
fee: '280000000000',
|
|
129
|
+
gasLimit: '7000000',
|
|
130
|
+
});
|
|
131
|
+
txBuilder.counter(1);
|
|
132
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
133
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
134
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
135
|
+
txBuilder.build().should.be.rejectedWith('Invalid transaction: wrong number of owners -- required: 3, found: 1');
|
|
136
|
+
});
|
|
137
|
+
it('Should throw if building walletInitialization with only two owners', async function () {
|
|
138
|
+
initTxBuilder();
|
|
139
|
+
txBuilder.fee({
|
|
140
|
+
fee: '280000000000',
|
|
141
|
+
gasLimit: '7000000',
|
|
142
|
+
});
|
|
143
|
+
txBuilder.counter(1);
|
|
144
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
145
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
146
|
+
txBuilder.owner(testData.OWNER_2.ethAddress);
|
|
147
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
148
|
+
txBuilder.build().should.be.rejectedWith('Invalid transaction: wrong number of owners -- required: 3, found: 2');
|
|
149
|
+
});
|
|
150
|
+
it('Should getting same tx from raw tx', async function () {
|
|
151
|
+
initTxBuilder();
|
|
152
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
153
|
+
txBuilder.owner(testData.OWNER_2.ethAddress);
|
|
154
|
+
txBuilder.owner(testData.OWNER_3.ethAddress);
|
|
155
|
+
txBuilder.sign({ key: testData.OWNER_1.ethKey });
|
|
156
|
+
const tx = await txBuilder.build();
|
|
157
|
+
const txBuiderFromRaw = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
158
|
+
txBuiderFromRaw.from(tx.toBroadcastFormat());
|
|
159
|
+
const txFromRaw = await txBuiderFromRaw.build();
|
|
160
|
+
should_1.default.deepEqual(tx.toJson(), txFromRaw.toJson());
|
|
161
|
+
should_1.default.deepEqual(tx.toBroadcastFormat(), txFromRaw.toBroadcastFormat());
|
|
162
|
+
should_1.default.deepEqual(tx.id, txFromRaw.id);
|
|
163
|
+
});
|
|
164
|
+
it('Should build tx with final v', async function () {
|
|
165
|
+
initTxBuilder();
|
|
166
|
+
txBuilder.owner(testData.OWNER_1.ethAddress);
|
|
167
|
+
txBuilder.owner(testData.OWNER_2.ethAddress);
|
|
168
|
+
txBuilder.owner(testData.OWNER_3.ethAddress);
|
|
169
|
+
const tx = await txBuilder.build();
|
|
170
|
+
should_1.default.deepEqual(tx.toJson().v, '0x0150f5');
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci93YWxsZXRJbml0aWFsaXphdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBRTVCLG1EQUF1RDtBQUN2RCxnRUFBa0Q7QUFDbEQsMkRBQXNFO0FBQ3RFLDhDQUEyQztBQUczQyxRQUFRLENBQUMscUNBQXFDLEVBQUU7SUFDOUMsSUFBSSxTQUE2QixDQUFDO0lBRWxDLE1BQU0sYUFBYSxHQUFHLEdBQVMsRUFBRTtRQUMvQixTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLFFBQVEsQ0FBdUIsQ0FBQztRQUN2RCxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ1osR0FBRyxFQUFFLGNBQWM7WUFDbkIsUUFBUSxFQUFFLFNBQVM7U0FDcEIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQixTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUN2RCxDQUFDLENBQUM7SUFFRixRQUFRLENBQUMsZ0RBQWdELEVBQUUsR0FBRyxFQUFFO1FBQzlELEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRCxhQUFhLEVBQUUsQ0FBQztZQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0MsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztZ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QUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2F2YXhjJztcbmltcG9ydCB7IEVUSFRyYW5zYWN0aW9uVHlwZSwgVHhEYXRhIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvaW4tZXRoJztcbmltcG9ydCB7IGdldEJ1aWxkZXIgfSBmcm9tICcuLi9nZXRCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbmRlc2NyaWJlKCdBdmF4QyBXYWxsZXQgSW5pdGlhbGl6YXRpb24gQnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgbGV0IHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyO1xuXG4gIGNvbnN0IGluaXRUeEJ1aWxkZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGF2YXhjJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgIGdhc0xpbWl0OiAnNzAwMDAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgfTtcblxuICBkZXNjcmliZSgnQXZheCBDLUNoYWluIFdhbGxldCBJbml0aWFsaXphdGlvbiBUcmFuc2FjdGlvbicsICgpID0+IHtcbiAgICBpdCgnU2hvdWxkIGJ1aWxkIHdhbGxldEluaXRpYWxpemF0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKHRlc3REYXRhLk9XTkVSXzEuZXRoQWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMi5ldGhBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8zLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uOiBUeERhdGEgPSB0eC50b0pzb24oKTtcblxuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWwoJzcwMDAwMDAnKTtcbiAgICAgIHR4SnNvbi5fdHlwZS5zaG91bGQuZXF1YWxzKEVUSFRyYW5zYWN0aW9uVHlwZS5MRUdBQ1kpO1xuICAgICAgdHhKc29uLmdhc1ByaWNlIS5zaG91bGQuZXF1YWwoJzI4MDAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5ub25jZSwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmNoYWluSWQhLCAnMHhhODY5Jyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVFhfQlJPQURDQVNUKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgYnVpbGQgd2l0aCBjb3VudGVyIDAgaWYgbm90IG1hbnVhbGx5IGRlZmluZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YXZheGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcblxuICAgICAgdHhCdWlsZGVyLm93bmVyKHRlc3REYXRhLk9XTkVSXzEuZXRoQWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMi5ldGhBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8zLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pO1xuXG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhKc29uOiBUeERhdGEgPSB0eC50b0pzb24oKTtcblxuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWwoJzcwMDAwMDAnKTtcbiAgICAgIHR4SnNvbi5fdHlwZS5zaG91bGQuZXF1YWxzKEVUSFRyYW5zYWN0aW9uVHlwZS5MRUdBQ1kpO1xuICAgICAgdHhKc29uLmdhc1ByaWNlIS5zaG91bGQuZXF1YWwoJzI4MDAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5jaGFpbklkISwgJzB4YTg2OScpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi52LCAnMHgwMTUwZjUnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5UWF9CUk9BRENBU1RfWkVST19OT05DRSk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIHRocm93IGlmIGJ1aWxkaW5nIHdhbGxldEluaXRpYWxpemF0aW9uIHdpdGhvdXQgZmVlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGF2YXhjJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKHRlc3REYXRhLk9XTkVSXzEuZXRoQWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMi5ldGhBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8zLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pO1xuXG4gICAgICB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIGZlZScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCB0aHJvdyBpZiBidWlsZGluZyB3YWxsZXRJbml0aWFsaXphdGlvbiB3aXRob3V0IHR5cGUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YXZheGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMS5ldGhBZGRyZXNzKSxcbiAgICAgICAgKGU6IGFueSkgPT4gZS5tZXNzYWdlID09PSAnTXVsdGlzaWcgd2FsbGV0IG93bmVyIGNhbiBvbmx5IGJlIHNldCBmb3IgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb25zJ1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdTaG91bGQgdGhyb3cgaWYgYnVpbGRpbmcgd2FsbGV0SW5pdGlhbGl6YXRpb24gd2l0aG91dCBvd25lcnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgICAgZmVlOiAnMjgwMDAwMDAwMDAwJyxcbiAgICAgICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgICAgIH0pO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4gdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pLFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdDYW5ub3Qgc2lnbiBhbiB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24gd2l0aG91dCBvd25lcnMnXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCB0aHJvdyBpZiBidWlsZGluZyB3YWxsZXRJbml0aWFsaXphdGlvbiB3aXRoIG9ubHkgb25lIG93bmVyJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICAgIGZlZTogJzI4MDAwMDAwMDAwMCcsXG4gICAgICAgIGdhc0xpbWl0OiAnNzAwMDAwMCcsXG4gICAgICB9KTtcbiAgICAgIHR4QnVpbGRlci5jb3VudGVyKDEpO1xuICAgICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8xLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pO1xuXG4gICAgICB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiB3cm9uZyBudW1iZXIgb2Ygb3duZXJzIC0tIHJlcXVpcmVkOiAzLCBmb3VuZDogMScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCB0aHJvdyBpZiBidWlsZGluZyB3YWxsZXRJbml0aWFsaXphdGlvbiB3aXRoIG9ubHkgdHdvIG93bmVycycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGluaXRUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgICBmZWU6ICcyODAwMDAwMDAwMDAnLFxuICAgICAgICBnYXNMaW1pdDogJzcwMDAwMDAnLFxuICAgICAgfSk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMS5ldGhBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8yLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLk9XTkVSXzEuZXRoS2V5IH0pO1xuXG4gICAgICB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiB3cm9uZyBudW1iZXIgb2Ygb3duZXJzIC0tIHJlcXVpcmVkOiAzLCBmb3VuZDogMicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ1Nob3VsZCBnZXR0aW5nIHNhbWUgdHggZnJvbSByYXcgdHgnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMS5ldGhBZGRyZXNzKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8yLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKHRlc3REYXRhLk9XTkVSXzMuZXRoQWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuT1dORVJfMS5ldGhLZXkgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3QgdHhCdWlkZXJGcm9tUmF3ID0gZ2V0QnVpbGRlcigndGF2YXhjJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgICAgdHhCdWlkZXJGcm9tUmF3LmZyb20odHgudG9Ccm9hZGNhc3RGb3JtYXQoKSk7XG4gICAgICBjb25zdCB0eEZyb21SYXcgPSBhd2FpdCB0eEJ1aWRlckZyb21SYXcuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHgudG9Kc29uKCksIHR4RnJvbVJhdy50b0pzb24oKSk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHR4RnJvbVJhdy50b0Jyb2FkY2FzdEZvcm1hdCgpKTtcbiAgICAgIHNob3VsZC5kZWVwRXF1YWwodHguaWQsIHR4RnJvbVJhdy5pZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnU2hvdWxkIGJ1aWxkIHR4IHdpdGggZmluYWwgdicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGluaXRUeEJ1aWxkZXIoKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcih0ZXN0RGF0YS5PV05FUl8xLmV0aEFkZHJlc3MpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKHRlc3REYXRhLk9XTkVSXzIuZXRoQWRkcmVzcyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIodGVzdERhdGEuT1dORVJfMy5ldGhBZGRyZXNzKTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZGVlcEVxdWFsKHR4LnRvSnNvbigpLnYsICcweDAxNTBmNScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/transferBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,119 @@
|
|
|
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 src_1 = require("../../src");
|
|
41
|
+
const getBuilder_1 = require("./getBuilder");
|
|
42
|
+
const testData = __importStar(require("../resources/avaxc"));
|
|
43
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
44
|
+
const sdk_coin_eth_1 = require("@bitgo-beta/sdk-coin-eth");
|
|
45
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
46
|
+
const amount = '20000';
|
|
47
|
+
const toAddress = '0x7325A3F7d4f9E86AE62Cf742426078C3755730d5';
|
|
48
|
+
const keyPair = new src_1.KeyPair();
|
|
49
|
+
const key = keyPair.getKeys().prv;
|
|
50
|
+
const tokensNames = [
|
|
51
|
+
'avaxc:png',
|
|
52
|
+
'avaxc:xava',
|
|
53
|
+
'avaxc:klo',
|
|
54
|
+
'avaxc:joe',
|
|
55
|
+
'avaxc:qi',
|
|
56
|
+
'avaxc:usdt',
|
|
57
|
+
'avaxc:usdc',
|
|
58
|
+
'avaxc:link',
|
|
59
|
+
'tavaxc:link',
|
|
60
|
+
];
|
|
61
|
+
const coin = statics_1.coins.get('avaxc');
|
|
62
|
+
let txBuilder;
|
|
63
|
+
const contractAddress = testData.TEST_ACCOUNT.ethAddress;
|
|
64
|
+
const initTxBuilder = () => {
|
|
65
|
+
txBuilder = (0, getBuilder_1.getBuilder)('tavaxc');
|
|
66
|
+
txBuilder.fee({
|
|
67
|
+
fee: '280000000000',
|
|
68
|
+
gasLimit: '7000000',
|
|
69
|
+
});
|
|
70
|
+
txBuilder.counter(1);
|
|
71
|
+
txBuilder.type(sdk_core_1.TransactionType.Send);
|
|
72
|
+
txBuilder.contract(contractAddress);
|
|
73
|
+
};
|
|
74
|
+
describe('AVAXERC20 Tokens', () => {
|
|
75
|
+
tokensNames.forEach((tokenName) => {
|
|
76
|
+
it(tokenName + ' token transfer should succeed', async () => {
|
|
77
|
+
const builder = new src_1.TransferBuilder()
|
|
78
|
+
.coin(tokenName)
|
|
79
|
+
.expirationTime(1590078260)
|
|
80
|
+
.amount(amount)
|
|
81
|
+
.to(toAddress)
|
|
82
|
+
.contractSequenceId(2)
|
|
83
|
+
.key(key);
|
|
84
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
85
|
+
const decode = (0, sdk_coin_eth_1.decodeTokenTransferData)(result);
|
|
86
|
+
should_1.default.equal(decode.amount, '20000');
|
|
87
|
+
should_1.default.equal(decode.expireTime, 1590078260);
|
|
88
|
+
should_1.default.equal(decode.sequenceId, 2);
|
|
89
|
+
should_1.default.equal(decode.to.toLowerCase(), toAddress.toLowerCase());
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
it('a send token transaction', async () => {
|
|
93
|
+
const amount = '100';
|
|
94
|
+
initTxBuilder();
|
|
95
|
+
txBuilder.contract(contractAddress);
|
|
96
|
+
txBuilder
|
|
97
|
+
.transfer()
|
|
98
|
+
.coin('tavaxc:link')
|
|
99
|
+
.amount(amount)
|
|
100
|
+
.to(testData.TEST_ACCOUNT_2.ethAddress)
|
|
101
|
+
.expirationTime(1590066728)
|
|
102
|
+
.contractSequenceId(5)
|
|
103
|
+
.key(testData.OWNER_2.ethKey);
|
|
104
|
+
txBuilder.sign({
|
|
105
|
+
key: testData.OWNER_1.ethKey,
|
|
106
|
+
});
|
|
107
|
+
const tx = await txBuilder.build();
|
|
108
|
+
should_1.default.equal(tx.signature.length, 2);
|
|
109
|
+
should_1.default.equal(tx.inputs.length, 1);
|
|
110
|
+
should_1.default.equal(tx.inputs[0].address.toLowerCase(), contractAddress.toLowerCase());
|
|
111
|
+
should_1.default.equal(tx.inputs[0].value, amount);
|
|
112
|
+
should_1.default.equal(tx.inputs[0].coin, 'tavaxc:link');
|
|
113
|
+
should_1.default.equal(tx.outputs.length, 1);
|
|
114
|
+
should_1.default.equal(tx.outputs[0].address.toLowerCase(), testData.TEST_ACCOUNT_2.ethAddress.toLowerCase());
|
|
115
|
+
should_1.default.equal(tx.outputs[0].value, amount);
|
|
116
|
+
should_1.default.equal(tx.outputs[0].coin, 'tavaxc:link');
|
|
117
|
+
});
|
|
118
|
+
});
|
|
119
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixtQ0FBaUc7QUFDakcsNkNBQTBDO0FBQzFDLDZEQUErQztBQUMvQyxtREFBdUQ7QUFDdkQsMkRBQW1FO0FBQ25FLGlEQUErRTtBQUUvRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFDdkIsTUFBTSxTQUFTLEdBQUcsNENBQTRDLENBQUM7QUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxhQUFPLEVBQUUsQ0FBQztBQUM5QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBYSxDQUFDO0FBQzVDLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLFdBQVc7SUFDWCxZQUFZO0lBQ1osV0FBVztJQUNYLFdBQVc7SUFDWCxVQUFVO0lBQ1YsWUFBWTtJQUNaLFlBQVk7SUFDWixZQUFZO0lBQ1osYUFBYTtDQUNkLENBQUM7QUFDRixNQUFNLElBQUksR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBOEIsQ0FBQztBQUM3RCxJQUFJLFNBQTZCLENBQUM7QUFDbEMsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7QUFDekQsTUFBTSxhQUFhLEdBQUcsR0FBUyxFQUFFO0lBQy9CLFNBQVMsR0FBRyxJQUFBLHVCQUFVLEVBQUMsUUFBUSxDQUF1QixDQUFDO0lBQ3ZELFNBQVMsQ0FBQyxHQUFHLENBQUM7UUFDWixHQUFHLEVBQUUsY0FBYztRQUNuQixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUM7SUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLFNBQVMsQ0FBQyxJQUFJLENBQUMs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QUUvQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgYXMgQXZheENUcmFuc2ZlckJ1aWxkZXIsIFRyYW5zYWN0aW9uQnVpbGRlciwgS2V5UGFpciB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi9nZXRCdWlsZGVyJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcy9hdmF4Yyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBkZWNvZGVUb2tlblRyYW5zZmVyRGF0YSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb2luLWV0aCc7XG5pbXBvcnQgeyBjb2lucywgRXRoZXJldW1OZXR3b3JrIGFzIEV0aExpa2VOZXR3b3JrIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmNvbnN0IGFtb3VudCA9ICcyMDAwMCc7XG5jb25zdCB0b0FkZHJlc3MgPSAnMHg3MzI1QTNGN2Q0ZjlFODZBRTYyQ2Y3NDI0MjYwNzhDMzc1NTczMGQ1JztcbmNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcigpO1xuY29uc3Qga2V5ID0ga2V5UGFpci5nZXRLZXlzKCkucHJ2IGFzIHN0cmluZztcbmNvbnN0IHRva2Vuc05hbWVzID0gW1xuICAnYXZheGM6cG5nJyxcbiAgJ2F2YXhjOnhhdmEnLFxuICAnYXZheGM6a2xvJyxcbiAgJ2F2YXhjOmpvZScsXG4gICdhdmF4YzpxaScsXG4gICdhdmF4Yzp1c2R0JyxcbiAgJ2F2YXhjOnVzZGMnLFxuICAnYXZheGM6bGluaycsXG4gICd0YXZheGM6bGluaycsXG5dO1xuY29uc3QgY29pbiA9IGNvaW5zLmdldCgnYXZheGMnKSBhcyB1bmtub3duIGFzIEV0aExpa2VOZXR3b3JrO1xubGV0IHR4QnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyO1xuY29uc3QgY29udHJhY3RBZGRyZXNzID0gdGVzdERhdGEuVEVTVF9BQ0NPVU5ULmV0aEFkZHJlc3M7XG5jb25zdCBpbml0VHhCdWlsZGVyID0gKCk6IHZvaWQgPT4ge1xuICB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0YXZheGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIHR4QnVpbGRlci5mZWUoe1xuICAgIGZlZTogJzI4MDAwMDAwMDAwMCcsXG4gICAgZ2FzTGltaXQ6ICc3MDAwMDAwJyxcbiAgfSk7XG4gIHR4QnVpbGRlci5jb3VudGVyKDEpO1xuICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gIHR4QnVpbGRlci5jb250cmFjdChjb250cmFjdEFkZHJlc3MpO1xufTtcblxuZGVzY3JpYmUoJ0FWQVhFUkMyMCBUb2tlbnMnLCAoKSA9PiB7XG4gIHRva2Vuc05hbWVzLmZvckVhY2goKHRva2VuTmFtZSkgPT4ge1xuICAgIGl0KHRva2VuTmFtZSArICcgdG9rZW4gdHJhbnNmZXIgc2hvdWxkIHN1Y2NlZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IEF2YXhDVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgLmNvaW4odG9rZW5OYW1lKVxuICAgICAgICAuZXhwaXJhdGlvblRpbWUoMTU5MDA3ODI2MClcbiAgICAgICAgLmFtb3VudChhbW91bnQpXG4gICAgICAgIC50byh0b0FkZHJlc3MpXG4gICAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoMilcbiAgICAgICAgLmtleShrZXkpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRlci5zaWduQW5kQnVpbGQoYCR7Y29pbi5jaGFpbklkfWApO1xuICAgICAgY29uc3QgZGVjb2RlID0gZGVjb2RlVG9rZW5UcmFuc2ZlckRhdGEocmVzdWx0KTtcbiAgICAgIHNob3VsZC5lcXVhbChkZWNvZGUuYW1vdW50LCAnMjAwMDAnKTtcbiAgICAgIHNob3VsZC5lcXVhbChkZWNvZGUuZXhwaXJlVGltZSwgMTU5MDA3ODI2MCk7XG4gICAgICBzaG91bGQuZXF1YWwoZGVjb2RlLnNlcXVlbmNlSWQsIDIpO1xuICAgICAgc2hvdWxkLmVxdWFsKGRlY29kZS50by50b0xvd2VyQ2FzZSgpLCB0b0FkZHJlc3MudG9Mb3dlckNhc2UoKSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdhIHNlbmQgdG9rZW4gdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYW1vdW50ID0gJzEwMCc7XG5cbiAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLmNvbnRyYWN0KGNvbnRyYWN0QWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyXG4gICAgICAudHJhbnNmZXIoKVxuICAgICAgLmNvaW4oJ3RhdmF4YzpsaW5rJylcbiAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgLnRvKHRlc3REYXRhLlRFU1RfQUNDT1VOVF8yLmV0aEFkZHJlc3MpXG4gICAgICAuZXhwaXJhdGlvblRpbWUoMTU5MDA2NjcyOClcbiAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoNSlcbiAgICAgIC5rZXkodGVzdERhdGEuT1dORVJfMi5ldGhLZXkpO1xuICAgIHR4QnVpbGRlci5zaWduKHtcbiAgICAgIGtleTogdGVzdERhdGEuT1dORVJfMS5ldGhLZXksXG4gICAgfSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBzaG91bGQuZXF1YWwodHguc2lnbmF0dXJlLmxlbmd0aCwgMik7XG4gICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0cy5sZW5ndGgsIDEpO1xuICAgIHNob3VsZC5lcXVhbCh0eC5pbnB1dHNbMF0uYWRkcmVzcy50b0xvd2VyQ2FzZSgpLCBjb250cmFjdEFkZHJlc3MudG9Mb3dlckNhc2UoKSk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LmlucHV0c1swXS52YWx1ZSwgYW1vdW50KTtcbiAgICBzaG91bGQuZXF1YWwodHguaW5wdXRzWzBdLmNvaW4sICd0YXZheGM6bGluaycpO1xuXG4gICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHMubGVuZ3RoLCAxKTtcbiAgICBzaG91bGQuZXF1YWwodHgub3V0cHV0c1swXS5hZGRyZXNzLnRvTG93ZXJDYXNlKCksIHRlc3REYXRhLlRFU1RfQUNDT1VOVF8yLmV0aEFkZHJlc3MudG9Mb3dlckNhc2UoKSk7XG4gICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHNbMF0udmFsdWUsIGFtb3VudCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4Lm91dHB1dHNbMF0uY29pbiwgJ3RhdmF4YzpsaW5rJyk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../test/unit/util.ts"],"names":[],"mappings":""}
|