@bitgo-beta/abstract-eth 1.0.2-beta.51 → 1.0.2-beta.510

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 (57) hide show
  1. package/CHANGELOG.md +1220 -0
  2. package/dist/src/abstractEthLikeCoin.d.ts +10 -5
  3. package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
  4. package/dist/src/abstractEthLikeCoin.js +13 -10
  5. package/dist/src/abstractEthLikeNewCoins.d.ts +635 -0
  6. package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
  7. package/dist/src/abstractEthLikeNewCoins.js +1842 -0
  8. package/dist/src/ethLikeToken.d.ts +27 -4
  9. package/dist/src/ethLikeToken.d.ts.map +1 -1
  10. package/dist/src/ethLikeToken.js +254 -7
  11. package/dist/src/index.d.ts +2 -0
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +3 -1
  14. package/dist/src/lib/contractCall.d.ts +8 -0
  15. package/dist/src/lib/contractCall.d.ts.map +1 -0
  16. package/dist/src/lib/contractCall.js +17 -0
  17. package/dist/src/lib/iface.d.ts +131 -0
  18. package/dist/src/lib/iface.d.ts.map +1 -0
  19. package/dist/src/lib/iface.js +8 -0
  20. package/dist/src/lib/index.d.ts +15 -0
  21. package/dist/src/lib/index.d.ts.map +1 -0
  22. package/dist/src/lib/index.js +42 -0
  23. package/dist/src/lib/keyPair.d.ts +26 -0
  24. package/dist/src/lib/keyPair.d.ts.map +1 -0
  25. package/dist/src/lib/keyPair.js +66 -0
  26. package/dist/src/lib/transaction.d.ts +64 -0
  27. package/dist/src/lib/transaction.d.ts.map +1 -0
  28. package/dist/src/lib/transaction.js +137 -0
  29. package/dist/src/lib/transactionBuilder.d.ts +239 -0
  30. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  31. package/dist/src/lib/transactionBuilder.js +708 -0
  32. package/dist/src/lib/transferBuilder.d.ts +67 -0
  33. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  34. package/dist/src/lib/transferBuilder.js +242 -0
  35. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +52 -0
  36. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
  37. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +114 -0
  38. package/dist/src/lib/transferBuilders/index.d.ts +4 -0
  39. package/dist/src/lib/transferBuilders/index.d.ts.map +1 -0
  40. package/dist/src/lib/transferBuilders/index.js +16 -0
  41. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +16 -0
  42. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +1 -0
  43. package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +93 -0
  44. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +15 -0
  45. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +1 -0
  46. package/dist/src/lib/transferBuilders/transferBuilderERC721.js +78 -0
  47. package/dist/src/lib/types.d.ts +39 -0
  48. package/dist/src/lib/types.d.ts.map +1 -0
  49. package/dist/src/lib/types.js +137 -0
  50. package/dist/src/lib/utils.d.ts +260 -0
  51. package/dist/src/lib/utils.d.ts.map +1 -0
  52. package/dist/src/lib/utils.js +650 -0
  53. package/dist/src/lib/walletUtil.d.ts +28 -0
  54. package/dist/src/lib/walletUtil.d.ts.map +1 -0
  55. package/dist/src/lib/walletUtil.js +31 -0
  56. package/dist/tsconfig.tsbuildinfo +1 -7914
  57. package/package.json +24 -9
@@ -0,0 +1,15 @@
1
+ export * from './contractCall';
2
+ export * from './iface';
3
+ export * from './keyPair';
4
+ export * from './transaction';
5
+ export * from './transactionBuilder';
6
+ export * from './transferBuilder';
7
+ export * from './transferBuilders';
8
+ export * from './transferBuilder';
9
+ export * from './types';
10
+ export * from './utils';
11
+ export * from './walletUtil';
12
+ import * as Interface from './iface';
13
+ import * as Utils from './utils';
14
+ export { Interface, Utils };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAG7B,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ var __importStar = (this && this.__importStar) || function (mod) {
18
+ if (mod && mod.__esModule) return mod;
19
+ var result = {};
20
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
21
+ __setModuleDefault(result, mod);
22
+ return result;
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.Utils = exports.Interface = void 0;
26
+ __exportStar(require("./contractCall"), exports);
27
+ __exportStar(require("./iface"), exports);
28
+ __exportStar(require("./keyPair"), exports);
29
+ __exportStar(require("./transaction"), exports);
30
+ __exportStar(require("./transactionBuilder"), exports);
31
+ __exportStar(require("./transferBuilder"), exports);
32
+ __exportStar(require("./transferBuilders"), exports);
33
+ __exportStar(require("./transferBuilder"), exports);
34
+ __exportStar(require("./types"), exports);
35
+ __exportStar(require("./utils"), exports);
36
+ __exportStar(require("./walletUtil"), exports);
37
+ // for Backwards Compatibility
38
+ const Interface = __importStar(require("./iface"));
39
+ exports.Interface = Interface;
40
+ const Utils = __importStar(require("./utils"));
41
+ exports.Utils = Utils;
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0IsMENBQXdCO0FBQ3hCLDRDQUEwQjtBQUMxQixnREFBOEI7QUFDOUIsdURBQXFDO0FBQ3JDLG9EQUFrQztBQUNsQyxxREFBbUM7QUFDbkMsb0RBQWtDO0FBQ2xDLDBDQUF3QjtBQUN4QiwwQ0FBd0I7QUFDeEIsK0NBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixtREFBcUM7QUFHNUIsOEJBQVM7QUFGbEIsK0NBQWlDO0FBRWIsc0JBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRyYWN0Q2FsbCc7XG5leHBvcnQgKiBmcm9tICcuL2lmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmZXJCdWlsZGVycyc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi93YWxsZXRVdGlsJztcblxuLy8gZm9yIEJhY2t3YXJkcyBDb21wYXRpYmlsaXR5XG5pbXBvcnQgKiBhcyBJbnRlcmZhY2UgZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgSW50ZXJmYWNlLCBVdGlscyB9O1xuIl19
@@ -0,0 +1,26 @@
1
+ import { DefaultKeys, KeyPairOptions, Secp256k1ExtendedKeyPair } from '@bitgo-beta/sdk-core';
2
+ /**
3
+ * Ethereum keys and address management.
4
+ */
5
+ export declare class KeyPair extends Secp256k1ExtendedKeyPair {
6
+ /**
7
+ * Public constructor. By default, creates a key pair with a random master seed.
8
+ *
9
+ * @param { KeyPairOptions } source Either a master seed, a private key (extended or raw), or a public key
10
+ * (extended, compressed, or uncompressed)
11
+ */
12
+ constructor(source?: KeyPairOptions);
13
+ /**
14
+ * Ethereum default keys format is raw private and uncompressed public key
15
+ *
16
+ * @returns { DefaultKeys } The keys in the protocol default key format
17
+ */
18
+ getKeys(): DefaultKeys;
19
+ /**
20
+ * Get an Ethereum public address
21
+ *
22
+ * @returns {string} The address derived from the public key
23
+ */
24
+ getAddress(): string;
25
+ }
26
+ //# sourceMappingURL=keyPair.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyPair.d.ts","sourceRoot":"","sources":["../../../src/lib/keyPair.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EAIX,cAAc,EACd,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAM9B;;GAEG;AACH,qBAAa,OAAQ,SAAQ,wBAAwB;IACnD;;;;;OAKG;gBACS,MAAM,CAAC,EAAE,cAAc;IAoBnC;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAStB;;;;OAIG;IACH,UAAU,IAAI,MAAM;CAIrB"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeyPair = void 0;
4
+ const ethereumjs_util_1 = require("ethereumjs-util");
5
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
6
+ const crypto_1 = require("crypto");
7
+ const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
8
+ const DEFAULT_SEED_SIZE_BYTES = 64;
9
+ /**
10
+ * Ethereum keys and address management.
11
+ */
12
+ class KeyPair extends sdk_core_1.Secp256k1ExtendedKeyPair {
13
+ /**
14
+ * Public constructor. By default, creates a key pair with a random master seed.
15
+ *
16
+ * @param { KeyPairOptions } source Either a master seed, a private key (extended or raw), or a public key
17
+ * (extended, compressed, or uncompressed)
18
+ */
19
+ constructor(source) {
20
+ super(source);
21
+ if (!source) {
22
+ const seed = crypto_1.randomBytes(DEFAULT_SEED_SIZE_BYTES);
23
+ this.hdNode = utxo_lib_1.bip32.fromSeed(seed);
24
+ }
25
+ else if (sdk_core_1.isSeed(source)) {
26
+ this.hdNode = utxo_lib_1.bip32.fromSeed(source.seed);
27
+ }
28
+ else if (sdk_core_1.isPrivateKey(source)) {
29
+ this.recordKeysFromPrivateKey(source.prv);
30
+ }
31
+ else if (sdk_core_1.isPublicKey(source)) {
32
+ this.recordKeysFromPublicKey(source.pub);
33
+ }
34
+ else {
35
+ throw new Error('Invalid key pair options');
36
+ }
37
+ if (this.hdNode) {
38
+ this.keyPair = sdk_core_1.Secp256k1ExtendedKeyPair.toKeyPair(this.hdNode);
39
+ }
40
+ }
41
+ /**
42
+ * Ethereum default keys format is raw private and uncompressed public key
43
+ *
44
+ * @returns { DefaultKeys } The keys in the protocol default key format
45
+ */
46
+ getKeys() {
47
+ var _a;
48
+ return {
49
+ pub: this.getPublicKey({ compressed: this.hdNode !== undefined })
50
+ .toString('hex')
51
+ .toUpperCase(),
52
+ prv: (_a = this.getPrivateKey()) === null || _a === void 0 ? void 0 : _a.toString('hex').toUpperCase(),
53
+ };
54
+ }
55
+ /**
56
+ * Get an Ethereum public address
57
+ *
58
+ * @returns {string} The address derived from the public key
59
+ */
60
+ getAddress() {
61
+ const publicKey = Buffer.from(this.getKeys().pub, 'hex'); // first two characters identify a public key
62
+ return ethereumjs_util_1.addHexPrefix(ethereumjs_util_1.pubToAddress(publicKey, true).toString('hex'));
63
+ }
64
+ }
65
+ exports.KeyPair = KeyPair;
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBNkQ7QUFDN0QsbURBTzhCO0FBQzlCLG1DQUFxQztBQUNyQyxtREFBNkM7QUFFN0MsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLENBQUM7QUFFbkM7O0dBRUc7QUFDSCxNQUFhLE9BQVEsU0FBUSxtQ0FBd0I7SUFDbkQ7Ozs7O09BS0c7SUFDSCxZQUFZLE1BQXVCO1FBQ2pDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNkLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDWCxNQUFNLElBQUksR0FBRyxvQkFBVyxDQUFDLHVCQUF1QixDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxnQkFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwQzthQUFNLElBQUksaUJBQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLGdCQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzQzthQUFNLElBQUksdUJBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNDO2FBQU0sSUFBSSxzQkFBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM3QztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsbUNBQXdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsT0FBTzs7UUFDTCxPQUFPO1lBQ0wsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztpQkFDOUQsUUFBUSxDQUFDLEtBQUssQ0FBQztpQkFDZixXQUFXLEVBQUU7WUFDaEIsR0FBRyxFQUFFLE1BQUEsSUFBSSxDQUFDLGFBQWEsRUFBRSwwQ0FBRSxRQUFRLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtTQUN6RCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxVQUFVO1FBQ1IsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsNkNBQTZDO1FBQ3ZHLE9BQU8sOEJBQVksQ0FBQyw4QkFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0NBQ0Y7QUFsREQsMEJBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkSGV4UHJlZml4LCBwdWJUb0FkZHJlc3MgfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IHtcbiAgRGVmYXVsdEtleXMsXG4gIGlzUHJpdmF0ZUtleSxcbiAgaXNQdWJsaWNLZXksXG4gIGlzU2VlZCxcbiAgS2V5UGFpck9wdGlvbnMsXG4gIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpcixcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgYmlwMzIgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmNvbnN0IERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTID0gNjQ7XG5cbi8qKlxuICogRXRoZXJldW0ga2V5cyBhbmQgYWRkcmVzcyBtYW5hZ2VtZW50LlxuICovXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIFNlY3AyNTZrMUV4dGVuZGVkS2V5UGFpciB7XG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIG1hc3RlciBzZWVkLlxuICAgKlxuICAgKiBAcGFyYW0geyBLZXlQYWlyT3B0aW9ucyB9IHNvdXJjZSBFaXRoZXIgYSBtYXN0ZXIgc2VlZCwgYSBwcml2YXRlIGtleSAoZXh0ZW5kZWQgb3IgcmF3KSwgb3IgYSBwdWJsaWMga2V5XG4gICAqICAgICAoZXh0ZW5kZWQsIGNvbXByZXNzZWQsIG9yIHVuY29tcHJlc3NlZClcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgY29uc3Qgc2VlZCA9IHJhbmRvbUJ5dGVzKERFRkFVTFRfU0VFRF9TSVpFX0JZVEVTKTtcbiAgICAgIHRoaXMuaGROb2RlID0gYmlwMzIuZnJvbVNlZWQoc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1NlZWQoc291cmNlKSkge1xuICAgICAgdGhpcy5oZE5vZGUgPSBiaXAzMi5mcm9tU2VlZChzb3VyY2Uuc2VlZCk7XG4gICAgfSBlbHNlIGlmIChpc1ByaXZhdGVLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5yZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkoc291cmNlLnBydik7XG4gICAgfSBlbHNlIGlmIChpc1B1YmxpY0tleShzb3VyY2UpKSB7XG4gICAgICB0aGlzLnJlY29yZEtleXNGcm9tUHVibGljS2V5KHNvdXJjZS5wdWIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhkTm9kZSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0gU2VjcDI1NmsxRXh0ZW5kZWRLZXlQYWlyLnRvS2V5UGFpcih0aGlzLmhkTm9kZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV0aGVyZXVtIGRlZmF1bHQga2V5cyBmb3JtYXQgaXMgcmF3IHByaXZhdGUgYW5kIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gICAqXG4gICAqIEByZXR1cm5zIHsgRGVmYXVsdEtleXMgfSBUaGUga2V5cyBpbiB0aGUgcHJvdG9jb2wgZGVmYXVsdCBrZXkgZm9ybWF0XG4gICAqL1xuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICByZXR1cm4ge1xuICAgICAgcHViOiB0aGlzLmdldFB1YmxpY0tleSh7IGNvbXByZXNzZWQ6IHRoaXMuaGROb2RlICE9PSB1bmRlZmluZWQgfSlcbiAgICAgICAgLnRvU3RyaW5nKCdoZXgnKVxuICAgICAgICAudG9VcHBlckNhc2UoKSxcbiAgICAgIHBydjogdGhpcy5nZXRQcml2YXRlS2V5KCk/LnRvU3RyaW5nKCdoZXgnKS50b1VwcGVyQ2FzZSgpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIEV0aGVyZXVtIHB1YmxpYyBhZGRyZXNzXG4gICAqXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleVxuICAgKi9cbiAgZ2V0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IHB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHRoaXMuZ2V0S2V5cygpLnB1YiwgJ2hleCcpOyAvLyBmaXJzdCB0d28gY2hhcmFjdGVycyBpZGVudGlmeSBhIHB1YmxpYyBrZXlcbiAgICByZXR1cm4gYWRkSGV4UHJlZml4KHB1YlRvQWRkcmVzcyhwdWJsaWNLZXksIHRydWUpLnRvU3RyaW5nKCdoZXgnKSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Ethereum transaction model. This is the base model for all ethereum based coins (Celo, ETC, RSK, ETH)
3
+ */
4
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
+ import EthereumCommon from '@ethereumjs/common';
6
+ import { BaseKey, Entry, BaseTransaction, TransactionType } from '@bitgo-beta/sdk-core';
7
+ import { KeyPair } from './keyPair';
8
+ import { EthLikeTransactionData, TxData } from './iface';
9
+ export declare class Transaction extends BaseTransaction {
10
+ protected _id: string;
11
+ protected _inputs: Entry[];
12
+ protected _outputs: Entry[];
13
+ protected _signatures: string[];
14
+ protected _type: TransactionType;
15
+ protected _common: EthereumCommon;
16
+ protected _transactionData?: EthLikeTransactionData;
17
+ /**
18
+ * return a new Transaction initialized with the serialized tx string
19
+ *
20
+ * @param coinConfig The coin configuration object
21
+ * @param common network commons
22
+ * @param serializedTx The serialized tx string with which to initialize the transaction
23
+ * @returns a new transaction object
24
+ */
25
+ static fromSerialized(coinConfig: Readonly<CoinConfig>, common: EthereumCommon, serializedTx: string): Transaction;
26
+ /**
27
+ * Public constructor.
28
+ *
29
+ * @param {Readonly<CoinConfig>} coinConfig
30
+ * @param common the network commons
31
+ * @param {TxData} txData The object transaction data or encoded transaction data
32
+ */
33
+ constructor(coinConfig: Readonly<CoinConfig>, common: EthereumCommon, txData?: TxData);
34
+ /**
35
+ * Set the transaction data
36
+ *
37
+ * @param {TxData} txData The transaction data to set
38
+ */
39
+ setTransactionData(txData: TxData): void;
40
+ /**
41
+ * Update the internal fields based on the currently set transaction data, if there is any
42
+ */
43
+ protected updateFields(): void;
44
+ /**
45
+ * Set the transaction type
46
+ *
47
+ * @param {TransactionType} transactionType The transaction type to be set
48
+ */
49
+ setTransactionType(transactionType: TransactionType): void;
50
+ /** @inheritdoc */
51
+ canSign(key: BaseKey): boolean;
52
+ /**
53
+ * Sign the transaction with the provided key. It does not check if the signer is allowed to sign
54
+ * it or not.
55
+ *
56
+ * @param {KeyPair} keyPair The key to sign the transaction with
57
+ */
58
+ sign(keyPair: KeyPair): Promise<void>;
59
+ /** @inheritdoc */
60
+ toBroadcastFormat(): string;
61
+ /** @inheritdoc */
62
+ toJson(): TxData;
63
+ }
64
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,OAAO,EACP,KAAK,EACL,eAAe,EACf,eAAe,EAGhB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMzD,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC5B,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;IAChC,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,OAAO,EAAE,cAAc,CAAC;IAElC,SAAS,CAAC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAEpD;;;;;;;OAOG;WACW,cAAc,CAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAChC,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,MAAM,GACnB,WAAW;IAId;;;;;;OAMG;gBACS,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,MAAM;IAQrF;;;;OAIG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKxC;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAmD9B;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAI1D,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAK9B;;;;;OAKG;IACG,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3C,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,kBAAkB;IAClB,MAAM,IAAI,MAAM;CAMjB"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Transaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const types_1 = require("./types");
6
+ const utils_1 = require("./utils");
7
+ const UNSUPPORTED_COIN_NAME = 'unsupported';
8
+ class Transaction extends sdk_core_1.BaseTransaction {
9
+ /**
10
+ * Public constructor.
11
+ *
12
+ * @param {Readonly<CoinConfig>} coinConfig
13
+ * @param common the network commons
14
+ * @param {TxData} txData The object transaction data or encoded transaction data
15
+ */
16
+ constructor(coinConfig, common, txData) {
17
+ super(coinConfig);
18
+ this._common = common;
19
+ if (txData) {
20
+ this.setTransactionData(txData);
21
+ }
22
+ }
23
+ /**
24
+ * return a new Transaction initialized with the serialized tx string
25
+ *
26
+ * @param coinConfig The coin configuration object
27
+ * @param common network commons
28
+ * @param serializedTx The serialized tx string with which to initialize the transaction
29
+ * @returns a new transaction object
30
+ */
31
+ static fromSerialized(coinConfig, common, serializedTx) {
32
+ return new Transaction(coinConfig, common, types_1.EthTransactionData.fromSerialized(serializedTx, common).toJson());
33
+ }
34
+ /**
35
+ * Set the transaction data
36
+ *
37
+ * @param {TxData} txData The transaction data to set
38
+ */
39
+ setTransactionData(txData) {
40
+ this._transactionData = types_1.EthTransactionData.fromJson(txData, this._common);
41
+ this.updateFields();
42
+ }
43
+ /**
44
+ * Update the internal fields based on the currently set transaction data, if there is any
45
+ */
46
+ updateFields() {
47
+ if (!this._transactionData) {
48
+ return;
49
+ }
50
+ const txData = this._transactionData.toJson();
51
+ if (txData.id) {
52
+ this._id = txData.id;
53
+ }
54
+ this._type = utils_1.classifyTransaction(txData.data);
55
+ // reset arrays to empty to ensure that they are only set with one set of fresh values
56
+ this._inputs = [];
57
+ this._outputs = [];
58
+ this._signatures = [];
59
+ if (utils_1.hasSignature(txData)) {
60
+ this._signatures.push(utils_1.toStringSig({ v: txData.v, r: txData.r, s: txData.s }));
61
+ }
62
+ // only send transactions have inputs / outputs / signatures to parse
63
+ if (this._type === sdk_core_1.TransactionType.Send ||
64
+ this._type === sdk_core_1.TransactionType.SendERC721 ||
65
+ this._type === sdk_core_1.TransactionType.SendERC1155) {
66
+ const { to, amount, tokenContractAddress, signature } = utils_1.decodeTransferData(txData.data);
67
+ let coinName;
68
+ if (tokenContractAddress) {
69
+ const token = utils_1.getToken(tokenContractAddress, this._coinConfig.network);
70
+ coinName = token ? token.name : UNSUPPORTED_COIN_NAME;
71
+ }
72
+ else {
73
+ coinName = this._coinConfig.name;
74
+ }
75
+ this.outputs.push({
76
+ address: to,
77
+ value: amount,
78
+ coin: coinName,
79
+ });
80
+ this.inputs.push({
81
+ address: txData.to,
82
+ value: amount,
83
+ coin: coinName,
84
+ });
85
+ this._signatures.push(signature);
86
+ }
87
+ }
88
+ /**
89
+ * Set the transaction type
90
+ *
91
+ * @param {TransactionType} transactionType The transaction type to be set
92
+ */
93
+ setTransactionType(transactionType) {
94
+ this._type = transactionType;
95
+ }
96
+ /** @inheritdoc */
97
+ canSign(key) {
98
+ // TODO: implement this validation for the ethereum network
99
+ return true;
100
+ }
101
+ /**
102
+ * Sign the transaction with the provided key. It does not check if the signer is allowed to sign
103
+ * it or not.
104
+ *
105
+ * @param {KeyPair} keyPair The key to sign the transaction with
106
+ */
107
+ async sign(keyPair) {
108
+ if (!this._transactionData) {
109
+ throw new sdk_core_1.InvalidTransactionError('No transaction data to sign');
110
+ }
111
+ if (!keyPair.getKeys().prv) {
112
+ throw new sdk_core_1.SigningError('Missing private key');
113
+ }
114
+ await this._transactionData.sign(keyPair);
115
+ const txData = this._transactionData.toJson();
116
+ if (txData.id) {
117
+ this._id = txData.id;
118
+ }
119
+ this._signatures.push(utils_1.toStringSig({ v: txData.v, r: txData.r, s: txData.s }));
120
+ }
121
+ /** @inheritdoc */
122
+ toBroadcastFormat() {
123
+ if (this._transactionData) {
124
+ return this._transactionData.toSerialized();
125
+ }
126
+ throw new sdk_core_1.InvalidTransactionError('No transaction data to format');
127
+ }
128
+ /** @inheritdoc */
129
+ toJson() {
130
+ if (this._transactionData) {
131
+ return this._transactionData.toJson();
132
+ }
133
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction');
134
+ }
135
+ }
136
+ exports.Transaction = Transaction;
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLG1EQU84QjtBQUc5QixtQ0FBNkM7QUFDN0MsbUNBQXVHO0FBRXZHLE1BQU0scUJBQXFCLEdBQUcsYUFBYSxDQUFDO0FBRTVDLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBMEI5Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLFVBQWdDLEVBQUUsTUFBc0IsRUFBRSxNQUFlO1FBQ25GLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUE3QkQ7Ozs7Ozs7T0FPRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQzFCLFVBQWdDLEVBQ2hDLE1BQXNCLEVBQ3RCLFlBQW9CO1FBRXBCLE9BQU8sSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSwwQkFBa0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztJQWlCRDs7OztPQUlHO0lBQ0gsa0JBQWtCLENBQUMsTUFBYztRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsMEJBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNPLFlBQVk7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixPQUFPO1NBQ1I7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMs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QUFFLENBQUM7UUFDOUMsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDO1NBQ3RCO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsbUJBQVcsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBRSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBRSxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsaUJBQWlCO1FBQ2YsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDekIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDN0M7UUFDRCxNQUFNLElBQUksa0NBQXVCLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN2QztRQUNELE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FDRjtBQTVKRCxrQ0E0SkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV0aGVyZXVtIHRyYW5zYWN0aW9uIG1vZGVsLiBUaGlzIGlzIHRoZSBiYXNlIG1vZGVsIGZvciBhbGwgZXRoZXJldW0gYmFzZWQgY29pbnMgKENlbG8sIEVUQywgUlNLLCBFVEgpXG4gKi9cbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBFdGhlcmV1bUNvbW1vbiBmcm9tICdAZXRoZXJldW1qcy9jb21tb24nO1xuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgRW50cnksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxufSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IEV0aExpa2VUcmFuc2FjdGlvbkRhdGEsIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgRXRoVHJhbnNhY3Rpb25EYXRhIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBjbGFzc2lmeVRyYW5zYWN0aW9uLCBkZWNvZGVUcmFuc2ZlckRhdGEsIGdldFRva2VuLCBoYXNTaWduYXR1cmUsIHRvU3RyaW5nU2lnIH0gZnJvbSAnLi91dGlscyc7XG5cbmNvbnN0IFVOU1VQUE9SVEVEX0NPSU5fTkFNRSA9ICd1bnN1cHBvcnRlZCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfaWQ6IHN0cmluZzsgLy8gVGhlIHRyYW5zYWN0aW9uIGlkIGFzIHNlZW4gaW4gdGhlIGJsb2NrY2hhaW5cbiAgcHJvdGVjdGVkIF9pbnB1dHM6IEVudHJ5W107XG4gIHByb3RlY3RlZCBfb3V0cHV0czogRW50cnlbXTtcbiAgcHJvdGVjdGVkIF9zaWduYXR1cmVzOiBzdHJpbmdbXTtcbiAgcHJvdGVjdGVkIF90eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIHByb3RlY3RlZCBfY29tbW9uOiBFdGhlcmV1bUNvbW1vbjtcblxuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uRGF0YT86IEV0aExpa2VUcmFuc2FjdGlvbkRhdGE7XG5cbiAgLyoqXG4gICAqIHJldHVybiBhIG5ldyBUcmFuc2FjdGlvbiBpbml0aWFsaXplZCB3aXRoIHRoZSBzZXJpYWxpemVkIHR4IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0gY29pbkNvbmZpZyBUaGUgY29pbiBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKiBAcGFyYW0gY29tbW9uIG5ldHdvcmsgY29tbW9uc1xuICAgKiBAcGFyYW0gc2VyaWFsaXplZFR4IFRoZSBzZXJpYWxpemVkIHR4IHN0cmluZyB3aXRoIHdoaWNoIHRvIGluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIGEgbmV3IHRyYW5zYWN0aW9uIG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VyaWFsaXplZChcbiAgICBjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPixcbiAgICBjb21tb246IEV0aGVyZXVtQ29tbW9uLFxuICAgIHNlcmlhbGl6ZWRUeDogc3RyaW5nXG4gICk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zYWN0aW9uKGNvaW5Db25maWcsIGNvbW1vbiwgRXRoVHJhbnNhY3Rpb25EYXRhLmZyb21TZXJpYWxpemVkKHNlcmlhbGl6ZWRUeCwgY29tbW9uKS50b0pzb24oKSk7XG4gIH1cblxuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRvbmx5PENvaW5Db25maWc+fSBjb2luQ29uZmlnXG4gICAqIEBwYXJhbSBjb21tb24gdGhlIG5ldHdvcmsgY29tbW9uc1xuICAgKiBAcGFyYW0ge1R4RGF0YX0gdHhEYXRhIFRoZSBvYmplY3QgdHJhbnNhY3Rpb24gZGF0YSBvciBlbmNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+LCBjb21tb246IEV0aGVyZXVtQ29tbW9uLCB0eERhdGE/OiBUeERhdGEpIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgICB0aGlzLl9jb21tb24gPSBjb21tb247XG4gICAgaWYgKHR4RGF0YSkge1xuICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvbkRhdGEodHhEYXRhKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHhEYXRhfSB0eERhdGEgVGhlIHRyYW5zYWN0aW9uIGRhdGEgdG8gc2V0XG4gICAqL1xuICBzZXRUcmFuc2FjdGlvbkRhdGEodHhEYXRhOiBUeERhdGEpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbkRhdGEgPSBFdGhUcmFuc2FjdGlvbkRhdGEuZnJvbUpzb24odHhEYXRhLCB0aGlzLl9jb21tb24pO1xuICAgIHRoaXMudXBkYXRlRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHRoZSBpbnRlcm5hbCBmaWVsZHMgYmFzZWQgb24gdGhlIGN1cnJlbnRseSBzZXQgdHJhbnNhY3Rpb24gZGF0YSwgaWYgdGhlcmUgaXMgYW55XG4gICAqL1xuICBwcm90ZWN0ZWQgdXBkYXRlRmllbGRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fdHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdHhEYXRhID0gdGhpcy5fdHJhbnNhY3Rpb25EYXRhLnRvSnNvbigpO1xuICAgIGlmICh0eERhdGEuaWQpIHtcbiAgICAgIHRoaXMuX2lkID0gdHhEYXRhLmlkO1xuICAgIH1cbiAgICB0aGlzLl90eXBlID0gY2xhc3NpZnlUcmFuc2FjdGlvbih0eERhdGEuZGF0YSk7XG5cbiAgICAvLyByZXNldCBhcnJheXMgdG8gZW1wdHkgdG8gZW5zdXJlIHRoYXQgdGhleSBhcmUgb25seSBzZXQgd2l0aCBvbmUgc2V0IG9mIGZyZXNoIHZhbHVlc1xuICAgIHRoaXMuX2lucHV0cyA9IFtdO1xuICAgIHRoaXMuX291dHB1dHMgPSBbXTtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW107XG5cbiAgICBpZiAoaGFzU2lnbmF0dXJlKHR4RGF0YSkpIHtcbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh0b1N0cmluZ1NpZyh7IHY6IHR4RGF0YS52ISwgcjogdHhEYXRhLnIhLCBzOiB0eERhdGEucyEgfSkpO1xuICAgIH1cblxuICAgIC8vIG9ubHkgc2VuZCB0cmFuc2FjdGlvbnMgaGF2ZSBpbnB1dHMgLyBvdXRwdXRzIC8gc2lnbmF0dXJlcyB0byBwYXJzZVxuICAgIGlmIChcbiAgICAgIHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kIHx8XG4gICAgICB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuU2VuZEVSQzcyMSB8fFxuICAgICAgdGhpcy5fdHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLlNlbmRFUkMxMTU1XG4gICAgKSB7XG4gICAgICBjb25zdCB7IHRvLCBhbW91bnQsIHRva2VuQ29udHJhY3RBZGRyZXNzLCBzaWduYXR1cmUgfSA9IGRlY29kZVRyYW5zZmVyRGF0YSh0eERhdGEuZGF0YSk7XG4gICAgICBsZXQgY29pbk5hbWU6IHN0cmluZztcbiAgICAgIGlmICh0b2tlbkNvbnRyYWN0QWRkcmVzcykge1xuICAgICAgICBjb25zdCB0b2tlbiA9IGdldFRva2VuKHRva2VuQ29udHJhY3RBZGRyZXNzLCB0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmspO1xuICAgICAgICBjb2luTmFtZSA9IHRva2VuID8gdG9rZW4ubmFtZSA6IFVOU1VQUE9SVEVEX0NPSU5fTkFNRTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvaW5OYW1lID0gdGhpcy5fY29pbkNvbmZpZy5uYW1lO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm91dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHRvLFxuICAgICAgICB2YWx1ZTogYW1vdW50LFxuICAgICAgICBjb2luOiBjb2luTmFtZSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmlucHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogdHhEYXRhLnRvISwgLy8gdGhlIHNlbmRpbmcgd2FsbGV0IGNvbnRyYWN0IGlzIHRoZSByZWNpcGllbnQgb2YgdGhlIG91dGVyIHRyYW5zYWN0aW9uXG4gICAgICAgIHZhbHVlOiBhbW91bnQsXG4gICAgICAgIGNvaW46IGNvaW5OYW1lLFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGVcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblR5cGV9IHRyYW5zYWN0aW9uVHlwZSBUaGUgdHJhbnNhY3Rpb24gdHlwZSB0byBiZSBzZXRcbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICAvLyBUT0RPOiBpbXBsZW1lbnQgdGhpcyB2YWxpZGF0aW9uIGZvciB0aGUgZXRoZXJldW0gbmV0d29ya1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gdGhlIHRyYW5zYWN0aW9uIHdpdGggdGhlIHByb3ZpZGVkIGtleS4gSXQgZG9lcyBub3QgY2hlY2sgaWYgdGhlIHNpZ25lciBpcyBhbGxvd2VkIHRvIHNpZ25cbiAgICogaXQgb3Igbm90LlxuICAgKlxuICAgKiBAcGFyYW0ge0tleVBhaXJ9IGtleVBhaXIgVGhlIGtleSB0byBzaWduIHRoZSB0cmFuc2FjdGlvbiB3aXRoXG4gICAqL1xuICBhc3luYyBzaWduKGtleVBhaXI6IEtleVBhaXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuX3RyYW5zYWN0aW9uRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdObyB0cmFuc2FjdGlvbiBkYXRhIHRvIHNpZ24nKTtcbiAgICB9XG4gICAgaWYgKCFrZXlQYWlyLmdldEtleXMoKS5wcnYpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5fdHJhbnNhY3Rpb25EYXRhLnNpZ24oa2V5UGFpcik7XG4gICAgY29uc3QgdHhEYXRhID0gdGhpcy5fdHJhbnNhY3Rpb25EYXRhLnRvSnNvbigpO1xuICAgIGlmICh0eERhdGEuaWQpIHtcbiAgICAgIHRoaXMuX2lkID0gdHhEYXRhLmlkO1xuICAgIH1cbiAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2godG9TdHJpbmdTaWcoeyB2OiB0eERhdGEudiEsIHI6IHR4RGF0YS5yISwgczogdHhEYXRhLnMhIH0pKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLl90cmFuc2FjdGlvbkRhdGEpIHtcbiAgICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbkRhdGEudG9TZXJpYWxpemVkKCk7XG4gICAgfVxuICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTm8gdHJhbnNhY3Rpb24gZGF0YSB0byBmb3JtYXQnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogVHhEYXRhIHtcbiAgICBpZiAodGhpcy5fdHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb25EYXRhLnRvSnNvbigpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,239 @@
1
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
+ import EthereumCommon from '@ethereumjs/common';
3
+ import BigNumber from 'bignumber.js';
4
+ import { BaseAddress, BaseKey, BaseTransaction, BaseTransactionBuilder, TransactionType } from '@bitgo-beta/sdk-core';
5
+ import { KeyPair } from './keyPair';
6
+ import { Fee, TxData } from './iface';
7
+ import { ERC1155TransferBuilder } from './transferBuilders/transferBuilderERC1155';
8
+ import { ERC721TransferBuilder } from './transferBuilders/transferBuilderERC721';
9
+ import { Transaction } from './transaction';
10
+ import { TransferBuilder } from './transferBuilder';
11
+ /**
12
+ * EthereumLike transaction builder.
13
+ */
14
+ export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
15
+ protected _type: TransactionType;
16
+ protected _common: EthereumCommon;
17
+ protected _sourceKeyPair: KeyPair;
18
+ private _transaction;
19
+ private _counter;
20
+ private _fee;
21
+ protected _value: string;
22
+ private _txSignature;
23
+ private _walletOwnerAddresses;
24
+ private _walletVersion;
25
+ private _forwarderAddress;
26
+ private _tokenAddress;
27
+ protected _transfer: TransferBuilder | ERC721TransferBuilder | ERC1155TransferBuilder;
28
+ private _contractAddress;
29
+ private _contractCounter;
30
+ private _forwarderVersion;
31
+ private _initCode;
32
+ private _baseAddress;
33
+ private _feeAddress;
34
+ private _data;
35
+ private _salt;
36
+ protected _walletSimpleByteCode: string;
37
+ /**
38
+ * Public constructor.
39
+ *
40
+ * @param _coinConfig
41
+ */
42
+ constructor(_coinConfig: Readonly<CoinConfig>);
43
+ /** @inheritdoc */
44
+ protected buildImplementation(): Promise<BaseTransaction>;
45
+ protected getTransactionData(): TxData;
46
+ /** @inheritdoc */
47
+ protected fromImplementation(rawTransaction: string): Transaction;
48
+ /**
49
+ * Load the builder data using the deserialized transaction
50
+ *
51
+ * @param {TxData} transactionJson the deserialized transaction json
52
+ */
53
+ protected loadBuilderInput(transactionJson: TxData): void;
54
+ protected setTransactionTypeFields(decodedType: TransactionType, transactionJson: TxData): void;
55
+ /** @inheritdoc */
56
+ protected signImplementation(key: BaseKey): BaseTransaction;
57
+ /** @inheritdoc */
58
+ validateAddress(address: BaseAddress): void;
59
+ /** @inheritdoc */
60
+ validateKey(key: BaseKey): void;
61
+ /**
62
+ * Validate the raw transaction is either a JSON or
63
+ * a hex encoded transaction
64
+ *
65
+ * @param {any} rawTransaction The raw transaction to be validated
66
+ */
67
+ validateRawTransaction(rawTransaction: any): void;
68
+ private isEip1559Txn;
69
+ private isRLPDecodable;
70
+ protected validateBaseTransactionFields(): void;
71
+ /** @inheritdoc */
72
+ validateTransaction(transaction: BaseTransaction): void;
73
+ /**
74
+ * Check wallet owner addresses for wallet initialization transactions are valid or throw.
75
+ */
76
+ private validateWalletInitializationFields;
77
+ /**
78
+ * Check if a token address for the tx was defined or throw.
79
+ */
80
+ private validateTokenAddress;
81
+ /**
82
+ * Check if a forwarder address for the tx was defined or throw.
83
+ */
84
+ private validateForwarderAddress;
85
+ /**
86
+ * Check if a contract address for the wallet was defined or throw.
87
+ */
88
+ private validateContractAddress;
89
+ /**
90
+ * Checks if a contract call data field was defined or throws otherwise
91
+ */
92
+ private validateDataField;
93
+ private setContract;
94
+ validateValue(value: BigNumber): void;
95
+ /**
96
+ * The type of transaction being built.
97
+ *
98
+ * @param {TransactionType} type
99
+ */
100
+ type(type: TransactionType): void;
101
+ /**
102
+ * Set the transaction fees. Low fees may get a transaction rejected or never picked up by bakers.
103
+ *
104
+ * @param {Fee} fee Baker fees. May also include the maximum gas to pay
105
+ */
106
+ fee(fee: Fee): void;
107
+ /**
108
+ * Set the transaction counter to prevent submitting repeated transactions.
109
+ *
110
+ * @param {number} counter The counter to use
111
+ */
112
+ counter(counter: number): void;
113
+ /**
114
+ * The value to send along with this transaction. 0 by default
115
+ *
116
+ * @param {string} value The value to send along with this transaction
117
+ */
118
+ value(value: string): void;
119
+ protected buildBase(data: string): TxData;
120
+ /**
121
+ * Set one of the owners of the multisig wallet.
122
+ *
123
+ * @param {string} address An Ethereum address
124
+ */
125
+ owner(address: string): void;
126
+ /**
127
+ * Build a transaction for a generic multisig contract.
128
+ *
129
+ * @returns {TxData} The Ethereum transaction data
130
+ */
131
+ protected buildWalletInitializationTransaction(walletVersion?: number): TxData;
132
+ /**
133
+ * Returns the smart contract encoded data
134
+ *
135
+ * @param {string[]} addresses - the contract signers
136
+ * @returns {string} - the smart contract encoded data
137
+ */
138
+ protected getContractData(addresses: string[]): string;
139
+ contract(address: string): void;
140
+ /**
141
+ * Gets the transfer funds builder if exist, or creates a new one for this transaction and returns it
142
+ *
143
+ * @param [data] transfer data to initialize the transfer builder with, empty if none given
144
+ * @returns {TransferBuilder | ERC721TransferBuilder | ERC1155TransferBuilder} the transfer builder
145
+ */
146
+ abstract transfer(data?: string): TransferBuilder | ERC721TransferBuilder | ERC1155TransferBuilder;
147
+ /**
148
+ * Returns the serialized sendMultiSig contract method data
149
+ *
150
+ * @returns {string} serialized sendMultiSig data
151
+ */
152
+ private getSendData;
153
+ private buildSendTransaction;
154
+ /**
155
+ * Set the contract transaction nonce to calculate the forwarder address.
156
+ *
157
+ * @param {number} contractCounter The counter to use
158
+ */
159
+ contractCounter(contractCounter: number): void;
160
+ /**
161
+ * Build a transaction to create a forwarder.
162
+ *
163
+ * @returns {TxData} The Ethereum transaction data
164
+ */
165
+ private buildAddressInitializationTransaction;
166
+ /**
167
+ * Set the forwarder address to flush
168
+ *
169
+ * @param {string} address The address to flush
170
+ */
171
+ forwarderAddress(address: string): void;
172
+ /**
173
+ * Set the address of the ERC20 token contract that we are flushing tokens for
174
+ *
175
+ * @param {string} address the contract address of the token to flush
176
+ */
177
+ tokenAddress(address: string): void;
178
+ /**
179
+ * Build a transaction to flush tokens from a forwarder.
180
+ *
181
+ * @returns {TxData} The Ethereum transaction data
182
+ */
183
+ private buildFlushTokensTransaction;
184
+ /**
185
+ * Build a transaction to flush tokens from a forwarder.
186
+ *
187
+ * @returns {TxData} The Ethereum transaction data
188
+ */
189
+ private buildFlushCoinsTransaction;
190
+ data(encodedCall: string): void;
191
+ private buildGenericContractCallTransaction;
192
+ /** @inheritdoc */
193
+ protected get transaction(): Transaction;
194
+ /** @inheritdoc */
195
+ protected set transaction(transaction: Transaction);
196
+ /**
197
+ * Get the final v value. Final v is described in EIP-155.
198
+ *
199
+ * @protected for internal use when the enableFinalVField flag is true.
200
+ */
201
+ protected getFinalV(): string;
202
+ /**
203
+ * Set the forwarder version for address to be initialized
204
+ *
205
+ * @param {number} version forwarder version
206
+ */
207
+ forwarderVersion(version: number): void;
208
+ /**
209
+ * Set the salt to create the address using create2
210
+ *
211
+ * @param {string} salt The salt to create the address using create2, hex string
212
+ */
213
+ salt(salt: string): void;
214
+ /**
215
+ * Take the implementation address for the proxy contract, and get the binary initcode for the associated proxy
216
+ *
217
+ * @param {string} implementationAddress The address of the implementation contract
218
+ */
219
+ initCode(implementationAddress: string): void;
220
+ /**
221
+ * Set the wallet version for wallet to be initialized
222
+ *
223
+ * @param {number} version wallet version
224
+ */
225
+ walletVersion(version: number): void;
226
+ /**
227
+ * Set the base address of the wallet
228
+ *
229
+ * @param {string} address The wallet contract address
230
+ */
231
+ baseAddress(address: string): void;
232
+ /**
233
+ * Set the fee address of the wallet
234
+ *
235
+ * @param {string} address The fee address of the wallet
236
+ */
237
+ feeAddress(address: string): void;
238
+ }
239
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"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"}