opnet
Version:
The perfect library for building Bitcoin-based applications.
62 lines (50 loc) • 1.81 kB
text/typescript
import { JSONRpcMethods } from './JSONRpcMethods.js';
export interface JSONRpc2ResultData<T extends JSONRpcMethods> {}
export enum JSONRPCErrorCode {
PARSE_ERROR = -32700,
INVALID_REQUEST = -32600,
METHOD_NOT_FOUND = -32601,
INVALID_PARAMS = -32602,
INTERNAL_ERROR = -32603,
SERVER_ERROR = -32000,
APPLICATION_ERROR = -32099,
SYSTEM_ERROR = -32098,
TRANSPORT_ERROR = -32097,
GENERIC_ERROR = -32096,
}
export enum JSONRPCErrorHttpCodes {
PARSE_ERROR = 500,
INVALID_REQUEST = 400,
METHOD_NOT_FOUND = 404,
INVALID_PARAMS = 400,
INTERNAL_ERROR = 500,
SERVER_ERROR = 500,
APPLICATION_ERROR = 500,
SYSTEM_ERROR = 500,
TRANSPORT_ERROR = 500,
GENERIC_ERROR = 500,
}
export interface JSONRpcErrorData<T extends JSONRpcMethods> {}
export interface JSONRpcResultError<T extends JSONRpcMethods> {
readonly code: JSONRPCErrorCode;
readonly message: string;
readonly data?: JSONRpcErrorData<T>;
}
interface JSONRpc2ResultBase<T extends JSONRpcMethods> {
readonly jsonrpc: '2.0';
readonly id: number | string | null;
readonly result?: JSONRpc2ResultData<T>;
readonly error?: JSONRpcResultError<T>;
}
export interface JSONRpc2ResponseResult<T extends JSONRpcMethods> extends JSONRpc2ResultBase<T> {
readonly result: JSONRpc2ResultData<T>;
}
export interface JSONRpc2ResponseError<T extends JSONRpcMethods> extends JSONRpc2ResultBase<T> {
readonly error: JSONRpcResultError<T>;
}
export type JsonRpcError = JSONRpc2ResponseError<JSONRpcMethods>;
export type JsonRpcResult = JSONRpc2ResponseResult<JSONRpcMethods>;
export type JSONRpc2Result<T extends JSONRpcMethods> =
| JSONRpc2ResponseResult<T>
| JSONRpc2ResponseError<T>;
export type JsonRpcCallResult = (JsonRpcResult | JsonRpcError)[];