@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/lib/index.js
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Formatter = exports.showThrottleMessage = exports.isCommunityResourcable = exports.isCommunityResource = exports.getNetwork = exports.getDefaultProvider = exports.JsonRpcSigner = exports.IpcProvider = exports.WebSocketProvider = exports.Web3Provider = exports.StaticJsonRpcProvider = exports.PocketProvider = exports.NodesmithProvider = exports.JsonRpcBatchProvider = exports.JsonRpcProvider = exports.InfuraWebSocketProvider = exports.InfuraProvider = exports.EtherscanProvider = exports.CloudflareProvider = exports.AnkrProvider = exports.AlchemyWebSocketProvider = exports.AlchemyProvider = exports.FallbackProvider = exports.UrlJsonRpcProvider = exports.Resolver = exports.BaseProvider = exports.Provider = void 0;
|
|
4
|
+
var abstract_provider_1 = require("@qevm/abstract-provider");
|
|
5
|
+
Object.defineProperty(exports, "Provider", { enumerable: true, get: function () { return abstract_provider_1.Provider; } });
|
|
6
|
+
var networks_1 = require("@ethersproject/networks");
|
|
7
|
+
Object.defineProperty(exports, "getNetwork", { enumerable: true, get: function () { return networks_1.getNetwork; } });
|
|
8
|
+
var base_provider_1 = require("./base-provider");
|
|
9
|
+
Object.defineProperty(exports, "BaseProvider", { enumerable: true, get: function () { return base_provider_1.BaseProvider; } });
|
|
10
|
+
Object.defineProperty(exports, "Resolver", { enumerable: true, get: function () { return base_provider_1.Resolver; } });
|
|
11
|
+
var alchemy_provider_1 = require("./alchemy-provider");
|
|
12
|
+
Object.defineProperty(exports, "AlchemyProvider", { enumerable: true, get: function () { return alchemy_provider_1.AlchemyProvider; } });
|
|
13
|
+
Object.defineProperty(exports, "AlchemyWebSocketProvider", { enumerable: true, get: function () { return alchemy_provider_1.AlchemyWebSocketProvider; } });
|
|
14
|
+
var ankr_provider_1 = require("./ankr-provider");
|
|
15
|
+
Object.defineProperty(exports, "AnkrProvider", { enumerable: true, get: function () { return ankr_provider_1.AnkrProvider; } });
|
|
16
|
+
var cloudflare_provider_1 = require("./cloudflare-provider");
|
|
17
|
+
Object.defineProperty(exports, "CloudflareProvider", { enumerable: true, get: function () { return cloudflare_provider_1.CloudflareProvider; } });
|
|
18
|
+
var etherscan_provider_1 = require("./etherscan-provider");
|
|
19
|
+
Object.defineProperty(exports, "EtherscanProvider", { enumerable: true, get: function () { return etherscan_provider_1.EtherscanProvider; } });
|
|
20
|
+
var fallback_provider_1 = require("./fallback-provider");
|
|
21
|
+
Object.defineProperty(exports, "FallbackProvider", { enumerable: true, get: function () { return fallback_provider_1.FallbackProvider; } });
|
|
22
|
+
var ipc_provider_1 = require("./ipc-provider");
|
|
23
|
+
Object.defineProperty(exports, "IpcProvider", { enumerable: true, get: function () { return ipc_provider_1.IpcProvider; } });
|
|
24
|
+
var infura_provider_1 = require("./infura-provider");
|
|
25
|
+
Object.defineProperty(exports, "InfuraProvider", { enumerable: true, get: function () { return infura_provider_1.InfuraProvider; } });
|
|
26
|
+
Object.defineProperty(exports, "InfuraWebSocketProvider", { enumerable: true, get: function () { return infura_provider_1.InfuraWebSocketProvider; } });
|
|
27
|
+
var json_rpc_provider_1 = require("./json-rpc-provider");
|
|
28
|
+
Object.defineProperty(exports, "JsonRpcProvider", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcProvider; } });
|
|
29
|
+
Object.defineProperty(exports, "JsonRpcSigner", { enumerable: true, get: function () { return json_rpc_provider_1.JsonRpcSigner; } });
|
|
30
|
+
var json_rpc_batch_provider_1 = require("./json-rpc-batch-provider");
|
|
31
|
+
Object.defineProperty(exports, "JsonRpcBatchProvider", { enumerable: true, get: function () { return json_rpc_batch_provider_1.JsonRpcBatchProvider; } });
|
|
32
|
+
var nodesmith_provider_1 = require("./nodesmith-provider");
|
|
33
|
+
Object.defineProperty(exports, "NodesmithProvider", { enumerable: true, get: function () { return nodesmith_provider_1.NodesmithProvider; } });
|
|
34
|
+
var pocket_provider_1 = require("./pocket-provider");
|
|
35
|
+
Object.defineProperty(exports, "PocketProvider", { enumerable: true, get: function () { return pocket_provider_1.PocketProvider; } });
|
|
36
|
+
var url_json_rpc_provider_1 = require("./url-json-rpc-provider");
|
|
37
|
+
Object.defineProperty(exports, "StaticJsonRpcProvider", { enumerable: true, get: function () { return url_json_rpc_provider_1.StaticJsonRpcProvider; } });
|
|
38
|
+
Object.defineProperty(exports, "UrlJsonRpcProvider", { enumerable: true, get: function () { return url_json_rpc_provider_1.UrlJsonRpcProvider; } });
|
|
39
|
+
var web3_provider_1 = require("./web3-provider");
|
|
40
|
+
Object.defineProperty(exports, "Web3Provider", { enumerable: true, get: function () { return web3_provider_1.Web3Provider; } });
|
|
41
|
+
var websocket_provider_1 = require("./websocket-provider");
|
|
42
|
+
Object.defineProperty(exports, "WebSocketProvider", { enumerable: true, get: function () { return websocket_provider_1.WebSocketProvider; } });
|
|
43
|
+
var formatter_1 = require("./formatter");
|
|
44
|
+
Object.defineProperty(exports, "Formatter", { enumerable: true, get: function () { return formatter_1.Formatter; } });
|
|
45
|
+
Object.defineProperty(exports, "isCommunityResourcable", { enumerable: true, get: function () { return formatter_1.isCommunityResourcable; } });
|
|
46
|
+
Object.defineProperty(exports, "isCommunityResource", { enumerable: true, get: function () { return formatter_1.isCommunityResource; } });
|
|
47
|
+
Object.defineProperty(exports, "showThrottleMessage", { enumerable: true, get: function () { return formatter_1.showThrottleMessage; } });
|
|
48
|
+
var logger_1 = require("@ethersproject/logger");
|
|
49
|
+
var _version_1 = require("./_version");
|
|
50
|
+
var logger = new logger_1.Logger(_version_1.version);
|
|
51
|
+
////////////////////////
|
|
52
|
+
// Helper Functions
|
|
53
|
+
function getDefaultProvider(network, options) {
|
|
54
|
+
if (network == null) {
|
|
55
|
+
network = "homestead";
|
|
56
|
+
}
|
|
57
|
+
// If passed a URL, figure out the right type of provider based on the scheme
|
|
58
|
+
if (typeof (network) === "string") {
|
|
59
|
+
// @TODO: Add support for IpcProvider; maybe if it ends in ".ipc"?
|
|
60
|
+
// Handle http and ws (and their secure variants)
|
|
61
|
+
var match = network.match(/^(ws|http)s?:/i);
|
|
62
|
+
if (match) {
|
|
63
|
+
switch (match[1].toLowerCase()) {
|
|
64
|
+
case "http":
|
|
65
|
+
case "https":
|
|
66
|
+
return new json_rpc_provider_1.JsonRpcProvider(network);
|
|
67
|
+
case "ws":
|
|
68
|
+
case "wss":
|
|
69
|
+
return new websocket_provider_1.WebSocketProvider(network);
|
|
70
|
+
default:
|
|
71
|
+
logger.throwArgumentError("unsupported URL scheme", "network", network);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
var n = (0, networks_1.getNetwork)(network);
|
|
76
|
+
if (!n || !n._defaultProvider) {
|
|
77
|
+
logger.throwError("unsupported getDefaultProvider network", logger_1.Logger.errors.NETWORK_ERROR, {
|
|
78
|
+
operation: "getDefaultProvider",
|
|
79
|
+
network: network
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return n._defaultProvider({
|
|
83
|
+
FallbackProvider: fallback_provider_1.FallbackProvider,
|
|
84
|
+
AlchemyProvider: alchemy_provider_1.AlchemyProvider,
|
|
85
|
+
AnkrProvider: ankr_provider_1.AnkrProvider,
|
|
86
|
+
CloudflareProvider: cloudflare_provider_1.CloudflareProvider,
|
|
87
|
+
EtherscanProvider: etherscan_provider_1.EtherscanProvider,
|
|
88
|
+
InfuraProvider: infura_provider_1.InfuraProvider,
|
|
89
|
+
JsonRpcProvider: json_rpc_provider_1.JsonRpcProvider,
|
|
90
|
+
NodesmithProvider: nodesmith_provider_1.NodesmithProvider,
|
|
91
|
+
PocketProvider: pocket_provider_1.PocketProvider,
|
|
92
|
+
Web3Provider: web3_provider_1.Web3Provider,
|
|
93
|
+
IpcProvider: ipc_provider_1.IpcProvider,
|
|
94
|
+
}, options);
|
|
95
|
+
}
|
|
96
|
+
exports.getDefaultProvider = getDefaultProvider;
|
|
97
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Network, Networkish } from "@ethersproject/networks";
|
|
2
|
+
import { ConnectionInfo } from "@ethersproject/web";
|
|
3
|
+
import { WebSocketProvider } from "./websocket-provider";
|
|
4
|
+
import { CommunityResourcable } from "./formatter";
|
|
5
|
+
import { UrlJsonRpcProvider } from "./url-json-rpc-provider";
|
|
6
|
+
export declare class InfuraWebSocketProvider extends WebSocketProvider implements CommunityResourcable {
|
|
7
|
+
readonly apiKey: string;
|
|
8
|
+
readonly projectId: string;
|
|
9
|
+
readonly projectSecret: string;
|
|
10
|
+
constructor(network?: Networkish, apiKey?: any);
|
|
11
|
+
isCommunityResource(): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class InfuraProvider extends UrlJsonRpcProvider {
|
|
14
|
+
readonly projectId: string;
|
|
15
|
+
readonly projectSecret: string;
|
|
16
|
+
static getWebSocketProvider(network?: Networkish, apiKey?: any): InfuraWebSocketProvider;
|
|
17
|
+
static getApiKey(apiKey: any): any;
|
|
18
|
+
static getUrl(network: Network, apiKey: any): ConnectionInfo;
|
|
19
|
+
isCommunityResource(): boolean;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=infura-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infura-provider.d.ts","sourceRoot":"","sources":["../src.ts/infura-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,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC;AAMxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,qBAAa,uBAAwB,SAAQ,iBAAkB,YAAW,oBAAoB;IAC1F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAEnB,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG;IAiB9C,mBAAmB,IAAI,OAAO;CAGjC;AAED,qBAAa,cAAe,SAAQ,kBAAkB;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,uBAAuB;IAIxF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IA8BlC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,cAAc;IAwD5D,mBAAmB,IAAI,OAAO;CAGjC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
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.InfuraProvider = exports.InfuraWebSocketProvider = void 0;
|
|
19
|
+
var properties_1 = require("@ethersproject/properties");
|
|
20
|
+
var websocket_provider_1 = require("./websocket-provider");
|
|
21
|
+
var formatter_1 = require("./formatter");
|
|
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
|
+
var defaultProjectId = "84842078b09946638c03157f83405213";
|
|
27
|
+
var InfuraWebSocketProvider = /** @class */ (function (_super) {
|
|
28
|
+
__extends(InfuraWebSocketProvider, _super);
|
|
29
|
+
function InfuraWebSocketProvider(network, apiKey) {
|
|
30
|
+
var _this = this;
|
|
31
|
+
var provider = new InfuraProvider(network, apiKey);
|
|
32
|
+
var connection = provider.connection;
|
|
33
|
+
if (connection.password) {
|
|
34
|
+
logger.throwError("INFURA WebSocket project secrets unsupported", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
|
|
35
|
+
operation: "InfuraProvider.getWebSocketProvider()"
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
var url = connection.url.replace(/^http/i, "ws").replace("/v3/", "/ws/v3/");
|
|
39
|
+
_this = _super.call(this, url, network) || this;
|
|
40
|
+
(0, properties_1.defineReadOnly)(_this, "apiKey", provider.projectId);
|
|
41
|
+
(0, properties_1.defineReadOnly)(_this, "projectId", provider.projectId);
|
|
42
|
+
(0, properties_1.defineReadOnly)(_this, "projectSecret", provider.projectSecret);
|
|
43
|
+
return _this;
|
|
44
|
+
}
|
|
45
|
+
InfuraWebSocketProvider.prototype.isCommunityResource = function () {
|
|
46
|
+
return (this.projectId === defaultProjectId);
|
|
47
|
+
};
|
|
48
|
+
return InfuraWebSocketProvider;
|
|
49
|
+
}(websocket_provider_1.WebSocketProvider));
|
|
50
|
+
exports.InfuraWebSocketProvider = InfuraWebSocketProvider;
|
|
51
|
+
var InfuraProvider = /** @class */ (function (_super) {
|
|
52
|
+
__extends(InfuraProvider, _super);
|
|
53
|
+
function InfuraProvider() {
|
|
54
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
55
|
+
}
|
|
56
|
+
InfuraProvider.getWebSocketProvider = function (network, apiKey) {
|
|
57
|
+
return new InfuraWebSocketProvider(network, apiKey);
|
|
58
|
+
};
|
|
59
|
+
InfuraProvider.getApiKey = function (apiKey) {
|
|
60
|
+
var apiKeyObj = {
|
|
61
|
+
apiKey: defaultProjectId,
|
|
62
|
+
projectId: defaultProjectId,
|
|
63
|
+
projectSecret: null
|
|
64
|
+
};
|
|
65
|
+
if (apiKey == null) {
|
|
66
|
+
return apiKeyObj;
|
|
67
|
+
}
|
|
68
|
+
if (typeof (apiKey) === "string") {
|
|
69
|
+
apiKeyObj.projectId = apiKey;
|
|
70
|
+
}
|
|
71
|
+
else if (apiKey.projectSecret != null) {
|
|
72
|
+
logger.assertArgument((typeof (apiKey.projectId) === "string"), "projectSecret requires a projectId", "projectId", apiKey.projectId);
|
|
73
|
+
logger.assertArgument((typeof (apiKey.projectSecret) === "string"), "invalid projectSecret", "projectSecret", "[REDACTED]");
|
|
74
|
+
apiKeyObj.projectId = apiKey.projectId;
|
|
75
|
+
apiKeyObj.projectSecret = apiKey.projectSecret;
|
|
76
|
+
}
|
|
77
|
+
else if (apiKey.projectId) {
|
|
78
|
+
apiKeyObj.projectId = apiKey.projectId;
|
|
79
|
+
}
|
|
80
|
+
apiKeyObj.apiKey = apiKeyObj.projectId;
|
|
81
|
+
return apiKeyObj;
|
|
82
|
+
};
|
|
83
|
+
InfuraProvider.getUrl = function (network, apiKey) {
|
|
84
|
+
var host = null;
|
|
85
|
+
switch (network ? network.name : "unknown") {
|
|
86
|
+
case "homestead":
|
|
87
|
+
host = "mainnet.infura.io";
|
|
88
|
+
break;
|
|
89
|
+
case "goerli":
|
|
90
|
+
host = "goerli.infura.io";
|
|
91
|
+
break;
|
|
92
|
+
case "sepolia":
|
|
93
|
+
host = "sepolia.infura.io";
|
|
94
|
+
break;
|
|
95
|
+
case "matic":
|
|
96
|
+
host = "polygon-mainnet.infura.io";
|
|
97
|
+
break;
|
|
98
|
+
case "maticmum":
|
|
99
|
+
host = "polygon-mumbai.infura.io";
|
|
100
|
+
break;
|
|
101
|
+
case "optimism":
|
|
102
|
+
host = "optimism-mainnet.infura.io";
|
|
103
|
+
break;
|
|
104
|
+
case "optimism-goerli":
|
|
105
|
+
host = "optimism-goerli.infura.io";
|
|
106
|
+
break;
|
|
107
|
+
case "arbitrum":
|
|
108
|
+
host = "arbitrum-mainnet.infura.io";
|
|
109
|
+
break;
|
|
110
|
+
case "arbitrum-goerli":
|
|
111
|
+
host = "arbitrum-goerli.infura.io";
|
|
112
|
+
break;
|
|
113
|
+
default:
|
|
114
|
+
logger.throwError("unsupported network", logger_1.Logger.errors.INVALID_ARGUMENT, {
|
|
115
|
+
argument: "network",
|
|
116
|
+
value: network
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
var connection = {
|
|
120
|
+
allowGzip: true,
|
|
121
|
+
url: ("https:/" + "/" + host + "/v3/" + apiKey.projectId),
|
|
122
|
+
throttleCallback: function (attempt, url) {
|
|
123
|
+
if (apiKey.projectId === defaultProjectId) {
|
|
124
|
+
(0, formatter_1.showThrottleMessage)();
|
|
125
|
+
}
|
|
126
|
+
return Promise.resolve(true);
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
if (apiKey.projectSecret != null) {
|
|
130
|
+
connection.user = "";
|
|
131
|
+
connection.password = apiKey.projectSecret;
|
|
132
|
+
}
|
|
133
|
+
return connection;
|
|
134
|
+
};
|
|
135
|
+
InfuraProvider.prototype.isCommunityResource = function () {
|
|
136
|
+
return (this.projectId === defaultProjectId);
|
|
137
|
+
};
|
|
138
|
+
return InfuraProvider;
|
|
139
|
+
}(url_json_rpc_provider_1.UrlJsonRpcProvider));
|
|
140
|
+
exports.InfuraProvider = InfuraProvider;
|
|
141
|
+
//# sourceMappingURL=infura-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infura-provider.js","sourceRoot":"","sources":["../src.ts/infura-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Networkish } from "@ethersproject/networks";
|
|
2
|
+
import { JsonRpcProvider } from "./json-rpc-provider";
|
|
3
|
+
export declare class IpcProvider extends JsonRpcProvider {
|
|
4
|
+
readonly path: string;
|
|
5
|
+
constructor(path: string, network?: Networkish);
|
|
6
|
+
send(method: string, params: Array<any>): Promise<any>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=ipc-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-provider.d.ts","sourceRoot":"","sources":["../src.ts/ipc-provider.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAMrD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,qBAAa,WAAY,SAAQ,eAAe;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU;IAY9C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CA0CzD"}
|
|
@@ -0,0 +1,77 @@
|
|
|
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.IpcProvider = void 0;
|
|
19
|
+
var net_1 = require("net");
|
|
20
|
+
var properties_1 = require("@ethersproject/properties");
|
|
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 json_rpc_provider_1 = require("./json-rpc-provider");
|
|
25
|
+
var IpcProvider = /** @class */ (function (_super) {
|
|
26
|
+
__extends(IpcProvider, _super);
|
|
27
|
+
function IpcProvider(path, network) {
|
|
28
|
+
var _this = this;
|
|
29
|
+
if (path == null) {
|
|
30
|
+
logger.throwError("missing path", logger_1.Logger.errors.MISSING_ARGUMENT, { arg: "path" });
|
|
31
|
+
}
|
|
32
|
+
_this = _super.call(this, "ipc://" + path, network) || this;
|
|
33
|
+
(0, properties_1.defineReadOnly)(_this, "path", path);
|
|
34
|
+
return _this;
|
|
35
|
+
}
|
|
36
|
+
// @TODO: Create a connection to the IPC path and use filters instead of polling for block
|
|
37
|
+
IpcProvider.prototype.send = function (method, params) {
|
|
38
|
+
// This method is very simple right now. We create a new socket
|
|
39
|
+
// connection each time, which may be slower, but the main
|
|
40
|
+
// advantage we are aiming for now is security. This simplifies
|
|
41
|
+
// multiplexing requests (since we do not need to multiplex).
|
|
42
|
+
var _this = this;
|
|
43
|
+
var payload = JSON.stringify({
|
|
44
|
+
method: method,
|
|
45
|
+
params: params,
|
|
46
|
+
id: 42,
|
|
47
|
+
jsonrpc: "2.0"
|
|
48
|
+
});
|
|
49
|
+
return new Promise(function (resolve, reject) {
|
|
50
|
+
var response = Buffer.alloc(0);
|
|
51
|
+
var stream = (0, net_1.connect)(_this.path);
|
|
52
|
+
stream.on("data", function (data) {
|
|
53
|
+
response = Buffer.concat([response, data]);
|
|
54
|
+
});
|
|
55
|
+
stream.on("end", function () {
|
|
56
|
+
try {
|
|
57
|
+
resolve(JSON.parse(response.toString()).result);
|
|
58
|
+
// @TODO: Better pull apart the error
|
|
59
|
+
stream.destroy();
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
reject(error);
|
|
63
|
+
stream.destroy();
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
stream.on("error", function (error) {
|
|
67
|
+
reject(error);
|
|
68
|
+
stream.destroy();
|
|
69
|
+
});
|
|
70
|
+
stream.write(payload);
|
|
71
|
+
stream.end();
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
return IpcProvider;
|
|
75
|
+
}(json_rpc_provider_1.JsonRpcProvider));
|
|
76
|
+
exports.IpcProvider = IpcProvider;
|
|
77
|
+
//# sourceMappingURL=ipc-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ipc-provider.js","sourceRoot":"","sources":["../src.ts/ipc-provider.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;AAEb,2BAA8B;AAE9B,wDAA2D;AAG3D,gDAA+C;AAC/C,uCAAqC;AACrC,IAAM,MAAM,GAAG,IAAI,eAAM,CAAC,kBAAO,CAAC,CAAC;AAEnC,yDAAsD;AAGtD;IAAiC,+BAAe;IAG5C,qBAAY,IAAY,EAAE,OAAoB;QAA9C,iBAQC;QAPG,IAAI,IAAI,IAAI,IAAI,EAAE;YACd,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,eAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;SACtF;QAED,QAAA,kBAAM,QAAQ,GAAG,IAAI,EAAE,OAAO,CAAC,SAAC;QAEhC,IAAA,2BAAc,EAAC,KAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;;IACvC,CAAC;IAED,0FAA0F;IAE1F,0BAAI,GAAJ,UAAK,MAAc,EAAE,MAAkB;QACnC,+DAA+D;QAC/D,0DAA0D;QAC1D,+DAA+D;QAC/D,6DAA6D;QAJjE,iBAyCC;QAnCG,IAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YACzB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,EAAE;YACN,OAAO,EAAE,KAAK;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YAC/B,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,MAAM,GAAG,IAAA,aAAO,EAAC,KAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,IAAI;gBACnB,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAE,QAAQ,EAAE,IAAI,CAAE,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;gBACb,IAAI;oBACA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;oBAChD,qCAAqC;oBACrC,MAAM,CAAC,OAAO,EAAE,CAAC;iBACpB;gBAAC,OAAO,KAAK,EAAE;oBACZ,MAAM,CAAC,KAAK,CAAC,CAAC;oBACd,MAAM,CAAC,OAAO,EAAE,CAAC;iBACpB;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,KAAK;gBACrB,MAAM,CAAC,KAAK,CAAC,CAAC;gBACd,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC,CAAC,CAAC;IACP,CAAC;IACL,kBAAC;AAAD,CAAC,AAzDD,CAAiC,mCAAe,GAyD/C;AAzDY,kCAAW"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { JsonRpcProvider } from "./json-rpc-provider";
|
|
3
|
+
export declare class JsonRpcBatchProvider extends JsonRpcProvider {
|
|
4
|
+
_pendingBatchAggregator: NodeJS.Timer;
|
|
5
|
+
_pendingBatch: Array<{
|
|
6
|
+
request: {
|
|
7
|
+
method: string;
|
|
8
|
+
params: Array<any>;
|
|
9
|
+
id: number;
|
|
10
|
+
jsonrpc: "2.0";
|
|
11
|
+
};
|
|
12
|
+
resolve: (result: any) => void;
|
|
13
|
+
reject: (error: Error) => void;
|
|
14
|
+
}>;
|
|
15
|
+
send(method: string, params: Array<any>): Promise<any>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=json-rpc-batch-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc-batch-provider.d.ts","sourceRoot":"","sources":["../src.ts/json-rpc-batch-provider.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,qBAAa,oBAAqB,SAAQ,eAAe;IACrD,uBAAuB,EAAE,MAAM,CAAC,KAAK,CAAC;IACtC,aAAa,EAAE,KAAK,CAAC;QACjB,OAAO,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,KAAK,CAAA;SAAE,CAAC;QAC5E,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;QAC/B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;KACjC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC;CAgFzD"}
|
|
@@ -0,0 +1,99 @@
|
|
|
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.JsonRpcBatchProvider = void 0;
|
|
19
|
+
var properties_1 = require("@ethersproject/properties");
|
|
20
|
+
var web_1 = require("@ethersproject/web");
|
|
21
|
+
var json_rpc_provider_1 = require("./json-rpc-provider");
|
|
22
|
+
// Experimental
|
|
23
|
+
var JsonRpcBatchProvider = /** @class */ (function (_super) {
|
|
24
|
+
__extends(JsonRpcBatchProvider, _super);
|
|
25
|
+
function JsonRpcBatchProvider() {
|
|
26
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
27
|
+
}
|
|
28
|
+
JsonRpcBatchProvider.prototype.send = function (method, params) {
|
|
29
|
+
var _this = this;
|
|
30
|
+
var request = {
|
|
31
|
+
method: method,
|
|
32
|
+
params: params,
|
|
33
|
+
id: (this._nextId++),
|
|
34
|
+
jsonrpc: "2.0"
|
|
35
|
+
};
|
|
36
|
+
if (this._pendingBatch == null) {
|
|
37
|
+
this._pendingBatch = [];
|
|
38
|
+
}
|
|
39
|
+
var inflightRequest = { request: request, resolve: null, reject: null };
|
|
40
|
+
var promise = new Promise(function (resolve, reject) {
|
|
41
|
+
inflightRequest.resolve = resolve;
|
|
42
|
+
inflightRequest.reject = reject;
|
|
43
|
+
});
|
|
44
|
+
this._pendingBatch.push(inflightRequest);
|
|
45
|
+
if (!this._pendingBatchAggregator) {
|
|
46
|
+
// Schedule batch for next event loop + short duration
|
|
47
|
+
this._pendingBatchAggregator = setTimeout(function () {
|
|
48
|
+
// Get teh current batch and clear it, so new requests
|
|
49
|
+
// go into the next batch
|
|
50
|
+
var batch = _this._pendingBatch;
|
|
51
|
+
_this._pendingBatch = null;
|
|
52
|
+
_this._pendingBatchAggregator = null;
|
|
53
|
+
// Get the request as an array of requests
|
|
54
|
+
var request = batch.map(function (inflight) { return inflight.request; });
|
|
55
|
+
_this.emit("debug", {
|
|
56
|
+
action: "requestBatch",
|
|
57
|
+
request: (0, properties_1.deepCopy)(request),
|
|
58
|
+
provider: _this
|
|
59
|
+
});
|
|
60
|
+
return (0, web_1.fetchJson)(_this.connection, JSON.stringify(request)).then(function (result) {
|
|
61
|
+
_this.emit("debug", {
|
|
62
|
+
action: "response",
|
|
63
|
+
request: request,
|
|
64
|
+
response: result,
|
|
65
|
+
provider: _this
|
|
66
|
+
});
|
|
67
|
+
// For each result, feed it to the correct Promise, depending
|
|
68
|
+
// on whether it was a success or error
|
|
69
|
+
batch.forEach(function (inflightRequest, index) {
|
|
70
|
+
var payload = result[index];
|
|
71
|
+
if (payload.error) {
|
|
72
|
+
var error = new Error(payload.error.message);
|
|
73
|
+
error.code = payload.error.code;
|
|
74
|
+
error.data = payload.error.data;
|
|
75
|
+
inflightRequest.reject(error);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
inflightRequest.resolve(payload.result);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}, function (error) {
|
|
82
|
+
_this.emit("debug", {
|
|
83
|
+
action: "response",
|
|
84
|
+
error: error,
|
|
85
|
+
request: request,
|
|
86
|
+
provider: _this
|
|
87
|
+
});
|
|
88
|
+
batch.forEach(function (inflightRequest) {
|
|
89
|
+
inflightRequest.reject(error);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
}, 10);
|
|
93
|
+
}
|
|
94
|
+
return promise;
|
|
95
|
+
};
|
|
96
|
+
return JsonRpcBatchProvider;
|
|
97
|
+
}(json_rpc_provider_1.JsonRpcProvider));
|
|
98
|
+
exports.JsonRpcBatchProvider = JsonRpcBatchProvider;
|
|
99
|
+
//# sourceMappingURL=json-rpc-batch-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc-batch-provider.js","sourceRoot":"","sources":["../src.ts/json-rpc-batch-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Provider, TransactionRequest, TransactionResponse } from "@qevm/abstract-provider";
|
|
2
|
+
import { Signer, TypedDataDomain, TypedDataField, TypedDataSigner } from "@qevm/abstract-signer";
|
|
3
|
+
import { Bytes } from "@qevm/bytes";
|
|
4
|
+
import { Network, Networkish } from "@ethersproject/networks";
|
|
5
|
+
import { Deferrable } from "@ethersproject/properties";
|
|
6
|
+
import { AccessList } from "@qevm/transactions";
|
|
7
|
+
import { ConnectionInfo } from "@ethersproject/web";
|
|
8
|
+
import { BaseProvider, Event } from "./base-provider";
|
|
9
|
+
export declare class JsonRpcSigner extends Signer implements TypedDataSigner {
|
|
10
|
+
readonly provider: JsonRpcProvider;
|
|
11
|
+
_index: number;
|
|
12
|
+
_address: string;
|
|
13
|
+
constructor(constructorGuard: any, provider: JsonRpcProvider, addressOrIndex?: string | number);
|
|
14
|
+
connect(provider: Provider): JsonRpcSigner;
|
|
15
|
+
connectUnchecked(): JsonRpcSigner;
|
|
16
|
+
getAddress(): Promise<string>;
|
|
17
|
+
sendUncheckedTransaction(transaction: Deferrable<TransactionRequest>): Promise<string>;
|
|
18
|
+
signTransaction(transaction: Deferrable<TransactionRequest>): Promise<string>;
|
|
19
|
+
sendTransaction(transaction: Deferrable<TransactionRequest>): Promise<TransactionResponse>;
|
|
20
|
+
signMessage(message: Bytes | string): Promise<string>;
|
|
21
|
+
_legacySignMessage(message: Bytes | string): Promise<string>;
|
|
22
|
+
_signTypedData(domain: TypedDataDomain, types: Record<string, Array<TypedDataField>>, value: Record<string, any>): Promise<string>;
|
|
23
|
+
unlock(password: string): Promise<boolean>;
|
|
24
|
+
}
|
|
25
|
+
declare class UncheckedJsonRpcSigner extends JsonRpcSigner {
|
|
26
|
+
sendTransaction(transaction: Deferrable<TransactionRequest>): Promise<TransactionResponse>;
|
|
27
|
+
}
|
|
28
|
+
export declare class JsonRpcProvider extends BaseProvider {
|
|
29
|
+
readonly connection: ConnectionInfo;
|
|
30
|
+
_pendingFilter: Promise<number>;
|
|
31
|
+
_nextId: number;
|
|
32
|
+
_eventLoopCache: Record<string, Promise<any>>;
|
|
33
|
+
get _cache(): Record<string, Promise<any>>;
|
|
34
|
+
constructor(url?: ConnectionInfo | string, network?: Networkish);
|
|
35
|
+
static defaultUrl(): string;
|
|
36
|
+
detectNetwork(): Promise<Network>;
|
|
37
|
+
_uncachedDetectNetwork(): Promise<Network>;
|
|
38
|
+
getSigner(addressOrIndex?: string | number): JsonRpcSigner;
|
|
39
|
+
getUncheckedSigner(addressOrIndex?: string | number): UncheckedJsonRpcSigner;
|
|
40
|
+
listAccounts(): Promise<Array<string>>;
|
|
41
|
+
send(method: string, params: Array<any>): Promise<any>;
|
|
42
|
+
prepareRequest(method: string, params: any): [string, Array<any>];
|
|
43
|
+
perform(method: string, params: any): Promise<any>;
|
|
44
|
+
_startEvent(event: Event): void;
|
|
45
|
+
_startPending(): void;
|
|
46
|
+
_stopEvent(event: Event): void;
|
|
47
|
+
static hexlifyTransaction(transaction: TransactionRequest, allowExtra?: {
|
|
48
|
+
[key: string]: boolean;
|
|
49
|
+
}): {
|
|
50
|
+
[key: string]: string | AccessList;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=json-rpc-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc-provider.d.ts","sourceRoot":"","sources":["../src.ts/json-rpc-provider.ts"],"names":[],"mappings":"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"}
|