@xyo-network/xl1-rpc 1.7.11 → 1.7.12
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 +539 -261
- package/dist/neutral/engine/rpcMethodHandlersFromSigner.d.ts.map +1 -1
- package/dist/neutral/index.mjs +206 -91
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/host/Abstract.d.ts +13 -0
- package/dist/neutral/provider/host/Abstract.d.ts.map +1 -0
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts +2 -11
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts +22 -0
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts.map +1 -0
- package/dist/neutral/provider/host/PermissionsStore.d.ts +8 -0
- package/dist/neutral/provider/host/PermissionsStore.d.ts.map +1 -0
- package/dist/neutral/provider/host/getPermissionsStoreFromTransport.d.ts +5 -0
- package/dist/neutral/provider/host/getPermissionsStoreFromTransport.d.ts.map +1 -0
- package/dist/neutral/provider/host/index.d.ts +3 -0
- package/dist/neutral/provider/host/index.d.ts.map +1 -1
- package/dist/neutral/provider/provider/XyoConnection.d.ts +6 -9
- package/dist/neutral/provider/provider/XyoConnection.d.ts.map +1 -1
- package/dist/neutral/provider/signer/JsonRpcXyoSigner.d.ts +9 -2
- package/dist/neutral/provider/signer/JsonRpcXyoSigner.d.ts.map +1 -1
- package/dist/neutral/provider/signer/MemoryXyoSigner.d.ts +3 -1
- package/dist/neutral/provider/signer/MemoryXyoSigner.d.ts.map +1 -1
- package/dist/neutral/transport/HttpRpcTransport.d.ts.map +1 -1
- package/dist/neutral/types/schema/XyoSignerRpcSchemas.d.ts.map +1 -1
- package/dist/node/engine/rpcMethodHandlersFromSigner.d.ts.map +1 -1
- package/dist/node/index-node.mjs +208 -93
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/host/Abstract.d.ts +13 -0
- package/dist/node/provider/host/Abstract.d.ts.map +1 -0
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts +2 -11
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/node/provider/host/MemoryXyoGateway.d.ts +22 -0
- package/dist/node/provider/host/MemoryXyoGateway.d.ts.map +1 -0
- package/dist/node/provider/host/PermissionsStore.d.ts +8 -0
- package/dist/node/provider/host/PermissionsStore.d.ts.map +1 -0
- package/dist/node/provider/host/getPermissionsStoreFromTransport.d.ts +5 -0
- package/dist/node/provider/host/getPermissionsStoreFromTransport.d.ts.map +1 -0
- package/dist/node/provider/host/index.d.ts +3 -0
- package/dist/node/provider/host/index.d.ts.map +1 -1
- package/dist/node/provider/provider/XyoConnection.d.ts +6 -9
- package/dist/node/provider/provider/XyoConnection.d.ts.map +1 -1
- package/dist/node/provider/signer/JsonRpcXyoSigner.d.ts +9 -2
- package/dist/node/provider/signer/JsonRpcXyoSigner.d.ts.map +1 -1
- package/dist/node/provider/signer/MemoryXyoSigner.d.ts +3 -1
- package/dist/node/provider/signer/MemoryXyoSigner.d.ts.map +1 -1
- package/dist/node/transport/HttpRpcTransport.d.ts.map +1 -1
- package/dist/node/types/schema/XyoSignerRpcSchemas.d.ts.map +1 -1
- package/package.json +26 -25
- package/src/engine/rpcMethodHandlersFromSigner.ts +1 -0
- package/src/provider/host/Abstract.ts +30 -0
- package/src/provider/host/JsonRpcXyoGateway.ts +2 -28
- package/src/provider/host/MemoryXyoGateway.ts +84 -0
- package/src/provider/host/PermissionsStore.ts +8 -0
- package/src/provider/host/getPermissionsStoreFromTransport.ts +13 -0
- package/src/provider/host/index.ts +3 -0
- package/src/provider/provider/XyoConnection.ts +20 -10
- package/src/provider/signer/JsonRpcXyoSigner.ts +13 -2
- package/src/provider/signer/MemoryXyoSigner.ts +6 -1
- package/src/provider/signer/spec/RpcEngineXyoSigner.spec.ts +2 -2
- package/src/transport/HttpRpcTransport.ts +25 -16
- package/src/types/schema/XyoSignerRpcSchemas.ts +14 -1
|
@@ -2,7 +2,8 @@ import type {
|
|
|
2
2
|
JsonRpcFailure, JsonRpcRequest, JsonRpcSuccess,
|
|
3
3
|
} from '@metamask/utils'
|
|
4
4
|
import { AxiosJson } from '@xylabs/axios'
|
|
5
|
-
import { isUndefinedOrNull } from '@xylabs/typeof'
|
|
5
|
+
import { isError, isUndefinedOrNull } from '@xylabs/typeof'
|
|
6
|
+
import { isAxiosError } from 'axios'
|
|
6
7
|
import { v4 } from 'uuid'
|
|
7
8
|
import type { z } from 'zod'
|
|
8
9
|
|
|
@@ -37,24 +38,32 @@ export class HttpRpcTransport<T extends RpcSchemaMap = RpcSchemaMap> implements
|
|
|
37
38
|
method: TMethod,
|
|
38
39
|
params?: z.infer<TSchemas[TMethod]['params']['to']>,
|
|
39
40
|
): Promise<z.infer<TSchemas[TMethod]['result']['from']>> {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
try {
|
|
42
|
+
const id = v4()
|
|
43
|
+
const body: JsonRpcRequest = {
|
|
44
|
+
jsonrpc,
|
|
45
|
+
id,
|
|
46
|
+
method: method as string,
|
|
47
|
+
}
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
49
|
+
if (params) {
|
|
50
|
+
body.params = schemas[method].params.to.parse(params)
|
|
51
|
+
}
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
const res = await new AxiosJson().post(url, body)
|
|
52
54
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
const json = res.data
|
|
56
|
+
if (isUndefinedOrNull(json) || (json as Partial<JsonRpcFailure>).error) {
|
|
57
|
+
throw new Error((json as JsonRpcFailure).error.message)
|
|
58
|
+
}
|
|
57
59
|
|
|
58
|
-
|
|
60
|
+
return schemas[method].result.from.parse((json as JsonRpcSuccess).result)
|
|
61
|
+
} catch (ex) {
|
|
62
|
+
let message = isError(ex) ? ex.message : String(ex)
|
|
63
|
+
if (isAxiosError(ex)) {
|
|
64
|
+
message = `Http error occurred [${ex.status}|${ex.code ?? '<unknown>'}]: ${ex.message}`
|
|
65
|
+
}
|
|
66
|
+
throw new Error(`Error occurred while calling RPC method ${String(method)}: ${message}`)
|
|
67
|
+
}
|
|
59
68
|
}
|
|
60
69
|
}
|
|
@@ -2,7 +2,10 @@ import { z } from 'zod'
|
|
|
2
2
|
|
|
3
3
|
import type { XyoSignerRpcMethodName } from '../XyoSignerRpc.ts'
|
|
4
4
|
import {
|
|
5
|
-
AddressFromStringSchema, AddressToStringSchema,
|
|
5
|
+
AddressFromStringSchema, AddressToStringSchema,
|
|
6
|
+
HydratedTransactionSchema,
|
|
7
|
+
PayloadSchema, SignedHydratedTransactionSchema, SignedTransactionBoundWitnessSchema,
|
|
8
|
+
TransactionFeesFromStingSchema,
|
|
6
9
|
TransactionFeesToStingSchema,
|
|
7
10
|
} from './common/index.ts'
|
|
8
11
|
import type { RpcSchemaMap } from './RpcSchemaMap.ts'
|
|
@@ -44,4 +47,14 @@ export const XyoSignerRpcSchemas: RpcSchemaMap<XyoSignerRpcMethodName> = {
|
|
|
44
47
|
from: SignedTransactionBoundWitnessSchema,
|
|
45
48
|
},
|
|
46
49
|
},
|
|
50
|
+
xyoSigner_signTransaction: {
|
|
51
|
+
params: {
|
|
52
|
+
to: z.tuple([HydratedTransactionSchema]),
|
|
53
|
+
from: z.tuple([HydratedTransactionSchema]),
|
|
54
|
+
},
|
|
55
|
+
result: {
|
|
56
|
+
to: SignedHydratedTransactionSchema,
|
|
57
|
+
from: SignedHydratedTransactionSchema,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
47
60
|
}
|