essential-eth 0.6.2 → 0.7.0

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 (111) hide show
  1. package/dist/cjs/classes/Contract.js +307 -66
  2. package/dist/cjs/classes/test/Contract/crv-abi.js +252 -256
  3. package/dist/cjs/classes/test/Contract/crv.test.js +690 -0
  4. package/dist/cjs/classes/test/Contract/ens-abi.js +497 -212
  5. package/dist/cjs/classes/test/Contract/ens.test.js +217 -0
  6. package/dist/cjs/classes/test/Contract/fei-abi.js +605 -284
  7. package/dist/cjs/classes/test/Contract/fei.test.js +224 -0
  8. package/dist/cjs/classes/test/Contract/foo-abi.js +44 -21
  9. package/dist/cjs/classes/test/Contract/foo.test.js +33 -0
  10. package/dist/cjs/classes/test/Contract/uni.test.js +387 -0
  11. package/dist/cjs/classes/test/Contract/uniswap-abi.js +64 -68
  12. package/dist/cjs/classes/utils/clean-block.d.ts +1 -2
  13. package/dist/cjs/classes/utils/clean-block.js +52 -30
  14. package/dist/cjs/classes/utils/clean-log.js +42 -20
  15. package/dist/cjs/classes/utils/clean-transaction-receipt.js +51 -29
  16. package/dist/cjs/classes/utils/clean-transaction.js +52 -29
  17. package/dist/cjs/classes/utils/encode-decode-transaction.d.ts +1 -1
  18. package/dist/cjs/classes/utils/encode-decode-transaction.js +163 -83
  19. package/dist/cjs/classes/utils/fetchers.js +165 -41
  20. package/dist/cjs/classes/utils/hex-to-decimal.js +1 -6
  21. package/dist/cjs/classes/utils/prepare-transaction.js +59 -36
  22. package/dist/cjs/index.js +25 -54
  23. package/dist/cjs/index.umd.js +1 -1
  24. package/dist/cjs/index.umd.js.map +1 -1
  25. package/dist/cjs/logger/logger.js +79 -23
  26. package/dist/cjs/logger/package-version.d.ts +1 -1
  27. package/dist/cjs/logger/package-version.js +1 -4
  28. package/dist/cjs/providers/BaseProvider.js +824 -475
  29. package/dist/cjs/providers/FallthroughProvider.js +118 -37
  30. package/dist/cjs/providers/JsonRpcProvider.js +93 -28
  31. package/dist/cjs/providers/test/fallthrough-provider/get-gas-price.test.js +228 -0
  32. package/dist/cjs/providers/test/get-transaction-count.test.js +276 -0
  33. package/dist/cjs/providers/test/json-rpc-provider/call.test.js +436 -0
  34. package/dist/cjs/providers/test/json-rpc-provider/estimate-gas.test.js +288 -0
  35. package/dist/cjs/providers/test/json-rpc-provider/get-balance.test.js +261 -0
  36. package/dist/cjs/providers/test/json-rpc-provider/get-block-number.test.js +230 -0
  37. package/dist/cjs/providers/test/json-rpc-provider/get-block.test.js +501 -0
  38. package/dist/cjs/providers/test/json-rpc-provider/get-code.test.js +311 -0
  39. package/dist/cjs/providers/test/json-rpc-provider/get-gas-price.test.js +202 -0
  40. package/dist/cjs/providers/test/json-rpc-provider/get-logs.test.js +361 -0
  41. package/dist/cjs/providers/test/json-rpc-provider/get-network.test.js +274 -0
  42. package/dist/cjs/providers/test/json-rpc-provider/get-transaction-receipt.test.js +301 -0
  43. package/dist/cjs/providers/test/json-rpc-provider/get-transaction.test.js +307 -0
  44. package/dist/cjs/providers/test/rpc-urls.js +9 -12
  45. package/dist/cjs/providers/utils/chains-info.js +1 -3
  46. package/dist/cjs/shared/tiny-big/helpers.js +93 -42
  47. package/dist/cjs/shared/tiny-big/helpers.test.js +29 -0
  48. package/dist/cjs/shared/tiny-big/tiny-big.js +161 -72
  49. package/dist/cjs/shared/tiny-big/tiny-big.test.js +34 -0
  50. package/dist/cjs/shared/validate-type.js +7 -7
  51. package/dist/cjs/types/Block.types.js +1 -2
  52. package/dist/cjs/types/Contract.types.js +1 -2
  53. package/dist/cjs/types/Filter.types.js +1 -2
  54. package/dist/cjs/types/Network.types.js +3 -2
  55. package/dist/cjs/types/Transaction.types.js +1 -2
  56. package/dist/cjs/utils/bytes.js +286 -318
  57. package/dist/cjs/utils/compute-address.js +8 -14
  58. package/dist/cjs/utils/compute-public-key.js +5 -10
  59. package/dist/cjs/utils/ether-to-gwei.js +10 -11
  60. package/dist/cjs/utils/ether-to-wei.js +10 -11
  61. package/dist/cjs/utils/gwei-to-ether.js +10 -11
  62. package/dist/cjs/utils/hash-message.d.ts +1 -1
  63. package/dist/cjs/utils/hash-message.js +11 -14
  64. package/dist/cjs/utils/is-address.js +8 -12
  65. package/dist/cjs/utils/keccak256.js +8 -14
  66. package/dist/cjs/utils/solidity-keccak256.js +49 -60
  67. package/dist/cjs/utils/split-signature.js +55 -73
  68. package/dist/cjs/utils/tests/bytes/arrayify.test.js +40 -0
  69. package/dist/cjs/utils/tests/bytes/concat.test.js +15 -0
  70. package/dist/cjs/utils/tests/bytes/hex-concat.test.js +63 -0
  71. package/dist/cjs/utils/tests/bytes/hex-data-length.test.js +49 -0
  72. package/dist/cjs/utils/tests/bytes/hex-data-slice.test.js +52 -0
  73. package/dist/cjs/utils/tests/bytes/hex-strip-zeros.test.js +58 -0
  74. package/dist/cjs/utils/tests/bytes/hex-value.test.js +85 -0
  75. package/dist/cjs/utils/tests/bytes/hex-zero-pad.test.js +62 -0
  76. package/dist/cjs/utils/tests/bytes/hexlify.test.js +62 -0
  77. package/dist/cjs/utils/tests/bytes/is-bytes-like.test.js +69 -0
  78. package/dist/cjs/utils/tests/bytes/is-bytes.test.js +33 -0
  79. package/dist/cjs/utils/tests/bytes/is-hex-string.test.js +88 -0
  80. package/dist/cjs/utils/tests/bytes/strip-zeros.test.js +57 -0
  81. package/dist/cjs/utils/tests/bytes/zero-pad.test.js +80 -0
  82. package/dist/cjs/utils/tests/compute-address.test.js +27 -0
  83. package/dist/cjs/utils/tests/compute-public-key.test.js +15 -0
  84. package/dist/cjs/utils/tests/ether-to-gwei.test.js +26 -0
  85. package/dist/cjs/utils/tests/ether-to-wei.test.js +44 -0
  86. package/dist/cjs/utils/tests/gwei-to-ether.test.js +28 -0
  87. package/dist/cjs/utils/tests/hash-message.test.js +21 -0
  88. package/dist/cjs/utils/tests/is-address.test.js +55 -0
  89. package/dist/cjs/utils/tests/keccak256.test.js +97 -0
  90. package/dist/cjs/utils/tests/solidity-keccak256.test.js +310 -0
  91. package/dist/cjs/utils/tests/split-signature.test.js +25 -0
  92. package/dist/cjs/utils/tests/to-checksum-address.test.js +42 -0
  93. package/dist/cjs/utils/tests/to-utf8-bytes.test.js +14 -0
  94. package/dist/cjs/utils/tests/wei-to-ether.test.js +51 -0
  95. package/dist/cjs/utils/to-checksum-address.js +15 -20
  96. package/dist/cjs/utils/to-utf8-bytes.js +1 -6
  97. package/dist/cjs/utils/wei-to-ether.js +13 -15
  98. package/dist/esm/classes/utils/clean-block.d.ts +1 -2
  99. package/dist/esm/classes/utils/clean-block.js +1 -1
  100. package/dist/esm/classes/utils/clean-transaction-receipt.js +2 -1
  101. package/dist/esm/classes/utils/clean-transaction.js +2 -1
  102. package/dist/esm/classes/utils/encode-decode-transaction.d.ts +1 -1
  103. package/dist/esm/classes/utils/encode-decode-transaction.js +37 -2
  104. package/dist/esm/logger/package-version.d.ts +1 -1
  105. package/dist/esm/logger/package-version.js +1 -1
  106. package/dist/esm/utils/compute-address.js +2 -1
  107. package/dist/esm/utils/hash-message.d.ts +1 -1
  108. package/dist/esm/utils/hash-message.js +3 -1
  109. package/dist/esm/utils/is-address.js +1 -1
  110. package/package.json +8 -6
  111. package/readme.md +34 -3
@@ -1,28 +1,188 @@
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 };
1
+ function _arrayLikeToArray(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _arrayWithHoles(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
+ try {
11
+ var info = gen[key](arg);
12
+ var value = info.value;
13
+ } catch (error) {
14
+ reject(error);
15
+ return;
16
+ }
17
+ if (info.done) {
18
+ resolve(value);
19
+ } else {
20
+ Promise.resolve(value).then(_next, _throw);
21
+ }
22
+ }
23
+ function _asyncToGenerator(fn) {
24
+ return function() {
25
+ var self = this, args = arguments;
26
+ return new Promise(function(resolve, reject) {
27
+ var gen = fn.apply(self, args);
28
+ function _next(value) {
29
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
30
+ }
31
+ function _throw(err) {
32
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
33
+ }
34
+ _next(undefined);
35
+ });
36
+ };
37
+ }
38
+ function _classCallCheck(instance, Constructor) {
39
+ if (!(instance instanceof Constructor)) {
40
+ throw new TypeError("Cannot call a class as a function");
41
+ }
42
+ }
43
+ function _iterableToArrayLimit(arr, i) {
44
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
45
+ if (_i == null) return;
46
+ var _arr = [];
47
+ var _n = true;
48
+ var _d = false;
49
+ var _s, _e;
50
+ try {
51
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
52
+ _arr.push(_s.value);
53
+ if (i && _arr.length === i) break;
54
+ }
55
+ } catch (err) {
56
+ _d = true;
57
+ _e = err;
58
+ } finally{
59
+ try {
60
+ if (!_n && _i["return"] != null) _i["return"]();
61
+ } finally{
62
+ if (_d) throw _e;
63
+ }
64
+ }
65
+ return _arr;
66
+ }
67
+ function _nonIterableRest() {
68
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
69
+ }
70
+ function _slicedToArray(arr, i) {
71
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
72
+ }
73
+ function _unsupportedIterableToArray(o, minLen) {
74
+ if (!o) return;
75
+ if (typeof o === "string") return _arrayLikeToArray(o, minLen);
76
+ var n = Object.prototype.toString.call(o).slice(8, -1);
77
+ if (n === "Object" && o.constructor) n = o.constructor.name;
78
+ if (n === "Map" || n === "Set") return Array.from(n);
79
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
80
+ }
81
+ var __generator = this && this.__generator || function(thisArg, body) {
82
+ var f, y, t, g, _ = {
83
+ label: 0,
84
+ sent: function() {
85
+ if (t[0] & 1) throw t[1];
86
+ return t[1];
87
+ },
88
+ trys: [],
89
+ ops: []
90
+ };
91
+ return g = {
92
+ next: verb(0),
93
+ "throw": verb(1),
94
+ "return": verb(2)
95
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
96
+ return this;
97
+ }), g;
98
+ function verb(n) {
99
+ return function(v) {
100
+ return step([
101
+ n,
102
+ v
103
+ ]);
104
+ };
105
+ }
106
+ function step(op) {
107
+ if (f) throw new TypeError("Generator is already executing.");
108
+ while(_)try {
109
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
110
+ if (y = 0, t) op = [
111
+ op[0] & 2,
112
+ t.value
113
+ ];
114
+ switch(op[0]){
115
+ case 0:
116
+ case 1:
117
+ t = op;
118
+ break;
119
+ case 4:
120
+ _.label++;
121
+ return {
122
+ value: op[1],
123
+ done: false
124
+ };
125
+ case 5:
126
+ _.label++;
127
+ y = op[1];
128
+ op = [
129
+ 0
130
+ ];
131
+ continue;
132
+ case 7:
133
+ op = _.ops.pop();
134
+ _.trys.pop();
135
+ continue;
136
+ default:
137
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
138
+ _ = 0;
139
+ continue;
140
+ }
141
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
142
+ _.label = op[1];
143
+ break;
144
+ }
145
+ if (op[0] === 6 && _.label < t[1]) {
146
+ _.label = t[1];
147
+ t = op;
148
+ break;
149
+ }
150
+ if (t && _.label < t[2]) {
151
+ _.label = t[2];
152
+ _.ops.push(op);
153
+ break;
154
+ }
155
+ if (t[2]) _.ops.pop();
156
+ _.trys.pop();
157
+ continue;
158
+ }
159
+ op = body.call(thisArg, _);
160
+ } catch (e) {
161
+ op = [
162
+ 6,
163
+ e
164
+ ];
165
+ y = 0;
166
+ } finally{
167
+ f = t = 0;
168
+ }
169
+ if (op[0] & 5) throw op[1];
170
+ return {
171
+ value: op[0] ? op[1] : void 0,
172
+ done: true
173
+ };
174
+ }
13
175
  };
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.BaseProvider = void 0;
16
- const clean_block_1 = require("../classes/utils/clean-block");
17
- const clean_log_1 = require("../classes/utils/clean-log");
18
- const clean_transaction_1 = require("../classes/utils/clean-transaction");
19
- const clean_transaction_receipt_1 = require("../classes/utils/clean-transaction-receipt");
20
- const fetchers_1 = require("../classes/utils/fetchers");
21
- const hex_to_decimal_1 = require("../classes/utils/hex-to-decimal");
22
- const prepare_transaction_1 = require("../classes/utils/prepare-transaction");
23
- const logger_1 = require("../logger/logger");
24
- const tiny_big_1 = require("../shared/tiny-big/tiny-big");
25
- const chains_info_1 = __importDefault(require("./utils/chains-info"));
176
+ import { cleanBlock } from "../classes/utils/clean-block";
177
+ import { cleanLog } from "../classes/utils/clean-log";
178
+ import { cleanTransaction } from "../classes/utils/clean-transaction";
179
+ import { cleanTransactionReceipt } from "../classes/utils/clean-transaction-receipt";
180
+ import { buildRPCPostBody, post } from "../classes/utils/fetchers";
181
+ import { hexToDecimal } from "../classes/utils/hex-to-decimal";
182
+ import { prepareTransaction } from "../classes/utils/prepare-transaction";
183
+ import { logger } from "../logger/logger";
184
+ import { tinyBig } from "../shared/tiny-big/tiny-big";
185
+ import chainsInfo from "./utils/chains-info";
26
186
  /**
27
187
  * Converts a block tag into the right format when needed.
28
188
  *
@@ -42,471 +202,660 @@ const chains_info_1 = __importDefault(require("./utils/chains-info"));
42
202
  * prepBlockTag('0xe290b7');
43
203
  * // '0xe290b7'
44
204
  * ```
45
- */
46
- function prepBlockTag(blockTag) {
47
- return typeof blockTag === 'number'
48
- ? (0, tiny_big_1.tinyBig)(blockTag).toHexString()
49
- : blockTag;
205
+ */ function prepBlockTag(blockTag) {
206
+ return typeof blockTag === "number" ? tinyBig(blockTag).toHexString() : blockTag;
50
207
  }
51
- class BaseProvider {
52
- /**
53
- * @param rpcUrls The URL(s) to your Eth node(s). Consider POKT or Infura
54
- * @example
55
- * `https://free-eth-node.com/api/eth`
56
- * @example
57
- * `https://mainnet.infura.io/v3/YOUR-PROJECT-ID`
58
- */
59
- constructor(rpcUrls) {
208
+ export var BaseProvider = /*#__PURE__*/ function() {
209
+ "use strict";
210
+ function BaseProvider(rpcUrls) {
211
+ var _this = this;
212
+ _classCallCheck(this, BaseProvider);
60
213
  /**
61
- * @ignore
62
- */
63
- this._rpcUrls = [];
214
+ * @ignore
215
+ */ this._rpcUrls = [];
64
216
  /**
65
- * @ignore
66
- */
67
- this._post = (body) => (0, fetchers_1.post)(this.selectRpcUrl(), body);
217
+ * @ignore
218
+ */ this._post = function(body) {
219
+ return post(_this.selectRpcUrl(), body);
220
+ };
68
221
  this._rpcUrls = rpcUrls;
69
222
  }
223
+ var _proto = BaseProvider.prototype;
70
224
  /**
71
- * Gets information (name, chainId, and ensAddress when applicable) about the network the provider is connected to.
72
- *
73
- * * [Identical](/docs/api#isd) to [`ethers.provider.getNetwork`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getNetwork) in ethers.js
74
- * * [Similar](/docs/api#isd) to [`web3.eth.getChainId`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getchainid) in web3.js, returns more than just the `chainId`
75
- *
76
- * @returns information about the network this provider is currently connected to
77
- * @example
78
- * ```javascript
79
- * jsonRpcProvider('https://free-eth-node.com/api/eth').getNetwork();
80
- * // { chainId: 1, name: 'eth', ensAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' }
81
- * ```
82
- * @example
83
- * ```javascript
84
- * jsonRpcProvider('https://free-eth-node.com/api/MATIC').getNetwork();
85
- * // { chainId: 137, name: 'MATIC', ensAddress: null }
86
- * ```
87
- */
88
- getNetwork() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const hexChainId = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_chainId', [])));
91
- const chainId = (0, hex_to_decimal_1.hexToDecimal)(hexChainId);
92
- const info = chains_info_1.default[chainId];
93
- return {
94
- chainId: Number(chainId),
95
- name: info[0] || 'unknown',
96
- ensAddress: info[1] || null, // only send ensAddress if it exists
97
- };
98
- });
99
- }
225
+ * Gets information (name, chainId, and ensAddress when applicable) about the network the provider is connected to.
226
+ *
227
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getNetwork`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getNetwork) in ethers.js
228
+ * * [Similar](/docs/api#isd) to [`web3.eth.getChainId`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getchainid) in web3.js, returns more than just the `chainId`
229
+ *
230
+ * @returns information about the network this provider is currently connected to
231
+ * @example
232
+ * ```javascript
233
+ * jsonRpcProvider('https://free-eth-node.com/api/eth').getNetwork();
234
+ * // { chainId: 1, name: 'eth', ensAddress: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e' }
235
+ * ```
236
+ * @example
237
+ * ```javascript
238
+ * jsonRpcProvider('https://free-eth-node.com/api/MATIC').getNetwork();
239
+ * // { chainId: 137, name: 'MATIC', ensAddress: null }
240
+ * ```
241
+ */ _proto.getNetwork = function getNetwork() {
242
+ var _this = this;
243
+ return _asyncToGenerator(function() {
244
+ var hexChainId, chainId, info;
245
+ return __generator(this, function(_state) {
246
+ switch(_state.label){
247
+ case 0:
248
+ return [
249
+ 4,
250
+ _this.post(buildRPCPostBody("eth_chainId", []))
251
+ ];
252
+ case 1:
253
+ hexChainId = _state.sent();
254
+ chainId = hexToDecimal(hexChainId);
255
+ info = chainsInfo[chainId];
256
+ return [
257
+ 2,
258
+ {
259
+ chainId: Number(chainId),
260
+ name: info[0] || "unknown",
261
+ ensAddress: info[1] || null
262
+ }
263
+ ];
264
+ }
265
+ });
266
+ })();
267
+ };
100
268
  /**
101
- * Gets the number of the most recently mined block on the network the provider is connected to.
102
- *
103
- * * [Identical](/docs/api#isd) to [`ethers.provider.getBlockNumber`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBlockNumber) in ethers.js
104
- * * [Identical](/docs/api#isd) to [`web3.eth.getBlockNumber`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getblocknumber) in web3.js
105
- *
106
- * @returns the number of the most recently mined block
107
- * @example
108
- * ```javascript
109
- * await provider.getBlockNumber();
110
- * // 1053312
111
- * ```
112
- */
113
- getBlockNumber() {
114
- return __awaiter(this, void 0, void 0, function* () {
115
- const currentBlockNumber = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_blockNumber', [])));
116
- return Number((0, hex_to_decimal_1.hexToDecimal)(currentBlockNumber));
117
- });
118
- }
269
+ * Gets the number of the most recently mined block on the network the provider is connected to.
270
+ *
271
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getBlockNumber`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBlockNumber) in ethers.js
272
+ * * [Identical](/docs/api#isd) to [`web3.eth.getBlockNumber`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getblocknumber) in web3.js
273
+ *
274
+ * @returns the number of the most recently mined block
275
+ * @example
276
+ * ```javascript
277
+ * await provider.getBlockNumber();
278
+ * // 1053312
279
+ * ```
280
+ */ _proto.getBlockNumber = function getBlockNumber() {
281
+ var _this = this;
282
+ return _asyncToGenerator(function() {
283
+ var currentBlockNumber;
284
+ return __generator(this, function(_state) {
285
+ switch(_state.label){
286
+ case 0:
287
+ return [
288
+ 4,
289
+ _this.post(buildRPCPostBody("eth_blockNumber", []))
290
+ ];
291
+ case 1:
292
+ currentBlockNumber = _state.sent();
293
+ return [
294
+ 2,
295
+ Number(hexToDecimal(currentBlockNumber))
296
+ ];
297
+ }
298
+ });
299
+ })();
300
+ };
119
301
  /**
120
- * Gets information about a specified transaction, even if it hasn't been mined yet.
121
- *
122
- * * [Similar](/docs/api#isd) to [`ethers.provider.getTransaction`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransaction) in ethers.js, does not have `wait` method that waits until the transaction has been mined
123
- * * [Similar](/docs/api#isd) to [`web3.eth.getTransaction`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransaction) in web3.js, some information returned using different types
124
- *
125
- * @param transactionHash the hash of the transaction to get information about
126
- * @returns information about the specified transaction
127
- * @example
128
- * ```javascript
129
- * await provider.getTransaction('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
130
- * // {
131
- * // accessList: [],
132
- * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
133
- * // blockNumber: 14578286,
134
- * // chainId: 1,
135
- * // from: "0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4",
136
- * // gas: { TinyBig: 112163 },
137
- * // gasPrice: { TinyBig: 48592426858 },
138
- * // hash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
139
- * // input: "0x83259f17000000000000000000000000000000000000000000...",
140
- * // maxFeePerGas: { TinyBig: 67681261618 },
141
- * // maxPriorityFeePerGas: { TinyBig: 1500000000 },
142
- * // nonce: { TinyBig: 129 },
143
- * // r: "0x59a7c15b12c18cd68d6c440963d959bff3e73831ffc938e75ecad07f7ee43fbc",
144
- * // s: "0x1ebaf05f0d9273b16c2a7748b150a79d22533a8cd74552611cbe620fee3dcf1c",
145
- * // to: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
146
- * // transactionIndex: 29,
147
- * // type: 2,
148
- * // v: 0,
149
- * // value: { TinyBig: 0 },
150
- * // confirmations: 298140,
151
- * // }
152
- * ```
153
- */
154
- getTransaction(transactionHash) {
155
- return __awaiter(this, void 0, void 0, function* () {
156
- const [rpcTransaction, blockNumber] = yield Promise.all([
157
- this.post((0, fetchers_1.buildRPCPostBody)('eth_getTransactionByHash', [transactionHash])),
158
- this.getBlock('latest'),
159
- ]);
160
- const cleanedTransaction = (0, clean_transaction_1.cleanTransaction)(rpcTransaction);
161
- // https://ethereum.stackexchange.com/questions/2881/how-to-get-the-transaction-confirmations-using-the-json-rpc
162
- cleanedTransaction.confirmations =
163
- blockNumber.number - cleanedTransaction.blockNumber + 1;
164
- return cleanedTransaction;
165
- });
166
- }
302
+ * Gets information about a specified transaction, even if it hasn't been mined yet.
303
+ *
304
+ * * [Similar](/docs/api#isd) to [`ethers.provider.getTransaction`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransaction) in ethers.js, does not have `wait` method that waits until the transaction has been mined
305
+ * * [Similar](/docs/api#isd) to [`web3.eth.getTransaction`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransaction) in web3.js, some information returned using different types
306
+ *
307
+ * @param transactionHash the hash of the transaction to get information about
308
+ * @returns information about the specified transaction
309
+ * @example
310
+ * ```javascript
311
+ * await provider.getTransaction('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
312
+ * // {
313
+ * // accessList: [],
314
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
315
+ * // blockNumber: 14578286,
316
+ * // chainId: 1,
317
+ * // from: "0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4",
318
+ * // gas: { TinyBig: 112163 },
319
+ * // gasPrice: { TinyBig: 48592426858 },
320
+ * // hash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
321
+ * // input: "0x83259f17000000000000000000000000000000000000000000...",
322
+ * // maxFeePerGas: { TinyBig: 67681261618 },
323
+ * // maxPriorityFeePerGas: { TinyBig: 1500000000 },
324
+ * // nonce: { TinyBig: 129 },
325
+ * // r: "0x59a7c15b12c18cd68d6c440963d959bff3e73831ffc938e75ecad07f7ee43fbc",
326
+ * // s: "0x1ebaf05f0d9273b16c2a7748b150a79d22533a8cd74552611cbe620fee3dcf1c",
327
+ * // to: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
328
+ * // transactionIndex: 29,
329
+ * // type: 2,
330
+ * // v: 0,
331
+ * // value: { TinyBig: 0 },
332
+ * // confirmations: 298140,
333
+ * // }
334
+ * ```
335
+ */ _proto.getTransaction = function getTransaction(transactionHash) {
336
+ var _this = this;
337
+ return _asyncToGenerator(function() {
338
+ var _ref, rpcTransaction, blockNumber, cleanedTransaction;
339
+ return __generator(this, function(_state) {
340
+ switch(_state.label){
341
+ case 0:
342
+ return [
343
+ 4,
344
+ Promise.all([
345
+ _this.post(buildRPCPostBody("eth_getTransactionByHash", [
346
+ transactionHash
347
+ ])),
348
+ _this.getBlock("latest")
349
+ ])
350
+ ];
351
+ case 1:
352
+ _ref = _slicedToArray.apply(void 0, [
353
+ _state.sent(),
354
+ 2
355
+ ]), rpcTransaction = _ref[0], blockNumber = _ref[1];
356
+ cleanedTransaction = cleanTransaction(rpcTransaction);
357
+ // https://ethereum.stackexchange.com/questions/2881/how-to-get-the-transaction-confirmations-using-the-json-rpc
358
+ cleanedTransaction.confirmations = blockNumber.number - cleanedTransaction.blockNumber + 1;
359
+ return [
360
+ 2,
361
+ cleanedTransaction
362
+ ];
363
+ }
364
+ });
365
+ })();
366
+ };
167
367
  /**
168
- * Gives information about a transaction that has already been mined. Includes additional information beyond what's provided by [`getTransaction`](/docs/api/modules#gettransaction).
169
- *
170
- * * [Identical](/docs/api#isd) to [`ethers.provider.getTransactionReceipt`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionReceipt) in ethers.js
171
- * * [Similar](/docs/api#isd) to [`web3.eth.getTransactionReceipt`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransactionreceipt) in web3.js, some information returned using different types
172
- *
173
- * @param transactionHash the hash of the transaction to get information about
174
- * @returns information about the specified transaction that has already been mined
175
- * @example
176
- * ```javascript
177
- * await provider.getTransactionReceipt('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
178
- * // {
179
- * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
180
- * // blockNumber: 14578286,
181
- * // contractAddress: null,
182
- * // cumulativeGasUsed: { TinyBig: 3067973 },
183
- * // effectiveGasPrice: { TinyBig: 48592426858 },
184
- * // from: "0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4",
185
- * // gasUsed: { TinyBig: 112163 },
186
- * // logs: [
187
- * // {
188
- * // address: "0x0eDF9bc41Bbc1354c70e2107F80C42caE7FBBcA8",
189
- * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
190
- * // blockNumber: 14578286,
191
- * // data: "0x0000000000000000000000000000000000000000000003a12ec797b5484968c1",
192
- * // logIndex: 42,
193
- * // topics: [
194
- * // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
195
- * // "0x00000000000000000000000039b72d136ba3e4cef35f48cd09587ffab754dd8b",
196
- * // "0x000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed4",
197
- * // ],
198
- * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
199
- * // transactionIndex: 29,
200
- * // },
201
- * // {
202
- * // address: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
203
- * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
204
- * // blockNumber: 14578286,
205
- * // data: "0x0000000000000000000000000000000000000000000003a12ec797b5484968c1",
206
- * // logIndex: 43,
207
- * // topics: [
208
- * // "0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7",
209
- * // "0x000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed4",
210
- * // "0x0000000000000000000000000000000000000000000000000000000000000003",
211
- * // ],
212
- * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
213
- * // transactionIndex: 29,
214
- * // },
215
- * // ],
216
- * // logsBloom: "0x00000000000000000000000000000...",
217
- * // status: 1,
218
- * // to: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
219
- * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
220
- * // transactionIndex: 29,
221
- * // type: 2,
222
- * // byzantium: true,
223
- * // confirmations: 298171,
224
- * // }
225
- * ```
226
- */
227
- getTransactionReceipt(transactionHash) {
228
- return __awaiter(this, void 0, void 0, function* () {
229
- const [rpcTransaction, blockNumber] = yield Promise.all([
230
- this.post((0, fetchers_1.buildRPCPostBody)('eth_getTransactionReceipt', [transactionHash])),
231
- this.getBlock('latest'),
232
- ]);
233
- const cleanedTransactionReceipt = (0, clean_transaction_receipt_1.cleanTransactionReceipt)(rpcTransaction);
234
- cleanedTransactionReceipt.confirmations =
235
- blockNumber.number - cleanedTransactionReceipt.blockNumber + 1;
236
- return cleanedTransactionReceipt;
237
- });
238
- }
368
+ * Gives information about a transaction that has already been mined. Includes additional information beyond what's provided by [`getTransaction`](/docs/api/modules#gettransaction).
369
+ *
370
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getTransactionReceipt`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionReceipt) in ethers.js
371
+ * * [Similar](/docs/api#isd) to [`web3.eth.getTransactionReceipt`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransactionreceipt) in web3.js, some information returned using different types
372
+ *
373
+ * @param transactionHash the hash of the transaction to get information about
374
+ * @returns information about the specified transaction that has already been mined
375
+ * @example
376
+ * ```javascript
377
+ * await provider.getTransactionReceipt('0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789');
378
+ * // {
379
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
380
+ * // blockNumber: 14578286,
381
+ * // contractAddress: null,
382
+ * // cumulativeGasUsed: { TinyBig: 3067973 },
383
+ * // effectiveGasPrice: { TinyBig: 48592426858 },
384
+ * // from: "0xdfD9dE5f6FA60BD70636c0900752E93a6144AEd4",
385
+ * // gasUsed: { TinyBig: 112163 },
386
+ * // logs: [
387
+ * // {
388
+ * // address: "0x0eDF9bc41Bbc1354c70e2107F80C42caE7FBBcA8",
389
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
390
+ * // blockNumber: 14578286,
391
+ * // data: "0x0000000000000000000000000000000000000000000003a12ec797b5484968c1",
392
+ * // logIndex: 42,
393
+ * // topics: [
394
+ * // "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
395
+ * // "0x00000000000000000000000039b72d136ba3e4cef35f48cd09587ffab754dd8b",
396
+ * // "0x000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed4",
397
+ * // ],
398
+ * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
399
+ * // transactionIndex: 29,
400
+ * // },
401
+ * // {
402
+ * // address: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
403
+ * // blockHash: "0x876810a013dbcd140f6fd6048c1dc33abbb901f1f96b394c2fa63aef3cb40b5d",
404
+ * // blockNumber: 14578286,
405
+ * // data: "0x0000000000000000000000000000000000000000000003a12ec797b5484968c1",
406
+ * // logIndex: 43,
407
+ * // topics: [
408
+ * // "0x34fcbac0073d7c3d388e51312faf357774904998eeb8fca628b9e6f65ee1cbf7",
409
+ * // "0x000000000000000000000000dfd9de5f6fa60bd70636c0900752e93a6144aed4",
410
+ * // "0x0000000000000000000000000000000000000000000000000000000000000003",
411
+ * // ],
412
+ * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
413
+ * // transactionIndex: 29,
414
+ * // },
415
+ * // ],
416
+ * // logsBloom: "0x00000000000000000000000000000...",
417
+ * // status: 1,
418
+ * // to: "0x39B72d136ba3e4ceF35F48CD09587ffaB754DD8B",
419
+ * // transactionHash: "0x9014ae6ef92464338355a79e5150e542ff9a83e2323318b21f40d6a3e65b4789",
420
+ * // transactionIndex: 29,
421
+ * // type: 2,
422
+ * // byzantium: true,
423
+ * // confirmations: 298171,
424
+ * // }
425
+ * ```
426
+ */ _proto.getTransactionReceipt = function getTransactionReceipt(transactionHash) {
427
+ var _this = this;
428
+ return _asyncToGenerator(function() {
429
+ var _ref, rpcTransaction, blockNumber, cleanedTransactionReceipt;
430
+ return __generator(this, function(_state) {
431
+ switch(_state.label){
432
+ case 0:
433
+ return [
434
+ 4,
435
+ Promise.all([
436
+ _this.post(buildRPCPostBody("eth_getTransactionReceipt", [
437
+ transactionHash
438
+ ])),
439
+ _this.getBlock("latest")
440
+ ])
441
+ ];
442
+ case 1:
443
+ _ref = _slicedToArray.apply(void 0, [
444
+ _state.sent(),
445
+ 2
446
+ ]), rpcTransaction = _ref[0], blockNumber = _ref[1];
447
+ cleanedTransactionReceipt = cleanTransactionReceipt(rpcTransaction);
448
+ cleanedTransactionReceipt.confirmations = blockNumber.number - cleanedTransactionReceipt.blockNumber + 1;
449
+ return [
450
+ 2,
451
+ cleanedTransactionReceipt
452
+ ];
453
+ }
454
+ });
455
+ })();
456
+ };
239
457
  /**
240
- * Returns the number of sent transactions by an address, from genesis (or as far back as a provider looks) up to specified block.
241
- *
242
- * * [Identical](/docs/api#isd) to [`ethers.provider.getTransactionCount`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionCount) in ethers.js
243
- * * [Identical](/docs/api#isd) to [`web3.eth.getTransactionCount`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransactioncount) in web3.js
244
- *
245
- * @param address the address to count number of sent transactions
246
- * @param blockTag the block to count transactions up to, inclusive
247
- * @returns the number of transactions sent by the specified address
248
- * @example
249
- * ```javascript
250
- * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3');
251
- * // 1060000
252
- * ```
253
- * @example
254
- * ```javascript
255
- * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3', 'latest');
256
- * // 1060000
257
- * ```
258
- * @example
259
- * ```javascript
260
- * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3', 14649390);
261
- * // 1053312
262
- * ```
263
- */
264
- getTransactionCount(address, blockTag = 'latest') {
265
- return __awaiter(this, void 0, void 0, function* () {
266
- blockTag = prepBlockTag(blockTag);
267
- const transactionCount = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_getTransactionCount', [address, blockTag])));
268
- return Number((0, hex_to_decimal_1.hexToDecimal)(transactionCount));
269
- });
270
- }
458
+ * Returns the number of sent transactions by an address, from genesis (or as far back as a provider looks) up to specified block.
459
+ *
460
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getTransactionCount`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getTransactionCount) in ethers.js
461
+ * * [Identical](/docs/api#isd) to [`web3.eth.getTransactionCount`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#gettransactioncount) in web3.js
462
+ *
463
+ * @param address the address to count number of sent transactions
464
+ * @param blockTag the block to count transactions up to, inclusive
465
+ * @returns the number of transactions sent by the specified address
466
+ * @example
467
+ * ```javascript
468
+ * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3');
469
+ * // 1060000
470
+ * ```
471
+ * @example
472
+ * ```javascript
473
+ * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3', 'latest');
474
+ * // 1060000
475
+ * ```
476
+ * @example
477
+ * ```javascript
478
+ * await provider.getTransactionCount('0x71660c4005ba85c37ccec55d0c4493e66fe775d3', 14649390);
479
+ * // 1053312
480
+ * ```
481
+ */ _proto.getTransactionCount = function getTransactionCount(address) {
482
+ var blockTag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "latest";
483
+ var _this = this;
484
+ return _asyncToGenerator(function() {
485
+ var transactionCount;
486
+ return __generator(this, function(_state) {
487
+ switch(_state.label){
488
+ case 0:
489
+ blockTag = prepBlockTag(blockTag);
490
+ return [
491
+ 4,
492
+ _this.post(buildRPCPostBody("eth_getTransactionCount", [
493
+ address,
494
+ blockTag
495
+ ]))
496
+ ];
497
+ case 1:
498
+ transactionCount = _state.sent();
499
+ return [
500
+ 2,
501
+ Number(hexToDecimal(transactionCount))
502
+ ];
503
+ }
504
+ });
505
+ })();
506
+ };
271
507
  /**
272
- * Gets information about a certain block, optionally with full transaction objects.
273
- *
274
- * * [Similar](/docs/api#isd) to [`ethers.provider.getBlock`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getLogs) in ethers.js, includes some additional information. Can also return block with full transaction objects, similar to [`ethers.providers.getBlockWithTransactions`]
275
- * * [Identical](/docs/api#isd) to [`web3.eth.getBlock`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getpastlogs) in web3.js
276
- *
277
- * @param timeFrame The number, hash, or text-based description ('latest', 'earliest', or 'pending') of the block to collect information on.
278
- * @param returnTransactionObjects Whether to also return data about the transactions on the block.
279
- * @returns A BlockResponse object with information about the specified block
280
- * @example
281
- * ```javascript
282
- * await provider.getBlock(14879862);
283
- * // {
284
- * // baseFeePerGas: { TinyBig: 39095728776 },
285
- * // difficulty: { TinyBig: 14321294455359973 },
286
- * // extraData: "0x486976656f6e2073672d6865617679",
287
- * // gasLimit: { TinyBig: 29970620 },
288
- * // gasUsed: { TinyBig: 20951384 },
289
- * // hash: "0x563b458ec3c4f87393b53f70bdddc0058497109b784d8cacd9247ddf267049ab",
290
- * // logsBloom:
291
- * // "0x9f38794fe80b521794df6efad8b0d2e9582f9ec3959a3f9384bda0fa371cfa5fac5af9d515c6bdf1ec325f5b5f7ebdd6a3a9fae17b38a86d4dc4b0971afc68d8086640550f4c156e6f923f4a1bb94fb0bed6cdcc474c5c64bfeff7a4a906f72b9a7b94004ee58efc53d63ac66961acd3a431b2d896cc9fd75f6072960bced45f770587caf130f57504decfcb63c6ca8fbc5bdbd749edd5a99a7375d2b81872289adb775fb3c928259f4be39c6d3f4d5b6217822979bb88c1f1fb62429b1b6d41cf4e3f77f9e1db3f5723108f1e5b1255dd734ad8cdb11e7ea22487c788e67c83777b6f395e504ca59c64f52245ee6de3804cf809e5caa4f0ea6a9aa9eb6ed801",
292
- * // miner: "0x1aD91ee08f21bE3dE0BA2ba6918E714dA6B45836",
293
- * // mixHash: "0x73cc9419bfb89c9d41c3a8c34ce56b5ebe468bdcf870258d2e77262275d580ec",
294
- * // nonce: "0x976f3f5d596ffb08",
295
- * // number: 14879862,
296
- * // parentHash: "0x95986ae14a71face8d9a6a379edd875b2e8bc73e4de0d9d460e7752bddb0f579",
297
- * // receiptsRoot: "0x8e6ba2fd9bee602b653dae6e3132f16538c2c5df24f1df8c000392053f73defa",
298
- * // sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
299
- * // size: { TinyBig: 134483 },
300
- * // stateRoot: "0xbf2bb67bd1c741f3d00904b8451d7c2cf4e3a2726f5a5884792ede2074747b85",
301
- * // timestamp: { TinyBig: 1654016186 },
302
- * // totalDifficulty: { TinyBig: 50478104614257705213748 },
303
- * // transactions: [
304
- * // "0xb3326a9149809603a2c28545e50e4f7d16e194bf5ee9764e0544603854c4a8d2",
305
- * // "0x8b42095f8d335404a4896b2817b8e5e3d86a5a87cb434a8eec295d5280a7f48e",
306
- * // "0x882f78fcb73f0f7ad0700bb0424a8b4beb366aaa93b88a3562c49a8d0ce4dcff",
307
- * // ...
308
- * // ],
309
- * // transactionsRoot: "0x5934902f3dcc263ec34f24318179bf6301f53f4834685792066026f3a4849d72",
310
- * // uncles: [],
311
- * // }
312
- * ```
313
- */
314
- getBlock(timeFrame = 'latest', returnTransactionObjects = false) {
315
- return __awaiter(this, void 0, void 0, function* () {
316
- let type = 'Number';
317
- if (typeof timeFrame === 'string' && timeFrame.length === 66) {
318
- // use endpoint that accepts string
319
- type = 'Hash';
320
- }
321
- else {
322
- timeFrame = prepBlockTag(timeFrame);
323
- }
324
- const rpcBlock = (yield this.post((0, fetchers_1.buildRPCPostBody)(`eth_getBlockBy${type}`, [
325
- timeFrame,
326
- returnTransactionObjects,
327
- ])));
328
- return (0, clean_block_1.cleanBlock)(rpcBlock, returnTransactionObjects);
329
- });
330
- }
508
+ * Gets information about a certain block, optionally with full transaction objects.
509
+ *
510
+ * * [Similar](/docs/api#isd) to [`ethers.provider.getBlock`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getLogs) in ethers.js, includes some additional information. Can also return block with full transaction objects, similar to [`ethers.providers.getBlockWithTransactions`]
511
+ * * [Identical](/docs/api#isd) to [`web3.eth.getBlock`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getpastlogs) in web3.js
512
+ *
513
+ * @param timeFrame The number, hash, or text-based description ('latest', 'earliest', or 'pending') of the block to collect information on.
514
+ * @param returnTransactionObjects Whether to also return data about the transactions on the block.
515
+ * @returns A BlockResponse object with information about the specified block
516
+ * @example
517
+ * ```javascript
518
+ * await provider.getBlock(14879862);
519
+ * // {
520
+ * // baseFeePerGas: { TinyBig: 39095728776 },
521
+ * // difficulty: { TinyBig: 14321294455359973 },
522
+ * // extraData: "0x486976656f6e2073672d6865617679",
523
+ * // gasLimit: { TinyBig: 29970620 },
524
+ * // gasUsed: { TinyBig: 20951384 },
525
+ * // hash: "0x563b458ec3c4f87393b53f70bdddc0058497109b784d8cacd9247ddf267049ab",
526
+ * // logsBloom:
527
+ * // "0x9f38794fe80b521794df6efad8b0d2e9582f9ec3959a3f9384bda0fa371cfa5fac5af9d515c6bdf1ec325f5b5f7ebdd6a3a9fae17b38a86d4dc4b0971afc68d8086640550f4c156e6f923f4a1bb94fb0bed6cdcc474c5c64bfeff7a4a906f72b9a7b94004ee58efc53d63ac66961acd3a431b2d896cc9fd75f6072960bced45f770587caf130f57504decfcb63c6ca8fbc5bdbd749edd5a99a7375d2b81872289adb775fb3c928259f4be39c6d3f4d5b6217822979bb88c1f1fb62429b1b6d41cf4e3f77f9e1db3f5723108f1e5b1255dd734ad8cdb11e7ea22487c788e67c83777b6f395e504ca59c64f52245ee6de3804cf809e5caa4f0ea6a9aa9eb6ed801",
528
+ * // miner: "0x1aD91ee08f21bE3dE0BA2ba6918E714dA6B45836",
529
+ * // mixHash: "0x73cc9419bfb89c9d41c3a8c34ce56b5ebe468bdcf870258d2e77262275d580ec",
530
+ * // nonce: "0x976f3f5d596ffb08",
531
+ * // number: 14879862,
532
+ * // parentHash: "0x95986ae14a71face8d9a6a379edd875b2e8bc73e4de0d9d460e7752bddb0f579",
533
+ * // receiptsRoot: "0x8e6ba2fd9bee602b653dae6e3132f16538c2c5df24f1df8c000392053f73defa",
534
+ * // sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
535
+ * // size: { TinyBig: 134483 },
536
+ * // stateRoot: "0xbf2bb67bd1c741f3d00904b8451d7c2cf4e3a2726f5a5884792ede2074747b85",
537
+ * // timestamp: { TinyBig: 1654016186 },
538
+ * // totalDifficulty: { TinyBig: 50478104614257705213748 },
539
+ * // transactions: [
540
+ * // "0xb3326a9149809603a2c28545e50e4f7d16e194bf5ee9764e0544603854c4a8d2",
541
+ * // "0x8b42095f8d335404a4896b2817b8e5e3d86a5a87cb434a8eec295d5280a7f48e",
542
+ * // "0x882f78fcb73f0f7ad0700bb0424a8b4beb366aaa93b88a3562c49a8d0ce4dcff",
543
+ * // ...
544
+ * // ],
545
+ * // transactionsRoot: "0x5934902f3dcc263ec34f24318179bf6301f53f4834685792066026f3a4849d72",
546
+ * // uncles: [],
547
+ * // }
548
+ * ```
549
+ */ _proto.getBlock = function getBlock() {
550
+ var timeFrame = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "latest", returnTransactionObjects = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
551
+ var _this = this;
552
+ return _asyncToGenerator(function() {
553
+ var type, rpcBlock;
554
+ return __generator(this, function(_state) {
555
+ switch(_state.label){
556
+ case 0:
557
+ type = "Number";
558
+ if (typeof timeFrame === "string" && timeFrame.length === 66) {
559
+ // use endpoint that accepts string
560
+ type = "Hash";
561
+ } else {
562
+ timeFrame = prepBlockTag(timeFrame);
563
+ }
564
+ return [
565
+ 4,
566
+ _this.post(buildRPCPostBody("eth_getBlockBy".concat(type), [
567
+ timeFrame,
568
+ returnTransactionObjects
569
+ ]))
570
+ ];
571
+ case 1:
572
+ rpcBlock = _state.sent();
573
+ return [
574
+ 2,
575
+ cleanBlock(rpcBlock, returnTransactionObjects)
576
+ ];
577
+ }
578
+ });
579
+ })();
580
+ };
331
581
  /**
332
- * Gives an estimate of the current gas price in wei.
333
- *
334
- * * [Similar](/docs/api#isd) to [`ethers.provider.getGasPrice`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getGasPrice) in ethers.js, does not have a parameter specifying what unit you'd like to return. See also [`weiToEther`](/docs/api/modules#weitoether) and [`etherToGwei`](/docs/api/modules#ethertogwei)
335
- * * [Identical](/docs/api#isd) to [`web3.eth.getGasPrice`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getgasprice) in web3.js, returns a number (TinyBig) instead of a string
336
- *
337
- * @returns an estimate of the current gas price in wei
338
- * @example
339
- * ```javascript
340
- * await provider.getGasPrice();
341
- * // 52493941856
342
- * ```
343
- */
344
- getGasPrice() {
345
- return __awaiter(this, void 0, void 0, function* () {
346
- const hexGasPrice = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_gasPrice', [])));
347
- return (0, tiny_big_1.tinyBig)((0, hex_to_decimal_1.hexToDecimal)(hexGasPrice));
348
- });
349
- }
582
+ * Gives an estimate of the current gas price in wei.
583
+ *
584
+ * * [Similar](/docs/api#isd) to [`ethers.provider.getGasPrice`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getGasPrice) in ethers.js, does not have a parameter specifying what unit you'd like to return. See also [`weiToEther`](/docs/api/modules#weitoether) and [`etherToGwei`](/docs/api/modules#ethertogwei)
585
+ * * [Identical](/docs/api#isd) to [`web3.eth.getGasPrice`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getgasprice) in web3.js, returns a number (TinyBig) instead of a string
586
+ *
587
+ * @returns an estimate of the current gas price in wei
588
+ * @example
589
+ * ```javascript
590
+ * await provider.getGasPrice();
591
+ * // 52493941856
592
+ * ```
593
+ */ _proto.getGasPrice = function getGasPrice() {
594
+ var _this = this;
595
+ return _asyncToGenerator(function() {
596
+ var hexGasPrice;
597
+ return __generator(this, function(_state) {
598
+ switch(_state.label){
599
+ case 0:
600
+ return [
601
+ 4,
602
+ _this.post(buildRPCPostBody("eth_gasPrice", []))
603
+ ];
604
+ case 1:
605
+ hexGasPrice = _state.sent();
606
+ return [
607
+ 2,
608
+ tinyBig(hexToDecimal(hexGasPrice))
609
+ ];
610
+ }
611
+ });
612
+ })();
613
+ };
350
614
  /**
351
- * Returns the balance of the account in wei.
352
- *
353
- * * [Identical](/docs/api#isd) to [`ethers.provider.getBalance`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBalance) in ethers.js
354
- * * [Identical](/docs/api#isd) to [`web3.eth.getBalance`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getbalance) in web3.js, returns a number (TinyBig) instead of a string
355
- *
356
- * @param address the address to check the balance of
357
- * @param blockTag the block to check the specified address' balance on
358
- * @returns the balance of the network's native token for the specified address on the specified block
359
- * @example
360
- * ```javascript
361
- * await provider.getBalance('0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8');
362
- * // 28798127851528138
363
- * ```
364
- */
365
- getBalance(address, blockTag = 'latest') {
366
- return __awaiter(this, void 0, void 0, function* () {
367
- blockTag = prepBlockTag(blockTag);
368
- const hexBalance = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_getBalance', [address, blockTag])));
369
- return (0, tiny_big_1.tinyBig)((0, hex_to_decimal_1.hexToDecimal)(hexBalance));
370
- });
371
- }
615
+ * Returns the balance of the account in wei.
616
+ *
617
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getBalance`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getBalance) in ethers.js
618
+ * * [Identical](/docs/api#isd) to [`web3.eth.getBalance`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getbalance) in web3.js, returns a number (TinyBig) instead of a string
619
+ *
620
+ * @param address the address to check the balance of
621
+ * @param blockTag the block to check the specified address' balance on
622
+ * @returns the balance of the network's native token for the specified address on the specified block
623
+ * @example
624
+ * ```javascript
625
+ * await provider.getBalance('0x7cB57B5A97eAbe94205C07890BE4c1aD31E486A8');
626
+ * // 28798127851528138
627
+ * ```
628
+ */ _proto.getBalance = function getBalance(address) {
629
+ var blockTag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "latest";
630
+ var _this = this;
631
+ return _asyncToGenerator(function() {
632
+ var hexBalance;
633
+ return __generator(this, function(_state) {
634
+ switch(_state.label){
635
+ case 0:
636
+ blockTag = prepBlockTag(blockTag);
637
+ return [
638
+ 4,
639
+ _this.post(buildRPCPostBody("eth_getBalance", [
640
+ address,
641
+ blockTag
642
+ ]))
643
+ ];
644
+ case 1:
645
+ hexBalance = _state.sent();
646
+ return [
647
+ 2,
648
+ tinyBig(hexToDecimal(hexBalance))
649
+ ];
650
+ }
651
+ });
652
+ })();
653
+ };
372
654
  /**
373
- * Gets the code of a contract on a specified block.
374
- *
375
- * * [Identical](/docs/api#isd) to [`ethers.provider.getCode`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getCode) in ethers.js
376
- * * [Identical](/docs/api#isd) to [`web3.eth.getCode`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getcode) in web3.js
377
- *
378
- * @param address the contract address to get the contract code from
379
- * @param blockTag the block height to search for the contract code from. Contract code can change, so this allows for checking a specific block
380
- * @returns the contract creation code for the specified address at the specified block height
381
- * @example
382
- * ```javascript
383
- * await jsonRpcProvider().getCode('0xaC6095720221C79C6E7C638d260A2eFBC5D8d880', 'latest');
384
- * // '0x608060405234801561001057600080fd5b506004361061...'
385
- * ```
386
- */
387
- getCode(address, blockTag = 'latest') {
388
- return __awaiter(this, void 0, void 0, function* () {
389
- blockTag = prepBlockTag(blockTag);
390
- const contractCode = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_getCode', [address, blockTag])));
391
- return contractCode;
392
- });
393
- }
655
+ * Gets the code of a contract on a specified block.
656
+ *
657
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getCode`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getCode) in ethers.js
658
+ * * [Identical](/docs/api#isd) to [`web3.eth.getCode`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getcode) in web3.js
659
+ *
660
+ * @param address the contract address to get the contract code from
661
+ * @param blockTag the block height to search for the contract code from. Contract code can change, so this allows for checking a specific block
662
+ * @returns the contract creation code for the specified address at the specified block height
663
+ * @example
664
+ * ```javascript
665
+ * await jsonRpcProvider().getCode('0xaC6095720221C79C6E7C638d260A2eFBC5D8d880', 'latest');
666
+ * // '0x608060405234801561001057600080fd5b506004361061...'
667
+ * ```
668
+ */ _proto.getCode = function getCode(address) {
669
+ var blockTag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "latest";
670
+ var _this = this;
671
+ return _asyncToGenerator(function() {
672
+ var contractCode;
673
+ return __generator(this, function(_state) {
674
+ switch(_state.label){
675
+ case 0:
676
+ blockTag = prepBlockTag(blockTag);
677
+ return [
678
+ 4,
679
+ _this.post(buildRPCPostBody("eth_getCode", [
680
+ address,
681
+ blockTag
682
+ ]))
683
+ ];
684
+ case 1:
685
+ contractCode = _state.sent();
686
+ return [
687
+ 2,
688
+ contractCode
689
+ ];
690
+ }
691
+ });
692
+ })();
693
+ };
394
694
  /**
395
- * Returns an estimate of the amount of gas that would be required to submit transaction to the network.
396
- * An estimate may not be accurate since there could be another transaction on the network that was not accounted for.
397
- *
398
- * * [Identical](/docs/api#isd) to [`ethers.provider.estimateGas`](https://docs.ethers.io/v5/api/providers/provider/#Provider-estimateGas) in ethers.js
399
- * * [Identical](/docs/api#isd) to [`web3.eth.estimateGas`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#estimateGas) in web3.js
400
- *
401
- * @param transaction the transaction to check the estimated gas cost for
402
- * @returns the estimated amount of gas charged for submitting the specified transaction to the blockchain
403
- * @example
404
- * ```javascript
405
- * await provider.estimateGas({
406
- * // Wrapped ETH address
407
- * to: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
408
- * data: "0xd0e30db0",
409
- * value: etherToWei('1.0').toHexString(),
410
- * });
411
- * // { TinyBig: "27938" }
412
- * ```
413
- */
414
- estimateGas(transaction) {
415
- return __awaiter(this, void 0, void 0, function* () {
416
- const rpcTransaction = (0, prepare_transaction_1.prepareTransaction)(transaction);
417
- const gasUsed = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_estimateGas', [rpcTransaction])));
418
- return (0, tiny_big_1.tinyBig)((0, hex_to_decimal_1.hexToDecimal)(gasUsed));
419
- });
420
- }
695
+ * Returns an estimate of the amount of gas that would be required to submit transaction to the network.
696
+ * An estimate may not be accurate since there could be another transaction on the network that was not accounted for.
697
+ *
698
+ * * [Identical](/docs/api#isd) to [`ethers.provider.estimateGas`](https://docs.ethers.io/v5/api/providers/provider/#Provider-estimateGas) in ethers.js
699
+ * * [Identical](/docs/api#isd) to [`web3.eth.estimateGas`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#estimateGas) in web3.js
700
+ *
701
+ * @param transaction the transaction to check the estimated gas cost for
702
+ * @returns the estimated amount of gas charged for submitting the specified transaction to the blockchain
703
+ * @example
704
+ * ```javascript
705
+ * await provider.estimateGas({
706
+ * // Wrapped ETH address
707
+ * to: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
708
+ * data: "0xd0e30db0",
709
+ * value: etherToWei('1.0').toHexString(),
710
+ * });
711
+ * // { TinyBig: "27938" }
712
+ * ```
713
+ */ _proto.estimateGas = function estimateGas(transaction) {
714
+ var _this = this;
715
+ return _asyncToGenerator(function() {
716
+ var rpcTransaction, gasUsed;
717
+ return __generator(this, function(_state) {
718
+ switch(_state.label){
719
+ case 0:
720
+ rpcTransaction = prepareTransaction(transaction);
721
+ return [
722
+ 4,
723
+ _this.post(buildRPCPostBody("eth_estimateGas", [
724
+ rpcTransaction
725
+ ]))
726
+ ];
727
+ case 1:
728
+ gasUsed = _state.sent();
729
+ return [
730
+ 2,
731
+ tinyBig(hexToDecimal(gasUsed))
732
+ ];
733
+ }
734
+ });
735
+ })();
736
+ };
421
737
  /**
422
- * Returns transaction receipt event logs that match a specified filter.
423
- * May return `[]` if parameters are too broad, even if logs exist.
424
- *
425
- * * [Identical](/docs/api#isd) to [`ethers.provider.getLogs`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getLogs) in ethers.js
426
- * * [Identical](/docs/api#isd) to [`web3.eth.getPastLogs`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getpastlogs) in web3.js
427
- *
428
- * @param filter parameters to filter the logs by
429
- * @returns an array of logs matching the specified filter
430
- * @example
431
- * ```javascript
432
- * provider.getLogs({
433
- * address: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
434
- * topics: [
435
- * "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
436
- * "0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e",
437
- * ],
438
- * fromBlock: 14825027,
439
- * toBlock: 14825039,
440
- * });
441
- *
442
- * [
443
- * {
444
- * address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
445
- * blockHash: '0x8e0dfac2f704851960f866c8708b3bef2f66c0fee0329cf25ff0261b264ca6bc',
446
- * blockNumber: 14825029,
447
- * data: '0x000000000000000000000000000000000000000000000000005f862ee352a38a',
448
- * logIndex: 384,
449
- * removed: false,
450
- * topics: [
451
- * '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
452
- * '0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e',
453
- * '0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45'
454
- * ],
455
- * transactionHash: '0xbd49031be16f8fd1775f4e0fe79b408ffd8ae9c65b2827ee47e3238e3f51f4c0',
456
- * transactionIndex: 226
457
- * }
458
- * ]
459
- * ```
460
- */
461
- getLogs(filter) {
462
- return __awaiter(this, void 0, void 0, function* () {
463
- const filterByRange = filter;
464
- if (filterByRange.fromBlock)
465
- filterByRange.fromBlock = prepBlockTag(filterByRange.fromBlock);
466
- if (filterByRange.toBlock)
467
- filterByRange.toBlock = prepBlockTag(filterByRange.toBlock);
468
- const rpcLogs = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_getLogs', [filter])));
469
- const logs = rpcLogs.map((log) => (0, clean_log_1.cleanLog)(log, false));
470
- return logs;
471
- });
472
- }
738
+ * Returns transaction receipt event logs that match a specified filter.
739
+ * May return `[]` if parameters are too broad, even if logs exist.
740
+ *
741
+ * * [Identical](/docs/api#isd) to [`ethers.provider.getLogs`](https://docs.ethers.io/v5/api/providers/provider/#Provider-getLogs) in ethers.js
742
+ * * [Identical](/docs/api#isd) to [`web3.eth.getPastLogs`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#getpastlogs) in web3.js
743
+ *
744
+ * @param filter parameters to filter the logs by
745
+ * @returns an array of logs matching the specified filter
746
+ * @example
747
+ * ```javascript
748
+ * provider.getLogs({
749
+ * address: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
750
+ * topics: [
751
+ * "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
752
+ * "0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e",
753
+ * ],
754
+ * fromBlock: 14825027,
755
+ * toBlock: 14825039,
756
+ * });
757
+ *
758
+ * [
759
+ * {
760
+ * address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
761
+ * blockHash: '0x8e0dfac2f704851960f866c8708b3bef2f66c0fee0329cf25ff0261b264ca6bc',
762
+ * blockNumber: 14825029,
763
+ * data: '0x000000000000000000000000000000000000000000000000005f862ee352a38a',
764
+ * logIndex: 384,
765
+ * removed: false,
766
+ * topics: [
767
+ * '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef',
768
+ * '0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e',
769
+ * '0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45'
770
+ * ],
771
+ * transactionHash: '0xbd49031be16f8fd1775f4e0fe79b408ffd8ae9c65b2827ee47e3238e3f51f4c0',
772
+ * transactionIndex: 226
773
+ * }
774
+ * ]
775
+ * ```
776
+ */ _proto.getLogs = function getLogs(filter) {
777
+ var _this = this;
778
+ return _asyncToGenerator(function() {
779
+ var filterByRange, rpcLogs, logs;
780
+ return __generator(this, function(_state) {
781
+ switch(_state.label){
782
+ case 0:
783
+ filterByRange = filter;
784
+ if (filterByRange.fromBlock) filterByRange.fromBlock = prepBlockTag(filterByRange.fromBlock);
785
+ if (filterByRange.toBlock) filterByRange.toBlock = prepBlockTag(filterByRange.toBlock);
786
+ return [
787
+ 4,
788
+ _this.post(buildRPCPostBody("eth_getLogs", [
789
+ filter
790
+ ]))
791
+ ];
792
+ case 1:
793
+ rpcLogs = _state.sent();
794
+ logs = rpcLogs.map(function(log) {
795
+ return cleanLog(log, false);
796
+ });
797
+ return [
798
+ 2,
799
+ logs
800
+ ];
801
+ }
802
+ });
803
+ })();
804
+ };
473
805
  /**
474
- * Returns the result of adding a transaction to the blockchain without actually adding that transaction to the blockchain.
475
- * Does not require any ether as gas.
476
- *
477
- * * [Identical](/docs/api#isd) to [`ethers.provider.call`](https://docs.ethers.io/v5/api/providers/provider/#Provider-call) in ethers.js
478
- * * [Identical](/docs/api#isd) to [`web3.eth.call`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#call) in web3.js
479
- *
480
- * @param transaction the transaction object to, in theory, execute. Doesn't actually get added to the blockchain.
481
- * @param blockTag the block to execute this transaction on
482
- * @returns the result of executing the transaction on the specified block
483
- * @example
484
- * ```javascript
485
- * await provider.call({ to: "0x6b175474e89094c44da98b954eedeac495271d0f", data: "0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE" });
486
- * // '0x0000000000000000000000000000000000000000000000000858898f93629000'
487
- * ```
488
- */
489
- call(transaction, blockTag = 'latest') {
490
- return __awaiter(this, void 0, void 0, function* () {
491
- if (transaction.gasPrice &&
492
- (transaction.maxPriorityFeePerGas || transaction.maxFeePerGas)) {
493
- logger_1.logger.throwError('Cannot specify both "gasPrice" and ("maxPriorityFeePerGas" or "maxFeePerGas")', {
494
- gasPrice: transaction.gasPrice,
495
- maxFeePerGas: transaction.maxFeePerGas,
496
- maxPriorityFeePerGas: transaction.maxPriorityFeePerGas,
497
- });
498
- }
499
- if (transaction.maxFeePerGas && transaction.maxPriorityFeePerGas) {
500
- logger_1.logger.throwError('Cannot specify both "maxFeePerGas" and "maxPriorityFeePerGas"', {
501
- maxFeePerGas: transaction.maxFeePerGas,
502
- maxPriorityFeePerGas: transaction.maxPriorityFeePerGas,
503
- });
504
- }
505
- blockTag = prepBlockTag(blockTag);
506
- const rpcTransaction = (0, prepare_transaction_1.prepareTransaction)(transaction);
507
- const transactionRes = (yield this.post((0, fetchers_1.buildRPCPostBody)('eth_call', [rpcTransaction, blockTag])));
508
- return transactionRes;
509
- });
510
- }
511
- }
512
- exports.BaseProvider = BaseProvider;
806
+ * Returns the result of adding a transaction to the blockchain without actually adding that transaction to the blockchain.
807
+ * Does not require any ether as gas.
808
+ *
809
+ * * [Identical](/docs/api#isd) to [`ethers.provider.call`](https://docs.ethers.io/v5/api/providers/provider/#Provider-call) in ethers.js
810
+ * * [Identical](/docs/api#isd) to [`web3.eth.call`](https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html#call) in web3.js
811
+ *
812
+ * @param transaction the transaction object to, in theory, execute. Doesn't actually get added to the blockchain.
813
+ * @param blockTag the block to execute this transaction on
814
+ * @returns the result of executing the transaction on the specified block
815
+ * @example
816
+ * ```javascript
817
+ * await provider.call({ to: "0x6b175474e89094c44da98b954eedeac495271d0f", data: "0x70a082310000000000000000000000006E0d01A76C3Cf4288372a29124A26D4353EE51BE" });
818
+ * // '0x0000000000000000000000000000000000000000000000000858898f93629000'
819
+ * ```
820
+ */ _proto.call = function call(transaction) {
821
+ var blockTag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "latest";
822
+ var _this = this;
823
+ return _asyncToGenerator(function() {
824
+ var rpcTransaction, transactionRes;
825
+ return __generator(this, function(_state) {
826
+ switch(_state.label){
827
+ case 0:
828
+ if (transaction.gasPrice && (transaction.maxPriorityFeePerGas || transaction.maxFeePerGas)) {
829
+ logger.throwError('Cannot specify both "gasPrice" and ("maxPriorityFeePerGas" or "maxFeePerGas")', {
830
+ gasPrice: transaction.gasPrice,
831
+ maxFeePerGas: transaction.maxFeePerGas,
832
+ maxPriorityFeePerGas: transaction.maxPriorityFeePerGas
833
+ });
834
+ }
835
+ if (transaction.maxFeePerGas && transaction.maxPriorityFeePerGas) {
836
+ logger.throwError('Cannot specify both "maxFeePerGas" and "maxPriorityFeePerGas"', {
837
+ maxFeePerGas: transaction.maxFeePerGas,
838
+ maxPriorityFeePerGas: transaction.maxPriorityFeePerGas
839
+ });
840
+ }
841
+ blockTag = prepBlockTag(blockTag);
842
+ rpcTransaction = prepareTransaction(transaction);
843
+ return [
844
+ 4,
845
+ _this.post(buildRPCPostBody("eth_call", [
846
+ rpcTransaction,
847
+ blockTag
848
+ ]))
849
+ ];
850
+ case 1:
851
+ transactionRes = _state.sent();
852
+ return [
853
+ 2,
854
+ transactionRes
855
+ ];
856
+ }
857
+ });
858
+ })();
859
+ };
860
+ return BaseProvider;
861
+ }();