@lidofinance/eth-providers 0.0.3

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/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # @lidofinance/eth-providers
2
+
3
+ Introduces StaticJsonRpcBatchProvider and providers factory
4
+
5
+ ## Installation
6
+
7
+ `yarn add @lidofinance/eth-providers`.
8
+
9
+ ## Getting started
10
+
11
+ ```ts
12
+ import {
13
+ providerFactory,
14
+ StaticJsonRpcBatchProvider,
15
+ } from '@lidofinance/eth-providers';
16
+
17
+ export const getStaticRpcBatchProvider = providerFactory(
18
+ StaticJsonRpcBatchProvider,
19
+ );
20
+ ```
package/dist/index.cjs ADDED
@@ -0,0 +1,74 @@
1
+ var $cMVFq$ethersprojectproviders = require("@ethersproject/providers");
2
+ var $cMVFq$ethersprojectproperties = require("@ethersproject/properties");
3
+ var $cMVFq$ethersprojectlogger = require("@ethersproject/logger");
4
+
5
+ function $parcel$exportWildcard(dest, source) {
6
+ Object.keys(source).forEach(function(key) {
7
+ if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
8
+ return;
9
+ }
10
+
11
+ Object.defineProperty(dest, key, {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return source[key];
15
+ }
16
+ });
17
+ });
18
+
19
+ return dest;
20
+ }
21
+ function $parcel$export(e, n, v, s) {
22
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
23
+ }
24
+ var $31ceaba192d1edd2$exports = {};
25
+
26
+ $parcel$export($31ceaba192d1edd2$exports, "providerFactory", function () { return $31ceaba192d1edd2$export$93e73268b9641cdd; });
27
+ const $31ceaba192d1edd2$export$93e73268b9641cdd = (Provider)=>{
28
+ const cache = new Map();
29
+ return (chainId, url, cacheSeed = 0, pollingInterval = null)=>{
30
+ const cacheKey = `${chainId}-${cacheSeed}-${url}`;
31
+ let provider = cache.get(cacheKey);
32
+ if (!provider) {
33
+ provider = new Provider(url, chainId);
34
+ cache.set(cacheKey, provider);
35
+ }
36
+ if (pollingInterval) provider.pollingInterval = pollingInterval;
37
+ return provider;
38
+ };
39
+ };
40
+
41
+
42
+ var $a423fee1464d5e50$exports = {};
43
+
44
+ $parcel$export($a423fee1464d5e50$exports, "StaticJsonRpcBatchProvider", function () { return $a423fee1464d5e50$export$ca0c31cef0d9d616; });
45
+
46
+
47
+
48
+ /*
49
+ * Based on
50
+ * https://github.com/ethers-io/ethers.js/blob/master/packages/providers/src.ts/url-json-rpc-provider.ts#L28
51
+ */ const $a423fee1464d5e50$var$logger = new (0, $cMVFq$ethersprojectlogger.Logger)("StaticJsonRpcBatchProvider/1.0");
52
+ class $a423fee1464d5e50$export$ca0c31cef0d9d616 extends (0, $cMVFq$ethersprojectproviders.JsonRpcBatchProvider) {
53
+ async detectNetwork() {
54
+ let network = this.network;
55
+ if (network == null) {
56
+ network = await super.detectNetwork();
57
+ if (!network) $a423fee1464d5e50$var$logger.throwError("no network detected", (0, $cMVFq$ethersprojectlogger.Logger).errors.UNKNOWN_ERROR, {});
58
+ // If still not set, set it
59
+ if (this._network == null) {
60
+ // A static network does not support "any"
61
+ (0, $cMVFq$ethersprojectproperties.defineReadOnly)(this, "_network", network);
62
+ this.emit("network", network, null);
63
+ }
64
+ }
65
+ return network;
66
+ }
67
+ }
68
+
69
+
70
+ $parcel$exportWildcard(module.exports, $31ceaba192d1edd2$exports);
71
+ $parcel$exportWildcard(module.exports, $a423fee1464d5e50$exports);
72
+
73
+
74
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;ACEO,MAAM,yCAAe,GAAG,CAAmC,QAAW,GAAK;IAChF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B;IAEhD,OAAO,CACL,OAAwB,EACxB,GAAW,EACX,SAAS,GAAG,CAAC,EACb,eAA8B,GAAG,IAAI,GACjB;QACpB,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,AAAmB;YACxD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC9B;QAED,IAAI,eAAe,EACjB,QAAQ,CAAC,eAAe,GAAG,eAAe;QAG5C,OAAO,QAAQ,CAAA;KAChB,CAAA;CACF;;ADzBD;;;;AEAA;;;AAKA;;;GAGG,CAEH,MAAM,4BAAM,GAAG,IAAI,CAAA,GAAA,iCAAM,CAAA,CAAC,gCAAgC,CAAC;AAEpD,MAAM,yCAA0B,SAAS,CAAA,GAAA,kDAAoB,CAAA;IAClE,MAAM,aAAa,GAAqB;QACtC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;QAC1B,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;YAErC,IAAI,CAAC,OAAO,EACV,4BAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAA,GAAA,iCAAM,CAAA,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YAG3E,2BAA2B;YAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACzB,0CAA0C;gBAC1C,CAAA,GAAA,6CAAc,CAAA,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;gBAEzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;aACpC;SACF;QACD,OAAO,OAAO,CAAA;KACf;CACF;","sources":["packages/eth/core/providers/src/index.ts","packages/eth/core/providers/src/providerFactory.ts","packages/eth/core/providers/src/staticJsonRpcBatchProvider.ts"],"sourcesContent":["export * from './providerFactory'\nexport * from './staticJsonRpcBatchProvider'\n","import { JsonRpcProvider } from '@ethersproject/providers'\n\nexport const providerFactory = <P extends typeof JsonRpcProvider>(Provider: P) => {\n const cache = new Map<string, InstanceType<P>>()\n\n return (\n chainId: string | number,\n url: string,\n cacheSeed = 0,\n pollingInterval: number | null = null,\n ): InstanceType<P> => {\n const cacheKey = `${chainId}-${cacheSeed}-${url}`\n let provider = cache.get(cacheKey)\n\n if (!provider) {\n provider = new Provider(url, chainId) as InstanceType<P>\n cache.set(cacheKey, provider)\n }\n\n if (pollingInterval) {\n provider.pollingInterval = pollingInterval\n }\n\n return provider\n }\n}\n","import { JsonRpcBatchProvider } from '@ethersproject/providers'\nimport type { Network } from '@ethersproject/networks'\nimport { defineReadOnly } from '@ethersproject/properties'\nimport { Logger } from '@ethersproject/logger'\n\n/*\n * Based on\n * https://github.com/ethers-io/ethers.js/blob/master/packages/providers/src.ts/url-json-rpc-provider.ts#L28\n */\n\nconst logger = new Logger('StaticJsonRpcBatchProvider/1.0')\n\nexport class StaticJsonRpcBatchProvider extends JsonRpcBatchProvider {\n async detectNetwork(): Promise<Network> {\n let network = this.network\n if (network == null) {\n network = await super.detectNetwork()\n\n if (!network) {\n logger.throwError('no network detected', Logger.errors.UNKNOWN_ERROR, {})\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, '_network', network)\n\n this.emit('network', network, null)\n }\n }\n return network\n }\n}\n"],"names":[],"version":3,"file":"index.cjs.map"}
@@ -0,0 +1,8 @@
1
+ import { JsonRpcProvider, JsonRpcBatchProvider } from "@ethersproject/providers";
2
+ import { Network } from "@ethersproject/networks";
3
+ export const providerFactory: <P extends typeof JsonRpcProvider>(Provider: P) => (chainId: string | number, url: string, cacheSeed?: number, pollingInterval?: number | null) => InstanceType<P>;
4
+ export class StaticJsonRpcBatchProvider extends JsonRpcBatchProvider {
5
+ detectNetwork(): Promise<Network>;
6
+ }
7
+
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"mappings":";;AAEA,OAAO,MAAM,8EAIA,MAAM,GAAG,MAAM,OACnB,MAAM,wCAEM,MAAM,GAAG,IAAI,oBAgBjC,CAAA;ACbD,uCAAwC,SAAQ,oBAAoB;IAC5D,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;CAmBxC","sources":["packages/eth/core/providers/src/src/providerFactory.ts","packages/eth/core/providers/src/src/staticJsonRpcBatchProvider.ts","packages/eth/core/providers/src/src/index.ts","packages/eth/core/providers/src/index.ts"],"sourcesContent":[null,null,null,"export * from './providerFactory'\nexport * from './staticJsonRpcBatchProvider'\n"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.mjs ADDED
@@ -0,0 +1,57 @@
1
+ import {JsonRpcBatchProvider as $j8Cpq$JsonRpcBatchProvider} from "@ethersproject/providers";
2
+ import {defineReadOnly as $j8Cpq$defineReadOnly} from "@ethersproject/properties";
3
+ import {Logger as $j8Cpq$Logger} from "@ethersproject/logger";
4
+
5
+ function $parcel$export(e, n, v, s) {
6
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
7
+ }
8
+ var $ec9d59749370af5e$exports = {};
9
+
10
+ $parcel$export($ec9d59749370af5e$exports, "providerFactory", function () { return $ec9d59749370af5e$export$93e73268b9641cdd; });
11
+ const $ec9d59749370af5e$export$93e73268b9641cdd = (Provider)=>{
12
+ const cache = new Map();
13
+ return (chainId, url, cacheSeed = 0, pollingInterval = null)=>{
14
+ const cacheKey = `${chainId}-${cacheSeed}-${url}`;
15
+ let provider = cache.get(cacheKey);
16
+ if (!provider) {
17
+ provider = new Provider(url, chainId);
18
+ cache.set(cacheKey, provider);
19
+ }
20
+ if (pollingInterval) provider.pollingInterval = pollingInterval;
21
+ return provider;
22
+ };
23
+ };
24
+
25
+
26
+ var $258fa24ca038aa82$exports = {};
27
+
28
+ $parcel$export($258fa24ca038aa82$exports, "StaticJsonRpcBatchProvider", function () { return $258fa24ca038aa82$export$ca0c31cef0d9d616; });
29
+
30
+
31
+
32
+ /*
33
+ * Based on
34
+ * https://github.com/ethers-io/ethers.js/blob/master/packages/providers/src.ts/url-json-rpc-provider.ts#L28
35
+ */ const $258fa24ca038aa82$var$logger = new (0, $j8Cpq$Logger)("StaticJsonRpcBatchProvider/1.0");
36
+ class $258fa24ca038aa82$export$ca0c31cef0d9d616 extends (0, $j8Cpq$JsonRpcBatchProvider) {
37
+ async detectNetwork() {
38
+ let network = this.network;
39
+ if (network == null) {
40
+ network = await super.detectNetwork();
41
+ if (!network) $258fa24ca038aa82$var$logger.throwError("no network detected", (0, $j8Cpq$Logger).errors.UNKNOWN_ERROR, {});
42
+ // If still not set, set it
43
+ if (this._network == null) {
44
+ // A static network does not support "any"
45
+ (0, $j8Cpq$defineReadOnly)(this, "_network", network);
46
+ this.emit("network", network, null);
47
+ }
48
+ }
49
+ return network;
50
+ }
51
+ }
52
+
53
+
54
+
55
+
56
+ export {$ec9d59749370af5e$export$93e73268b9641cdd as providerFactory, $258fa24ca038aa82$export$ca0c31cef0d9d616 as StaticJsonRpcBatchProvider};
57
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;;;;;;ACEO,MAAM,yCAAe,GAAG,CAAmC,QAAW,GAAK;IAChF,MAAM,KAAK,GAAG,IAAI,GAAG,EAA2B;IAEhD,OAAO,CACL,OAAwB,EACxB,GAAW,EACX,SAAS,GAAG,CAAC,EACb,eAA8B,GAAG,IAAI,GACjB;QACpB,MAAM,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACjD,IAAI,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;QAElC,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,AAAmB;YACxD,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC9B;QAED,IAAI,eAAe,EACjB,QAAQ,CAAC,eAAe,GAAG,eAAe;QAG5C,OAAO,QAAQ,CAAA;KAChB,CAAA;CACF;;ADzBD;;;;AEAA;;;AAKA;;;GAGG,CAEH,MAAM,4BAAM,GAAG,IAAI,CAAA,GAAA,aAAM,CAAA,CAAC,gCAAgC,CAAC;AAEpD,MAAM,yCAA0B,SAAS,CAAA,GAAA,2BAAoB,CAAA;IAClE,MAAM,aAAa,GAAqB;QACtC,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO;QAC1B,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,GAAG,MAAM,KAAK,CAAC,aAAa,EAAE;YAErC,IAAI,CAAC,OAAO,EACV,4BAAM,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAA,GAAA,aAAM,CAAA,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC;YAG3E,2BAA2B;YAC3B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACzB,0CAA0C;gBAC1C,CAAA,GAAA,qBAAc,CAAA,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC;gBAEzC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC;aACpC;SACF;QACD,OAAO,OAAO,CAAA;KACf;CACF;","sources":["packages/eth/core/providers/src/index.ts","packages/eth/core/providers/src/providerFactory.ts","packages/eth/core/providers/src/staticJsonRpcBatchProvider.ts"],"sourcesContent":["export * from './providerFactory'\nexport * from './staticJsonRpcBatchProvider'\n","import { JsonRpcProvider } from '@ethersproject/providers'\n\nexport const providerFactory = <P extends typeof JsonRpcProvider>(Provider: P) => {\n const cache = new Map<string, InstanceType<P>>()\n\n return (\n chainId: string | number,\n url: string,\n cacheSeed = 0,\n pollingInterval: number | null = null,\n ): InstanceType<P> => {\n const cacheKey = `${chainId}-${cacheSeed}-${url}`\n let provider = cache.get(cacheKey)\n\n if (!provider) {\n provider = new Provider(url, chainId) as InstanceType<P>\n cache.set(cacheKey, provider)\n }\n\n if (pollingInterval) {\n provider.pollingInterval = pollingInterval\n }\n\n return provider\n }\n}\n","import { JsonRpcBatchProvider } from '@ethersproject/providers'\nimport type { Network } from '@ethersproject/networks'\nimport { defineReadOnly } from '@ethersproject/properties'\nimport { Logger } from '@ethersproject/logger'\n\n/*\n * Based on\n * https://github.com/ethers-io/ethers.js/blob/master/packages/providers/src.ts/url-json-rpc-provider.ts#L28\n */\n\nconst logger = new Logger('StaticJsonRpcBatchProvider/1.0')\n\nexport class StaticJsonRpcBatchProvider extends JsonRpcBatchProvider {\n async detectNetwork(): Promise<Network> {\n let network = this.network\n if (network == null) {\n network = await super.detectNetwork()\n\n if (!network) {\n logger.throwError('no network detected', Logger.errors.UNKNOWN_ERROR, {})\n }\n\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, '_network', network)\n\n this.emit('network', network, null)\n }\n }\n return network\n }\n}\n"],"names":[],"version":3,"file":"index.mjs.map"}
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@lidofinance/eth-providers",
3
+ "description": "Introduces StaticJsonRpcBatchProvider and providers factory",
4
+ "repository": "git@github.com:lidofinance/lido-ui-blocks.git",
5
+ "license": "MIT",
6
+ "version": "0.0.3",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "engines": {
11
+ "node": ">= 16",
12
+ "browsers": "> 0.5%, last 2 versions, not dead"
13
+ },
14
+ "source": "./src/index.ts",
15
+ "main": "dist/index.cjs",
16
+ "module": "dist/index.mjs",
17
+ "types": "dist/index.d.ts",
18
+ "scripts": {
19
+ "build": "parcel build",
20
+ "format": "prettier --check src",
21
+ "format:fix": "yarn format --write",
22
+ "types": "tsc --noEmit",
23
+ "test": "jest"
24
+ },
25
+ "peerDependencies": {
26
+ "@ethersproject/logger": "^5.5.2",
27
+ "@ethersproject/networks": "^5.5.0",
28
+ "@ethersproject/properties": "^5.5.0",
29
+ "@ethersproject/providers": "^5.5.0"
30
+ },
31
+ "devDependencies": {
32
+ "@lidofinance/config-prettier": "0.0.1",
33
+ "@ethersproject/logger": "^5.5.2",
34
+ "@ethersproject/networks": "^5.5.0",
35
+ "@ethersproject/properties": "^5.5.0",
36
+ "@ethersproject/providers": "^5.5.0",
37
+ "@types/jest": "^28.1.6",
38
+ "@types/node": "^18.0.6",
39
+ "jest": "^28.1.3",
40
+ "ts-jest": "^28.0.7"
41
+ }
42
+ }