@xyo-network/xl1-rpc 1.9.0 → 1.10.1
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/dist/neutral/index.mjs +519 -501
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/client/MemoryXyoClient.d.ts +2 -2
- package/dist/neutral/provider/client/MemoryXyoClient.d.ts.map +1 -1
- package/dist/neutral/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts +1 -1
- package/dist/neutral/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +1 -1
- package/dist/neutral/provider/{provider → connection}/HttpRpcXyoConnection.d.ts +2 -0
- package/dist/neutral/provider/connection/HttpRpcXyoConnection.d.ts.map +1 -0
- package/dist/neutral/provider/{provider → connection}/XyoConnection.d.ts +4 -2
- package/dist/neutral/provider/connection/XyoConnection.d.ts.map +1 -0
- package/dist/neutral/provider/connection/index.d.ts.map +1 -0
- package/dist/neutral/provider/connection/spec/XyoConnection.d.ts.map +1 -0
- package/dist/neutral/provider/datalake/AbstractXyoDataLake.d.ts +10 -0
- package/dist/neutral/provider/datalake/AbstractXyoDataLake.d.ts.map +1 -0
- package/dist/neutral/provider/datalake/ArchivistXyoDataLake.d.ts +11 -0
- package/dist/neutral/provider/datalake/ArchivistXyoDataLake.d.ts.map +1 -0
- package/dist/neutral/provider/datalake/HttpXyoDataLake.d.ts +20 -0
- package/dist/neutral/provider/datalake/HttpXyoDataLake.d.ts.map +1 -0
- package/dist/neutral/provider/datalake/index.d.ts +4 -0
- package/dist/neutral/provider/datalake/index.d.ts.map +1 -0
- package/dist/neutral/provider/gateway/Abstract.d.ts +13 -0
- package/dist/neutral/provider/gateway/Abstract.d.ts.map +1 -0
- package/dist/neutral/provider/gateway/MemoryXyoGateway.d.ts.map +1 -0
- package/dist/neutral/provider/gateway/index.d.ts.map +1 -0
- package/dist/neutral/provider/gateway/spec/MemoryXyoGateway.spec.d.ts.map +1 -0
- package/dist/neutral/provider/index.d.ts +3 -2
- package/dist/neutral/provider/index.d.ts.map +1 -1
- package/dist/neutral/provider/network/MemoryXyoNetwork.d.ts +3 -3
- package/dist/neutral/provider/network/MemoryXyoNetwork.d.ts.map +1 -1
- package/dist/neutral/provider/network/lib/StatusNetworks.d.ts +3 -3
- package/dist/neutral/provider/network/lib/StatusNetworks.d.ts.map +1 -1
- package/dist/neutral/transport/post-message/LegacyPostMessageRpcTransport.d.ts +15 -0
- package/dist/neutral/transport/post-message/LegacyPostMessageRpcTransport.d.ts.map +1 -0
- package/dist/neutral/transport/post-message/index.d.ts +1 -1
- package/dist/neutral/transport/post-message/index.d.ts.map +1 -1
- package/dist/neutral/transport/post-message/resolveData.d.ts +13 -0
- package/dist/neutral/transport/post-message/resolveData.d.ts.map +1 -0
- package/dist/neutral/types/XyoGatewayRpc.d.ts +1 -1
- package/dist/neutral/types/XyoGatewayRpc.d.ts.map +1 -1
- package/dist/node/index-node.mjs +550 -530
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/client/MemoryXyoClient.d.ts +2 -2
- package/dist/node/provider/client/MemoryXyoClient.d.ts.map +1 -1
- package/dist/node/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts +1 -1
- package/dist/node/provider/client/PermissionsStore/getPermissionsStoreFromTransport.d.ts.map +1 -1
- package/dist/node/provider/{provider → connection}/HttpRpcXyoConnection.d.ts +2 -0
- package/dist/node/provider/connection/HttpRpcXyoConnection.d.ts.map +1 -0
- package/dist/node/provider/{provider → connection}/XyoConnection.d.ts +4 -2
- package/dist/node/provider/connection/XyoConnection.d.ts.map +1 -0
- package/dist/node/provider/connection/index.d.ts.map +1 -0
- package/dist/node/provider/connection/spec/XyoConnection.d.ts.map +1 -0
- package/dist/node/provider/datalake/AbstractXyoDataLake.d.ts +10 -0
- package/dist/node/provider/datalake/AbstractXyoDataLake.d.ts.map +1 -0
- package/dist/node/provider/datalake/ArchivistXyoDataLake.d.ts +11 -0
- package/dist/node/provider/datalake/ArchivistXyoDataLake.d.ts.map +1 -0
- package/dist/node/provider/datalake/HttpXyoDataLake.d.ts +20 -0
- package/dist/node/provider/datalake/HttpXyoDataLake.d.ts.map +1 -0
- package/dist/node/provider/datalake/index.d.ts +4 -0
- package/dist/node/provider/datalake/index.d.ts.map +1 -0
- package/dist/node/provider/gateway/Abstract.d.ts +13 -0
- package/dist/node/provider/gateway/Abstract.d.ts.map +1 -0
- package/dist/node/provider/gateway/MemoryXyoGateway.d.ts.map +1 -0
- package/dist/node/provider/gateway/index.d.ts.map +1 -0
- package/dist/node/provider/gateway/spec/MemoryXyoGateway.spec.d.ts.map +1 -0
- package/dist/node/provider/index.d.ts +3 -2
- package/dist/node/provider/index.d.ts.map +1 -1
- package/dist/node/provider/network/MemoryXyoNetwork.d.ts +3 -3
- package/dist/node/provider/network/MemoryXyoNetwork.d.ts.map +1 -1
- package/dist/node/provider/network/lib/StatusNetworks.d.ts +3 -3
- package/dist/node/provider/network/lib/StatusNetworks.d.ts.map +1 -1
- package/dist/node/transport/post-message/LegacyPostMessageRpcTransport.d.ts +15 -0
- package/dist/node/transport/post-message/LegacyPostMessageRpcTransport.d.ts.map +1 -0
- package/dist/node/transport/post-message/index.d.ts +1 -1
- package/dist/node/transport/post-message/index.d.ts.map +1 -1
- package/dist/node/transport/post-message/resolveData.d.ts +13 -0
- package/dist/node/transport/post-message/resolveData.d.ts.map +1 -0
- package/dist/node/types/XyoGatewayRpc.d.ts +1 -1
- package/dist/node/types/XyoGatewayRpc.d.ts.map +1 -1
- package/package.json +37 -36
- package/src/provider/client/MemoryXyoClient.ts +3 -3
- package/src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts +1 -1
- package/src/provider/client/spec/MemoryXyoClient.spec.ts +17 -10
- package/src/provider/{provider → connection}/HttpRpcXyoConnection.ts +10 -3
- package/src/provider/{provider → connection}/XyoConnection.ts +7 -2
- package/src/provider/{provider → connection}/spec/XyoConnection.ts +1 -0
- package/src/provider/datalake/AbstractXyoDataLake.ts +38 -0
- package/src/provider/datalake/ArchivistXyoDataLake.ts +26 -0
- package/src/provider/datalake/HttpXyoDataLake.ts +105 -0
- package/src/provider/datalake/index.ts +3 -0
- package/src/provider/gateway/Abstract.ts +47 -0
- package/src/provider/{host → gateway}/spec/MemoryXyoGateway.spec.ts +7 -3
- package/src/provider/index.ts +3 -2
- package/src/provider/network/MemoryXyoNetwork.ts +4 -3
- package/src/provider/network/lib/StatusNetworks.ts +9 -9
- package/src/provider/signer/spec/RpcEngineXyoSigner.spec.ts +2 -1
- package/src/transport/post-message/LegacyPostMessageRpcTransport.ts +117 -0
- package/src/transport/post-message/helpers.ts +1 -1
- package/src/transport/post-message/index.ts +1 -1
- package/src/transport/post-message/resolveData.ts +30 -0
- package/src/types/XyoGatewayRpc.ts +2 -2
- package/src/types/global.d.ts +1 -1
- package/dist/neutral/provider/host/Abstract.d.ts +0 -15
- package/dist/neutral/provider/host/Abstract.d.ts.map +0 -1
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts.map +0 -1
- package/dist/neutral/provider/host/index.d.ts.map +0 -1
- package/dist/neutral/provider/host/spec/MemoryXyoGateway.spec.d.ts.map +0 -1
- package/dist/neutral/provider/provider/HttpRpcXyoConnection.d.ts.map +0 -1
- package/dist/neutral/provider/provider/XyoConnection.d.ts.map +0 -1
- package/dist/neutral/provider/provider/index.d.ts.map +0 -1
- package/dist/neutral/provider/provider/spec/XyoConnection.d.ts.map +0 -1
- package/dist/neutral/transport/post-message/PostMessageRpcTransport.d.ts +0 -12
- package/dist/neutral/transport/post-message/PostMessageRpcTransport.d.ts.map +0 -1
- package/dist/node/provider/host/Abstract.d.ts +0 -15
- package/dist/node/provider/host/Abstract.d.ts.map +0 -1
- package/dist/node/provider/host/MemoryXyoGateway.d.ts.map +0 -1
- package/dist/node/provider/host/index.d.ts.map +0 -1
- package/dist/node/provider/host/spec/MemoryXyoGateway.spec.d.ts.map +0 -1
- package/dist/node/provider/provider/HttpRpcXyoConnection.d.ts.map +0 -1
- package/dist/node/provider/provider/XyoConnection.d.ts.map +0 -1
- package/dist/node/provider/provider/index.d.ts.map +0 -1
- package/dist/node/provider/provider/spec/XyoConnection.d.ts.map +0 -1
- package/dist/node/transport/post-message/PostMessageRpcTransport.d.ts +0 -12
- package/dist/node/transport/post-message/PostMessageRpcTransport.d.ts.map +0 -1
- package/src/provider/host/Abstract.ts +0 -42
- package/src/transport/post-message/PostMessageRpcTransport.ts +0 -73
- /package/dist/neutral/provider/{provider → connection}/index.d.ts +0 -0
- /package/dist/neutral/provider/{provider → connection}/spec/XyoConnection.d.ts +0 -0
- /package/dist/neutral/provider/{host → gateway}/MemoryXyoGateway.d.ts +0 -0
- /package/dist/neutral/provider/{host → gateway}/index.d.ts +0 -0
- /package/dist/neutral/provider/{host → gateway}/spec/MemoryXyoGateway.spec.d.ts +0 -0
- /package/dist/node/provider/{provider → connection}/index.d.ts +0 -0
- /package/dist/node/provider/{provider → connection}/spec/XyoConnection.d.ts +0 -0
- /package/dist/node/provider/{host → gateway}/MemoryXyoGateway.d.ts +0 -0
- /package/dist/node/provider/{host → gateway}/index.d.ts +0 -0
- /package/dist/node/provider/{host → gateway}/spec/MemoryXyoGateway.spec.d.ts +0 -0
- /package/src/provider/{provider → connection}/index.ts +0 -0
- /package/src/provider/{host → gateway}/MemoryXyoGateway.ts +0 -0
- /package/src/provider/{host → gateway}/index.ts +0 -0
package/dist/node/index-node.mjs
CHANGED
|
@@ -1,85 +1,61 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/engine/requestSchemas.ts
|
|
5
2
|
var requestSchemas = {};
|
|
6
3
|
|
|
7
4
|
// src/engine/rpcMethodHandlersFromRunner.ts
|
|
8
|
-
var rpcMethodHandlersFromRunner =
|
|
9
|
-
return {
|
|
10
|
-
|
|
11
|
-
};
|
|
12
|
-
}, "rpcMethodHandlersFromRunner");
|
|
5
|
+
var rpcMethodHandlersFromRunner = (runner) => {
|
|
6
|
+
return { xyoRunner_broadcastTransaction: (params) => runner.broadcastTransaction(...params ?? []) };
|
|
7
|
+
};
|
|
13
8
|
|
|
14
9
|
// src/engine/rpcMethodHandlersFromSigner.ts
|
|
15
|
-
var rpcMethodHandlersFromSigner =
|
|
10
|
+
var rpcMethodHandlersFromSigner = (signer) => {
|
|
16
11
|
return {
|
|
17
|
-
xyoSigner_address:
|
|
18
|
-
xyoSigner_createSignedTransaction:
|
|
19
|
-
xyoSigner_signTransaction:
|
|
12
|
+
xyoSigner_address: (params) => signer.address(...params ?? []),
|
|
13
|
+
xyoSigner_createSignedTransaction: (params) => signer.createSignedTransaction(...params ?? []),
|
|
14
|
+
xyoSigner_signTransaction: (params) => signer.signTransaction(...params ?? [])
|
|
20
15
|
};
|
|
21
|
-
}
|
|
16
|
+
};
|
|
22
17
|
|
|
23
18
|
// src/engine/rpcMethodHandlersFromViewer.ts
|
|
24
|
-
var rpcMethodHandlersFromViewer =
|
|
19
|
+
var rpcMethodHandlersFromViewer = (viewer) => {
|
|
25
20
|
return {
|
|
26
|
-
xyoViewer_accountBalance:
|
|
27
|
-
xyoViewer_accountHistory:
|
|
28
|
-
xyoViewer_blockByHash:
|
|
29
|
-
xyoViewer_blockByNumber:
|
|
30
|
-
xyoViewer_blocksByHash:
|
|
31
|
-
xyoViewer_chainId:
|
|
32
|
-
xyoViewer_currentBlock:
|
|
33
|
-
xyoViewer_currentBlockHash:
|
|
34
|
-
xyoViewer_currentBlockNumber:
|
|
35
|
-
xyoViewer_transactionByBlockHashAndIndex:
|
|
36
|
-
xyoViewer_transactionByBlockNumberAndIndex:
|
|
37
|
-
xyoViewer_transactionByHash:
|
|
21
|
+
xyoViewer_accountBalance: (params) => viewer.accountBalance(...params ?? []),
|
|
22
|
+
xyoViewer_accountHistory: (params) => viewer.accountHistory(...params ?? []),
|
|
23
|
+
xyoViewer_blockByHash: (params) => viewer.blockByHash(...params ?? []),
|
|
24
|
+
xyoViewer_blockByNumber: (params) => viewer.blockByNumber(...params ?? []),
|
|
25
|
+
xyoViewer_blocksByHash: (params) => viewer.blocksByHash(...params ?? []),
|
|
26
|
+
xyoViewer_chainId: (params) => viewer.chainId(...params ?? []),
|
|
27
|
+
xyoViewer_currentBlock: (params) => viewer.currentBlock(...params ?? []),
|
|
28
|
+
xyoViewer_currentBlockHash: (params) => viewer.currentBlockHash(...params ?? []),
|
|
29
|
+
xyoViewer_currentBlockNumber: (params) => viewer.currentBlockNumber(...params ?? []),
|
|
30
|
+
xyoViewer_transactionByBlockHashAndIndex: (params) => viewer.transactionByBlockHashAndIndex(...params ?? []),
|
|
31
|
+
xyoViewer_transactionByBlockNumberAndIndex: (params) => viewer.transactionByBlockNumberAndIndex(...params ?? []),
|
|
32
|
+
xyoViewer_transactionByHash: (params) => viewer.transactionByHash(...params ?? [])
|
|
38
33
|
};
|
|
39
|
-
}
|
|
34
|
+
};
|
|
40
35
|
|
|
41
36
|
// src/engine/rpcMethodHandlersFromProvider.ts
|
|
42
|
-
var rpcMethodHandlersFromProvider =
|
|
43
|
-
const {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
};
|
|
51
|
-
if (
|
|
52
|
-
...result,
|
|
53
|
-
...rpcMethodHandlersFromSigner(signer)
|
|
54
|
-
};
|
|
55
|
-
if (viewer) result = {
|
|
56
|
-
...result,
|
|
57
|
-
...rpcMethodHandlersFromViewer(viewer)
|
|
58
|
-
};
|
|
37
|
+
var rpcMethodHandlersFromProvider = (provider) => {
|
|
38
|
+
const {
|
|
39
|
+
runner,
|
|
40
|
+
signer,
|
|
41
|
+
viewer
|
|
42
|
+
} = provider;
|
|
43
|
+
let result = { xyoProvider_send: (params) => provider.send(...params ?? []) };
|
|
44
|
+
if (runner) result = { ...result, ...rpcMethodHandlersFromRunner(runner) };
|
|
45
|
+
if (signer) result = { ...result, ...rpcMethodHandlersFromSigner(signer) };
|
|
46
|
+
if (viewer) result = { ...result, ...rpcMethodHandlersFromViewer(viewer) };
|
|
59
47
|
return result;
|
|
60
|
-
}
|
|
48
|
+
};
|
|
61
49
|
|
|
62
50
|
// src/engine/rpcEngineFromProvider.ts
|
|
63
51
|
import { createAsyncMiddleware, JsonRpcEngine } from "@metamask/json-rpc-engine";
|
|
64
52
|
|
|
65
53
|
// src/types/ErrorCodes.ts
|
|
66
54
|
var JsonRpcErrorCodes = {
|
|
67
|
-
InternalError: {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
InvalidParams: {
|
|
72
|
-
code: -32602,
|
|
73
|
-
message: "Invalid method parameter(s)."
|
|
74
|
-
},
|
|
75
|
-
InvalidRequest: {
|
|
76
|
-
code: -32600,
|
|
77
|
-
message: "The JSON sent is not a valid Request object."
|
|
78
|
-
},
|
|
79
|
-
MethodNotFound: {
|
|
80
|
-
code: -32601,
|
|
81
|
-
message: "The method does not exist or is not available."
|
|
82
|
-
}
|
|
55
|
+
InternalError: { code: -32603, message: "Internal JSON-RPC error (unexpected exception)." },
|
|
56
|
+
InvalidParams: { code: -32602, message: "Invalid method parameter(s)." },
|
|
57
|
+
InvalidRequest: { code: -32600, message: "The JSON sent is not a valid Request object." },
|
|
58
|
+
MethodNotFound: { code: -32601, message: "The method does not exist or is not available." }
|
|
83
59
|
};
|
|
84
60
|
|
|
85
61
|
// src/types/JsonRpc.ts
|
|
@@ -97,7 +73,11 @@ var AddressToStringSchema = z.string().toLowerCase().regex(CompiledAddressRegEx)
|
|
|
97
73
|
var AddressFromStringSchema = z.string().toLowerCase().regex(CompiledAddressRegEx).transform((v) => toAddress(v));
|
|
98
74
|
|
|
99
75
|
// src/types/schema/common/BigIntSchema.ts
|
|
100
|
-
import {
|
|
76
|
+
import {
|
|
77
|
+
asHex,
|
|
78
|
+
hexToBigInt,
|
|
79
|
+
toHex
|
|
80
|
+
} from "@xylabs/hex";
|
|
101
81
|
import { HexRegEx } from "@xyo-network/payload-wrapper";
|
|
102
82
|
import { z as z2 } from "zod";
|
|
103
83
|
var CompiledHexRegEx = new RegExp(HexRegEx);
|
|
@@ -142,14 +122,8 @@ var LocalSequenceFromStringSchema = z5.string().regex(LocalSequenceRegex).transf
|
|
|
142
122
|
var QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes));
|
|
143
123
|
var QualifiedSequenceToStringSchema = z5.string().regex(QualifiedSequenceRegex);
|
|
144
124
|
var QualifiedSequenceFromStringSchema = z5.string().regex(QualifiedSequenceRegex).transform((v) => toHex3(v));
|
|
145
|
-
var SequenceToStringSchema = z5.union([
|
|
146
|
-
|
|
147
|
-
QualifiedSequenceToStringSchema
|
|
148
|
-
]);
|
|
149
|
-
var SequenceFromStringSchema = z5.union([
|
|
150
|
-
LocalSequenceFromStringSchema,
|
|
151
|
-
QualifiedSequenceFromStringSchema
|
|
152
|
-
]);
|
|
125
|
+
var SequenceToStringSchema = z5.union([LocalSequenceToStringSchema, QualifiedSequenceToStringSchema]);
|
|
126
|
+
var SequenceFromStringSchema = z5.union([LocalSequenceFromStringSchema, QualifiedSequenceFromStringSchema]);
|
|
153
127
|
|
|
154
128
|
// src/types/schema/common/StorageMetaSchema.ts
|
|
155
129
|
var StorageMetaSchema = z6.object({
|
|
@@ -159,9 +133,7 @@ var StorageMetaSchema = z6.object({
|
|
|
159
133
|
});
|
|
160
134
|
|
|
161
135
|
// src/types/schema/common/PayloadSchema.ts
|
|
162
|
-
var PayloadSchema = z7.object({
|
|
163
|
-
schema: z7.string()
|
|
164
|
-
}).passthrough();
|
|
136
|
+
var PayloadSchema = z7.object({ schema: z7.string() }).passthrough();
|
|
165
137
|
var PayloadWithStorageMetaSchema = PayloadSchema.extend(StorageMetaSchema.shape).passthrough();
|
|
166
138
|
|
|
167
139
|
// src/types/schema/common/BoundWitnessSchema.ts
|
|
@@ -176,18 +148,14 @@ var BoundWitnessMetaSchema = z8.object({
|
|
|
176
148
|
$destination: AddressToStringSchema.optional(),
|
|
177
149
|
$sourceQuery: HashToStringSchema.optional()
|
|
178
150
|
});
|
|
179
|
-
var UnsignedBoundWitnessSchema = PayloadSchema.extend({
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
}).passthrough();
|
|
188
|
-
var SignedBoundWitnessWithStorageMetaSchema = UnsignedBoundWitnessWithStorageMetaSchema.extend({
|
|
189
|
-
$signatures: z8.array(HexToStringSchema)
|
|
190
|
-
}).passthrough();
|
|
151
|
+
var UnsignedBoundWitnessSchema = PayloadSchema.extend({ schema: z8.literal(BoundWitnessSchema) }).merge(BoundWitnessRequiredFieldsSchema).merge(BoundWitnessMetaSchema).passthrough();
|
|
152
|
+
var UnsignedBoundWitnessWithStorageMetaSchema = PayloadWithStorageMetaSchema.extend({ schema: z8.literal(BoundWitnessSchema) }).merge(BoundWitnessRequiredFieldsSchema).merge(BoundWitnessMetaSchema).passthrough();
|
|
153
|
+
var SignedBoundWitnessSchema = UnsignedBoundWitnessSchema.extend(
|
|
154
|
+
{ $signatures: z8.array(HexToStringSchema) }
|
|
155
|
+
).passthrough();
|
|
156
|
+
var SignedBoundWitnessWithStorageMetaSchema = UnsignedBoundWitnessWithStorageMetaSchema.extend(
|
|
157
|
+
{ $signatures: z8.array(HexToStringSchema) }
|
|
158
|
+
).passthrough();
|
|
191
159
|
|
|
192
160
|
// src/types/schema/common/BlockBoundWitnessSchema.ts
|
|
193
161
|
var BlockNumberSchema = z9.number().int().nonnegative();
|
|
@@ -227,16 +195,9 @@ import { z as z12 } from "zod";
|
|
|
227
195
|
|
|
228
196
|
// src/types/schema/common/TransactionBoundWitnessSchema.ts
|
|
229
197
|
import z11 from "zod";
|
|
230
|
-
var BlockStartSchema = z11.object({
|
|
231
|
-
|
|
232
|
-
});
|
|
233
|
-
var BlockEndSchema = z11.object({
|
|
234
|
-
exp: BlockNumberSchema
|
|
235
|
-
});
|
|
236
|
-
var BlockDurationSchema = z11.object({
|
|
237
|
-
nbf: BlockNumberSchema,
|
|
238
|
-
exp: BlockNumberSchema
|
|
239
|
-
});
|
|
198
|
+
var BlockStartSchema = z11.object({ nbf: BlockNumberSchema });
|
|
199
|
+
var BlockEndSchema = z11.object({ exp: BlockNumberSchema });
|
|
200
|
+
var BlockDurationSchema = z11.object({ nbf: BlockNumberSchema, exp: BlockNumberSchema });
|
|
240
201
|
var TransactionFeesSchema = z11.object({
|
|
241
202
|
fees: z11.object({
|
|
242
203
|
base: HexToStringSchema,
|
|
@@ -245,9 +206,7 @@ var TransactionFeesSchema = z11.object({
|
|
|
245
206
|
priority: HexToStringSchema
|
|
246
207
|
})
|
|
247
208
|
});
|
|
248
|
-
var TransactionBoundWitnessFields = z11.object({
|
|
249
|
-
chain: AddressToStringSchema
|
|
250
|
-
});
|
|
209
|
+
var TransactionBoundWitnessFields = z11.object({ chain: AddressToStringSchema });
|
|
251
210
|
var TransactionBoundWitnessSchema = UnsignedBoundWitnessSchema.merge(BlockDurationSchema).merge(TransactionFeesSchema).merge(TransactionBoundWitnessFields).passthrough();
|
|
252
211
|
var SignedTransactionBoundWitnessSchema = SignedBoundWitnessSchema.merge(BlockDurationSchema).merge(TransactionFeesSchema).merge(TransactionBoundWitnessFields).passthrough();
|
|
253
212
|
|
|
@@ -311,12 +270,8 @@ import { z as z15 } from "zod";
|
|
|
311
270
|
var XyoRunnerRpcSchemas = {
|
|
312
271
|
xyoRunner_broadcastTransaction: {
|
|
313
272
|
params: {
|
|
314
|
-
to: z15.tuple([
|
|
315
|
-
|
|
316
|
-
]),
|
|
317
|
-
from: z15.tuple([
|
|
318
|
-
SignedHydratedTransactionSchema
|
|
319
|
-
])
|
|
273
|
+
to: z15.tuple([SignedHydratedTransactionSchema]),
|
|
274
|
+
from: z15.tuple([SignedHydratedTransactionSchema])
|
|
320
275
|
},
|
|
321
276
|
result: {
|
|
322
277
|
to: HashToStringSchema,
|
|
@@ -366,12 +321,8 @@ var XyoSignerRpcSchemas = {
|
|
|
366
321
|
},
|
|
367
322
|
xyoSigner_signTransaction: {
|
|
368
323
|
params: {
|
|
369
|
-
to: z16.tuple([
|
|
370
|
-
|
|
371
|
-
]),
|
|
372
|
-
from: z16.tuple([
|
|
373
|
-
HydratedTransactionSchema
|
|
374
|
-
])
|
|
324
|
+
to: z16.tuple([HydratedTransactionSchema]),
|
|
325
|
+
from: z16.tuple([HydratedTransactionSchema])
|
|
375
326
|
},
|
|
376
327
|
result: {
|
|
377
328
|
to: SignedHydratedTransactionSchema,
|
|
@@ -386,32 +337,14 @@ var XyoViewerRpcSchemas = {
|
|
|
386
337
|
xyoViewer_accountBalance: {
|
|
387
338
|
params: {
|
|
388
339
|
to: z17.union([
|
|
389
|
-
z17.tuple([
|
|
390
|
-
|
|
391
|
-
])
|
|
392
|
-
z17.tuple([
|
|
393
|
-
AddressToStringSchema,
|
|
394
|
-
z17.number()
|
|
395
|
-
]),
|
|
396
|
-
z17.tuple([
|
|
397
|
-
AddressToStringSchema,
|
|
398
|
-
z17.number(),
|
|
399
|
-
z17.boolean()
|
|
400
|
-
])
|
|
340
|
+
z17.tuple([AddressToStringSchema]),
|
|
341
|
+
z17.tuple([AddressToStringSchema, z17.number()]),
|
|
342
|
+
z17.tuple([AddressToStringSchema, z17.number(), z17.boolean()])
|
|
401
343
|
]),
|
|
402
344
|
from: z17.union([
|
|
403
|
-
z17.tuple([
|
|
404
|
-
|
|
405
|
-
])
|
|
406
|
-
z17.tuple([
|
|
407
|
-
AddressToStringSchema,
|
|
408
|
-
z17.number()
|
|
409
|
-
]),
|
|
410
|
-
z17.tuple([
|
|
411
|
-
AddressToStringSchema,
|
|
412
|
-
z17.number(),
|
|
413
|
-
z17.boolean()
|
|
414
|
-
])
|
|
345
|
+
z17.tuple([AddressToStringSchema]),
|
|
346
|
+
z17.tuple([AddressToStringSchema, z17.number()]),
|
|
347
|
+
z17.tuple([AddressToStringSchema, z17.number(), z17.boolean()])
|
|
415
348
|
])
|
|
416
349
|
},
|
|
417
350
|
result: {
|
|
@@ -422,32 +355,14 @@ var XyoViewerRpcSchemas = {
|
|
|
422
355
|
xyoViewer_accountHistory: {
|
|
423
356
|
params: {
|
|
424
357
|
to: z17.union([
|
|
425
|
-
z17.tuple([
|
|
426
|
-
|
|
427
|
-
])
|
|
428
|
-
z17.tuple([
|
|
429
|
-
AddressToStringSchema,
|
|
430
|
-
z17.number()
|
|
431
|
-
]),
|
|
432
|
-
z17.tuple([
|
|
433
|
-
AddressToStringSchema,
|
|
434
|
-
z17.number(),
|
|
435
|
-
z17.boolean()
|
|
436
|
-
])
|
|
358
|
+
z17.tuple([AddressToStringSchema]),
|
|
359
|
+
z17.tuple([AddressToStringSchema, z17.number()]),
|
|
360
|
+
z17.tuple([AddressToStringSchema, z17.number(), z17.boolean()])
|
|
437
361
|
]),
|
|
438
362
|
from: z17.union([
|
|
439
|
-
z17.tuple([
|
|
440
|
-
|
|
441
|
-
])
|
|
442
|
-
z17.tuple([
|
|
443
|
-
AddressToStringSchema,
|
|
444
|
-
z17.number()
|
|
445
|
-
]),
|
|
446
|
-
z17.tuple([
|
|
447
|
-
AddressToStringSchema,
|
|
448
|
-
z17.number(),
|
|
449
|
-
z17.boolean()
|
|
450
|
-
])
|
|
363
|
+
z17.tuple([AddressToStringSchema]),
|
|
364
|
+
z17.tuple([AddressToStringSchema, z17.number()]),
|
|
365
|
+
z17.tuple([AddressToStringSchema, z17.number(), z17.boolean()])
|
|
451
366
|
])
|
|
452
367
|
},
|
|
453
368
|
result: {
|
|
@@ -457,12 +372,8 @@ var XyoViewerRpcSchemas = {
|
|
|
457
372
|
},
|
|
458
373
|
xyoViewer_blockByHash: {
|
|
459
374
|
params: {
|
|
460
|
-
to: z17.tuple([
|
|
461
|
-
|
|
462
|
-
]),
|
|
463
|
-
from: z17.tuple([
|
|
464
|
-
HashFromStringSchema
|
|
465
|
-
])
|
|
375
|
+
to: z17.tuple([HashToStringSchema]),
|
|
376
|
+
from: z17.tuple([HashFromStringSchema])
|
|
466
377
|
},
|
|
467
378
|
result: {
|
|
468
379
|
to: SignedHydratedBlockSchema,
|
|
@@ -471,12 +382,8 @@ var XyoViewerRpcSchemas = {
|
|
|
471
382
|
},
|
|
472
383
|
xyoViewer_blockByNumber: {
|
|
473
384
|
params: {
|
|
474
|
-
to: z17.tuple([
|
|
475
|
-
|
|
476
|
-
]),
|
|
477
|
-
from: z17.tuple([
|
|
478
|
-
z17.number()
|
|
479
|
-
])
|
|
385
|
+
to: z17.tuple([z17.number()]),
|
|
386
|
+
from: z17.tuple([z17.number()])
|
|
480
387
|
},
|
|
481
388
|
result: {
|
|
482
389
|
to: SignedHydratedBlockSchema,
|
|
@@ -485,14 +392,8 @@ var XyoViewerRpcSchemas = {
|
|
|
485
392
|
},
|
|
486
393
|
xyoViewer_blocksByHash: {
|
|
487
394
|
params: {
|
|
488
|
-
to: z17.tuple([
|
|
489
|
-
|
|
490
|
-
z17.number().optional()
|
|
491
|
-
]),
|
|
492
|
-
from: z17.tuple([
|
|
493
|
-
HashFromStringSchema,
|
|
494
|
-
z17.number().optional()
|
|
495
|
-
])
|
|
395
|
+
to: z17.tuple([HashToStringSchema, z17.number().optional()]),
|
|
396
|
+
from: z17.tuple([HashFromStringSchema, z17.number().optional()])
|
|
496
397
|
},
|
|
497
398
|
result: {
|
|
498
399
|
to: z17.array(SignedHydratedBlockSchema),
|
|
@@ -541,14 +442,8 @@ var XyoViewerRpcSchemas = {
|
|
|
541
442
|
},
|
|
542
443
|
xyoViewer_transactionByBlockHashAndIndex: {
|
|
543
444
|
params: {
|
|
544
|
-
to: z17.tuple([
|
|
545
|
-
|
|
546
|
-
z17.number()
|
|
547
|
-
]),
|
|
548
|
-
from: z17.tuple([
|
|
549
|
-
HashFromStringSchema,
|
|
550
|
-
z17.number()
|
|
551
|
-
])
|
|
445
|
+
to: z17.tuple([HashToStringSchema, z17.number()]),
|
|
446
|
+
from: z17.tuple([HashFromStringSchema, z17.number()])
|
|
552
447
|
},
|
|
553
448
|
result: {
|
|
554
449
|
to: SignedHydratedTransactionSchema.nullable(),
|
|
@@ -557,14 +452,8 @@ var XyoViewerRpcSchemas = {
|
|
|
557
452
|
},
|
|
558
453
|
xyoViewer_transactionByBlockNumberAndIndex: {
|
|
559
454
|
params: {
|
|
560
|
-
to: z17.tuple([
|
|
561
|
-
|
|
562
|
-
z17.number()
|
|
563
|
-
]),
|
|
564
|
-
from: z17.tuple([
|
|
565
|
-
z17.number(),
|
|
566
|
-
z17.number()
|
|
567
|
-
])
|
|
455
|
+
to: z17.tuple([z17.number(), z17.number()]),
|
|
456
|
+
from: z17.tuple([z17.number(), z17.number()])
|
|
568
457
|
},
|
|
569
458
|
result: {
|
|
570
459
|
to: SignedHydratedTransactionSchema.nullable(),
|
|
@@ -573,12 +462,8 @@ var XyoViewerRpcSchemas = {
|
|
|
573
462
|
},
|
|
574
463
|
xyoViewer_transactionByHash: {
|
|
575
464
|
params: {
|
|
576
|
-
to: z17.tuple([
|
|
577
|
-
|
|
578
|
-
]),
|
|
579
|
-
from: z17.tuple([
|
|
580
|
-
HashFromStringSchema
|
|
581
|
-
])
|
|
465
|
+
to: z17.tuple([HashToStringSchema]),
|
|
466
|
+
from: z17.tuple([HashFromStringSchema])
|
|
582
467
|
},
|
|
583
468
|
result: {
|
|
584
469
|
to: SignedHydratedTransactionSchema.nullable(),
|
|
@@ -597,55 +482,40 @@ var AllRpcSchemas = {
|
|
|
597
482
|
|
|
598
483
|
// src/types/schema/createRequestSchema.ts
|
|
599
484
|
import { z as z18 } from "zod";
|
|
600
|
-
var createRequestSchema =
|
|
601
|
-
id: z18.union([
|
|
602
|
-
z18.string(),
|
|
603
|
-
z18.number()
|
|
604
|
-
]),
|
|
485
|
+
var createRequestSchema = (methodName, paramsSchema = z18.undefined()) => z18.object({
|
|
486
|
+
id: z18.union([z18.string(), z18.number()]),
|
|
605
487
|
jsonrpc: z18.literal(jsonrpc),
|
|
606
488
|
method: z18.literal(methodName),
|
|
607
489
|
params: paramsSchema
|
|
608
|
-
})
|
|
490
|
+
});
|
|
609
491
|
|
|
610
492
|
// src/types/schema/createResponseSchema.ts
|
|
611
493
|
import { z as z19 } from "zod";
|
|
612
|
-
var createResponseSchema =
|
|
613
|
-
id: z19.union([
|
|
614
|
-
z19.string(),
|
|
615
|
-
z19.number()
|
|
616
|
-
]),
|
|
494
|
+
var createResponseSchema = (resultSchema = z19.undefined()) => z19.object({
|
|
495
|
+
id: z19.union([z19.string(), z19.number()]),
|
|
617
496
|
jsonrpc: z19.literal(jsonrpc),
|
|
618
497
|
result: resultSchema
|
|
619
|
-
})
|
|
498
|
+
});
|
|
620
499
|
|
|
621
500
|
// src/types/schema/XyoGatewayRpcSchemas.ts
|
|
622
501
|
import { z as z20 } from "zod";
|
|
623
502
|
var ChainConnectionSchema = z20.object({
|
|
624
|
-
chainId: z20.union([
|
|
625
|
-
z20.string(),
|
|
626
|
-
z20.custom()
|
|
627
|
-
]).optional(),
|
|
503
|
+
chainId: z20.union([z20.string(), z20.custom()]).optional(),
|
|
628
504
|
name: z20.string(),
|
|
629
505
|
url: z20.string()
|
|
630
506
|
});
|
|
631
|
-
var CaveatTypesSchema = z20.enum([
|
|
632
|
-
"chain",
|
|
633
|
-
"expiration",
|
|
634
|
-
"filteredResponse",
|
|
635
|
-
"rateLimit"
|
|
636
|
-
]);
|
|
507
|
+
var CaveatTypesSchema = z20.enum(["chain", "expiration", "filteredResponse", "rateLimit"]);
|
|
637
508
|
var CaveatsSchema = z20.object({
|
|
638
509
|
type: CaveatTypesSchema,
|
|
639
510
|
value: z20.unknown()
|
|
511
|
+
// JsonValue is usually unknown, adjust if you have a stricter type
|
|
640
512
|
});
|
|
641
513
|
var PermissionSchema = z20.object({
|
|
642
514
|
capability: z20.string(),
|
|
643
515
|
caveats: CaveatsSchema.array().optional(),
|
|
644
516
|
invoker: z20.string()
|
|
645
517
|
});
|
|
646
|
-
var InvokerPermissionSchema = PermissionSchema.extend({
|
|
647
|
-
date: z20.number().optional()
|
|
648
|
-
});
|
|
518
|
+
var InvokerPermissionSchema = PermissionSchema.extend({ date: z20.number().optional() });
|
|
649
519
|
var XyoGatewayRpcSchemas = {
|
|
650
520
|
/*
|
|
651
521
|
xyoGateway_addConnection: {
|
|
@@ -711,8 +581,12 @@ var XyoGatewayRpcSchemas = {
|
|
|
711
581
|
*/
|
|
712
582
|
xyoGateway_submitTransaction: {
|
|
713
583
|
params: {
|
|
714
|
-
from: z20.array(
|
|
715
|
-
|
|
584
|
+
from: z20.array(
|
|
585
|
+
HydratedTransactionSchema
|
|
586
|
+
),
|
|
587
|
+
to: z20.array(
|
|
588
|
+
HydratedTransactionSchema
|
|
589
|
+
)
|
|
716
590
|
},
|
|
717
591
|
result: {
|
|
718
592
|
from: BlockBoundWitnessSchema,
|
|
@@ -722,76 +596,67 @@ var XyoGatewayRpcSchemas = {
|
|
|
722
596
|
};
|
|
723
597
|
|
|
724
598
|
// src/engine/rpcEngineFromProvider.ts
|
|
725
|
-
var rpcEngineFromProvider =
|
|
599
|
+
var rpcEngineFromProvider = (provider) => {
|
|
726
600
|
const engine = new JsonRpcEngine();
|
|
727
601
|
const handlers = rpcMethodHandlersFromProvider(provider);
|
|
728
|
-
engine.push(
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
requestSchema
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
602
|
+
engine.push(
|
|
603
|
+
createAsyncMiddleware(async (req, res) => {
|
|
604
|
+
const method = req.method;
|
|
605
|
+
const handler = handlers[method];
|
|
606
|
+
const schema = AllRpcSchemas[method];
|
|
607
|
+
if (schema === void 0 || handler === void 0) {
|
|
608
|
+
res.error = JsonRpcErrorCodes.MethodNotFound;
|
|
609
|
+
return;
|
|
610
|
+
}
|
|
611
|
+
let requestSchema = requestSchemas[method];
|
|
612
|
+
if (requestSchema == void 0) {
|
|
613
|
+
requestSchema = createRequestSchema(method, schema.params.from);
|
|
614
|
+
requestSchemas[method] = requestSchema;
|
|
615
|
+
}
|
|
616
|
+
const parsed = requestSchema.safeParse(req);
|
|
617
|
+
if (!parsed.success) {
|
|
618
|
+
res.error = {
|
|
619
|
+
// Return invalid params error
|
|
620
|
+
...JsonRpcErrorCodes.InvalidParams,
|
|
621
|
+
// with the specific validation error message
|
|
622
|
+
message: parsed.error.message
|
|
623
|
+
};
|
|
624
|
+
return;
|
|
625
|
+
}
|
|
626
|
+
const { params } = parsed.data;
|
|
627
|
+
const result = await handler(params);
|
|
628
|
+
res.result = schema.result.to.parse(result);
|
|
629
|
+
})
|
|
630
|
+
);
|
|
755
631
|
return engine;
|
|
756
|
-
}
|
|
632
|
+
};
|
|
757
633
|
|
|
758
634
|
// src/provider/client/MemoryXyoClient.ts
|
|
759
635
|
var MemoryXyoClient = class {
|
|
760
|
-
static {
|
|
761
|
-
__name(this, "MemoryXyoClient");
|
|
762
|
-
}
|
|
763
636
|
gateways;
|
|
764
|
-
|
|
765
|
-
constructor(gateways,
|
|
637
|
+
permissions;
|
|
638
|
+
constructor(gateways, permissions) {
|
|
766
639
|
this.gateways = gateways;
|
|
767
|
-
this.
|
|
640
|
+
this.permissions = permissions;
|
|
768
641
|
}
|
|
769
642
|
};
|
|
770
643
|
|
|
771
644
|
// src/provider/client/PermissionsStore/getPermissionsStoreFromTransport.ts
|
|
772
|
-
var getPermissionsStoreFromTransport =
|
|
645
|
+
var getPermissionsStoreFromTransport = (_transport) => {
|
|
773
646
|
throw new Error("Not implemented");
|
|
774
|
-
}
|
|
647
|
+
};
|
|
775
648
|
|
|
776
649
|
// src/provider/client/PermissionsStore/MemoryPermissionsStore.ts
|
|
777
650
|
var MemoryPermissionsStore = class {
|
|
778
|
-
static {
|
|
779
|
-
__name(this, "MemoryPermissionsStore");
|
|
780
|
-
}
|
|
781
651
|
_store = /* @__PURE__ */ new Map();
|
|
782
652
|
getPermissions() {
|
|
783
|
-
return [
|
|
784
|
-
...this._store.values()
|
|
785
|
-
];
|
|
653
|
+
return [...this._store.values()];
|
|
786
654
|
}
|
|
787
655
|
requestPermissions(permissions) {
|
|
788
656
|
const now = Date.now();
|
|
789
657
|
for (const perm of permissions) {
|
|
790
658
|
const key = this.getKey(perm);
|
|
791
|
-
this._store.set(key, {
|
|
792
|
-
...perm,
|
|
793
|
-
date: now
|
|
794
|
-
});
|
|
659
|
+
this._store.set(key, { ...perm, date: now });
|
|
795
660
|
}
|
|
796
661
|
return true;
|
|
797
662
|
}
|
|
@@ -807,132 +672,9 @@ var MemoryPermissionsStore = class {
|
|
|
807
672
|
}
|
|
808
673
|
};
|
|
809
674
|
|
|
810
|
-
// src/provider/
|
|
811
|
-
import {
|
|
812
|
-
|
|
813
|
-
static {
|
|
814
|
-
__name(this, "AbstractXyoGateway");
|
|
815
|
-
}
|
|
816
|
-
activeConnection() {
|
|
817
|
-
throw new Error("Deprecated method not implemented.");
|
|
818
|
-
}
|
|
819
|
-
addConnection(_config) {
|
|
820
|
-
throw new Error("Deprecated method not implemented.");
|
|
821
|
-
}
|
|
822
|
-
connections() {
|
|
823
|
-
throw new Error("Deprecated method not implemented.");
|
|
824
|
-
}
|
|
825
|
-
getPermissions() {
|
|
826
|
-
throw new Error("Deprecated method not implemented.");
|
|
827
|
-
}
|
|
828
|
-
requestPermissions(_permissions) {
|
|
829
|
-
throw new Error("Deprecated method not implemented.");
|
|
830
|
-
}
|
|
831
|
-
revokePermissions(_permissions) {
|
|
832
|
-
throw new Error("Deprecated method not implemented.");
|
|
833
|
-
}
|
|
834
|
-
async submitTransaction(elevatedPayloads, additionalPayloads) {
|
|
835
|
-
const connection = await this.connection();
|
|
836
|
-
assertEx(connection.submitTransaction, () => "Active connection does not support transaction submission");
|
|
837
|
-
const tx = await connection.submitTransaction?.(elevatedPayloads, additionalPayloads);
|
|
838
|
-
return assertEx(tx, () => "Transaction submission failed");
|
|
839
|
-
}
|
|
840
|
-
};
|
|
841
|
-
|
|
842
|
-
// src/provider/host/MemoryXyoGateway.ts
|
|
843
|
-
var MemoryXyoGateway = class extends AbstractXyoGateway {
|
|
844
|
-
static {
|
|
845
|
-
__name(this, "MemoryXyoGateway");
|
|
846
|
-
}
|
|
847
|
-
_connection;
|
|
848
|
-
_signer;
|
|
849
|
-
constructor(signer, connection) {
|
|
850
|
-
super();
|
|
851
|
-
this._signer = signer;
|
|
852
|
-
this._connection = connection;
|
|
853
|
-
}
|
|
854
|
-
connection() {
|
|
855
|
-
return this._connection;
|
|
856
|
-
}
|
|
857
|
-
signer() {
|
|
858
|
-
return this._signer;
|
|
859
|
-
}
|
|
860
|
-
};
|
|
861
|
-
|
|
862
|
-
// src/provider/network/MemoryXyoNetwork.ts
|
|
863
|
-
import { isUndefined } from "@xylabs/typeof";
|
|
864
|
-
import { isNetworkStatus } from "@xyo-network/xl1-protocol";
|
|
865
|
-
import axios from "axios";
|
|
866
|
-
|
|
867
|
-
// src/provider/network/lib/FailedNetworkStatusPayloads.ts
|
|
868
|
-
import { NetworkStatusSchema } from "@xyo-network/xl1-protocol";
|
|
869
|
-
var unknownStatus = {
|
|
870
|
-
description: "Unknown Network Status",
|
|
871
|
-
schema: NetworkStatusSchema,
|
|
872
|
-
state: "unknown"
|
|
873
|
-
};
|
|
874
|
-
var errorStatus = {
|
|
875
|
-
description: "Error Fetching Network Status",
|
|
876
|
-
schema: NetworkStatusSchema,
|
|
877
|
-
state: "unknown"
|
|
878
|
-
};
|
|
879
|
-
|
|
880
|
-
// src/provider/network/lib/StatusNetworks.ts
|
|
881
|
-
var MainNetworkStats = {
|
|
882
|
-
id: "mainnet",
|
|
883
|
-
statusUrl: "https://xyo.network/chain-network-status-mainnet.json"
|
|
884
|
-
};
|
|
885
|
-
var SequenceNetworkStats = {
|
|
886
|
-
id: "sequence",
|
|
887
|
-
statusUrl: "https://beta.xyo.network/chain-network-status-sequence.json"
|
|
888
|
-
};
|
|
889
|
-
var LocalNetworkStats = {
|
|
890
|
-
id: "local",
|
|
891
|
-
statusUrl: "http://localhost:3002/chain-network-status-local.json"
|
|
892
|
-
};
|
|
893
|
-
var StatusNetworks = {
|
|
894
|
-
mainnet: MainNetworkStats,
|
|
895
|
-
sequence: SequenceNetworkStats,
|
|
896
|
-
local: LocalNetworkStats
|
|
897
|
-
};
|
|
898
|
-
|
|
899
|
-
// src/provider/network/MemoryXyoNetwork.ts
|
|
900
|
-
var MemoryXyoNetwork = class {
|
|
901
|
-
static {
|
|
902
|
-
__name(this, "MemoryXyoNetwork");
|
|
903
|
-
}
|
|
904
|
-
_networkId;
|
|
905
|
-
constructor(networkId) {
|
|
906
|
-
this._networkId = networkId;
|
|
907
|
-
}
|
|
908
|
-
async status() {
|
|
909
|
-
const statusNetwork = StatusNetworks[this._networkId];
|
|
910
|
-
if (isUndefined(statusNetwork)) {
|
|
911
|
-
throw new Error(`Unknown status network ID: ${this._networkId}`);
|
|
912
|
-
}
|
|
913
|
-
return await this.makeRequest(statusNetwork.statusUrl);
|
|
914
|
-
}
|
|
915
|
-
async makeRequest(url) {
|
|
916
|
-
try {
|
|
917
|
-
const response = await axios.get(url);
|
|
918
|
-
if (isNetworkStatus(response.data)) {
|
|
919
|
-
return response.data;
|
|
920
|
-
} else {
|
|
921
|
-
if (response.status === 200) {
|
|
922
|
-
console.error("Unknown network status response:", response.data);
|
|
923
|
-
return unknownStatus;
|
|
924
|
-
}
|
|
925
|
-
return errorStatus;
|
|
926
|
-
}
|
|
927
|
-
} catch (error) {
|
|
928
|
-
console.error("Error fetching network status:", error);
|
|
929
|
-
return errorStatus;
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
};
|
|
933
|
-
|
|
934
|
-
// src/provider/provider/HttpRpcXyoConnection.ts
|
|
935
|
-
import { isDefined as isDefined2 } from "@xylabs/typeof";
|
|
675
|
+
// src/provider/connection/HttpRpcXyoConnection.ts
|
|
676
|
+
import { isDefined as isDefined3, isString } from "@xylabs/typeof";
|
|
677
|
+
import { isDataLakeProvider as isDataLakeProvider2 } from "@xyo-network/xl1-protocol";
|
|
936
678
|
|
|
937
679
|
// src/transport/HttpRpcTransport.ts
|
|
938
680
|
import { AxiosJson } from "@xylabs/axios";
|
|
@@ -940,9 +682,6 @@ import { isError, isUndefinedOrNull } from "@xylabs/typeof";
|
|
|
940
682
|
import { isAxiosError } from "axios";
|
|
941
683
|
import { v4 } from "uuid";
|
|
942
684
|
var HttpRpcTransport = class {
|
|
943
|
-
static {
|
|
944
|
-
__name(this, "HttpRpcTransport");
|
|
945
|
-
}
|
|
946
685
|
_rpcUrl;
|
|
947
686
|
_schemas;
|
|
948
687
|
constructor(rpcUrl, schemas) {
|
|
@@ -983,9 +722,6 @@ var HttpRpcTransport = class {
|
|
|
983
722
|
import { isObject } from "@xylabs/typeof";
|
|
984
723
|
import { v4 as v42 } from "uuid";
|
|
985
724
|
var MemoryRpcTransport = class {
|
|
986
|
-
static {
|
|
987
|
-
__name(this, "MemoryRpcTransport");
|
|
988
|
-
}
|
|
989
725
|
_rpcEngine;
|
|
990
726
|
_schemas;
|
|
991
727
|
requestSchemas = {};
|
|
@@ -1018,35 +754,45 @@ var MemoryRpcTransport = class {
|
|
|
1018
754
|
}
|
|
1019
755
|
};
|
|
1020
756
|
|
|
1021
|
-
// src/transport/post-message/
|
|
757
|
+
// src/transport/post-message/LegacyPostMessageRpcTransport.ts
|
|
758
|
+
import {
|
|
759
|
+
isJsonRpcError,
|
|
760
|
+
isJsonRpcSuccess
|
|
761
|
+
} from "@metamask/utils";
|
|
1022
762
|
import { isDefined } from "@xylabs/typeof";
|
|
1023
763
|
import { v4 as v43 } from "uuid";
|
|
1024
764
|
|
|
1025
765
|
// src/transport/post-message/helpers.ts
|
|
1026
|
-
var isRpcError =
|
|
766
|
+
var isRpcError = (data) => {
|
|
1027
767
|
return data && typeof data === "object" && "error" in data && data.error;
|
|
1028
|
-
}
|
|
768
|
+
};
|
|
1029
769
|
|
|
1030
|
-
// src/transport/post-message/
|
|
1031
|
-
var
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
770
|
+
// src/transport/post-message/resolveData.ts
|
|
771
|
+
var hasMatchingId = (eventData, targetId) => {
|
|
772
|
+
return eventData?.id === targetId ? { legacyEventData: eventData } : false;
|
|
773
|
+
};
|
|
774
|
+
var hasMatchingNestedId = (eventData, targetId) => {
|
|
775
|
+
return eventData?.data?.id === targetId ? { eventData: eventData.data } : false;
|
|
776
|
+
};
|
|
777
|
+
var resolvedEvent = (event, targetId) => {
|
|
778
|
+
return hasMatchingId(event.data, targetId) || hasMatchingNestedId(event.data, targetId);
|
|
779
|
+
};
|
|
1039
780
|
|
|
1040
|
-
// src/transport/post-message/
|
|
1041
|
-
var
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
781
|
+
// src/transport/post-message/LegacyPostMessageRpcTransport.ts
|
|
782
|
+
var isValidBaseRpcEvent = (data) => {
|
|
783
|
+
return !!(data && typeof data === "object" && "jsonrpc" in data && data.jsonrpc === "2.0" && "method" in data && typeof data.method === "string" && "id" in data && typeof data.id === "string");
|
|
784
|
+
};
|
|
785
|
+
var isRpcResponse = (data, targetId) => {
|
|
786
|
+
return isValidBaseRpcEvent(data) && (isDefined(targetId) ? data.id === targetId : true) && "result" in data && Array.isArray(data.result);
|
|
787
|
+
};
|
|
788
|
+
var LegacyPostMessageRpcTransport = class {
|
|
1045
789
|
destination;
|
|
1046
790
|
schemas;
|
|
1047
|
-
|
|
791
|
+
sessionId;
|
|
792
|
+
constructor(defaultDestination, schemas = XyoGatewayRpcSchemas, sessionId) {
|
|
1048
793
|
this.schemas = schemas;
|
|
1049
794
|
this.destination = defaultDestination;
|
|
795
|
+
this.sessionId = sessionId;
|
|
1050
796
|
}
|
|
1051
797
|
async sendRequest(method, params) {
|
|
1052
798
|
const id = v43();
|
|
@@ -1061,72 +807,234 @@ var PostMessageRpcTransport = class {
|
|
|
1061
807
|
body.params = isDefined(params) && isDefined(schemas[method]) ? schemas[method].params.to.parse(params) : params;
|
|
1062
808
|
return await new Promise((resolve, reject) => {
|
|
1063
809
|
const id2 = body.id;
|
|
1064
|
-
const handler =
|
|
810
|
+
const handler = (event) => {
|
|
1065
811
|
if (event.origin !== globalThis.window.origin) return;
|
|
1066
|
-
if (event.data
|
|
812
|
+
if (!isRpcResponse(event.data, id2)) return;
|
|
813
|
+
const data = resolvedEvent(event, id2);
|
|
814
|
+
if (data === false) return;
|
|
1067
815
|
globalThis.removeEventListener("message", handler);
|
|
1068
|
-
if (
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
816
|
+
if (data.legacyEventData) {
|
|
817
|
+
if (data.legacyEventData.result.some(isRpcError)) {
|
|
818
|
+
reject(data.legacyEventData.result[0]);
|
|
819
|
+
} else {
|
|
820
|
+
resolve(data.legacyEventData.result[0]);
|
|
821
|
+
}
|
|
822
|
+
return;
|
|
1072
823
|
}
|
|
1073
|
-
|
|
824
|
+
if (data.eventData) {
|
|
825
|
+
if (isJsonRpcError(data.eventData)) {
|
|
826
|
+
reject(data.eventData);
|
|
827
|
+
return;
|
|
828
|
+
}
|
|
829
|
+
if (isJsonRpcSuccess(data.eventData)) {
|
|
830
|
+
resolve(data.eventData);
|
|
831
|
+
return;
|
|
832
|
+
}
|
|
833
|
+
reject(new Error("Unexpected response format"));
|
|
834
|
+
}
|
|
835
|
+
};
|
|
1074
836
|
globalThis.addEventListener("message", handler);
|
|
1075
|
-
globalThis.postMessage(
|
|
837
|
+
globalThis.postMessage(
|
|
838
|
+
{
|
|
839
|
+
data: body,
|
|
840
|
+
destination: this.destination,
|
|
841
|
+
sessionId: this.sessionId
|
|
842
|
+
},
|
|
843
|
+
globalThis.location.origin
|
|
844
|
+
);
|
|
845
|
+
});
|
|
846
|
+
}
|
|
847
|
+
};
|
|
848
|
+
var PostMessageRpcTransport = LegacyPostMessageRpcTransport;
|
|
849
|
+
|
|
850
|
+
// src/transport/post-message/SessionEnvelope.ts
|
|
851
|
+
var buildSessionMessageRequest = (data, destination) => {
|
|
852
|
+
const request = {
|
|
853
|
+
data,
|
|
854
|
+
destination,
|
|
855
|
+
sessionId: globalThis.xyo.walletExtensionId() ?? ""
|
|
856
|
+
};
|
|
857
|
+
return request;
|
|
858
|
+
};
|
|
859
|
+
|
|
860
|
+
// src/provider/datalake/AbstractXyoDataLake.ts
|
|
861
|
+
import { ObjectHasher } from "@xyo-network/hash";
|
|
862
|
+
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
863
|
+
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
864
|
+
import {
|
|
865
|
+
isHashPayload
|
|
866
|
+
} from "@xyo-network/xl1-protocol";
|
|
867
|
+
var AbstractXyoDataLake = class {
|
|
868
|
+
async fetch(hashes, maxDepth = 10) {
|
|
869
|
+
const results = await this.get(hashes);
|
|
870
|
+
if (maxDepth > 0) {
|
|
871
|
+
const hashPayloads = results.filter(isHashPayload);
|
|
872
|
+
const otherPayloads = results.filter((item) => !isHashPayload(item));
|
|
873
|
+
const found = await this.fetch(hashPayloads.map((item) => item.hash), maxDepth - 1);
|
|
874
|
+
const foundHashes = await Promise.all(found.map(async (item) => isAnyPayload(item) ? await PayloadBuilder.hash(item) : ObjectHasher.hashBytes(item)));
|
|
875
|
+
const notFound = hashPayloads.filter((item) => !foundHashes.includes(item.hash));
|
|
876
|
+
return [...otherPayloads, ...found, ...notFound];
|
|
877
|
+
}
|
|
878
|
+
return results;
|
|
879
|
+
}
|
|
880
|
+
async trace(hash) {
|
|
881
|
+
const [result] = await this.get([hash]);
|
|
882
|
+
if (isHashPayload(result)) {
|
|
883
|
+
const [payload, route] = await this.trace(result.hash);
|
|
884
|
+
return [payload, [result, ...route]];
|
|
885
|
+
}
|
|
886
|
+
return [result, []];
|
|
887
|
+
}
|
|
888
|
+
};
|
|
889
|
+
|
|
890
|
+
// src/provider/datalake/ArchivistXyoDataLake.ts
|
|
891
|
+
import { assertEx } from "@xylabs/assert";
|
|
892
|
+
import { isAnyPayload as isAnyPayload2 } from "@xyo-network/payload-model";
|
|
893
|
+
var ArchivistXyoDataLake = class extends AbstractXyoDataLake {
|
|
894
|
+
_archivist;
|
|
895
|
+
constructor(archivist) {
|
|
896
|
+
super();
|
|
897
|
+
this._archivist = archivist;
|
|
898
|
+
}
|
|
899
|
+
async add(items) {
|
|
900
|
+
const payloads = items.filter(isAnyPayload2);
|
|
901
|
+
assertEx(payloads.length === items.length, () => "Some items are not payloads");
|
|
902
|
+
return await this._archivist.insert(payloads);
|
|
903
|
+
}
|
|
904
|
+
async get(hashes) {
|
|
905
|
+
return await this._archivist.get(hashes);
|
|
906
|
+
}
|
|
907
|
+
};
|
|
908
|
+
|
|
909
|
+
// src/provider/datalake/HttpXyoDataLake.ts
|
|
910
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
911
|
+
import { AxiosJson as AxiosJson2 } from "@xylabs/axios";
|
|
912
|
+
import { exists } from "@xylabs/exists";
|
|
913
|
+
import { isArrayBuffer, isDefined as isDefined2 } from "@xylabs/typeof";
|
|
914
|
+
import { isAnyPayload as isAnyPayload3 } from "@xyo-network/payload-model";
|
|
915
|
+
import { isHashPayload as isHashPayload2 } from "@xyo-network/xl1-protocol";
|
|
916
|
+
import { Axios } from "axios";
|
|
917
|
+
var HttpXyoDataLake = class extends AbstractXyoDataLake {
|
|
918
|
+
_axiosGet;
|
|
919
|
+
_axiosInsertBlob;
|
|
920
|
+
_axiosInsertJson;
|
|
921
|
+
_endpoint;
|
|
922
|
+
constructor(endpoint) {
|
|
923
|
+
super();
|
|
924
|
+
this._endpoint = endpoint;
|
|
925
|
+
this._axiosInsertJson = new AxiosJson2({ baseURL: endpoint });
|
|
926
|
+
this._axiosInsertBlob = new Axios({ baseURL: endpoint, headers: { "Content-Type": "application/octet-stream", "Accept": "application/octet-stream" } });
|
|
927
|
+
this._axiosGet = new Axios({ baseURL: endpoint, headers: { "Content-Type": "application/json", "Accept": "application/octet-stream, application/json" } });
|
|
928
|
+
}
|
|
929
|
+
get endpoint() {
|
|
930
|
+
return this._endpoint;
|
|
931
|
+
}
|
|
932
|
+
async add(items) {
|
|
933
|
+
const results = [];
|
|
934
|
+
for (const item of items) {
|
|
935
|
+
if (isAnyPayload3(item)) {
|
|
936
|
+
const result = await this.addPayload(item);
|
|
937
|
+
if (isAnyPayload3(result)) {
|
|
938
|
+
results.push(result);
|
|
939
|
+
} else if (isDefined2(result)) {
|
|
940
|
+
assertEx2(false, () => "Expected result to be a Payload");
|
|
941
|
+
}
|
|
942
|
+
} else if (isArrayBuffer(item)) {
|
|
943
|
+
const result = await this.addArrayBuffer(item);
|
|
944
|
+
if (isAnyPayload3(result)) {
|
|
945
|
+
results.push(result);
|
|
946
|
+
} else if (isDefined2(result)) {
|
|
947
|
+
assertEx2(false, () => "Expected result to be a Payload");
|
|
948
|
+
}
|
|
949
|
+
}
|
|
950
|
+
}
|
|
951
|
+
return results;
|
|
952
|
+
}
|
|
953
|
+
async get(hashes) {
|
|
954
|
+
return (await Promise.all(hashes.map(async (hash) => {
|
|
955
|
+
return await this.getOne(hash);
|
|
956
|
+
}))).filter(exists);
|
|
957
|
+
}
|
|
958
|
+
async addArrayBuffer(item) {
|
|
959
|
+
const result = await this._axiosInsertBlob.post("/insert", item);
|
|
960
|
+
if (result.status < 200 || result.status >= 300) {
|
|
961
|
+
throw new Error(`Failed to add items [${result.status}]: ${result.statusText}`);
|
|
962
|
+
}
|
|
963
|
+
if (!isArrayBuffer(result.data)) {
|
|
964
|
+
throw new Error("Invalid response from server (expected a ArrayBuffer)");
|
|
965
|
+
}
|
|
966
|
+
return result.data;
|
|
967
|
+
}
|
|
968
|
+
async addPayload(item) {
|
|
969
|
+
const result = await this._axiosInsertJson.post("/insert", item);
|
|
970
|
+
if (result.status < 200 || result.status >= 300) {
|
|
971
|
+
throw new Error(`Failed to add items [${result.status}]: ${result.statusText}`);
|
|
972
|
+
}
|
|
973
|
+
if (!isAnyPayload3(result.data)) {
|
|
974
|
+
throw new Error("Invalid response from server (expected a Payload)");
|
|
975
|
+
}
|
|
976
|
+
return result.data;
|
|
977
|
+
}
|
|
978
|
+
async fetchOne(hash, maxDepth = Number.MAX_SAFE_INTEGER) {
|
|
979
|
+
if (maxDepth <= 0) {
|
|
980
|
+
return void 0;
|
|
981
|
+
}
|
|
982
|
+
const result = await this.getOne(hash);
|
|
983
|
+
if (isHashPayload2(result)) {
|
|
984
|
+
return await this.fetchOne(result.hash, maxDepth - 1);
|
|
985
|
+
}
|
|
986
|
+
return result;
|
|
987
|
+
}
|
|
988
|
+
getOne(hash) {
|
|
989
|
+
return this._axiosGet.get(`/get/${hash}`).then((response) => {
|
|
990
|
+
if (response.status < 200 || response.status >= 300) {
|
|
991
|
+
throw new Error(`Failed to get item [${response.status}]: ${response.statusText}`);
|
|
992
|
+
}
|
|
993
|
+
if (!isAnyPayload3(response.data)) {
|
|
994
|
+
throw new Error("Invalid response from server (expected a Payload)");
|
|
995
|
+
}
|
|
996
|
+
return response.data;
|
|
1076
997
|
});
|
|
1077
998
|
}
|
|
1078
999
|
};
|
|
1079
1000
|
|
|
1080
1001
|
// src/provider/runner/JsonRpcXyoRunner.ts
|
|
1081
1002
|
var JsonRpcXyoRunner = class {
|
|
1082
|
-
static {
|
|
1083
|
-
__name(this, "JsonRpcXyoRunner");
|
|
1084
|
-
}
|
|
1085
1003
|
transport;
|
|
1086
1004
|
constructor(transport) {
|
|
1087
1005
|
this.transport = transport;
|
|
1088
1006
|
}
|
|
1089
1007
|
async broadcastTransaction(transaction) {
|
|
1090
|
-
return await this.transport.sendRequest("xyoRunner_broadcastTransaction", [
|
|
1091
|
-
transaction
|
|
1092
|
-
]);
|
|
1008
|
+
return await this.transport.sendRequest("xyoRunner_broadcastTransaction", [transaction]);
|
|
1093
1009
|
}
|
|
1094
1010
|
};
|
|
1095
1011
|
|
|
1096
1012
|
// src/provider/runner/MemoryXyoRunner.ts
|
|
1097
1013
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
1098
|
-
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
1014
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
1099
1015
|
import { flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
1100
1016
|
var MemoryXyoRunner = class {
|
|
1101
|
-
static {
|
|
1102
|
-
__name(this, "MemoryXyoRunner");
|
|
1103
|
-
}
|
|
1104
1017
|
_archivist;
|
|
1105
1018
|
async broadcastTransaction(transaction) {
|
|
1106
1019
|
const archivist = await this.getArchivist();
|
|
1107
1020
|
await archivist.insert(flattenHydratedTransaction(transaction));
|
|
1108
|
-
return await
|
|
1021
|
+
return await PayloadBuilder2.hash(transaction[0]);
|
|
1109
1022
|
}
|
|
1110
1023
|
async getArchivist() {
|
|
1111
1024
|
if (!this._archivist) {
|
|
1112
|
-
this._archivist = await MemoryArchivist.create({
|
|
1113
|
-
account: "random"
|
|
1114
|
-
});
|
|
1025
|
+
this._archivist = await MemoryArchivist.create({ account: "random" });
|
|
1115
1026
|
}
|
|
1116
1027
|
return this._archivist;
|
|
1117
1028
|
}
|
|
1118
1029
|
};
|
|
1119
1030
|
|
|
1120
1031
|
// src/provider/runner/NodeXyoRunner.ts
|
|
1121
|
-
import { assertEx as
|
|
1032
|
+
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
1122
1033
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
1123
|
-
import { PayloadBuilder as
|
|
1034
|
+
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
1124
1035
|
import { PayloadBundleSchema } from "@xyo-network/payload-model";
|
|
1125
1036
|
import { flattenHydratedTransaction as flattenHydratedTransaction2 } from "@xyo-network/xl1-protocol-sdk";
|
|
1126
1037
|
var NodeXyoRunner = class {
|
|
1127
|
-
static {
|
|
1128
|
-
__name(this, "NodeXyoRunner");
|
|
1129
|
-
}
|
|
1130
1038
|
// TODO: Make configurable with defaults
|
|
1131
1039
|
node;
|
|
1132
1040
|
pendingArchivistPath = "XYOChain:Pending:PendingTransactions";
|
|
@@ -1137,33 +1045,28 @@ var NodeXyoRunner = class {
|
|
|
1137
1045
|
async broadcastTransaction(transaction) {
|
|
1138
1046
|
const flattened = flattenHydratedTransaction2(transaction);
|
|
1139
1047
|
const pendingArchivist = await this.getPendingArchivist();
|
|
1140
|
-
const txHash = await
|
|
1048
|
+
const txHash = await PayloadBuilder3.hash(transaction[0]);
|
|
1141
1049
|
const payloadBundle = {
|
|
1142
1050
|
schema: PayloadBundleSchema,
|
|
1143
1051
|
payloads: flattened,
|
|
1144
1052
|
root: txHash
|
|
1145
1053
|
};
|
|
1146
|
-
await pendingArchivist.insert([
|
|
1147
|
-
payloadBundle
|
|
1148
|
-
]);
|
|
1054
|
+
await pendingArchivist.insert([payloadBundle]);
|
|
1149
1055
|
return txHash;
|
|
1150
1056
|
}
|
|
1151
|
-
getArchivist =
|
|
1057
|
+
getArchivist = async (identifier) => {
|
|
1152
1058
|
const archivist = await this.node.resolve(identifier);
|
|
1153
|
-
return
|
|
1154
|
-
}
|
|
1155
|
-
getPendingArchivist =
|
|
1059
|
+
return assertEx3(asArchivistInstance(archivist), () => `Error: Could not resolve ${identifier} to an archivist instance`);
|
|
1060
|
+
};
|
|
1061
|
+
getPendingArchivist = async () => {
|
|
1156
1062
|
if (this._pendingArchivist) return this._pendingArchivist;
|
|
1157
1063
|
this._pendingArchivist = await this.getArchivist(this.pendingArchivistPath);
|
|
1158
|
-
return
|
|
1159
|
-
}
|
|
1064
|
+
return assertEx3(this._pendingArchivist, () => `Error: Could not resolve pending archivist at ${this.pendingArchivistPath}`);
|
|
1065
|
+
};
|
|
1160
1066
|
};
|
|
1161
1067
|
|
|
1162
1068
|
// src/provider/signer/JsonRpcXyoSigner.ts
|
|
1163
1069
|
var RpcXyoSigner = class {
|
|
1164
|
-
static {
|
|
1165
|
-
__name(this, "RpcXyoSigner");
|
|
1166
|
-
}
|
|
1167
1070
|
transport;
|
|
1168
1071
|
constructor(transport) {
|
|
1169
1072
|
this.transport = transport;
|
|
@@ -1187,17 +1090,11 @@ var RpcXyoSigner = class {
|
|
|
1187
1090
|
}
|
|
1188
1091
|
};
|
|
1189
1092
|
var JsonRpcXyoSigner = class extends RpcXyoSigner {
|
|
1190
|
-
static {
|
|
1191
|
-
__name(this, "JsonRpcXyoSigner");
|
|
1192
|
-
}
|
|
1193
1093
|
};
|
|
1194
1094
|
|
|
1195
1095
|
// src/provider/signer/MemoryXyoSigner.ts
|
|
1196
1096
|
import { buildTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
1197
1097
|
var MemoryXyoSigner = class {
|
|
1198
|
-
static {
|
|
1199
|
-
__name(this, "MemoryXyoSigner");
|
|
1200
|
-
}
|
|
1201
1098
|
_account;
|
|
1202
1099
|
constructor(account) {
|
|
1203
1100
|
this._account = account;
|
|
@@ -1207,7 +1104,16 @@ var MemoryXyoSigner = class {
|
|
|
1207
1104
|
}
|
|
1208
1105
|
async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
|
|
1209
1106
|
const fromAddress = from ?? this._account.address;
|
|
1210
|
-
const transaction = await buildTransaction(
|
|
1107
|
+
const transaction = await buildTransaction(
|
|
1108
|
+
chain,
|
|
1109
|
+
elevatedPayloads,
|
|
1110
|
+
additionalPayloads,
|
|
1111
|
+
this._account,
|
|
1112
|
+
nbf,
|
|
1113
|
+
exp,
|
|
1114
|
+
fromAddress,
|
|
1115
|
+
fees
|
|
1116
|
+
);
|
|
1211
1117
|
return transaction[0];
|
|
1212
1118
|
}
|
|
1213
1119
|
signTransaction(_tx) {
|
|
@@ -1217,38 +1123,24 @@ var MemoryXyoSigner = class {
|
|
|
1217
1123
|
|
|
1218
1124
|
// src/provider/viewer/JsonRpcXyoViewer.ts
|
|
1219
1125
|
var JsonRpcXyoViewer = class {
|
|
1220
|
-
static {
|
|
1221
|
-
__name(this, "JsonRpcXyoViewer");
|
|
1222
|
-
}
|
|
1223
1126
|
transport;
|
|
1224
1127
|
constructor(transport) {
|
|
1225
1128
|
this.transport = transport;
|
|
1226
1129
|
}
|
|
1227
1130
|
async accountBalance(address) {
|
|
1228
|
-
return await this.transport.sendRequest("xyoViewer_accountBalance", [
|
|
1229
|
-
address
|
|
1230
|
-
]);
|
|
1131
|
+
return await this.transport.sendRequest("xyoViewer_accountBalance", [address]);
|
|
1231
1132
|
}
|
|
1232
1133
|
async accountHistory(address) {
|
|
1233
|
-
return await this.transport.sendRequest("xyoViewer_accountBalance", [
|
|
1234
|
-
address
|
|
1235
|
-
]);
|
|
1134
|
+
return await this.transport.sendRequest("xyoViewer_accountBalance", [address]);
|
|
1236
1135
|
}
|
|
1237
1136
|
async blockByHash(hash) {
|
|
1238
|
-
return await this.transport.sendRequest("xyoViewer_blockByHash", [
|
|
1239
|
-
hash
|
|
1240
|
-
]);
|
|
1137
|
+
return await this.transport.sendRequest("xyoViewer_blockByHash", [hash]);
|
|
1241
1138
|
}
|
|
1242
1139
|
async blockByNumber(blockNumber) {
|
|
1243
|
-
return await this.transport.sendRequest("xyoViewer_blockByNumber", [
|
|
1244
|
-
blockNumber
|
|
1245
|
-
]);
|
|
1140
|
+
return await this.transport.sendRequest("xyoViewer_blockByNumber", [blockNumber]);
|
|
1246
1141
|
}
|
|
1247
1142
|
async blocksByHash(hash, limit) {
|
|
1248
|
-
return await this.transport.sendRequest("xyoViewer_blocksByHash", [
|
|
1249
|
-
hash,
|
|
1250
|
-
limit
|
|
1251
|
-
]);
|
|
1143
|
+
return await this.transport.sendRequest("xyoViewer_blocksByHash", [hash, limit]);
|
|
1252
1144
|
}
|
|
1253
1145
|
async chainId() {
|
|
1254
1146
|
return await this.transport.sendRequest("xyoViewer_chainId");
|
|
@@ -1263,34 +1155,23 @@ var JsonRpcXyoViewer = class {
|
|
|
1263
1155
|
return await this.transport.sendRequest("xyoViewer_currentBlockNumber");
|
|
1264
1156
|
}
|
|
1265
1157
|
async transactionByBlockHashAndIndex(blockHash, transactionIndex) {
|
|
1266
|
-
return await this.transport.sendRequest("xyoViewer_transactionByBlockHashAndIndex", [
|
|
1267
|
-
blockHash,
|
|
1268
|
-
transactionIndex
|
|
1269
|
-
]);
|
|
1158
|
+
return await this.transport.sendRequest("xyoViewer_transactionByBlockHashAndIndex", [blockHash, transactionIndex]);
|
|
1270
1159
|
}
|
|
1271
1160
|
async transactionByBlockNumberAndIndex(blockNumber, transactionIndex) {
|
|
1272
|
-
return await this.transport.sendRequest("xyoViewer_transactionByBlockNumberAndIndex", [
|
|
1273
|
-
blockNumber,
|
|
1274
|
-
transactionIndex
|
|
1275
|
-
]);
|
|
1161
|
+
return await this.transport.sendRequest("xyoViewer_transactionByBlockNumberAndIndex", [blockNumber, transactionIndex]);
|
|
1276
1162
|
}
|
|
1277
1163
|
async transactionByHash(transactionHash) {
|
|
1278
|
-
return await this.transport.sendRequest("xyoViewer_transactionByHash", [
|
|
1279
|
-
transactionHash
|
|
1280
|
-
]);
|
|
1164
|
+
return await this.transport.sendRequest("xyoViewer_transactionByHash", [transactionHash]);
|
|
1281
1165
|
}
|
|
1282
1166
|
};
|
|
1283
1167
|
|
|
1284
|
-
// src/provider/
|
|
1285
|
-
import { assertEx as
|
|
1286
|
-
import { PayloadBuilder as
|
|
1287
|
-
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
1168
|
+
// src/provider/connection/XyoConnection.ts
|
|
1169
|
+
import { assertEx as assertEx4 } from "@xylabs/assert";
|
|
1170
|
+
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
1171
|
+
import { isAnyPayload as isAnyPayload4 } from "@xyo-network/payload-model";
|
|
1288
1172
|
import { defaultTransactionFees, isDataLakeProvider } from "@xyo-network/xl1-protocol";
|
|
1289
1173
|
import { HydratedTransactionWrapper } from "@xyo-network/xl1-wrappers";
|
|
1290
1174
|
var XyoConnection = class {
|
|
1291
|
-
static {
|
|
1292
|
-
__name(this, "XyoConnection");
|
|
1293
|
-
}
|
|
1294
1175
|
_network;
|
|
1295
1176
|
_runner;
|
|
1296
1177
|
_signer;
|
|
@@ -1309,6 +1190,7 @@ var XyoConnection = class {
|
|
|
1309
1190
|
get runner() {
|
|
1310
1191
|
return this._runner;
|
|
1311
1192
|
}
|
|
1193
|
+
/** @deprecated use signer from gateway instead */
|
|
1312
1194
|
get signer() {
|
|
1313
1195
|
return this._signer;
|
|
1314
1196
|
}
|
|
@@ -1328,10 +1210,17 @@ var XyoConnection = class {
|
|
|
1328
1210
|
fees
|
|
1329
1211
|
}))[0];
|
|
1330
1212
|
}
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1213
|
+
/** @deprecated use addPayloadsToChain from gateway instead */
|
|
1214
|
+
async submitTransaction(elevatedPayloads, additionalPayloads, {
|
|
1215
|
+
chain,
|
|
1216
|
+
exp,
|
|
1217
|
+
fees,
|
|
1218
|
+
from,
|
|
1219
|
+
nbf
|
|
1220
|
+
} = {}) {
|
|
1221
|
+
const viewer = assertEx4(this.viewer, () => "No viewer available");
|
|
1222
|
+
const signer = assertEx4(this.signer, () => "No signer available");
|
|
1223
|
+
const runner = assertEx4(this.runner, () => "No runner available");
|
|
1335
1224
|
const storage = this.storage;
|
|
1336
1225
|
const chainResolved = chain ?? await viewer.chainId();
|
|
1337
1226
|
if (chainResolved === void 0) throw new Error("Failed to determine chain");
|
|
@@ -1340,59 +1229,190 @@ var XyoConnection = class {
|
|
|
1340
1229
|
const feesResolved = fees ?? defaultTransactionFees;
|
|
1341
1230
|
const fromResolved = from ?? await signer.address();
|
|
1342
1231
|
if (fromResolved === void 0) throw new Error("Failed to determine from address");
|
|
1343
|
-
const signedTransaction =
|
|
1232
|
+
const signedTransaction = assertEx4(await signer.createSignedTransaction(
|
|
1233
|
+
chainResolved,
|
|
1234
|
+
elevatedPayloads,
|
|
1235
|
+
additionalPayloads,
|
|
1236
|
+
nbfResolved,
|
|
1237
|
+
expResolved,
|
|
1238
|
+
feesResolved,
|
|
1239
|
+
fromResolved
|
|
1240
|
+
), () => "Failed to create transaction");
|
|
1344
1241
|
const hydratedTransaction = [
|
|
1345
|
-
await
|
|
1346
|
-
await
|
|
1242
|
+
await PayloadBuilder4.addStorageMeta(signedTransaction),
|
|
1243
|
+
await PayloadBuilder4.addStorageMeta(elevatedPayloads)
|
|
1347
1244
|
];
|
|
1348
1245
|
if (isDataLakeProvider(storage)) {
|
|
1349
1246
|
const wrapper = await HydratedTransactionWrapper.parse(hydratedTransaction);
|
|
1350
|
-
await storage.add(Object.values(wrapper.externalPayloads).filter(
|
|
1247
|
+
await storage.add(Object.values(wrapper.externalPayloads).filter(isAnyPayload4));
|
|
1351
1248
|
}
|
|
1352
|
-
|
|
1249
|
+
assertEx4(await runner.broadcastTransaction(hydratedTransaction), () => "Failed to broadcast transaction");
|
|
1353
1250
|
return hydratedTransaction;
|
|
1354
1251
|
}
|
|
1355
1252
|
};
|
|
1356
1253
|
|
|
1357
|
-
// src/provider/
|
|
1254
|
+
// src/provider/connection/HttpRpcXyoConnection.ts
|
|
1358
1255
|
var HttpRpcXyoConnection = class extends XyoConnection {
|
|
1359
|
-
static {
|
|
1360
|
-
__name(this, "HttpRpcXyoConnection");
|
|
1361
|
-
}
|
|
1362
1256
|
constructor(params) {
|
|
1363
|
-
const {
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1257
|
+
const {
|
|
1258
|
+
account,
|
|
1259
|
+
endpoint,
|
|
1260
|
+
storage: storageParam
|
|
1261
|
+
} = params;
|
|
1262
|
+
const signer = isDefined3(account) ? new MemoryXyoSigner(account) : void 0;
|
|
1263
|
+
const transport = new HttpRpcTransport(endpoint, { ...XyoRunnerRpcSchemas, ...XyoViewerRpcSchemas });
|
|
1369
1264
|
const runner = new JsonRpcXyoRunner(transport);
|
|
1370
1265
|
const viewer = new JsonRpcXyoViewer(transport);
|
|
1266
|
+
const storage = isDataLakeProvider2(storageParam) ? storageParam : isString(storageParam) ? new HttpXyoDataLake(storageParam) : void 0;
|
|
1371
1267
|
super({
|
|
1372
1268
|
signer,
|
|
1373
1269
|
runner,
|
|
1374
|
-
viewer
|
|
1270
|
+
viewer,
|
|
1271
|
+
storage
|
|
1375
1272
|
});
|
|
1376
1273
|
}
|
|
1377
1274
|
};
|
|
1378
1275
|
var RpcXyoConnection = class extends HttpRpcXyoConnection {
|
|
1379
|
-
|
|
1380
|
-
|
|
1276
|
+
};
|
|
1277
|
+
|
|
1278
|
+
// src/provider/gateway/Abstract.ts
|
|
1279
|
+
import { assertEx as assertEx5 } from "@xylabs/assert";
|
|
1280
|
+
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
1281
|
+
import { buildUnsignedTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
1282
|
+
var AbstractXyoGateway = class {
|
|
1283
|
+
async addPayloadsToChain(onChain, offChain) {
|
|
1284
|
+
const connection = await this.connection();
|
|
1285
|
+
const viewer = assertEx5(connection.viewer, () => "No viewer available on connection");
|
|
1286
|
+
const signer = await this.signer();
|
|
1287
|
+
const chainId = await viewer.chainId();
|
|
1288
|
+
const nbf = await viewer.currentBlockNumber();
|
|
1289
|
+
const tx = await buildUnsignedTransaction(chainId, onChain, offChain, nbf, nbf + 1e3, await signer.address());
|
|
1290
|
+
const hash = await this.addTransactionToChain(tx);
|
|
1291
|
+
return [hash, tx];
|
|
1292
|
+
}
|
|
1293
|
+
async addTransactionToChain(tx) {
|
|
1294
|
+
const connection = await this.connection();
|
|
1295
|
+
const signer = await this.signer();
|
|
1296
|
+
const runner = assertEx5(connection.runner, () => "No runner available on connection");
|
|
1297
|
+
const signedTx = await signer.signTransaction(tx);
|
|
1298
|
+
return await runner.broadcastTransaction(
|
|
1299
|
+
[
|
|
1300
|
+
await PayloadBuilder5.addStorageMeta(signedTx[0]),
|
|
1301
|
+
await PayloadBuilder5.addStorageMeta(signedTx[1])
|
|
1302
|
+
]
|
|
1303
|
+
);
|
|
1304
|
+
}
|
|
1305
|
+
/** @deprecated use addPayloadsToChain instead */
|
|
1306
|
+
async submitTransaction(elevatedPayloads, additionalPayloads) {
|
|
1307
|
+
const connection = await this.connection();
|
|
1308
|
+
assertEx5(connection.submitTransaction, () => "Active connection does not support transaction submission");
|
|
1309
|
+
const tx = await connection.submitTransaction?.(elevatedPayloads, additionalPayloads);
|
|
1310
|
+
return assertEx5(tx, () => "Transaction submission failed");
|
|
1311
|
+
}
|
|
1312
|
+
};
|
|
1313
|
+
|
|
1314
|
+
// src/provider/gateway/MemoryXyoGateway.ts
|
|
1315
|
+
var MemoryXyoGateway = class extends AbstractXyoGateway {
|
|
1316
|
+
_connection;
|
|
1317
|
+
_signer;
|
|
1318
|
+
constructor(signer, connection) {
|
|
1319
|
+
super();
|
|
1320
|
+
this._signer = signer;
|
|
1321
|
+
this._connection = connection;
|
|
1322
|
+
}
|
|
1323
|
+
connection() {
|
|
1324
|
+
return this._connection;
|
|
1325
|
+
}
|
|
1326
|
+
signer() {
|
|
1327
|
+
return this._signer;
|
|
1328
|
+
}
|
|
1329
|
+
};
|
|
1330
|
+
|
|
1331
|
+
// src/provider/network/MemoryXyoNetwork.ts
|
|
1332
|
+
import { isUndefined } from "@xylabs/typeof";
|
|
1333
|
+
import { isNetworkStatus } from "@xyo-network/xl1-protocol";
|
|
1334
|
+
import axios from "axios";
|
|
1335
|
+
|
|
1336
|
+
// src/provider/network/lib/FailedNetworkStatusPayloads.ts
|
|
1337
|
+
import { NetworkStatusSchema } from "@xyo-network/xl1-protocol";
|
|
1338
|
+
var unknownStatus = {
|
|
1339
|
+
description: "Unknown Network Status",
|
|
1340
|
+
schema: NetworkStatusSchema,
|
|
1341
|
+
state: "unknown"
|
|
1342
|
+
};
|
|
1343
|
+
var errorStatus = {
|
|
1344
|
+
description: "Error Fetching Network Status",
|
|
1345
|
+
schema: NetworkStatusSchema,
|
|
1346
|
+
state: "unknown"
|
|
1347
|
+
};
|
|
1348
|
+
|
|
1349
|
+
// src/provider/network/lib/StatusNetworks.ts
|
|
1350
|
+
var MainNetworkStats = {
|
|
1351
|
+
id: "mainnet",
|
|
1352
|
+
statusUrl: "https://xyo.network/chain-network-status-mainnet.json"
|
|
1353
|
+
};
|
|
1354
|
+
var SequenceNetworkStats = {
|
|
1355
|
+
id: "sequence",
|
|
1356
|
+
statusUrl: "https://beta.xyo.network/chain-network-status-sequence.json"
|
|
1357
|
+
};
|
|
1358
|
+
var LocalNetworkStats = {
|
|
1359
|
+
id: "local",
|
|
1360
|
+
statusUrl: "http://localhost:3002/chain-network-status-local.json"
|
|
1361
|
+
};
|
|
1362
|
+
var StatusNetworks = {
|
|
1363
|
+
["mainnet"]: MainNetworkStats,
|
|
1364
|
+
["sequence"]: SequenceNetworkStats,
|
|
1365
|
+
["local"]: LocalNetworkStats
|
|
1366
|
+
};
|
|
1367
|
+
|
|
1368
|
+
// src/provider/network/MemoryXyoNetwork.ts
|
|
1369
|
+
var MemoryXyoNetwork = class {
|
|
1370
|
+
_networkId;
|
|
1371
|
+
constructor(networkId) {
|
|
1372
|
+
this._networkId = networkId;
|
|
1373
|
+
}
|
|
1374
|
+
async status() {
|
|
1375
|
+
const statusNetwork = StatusNetworks[this._networkId];
|
|
1376
|
+
if (isUndefined(statusNetwork)) {
|
|
1377
|
+
throw new Error(`Unknown status network ID: ${this._networkId}`);
|
|
1378
|
+
}
|
|
1379
|
+
return await this.makeRequest(statusNetwork.statusUrl);
|
|
1380
|
+
}
|
|
1381
|
+
async makeRequest(url) {
|
|
1382
|
+
try {
|
|
1383
|
+
const response = await axios.get(url);
|
|
1384
|
+
if (isNetworkStatus(response.data)) {
|
|
1385
|
+
return response.data;
|
|
1386
|
+
} else {
|
|
1387
|
+
if (response.status === 200) {
|
|
1388
|
+
console.error("Unknown network status response:", response.data);
|
|
1389
|
+
return unknownStatus;
|
|
1390
|
+
}
|
|
1391
|
+
return errorStatus;
|
|
1392
|
+
}
|
|
1393
|
+
} catch (error) {
|
|
1394
|
+
console.error("Error fetching network status:", error);
|
|
1395
|
+
return errorStatus;
|
|
1396
|
+
}
|
|
1381
1397
|
}
|
|
1382
1398
|
};
|
|
1383
1399
|
export {
|
|
1400
|
+
AbstractXyoDataLake,
|
|
1384
1401
|
AbstractXyoGateway,
|
|
1385
1402
|
AllRpcSchemas,
|
|
1403
|
+
ArchivistXyoDataLake,
|
|
1386
1404
|
CaveatTypesSchema,
|
|
1387
1405
|
CaveatsSchema,
|
|
1388
1406
|
ChainConnectionSchema,
|
|
1389
1407
|
HttpRpcTransport,
|
|
1390
1408
|
HttpRpcXyoConnection,
|
|
1409
|
+
HttpXyoDataLake,
|
|
1391
1410
|
InvokerPermissionSchema,
|
|
1392
1411
|
JsonRpcErrorCodes,
|
|
1393
1412
|
JsonRpcXyoRunner,
|
|
1394
1413
|
JsonRpcXyoSigner,
|
|
1395
1414
|
JsonRpcXyoViewer,
|
|
1415
|
+
LegacyPostMessageRpcTransport,
|
|
1396
1416
|
MemoryPermissionsStore,
|
|
1397
1417
|
MemoryRpcTransport,
|
|
1398
1418
|
MemoryXyoClient,
|