essential-eth 0.8.0 → 0.9.1-next.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 (112) hide show
  1. package/dist/cjs/classes/Contract.js +38 -34
  2. package/dist/cjs/classes/test/Contract/crv.test.js +146 -339
  3. package/dist/cjs/classes/test/Contract/ens-abi.d.ts +1 -1
  4. package/dist/cjs/classes/test/Contract/ens.test.js +9 -66
  5. package/dist/cjs/classes/test/Contract/fei.test.js +11 -11
  6. package/dist/cjs/classes/test/Contract/foo-abi.d.ts +1 -1
  7. package/dist/cjs/classes/test/Contract/uni.test.js +66 -164
  8. package/dist/cjs/classes/utils/clean-block.js +4 -4
  9. package/dist/cjs/classes/utils/clean-log.js +4 -4
  10. package/dist/cjs/classes/utils/clean-transaction-receipt.js +4 -4
  11. package/dist/cjs/classes/utils/clean-transaction.js +4 -4
  12. package/dist/cjs/classes/utils/encode-decode-transaction.js +10 -10
  13. package/dist/cjs/classes/utils/fetchers.d.ts +8 -2
  14. package/dist/cjs/classes/utils/fetchers.js +20 -12
  15. package/dist/cjs/classes/utils/prepare-transaction.js +4 -4
  16. package/dist/cjs/index.d.ts +21 -21
  17. package/dist/cjs/index.js +21 -21
  18. package/dist/cjs/index.umd.js +1 -1
  19. package/dist/cjs/index.umd.js.map +1 -1
  20. package/dist/cjs/logger/logger.js +79 -41
  21. package/dist/cjs/logger/package-version.d.ts +1 -1
  22. package/dist/cjs/logger/package-version.js +1 -1
  23. package/dist/cjs/providers/AlchemyProvider.d.ts +4 -0
  24. package/dist/cjs/providers/AlchemyProvider.js +84 -0
  25. package/dist/cjs/providers/BaseProvider.js +471 -404
  26. package/dist/cjs/providers/FallthroughProvider.js +74 -38
  27. package/dist/cjs/providers/JsonRpcProvider.js +52 -31
  28. package/dist/cjs/providers/test/fallthrough-provider/get-gas-price.test.js +9 -9
  29. package/dist/cjs/providers/test/get-transaction-count.test.js +54 -91
  30. package/dist/cjs/providers/test/json-rpc-provider/call.test.js +87 -148
  31. package/dist/cjs/providers/test/json-rpc-provider/estimate-gas.test.js +45 -116
  32. package/dist/cjs/providers/test/json-rpc-provider/get-balance.test.js +36 -74
  33. package/dist/cjs/providers/test/json-rpc-provider/get-block-number.test.js +27 -94
  34. package/dist/cjs/providers/test/json-rpc-provider/get-block.test.js +191 -278
  35. package/dist/cjs/providers/test/json-rpc-provider/get-code.test.js +106 -135
  36. package/dist/cjs/providers/test/json-rpc-provider/get-fee-data.test.js +48 -73
  37. package/dist/cjs/providers/test/json-rpc-provider/get-gas-price.test.js +29 -64
  38. package/dist/cjs/providers/test/json-rpc-provider/get-logs/get-logs.test.js +219 -0
  39. package/dist/cjs/providers/test/json-rpc-provider/get-logs/mocks.d.ts +14 -0
  40. package/dist/cjs/providers/test/json-rpc-provider/get-logs/mocks.js +149 -0
  41. package/dist/cjs/providers/test/json-rpc-provider/get-network.test.js +37 -79
  42. package/dist/cjs/providers/test/json-rpc-provider/get-transaction-receipt.test.js +136 -157
  43. package/dist/cjs/providers/test/json-rpc-provider/get-transaction.test.js +121 -162
  44. package/dist/cjs/providers/test/mock-of.d.ts +2 -0
  45. package/dist/cjs/providers/test/mock-of.js +9 -0
  46. package/dist/cjs/providers/test/rpc-urls.d.ts +1 -0
  47. package/dist/cjs/providers/test/rpc-urls.js +12 -6
  48. package/dist/cjs/providers/test/test-alchemy-provider.test.js +151 -0
  49. package/dist/cjs/providers/utils/chains-info.d.ts +5 -448
  50. package/dist/cjs/providers/utils/chains-info.js +13 -1344
  51. package/dist/cjs/shared/tiny-big/helpers.js +18 -18
  52. package/dist/cjs/shared/tiny-big/tiny-big.js +96 -56
  53. package/dist/cjs/shared/tiny-big/tiny-big.test.js +2 -2
  54. package/dist/cjs/shared/validate-type.d.ts +1 -1
  55. package/dist/cjs/shared/validate-type.js +4 -4
  56. package/dist/cjs/types/Block.types.d.ts +3 -3
  57. package/dist/cjs/types/Contract.types.d.ts +4 -4
  58. package/dist/cjs/types/Transaction.types.d.ts +5 -5
  59. package/dist/cjs/utils/bytes.d.ts +4 -4
  60. package/dist/cjs/utils/bytes.js +3 -3
  61. package/dist/cjs/utils/tests/bytes/arrayify.test.js +48 -24
  62. package/dist/cjs/utils/tests/bytes/concat.test.js +5 -3
  63. package/dist/cjs/utils/tests/bytes/hex-concat.test.js +15 -13
  64. package/dist/cjs/utils/tests/bytes/hex-data-length.test.js +49 -32
  65. package/dist/cjs/utils/tests/bytes/hex-data-slice.test.js +15 -16
  66. package/dist/cjs/utils/tests/bytes/hex-strip-zeros.test.js +57 -40
  67. package/dist/cjs/utils/tests/bytes/hex-value.test.js +118 -62
  68. package/dist/cjs/utils/tests/bytes/hex-zero-pad.test.js +71 -33
  69. package/dist/cjs/utils/tests/bytes/hexlify.test.js +45 -29
  70. package/dist/cjs/utils/tests/bytes/is-bytes-like.test.js +10 -11
  71. package/dist/cjs/utils/tests/bytes/is-bytes.test.js +70 -27
  72. package/dist/cjs/utils/tests/bytes/is-hex-string.test.js +37 -28
  73. package/dist/cjs/utils/tests/bytes/strip-zeros.test.js +94 -45
  74. package/dist/cjs/utils/tests/bytes/zero-pad.test.js +98 -34
  75. package/dist/cjs/utils/tests/compute-address.test.js +42 -20
  76. package/dist/cjs/utils/tests/compute-public-key.test.js +20 -9
  77. package/dist/cjs/utils/tests/ether-to-wei.test.js +5 -13
  78. package/dist/cjs/utils/tests/hash-message.test.js +26 -15
  79. package/dist/cjs/utils/tests/is-address.test.js +2 -9
  80. package/dist/cjs/utils/tests/keccak256.test.js +36 -12
  81. package/dist/cjs/utils/tests/solidity-keccak256.test.js +43 -42
  82. package/dist/cjs/utils/tests/split-signature.test.js +29 -8
  83. package/dist/cjs/utils/tests/to-checksum-address.test.js +1 -4
  84. package/dist/cjs/utils/tests/to-utf8-bytes.test.js +28 -8
  85. package/dist/cjs/utils/tests/wei-to-ether.test.js +10 -20
  86. package/dist/esm/classes/test/Contract/ens-abi.d.ts +1 -1
  87. package/dist/esm/classes/test/Contract/foo-abi.d.ts +1 -1
  88. package/dist/esm/classes/utils/fetchers.d.ts +8 -2
  89. package/dist/esm/classes/utils/fetchers.js +6 -3
  90. package/dist/esm/index.d.ts +21 -21
  91. package/dist/esm/index.js +16 -16
  92. package/dist/esm/logger/package-version.d.ts +1 -1
  93. package/dist/esm/logger/package-version.js +1 -1
  94. package/dist/esm/providers/AlchemyProvider.d.ts +4 -0
  95. package/dist/esm/providers/AlchemyProvider.js +7 -0
  96. package/dist/esm/providers/FallthroughProvider.js +15 -7
  97. package/dist/esm/providers/test/json-rpc-provider/get-logs/mocks.d.ts +14 -0
  98. package/dist/esm/providers/test/json-rpc-provider/get-logs/mocks.js +142 -0
  99. package/dist/esm/providers/test/mock-of.d.ts +2 -0
  100. package/dist/esm/providers/test/mock-of.js +1 -0
  101. package/dist/esm/providers/test/rpc-urls.d.ts +1 -0
  102. package/dist/esm/providers/test/rpc-urls.js +14 -6
  103. package/dist/esm/providers/utils/chains-info.d.ts +5 -448
  104. package/dist/esm/providers/utils/chains-info.js +13 -1344
  105. package/dist/esm/shared/validate-type.d.ts +1 -1
  106. package/dist/esm/types/Block.types.d.ts +3 -3
  107. package/dist/esm/types/Contract.types.d.ts +4 -4
  108. package/dist/esm/types/Transaction.types.d.ts +5 -5
  109. package/dist/esm/utils/bytes.d.ts +4 -4
  110. package/package.json +23 -51
  111. package/readme.md +16 -38
  112. package/dist/cjs/providers/test/json-rpc-provider/get-logs.test.js +0 -361
@@ -1,11 +1,3 @@
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
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
2
  try {
11
3
  var info = gen[key](arg);
@@ -20,7 +12,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
20
12
  Promise.resolve(value).then(_next, _throw);
21
13
  }
22
14
  }
23
- function _asyncToGenerator(fn) {
15
+ function _async_to_generator(fn) {
24
16
  return function() {
25
17
  var self = this, args = arguments;
26
18
  return new Promise(function(resolve, reject) {
@@ -35,45 +27,7 @@ function _asyncToGenerator(fn) {
35
27
  });
36
28
  };
37
29
  }
38
- function _iterableToArrayLimit(arr, i) {
39
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
40
- if (_i == null) return;
41
- var _arr = [];
42
- var _n = true;
43
- var _d = false;
44
- var _s, _e;
45
- try {
46
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
47
- _arr.push(_s.value);
48
- if (i && _arr.length === i) break;
49
- }
50
- } catch (err) {
51
- _d = true;
52
- _e = err;
53
- } finally{
54
- try {
55
- if (!_n && _i["return"] != null) _i["return"]();
56
- } finally{
57
- if (_d) throw _e;
58
- }
59
- }
60
- return _arr;
61
- }
62
- function _nonIterableRest() {
63
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
64
- }
65
- function _slicedToArray(arr, i) {
66
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
67
- }
68
- function _unsupportedIterableToArray(o, minLen) {
69
- if (!o) return;
70
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
71
- var n = Object.prototype.toString.call(o).slice(8, -1);
72
- if (n === "Object" && o.constructor) n = o.constructor.name;
73
- if (n === "Map" || n === "Set") return Array.from(n);
74
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
75
- }
76
- var __generator = this && this.__generator || function(thisArg, body) {
30
+ function _ts_generator(thisArg, body) {
77
31
  var f, y, t, g, _ = {
78
32
  label: 0,
79
33
  sent: function() {
@@ -167,39 +121,47 @@ var __generator = this && this.__generator || function(thisArg, body) {
167
121
  done: true
168
122
  };
169
123
  }
170
- };
171
- import { ethers } from "ethers";
172
- import Web3 from "web3";
124
+ }
125
+ import * as unfetch from "isomorphic-unfetch";
173
126
  import { JsonRpcProvider } from "../../..";
127
+ import { buildFetchInit, buildRPCPostBody } from "../../../classes/utils/fetchers";
128
+ import { mockOf } from "../mock-of";
174
129
  import { rpcUrls } from "../rpc-urls";
130
+ jest.mock("isomorphic-unfetch");
175
131
  var address = "0x0000000000000000000000000000000000000001";
176
132
  function testGetBalance(rpcUrl, blockTag) {
177
133
  return _testGetBalance.apply(this, arguments);
178
134
  }
179
135
  function _testGetBalance() {
180
- _testGetBalance = _asyncToGenerator(function(rpcUrl, blockTag) {
181
- var eeProvider, ethersProvider, web3Provider, _ref, eeBalance, ethersBalance, web3Balance;
182
- return __generator(this, function(_state) {
136
+ _testGetBalance = _async_to_generator(function(rpcUrl, blockTag) {
137
+ var provider, mockPostResponse, spy, balance, expectedBlockTag;
138
+ return _ts_generator(this, function(_state) {
183
139
  switch(_state.label){
184
140
  case 0:
185
- eeProvider = new JsonRpcProvider(rpcUrl);
186
- ethersProvider = new ethers.providers.StaticJsonRpcProvider(rpcUrl);
187
- web3Provider = new Web3(rpcUrl);
141
+ provider = new JsonRpcProvider(rpcUrl);
142
+ mockPostResponse = JSON.stringify({
143
+ jsonrpc: "2.0",
144
+ id: 1,
145
+ result: "0xa"
146
+ });
147
+ mockOf(unfetch.default).mockResolvedValueOnce({
148
+ text: function() {
149
+ return Promise.resolve(mockPostResponse);
150
+ }
151
+ });
152
+ spy = jest.spyOn(unfetch, "default");
188
153
  return [
189
154
  4,
190
- Promise.all([
191
- eeProvider.getBalance(address, blockTag),
192
- ethersProvider.getBalance(address, blockTag),
193
- web3Provider.eth.getBalance(address, blockTag)
194
- ])
155
+ provider.getBalance(address, blockTag)
195
156
  ];
196
157
  case 1:
197
- _ref = _slicedToArray.apply(void 0, [
198
- _state.sent(),
199
- 3
200
- ]), eeBalance = _ref[0], ethersBalance = _ref[1], web3Balance = _ref[2];
201
- expect(eeBalance.toString()).toBe(ethersBalance.toString());
202
- expect(eeBalance.toString()).toBe(web3Balance);
158
+ balance = _state.sent();
159
+ expect(balance.toString()).toBe("10");
160
+ expectedBlockTag = blockTag !== null && blockTag !== void 0 ? blockTag : "latest";
161
+ expect(spy).toHaveBeenCalledWith(rpcUrl, buildFetchInit(buildRPCPostBody("eth_getBalance", [
162
+ address,
163
+ expectedBlockTag
164
+ ])));
203
165
  return [
204
166
  2
205
167
  ];
@@ -210,8 +172,8 @@ function _testGetBalance() {
210
172
  }
211
173
  describe("provider.getBalance matic", function() {
212
174
  var rpcUrl = rpcUrls.matic;
213
- it("should get latest equal to ethers", /*#__PURE__*/ _asyncToGenerator(function() {
214
- return __generator(this, function(_state) {
175
+ it("should get the latest balance", /*#__PURE__*/ _async_to_generator(function() {
176
+ return _ts_generator(this, function(_state) {
215
177
  switch(_state.label){
216
178
  case 0:
217
179
  return [
@@ -226,8 +188,8 @@ describe("provider.getBalance matic", function() {
226
188
  }
227
189
  });
228
190
  }));
229
- it("should get earliest equal to ethers", /*#__PURE__*/ _asyncToGenerator(function() {
230
- return __generator(this, function(_state) {
191
+ it("should get the earliest balance", /*#__PURE__*/ _async_to_generator(function() {
192
+ return _ts_generator(this, function(_state) {
231
193
  switch(_state.label){
232
194
  case 0:
233
195
  return [
@@ -242,8 +204,8 @@ describe("provider.getBalance matic", function() {
242
204
  }
243
205
  });
244
206
  }));
245
- it("should get default latest equal to ethers", /*#__PURE__*/ _asyncToGenerator(function() {
246
- return __generator(this, function(_state) {
207
+ it("should get the default latest balance", /*#__PURE__*/ _async_to_generator(function() {
208
+ return _ts_generator(this, function(_state) {
247
209
  switch(_state.label){
248
210
  case 0:
249
211
  return [
@@ -1,11 +1,3 @@
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
1
  function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10
2
  try {
11
3
  var info = gen[key](arg);
@@ -20,7 +12,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
20
12
  Promise.resolve(value).then(_next, _throw);
21
13
  }
22
14
  }
23
- function _asyncToGenerator(fn) {
15
+ function _async_to_generator(fn) {
24
16
  return function() {
25
17
  var self = this, args = arguments;
26
18
  return new Promise(function(resolve, reject) {
@@ -35,45 +27,7 @@ function _asyncToGenerator(fn) {
35
27
  });
36
28
  };
37
29
  }
38
- function _iterableToArrayLimit(arr, i) {
39
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
40
- if (_i == null) return;
41
- var _arr = [];
42
- var _n = true;
43
- var _d = false;
44
- var _s, _e;
45
- try {
46
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
47
- _arr.push(_s.value);
48
- if (i && _arr.length === i) break;
49
- }
50
- } catch (err) {
51
- _d = true;
52
- _e = err;
53
- } finally{
54
- try {
55
- if (!_n && _i["return"] != null) _i["return"]();
56
- } finally{
57
- if (_d) throw _e;
58
- }
59
- }
60
- return _arr;
61
- }
62
- function _nonIterableRest() {
63
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
64
- }
65
- function _slicedToArray(arr, i) {
66
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
67
- }
68
- function _unsupportedIterableToArray(o, minLen) {
69
- if (!o) return;
70
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
71
- var n = Object.prototype.toString.call(o).slice(8, -1);
72
- if (n === "Object" && o.constructor) n = o.constructor.name;
73
- if (n === "Map" || n === "Set") return Array.from(n);
74
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
75
- }
76
- var __generator = this && this.__generator || function(thisArg, body) {
30
+ function _ts_generator(thisArg, body) {
77
31
  var f, y, t, g, _ = {
78
32
  label: 0,
79
33
  sent: function() {
@@ -167,60 +121,39 @@ var __generator = this && this.__generator || function(thisArg, body) {
167
121
  done: true
168
122
  };
169
123
  }
170
- };
171
- import { StaticJsonRpcProvider } from "@ethersproject/providers";
172
- import Web3 from "web3";
124
+ }
125
+ import * as unfetch from "isomorphic-unfetch";
126
+ import { buildFetchInit, buildRPCPostBody } from "../../../classes/utils/fetchers";
173
127
  import { JsonRpcProvider } from "../../../index";
174
- // RSK has 30 second block times so tests pass more often
175
- var rpcUrl = "https://public-node.rsk.co";
128
+ import { mockOf } from "../mock-of";
129
+ jest.mock("isomorphic-unfetch");
130
+ var mockPostResponse = JSON.stringify({
131
+ jsonrpc: "2.0",
132
+ id: 1,
133
+ result: "0xa"
134
+ });
135
+ var TEST_URL = "https://test.com";
176
136
  describe("provider.getBlockNumber", function() {
177
- it("should match ethers.js", /*#__PURE__*/ _asyncToGenerator(function() {
178
- var essentialEthProvider, ethersProvider, _ref, essentialEthBlockNumber, ethersBlockNumber;
179
- return __generator(this, function(_state) {
137
+ it("should get number integer", /*#__PURE__*/ _async_to_generator(function() {
138
+ var essentialEthProvider, spy, essentialEthBlockNumber;
139
+ return _ts_generator(this, function(_state) {
180
140
  switch(_state.label){
181
141
  case 0:
182
- essentialEthProvider = new JsonRpcProvider(rpcUrl);
183
- ethersProvider = new StaticJsonRpcProvider(rpcUrl);
142
+ essentialEthProvider = new JsonRpcProvider(TEST_URL);
143
+ mockOf(unfetch.default).mockResolvedValueOnce({
144
+ text: function() {
145
+ return Promise.resolve(mockPostResponse);
146
+ }
147
+ });
148
+ spy = jest.spyOn(unfetch, "default");
184
149
  return [
185
150
  4,
186
- Promise.all([
187
- essentialEthProvider.getBlockNumber(),
188
- ethersProvider.getBlockNumber()
189
- ])
151
+ essentialEthProvider.getBlockNumber()
190
152
  ];
191
153
  case 1:
192
- _ref = _slicedToArray.apply(void 0, [
193
- _state.sent(),
194
- 2
195
- ]), essentialEthBlockNumber = _ref[0], ethersBlockNumber = _ref[1];
196
- // allow one-block flexibility because of timing of requests
197
- expect(Math.abs(essentialEthBlockNumber - ethersBlockNumber)).toBeLessThan(2);
198
- return [
199
- 2
200
- ];
201
- }
202
- });
203
- }));
204
- it("should match web3.js", /*#__PURE__*/ _asyncToGenerator(function() {
205
- var essentialEthProvider, web3Provider, _ref, essentialEthBlockNumber, web3BlockNumber;
206
- return __generator(this, function(_state) {
207
- switch(_state.label){
208
- case 0:
209
- essentialEthProvider = new JsonRpcProvider(rpcUrl);
210
- web3Provider = new Web3(rpcUrl);
211
- return [
212
- 4,
213
- Promise.all([
214
- essentialEthProvider.getBlockNumber(),
215
- web3Provider.eth.getBlockNumber()
216
- ])
217
- ];
218
- case 1:
219
- _ref = _slicedToArray.apply(void 0, [
220
- _state.sent(),
221
- 2
222
- ]), essentialEthBlockNumber = _ref[0], web3BlockNumber = _ref[1];
223
- expect(essentialEthBlockNumber).toStrictEqual(web3BlockNumber);
154
+ essentialEthBlockNumber = _state.sent();
155
+ expect(essentialEthBlockNumber).toBe(10);
156
+ expect(spy).toHaveBeenCalledWith(TEST_URL, buildFetchInit(buildRPCPostBody("eth_blockNumber", [])));
224
157
  return [
225
158
  2
226
159
  ];