@qevm/providers 1.0.1
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/LICENSE.md +21 -0
- package/README.md +78 -0
- package/lib/_version.d.ts +2 -0
- package/lib/_version.d.ts.map +1 -0
- package/lib/_version.js +5 -0
- package/lib/_version.js.map +1 -0
- package/lib/alchemy-provider.d.ts +17 -0
- package/lib/alchemy-provider.d.ts.map +1 -0
- package/lib/alchemy-provider.js +112 -0
- package/lib/alchemy-provider.js.map +1 -0
- package/lib/ankr-provider.d.ts +10 -0
- package/lib/ankr-provider.d.ts.map +1 -0
- package/lib/ankr-provider.js +79 -0
- package/lib/ankr-provider.js.map +1 -0
- package/lib/base-provider.d.ts +156 -0
- package/lib/base-provider.d.ts.map +1 -0
- package/lib/base-provider.js +2585 -0
- package/lib/base-provider.js.map +1 -0
- package/lib/browser-ipc-provider.d.ts +3 -0
- package/lib/browser-ipc-provider.d.ts.map +1 -0
- package/lib/browser-ipc-provider.js +6 -0
- package/lib/browser-ipc-provider.js.map +1 -0
- package/lib/browser-net.d.ts +2 -0
- package/lib/browser-net.d.ts.map +1 -0
- package/lib/browser-net.js +6 -0
- package/lib/browser-net.js.map +1 -0
- package/lib/browser-ws.d.ts +3 -0
- package/lib/browser-ws.d.ts.map +1 -0
- package/lib/browser-ws.js +22 -0
- package/lib/browser-ws.js.map +1 -0
- package/lib/cloudflare-provider.d.ts +8 -0
- package/lib/cloudflare-provider.d.ts.map +1 -0
- package/lib/cloudflare-provider.js +100 -0
- package/lib/cloudflare-provider.js.map +1 -0
- package/lib/etherscan-provider.d.ts +18 -0
- package/lib/etherscan-provider.d.ts.map +1 -0
- package/lib/etherscan-provider.js +528 -0
- package/lib/etherscan-provider.js.map +1 -0
- package/lib/fallback-provider.d.ts +20 -0
- package/lib/fallback-provider.d.ts.map +1 -0
- package/lib/fallback-provider.js +699 -0
- package/lib/fallback-provider.js.map +1 -0
- package/lib/formatter.d.ts +60 -0
- package/lib/formatter.d.ts.map +1 -0
- package/lib/formatter.js +452 -0
- package/lib/formatter.js.map +1 -0
- package/lib/index.d.ts +23 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +97 -0
- package/lib/index.js.map +1 -0
- package/lib/infura-provider.d.ts +21 -0
- package/lib/infura-provider.d.ts.map +1 -0
- package/lib/infura-provider.js +141 -0
- package/lib/infura-provider.js.map +1 -0
- package/lib/ipc-provider.d.ts +8 -0
- package/lib/ipc-provider.d.ts.map +1 -0
- package/lib/ipc-provider.js +77 -0
- package/lib/ipc-provider.js.map +1 -0
- package/lib/json-rpc-batch-provider.d.ts +17 -0
- package/lib/json-rpc-batch-provider.d.ts.map +1 -0
- package/lib/json-rpc-batch-provider.js +99 -0
- package/lib/json-rpc-batch-provider.js.map +1 -0
- package/lib/json-rpc-provider.d.ts +54 -0
- package/lib/json-rpc-provider.d.ts.map +1 -0
- package/lib/json-rpc-provider.js +855 -0
- package/lib/json-rpc-provider.js.map +1 -0
- package/lib/nodesmith-provider.d.ts +7 -0
- package/lib/nodesmith-provider.d.ts.map +1 -0
- package/lib/nodesmith-provider.js +64 -0
- package/lib/nodesmith-provider.js.map +1 -0
- package/lib/pocket-provider.d.ts +12 -0
- package/lib/pocket-provider.d.ts.map +1 -0
- package/lib/pocket-provider.js +98 -0
- package/lib/pocket-provider.js.map +1 -0
- package/lib/url-json-rpc-provider.d.ts +18 -0
- package/lib/url-json-rpc-provider.d.ts.map +1 -0
- package/lib/url-json-rpc-provider.js +153 -0
- package/lib/url-json-rpc-provider.js.map +1 -0
- package/lib/web3-provider.d.ts +28 -0
- package/lib/web3-provider.d.ts.map +1 -0
- package/lib/web3-provider.js +155 -0
- package/lib/web3-provider.js.map +1 -0
- package/lib/websocket-provider.d.ts +48 -0
- package/lib/websocket-provider.d.ts.map +1 -0
- package/lib/websocket-provider.js +384 -0
- package/lib/websocket-provider.js.map +1 -0
- package/lib/ws.d.ts +3 -0
- package/lib/ws.d.ts.map +1 -0
- package/lib/ws.js +9 -0
- package/lib/ws.js.map +1 -0
- package/package.json +57 -0
- package/src.ts/_version.ts +1 -0
- package/src.ts/alchemy-provider.ts +101 -0
- package/src.ts/ankr-provider.ts +68 -0
- package/src.ts/base-provider.ts +2216 -0
- package/src.ts/browser-ipc-provider.ts +7 -0
- package/src.ts/browser-net.ts +3 -0
- package/src.ts/browser-ws.ts +21 -0
- package/src.ts/cloudflare-provider.ts +42 -0
- package/src.ts/etherscan-provider.ts +454 -0
- package/src.ts/fallback-provider.ts +654 -0
- package/src.ts/formatter.ts +522 -0
- package/src.ts/index.ts +178 -0
- package/src.ts/infura-provider.ts +143 -0
- package/src.ts/ipc-provider.ts +72 -0
- package/src.ts/json-rpc-batch-provider.ts +97 -0
- package/src.ts/json-rpc-provider.ts +742 -0
- package/src.ts/nodesmith-provider.ts +50 -0
- package/src.ts/pocket-provider.ts +93 -0
- package/src.ts/url-json-rpc-provider.ts +106 -0
- package/src.ts/web3-provider.ts +169 -0
- package/src.ts/websocket-provider.ts +350 -0
- package/src.ts/ws.ts +3 -0
- package/thirdparty.d.ts +10 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2019 Richard Moore
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Ethereum Providers
|
|
2
|
+
==================
|
|
3
|
+
|
|
4
|
+
This sub-module is part of the [ethers project](https://github.com/ethers-io/ethers.js).
|
|
5
|
+
|
|
6
|
+
It contains common Provider classes, utility functions for dealing with providers
|
|
7
|
+
and re-exports many of the classes and types needed to implement a custom Provider.
|
|
8
|
+
|
|
9
|
+
For more information, see the [documentation](https://docs.ethers.io/v5/api/providers/).
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Importing
|
|
13
|
+
---------
|
|
14
|
+
|
|
15
|
+
Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/ethers),
|
|
16
|
+
but for those with more specific needs, individual components can be imported.
|
|
17
|
+
|
|
18
|
+
```javascript
|
|
19
|
+
const {
|
|
20
|
+
|
|
21
|
+
Provider,
|
|
22
|
+
BaseProvider,
|
|
23
|
+
|
|
24
|
+
JsonRpcProvider,
|
|
25
|
+
StaticJsonRpcProvider,
|
|
26
|
+
UrlJsonRpcProvider,
|
|
27
|
+
|
|
28
|
+
FallbackProvider,
|
|
29
|
+
|
|
30
|
+
AlchemyProvider,
|
|
31
|
+
CloudflareProvider,
|
|
32
|
+
EtherscanProvider,
|
|
33
|
+
InfuraProvider,
|
|
34
|
+
NodesmithProvider,
|
|
35
|
+
|
|
36
|
+
IpcProvider,
|
|
37
|
+
|
|
38
|
+
Web3Provider,
|
|
39
|
+
|
|
40
|
+
WebSocketProvider,
|
|
41
|
+
|
|
42
|
+
JsonRpcSigner,
|
|
43
|
+
|
|
44
|
+
getDefaultProvider,
|
|
45
|
+
|
|
46
|
+
getNetwork,
|
|
47
|
+
|
|
48
|
+
Formatter,
|
|
49
|
+
|
|
50
|
+
// Types
|
|
51
|
+
|
|
52
|
+
TransactionReceipt,
|
|
53
|
+
TransactionRequest,
|
|
54
|
+
TransactionResponse,
|
|
55
|
+
|
|
56
|
+
Listener,
|
|
57
|
+
|
|
58
|
+
ExternalProvider,
|
|
59
|
+
|
|
60
|
+
Block,
|
|
61
|
+
BlockTag,
|
|
62
|
+
EventType,
|
|
63
|
+
Filter,
|
|
64
|
+
Log,
|
|
65
|
+
|
|
66
|
+
JsonRpcFetchFunc,
|
|
67
|
+
|
|
68
|
+
Network,
|
|
69
|
+
Networkish
|
|
70
|
+
|
|
71
|
+
} = require("@ethersproject/providers");
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
License
|
|
76
|
+
-------
|
|
77
|
+
|
|
78
|
+
MIT License
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_version.d.ts","sourceRoot":"","sources":["../src.ts/_version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,oBAAoB,CAAC"}
|
package/lib/_version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_version.js","sourceRoot":"","sources":["../src.ts/_version.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Network, Networkish } from "@ethersproject/networks";
|
|
2
|
+
import { ConnectionInfo } from "@ethersproject/web";
|
|
3
|
+
import { CommunityResourcable } from "./formatter";
|
|
4
|
+
import { WebSocketProvider } from "./websocket-provider";
|
|
5
|
+
import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
|
|
6
|
+
export declare class AlchemyWebSocketProvider extends WebSocketProvider implements CommunityResourcable {
|
|
7
|
+
readonly apiKey: string;
|
|
8
|
+
constructor(network?: Networkish, apiKey?: any);
|
|
9
|
+
isCommunityResource(): boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare class AlchemyProvider extends UrlJsonRpcProvider {
|
|
12
|
+
static getWebSocketProvider(network?: Networkish, apiKey?: any): AlchemyWebSocketProvider;
|
|
13
|
+
static getApiKey(apiKey: any): any;
|
|
14
|
+
static getUrl(network: Network, apiKey: string): ConnectionInfo;
|
|
15
|
+
isCommunityResource(): boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=alchemy-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alchemy-provider.d.ts","sourceRoot":"","sources":["../src.ts/alchemy-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAMzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAS7D,qBAAa,wBAAyB,SAAQ,iBAAkB,YAAW,oBAAoB;IAC3F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG;IAU9C,mBAAmB,IAAI,OAAO;CAGjC;AAED,qBAAa,eAAgB,SAAQ,kBAAkB;IAEnD,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,wBAAwB;IAIzF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAQlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IA2C/D,mBAAmB,IAAI,OAAO;CAGjC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AlchemyProvider = exports.AlchemyWebSocketProvider = void 0;
|
|
19
|
+
var properties_1 = require("@ethersproject/properties");
|
|
20
|
+
var formatter_1 = require("./formatter");
|
|
21
|
+
var websocket_provider_1 = require("./websocket-provider");
|
|
22
|
+
var logger_1 = require("@ethersproject/logger");
|
|
23
|
+
var _version_1 = require("./_version");
|
|
24
|
+
var logger = new logger_1.Logger(_version_1.version);
|
|
25
|
+
var url_json_rpc_provider_1 = require("./url-json-rpc-provider");
|
|
26
|
+
// This key was provided to ethers.js by Alchemy to be used by the
|
|
27
|
+
// default provider, but it is recommended that for your own
|
|
28
|
+
// production environments, that you acquire your own API key at:
|
|
29
|
+
// https://dashboard.alchemyapi.io
|
|
30
|
+
var defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";
|
|
31
|
+
var AlchemyWebSocketProvider = /** @class */ (function (_super) {
|
|
32
|
+
__extends(AlchemyWebSocketProvider, _super);
|
|
33
|
+
function AlchemyWebSocketProvider(network, apiKey) {
|
|
34
|
+
var _this = this;
|
|
35
|
+
var provider = new AlchemyProvider(network, apiKey);
|
|
36
|
+
var url = provider.connection.url.replace(/^http/i, "ws")
|
|
37
|
+
.replace(".alchemyapi.", ".ws.alchemyapi.");
|
|
38
|
+
_this = _super.call(this, url, provider.network) || this;
|
|
39
|
+
(0, properties_1.defineReadOnly)(_this, "apiKey", provider.apiKey);
|
|
40
|
+
return _this;
|
|
41
|
+
}
|
|
42
|
+
AlchemyWebSocketProvider.prototype.isCommunityResource = function () {
|
|
43
|
+
return (this.apiKey === defaultApiKey);
|
|
44
|
+
};
|
|
45
|
+
return AlchemyWebSocketProvider;
|
|
46
|
+
}(websocket_provider_1.WebSocketProvider));
|
|
47
|
+
exports.AlchemyWebSocketProvider = AlchemyWebSocketProvider;
|
|
48
|
+
var AlchemyProvider = /** @class */ (function (_super) {
|
|
49
|
+
__extends(AlchemyProvider, _super);
|
|
50
|
+
function AlchemyProvider() {
|
|
51
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
52
|
+
}
|
|
53
|
+
AlchemyProvider.getWebSocketProvider = function (network, apiKey) {
|
|
54
|
+
return new AlchemyWebSocketProvider(network, apiKey);
|
|
55
|
+
};
|
|
56
|
+
AlchemyProvider.getApiKey = function (apiKey) {
|
|
57
|
+
if (apiKey == null) {
|
|
58
|
+
return defaultApiKey;
|
|
59
|
+
}
|
|
60
|
+
if (apiKey && typeof (apiKey) !== "string") {
|
|
61
|
+
logger.throwArgumentError("invalid apiKey", "apiKey", apiKey);
|
|
62
|
+
}
|
|
63
|
+
return apiKey;
|
|
64
|
+
};
|
|
65
|
+
AlchemyProvider.getUrl = function (network, apiKey) {
|
|
66
|
+
var host = null;
|
|
67
|
+
switch (network.name) {
|
|
68
|
+
case "homestead":
|
|
69
|
+
host = "eth-mainnet.alchemyapi.io/v2/";
|
|
70
|
+
break;
|
|
71
|
+
case "goerli":
|
|
72
|
+
host = "eth-goerli.g.alchemy.com/v2/";
|
|
73
|
+
break;
|
|
74
|
+
case "matic":
|
|
75
|
+
host = "polygon-mainnet.g.alchemy.com/v2/";
|
|
76
|
+
break;
|
|
77
|
+
case "maticmum":
|
|
78
|
+
host = "polygon-mumbai.g.alchemy.com/v2/";
|
|
79
|
+
break;
|
|
80
|
+
case "arbitrum":
|
|
81
|
+
host = "arb-mainnet.g.alchemy.com/v2/";
|
|
82
|
+
break;
|
|
83
|
+
case "arbitrum-goerli":
|
|
84
|
+
host = "arb-goerli.g.alchemy.com/v2/";
|
|
85
|
+
break;
|
|
86
|
+
case "optimism":
|
|
87
|
+
host = "opt-mainnet.g.alchemy.com/v2/";
|
|
88
|
+
break;
|
|
89
|
+
case "optimism-goerli":
|
|
90
|
+
host = "opt-goerli.g.alchemy.com/v2/";
|
|
91
|
+
break;
|
|
92
|
+
default:
|
|
93
|
+
logger.throwArgumentError("unsupported network", "network", arguments[0]);
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
allowGzip: true,
|
|
97
|
+
url: ("https:/" + "/" + host + apiKey),
|
|
98
|
+
throttleCallback: function (attempt, url) {
|
|
99
|
+
if (apiKey === defaultApiKey) {
|
|
100
|
+
(0, formatter_1.showThrottleMessage)();
|
|
101
|
+
}
|
|
102
|
+
return Promise.resolve(true);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
AlchemyProvider.prototype.isCommunityResource = function () {
|
|
107
|
+
return (this.apiKey === defaultApiKey);
|
|
108
|
+
};
|
|
109
|
+
return AlchemyProvider;
|
|
110
|
+
}(url_json_rpc_provider_1.UrlJsonRpcProvider));
|
|
111
|
+
exports.AlchemyProvider = AlchemyProvider;
|
|
112
|
+
//# sourceMappingURL=alchemy-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alchemy-provider.js","sourceRoot":"","sources":["../src.ts/alchemy-provider.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;AAGb,wDAA2D;AAG3D,yCAAwE;AACxE,2DAAyD;AAEzD,gDAA+C;AAC/C,uCAAqC;AACrC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAEnC,iEAA6D;AAE7D,kEAAkE;AAClE,4DAA4D;AAC5D,iEAAiE;AACjE,oCAAoC;AAEpC,IAAM,aAAa,GAAG,kCAAkC,CAAA;AAExD;IAA8C,4CAAiB;IAG3D,kCAAY,OAAoB,EAAE,MAAY;QAA9C,iBAQC;QAPG,IAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAEtD,IAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;aACvB,OAAO,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;QAE/E,QAAA,kBAAM,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAC;QAC7B,IAAA,2BAAc,EAAC,KAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;IACpD,CAAC;IAED,sDAAmB,GAAnB;QACI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC3C,CAAC;IACL,+BAAC;AAAD,CAAC,AAhBD,CAA8C,sCAAiB,GAgB9D;AAhBY,4DAAwB;AAkBrC;IAAqC,mCAAkB;IAAvD;;IA4DA,CAAC;IA1DU,oCAAoB,GAA3B,UAA4B,OAAoB,EAAE,MAAY;QAC1D,OAAO,IAAI,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEM,yBAAS,GAAhB,UAAiB,MAAW;QACxB,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,OAAO,aAAa,CAAC;SAAE;QAC7C,IAAI,MAAM,IAAI,OAAM,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE;YACvC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;SACjE;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,sBAAM,GAAb,UAAc,OAAgB,EAAE,MAAc;QAC1C,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,QAAQ,OAAO,CAAC,IAAI,EAAE;YAClB,KAAK,WAAW;gBACZ,IAAI,GAAG,+BAA+B,CAAC;gBACvC,MAAM;YACV,KAAK,QAAQ;gBACT,IAAI,GAAG,8BAA8B,CAAC;gBACtC,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,GAAG,mCAAmC,CAAC;gBAC3C,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,GAAG,kCAAkC,CAAC;gBAC1C,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,GAAG,+BAA+B,CAAC;gBACvC,MAAM;YACV,KAAK,iBAAiB;gBAClB,IAAI,GAAG,8BAA8B,CAAC;gBACtC,MAAM;YACV,KAAK,UAAU;gBACX,IAAI,GAAG,+BAA+B,CAAC;gBACvC,MAAM;YACV,KAAK,iBAAiB;gBAClB,IAAI,GAAG,8BAA8B,CAAA;gBACrC,MAAM;YACV;gBACG,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAChF;QAED,OAAO;YACH,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,CAAC,SAAS,GAAG,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;YACtC,gBAAgB,EAAE,UAAC,OAAe,EAAE,GAAW;gBAC3C,IAAI,MAAM,KAAK,aAAa,EAAE;oBAC1B,IAAA,+BAAmB,GAAE,CAAC;iBACzB;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;SACJ,CAAC;IACN,CAAC;IAED,6CAAmB,GAAnB;QACI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC3C,CAAC;IACL,sBAAC;AAAD,CAAC,AA5DD,CAAqC,0CAAkB,GA4DtD;AA5DY,0CAAe"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Network } from "@ethersproject/networks";
|
|
2
|
+
import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
|
|
3
|
+
import type { ConnectionInfo } from "@ethersproject/web";
|
|
4
|
+
export declare class AnkrProvider extends UrlJsonRpcProvider {
|
|
5
|
+
readonly apiKey: string;
|
|
6
|
+
isCommunityResource(): boolean;
|
|
7
|
+
static getApiKey(apiKey: any): any;
|
|
8
|
+
static getUrl(network: Network, apiKey: any): ConnectionInfo;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=ankr-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ankr-provider.d.ts","sourceRoot":"","sources":["../src.ts/ankr-provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAGlD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA6BzD,qBAAa,YAAa,SAAQ,kBAAkB;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,mBAAmB,IAAI,OAAO;IAI9B,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAKlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,cAAc;CAoB/D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __extends = (this && this.__extends) || (function () {
|
|
3
|
+
var extendStatics = function (d, b) {
|
|
4
|
+
extendStatics = Object.setPrototypeOf ||
|
|
5
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
6
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
7
|
+
return extendStatics(d, b);
|
|
8
|
+
};
|
|
9
|
+
return function (d, b) {
|
|
10
|
+
if (typeof b !== "function" && b !== null)
|
|
11
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
12
|
+
extendStatics(d, b);
|
|
13
|
+
function __() { this.constructor = d; }
|
|
14
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
15
|
+
};
|
|
16
|
+
})();
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.AnkrProvider = void 0;
|
|
19
|
+
var formatter_1 = require("./formatter");
|
|
20
|
+
var url_json_rpc_provider_1 = require("./url-json-rpc-provider");
|
|
21
|
+
var logger_1 = require("@ethersproject/logger");
|
|
22
|
+
var _version_1 = require("./_version");
|
|
23
|
+
var logger = new logger_1.Logger(_version_1.version);
|
|
24
|
+
var defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";
|
|
25
|
+
function getHost(name) {
|
|
26
|
+
switch (name) {
|
|
27
|
+
case "homestead":
|
|
28
|
+
return "rpc.ankr.com/eth/";
|
|
29
|
+
case "ropsten":
|
|
30
|
+
return "rpc.ankr.com/eth_ropsten/";
|
|
31
|
+
case "rinkeby":
|
|
32
|
+
return "rpc.ankr.com/eth_rinkeby/";
|
|
33
|
+
case "goerli":
|
|
34
|
+
return "rpc.ankr.com/eth_goerli/";
|
|
35
|
+
case "matic":
|
|
36
|
+
return "rpc.ankr.com/polygon/";
|
|
37
|
+
case "arbitrum":
|
|
38
|
+
return "rpc.ankr.com/arbitrum/";
|
|
39
|
+
}
|
|
40
|
+
return logger.throwArgumentError("unsupported network", "name", name);
|
|
41
|
+
}
|
|
42
|
+
var AnkrProvider = /** @class */ (function (_super) {
|
|
43
|
+
__extends(AnkrProvider, _super);
|
|
44
|
+
function AnkrProvider() {
|
|
45
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
46
|
+
}
|
|
47
|
+
AnkrProvider.prototype.isCommunityResource = function () {
|
|
48
|
+
return (this.apiKey === defaultApiKey);
|
|
49
|
+
};
|
|
50
|
+
AnkrProvider.getApiKey = function (apiKey) {
|
|
51
|
+
if (apiKey == null) {
|
|
52
|
+
return defaultApiKey;
|
|
53
|
+
}
|
|
54
|
+
return apiKey;
|
|
55
|
+
};
|
|
56
|
+
AnkrProvider.getUrl = function (network, apiKey) {
|
|
57
|
+
if (apiKey == null) {
|
|
58
|
+
apiKey = defaultApiKey;
|
|
59
|
+
}
|
|
60
|
+
var connection = {
|
|
61
|
+
allowGzip: true,
|
|
62
|
+
url: ("https:/\/" + getHost(network.name) + apiKey),
|
|
63
|
+
throttleCallback: function (attempt, url) {
|
|
64
|
+
if (apiKey.apiKey === defaultApiKey) {
|
|
65
|
+
(0, formatter_1.showThrottleMessage)();
|
|
66
|
+
}
|
|
67
|
+
return Promise.resolve(true);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
if (apiKey.projectSecret != null) {
|
|
71
|
+
connection.user = "";
|
|
72
|
+
connection.password = apiKey.projectSecret;
|
|
73
|
+
}
|
|
74
|
+
return connection;
|
|
75
|
+
};
|
|
76
|
+
return AnkrProvider;
|
|
77
|
+
}(url_json_rpc_provider_1.UrlJsonRpcProvider));
|
|
78
|
+
exports.AnkrProvider = AnkrProvider;
|
|
79
|
+
//# sourceMappingURL=ankr-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ankr-provider.js","sourceRoot":"","sources":["../src.ts/ankr-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAGA,yCAAkD;AAClD,iEAA6D;AAI7D,gDAA+C;AAC/C,uCAAqC;AACrC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAGnC,IAAM,aAAa,GAAG,kEAAkE,CAAC;AAEzF,SAAS,OAAO,CAAC,IAAY;IACzB,QAAQ,IAAI,EAAE;QACV,KAAK,WAAW;YACZ,OAAO,mBAAmB,CAAC;QAC/B,KAAK,SAAS;YACV,OAAO,2BAA2B,CAAC;QACvC,KAAK,SAAS;YACV,OAAO,2BAA2B,CAAC;QACvC,KAAK,QAAQ;YACT,OAAO,0BAA0B,CAAC;QAEtC,KAAK,OAAO;YACR,OAAO,uBAAuB,CAAC;QAEnC,KAAK,UAAU;YACX,OAAO,wBAAwB,CAAC;KACvC;IACD,OAAO,MAAM,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED;IAAkC,gCAAkB;IAApD;;IAgCA,CAAC;IA7BG,0CAAmB,GAAnB;QACI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;IAC3C,CAAC;IAEM,sBAAS,GAAhB,UAAiB,MAAW;QACxB,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,OAAO,aAAa,CAAC;SAAE;QAC7C,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,mBAAM,GAAb,UAAc,OAAgB,EAAE,MAAW;QACvC,IAAI,MAAM,IAAI,IAAI,EAAE;YAAE,MAAM,GAAG,aAAa,CAAC;SAAE;QAC/C,IAAM,UAAU,GAAmB;YAC/B,SAAS,EAAE,IAAI;YACf,GAAG,EAAE,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACnD,gBAAgB,EAAE,UAAC,OAAe,EAAE,GAAW;gBAC3C,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE;oBACjC,IAAA,+BAAmB,GAAE,CAAC;iBACzB;gBACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;SACJ,CAAC;QAEF,IAAI,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE;YAC9B,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC;YACrB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAA;SAC7C;QAED,OAAO,UAAU,CAAC;IACtB,CAAC;IACL,mBAAC;AAAD,CAAC,AAhCD,CAAkC,0CAAkB,GAgCnD;AAhCY,oCAAY"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { Block, BlockTag, BlockWithTransactions, EventType, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from "@qevm/abstract-provider";
|
|
3
|
+
import { BigNumber, BigNumberish } from "@ethersproject/bignumber";
|
|
4
|
+
import { Network, Networkish } from "@ethersproject/networks";
|
|
5
|
+
import { Deferrable } from "@ethersproject/properties";
|
|
6
|
+
import { Transaction } from "@qevm/transactions";
|
|
7
|
+
import { Formatter } from "./formatter";
|
|
8
|
+
export declare class Event {
|
|
9
|
+
readonly listener: Listener;
|
|
10
|
+
readonly once: boolean;
|
|
11
|
+
readonly tag: string;
|
|
12
|
+
_lastBlockNumber: number;
|
|
13
|
+
_inflight: boolean;
|
|
14
|
+
constructor(tag: string, listener: Listener, once: boolean);
|
|
15
|
+
get event(): EventType;
|
|
16
|
+
get type(): string;
|
|
17
|
+
get hash(): string;
|
|
18
|
+
get filter(): Filter;
|
|
19
|
+
pollable(): boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface EnsResolver {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly address: string;
|
|
24
|
+
getAddress(coinType?: 60): Promise<null | string>;
|
|
25
|
+
getContentHash(): Promise<null | string>;
|
|
26
|
+
getText(key: string): Promise<null | string>;
|
|
27
|
+
}
|
|
28
|
+
export interface EnsProvider {
|
|
29
|
+
resolveName(name: string): Promise<null | string>;
|
|
30
|
+
lookupAddress(address: string): Promise<null | string>;
|
|
31
|
+
getResolver(name: string): Promise<null | EnsResolver>;
|
|
32
|
+
}
|
|
33
|
+
export interface Avatar {
|
|
34
|
+
url: string;
|
|
35
|
+
linkage: Array<{
|
|
36
|
+
type: string;
|
|
37
|
+
content: string;
|
|
38
|
+
}>;
|
|
39
|
+
}
|
|
40
|
+
export declare class Resolver implements EnsResolver {
|
|
41
|
+
readonly provider: BaseProvider;
|
|
42
|
+
readonly name: string;
|
|
43
|
+
readonly address: string;
|
|
44
|
+
readonly _resolvedAddress: null | string;
|
|
45
|
+
_supportsEip2544: null | Promise<boolean>;
|
|
46
|
+
constructor(provider: BaseProvider, address: string, name: string, resolvedAddress?: string);
|
|
47
|
+
supportsWildcard(): Promise<boolean>;
|
|
48
|
+
_fetch(selector: string, parameters?: string): Promise<null | string>;
|
|
49
|
+
_fetchBytes(selector: string, parameters?: string): Promise<null | string>;
|
|
50
|
+
_getAddress(coinType: number, hexBytes: string): string;
|
|
51
|
+
getAddress(coinType?: number): Promise<string>;
|
|
52
|
+
getAvatar(): Promise<null | Avatar>;
|
|
53
|
+
getContentHash(): Promise<string>;
|
|
54
|
+
getText(key: string): Promise<string>;
|
|
55
|
+
}
|
|
56
|
+
export declare class BaseProvider extends Provider implements EnsProvider {
|
|
57
|
+
_networkPromise: Promise<Network>;
|
|
58
|
+
_network: Network;
|
|
59
|
+
_events: Array<Event>;
|
|
60
|
+
formatter: Formatter;
|
|
61
|
+
_emitted: {
|
|
62
|
+
[eventName: string]: number | "pending";
|
|
63
|
+
};
|
|
64
|
+
_pollingInterval: number;
|
|
65
|
+
_poller: NodeJS.Timer;
|
|
66
|
+
_bootstrapPoll: NodeJS.Timer;
|
|
67
|
+
_lastBlockNumber: number;
|
|
68
|
+
_maxFilterBlockRange: number;
|
|
69
|
+
_fastBlockNumber: number;
|
|
70
|
+
_fastBlockNumberPromise: Promise<number>;
|
|
71
|
+
_fastQueryDate: number;
|
|
72
|
+
_maxInternalBlockNumber: number;
|
|
73
|
+
_internalBlockNumber: Promise<{
|
|
74
|
+
blockNumber: number;
|
|
75
|
+
reqTime: number;
|
|
76
|
+
respTime: number;
|
|
77
|
+
}>;
|
|
78
|
+
readonly anyNetwork: boolean;
|
|
79
|
+
disableCcipRead: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* ready
|
|
82
|
+
*
|
|
83
|
+
* A Promise<Network> that resolves only once the provider is ready.
|
|
84
|
+
*
|
|
85
|
+
* Sub-classes that call the super with a network without a chainId
|
|
86
|
+
* MUST set this. Standard named networks have a known chainId.
|
|
87
|
+
*
|
|
88
|
+
*/
|
|
89
|
+
constructor(network: Networkish | Promise<Network>);
|
|
90
|
+
_ready(): Promise<Network>;
|
|
91
|
+
get ready(): Promise<Network>;
|
|
92
|
+
static getFormatter(): Formatter;
|
|
93
|
+
static getNetwork(network: Networkish): Network;
|
|
94
|
+
ccipReadFetch(tx: Transaction, calldata: string, urls: Array<string>): Promise<null | string>;
|
|
95
|
+
_getInternalBlockNumber(maxAge: number): Promise<number>;
|
|
96
|
+
poll(): Promise<void>;
|
|
97
|
+
resetEventsBlock(blockNumber: number): void;
|
|
98
|
+
get network(): Network;
|
|
99
|
+
detectNetwork(): Promise<Network>;
|
|
100
|
+
getNetwork(): Promise<Network>;
|
|
101
|
+
get blockNumber(): number;
|
|
102
|
+
get polling(): boolean;
|
|
103
|
+
set polling(value: boolean);
|
|
104
|
+
get pollingInterval(): number;
|
|
105
|
+
set pollingInterval(value: number);
|
|
106
|
+
_getFastBlockNumber(): Promise<number>;
|
|
107
|
+
_setFastBlockNumber(blockNumber: number): void;
|
|
108
|
+
waitForTransaction(transactionHash: string, confirmations?: number, timeout?: number): Promise<TransactionReceipt>;
|
|
109
|
+
_waitForTransaction(transactionHash: string, confirmations: number, timeout: number, replaceable: {
|
|
110
|
+
data: string;
|
|
111
|
+
from: string;
|
|
112
|
+
nonce: number;
|
|
113
|
+
to: string;
|
|
114
|
+
value: BigNumber;
|
|
115
|
+
startBlock: number;
|
|
116
|
+
}): Promise<TransactionReceipt>;
|
|
117
|
+
getBlockNumber(): Promise<number>;
|
|
118
|
+
getGasPrice(): Promise<BigNumber>;
|
|
119
|
+
getBalance(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<BigNumber>;
|
|
120
|
+
getTransactionCount(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<number>;
|
|
121
|
+
getCode(addressOrName: string | Promise<string>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
122
|
+
getStorageAt(addressOrName: string | Promise<string>, position: BigNumberish | Promise<BigNumberish>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
123
|
+
_wrapTransaction(tx: Transaction, hash?: string, startBlock?: number): TransactionResponse;
|
|
124
|
+
sendTransaction(signedTransaction: string | Promise<string>): Promise<TransactionResponse>;
|
|
125
|
+
_getTransactionRequest(transaction: Deferrable<TransactionRequest>): Promise<Transaction>;
|
|
126
|
+
_getFilter(filter: Filter | FilterByBlockHash | Promise<Filter | FilterByBlockHash>): Promise<Filter | FilterByBlockHash>;
|
|
127
|
+
_call(transaction: TransactionRequest, blockTag: BlockTag, attempt: number): Promise<string>;
|
|
128
|
+
call(transaction: Deferrable<TransactionRequest>, blockTag?: BlockTag | Promise<BlockTag>): Promise<string>;
|
|
129
|
+
estimateGas(transaction: Deferrable<TransactionRequest>): Promise<BigNumber>;
|
|
130
|
+
_getAddress(addressOrName: string | Promise<string>): Promise<string>;
|
|
131
|
+
_getBlock(blockHashOrBlockTag: BlockTag | string | Promise<BlockTag | string>, includeTransactions?: boolean): Promise<Block | BlockWithTransactions>;
|
|
132
|
+
getBlock(blockHashOrBlockTag: BlockTag | string | Promise<BlockTag | string>): Promise<Block>;
|
|
133
|
+
getBlockWithTransactions(blockHashOrBlockTag: BlockTag | string | Promise<BlockTag | string>): Promise<BlockWithTransactions>;
|
|
134
|
+
getTransaction(transactionHash: string | Promise<string>): Promise<TransactionResponse>;
|
|
135
|
+
getTransactionReceipt(transactionHash: string | Promise<string>): Promise<TransactionReceipt>;
|
|
136
|
+
getLogs(filter: Filter | FilterByBlockHash | Promise<Filter | FilterByBlockHash>): Promise<Array<Log>>;
|
|
137
|
+
getEtherPrice(): Promise<number>;
|
|
138
|
+
_getBlockTag(blockTag: BlockTag | Promise<BlockTag>): Promise<BlockTag>;
|
|
139
|
+
getResolver(name: string): Promise<null | Resolver>;
|
|
140
|
+
_getResolver(name: string, operation?: string): Promise<string>;
|
|
141
|
+
resolveName(name: string | Promise<string>): Promise<null | string>;
|
|
142
|
+
lookupAddress(address: string | Promise<string>): Promise<null | string>;
|
|
143
|
+
getAvatar(nameOrAddress: string): Promise<null | string>;
|
|
144
|
+
perform(method: string, params: any): Promise<any>;
|
|
145
|
+
_startEvent(event: Event): void;
|
|
146
|
+
_stopEvent(event: Event): void;
|
|
147
|
+
_addEventListener(eventName: EventType, listener: Listener, once: boolean): this;
|
|
148
|
+
on(eventName: EventType, listener: Listener): this;
|
|
149
|
+
once(eventName: EventType, listener: Listener): this;
|
|
150
|
+
emit(eventName: EventType, ...args: Array<any>): boolean;
|
|
151
|
+
listenerCount(eventName?: EventType): number;
|
|
152
|
+
listeners(eventName?: EventType): Array<Listener>;
|
|
153
|
+
off(eventName: EventType, listener?: Listener): this;
|
|
154
|
+
removeAllListeners(eventName?: EventType): this;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=base-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../src.ts/base-provider.ts"],"names":[],"mappings":"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"}
|