@metamask-previews/eth-json-rpc-provider 2.2.0-preview.578eb39
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/CHANGELOG.md +52 -0
- package/LICENSE +15 -0
- package/README.md +15 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/provider-from-engine.d.ts +10 -0
- package/dist/provider-from-engine.d.ts.map +1 -0
- package/dist/provider-from-engine.js +15 -0
- package/dist/provider-from-engine.js.map +1 -0
- package/dist/provider-from-middleware.d.ts +11 -0
- package/dist/provider-from-middleware.d.ts.map +1 -0
- package/dist/provider-from-middleware.js +19 -0
- package/dist/provider-from-middleware.js.map +1 -0
- package/dist/safe-event-emitter-provider.d.ts +40 -0
- package/dist/safe-event-emitter-provider.d.ts.map +1 -0
- package/dist/safe-event-emitter-provider.js +71 -0
- package/dist/safe-event-emitter-provider.js.map +1 -0
- package/package.json +67 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
All notable changes to this project will be documented in this file.
|
|
3
|
+
|
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
### Added
|
|
9
|
+
- Migrate `@metamask/eth-json-rpc-provider` into the core monorepo ([#1738](https://github.com/MetaMask/core/pull/1738))
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
- Export `SafeEventEmitterProvider` as class instead of type ([4c8fea70c5d753b6bb0cf17fc640e2aaed16fd52](https://github.com/MetaMask/core/pull/1738/commits/4c8fea70c5d753b6bb0cf17fc640e2aaed16fd52))
|
|
13
|
+
|
|
14
|
+
## [2.2.0]
|
|
15
|
+
### Changed
|
|
16
|
+
- Add missing ISC license information ([#24](https://github.com/MetaMask/eth-json-rpc-provider/pull/24))
|
|
17
|
+
|
|
18
|
+
## [2.1.0]
|
|
19
|
+
### Changed
|
|
20
|
+
- Bump `@metamask/json-rpc-engine` from `^7.0.0` to `^7.1.0` ([#25](https://github.com/MetaMask/eth-json-rpc-provider/pull/25))
|
|
21
|
+
- Bump `@metamask/utils` from `^5.0.1` to `^8.1.0` ([#25](https://github.com/MetaMask/eth-json-rpc-provider/pull/25))
|
|
22
|
+
|
|
23
|
+
## [2.0.0]
|
|
24
|
+
### Fixed
|
|
25
|
+
- **BREAKING:** Update minimum Node.js version to 16 ([#20](https://github.com/MetaMask/eth-json-rpc-provider/pull/20))
|
|
26
|
+
- Switched json-rpc-engine@^6.1.0 -> @metamask/json-rpc-engine@^7.0.0 ([#16](https://github.com/MetaMask/eth-json-rpc-provider/pull/16))
|
|
27
|
+
- **BREAKING**: Typescript type updates
|
|
28
|
+
- Updated dependencies: ([#16](https://github.com/MetaMask/eth-json-rpc-provider/pull/16))
|
|
29
|
+
- Bumped @metamask/safe-event-emitter@^2.0.0->^3.0.0
|
|
30
|
+
- Added @metamask/utils@5.0.1
|
|
31
|
+
|
|
32
|
+
Release `v2.0.0` is identical to `v1.0.1` aside from Node.js version requirement imposed by a dependency updates has been made explicit.
|
|
33
|
+
|
|
34
|
+
## [1.0.1] [RETRACTED]
|
|
35
|
+
### Changed
|
|
36
|
+
- **BREAKING:** Update minimum Node.js version to 16 ([#20](https://github.com/MetaMask/eth-json-rpc-provider/pull/20))
|
|
37
|
+
- Switched json-rpc-engine@^6.1.0 -> @metamask/json-rpc-engine@^7.0.0 ([#16](https://github.com/MetaMask/eth-json-rpc-provider/pull/16))
|
|
38
|
+
- **BREAKING**: Typescript type updates
|
|
39
|
+
- Updated dependencies: ([#16](https://github.com/MetaMask/eth-json-rpc-provider/pull/16))
|
|
40
|
+
- Bumped @metamask/safe-event-emitter@^2.0.0->^3.0.0
|
|
41
|
+
- Added @metamask/utils@5.0.1
|
|
42
|
+
|
|
43
|
+
## [1.0.0]
|
|
44
|
+
### Added
|
|
45
|
+
- Initial release, including `providerFromEngine` and `providerFromMiddleware`.
|
|
46
|
+
|
|
47
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.2.0...HEAD
|
|
48
|
+
[2.2.0]: https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.1.0...@metamask/eth-json-rpc-provider@2.2.0
|
|
49
|
+
[2.1.0]: https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@2.0.0...@metamask/eth-json-rpc-provider@2.1.0
|
|
50
|
+
[2.0.0]: https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@1.0.1...@metamask/eth-json-rpc-provider@2.0.0
|
|
51
|
+
[1.0.1]: https://github.com/MetaMask/core/compare/@metamask/eth-json-rpc-provider@1.0.0...@metamask/eth-json-rpc-provider@1.0.1
|
|
52
|
+
[1.0.0]: https://github.com/MetaMask/core/releases/tag/@metamask/eth-json-rpc-provider@1.0.0
|
package/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 MetaMask
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
10
|
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
11
|
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
12
|
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
13
|
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
14
|
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
15
|
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# eth-json-rpc-provider
|
|
2
|
+
|
|
3
|
+
This package provides functions for creating an Ethereum provider from a [JSON-RPC engine](https://github.com/MetaMask/json-rpc-engine), or from middleware compatible with JSON-RPC engine.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
`yarn add @metamask/eth-json-rpc-provider`
|
|
8
|
+
|
|
9
|
+
or
|
|
10
|
+
|
|
11
|
+
`npm install @metamask/eth-json-rpc-provider`
|
|
12
|
+
|
|
13
|
+
## Contributing
|
|
14
|
+
|
|
15
|
+
This package is part of a monorepo. Instructions for contributing can be found in the [monorepo README](https://github.com/MetaMask/core#readme).
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.SafeEventEmitterProvider = void 0;
|
|
18
|
+
__exportStar(require("./provider-from-engine"), exports);
|
|
19
|
+
__exportStar(require("./provider-from-middleware"), exports);
|
|
20
|
+
var safe_event_emitter_provider_1 = require("./safe-event-emitter-provider");
|
|
21
|
+
Object.defineProperty(exports, "SafeEventEmitterProvider", { enumerable: true, get: function () { return safe_event_emitter_provider_1.SafeEventEmitterProvider; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,6DAA2C;AAC3C,6EAAyE;AAAhE,uIAAA,wBAAwB,OAAA","sourcesContent":["export * from './provider-from-engine';\nexport * from './provider-from-middleware';\nexport { SafeEventEmitterProvider } from './safe-event-emitter-provider';\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { JsonRpcEngine } from '@metamask/json-rpc-engine';
|
|
2
|
+
import { SafeEventEmitterProvider } from './safe-event-emitter-provider';
|
|
3
|
+
/**
|
|
4
|
+
* Construct an Ethereum provider from the given JSON-RPC engine.
|
|
5
|
+
*
|
|
6
|
+
* @param engine - The JSON-RPC engine to construct a provider from.
|
|
7
|
+
* @returns An Ethereum provider.
|
|
8
|
+
*/
|
|
9
|
+
export declare function providerFromEngine(engine: JsonRpcEngine): SafeEventEmitterProvider;
|
|
10
|
+
//# sourceMappingURL=provider-from-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-from-engine.d.ts","sourceRoot":"","sources":["../src/provider-from-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEzE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,aAAa,GACpB,wBAAwB,CAE1B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.providerFromEngine = void 0;
|
|
4
|
+
const safe_event_emitter_provider_1 = require("./safe-event-emitter-provider");
|
|
5
|
+
/**
|
|
6
|
+
* Construct an Ethereum provider from the given JSON-RPC engine.
|
|
7
|
+
*
|
|
8
|
+
* @param engine - The JSON-RPC engine to construct a provider from.
|
|
9
|
+
* @returns An Ethereum provider.
|
|
10
|
+
*/
|
|
11
|
+
function providerFromEngine(engine) {
|
|
12
|
+
return new safe_event_emitter_provider_1.SafeEventEmitterProvider({ engine });
|
|
13
|
+
}
|
|
14
|
+
exports.providerFromEngine = providerFromEngine;
|
|
15
|
+
//# sourceMappingURL=provider-from-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-from-engine.js","sourceRoot":"","sources":["../src/provider-from-engine.ts"],"names":[],"mappings":";;;AAEA,+EAAyE;AAEzE;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,MAAqB;IAErB,OAAO,IAAI,sDAAwB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;AAClD,CAAC;AAJD,gDAIC","sourcesContent":["import type { JsonRpcEngine } from '@metamask/json-rpc-engine';\n\nimport { SafeEventEmitterProvider } from './safe-event-emitter-provider';\n\n/**\n * Construct an Ethereum provider from the given JSON-RPC engine.\n *\n * @param engine - The JSON-RPC engine to construct a provider from.\n * @returns An Ethereum provider.\n */\nexport function providerFromEngine(\n engine: JsonRpcEngine,\n): SafeEventEmitterProvider {\n return new SafeEventEmitterProvider({ engine });\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';
|
|
2
|
+
import type { Json, JsonRpcParams } from '@metamask/utils';
|
|
3
|
+
import type { SafeEventEmitterProvider } from './safe-event-emitter-provider';
|
|
4
|
+
/**
|
|
5
|
+
* Construct an Ethereum provider from the given middleware.
|
|
6
|
+
*
|
|
7
|
+
* @param middleware - The middleware to construct a provider from.
|
|
8
|
+
* @returns An Ethereum provider.
|
|
9
|
+
*/
|
|
10
|
+
export declare function providerFromMiddleware<Params extends JsonRpcParams, Result extends Json>(middleware: JsonRpcMiddleware<Params, Result>): SafeEventEmitterProvider;
|
|
11
|
+
//# sourceMappingURL=provider-from-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-from-middleware.d.ts","sourceRoot":"","sources":["../src/provider-from-middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,SAAS,aAAa,EAC5B,MAAM,SAAS,IAAI,EACnB,UAAU,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,wBAAwB,CAKzE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.providerFromMiddleware = void 0;
|
|
4
|
+
const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
|
|
5
|
+
const provider_from_engine_1 = require("./provider-from-engine");
|
|
6
|
+
/**
|
|
7
|
+
* Construct an Ethereum provider from the given middleware.
|
|
8
|
+
*
|
|
9
|
+
* @param middleware - The middleware to construct a provider from.
|
|
10
|
+
* @returns An Ethereum provider.
|
|
11
|
+
*/
|
|
12
|
+
function providerFromMiddleware(middleware) {
|
|
13
|
+
const engine = new json_rpc_engine_1.JsonRpcEngine();
|
|
14
|
+
engine.push(middleware);
|
|
15
|
+
const provider = (0, provider_from_engine_1.providerFromEngine)(engine);
|
|
16
|
+
return provider;
|
|
17
|
+
}
|
|
18
|
+
exports.providerFromMiddleware = providerFromMiddleware;
|
|
19
|
+
//# sourceMappingURL=provider-from-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-from-middleware.js","sourceRoot":"","sources":["../src/provider-from-middleware.ts"],"names":[],"mappings":";;;AAAA,+DAA0D;AAI1D,iEAA4D;AAG5D;;;;;GAKG;AACH,SAAgB,sBAAsB,CAGpC,UAA6C;IAC7C,MAAM,MAAM,GAAkB,IAAI,+BAAa,EAAE,CAAC;IAClD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,MAAM,QAAQ,GAA6B,IAAA,yCAAkB,EAAC,MAAM,CAAC,CAAC;IACtE,OAAO,QAAQ,CAAC;AAClB,CAAC;AARD,wDAQC","sourcesContent":["import { JsonRpcEngine } from '@metamask/json-rpc-engine';\nimport type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nimport { providerFromEngine } from './provider-from-engine';\nimport type { SafeEventEmitterProvider } from './safe-event-emitter-provider';\n\n/**\n * Construct an Ethereum provider from the given middleware.\n *\n * @param middleware - The middleware to construct a provider from.\n * @returns An Ethereum provider.\n */\nexport function providerFromMiddleware<\n Params extends JsonRpcParams,\n Result extends Json,\n>(middleware: JsonRpcMiddleware<Params, Result>): SafeEventEmitterProvider {\n const engine: JsonRpcEngine = new JsonRpcEngine();\n engine.push(middleware);\n const provider: SafeEventEmitterProvider = providerFromEngine(engine);\n return provider;\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { JsonRpcEngine } from '@metamask/json-rpc-engine';
|
|
2
|
+
import SafeEventEmitter from '@metamask/safe-event-emitter';
|
|
3
|
+
import type { JsonRpcRequest } from '@metamask/utils';
|
|
4
|
+
/**
|
|
5
|
+
* An Ethereum provider.
|
|
6
|
+
*
|
|
7
|
+
* This provider loosely follows conventions that pre-date EIP-1193.
|
|
8
|
+
* It is not compliant with any Ethereum provider standard.
|
|
9
|
+
*/
|
|
10
|
+
export declare class SafeEventEmitterProvider extends SafeEventEmitter {
|
|
11
|
+
#private;
|
|
12
|
+
/**
|
|
13
|
+
* Construct a SafeEventEmitterProvider from a JSON-RPC engine.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Options.
|
|
16
|
+
* @param options.engine - The JSON-RPC engine used to process requests.
|
|
17
|
+
*/
|
|
18
|
+
constructor({ engine }: {
|
|
19
|
+
engine: JsonRpcEngine;
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Send a provider request asynchronously.
|
|
23
|
+
*
|
|
24
|
+
* @param req - The request to send.
|
|
25
|
+
* @param callback - A function that is called upon the success or failure of the request.
|
|
26
|
+
*/
|
|
27
|
+
sendAsync: (req: JsonRpcRequest, callback: (error: unknown, providerRes?: any) => void) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Send a provider request asynchronously.
|
|
30
|
+
*
|
|
31
|
+
* This method serves the same purpose as `sendAsync`. It only exists for
|
|
32
|
+
* legacy reasons.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Use `sendAsync` instead.
|
|
35
|
+
* @param req - The request to send.
|
|
36
|
+
* @param callback - A function that is called upon the success or failure of the request.
|
|
37
|
+
*/
|
|
38
|
+
send: (req: JsonRpcRequest, callback: (error: unknown, providerRes?: any) => void) => void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=safe-event-emitter-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-event-emitter-provider.d.ts","sourceRoot":"","sources":["../src/safe-event-emitter-provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;GAKG;AACH,qBAAa,wBAAyB,SAAQ,gBAAgB;;IAG5D;;;;;OAKG;gBACS,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,aAAa,CAAA;KAAE;IAWjD;;;;;OAKG;IACH,SAAS,QACF,cAAc,oBACD,OAAO,gBAAgB,GAAG,KAAK,IAAI,UAGrD;IAEF;;;;;;;;;OASG;IACH,IAAI,QACG,cAAc,oBACD,OAAO,gBAAgB,GAAG,KAAK,IAAI,UAMrD;CACH"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
var _SafeEventEmitterProvider_engine;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.SafeEventEmitterProvider = void 0;
|
|
19
|
+
const safe_event_emitter_1 = __importDefault(require("@metamask/safe-event-emitter"));
|
|
20
|
+
/**
|
|
21
|
+
* An Ethereum provider.
|
|
22
|
+
*
|
|
23
|
+
* This provider loosely follows conventions that pre-date EIP-1193.
|
|
24
|
+
* It is not compliant with any Ethereum provider standard.
|
|
25
|
+
*/
|
|
26
|
+
class SafeEventEmitterProvider extends safe_event_emitter_1.default {
|
|
27
|
+
/**
|
|
28
|
+
* Construct a SafeEventEmitterProvider from a JSON-RPC engine.
|
|
29
|
+
*
|
|
30
|
+
* @param options - Options.
|
|
31
|
+
* @param options.engine - The JSON-RPC engine used to process requests.
|
|
32
|
+
*/
|
|
33
|
+
constructor({ engine }) {
|
|
34
|
+
super();
|
|
35
|
+
_SafeEventEmitterProvider_engine.set(this, void 0);
|
|
36
|
+
/**
|
|
37
|
+
* Send a provider request asynchronously.
|
|
38
|
+
*
|
|
39
|
+
* @param req - The request to send.
|
|
40
|
+
* @param callback - A function that is called upon the success or failure of the request.
|
|
41
|
+
*/
|
|
42
|
+
this.sendAsync = (req, callback) => {
|
|
43
|
+
__classPrivateFieldGet(this, _SafeEventEmitterProvider_engine, "f").handle(req, callback);
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Send a provider request asynchronously.
|
|
47
|
+
*
|
|
48
|
+
* This method serves the same purpose as `sendAsync`. It only exists for
|
|
49
|
+
* legacy reasons.
|
|
50
|
+
*
|
|
51
|
+
* @deprecated Use `sendAsync` instead.
|
|
52
|
+
* @param req - The request to send.
|
|
53
|
+
* @param callback - A function that is called upon the success or failure of the request.
|
|
54
|
+
*/
|
|
55
|
+
this.send = (req, callback) => {
|
|
56
|
+
if (typeof callback !== 'function') {
|
|
57
|
+
throw new Error('Must provide callback to "send" method.');
|
|
58
|
+
}
|
|
59
|
+
__classPrivateFieldGet(this, _SafeEventEmitterProvider_engine, "f").handle(req, callback);
|
|
60
|
+
};
|
|
61
|
+
__classPrivateFieldSet(this, _SafeEventEmitterProvider_engine, engine, "f");
|
|
62
|
+
if (engine.on) {
|
|
63
|
+
engine.on('notification', (message) => {
|
|
64
|
+
this.emit('data', null, message);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.SafeEventEmitterProvider = SafeEventEmitterProvider;
|
|
70
|
+
_SafeEventEmitterProvider_engine = new WeakMap();
|
|
71
|
+
//# sourceMappingURL=safe-event-emitter-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-event-emitter-provider.js","sourceRoot":"","sources":["../src/safe-event-emitter-provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AACA,sFAA4D;AAG5D;;;;;GAKG;AACH,MAAa,wBAAyB,SAAQ,4BAAgB;IAG5D;;;;;OAKG;IACH,YAAY,EAAE,MAAM,EAA6B;QAC/C,KAAK,EAAE,CAAC;QATV,mDAAuB;QAmBvB;;;;;WAKG;QACH,cAAS,GAAG,CACV,GAAmB,EACnB,QAAqD,EACrD,EAAE;YACF,uBAAA,IAAI,wCAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF;;;;;;;;;WASG;QACH,SAAI,GAAG,CACL,GAAmB,EACnB,QAAqD,EACrD,EAAE;YACF,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;YACD,uBAAA,IAAI,wCAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrC,CAAC,CAAC;QAxCA,uBAAA,IAAI,oCAAW,MAAM,MAAA,CAAC;QAEtB,IAAI,MAAM,CAAC,EAAE,EAAE;YACb,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,OAAe,EAAE,EAAE;gBAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CAkCF;AApDD,4DAoDC","sourcesContent":["import type { JsonRpcEngine } from '@metamask/json-rpc-engine';\nimport SafeEventEmitter from '@metamask/safe-event-emitter';\nimport type { JsonRpcRequest } from '@metamask/utils';\n\n/**\n * An Ethereum provider.\n *\n * This provider loosely follows conventions that pre-date EIP-1193.\n * It is not compliant with any Ethereum provider standard.\n */\nexport class SafeEventEmitterProvider extends SafeEventEmitter {\n #engine: JsonRpcEngine;\n\n /**\n * Construct a SafeEventEmitterProvider from a JSON-RPC engine.\n *\n * @param options - Options.\n * @param options.engine - The JSON-RPC engine used to process requests.\n */\n constructor({ engine }: { engine: JsonRpcEngine }) {\n super();\n this.#engine = engine;\n\n if (engine.on) {\n engine.on('notification', (message: string) => {\n this.emit('data', null, message);\n });\n }\n }\n\n /**\n * Send a provider request asynchronously.\n *\n * @param req - The request to send.\n * @param callback - A function that is called upon the success or failure of the request.\n */\n sendAsync = (\n req: JsonRpcRequest,\n callback: (error: unknown, providerRes?: any) => void,\n ) => {\n this.#engine.handle(req, callback);\n };\n\n /**\n * Send a provider request asynchronously.\n *\n * This method serves the same purpose as `sendAsync`. It only exists for\n * legacy reasons.\n *\n * @deprecated Use `sendAsync` instead.\n * @param req - The request to send.\n * @param callback - A function that is called upon the success or failure of the request.\n */\n send = (\n req: JsonRpcRequest,\n callback: (error: unknown, providerRes?: any) => void,\n ) => {\n if (typeof callback !== 'function') {\n throw new Error('Must provide callback to \"send\" method.');\n }\n this.#engine.handle(req, callback);\n };\n}\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@metamask-previews/eth-json-rpc-provider",
|
|
3
|
+
"version": "2.2.0-preview.578eb39",
|
|
4
|
+
"description": "Create an Ethereum provider using a JSON-RPC engine or middleware",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"MetaMask",
|
|
7
|
+
"Ethereum"
|
|
8
|
+
],
|
|
9
|
+
"homepage": "https://github.com/MetaMask/core/tree/main/packages/eth-json-rpc-provider#readme",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/MetaMask/core/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "https://github.com/MetaMask/core.git"
|
|
16
|
+
},
|
|
17
|
+
"license": "ISC",
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"files": [
|
|
21
|
+
"dist/"
|
|
22
|
+
],
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "tsc --project tsconfig.build.json",
|
|
25
|
+
"build:clean": "rimraf dist && yarn build",
|
|
26
|
+
"build:docs": "typedoc",
|
|
27
|
+
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/eth-json-rpc-provider",
|
|
28
|
+
"lint": "yarn lint:eslint && yarn lint:misc --check && yarn lint:dependencies",
|
|
29
|
+
"lint:dependencies": "depcheck",
|
|
30
|
+
"lint:eslint": "eslint . --cache --ext js,ts",
|
|
31
|
+
"lint:fix": "yarn lint:eslint --fix && yarn lint:misc --write && yarn lint:dependencies",
|
|
32
|
+
"lint:misc": "prettier '**/*.json' '**/*.md' '!CHANGELOG.md' '**/*.yml' '!.yarnrc.yml' --ignore-path .gitignore --no-error-on-unmatched-pattern",
|
|
33
|
+
"publish:preview": "yarn npm publish --tag preview",
|
|
34
|
+
"test": "jest",
|
|
35
|
+
"test:clean": "jest --clearCache",
|
|
36
|
+
"test:watch": "jest --watch"
|
|
37
|
+
},
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@metamask/json-rpc-engine": "^7.1.1",
|
|
40
|
+
"@metamask/safe-event-emitter": "^3.0.0",
|
|
41
|
+
"@metamask/utils": "^8.1.0"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@metamask/auto-changelog": "^3.4.0",
|
|
45
|
+
"@types/jest": "^27.4.1",
|
|
46
|
+
"deepmerge": "^4.2.2",
|
|
47
|
+
"depcheck": "^1.4.3",
|
|
48
|
+
"jest": "^27.5.1",
|
|
49
|
+
"jest-it-up": "^2.0.2",
|
|
50
|
+
"ts-jest": "^27.1.4",
|
|
51
|
+
"typedoc": "^0.24.8",
|
|
52
|
+
"typescript": "~4.8.4"
|
|
53
|
+
},
|
|
54
|
+
"packageManager": "yarn@3.3.0",
|
|
55
|
+
"engines": {
|
|
56
|
+
"node": ">=16.0.0"
|
|
57
|
+
},
|
|
58
|
+
"publishConfig": {
|
|
59
|
+
"access": "public",
|
|
60
|
+
"registry": "https://registry.npmjs.org/"
|
|
61
|
+
},
|
|
62
|
+
"lavamoat": {
|
|
63
|
+
"allowScripts": {
|
|
64
|
+
"@lavamoat/preinstall-always-fail": false
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|