@bitgo/sdk-coin-eth 25.3.2 → 25.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/test/fixtures/eth.d.ts +39 -0
  2. package/dist/test/fixtures/eth.d.ts.map +1 -0
  3. package/dist/test/fixtures/eth.js +262 -0
  4. package/dist/test/resources/erc1155Abi.d.ts +40 -0
  5. package/dist/test/resources/erc1155Abi.d.ts.map +1 -0
  6. package/dist/test/resources/erc1155Abi.js +329 -0
  7. package/dist/test/resources/erc721Abi.d.ts +12 -0
  8. package/dist/test/resources/erc721Abi.d.ts.map +1 -0
  9. package/dist/test/resources/erc721Abi.js +34 -0
  10. package/dist/test/resources/eth.d.ts +51 -0
  11. package/dist/test/resources/eth.d.ts.map +1 -0
  12. package/dist/test/resources/eth.js +72 -0
  13. package/dist/test/resources/nftEncodings.d.ts +4 -0
  14. package/dist/test/resources/nftEncodings.d.ts.map +1 -0
  15. package/dist/test/resources/nftEncodings.js +7 -0
  16. package/dist/test/resources/walletSimpleAbi.d.ts +12 -0
  17. package/dist/test/resources/walletSimpleAbi.d.ts.map +1 -0
  18. package/dist/test/resources/walletSimpleAbi.js +44 -0
  19. package/dist/test/unit/eth.d.ts +2 -0
  20. package/dist/test/unit/eth.d.ts.map +1 -0
  21. package/dist/test/unit/eth.js +1171 -0
  22. package/dist/test/unit/ethWallet.d.ts +2 -0
  23. package/dist/test/unit/ethWallet.d.ts.map +1 -0
  24. package/dist/test/unit/ethWallet.js +472 -0
  25. package/dist/test/unit/fixtures/ethMultiSigBackupKey.d.ts +4 -0
  26. package/dist/test/unit/fixtures/ethMultiSigBackupKey.d.ts.map +1 -0
  27. package/dist/test/unit/fixtures/ethMultiSigBackupKey.js +10 -0
  28. package/dist/test/unit/fixtures/ethTssBackupKey.d.ts +5 -0
  29. package/dist/test/unit/fixtures/ethTssBackupKey.d.ts.map +1 -0
  30. package/dist/test/unit/fixtures/ethTssBackupKey.js +25 -0
  31. package/dist/test/unit/getBuilder.d.ts +3 -0
  32. package/dist/test/unit/getBuilder.d.ts.map +1 -0
  33. package/dist/test/unit/getBuilder.js +10 -0
  34. package/dist/test/unit/keyPair.d.ts +2 -0
  35. package/dist/test/unit/keyPair.d.ts.map +1 -0
  36. package/dist/test/unit/keyPair.js +175 -0
  37. package/dist/test/unit/transaction.d.ts +2 -0
  38. package/dist/test/unit/transaction.d.ts.map +1 -0
  39. package/dist/test/unit/transaction.js +96 -0
  40. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts +2 -0
  41. package/dist/test/unit/transactionBuilder/addressInitialization.d.ts.map +1 -0
  42. package/dist/test/unit/transactionBuilder/addressInitialization.js +101 -0
  43. package/dist/test/unit/transactionBuilder/contractCall.d.ts +2 -0
  44. package/dist/test/unit/transactionBuilder/contractCall.d.ts.map +1 -0
  45. package/dist/test/unit/transactionBuilder/contractCall.js +101 -0
  46. package/dist/test/unit/transactionBuilder/flushCoins.d.ts +2 -0
  47. package/dist/test/unit/transactionBuilder/flushCoins.d.ts.map +1 -0
  48. package/dist/test/unit/transactionBuilder/flushCoins.js +133 -0
  49. package/dist/test/unit/transactionBuilder/flushTokens.d.ts +2 -0
  50. package/dist/test/unit/transactionBuilder/flushTokens.d.ts.map +1 -0
  51. package/dist/test/unit/transactionBuilder/flushTokens.js +281 -0
  52. package/dist/test/unit/transactionBuilder/send.d.ts +2 -0
  53. package/dist/test/unit/transactionBuilder/send.d.ts.map +1 -0
  54. package/dist/test/unit/transactionBuilder/send.js +331 -0
  55. package/dist/test/unit/transactionBuilder/sendNFT.d.ts +2 -0
  56. package/dist/test/unit/transactionBuilder/sendNFT.d.ts.map +1 -0
  57. package/dist/test/unit/transactionBuilder/sendNFT.js +250 -0
  58. package/dist/test/unit/transactionBuilder/singleSigSend.d.ts +2 -0
  59. package/dist/test/unit/transactionBuilder/singleSigSend.d.ts.map +1 -0
  60. package/dist/test/unit/transactionBuilder/singleSigSend.js +196 -0
  61. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts +2 -0
  62. package/dist/test/unit/transactionBuilder/walletInitialization.d.ts.map +1 -0
  63. package/dist/test/unit/transactionBuilder/walletInitialization.js +423 -0
  64. package/dist/test/unit/transferBuilder.d.ts +2 -0
  65. package/dist/test/unit/transferBuilder.d.ts.map +1 -0
  66. package/dist/test/unit/transferBuilder.js +124 -0
  67. package/dist/test/unit/utils.d.ts +2 -0
  68. package/dist/test/unit/utils.d.ts.map +1 -0
  69. package/dist/test/unit/utils.js +74 -0
  70. package/dist/tsconfig.tsbuildinfo +1 -0
  71. package/package.json +10 -7
  72. package/.eslintignore +0 -5
  73. package/.mocharc.yml +0 -8
  74. package/CHANGELOG.md +0 -1858
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ethTssBackupKey = void 0;
4
+ exports.ethTssBackupKey = {
5
+ key: '{"iv":"Ey2zqYIcM9hxKt3C/kByKQ==","v":1,"iter":10000,"ks":256,"ts":64,"mode"' +
6
+ ':"ccm","adata":"","cipher":"aes","salt":"0oz4+AWEElQ=","ct":"nscqpkbEdSrEWJ' +
7
+ 'MhOJvzWRgJknMSdH2kAwfP8CxLtl2rELJZXMHDrgUf9PV4jovOh7FQaqqEoek5+VHzPLTby1s0V' +
8
+ 'XyncaKWN1Ti9E+1IfSdclhyPGx54SLRKRReYt+0OInnbS1QLzQco804iinndAWTVxA898xDgm98' +
9
+ 'QDXvDhlq+vKZkRHvCwHgJc9GRNvQYdBMO6Hg0nrmnwFcvNdVqoG2OTvzmkMTlCZx+NC3JdeUPdb' +
10
+ 'qjMKbQRZY9mN0xazC6xoEZJpXoDBMjGtNoLb0PlWDry7K5GvMjkxk2OYIpxscL0XIMibkMQTYR6' +
11
+ 'am+qExdnkJHInmxxMG6iRWwJzHdjpKiD6o5a21kTnMBXC3gthj31XngVeDDANUrXW1P0qieXkTw' +
12
+ '4KKco+wamby6GLz6Ym2Tj/NC8U974Qahgm8rUp5nUHzrcNSJKQYYsA0ch58jQRgypDqyTjewoSP' +
13
+ 'ed5KyqawIBQSVBaCxvGTnlVmjKqxE0ixz58sAEjIVSVH6o0RQlvJrDm+8CZEswq9KBEW5QWb/ys' +
14
+ '/cskLT69UozkeVG31VAlR41dkqXKmQvXUIQznT9yACLLKqwgk8nijpPugZSic3qjCWac8GrL+1P' +
15
+ 'aM4EC/TQydecDWlHeSysf2sDumscFYneaQDj5lhTJLWl7xPbqlJXPjbtAzVf9/tnyvn1I3iBUYV' +
16
+ 'k3p6RSSRcG1KM9unlQ8dhdru7evKESCrYji75dvPnaKFrSUkP/8BDreZop7yq7RXVnmHybyFVQM' +
17
+ 'sKHD+veGgTUcO+q2ZHjGemmAZCee+IbEJoOj8nt85gBkqT079mjMsrb916UQW2RN/0S3B/6MX+p' +
18
+ '0T8Ksu2liHupXiHUN/1ZlYJpAkB890vJxWRdq27IZN/UUSKFxotYTkCSGWlPsWQQB2aLc/XSXx+' +
19
+ 'xxeFQIChR3UR6QWDZqK66DK1B64Tze84/q7WNehNGbdr85E9e90DNFbIrrrAGGWVcy8y2Qhx9Op' +
20
+ 'm+5GwjhcyFYSuEu5U8SI/JKpGjfc4em8tGLNwZRJ2P4Oeg9snyq7fLyc0nIPYdcddqIL9j/Z+Ey' +
21
+ 'p3rpVSdohR/Iob1hMGgnd0MbjD2JIvtSYmE="}',
22
+ commonKeychain: '0379fc629ddd0430beb608283bfd9de33e9a9895752bcaa1009b256ef83248a90f2a3ea7c05' +
23
+ '457c081b579e8ed39efed510615c19c14395839d1415f6cecb8c28f',
24
+ };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXRoVHNzQmFja3VwS2V5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2ZpeHR1cmVzL2V0aFRzc0JhY2t1cEtleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGVBQWUsR0FBRztJQUM3QixHQUFHLEVBQ0QsNkVBQTZFO1FBQzdFLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsNkVBQTZFO1FBQzdFLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsNkVBQTZFO1FBQzdFLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsNkVBQTZFO1FBQzdFLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsNkVBQTZFO1FBQzdFLDZFQUE2RTtRQUM3RSw2RUFBNkU7UUFDN0UsNkVBQTZFO1FBQzdFLHdDQUF3QztJQUMxQyxjQUFjLEVBQ1osNkVBQTZFO1FBQzdFLHlEQUF5RDtDQUM1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGV0aFRzc0JhY2t1cEtleSA9IHtcbiAga2V5OlxuICAgICd7XCJpdlwiOlwiRXkyenFZSWNNOWh4S3QzQy9rQnlLUT09XCIsXCJ2XCI6MSxcIml0ZXJcIjoxMDAwMCxcImtzXCI6MjU2LFwidHNcIjo2NCxcIm1vZGVcIicgK1xuICAgICc6XCJjY21cIixcImFkYXRhXCI6XCJcIixcImNpcGhlclwiOlwiYWVzXCIsXCJzYWx0XCI6XCIwb3o0K0FXRUVsUT1cIixcImN0XCI6XCJuc2NxcGtiRWRTckVXSicgK1xuICAgICdNaE9KdnpXUmdKa25NU2RIMmtBd2ZQOEN4THRsMnJFTEpaWE1IRHJnVWY5UFY0am92T2g3RlFhcXFFb2VrNStWSHpQTFRieTFzMFYnICtcbiAgICAnWHluY2FLV04xVGk5RSsxSWZTZGNsaHlQR3g1NFNMUktSUmVZdCswT0lubmJTMVFMelFjbzgwNGlpbm5kQVdUVnhBODk4eERnbTk4JyArXG4gICAgJ1FEWHZEaGxxK3ZLWmtSSHZDd0hnSmM5R1JOdlFZZEJNTzZIZzBucm1ud0Zjdk5kVnFvRzJPVHZ6bWtNVGxDWngrTkMzSmRlVVBkYicgK1xuICAgICdxak1LYlFSWlk5bU4weGF6QzZ4b0VaSnBYb0RCTWpHdE5vTGIwUGxXRHJ5N0s1R3ZNamt4azJPWUlweHNjTDBYSU1pYmtNUVRZUjYnICtcbiAgICAnYW0rcUV4ZG5rSkhJbm14eE1HNmlSV3dKekhkanBLaUQ2bzVhMjFrVG5NQlhDM2d0aGozMVhuZ1ZlRERBTlVyWFcxUDBxaWVYa1R3JyArXG4gICAgJzRLS2NvK3dhbWJ5NkdMejZZbTJUai9OQzhVOTc0UWFoZ204clVwNW5VSHpyY05TSktRWVlzQTBjaDU4alFSZ3lwRHF5VGpld29TUCcgK1xuICAgICdlZDVLeXFhd0lCUVNWQmFDeHZHVG5sVm1qS3F4RTBpeHo1OHNBRWpJVlNWSDZvMFJRbHZKckRtKzhDWkVzd3E5S0JFVzVRV2IveXMnICtcbiAgICAnL2Nza0xUNjlVb3prZVZHMzFWQWxSNDFka3FYS21RdlhVSVF6blQ5eUFDTExLcXdnazhuaWpwUHVnWlNpYzNxakNXYWM4R3JMKzFQJyArXG4gICAgJ2FNNEVDL1RReWRlY0RXbEhlU3lzZjJzRHVtc2NGWW5lYVFEajVsaFRKTFdsN3hQYnFsSlhQamJ0QXpWZjkvdG55dm4xSTNpQlVZVicgK1xuICAgICdrM3A2UlNTUmNHMUtNOXVubFE4ZGhkcnU3ZXZLRVNDcllqaTc1ZHZQbmFLRnJTVWtQLzhCRHJlWm9wN3lxN1JYVm5tSHlieUZWUU0nICtcbiAgICAnc0tIRCt2ZUdnVFVjTytxMlpIakdlbW1BWkNlZStJYkVKb09qOG50ODVnQmtxVDA3OW1qTXNyYjkxNlVRVzJSTi8wUzNCLzZNWCtwJyArXG4gICAgJzBUOEtzdTJsaUh1cFhpSFVOLzFabFlKcEFrQjg5MHZKeFdSZHEyN0laTi9VVVNLRnhvdFlUa0NTR1dsUHNXUVFCMmFMYy9YU1h4KycgK1xuICAgICd4eGVGUUlDaFIzVVI2UVdEWnFLNjZESzFCNjRUemU4NC9xN1dOZWhOR2Jkcjg1RTllOTBETkZiSXJyckFHR1dWY3k4eTJRaHg5T3AnICtcbiAgICAnbSs1R3dqaGN5RllTdUV1NVU4U0kvSktwR2pmYzRlbTh0R0xOd1pSSjJQNE9lZzlzbnlxN2ZMeWMwbklQWWRjZGRxSUw5ai9aK0V5JyArXG4gICAgJ3AzcnBWU2RvaFIvSW9iMWhNR2duZDBNYmpEMkpJdnRTWW1FPVwifScsXG4gIGNvbW1vbktleWNoYWluOlxuICAgICcwMzc5ZmM2MjlkZGQwNDMwYmViNjA4MjgzYmZkOWRlMzNlOWE5ODk1NzUyYmNhYTEwMDliMjU2ZWY4MzI0OGE5MGYyYTNlYTdjMDUnICtcbiAgICAnNDU3YzA4MWI1NzllOGVkMzllZmVkNTEwNjE1YzE5YzE0Mzk1ODM5ZDE0MTVmNmNlY2I4YzI4ZicsXG59O1xuIl19
@@ -0,0 +1,3 @@
1
+ import { TransactionBuilder } from '../../src';
2
+ export declare const getBuilder: (coin: string) => TransactionBuilder;
3
+ //# sourceMappingURL=getBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/getBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,kBAEzC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBuilder = void 0;
4
+ const src_1 = require("../../src");
5
+ const statics_1 = require("@bitgo/statics");
6
+ const getBuilder = (coin) => {
7
+ return new src_1.TransactionBuilder(statics_1.coins.get(coin));
8
+ };
9
+ exports.getBuilder = getBuilder;
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9nZXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUErQztBQUMvQyw0Q0FBdUM7QUFFaEMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQXNCLEVBQUU7SUFDN0QsT0FBTyxJQUFJLHdCQUFrQixDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDLENBQUM7QUFGVyxRQUFBLFVBQVUsY0FFckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRCdWlsZGVyID0gKGNvaW46IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciA9PiB7XG4gIHJldHVybiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKGNvaW5zLmdldChjb2luKSk7XG59O1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../test/unit/keyPair.ts"],"names":[],"mappings":""}
@@ -0,0 +1,175 @@
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 src_1 = require("../../src");
42
+ const nacl = __importStar(require("tweetnacl"));
43
+ describe('Eth KeyPair', function () {
44
+ // these are all encodings of the same key so the test suite will show that they we can interchange between them
45
+ const xprv = 'xprv9s21ZrQH143K3D8TXfvAJgHVfTEeQNW5Ys9wZtnUZkqPzFzSjbEJrWC1vZ4GnXCvR7rQL2UFX3RSuYeU9MrERm1XBvACow7c36vnz5iYyj2';
46
+ const xpub = 'xpub661MyMwAqRbcFhCvdhTAfpEEDV58oqDvv65YNHC686NNs4KbH8YZQJWVmrfbve7aAVHzxw8bKFxA7MLeDK6BbLfkE3bqkvHLPgaGHHtYGeY';
47
+ const prv = '82A34E3867EA7EA4E67E27865D500AE84E98D07AB1BAB06526F0A5A5FDCC3EBA';
48
+ const pub = '03D63D9FD9FD772A989C5B90EDB37716406356E98273E5F98FE07652247A3A8275';
49
+ const uncompressedPub = '04D63D9FD9FD772A989C5B90EDB37716406356E98273E5F98FE07652247A3A827503E948A2FDBF74A981D4E0054F10EDA7042C2D469F44473D3C7791E0E326E355';
50
+ const address = '0xeb317b9f2e0891d66c061ddc3f5ee7ed42d70a44';
51
+ const invalidPrivateKeyErrorMessage = 'Unsupported private key';
52
+ describe('should create a KeyPair', function () {
53
+ it('from an xpub', () => {
54
+ const keyPair = new src_1.KeyPair({ pub: xpub });
55
+ const defaultKeys = keyPair.getKeys();
56
+ should_1.default.not.exist(defaultKeys.prv);
57
+ defaultKeys.pub.should.equal('03D63D9FD9FD772A989C5B90EDB37716406356E98273E5F98FE07652247A3A8275');
58
+ const extendedKeys = keyPair.getExtendedKeys();
59
+ should_1.default.not.exist(extendedKeys.xprv);
60
+ extendedKeys.xpub.should.equal(xpub);
61
+ });
62
+ it('from an xprv', () => {
63
+ const keyPair = new src_1.KeyPair({ prv: xprv });
64
+ const defaultKeys = keyPair.getKeys();
65
+ defaultKeys.prv.should.equal(prv);
66
+ defaultKeys.pub.should.equal(pub);
67
+ const extendedKeys = keyPair.getExtendedKeys();
68
+ extendedKeys.xprv.should.equal(xprv);
69
+ extendedKeys.xpub.should.equal(xpub);
70
+ });
71
+ it('from an uncompressed public key', () => {
72
+ const keyPair = new src_1.KeyPair({ pub: uncompressedPub });
73
+ const defaultKeys = keyPair.getKeys();
74
+ should_1.default.not.exist(defaultKeys.prv);
75
+ defaultKeys.pub.should.equal(uncompressedPub);
76
+ assert_1.default.throws(() => keyPair.getExtendedKeys());
77
+ });
78
+ it('from a compressed public key', () => {
79
+ const keyPair = new src_1.KeyPair({ pub });
80
+ const defaultKeys = keyPair.getKeys();
81
+ should_1.default.not.exist(defaultKeys.prv);
82
+ defaultKeys.pub.should.equal(uncompressedPub);
83
+ assert_1.default.throws(() => keyPair.getExtendedKeys());
84
+ });
85
+ it('from a raw private key', () => {
86
+ const keyPair = new src_1.KeyPair({ prv });
87
+ const defaultKeys = keyPair.getKeys();
88
+ defaultKeys.prv.should.equal(prv);
89
+ defaultKeys.pub.should.equal(uncompressedPub);
90
+ assert_1.default.throws(() => keyPair.getExtendedKeys());
91
+ });
92
+ it('from an empty value', () => {
93
+ const keyPair = new src_1.KeyPair();
94
+ should_1.default.exists(keyPair.getKeys().prv);
95
+ should_1.default.exists(keyPair.getKeys().pub);
96
+ should_1.default.equal(keyPair.getKeys().prv.length, 64);
97
+ should_1.default.equal(keyPair.getKeys().pub.length, 66);
98
+ });
99
+ it('from seed', () => {
100
+ const seed = nacl.randomBytes(64);
101
+ const keyPair = new src_1.KeyPair({ seed: Buffer.from(seed) });
102
+ keyPair.getKeys().should.have.property('pub');
103
+ keyPair.getKeys().should.have.property('prv');
104
+ });
105
+ });
106
+ describe('should fail to create a KeyPair', function () {
107
+ it('from an invalid public key', () => {
108
+ const source = {
109
+ pub: '01D63D',
110
+ };
111
+ assert_1.default.throws(() => new src_1.KeyPair(source));
112
+ });
113
+ it('from an invalid private key', () => {
114
+ const source = {
115
+ prv: '82A34E',
116
+ };
117
+ assert_1.default.throws(() => new src_1.KeyPair(source));
118
+ assert_1.default.throws(() => new src_1.KeyPair({ prv: prv + pub }), (e) => e.message === invalidPrivateKeyErrorMessage);
119
+ });
120
+ });
121
+ describe('getAddress', function () {
122
+ it('should get an address from xprv', () => {
123
+ const keyPair = new src_1.KeyPair({ prv: xprv });
124
+ const calculatedAddress = keyPair.getAddress();
125
+ calculatedAddress.should.equal(address);
126
+ });
127
+ it('should get an address from xpub', () => {
128
+ const keyPair = new src_1.KeyPair({ pub: xpub });
129
+ const calculatedAddress = keyPair.getAddress();
130
+ calculatedAddress.should.equal(address);
131
+ });
132
+ it('should get an address from prv', () => {
133
+ const keyPair = new src_1.KeyPair({ prv });
134
+ const calculatedAddress = keyPair.getAddress();
135
+ calculatedAddress.should.equal(address);
136
+ });
137
+ it('should get an address from pub', () => {
138
+ const keyPair = new src_1.KeyPair({ pub });
139
+ const calculatedAddress = keyPair.getAddress();
140
+ calculatedAddress.should.equal(address);
141
+ });
142
+ it('should get an address from uncompressed pub', () => {
143
+ const keyPair = new src_1.KeyPair({ pub: uncompressedPub });
144
+ const calculatedAddress = keyPair.getAddress();
145
+ calculatedAddress.should.equal(address);
146
+ });
147
+ });
148
+ describe('getExtendedKeys', function () {
149
+ it('should get the keys in extended format from xprv', () => {
150
+ const keyPair = new src_1.KeyPair({ prv: xprv });
151
+ const { xprv: calculatedXprv, xpub: calculatedXpub } = keyPair.getExtendedKeys();
152
+ calculatedXprv.should.equal(xprv);
153
+ calculatedXpub.should.equal(xpub);
154
+ });
155
+ it('should get the keys in extended format from xpub', () => {
156
+ const keyPair = new src_1.KeyPair({ pub: xpub });
157
+ const { xprv: calculatedXprv, xpub: calculatedXpub } = keyPair.getExtendedKeys();
158
+ should_1.default.not.exist(calculatedXprv);
159
+ calculatedXpub.should.equal(xpub);
160
+ });
161
+ it('should not be able to get keys from prv', () => {
162
+ const keyPair = new src_1.KeyPair({ prv });
163
+ assert_1.default.throws(() => keyPair.getExtendedKeys());
164
+ });
165
+ it('should get the keys in extended format from pub', () => {
166
+ const keyPair = new src_1.KeyPair({ pub });
167
+ assert_1.default.throws(() => keyPair.getExtendedKeys());
168
+ });
169
+ it('should get the keys in extended format from uncompressed pub', () => {
170
+ const keyPair = new src_1.KeyPair({ pub: uncompressedPub });
171
+ assert_1.default.throws(() => keyPair.getExtendedKeys());
172
+ });
173
+ });
174
+ });
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9rZXlQYWlyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1QixtQ0FBb0M7QUFDcEMsZ0RBQWtDO0FBRWxDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsZ0hBQWdIO0lBQ2hILE1BQU0sSUFBSSxHQUNSLGlIQUFpSCxDQUFDO0lBQ3BILE1BQU0sSUFBSSxHQUNSLGlIQUFpSCxDQUFDO0lBQ3BILE1BQU0sR0FBRyxHQUFHLGtFQUFrRSxDQUFDO0lBQy9FLE1BQU0sR0FBRyxHQUFHLG9FQUFvRSxDQUFDO0lBQ2pGLE1BQU0sZUFBZSxHQUNuQixvSUFBb0ksQ0FBQztJQUN2SSxNQUFNLE9BQU8sR0FBRyw0Q0FBNEMsQ0FBQztJQUM3RCxNQUFNLDZCQUE2QixHQUFHLHlCQUF5QixDQUFDO0lBRWhFLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRTtRQUNsQyxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtZQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLGFBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1lBRW5HLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvQyxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BDLFlB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QUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5cbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuXG5kZXNjcmliZSgnRXRoIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gIC8vIHRoZXNlIGFyZSBhbGwgZW5jb2RpbmdzIG9mIHRoZSBzYW1lIGtleSBzbyB0aGUgdGVzdCBzdWl0ZSB3aWxsIHNob3cgdGhhdCB0aGV5IHdlIGNhbiBpbnRlcmNoYW5nZSBiZXR3ZWVuIHRoZW1cbiAgY29uc3QgeHBydiA9XG4gICAgJ3hwcnY5czIxWnJRSDE0M0szRDhUWGZ2QUpnSFZmVEVlUU5XNVlzOXdadG5VWmtxUHpGelNqYkVKcldDMXZaNEduWEN2UjdyUUwyVUZYM1JTdVllVTlNckVSbTFYQnZBQ293N2MzNnZuejVpWXlqMic7XG4gIGNvbnN0IHhwdWIgPVxuICAgICd4cHViNjYxTXlNd0FxUmJjRmhDdmRoVEFmcEVFRFY1OG9xRHZ2NjVZTkhDNjg2Tk5zNEtiSDhZWlFKV1ZtcmZidmU3YUFWSHp4dzhiS0Z4QTdNTGVESzZCYkxma0UzYnFrdkhMUGdhR0hIdFlHZVknO1xuICBjb25zdCBwcnYgPSAnODJBMzRFMzg2N0VBN0VBNEU2N0UyNzg2NUQ1MDBBRTg0RTk4RDA3QUIxQkFCMDY1MjZGMEE1QTVGRENDM0VCQSc7XG4gIGNvbnN0IHB1YiA9ICcwM0Q2M0Q5RkQ5RkQ3NzJBOTg5QzVCOTBFREIzNzcxNjQwNjM1NkU5ODI3M0U1Rjk4RkUwNzY1MjI0N0EzQTgyNzUnO1xuICBjb25zdCB1bmNvbXByZXNzZWRQdWIgPVxuICAgICcwNEQ2M0Q5RkQ5RkQ3NzJBOTg5QzVCOTBFREIzNzcxNjQwNjM1NkU5ODI3M0U1Rjk4RkUwNzY1MjI0N0EzQTgyNzUwM0U5NDhBMkZEQkY3NEE5ODFENEUwMDU0RjEwRURBNzA0MkMyRDQ2OUY0NDQ3M0QzQzc3OTFFMEUzMjZFMzU1JztcbiAgY29uc3QgYWRkcmVzcyA9ICcweGViMzE3YjlmMmUwODkxZDY2YzA2MWRkYzNmNWVlN2VkNDJkNzBhNDQnO1xuICBjb25zdCBpbnZhbGlkUHJpdmF0ZUtleUVycm9yTWVzc2FnZSA9ICdVbnN1cHBvcnRlZCBwcml2YXRlIGtleSc7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBjcmVhdGUgYSBLZXlQYWlyJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdmcm9tIGFuIHhwdWInLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHhwdWIgfSk7XG4gICAgICBjb25zdCBkZWZhdWx0S2V5cyA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgICAgc2hvdWxkLm5vdC5leGlzdChkZWZhdWx0S2V5cy5wcnYpO1xuICAgICAgZGVmYXVsdEtleXMucHViLnNob3VsZC5lcXVhbCgnMDNENjNEOUZEOUZENzcyQTk4OUM1QjkwRURCMzc3MTY0MDYzNTZFOTgyNzNFNUY5OEZFMDc2NTIyNDdBM0E4Mjc1Jyk7XG5cbiAgICAgIGNvbnN0IGV4dGVuZGVkS2V5cyA9IGtleVBhaXIuZ2V0RXh0ZW5kZWRLZXlzKCk7XG4gICAgICBzaG91bGQubm90LmV4aXN0KGV4dGVuZGVkS2V5cy54cHJ2KTtcbiAgICAgIGV4dGVuZGVkS2V5cy54cHViLnNob3VsZC5lcXVhbCh4cHViKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGFuIHhwcnYnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwcnY6IHhwcnYgfSk7XG4gICAgICBjb25zdCBkZWZhdWx0S2V5cyA9IGtleVBhaXIuZ2V0S2V5cygpO1xuICAgICAgZGVmYXVsdEtleXMucHJ2IS5zaG91bGQuZXF1YWwocHJ2KTtcbiAgICAgIGRlZmF1bHRLZXlzLnB1Yi5zaG91bGQuZXF1YWwocHViKTtcblxuICAgICAgY29uc3QgZXh0ZW5kZWRLZXlzID0ga2V5UGFpci5nZXRFeHRlbmRlZEtleXMoKTtcbiAgICAgIGV4dGVuZGVkS2V5cy54cHJ2IS5zaG91bGQuZXF1YWwoeHBydik7XG4gICAgICBleHRlbmRlZEtleXMueHB1Yi5zaG91bGQuZXF1YWwoeHB1Yik7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiB1bmNvbXByZXNzZWQgcHVibGljIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogdW5jb21wcmVzc2VkUHViIH0pO1xuICAgICAgY29uc3QgZGVmYXVsdEtleXMgPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoZGVmYXVsdEtleXMucHJ2KTtcbiAgICAgIGRlZmF1bHRLZXlzLnB1Yi5zaG91bGQuZXF1YWwodW5jb21wcmVzc2VkUHViKTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpKTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIGEgY29tcHJlc3NlZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHViIH0pO1xuICAgICAgY29uc3QgZGVmYXVsdEtleXMgPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoZGVmYXVsdEtleXMucHJ2KTtcbiAgICAgIGRlZmF1bHRLZXlzLnB1Yi5zaG91bGQuZXF1YWwodW5jb21wcmVzc2VkUHViKTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4ga2V5UGFpci5nZXRFeHRlbmRlZEtleXMoKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhIHJhdyBwcml2YXRlIGtleScsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydiB9KTtcbiAgICAgIGNvbnN0IGRlZmF1bHRLZXlzID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgICBkZWZhdWx0S2V5cy5wcnYhLnNob3VsZC5lcXVhbChwcnYpO1xuICAgICAgZGVmYXVsdEtleXMucHViLnNob3VsZC5lcXVhbCh1bmNvbXByZXNzZWRQdWIpO1xuXG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGtleVBhaXIuZ2V0RXh0ZW5kZWRLZXlzKCkpO1xuICAgIH0pO1xuXG4gICAgaXQoJ2Zyb20gYW4gZW1wdHkgdmFsdWUnLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoKTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHJ2KTtcbiAgICAgIHNob3VsZC5leGlzdHMoa2V5UGFpci5nZXRLZXlzKCkucHViKTtcbiAgICAgIHNob3VsZC5lcXVhbChrZXlQYWlyLmdldEtleXMoKS5wcnYhLmxlbmd0aCwgNjQpO1xuICAgICAgc2hvdWxkLmVxdWFsKGtleVBhaXIuZ2V0S2V5cygpLnB1Yi5sZW5ndGgsIDY2KTtcbiAgICB9KTtcblxuICAgIGl0KCdmcm9tIHNlZWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCBzZWVkID0gbmFjbC5yYW5kb21CeXRlcyg2NCk7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBzZWVkOiBCdWZmZXIuZnJvbShzZWVkKSB9KTtcbiAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwdWInKTtcbiAgICAgIGtleVBhaXIuZ2V0S2V5cygpLnNob3VsZC5oYXZlLnByb3BlcnR5KCdwcnYnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCBmYWlsIHRvIGNyZWF0ZSBhIEtleVBhaXInLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ2Zyb20gYW4gaW52YWxpZCBwdWJsaWMga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwdWI6ICcwMUQ2M0QnLFxuICAgICAgfTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSk7XG4gICAgfSk7XG5cbiAgICBpdCgnZnJvbSBhbiBpbnZhbGlkIHByaXZhdGUga2V5JywgKCkgPT4ge1xuICAgICAgY29uc3Qgc291cmNlID0ge1xuICAgICAgICBwcnY6ICc4MkEzNEUnLFxuICAgICAgfTtcbiAgICAgIGFzc2VydC50aHJvd3MoKCkgPT4gbmV3IEtleVBhaXIoc291cmNlKSk7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiBuZXcgS2V5UGFpcih7IHBydjogcHJ2ICsgcHViIH0pLFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09IGludmFsaWRQcml2YXRlS2V5RXJyb3JNZXNzYWdlXG4gICAgICApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnZ2V0QWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGdldCBhbiBhZGRyZXNzIGZyb20geHBydicsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogeHBydiB9KTtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRBZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gICAgICBjYWxjdWxhdGVkQWRkcmVzcy5zaG91bGQuZXF1YWwoYWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBhbiBhZGRyZXNzIGZyb20geHB1YicsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YjogeHB1YiB9KTtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRBZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gICAgICBjYWxjdWxhdGVkQWRkcmVzcy5zaG91bGQuZXF1YWwoYWRkcmVzcyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGdldCBhbiBhZGRyZXNzIGZyb20gcHJ2JywgKCkgPT4ge1xuICAgICAgY29uc3Qga2V5UGFpciA9IG5ldyBLZXlQYWlyKHsgcHJ2IH0pO1xuICAgICAgY29uc3QgY2FsY3VsYXRlZEFkZHJlc3MgPSBrZXlQYWlyLmdldEFkZHJlc3MoKTtcbiAgICAgIGNhbGN1bGF0ZWRBZGRyZXNzLnNob3VsZC5lcXVhbChhZGRyZXNzKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IGFuIGFkZHJlc3MgZnJvbSBwdWInLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWIgfSk7XG4gICAgICBjb25zdCBjYWxjdWxhdGVkQWRkcmVzcyA9IGtleVBhaXIuZ2V0QWRkcmVzcygpO1xuICAgICAgY2FsY3VsYXRlZEFkZHJlc3Muc2hvdWxkLmVxdWFsKGFkZHJlc3MpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBnZXQgYW4gYWRkcmVzcyBmcm9tIHVuY29tcHJlc3NlZCBwdWInLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHVuY29tcHJlc3NlZFB1YiB9KTtcbiAgICAgIGNvbnN0IGNhbGN1bGF0ZWRBZGRyZXNzID0ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gICAgICBjYWxjdWxhdGVkQWRkcmVzcy5zaG91bGQuZXF1YWwoYWRkcmVzcyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdnZXRFeHRlbmRlZEtleXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBnZXQgdGhlIGtleXMgaW4gZXh0ZW5kZWQgZm9ybWF0IGZyb20geHBydicsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjogeHBydiB9KTtcbiAgICAgIGNvbnN0IHsgeHBydjogY2FsY3VsYXRlZFhwcnYsIHhwdWI6IGNhbGN1bGF0ZWRYcHViIH0gPSBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpO1xuICAgICAgY2FsY3VsYXRlZFhwcnYhLnNob3VsZC5lcXVhbCh4cHJ2KTtcbiAgICAgIGNhbGN1bGF0ZWRYcHViLnNob3VsZC5lcXVhbCh4cHViKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBrZXlzIGluIGV4dGVuZGVkIGZvcm1hdCBmcm9tIHhwdWInLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHhwdWIgfSk7XG4gICAgICBjb25zdCB7IHhwcnY6IGNhbGN1bGF0ZWRYcHJ2LCB4cHViOiBjYWxjdWxhdGVkWHB1YiB9ID0ga2V5UGFpci5nZXRFeHRlbmRlZEtleXMoKTtcbiAgICAgIHNob3VsZC5ub3QuZXhpc3QoY2FsY3VsYXRlZFhwcnYpO1xuICAgICAgY2FsY3VsYXRlZFhwdWIuc2hvdWxkLmVxdWFsKHhwdWIpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBub3QgYmUgYWJsZSB0byBnZXQga2V5cyBmcm9tIHBydicsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydiB9KTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBrZXlzIGluIGV4dGVuZGVkIGZvcm1hdCBmcm9tIHB1YicsICgpID0+IHtcbiAgICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHB1YiB9KTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZ2V0IHRoZSBrZXlzIGluIGV4dGVuZGVkIGZvcm1hdCBmcm9tIHVuY29tcHJlc3NlZCBwdWInLCAoKSA9PiB7XG4gICAgICBjb25zdCBrZXlQYWlyID0gbmV3IEtleVBhaXIoeyBwdWI6IHVuY29tcHJlc3NlZFB1YiB9KTtcblxuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiBrZXlQYWlyLmdldEV4dGVuZGVkS2V5cygpKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../test/unit/transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,96 @@
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/statics");
42
+ const src_1 = require("../../src");
43
+ const testData = __importStar(require("../resources/eth"));
44
+ const mocha_1 = require("mocha");
45
+ describe('ETH Transaction', () => {
46
+ const coinConfig = statics_1.coins.get('teth');
47
+ const common = (0, src_1.getCommon)(coinConfig.network);
48
+ /**
49
+ * @param data
50
+ */
51
+ function getTransaction(data) {
52
+ return new src_1.Transaction(coinConfig, common, data);
53
+ }
54
+ describe('should throw ', () => {
55
+ it('an empty transaction', () => {
56
+ const tx = getTransaction();
57
+ assert_1.default.throws(() => tx.toJson());
58
+ assert_1.default.throws(() => tx.toBroadcastFormat());
59
+ });
60
+ });
61
+ const testParams = [
62
+ ['Legacy', testData.LEGACY_TXDATA, testData.UNSIGNED_LEGACY_TX, testData.ENCODED_LEGACY_TRANSACTION],
63
+ ['EIP1559', testData.EIP1559_TXDATA, testData.UNSIGNED_EIP1559_TX, testData.ENCODED_EIP1559_TRANSACTION],
64
+ ];
65
+ describe('should return', () => {
66
+ testParams.map(([txnType, txData, unsignedTx]) => {
67
+ (0, mocha_1.test)(`a valid ${txnType} transaction`, () => {
68
+ const tx = getTransaction(txData);
69
+ should_1.default.deepEqual(tx.toJson(), txData);
70
+ should_1.default.deepEqual(tx.toBroadcastFormat(), unsignedTx);
71
+ });
72
+ });
73
+ });
74
+ describe('should sign', () => {
75
+ it('invalid', () => {
76
+ const tx = getTransaction();
77
+ return tx.sign(testData.KEYPAIR_PRV).should.be.rejected();
78
+ });
79
+ testParams.map(([txnType, txData]) => {
80
+ it(`should create a valid ${txnType} signature`, () => {
81
+ const tx = getTransaction(txData);
82
+ return tx.sign(testData.KEYPAIR_PRV).should.be.fulfilled();
83
+ });
84
+ });
85
+ });
86
+ describe('should return encoded tx', () => {
87
+ testParams.map(([txnType, txData, _, encodedTxData]) => {
88
+ it(`should create a valid ${txnType} encoded transaction`, async () => {
89
+ const tx = getTransaction(txData);
90
+ await tx.sign(testData.KEYPAIR_PRV);
91
+ should_1.default.equal(tx.toBroadcastFormat(), encodedTxData);
92
+ });
93
+ });
94
+ });
95
+ });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L3VuaXQvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsb0RBQTRCO0FBQzVCLDRDQUF3RDtBQUN4RCxtQ0FBMkQ7QUFDM0QsMkRBQTZDO0FBQzdDLGlDQUE2QjtBQUU3QixRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBQSxlQUFTLEVBQUMsVUFBVSxDQUFDLE9BQTBCLENBQUMsQ0FBQztJQUNoRTs7T0FFRztJQUNILFNBQVMsY0FBYyxDQUFDLElBQWE7UUFDbkMsT0FBTyxJQUFJLGlCQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUSxDQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUU7UUFDN0IsRUFBRSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsRUFBRTtZQUM5QixNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUM1QixnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNqQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLFVBQVUsR0FBRztRQUNqQixDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQUMsMEJBQTBCLENBQUM7UUFDcEcsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLGNBQWMsRUFBRSxRQUFRLENBQUMsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLDJCQUEyQixDQUFDO0tBQ2hHLENBQUM7SUFFWCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtRQUM3QixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBQSxZQUFJLEVBQUMsV0FBVyxPQUFPLGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQzFDLE1BQU0sRUFBRSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbEMsZ0JBQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUN0QyxnQkFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtRQUMzQixFQUFFLENBQUMsU0FBUyxFQUFFLEdBQUcsRUFBRTtZQUNqQixNQUFNLEVBQUUsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUM1QixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFFSCxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxFQUFFLENBQUMseUJBQXlCLE9BQU8sWUFBWSxFQUFFLEdBQUcsRUFBRTtnQkFDcEQsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDN0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLDBCQUEwQixFQUFFLEdBQUcsRUFBRTtRQUN4QyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFO1lBQ3JELEVBQUUsQ0FBQyx5QkFBeUIsT0FBTyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtnQkFDcEUsTUFBTSxFQUFFLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IGNvaW5zLCBFdGhlcmV1bU5ldHdvcmsgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBnZXRDb21tb24sIFRyYW5zYWN0aW9uLCBUeERhdGEgfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vcmVzb3VyY2VzL2V0aCc7XG5pbXBvcnQgeyB0ZXN0IH0gZnJvbSAnbW9jaGEnO1xuXG5kZXNjcmliZSgnRVRIIFRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICBjb25zdCBjb2luQ29uZmlnID0gY29pbnMuZ2V0KCd0ZXRoJyk7XG4gIGNvbnN0IGNvbW1vbiA9IGdldENvbW1vbihjb2luQ29uZmlnLm5ldHdvcmsgYXMgRXRoZXJldW1OZXR3b3JrKTtcbiAgLyoqXG4gICAqIEBwYXJhbSBkYXRhXG4gICAqL1xuICBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbihkYXRhPzogVHhEYXRhKSB7XG4gICAgcmV0dXJuIG5ldyBUcmFuc2FjdGlvbihjb2luQ29uZmlnLCBjb21tb24sIGRhdGEpO1xuICB9XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCB0aHJvdyAnLCAoKSA9PiB7XG4gICAgaXQoJ2FuIGVtcHR5IHRyYW5zYWN0aW9uJywgKCkgPT4ge1xuICAgICAgY29uc3QgdHggPSBnZXRUcmFuc2FjdGlvbigpO1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eC50b0pzb24oKSk7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCkpO1xuICAgIH0pO1xuICB9KTtcblxuICBjb25zdCB0ZXN0UGFyYW1zID0gW1xuICAgIFsnTGVnYWN5JywgdGVzdERhdGEuTEVHQUNZX1RYREFUQSwgdGVzdERhdGEuVU5TSUdORURfTEVHQUNZX1RYLCB0ZXN0RGF0YS5FTkNPREVEX0xFR0FDWV9UUkFOU0FDVElPTl0sXG4gICAgWydFSVAxNTU5JywgdGVzdERhdGEuRUlQMTU1OV9UWERBVEEsIHRlc3REYXRhLlVOU0lHTkVEX0VJUDE1NTlfVFgsIHRlc3REYXRhLkVOQ09ERURfRUlQMTU1OV9UUkFOU0FDVElPTl0sXG4gIF0gYXMgY29uc3Q7XG5cbiAgZGVzY3JpYmUoJ3Nob3VsZCByZXR1cm4nLCAoKSA9PiB7XG4gICAgdGVzdFBhcmFtcy5tYXAoKFt0eG5UeXBlLCB0eERhdGEsIHVuc2lnbmVkVHhdKSA9PiB7XG4gICAgICB0ZXN0KGBhIHZhbGlkICR7dHhuVHlwZX0gdHJhbnNhY3Rpb25gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24odHhEYXRhKTtcbiAgICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC50b0pzb24oKSwgdHhEYXRhKTtcbiAgICAgICAgc2hvdWxkLmRlZXBFcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCB1bnNpZ25lZFR4KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIHNpZ24nLCAoKSA9PiB7XG4gICAgaXQoJ2ludmFsaWQnLCAoKSA9PiB7XG4gICAgICBjb25zdCB0eCA9IGdldFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXR1cm4gdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVikuc2hvdWxkLmJlLnJlamVjdGVkKCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0UGFyYW1zLm1hcCgoW3R4blR5cGUsIHR4RGF0YV0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgY3JlYXRlIGEgdmFsaWQgJHt0eG5UeXBlfSBzaWduYXR1cmVgLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24odHhEYXRhKTtcbiAgICAgICAgcmV0dXJuIHR4LnNpZ24odGVzdERhdGEuS0VZUEFJUl9QUlYpLnNob3VsZC5iZS5mdWxmaWxsZWQoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hvdWxkIHJldHVybiBlbmNvZGVkIHR4JywgKCkgPT4ge1xuICAgIHRlc3RQYXJhbXMubWFwKChbdHhuVHlwZSwgdHhEYXRhLCBfLCBlbmNvZGVkVHhEYXRhXSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjcmVhdGUgYSB2YWxpZCAke3R4blR5cGV9IGVuY29kZWQgdHJhbnNhY3Rpb25gLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHR4ID0gZ2V0VHJhbnNhY3Rpb24odHhEYXRhKTtcbiAgICAgICAgYXdhaXQgdHguc2lnbih0ZXN0RGF0YS5LRVlQQUlSX1BSVik7XG4gICAgICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCBlbmNvZGVkVHhEYXRhKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=addressInitialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addressInitialization.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/addressInitialization.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
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 testData = __importStar(require("../../resources/eth"));
42
+ const getBuilder_1 = require("../getBuilder");
43
+ describe('Eth address initialization', () => {
44
+ it('should fail if there is no contract address', async () => {
45
+ const txBuilder = (0, getBuilder_1.getBuilder)('teth');
46
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
47
+ txBuilder.fee({
48
+ fee: '10',
49
+ gasLimit: '1000',
50
+ });
51
+ txBuilder.counter(1);
52
+ await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing contract address');
53
+ });
54
+ it('should not fail if there is no contract counter', async () => {
55
+ const txBuilder = (0, getBuilder_1.getBuilder)('teth');
56
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
57
+ txBuilder.fee({
58
+ fee: '10',
59
+ gasLimit: '1000',
60
+ });
61
+ txBuilder.counter(1);
62
+ txBuilder.contract(testData.CONTRACT_ADDRESS);
63
+ const tx = await txBuilder.build();
64
+ const txJson = tx.toJson();
65
+ should_1.default.equal(txJson.to, testData.CONTRACT_ADDRESS);
66
+ });
67
+ it('should build properly from serialized', async () => {
68
+ const txBuilder = (0, getBuilder_1.getBuilder)('eth');
69
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
70
+ txBuilder.from(testData.UNSIGNED_ADDRESS_INIT);
71
+ const tx = await txBuilder.build();
72
+ const txJson = tx.toJson();
73
+ should_1.default.equal(txJson.to, testData.CONTRACT_ADDRESS);
74
+ });
75
+ it('should build properly from signed serialized', async () => {
76
+ const txBuilder = (0, getBuilder_1.getBuilder)('eth');
77
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
78
+ txBuilder.from(testData.SIGNED_ADDRESS_INIT);
79
+ const tx = await txBuilder.build();
80
+ const txJson = tx.toJson();
81
+ should_1.default.equal(txJson.to, '0x1522900b6dafac587d499a862861c0869be6e428');
82
+ should_1.default.equal(txJson.from, '0x00bdb5699745f5b860228c8f939abf1b9ae374ed');
83
+ });
84
+ it('should build properly and return a correct address', async () => {
85
+ const txBuilder = (0, getBuilder_1.getBuilder)('teth');
86
+ txBuilder.type(sdk_core_1.TransactionType.AddressInitialization);
87
+ txBuilder.fee({
88
+ fee: '10',
89
+ gasLimit: '1000',
90
+ });
91
+ txBuilder.counter(1);
92
+ txBuilder.contract(testData.CONTRACT_ADDRESS);
93
+ txBuilder.contractCounter(2);
94
+ txBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
95
+ const tx = await txBuilder.build();
96
+ const txJson = tx.toJson();
97
+ should_1.default.equal(txJson.deployedAddress, '0x858c7a9c3bda553f4d0f15e5e33231dd863cb9d4');
98
+ should_1.default.equal(txJson.to, testData.CONTRACT_ADDRESS);
99
+ });
100
+ });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0luaXRpYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9hZGRyZXNzSW5pdGlhbGl6YXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsOENBQWtEO0FBRWxELDhEQUFnRDtBQUNoRCw4Q0FBMkM7QUFFM0MsUUFBUSxDQUFDLDRCQUE0QixFQUFFLEdBQUcsRUFBRTtJQUMxQyxFQUFFLENBQUMsNkNBQTZDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDM0QsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLE1BQU0sQ0FBdUIsQ0FBQztRQUMzRCxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RCxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ1osR0FBRyxFQUFFLElBQUk7WUFDVCxRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDbEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsaURBQWlELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDL0QsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLE1BQU0sQ0FBdUIsQ0FBQztRQUMzRCxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RCxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ1osR0FBRyxFQUFFLElBQUk7WUFDVCxRQUFRLEVBQUUsTUFBTTtTQUNqQixDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDOUMsTUFBTSxFQUFFLEdBQUcsTUFBTSxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNCLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsdUNBQXVDLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLEtBQUssQ0FBdUIsQ0FBQztRQUMxRCxTQUFTLENBQUMsSUFBSSxDQUFDLDBCQUFlLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RCxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQy9DLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhDQUE4QyxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzVELE1BQU0sU0FBUyxHQUFHLElBQUEsdUJBQVUsRUFBQyxLQUFLLENBQXVCLENBQUM7UUFDMUQsU0FBUyxDQUFDLElBQUksQ0FBQywwQkFBZSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdEQsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM3QyxNQUFNLEVBQUUsR0FBRyxNQUFNLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0IsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ3RFLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsNENBQTRDLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxLQUFLLElBQUksRUFBRTtRQUNsRSxNQUFNLFNBQVMsR0FBRyxJQUFBLHVCQUFVLEVBQUMsTUFBTSxDQUF1QixDQUFDO1FBQzNELFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3RELFNBQVMsQ0FBQyxHQUFHLENBQUM7WUFDWixHQUFHLEVBQUUsSUFBSTtZQUNULFFBQVEsRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztRQUNILFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5QyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQixnQkFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLDRDQUE0QyxDQUFDLENBQUM7UUFDbkYsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvZXRoJztcbmltcG9ydCB7IGdldEJ1aWxkZXIgfSBmcm9tICcuLi9nZXRCdWlsZGVyJztcblxuZGVzY3JpYmUoJ0V0aCBhZGRyZXNzIGluaXRpYWxpemF0aW9uJywgKCkgPT4ge1xuICBpdCgnc2hvdWxkIGZhaWwgaWYgdGhlcmUgaXMgbm8gY29udHJhY3QgYWRkcmVzcycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCd0ZXRoJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgIHR4QnVpbGRlci5mZWUoe1xuICAgICAgZmVlOiAnMTAnLFxuICAgICAgZ2FzTGltaXQ6ICcxMDAwJyxcbiAgICB9KTtcbiAgICB0eEJ1aWxkZXIuY291bnRlcigxKTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIGNvbnRyYWN0IGFkZHJlc3MnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBub3QgZmFpbCBpZiB0aGVyZSBpcyBubyBjb250cmFjdCBjb3VudGVyJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RldGgnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICcxMCcsXG4gICAgICBnYXNMaW1pdDogJzEwMDAnLFxuICAgIH0pO1xuICAgIHR4QnVpbGRlci5jb3VudGVyKDEpO1xuICAgIHR4QnVpbGRlci5jb250cmFjdCh0ZXN0RGF0YS5DT05UUkFDVF9BRERSRVNTKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIHRlc3REYXRhLkNPTlRSQUNUX0FERFJFU1MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIHByb3Blcmx5IGZyb20gc2VyaWFsaXplZCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBnZXRCdWlsZGVyKCdldGgnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkFkZHJlc3NJbml0aWFsaXphdGlvbik7XG4gICAgdHhCdWlsZGVyLmZyb20odGVzdERhdGEuVU5TSUdORURfQUREUkVTU19JTklUKTtcbiAgICBjb25zdCB0eCA9IGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIGNvbnN0IHR4SnNvbiA9IHR4LnRvSnNvbigpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIHRlc3REYXRhLkNPTlRSQUNUX0FERFJFU1MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIHByb3Blcmx5IGZyb20gc2lnbmVkIHNlcmlhbGl6ZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcignZXRoJykgYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgIHR4QnVpbGRlci50eXBlKFRyYW5zYWN0aW9uVHlwZS5BZGRyZXNzSW5pdGlhbGl6YXRpb24pO1xuICAgIHR4QnVpbGRlci5mcm9tKHRlc3REYXRhLlNJR05FRF9BRERSRVNTX0lOSVQpO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgY29uc3QgdHhKc29uID0gdHgudG9Kc29uKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4SnNvbi50bywgJzB4MTUyMjkwMGI2ZGFmYWM1ODdkNDk5YTg2Mjg2MWMwODY5YmU2ZTQyOCcpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24uZnJvbSwgJzB4MDBiZGI1Njk5NzQ1ZjViODYwMjI4YzhmOTM5YWJmMWI5YWUzNzRlZCcpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIHByb3Blcmx5IGFuZCByZXR1cm4gYSBjb3JyZWN0IGFkZHJlc3MnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZ2V0QnVpbGRlcigndGV0aCcpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICB0eEJ1aWxkZXIudHlwZShUcmFuc2FjdGlvblR5cGUuQWRkcmVzc0luaXRpYWxpemF0aW9uKTtcbiAgICB0eEJ1aWxkZXIuZmVlKHtcbiAgICAgIGZlZTogJzEwJyxcbiAgICAgIGdhc0xpbWl0OiAnMTAwMCcsXG4gICAgfSk7XG4gICAgdHhCdWlsZGVyLmNvdW50ZXIoMSk7XG4gICAgdHhCdWlsZGVyLmNvbnRyYWN0KHRlc3REYXRhLkNPTlRSQUNUX0FERFJFU1MpO1xuICAgIHR4QnVpbGRlci5jb250cmFjdENvdW50ZXIoMik7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6IHRlc3REYXRhLktFWVBBSVJfUFJWLmdldEtleXMoKS5wcnYgfSk7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcbiAgICBjb25zdCB0eEpzb24gPSB0eC50b0pzb24oKTtcbiAgICBzaG91bGQuZXF1YWwodHhKc29uLmRlcGxveWVkQWRkcmVzcywgJzB4ODU4YzdhOWMzYmRhNTUzZjRkMGYxNWU1ZTMzMjMxZGQ4NjNjYjlkNCcpO1xuICAgIHNob3VsZC5lcXVhbCh0eEpzb24udG8sIHRlc3REYXRhLkNPTlRSQUNUX0FERFJFU1MpO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=contractCall.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contractCall.d.ts","sourceRoot":"","sources":["../../../../test/unit/transactionBuilder/contractCall.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
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 testData = __importStar(require("../../resources/eth"));
42
+ const getBuilder_1 = require("../getBuilder");
43
+ describe('Eth contract call transaction builder', () => {
44
+ let txBuilder;
45
+ let contractAddress;
46
+ const rawTx = '0xf889398506fc23ac0083be8c72947fc37878dca69c9ac48397500279305f798b157280a42bf90baacecf367fdc11132a0ccfeb91692cb31ff126083c353459e0572a0b34c48e952377a0206c902a536c5327ea2861965538963b6180f7d13e36ffd4abb7aa9628f72eb9a05ee209b7b02a2ea3fbf6033701d6e959dfc1e78452235245cf2b8d3f9110c6af';
47
+ beforeEach(() => {
48
+ contractAddress = '0x8f977e912ef500548a0c3be6ddde9899f1199b81';
49
+ // testData.KEYPAIR_PRV.getKeys().prv as string;
50
+ txBuilder = (0, getBuilder_1.getBuilder)('teth');
51
+ txBuilder.type(sdk_core_1.TransactionType.ContractCall);
52
+ txBuilder.fee({
53
+ fee: '30000000000',
54
+ gasLimit: '12487794',
55
+ });
56
+ txBuilder.counter(57);
57
+ });
58
+ it('should build a contract call type transaction', async () => {
59
+ txBuilder.contract('0x7Fc37878DCa69C9AC48397500279305F798b1572');
60
+ txBuilder.data('0x2bf90baacecf367fdc11132a0ccfeb91692cb31ff126083c353459e0572a0b34c48e9523');
61
+ txBuilder.sign({ key: '064A3BF8B08A3426E8A719AE5E4115228A75E7A1449CB1B734E51C7DC8A867BE' });
62
+ const tx = await txBuilder.build();
63
+ should_1.default.exist(tx);
64
+ should_1.default.equal(tx.toBroadcastFormat(), rawTx);
65
+ });
66
+ it('should deserialize an serialize raw transaction', async () => {
67
+ txBuilder.from(rawTx);
68
+ const tx = await txBuilder.build();
69
+ should_1.default.equal(tx.toBroadcastFormat(), rawTx);
70
+ });
71
+ it('should build a contract call type transaction, deserialize it, sign it and serialize it again', async () => {
72
+ txBuilder.contract('0x7Fc37878DCa69C9AC48397500279305F798b1572');
73
+ txBuilder.data('0x2bf90baacecf367fdc11132a0ccfeb91692cb31ff126083c353459e0572a0b34c48e9523');
74
+ const txUnsigned = await txBuilder.build();
75
+ const builderFrom = (0, getBuilder_1.getBuilder)('teth');
76
+ builderFrom.from(txUnsigned.toBroadcastFormat());
77
+ builderFrom.sign({ key: '064A3BF8B08A3426E8A719AE5E4115228A75E7A1449CB1B734E51C7DC8A867BE' });
78
+ const tx = await builderFrom.build();
79
+ should_1.default.equal(tx.toBroadcastFormat(), rawTx);
80
+ should_1.default.equal(txUnsigned.toJson().v, '0x77');
81
+ });
82
+ it('should thrown if contract or data is missing', async () => {
83
+ await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing contract address');
84
+ txBuilder.contract(contractAddress);
85
+ await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing contract call data field');
86
+ });
87
+ it('should properly build tx for eth2 staking staking deposit', async () => {
88
+ txBuilder.contract(testData.ETH2_STAKING_CONTRACT_ADDRESS);
89
+ txBuilder.data(testData.ETH2_STAKING_CONTRACT_DATA);
90
+ txBuilder.sign({ key: '064A3BF8B08A3426E8A719AE5E4115228A75E7A1449CB1B734E51C7DC8A867BE' });
91
+ const tx = await txBuilder.build();
92
+ should_1.default.exist(tx);
93
+ const txData = tx.toJson();
94
+ should_1.default.equal(txData.to, testData.ETH2_STAKING_CONTRACT_ADDRESS);
95
+ should_1.default.equal(txData.from, '0x14fc903e3025a3aad66fad7a7862b1ec232f8df2');
96
+ should_1.default.equal(txData.data, testData.ETH2_STAKING_CONTRACT_DATA);
97
+ should_1.default.equal(txData.nonce, 57);
98
+ should_1.default.equal(txData.chainId, '0x2a');
99
+ });
100
+ });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJhY3RDYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci9jb250cmFjdENhbGwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsOENBQWtEO0FBQ2xELDhEQUFnRDtBQUNoRCw4Q0FBMkM7QUFFM0MsUUFBUSxDQUFDLHVDQUF1QyxFQUFFLEdBQUcsRUFBRTtJQUNyRCxJQUFJLFNBQVMsQ0FBQztJQUNkLElBQUksZUFBZSxDQUFDO0lBQ3BCLE1BQU0sS0FBSyxHQUNULDBSQUEwUixDQUFDO0lBRTdSLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxlQUFlLEdBQUcsNENBQTRDLENBQUM7UUFDL0QsZ0RBQWdEO1FBQ2hELFNBQVMsR0FBRyxJQUFBLHVCQUFVLEVBQUMsTUFBTSxDQUF1QixDQUFDO1FBQ3JELFNBQVMsQ0FBQyxJQUFJLENBQUMsMEJBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3QyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ1osR0FBRyxFQUFFLGFBQWE7WUFDbEIsUUFBUSxFQUFFLFVBQVU7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrQ0FBK0MsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM3RCxTQUFTLENBQUMsUUFBUSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDakUsU0FBUyxDQUFDLElBQUksQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDO1FBQzdGLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsa0VBQWtFLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sRUFBRSxHQUFHLE1BQU0sU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFD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SyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQy9CLGdCQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzaG91bGQgZnJvbSAnc2hvdWxkJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vLi4vcmVzb3VyY2VzL2V0aCc7XG5pbXBvcnQgeyBnZXRCdWlsZGVyIH0gZnJvbSAnLi4vZ2V0QnVpbGRlcic7XG5cbmRlc2NyaWJlKCdFdGggY29udHJhY3QgY2FsbCB0cmFuc2FjdGlvbiBidWlsZGVyJywgKCkgPT4ge1xuICBsZXQgdHhCdWlsZGVyO1xuICBsZXQgY29udHJhY3RBZGRyZXNzO1xuICBjb25zdCByYXdUeCA9XG4gICAgJzB4Zjg4OTM5ODUwNmZjMjNhYzAwODNiZThjNzI5NDdmYzM3ODc4ZGNhNjljOWFjNDgzOTc1MDAyNzkzMDVmNzk4YjE1NzI4MGE0MmJmOTBiYWFjZWNmMzY3ZmRjMTExMzJhMGNjZmViOTE2OTJjYjMxZmYxMjYwODNjMzUzNDU5ZTA1NzJhMGIzNGM0OGU5NTIzNzdhMDIwNmM5MDJhNTM2YzUzMjdlYTI4NjE5NjU1Mzg5NjNiNjE4MGY3ZDEzZTM2ZmZkNGFiYjdhYTk2MjhmNzJlYjlhMDVlZTIwOWI3YjAyYTJlYTNmYmY2MDMzNzAxZDZlOTU5ZGZjMWU3ODQ1MjIzNTI0NWNmMmI4ZDNmOTExMGM2YWYnO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGNvbnRyYWN0QWRkcmVzcyA9ICcweDhmOTc3ZTkxMmVmNTAwNTQ4YTBjM2JlNmRkZGU5ODk5ZjExOTliODEnO1xuICAgIC8vIHRlc3REYXRhLktFWVBBSVJfUFJWLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nO1xuICAgIHR4QnVpbGRlciA9IGdldEJ1aWxkZXIoJ3RldGgnKSBhcyBUcmFuc2FjdGlvbkJ1aWxkZXI7XG4gICAgdHhCdWlsZGVyLnR5cGUoVHJhbnNhY3Rpb25UeXBlLkNvbnRyYWN0Q2FsbCk7XG4gICAgdHhCdWlsZGVyLmZlZSh7XG4gICAgICBmZWU6ICczMDAwMDAwMDAwMCcsXG4gICAgICBnYXNMaW1pdDogJzEyNDg3Nzk0JyxcbiAgICB9KTtcbiAgICB0eEJ1aWxkZXIuY291bnRlcig1Nyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBjb250cmFjdCBjYWxsIHR5cGUgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgdHhCdWlsZGVyLmNvbnRyYWN0KCcweDdGYzM3ODc4RENhNjlDOUFDNDgzOTc1MDAyNzkzMDVGNzk4YjE1NzInKTtcbiAgICB0eEJ1aWxkZXIuZGF0YSgnMHgyYmY5MGJhYWNlY2YzNjdmZGMxMTEzMmEwY2NmZWI5MTY5MmNiMzFmZjEyNjA4M2MzNTM0NTllMDU3MmEwYjM0YzQ4ZTk1MjMnKTtcbiAgICB0eEJ1aWxkZXIuc2lnbih7IGtleTogJzA2NEEzQkY4QjA4QTM0MjZFOEE3MTlBRTVFNDExNTIyOEE3NUU3QTE0NDlDQjFCNzM0RTUxQzdEQzhBODY3QkUnIH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmV4aXN0KHR4KTtcbiAgICBzaG91bGQuZXF1YWwodHgudG9Ccm9hZGNhc3RGb3JtYXQoKSwgcmF3VHgpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGRlc2VyaWFsaXplIGFuIHNlcmlhbGl6ZSByYXcgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgdHhCdWlsZGVyLmZyb20ocmF3VHgpO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCksIHJhd1R4KTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIGNvbnRyYWN0IGNhbGwgdHlwZSB0cmFuc2FjdGlvbiwgZGVzZXJpYWxpemUgaXQsIHNpZ24gaXQgYW5kIHNlcmlhbGl6ZSBpdCBhZ2FpbicsIGFzeW5jICgpID0+IHtcbiAgICB0eEJ1aWxkZXIuY29udHJhY3QoJzB4N0ZjMzc4NzhEQ2E2OUM5QUM0ODM5NzUwMDI3OTMwNUY3OThiMTU3MicpO1xuICAgIHR4QnVpbGRlci5kYXRhKCcweDJiZjkwYmFhY2VjZjM2N2ZkYzExMTMyYTBjY2ZlYjkxNjkyY2IzMWZmMTI2MDgzYzM1MzQ1OWUwNTcyYTBiMzRjNDhlOTUyMycpO1xuICAgIGNvbnN0IHR4VW5zaWduZWQgPSBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKTtcblxuICAgIGNvbnN0IGJ1aWxkZXJGcm9tID0gZ2V0QnVpbGRlcigndGV0aCcpIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgICBidWlsZGVyRnJvbS5mcm9tKHR4VW5zaWduZWQudG9Ccm9hZGNhc3RGb3JtYXQoKSk7XG4gICAgYnVpbGRlckZyb20uc2lnbih7IGtleTogJzA2NEEzQkY4QjA4QTM0MjZFOEE3MTlBRTVFNDExNTIyOEE3NUU3QTE0NDlDQjFCNzM0RTUxQzdEQzhBODY3QkUnIH0pO1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlckZyb20uYnVpbGQoKTtcblxuICAgIHNob3VsZC5lcXVhbCh0eC50b0Jyb2FkY2FzdEZvcm1hdCgpLCByYXdUeCk7XG4gICAgc2hvdWxkLmVxdWFsKHR4VW5zaWduZWQudG9Kc29uKCkudiwgJzB4NzcnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvd24gaWYgY29udHJhY3Qgb3IgZGF0YSBpcyBtaXNzaW5nJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgY29udHJhY3QgYWRkcmVzcycpO1xuICAgIHR4QnVpbGRlci5jb250cmFjdChjb250cmFjdEFkZHJlc3MpO1xuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5iZS5yZWplY3RlZFdpdGgoJ0ludmFsaWQgdHJhbnNhY3Rpb246IG1pc3NpbmcgY29udHJhY3QgY2FsbCBkYXRhIGZpZWxkJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcHJvcGVybHkgYnVpbGQgdHggZm9yIGV0aDIgc3Rha2luZyBzdGFraW5nIGRlcG9zaXQnLCBhc3luYyAoKSA9PiB7XG4gICAgdHhCdWlsZGVyLmNvbnRyYWN0KHRlc3REYXRhLkVUSDJfU1RBS0lOR19DT05UUkFDVF9BRERSRVNTKTtcbiAgICB0eEJ1aWxkZXIuZGF0YSh0ZXN0RGF0YS5FVEgyX1NUQUtJTkdfQ09OVFJBQ1RfREFUQSk7XG4gICAgdHhCdWlsZGVyLnNpZ24oeyBrZXk6ICcwNjRBM0JGOEIwOEEzNDI2RThBNzE5QUU1RTQxMTUyMjhBNzVFN0ExNDQ5Q0IxQjczNEU1MUM3REM4QTg2N0JFJyB9KTtcblxuICAgIGNvbnN0IHR4ID0gYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgc2hvdWxkLmV4aXN0KHR4KTtcblxuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHNob3VsZC5lcXVhbCh0eERhdGEudG8sIHRlc3REYXRhLkVUSDJfU1RBS0lOR19DT05UUkFDVF9BRERSRVNTKTtcbiAgICBzaG91bGQuZXF1YWwodHhEYXRhLmZyb20sICcweDE0ZmM5MDNlMzAyNWEzYWFkNjZmYWQ3YTc4NjJiMWVjMjMyZjhkZjInKTtcbiAgICBzaG91bGQuZXF1YWwodHhEYXRhLmRhdGEsIHRlc3REYXRhLkVUSDJfU1RBS0lOR19DT05UUkFDVF9EQVRBKTtcbiAgICBzaG91bGQuZXF1YWwodHhEYXRhLm5vbmNlLCA1Nyk7XG4gICAgc2hvdWxkLmVxdWFsKHR4RGF0YS5jaGFpbklkLCAnMHgyYScpO1xuICB9KTtcbn0pO1xuIl19