@bitgo-beta/sdk-coin-etc 1.2.3-alpha.42 → 1.2.3-alpha.421
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/etc.d.ts +102 -4
- package/dist/src/etc.d.ts.map +1 -1
- package/dist/src/etc.js +475 -1
- package/dist/src/index.js +6 -2
- package/dist/src/lib/builder.js +2 -3
- package/dist/src/lib/index.js +23 -9
- package/dist/src/lib/transactionBuilder.js +2 -2
- package/dist/src/lib/utils.js +4 -4
- package/dist/test/resources.d.ts +16 -0
- package/dist/test/resources.d.ts.map +1 -0
- package/dist/test/resources.js +29 -0
- package/dist/test/unit/etc.d.ts +2 -0
- package/dist/test/unit/etc.d.ts.map +1 -0
- package/dist/test/unit/etc.js +194 -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/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +93 -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 +117 -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 +131 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +20 -12
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -100
|
@@ -0,0 +1,93 @@
|
|
|
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==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/send.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,117 @@
|
|
|
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==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walletInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/walletInitialization.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,131 @@
|
|
|
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
|
+
describe('Etc wallet initialization', function () {
|
|
44
|
+
let txBuilder;
|
|
45
|
+
const initTxBuilder = () => {
|
|
46
|
+
txBuilder = (0, builder_1.getBuilder)('tetc');
|
|
47
|
+
txBuilder.fee({
|
|
48
|
+
fee: '10000000000',
|
|
49
|
+
gasLimit: '6800000',
|
|
50
|
+
});
|
|
51
|
+
txBuilder.counter(1);
|
|
52
|
+
txBuilder.type(sdk_core_1.TransactionType.WalletInitialization);
|
|
53
|
+
};
|
|
54
|
+
describe('should build', () => {
|
|
55
|
+
it('an init transaction', async () => {
|
|
56
|
+
initTxBuilder();
|
|
57
|
+
txBuilder.owner('0xa43f0BDd451E39C7AF20426f43589DEFAd4335E6');
|
|
58
|
+
txBuilder.owner('0x2fa96fca36dd9d646AC8a4e0C19b4D3a0Dc7e456');
|
|
59
|
+
txBuilder.owner('0xc37825D368eC3F50a1505542d8fFB25f7b6288f2');
|
|
60
|
+
txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
|
|
61
|
+
const tx = await txBuilder.build();
|
|
62
|
+
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
63
|
+
const txJson = tx.toJson();
|
|
64
|
+
txJson.gasLimit.should.equal('6800000');
|
|
65
|
+
txJson.gasPrice.should.equal('10000000000');
|
|
66
|
+
should_1.default.equal(txJson.nonce, 1);
|
|
67
|
+
should_1.default.equal(txJson.chainId, 63);
|
|
68
|
+
should_1.default.equal(tx.toBroadcastFormat(), testData.TX_BROADCAST);
|
|
69
|
+
});
|
|
70
|
+
it('a signed init transaction from serialized', async () => {
|
|
71
|
+
const newTxBuilder = (0, builder_1.getBuilder)('tetc');
|
|
72
|
+
newTxBuilder.from(testData.TX_BROADCAST);
|
|
73
|
+
const newTx = await newTxBuilder.build();
|
|
74
|
+
should_1.default.equal(newTx.toBroadcastFormat(), testData.TX_BROADCAST);
|
|
75
|
+
should_1.default.equal(newTx.id, '0xc04ba4accc640fc9202a519aeec983ea99a100471312496ce7ac440d565c11b2');
|
|
76
|
+
const txJson = newTx.toJson();
|
|
77
|
+
should_1.default.exist(txJson.v);
|
|
78
|
+
should_1.default.exist(txJson.r);
|
|
79
|
+
should_1.default.exist(txJson.s);
|
|
80
|
+
should_1.default.exist(txJson.from);
|
|
81
|
+
});
|
|
82
|
+
it('a wallet initialization transaction with nonce 0', async () => {
|
|
83
|
+
initTxBuilder();
|
|
84
|
+
txBuilder.counter(0);
|
|
85
|
+
txBuilder.owner('0xa43f0BDd451E39C7AF20426f43589DEFAd4335E6');
|
|
86
|
+
txBuilder.owner('0x2fa96fca36dd9d646AC8a4e0C19b4D3a0Dc7e456');
|
|
87
|
+
txBuilder.owner('0xc37825D368eC3F50a1505542d8fFB25f7b6288f2');
|
|
88
|
+
txBuilder.sign({ key: testData.PRIVATE_KEY_1 });
|
|
89
|
+
const tx = await txBuilder.build();
|
|
90
|
+
tx.type.should.equal(sdk_core_1.TransactionType.WalletInitialization);
|
|
91
|
+
const txJson = tx.toJson();
|
|
92
|
+
txJson.gasLimit.should.equal('6800000');
|
|
93
|
+
txJson.gasPrice.should.equal('10000000000');
|
|
94
|
+
should_1.default.equal(txJson.nonce, 0);
|
|
95
|
+
should_1.default.equal(txJson.chainId, 63);
|
|
96
|
+
});
|
|
97
|
+
it('an unsigned init transaction from serialized with 0-prefixed address', async () => {
|
|
98
|
+
initTxBuilder();
|
|
99
|
+
txBuilder.owner('0x6461EC4E9dB87CFE2aeEc7d9b02Aa264edFbf41f');
|
|
100
|
+
txBuilder.owner('0xf10C8f42BD63D0AeD3338A6B2b661BC6D9fa7C44');
|
|
101
|
+
txBuilder.owner('0x07ee8b845b8bf0e807e096d6b1599b121b82cbe1');
|
|
102
|
+
const tx = await txBuilder.build();
|
|
103
|
+
const serialized = tx.toBroadcastFormat();
|
|
104
|
+
const newTxBuilder = (0, builder_1.getBuilder)('tetc');
|
|
105
|
+
newTxBuilder.from(serialized);
|
|
106
|
+
const newTx = await newTxBuilder.build();
|
|
107
|
+
should_1.default.equal(newTx.toBroadcastFormat(), serialized);
|
|
108
|
+
});
|
|
109
|
+
it('an unsigned init transaction from serialized', async () => {
|
|
110
|
+
initTxBuilder();
|
|
111
|
+
txBuilder.owner('0x6461EC4E9dB87CFE2aeEc7d9b02Aa264edFbf41f');
|
|
112
|
+
txBuilder.owner('0xf10C8f42BD63D0AeD3338A6B2b661BC6D9fa7C44');
|
|
113
|
+
txBuilder.owner('0xa4b5666FB4fFEA84Dd848845E1114b84146de4b3');
|
|
114
|
+
const tx = await txBuilder.build();
|
|
115
|
+
const serialized = tx.toBroadcastFormat();
|
|
116
|
+
const newTxBuilder = (0, builder_1.getBuilder)('tetc');
|
|
117
|
+
newTxBuilder.from(serialized);
|
|
118
|
+
const newTx = await newTxBuilder.build();
|
|
119
|
+
should_1.default.equal(newTx.toBroadcastFormat(), serialized);
|
|
120
|
+
});
|
|
121
|
+
it('an unsigned transaction with final v check', async () => {
|
|
122
|
+
initTxBuilder();
|
|
123
|
+
txBuilder.owner('0x6461EC4E9dB87CFE2aeEc7d9b02Aa264edFbf41f');
|
|
124
|
+
txBuilder.owner('0xf10C8f42BD63D0AeD3338A6B2b661BC6D9fa7C44');
|
|
125
|
+
txBuilder.owner('0xa4b5666FB4fFEA84Dd848845E1114b84146de4b3');
|
|
126
|
+
const tx = await txBuilder.build();
|
|
127
|
+
should_1.default.equal(tx.toJson().v, '0xa1');
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdGlhbGl6YXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb25CdWlsZGVyL3dhbGxldEluaXRpYWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG1EQUF1RDtBQUV2RCxzREFBc0Q7QUFDdEQsMERBQTRDO0FBRTVDLFFBQVEsQ0FBQywyQkFBMkIsRUFBRTtJQUNwQyxJQUFJLFNBQTZCLENBQUM7SUFDbEMsTUFBTSxhQUFhLEdBQUcsR0FBUyxFQUFFO1FBQy9CLFNBQVMsR0FBRyxJQUFBLG9CQUFVLEVBQUMsTUFBTSxDQUF1QixDQUFDO1FBQ3JELFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDWixHQUFHLEVBQUUsYUFBYTtZQUNsQixRQUFRLEVBQUUsU0FBUztTQUNwQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxFQUFFO1FBQzVCLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNuQyxhQUFhLEVBQUUsQ0FBQztZQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzlELFNBQVMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM5RCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxHQUFHLE1BQU0s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QyxNQUFNLENBQXVCLENBQUM7WUFDOUQsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QixNQUFNLEtBQUssR0FBRyxNQUFNLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw0Q0FBNEMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUMxRCxhQUFhLEVBQUUsQ0FBQztZQUNoQixTQUFTLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7WUFDOUQsU0FBUyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1lBQzlELFNBQVMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztZQUM5RCxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9idWlsZGVyJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcyc7XG5cbmRlc2NyaWJlKCdFdGMgd2FsbGV0IGluaXRpYWxpemF0aW9uJywgZnVuY3Rpb24gKCkge1xuICBsZXQgdHhCdWlsZGVyOiBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gIGNvbnN0IGluaXRUeEJ1aWxkZXIgPSAoKTogdm9pZCA9PiB7XG4gICAgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGV0YycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgIGZlZTogJzEwMDAwMDAwMDAwJyxcbiAgICAgIGdhc0xpbWl0OiAnNjgwMDAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgfTtcblxuICBkZXNjcmliZSgnc2hvdWxkIGJ1aWxkJywgKCkgPT4ge1xuICAgIGl0KCdhbiBpbml0IHRyYW5zYWN0aW9uJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweGE0M2YwQkRkNDUxRTM5QzdBRjIwNDI2ZjQzNTg5REVGQWQ0MzM1RTYnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHgyZmE5NmZjYTM2ZGQ5ZDY0NkFDOGE0ZTBDMTliNEQzYTBEYzdlNDU2Jyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4YzM3ODI1RDM2OGVDM0Y1MGExNTA1NTQyZDhmRkIyNWY3YjYyODhmMicpO1xuICAgICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLlBSSVZBVEVfS0VZXzEgfSk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuXG4gICAgICB0eC50eXBlLnNob3VsZC5lcXVhbChUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgICB0eEpzb24uZ2FzTGltaXQuc2hvdWxkLmVxdWFsKCc2ODAwMDAwJyk7XG4gICAgICB0eEpzb24uZ2FzUHJpY2Uuc2hvdWxkLmVxdWFsKCcxMDAwMDAwMDAwMCcpO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5ub25jZSwgMSk7XG4gICAgICBzaG91bGQuZXF1YWwodHhKc29uLmNoYWluSWQsIDYzKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB0ZXN0RGF0YS5UWF9CUk9BRENBU1QpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Egc2lnbmVkIGluaXQgdHJhbnNhY3Rpb24gZnJvbSBzZXJpYWxpemVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgbmV3VHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGV0YycpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICAgIG5ld1R4QnVpbGRlci5mcm9tKHRlc3REYXRhLlRYX0JST0FEQ0FTVCk7XG4gICAgICBjb25zdCBuZXdUeCA9IGF3YWl0IG5ld1R4QnVpbGRlci5idWlsZCgpO1xuICAgICAgc2hvdWxkLmVxdWFsKG5ld1R4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHRlc3REYXRhLlRYX0JST0FEQ0FTVCk7XG4gICAgICBzaG91bGQuZXF1YWwobmV3VHguaWQsICcweGMwNGJhNGFjY2M2NDBmYzkyMDJhNTE5YWVlYzk4M2VhOTlhMTAwNDcxMzEyNDk2Y2U3YWM0NDBkNTY1YzExYjInKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IG5ld1R4LnRvSnNvbigpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi52KTtcbiAgICAgIHNob3VsZC5leGlzdCh0eEpzb24ucik7XG4gICAgICBzaG91bGQuZXhpc3QodHhKc29uLnMpO1xuICAgICAgc2hvdWxkLmV4aXN0KHR4SnNvbi5mcm9tKTtcbiAgICB9KTtcblxuICAgIGl0KCdhIHdhbGxldCBpbml0aWFsaXphdGlvbiB0cmFuc2FjdGlvbiB3aXRoIG5vbmNlIDAnLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIuY291bnRlcigwKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHhhNDNmMEJEZDQ1MUUzOUM3QUYyMDQyNmY0MzU4OURFRkFkNDMzNUU2Jyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4MmZhOTZmY2EzNmRkOWQ2NDZBQzhhNGUwQzE5YjREM2EwRGM3ZTQ1NicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweGMzNzgyNUQzNjhlQzNGNTBhMTUwNTU0MmQ4ZkZCMjVmN2I2Mjg4ZjInKTtcbiAgICAgIHR4QnVpbGRlci5zaWduKHsga2V5OiB0ZXN0RGF0YS5QUklWQVRFX0tFWV8xIH0pO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgICAgdHgudHlwZS5zaG91bGQuZXF1YWwoVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uKTtcbiAgICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgICAgdHhKc29uLmdhc0xpbWl0LnNob3VsZC5lcXVhbCgnNjgwMDAwMCcpO1xuICAgICAgdHhKc29uLmdhc1ByaWNlLnNob3VsZC5lcXVhbCgnMTAwMDAwMDAwMDAnKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eEpzb24ubm9uY2UsIDApO1xuICAgICAgc2hvdWxkLmVxdWFsKHR4SnNvbi5jaGFpbklkLCA2Myk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5zaWduZWQgaW5pdCB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQgd2l0aCAwLXByZWZpeGVkIGFkZHJlc3MnLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4NjQ2MUVDNEU5ZEI4N0NGRTJhZUVjN2Q5YjAyQWEyNjRlZEZiZjQxZicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweGYxMEM4ZjQyQkQ2M0QwQWVEMzMzOEE2QjJiNjYxQkM2RDlmYTdDNDQnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHgwN2VlOGI4NDViOGJmMGU4MDdlMDk2ZDZiMTU5OWIxMjFiODJjYmUxJyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIGNvbnN0IG5ld1R4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RldGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbShzZXJpYWxpemVkKTtcbiAgICAgIGNvbnN0IG5ld1R4ID0gYXdhaXQgbmV3VHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZXF1YWwobmV3VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgc2VyaWFsaXplZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5zaWduZWQgaW5pdCB0cmFuc2FjdGlvbiBmcm9tIHNlcmlhbGl6ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBpbml0VHhCdWlsZGVyKCk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4NjQ2MUVDNEU5ZEI4N0NGRTJhZUVjN2Q5YjAyQWEyNjRlZEZiZjQxZicpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweGYxMEM4ZjQyQkQ2M0QwQWVEMzMzOEE2QjJiNjYxQkM2RDlmYTdDNDQnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHhhNGI1NjY2RkI0ZkZFQTg0RGQ4NDg4NDVFMTExNGI4NDE0NmRlNGIzJyk7XG4gICAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgICAgY29uc3Qgc2VyaWFsaXplZCA9IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG5cbiAgICAgIGNvbnN0IG5ld1R4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RldGMnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgICBuZXdUeEJ1aWxkZXIuZnJvbShzZXJpYWxpemVkKTtcbiAgICAgIGNvbnN0IG5ld1R4ID0gYXdhaXQgbmV3VHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICBzaG91bGQuZXF1YWwobmV3VHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgc2VyaWFsaXplZCk7XG4gICAgfSk7XG5cbiAgICBpdCgnYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gd2l0aCBmaW5hbCB2IGNoZWNrJywgYXN5bmMgKCkgPT4ge1xuICAgICAgaW5pdFR4QnVpbGRlcigpO1xuICAgICAgdHhCdWlsZGVyLm93bmVyKCcweDY0NjFFQzRFOWRCODdDRkUyYWVFYzdkOWIwMkFhMjY0ZWRGYmY0MWYnKTtcbiAgICAgIHR4QnVpbGRlci5vd25lcignMHhmMTBDOGY0MkJENjNEMEFlRDMzMzhBNkIyYjY2MUJDNkQ5ZmE3QzQ0Jyk7XG4gICAgICB0eEJ1aWxkZXIub3duZXIoJzB4YTRiNTY2NkZCNGZGRUE4NERkODQ4ODQ1RTExMTRiODQxNDZkZTRiMycpO1xuICAgICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIHNob3VsZC5lcXVhbCh0eC50b0pzb24oKS52LCAnMHhhMScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|