@bitgo/sdk-coin-opeth 18.7.2 → 18.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/test/fixtures/opeth.d.ts +54 -0
- package/dist/test/fixtures/opeth.d.ts.map +1 -0
- package/dist/test/fixtures/opeth.js +66 -0
- package/dist/test/getBuilder.d.ts +3 -0
- package/dist/test/getBuilder.d.ts.map +1 -0
- package/dist/test/getBuilder.js +9 -0
- package/dist/test/resources.d.ts +31 -0
- package/dist/test/resources.d.ts.map +1 -0
- package/dist/test/resources.js +45 -0
- package/dist/test/unit/opeth.d.ts +2 -0
- package/dist/test/unit/opeth.d.ts.map +1 -0
- package/dist/test/unit/opeth.js +902 -0
- package/dist/test/unit/opethToken.d.ts +2 -0
- package/dist/test/unit/opethToken.d.ts.map +1 -0
- package/dist/test/unit/opethToken.js +46 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +92 -0
- package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/addressInitialization.js +105 -0
- package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/send.js +173 -0
- package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/walletInitialization.js +135 -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 +137 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +10 -7
- package/.eslintignore +0 -4
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -1016
|
@@ -0,0 +1,135 @@
|
|
|
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/sdk-core");
|
|
41
|
+
const src_1 = require("../../../src");
|
|
42
|
+
const testData = __importStar(require("../../resources"));
|
|
43
|
+
const statics_1 = require("@bitgo/statics");
|
|
44
|
+
describe('Opeth wallet initialization', function () {
|
|
45
|
+
let txBuilder;
|
|
46
|
+
const initTxBuilder = () => {
|
|
47
|
+
txBuilder = new src_1.TransactionBuilder(statics_1.coins.get('topeth'));
|
|
48
|
+
txBuilder.fee({
|
|
49
|
+
fee: '10000000000',
|
|
50
|
+
gasLimit: '6800000',
|
|
51
|
+
});
|
|
52
|
+
txBuilder.counter(1);
|
|
53
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
54
|
+
txBuilder.walletVersion(4);
|
|
55
|
+
txBuilder.contract(testData.WALLET_FACTORY_ADDRESS);
|
|
56
|
+
txBuilder.salt('0x0');
|
|
57
|
+
};
|
|
58
|
+
describe('should build', () => {
|
|
59
|
+
it('an init transaction', async () => {
|
|
60
|
+
initTxBuilder();
|
|
61
|
+
txBuilder.owner('0xe6c43626f11312de29b0011fa9da71ea3bba0e9f');
|
|
62
|
+
txBuilder.owner('0x78caeb4527170e52f54d936e4eef6f83250e01bb');
|
|
63
|
+
txBuilder.owner('0xb1938215967408fff7c59c77ae5e5283b55c8e26');
|
|
64
|
+
txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
|
|
65
|
+
const tx = await txBuilder.build();
|
|
66
|
+
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
67
|
+
const txJson = tx.toJson();
|
|
68
|
+
txJson.gasLimit.should.equal('6800000');
|
|
69
|
+
txJson.gasPrice.should.equal('10000000000');
|
|
70
|
+
should_1.default.equal(txJson.nonce, 1);
|
|
71
|
+
should_1.default.equal(txJson.chainId, '0xaa37dc');
|
|
72
|
+
should_1.default.equal(tx.toBroadcastFormat(), testData.TX_BROADCAST);
|
|
73
|
+
});
|
|
74
|
+
it('a signed init transaction from serialized', async () => {
|
|
75
|
+
const newTxBuilder = new src_1.TransactionBuilder(statics_1.coins.get('topeth'));
|
|
76
|
+
newTxBuilder.from(testData.TX_BROADCAST);
|
|
77
|
+
const newTx = await newTxBuilder.build();
|
|
78
|
+
should_1.default.equal(newTx.toBroadcastFormat(), testData.TX_BROADCAST);
|
|
79
|
+
should_1.default.equal(newTx.id, '0x4f9ac32512aeef15e2b3e4bd79643c6f77f93b462f20f1f3d3e48d5905d12add');
|
|
80
|
+
const txJson = newTx.toJson();
|
|
81
|
+
should_1.default.exist(txJson.v);
|
|
82
|
+
should_1.default.exist(txJson.r);
|
|
83
|
+
should_1.default.exist(txJson.s);
|
|
84
|
+
should_1.default.exist(txJson.from);
|
|
85
|
+
});
|
|
86
|
+
it('a wallet initialization transaction with nonce 0', async () => {
|
|
87
|
+
initTxBuilder();
|
|
88
|
+
txBuilder.counter(0);
|
|
89
|
+
txBuilder.owner('0xe6c43626f11312de29b0011fa9da71ea3bba0e9f');
|
|
90
|
+
txBuilder.owner('0x78caeb4527170e52f54d936e4eef6f83250e01bb');
|
|
91
|
+
txBuilder.owner('0xb1938215967408fff7c59c77ae5e5283b55c8e26');
|
|
92
|
+
txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
|
|
93
|
+
const tx = await txBuilder.build();
|
|
94
|
+
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
95
|
+
const txJson = tx.toJson();
|
|
96
|
+
txJson.gasLimit.should.equal('6800000');
|
|
97
|
+
txJson.gasPrice.should.equal('10000000000');
|
|
98
|
+
should_1.default.equal(txJson.nonce, 0);
|
|
99
|
+
should_1.default.equal(txJson.chainId, '0xaa37dc');
|
|
100
|
+
});
|
|
101
|
+
it('an unsigned init transaction from serialized with 0-prefixed address', async () => {
|
|
102
|
+
initTxBuilder();
|
|
103
|
+
txBuilder.owner('0xe6c43626f11312de29b0011fa9da71ea3bba0e9f');
|
|
104
|
+
txBuilder.owner('0x78caeb4527170e52f54d936e4eef6f83250e01bb');
|
|
105
|
+
txBuilder.owner('0xb1938215967408fff7c59c77ae5e5283b55c8e26');
|
|
106
|
+
const tx = await txBuilder.build();
|
|
107
|
+
const serialized = tx.toBroadcastFormat();
|
|
108
|
+
const newTxBuilder = new src_1.TransactionBuilder(statics_1.coins.get('topeth'));
|
|
109
|
+
newTxBuilder.from(serialized);
|
|
110
|
+
const newTx = await newTxBuilder.build();
|
|
111
|
+
should_1.default.equal(newTx.toBroadcastFormat(), serialized);
|
|
112
|
+
});
|
|
113
|
+
it('an unsigned init transaction from serialized', async () => {
|
|
114
|
+
initTxBuilder();
|
|
115
|
+
txBuilder.owner('0xe6c43626f11312de29b0011fa9da71ea3bba0e9f');
|
|
116
|
+
txBuilder.owner('0x78caeb4527170e52f54d936e4eef6f83250e01bb');
|
|
117
|
+
txBuilder.owner('0xb1938215967408fff7c59c77ae5e5283b55c8e26');
|
|
118
|
+
const tx = await txBuilder.build();
|
|
119
|
+
const serialized = tx.toBroadcastFormat();
|
|
120
|
+
const newTxBuilder = new src_1.TransactionBuilder(statics_1.coins.get('topeth'));
|
|
121
|
+
newTxBuilder.from(serialized);
|
|
122
|
+
const newTx = await newTxBuilder.build();
|
|
123
|
+
should_1.default.equal(newTx.toBroadcastFormat(), serialized);
|
|
124
|
+
});
|
|
125
|
+
it('an unsigned transaction with final v check', async () => {
|
|
126
|
+
initTxBuilder();
|
|
127
|
+
txBuilder.owner('0xe6c43626f11312de29b0011fa9da71ea3bba0e9f');
|
|
128
|
+
txBuilder.owner('0x78caeb4527170e52f54d936e4eef6f83250e01bb');
|
|
129
|
+
txBuilder.owner('0xb1938215967408fff7c59c77ae5e5283b55c8e26');
|
|
130
|
+
const tx = await txBuilder.build();
|
|
131
|
+
should_1.default.equal(tx.toJson().v, '0x01546fdb');
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3dhbGxldEluaXRpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLDhDQUFrRDtBQUNsRCxzQ0FBa0Q7QUFDbEQsMERBQTRDO0FBQzVDLDRDQUF1QztBQUV2QyxRQUFRLENBQUMsNkJBQTZCLEVBQUU7SUFDdEMsSUFBSSxTQUE2QixDQUFDO0lBQ2xDLE1BQU0sYUFBYSxHQUFHLEdBQVMsRUFBRTtRQUMvQixTQUFTLEdBQUcsSUFBSSx3QkFBa0IsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDeEQsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNaLEdBQUcsRUFBRSxhQUFhO1lBQ2xCLFFBQVEsRUFBRSxTQUFTO1NBQ3BCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDckQsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3BELFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQyxDQUFDO0lBRUYsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDNUIsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ25DLGFBQWEsRUFBRSxDQUFDO1lBRWhCLFNBQVMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM5RCxTQUFT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QUM7WUFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzlELFNBQVMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM5RCxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUUxQyxNQUFNLFlBQVksR0FBRyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUNqRSxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDRDQUE0QyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzFELGFBQWEsRUFBRSxDQUFDO1lBQ2hCLFNBQVMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM5RCxTQUFTLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzlELE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25DLGdCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmRlc2NyaWJlKCdPcGV0aCB3YWxsZXQgaW5pdGlhbGl6YXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gIGxldCB0eEJ1aWxkZXI6IFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgY29uc3QgaW5pdFR4QnVpbGRlciA9ICgpOiB2b2lkID0+IHtcbiAgICB0eEJ1aWxkZXIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldCgndG9wZXRoJykpO1xuICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMTAwMDAwMDAwMDAnLFxuICAgICAgZ2FzTGltaXQ6ICc2ODAwMDAwJyxcbiAgICB9KTtcbiAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgIHR4QnVpbGRlci53YWxsZXRWZXJzaW9uKDQpO1xuICAgIHR4QnVpbGRlci5jb250cmFjdCh0ZXN0RGF0YS5XQUxMRVRfRkFDVE9SWV9BRERSRVNTKTtcbiAgICB0eEJ1aWxkZXIuc2FsdCgnMHgwJyk7XG4gIH07XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBidWlsZCcsICgpID0+IHtcbiAgICBpdCgnYW4gaW5pdCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICAgIGluaXRUeEJ1aWxkZXIoKTtcblxuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweGU2YzQzNjI2ZjExMzEyZGUyOWIwMDExZmE5ZGE3MWVhM2JiYTBlOWYnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHg3OGNhZWI0NTI3MTcwZTUyZjU0ZDkzNmU0ZWVmNmY4MzI1MGUwMWJiJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4YjE5MzgyMTU5Njc0MDhmZmY3YzU5Yzc3YWU1ZTUyODNiNTVjOGUyNicpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZXzEgfSk7XG5cbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWwoJzY4MDAwMDAnKTtcbiAgICAgIHR4SnNvbi5nYXNQcmljZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAwMDAwJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLm5vbmNlLCAxKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uY2hhaW5JZCwgJzB4YWEzN2RjJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgdGVzdERhdGEuVFhfQlJPQURDQVNUKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHNpZ25lZCBpbml0IHRyYW5zYWN0aW9uIGZyb20gc2VyaWFsaXplZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld1R4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd0b3BldGgnKSk7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbSh0ZXN0RGF0YS5UWF9CUk9BRENBU1QpO1xuICAgICAgY29uc3QgbmV3VHggPSBhd2FpdCBuZXdUeEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5lcXVhbChuZXdUeC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5UWF9CUk9BRENBU1QpO1xuICAgICAgc2hvdWxkLmVxdWFsKG5ld1R4LmlkLCAnMHg0ZjlhYzMyNTEyYWVlZjE1ZTJiM2U0YmQ3OTY0M2M2Zjc3ZjkzYjQ2MmYyMGYxZjNkM2U0OGQ1OTA1ZDEyYWRkJyk7XG4gICAgICBjb25zdCB0eEpzb24gPSBuZXdUeC50b0pzb24oKTtcbiAgICAgIHNob3VsZC5leGlzdCh0eEpzb24udik7XG4gICAgICBzaG91bGQuZXhpc3QodHhKc29uLnIpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi5zKTtcbiAgICAgIHNob3VsZC5leGlzdCh0eEpzb24uZnJvbSk7XG4gICAgfSk7XG5cbiAgICBpdCgnYSB3YWxsZXQgaW5pdGlhbGl6YXRpb24gdHJhbnNhY3Rpb24gd2l0aCBub25jZSAwJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLmNvdW50ZXIoMCk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4ZTZjNDM2MjZmMTEzMTJkZTI5YjAwMTFmYTlkYTcxZWEzYmJhMGU5ZicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweDc4Y2FlYjQ1MjcxNzBlNTJmNTRkOTM2ZTRlZWY2ZjgzMjUwZTAxYmInKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHhiMTkzODIxNTk2NzQwOGZmZjdjNTljNzdhZTVlNTI4M2I1NWM4ZTI2Jyk7XG4gICAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogdGVzdERhdGEuUFJJVkFURV9LRVlfMSB9KTtcbiAgICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG5cbiAgICAgIHR4LnR5cGUuc2hvdWxkLmVxdWFsKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICAgIHR4SnNvbi5nYXNMaW1pdC5zaG91bGQuZXF1YWwoJzY4MDAwMDAnKTtcbiAgICAgIHR4SnNvbi5nYXNQcmljZS5zaG91bGQuZXF1YWwoJzEwMDAwMDAwMDAwJyk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLm5vbmNlLCAwKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24uY2hhaW5JZCwgJzB4YWEzN2RjJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5zaWduZWQgaW5pdCB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQgd2l0aCAwLXByZWZpeGVkIGFkZHJlc3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4ZTZjNDM2MjZmMTEzMTJkZTI5YjAwMTFmYTlkYTcxZWEzYmJhMGU5ZicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweDc4Y2FlYjQ1MjcxNzBlNTJmNTRkOTM2ZTRlZWY2ZjgzMjUwZTAxYmInKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHhiMTkzODIxNTk2NzQwOGZmZjdjNTljNzdhZTVlNTI4M2I1NWM4ZTI2Jyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIGNvbnN0IG5ld1R4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd0b3BldGgnKSk7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbShzZXJpYWxpemVkKTtcbiAgICAgIGNvbnN0IG5ld1R4ID0gYXdhaXQgbmV3VHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZXF1YWwobmV3VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgc2VyaWFsaXplZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5zaWduZWQgaW5pdCB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4ZTZjNDM2MjZmMTEzMTJkZTI5YjAwMTFmYTlkYTcxZWEzYmJhMGU5ZicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweDc4Y2FlYjQ1MjcxNzBlNTJmNTRkOTM2ZTRlZWY2ZjgzMjUwZTAxYmInKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHhiMTkzODIxNTk2NzQwOGZmZjdjNTljNzdhZTVlNTI4M2I1NWM4ZTI2Jyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIGNvbnN0IG5ld1R4QnVpbGRlciA9IG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KCd0b3BldGgnKSk7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbShzZXJpYWxpemVkKTtcbiAgICAgIGNvbnN0IG5ld1R4ID0gYXdhaXQgbmV3VHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZXF1YWwobmV3VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgc2VyaWFsaXplZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gd2l0aCBmaW5hbCB2IGNoZWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweGU2YzQzNjI2ZjExMzEyZGUyOWIwMDExZmE5ZGE3MWVhM2JiYTBlOWYnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHg3OGNhZWI0NTI3MTcwZTUyZjU0ZDkzNmU0ZWVmNmY4MzI1MGUwMWJiJyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4YjE5MzgyMTU5Njc0MDhmZmY3YzU5Yzc3YWU1ZTUyODNiNTVjOGUyNicpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS52LCAnMHgwMTU0NmZkYicpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/transferBuilder.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,137 @@
|
|
|
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 statics_1 = require("@bitgo/statics");
|
|
41
|
+
const src_1 = require("../../src");
|
|
42
|
+
const testData = __importStar(require("../resources"));
|
|
43
|
+
describe('Opeth send multi sig builder', function () {
|
|
44
|
+
const toAddress = '0x7325A3F7d4f9E86AE62Cf742426078C3755730d5';
|
|
45
|
+
const xprv = 'xprv9s21ZrQH143K3D8TXfvAJgHVfTEeQNW5Ys9wZtnUZkqPzFzSjbEJrWC1vZ4GnXCvR7rQL2UFX3RSuYeU9MrERm1XBvACow7c36vnz5iYyj2';
|
|
46
|
+
const key = new src_1.KeyPair({ prv: xprv }).getKeys().prv;
|
|
47
|
+
const amount = '100000000000000000'; // equivalent to 0.1 ether
|
|
48
|
+
const coin = statics_1.coins.get('topeth');
|
|
49
|
+
describe('should build', () => {
|
|
50
|
+
it('native coin transfer should succeed', async () => {
|
|
51
|
+
const builder = new src_1.TransferBuilder()
|
|
52
|
+
.coin('topeth')
|
|
53
|
+
.expirationTime(1590078260)
|
|
54
|
+
.amount(amount)
|
|
55
|
+
.to(toAddress)
|
|
56
|
+
.contractSequenceId(2)
|
|
57
|
+
.key(key)
|
|
58
|
+
.data('0x');
|
|
59
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
60
|
+
should_1.default.equal(result, testData.SEND_FUNDS_DATA);
|
|
61
|
+
});
|
|
62
|
+
it('native coin transfer with sequenceId zero should succeed', async () => {
|
|
63
|
+
const builder = new src_1.TransferBuilder()
|
|
64
|
+
.coin('topeth')
|
|
65
|
+
.expirationTime(1590078260)
|
|
66
|
+
.amount(amount)
|
|
67
|
+
.to(toAddress)
|
|
68
|
+
.contractSequenceId(0)
|
|
69
|
+
.key(key)
|
|
70
|
+
.data('0x');
|
|
71
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
72
|
+
should_1.default.equal(result, testData.SEND_FUNDS_SEQUENCE_ZERO_DATA);
|
|
73
|
+
});
|
|
74
|
+
it('native coin transfer with amount 0 should succeed', async () => {
|
|
75
|
+
const builder = new src_1.TransferBuilder()
|
|
76
|
+
.coin('topeth')
|
|
77
|
+
.expirationTime(1590078260)
|
|
78
|
+
.amount('0')
|
|
79
|
+
.to(toAddress)
|
|
80
|
+
.contractSequenceId(2)
|
|
81
|
+
.key(key)
|
|
82
|
+
.data('0x');
|
|
83
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
84
|
+
should_1.default.equal(result, testData.SEND_FUNDS_AMOUNT_ZERO_DATA);
|
|
85
|
+
});
|
|
86
|
+
it('ERC20 token transfer should succeed', async () => {
|
|
87
|
+
const builder = new src_1.TransferBuilder()
|
|
88
|
+
.coin('topeth:terc18dp')
|
|
89
|
+
.expirationTime(1590078260)
|
|
90
|
+
.amount(amount)
|
|
91
|
+
.to(toAddress)
|
|
92
|
+
.contractSequenceId(2)
|
|
93
|
+
.key(key);
|
|
94
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
95
|
+
should_1.default.equal(result, testData.SEND_OPETH_TERC_DATA);
|
|
96
|
+
});
|
|
97
|
+
it('erc20 transfer should succeed', async () => {
|
|
98
|
+
const builder = new src_1.TransferBuilder()
|
|
99
|
+
.coin('topeth:terc18dp')
|
|
100
|
+
.expirationTime(1590078260)
|
|
101
|
+
.amount(amount)
|
|
102
|
+
.to(toAddress)
|
|
103
|
+
.contractSequenceId(0)
|
|
104
|
+
.key(key);
|
|
105
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
106
|
+
should_1.default.equal(result, testData.SEND_TOKEN_SEQUENCE_ZERO_DATA);
|
|
107
|
+
});
|
|
108
|
+
it('erc20 transfer with amount 0 should succeed', async () => {
|
|
109
|
+
const builder = new src_1.TransferBuilder()
|
|
110
|
+
.coin('topeth:terc18dp')
|
|
111
|
+
.expirationTime(1590078260)
|
|
112
|
+
.amount('0')
|
|
113
|
+
.to(toAddress)
|
|
114
|
+
.contractSequenceId(2)
|
|
115
|
+
.key(key);
|
|
116
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
117
|
+
should_1.default.equal(result, testData.SEND_TOKEN_AMOUNT_ZERO_DATA);
|
|
118
|
+
});
|
|
119
|
+
it('should build without a signature set', () => {
|
|
120
|
+
const builder = new src_1.TransferBuilder()
|
|
121
|
+
.expirationTime(1590078260)
|
|
122
|
+
.amount(amount)
|
|
123
|
+
.to(toAddress)
|
|
124
|
+
.contractSequenceId(2)
|
|
125
|
+
.data('0x');
|
|
126
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
127
|
+
should_1.default.equal(result, testData.SEND_FUNDS_NO_KEY_DATA);
|
|
128
|
+
});
|
|
129
|
+
it('should build from a non signed serialized data', () => {
|
|
130
|
+
const builder = new src_1.TransferBuilder(testData.SEND_FUNDS_NO_KEY_DATA);
|
|
131
|
+
builder.coin('topeth').key(key);
|
|
132
|
+
const result = builder.signAndBuild(`${coin.chainId}`);
|
|
133
|
+
should_1.default.equal(result, testData.SEND_FUNDS_DATA);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zZmVyQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUM1Qiw0Q0FBMEU7QUFDMUUsbUNBQXFEO0FBRXJELHVEQUF5QztBQUV6QyxRQUFRLENBQUMsOEJBQThCLEVBQUU7SUFDdkMsTUFBTSxTQUFTLEdBQUcsNENBQTRDLENBQUM7SUFDL0QsTUFBTSxJQUFJLEdBQ1IsaUhBQWlILENBQUM7SUFDcEgsTUFBTSxHQUFHLEdBQUcsSUFBSSxhQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFhLENBQUM7SUFDL0QsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsQ0FBQywwQkFBMEI7SUFDL0QsTUFBTSxJQUFJLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQThCLENBQUM7SUFDOUQsUUFBUSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7UUFDNUIsRUFBRSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ25ELE1BQU0sT0FBTyxHQUFHLElBQUkscUJBQWUsRUFBRTtpQkFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQztpQkFDZCxjQUFjLENBQUMsVUFBVSxDQUFDO2lCQUMxQixNQUFNLENBQUMsTUFBTSxDQUFDO2lCQUNkLEVBQUUsQ0FBQyxTQUFTLENBQUM7aUJBQ2Isa0JBQWtCLENBQUMsQ0FBQyxDQUFDO2lCQUNyQixHQUFHLENBQUMsR0FBRyxDQUFDO2lCQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNkLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUN2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LENBQUM7WUFDaEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgY29pbnMsIEV0aGVyZXVtTmV0d29yayBhcyBFdGhMaWtlTmV0d29yayB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEtleVBhaXIsIFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdPcGV0aCBzZW5kIG11bHRpIHNpZyBidWlsZGVyJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCB0b0FkZHJlc3MgPSAnMHg3MzI1QTNGN2Q0ZjlFODZBRTYyQ2Y3NDI0MjYwNzhDMzc1NTczMGQ1JztcbiAgY29uc3QgeHBydiA9XG4gICAgJ3hwcnY5czIxWnJRSDE0M0szRDhUWGZ2QUpnSFZmVEVlUU5XNVlzOXdadG5VWmtxUHpGelNqYkVKcldDMXZaNEduWEN2UjdyUUwyVUZYM1JTdVllVTlNckVSbTFYQnZBQ293N2MzNnZuejVpWXlqMic7XG4gIGNvbnN0IGtleSA9IG5ldyBLZXlQYWlyKHsgcHJ2OiB4cHJ2IH0pLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nO1xuICBjb25zdCBhbW91bnQgPSAnMTAwMDAwMDAwMDAwMDAwMDAwJzsgLy8gZXF1aXZhbGVudCB0byAwLjEgZXRoZXJcbiAgY29uc3QgY29pbiA9IGNvaW5zLmdldCgndG9wZXRoJykgYXMgdW5rbm93biBhcyBFdGhMaWtlTmV0d29yaztcbiAgZGVzY3JpYmUoJ3Nob3VsZCBidWlsZCcsICgpID0+IHtcbiAgICBpdCgnbmF0aXZlIGNvaW4gdHJhbnNmZXIgc2hvdWxkIHN1Y2NlZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFRyYW5zZmVyQnVpbGRlcigpXG4gICAgICAgIC5jb2luKCd0b3BldGgnKVxuICAgICAgICAuZXhwaXJhdGlvblRpbWUoMTU5MDA3ODI2MClcbiAgICAgICAgLmFtb3VudChhbW91bnQpXG4gICAgICAgIC50byh0b0FkZHJlc3MpXG4gICAgICAgIC5jb250cmFjdFNlcXVlbmNlSWQoMilcbiAgICAgICAgLmtleShrZXkpXG4gICAgICAgIC5kYXRhKCcweCcpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRlci5zaWduQW5kQnVpbGQoYCR7Y29pbi5jaGFpbklkfWApO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgdGVzdERhdGEuU0VORF9GVU5EU19EQVRBKTtcbiAgICB9KTtcblxuICAgIGl0KCduYXRpdmUgY29pbiB0cmFuc2ZlciB3aXRoIHNlcXVlbmNlSWQgemVybyBzaG91bGQgc3VjY2VlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgLmNvaW4oJ3RvcGV0aCcpXG4gICAgICAgIC5leHBpcmF0aW9uVGltZSgxNTkwMDc4MjYwKVxuICAgICAgICAuYW1vdW50KGFtb3VudClcbiAgICAgICAgLnRvKHRvQWRkcmVzcylcbiAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgwKVxuICAgICAgICAua2V5KGtleSlcbiAgICAgICAgLmRhdGEoJzB4Jyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZGVyLnNpZ25BbmRCdWlsZChgJHtjb2luLmNoYWluSWR9YCk7XG4gICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCB0ZXN0RGF0YS5TRU5EX0ZVTkRTX1NFUVVFTkNFX1pFUk9fREFUQSk7XG4gICAgfSk7XG5cbiAgICBpdCgnbmF0aXZlIGNvaW4gdHJhbnNmZXIgd2l0aCBhbW91bnQgMCBzaG91bGQgc3VjY2VlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgLmNvaW4oJ3RvcGV0aCcpXG4gICAgICAgIC5leHBpcmF0aW9uVGltZSgxNTkwMDc4MjYwKVxuICAgICAgICAuYW1vdW50KCcwJylcbiAgICAgICAgLnRvKHRvQWRkcmVzcylcbiAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgyKVxuICAgICAgICAua2V5KGtleSlcbiAgICAgICAgLmRhdGEoJzB4Jyk7XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZGVyLnNpZ25BbmRCdWlsZChgJHtjb2luLmNoYWluSWR9YCk7XG4gICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCB0ZXN0RGF0YS5TRU5EX0ZVTkRTX0FNT1VOVF9aRVJPX0RBVEEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ0VSQzIwIHRva2VuIHRyYW5zZmVyIHNob3VsZCBzdWNjZWVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBUcmFuc2ZlckJ1aWxkZXIoKVxuICAgICAgICAuY29pbigndG9wZXRoOnRlcmMxOGRwJylcbiAgICAgICAgLmV4cGlyYXRpb25UaW1lKDE1OTAwNzgyNjApXG4gICAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgICAudG8odG9BZGRyZXNzKVxuICAgICAgICAuY29udHJhY3RTZXF1ZW5jZUlkKDIpXG4gICAgICAgIC5rZXkoa2V5KTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkZXIuc2lnbkFuZEJ1aWxkKGAke2NvaW4uY2hhaW5JZH1gKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsIHRlc3REYXRhLlNFTkRfT1BFVEhfVEVSQ19EQVRBKTtcbiAgICB9KTtcblxuICAgIGl0KCdlcmMyMCB0cmFuc2ZlciBzaG91bGQgc3VjY2VlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgLmNvaW4oJ3RvcGV0aDp0ZXJjMThkcCcpXG4gICAgICAgIC5leHBpcmF0aW9uVGltZSgxNTkwMDc4MjYwKVxuICAgICAgICAuYW1vdW50KGFtb3VudClcbiAgICAgICAgLnRvKHRvQWRkcmVzcylcbiAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgwKVxuICAgICAgICAua2V5KGtleSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZGVyLnNpZ25BbmRCdWlsZChgJHtjb2luLmNoYWluSWR9YCk7XG4gICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCB0ZXN0RGF0YS5TRU5EX1RPS0VOX1NFUVVFTkNFX1pFUk9fREFUQSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZXJjMjAgdHJhbnNmZXIgd2l0aCBhbW91bnQgMCBzaG91bGQgc3VjY2VlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgLmNvaW4oJ3RvcGV0aDp0ZXJjMThkcCcpXG4gICAgICAgIC5leHBpcmF0aW9uVGltZSgxNTkwMDc4MjYwKVxuICAgICAgICAuYW1vdW50KCcwJylcbiAgICAgICAgLnRvKHRvQWRkcmVzcylcbiAgICAgICAgLmNvbnRyYWN0U2VxdWVuY2VJZCgyKVxuICAgICAgICAua2V5KGtleSk7XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZGVyLnNpZ25BbmRCdWlsZChgJHtjb2luLmNoYWluSWR9YCk7XG4gICAgICBzaG91bGQuZXF1YWwocmVzdWx0LCB0ZXN0RGF0YS5TRU5EX1RPS0VOX0FNT1VOVF9aRVJPX0RBVEEpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCB3aXRob3V0IGEgc2lnbmF0dXJlIHNldCcsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKClcbiAgICAgICAgLmV4cGlyYXRpb25UaW1lKDE1OTAwNzgyNjApXG4gICAgICAgIC5hbW91bnQoYW1vdW50KVxuICAgICAgICAudG8odG9BZGRyZXNzKVxuICAgICAgICAuY29udHJhY3RTZXF1ZW5jZUlkKDIpXG4gICAgICAgIC5kYXRhKCcweCcpO1xuICAgICAgY29uc3QgcmVzdWx0ID0gYnVpbGRlci5zaWduQW5kQnVpbGQoYCR7Y29pbi5jaGFpbklkfWApO1xuICAgICAgc2hvdWxkLmVxdWFsKHJlc3VsdCwgdGVzdERhdGEuU0VORF9GVU5EU19OT19LRVlfREFUQSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGZyb20gYSBub24gc2lnbmVkIHNlcmlhbGl6ZWQgZGF0YScsICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKHRlc3REYXRhLlNFTkRfRlVORFNfTk9fS0VZX0RBVEEpO1xuICAgICAgYnVpbGRlci5jb2luKCd0b3BldGgnKS5rZXkoa2V5KTtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGJ1aWxkZXIuc2lnbkFuZEJ1aWxkKGAke2NvaW4uY2hhaW5JZH1gKTtcbiAgICAgIHNob3VsZC5lcXVhbChyZXN1bHQsIHRlc3REYXRhLlNFTkRfRlVORFNfREFUQSk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|