essential-eth 0.9.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.
- package/dist/cjs/classes/Contract.js +38 -34
- package/dist/cjs/classes/test/Contract/crv.test.js +146 -339
- package/dist/cjs/classes/test/Contract/ens-abi.d.ts +1 -1
- package/dist/cjs/classes/test/Contract/ens.test.js +9 -66
- package/dist/cjs/classes/test/Contract/fei.test.js +11 -11
- package/dist/cjs/classes/test/Contract/foo-abi.d.ts +1 -1
- package/dist/cjs/classes/test/Contract/uni.test.js +66 -164
- package/dist/cjs/classes/utils/clean-block.js +4 -4
- package/dist/cjs/classes/utils/clean-log.js +4 -4
- package/dist/cjs/classes/utils/clean-transaction-receipt.js +4 -4
- package/dist/cjs/classes/utils/clean-transaction.js +4 -4
- package/dist/cjs/classes/utils/encode-decode-transaction.js +10 -10
- package/dist/cjs/classes/utils/fetchers.d.ts +8 -2
- package/dist/cjs/classes/utils/fetchers.js +20 -12
- package/dist/cjs/classes/utils/prepare-transaction.js +4 -4
- package/dist/cjs/index.d.ts +21 -22
- package/dist/cjs/index.js +21 -22
- package/dist/cjs/index.umd.js +1 -1
- package/dist/cjs/index.umd.js.map +1 -1
- package/dist/cjs/logger/logger.js +79 -41
- package/dist/cjs/logger/package-version.d.ts +1 -1
- package/dist/cjs/logger/package-version.js +1 -1
- package/dist/cjs/providers/AlchemyProvider.js +22 -22
- package/dist/cjs/providers/BaseProvider.js +471 -404
- package/dist/cjs/providers/FallthroughProvider.js +62 -30
- package/dist/cjs/providers/JsonRpcProvider.js +52 -31
- package/dist/cjs/providers/test/fallthrough-provider/get-gas-price.test.js +9 -9
- package/dist/cjs/providers/test/get-transaction-count.test.js +54 -91
- package/dist/cjs/providers/test/json-rpc-provider/call.test.js +87 -148
- package/dist/cjs/providers/test/json-rpc-provider/estimate-gas.test.js +45 -116
- package/dist/cjs/providers/test/json-rpc-provider/get-balance.test.js +36 -74
- package/dist/cjs/providers/test/json-rpc-provider/get-block-number.test.js +13 -9
- package/dist/cjs/providers/test/json-rpc-provider/get-block.test.js +191 -254
- package/dist/cjs/providers/test/json-rpc-provider/get-code.test.js +106 -135
- package/dist/cjs/providers/test/json-rpc-provider/get-fee-data.test.js +48 -73
- package/dist/cjs/providers/test/json-rpc-provider/get-gas-price.test.js +11 -8
- package/dist/cjs/providers/test/json-rpc-provider/get-logs/get-logs.test.js +219 -0
- package/dist/cjs/providers/test/json-rpc-provider/get-logs/mocks.d.ts +14 -0
- package/dist/cjs/providers/test/json-rpc-provider/get-logs/mocks.js +149 -0
- package/dist/cjs/providers/test/json-rpc-provider/get-network.test.js +37 -79
- package/dist/cjs/providers/test/json-rpc-provider/get-transaction-receipt.test.js +136 -157
- package/dist/cjs/providers/test/json-rpc-provider/get-transaction.test.js +121 -162
- package/dist/cjs/providers/test/mock-of.js +0 -5
- package/dist/cjs/providers/test/rpc-urls.d.ts +1 -0
- package/dist/cjs/providers/test/rpc-urls.js +5 -4
- package/dist/cjs/providers/test/test-alchemy-provider.test.js +5 -5
- package/dist/cjs/providers/utils/chains-info.d.ts +5 -448
- package/dist/cjs/providers/utils/chains-info.js +13 -1344
- package/dist/cjs/shared/tiny-big/helpers.js +18 -18
- package/dist/cjs/shared/tiny-big/tiny-big.js +96 -56
- package/dist/cjs/shared/tiny-big/tiny-big.test.js +2 -2
- package/dist/cjs/shared/validate-type.d.ts +1 -1
- package/dist/cjs/shared/validate-type.js +4 -4
- package/dist/cjs/types/Block.types.d.ts +3 -3
- package/dist/cjs/types/Contract.types.d.ts +4 -4
- package/dist/cjs/types/Transaction.types.d.ts +5 -5
- package/dist/cjs/utils/bytes.d.ts +4 -4
- package/dist/cjs/utils/bytes.js +3 -3
- package/dist/cjs/utils/tests/bytes/arrayify.test.js +48 -24
- package/dist/cjs/utils/tests/bytes/concat.test.js +5 -3
- package/dist/cjs/utils/tests/bytes/hex-concat.test.js +15 -13
- package/dist/cjs/utils/tests/bytes/hex-data-length.test.js +49 -32
- package/dist/cjs/utils/tests/bytes/hex-data-slice.test.js +15 -16
- package/dist/cjs/utils/tests/bytes/hex-strip-zeros.test.js +57 -40
- package/dist/cjs/utils/tests/bytes/hex-value.test.js +118 -62
- package/dist/cjs/utils/tests/bytes/hex-zero-pad.test.js +71 -33
- package/dist/cjs/utils/tests/bytes/hexlify.test.js +45 -29
- package/dist/cjs/utils/tests/bytes/is-bytes-like.test.js +10 -11
- package/dist/cjs/utils/tests/bytes/is-bytes.test.js +70 -27
- package/dist/cjs/utils/tests/bytes/is-hex-string.test.js +37 -28
- package/dist/cjs/utils/tests/bytes/strip-zeros.test.js +94 -45
- package/dist/cjs/utils/tests/bytes/zero-pad.test.js +98 -34
- package/dist/cjs/utils/tests/compute-address.test.js +42 -20
- package/dist/cjs/utils/tests/compute-public-key.test.js +20 -9
- package/dist/cjs/utils/tests/ether-to-wei.test.js +5 -13
- package/dist/cjs/utils/tests/hash-message.test.js +26 -15
- package/dist/cjs/utils/tests/is-address.test.js +2 -9
- package/dist/cjs/utils/tests/keccak256.test.js +36 -12
- package/dist/cjs/utils/tests/solidity-keccak256.test.js +43 -42
- package/dist/cjs/utils/tests/split-signature.test.js +29 -8
- package/dist/cjs/utils/tests/to-checksum-address.test.js +1 -4
- package/dist/cjs/utils/tests/to-utf8-bytes.test.js +28 -8
- package/dist/cjs/utils/tests/wei-to-ether.test.js +10 -20
- package/dist/esm/classes/test/Contract/ens-abi.d.ts +1 -1
- package/dist/esm/classes/test/Contract/foo-abi.d.ts +1 -1
- package/dist/esm/classes/utils/fetchers.d.ts +8 -2
- package/dist/esm/classes/utils/fetchers.js +6 -3
- package/dist/esm/index.d.ts +21 -22
- package/dist/esm/index.js +16 -17
- package/dist/esm/logger/package-version.d.ts +1 -1
- package/dist/esm/logger/package-version.js +1 -1
- package/dist/esm/providers/FallthroughProvider.js +3 -3
- package/dist/esm/providers/test/json-rpc-provider/get-logs/mocks.d.ts +14 -0
- package/dist/esm/providers/test/json-rpc-provider/get-logs/mocks.js +142 -0
- package/dist/esm/providers/test/rpc-urls.d.ts +1 -0
- package/dist/esm/providers/test/rpc-urls.js +7 -4
- package/dist/esm/providers/utils/chains-info.d.ts +5 -448
- package/dist/esm/providers/utils/chains-info.js +13 -1344
- package/dist/esm/shared/validate-type.d.ts +1 -1
- package/dist/esm/types/Block.types.d.ts +3 -3
- package/dist/esm/types/Contract.types.d.ts +4 -4
- package/dist/esm/types/Transaction.types.d.ts +5 -5
- package/dist/esm/utils/bytes.d.ts +4 -4
- package/package.json +22 -50
- package/readme.md +15 -38
- 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
|
|
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
|
|
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 {
|
|
179
|
-
import { JsonRpcProvider } from "../../../index";
|
|
131
|
+
}
|
|
132
|
+
import { isAddress, JsonRpcProvider } from "../../../index";
|
|
180
133
|
import { fakeUrls, rpcUrls } from "../rpc-urls";
|
|
181
|
-
var
|
|
182
|
-
|
|
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(
|
|
149
|
+
function testNetwork(networkName) {
|
|
185
150
|
return _testNetwork.apply(this, arguments);
|
|
186
151
|
}
|
|
187
152
|
function _testNetwork() {
|
|
188
|
-
_testNetwork =
|
|
189
|
-
var
|
|
190
|
-
return
|
|
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
|
-
|
|
194
|
-
|
|
158
|
+
config = testConfig[networkName];
|
|
159
|
+
essentialEth = new JsonRpcProvider(config.rpcUrl);
|
|
195
160
|
return [
|
|
196
161
|
4,
|
|
197
|
-
|
|
198
|
-
essentialEth.getNetwork(),
|
|
199
|
-
ethersProvider.getNetwork()
|
|
200
|
-
])
|
|
162
|
+
essentialEth.getNetwork()
|
|
201
163
|
];
|
|
202
164
|
case 1:
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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("
|
|
220
|
-
return
|
|
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(
|
|
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("
|
|
236
|
-
return
|
|
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(
|
|
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__*/
|
|
211
|
+
it("should throw on empty 200 http response", /*#__PURE__*/ _async_to_generator(function() {
|
|
254
212
|
var essentialEth;
|
|
255
|
-
return
|
|
213
|
+
return _ts_generator(this, function(_state) {
|
|
256
214
|
switch(_state.label){
|
|
257
215
|
case 0:
|
|
258
216
|
expect.assertions(1);
|