@bitgo-beta/abstract-eth 1.2.3-alpha.89 → 1.2.3-alpha.90

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 (62) hide show
  1. package/dist/src/abstractEthLikeCoin.d.ts +3 -2
  2. package/dist/src/abstractEthLikeCoin.d.ts.map +1 -1
  3. package/dist/src/abstractEthLikeCoin.js +9 -9
  4. package/dist/src/abstractEthLikeNewCoins.d.ts +93 -0
  5. package/dist/src/abstractEthLikeNewCoins.d.ts.map +1 -0
  6. package/dist/src/abstractEthLikeNewCoins.js +147 -0
  7. package/dist/src/ethLikeToken.d.ts +7 -2
  8. package/dist/src/ethLikeToken.d.ts.map +1 -1
  9. package/dist/src/ethLikeToken.js +8 -5
  10. package/dist/src/index.d.ts +2 -2
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +3 -3
  13. package/dist/src/lib/contractCall.d.ts +8 -0
  14. package/dist/src/lib/contractCall.d.ts.map +1 -0
  15. package/dist/src/lib/contractCall.js +17 -0
  16. package/dist/src/lib/iface.d.ts +130 -0
  17. package/dist/src/lib/iface.d.ts.map +1 -0
  18. package/dist/src/lib/iface.js +8 -0
  19. package/dist/src/lib/index.d.ts +15 -0
  20. package/dist/src/lib/index.d.ts.map +1 -0
  21. package/dist/src/lib/index.js +42 -0
  22. package/dist/src/lib/keyPair.d.ts +26 -0
  23. package/dist/src/lib/keyPair.d.ts.map +1 -0
  24. package/dist/src/lib/keyPair.js +66 -0
  25. package/dist/src/lib/transaction.d.ts +64 -0
  26. package/dist/src/lib/transaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction.js +137 -0
  28. package/dist/src/lib/transactionBuilder.d.ts +231 -0
  29. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  30. package/dist/src/lib/transactionBuilder.js +674 -0
  31. package/dist/src/lib/transferBuilder.d.ts +65 -0
  32. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  33. package/dist/src/lib/transferBuilder.js +221 -0
  34. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts +47 -0
  35. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.d.ts.map +1 -0
  36. package/dist/src/lib/transferBuilders/baseNFTTransferBuilder.js +113 -0
  37. package/dist/src/lib/transferBuilders/index.d.ts +4 -0
  38. package/dist/src/lib/transferBuilders/index.d.ts.map +1 -0
  39. package/dist/src/lib/transferBuilders/index.js +16 -0
  40. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts +14 -0
  41. package/dist/src/lib/transferBuilders/transferBuilderERC1155.d.ts.map +1 -0
  42. package/dist/src/lib/transferBuilders/transferBuilderERC1155.js +83 -0
  43. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts +13 -0
  44. package/dist/src/lib/transferBuilders/transferBuilderERC721.d.ts.map +1 -0
  45. package/dist/src/lib/transferBuilders/transferBuilderERC721.js +68 -0
  46. package/dist/src/lib/types.d.ts +39 -0
  47. package/dist/src/lib/types.d.ts.map +1 -0
  48. package/dist/src/lib/types.js +137 -0
  49. package/dist/src/lib/utils.d.ts +228 -0
  50. package/dist/src/lib/utils.d.ts.map +1 -0
  51. package/dist/src/lib/utils.js +577 -0
  52. package/dist/src/lib/walletUtil.d.ts +26 -0
  53. package/dist/src/lib/walletUtil.d.ts.map +1 -0
  54. package/dist/src/lib/walletUtil.js +29 -0
  55. package/dist/tsconfig.tsbuildinfo +1 -1
  56. package/package.json +13 -7
  57. package/dist/src/abstractEthLikeMPCCoin.d.ts +0 -12
  58. package/dist/src/abstractEthLikeMPCCoin.d.ts.map +0 -1
  59. package/dist/src/abstractEthLikeMPCCoin.js +0 -16
  60. package/dist/src/ethLikeMPCToken.d.ts +0 -12
  61. package/dist/src/ethLikeMPCToken.d.ts.map +0 -1
  62. package/dist/src/ethLikeMPCToken.js +0 -16
@@ -0,0 +1,13 @@
1
+ import { BaseNFTTransferBuilder } from './baseNFTTransferBuilder';
2
+ export declare class ERC721TransferBuilder extends BaseNFTTransferBuilder {
3
+ private _tokenId;
4
+ private _bytes;
5
+ constructor(serializedData?: string);
6
+ tokenContractAddress(address: string): ERC721TransferBuilder;
7
+ tokenId(token: string): ERC721TransferBuilder;
8
+ bytes(bytesInNumber: number): ERC721TransferBuilder;
9
+ signAndBuild(): string;
10
+ private hasMandatoryFields;
11
+ private decodeTransferData;
12
+ }
13
+ //# sourceMappingURL=transferBuilderERC721.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transferBuilderERC721.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilders/transferBuilderERC721.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,qBAAsB,SAAQ,sBAAsB;IAC/D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,cAAc,CAAC,EAAE,MAAM;IAQnC,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB;IAQ5D,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,qBAAqB;IAK7C,KAAK,CAAC,aAAa,EAAE,MAAM,GAAG,qBAAqB;IAKnD,YAAY,IAAI,MAAM;IAuBtB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;CAa3B"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC721TransferBuilder = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ const utils_1 = require("ethers/lib/utils");
6
+ const contractCall_1 = require("../contractCall");
7
+ const utils_2 = require("../utils");
8
+ const baseNFTTransferBuilder_1 = require("./baseNFTTransferBuilder");
9
+ const walletUtil_1 = require("../walletUtil");
10
+ class ERC721TransferBuilder extends baseNFTTransferBuilder_1.BaseNFTTransferBuilder {
11
+ constructor(serializedData) {
12
+ super(serializedData);
13
+ this.bytes(0);
14
+ if (serializedData) {
15
+ this.decodeTransferData(serializedData);
16
+ }
17
+ }
18
+ tokenContractAddress(address) {
19
+ if (utils_2.isValidEthAddress(address)) {
20
+ this._tokenContractAddress = address;
21
+ return this;
22
+ }
23
+ throw new sdk_core_1.InvalidParameterValueError('Invalid address');
24
+ }
25
+ tokenId(token) {
26
+ this._tokenId = token;
27
+ return this;
28
+ }
29
+ bytes(bytesInNumber) {
30
+ this._bytes = utils_1.hexZeroPad(utils_1.hexlify(bytesInNumber), 32);
31
+ return this;
32
+ }
33
+ signAndBuild() {
34
+ if (this.hasMandatoryFields()) {
35
+ const types = ['address', 'address', 'uint256', 'bytes'];
36
+ const values = [this._fromAddress, this._toAddress, this._tokenId, this._bytes];
37
+ const contractCall = new contractCall_1.ContractCall(walletUtil_1.ERC721SafeTransferTypeMethodId, types, values);
38
+ this._data = contractCall.serialize();
39
+ return utils_2.sendMultiSigData(this._tokenContractAddress, // to
40
+ '0', // dummy amount value
41
+ this._data, this._expirationTime, this._sequenceId, this.getSignature());
42
+ }
43
+ throw new sdk_core_1.BuildTransactionError(`Missing transfer mandatory fields.
44
+ Destination (to) address, Source (from) address, sequenceID, the token contract address and tokenID are mandatory`);
45
+ }
46
+ hasMandatoryFields() {
47
+ return (this._tokenId !== undefined &&
48
+ this._toAddress !== undefined &&
49
+ this._fromAddress !== undefined &&
50
+ this._tokenContractAddress !== undefined &&
51
+ this._sequenceId !== undefined);
52
+ }
53
+ decodeTransferData(data) {
54
+ const transferData = utils_2.decodeERC721TransferData(data);
55
+ this._toAddress = transferData.to;
56
+ this._fromAddress = transferData.from;
57
+ this._expirationTime = transferData.expireTime;
58
+ this._sequenceId = transferData.sequenceId;
59
+ this._signature = transferData.signature;
60
+ this._tokenContractAddress = transferData.tokenContractAddress;
61
+ this._tokenId = transferData.tokenId;
62
+ if (transferData.data) {
63
+ this._data = transferData.data;
64
+ }
65
+ }
66
+ }
67
+ exports.ERC721TransferBuilder = ERC721TransferBuilder;
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyRVJDNzIxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXJzL3RyYW5zZmVyQnVpbGRlckVSQzcyMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBeUY7QUFDekYsNENBQXVEO0FBRXZELGtEQUErQztBQUMvQyxvQ0FBeUY7QUFDekYscUVBQWtFO0FBQ2xFLDhDQUErRDtBQUUvRCxNQUFhLHFCQUFzQixTQUFRLCtDQUFzQjtJQUkvRCxZQUFZLGNBQXVCO1FBQ2pDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxjQUFjLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQWU7UUFDbEMsSUFBSSx5QkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUcsT0FBTyxDQUFDO1lBQ3JDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFDRCxNQUFNLElBQUkscUNBQTBCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQXFCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsa0JBQVUsQ0FBQyxlQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUU7WUFDN0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUN6RCxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRixNQUFNLFlBQVksR0FBRyxJQUFJLDJCQUFZLENBQUMsMkNBQThCLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3JGLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRXRDLE9BQU8sd0JBQWdCLENBQ3JCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLO1lBQ2pDLEdBQUcsRUFBRSxxQkFBcUI7WUFDMUIsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQ3BCLENBQUM7U0FDSDtRQUVELE1BQU0sSUFBSSxnQ0FBcUIsQ0FDN0I7eUhBQ21ILENBQ3BILENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE9BQU8sQ0FDTCxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsS0FBSyxTQUFTO1lBQzdCLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUztZQUMvQixJQUFJLENBQUMscUJBQXFCLEtBQUssU0FBUztZQUN4QyxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFZO1FBQ3JDLE1BQU0sWUFBWSxHQUFHLGdDQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUM7UUFDdEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO1FBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztRQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDckMsSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQztTQUNoQztJQUNILENBQUM7Q0FDRjtBQTVFRCxzREE0RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgaGV4bGlmeSwgaGV4WmVyb1BhZCB9IGZyb20gJ2V0aGVycy9saWIvdXRpbHMnO1xuXG5pbXBvcnQgeyBDb250cmFjdENhbGwgfSBmcm9tICcuLi9jb250cmFjdENhbGwnO1xuaW1wb3J0IHsgZGVjb2RlRVJDNzIxVHJhbnNmZXJEYXRhLCBpc1ZhbGlkRXRoQWRkcmVzcywgc2VuZE11bHRpU2lnRGF0YSB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEJhc2VORlRUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL2Jhc2VORlRUcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgRVJDNzIxU2FmZVRyYW5zZmVyVHlwZU1ldGhvZElkIH0gZnJvbSAnLi4vd2FsbGV0VXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBFUkM3MjFUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBCYXNlTkZUVHJhbnNmZXJCdWlsZGVyIHtcbiAgcHJpdmF0ZSBfdG9rZW5JZDogc3RyaW5nO1xuICBwcml2YXRlIF9ieXRlczogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNlcmlhbGl6ZWREYXRhPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2VyaWFsaXplZERhdGEpO1xuICAgIHRoaXMuYnl0ZXMoMCk7XG4gICAgaWYgKHNlcmlhbGl6ZWREYXRhKSB7XG4gICAgICB0aGlzLmRlY29kZVRyYW5zZmVyRGF0YShzZXJpYWxpemVkRGF0YSk7XG4gICAgfVxuICB9XG5cbiAgdG9rZW5Db250cmFjdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogRVJDNzIxVHJhbnNmZXJCdWlsZGVyIHtcbiAgICBpZiAoaXNWYWxpZEV0aEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzID0gYWRkcmVzcztcbiAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgSW52YWxpZFBhcmFtZXRlclZhbHVlRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICB9XG5cbiAgdG9rZW5JZCh0b2tlbjogc3RyaW5nKTogRVJDNzIxVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl90b2tlbklkID0gdG9rZW47XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBieXRlcyhieXRlc0luTnVtYmVyOiBudW1iZXIpOiBFUkM3MjFUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMuX2J5dGVzID0gaGV4WmVyb1BhZChoZXhsaWZ5KGJ5dGVzSW5OdW1iZXIpLCAzMik7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzaWduQW5kQnVpbGQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oYXNNYW5kYXRvcnlGaWVsZHMoKSkge1xuICAgICAgY29uc3QgdHlwZXMgPSBbJ2FkZHJlc3MnLCAnYWRkcmVzcycsICd1aW50MjU2JywgJ2J5dGVzJ107XG4gICAgICBjb25zdCB2YWx1ZXMgPSBbdGhpcy5fZnJvbUFkZHJlc3MsIHRoaXMuX3RvQWRkcmVzcywgdGhpcy5fdG9rZW5JZCwgdGhpcy5fYnl0ZXNdO1xuICAgICAgY29uc3QgY29udHJhY3RDYWxsID0gbmV3IENvbnRyYWN0Q2FsbChFUkM3MjFTYWZlVHJhbnNmZXJUeXBlTWV0aG9kSWQsIHR5cGVzLCB2YWx1ZXMpO1xuICAgICAgdGhpcy5fZGF0YSA9IGNvbnRyYWN0Q2FsbC5zZXJpYWxpemUoKTtcblxuICAgICAgcmV0dXJuIHNlbmRNdWx0aVNpZ0RhdGEoXG4gICAgICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzLCAvLyB0b1xuICAgICAgICAnMCcsIC8vIGR1bW15IGFtb3VudCB2YWx1ZVxuICAgICAgICB0aGlzLl9kYXRhLFxuICAgICAgICB0aGlzLl9leHBpcmF0aW9uVGltZSxcbiAgICAgICAgdGhpcy5fc2VxdWVuY2VJZCxcbiAgICAgICAgdGhpcy5nZXRTaWduYXR1cmUoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKFxuICAgICAgYE1pc3NpbmcgdHJhbnNmZXIgbWFuZGF0b3J5IGZpZWxkcy4gXG4gICAgICAgRGVzdGluYXRpb24gKHRvKSBhZGRyZXNzLCBTb3VyY2UgKGZyb20pIGFkZHJlc3MsIHNlcXVlbmNlSUQsIHRoZSB0b2tlbiBjb250cmFjdCBhZGRyZXNzIGFuZCB0b2tlbklEIGFyZSBtYW5kYXRvcnlgXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzTWFuZGF0b3J5RmllbGRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLl90b2tlbklkICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHRoaXMuX3RvQWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLl9mcm9tQWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICB0aGlzLl9zZXF1ZW5jZUlkICE9PSB1bmRlZmluZWRcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBkZWNvZGVUcmFuc2ZlckRhdGEoZGF0YTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgdHJhbnNmZXJEYXRhID0gZGVjb2RlRVJDNzIxVHJhbnNmZXJEYXRhKGRhdGEpO1xuICAgIHRoaXMuX3RvQWRkcmVzcyA9IHRyYW5zZmVyRGF0YS50bztcbiAgICB0aGlzLl9mcm9tQWRkcmVzcyA9IHRyYW5zZmVyRGF0YS5mcm9tO1xuICAgIHRoaXMuX2V4cGlyYXRpb25UaW1lID0gdHJhbnNmZXJEYXRhLmV4cGlyZVRpbWU7XG4gICAgdGhpcy5fc2VxdWVuY2VJZCA9IHRyYW5zZmVyRGF0YS5zZXF1ZW5jZUlkO1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHRyYW5zZmVyRGF0YS5zaWduYXR1cmU7XG4gICAgdGhpcy5fdG9rZW5Db250cmFjdEFkZHJlc3MgPSB0cmFuc2ZlckRhdGEudG9rZW5Db250cmFjdEFkZHJlc3M7XG4gICAgdGhpcy5fdG9rZW5JZCA9IHRyYW5zZmVyRGF0YS50b2tlbklkO1xuICAgIGlmICh0cmFuc2ZlckRhdGEuZGF0YSkge1xuICAgICAgdGhpcy5fZGF0YSA9IHRyYW5zZmVyRGF0YS5kYXRhO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,39 @@
1
+ import { TypedTransaction } from '@ethereumjs/tx';
2
+ import EthereumCommon from '@ethereumjs/common';
3
+ import { EthLikeTransactionData, TxData } from './iface';
4
+ import { KeyPair } from './keyPair';
5
+ /**
6
+ * An Ethereum transaction with helpers for serialization and deserialization.
7
+ */
8
+ export declare class EthTransactionData implements EthLikeTransactionData {
9
+ private tx;
10
+ protected args?: {
11
+ deployedAddress?: string;
12
+ chainId?: string;
13
+ };
14
+ constructor(tx: TypedTransaction, args?: {
15
+ deployedAddress?: string;
16
+ chainId?: string;
17
+ });
18
+ /**
19
+ * Build an thereum transaction from its JSON representation
20
+ *
21
+ * @param {TxData} tx The JSON representation of the transaction
22
+ * @param {EthereumCommon} common Class to access chain and hardfork parameters
23
+ * @returns {EthTransactionData} a new ethereum transaction object
24
+ */
25
+ static fromJson(tx: TxData, common: EthereumCommon): EthTransactionData;
26
+ /**
27
+ * Build an ethereum transaction from its string serialization
28
+ *
29
+ * @param tx The string serialization of the ethereum transaction
30
+ * @param common
31
+ */
32
+ static fromSerialized(tx: string, common: EthereumCommon): EthTransactionData;
33
+ sign(keyPair: KeyPair): void;
34
+ /** @inheritdoc */
35
+ toJson(): TxData;
36
+ /** @inheritdoc */
37
+ toSerialized(): string;
38
+ }
39
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,gBAAgB,EAIjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAA6B,sBAAsB,EAAoC,MAAM,EAAE,MAAM,SAAS,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;GAEG;AACH,qBAAa,kBAAmB,YAAW,sBAAsB;IAC/D,OAAO,CAAC,EAAE,CAAmB;IAC7B,SAAS,CAAC,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;gBAEpD,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAKvF;;;;;;OAMG;WACW,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB;IAuC9E;;;;;OAKG;WACW,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,kBAAkB;IAMpF,IAAI,CAAC,OAAO,EAAE,OAAO;IAKrB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA2DhB,kBAAkB;IAClB,YAAY,IAAI,MAAM;CAGvB"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.EthTransactionData = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const tx_1 = require("@ethereumjs/tx");
10
+ const ethereumjs_util_1 = require("ethereumjs-util");
11
+ const iface_1 = require("./iface");
12
+ // https://github.com/ethereumjs/ethereumjs-monorepo/blob/master/packages/tx/src/transactionFactory.ts#L31
13
+ const LEGACY_TX_TYPE = 0;
14
+ const EIP1559_TX_TYPE = 2;
15
+ /**
16
+ * An Ethereum transaction with helpers for serialization and deserialization.
17
+ */
18
+ class EthTransactionData {
19
+ constructor(tx, args) {
20
+ this.tx = tx;
21
+ this.args = args;
22
+ }
23
+ /**
24
+ * Build an thereum transaction from its JSON representation
25
+ *
26
+ * @param {TxData} tx The JSON representation of the transaction
27
+ * @param {EthereumCommon} common Class to access chain and hardfork parameters
28
+ * @returns {EthTransactionData} a new ethereum transaction object
29
+ */
30
+ static fromJson(tx, common) {
31
+ const nonce = ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.nonce).toString(16));
32
+ const value = ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.value).toString(16));
33
+ const gasLimit = ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.gasLimit).toString(16));
34
+ const chainId = tx.chainId ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.chainId).toString(16)) : undefined;
35
+ const gasPrice = isLegacyTx(tx) ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.gasPrice).toString(16)) : undefined;
36
+ const maxFeePerGas = isEIP1559Txn(tx) ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.maxFeePerGas).toString(16)) : undefined;
37
+ const maxPriorityFeePerGas = isEIP1559Txn(tx)
38
+ ? ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(tx.maxPriorityFeePerGas).toString(16))
39
+ : undefined;
40
+ return new EthTransactionData(tx_1.TransactionFactory.fromTxData({
41
+ type: isLegacyTx(tx) ? LEGACY_TX_TYPE : EIP1559_TX_TYPE,
42
+ chainId,
43
+ nonce,
44
+ to: tx.to,
45
+ gasPrice,
46
+ gasLimit,
47
+ maxFeePerGas,
48
+ maxPriorityFeePerGas,
49
+ value,
50
+ data: tx.data,
51
+ v: tx.v,
52
+ r: tx.r,
53
+ s: tx.s,
54
+ }, { common: common }), {
55
+ deployedAddress: tx.deployedAddress,
56
+ chainId: ethereumjs_util_1.addHexPrefix(new bignumber_js_1.default(Number(tx.chainId)).toString(16)),
57
+ });
58
+ }
59
+ /**
60
+ * Build an ethereum transaction from its string serialization
61
+ *
62
+ * @param tx The string serialization of the ethereum transaction
63
+ * @param common
64
+ */
65
+ static fromSerialized(tx, common) {
66
+ return new EthTransactionData(tx_1.TransactionFactory.fromSerializedData(ethereumjs_util_1.toBuffer(ethereumjs_util_1.addHexPrefix(tx)), { common: common }));
67
+ }
68
+ sign(keyPair) {
69
+ const privateKey = Buffer.from(keyPair.getKeys().prv, 'hex');
70
+ this.tx = this.tx.sign(privateKey);
71
+ }
72
+ /** @inheritdoc */
73
+ toJson() {
74
+ const result = {
75
+ nonce: ethereumjs_util_1.bufferToInt(ethereumjs_util_1.toUnsigned(this.tx.nonce)),
76
+ gasLimit: new bignumber_js_1.default(ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.gasLimit)), 16).toString(10),
77
+ value: this.tx.value.toString(10),
78
+ data: ethereumjs_util_1.bufferToHex(this.tx.data),
79
+ };
80
+ if (this.tx.isSigned()) {
81
+ result.id = ethereumjs_util_1.addHexPrefix(ethereumjs_util_1.bufferToHex(this.tx.hash()));
82
+ }
83
+ else {
84
+ result.id = ethereumjs_util_1.addHexPrefix(ethereumjs_util_1.bufferToHex(this.tx.getMessageToSign()));
85
+ }
86
+ if (this.tx.to) {
87
+ result.to = ethereumjs_util_1.bufferToHex(this.tx.to.toBuffer());
88
+ }
89
+ if (this.tx.verifySignature()) {
90
+ result.from = ethereumjs_util_1.bufferToHex(this.tx.getSenderAddress().toBuffer());
91
+ assert_1.default(this.tx.r != undefined);
92
+ result.r = ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.r));
93
+ assert_1.default(this.tx.s != undefined);
94
+ result.s = ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.s));
95
+ }
96
+ if (this.tx.v) {
97
+ result.v = ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.v));
98
+ }
99
+ result.chainId = ethereumjs_util_1.addHexPrefix(this.tx.common.chainIdBN().toString(16));
100
+ if (this.args && this.args.deployedAddress) {
101
+ result.deployedAddress = this.args.deployedAddress;
102
+ }
103
+ if (this.tx instanceof tx_1.Transaction) {
104
+ const gasPrice = new bignumber_js_1.default(ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.gasPrice)), 16).toString(10);
105
+ return {
106
+ ...result,
107
+ _type: iface_1.ETHTransactionType.LEGACY,
108
+ gasPrice,
109
+ };
110
+ }
111
+ else if (this.tx instanceof tx_1.FeeMarketEIP1559Transaction) {
112
+ const maxFeePerGas = new bignumber_js_1.default(ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.maxFeePerGas)), 16).toString(10);
113
+ const maxPriorityFeePerGas = new bignumber_js_1.default(ethereumjs_util_1.bufferToHex(ethereumjs_util_1.toUnsigned(this.tx.maxPriorityFeePerGas)), 16).toString(10);
114
+ return {
115
+ ...result,
116
+ _type: iface_1.ETHTransactionType.EIP1559,
117
+ maxFeePerGas,
118
+ maxPriorityFeePerGas,
119
+ };
120
+ }
121
+ else {
122
+ throw new Error(`Unsupported tx type: ${tx_1.AccessListEIP2930Transaction.name}`);
123
+ }
124
+ }
125
+ /** @inheritdoc */
126
+ toSerialized() {
127
+ return ethereumjs_util_1.addHexPrefix(this.tx.serialize().toString('hex'));
128
+ }
129
+ }
130
+ exports.EthTransactionData = EthTransactionData;
131
+ function isLegacyTx(tx) {
132
+ return tx._type === iface_1.ETHTransactionType.LEGACY;
133
+ }
134
+ function isEIP1559Txn(tx) {
135
+ return tx._type === iface_1.ETHTransactionType.EIP1559;
136
+ }
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9EQUE0QjtBQUM1QixnRUFBcUM7QUFDckMsdUNBTXdCO0FBRXhCLHFEQUErRjtBQUMvRixtQ0FBc0g7QUFHdEgsMEdBQTBHO0FBQzFHLE1BQU0sY0FBYyxHQUFHLENBQUMsQ0FBQztBQUN6QixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUM7QUFFMUI7O0dBRUc7QUFDSCxNQUFhLGtCQUFrQjtJQUk3QixZQUFZLEVBQW9CLEVBQUUsSUFBcUQ7UUFDckYsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFVLEVBQUUsTUFBc0I7UUFDdkQsTUFBTSxLQUFLLEdBQUcsOEJBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLDhCQUFZLENBQUMsSUFBSSxzQkFBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRSxNQUFNLFFBQVEsR0FBRyw4QkFBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkUsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsOEJBQVksQ0FBQyxJQUFJLHNCQUFTLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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RSxDQUNILENBQUM7WUFFRixPQUFPO2dCQUNMLEdBQUcsTUFBTTtnQkFDVCxLQUFLLEVBQUUsMEJBQWtCLENBQUMsT0FBTztnQkFDakMsWUFBWTtnQkFDWixvQkFBb0I7YUFDckIsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixpQ0FBNEIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzlFO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZO1FBQ1YsT0FBTyw4QkFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztDQUNGO0FBeElELGdEQXdJQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQVU7SUFDNUIsT0FBTyxFQUFFLENBQUMsS0FBSyxLQUFLLDBCQUFrQixDQUFDLE1BQU0sQ0FBQztBQUNoRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsRUFBVTtJQUM5QixPQUFPLEVBQUUsQ0FBQyxLQUFLLEtBQUssMEJBQWtCLENBQUMsT0FBTyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbkZhY3RvcnksXG4gIFR5cGVkVHJhbnNhY3Rpb24sXG4gIFRyYW5zYWN0aW9uIGFzIExlZ2FjeVRyYW5zYWN0aW9uLFxuICBGZWVNYXJrZXRFSVAxNTU5VHJhbnNhY3Rpb24sXG4gIEFjY2Vzc0xpc3RFSVAyOTMwVHJhbnNhY3Rpb24sXG59IGZyb20gJ0BldGhlcmV1bWpzL3R4JztcbmltcG9ydCBFdGhlcmV1bUNvbW1vbiBmcm9tICdAZXRoZXJldW1qcy9jb21tb24nO1xuaW1wb3J0IHsgYnVmZmVyVG9IZXgsIGJ1ZmZlclRvSW50LCB0b0J1ZmZlciwgdG9VbnNpZ25lZCwgYWRkSGV4UHJlZml4IH0gZnJvbSAnZXRoZXJldW1qcy11dGlsJztcbmltcG9ydCB7IEJhc2VUeERhdGEsIEVJUDE1NTlUeERhdGEsIEV0aExpa2VUcmFuc2FjdGlvbkRhdGEsIExlZ2FjeVR4RGF0YSwgRVRIVHJhbnNhY3Rpb25UeXBlLCBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuXG4vLyBodHRwczovL2dpdGh1Yi5jb20vZXRoZXJldW1qcy9ldGhlcmV1bWpzLW1vbm9yZXBvL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3R4L3NyYy90cmFuc2FjdGlvbkZhY3RvcnkudHMjTDMxXG5jb25zdCBMRUdBQ1lfVFhfVFlQRSA9IDA7XG5jb25zdCBFSVAxNTU5X1RYX1RZUEUgPSAyO1xuXG4vKipcbiAqIEFuIEV0aGVyZXVtIHRyYW5zYWN0aW9uIHdpdGggaGVscGVycyBmb3Igc2VyaWFsaXphdGlvbiBhbmQgZGVzZXJpYWxpemF0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgRXRoVHJhbnNhY3Rpb25EYXRhIGltcGxlbWVudHMgRXRoTGlrZVRyYW5zYWN0aW9uRGF0YSB7XG4gIHByaXZhdGUgdHg6IFR5cGVkVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBhcmdzPzogeyBkZXBsb3llZEFkZHJlc3M/OiBzdHJpbmc7IGNoYWluSWQ/OiBzdHJpbmcgfTtcblxuICBjb25zdHJ1Y3Rvcih0eDogVHlwZWRUcmFuc2FjdGlvbiwgYXJncz86IHsgZGVwbG95ZWRBZGRyZXNzPzogc3RyaW5nOyBjaGFpbklkPzogc3RyaW5nIH0pIHtcbiAgICB0aGlzLnR4ID0gdHg7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBhbiB0aGVyZXVtIHRyYW5zYWN0aW9uIGZyb20gaXRzIEpTT04gcmVwcmVzZW50YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHtUeERhdGF9IHR4IFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge0V0aGVyZXVtQ29tbW9ufSBjb21tb24gQ2xhc3MgdG8gYWNjZXNzIGNoYWluIGFuZCBoYXJkZm9yayBwYXJhbWV0ZXJzXG4gICAqIEByZXR1cm5zIHtFdGhUcmFuc2FjdGlvbkRhdGF9IGEgbmV3IGV0aGVyZXVtIHRyYW5zYWN0aW9uIG9iamVjdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tSnNvbih0eDogVHhEYXRhLCBjb21tb246IEV0aGVyZXVtQ29tbW9uKTogRXRoVHJhbnNhY3Rpb25EYXRhIHtcbiAgICBjb25zdCBub25jZSA9IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4Lm5vbmNlKS50b1N0cmluZygxNikpO1xuICAgIGNvbnN0IHZhbHVlID0gYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHgudmFsdWUpLnRvU3RyaW5nKDE2KSk7XG4gICAgY29uc3QgZ2FzTGltaXQgPSBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcih0eC5nYXNMaW1pdCkudG9TdHJpbmcoMTYpKTtcbiAgICBjb25zdCBjaGFpbklkID0gdHguY2hhaW5JZCA/IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4LmNoYWluSWQpLnRvU3RyaW5nKDE2KSkgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBnYXNQcmljZSA9IGlzTGVnYWN5VHgodHgpID8gYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHguZ2FzUHJpY2UpLnRvU3RyaW5nKDE2KSkgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBtYXhGZWVQZXJHYXMgPSBpc0VJUDE1NTlUeG4odHgpID8gYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHgubWF4RmVlUGVyR2FzKS50b1N0cmluZygxNikpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1heFByaW9yaXR5RmVlUGVyR2FzID0gaXNFSVAxNTU5VHhuKHR4KVxuICAgICAgPyBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcih0eC5tYXhQcmlvcml0eUZlZVBlckdhcykudG9TdHJpbmcoMTYpKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gbmV3IEV0aFRyYW5zYWN0aW9uRGF0YShcbiAgICAgIFRyYW5zYWN0aW9uRmFjdG9yeS5mcm9tVHhEYXRhKFxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogaXNMZWdhY3lUeCh0eCkgPyBMRUdBQ1lfVFhfVFlQRSA6IEVJUDE1NTlfVFhfVFlQRSxcbiAgICAgICAgICBjaGFpbklkLFxuICAgICAgICAgIG5vbmNlLFxuICAgICAgICAgIHRvOiB0eC50byxcbiAgICAgICAgICBnYXNQcmljZSxcbiAgICAgICAgICBnYXNMaW1pdCxcbiAgICAgICAgICBtYXhGZWVQZXJHYXMsXG4gICAgICAgICAgbWF4UHJpb3JpdHlGZWVQZXJHYXMsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgZGF0YTogdHguZGF0YSxcbiAgICAgICAgICB2OiB0eC52LFxuICAgICAgICAgIHI6IHR4LnIsXG4gICAgICAgICAgczogdHgucyxcbiAgICAgICAgfSxcbiAgICAgICAgeyBjb21tb246IGNvbW1vbiB9XG4gICAgICApLFxuICAgICAge1xuICAgICAgICBkZXBsb3llZEFkZHJlc3M6IHR4LmRlcGxveWVkQWRkcmVzcyxcbiAgICAgICAgY2hhaW5JZDogYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIoTnVtYmVyKHR4LmNoYWluSWQpKS50b1N0cmluZygxNikpLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gZXRoZXJldW0gdHJhbnNhY3Rpb24gZnJvbSBpdHMgc3RyaW5nIHNlcmlhbGl6YXRpb25cbiAgICpcbiAgICogQHBhcmFtIHR4IFRoZSBzdHJpbmcgc2VyaWFsaXphdGlvbiBvZiB0aGUgZXRoZXJldW0gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGNvbW1vblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tU2VyaWFsaXplZCh0eDogc3RyaW5nLCBjb21tb246IEV0aGVyZXVtQ29tbW9uKTogRXRoVHJhbnNhY3Rpb25EYXRhIHtcbiAgICByZXR1cm4gbmV3IEV0aFRyYW5zYWN0aW9uRGF0YShcbiAgICAgIFRyYW5zYWN0aW9uRmFjdG9yeS5mcm9tU2VyaWFsaXplZERhdGEodG9CdWZmZXIoYWRkSGV4UHJlZml4KHR4KSksIHsgY29tbW9uOiBjb21tb24gfSlcbiAgICApO1xuICB9XG5cbiAgc2lnbihrZXlQYWlyOiBLZXlQYWlyKSB7XG4gICAgY29uc3QgcHJpdmF0ZUtleSA9IEJ1ZmZlci5mcm9tKGtleVBhaXIuZ2V0S2V5cygpLnBydiBhcyBzdHJpbmcsICdoZXgnKTtcbiAgICB0aGlzLnR4ID0gdGhpcy50eC5zaWduKHByaXZhdGVLZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGNvbnN0IHJlc3VsdDogQmFzZVR4RGF0YSA9IHtcbiAgICAgIG5vbmNlOiBidWZmZXJUb0ludCh0b1Vuc2lnbmVkKHRoaXMudHgubm9uY2UpKSxcbiAgICAgIGdhc0xpbWl0OiBuZXcgQmlnTnVtYmVyKGJ1ZmZlclRvSGV4KHRvVW5zaWduZWQodGhpcy50eC5nYXNMaW1pdCkpLCAxNikudG9TdHJpbmcoMTApLFxuICAgICAgdmFsdWU6IHRoaXMudHgudmFsdWUudG9TdHJpbmcoMTApLFxuICAgICAgZGF0YTogYnVmZmVyVG9IZXgodGhpcy50eC5kYXRhKSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudHguaXNTaWduZWQoKSkge1xuICAgICAgcmVzdWx0LmlkID0gYWRkSGV4UHJlZml4KGJ1ZmZlclRvSGV4KHRoaXMudHguaGFzaCgpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdC5pZCA9IGFkZEhleFByZWZpeChidWZmZXJUb0hleCh0aGlzLnR4LmdldE1lc3NhZ2VUb1NpZ24oKSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR4LnRvKSB7XG4gICAgICByZXN1bHQudG8gPSBidWZmZXJUb0hleCh0aGlzLnR4LnRvLnRvQnVmZmVyKCkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR4LnZlcmlmeVNpZ25hdHVyZSgpKSB7XG4gICAgICByZXN1bHQuZnJvbSA9IGJ1ZmZlclRvSGV4KHRoaXMudHguZ2V0U2VuZGVyQWRkcmVzcygpLnRvQnVmZmVyKCkpO1xuICAgICAgYXNzZXJ0KHRoaXMudHguciAhPSB1bmRlZmluZWQpO1xuICAgICAgcmVzdWx0LnIgPSBidWZmZXJUb0hleCh0b1Vuc2lnbmVkKHRoaXMudHgucikpO1xuICAgICAgYXNzZXJ0KHRoaXMudHgucyAhPSB1bmRlZmluZWQpO1xuICAgICAgcmVzdWx0LnMgPSBidWZmZXJUb0hleCh0b1Vuc2lnbmVkKHRoaXMudHgucykpO1xuICAgIH1cbiAgICBpZiAodGhpcy50eC52KSB7XG4gICAgICByZXN1bHQudiA9IGJ1ZmZlclRvSGV4KHRvVW5zaWduZWQodGhpcy50eC52KSk7XG4gICAgfVxuICAgIHJlc3VsdC5jaGFpbklkID0gYWRkSGV4UHJlZml4KHRoaXMudHguY29tbW9uLmNoYWluSWRCTigpLnRvU3RyaW5nKDE2KSk7XG5cbiAgICBpZiAodGhpcy5hcmdzICYmIHRoaXMuYXJncy5kZXBsb3llZEFkZHJlc3MpIHtcbiAgICAgIHJlc3VsdC5kZXBsb3llZEFkZHJlc3MgPSB0aGlzLmFyZ3MuZGVwbG95ZWRBZGRyZXNzO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR4IGluc3RhbmNlb2YgTGVnYWN5VHJhbnNhY3Rpb24pIHtcbiAgICAgIGNvbnN0IGdhc1ByaWNlID0gbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh0b1Vuc2lnbmVkKHRoaXMudHguZ2FzUHJpY2UpKSwgMTYpLnRvU3RyaW5nKDEwKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICBfdHlwZTogRVRIVHJhbnNhY3Rpb25UeXBlLkxFR0FDWSxcbiAgICAgICAgZ2FzUHJpY2UsXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodGhpcy50eCBpbnN0YW5jZW9mIEZlZU1hcmtldEVJUDE1NTlUcmFuc2FjdGlvbikge1xuICAgICAgY29uc3QgbWF4RmVlUGVyR2FzID0gbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh0b1Vuc2lnbmVkKHRoaXMudHgubWF4RmVlUGVyR2FzKSksIDE2KS50b1N0cmluZygxMCk7XG4gICAgICBjb25zdCBtYXhQcmlvcml0eUZlZVBlckdhcyA9IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodG9VbnNpZ25lZCh0aGlzLnR4Lm1heFByaW9yaXR5RmVlUGVyR2FzKSksIDE2KS50b1N0cmluZyhcbiAgICAgICAgMTBcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgX3R5cGU6IEVUSFRyYW5zYWN0aW9uVHlwZS5FSVAxNTU5LFxuICAgICAgICBtYXhGZWVQZXJHYXMsXG4gICAgICAgIG1heFByaW9yaXR5RmVlUGVyR2FzLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB0eCB0eXBlOiAke0FjY2Vzc0xpc3RFSVAyOTMwVHJhbnNhY3Rpb24ubmFtZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9TZXJpYWxpemVkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFkZEhleFByZWZpeCh0aGlzLnR4LnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNMZWdhY3lUeCh0eDogVHhEYXRhKTogdHggaXMgTGVnYWN5VHhEYXRhIHtcbiAgcmV0dXJuIHR4Ll90eXBlID09PSBFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZO1xufVxuXG5mdW5jdGlvbiBpc0VJUDE1NTlUeG4odHg6IFR4RGF0YSk6IHR4IGlzIEVJUDE1NTlUeERhdGEge1xuICByZXR1cm4gdHguX3R5cGUgPT09IEVUSFRyYW5zYWN0aW9uVHlwZS5FSVAxNTU5O1xufVxuIl19
@@ -0,0 +1,228 @@
1
+ /// <reference types="node" />
2
+ import { Buffer } from 'buffer';
3
+ import { BaseCoin, BaseNetwork, EthereumNetwork } from '@bitgo-beta/statics';
4
+ import EthereumCommon from '@ethereumjs/common';
5
+ import BN from 'bn.js';
6
+ import { TransactionType } from '@bitgo-beta/sdk-core';
7
+ import { ERC1155TransferData, ERC721TransferData, FlushTokensData, NativeTransferData, SignatureParts, TokenTransferData, TransferData, TxData, WalletInitializationData, ForwarderInitializationData } from './iface';
8
+ import { KeyPair } from './keyPair';
9
+ /**
10
+ * @param network
11
+ */
12
+ export declare function getCommon(network: EthereumNetwork): EthereumCommon;
13
+ /**
14
+ * Signs the transaction using the appropriate algorithm
15
+ * and the provided common for the blockchain
16
+ *
17
+ * @param {TxData} transactionData the transaction data to sign
18
+ * @param {KeyPair} keyPair the signer's keypair
19
+ * @param {EthereumCommon} customCommon the network's custom common
20
+ * @returns {string} the transaction signed and encoded
21
+ */
22
+ export declare function signInternal(transactionData: TxData, keyPair: KeyPair, customCommon: EthereumCommon): Promise<string>;
23
+ /**
24
+ * Signs the transaction using the appropriate algorithm
25
+ *
26
+ * @param {TxData} transactionData the transaction data to sign
27
+ * @param {KeyPair} keyPair the signer's keypair
28
+ * @returns {string} the transaction signed and encoded
29
+ */
30
+ export declare function sign(transactionData: TxData, keyPair: KeyPair): Promise<string>;
31
+ /**
32
+ * Returns the contract method encoded data
33
+ *
34
+ * @param {string} to destination address
35
+ * @param {number} value Amount to tranfer
36
+ * @param {string} data aditional method call data
37
+ * @param {number} expireTime expiration time for the transaction in seconds
38
+ * @param {number} sequenceId sequence id
39
+ * @param {string} signature signature of the call
40
+ * @returns {string} -- the contract method encoded data
41
+ */
42
+ export declare function sendMultiSigData(to: string, value: string, data: string, expireTime: number, sequenceId: number, signature: string): string;
43
+ /**
44
+ * Returns the contract method encoded data
45
+ *
46
+ * @param {string} to destination address
47
+ * @param {number} value Amount to tranfer
48
+ * @param {string} tokenContractAddress the address of the erc20 token contract
49
+ * @param {number} expireTime expiration time for the transaction in seconds
50
+ * @param {number} sequenceId sequence id
51
+ * @param {string} signature signature of the call
52
+ * @returns {string} -- the contract method encoded data
53
+ */
54
+ export declare function sendMultiSigTokenData(to: string, value: string, tokenContractAddress: string, expireTime: number, sequenceId: number, signature: string): string;
55
+ /**
56
+ * Get the data required to make a flush tokens contract call
57
+ *
58
+ * @param forwarderAddress The forwarder address to flush
59
+ * @param tokenAddress The token address to flush from
60
+ */
61
+ export declare function flushTokensData(forwarderAddress: string, tokenAddress: string): string;
62
+ /**
63
+ * Get the data required to make a flush native coins contract call
64
+ */
65
+ export declare function flushCoinsData(): string;
66
+ /**
67
+ * Returns the create forwarder method calling data
68
+ *
69
+ * @returns {string} - the createForwarder method encoded
70
+ */
71
+ export declare function getAddressInitializationData(): string;
72
+ /**
73
+ * Returns whether or not the string is a valid Eth address
74
+ *
75
+ * @param {string} address - the tx hash to validate
76
+ * @returns {boolean} - the validation result
77
+ */
78
+ export declare function isValidEthAddress(address: string): boolean;
79
+ /**
80
+ * Returns whether or not the string is a valid amount number
81
+ *
82
+ * @param {string} amount - the string to validate
83
+ * @returns {boolean} - the validation result
84
+ */
85
+ export declare function isValidAmount(amount: string): boolean;
86
+ /**
87
+ * Returns the smart contract encoded data
88
+ *
89
+ * @param {string} data The wallet creation data to decode
90
+ * @returns {string[]} - The list of signer addresses
91
+ */
92
+ export declare function decodeWalletCreationData(data: string): WalletInitializationData;
93
+ /**
94
+ * Decode the given ABI-encoded transfer data and return parsed fields
95
+ *
96
+ * @param data The data to decode
97
+ * @returns parsed transfer data
98
+ */
99
+ export declare function decodeTransferData(data: string): TransferData;
100
+ /**
101
+ * Decode the given ABI-encoded transfer data for the sendMultisigToken function and return parsed fields
102
+ *
103
+ * @param data The data to decode
104
+ * @returns parsed token transfer data
105
+ */
106
+ export declare function decodeTokenTransferData(data: string): TokenTransferData;
107
+ export declare function decodeERC721TransferData(data: string): ERC721TransferData;
108
+ export declare function decodeERC1155TransferData(data: string): ERC1155TransferData;
109
+ /**
110
+ * Decode the given ABI-encoded transfer data for the sendMultisig function and return parsed fields
111
+ *
112
+ * @param data The data to decode
113
+ * @returns parsed transfer data
114
+ */
115
+ export declare function decodeNativeTransferData(data: string): NativeTransferData;
116
+ /**
117
+ * Decode the given ABI-encoded flush tokens data and return parsed fields
118
+ *
119
+ * @param data The data to decode
120
+ * @returns parsed transfer data
121
+ */
122
+ export declare function decodeFlushTokensData(data: string): FlushTokensData;
123
+ /**
124
+ * Classify the given transaction data based as a transaction type.
125
+ * ETH transactions are defined by the first 8 bytes of the transaction data, also known as the method id
126
+ *
127
+ * @param {string} data The data to classify the transaction with
128
+ * @returns {TransactionType} The classified transaction type
129
+ */
130
+ export declare function classifyTransaction(data: string): TransactionType;
131
+ /**
132
+ *
133
+ * @param {number} num number to be converted to hex
134
+ * @returns {string} the hex number
135
+ */
136
+ export declare function numberToHexString(num: number): string;
137
+ /**
138
+ *
139
+ * @param {string} hex The hex string to be converted
140
+ * @returns {number} the resulting number
141
+ */
142
+ export declare function hexStringToNumber(hex: string): number;
143
+ /**
144
+ * Generates an address of the forwarder address to be deployed
145
+ *
146
+ * @param {string} contractAddress the address which is creating this new address
147
+ * @param {number} contractCounter the nonce of the contract address
148
+ * @returns {string} the calculated forwarder contract address
149
+ */
150
+ export declare function calculateForwarderAddress(contractAddress: string, contractCounter: number): string;
151
+ /**
152
+ * Calculate the forwarder v1 address that will be generated if `creatorAddress` creates it with salt `salt`
153
+ * and initcode `inicode using the create2 opcode
154
+ * @param {string} creatorAddress The address that is sending the tx to create a new address, hex string
155
+ * @param {string} salt The salt to create the address with using create2, hex string
156
+ * @param {string} initcode The initcode that will be deployed to the address, hex string
157
+ * @return {string} The calculated address
158
+ */
159
+ export declare function calculateForwarderV1Address(creatorAddress: string, salt: string, initcode: string): string;
160
+ /**
161
+ * Take the implementation address for the proxy contract, and get the binary initcode for the associated proxy
162
+ * @param {string} implementationAddress The address of the implementation contract for the proxy
163
+ * @return {string} Binary hex string of the proxy
164
+ */
165
+ export declare function getProxyInitcode(implementationAddress: string): string;
166
+ /**
167
+ * Convert the given signature parts to a string representation
168
+ *
169
+ * @param {SignatureParts} sig The signature to convert to string
170
+ * @returns {string} String representation of the signature
171
+ */
172
+ export declare function toStringSig(sig: SignatureParts): string;
173
+ /**
174
+ * Return whether or not the given tx data has a signature
175
+ *
176
+ * @param {TxData} txData The transaction data to check for signature
177
+ * @returns {boolean} true if the tx has a signature, else false
178
+ */
179
+ export declare function hasSignature(txData: TxData): boolean;
180
+ declare type RecursiveBufferOrString = string | Buffer | BN | RecursiveBufferOrString[];
181
+ /**
182
+ * Get the raw data decoded for some types
183
+ *
184
+ * @param {string[]} types ABI types definition
185
+ * @param {Buffer} serializedArgs encoded args
186
+ * @returns {Buffer[]} the decoded raw
187
+ */
188
+ export declare function getRawDecoded(types: string[], serializedArgs: Buffer): RecursiveBufferOrString[];
189
+ /**
190
+ * Get the buffered bytecode from rawData using a methodId as delimiter
191
+ *
192
+ * @param {string} methodId the hex encoded method Id
193
+ * @param {string} rawData the hex encoded raw data
194
+ * @returns {Buffer} data buffered bytecode
195
+ */
196
+ export declare function getBufferedByteCode(methodId: string, rawData: string): Buffer;
197
+ /**
198
+ * Get the statics coin object matching a given contract address if it exists
199
+ *
200
+ * @param tokenContractAddress The contract address to match against
201
+ * @returns statics BaseCoin object for the matching token
202
+ */
203
+ export declare function getToken(tokenContractAddress: string, network: BaseNetwork): Readonly<BaseCoin> | undefined;
204
+ /**
205
+ * Returns the create wallet method calling data for v1 wallets
206
+ *
207
+ * @param {string[]} walletOwners - wallet owner addresses for wallet initialization transactions
208
+ * @param {string} salt - The salt for wallet initialization transactions
209
+ * @returns {string} - the createWallet method encoded
210
+ */
211
+ export declare function getV1WalletInitializationData(walletOwners: string[], salt: string): string;
212
+ /**
213
+ * Returns the create address method calling data for v1 wallets
214
+ *
215
+ * @param {string} baseAddress - The address of the wallet contract
216
+ * @param {string} salt - The salt for address initialization transactions
217
+ * @returns {string} - the createForwarder method encoded
218
+ */
219
+ export declare function getV1AddressInitializationData(baseAddress: string, salt: string): string;
220
+ /**
221
+ * Decode the given ABI-encoded create forwarder data and return parsed fields
222
+ *
223
+ * @param data The data to decode
224
+ * @returns parsed transfer data
225
+ */
226
+ export declare function decodeForwarderCreationData(data: string): ForwarderInitializationData;
227
+ export {};
228
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}