@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.
- package/dist/neutral/engine/rpcEngineFromProvider.d.ts +2 -2
- package/dist/neutral/engine/rpcEngineFromProvider.d.ts.map +1 -1
- package/dist/neutral/engine/rpcMethodHandlersFromProvider.d.ts +2 -2
- package/dist/neutral/engine/rpcMethodHandlersFromProvider.d.ts.map +1 -1
- package/dist/neutral/index.mjs +274 -219
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts +8 -8
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/provider/MemoryXyoProvider.d.ts +2 -2
- package/dist/neutral/provider/provider/MemoryXyoProvider.d.ts.map +1 -1
- package/dist/neutral/provider/provider/RpcXyoProvider.d.ts +13 -0
- package/dist/neutral/provider/provider/RpcXyoProvider.d.ts.map +1 -0
- package/dist/neutral/provider/provider/confirmTransaction.d.ts +4 -0
- package/dist/neutral/provider/provider/confirmTransaction.d.ts.map +1 -0
- package/dist/neutral/provider/provider/index.d.ts +1 -0
- package/dist/neutral/provider/provider/index.d.ts.map +1 -1
- package/dist/neutral/types/XyoGatewayRpc.d.ts +3 -3
- package/dist/neutral/types/XyoGatewayRpc.d.ts.map +1 -1
- package/dist/neutral/types/XyoProviderRpc.d.ts +3 -3
- package/dist/neutral/types/XyoProviderRpc.d.ts.map +1 -1
- package/dist/node/engine/rpcEngineFromProvider.d.ts +2 -2
- package/dist/node/engine/rpcEngineFromProvider.d.ts.map +1 -1
- package/dist/node/engine/rpcMethodHandlersFromProvider.d.ts +2 -2
- package/dist/node/engine/rpcMethodHandlersFromProvider.d.ts.map +1 -1
- package/dist/node/index-node.mjs +81 -24
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts +8 -8
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/node/provider/provider/MemoryXyoProvider.d.ts +2 -2
- package/dist/node/provider/provider/MemoryXyoProvider.d.ts.map +1 -1
- package/dist/node/provider/provider/RpcXyoProvider.d.ts +13 -0
- package/dist/node/provider/provider/RpcXyoProvider.d.ts.map +1 -0
- package/dist/node/provider/provider/confirmTransaction.d.ts +4 -0
- package/dist/node/provider/provider/confirmTransaction.d.ts.map +1 -0
- package/dist/node/provider/provider/index.d.ts +1 -0
- package/dist/node/provider/provider/index.d.ts.map +1 -1
- package/dist/node/types/XyoGatewayRpc.d.ts +3 -3
- package/dist/node/types/XyoGatewayRpc.d.ts.map +1 -1
- package/dist/node/types/XyoProviderRpc.d.ts +3 -3
- package/dist/node/types/XyoProviderRpc.d.ts.map +1 -1
- package/package.json +23 -22
- package/src/engine/rpcEngineFromProvider.ts +2 -2
- package/src/engine/rpcMethodHandlersFromProvider.ts +3 -3
- package/src/provider/host/JsonRpcXyoGateway.ts +21 -16
- package/src/provider/provider/MemoryXyoProvider.ts +2 -2
- package/src/provider/provider/RpcXyoProvider.ts +37 -0
- package/src/provider/provider/confirmTransaction.ts +37 -0
- package/src/provider/provider/index.ts +1 -0
- package/src/types/XyoGatewayRpc.ts +4 -4
- package/src/types/XyoProviderRpc.ts +4 -4
- package/src/types/schema/XyoHostRpcSchemas.ts +5 -5
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { JsonRpcEngine } from '@metamask/json-rpc-engine';
|
|
2
|
-
import type {
|
|
3
|
-
export declare const rpcEngineFromProvider: (provider:
|
|
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,
|
|
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 {
|
|
1
|
+
import type { XyoConnectionProvider } from '@xyo-network/xl1-protocol';
|
|
2
2
|
import type { XyoProviderRpcMethodHandlers } from '../types/index.ts';
|
|
3
|
-
export declare const rpcMethodHandlersFromProvider: (provider:
|
|
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,
|
|
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"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -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
|
-
|
|
67
|
+
_transport;
|
|
67
68
|
constructor(transport) {
|
|
68
|
-
this.
|
|
69
|
+
this._transport = transport;
|
|
69
70
|
}
|
|
70
|
-
|
|
71
|
-
throw new Error("
|
|
71
|
+
activeConnection() {
|
|
72
|
+
throw new Error("Method not implemented.");
|
|
72
73
|
}
|
|
73
|
-
|
|
74
|
-
|
|
74
|
+
addConnection(_config) {
|
|
75
|
+
throw new Error("Method not implemented.");
|
|
75
76
|
}
|
|
76
|
-
|
|
77
|
-
|
|
77
|
+
connections() {
|
|
78
|
+
throw new Error("Method not implemented.");
|
|
78
79
|
}
|
|
79
80
|
getPermissions() {
|
|
80
|
-
return this.
|
|
81
|
+
return this._transport.sendRequest("xyoGateway_getPermissions");
|
|
81
82
|
}
|
|
82
83
|
requestPermissions(permissions) {
|
|
83
|
-
return this.
|
|
84
|
+
return this._transport.sendRequest("xyoGateway_requestPermissions", permissions);
|
|
84
85
|
}
|
|
85
86
|
revokePermissions(permissions) {
|
|
86
|
-
return this.
|
|
87
|
+
return this._transport.sendRequest("xyoGateway_revokePermissions", permissions);
|
|
87
88
|
}
|
|
88
|
-
submitTransaction(
|
|
89
|
-
|
|
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 =
|
|
204
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
843
|
+
xyoGateway_activeConnection: {
|
|
1040
844
|
params: {
|
|
1041
|
-
from: z20.
|
|
1042
|
-
to: z20.
|
|
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,
|