essential-eth 0.5.0 → 0.5.4

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 (77) hide show
  1. package/lib/cjs/classes/Contract.d.ts +3 -2
  2. package/lib/cjs/classes/Contract.js +3 -2
  3. package/lib/cjs/classes/utils/clean-transaction-receipt.d.ts +5 -0
  4. package/lib/cjs/classes/utils/clean-transaction-receipt.js +55 -0
  5. package/lib/cjs/classes/utils/encode-decode-transaction.d.ts +1 -0
  6. package/lib/cjs/classes/utils/encode-decode-transaction.js +4 -4
  7. package/lib/cjs/classes/utils/fetchers.d.ts +1 -1
  8. package/lib/cjs/index.d.ts +7 -2
  9. package/lib/cjs/index.js +24 -3
  10. package/lib/cjs/logger/logger.d.ts +11 -0
  11. package/lib/cjs/logger/logger.js +36 -0
  12. package/lib/cjs/logger/package-version.d.ts +1 -0
  13. package/lib/cjs/logger/package-version.js +5 -0
  14. package/lib/cjs/providers/BaseProvider.d.ts +270 -0
  15. package/lib/cjs/providers/BaseProvider.js +361 -0
  16. package/lib/cjs/providers/FallthroughProvider.d.ts +25 -0
  17. package/lib/cjs/providers/FallthroughProvider.js +65 -0
  18. package/lib/cjs/providers/JsonRpcProvider.d.ts +4 -200
  19. package/lib/cjs/providers/JsonRpcProvider.js +11 -263
  20. package/lib/cjs/providers/test/rpc-urls.d.ts +1 -0
  21. package/lib/cjs/providers/test/rpc-urls.js +1 -0
  22. package/lib/cjs/providers/utils/chains-info.d.ts +8 -0
  23. package/lib/cjs/providers/utils/chains-info.js +24 -0
  24. package/lib/cjs/shared/tiny-big/tiny-big.d.ts +9 -2
  25. package/lib/cjs/shared/tiny-big/tiny-big.js +27 -9
  26. package/lib/cjs/types/Transaction.types.d.ts +53 -0
  27. package/lib/cjs/utils/bytes.d.ts +172 -0
  28. package/lib/cjs/utils/bytes.js +564 -0
  29. package/lib/cjs/utils/hash-message.d.ts +12 -0
  30. package/lib/cjs/utils/hash-message.js +26 -0
  31. package/lib/cjs/utils/keccak256.d.ts +2 -0
  32. package/lib/cjs/utils/keccak256.js +17 -0
  33. package/lib/cjs/utils/solidity-keccak256.d.ts +29 -0
  34. package/lib/cjs/utils/solidity-keccak256.js +118 -0
  35. package/lib/cjs/utils/to-utf8-bytes.d.ts +1 -0
  36. package/lib/cjs/utils/to-utf8-bytes.js +7 -0
  37. package/lib/esm/classes/Contract.js +1 -1
  38. package/lib/esm/classes/utils/clean-transaction-receipt.d.ts +2 -0
  39. package/lib/esm/classes/utils/clean-transaction-receipt.js +48 -0
  40. package/lib/esm/classes/utils/encode-decode-transaction.d.ts +1 -0
  41. package/lib/esm/classes/utils/encode-decode-transaction.js +2 -2
  42. package/lib/esm/classes/utils/fetchers.d.ts +1 -1
  43. package/lib/esm/index.d.ts +7 -2
  44. package/lib/esm/index.js +7 -2
  45. package/lib/esm/logger/logger.d.ts +11 -0
  46. package/lib/esm/logger/logger.js +33 -0
  47. package/lib/esm/logger/package-version.d.ts +1 -0
  48. package/lib/esm/logger/package-version.js +1 -0
  49. package/lib/esm/providers/BaseProvider.d.ts +18 -0
  50. package/lib/esm/providers/BaseProvider.js +101 -0
  51. package/lib/esm/providers/FallthroughProvider.d.ts +12 -0
  52. package/lib/esm/providers/FallthroughProvider.js +41 -0
  53. package/lib/esm/providers/JsonRpcProvider.d.ts +4 -12
  54. package/lib/esm/providers/JsonRpcProvider.js +8 -69
  55. package/lib/esm/providers/test/rpc-urls.d.ts +1 -0
  56. package/lib/esm/providers/test/rpc-urls.js +1 -0
  57. package/lib/esm/providers/utils/chains-info.d.ts +8 -0
  58. package/lib/esm/providers/utils/chains-info.js +24 -0
  59. package/lib/esm/shared/tiny-big/tiny-big.d.ts +2 -0
  60. package/lib/esm/shared/tiny-big/tiny-big.js +20 -7
  61. package/lib/esm/types/Transaction.types.d.ts +45 -0
  62. package/lib/esm/utils/bytes.d.ts +40 -0
  63. package/lib/esm/utils/bytes.js +245 -0
  64. package/lib/esm/utils/hash-message.d.ts +2 -0
  65. package/lib/esm/utils/hash-message.js +12 -0
  66. package/lib/esm/utils/keccak256.d.ts +2 -0
  67. package/lib/esm/utils/keccak256.js +13 -0
  68. package/lib/esm/utils/solidity-keccak256.d.ts +2 -0
  69. package/lib/esm/utils/solidity-keccak256.js +85 -0
  70. package/lib/esm/utils/to-utf8-bytes.d.ts +1 -0
  71. package/lib/esm/utils/to-utf8-bytes.js +3 -0
  72. package/package.json +19 -19
  73. package/readme.md +36 -5
  74. package/lib/cjs/utils/hex-zero-pad.d.ts +0 -32
  75. package/lib/cjs/utils/hex-zero-pad.js +0 -52
  76. package/lib/esm/utils/hex-zero-pad.d.ts +0 -1
  77. package/lib/esm/utils/hex-zero-pad.js +0 -17
@@ -1,277 +1,25 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __importDefault = (this && this.__importDefault) || function (mod) {
12
- return (mod && mod.__esModule) ? mod : { "default": mod };
13
- };
14
2
  Object.defineProperty(exports, "__esModule", { value: true });
15
3
  exports.jsonRpcProvider = exports.JsonRpcProvider = void 0;
16
- const clean_block_1 = require("../classes/utils/clean-block");
17
- const clean_transaction_1 = require("../classes/utils/clean-transaction");
18
- const fetchers_1 = require("../classes/utils/fetchers");
19
- const hex_to_decimal_1 = require("../classes/utils/hex-to-decimal");
20
- const tiny_big_1 = require("../shared/tiny-big/tiny-big");
21
- const chains_info_1 = __importDefault(require("./utils/chains-info"));
22
- class JsonRpcProvider {
4
+ const BaseProvider_1 = require("./BaseProvider");
5
+ class JsonRpcProvider extends BaseProvider_1.BaseProvider {
23
6
  /**
24
- * @param rpcUrl The URL to your Eth node. Consider POKT or Infura
25
- */
26
- constructor(rpcUrl) {
27
- /**
28
- * @ignore
29
- */
30
- this.post = (body) => (0, fetchers_1.post)(this._rpcUrl, body);
31
- this._rpcUrl = rpcUrl || 'https://free-eth-node.com/api/eth';
32
- }
33
- /**
34
- * Returns the block requested
35
- * Same as `web3.eth.getBlock`
36
- * @example
37
- * ```js
38
- * await provider.getBlock('latest');
39
- * {
40
- * number: 4232826,
41
- * hash: '0x93211a1cd17e154b183565ec685254a03f844a8e34824a46ce1bdd6753dcb669',
42
- * parentHash: '0x1b32bfcba1bb2a57f56e166a3bb06875a1978992999dfc8828397b4c1526f472',
43
- * sha3Uncles: '0x0fb399c67bb5a071ec8a22549223215ab76b7d4009941c9c37aa3c3936010463',
44
- * logsBloom: '0x00000000000000000000101000000000020000000000000000000000000000000000400000010000000000000000000000000000010000000008800000000800000000200000000000000000000000000000000000000000000002000000000000000000000000000040000000000040000000000000000000000000000000000000000000000001000000000004000000000010000000000000000020000000000000000200100020000000000000000080000000000080001000000000000000000001040000000000000000008000000020010100000000200000100000000000000000000000002000000080000000020400000000002000200000000000',
45
- * transactionsRoot: '0xc43b3f13e1fe810e34d3a26ffe465b72c7063a5c70a02de2c78e91e4d10bd9fb',
46
- * stateRoot: '0x04d7bc816537ea7ef3a16e76c9879d29f34f99d4154273c2e98e012a31bad745',
47
- * receiptsRoot: '0x89c6f781ceac0bd49c4d9aa9115df4a5d4dd0e0220ff7668012f15bc04222c6b',
48
- * miner: '0x31fe561eb2c628cD32Ec52573D7c4b7E4C278Bfa',
49
- * difficulty: '1300907486001755331049',
50
- * totalDifficulty: '5989929395521171616186006183',
51
- * extraData: '0xce018c495249532d62613031656132',
52
- * size: 5416,
53
- * gasLimit: 6800000,
54
- * gasUsed: 202955,
55
- * timestamp: 1649884910,
56
- * transactions: [
57
- * '0x6b34a59c7b9aead24fa6dad782f8a3ad84ed4a23ee09bcbf0bcf880840fbbe20',
58
- * '0x9a3851ca24d5336c6a0d48aba2c4b4769d7a672c9b01729c5eb9924efd1b19a7',
59
- * '0xc3ed3d198b62f2f3427ebfa3bbd0fcada4e3c0c189e4464e7eeceb403c75981e'
60
- * ],
61
- * uncles: [
62
- * '0x0c567c054e98153f10d651fbbc018891c1dd9d62a9ffd998e87678803e95b6ed',
63
- * '0xb7d69389dbfb057c6fcb4bc0582d46a2ba01170703f0dadf8cd1462b83e88753',
64
- * '0xd5f74ccd0ad4c58b3161e8c2c507c264231e5f28925061b809c02e5e4bb6db28'
65
- * ],
66
- * minimumGasPrice: '0x387ee40',
67
- * bitcoinMergedMiningHeader: '0x04000020e8567ed3d2480e15a1dd1b4335e4732ae343c037e4fd03000000000000000000ed10a8340d163d3e813bdd430f902f4e5a56828dc62313b2e23797c0be6b8516eb3e576297d8091735884f42',
68
- * bitcoinMergedMiningCoinbaseTransaction: '0x0000000000000140e910128fda7bac502dc5e0573bbaf12de8e2524f70c22f7bd160dedcb19a2521002b6a2952534b424c4f434b3ae493303f597fa368c0ccc4f8aceabf1c315bb7c9a07605c073a89f260040967aace6a7d9',
69
- * bitcoinMergedMiningMerkleProof: '0xdf63a3d7eb6fbcfb301311faa46e9a15b0408bb1a04e284daee86c273c1dfd65ede23f3170f806e9e0f4cef7ba6b56aa37470d9c23f96ec8e43d08b58645919c5e10bcb892897a731f8f9ce79c72dc0e390896bcd6c67bb38c0bdb72982b6cf05519968d76673572c3f3ef3a08b0ddb464863f1788f7cdbaad3fe44a8a8af576d430ac282fe28852c16df198ca96cc5f71a50695912efe1a836e8442be69e31b6d6f973da2818bce9a3a1c2d9be0671aee9a7776e398d6a03d1e178e20d84646004a3d03c0501334e629d9146aa6a01316dcbaa289df6e6c5e3090cadaddff22699cfc7ff09512fc0d65c5062f17c98561ce3c9510de210d9d654cf99f8d756ff37c9fa21e7122ee8cadb923341690845d572921425f2bd7e044558b7e07983ac4df28928028b0c13c3624dc7a965af8091b0cecc845bf7da5308c03b2c97d607f6706a599f802025894435f1d76ea4e67cc2fc4e1559f1206f559a24633de0f',
70
- * hashForMergedMining: '0xe493303f597fa368c0ccc4f8aceabf1c315bb7c9a07605c073a89f260040967a',
71
- * paidFees: '0xc0744dcb7a0',
72
- * cumulativeDifficulty: '0x1190930db285269e582'
73
- * }
74
- *```
7
+ * @ignore
75
8
  */
76
- getBlock(timeFrame, returnTransactionObjects = false) {
77
- return __awaiter(this, void 0, void 0, function* () {
78
- let rpcTimeFrame;
79
- if (typeof timeFrame === 'number') {
80
- // exact block numbers require hex string format
81
- rpcTimeFrame = `0x${timeFrame.toString(16)}`;
82
- }
83
- else {
84
- // "latest", "earliest", and "pending" require no manipulation
85
- rpcTimeFrame = timeFrame;
86
- }
87
- const rpcBlock = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_getBlockByNumber', [
88
- rpcTimeFrame,
89
- returnTransactionObjects,
90
- ])));
91
- return (0, clean_block_1.cleanBlock)(rpcBlock, returnTransactionObjects);
92
- });
9
+ selectRpcUrl() {
10
+ return this._rpcUrls[0];
93
11
  }
94
12
  /**
95
- * Returns the network this provider is connected to
13
+ * @ignore
96
14
  */
97
- getNetwork() {
98
- return __awaiter(this, void 0, void 0, function* () {
99
- const hexChainId = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_chainId', [])));
100
- const chainId = (0, hex_to_decimal_1.hexToDecimal)(hexChainId);
101
- const info = chains_info_1.default[chainId];
102
- return {
103
- chainId: Number(chainId),
104
- name: info[0] || 'unknown',
105
- ensAddress: info[1] || null, // only send ensAddress if it exists
106
- };
107
- });
15
+ post(body) {
16
+ return this._post(body);
108
17
  }
109
18
  /**
110
- * Returns the current gas price in wei as TinyBig
111
- * Same as `ethers.provider.getGasPrice`
112
- */
113
- getGasPrice() {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- const hexGasPrice = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_gasPrice', [])));
116
- return (0, tiny_big_1.tinyBig)((0, hex_to_decimal_1.hexToDecimal)(hexGasPrice));
117
- });
118
- }
119
- /**
120
- * Returns the balance of the account in wei as TinyBig
121
- * Same as `ethers.provider.getBalance`
122
- * Same as `web3.eth.getBalance`
123
- *
124
- * @example
125
- * ```js
126
- * await provider
127
- * .getBalance('0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8')
128
- * .then((balance) => console.log(balance.toString()));
129
- * // "28798127851528138"
130
- * ```
131
- */
132
- getBalance(address, blockTag = 'latest') {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- const hexBalance = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_getBalance', [address, blockTag])));
135
- return (0, tiny_big_1.tinyBig)((0, hex_to_decimal_1.hexToDecimal)(hexBalance));
136
- });
137
- }
138
- /**
139
- * Similar to `ethers.provider.getTransaction`, some information not included
140
- *
141
- * @params hash A transaction hash
142
- * @returns information about one transaction
143
- * @example
144
- * ```js
145
- * await provider.getTransaction('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
146
- * {
147
- * accessList: [],
148
- * blockHash: '0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d',
149
- * blockNumber: 14578286,
150
- * chainId: 1,
151
- * from: '0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4',
152
- * gas: Big {
153
- * s: 1,
154
- * e: 5,
155
- * c: [ 1, 1, 2, 1, 6, 3 ],
156
- * constructor: <ref *1> [Function: Big] {
157
- * DP: 20,
158
- * RM: 1,
159
- * NE: -7,
160
- * PE: 21,
161
- * strict: false,
162
- * roundDown: 0,
163
- * roundHalfUp: 1,
164
- * roundHalfEven: 2,
165
- * roundUp: 3,
166
- * Big: [Circular *1],
167
- * default: [Circular *1]
168
- * }
169
- * },
170
- * gasPrice: Big {
171
- * s: 1,
172
- * e: 10,
173
- * c: [
174
- * 4, 8, 5, 9, 2,
175
- * 4, 2, 6, 8, 5,
176
- * 8
177
- * ],
178
- * constructor: <ref *1> [Function: Big] {
179
- * DP: 20,
180
- * RM: 1,
181
- * NE: -7,
182
- * PE: 21,
183
- * strict: false,
184
- * roundDown: 0,
185
- * roundHalfUp: 1,
186
- * roundHalfEven: 2,
187
- * roundUp: 3,
188
- * Big: [Circular *1],
189
- * default: [Circular *1]
190
- * }
191
- * },
192
- * hash: '0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789',
193
- * input: '0x83259f170000000000000000000000000000000000000000000000000000000000000080000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed400000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000009e99ad11a214fd016b19dc3648678c5944859ae292b21c24ca94f857836c4596f1950c82dd0c23dd621af4763edc2f66466e63c5df9de0c1107b1cd16bf460fe93e43fd308e3444bc79c3d88a4cb961dc8367ab6ad048867afc76d193bca99cf3a068864ed4a7df1dbf1d4c52238eced3e5e05644b4040fc2b3ccb8557b0e99fff6131305a0ea2b8061b90bd418db5bbdd2e92129f52d93f90531465e309c4caec5b85285822b6196398d36f16f511811b61bbda6461e80e29210cd303118bdcee8df6fa0505ffbe8642094fd2ba4dd458496fe3b459ac880bbf71877c713e969ccf5ed7efab8a84ebc07e3939901371ca427e1192e455a8f35a6a1d7ad09e1475dd1758b36fa631dab5d70e99316b23c4c43094188d360cd9c3457355904e07c00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000162074a7047f',
194
- * maxFeePerGas: Big {
195
- * s: 1,
196
- * e: 10,
197
- * c: [
198
- * 6, 7, 6, 8, 1,
199
- * 2, 6, 1, 6, 1,
200
- * 8
201
- * ],
202
- * constructor: <ref *1> [Function: Big] {
203
- * DP: 20,
204
- * RM: 1,
205
- * NE: -7,
206
- * PE: 21,
207
- * strict: false,
208
- * roundDown: 0,
209
- * roundHalfUp: 1,
210
- * roundHalfEven: 2,
211
- * roundUp: 3,
212
- * Big: [Circular *1],
213
- * default: [Circular *1]
214
- * }
215
- * },
216
- * maxPriorityFeePerGas: Big {
217
- * s: 1,
218
- * e: 9,
219
- * c: [ 1, 5 ],
220
- * constructor: <ref *1> [Function: Big] {
221
- * DP: 20,
222
- * RM: 1,
223
- * NE: -7,
224
- * PE: 21,
225
- * strict: false,
226
- * roundDown: 0,
227
- * roundHalfUp: 1,
228
- * roundHalfEven: 2,
229
- * roundUp: 3,
230
- * Big: [Circular *1],
231
- * default: [Circular *1]
232
- * }
233
- * },
234
- * nonce: 129,
235
- * r: '0x59a7c15b12c18cd68d6c440963d959bff3e73831ffc938e75ecad07f7ee43fbc',
236
- * s: '0x1ebaf05f0d9273b16c2a7748b150a79d22533a8cd74552611cbe620fee3dcf1c',
237
- * to: '0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B',
238
- * transactionIndex: 29,
239
- * type: 2,
240
- * v: 0,
241
- * value: Big {
242
- * s: 1,
243
- * e: 0,
244
- * c: [ 0 ],
245
- * constructor: <ref *1> [Function: Big] {
246
- * DP: 20,
247
- * RM: 1,
248
- * NE: -7,
249
- * PE: 21,
250
- * strict: false,
251
- * roundDown: 0,
252
- * roundHalfUp: 1,
253
- * roundHalfEven: 2,
254
- * roundUp: 3,
255
- * Big: [Circular *1],
256
- * default: [Circular *1]
257
- * }
258
- * },
259
- * confirmations: 1210
260
- * }
261
- * ```
19
+ * @param rpcUrl The URL to your Eth node. Consider POKT or Infura
262
20
  */
263
- getTransaction(hash) {
264
- return __awaiter(this, void 0, void 0, function* () {
265
- const [rpcTransaction, blockNumber] = yield Promise.all([
266
- this.post((0, fetchers_1.buildRPCPostBody)('eth_getTransactionByHash', [hash])),
267
- this.getBlock('latest'),
268
- ]);
269
- const cleanedTransaction = (0, clean_transaction_1.cleanTransaction)(rpcTransaction);
270
- // https://ethereum.stackexchange.com/questions/2881/how-to-get-the-transaction-confirmations-using-the-json-rpc
271
- cleanedTransaction.confirmations =
272
- blockNumber.number - cleanedTransaction.blockNumber + 1;
273
- return cleanedTransaction;
274
- });
21
+ constructor(rpcUrl = 'https://free-eth-node.com/api/eth') {
22
+ super([rpcUrl]);
275
23
  }
276
24
  }
277
25
  exports.JsonRpcProvider = JsonRpcProvider;
@@ -3,6 +3,7 @@ export declare const fakeUrls: {
3
3
  };
4
4
  export declare const rpcUrls: {
5
5
  mainnet: string;
6
+ matic: string;
6
7
  gno: string;
7
8
  bnb: string;
8
9
  arb1: string;
@@ -6,6 +6,7 @@ exports.fakeUrls = {
6
6
  };
7
7
  exports.rpcUrls = {
8
8
  mainnet: `${process.env.RPC_ORIGIN}/api/eth`,
9
+ matic: `${process.env.RPC_ORIGIN}/api/MATIC`,
9
10
  gno: `${process.env.RPC_ORIGIN}/api/gno`,
10
11
  bnb: `${process.env.RPC_ORIGIN}/api/bnb`,
11
12
  arb1: `${process.env.RPC_ORIGIN}/api/arb1`,
@@ -61,6 +61,7 @@ declare const _default: {
61
61
  "67": string[];
62
62
  "68": string[];
63
63
  "69": string[];
64
+ "70": string[];
64
65
  "71": string[];
65
66
  "74": string[];
66
67
  "76": string[];
@@ -215,7 +216,9 @@ declare const _default: {
215
216
  "2153": string[];
216
217
  "2213": string[];
217
218
  "2221": string[];
219
+ "2223": string[];
218
220
  "2559": string[];
221
+ "2569": string[];
219
222
  "3000": string[];
220
223
  "3001": string[];
221
224
  "3331": string[];
@@ -233,6 +236,8 @@ declare const _default: {
233
236
  "4918": string[];
234
237
  "5197": string[];
235
238
  "5315": string[];
239
+ "5551": string[];
240
+ "5553": string[];
236
241
  "5700": string[];
237
242
  "5777": string[];
238
243
  "5851": string[];
@@ -295,6 +300,7 @@ declare const _default: {
295
300
  "60002": string[];
296
301
  "60103": string[];
297
302
  "62320": string[];
303
+ "62621": string[];
298
304
  "63000": string[];
299
305
  "63001": string[];
300
306
  "69420": string[];
@@ -340,6 +346,7 @@ declare const _default: {
340
346
  "333999": string[];
341
347
  "421611": string[];
342
348
  "444900": string[];
349
+ "512512": string[];
343
350
  "666666": string[];
344
351
  "888888": string[];
345
352
  "955305": string[];
@@ -351,6 +358,7 @@ declare const _default: {
351
358
  "11155111": string[];
352
359
  "13371337": string[];
353
360
  "18289463": string[];
361
+ "20180430": string[];
354
362
  "20181205": string[];
355
363
  "28945486": string[];
356
364
  "35855456": string[];
@@ -193,6 +193,9 @@ exports.default = {
193
193
  "69": [
194
194
  "okov"
195
195
  ],
196
+ "70": [
197
+ "hsc"
198
+ ],
196
199
  "71": [
197
200
  "cfxtest"
198
201
  ],
@@ -655,9 +658,15 @@ exports.default = {
655
658
  "2221": [
656
659
  "kava"
657
660
  ],
661
+ "2223": [
662
+ "VChain"
663
+ ],
658
664
  "2559": [
659
665
  "ktoc"
660
666
  ],
667
+ "2569": [
668
+ "tpc"
669
+ ],
661
670
  "3000": [
662
671
  "cennz-r"
663
672
  ],
@@ -709,6 +718,12 @@ exports.default = {
709
718
  "5315": [
710
719
  "UZMI"
711
720
  ],
721
+ "5551": [
722
+ "Nahmii"
723
+ ],
724
+ "5553": [
725
+ "Nahmii testnet"
726
+ ],
712
727
  "5700": [
713
728
  "tsys"
714
729
  ],
@@ -895,6 +910,9 @@ exports.default = {
895
910
  "62320": [
896
911
  "BKLV"
897
912
  ],
913
+ "62621": [
914
+ "mtv"
915
+ ],
898
916
  "63000": [
899
917
  "ecs"
900
918
  ],
@@ -1030,6 +1048,9 @@ exports.default = {
1030
1048
  "444900": [
1031
1049
  "wlkt"
1032
1050
  ],
1051
+ "512512": [
1052
+ "cmp"
1053
+ ],
1033
1054
  "666666": [
1034
1055
  "vpioneer"
1035
1056
  ],
@@ -1063,6 +1084,9 @@ exports.default = {
1063
1084
  "18289463": [
1064
1085
  "ilt"
1065
1086
  ],
1087
+ "20180430": [
1088
+ "spectrum"
1089
+ ],
1066
1090
  "20181205": [
1067
1091
  "qki"
1068
1092
  ],
@@ -1,7 +1,7 @@
1
1
  import Big from 'big.js';
2
2
  /**
3
- * A wrapper around big.js which expands scientific notation and creates a "toHexString" function.
4
- * This is the return type of every operation on ether, wei, etc.
3
+ * A wrapper around [big.js](https://github.com/MikeMcl/big.js) which expands scientific notation and creates a "toHexString" function.
4
+ * * This is the return type of every operation on ether, wei, etc.
5
5
  */
6
6
  export declare class TinyBig extends Big {
7
7
  constructor(value: string | number | TinyBig | Big);
@@ -12,6 +12,13 @@ export declare class TinyBig extends Big {
12
12
  toHexString(): string;
13
13
  toNumber(): number;
14
14
  toString(): string;
15
+ /**
16
+ * @param {String} str
17
+ * @param {String} padChar
18
+ * @param {Number} length
19
+ */
20
+ private padAndChop;
21
+ toTwos(bitCount: number): Big;
15
22
  }
16
23
  /**
17
24
  * Helper factory function so that you don't have to type "new" when instantiating a new TinyBig
@@ -7,18 +7,20 @@ exports.tinyBig = exports.TinyBig = void 0;
7
7
  const big_js_1 = __importDefault(require("big.js"));
8
8
  const helpers_1 = require("./helpers");
9
9
  /**
10
- * A wrapper around big.js which expands scientific notation and creates a "toHexString" function.
11
- * This is the return type of every operation on ether, wei, etc.
10
+ * A wrapper around [big.js](https://github.com/MikeMcl/big.js) which expands scientific notation and creates a "toHexString" function.
11
+ * * This is the return type of every operation on ether, wei, etc.
12
12
  */
13
13
  class TinyBig extends big_js_1.default {
14
14
  constructor(value) {
15
- try {
16
- super(value);
17
- }
18
- catch (e) {
19
- console.error(`TinyBig cannot parse value (value=${value})`);
20
- throw e;
21
- }
15
+ super(value);
16
+ /**
17
+ * @param {String} str
18
+ * @param {String} padChar
19
+ * @param {Number} length
20
+ */
21
+ this.padAndChop = (str, padChar, length) => {
22
+ return (Array(length).fill(padChar).join('') + str).slice(length * -1);
23
+ };
22
24
  }
23
25
  /**
24
26
  * Used anytime you're passing in "value" to ethers or web3
@@ -36,6 +38,22 @@ class TinyBig extends big_js_1.default {
36
38
  }
37
39
  return (0, helpers_1.scientificStrToDecimalStr)(super.toString());
38
40
  }
41
+ toTwos(bitCount) {
42
+ let binaryStr;
43
+ if (this.gte(0)) {
44
+ const twosComp = this.toNumber().toString(2);
45
+ binaryStr = this.padAndChop(twosComp, '0', bitCount || twosComp.length);
46
+ }
47
+ else {
48
+ binaryStr = this.plus(Math.pow(2, bitCount)).toNumber().toString(2);
49
+ if (Number(binaryStr) < 0) {
50
+ throw new Error('Cannot calculate twos complement');
51
+ }
52
+ }
53
+ const binary = `0b${binaryStr}`;
54
+ const decimal = Number(binary);
55
+ return tinyBig(decimal);
56
+ }
39
57
  }
40
58
  exports.TinyBig = TinyBig;
41
59
  /**
@@ -20,6 +20,32 @@ export declare type TransactionResponse = Modify<RPCTransaction, {
20
20
  maxPriorityFeePerGas: TinyBig;
21
21
  confirmations: number;
22
22
  }>;
23
+ /**
24
+ * Type that contains information from the receipt of a transaction
25
+ * * Similar to [`Type TransactionReceipt on ethers.providers`](https://docs.ethers.io/v5/api/providers/types/#providers-TransactionReceipt)
26
+ */
27
+ export declare type TransactionReceipt = Modify<RPCTransactionReceipt, {
28
+ blockNumber: number;
29
+ cumulativeGasUsed: TinyBig;
30
+ effectiveGasPrice: TinyBig;
31
+ gasUsed: TinyBig;
32
+ logs: Array<Log>;
33
+ status: number;
34
+ transactionIndex: number;
35
+ type: number;
36
+ } & {
37
+ byzantium: boolean;
38
+ confirmations: number;
39
+ }>;
40
+ /**
41
+ * Type for the logs that are included in transaction receipts
42
+ * * Similar to [`Type Log on ethers.providers`](https://docs.ethers.io/v5/api/providers/types/#providers-Log)
43
+ */
44
+ export declare type Log = Modify<Omit<RPCLog, 'removed'>, {
45
+ blockNumber: number;
46
+ logIndex: number;
47
+ transactionIndex: number;
48
+ }>;
23
49
  export declare type BlockTransactionResponse = Omit<TransactionResponse, 'maxFeePerGas' | 'maxPriorityFeePerGas'>;
24
50
  /** What JSONRPC responds with in getBlock transaction array */
25
51
  export interface RPCBlockTransaction {
@@ -40,4 +66,31 @@ export interface RPCBlockTransaction {
40
66
  v: string;
41
67
  value: string;
42
68
  }
69
+ export interface RPCTransactionReceipt {
70
+ blockHash: string;
71
+ blockNumber: string;
72
+ contractAddress: string;
73
+ cumulativeGasUsed: string;
74
+ effectiveGasPrice: string;
75
+ from: string;
76
+ gasUsed: string;
77
+ logs: Array<RPCLog>;
78
+ logsBloom: string;
79
+ status: string;
80
+ to: string;
81
+ transactionHash: string;
82
+ transactionIndex: string;
83
+ type: string;
84
+ }
85
+ export interface RPCLog {
86
+ address: string;
87
+ blockHash: string;
88
+ blockNumber: string;
89
+ data: string;
90
+ logIndex: string;
91
+ removed?: boolean;
92
+ topics: Array<string>;
93
+ transactionHash: string;
94
+ transactionIndex: string;
95
+ }
43
96
  export {};