@xyo-network/xl1-protocol-sdk 3.0.14 → 3.0.16
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/boundwitness/buildUnsignedBoundWitness.d.ts +10 -0
- package/dist/neutral/boundwitness/buildUnsignedBoundWitness.d.ts.map +1 -0
- package/dist/neutral/boundwitness/index.d.ts +2 -0
- package/dist/neutral/boundwitness/index.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +192 -82
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/neutral/model/CreatableProviderContext.zod.d.ts +9 -10
- package/dist/neutral/model/CreatableProviderContext.zod.d.ts.map +1 -1
- package/dist/neutral/simple/index.d.ts +1 -0
- package/dist/neutral/simple/index.d.ts.map +1 -1
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +5 -6
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -1
- package/dist/neutral/simple/systemStatus/ConsoleSystemStatusPublisher.d.ts +21 -0
- package/dist/neutral/simple/systemStatus/ConsoleSystemStatusPublisher.d.ts.map +1 -0
- package/dist/neutral/simple/systemStatus/SimpleSystemStatusViewer.d.ts +27 -0
- package/dist/neutral/simple/systemStatus/SimpleSystemStatusViewer.d.ts.map +1 -0
- package/dist/neutral/simple/systemStatus/index.d.ts +3 -0
- package/dist/neutral/simple/systemStatus/index.d.ts.map +1 -0
- package/dist/neutral/status/SimpleSystemStatusRunner.d.ts +35 -0
- package/dist/neutral/status/SimpleSystemStatusRunner.d.ts.map +1 -0
- package/dist/neutral/status/index.d.ts +1 -1
- package/dist/neutral/status/index.d.ts.map +1 -1
- package/dist/neutral/transaction/signTransaction.d.ts +11 -36
- package/dist/neutral/transaction/signTransaction.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/neutral/status/RuntimeStatusMonitor.d.ts +0 -34
- package/dist/neutral/status/RuntimeStatusMonitor.d.ts.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Payload, UnsignedBoundWitness } from '@xyo-network/sdk-js';
|
|
2
|
+
/**
|
|
3
|
+
* Builds an unsigned hydrated bound witness over the given payloads — the bound-witness analog of
|
|
4
|
+
* {@link buildUnsignedTransaction}. The returned `[boundWitness, payloads]` tuple is ready to pass
|
|
5
|
+
* to `XyoSigner.sign`.
|
|
6
|
+
* @param payloads The payloads the bound witness should witness
|
|
7
|
+
* @returns The unsigned bound witness paired with its (hydrated) payloads
|
|
8
|
+
*/
|
|
9
|
+
export declare function buildUnsignedBoundWitness(payloads: Payload[]): Promise<[UnsignedBoundWitness, Payload[]]>;
|
|
10
|
+
//# sourceMappingURL=buildUnsignedBoundWitness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildUnsignedBoundWitness.d.ts","sourceRoot":"","sources":["../../../src/boundwitness/buildUnsignedBoundWitness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAGxE;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,oBAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,CAG/G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/boundwitness/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
|
package/dist/neutral/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './amount/index.ts';
|
|
2
2
|
export * from './Archivists/index.ts';
|
|
3
3
|
export * from './block/index.ts';
|
|
4
|
+
export * from './boundwitness/index.ts';
|
|
4
5
|
export * from './capabilities/index.ts';
|
|
5
6
|
export * from './ChainContextHelpers.ts';
|
|
6
7
|
export * from './config/index.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gCAAgC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,+BAA+B,CAAA;AAC7C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,mBAAmB,CAAA;AACjC,cAAc,gCAAgC,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -985,6 +985,13 @@ async function validateTransactionsOpcodes(txs) {
|
|
|
985
985
|
return txElevatedPayloads;
|
|
986
986
|
}
|
|
987
987
|
|
|
988
|
+
// src/boundwitness/buildUnsignedBoundWitness.ts
|
|
989
|
+
import { BoundWitnessBuilder } from "@xyo-network/sdk-js";
|
|
990
|
+
async function buildUnsignedBoundWitness(payloads) {
|
|
991
|
+
const [boundWitness, builtPayloads] = await new BoundWitnessBuilder().meta({ $signatures: [] }).payloads(payloads).build(false);
|
|
992
|
+
return [boundWitness, builtPayloads];
|
|
993
|
+
}
|
|
994
|
+
|
|
988
995
|
// src/capabilities/Backing.ts
|
|
989
996
|
function backingsSatisfied(required, available) {
|
|
990
997
|
for (const need of required) {
|
|
@@ -3094,7 +3101,7 @@ import {
|
|
|
3094
3101
|
} from "@xylabs/sdk-js";
|
|
3095
3102
|
import { CachingContextZod } from "@xyo-network/xl1-protocol-lib";
|
|
3096
3103
|
import { z as z19 } from "zod/mini";
|
|
3097
|
-
var
|
|
3104
|
+
var SystemStatusRunnerZod = z19.custom((val) => val !== null && val !== void 0 && typeof val === "object");
|
|
3098
3105
|
var ProviderFactoryLocatorZod = z19.lazy(() => z19.custom((val) => val !== null && val !== void 0 && typeof val === "object" && "context" in val && "registry" in val));
|
|
3099
3106
|
var BaseConfigContextZod = z19.extend(CachingContextZod, {
|
|
3100
3107
|
config: z19.looseObject(BaseConfigZod.shape),
|
|
@@ -3103,7 +3110,7 @@ var BaseConfigContextZod = z19.extend(CachingContextZod, {
|
|
|
3103
3110
|
var CreatableProviderContextZod = z19.lazy(() => z19.extend(BaseConfigContextZod, {
|
|
3104
3111
|
_id: z19.optional(z19.string()),
|
|
3105
3112
|
locator: ProviderFactoryLocatorZod,
|
|
3106
|
-
statusReporter: z19.optional(
|
|
3113
|
+
statusReporter: z19.optional(SystemStatusRunnerZod)
|
|
3107
3114
|
}));
|
|
3108
3115
|
var isBaseConfigContext = zodIsFactory4(BaseConfigContextZod);
|
|
3109
3116
|
var asBaseConfigContext = zodAsFactory5(BaseConfigContextZod, "asBaseConfigContext");
|
|
@@ -3156,7 +3163,7 @@ import { PayloadBuilder as PayloadBuilder12 } from "@xyo-network/sdk-js";
|
|
|
3156
3163
|
import { assertEx as assertEx22, toHex } from "@xylabs/sdk-js";
|
|
3157
3164
|
import {
|
|
3158
3165
|
asAnyPayload as asAnyPayload2,
|
|
3159
|
-
BoundWitnessBuilder,
|
|
3166
|
+
BoundWitnessBuilder as BoundWitnessBuilder2,
|
|
3160
3167
|
PayloadBuilder as PayloadBuilder7
|
|
3161
3168
|
} from "@xyo-network/sdk-js";
|
|
3162
3169
|
import { defaultTransactionFees } from "@xyo-network/xl1-protocol-lib";
|
|
@@ -3184,7 +3191,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
|
|
|
3184
3191
|
if (script.length > 0) {
|
|
3185
3192
|
fields.script = script;
|
|
3186
3193
|
}
|
|
3187
|
-
const boundWitnessBuilder = new
|
|
3194
|
+
const boundWitnessBuilder = new BoundWitnessBuilder2();
|
|
3188
3195
|
const builder = boundWitnessBuilder.fields(fields).meta({ $signatures: [] }).payloads([...onChainPayloads, ...offChainPayloads]).signers(Array.isArray(signer) ? signer : [signer]);
|
|
3189
3196
|
const [tx, txPayloads] = await builder.build();
|
|
3190
3197
|
return [await PayloadBuilder7.addHashMeta(tx), await PayloadBuilder7.addHashMeta(txPayloads.map((p) => asAnyPayload2(p, true)))];
|
|
@@ -3192,7 +3199,7 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
|
|
|
3192
3199
|
|
|
3193
3200
|
// src/transaction/buildUnsignedTransaction.ts
|
|
3194
3201
|
import { toHex as toHex2 } from "@xylabs/sdk-js";
|
|
3195
|
-
import { BoundWitnessBuilder as
|
|
3202
|
+
import { BoundWitnessBuilder as BoundWitnessBuilder3, PayloadBuilder as PayloadBuilder8 } from "@xyo-network/sdk-js";
|
|
3196
3203
|
import { defaultTransactionFees as defaultTransactionFees2 } from "@xyo-network/xl1-protocol-lib";
|
|
3197
3204
|
async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads, nbf, exp, from, fees = defaultTransactionFees2) {
|
|
3198
3205
|
const txBoundWitnessFields = {
|
|
@@ -3215,7 +3222,7 @@ async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads
|
|
|
3215
3222
|
if (script.length > 0) {
|
|
3216
3223
|
fields.script = script;
|
|
3217
3224
|
}
|
|
3218
|
-
const boundWitnessBuilder = new
|
|
3225
|
+
const boundWitnessBuilder = new BoundWitnessBuilder3();
|
|
3219
3226
|
const builder = boundWitnessBuilder.fields(fields).meta({ $signatures: [] }).payloads([...onChainPayloads, ...offChainPayloads]);
|
|
3220
3227
|
const [tx, txPayloads] = await builder.build(false);
|
|
3221
3228
|
return [tx, txPayloads];
|
|
@@ -3393,19 +3400,20 @@ import {
|
|
|
3393
3400
|
toArrayBuffer
|
|
3394
3401
|
} from "@xylabs/sdk-js";
|
|
3395
3402
|
import { PayloadBuilder as PayloadBuilder10 } from "@xyo-network/sdk-js";
|
|
3396
|
-
async function
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
const
|
|
3402
|
-
|
|
3403
|
-
|
|
3404
|
-
const result = {
|
|
3405
|
-
...unsignedTx,
|
|
3403
|
+
async function signBoundWitness(bw, account) {
|
|
3404
|
+
const unsigned = structuredClone(bw);
|
|
3405
|
+
unsigned.addresses = [account.address];
|
|
3406
|
+
unsigned.previous_hashes = [account.previousHash ?? null];
|
|
3407
|
+
const hash = await PayloadBuilder10.dataHash(unsigned);
|
|
3408
|
+
const [signature] = await account.sign(toArrayBuffer(hash));
|
|
3409
|
+
return {
|
|
3410
|
+
...unsigned,
|
|
3406
3411
|
$signatures: [hexFromArrayBuffer(signature)]
|
|
3407
3412
|
};
|
|
3408
|
-
|
|
3413
|
+
}
|
|
3414
|
+
async function signTransaction(tx, account) {
|
|
3415
|
+
assertEx24(tx.from === account.address, () => "Signer address does not match transaction from address");
|
|
3416
|
+
return await signBoundWitness(tx, account);
|
|
3409
3417
|
}
|
|
3410
3418
|
|
|
3411
3419
|
// src/transaction/TransactionBuilder.ts
|
|
@@ -6370,11 +6378,9 @@ SimpleXyoRunner = __decorateClass([
|
|
|
6370
6378
|
], SimpleXyoRunner);
|
|
6371
6379
|
|
|
6372
6380
|
// src/simple/signer/SimpleXyoSigner.ts
|
|
6381
|
+
import { assertEx as assertEx47 } from "@xylabs/sdk-js";
|
|
6373
6382
|
import { Account, PayloadBuilder as PayloadBuilder23 } from "@xyo-network/sdk-js";
|
|
6374
|
-
import {
|
|
6375
|
-
SignedHydratedTransactionWithHashMetaZod,
|
|
6376
|
-
XyoSignerMoniker as XyoSignerMoniker2
|
|
6377
|
-
} from "@xyo-network/xl1-protocol-lib";
|
|
6383
|
+
import { asSignedHydratedTransactionWithHashMeta, XyoSignerMoniker as XyoSignerMoniker2 } from "@xyo-network/xl1-protocol-lib";
|
|
6378
6384
|
var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
|
|
6379
6385
|
static connectionTypes = ["wallet"];
|
|
6380
6386
|
static defaultMoniker = XyoSignerMoniker2;
|
|
@@ -6388,7 +6394,7 @@ var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
|
|
|
6388
6394
|
account = params.account;
|
|
6389
6395
|
} else {
|
|
6390
6396
|
const localLogger = params?.logger ?? params?.context?.logger;
|
|
6391
|
-
localLogger?.warn(`No account provided to SimpleXyoSigner, generating a random account.
|
|
6397
|
+
localLogger?.warn(`No account provided to SimpleXyoSigner, generating a random account.
|
|
6392
6398
|
This account will not be persisted and any transactions signed with it may be lost.
|
|
6393
6399
|
`);
|
|
6394
6400
|
account = await Account.random();
|
|
@@ -6398,24 +6404,16 @@ var SimpleXyoSigner = class _SimpleXyoSigner extends AbstractCreatableProvider {
|
|
|
6398
6404
|
address() {
|
|
6399
6405
|
return this.params.account.address;
|
|
6400
6406
|
}
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
additionalPayloads,
|
|
6408
|
-
this.params.account,
|
|
6409
|
-
nbf,
|
|
6410
|
-
exp,
|
|
6411
|
-
fromAddress,
|
|
6412
|
-
fees
|
|
6413
|
-
);
|
|
6414
|
-
return transaction[0];
|
|
6407
|
+
async sign(bw) {
|
|
6408
|
+
const signed = await signBoundWitness(bw[0], this.params.account);
|
|
6409
|
+
return [
|
|
6410
|
+
await PayloadBuilder23.addHashMeta(signed),
|
|
6411
|
+
await PayloadBuilder23.addHashMeta(bw[1])
|
|
6412
|
+
];
|
|
6415
6413
|
}
|
|
6416
6414
|
async signTransaction(tx) {
|
|
6417
|
-
|
|
6418
|
-
return
|
|
6415
|
+
assertEx47(tx[0].from === this.params.account.address, () => "Signer address does not match transaction from address");
|
|
6416
|
+
return asSignedHydratedTransactionWithHashMeta(await this.sign(tx), true);
|
|
6419
6417
|
}
|
|
6420
6418
|
};
|
|
6421
6419
|
|
|
@@ -6500,7 +6498,7 @@ SimpleStakeEventsViewer = __decorateClass([
|
|
|
6500
6498
|
], SimpleStakeEventsViewer);
|
|
6501
6499
|
|
|
6502
6500
|
// src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts
|
|
6503
|
-
import { assertEx as
|
|
6501
|
+
import { assertEx as assertEx48 } from "@xylabs/sdk-js";
|
|
6504
6502
|
import { asXyoAddress as asXyoAddress3 } from "@xyo-network/sdk-js";
|
|
6505
6503
|
import {
|
|
6506
6504
|
StakeTotalsViewerMoniker,
|
|
@@ -6544,7 +6542,7 @@ var SimpleStakeTotalsViewer = class extends AbstractCreatableProvider {
|
|
|
6544
6542
|
}
|
|
6545
6543
|
async createHandler() {
|
|
6546
6544
|
await super.createHandler();
|
|
6547
|
-
this._stakeViewer =
|
|
6545
|
+
this._stakeViewer = assertEx48(
|
|
6548
6546
|
await this.locateAndCreate(StakeViewerMoniker),
|
|
6549
6547
|
() => "Failed to create StakeViewer"
|
|
6550
6548
|
);
|
|
@@ -6600,14 +6598,14 @@ SimpleStakeTotalsViewer = __decorateClass([
|
|
|
6600
6598
|
], SimpleStakeTotalsViewer);
|
|
6601
6599
|
|
|
6602
6600
|
// src/simple/StakeViewer/SimpleStakeViewer.ts
|
|
6603
|
-
import { assertEx as
|
|
6601
|
+
import { assertEx as assertEx49, toAddress } from "@xylabs/sdk-js";
|
|
6604
6602
|
import { asXyoAddress as asXyoAddress4 } from "@xyo-network/sdk-js";
|
|
6605
6603
|
import { StakeEventsViewerMoniker as StakeEventsViewerMoniker2, StakeViewerMoniker as StakeViewerMoniker2 } from "@xyo-network/xl1-protocol-lib";
|
|
6606
6604
|
var SimpleStakeViewer = class extends AbstractCreatableProvider {
|
|
6607
6605
|
moniker = SimpleStakeViewer.defaultMoniker;
|
|
6608
6606
|
_chainStakeEventsViewer;
|
|
6609
6607
|
get stakeEvents() {
|
|
6610
|
-
return
|
|
6608
|
+
return assertEx49(this._chainStakeEventsViewer, () => "Stake events viewer not set");
|
|
6611
6609
|
}
|
|
6612
6610
|
get positions() {
|
|
6613
6611
|
return this.params.positions;
|
|
@@ -6647,7 +6645,7 @@ var SimpleStakeViewer = class extends AbstractCreatableProvider {
|
|
|
6647
6645
|
}
|
|
6648
6646
|
async createHandler() {
|
|
6649
6647
|
await super.createHandler();
|
|
6650
|
-
this._chainStakeEventsViewer =
|
|
6648
|
+
this._chainStakeEventsViewer = assertEx49(
|
|
6651
6649
|
await this.locateAndCreate(StakeEventsViewerMoniker2),
|
|
6652
6650
|
() => "Failed to create StakeEventsViewer"
|
|
6653
6651
|
);
|
|
@@ -6682,7 +6680,7 @@ var SimpleStakeViewer = class extends AbstractCreatableProvider {
|
|
|
6682
6680
|
return toAddress(toAddress(1n));
|
|
6683
6681
|
}
|
|
6684
6682
|
stakeById(id) {
|
|
6685
|
-
return
|
|
6683
|
+
return assertEx49(this.positions[id], () => new Error(`Stake with id ${id} not found`));
|
|
6686
6684
|
}
|
|
6687
6685
|
stakeByStaker(staker, slot) {
|
|
6688
6686
|
return this.positions.filter((s) => asXyoAddress4(s.staker) === asXyoAddress4(staker))[slot];
|
|
@@ -6783,10 +6781,71 @@ RestSyncViewer = __decorateClass([
|
|
|
6783
6781
|
creatableProvider()
|
|
6784
6782
|
], RestSyncViewer);
|
|
6785
6783
|
|
|
6784
|
+
// src/simple/systemStatus/ConsoleSystemStatusPublisher.ts
|
|
6785
|
+
import { assertEx as assertEx50 } from "@xylabs/sdk-js";
|
|
6786
|
+
import { SystemStatusPublisherMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
6787
|
+
var ConsoleSystemStatusPublisher = class extends AbstractCreatableProvider {
|
|
6788
|
+
moniker = ConsoleSystemStatusPublisher.defaultMoniker;
|
|
6789
|
+
async startHandler() {
|
|
6790
|
+
await super.startHandler();
|
|
6791
|
+
const runner = assertEx50(
|
|
6792
|
+
this.context.statusReporter,
|
|
6793
|
+
() => "ConsoleSystemStatusPublisher requires a SystemStatusRunner (context.statusReporter)"
|
|
6794
|
+
);
|
|
6795
|
+
runner.onGlobalTransition({ to: "started" }, () => {
|
|
6796
|
+
this.logger?.info("All services started.");
|
|
6797
|
+
});
|
|
6798
|
+
runner.onGlobalTransition({ to: "error" }, () => {
|
|
6799
|
+
this.logger?.error("A service entered an error state.");
|
|
6800
|
+
});
|
|
6801
|
+
}
|
|
6802
|
+
};
|
|
6803
|
+
__publicField(ConsoleSystemStatusPublisher, "connectionTypes", ["memory"]);
|
|
6804
|
+
__publicField(ConsoleSystemStatusPublisher, "defaultMoniker", SystemStatusPublisherMoniker);
|
|
6805
|
+
__publicField(ConsoleSystemStatusPublisher, "dependencies", []);
|
|
6806
|
+
__publicField(ConsoleSystemStatusPublisher, "monikers", [SystemStatusPublisherMoniker]);
|
|
6807
|
+
__publicField(ConsoleSystemStatusPublisher, "surface", "node");
|
|
6808
|
+
ConsoleSystemStatusPublisher = __decorateClass([
|
|
6809
|
+
creatableProvider()
|
|
6810
|
+
], ConsoleSystemStatusPublisher);
|
|
6811
|
+
|
|
6812
|
+
// src/simple/systemStatus/SimpleSystemStatusViewer.ts
|
|
6813
|
+
import { assertEx as assertEx51 } from "@xylabs/sdk-js";
|
|
6814
|
+
import { SystemStatusViewerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
6815
|
+
var SimpleSystemStatusViewer = class extends AbstractCreatableProvider {
|
|
6816
|
+
moniker = SimpleSystemStatusViewer.defaultMoniker;
|
|
6817
|
+
get runner() {
|
|
6818
|
+
return assertEx51(this.context.statusReporter, () => "SystemStatusViewer requires a SystemStatusRunner (context.statusReporter)");
|
|
6819
|
+
}
|
|
6820
|
+
getGlobalStatus() {
|
|
6821
|
+
return this.runner.getGlobalStatus();
|
|
6822
|
+
}
|
|
6823
|
+
getStatus(name) {
|
|
6824
|
+
return this.runner.getStatus(name);
|
|
6825
|
+
}
|
|
6826
|
+
isReady() {
|
|
6827
|
+
return this.runner.isReady();
|
|
6828
|
+
}
|
|
6829
|
+
isShuttingDown() {
|
|
6830
|
+
return this.runner.isShuttingDown();
|
|
6831
|
+
}
|
|
6832
|
+
snapshot() {
|
|
6833
|
+
return this.runner.snapshot();
|
|
6834
|
+
}
|
|
6835
|
+
};
|
|
6836
|
+
__publicField(SimpleSystemStatusViewer, "connectionTypes", ["memory"]);
|
|
6837
|
+
__publicField(SimpleSystemStatusViewer, "defaultMoniker", SystemStatusViewerMoniker);
|
|
6838
|
+
__publicField(SimpleSystemStatusViewer, "dependencies", []);
|
|
6839
|
+
__publicField(SimpleSystemStatusViewer, "monikers", [SystemStatusViewerMoniker]);
|
|
6840
|
+
__publicField(SimpleSystemStatusViewer, "surface", "node");
|
|
6841
|
+
SimpleSystemStatusViewer = __decorateClass([
|
|
6842
|
+
creatableProvider()
|
|
6843
|
+
], SimpleSystemStatusViewer);
|
|
6844
|
+
|
|
6786
6845
|
// src/simple/timeSync2/SimpleTimeSyncViewer.ts
|
|
6787
6846
|
import {
|
|
6788
6847
|
asHash as asHash5,
|
|
6789
|
-
assertEx as
|
|
6848
|
+
assertEx as assertEx52,
|
|
6790
6849
|
isDefined as isDefined22
|
|
6791
6850
|
} from "@xylabs/sdk-js";
|
|
6792
6851
|
import {
|
|
@@ -6808,7 +6867,7 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6808
6867
|
async convertTime(fromDomain, toDomain, from) {
|
|
6809
6868
|
switch (fromDomain) {
|
|
6810
6869
|
case "xl1": {
|
|
6811
|
-
const [block, payloads] =
|
|
6870
|
+
const [block, payloads] = assertEx52(await this.blockViewer.blockByNumber(asXL1BlockNumber11(from, true)), () => "Block not found");
|
|
6812
6871
|
const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema);
|
|
6813
6872
|
const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
|
|
6814
6873
|
const timePayload = asTimePayload2(isDefined22(hash) ? payloads.find((p) => p._hash === hash) : void 0);
|
|
@@ -6864,10 +6923,10 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6864
6923
|
return [Date.now(), null];
|
|
6865
6924
|
}
|
|
6866
6925
|
case "ethereum": {
|
|
6867
|
-
const provider =
|
|
6926
|
+
const provider = assertEx52(this.ethProvider, () => "Ethereum provider not configured");
|
|
6868
6927
|
const blockNumber = await provider.getBlockNumber() ?? 0;
|
|
6869
6928
|
const block = await provider.getBlock(blockNumber);
|
|
6870
|
-
const blockHash = asHash5(
|
|
6929
|
+
const blockHash = asHash5(assertEx52(block?.hash, () => "Block hash not found"), true);
|
|
6871
6930
|
return [blockNumber, blockHash];
|
|
6872
6931
|
}
|
|
6873
6932
|
default: {
|
|
@@ -6882,7 +6941,7 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6882
6941
|
// this is for the previous block
|
|
6883
6942
|
xl1,
|
|
6884
6943
|
// this is for the previous block
|
|
6885
|
-
xl1Hash:
|
|
6944
|
+
xl1Hash: assertEx52(xl1Hash, () => "No xl1 hash available from time sync service"),
|
|
6886
6945
|
epoch: Date.now()
|
|
6887
6946
|
};
|
|
6888
6947
|
if (isDefined22(this.ethProvider)) {
|
|
@@ -6904,7 +6963,7 @@ SimpleTimeSyncViewer = __decorateClass([
|
|
|
6904
6963
|
], SimpleTimeSyncViewer);
|
|
6905
6964
|
|
|
6906
6965
|
// src/simple/transactionValidation/SimpleTransactionValidationViewer.ts
|
|
6907
|
-
import { assertEx as
|
|
6966
|
+
import { assertEx as assertEx53 } from "@xylabs/sdk-js";
|
|
6908
6967
|
import { PayloadBuilder as PayloadBuilder24 } from "@xyo-network/sdk-js";
|
|
6909
6968
|
import {
|
|
6910
6969
|
AccountBalanceViewerMoniker as AccountBalanceViewerMoniker3,
|
|
@@ -6958,7 +7017,7 @@ var SimpleTransactionValidationViewer = class extends AbstractCreatableProvider
|
|
|
6958
7017
|
let head;
|
|
6959
7018
|
if (isChainQualifiedHeadConfig6(config)) {
|
|
6960
7019
|
const headBlockResult = await this.blockViewer.blockByHash(config.head);
|
|
6961
|
-
head = headBlockResult == null ?
|
|
7020
|
+
head = headBlockResult == null ? assertEx53(
|
|
6962
7021
|
void 0,
|
|
6963
7022
|
() => `Specified a head that is not in the chain [${config.head}]`
|
|
6964
7023
|
) : headBlockResult[0];
|
|
@@ -7030,10 +7089,10 @@ SimpleTransactionValidationViewer = __decorateClass([
|
|
|
7030
7089
|
], SimpleTransactionValidationViewer);
|
|
7031
7090
|
|
|
7032
7091
|
// src/simple/TransactionViewer/SimpleTransactionViewer.ts
|
|
7033
|
-
import { assertEx as
|
|
7092
|
+
import { assertEx as assertEx54, exists as exists10 } from "@xylabs/sdk-js";
|
|
7034
7093
|
import { BoundWitnessSchema } from "@xyo-network/sdk-js";
|
|
7035
7094
|
import {
|
|
7036
|
-
asSignedHydratedTransactionWithHashMeta,
|
|
7095
|
+
asSignedHydratedTransactionWithHashMeta as asSignedHydratedTransactionWithHashMeta2,
|
|
7037
7096
|
asSignedTransactionBoundWitness,
|
|
7038
7097
|
BlockViewerMoniker as BlockViewerMoniker6,
|
|
7039
7098
|
isTransactionBoundWitnessWithHashMeta as isTransactionBoundWitnessWithHashMeta2,
|
|
@@ -7047,7 +7106,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
|
|
|
7047
7106
|
}
|
|
7048
7107
|
async byBlockHashAndIndex(blockHash, transactionIndex) {
|
|
7049
7108
|
return await this.spanAsync("byBlockHashAndIndex", async () => {
|
|
7050
|
-
|
|
7109
|
+
assertEx54(transactionIndex >= 0, () => "transactionIndex must be greater than or equal to 0");
|
|
7051
7110
|
try {
|
|
7052
7111
|
const block = await this.blockViewer.blockByHash(blockHash);
|
|
7053
7112
|
if (!block) return null;
|
|
@@ -7080,7 +7139,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
|
|
|
7080
7139
|
const transaction = asSignedTransactionBoundWitness(await this.blockViewer.payloadByHash(transactionHash));
|
|
7081
7140
|
if (transaction) {
|
|
7082
7141
|
const payloads = await this.blockViewer.payloadsByHash(transaction.payload_hashes);
|
|
7083
|
-
return
|
|
7142
|
+
return asSignedHydratedTransactionWithHashMeta2([transaction, payloads]) ?? null;
|
|
7084
7143
|
}
|
|
7085
7144
|
return null;
|
|
7086
7145
|
} catch {
|
|
@@ -7112,7 +7171,7 @@ SimpleTransactionViewer = __decorateClass([
|
|
|
7112
7171
|
|
|
7113
7172
|
// src/simple/windowedBlock/SimpleWindowedBlockViewer.ts
|
|
7114
7173
|
import {
|
|
7115
|
-
assertEx as
|
|
7174
|
+
assertEx as assertEx55,
|
|
7116
7175
|
exists as exists11,
|
|
7117
7176
|
isNull as isNull2
|
|
7118
7177
|
} from "@xylabs/sdk-js";
|
|
@@ -7194,7 +7253,7 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
|
|
|
7194
7253
|
}
|
|
7195
7254
|
async createHandler() {
|
|
7196
7255
|
await super.createHandler();
|
|
7197
|
-
this._blockViewer =
|
|
7256
|
+
this._blockViewer = assertEx55(
|
|
7198
7257
|
this.params.blockViewer ?? await this.locator.getInstance(BlockViewerMoniker7),
|
|
7199
7258
|
() => "BlockViewer instance is required"
|
|
7200
7259
|
);
|
|
@@ -7203,13 +7262,13 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
|
|
|
7203
7262
|
this._transactionHashMap = new MemoryMap2();
|
|
7204
7263
|
}
|
|
7205
7264
|
currentBlock() {
|
|
7206
|
-
return
|
|
7265
|
+
return assertEx55(this._chain.at(-1));
|
|
7207
7266
|
}
|
|
7208
7267
|
currentBlockHash() {
|
|
7209
|
-
return
|
|
7268
|
+
return assertEx55(this._chain.at(-1)?.[0]._hash);
|
|
7210
7269
|
}
|
|
7211
7270
|
currentBlockNumber() {
|
|
7212
|
-
return
|
|
7271
|
+
return assertEx55(this._chain.at(-1)?.[0].block);
|
|
7213
7272
|
}
|
|
7214
7273
|
async payloadByHash(hash) {
|
|
7215
7274
|
const payloads = await this.payloadsByHash([hash]);
|
|
@@ -7303,7 +7362,8 @@ var LoggerStatusReporter = class {
|
|
|
7303
7362
|
}
|
|
7304
7363
|
};
|
|
7305
7364
|
|
|
7306
|
-
// src/status/
|
|
7365
|
+
// src/status/SimpleSystemStatusRunner.ts
|
|
7366
|
+
import { SystemStatusRunnerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
7307
7367
|
var statusPriority = {
|
|
7308
7368
|
error: 0,
|
|
7309
7369
|
stopped: 1,
|
|
@@ -7326,22 +7386,35 @@ var reduceToMinimumStatus = (statuses) => {
|
|
|
7326
7386
|
}
|
|
7327
7387
|
return minStatus;
|
|
7328
7388
|
};
|
|
7329
|
-
var
|
|
7389
|
+
var SimpleSystemStatusRunner = class extends LoggerStatusReporter {
|
|
7390
|
+
moniker = SystemStatusRunnerMoniker;
|
|
7330
7391
|
globalTransitions = [];
|
|
7392
|
+
progressMap = {};
|
|
7393
|
+
readinessMap = {};
|
|
7394
|
+
reportErrorMap = {};
|
|
7395
|
+
shuttingDown = false;
|
|
7331
7396
|
transitions = [];
|
|
7397
|
+
updatedAtMap = {};
|
|
7332
7398
|
getGlobalStatus() {
|
|
7333
|
-
|
|
7334
|
-
|
|
7399
|
+
const statuses = Object.values(this.statusMap);
|
|
7400
|
+
if (statuses.length === 0) return SENTINEL_STATUS;
|
|
7401
|
+
return reduceToMinimumStatus(statuses);
|
|
7335
7402
|
}
|
|
7336
7403
|
getStatus(name) {
|
|
7337
7404
|
return this.statusMap[name];
|
|
7338
7405
|
}
|
|
7406
|
+
isReady() {
|
|
7407
|
+
if (this.shuttingDown) return false;
|
|
7408
|
+
const entries = Object.values(this.readinessMap);
|
|
7409
|
+
if (entries.length === 0) return false;
|
|
7410
|
+
return entries.every((entry) => entry?.readiness === "ready");
|
|
7411
|
+
}
|
|
7412
|
+
isShuttingDown() {
|
|
7413
|
+
return this.shuttingDown;
|
|
7414
|
+
}
|
|
7339
7415
|
onGlobalTransition(match, handler) {
|
|
7340
7416
|
this.globalTransitions.push({ ...match, handler });
|
|
7341
7417
|
}
|
|
7342
|
-
/**
|
|
7343
|
-
* Register a callback to be called on a specific transition.
|
|
7344
|
-
*/
|
|
7345
7418
|
onTransition(match, handler) {
|
|
7346
7419
|
this.transitions.push({ ...match, handler });
|
|
7347
7420
|
}
|
|
@@ -7349,12 +7422,45 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
|
|
|
7349
7422
|
const previous = this.statusMap[name];
|
|
7350
7423
|
const previousGlobal = this.getGlobalStatus();
|
|
7351
7424
|
super.report(name, status, progress);
|
|
7425
|
+
this.updatedAtMap[name] = Date.now();
|
|
7426
|
+
if (progress instanceof Error) {
|
|
7427
|
+
this.reportErrorMap[name] = progress.message;
|
|
7428
|
+
} else if (typeof progress === "number") {
|
|
7429
|
+
this.progressMap[name] = progress;
|
|
7430
|
+
}
|
|
7352
7431
|
if (previous === status) return;
|
|
7353
|
-
this.runTransitions(this.transitions, previous, status, name);
|
|
7432
|
+
this.runTransitions(this.transitions, previous ?? status, status, name);
|
|
7354
7433
|
const globalStatus = this.getGlobalStatus();
|
|
7355
7434
|
if (previousGlobal === globalStatus) return;
|
|
7356
7435
|
this.runTransitions(this.globalTransitions, previousGlobal, globalStatus);
|
|
7357
7436
|
}
|
|
7437
|
+
reportReady(name, readiness, error) {
|
|
7438
|
+
const message = error instanceof Error ? error.message : error;
|
|
7439
|
+
this.readinessMap[name] = { readiness, error: message };
|
|
7440
|
+
this.updatedAtMap[name] = Date.now();
|
|
7441
|
+
}
|
|
7442
|
+
setShuttingDown(shuttingDown) {
|
|
7443
|
+
this.shuttingDown = shuttingDown;
|
|
7444
|
+
}
|
|
7445
|
+
snapshot() {
|
|
7446
|
+
const components = Object.entries(this.statusMap).map(([name, lifecycle]) => {
|
|
7447
|
+
const readinessEntry = this.readinessMap[name];
|
|
7448
|
+
return {
|
|
7449
|
+
name,
|
|
7450
|
+
lifecycle,
|
|
7451
|
+
readiness: readinessEntry?.readiness,
|
|
7452
|
+
progress: this.progressMap[name],
|
|
7453
|
+
error: readinessEntry?.error ?? this.reportErrorMap[name],
|
|
7454
|
+
updatedAt: this.updatedAtMap[name] ?? 0
|
|
7455
|
+
};
|
|
7456
|
+
});
|
|
7457
|
+
return {
|
|
7458
|
+
components,
|
|
7459
|
+
globalStatus: this.getGlobalStatus(),
|
|
7460
|
+
isReady: this.isReady(),
|
|
7461
|
+
isShuttingDown: this.shuttingDown
|
|
7462
|
+
};
|
|
7463
|
+
}
|
|
7358
7464
|
runTransitions(transitions, prev, next, name) {
|
|
7359
7465
|
for (const {
|
|
7360
7466
|
from,
|
|
@@ -7370,7 +7476,7 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
|
|
|
7370
7476
|
};
|
|
7371
7477
|
|
|
7372
7478
|
// src/test/buildRandomChain.ts
|
|
7373
|
-
import { asAddress as asAddress2, assertEx as
|
|
7479
|
+
import { asAddress as asAddress2, assertEx as assertEx58 } from "@xylabs/sdk-js";
|
|
7374
7480
|
import {
|
|
7375
7481
|
Account as Account4,
|
|
7376
7482
|
asSchema as asSchema9,
|
|
@@ -7389,10 +7495,10 @@ import {
|
|
|
7389
7495
|
} from "@xyo-network/xl1-protocol-lib";
|
|
7390
7496
|
|
|
7391
7497
|
// src/test/buildBlock.ts
|
|
7392
|
-
import { assertEx as
|
|
7498
|
+
import { assertEx as assertEx56, isDefined as isDefined23 } from "@xylabs/sdk-js";
|
|
7393
7499
|
import {
|
|
7394
7500
|
asAnyPayload as asAnyPayload5,
|
|
7395
|
-
BoundWitnessBuilder as
|
|
7501
|
+
BoundWitnessBuilder as BoundWitnessBuilder4,
|
|
7396
7502
|
PayloadBuilder as PayloadBuilder25
|
|
7397
7503
|
} from "@xyo-network/sdk-js";
|
|
7398
7504
|
import {
|
|
@@ -7472,7 +7578,7 @@ function buildStepHashes(blockNumber, inStepHashes, previousBlockHash, chainStep
|
|
|
7472
7578
|
const completedStepReward = calculateCompletedStepReward(i, stepRewardPoolBalance);
|
|
7473
7579
|
completedStepRewardTransfers.push(createTransferPayload(chainStepRewardAddress2, { [completedStepRewardHolderAddress]: completedStepReward }));
|
|
7474
7580
|
}
|
|
7475
|
-
step_hashes.push(
|
|
7581
|
+
step_hashes.push(assertEx56(previousBlockHash, () => `Previous block hash is required for step ${step} at block ${blockNumber}`));
|
|
7476
7582
|
} else if (isDefined23(inStepHashes.at(i))) {
|
|
7477
7583
|
step_hashes.push(inStepHashes[i]);
|
|
7478
7584
|
}
|
|
@@ -7517,7 +7623,7 @@ async function buildBlock(options) {
|
|
|
7517
7623
|
...txElevatedPayloads,
|
|
7518
7624
|
...completedStepRewardTransfers
|
|
7519
7625
|
];
|
|
7520
|
-
const boundWitnessBuilder = new
|
|
7626
|
+
const boundWitnessBuilder = new BoundWitnessBuilder4();
|
|
7521
7627
|
const builder = boundWitnessBuilder.fields({
|
|
7522
7628
|
block,
|
|
7523
7629
|
chain: chainId,
|
|
@@ -7526,7 +7632,7 @@ async function buildBlock(options) {
|
|
|
7526
7632
|
protocol
|
|
7527
7633
|
}).meta({ $epoch: Date.now(), $signatures: [] }).signers(signers).payloads(await PayloadBuilder25.addStorageMeta(payloads));
|
|
7528
7634
|
const [bw, txPayloads] = await builder.build();
|
|
7529
|
-
|
|
7635
|
+
assertEx56(isBlockBoundWitness(bw), () => "Build of BlockBoundWitness failed");
|
|
7530
7636
|
return [await PayloadBuilder25.addStorageMeta(bw), txPayloads.map((p) => asAnyPayload5(p, true))];
|
|
7531
7637
|
}
|
|
7532
7638
|
|
|
@@ -7547,7 +7653,7 @@ async function buildNextBlock(previousBlock, txs, blockPayloads, signers, chainS
|
|
|
7547
7653
|
}
|
|
7548
7654
|
|
|
7549
7655
|
// src/test/buildRandomGenesisBlock.ts
|
|
7550
|
-
import { asAddress, assertEx as
|
|
7656
|
+
import { asAddress, assertEx as assertEx57 } from "@xylabs/sdk-js";
|
|
7551
7657
|
import {
|
|
7552
7658
|
Account as Account3,
|
|
7553
7659
|
asAnyPayload as asAnyPayload6,
|
|
@@ -7591,7 +7697,7 @@ var buildRandomTransaction = async (chain, payloads, account, nbf = asXL1BlockNu
|
|
|
7591
7697
|
};
|
|
7592
7698
|
|
|
7593
7699
|
// src/test/buildRandomGenesisBlock.ts
|
|
7594
|
-
var TestChainId =
|
|
7700
|
+
var TestChainId = assertEx57(asAddress("c5fe2e6F6841Cbab12d8C0618Be2DF8C6156cC44"));
|
|
7595
7701
|
|
|
7596
7702
|
// src/test/createGenesisBlock.ts
|
|
7597
7703
|
import { PayloadBuilder as PayloadBuilder28 } from "@xyo-network/sdk-js";
|
|
@@ -7646,7 +7752,7 @@ var createGenesisBlock = async (initialBlockProducer, nextContractAddress, genes
|
|
|
7646
7752
|
};
|
|
7647
7753
|
|
|
7648
7754
|
// src/test/buildRandomChain.ts
|
|
7649
|
-
var TestGenesisBlockRewardAddress =
|
|
7755
|
+
var TestGenesisBlockRewardAddress = assertEx58(asAddress2("fa7f0bb865a4bfff3d5e2c726d3e063297014da9"));
|
|
7650
7756
|
var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId, transactionAccount, receiverAddresses) => {
|
|
7651
7757
|
const chainIdToUse = chainId ?? TestChainId;
|
|
7652
7758
|
const blocks = [];
|
|
@@ -7690,7 +7796,7 @@ var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId,
|
|
|
7690
7796
|
receiverAddress
|
|
7691
7797
|
));
|
|
7692
7798
|
}
|
|
7693
|
-
const previousBlock2 =
|
|
7799
|
+
const previousBlock2 = assertEx58(lastBlock?.[0], () => new Error("No last block"));
|
|
7694
7800
|
const block = await buildNextBlock(previousBlock2, txs, [], [blockProducer], transactionAccountToUse.address);
|
|
7695
7801
|
blocks.push(block);
|
|
7696
7802
|
remaining = remaining - 1;
|
|
@@ -7751,13 +7857,13 @@ function getTestProviderContext2(config) {
|
|
|
7751
7857
|
}
|
|
7752
7858
|
|
|
7753
7859
|
// src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
|
|
7754
|
-
import { assertEx as
|
|
7860
|
+
import { assertEx as assertEx59 } from "@xylabs/sdk-js";
|
|
7755
7861
|
import { asTimePayload as asTimePayload3, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol-lib";
|
|
7756
7862
|
async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
|
|
7757
7863
|
const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
|
|
7758
7864
|
const hydratedBlock = await hydrateBlock(context, blockHash);
|
|
7759
7865
|
const timePayload = asTimePayload3(hydratedBlock[1].find((p) => p.schema === TimeSchema2), { required: true });
|
|
7760
|
-
return
|
|
7866
|
+
return assertEx59(timePayload.ethereum, () => "No ethereum timestamp found on block");
|
|
7761
7867
|
}
|
|
7762
7868
|
|
|
7763
7869
|
// src/validation/lib/isLocalhost.ts
|
|
@@ -7823,6 +7929,7 @@ export {
|
|
|
7823
7929
|
ConfigZod,
|
|
7824
7930
|
ConnectionConfigZod,
|
|
7825
7931
|
ConnectionsConfigZod,
|
|
7932
|
+
ConsoleSystemStatusPublisher,
|
|
7826
7933
|
CreatableProviderContextZod,
|
|
7827
7934
|
DEFAULT_BACKOFF_MS,
|
|
7828
7935
|
DEFAULT_MAX_ATTEMPTS,
|
|
@@ -7873,8 +7980,6 @@ export {
|
|
|
7873
7980
|
RpcConnectionConfigZod,
|
|
7874
7981
|
RpcRemoteConfigBaseZod,
|
|
7875
7982
|
RpcRemoteConfigZod,
|
|
7876
|
-
RuntimeStatusMonitor,
|
|
7877
|
-
RuntimeStatusMonitorZod,
|
|
7878
7983
|
S3BucketConfigZod,
|
|
7879
7984
|
S3ConnectionConfigZod,
|
|
7880
7985
|
SchemasStepSummarySchema,
|
|
@@ -7893,6 +7998,8 @@ export {
|
|
|
7893
7998
|
SimpleStakeEventsViewer,
|
|
7894
7999
|
SimpleStakeTotalsViewer,
|
|
7895
8000
|
SimpleStakeViewer,
|
|
8001
|
+
SimpleSystemStatusRunner,
|
|
8002
|
+
SimpleSystemStatusViewer,
|
|
7896
8003
|
SimpleTimeSyncViewer,
|
|
7897
8004
|
SimpleTransactionValidationViewer,
|
|
7898
8005
|
SimpleTransactionViewer,
|
|
@@ -7904,6 +8011,7 @@ export {
|
|
|
7904
8011
|
SimpleXyoPermissions,
|
|
7905
8012
|
SimpleXyoRunner,
|
|
7906
8013
|
SimpleXyoSigner,
|
|
8014
|
+
SystemStatusRunnerZod,
|
|
7907
8015
|
TODO,
|
|
7908
8016
|
TestGenesisBlockRewardAddress,
|
|
7909
8017
|
TransactionBuilder,
|
|
@@ -7968,6 +8076,7 @@ export {
|
|
|
7968
8076
|
buildRandomChainArchivist,
|
|
7969
8077
|
buildRandomTransaction,
|
|
7970
8078
|
buildTransaction,
|
|
8079
|
+
buildUnsignedBoundWitness,
|
|
7971
8080
|
buildUnsignedTransaction,
|
|
7972
8081
|
bundledPayloadToHydratedBlock,
|
|
7973
8082
|
bundledPayloadToHydratedTransaction,
|
|
@@ -8083,6 +8192,7 @@ export {
|
|
|
8083
8192
|
schemasStepSummaryFromRange,
|
|
8084
8193
|
schemasSummary,
|
|
8085
8194
|
scoreUncle,
|
|
8195
|
+
signBoundWitness,
|
|
8086
8196
|
signEIP712Message,
|
|
8087
8197
|
signTransaction,
|
|
8088
8198
|
splitOnDecimal,
|