@xyo-network/xl1-rpc 1.7.2 → 1.7.4

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.
Files changed (51) hide show
  1. package/dist/neutral/engine/rpcEngineFromProvider.d.ts +2 -2
  2. package/dist/neutral/engine/rpcEngineFromProvider.d.ts.map +1 -1
  3. package/dist/neutral/engine/rpcMethodHandlersFromProvider.d.ts +2 -2
  4. package/dist/neutral/engine/rpcMethodHandlersFromProvider.d.ts.map +1 -1
  5. package/dist/neutral/index.mjs +274 -219
  6. package/dist/neutral/index.mjs.map +1 -1
  7. package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts +8 -8
  8. package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
  9. package/dist/neutral/provider/provider/MemoryXyoProvider.d.ts +2 -2
  10. package/dist/neutral/provider/provider/MemoryXyoProvider.d.ts.map +1 -1
  11. package/dist/neutral/provider/provider/RpcXyoProvider.d.ts +13 -0
  12. package/dist/neutral/provider/provider/RpcXyoProvider.d.ts.map +1 -0
  13. package/dist/neutral/provider/provider/confirmTransaction.d.ts +4 -0
  14. package/dist/neutral/provider/provider/confirmTransaction.d.ts.map +1 -0
  15. package/dist/neutral/provider/provider/index.d.ts +1 -0
  16. package/dist/neutral/provider/provider/index.d.ts.map +1 -1
  17. package/dist/neutral/types/XyoGatewayRpc.d.ts +3 -3
  18. package/dist/neutral/types/XyoGatewayRpc.d.ts.map +1 -1
  19. package/dist/neutral/types/XyoProviderRpc.d.ts +3 -3
  20. package/dist/neutral/types/XyoProviderRpc.d.ts.map +1 -1
  21. package/dist/node/engine/rpcEngineFromProvider.d.ts +2 -2
  22. package/dist/node/engine/rpcEngineFromProvider.d.ts.map +1 -1
  23. package/dist/node/engine/rpcMethodHandlersFromProvider.d.ts +2 -2
  24. package/dist/node/engine/rpcMethodHandlersFromProvider.d.ts.map +1 -1
  25. package/dist/node/index-node.mjs +81 -24
  26. package/dist/node/index-node.mjs.map +1 -1
  27. package/dist/node/provider/host/JsonRpcXyoGateway.d.ts +8 -8
  28. package/dist/node/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
  29. package/dist/node/provider/provider/MemoryXyoProvider.d.ts +2 -2
  30. package/dist/node/provider/provider/MemoryXyoProvider.d.ts.map +1 -1
  31. package/dist/node/provider/provider/RpcXyoProvider.d.ts +13 -0
  32. package/dist/node/provider/provider/RpcXyoProvider.d.ts.map +1 -0
  33. package/dist/node/provider/provider/confirmTransaction.d.ts +4 -0
  34. package/dist/node/provider/provider/confirmTransaction.d.ts.map +1 -0
  35. package/dist/node/provider/provider/index.d.ts +1 -0
  36. package/dist/node/provider/provider/index.d.ts.map +1 -1
  37. package/dist/node/types/XyoGatewayRpc.d.ts +3 -3
  38. package/dist/node/types/XyoGatewayRpc.d.ts.map +1 -1
  39. package/dist/node/types/XyoProviderRpc.d.ts +3 -3
  40. package/dist/node/types/XyoProviderRpc.d.ts.map +1 -1
  41. package/package.json +23 -22
  42. package/src/engine/rpcEngineFromProvider.ts +2 -2
  43. package/src/engine/rpcMethodHandlersFromProvider.ts +3 -3
  44. package/src/provider/host/JsonRpcXyoGateway.ts +21 -16
  45. package/src/provider/provider/MemoryXyoProvider.ts +2 -2
  46. package/src/provider/provider/RpcXyoProvider.ts +37 -0
  47. package/src/provider/provider/confirmTransaction.ts +37 -0
  48. package/src/provider/provider/index.ts +1 -0
  49. package/src/types/XyoGatewayRpc.ts +4 -4
  50. package/src/types/XyoProviderRpc.ts +4 -4
  51. package/src/types/schema/XyoHostRpcSchemas.ts +5 -5
@@ -1,4 +1,4 @@
1
1
  import { JsonRpcEngine } from '@metamask/json-rpc-engine';
2
- import type { XyoProvider } from '@xyo-network/xl1-protocol';
3
- export declare const rpcEngineFromProvider: (provider: XyoProvider) => JsonRpcEngine;
2
+ import type { XyoConnectionProvider } from '@xyo-network/xl1-protocol';
3
+ export declare const rpcEngineFromProvider: (provider: XyoConnectionProvider) => JsonRpcEngine;
4
4
  //# sourceMappingURL=rpcEngineFromProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpcEngineFromProvider.d.ts","sourceRoot":"","sources":["../../../src/engine/rpcEngineFromProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEhF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAQ5D,eAAO,MAAM,qBAAqB,GAAI,UAAU,WAAW,kBA8C1D,CAAA"}
1
+ {"version":3,"file":"rpcEngineFromProvider.d.ts","sourceRoot":"","sources":["../../../src/engine/rpcEngineFromProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAQtE,eAAO,MAAM,qBAAqB,GAAI,UAAU,qBAAqB,kBA8CpE,CAAA"}
@@ -1,4 +1,4 @@
1
- import type { XyoProvider } from '@xyo-network/xl1-protocol';
1
+ import type { XyoConnectionProvider } from '@xyo-network/xl1-protocol';
2
2
  import type { XyoProviderRpcMethodHandlers } from '../types/index.ts';
3
- export declare const rpcMethodHandlersFromProvider: (provider: XyoProvider) => XyoProviderRpcMethodHandlers;
3
+ export declare const rpcMethodHandlersFromProvider: (provider: XyoConnectionProvider) => XyoProviderRpcMethodHandlers;
4
4
  //# sourceMappingURL=rpcMethodHandlersFromProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpcMethodHandlersFromProvider.d.ts","sourceRoot":"","sources":["../../../src/engine/rpcMethodHandlersFromProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAKrE,eAAO,MAAM,6BAA6B,GAAI,UAAU,WAAW,KAAG,4BASrE,CAAA"}
1
+ {"version":3,"file":"rpcMethodHandlersFromProvider.d.ts","sourceRoot":"","sources":["../../../src/engine/rpcMethodHandlersFromProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEtE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAA;AAKrE,eAAO,MAAM,6BAA6B,GAAI,UAAU,qBAAqB,KAAG,4BAS/E,CAAA"}
@@ -59,34 +59,36 @@ var rpcMethodHandlersFromProvider = /* @__PURE__ */ __name((provider) => {
59
59
  }, "rpcMethodHandlersFromProvider");
60
60
 
61
61
  // src/provider/host/JsonRpcXyoGateway.ts
62
+ import { assertEx } from "@xylabs/assert";
62
63
  var JsonRpcXyoGateway = class {
63
64
  static {
64
65
  __name(this, "JsonRpcXyoGateway");
65
66
  }
66
- transport;
67
+ _transport;
67
68
  constructor(transport) {
68
- this.transport = transport;
69
+ this._transport = transport;
69
70
  }
70
- activeChain() {
71
- throw new Error("getter not implemented.");
71
+ activeConnection() {
72
+ throw new Error("Method not implemented.");
72
73
  }
73
- addChain(chainConnectionInfo) {
74
- return this.transport.sendRequest("xyoGateway_addChain", chainConnectionInfo);
74
+ addConnection(_config) {
75
+ throw new Error("Method not implemented.");
75
76
  }
76
- chains() {
77
- return this.transport.sendRequest("xyoGateway_chains");
77
+ connections() {
78
+ throw new Error("Method not implemented.");
78
79
  }
79
80
  getPermissions() {
80
- return this.transport.sendRequest("xyoGateway_getPermissions");
81
+ return this._transport.sendRequest("xyoGateway_getPermissions");
81
82
  }
82
83
  requestPermissions(permissions) {
83
- return this.transport.sendRequest("xyoGateway_requestPermissions", permissions);
84
+ return this._transport.sendRequest("xyoGateway_requestPermissions", permissions);
84
85
  }
85
86
  revokePermissions(permissions) {
86
- return this.transport.sendRequest("xyoGateway_revokePermissions", permissions);
87
+ return this._transport.sendRequest("xyoGateway_revokePermissions", permissions);
87
88
  }
88
- submitTransaction(_tx) {
89
- throw new Error("Method not implemented.");
89
+ async submitTransaction(tx) {
90
+ const runner = assertEx((await this.activeConnection())?.runner, () => "No runner available for transaction submission");
91
+ return await runner.broadcastTransaction(tx);
90
92
  }
91
93
  };
92
94
 
@@ -163,7 +165,7 @@ var MemoryXyoNetwork = class {
163
165
  };
164
166
 
165
167
  // src/provider/provider/MemoryXyoProvider.ts
166
- import { assertEx } from "@xylabs/assert";
168
+ import { assertEx as assertEx2 } from "@xylabs/assert";
167
169
  import { PayloadBuilder } from "@xyo-network/payload-builder";
168
170
  import { defaultTransactionFees } from "@xyo-network/xl1-protocol";
169
171
  var MemoryXyoProvider = class {
@@ -200,8 +202,8 @@ var MemoryXyoProvider = class {
200
202
  const feesValue = fees === void 0 ? defaultTransactionFees : fees;
201
203
  const fromValue = from === void 0 ? await this._signer?.address() : from;
202
204
  if (fromValue === void 0) throw new Error("Failed to determine from address");
203
- const signedTransaction = assertEx(await this._signer?.createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbfValue, expValue, feesValue, fromValue), () => "Failed to create transaction");
204
- assertEx(await this.runner?.broadcastTransaction([
205
+ const signedTransaction = assertEx2(await this._signer?.createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbfValue, expValue, feesValue, fromValue), () => "Failed to create transaction");
206
+ assertEx2(await this.runner?.broadcastTransaction([
205
207
  await PayloadBuilder.addStorageMeta(signedTransaction),
206
208
  await PayloadBuilder.addStorageMeta(elevatedPayloads)
207
209
  ]), () => "Failed to broadcast transaction");
@@ -209,204 +211,6 @@ var MemoryXyoProvider = class {
209
211
  }
210
212
  };
211
213
 
212
- // src/provider/runner/JsonRpcXyoRunner.ts
213
- var JsonRpcXyoRunner = class {
214
- static {
215
- __name(this, "JsonRpcXyoRunner");
216
- }
217
- transport;
218
- constructor(transport) {
219
- this.transport = transport;
220
- }
221
- async broadcastTransaction(transaction) {
222
- return await this.transport.sendRequest("xyoRunner_broadcastTransaction", [
223
- transaction
224
- ]);
225
- }
226
- };
227
-
228
- // src/provider/runner/MemoryXyoRunner.ts
229
- import { MemoryArchivist } from "@xyo-network/archivist-memory";
230
- import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
231
- import { flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
232
- var MemoryXyoRunner = class {
233
- static {
234
- __name(this, "MemoryXyoRunner");
235
- }
236
- _archivist;
237
- async broadcastTransaction(transaction) {
238
- const archivist = await this.getArchivist();
239
- await archivist.insert(flattenHydratedTransaction(transaction));
240
- return await PayloadBuilder2.hash(transaction[0]);
241
- }
242
- async getArchivist() {
243
- if (!this._archivist) {
244
- this._archivist = await MemoryArchivist.create({
245
- account: "random"
246
- });
247
- }
248
- return this._archivist;
249
- }
250
- };
251
-
252
- // src/provider/runner/NodeXyoRunner.ts
253
- import { assertEx as assertEx2 } from "@xylabs/assert";
254
- import { asArchivistInstance } from "@xyo-network/archivist-model";
255
- import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
256
- import { PayloadBundleSchema } from "@xyo-network/payload-model";
257
- import { flattenHydratedTransaction as flattenHydratedTransaction2 } from "@xyo-network/xl1-protocol-sdk";
258
- var NodeXyoRunner = class {
259
- static {
260
- __name(this, "NodeXyoRunner");
261
- }
262
- // TODO: Make configurable with defaults
263
- node;
264
- pendingArchivistPath = "XYOChain:Pending:PendingTransactions";
265
- _pendingArchivist;
266
- constructor(node) {
267
- this.node = node;
268
- }
269
- async broadcastTransaction(transaction) {
270
- const flattened = flattenHydratedTransaction2(transaction);
271
- const pendingArchivist = await this.getPendingArchivist();
272
- const txHash = await PayloadBuilder3.hash(transaction[0]);
273
- const payloadBundle = {
274
- schema: PayloadBundleSchema,
275
- payloads: flattened,
276
- root: txHash
277
- };
278
- await pendingArchivist.insert([
279
- payloadBundle
280
- ]);
281
- return txHash;
282
- }
283
- getArchivist = /* @__PURE__ */ __name(async (identifier) => {
284
- const archivist = await this.node.resolve(identifier);
285
- return assertEx2(asArchivistInstance(archivist), () => `Error: Could not resolve ${identifier} to an archivist instance`);
286
- }, "getArchivist");
287
- getPendingArchivist = /* @__PURE__ */ __name(async () => {
288
- if (this._pendingArchivist) return this._pendingArchivist;
289
- this._pendingArchivist = await this.getArchivist(this.pendingArchivistPath);
290
- return assertEx2(this._pendingArchivist, () => `Error: Could not resolve pending archivist at ${this.pendingArchivistPath}`);
291
- }, "getPendingArchivist");
292
- };
293
-
294
- // src/provider/signer/JsonRpcXyoSigner.ts
295
- var JsonRpcXyoSigner = class {
296
- static {
297
- __name(this, "JsonRpcXyoSigner");
298
- }
299
- transport;
300
- constructor(transport) {
301
- this.transport = transport;
302
- }
303
- async address() {
304
- return await this.transport.sendRequest("xyoSigner_address");
305
- }
306
- async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
307
- return await this.transport.sendRequest("xyoSigner_createSignedTransaction", [
308
- chain,
309
- elevatedPayloads,
310
- additionalPayloads,
311
- nbf,
312
- exp,
313
- fees,
314
- from
315
- ]);
316
- }
317
- };
318
-
319
- // src/provider/signer/MemoryXyoSigner.ts
320
- import { buildTransaction } from "@xyo-network/xl1-protocol-sdk";
321
- var MemoryXyoSigner = class {
322
- static {
323
- __name(this, "MemoryXyoSigner");
324
- }
325
- _account;
326
- constructor(account) {
327
- this._account = account;
328
- }
329
- address() {
330
- return this._account.address;
331
- }
332
- async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
333
- const fromAddress = from ?? this._account.address;
334
- const transaction = await buildTransaction(chain, elevatedPayloads, additionalPayloads, this._account, nbf, exp, fromAddress, fees);
335
- return transaction[0];
336
- }
337
- };
338
-
339
- // src/provider/viewer/JsonRpcXyoViewer.ts
340
- var JsonRpcXyoViewer = class {
341
- static {
342
- __name(this, "JsonRpcXyoViewer");
343
- }
344
- transport;
345
- constructor(transport) {
346
- this.transport = transport;
347
- }
348
- async accountBalance(address) {
349
- return await this.transport.sendRequest("xyoViewer_accountBalance", [
350
- address
351
- ]);
352
- }
353
- async accountHistory(address) {
354
- return await this.transport.sendRequest("xyoViewer_accountBalance", [
355
- address
356
- ]);
357
- }
358
- async blockByHash(hash) {
359
- return await this.transport.sendRequest("xyoViewer_blockByHash", [
360
- hash
361
- ]);
362
- }
363
- async blockByNumber(blockNumber) {
364
- return await this.transport.sendRequest("xyoViewer_blockByNumber", [
365
- blockNumber
366
- ]);
367
- }
368
- async blocksByHash(hash, limit) {
369
- return await this.transport.sendRequest("xyoViewer_blocksByHash", [
370
- hash,
371
- limit
372
- ]);
373
- }
374
- async chainId() {
375
- return await this.transport.sendRequest("xyoViewer_chainId");
376
- }
377
- async currentBlock() {
378
- return await this.transport.sendRequest("xyoViewer_currentBlock");
379
- }
380
- async currentBlockHash() {
381
- return await this.transport.sendRequest("xyoViewer_currentBlockHash");
382
- }
383
- async currentBlockNumber() {
384
- return await this.transport.sendRequest("xyoViewer_currentBlockNumber");
385
- }
386
- async transactionByBlockHashAndIndex(blockHash, transactionIndex) {
387
- return await this.transport.sendRequest("xyoViewer_transactionByBlockHashAndIndex", [
388
- blockHash,
389
- transactionIndex
390
- ]);
391
- }
392
- async transactionByBlockNumberAndIndex(blockNumber, transactionIndex) {
393
- return await this.transport.sendRequest("xyoViewer_transactionByBlockNumberAndIndex", [
394
- blockNumber,
395
- transactionIndex
396
- ]);
397
- }
398
- async transactionByHash(transactionHash) {
399
- return await this.transport.sendRequest("xyoViewer_transactionByHash", [
400
- transactionHash
401
- ]);
402
- }
403
- };
404
-
405
- // src/transport/HttpRpcTransport.ts
406
- import { AxiosJson } from "@xylabs/axios";
407
- import { isUndefinedOrNull } from "@xylabs/typeof";
408
- import { v4 } from "uuid";
409
-
410
214
  // src/types/ErrorCodes.ts
411
215
  var JsonRpcErrorCodes = {
412
216
  InternalError: {
@@ -978,7 +782,7 @@ var InvokerPermissionSchema = PermissionSchema.extend({
978
782
  date: z20.number().optional()
979
783
  });
980
784
  var XyoGatewayRpcSchemas = {
981
- xyoGateway_addChain: {
785
+ xyoGateway_addConnection: {
982
786
  params: {
983
787
  to: z20.tuple([
984
788
  ChainConnectionSchema
@@ -996,7 +800,7 @@ var XyoGatewayRpcSchemas = {
996
800
  ])
997
801
  }
998
802
  },
999
- xyoGateway_chains: {
803
+ xyoGateway_connections: {
1000
804
  params: {
1001
805
  to: z20.array(z20.any()).length(0).optional(),
1002
806
  from: z20.array(z20.any()).length(0).optional()
@@ -1036,10 +840,10 @@ var XyoGatewayRpcSchemas = {
1036
840
  from: z20.boolean()
1037
841
  }
1038
842
  },
1039
- xyoGateway_activeChain: {
843
+ xyoGateway_activeConnection: {
1040
844
  params: {
1041
- from: z20.string().optional(),
1042
- to: z20.string().optional()
845
+ from: z20.never(),
846
+ to: z20.never()
1043
847
  },
1044
848
  result: {
1045
849
  from: z20.string().optional(),
@@ -1059,6 +863,9 @@ var XyoGatewayRpcSchemas = {
1059
863
  };
1060
864
 
1061
865
  // src/transport/HttpRpcTransport.ts
866
+ import { AxiosJson } from "@xylabs/axios";
867
+ import { isUndefinedOrNull } from "@xylabs/typeof";
868
+ import { v4 } from "uuid";
1062
869
  var HttpRpcTransport = class {
1063
870
  static {
1064
871
  __name(this, "HttpRpcTransport");
@@ -1188,6 +995,253 @@ var PostMessageRpcTransport = class {
1188
995
  });
1189
996
  }
1190
997
  };
998
+
999
+ // src/provider/runner/JsonRpcXyoRunner.ts
1000
+ var JsonRpcXyoRunner = class {
1001
+ static {
1002
+ __name(this, "JsonRpcXyoRunner");
1003
+ }
1004
+ transport;
1005
+ constructor(transport) {
1006
+ this.transport = transport;
1007
+ }
1008
+ async broadcastTransaction(transaction) {
1009
+ return await this.transport.sendRequest("xyoRunner_broadcastTransaction", [
1010
+ transaction
1011
+ ]);
1012
+ }
1013
+ };
1014
+
1015
+ // src/provider/runner/MemoryXyoRunner.ts
1016
+ import { MemoryArchivist } from "@xyo-network/archivist-memory";
1017
+ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
1018
+ import { flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
1019
+ var MemoryXyoRunner = class {
1020
+ static {
1021
+ __name(this, "MemoryXyoRunner");
1022
+ }
1023
+ _archivist;
1024
+ async broadcastTransaction(transaction) {
1025
+ const archivist = await this.getArchivist();
1026
+ await archivist.insert(flattenHydratedTransaction(transaction));
1027
+ return await PayloadBuilder2.hash(transaction[0]);
1028
+ }
1029
+ async getArchivist() {
1030
+ if (!this._archivist) {
1031
+ this._archivist = await MemoryArchivist.create({
1032
+ account: "random"
1033
+ });
1034
+ }
1035
+ return this._archivist;
1036
+ }
1037
+ };
1038
+
1039
+ // src/provider/runner/NodeXyoRunner.ts
1040
+ import { assertEx as assertEx3 } from "@xylabs/assert";
1041
+ import { asArchivistInstance } from "@xyo-network/archivist-model";
1042
+ import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
1043
+ import { PayloadBundleSchema } from "@xyo-network/payload-model";
1044
+ import { flattenHydratedTransaction as flattenHydratedTransaction2 } from "@xyo-network/xl1-protocol-sdk";
1045
+ var NodeXyoRunner = class {
1046
+ static {
1047
+ __name(this, "NodeXyoRunner");
1048
+ }
1049
+ // TODO: Make configurable with defaults
1050
+ node;
1051
+ pendingArchivistPath = "XYOChain:Pending:PendingTransactions";
1052
+ _pendingArchivist;
1053
+ constructor(node) {
1054
+ this.node = node;
1055
+ }
1056
+ async broadcastTransaction(transaction) {
1057
+ const flattened = flattenHydratedTransaction2(transaction);
1058
+ const pendingArchivist = await this.getPendingArchivist();
1059
+ const txHash = await PayloadBuilder3.hash(transaction[0]);
1060
+ const payloadBundle = {
1061
+ schema: PayloadBundleSchema,
1062
+ payloads: flattened,
1063
+ root: txHash
1064
+ };
1065
+ await pendingArchivist.insert([
1066
+ payloadBundle
1067
+ ]);
1068
+ return txHash;
1069
+ }
1070
+ getArchivist = /* @__PURE__ */ __name(async (identifier) => {
1071
+ const archivist = await this.node.resolve(identifier);
1072
+ return assertEx3(asArchivistInstance(archivist), () => `Error: Could not resolve ${identifier} to an archivist instance`);
1073
+ }, "getArchivist");
1074
+ getPendingArchivist = /* @__PURE__ */ __name(async () => {
1075
+ if (this._pendingArchivist) return this._pendingArchivist;
1076
+ this._pendingArchivist = await this.getArchivist(this.pendingArchivistPath);
1077
+ return assertEx3(this._pendingArchivist, () => `Error: Could not resolve pending archivist at ${this.pendingArchivistPath}`);
1078
+ }, "getPendingArchivist");
1079
+ };
1080
+
1081
+ // src/provider/signer/JsonRpcXyoSigner.ts
1082
+ var JsonRpcXyoSigner = class {
1083
+ static {
1084
+ __name(this, "JsonRpcXyoSigner");
1085
+ }
1086
+ transport;
1087
+ constructor(transport) {
1088
+ this.transport = transport;
1089
+ }
1090
+ async address() {
1091
+ return await this.transport.sendRequest("xyoSigner_address");
1092
+ }
1093
+ async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
1094
+ return await this.transport.sendRequest("xyoSigner_createSignedTransaction", [
1095
+ chain,
1096
+ elevatedPayloads,
1097
+ additionalPayloads,
1098
+ nbf,
1099
+ exp,
1100
+ fees,
1101
+ from
1102
+ ]);
1103
+ }
1104
+ };
1105
+
1106
+ // src/provider/signer/MemoryXyoSigner.ts
1107
+ import { buildTransaction } from "@xyo-network/xl1-protocol-sdk";
1108
+ var MemoryXyoSigner = class {
1109
+ static {
1110
+ __name(this, "MemoryXyoSigner");
1111
+ }
1112
+ _account;
1113
+ constructor(account) {
1114
+ this._account = account;
1115
+ }
1116
+ address() {
1117
+ return this._account.address;
1118
+ }
1119
+ async createSignedTransaction(chain, elevatedPayloads, additionalPayloads, nbf, exp, fees, from) {
1120
+ const fromAddress = from ?? this._account.address;
1121
+ const transaction = await buildTransaction(chain, elevatedPayloads, additionalPayloads, this._account, nbf, exp, fromAddress, fees);
1122
+ return transaction[0];
1123
+ }
1124
+ };
1125
+
1126
+ // src/provider/viewer/JsonRpcXyoViewer.ts
1127
+ var JsonRpcXyoViewer = class {
1128
+ static {
1129
+ __name(this, "JsonRpcXyoViewer");
1130
+ }
1131
+ transport;
1132
+ constructor(transport) {
1133
+ this.transport = transport;
1134
+ }
1135
+ async accountBalance(address) {
1136
+ return await this.transport.sendRequest("xyoViewer_accountBalance", [
1137
+ address
1138
+ ]);
1139
+ }
1140
+ async accountHistory(address) {
1141
+ return await this.transport.sendRequest("xyoViewer_accountBalance", [
1142
+ address
1143
+ ]);
1144
+ }
1145
+ async blockByHash(hash) {
1146
+ return await this.transport.sendRequest("xyoViewer_blockByHash", [
1147
+ hash
1148
+ ]);
1149
+ }
1150
+ async blockByNumber(blockNumber) {
1151
+ return await this.transport.sendRequest("xyoViewer_blockByNumber", [
1152
+ blockNumber
1153
+ ]);
1154
+ }
1155
+ async blocksByHash(hash, limit) {
1156
+ return await this.transport.sendRequest("xyoViewer_blocksByHash", [
1157
+ hash,
1158
+ limit
1159
+ ]);
1160
+ }
1161
+ async chainId() {
1162
+ return await this.transport.sendRequest("xyoViewer_chainId");
1163
+ }
1164
+ async currentBlock() {
1165
+ return await this.transport.sendRequest("xyoViewer_currentBlock");
1166
+ }
1167
+ async currentBlockHash() {
1168
+ return await this.transport.sendRequest("xyoViewer_currentBlockHash");
1169
+ }
1170
+ async currentBlockNumber() {
1171
+ return await this.transport.sendRequest("xyoViewer_currentBlockNumber");
1172
+ }
1173
+ async transactionByBlockHashAndIndex(blockHash, transactionIndex) {
1174
+ return await this.transport.sendRequest("xyoViewer_transactionByBlockHashAndIndex", [
1175
+ blockHash,
1176
+ transactionIndex
1177
+ ]);
1178
+ }
1179
+ async transactionByBlockNumberAndIndex(blockNumber, transactionIndex) {
1180
+ return await this.transport.sendRequest("xyoViewer_transactionByBlockNumberAndIndex", [
1181
+ blockNumber,
1182
+ transactionIndex
1183
+ ]);
1184
+ }
1185
+ async transactionByHash(transactionHash) {
1186
+ return await this.transport.sendRequest("xyoViewer_transactionByHash", [
1187
+ transactionHash
1188
+ ]);
1189
+ }
1190
+ };
1191
+
1192
+ // src/provider/provider/confirmTransaction.ts
1193
+ import { delay } from "@xylabs/delay";
1194
+ import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
1195
+ var CONFIRMATION_ATTEMPTS = 20;
1196
+ var DELAY_BETWEEN_ATTEMPTS = 1e3;
1197
+ var confirmTransaction = /* @__PURE__ */ __name(async (provider, txBW, onConfirm, onTimeout) => {
1198
+ const txBWHash = await PayloadBuilder4.hash(txBW);
1199
+ console.log("\u2705 confirming transaction:", txBWHash, "\n");
1200
+ let confirmed = false;
1201
+ let attempts = 0;
1202
+ while (!confirmed) {
1203
+ const tx = await provider.viewer?.transactionByHash(txBWHash);
1204
+ if (tx) {
1205
+ confirmed = true;
1206
+ console.log("\u{1F37B} Transaction confirmed:", txBWHash, "\n");
1207
+ onConfirm?.(txBWHash);
1208
+ } else {
1209
+ attempts++;
1210
+ if (attempts > CONFIRMATION_ATTEMPTS) {
1211
+ console.error(`\u26A0\uFE0F Transaction not confirmed after ${CONFIRMATION_ATTEMPTS} attempts`);
1212
+ onTimeout?.();
1213
+ return;
1214
+ } else {
1215
+ console.log(`\u{1F504} Transaction not confirmed yet, attempt ${attempts}. Retrying...`, "\n");
1216
+ await delay(DELAY_BETWEEN_ATTEMPTS);
1217
+ }
1218
+ }
1219
+ }
1220
+ }, "confirmTransaction");
1221
+
1222
+ // src/provider/provider/RpcXyoProvider.ts
1223
+ var RpcXyoProvider = class extends MemoryXyoProvider {
1224
+ static {
1225
+ __name(this, "RpcXyoProvider");
1226
+ }
1227
+ constructor(params) {
1228
+ const transport = new HttpRpcTransport(params.endpoint, {
1229
+ ...XyoRunnerRpcSchemas,
1230
+ ...XyoViewerRpcSchemas
1231
+ });
1232
+ const signer = params.account ? new MemoryXyoSigner(params.account) : void 0;
1233
+ const runner = new JsonRpcXyoRunner(transport);
1234
+ const viewer = new JsonRpcXyoViewer(transport);
1235
+ super({
1236
+ signer,
1237
+ runner,
1238
+ viewer
1239
+ });
1240
+ }
1241
+ async confirm(tx, onConfirm, onTimeout) {
1242
+ return await confirmTransaction(this, tx, onConfirm, onTimeout);
1243
+ }
1244
+ };
1191
1245
  export {
1192
1246
  AllRpcSchemas,
1193
1247
  CaveatTypesSchema,
@@ -1208,6 +1262,7 @@ export {
1208
1262
  NodeXyoRunner,
1209
1263
  PermissionSchema,
1210
1264
  PostMessageRpcTransport,
1265
+ RpcXyoProvider,
1211
1266
  XyoGatewayRpcSchemas,
1212
1267
  XyoProviderRpcSchemas,
1213
1268
  XyoRunnerRpcSchemas,