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
@@ -0,0 +1,219 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _ts_generator(thisArg, body) {
31
+ var f, y, t, g, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ };
40
+ return g = {
41
+ next: verb(0),
42
+ "throw": verb(1),
43
+ "return": verb(2)
44
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
45
+ return this;
46
+ }), g;
47
+ function verb(n) {
48
+ return function(v) {
49
+ return step([
50
+ n,
51
+ v
52
+ ]);
53
+ };
54
+ }
55
+ function step(op) {
56
+ if (f) throw new TypeError("Generator is already executing.");
57
+ while(_)try {
58
+ 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;
59
+ if (y = 0, t) op = [
60
+ op[0] & 2,
61
+ t.value
62
+ ];
63
+ switch(op[0]){
64
+ case 0:
65
+ case 1:
66
+ t = op;
67
+ break;
68
+ case 4:
69
+ _.label++;
70
+ return {
71
+ value: op[1],
72
+ done: false
73
+ };
74
+ case 5:
75
+ _.label++;
76
+ y = op[1];
77
+ op = [
78
+ 0
79
+ ];
80
+ continue;
81
+ case 7:
82
+ op = _.ops.pop();
83
+ _.trys.pop();
84
+ continue;
85
+ default:
86
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
87
+ _ = 0;
88
+ continue;
89
+ }
90
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
91
+ _.label = op[1];
92
+ break;
93
+ }
94
+ if (op[0] === 6 && _.label < t[1]) {
95
+ _.label = t[1];
96
+ t = op;
97
+ break;
98
+ }
99
+ if (t && _.label < t[2]) {
100
+ _.label = t[2];
101
+ _.ops.push(op);
102
+ break;
103
+ }
104
+ if (t[2]) _.ops.pop();
105
+ _.trys.pop();
106
+ continue;
107
+ }
108
+ op = body.call(thisArg, _);
109
+ } catch (e) {
110
+ op = [
111
+ 6,
112
+ e
113
+ ];
114
+ y = 0;
115
+ } finally{
116
+ f = t = 0;
117
+ }
118
+ if (op[0] & 5) throw op[1];
119
+ return {
120
+ value: op[0] ? op[1] : void 0,
121
+ done: true
122
+ };
123
+ }
124
+ }
125
+ import * as unfetch from "isomorphic-unfetch";
126
+ import { cleanLog } from "../../../../classes/utils/clean-log";
127
+ import { buildFetchInit, buildRPCPostBody } from "../../../../classes/utils/fetchers";
128
+ import { JsonRpcProvider } from "../../../../index";
129
+ import { mockOf } from "../../mock-of";
130
+ import { rpcUrls } from "../../rpc-urls";
131
+ import { filterAddressFromTo, filterAddressTopics, filterAll, mockfilterAddressFromToLogs, mockfilterAddressTopicsLogs, mockfilterAllLogs, mockRpcAddressFromToResponse, mockRpcAddressTopicsResponse, mockRpcAllResponse } from "./mocks";
132
+ var rpcUrl = rpcUrls.mainnet;
133
+ jest.mock("isomorphic-unfetch");
134
+ describe("provider.getLogs", function() {
135
+ var provider = new JsonRpcProvider(rpcUrl);
136
+ function testGetLogs(mockResponse, filter, expectedLogs) {
137
+ return _testGetLogs.apply(this, arguments);
138
+ }
139
+ function _testGetLogs() {
140
+ _testGetLogs = _async_to_generator(function(mockResponse, filter, expectedLogs) {
141
+ var spy, logs;
142
+ return _ts_generator(this, function(_state) {
143
+ switch(_state.label){
144
+ case 0:
145
+ mockOf(unfetch.default).mockResolvedValueOnce({
146
+ text: function() {
147
+ return Promise.resolve(mockResponse);
148
+ }
149
+ });
150
+ spy = jest.spyOn(unfetch, "default");
151
+ return [
152
+ 4,
153
+ provider.getLogs(filter)
154
+ ];
155
+ case 1:
156
+ logs = _state.sent();
157
+ expect(spy).toHaveBeenCalledWith(rpcUrl, buildFetchInit(buildRPCPostBody("eth_getLogs", [
158
+ filter
159
+ ])));
160
+ expect(JSON.stringify(logs)).toBe(JSON.stringify(expectedLogs.map(function(log) {
161
+ return cleanLog(log, false);
162
+ })));
163
+ return [
164
+ 2
165
+ ];
166
+ }
167
+ });
168
+ });
169
+ return _testGetLogs.apply(this, arguments);
170
+ }
171
+ it("should match mock -- address, from, to", /*#__PURE__*/ _async_to_generator(function() {
172
+ return _ts_generator(this, function(_state) {
173
+ switch(_state.label){
174
+ case 0:
175
+ return [
176
+ 4,
177
+ testGetLogs(mockRpcAddressFromToResponse, filterAddressFromTo, mockfilterAddressFromToLogs)
178
+ ];
179
+ case 1:
180
+ _state.sent();
181
+ return [
182
+ 2
183
+ ];
184
+ }
185
+ });
186
+ }));
187
+ it("should match mock -- address, topics", /*#__PURE__*/ _async_to_generator(function() {
188
+ return _ts_generator(this, function(_state) {
189
+ switch(_state.label){
190
+ case 0:
191
+ return [
192
+ 4,
193
+ testGetLogs(mockRpcAddressTopicsResponse, filterAddressTopics, mockfilterAddressTopicsLogs)
194
+ ];
195
+ case 1:
196
+ _state.sent();
197
+ return [
198
+ 2
199
+ ];
200
+ }
201
+ });
202
+ }));
203
+ it("should match mock -- address, topics, from, to", /*#__PURE__*/ _async_to_generator(function() {
204
+ return _ts_generator(this, function(_state) {
205
+ switch(_state.label){
206
+ case 0:
207
+ return [
208
+ 4,
209
+ testGetLogs(mockRpcAllResponse, filterAll, mockfilterAllLogs)
210
+ ];
211
+ case 1:
212
+ _state.sent();
213
+ return [
214
+ 2
215
+ ];
216
+ }
217
+ });
218
+ }));
219
+ });
@@ -0,0 +1,14 @@
1
+ import type { Filter } from '../../../../types/Filter.types';
2
+ import type { RPCLog } from '../../../../types/Transaction.types';
3
+ export declare const STRONGBLOCK_ADDRESS = "0xfbddadd80fe7bda00b901fbaf73803f2238ae655";
4
+ export declare const filterAddressFromTo: Filter;
5
+ export declare const RARELAND_ADDRESS = "0x596a0f276ee432d8a28441e55737ff55cf30d0f7";
6
+ export declare const filterAddressTopics: Filter;
7
+ export declare const WETH_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
8
+ export declare const filterAll: Filter;
9
+ export declare const mockfilterAddressFromToLogs: RPCLog[];
10
+ export declare const mockfilterAddressTopicsLogs: RPCLog[];
11
+ export declare const mockfilterAllLogs: RPCLog[];
12
+ export declare const mockRpcAddressFromToResponse: string;
13
+ export declare const mockRpcAddressTopicsResponse: string;
14
+ export declare const mockRpcAllResponse: string;
@@ -0,0 +1,149 @@
1
+ // Example logs that should be returned
2
+ // https://etherscan.io/address/0xfbddadd80fe7bda00b901fbaf73803f2238ae655#events
3
+ // Block(s) are 14809329
4
+ export var STRONGBLOCK_ADDRESS = "0xfbddadd80fe7bda00b901fbaf73803f2238ae655";
5
+ export var filterAddressFromTo = {
6
+ address: STRONGBLOCK_ADDRESS,
7
+ fromBlock: "0xE1F8F1",
8
+ toBlock: "0xE1F8F1"
9
+ };
10
+ // Example logs that should be returned
11
+ // https://etherscan.io/address/0x596a0f276ee432d8a28441e55737ff55cf30d0f7#events
12
+ export var RARELAND_ADDRESS = "0x596a0f276ee432d8a28441e55737ff55cf30d0f7";
13
+ export var filterAddressTopics = {
14
+ address: RARELAND_ADDRESS,
15
+ topics: [
16
+ "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925"
17
+ ]
18
+ };
19
+ // https://etherscan.io/address/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2#events
20
+ // Address is for Wrapped Ether Contract
21
+ export var WETH_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
22
+ export var filterAll = {
23
+ address: WETH_ADDRESS,
24
+ topics: [
25
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
26
+ "0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e"
27
+ ],
28
+ fromBlock: 14825027,
29
+ toBlock: 14825039
30
+ };
31
+ export var mockfilterAddressFromToLogs = [
32
+ {
33
+ address: "0xfbddadd80fe7bda00b901fbaf73803f2238ae655",
34
+ topics: [
35
+ "0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a",
36
+ "0x00000000000000000000000028c2e3e17f8c61a9b7515f7bb1e1347846588b82"
37
+ ],
38
+ data: "0x0000000000000000000000000000000000000000000000001dbaed81bf64db6d",
39
+ blockNumber: "0xe1f8f1",
40
+ transactionHash: "0x5dec3a55b87edac0af5c4a9afdd015bb04303fdf86525dd1cc4e7aa7653b6301",
41
+ transactionIndex: "0x29",
42
+ blockHash: "0x343ead2d84a53b054bc191fe00807d59b40094bb0cbc49b3ba550169b046d4b8",
43
+ logIndex: "0x88",
44
+ removed: false
45
+ },
46
+ {
47
+ address: "0xfbddadd80fe7bda00b901fbaf73803f2238ae655",
48
+ topics: [
49
+ "0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a",
50
+ "0x000000000000000000000000c3b80d78bb52fd734c4f730dad5e190ba4ecb830"
51
+ ],
52
+ data: "0x0000000000000000000000000000000000000000000000001c277de315af8924",
53
+ blockNumber: "0xe1f8f1",
54
+ transactionHash: "0xae04b63efd57852e34bdc84e257bb413f9f942288f63a131d4b7071c8ee0b896",
55
+ transactionIndex: "0x2f",
56
+ blockHash: "0x343ead2d84a53b054bc191fe00807d59b40094bb0cbc49b3ba550169b046d4b8",
57
+ logIndex: "0x95",
58
+ removed: false
59
+ },
60
+ {
61
+ address: "0xfbddadd80fe7bda00b901fbaf73803f2238ae655",
62
+ topics: [
63
+ "0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a",
64
+ "0x000000000000000000000000f1a192063f0a2b2be0cbcb2978b13e95e7f35f6b"
65
+ ],
66
+ data: "0x00000000000000000000000000000000000000000000000018ecfa70ea275b6d",
67
+ blockNumber: "0xe1f8f1",
68
+ transactionHash: "0xbdba7260507b4ca24757809ac9a23e5225e80a491475ccf89a04c1894a693c77",
69
+ transactionIndex: "0x30",
70
+ blockHash: "0x343ead2d84a53b054bc191fe00807d59b40094bb0cbc49b3ba550169b046d4b8",
71
+ logIndex: "0x97",
72
+ removed: false
73
+ },
74
+ {
75
+ address: "0xfbddadd80fe7bda00b901fbaf73803f2238ae655",
76
+ topics: [
77
+ "0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a",
78
+ "0x000000000000000000000000c78dc12c9b04858d57a108ae948020344895e910"
79
+ ],
80
+ data: "0x0000000000000000000000000000000000000000000000000da5142efe16e492",
81
+ blockNumber: "0xe1f8f1",
82
+ transactionHash: "0xdcf29bd8a44ec89a3b53488dd60b76bd7f1c532db76f88e166f3de1ab216537e",
83
+ transactionIndex: "0x31",
84
+ blockHash: "0x343ead2d84a53b054bc191fe00807d59b40094bb0cbc49b3ba550169b046d4b8",
85
+ logIndex: "0x99",
86
+ removed: false
87
+ },
88
+ {
89
+ address: "0xfbddadd80fe7bda00b901fbaf73803f2238ae655",
90
+ topics: [
91
+ "0xd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a",
92
+ "0x000000000000000000000000aaf5c3760f4a77bdf23974f98d69f9ccfd778aea"
93
+ ],
94
+ data: "0x0000000000000000000000000000000000000000000000001086ed3d87034000",
95
+ blockNumber: "0xe1f8f1",
96
+ transactionHash: "0x56130c6e8fdafd0e08411b21ce984eeb56dc61d99a91f03efc7edde748d7ad81",
97
+ transactionIndex: "0x35",
98
+ blockHash: "0x343ead2d84a53b054bc191fe00807d59b40094bb0cbc49b3ba550169b046d4b8",
99
+ logIndex: "0xac",
100
+ removed: false
101
+ },
102
+ {
103
+ address: "0xfbddadd80fe7bda00b901fbaf73803f2238ae655",
104
+ topics: [
105
+ "0x39b0a0620bb668047ab7248973ddfd93d53dff1d4952bd2d56bbf5934edc1fd0",
106
+ "0x0000000000000000000000001753de22132990dd5ab35f13a5951431c8ba08ea"
107
+ ],
108
+ data: "0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000e3203b",
109
+ blockNumber: "0xe1f8f1",
110
+ transactionHash: "0xf5a77d85296cc670d577d3c9a76b1fa18be77239a4cb4c05493530866d60c36f",
111
+ transactionIndex: "0x3a",
112
+ blockHash: "0x343ead2d84a53b054bc191fe00807d59b40094bb0cbc49b3ba550169b046d4b8",
113
+ logIndex: "0xb5",
114
+ removed: false
115
+ }
116
+ ];
117
+ export var mockfilterAddressTopicsLogs = [];
118
+ export var mockfilterAllLogs = [
119
+ {
120
+ address: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
121
+ topics: [
122
+ "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef",
123
+ "0x00000000000000000000000021b8065d10f73ee2e260e5b47d3344d3ced7596e",
124
+ "0x00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45"
125
+ ],
126
+ data: "0x000000000000000000000000000000000000000000000000005f862ee352a38a",
127
+ blockNumber: "0xe23645",
128
+ transactionHash: "0xbd49031be16f8fd1775f4e0fe79b408ffd8ae9c65b2827ee47e3238e3f51f4c0",
129
+ transactionIndex: "0xe2",
130
+ blockHash: "0x8e0dfac2f704851960f866c8708b3bef2f66c0fee0329cf25ff0261b264ca6bc",
131
+ logIndex: "0x180",
132
+ removed: false
133
+ }
134
+ ];
135
+ export var mockRpcAddressFromToResponse = JSON.stringify({
136
+ jsonrpc: "2.0",
137
+ id: 1,
138
+ result: mockfilterAddressFromToLogs
139
+ });
140
+ export var mockRpcAddressTopicsResponse = JSON.stringify({
141
+ jsonrpc: "2.0",
142
+ id: 1,
143
+ result: mockfilterAddressTopicsLogs
144
+ });
145
+ export var mockRpcAllResponse = JSON.stringify({
146
+ jsonrpc: "2.0",
147
+ id: 1,
148
+ result: mockfilterAllLogs
149
+ });
@@ -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) {
@@ -42,45 +34,7 @@ function _instanceof(left, right) {
42
34
  return left instanceof right;
43
35
  }
44
36
  }
45
- function _iterableToArrayLimit(arr, i) {
46
- var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
47
- if (_i == null) return;
48
- var _arr = [];
49
- var _n = true;
50
- var _d = false;
51
- var _s, _e;
52
- try {
53
- for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
54
- _arr.push(_s.value);
55
- if (i && _arr.length === i) break;
56
- }
57
- } catch (err) {
58
- _d = true;
59
- _e = err;
60
- } finally{
61
- try {
62
- if (!_n && _i["return"] != null) _i["return"]();
63
- } finally{
64
- if (_d) throw _e;
65
- }
66
- }
67
- return _arr;
68
- }
69
- function _nonIterableRest() {
70
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
71
- }
72
- function _slicedToArray(arr, i) {
73
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
74
- }
75
- function _unsupportedIterableToArray(o, minLen) {
76
- if (!o) return;
77
- if (typeof o === "string") return _arrayLikeToArray(o, minLen);
78
- var n = Object.prototype.toString.call(o).slice(8, -1);
79
- if (n === "Object" && o.constructor) n = o.constructor.name;
80
- if (n === "Map" || n === "Set") return Array.from(n);
81
- if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
82
- }
83
- var __generator = this && this.__generator || function(thisArg, body) {
37
+ function _ts_generator(thisArg, body) {
84
38
  var f, y, t, g, _ = {
85
39
  label: 0,
86
40
  sent: function() {
@@ -174,40 +128,44 @@ var __generator = this && this.__generator || function(thisArg, body) {
174
128
  done: true
175
129
  };
176
130
  }
177
- };
178
- import { ethers } from "ethers";
179
- import { JsonRpcProvider } from "../../../index";
131
+ }
132
+ import { isAddress, JsonRpcProvider } from "../../../index";
180
133
  import { fakeUrls, rpcUrls } from "../rpc-urls";
181
- var xdaiRPCUrl = rpcUrls.gno;
182
- var bscRPCUrl = rpcUrls.bnb;
134
+ var testConfig = {
135
+ mainnet: {
136
+ rpcUrl: rpcUrls.mainnet,
137
+ chainId: 1,
138
+ name: "eth",
139
+ ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
140
+ },
141
+ oeth: {
142
+ rpcUrl: rpcUrls.oeth,
143
+ chainId: 10,
144
+ name: "oeth",
145
+ ensAddress: undefined
146
+ }
147
+ };
183
148
  describe("provider.getNetwork happy path", function() {
184
- function testNetwork(rpcUrl) {
149
+ function testNetwork(networkName) {
185
150
  return _testNetwork.apply(this, arguments);
186
151
  }
187
152
  function _testNetwork() {
188
- _testNetwork = _asyncToGenerator(function(rpcUrl) {
189
- var essentialEth, ethersProvider, _ref, eeNetwork, ethersNetwork;
190
- return __generator(this, function(_state) {
153
+ _testNetwork = _async_to_generator(function(networkName) {
154
+ var config, essentialEth, network;
155
+ return _ts_generator(this, function(_state) {
191
156
  switch(_state.label){
192
157
  case 0:
193
- essentialEth = new JsonRpcProvider(rpcUrl);
194
- ethersProvider = new ethers.providers.StaticJsonRpcProvider(rpcUrl);
158
+ config = testConfig[networkName];
159
+ essentialEth = new JsonRpcProvider(config.rpcUrl);
195
160
  return [
196
161
  4,
197
- Promise.all([
198
- essentialEth.getNetwork(),
199
- ethersProvider.getNetwork()
200
- ])
162
+ essentialEth.getNetwork()
201
163
  ];
202
164
  case 1:
203
- _ref = _slicedToArray.apply(void 0, [
204
- _state.sent(),
205
- 2
206
- ]), eeNetwork = _ref[0], ethersNetwork = _ref[1];
207
- expect(eeNetwork.chainId).toBe(ethersNetwork.chainId);
208
- expect(eeNetwork.ensAddress).toBe(ethersNetwork.ensAddress);
209
- expect(eeNetwork.name).toBe(// xdai was renamed to gnosis but ethers is still out-of-date
210
- ethersNetwork.name === "xdai" ? "gno" : ethersNetwork.name);
165
+ network = _state.sent();
166
+ expect(network.chainId).toBe(config.chainId);
167
+ expect(network.name).toBe(config.name);
168
+ expect(network.ensAddress ? isAddress(network.ensAddress) : true).toBe(true);
211
169
  return [
212
170
  2
213
171
  ];
@@ -216,13 +174,13 @@ describe("provider.getNetwork happy path", function() {
216
174
  });
217
175
  return _testNetwork.apply(this, arguments);
218
176
  }
219
- it("xdai should match ethers", /*#__PURE__*/ _asyncToGenerator(function() {
220
- return __generator(this, function(_state) {
177
+ it("should return proper mainnet info", /*#__PURE__*/ _async_to_generator(function() {
178
+ return _ts_generator(this, function(_state) {
221
179
  switch(_state.label){
222
180
  case 0:
223
181
  return [
224
182
  4,
225
- testNetwork(xdaiRPCUrl)
183
+ testNetwork("mainnet")
226
184
  ];
227
185
  case 1:
228
186
  _state.sent();
@@ -232,13 +190,13 @@ describe("provider.getNetwork happy path", function() {
232
190
  }
233
191
  });
234
192
  }));
235
- it("bsc should match ethers", /*#__PURE__*/ _asyncToGenerator(function() {
236
- return __generator(this, function(_state) {
193
+ it("should return optimism info", /*#__PURE__*/ _async_to_generator(function() {
194
+ return _ts_generator(this, function(_state) {
237
195
  switch(_state.label){
238
196
  case 0:
239
197
  return [
240
198
  4,
241
- testNetwork(bscRPCUrl)
199
+ testNetwork("oeth")
242
200
  ];
243
201
  case 1:
244
202
  _state.sent();
@@ -250,9 +208,9 @@ describe("provider.getNetwork happy path", function() {
250
208
  }));
251
209
  });
252
210
  describe("provider.getNetwork error handling", function() {
253
- it("should throw on empty 200 http response", /*#__PURE__*/ _asyncToGenerator(function() {
211
+ it("should throw on empty 200 http response", /*#__PURE__*/ _async_to_generator(function() {
254
212
  var essentialEth;
255
- return __generator(this, function(_state) {
213
+ return _ts_generator(this, function(_state) {
256
214
  switch(_state.label){
257
215
  case 0:
258
216
  expect.assertions(1);