@xyo-network/xl1-rpc 1.9.0 → 1.10.0
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 +459 -486
- 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/{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 +2 -0
- 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/types/XyoGatewayRpc.d.ts +1 -1
- package/dist/neutral/types/XyoGatewayRpc.d.ts.map +1 -1
- package/dist/node/index-node.mjs +490 -515
- 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/{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 +2 -0
- 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/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/spec/MemoryXyoClient.spec.ts +17 -10
- package/src/provider/{provider → connection}/HttpRpcXyoConnection.ts +10 -3
- package/src/provider/{provider → connection}/XyoConnection.ts +2 -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 +1 -1
- package/src/transport/post-message/SessionEnvelope.ts +1 -1
- package/src/types/XyoGatewayRpc.ts +2 -2
- 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/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/src/provider/host/Abstract.ts +0 -42
- /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/{provider → connection}/spec/XyoConnection.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 = {};
|
|
@@ -1023,25 +759,22 @@ import { isDefined } from "@xylabs/typeof";
|
|
|
1023
759
|
import { v4 as v43 } from "uuid";
|
|
1024
760
|
|
|
1025
761
|
// src/transport/post-message/helpers.ts
|
|
1026
|
-
var isRpcError =
|
|
762
|
+
var isRpcError = (data) => {
|
|
1027
763
|
return data && typeof data === "object" && "error" in data && data.error;
|
|
1028
|
-
}
|
|
764
|
+
};
|
|
1029
765
|
|
|
1030
766
|
// src/transport/post-message/SessionEnvelope.ts
|
|
1031
|
-
var buildSessionMessageRequest =
|
|
767
|
+
var buildSessionMessageRequest = (data, destination) => {
|
|
1032
768
|
const request = {
|
|
1033
769
|
data,
|
|
1034
770
|
destination,
|
|
1035
|
-
sessionId: globalThis.
|
|
771
|
+
sessionId: globalThis.xyoWalletExtensionId ?? ""
|
|
1036
772
|
};
|
|
1037
773
|
return request;
|
|
1038
|
-
}
|
|
774
|
+
};
|
|
1039
775
|
|
|
1040
776
|
// src/transport/post-message/PostMessageRpcTransport.ts
|
|
1041
777
|
var PostMessageRpcTransport = class {
|
|
1042
|
-
static {
|
|
1043
|
-
__name(this, "PostMessageRpcTransport");
|
|
1044
|
-
}
|
|
1045
778
|
destination;
|
|
1046
779
|
schemas;
|
|
1047
780
|
constructor(defaultDestination, schemas = XyoGatewayRpcSchemas) {
|
|
@@ -1061,7 +794,7 @@ var PostMessageRpcTransport = class {
|
|
|
1061
794
|
body.params = isDefined(params) && isDefined(schemas[method]) ? schemas[method].params.to.parse(params) : params;
|
|
1062
795
|
return await new Promise((resolve, reject) => {
|
|
1063
796
|
const id2 = body.id;
|
|
1064
|
-
const handler =
|
|
797
|
+
const handler = (event) => {
|
|
1065
798
|
if (event.origin !== globalThis.window.origin) return;
|
|
1066
799
|
if (event.data.id !== id2) return;
|
|
1067
800
|
globalThis.removeEventListener("message", handler);
|
|
@@ -1070,63 +803,194 @@ var PostMessageRpcTransport = class {
|
|
|
1070
803
|
} else {
|
|
1071
804
|
resolve(event.data.result[0]);
|
|
1072
805
|
}
|
|
1073
|
-
}
|
|
806
|
+
};
|
|
1074
807
|
globalThis.addEventListener("message", handler);
|
|
1075
|
-
globalThis.postMessage(
|
|
808
|
+
globalThis.postMessage(
|
|
809
|
+
buildSessionMessageRequest(body, this.destination),
|
|
810
|
+
globalThis.location.origin
|
|
811
|
+
);
|
|
812
|
+
});
|
|
813
|
+
}
|
|
814
|
+
};
|
|
815
|
+
|
|
816
|
+
// src/provider/datalake/AbstractXyoDataLake.ts
|
|
817
|
+
import { ObjectHasher } from "@xyo-network/hash";
|
|
818
|
+
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
819
|
+
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
820
|
+
import {
|
|
821
|
+
isHashPayload
|
|
822
|
+
} from "@xyo-network/xl1-protocol";
|
|
823
|
+
var AbstractXyoDataLake = class {
|
|
824
|
+
async fetch(hashes, maxDepth = 10) {
|
|
825
|
+
const results = await this.get(hashes);
|
|
826
|
+
if (maxDepth > 0) {
|
|
827
|
+
const hashPayloads = results.filter(isHashPayload);
|
|
828
|
+
const otherPayloads = results.filter((item) => !isHashPayload(item));
|
|
829
|
+
const found = await this.fetch(hashPayloads.map((item) => item.hash), maxDepth - 1);
|
|
830
|
+
const foundHashes = await Promise.all(found.map(async (item) => isAnyPayload(item) ? await PayloadBuilder.hash(item) : ObjectHasher.hashBytes(item)));
|
|
831
|
+
const notFound = hashPayloads.filter((item) => !foundHashes.includes(item.hash));
|
|
832
|
+
return [...otherPayloads, ...found, ...notFound];
|
|
833
|
+
}
|
|
834
|
+
return results;
|
|
835
|
+
}
|
|
836
|
+
async trace(hash) {
|
|
837
|
+
const [result] = await this.get([hash]);
|
|
838
|
+
if (isHashPayload(result)) {
|
|
839
|
+
const [payload, route] = await this.trace(result.hash);
|
|
840
|
+
return [payload, [result, ...route]];
|
|
841
|
+
}
|
|
842
|
+
return [result, []];
|
|
843
|
+
}
|
|
844
|
+
};
|
|
845
|
+
|
|
846
|
+
// src/provider/datalake/ArchivistXyoDataLake.ts
|
|
847
|
+
import { assertEx } from "@xylabs/assert";
|
|
848
|
+
import { isAnyPayload as isAnyPayload2 } from "@xyo-network/payload-model";
|
|
849
|
+
var ArchivistXyoDataLake = class extends AbstractXyoDataLake {
|
|
850
|
+
_archivist;
|
|
851
|
+
constructor(archivist) {
|
|
852
|
+
super();
|
|
853
|
+
this._archivist = archivist;
|
|
854
|
+
}
|
|
855
|
+
async add(items) {
|
|
856
|
+
const payloads = items.filter(isAnyPayload2);
|
|
857
|
+
assertEx(payloads.length === items.length, () => "Some items are not payloads");
|
|
858
|
+
return await this._archivist.insert(payloads);
|
|
859
|
+
}
|
|
860
|
+
async get(hashes) {
|
|
861
|
+
return await this._archivist.get(hashes);
|
|
862
|
+
}
|
|
863
|
+
};
|
|
864
|
+
|
|
865
|
+
// src/provider/datalake/HttpXyoDataLake.ts
|
|
866
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
867
|
+
import { AxiosJson as AxiosJson2 } from "@xylabs/axios";
|
|
868
|
+
import { exists } from "@xylabs/exists";
|
|
869
|
+
import { isArrayBuffer, isDefined as isDefined2 } from "@xylabs/typeof";
|
|
870
|
+
import { isAnyPayload as isAnyPayload3 } from "@xyo-network/payload-model";
|
|
871
|
+
import { isHashPayload as isHashPayload2 } from "@xyo-network/xl1-protocol";
|
|
872
|
+
import { Axios } from "axios";
|
|
873
|
+
var HttpXyoDataLake = class extends AbstractXyoDataLake {
|
|
874
|
+
_axiosGet;
|
|
875
|
+
_axiosInsertBlob;
|
|
876
|
+
_axiosInsertJson;
|
|
877
|
+
_endpoint;
|
|
878
|
+
constructor(endpoint) {
|
|
879
|
+
super();
|
|
880
|
+
this._endpoint = endpoint;
|
|
881
|
+
this._axiosInsertJson = new AxiosJson2({ baseURL: endpoint });
|
|
882
|
+
this._axiosInsertBlob = new Axios({ baseURL: endpoint, headers: { "Content-Type": "application/octet-stream", "Accept": "application/octet-stream" } });
|
|
883
|
+
this._axiosGet = new Axios({ baseURL: endpoint, headers: { "Content-Type": "application/json", "Accept": "application/octet-stream, application/json" } });
|
|
884
|
+
}
|
|
885
|
+
get endpoint() {
|
|
886
|
+
return this._endpoint;
|
|
887
|
+
}
|
|
888
|
+
async add(items) {
|
|
889
|
+
const results = [];
|
|
890
|
+
for (const item of items) {
|
|
891
|
+
if (isAnyPayload3(item)) {
|
|
892
|
+
const result = await this.addPayload(item);
|
|
893
|
+
if (isAnyPayload3(result)) {
|
|
894
|
+
results.push(result);
|
|
895
|
+
} else if (isDefined2(result)) {
|
|
896
|
+
assertEx2(false, () => "Expected result to be a Payload");
|
|
897
|
+
}
|
|
898
|
+
} else if (isArrayBuffer(item)) {
|
|
899
|
+
const result = await this.addArrayBuffer(item);
|
|
900
|
+
if (isAnyPayload3(result)) {
|
|
901
|
+
results.push(result);
|
|
902
|
+
} else if (isDefined2(result)) {
|
|
903
|
+
assertEx2(false, () => "Expected result to be a Payload");
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
return results;
|
|
908
|
+
}
|
|
909
|
+
async get(hashes) {
|
|
910
|
+
return (await Promise.all(hashes.map(async (hash) => {
|
|
911
|
+
return await this.getOne(hash);
|
|
912
|
+
}))).filter(exists);
|
|
913
|
+
}
|
|
914
|
+
async addArrayBuffer(item) {
|
|
915
|
+
const result = await this._axiosInsertBlob.post("/insert", item);
|
|
916
|
+
if (result.status < 200 || result.status >= 300) {
|
|
917
|
+
throw new Error(`Failed to add items [${result.status}]: ${result.statusText}`);
|
|
918
|
+
}
|
|
919
|
+
if (!isArrayBuffer(result.data)) {
|
|
920
|
+
throw new Error("Invalid response from server (expected a ArrayBuffer)");
|
|
921
|
+
}
|
|
922
|
+
return result.data;
|
|
923
|
+
}
|
|
924
|
+
async addPayload(item) {
|
|
925
|
+
const result = await this._axiosInsertJson.post("/insert", item);
|
|
926
|
+
if (result.status < 200 || result.status >= 300) {
|
|
927
|
+
throw new Error(`Failed to add items [${result.status}]: ${result.statusText}`);
|
|
928
|
+
}
|
|
929
|
+
if (!isAnyPayload3(result.data)) {
|
|
930
|
+
throw new Error("Invalid response from server (expected a Payload)");
|
|
931
|
+
}
|
|
932
|
+
return result.data;
|
|
933
|
+
}
|
|
934
|
+
async fetchOne(hash, maxDepth = Number.MAX_SAFE_INTEGER) {
|
|
935
|
+
if (maxDepth <= 0) {
|
|
936
|
+
return void 0;
|
|
937
|
+
}
|
|
938
|
+
const result = await this.getOne(hash);
|
|
939
|
+
if (isHashPayload2(result)) {
|
|
940
|
+
return await this.fetchOne(result.hash, maxDepth - 1);
|
|
941
|
+
}
|
|
942
|
+
return result;
|
|
943
|
+
}
|
|
944
|
+
getOne(hash) {
|
|
945
|
+
return this._axiosGet.get(`/get/${hash}`).then((response) => {
|
|
946
|
+
if (response.status < 200 || response.status >= 300) {
|
|
947
|
+
throw new Error(`Failed to get item [${response.status}]: ${response.statusText}`);
|
|
948
|
+
}
|
|
949
|
+
if (!isAnyPayload3(response.data)) {
|
|
950
|
+
throw new Error("Invalid response from server (expected a Payload)");
|
|
951
|
+
}
|
|
952
|
+
return response.data;
|
|
1076
953
|
});
|
|
1077
954
|
}
|
|
1078
955
|
};
|
|
1079
956
|
|
|
1080
957
|
// src/provider/runner/JsonRpcXyoRunner.ts
|
|
1081
958
|
var JsonRpcXyoRunner = class {
|
|
1082
|
-
static {
|
|
1083
|
-
__name(this, "JsonRpcXyoRunner");
|
|
1084
|
-
}
|
|
1085
959
|
transport;
|
|
1086
960
|
constructor(transport) {
|
|
1087
961
|
this.transport = transport;
|
|
1088
962
|
}
|
|
1089
963
|
async broadcastTransaction(transaction) {
|
|
1090
|
-
return await this.transport.sendRequest("xyoRunner_broadcastTransaction", [
|
|
1091
|
-
transaction
|
|
1092
|
-
]);
|
|
964
|
+
return await this.transport.sendRequest("xyoRunner_broadcastTransaction", [transaction]);
|
|
1093
965
|
}
|
|
1094
966
|
};
|
|
1095
967
|
|
|
1096
968
|
// src/provider/runner/MemoryXyoRunner.ts
|
|
1097
969
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
1098
|
-
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
970
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
1099
971
|
import { flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
1100
972
|
var MemoryXyoRunner = class {
|
|
1101
|
-
static {
|
|
1102
|
-
__name(this, "MemoryXyoRunner");
|
|
1103
|
-
}
|
|
1104
973
|
_archivist;
|
|
1105
974
|
async broadcastTransaction(transaction) {
|
|
1106
975
|
const archivist = await this.getArchivist();
|
|
1107
976
|
await archivist.insert(flattenHydratedTransaction(transaction));
|
|
1108
|
-
return await
|
|
977
|
+
return await PayloadBuilder2.hash(transaction[0]);
|
|
1109
978
|
}
|
|
1110
979
|
async getArchivist() {
|
|
1111
980
|
if (!this._archivist) {
|
|
1112
|
-
this._archivist = await MemoryArchivist.create({
|
|
1113
|
-
account: "random"
|
|
1114
|
-
});
|
|
981
|
+
this._archivist = await MemoryArchivist.create({ account: "random" });
|
|
1115
982
|
}
|
|
1116
983
|
return this._archivist;
|
|
1117
984
|
}
|
|
1118
985
|
};
|
|
1119
986
|
|
|
1120
987
|
// src/provider/runner/NodeXyoRunner.ts
|
|
1121
|
-
import { assertEx as
|
|
988
|
+
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
1122
989
|
import { asArchivistInstance } from "@xyo-network/archivist-model";
|
|
1123
|
-
import { PayloadBuilder as
|
|
990
|
+
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
1124
991
|
import { PayloadBundleSchema } from "@xyo-network/payload-model";
|
|
1125
992
|
import { flattenHydratedTransaction as flattenHydratedTransaction2 } from "@xyo-network/xl1-protocol-sdk";
|
|
1126
993
|
var NodeXyoRunner = class {
|
|
1127
|
-
static {
|
|
1128
|
-
__name(this, "NodeXyoRunner");
|
|
1129
|
-
}
|
|
1130
994
|
// TODO: Make configurable with defaults
|
|
1131
995
|
node;
|
|
1132
996
|
pendingArchivistPath = "XYOChain:Pending:PendingTransactions";
|
|
@@ -1137,33 +1001,28 @@ var NodeXyoRunner = class {
|
|
|
1137
1001
|
async broadcastTransaction(transaction) {
|
|
1138
1002
|
const flattened = flattenHydratedTransaction2(transaction);
|
|
1139
1003
|
const pendingArchivist = await this.getPendingArchivist();
|
|
1140
|
-
const txHash = await
|
|
1004
|
+
const txHash = await PayloadBuilder3.hash(transaction[0]);
|
|
1141
1005
|
const payloadBundle = {
|
|
1142
1006
|
schema: PayloadBundleSchema,
|
|
1143
1007
|
payloads: flattened,
|
|
1144
1008
|
root: txHash
|
|
1145
1009
|
};
|
|
1146
|
-
await pendingArchivist.insert([
|
|
1147
|
-
payloadBundle
|
|
1148
|
-
]);
|
|
1010
|
+
await pendingArchivist.insert([payloadBundle]);
|
|
1149
1011
|
return txHash;
|
|
1150
1012
|
}
|
|
1151
|
-
getArchivist =
|
|
1013
|
+
getArchivist = async (identifier) => {
|
|
1152
1014
|
const archivist = await this.node.resolve(identifier);
|
|
1153
|
-
return
|
|
1154
|
-
}
|
|
1155
|
-
getPendingArchivist =
|
|
1015
|
+
return assertEx3(asArchivistInstance(archivist), () => `Error: Could not resolve ${identifier} to an archivist instance`);
|
|
1016
|
+
};
|
|
1017
|
+
getPendingArchivist = async () => {
|
|
1156
1018
|
if (this._pendingArchivist) return this._pendingArchivist;
|
|
1157
1019
|
this._pendingArchivist = await this.getArchivist(this.pendingArchivistPath);
|
|
1158
|
-
return
|
|
1159
|
-
}
|
|
1020
|
+
return assertEx3(this._pendingArchivist, () => `Error: Could not resolve pending archivist at ${this.pendingArchivistPath}`);
|
|
1021
|
+
};
|
|
1160
1022
|
};
|
|
1161
1023
|
|
|
1162
1024
|
// src/provider/signer/JsonRpcXyoSigner.ts
|
|
1163
1025
|
var RpcXyoSigner = class {
|
|
1164
|
-
static {
|
|
1165
|
-
__name(this, "RpcXyoSigner");
|
|
1166
|
-
}
|
|
1167
1026
|
transport;
|
|
1168
1027
|
constructor(transport) {
|
|
1169
1028
|
this.transport = transport;
|
|
@@ -1187,17 +1046,11 @@ var RpcXyoSigner = class {
|
|
|
1187
1046
|
}
|
|
1188
1047
|
};
|
|
1189
1048
|
var JsonRpcXyoSigner = class extends RpcXyoSigner {
|
|
1190
|
-
static {
|
|
1191
|
-
__name(this, "JsonRpcXyoSigner");
|
|
1192
|
-
}
|
|
1193
1049
|
};
|
|
1194
1050
|
|
|
1195
1051
|
// src/provider/signer/MemoryXyoSigner.ts
|
|
1196
1052
|
import { buildTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
1197
1053
|
var MemoryXyoSigner = class {
|
|
1198
|
-
static {
|
|
1199
|
-
__name(this, "MemoryXyoSigner");
|
|
1200
|
-
}
|
|
1201
1054
|
_account;
|
|
1202
1055
|
constructor(account) {
|
|
1203
1056
|
this._account = account;
|
|
@@ -1207,7 +1060,16 @@ var MemoryXyoSigner = class {
|
|
|
1207
1060
|
}
|
|
1208
1061
|
async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
|
|
1209
1062
|
const fromAddress = from ?? this._account.address;
|
|
1210
|
-
const transaction = await buildTransaction(
|
|
1063
|
+
const transaction = await buildTransaction(
|
|
1064
|
+
chain,
|
|
1065
|
+
elevatedPayloads,
|
|
1066
|
+
additionalPayloads,
|
|
1067
|
+
this._account,
|
|
1068
|
+
nbf,
|
|
1069
|
+
exp,
|
|
1070
|
+
fromAddress,
|
|
1071
|
+
fees
|
|
1072
|
+
);
|
|
1211
1073
|
return transaction[0];
|
|
1212
1074
|
}
|
|
1213
1075
|
signTransaction(_tx) {
|
|
@@ -1217,38 +1079,24 @@ var MemoryXyoSigner = class {
|
|
|
1217
1079
|
|
|
1218
1080
|
// src/provider/viewer/JsonRpcXyoViewer.ts
|
|
1219
1081
|
var JsonRpcXyoViewer = class {
|
|
1220
|
-
static {
|
|
1221
|
-
__name(this, "JsonRpcXyoViewer");
|
|
1222
|
-
}
|
|
1223
1082
|
transport;
|
|
1224
1083
|
constructor(transport) {
|
|
1225
1084
|
this.transport = transport;
|
|
1226
1085
|
}
|
|
1227
1086
|
async accountBalance(address) {
|
|
1228
|
-
return await this.transport.sendRequest("xyoViewer_accountBalance", [
|
|
1229
|
-
address
|
|
1230
|
-
]);
|
|
1087
|
+
return await this.transport.sendRequest("xyoViewer_accountBalance", [address]);
|
|
1231
1088
|
}
|
|
1232
1089
|
async accountHistory(address) {
|
|
1233
|
-
return await this.transport.sendRequest("xyoViewer_accountBalance", [
|
|
1234
|
-
address
|
|
1235
|
-
]);
|
|
1090
|
+
return await this.transport.sendRequest("xyoViewer_accountBalance", [address]);
|
|
1236
1091
|
}
|
|
1237
1092
|
async blockByHash(hash) {
|
|
1238
|
-
return await this.transport.sendRequest("xyoViewer_blockByHash", [
|
|
1239
|
-
hash
|
|
1240
|
-
]);
|
|
1093
|
+
return await this.transport.sendRequest("xyoViewer_blockByHash", [hash]);
|
|
1241
1094
|
}
|
|
1242
1095
|
async blockByNumber(blockNumber) {
|
|
1243
|
-
return await this.transport.sendRequest("xyoViewer_blockByNumber", [
|
|
1244
|
-
blockNumber
|
|
1245
|
-
]);
|
|
1096
|
+
return await this.transport.sendRequest("xyoViewer_blockByNumber", [blockNumber]);
|
|
1246
1097
|
}
|
|
1247
1098
|
async blocksByHash(hash, limit) {
|
|
1248
|
-
return await this.transport.sendRequest("xyoViewer_blocksByHash", [
|
|
1249
|
-
hash,
|
|
1250
|
-
limit
|
|
1251
|
-
]);
|
|
1099
|
+
return await this.transport.sendRequest("xyoViewer_blocksByHash", [hash, limit]);
|
|
1252
1100
|
}
|
|
1253
1101
|
async chainId() {
|
|
1254
1102
|
return await this.transport.sendRequest("xyoViewer_chainId");
|
|
@@ -1263,34 +1111,23 @@ var JsonRpcXyoViewer = class {
|
|
|
1263
1111
|
return await this.transport.sendRequest("xyoViewer_currentBlockNumber");
|
|
1264
1112
|
}
|
|
1265
1113
|
async transactionByBlockHashAndIndex(blockHash, transactionIndex) {
|
|
1266
|
-
return await this.transport.sendRequest("xyoViewer_transactionByBlockHashAndIndex", [
|
|
1267
|
-
blockHash,
|
|
1268
|
-
transactionIndex
|
|
1269
|
-
]);
|
|
1114
|
+
return await this.transport.sendRequest("xyoViewer_transactionByBlockHashAndIndex", [blockHash, transactionIndex]);
|
|
1270
1115
|
}
|
|
1271
1116
|
async transactionByBlockNumberAndIndex(blockNumber, transactionIndex) {
|
|
1272
|
-
return await this.transport.sendRequest("xyoViewer_transactionByBlockNumberAndIndex", [
|
|
1273
|
-
blockNumber,
|
|
1274
|
-
transactionIndex
|
|
1275
|
-
]);
|
|
1117
|
+
return await this.transport.sendRequest("xyoViewer_transactionByBlockNumberAndIndex", [blockNumber, transactionIndex]);
|
|
1276
1118
|
}
|
|
1277
1119
|
async transactionByHash(transactionHash) {
|
|
1278
|
-
return await this.transport.sendRequest("xyoViewer_transactionByHash", [
|
|
1279
|
-
transactionHash
|
|
1280
|
-
]);
|
|
1120
|
+
return await this.transport.sendRequest("xyoViewer_transactionByHash", [transactionHash]);
|
|
1281
1121
|
}
|
|
1282
1122
|
};
|
|
1283
1123
|
|
|
1284
|
-
// src/provider/
|
|
1285
|
-
import { assertEx as
|
|
1286
|
-
import { PayloadBuilder as
|
|
1287
|
-
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
1124
|
+
// src/provider/connection/XyoConnection.ts
|
|
1125
|
+
import { assertEx as assertEx4 } from "@xylabs/assert";
|
|
1126
|
+
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
1127
|
+
import { isAnyPayload as isAnyPayload4 } from "@xyo-network/payload-model";
|
|
1288
1128
|
import { defaultTransactionFees, isDataLakeProvider } from "@xyo-network/xl1-protocol";
|
|
1289
1129
|
import { HydratedTransactionWrapper } from "@xyo-network/xl1-wrappers";
|
|
1290
1130
|
var XyoConnection = class {
|
|
1291
|
-
static {
|
|
1292
|
-
__name(this, "XyoConnection");
|
|
1293
|
-
}
|
|
1294
1131
|
_network;
|
|
1295
1132
|
_runner;
|
|
1296
1133
|
_signer;
|
|
@@ -1309,6 +1146,7 @@ var XyoConnection = class {
|
|
|
1309
1146
|
get runner() {
|
|
1310
1147
|
return this._runner;
|
|
1311
1148
|
}
|
|
1149
|
+
/** @deprecated use signer from gateway instead */
|
|
1312
1150
|
get signer() {
|
|
1313
1151
|
return this._signer;
|
|
1314
1152
|
}
|
|
@@ -1328,10 +1166,17 @@ var XyoConnection = class {
|
|
|
1328
1166
|
fees
|
|
1329
1167
|
}))[0];
|
|
1330
1168
|
}
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1169
|
+
/** @deprecated use addPayloadsToChain from gateway instead */
|
|
1170
|
+
async submitTransaction(elevatedPayloads, additionalPayloads, {
|
|
1171
|
+
chain,
|
|
1172
|
+
exp,
|
|
1173
|
+
fees,
|
|
1174
|
+
from,
|
|
1175
|
+
nbf
|
|
1176
|
+
} = {}) {
|
|
1177
|
+
const viewer = assertEx4(this.viewer, () => "No viewer available");
|
|
1178
|
+
const signer = assertEx4(this.signer, () => "No signer available");
|
|
1179
|
+
const runner = assertEx4(this.runner, () => "No runner available");
|
|
1335
1180
|
const storage = this.storage;
|
|
1336
1181
|
const chainResolved = chain ?? await viewer.chainId();
|
|
1337
1182
|
if (chainResolved === void 0) throw new Error("Failed to determine chain");
|
|
@@ -1340,54 +1185,184 @@ var XyoConnection = class {
|
|
|
1340
1185
|
const feesResolved = fees ?? defaultTransactionFees;
|
|
1341
1186
|
const fromResolved = from ?? await signer.address();
|
|
1342
1187
|
if (fromResolved === void 0) throw new Error("Failed to determine from address");
|
|
1343
|
-
const signedTransaction =
|
|
1188
|
+
const signedTransaction = assertEx4(await signer.createSignedTransaction(
|
|
1189
|
+
chainResolved,
|
|
1190
|
+
elevatedPayloads,
|
|
1191
|
+
additionalPayloads,
|
|
1192
|
+
nbfResolved,
|
|
1193
|
+
expResolved,
|
|
1194
|
+
feesResolved,
|
|
1195
|
+
fromResolved
|
|
1196
|
+
), () => "Failed to create transaction");
|
|
1344
1197
|
const hydratedTransaction = [
|
|
1345
|
-
await
|
|
1346
|
-
await
|
|
1198
|
+
await PayloadBuilder4.addStorageMeta(signedTransaction),
|
|
1199
|
+
await PayloadBuilder4.addStorageMeta(elevatedPayloads)
|
|
1347
1200
|
];
|
|
1348
1201
|
if (isDataLakeProvider(storage)) {
|
|
1349
1202
|
const wrapper = await HydratedTransactionWrapper.parse(hydratedTransaction);
|
|
1350
|
-
await storage.add(Object.values(wrapper.externalPayloads).filter(
|
|
1203
|
+
await storage.add(Object.values(wrapper.externalPayloads).filter(isAnyPayload4));
|
|
1351
1204
|
}
|
|
1352
|
-
|
|
1205
|
+
assertEx4(await runner.broadcastTransaction(hydratedTransaction), () => "Failed to broadcast transaction");
|
|
1353
1206
|
return hydratedTransaction;
|
|
1354
1207
|
}
|
|
1355
1208
|
};
|
|
1356
1209
|
|
|
1357
|
-
// src/provider/
|
|
1210
|
+
// src/provider/connection/HttpRpcXyoConnection.ts
|
|
1358
1211
|
var HttpRpcXyoConnection = class extends XyoConnection {
|
|
1359
|
-
static {
|
|
1360
|
-
__name(this, "HttpRpcXyoConnection");
|
|
1361
|
-
}
|
|
1362
1212
|
constructor(params) {
|
|
1363
|
-
const {
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1213
|
+
const {
|
|
1214
|
+
account,
|
|
1215
|
+
endpoint,
|
|
1216
|
+
storage: storageParam
|
|
1217
|
+
} = params;
|
|
1218
|
+
const signer = isDefined3(account) ? new MemoryXyoSigner(account) : void 0;
|
|
1219
|
+
const transport = new HttpRpcTransport(endpoint, { ...XyoRunnerRpcSchemas, ...XyoViewerRpcSchemas });
|
|
1369
1220
|
const runner = new JsonRpcXyoRunner(transport);
|
|
1370
1221
|
const viewer = new JsonRpcXyoViewer(transport);
|
|
1222
|
+
const storage = isDataLakeProvider2(storageParam) ? storageParam : isString(storageParam) ? new HttpXyoDataLake(storageParam) : void 0;
|
|
1371
1223
|
super({
|
|
1372
1224
|
signer,
|
|
1373
1225
|
runner,
|
|
1374
|
-
viewer
|
|
1226
|
+
viewer,
|
|
1227
|
+
storage
|
|
1375
1228
|
});
|
|
1376
1229
|
}
|
|
1377
1230
|
};
|
|
1378
1231
|
var RpcXyoConnection = class extends HttpRpcXyoConnection {
|
|
1379
|
-
|
|
1380
|
-
|
|
1232
|
+
};
|
|
1233
|
+
|
|
1234
|
+
// src/provider/gateway/Abstract.ts
|
|
1235
|
+
import { assertEx as assertEx5 } from "@xylabs/assert";
|
|
1236
|
+
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
1237
|
+
import { buildUnsignedTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
1238
|
+
var AbstractXyoGateway = class {
|
|
1239
|
+
async addPayloadsToChain(onChain, offChain) {
|
|
1240
|
+
const connection = await this.connection();
|
|
1241
|
+
const viewer = assertEx5(connection.viewer, () => "No viewer available on connection");
|
|
1242
|
+
const signer = await this.signer();
|
|
1243
|
+
const chainId = await viewer.chainId();
|
|
1244
|
+
const nbf = await viewer.currentBlockNumber();
|
|
1245
|
+
const tx = await buildUnsignedTransaction(chainId, onChain, offChain, nbf, nbf + 1e3, await signer.address());
|
|
1246
|
+
const hash = await this.addTransactionToChain(tx);
|
|
1247
|
+
return [hash, tx];
|
|
1248
|
+
}
|
|
1249
|
+
async addTransactionToChain(tx) {
|
|
1250
|
+
const connection = await this.connection();
|
|
1251
|
+
const signer = await this.signer();
|
|
1252
|
+
const runner = assertEx5(connection.runner, () => "No runner available on connection");
|
|
1253
|
+
const signedTx = await signer.signTransaction(tx);
|
|
1254
|
+
return await runner.broadcastTransaction(
|
|
1255
|
+
[
|
|
1256
|
+
await PayloadBuilder5.addStorageMeta(signedTx[0]),
|
|
1257
|
+
await PayloadBuilder5.addStorageMeta(signedTx[1])
|
|
1258
|
+
]
|
|
1259
|
+
);
|
|
1260
|
+
}
|
|
1261
|
+
/** @deprecated use addPayloadsToChain instead */
|
|
1262
|
+
async submitTransaction(elevatedPayloads, additionalPayloads) {
|
|
1263
|
+
const connection = await this.connection();
|
|
1264
|
+
assertEx5(connection.submitTransaction, () => "Active connection does not support transaction submission");
|
|
1265
|
+
const tx = await connection.submitTransaction?.(elevatedPayloads, additionalPayloads);
|
|
1266
|
+
return assertEx5(tx, () => "Transaction submission failed");
|
|
1267
|
+
}
|
|
1268
|
+
};
|
|
1269
|
+
|
|
1270
|
+
// src/provider/gateway/MemoryXyoGateway.ts
|
|
1271
|
+
var MemoryXyoGateway = class extends AbstractXyoGateway {
|
|
1272
|
+
_connection;
|
|
1273
|
+
_signer;
|
|
1274
|
+
constructor(signer, connection) {
|
|
1275
|
+
super();
|
|
1276
|
+
this._signer = signer;
|
|
1277
|
+
this._connection = connection;
|
|
1278
|
+
}
|
|
1279
|
+
connection() {
|
|
1280
|
+
return this._connection;
|
|
1281
|
+
}
|
|
1282
|
+
signer() {
|
|
1283
|
+
return this._signer;
|
|
1284
|
+
}
|
|
1285
|
+
};
|
|
1286
|
+
|
|
1287
|
+
// src/provider/network/MemoryXyoNetwork.ts
|
|
1288
|
+
import { isUndefined } from "@xylabs/typeof";
|
|
1289
|
+
import { isNetworkStatus } from "@xyo-network/xl1-protocol";
|
|
1290
|
+
import axios from "axios";
|
|
1291
|
+
|
|
1292
|
+
// src/provider/network/lib/FailedNetworkStatusPayloads.ts
|
|
1293
|
+
import { NetworkStatusSchema } from "@xyo-network/xl1-protocol";
|
|
1294
|
+
var unknownStatus = {
|
|
1295
|
+
description: "Unknown Network Status",
|
|
1296
|
+
schema: NetworkStatusSchema,
|
|
1297
|
+
state: "unknown"
|
|
1298
|
+
};
|
|
1299
|
+
var errorStatus = {
|
|
1300
|
+
description: "Error Fetching Network Status",
|
|
1301
|
+
schema: NetworkStatusSchema,
|
|
1302
|
+
state: "unknown"
|
|
1303
|
+
};
|
|
1304
|
+
|
|
1305
|
+
// src/provider/network/lib/StatusNetworks.ts
|
|
1306
|
+
var MainNetworkStats = {
|
|
1307
|
+
id: "mainnet",
|
|
1308
|
+
statusUrl: "https://xyo.network/chain-network-status-mainnet.json"
|
|
1309
|
+
};
|
|
1310
|
+
var SequenceNetworkStats = {
|
|
1311
|
+
id: "sequence",
|
|
1312
|
+
statusUrl: "https://beta.xyo.network/chain-network-status-sequence.json"
|
|
1313
|
+
};
|
|
1314
|
+
var LocalNetworkStats = {
|
|
1315
|
+
id: "local",
|
|
1316
|
+
statusUrl: "http://localhost:3002/chain-network-status-local.json"
|
|
1317
|
+
};
|
|
1318
|
+
var StatusNetworks = {
|
|
1319
|
+
["mainnet"]: MainNetworkStats,
|
|
1320
|
+
["sequence"]: SequenceNetworkStats,
|
|
1321
|
+
["local"]: LocalNetworkStats
|
|
1322
|
+
};
|
|
1323
|
+
|
|
1324
|
+
// src/provider/network/MemoryXyoNetwork.ts
|
|
1325
|
+
var MemoryXyoNetwork = class {
|
|
1326
|
+
_networkId;
|
|
1327
|
+
constructor(networkId) {
|
|
1328
|
+
this._networkId = networkId;
|
|
1329
|
+
}
|
|
1330
|
+
async status() {
|
|
1331
|
+
const statusNetwork = StatusNetworks[this._networkId];
|
|
1332
|
+
if (isUndefined(statusNetwork)) {
|
|
1333
|
+
throw new Error(`Unknown status network ID: ${this._networkId}`);
|
|
1334
|
+
}
|
|
1335
|
+
return await this.makeRequest(statusNetwork.statusUrl);
|
|
1336
|
+
}
|
|
1337
|
+
async makeRequest(url) {
|
|
1338
|
+
try {
|
|
1339
|
+
const response = await axios.get(url);
|
|
1340
|
+
if (isNetworkStatus(response.data)) {
|
|
1341
|
+
return response.data;
|
|
1342
|
+
} else {
|
|
1343
|
+
if (response.status === 200) {
|
|
1344
|
+
console.error("Unknown network status response:", response.data);
|
|
1345
|
+
return unknownStatus;
|
|
1346
|
+
}
|
|
1347
|
+
return errorStatus;
|
|
1348
|
+
}
|
|
1349
|
+
} catch (error) {
|
|
1350
|
+
console.error("Error fetching network status:", error);
|
|
1351
|
+
return errorStatus;
|
|
1352
|
+
}
|
|
1381
1353
|
}
|
|
1382
1354
|
};
|
|
1383
1355
|
export {
|
|
1356
|
+
AbstractXyoDataLake,
|
|
1384
1357
|
AbstractXyoGateway,
|
|
1385
1358
|
AllRpcSchemas,
|
|
1359
|
+
ArchivistXyoDataLake,
|
|
1386
1360
|
CaveatTypesSchema,
|
|
1387
1361
|
CaveatsSchema,
|
|
1388
1362
|
ChainConnectionSchema,
|
|
1389
1363
|
HttpRpcTransport,
|
|
1390
1364
|
HttpRpcXyoConnection,
|
|
1365
|
+
HttpXyoDataLake,
|
|
1391
1366
|
InvokerPermissionSchema,
|
|
1392
1367
|
JsonRpcErrorCodes,
|
|
1393
1368
|
JsonRpcXyoRunner,
|