@metamask-previews/eth-json-rpc-middleware 21.0.0-preview-64d897d9 → 21.0.0-preview-fe4c2215
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 +0 -3
- package/dist/block-cache.cjs +32 -41
- package/dist/block-cache.cjs.map +1 -1
- package/dist/block-cache.d.cts +3 -12
- package/dist/block-cache.d.cts.map +1 -1
- package/dist/block-cache.d.mts +3 -12
- package/dist/block-cache.d.mts.map +1 -1
- package/dist/block-cache.mjs +32 -41
- package/dist/block-cache.mjs.map +1 -1
- package/dist/block-ref-rewrite.cjs +8 -12
- package/dist/block-ref-rewrite.cjs.map +1 -1
- package/dist/block-ref-rewrite.d.cts +3 -3
- package/dist/block-ref-rewrite.d.cts.map +1 -1
- package/dist/block-ref-rewrite.d.mts +3 -3
- package/dist/block-ref-rewrite.d.mts.map +1 -1
- package/dist/block-ref-rewrite.mjs +8 -12
- package/dist/block-ref-rewrite.mjs.map +1 -1
- package/dist/block-ref.cjs +10 -17
- package/dist/block-ref.cjs.map +1 -1
- package/dist/block-ref.d.cts +3 -12
- package/dist/block-ref.d.cts.map +1 -1
- package/dist/block-ref.d.mts +3 -12
- package/dist/block-ref.d.mts.map +1 -1
- package/dist/block-ref.mjs +10 -17
- package/dist/block-ref.mjs.map +1 -1
- package/dist/block-tracker-inspector.cjs +25 -28
- package/dist/block-tracker-inspector.cjs.map +1 -1
- package/dist/block-tracker-inspector.d.cts +3 -3
- package/dist/block-tracker-inspector.d.cts.map +1 -1
- package/dist/block-tracker-inspector.d.mts +3 -3
- package/dist/block-tracker-inspector.d.mts.map +1 -1
- package/dist/block-tracker-inspector.mjs +25 -28
- package/dist/block-tracker-inspector.mjs.map +1 -1
- package/dist/fetch.cjs +12 -8
- package/dist/fetch.cjs.map +1 -1
- package/dist/fetch.d.cts +3 -5
- package/dist/fetch.d.cts.map +1 -1
- package/dist/fetch.d.mts +3 -5
- package/dist/fetch.d.mts.map +1 -1
- package/dist/fetch.mjs +12 -8
- package/dist/fetch.mjs.map +1 -1
- package/dist/inflight-cache.cjs +45 -61
- package/dist/inflight-cache.cjs.map +1 -1
- package/dist/inflight-cache.d.cts +3 -12
- package/dist/inflight-cache.d.cts.map +1 -1
- package/dist/inflight-cache.d.mts +3 -12
- package/dist/inflight-cache.d.mts.map +1 -1
- package/dist/inflight-cache.mjs +45 -61
- package/dist/inflight-cache.mjs.map +1 -1
- package/dist/methods/wallet-request-execution-permissions.cjs +9 -20
- package/dist/methods/wallet-request-execution-permissions.cjs.map +1 -1
- package/dist/methods/wallet-request-execution-permissions.d.cts +3 -14
- package/dist/methods/wallet-request-execution-permissions.d.cts.map +1 -1
- package/dist/methods/wallet-request-execution-permissions.d.mts +3 -14
- package/dist/methods/wallet-request-execution-permissions.d.mts.map +1 -1
- package/dist/methods/wallet-request-execution-permissions.mjs +7 -18
- package/dist/methods/wallet-request-execution-permissions.mjs.map +1 -1
- package/dist/methods/wallet-revoke-execution-permission.cjs +11 -23
- package/dist/methods/wallet-revoke-execution-permission.cjs.map +1 -1
- package/dist/methods/wallet-revoke-execution-permission.d.cts +5 -19
- package/dist/methods/wallet-revoke-execution-permission.d.cts.map +1 -1
- package/dist/methods/wallet-revoke-execution-permission.d.mts +5 -19
- package/dist/methods/wallet-revoke-execution-permission.d.mts.map +1 -1
- package/dist/methods/wallet-revoke-execution-permission.mjs +8 -20
- package/dist/methods/wallet-revoke-execution-permission.mjs.map +1 -1
- package/dist/providerAsMiddleware.cjs +1 -18
- package/dist/providerAsMiddleware.cjs.map +1 -1
- package/dist/providerAsMiddleware.d.cts +3 -18
- package/dist/providerAsMiddleware.d.cts.map +1 -1
- package/dist/providerAsMiddleware.d.mts +3 -18
- package/dist/providerAsMiddleware.d.mts.map +1 -1
- package/dist/providerAsMiddleware.mjs +0 -16
- package/dist/providerAsMiddleware.mjs.map +1 -1
- package/dist/retryOnEmpty.cjs +11 -8
- package/dist/retryOnEmpty.cjs.map +1 -1
- package/dist/retryOnEmpty.d.cts +3 -3
- package/dist/retryOnEmpty.d.cts.map +1 -1
- package/dist/retryOnEmpty.d.mts +3 -3
- package/dist/retryOnEmpty.d.mts.map +1 -1
- package/dist/retryOnEmpty.mjs +11 -8
- package/dist/retryOnEmpty.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +5 -0
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +5 -0
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/error.cjs +0 -7
- package/dist/utils/error.cjs.map +1 -1
- package/dist/utils/error.d.cts +0 -7
- package/dist/utils/error.d.cts.map +1 -1
- package/dist/utils/error.d.mts +0 -7
- package/dist/utils/error.d.mts.map +1 -1
- package/dist/utils/error.mjs +0 -7
- package/dist/utils/error.mjs.map +1 -1
- package/dist/utils/normalize.cjs +2 -7
- package/dist/utils/normalize.cjs.map +1 -1
- package/dist/utils/normalize.d.cts.map +1 -1
- package/dist/utils/normalize.d.mts.map +1 -1
- package/dist/utils/normalize.mjs +2 -7
- package/dist/utils/normalize.mjs.map +1 -1
- package/dist/utils/validation.cjs +2 -34
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.cts +3 -29
- package/dist/utils/validation.d.cts.map +1 -1
- package/dist/utils/validation.d.mts +3 -29
- package/dist/utils/validation.d.mts.map +1 -1
- package/dist/utils/validation.mjs +2 -34
- package/dist/utils/validation.mjs.map +1 -1
- package/dist/wallet.cjs +92 -199
- package/dist/wallet.cjs.map +1 -1
- package/dist/wallet.d.cts +13 -40
- package/dist/wallet.d.cts.map +1 -1
- package/dist/wallet.d.mts +13 -40
- package/dist/wallet.d.mts.map +1 -1
- package/dist/wallet.mjs +93 -200
- package/dist/wallet.mjs.map +1 -1
- package/package.json +1 -4
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine/v2";
|
|
2
1
|
import type { Infer } from "@metamask/superstruct";
|
|
3
|
-
import { type Hex, type Json, type JsonRpcRequest } from "@metamask/utils";
|
|
4
|
-
import type { WalletMiddlewareContext } from "../wallet.mjs";
|
|
2
|
+
import { type Hex, type Json, type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
|
|
5
3
|
declare const PermissionRequestStruct: import("@metamask/superstruct").Struct<{
|
|
6
4
|
chainId: `0x${string}`;
|
|
7
5
|
signer: {
|
|
@@ -126,17 +124,8 @@ export type RequestExecutionPermissionsResult = Json & (Infer<typeof PermissionR
|
|
|
126
124
|
context: Hex;
|
|
127
125
|
})[];
|
|
128
126
|
export type ProcessRequestExecutionPermissionsHook = (request: RequestExecutionPermissionsRequestParams, req: JsonRpcRequest) => Promise<RequestExecutionPermissionsResult>;
|
|
129
|
-
|
|
130
|
-
* Creates a handler for the `wallet_requestExecutionPermissions` JSON-RPC method.
|
|
131
|
-
*
|
|
132
|
-
* @param options - The options for the handler.
|
|
133
|
-
* @param options.processRequestExecutionPermissions - The function to process the
|
|
134
|
-
* request execution permissions request.
|
|
135
|
-
* @returns A JSON-RPC middleware function that handles the
|
|
136
|
-
* `wallet_requestExecutionPermissions` JSON-RPC method.
|
|
137
|
-
*/
|
|
138
|
-
export declare function createWalletRequestExecutionPermissionsHandler({ processRequestExecutionPermissions, }: {
|
|
127
|
+
export declare function walletRequestExecutionPermissions(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRequestExecutionPermissions, }: {
|
|
139
128
|
processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;
|
|
140
|
-
}):
|
|
129
|
+
}): Promise<void>;
|
|
141
130
|
export {};
|
|
142
131
|
//# sourceMappingURL=wallet-request-execution-permissions.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-request-execution-permissions.d.mts","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-request-execution-permissions.d.mts","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AAYnD,OAAO,EAEL,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAuBzB,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM3B,CAAC;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAiC,CAAC;AAGhF,MAAM,MAAM,wCAAwC,GAAG,KAAK,CAC1D,OAAO,iCAAiC,CACzC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG,IAAI,GAClD,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,GAAG;IACvC,OAAO,EAAE,GAAG,CAAC;CACd,CAAC,EAAE,CAAC;AAEP,MAAM,MAAM,sCAAsC,GAAG,CACnD,OAAO,EAAE,wCAAwC,EACjD,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,iCAAiC,CAAC,CAAC;AAEhD,wBAAsB,iCAAiC,CACrD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,kCAAkC,GACnC,EAAE;IACD,kCAAkC,CAAC,EAAE,sCAAsC,CAAC;CAC7E,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -26,23 +26,12 @@ const PermissionRequestStruct = object({
|
|
|
26
26
|
rules: optional(union([array(RuleStruct), literal(null)])),
|
|
27
27
|
});
|
|
28
28
|
export const RequestExecutionPermissionsStruct = array(PermissionRequestStruct);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
* `wallet_requestExecutionPermissions` JSON-RPC method.
|
|
37
|
-
*/
|
|
38
|
-
export function createWalletRequestExecutionPermissionsHandler({ processRequestExecutionPermissions, }) {
|
|
39
|
-
return async ({ request }) => {
|
|
40
|
-
if (!processRequestExecutionPermissions) {
|
|
41
|
-
throw rpcErrors.methodNotSupported('wallet_requestExecutionPermissions - no middleware configured');
|
|
42
|
-
}
|
|
43
|
-
const { params } = request;
|
|
44
|
-
validateParams(params, RequestExecutionPermissionsStruct);
|
|
45
|
-
return await processRequestExecutionPermissions(params, request);
|
|
46
|
-
};
|
|
29
|
+
export async function walletRequestExecutionPermissions(req, res, { processRequestExecutionPermissions, }) {
|
|
30
|
+
if (!processRequestExecutionPermissions) {
|
|
31
|
+
throw rpcErrors.methodNotSupported('wallet_requestExecutionPermissions - no middleware configured');
|
|
32
|
+
}
|
|
33
|
+
const { params } = req;
|
|
34
|
+
validateParams(params, RequestExecutionPermissionsStruct);
|
|
35
|
+
res.result = await processRequestExecutionPermissions(params, req);
|
|
47
36
|
}
|
|
48
37
|
//# sourceMappingURL=wallet-request-execution-permissions.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-request-execution-permissions.mjs","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-request-execution-permissions.mjs","sourceRoot":"","sources":["../../src/methods/wallet-request-execution-permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAEjD,OAAO,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,MAAM,EACN,KAAK,EACL,OAAO,EACR,8BAA8B;AAC/B,OAAO,EACL,wBAAwB,EAKxB,eAAe,EAChB,wBAAwB;AAEzB,OAAO,EAAE,cAAc,EAAE,gCAA4B;AAErD,MAAM,gBAAgB,GAAG,MAAM,CAAC;IAC9B,IAAI,EAAE,MAAM,EAAE;IACd,mBAAmB,EAAE,OAAO,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,UAAU,GAAG,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE;IACd,mBAAmB,EAAE,OAAO,EAAE;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC;CAClC,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,wBAAwB;KAClC,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,MAAM,CAAC;IACrC,OAAO,EAAE,eAAe;IACxB,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC;IAC3C,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC;AAiBhF,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACrD,GAAmB,EACnB,GAA2B,EAC3B,EACE,kCAAkC,GAGnC;IAED,IAAI,CAAC,kCAAkC,EAAE;QACvC,MAAM,SAAS,CAAC,kBAAkB,CAChC,+DAA+D,CAChE,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,cAAc,CAAC,MAAM,EAAE,iCAAiC,CAAC,CAAC;IAE1D,GAAG,CAAC,MAAM,GAAG,MAAM,kCAAkC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACrE,CAAC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n array,\n boolean,\n literal,\n object,\n optional,\n record,\n string,\n union,\n unknown,\n} from '@metamask/superstruct';\nimport {\n HexChecksumAddressStruct,\n type Hex,\n type Json,\n type JsonRpcRequest,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nconst PermissionStruct = object({\n type: string(),\n isAdjustmentAllowed: boolean(),\n data: record(string(), unknown()),\n});\n\nconst RuleStruct = object({\n type: string(),\n isAdjustmentAllowed: boolean(),\n data: record(string(), unknown()),\n});\n\nconst AccountSignerStruct = object({\n type: literal('account'),\n data: object({\n address: HexChecksumAddressStruct,\n }),\n});\n\nconst PermissionRequestStruct = object({\n chainId: StrictHexStruct,\n address: optional(HexChecksumAddressStruct),\n signer: AccountSignerStruct,\n permission: PermissionStruct,\n rules: optional(union([array(RuleStruct), literal(null)])),\n});\n\nexport const RequestExecutionPermissionsStruct = array(PermissionRequestStruct);\n\n// RequestExecutionPermissions API types\nexport type RequestExecutionPermissionsRequestParams = Infer<\n typeof RequestExecutionPermissionsStruct\n>;\n\nexport type RequestExecutionPermissionsResult = Json &\n (Infer<typeof PermissionRequestStruct> & {\n context: Hex;\n })[];\n\nexport type ProcessRequestExecutionPermissionsHook = (\n request: RequestExecutionPermissionsRequestParams,\n req: JsonRpcRequest,\n) => Promise<RequestExecutionPermissionsResult>;\n\nexport async function walletRequestExecutionPermissions(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRequestExecutionPermissions,\n }: {\n processRequestExecutionPermissions?: ProcessRequestExecutionPermissionsHook;\n },\n): Promise<void> {\n if (!processRequestExecutionPermissions) {\n throw rpcErrors.methodNotSupported(\n 'wallet_requestExecutionPermissions - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RequestExecutionPermissionsStruct);\n\n res.result = await processRequestExecutionPermissions(params, req);\n}\n"]}
|
|
@@ -1,32 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.walletRevokeExecutionPermission = exports.RevokeExecutionPermissionRequestParamsStruct = exports.RevokeExecutionPermissionResultStruct = void 0;
|
|
4
4
|
const rpc_errors_1 = require("@metamask/rpc-errors");
|
|
5
|
-
const superstruct_1 = require("@metamask/superstruct");
|
|
6
5
|
const utils_1 = require("@metamask/utils");
|
|
7
6
|
const validation_1 = require("../utils/validation.cjs");
|
|
8
|
-
exports.RevokeExecutionPermissionResultStruct = (0,
|
|
9
|
-
exports.RevokeExecutionPermissionRequestParamsStruct = (0,
|
|
7
|
+
exports.RevokeExecutionPermissionResultStruct = (0, utils_1.object)({});
|
|
8
|
+
exports.RevokeExecutionPermissionRequestParamsStruct = (0, utils_1.object)({
|
|
10
9
|
permissionContext: utils_1.StrictHexStruct,
|
|
11
10
|
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
* `wallet_revokeExecutionPermission` JSON-RPC method.
|
|
20
|
-
*/
|
|
21
|
-
function createWalletRevokeExecutionPermissionHandler({ processRevokeExecutionPermission, }) {
|
|
22
|
-
return async ({ request }) => {
|
|
23
|
-
if (!processRevokeExecutionPermission) {
|
|
24
|
-
throw rpc_errors_1.rpcErrors.methodNotSupported('wallet_revokeExecutionPermission - no middleware configured');
|
|
25
|
-
}
|
|
26
|
-
const { params } = request;
|
|
27
|
-
(0, validation_1.validateParams)(params, exports.RevokeExecutionPermissionRequestParamsStruct);
|
|
28
|
-
return await processRevokeExecutionPermission(params, request);
|
|
29
|
-
};
|
|
11
|
+
async function walletRevokeExecutionPermission(req, res, { processRevokeExecutionPermission, }) {
|
|
12
|
+
if (!processRevokeExecutionPermission) {
|
|
13
|
+
throw rpc_errors_1.rpcErrors.methodNotSupported('wallet_revokeExecutionPermission - no middleware configured');
|
|
14
|
+
}
|
|
15
|
+
const { params } = req;
|
|
16
|
+
(0, validation_1.validateParams)(params, exports.RevokeExecutionPermissionRequestParamsStruct);
|
|
17
|
+
res.result = await processRevokeExecutionPermission(params, req);
|
|
30
18
|
}
|
|
31
|
-
exports.
|
|
19
|
+
exports.walletRevokeExecutionPermission = walletRevokeExecutionPermission;
|
|
32
20
|
//# sourceMappingURL=wallet-revoke-execution-permission.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-revoke-execution-permission.cjs","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"wallet-revoke-execution-permission.cjs","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAEjD,2CAKyB;AAEzB,wDAAqD;AAExC,QAAA,qCAAqC,GAAG,IAAA,cAAM,EAAC,EAAE,CAAC,CAAC;AAMnD,QAAA,4CAA4C,GAAG,IAAA,cAAM,EAAC;IACjE,iBAAiB,EAAE,uBAAe;CACnC,CAAC,CAAC;AAWI,KAAK,UAAU,+BAA+B,CACnD,GAAmB,EACnB,GAA2B,EAC3B,EACE,gCAAgC,GAGjC;IAED,IAAI,CAAC,gCAAgC,EAAE;QACrC,MAAM,sBAAS,CAAC,kBAAkB,CAChC,6DAA6D,CAC9D,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,IAAA,2BAAc,EAAC,MAAM,EAAE,oDAA4C,CAAC,CAAC;IAErE,GAAG,CAAC,MAAM,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC;AApBD,0EAoBC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n type JsonRpcRequest,\n object,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nexport const RevokeExecutionPermissionResultStruct = object({});\n\nexport type RevokeExecutionPermissionResult = Infer<\n typeof RevokeExecutionPermissionResultStruct\n>;\n\nexport const RevokeExecutionPermissionRequestParamsStruct = object({\n permissionContext: StrictHexStruct,\n});\n\nexport type RevokeExecutionPermissionRequestParams = Infer<\n typeof RevokeExecutionPermissionRequestParamsStruct\n>;\n\nexport type ProcessRevokeExecutionPermissionHook = (\n request: RevokeExecutionPermissionRequestParams,\n req: JsonRpcRequest,\n) => Promise<RevokeExecutionPermissionResult>;\n\nexport async function walletRevokeExecutionPermission(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRevokeExecutionPermission,\n }: {\n processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;\n },\n): Promise<void> {\n if (!processRevokeExecutionPermission) {\n throw rpcErrors.methodNotSupported(\n 'wallet_revokeExecutionPermission - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RevokeExecutionPermissionRequestParamsStruct);\n\n res.result = await processRevokeExecutionPermission(params, req);\n}\n"]}
|
|
@@ -1,27 +1,13 @@
|
|
|
1
|
-
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine/v2";
|
|
2
1
|
import type { Infer } from "@metamask/superstruct";
|
|
3
|
-
import type
|
|
4
|
-
|
|
5
|
-
import type { WalletMiddlewareContext } from "../wallet.cjs";
|
|
6
|
-
export declare const RevokeExecutionPermissionResultStruct: import("@metamask/superstruct").Struct<{}, {}>;
|
|
2
|
+
import { type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
|
|
3
|
+
export declare const RevokeExecutionPermissionResultStruct: import("@metamask/superstruct").Struct<{}, unknown>;
|
|
7
4
|
export type RevokeExecutionPermissionResult = Infer<typeof RevokeExecutionPermissionResultStruct>;
|
|
8
5
|
export declare const RevokeExecutionPermissionRequestParamsStruct: import("@metamask/superstruct").Struct<{
|
|
9
6
|
permissionContext: `0x${string}`;
|
|
10
|
-
},
|
|
11
|
-
permissionContext: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
12
|
-
}>;
|
|
7
|
+
}, unknown>;
|
|
13
8
|
export type RevokeExecutionPermissionRequestParams = Infer<typeof RevokeExecutionPermissionRequestParamsStruct>;
|
|
14
9
|
export type ProcessRevokeExecutionPermissionHook = (request: RevokeExecutionPermissionRequestParams, req: JsonRpcRequest) => Promise<RevokeExecutionPermissionResult>;
|
|
15
|
-
|
|
16
|
-
* Creates a handler for the `wallet_revokeExecutionPermission` JSON-RPC method.
|
|
17
|
-
*
|
|
18
|
-
* @param options - The options for the handler.
|
|
19
|
-
* @param options.processRevokeExecutionPermission - The function to process the
|
|
20
|
-
* revoke execution permission request.
|
|
21
|
-
* @returns A JSON-RPC middleware function that handles the
|
|
22
|
-
* `wallet_revokeExecutionPermission` JSON-RPC method.
|
|
23
|
-
*/
|
|
24
|
-
export declare function createWalletRevokeExecutionPermissionHandler({ processRevokeExecutionPermission, }: {
|
|
10
|
+
export declare function walletRevokeExecutionPermission(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRevokeExecutionPermission, }: {
|
|
25
11
|
processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;
|
|
26
|
-
}):
|
|
12
|
+
}): Promise<void>;
|
|
27
13
|
//# sourceMappingURL=wallet-revoke-execution-permission.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-revoke-execution-permission.d.cts","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-revoke-execution-permission.d.cts","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AACnD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAIzB,eAAO,MAAM,qCAAqC,qDAAa,CAAC;AAEhE,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,4CAA4C;;WAEvD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,KAAK,CACxD,OAAO,4CAA4C,CACpD,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,CACjD,OAAO,EAAE,sCAAsC,EAC/C,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE9C,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,gCAAgC,GACjC,EAAE;IACD,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -1,27 +1,13 @@
|
|
|
1
|
-
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine/v2";
|
|
2
1
|
import type { Infer } from "@metamask/superstruct";
|
|
3
|
-
import type
|
|
4
|
-
|
|
5
|
-
import type { WalletMiddlewareContext } from "../wallet.mjs";
|
|
6
|
-
export declare const RevokeExecutionPermissionResultStruct: import("@metamask/superstruct").Struct<{}, {}>;
|
|
2
|
+
import { type JsonRpcRequest, type PendingJsonRpcResponse } from "@metamask/utils";
|
|
3
|
+
export declare const RevokeExecutionPermissionResultStruct: import("@metamask/superstruct").Struct<{}, unknown>;
|
|
7
4
|
export type RevokeExecutionPermissionResult = Infer<typeof RevokeExecutionPermissionResultStruct>;
|
|
8
5
|
export declare const RevokeExecutionPermissionRequestParamsStruct: import("@metamask/superstruct").Struct<{
|
|
9
6
|
permissionContext: `0x${string}`;
|
|
10
|
-
},
|
|
11
|
-
permissionContext: import("@metamask/superstruct").Struct<`0x${string}`, null>;
|
|
12
|
-
}>;
|
|
7
|
+
}, unknown>;
|
|
13
8
|
export type RevokeExecutionPermissionRequestParams = Infer<typeof RevokeExecutionPermissionRequestParamsStruct>;
|
|
14
9
|
export type ProcessRevokeExecutionPermissionHook = (request: RevokeExecutionPermissionRequestParams, req: JsonRpcRequest) => Promise<RevokeExecutionPermissionResult>;
|
|
15
|
-
|
|
16
|
-
* Creates a handler for the `wallet_revokeExecutionPermission` JSON-RPC method.
|
|
17
|
-
*
|
|
18
|
-
* @param options - The options for the handler.
|
|
19
|
-
* @param options.processRevokeExecutionPermission - The function to process the
|
|
20
|
-
* revoke execution permission request.
|
|
21
|
-
* @returns A JSON-RPC middleware function that handles the
|
|
22
|
-
* `wallet_revokeExecutionPermission` JSON-RPC method.
|
|
23
|
-
*/
|
|
24
|
-
export declare function createWalletRevokeExecutionPermissionHandler({ processRevokeExecutionPermission, }: {
|
|
10
|
+
export declare function walletRevokeExecutionPermission(req: JsonRpcRequest, res: PendingJsonRpcResponse, { processRevokeExecutionPermission, }: {
|
|
25
11
|
processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;
|
|
26
|
-
}):
|
|
12
|
+
}): Promise<void>;
|
|
27
13
|
//# sourceMappingURL=wallet-revoke-execution-permission.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-revoke-execution-permission.d.mts","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-revoke-execution-permission.d.mts","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,8BAA8B;AACnD,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,sBAAsB,EAE5B,wBAAwB;AAIzB,eAAO,MAAM,qCAAqC,qDAAa,CAAC;AAEhE,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,OAAO,qCAAqC,CAC7C,CAAC;AAEF,eAAO,MAAM,4CAA4C;;WAEvD,CAAC;AAEH,MAAM,MAAM,sCAAsC,GAAG,KAAK,CACxD,OAAO,4CAA4C,CACpD,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG,CACjD,OAAO,EAAE,sCAAsC,EAC/C,GAAG,EAAE,cAAc,KAChB,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAE9C,wBAAsB,+BAA+B,CACnD,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,sBAAsB,EAC3B,EACE,gCAAgC,GACjC,EAAE;IACD,gCAAgC,CAAC,EAAE,oCAAoC,CAAC;CACzE,GACA,OAAO,CAAC,IAAI,CAAC,CAYf"}
|
|
@@ -1,28 +1,16 @@
|
|
|
1
1
|
import { rpcErrors } from "@metamask/rpc-errors";
|
|
2
|
-
import { object } from "@metamask/
|
|
3
|
-
import { StrictHexStruct } from "@metamask/utils";
|
|
2
|
+
import { object, StrictHexStruct } from "@metamask/utils";
|
|
4
3
|
import { validateParams } from "../utils/validation.mjs";
|
|
5
4
|
export const RevokeExecutionPermissionResultStruct = object({});
|
|
6
5
|
export const RevokeExecutionPermissionRequestParamsStruct = object({
|
|
7
6
|
permissionContext: StrictHexStruct,
|
|
8
7
|
});
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
* `wallet_revokeExecutionPermission` JSON-RPC method.
|
|
17
|
-
*/
|
|
18
|
-
export function createWalletRevokeExecutionPermissionHandler({ processRevokeExecutionPermission, }) {
|
|
19
|
-
return async ({ request }) => {
|
|
20
|
-
if (!processRevokeExecutionPermission) {
|
|
21
|
-
throw rpcErrors.methodNotSupported('wallet_revokeExecutionPermission - no middleware configured');
|
|
22
|
-
}
|
|
23
|
-
const { params } = request;
|
|
24
|
-
validateParams(params, RevokeExecutionPermissionRequestParamsStruct);
|
|
25
|
-
return await processRevokeExecutionPermission(params, request);
|
|
26
|
-
};
|
|
8
|
+
export async function walletRevokeExecutionPermission(req, res, { processRevokeExecutionPermission, }) {
|
|
9
|
+
if (!processRevokeExecutionPermission) {
|
|
10
|
+
throw rpcErrors.methodNotSupported('wallet_revokeExecutionPermission - no middleware configured');
|
|
11
|
+
}
|
|
12
|
+
const { params } = req;
|
|
13
|
+
validateParams(params, RevokeExecutionPermissionRequestParamsStruct);
|
|
14
|
+
res.result = await processRevokeExecutionPermission(params, req);
|
|
27
15
|
}
|
|
28
16
|
//# sourceMappingURL=wallet-revoke-execution-permission.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-revoke-execution-permission.mjs","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"wallet-revoke-execution-permission.mjs","sourceRoot":"","sources":["../../src/methods/wallet-revoke-execution-permission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,6BAA6B;AAEjD,OAAO,EAEL,MAAM,EAEN,eAAe,EAChB,wBAAwB;AAEzB,OAAO,EAAE,cAAc,EAAE,gCAA4B;AAErD,MAAM,CAAC,MAAM,qCAAqC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;AAMhE,MAAM,CAAC,MAAM,4CAA4C,GAAG,MAAM,CAAC;IACjE,iBAAiB,EAAE,eAAe;CACnC,CAAC,CAAC;AAWH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAAmB,EACnB,GAA2B,EAC3B,EACE,gCAAgC,GAGjC;IAED,IAAI,CAAC,gCAAgC,EAAE;QACrC,MAAM,SAAS,CAAC,kBAAkB,CAChC,6DAA6D,CAC9D,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,cAAc,CAAC,MAAM,EAAE,4CAA4C,CAAC,CAAC;IAErE,GAAG,CAAC,MAAM,GAAG,MAAM,gCAAgC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACnE,CAAC","sourcesContent":["import { rpcErrors } from '@metamask/rpc-errors';\nimport type { Infer } from '@metamask/superstruct';\nimport {\n type JsonRpcRequest,\n object,\n type PendingJsonRpcResponse,\n StrictHexStruct,\n} from '@metamask/utils';\n\nimport { validateParams } from '../utils/validation';\n\nexport const RevokeExecutionPermissionResultStruct = object({});\n\nexport type RevokeExecutionPermissionResult = Infer<\n typeof RevokeExecutionPermissionResultStruct\n>;\n\nexport const RevokeExecutionPermissionRequestParamsStruct = object({\n permissionContext: StrictHexStruct,\n});\n\nexport type RevokeExecutionPermissionRequestParams = Infer<\n typeof RevokeExecutionPermissionRequestParamsStruct\n>;\n\nexport type ProcessRevokeExecutionPermissionHook = (\n request: RevokeExecutionPermissionRequestParams,\n req: JsonRpcRequest,\n) => Promise<RevokeExecutionPermissionResult>;\n\nexport async function walletRevokeExecutionPermission(\n req: JsonRpcRequest,\n res: PendingJsonRpcResponse,\n {\n processRevokeExecutionPermission,\n }: {\n processRevokeExecutionPermission?: ProcessRevokeExecutionPermissionHook;\n },\n): Promise<void> {\n if (!processRevokeExecutionPermission) {\n throw rpcErrors.methodNotSupported(\n 'wallet_revokeExecutionPermission - no middleware configured',\n );\n }\n\n const { params } = req;\n\n validateParams(params, RevokeExecutionPermissionRequestParamsStruct);\n\n res.result = await processRevokeExecutionPermission(params, req);\n}\n"]}
|
|
@@ -1,28 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.providerAsMiddleware = void 0;
|
|
4
4
|
const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
|
|
5
|
-
/**
|
|
6
|
-
* Creates a legacy JSON-RPC middleware that forwards requests to a provider.
|
|
7
|
-
*
|
|
8
|
-
* @param provider - The provider to forward requests to.
|
|
9
|
-
* @returns A legacy JSON-RPC middleware that forwards requests to the provider.
|
|
10
|
-
* @deprecated Use {@link providerAsMiddlewareV2} instead.
|
|
11
|
-
*/
|
|
12
5
|
function providerAsMiddleware(provider) {
|
|
13
6
|
return (0, json_rpc_engine_1.createAsyncMiddleware)(async (req, res) => {
|
|
14
7
|
res.result = await provider.request(req);
|
|
15
8
|
});
|
|
16
9
|
}
|
|
17
10
|
exports.providerAsMiddleware = providerAsMiddleware;
|
|
18
|
-
/**
|
|
19
|
-
* Creates a V2 JSON-RPC middleware that forwards requests to a provider.
|
|
20
|
-
*
|
|
21
|
-
* @param provider - The provider to forward requests to.
|
|
22
|
-
* @returns A V2 JSON-RPC middleware that forwards requests to the provider.
|
|
23
|
-
*/
|
|
24
|
-
function providerAsMiddlewareV2(provider) {
|
|
25
|
-
return async ({ request }) => provider.request(request);
|
|
26
|
-
}
|
|
27
|
-
exports.providerAsMiddlewareV2 = providerAsMiddlewareV2;
|
|
28
11
|
//# sourceMappingURL=providerAsMiddleware.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerAsMiddleware.cjs","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":";;;AACA,+DAGmC;
|
|
1
|
+
{"version":3,"file":"providerAsMiddleware.cjs","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":";;;AACA,+DAGmC;AAGnC,SAAgB,oBAAoB,CAClC,QAA0B;IAE1B,OAAO,IAAA,uCAAqB,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9C,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAND,oDAMC","sourcesContent":["import type { InternalProvider } from '@metamask/eth-json-rpc-provider';\nimport {\n createAsyncMiddleware,\n type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nexport function providerAsMiddleware(\n provider: InternalProvider,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (req, res) => {\n res.result = await provider.request(req);\n });\n}\n"]}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
import type { InternalProvider } from "@metamask/eth-json-rpc-provider";
|
|
2
|
-
import { type JsonRpcMiddleware
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Creates a legacy JSON-RPC middleware that forwards requests to a provider.
|
|
7
|
-
*
|
|
8
|
-
* @param provider - The provider to forward requests to.
|
|
9
|
-
* @returns A legacy JSON-RPC middleware that forwards requests to the provider.
|
|
10
|
-
* @deprecated Use {@link providerAsMiddlewareV2} instead.
|
|
11
|
-
*/
|
|
12
|
-
export declare function providerAsMiddleware(provider: InternalProvider): LegacyJsonRpcMiddleware<JsonRpcParams, Json>;
|
|
13
|
-
/**
|
|
14
|
-
* Creates a V2 JSON-RPC middleware that forwards requests to a provider.
|
|
15
|
-
*
|
|
16
|
-
* @param provider - The provider to forward requests to.
|
|
17
|
-
* @returns A V2 JSON-RPC middleware that forwards requests to the provider.
|
|
18
|
-
*/
|
|
19
|
-
export declare function providerAsMiddlewareV2(provider: InternalProvider): JsonRpcMiddleware<JsonRpcRequest, Json>;
|
|
2
|
+
import { type JsonRpcMiddleware } from "@metamask/json-rpc-engine";
|
|
3
|
+
import type { Json, JsonRpcParams } from "@metamask/utils";
|
|
4
|
+
export declare function providerAsMiddleware(provider: InternalProvider): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
20
5
|
//# sourceMappingURL=providerAsMiddleware.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerAsMiddleware.d.cts","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,EAEL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"providerAsMiddleware.d.cts","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,EAEL,KAAK,iBAAiB,EACvB,kCAAkC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAE3D,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,GACzB,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAIxC"}
|
|
@@ -1,20 +1,5 @@
|
|
|
1
1
|
import type { InternalProvider } from "@metamask/eth-json-rpc-provider";
|
|
2
|
-
import { type JsonRpcMiddleware
|
|
3
|
-
import type {
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Creates a legacy JSON-RPC middleware that forwards requests to a provider.
|
|
7
|
-
*
|
|
8
|
-
* @param provider - The provider to forward requests to.
|
|
9
|
-
* @returns A legacy JSON-RPC middleware that forwards requests to the provider.
|
|
10
|
-
* @deprecated Use {@link providerAsMiddlewareV2} instead.
|
|
11
|
-
*/
|
|
12
|
-
export declare function providerAsMiddleware(provider: InternalProvider): LegacyJsonRpcMiddleware<JsonRpcParams, Json>;
|
|
13
|
-
/**
|
|
14
|
-
* Creates a V2 JSON-RPC middleware that forwards requests to a provider.
|
|
15
|
-
*
|
|
16
|
-
* @param provider - The provider to forward requests to.
|
|
17
|
-
* @returns A V2 JSON-RPC middleware that forwards requests to the provider.
|
|
18
|
-
*/
|
|
19
|
-
export declare function providerAsMiddlewareV2(provider: InternalProvider): JsonRpcMiddleware<JsonRpcRequest, Json>;
|
|
2
|
+
import { type JsonRpcMiddleware } from "@metamask/json-rpc-engine";
|
|
3
|
+
import type { Json, JsonRpcParams } from "@metamask/utils";
|
|
4
|
+
export declare function providerAsMiddleware(provider: InternalProvider): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
20
5
|
//# sourceMappingURL=providerAsMiddleware.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerAsMiddleware.d.mts","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,EAEL,KAAK,iBAAiB,
|
|
1
|
+
{"version":3,"file":"providerAsMiddleware.d.mts","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,EAEL,KAAK,iBAAiB,EACvB,kCAAkC;AACnC,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAE3D,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,gBAAgB,GACzB,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAIxC"}
|
|
@@ -1,23 +1,7 @@
|
|
|
1
1
|
import { createAsyncMiddleware } from "@metamask/json-rpc-engine";
|
|
2
|
-
/**
|
|
3
|
-
* Creates a legacy JSON-RPC middleware that forwards requests to a provider.
|
|
4
|
-
*
|
|
5
|
-
* @param provider - The provider to forward requests to.
|
|
6
|
-
* @returns A legacy JSON-RPC middleware that forwards requests to the provider.
|
|
7
|
-
* @deprecated Use {@link providerAsMiddlewareV2} instead.
|
|
8
|
-
*/
|
|
9
2
|
export function providerAsMiddleware(provider) {
|
|
10
3
|
return createAsyncMiddleware(async (req, res) => {
|
|
11
4
|
res.result = await provider.request(req);
|
|
12
5
|
});
|
|
13
6
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Creates a V2 JSON-RPC middleware that forwards requests to a provider.
|
|
16
|
-
*
|
|
17
|
-
* @param provider - The provider to forward requests to.
|
|
18
|
-
* @returns A V2 JSON-RPC middleware that forwards requests to the provider.
|
|
19
|
-
*/
|
|
20
|
-
export function providerAsMiddlewareV2(provider) {
|
|
21
|
-
return async ({ request }) => provider.request(request);
|
|
22
|
-
}
|
|
23
7
|
//# sourceMappingURL=providerAsMiddleware.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providerAsMiddleware.mjs","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAEtB,kCAAkC;
|
|
1
|
+
{"version":3,"file":"providerAsMiddleware.mjs","sourceRoot":"","sources":["../src/providerAsMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,EAEtB,kCAAkC;AAGnC,MAAM,UAAU,oBAAoB,CAClC,QAA0B;IAE1B,OAAO,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAC9C,GAAG,CAAC,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import type { InternalProvider } from '@metamask/eth-json-rpc-provider';\nimport {\n createAsyncMiddleware,\n type JsonRpcMiddleware,\n} from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\n\nexport function providerAsMiddleware(\n provider: InternalProvider,\n): JsonRpcMiddleware<JsonRpcParams, Json> {\n return createAsyncMiddleware(async (req, res) => {\n res.result = await provider.request(req);\n });\n}\n"]}
|
package/dist/retryOnEmpty.cjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createRetryOnEmptyMiddleware = void 0;
|
|
4
|
-
const
|
|
4
|
+
const json_rpc_engine_1 = require("@metamask/json-rpc-engine");
|
|
5
|
+
const full_1 = require("klona/full");
|
|
5
6
|
const logging_utils_1 = require("./logging-utils.cjs");
|
|
6
7
|
const cache_1 = require("./utils/cache.cjs");
|
|
7
8
|
const error_1 = require("./utils/error.cjs");
|
|
@@ -31,15 +32,15 @@ function createRetryOnEmptyMiddleware({ provider, blockTracker, } = {}) {
|
|
|
31
32
|
if (!blockTracker) {
|
|
32
33
|
throw Error('RetryOnEmptyMiddleware - mandatory "blockTracker" option is missing.');
|
|
33
34
|
}
|
|
34
|
-
return async (
|
|
35
|
-
const blockRefIndex = (0, cache_1.blockTagParamIndex)(
|
|
35
|
+
return (0, json_rpc_engine_1.createAsyncMiddleware)(async (req, res, next) => {
|
|
36
|
+
const blockRefIndex = (0, cache_1.blockTagParamIndex)(req.method);
|
|
36
37
|
// skip if method does not include blockRef
|
|
37
38
|
if (blockRefIndex === undefined) {
|
|
38
39
|
return next();
|
|
39
40
|
}
|
|
40
41
|
// skip if not exact block references
|
|
41
|
-
let blockRef = Array.isArray(
|
|
42
|
-
?
|
|
42
|
+
let blockRef = Array.isArray(req.params) && req.params[blockRefIndex]
|
|
43
|
+
? req.params[blockRefIndex]
|
|
43
44
|
: undefined;
|
|
44
45
|
// omitted blockRef implies "latest"
|
|
45
46
|
if (blockRef === undefined) {
|
|
@@ -64,7 +65,7 @@ function createRetryOnEmptyMiddleware({ provider, blockTracker, } = {}) {
|
|
|
64
65
|
}
|
|
65
66
|
log('Requested block number %o is not higher than latest block number %o, trying request until non-empty response is received', blockRefNumber, latestBlockNumber);
|
|
66
67
|
// create child request with specific block-ref
|
|
67
|
-
const childRequest = (0,
|
|
68
|
+
const childRequest = (0, full_1.klona)(req);
|
|
68
69
|
// attempt child request until non-empty response is received
|
|
69
70
|
const childResult = await retry(10, async () => {
|
|
70
71
|
log('Performing request %o', childRequest);
|
|
@@ -78,8 +79,10 @@ function createRetryOnEmptyMiddleware({ provider, blockTracker, } = {}) {
|
|
|
78
79
|
return attemptResult;
|
|
79
80
|
});
|
|
80
81
|
log('Copying result %o', childResult);
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
// copy child result onto original response
|
|
83
|
+
res.result = childResult;
|
|
84
|
+
return undefined;
|
|
85
|
+
});
|
|
83
86
|
}
|
|
84
87
|
exports.createRetryOnEmptyMiddleware = createRetryOnEmptyMiddleware;
|
|
85
88
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryOnEmpty.cjs","sourceRoot":"","sources":["../src/retryOnEmpty.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"retryOnEmpty.cjs","sourceRoot":"","sources":["../src/retryOnEmpty.ts"],"names":[],"mappings":"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","sourcesContent":["import type { PollingBlockTracker } from '@metamask/eth-block-tracker';\nimport type { InternalProvider } from '@metamask/eth-json-rpc-provider';\nimport type { JsonRpcMiddleware } from '@metamask/json-rpc-engine';\nimport { createAsyncMiddleware } from '@metamask/json-rpc-engine';\nimport type { Json, JsonRpcParams } from '@metamask/utils';\nimport { klona } from 'klona/full';\n\nimport { projectLogger, createModuleLogger } from './logging-utils';\nimport type { Block } from './types';\nimport { blockTagParamIndex } from './utils/cache';\nimport { isExecutionRevertedError } from './utils/error';\nimport { timeout } from './utils/timeout';\n\n//\n// RetryOnEmptyMiddleware will retry any request with an empty response that has\n// a numbered block reference at or lower than the blockTracker's latest block.\n// Its useful for dealing with load-balanced ethereum JSON RPC\n// nodes that are not always in sync with each other.\n//\n\nconst log = createModuleLogger(projectLogger, 'retry-on-empty');\n// empty values used to determine if a request should be retried\n// `<nil>` comes from https://github.com/ethereum/go-ethereum/issues/16925\nconst emptyValues = [null, '\\u003cnil\\u003e'];\n\n/**\n * Creates a middleware that retries requests with empty responses.\n *\n * @param options - The options for the middleware.\n * @param options.provider - The provider to use.\n * @param options.blockTracker - The block tracker to use.\n * @returns The middleware.\n */\nexport function createRetryOnEmptyMiddleware({\n provider,\n blockTracker,\n}: {\n provider?: InternalProvider;\n blockTracker?: PollingBlockTracker;\n} = {}): JsonRpcMiddleware<JsonRpcParams, Json> {\n if (!provider) {\n throw Error(\n 'RetryOnEmptyMiddleware - mandatory \"provider\" option is missing.',\n );\n }\n\n if (!blockTracker) {\n throw Error(\n 'RetryOnEmptyMiddleware - mandatory \"blockTracker\" option is missing.',\n );\n }\n\n return createAsyncMiddleware(async (req, res, next) => {\n const blockRefIndex: number | undefined = blockTagParamIndex(req.method);\n // skip if method does not include blockRef\n if (blockRefIndex === undefined) {\n return next();\n }\n // skip if not exact block references\n let blockRef: string | undefined =\n Array.isArray(req.params) && req.params[blockRefIndex]\n ? (req.params[blockRefIndex] as string)\n : undefined;\n // omitted blockRef implies \"latest\"\n if (blockRef === undefined) {\n blockRef = 'latest';\n }\n\n // skip if non-number block reference\n if (['latest', 'pending'].includes(blockRef)) {\n return next();\n }\n // skip if block refernce is not a valid number\n const blockRefNumber: number = Number.parseInt(blockRef.slice(2), 16);\n if (Number.isNaN(blockRefNumber)) {\n return next();\n }\n // lookup latest block\n const latestBlockNumberHex: string = await blockTracker.getLatestBlock();\n const latestBlockNumber: number = Number.parseInt(\n latestBlockNumberHex.slice(2),\n 16,\n );\n // skip if request block number is higher than current\n if (blockRefNumber > latestBlockNumber) {\n log(\n 'Requested block number %o is higher than latest block number %o, falling through to original request',\n blockRefNumber,\n latestBlockNumber,\n );\n return next();\n }\n\n log(\n 'Requested block number %o is not higher than latest block number %o, trying request until non-empty response is received',\n blockRefNumber,\n latestBlockNumber,\n );\n\n // create child request with specific block-ref\n const childRequest = klona(req);\n // attempt child request until non-empty response is received\n const childResult = await retry(10, async () => {\n log('Performing request %o', childRequest);\n const attemptResult = await provider.request<JsonRpcParams, Block>(\n childRequest,\n );\n log('Result is %o', attemptResult);\n // verify result\n const allEmptyValues: unknown[] = emptyValues;\n if (allEmptyValues.includes(attemptResult)) {\n throw new Error(\n `RetryOnEmptyMiddleware - empty result \"${JSON.stringify(\n attemptResult,\n )}\" for request \"${JSON.stringify(childRequest)}\"`,\n );\n }\n return attemptResult;\n });\n log('Copying result %o', childResult);\n // copy child result onto original response\n res.result = childResult;\n return undefined;\n });\n}\n\n/**\n * Retries an asynchronous function up to a maximum number of times.\n *\n * @param maxRetries - The maximum number of retries.\n * @param asyncFn - The asynchronous function to retry.\n * @returns The result of the asynchronous function.\n */\nasync function retry<Result>(\n maxRetries: number,\n asyncFn: () => Promise<Result>,\n): Promise<Result> {\n for (let index = 0; index < maxRetries; index++) {\n try {\n return await asyncFn();\n } catch (err: unknown) {\n if (isExecutionRevertedError(err)) {\n throw err as unknown;\n }\n log('(call %i) Request failed, waiting 1s to retry again...', index + 1);\n await timeout(1000);\n }\n }\n log('Retries exhausted');\n throw new Error('RetryOnEmptyMiddleware - retries exhausted');\n}\n"]}
|
package/dist/retryOnEmpty.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PollingBlockTracker } from "@metamask/eth-block-tracker";
|
|
2
2
|
import type { InternalProvider } from "@metamask/eth-json-rpc-provider";
|
|
3
|
-
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine
|
|
4
|
-
import type { Json,
|
|
3
|
+
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
|
|
4
|
+
import type { Json, JsonRpcParams } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
6
|
* Creates a middleware that retries requests with empty responses.
|
|
7
7
|
*
|
|
@@ -13,5 +13,5 @@ import type { Json, JsonRpcRequest } from "@metamask/utils";
|
|
|
13
13
|
export declare function createRetryOnEmptyMiddleware({ provider, blockTracker, }?: {
|
|
14
14
|
provider?: InternalProvider;
|
|
15
15
|
blockTracker?: PollingBlockTracker;
|
|
16
|
-
}): JsonRpcMiddleware<
|
|
16
|
+
}): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
17
17
|
//# sourceMappingURL=retryOnEmpty.d.cts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryOnEmpty.d.cts","sourceRoot":"","sources":["../src/retryOnEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"retryOnEmpty.d.cts","sourceRoot":"","sources":["../src/retryOnEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAqB3D;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,QAAQ,EACR,YAAY,GACb,GAAE;IACD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAC/B,GAAG,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAqF9C"}
|
package/dist/retryOnEmpty.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { PollingBlockTracker } from "@metamask/eth-block-tracker";
|
|
2
2
|
import type { InternalProvider } from "@metamask/eth-json-rpc-provider";
|
|
3
|
-
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine
|
|
4
|
-
import type { Json,
|
|
3
|
+
import type { JsonRpcMiddleware } from "@metamask/json-rpc-engine";
|
|
4
|
+
import type { Json, JsonRpcParams } from "@metamask/utils";
|
|
5
5
|
/**
|
|
6
6
|
* Creates a middleware that retries requests with empty responses.
|
|
7
7
|
*
|
|
@@ -13,5 +13,5 @@ import type { Json, JsonRpcRequest } from "@metamask/utils";
|
|
|
13
13
|
export declare function createRetryOnEmptyMiddleware({ provider, blockTracker, }?: {
|
|
14
14
|
provider?: InternalProvider;
|
|
15
15
|
blockTracker?: PollingBlockTracker;
|
|
16
|
-
}): JsonRpcMiddleware<
|
|
16
|
+
}): JsonRpcMiddleware<JsonRpcParams, Json>;
|
|
17
17
|
//# sourceMappingURL=retryOnEmpty.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retryOnEmpty.d.mts","sourceRoot":"","sources":["../src/retryOnEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"retryOnEmpty.d.mts","sourceRoot":"","sources":["../src/retryOnEmpty.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,oCAAoC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,wCAAwC;AACxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kCAAkC;AAEnE,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,wBAAwB;AAqB3D;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,EAC3C,QAAQ,EACR,YAAY,GACb,GAAE;IACD,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CAC/B,GAAG,iBAAiB,CAAC,aAAa,EAAE,IAAI,CAAC,CAqF9C"}
|