@xyo-network/xl1-protocol-sdk 3.0.14 → 3.0.15
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 +70 -70
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +5 -6
- package/dist/neutral/simple/signer/SimpleXyoSigner.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
|
@@ -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) {
|
|
@@ -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];
|
|
@@ -6786,7 +6784,7 @@ RestSyncViewer = __decorateClass([
|
|
|
6786
6784
|
// src/simple/timeSync2/SimpleTimeSyncViewer.ts
|
|
6787
6785
|
import {
|
|
6788
6786
|
asHash as asHash5,
|
|
6789
|
-
assertEx as
|
|
6787
|
+
assertEx as assertEx50,
|
|
6790
6788
|
isDefined as isDefined22
|
|
6791
6789
|
} from "@xylabs/sdk-js";
|
|
6792
6790
|
import {
|
|
@@ -6808,7 +6806,7 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6808
6806
|
async convertTime(fromDomain, toDomain, from) {
|
|
6809
6807
|
switch (fromDomain) {
|
|
6810
6808
|
case "xl1": {
|
|
6811
|
-
const [block, payloads] =
|
|
6809
|
+
const [block, payloads] = assertEx50(await this.blockViewer.blockByNumber(asXL1BlockNumber11(from, true)), () => "Block not found");
|
|
6812
6810
|
const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema);
|
|
6813
6811
|
const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
|
|
6814
6812
|
const timePayload = asTimePayload2(isDefined22(hash) ? payloads.find((p) => p._hash === hash) : void 0);
|
|
@@ -6864,10 +6862,10 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6864
6862
|
return [Date.now(), null];
|
|
6865
6863
|
}
|
|
6866
6864
|
case "ethereum": {
|
|
6867
|
-
const provider =
|
|
6865
|
+
const provider = assertEx50(this.ethProvider, () => "Ethereum provider not configured");
|
|
6868
6866
|
const blockNumber = await provider.getBlockNumber() ?? 0;
|
|
6869
6867
|
const block = await provider.getBlock(blockNumber);
|
|
6870
|
-
const blockHash = asHash5(
|
|
6868
|
+
const blockHash = asHash5(assertEx50(block?.hash, () => "Block hash not found"), true);
|
|
6871
6869
|
return [blockNumber, blockHash];
|
|
6872
6870
|
}
|
|
6873
6871
|
default: {
|
|
@@ -6882,7 +6880,7 @@ var SimpleTimeSyncViewer = class extends AbstractCreatableProvider {
|
|
|
6882
6880
|
// this is for the previous block
|
|
6883
6881
|
xl1,
|
|
6884
6882
|
// this is for the previous block
|
|
6885
|
-
xl1Hash:
|
|
6883
|
+
xl1Hash: assertEx50(xl1Hash, () => "No xl1 hash available from time sync service"),
|
|
6886
6884
|
epoch: Date.now()
|
|
6887
6885
|
};
|
|
6888
6886
|
if (isDefined22(this.ethProvider)) {
|
|
@@ -6904,7 +6902,7 @@ SimpleTimeSyncViewer = __decorateClass([
|
|
|
6904
6902
|
], SimpleTimeSyncViewer);
|
|
6905
6903
|
|
|
6906
6904
|
// src/simple/transactionValidation/SimpleTransactionValidationViewer.ts
|
|
6907
|
-
import { assertEx as
|
|
6905
|
+
import { assertEx as assertEx51 } from "@xylabs/sdk-js";
|
|
6908
6906
|
import { PayloadBuilder as PayloadBuilder24 } from "@xyo-network/sdk-js";
|
|
6909
6907
|
import {
|
|
6910
6908
|
AccountBalanceViewerMoniker as AccountBalanceViewerMoniker3,
|
|
@@ -6958,7 +6956,7 @@ var SimpleTransactionValidationViewer = class extends AbstractCreatableProvider
|
|
|
6958
6956
|
let head;
|
|
6959
6957
|
if (isChainQualifiedHeadConfig6(config)) {
|
|
6960
6958
|
const headBlockResult = await this.blockViewer.blockByHash(config.head);
|
|
6961
|
-
head = headBlockResult == null ?
|
|
6959
|
+
head = headBlockResult == null ? assertEx51(
|
|
6962
6960
|
void 0,
|
|
6963
6961
|
() => `Specified a head that is not in the chain [${config.head}]`
|
|
6964
6962
|
) : headBlockResult[0];
|
|
@@ -7030,10 +7028,10 @@ SimpleTransactionValidationViewer = __decorateClass([
|
|
|
7030
7028
|
], SimpleTransactionValidationViewer);
|
|
7031
7029
|
|
|
7032
7030
|
// src/simple/TransactionViewer/SimpleTransactionViewer.ts
|
|
7033
|
-
import { assertEx as
|
|
7031
|
+
import { assertEx as assertEx52, exists as exists10 } from "@xylabs/sdk-js";
|
|
7034
7032
|
import { BoundWitnessSchema } from "@xyo-network/sdk-js";
|
|
7035
7033
|
import {
|
|
7036
|
-
asSignedHydratedTransactionWithHashMeta,
|
|
7034
|
+
asSignedHydratedTransactionWithHashMeta as asSignedHydratedTransactionWithHashMeta2,
|
|
7037
7035
|
asSignedTransactionBoundWitness,
|
|
7038
7036
|
BlockViewerMoniker as BlockViewerMoniker6,
|
|
7039
7037
|
isTransactionBoundWitnessWithHashMeta as isTransactionBoundWitnessWithHashMeta2,
|
|
@@ -7047,7 +7045,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
|
|
|
7047
7045
|
}
|
|
7048
7046
|
async byBlockHashAndIndex(blockHash, transactionIndex) {
|
|
7049
7047
|
return await this.spanAsync("byBlockHashAndIndex", async () => {
|
|
7050
|
-
|
|
7048
|
+
assertEx52(transactionIndex >= 0, () => "transactionIndex must be greater than or equal to 0");
|
|
7051
7049
|
try {
|
|
7052
7050
|
const block = await this.blockViewer.blockByHash(blockHash);
|
|
7053
7051
|
if (!block) return null;
|
|
@@ -7080,7 +7078,7 @@ var SimpleTransactionViewer = class extends AbstractCreatableProvider {
|
|
|
7080
7078
|
const transaction = asSignedTransactionBoundWitness(await this.blockViewer.payloadByHash(transactionHash));
|
|
7081
7079
|
if (transaction) {
|
|
7082
7080
|
const payloads = await this.blockViewer.payloadsByHash(transaction.payload_hashes);
|
|
7083
|
-
return
|
|
7081
|
+
return asSignedHydratedTransactionWithHashMeta2([transaction, payloads]) ?? null;
|
|
7084
7082
|
}
|
|
7085
7083
|
return null;
|
|
7086
7084
|
} catch {
|
|
@@ -7112,7 +7110,7 @@ SimpleTransactionViewer = __decorateClass([
|
|
|
7112
7110
|
|
|
7113
7111
|
// src/simple/windowedBlock/SimpleWindowedBlockViewer.ts
|
|
7114
7112
|
import {
|
|
7115
|
-
assertEx as
|
|
7113
|
+
assertEx as assertEx53,
|
|
7116
7114
|
exists as exists11,
|
|
7117
7115
|
isNull as isNull2
|
|
7118
7116
|
} from "@xylabs/sdk-js";
|
|
@@ -7194,7 +7192,7 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
|
|
|
7194
7192
|
}
|
|
7195
7193
|
async createHandler() {
|
|
7196
7194
|
await super.createHandler();
|
|
7197
|
-
this._blockViewer =
|
|
7195
|
+
this._blockViewer = assertEx53(
|
|
7198
7196
|
this.params.blockViewer ?? await this.locator.getInstance(BlockViewerMoniker7),
|
|
7199
7197
|
() => "BlockViewer instance is required"
|
|
7200
7198
|
);
|
|
@@ -7203,13 +7201,13 @@ var SimpleWindowedBlockViewer = class extends AbstractCreatableProvider {
|
|
|
7203
7201
|
this._transactionHashMap = new MemoryMap2();
|
|
7204
7202
|
}
|
|
7205
7203
|
currentBlock() {
|
|
7206
|
-
return
|
|
7204
|
+
return assertEx53(this._chain.at(-1));
|
|
7207
7205
|
}
|
|
7208
7206
|
currentBlockHash() {
|
|
7209
|
-
return
|
|
7207
|
+
return assertEx53(this._chain.at(-1)?.[0]._hash);
|
|
7210
7208
|
}
|
|
7211
7209
|
currentBlockNumber() {
|
|
7212
|
-
return
|
|
7210
|
+
return assertEx53(this._chain.at(-1)?.[0].block);
|
|
7213
7211
|
}
|
|
7214
7212
|
async payloadByHash(hash) {
|
|
7215
7213
|
const payloads = await this.payloadsByHash([hash]);
|
|
@@ -7370,7 +7368,7 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
|
|
|
7370
7368
|
};
|
|
7371
7369
|
|
|
7372
7370
|
// src/test/buildRandomChain.ts
|
|
7373
|
-
import { asAddress as asAddress2, assertEx as
|
|
7371
|
+
import { asAddress as asAddress2, assertEx as assertEx56 } from "@xylabs/sdk-js";
|
|
7374
7372
|
import {
|
|
7375
7373
|
Account as Account4,
|
|
7376
7374
|
asSchema as asSchema9,
|
|
@@ -7389,10 +7387,10 @@ import {
|
|
|
7389
7387
|
} from "@xyo-network/xl1-protocol-lib";
|
|
7390
7388
|
|
|
7391
7389
|
// src/test/buildBlock.ts
|
|
7392
|
-
import { assertEx as
|
|
7390
|
+
import { assertEx as assertEx54, isDefined as isDefined23 } from "@xylabs/sdk-js";
|
|
7393
7391
|
import {
|
|
7394
7392
|
asAnyPayload as asAnyPayload5,
|
|
7395
|
-
BoundWitnessBuilder as
|
|
7393
|
+
BoundWitnessBuilder as BoundWitnessBuilder4,
|
|
7396
7394
|
PayloadBuilder as PayloadBuilder25
|
|
7397
7395
|
} from "@xyo-network/sdk-js";
|
|
7398
7396
|
import {
|
|
@@ -7472,7 +7470,7 @@ function buildStepHashes(blockNumber, inStepHashes, previousBlockHash, chainStep
|
|
|
7472
7470
|
const completedStepReward = calculateCompletedStepReward(i, stepRewardPoolBalance);
|
|
7473
7471
|
completedStepRewardTransfers.push(createTransferPayload(chainStepRewardAddress2, { [completedStepRewardHolderAddress]: completedStepReward }));
|
|
7474
7472
|
}
|
|
7475
|
-
step_hashes.push(
|
|
7473
|
+
step_hashes.push(assertEx54(previousBlockHash, () => `Previous block hash is required for step ${step} at block ${blockNumber}`));
|
|
7476
7474
|
} else if (isDefined23(inStepHashes.at(i))) {
|
|
7477
7475
|
step_hashes.push(inStepHashes[i]);
|
|
7478
7476
|
}
|
|
@@ -7517,7 +7515,7 @@ async function buildBlock(options) {
|
|
|
7517
7515
|
...txElevatedPayloads,
|
|
7518
7516
|
...completedStepRewardTransfers
|
|
7519
7517
|
];
|
|
7520
|
-
const boundWitnessBuilder = new
|
|
7518
|
+
const boundWitnessBuilder = new BoundWitnessBuilder4();
|
|
7521
7519
|
const builder = boundWitnessBuilder.fields({
|
|
7522
7520
|
block,
|
|
7523
7521
|
chain: chainId,
|
|
@@ -7526,7 +7524,7 @@ async function buildBlock(options) {
|
|
|
7526
7524
|
protocol
|
|
7527
7525
|
}).meta({ $epoch: Date.now(), $signatures: [] }).signers(signers).payloads(await PayloadBuilder25.addStorageMeta(payloads));
|
|
7528
7526
|
const [bw, txPayloads] = await builder.build();
|
|
7529
|
-
|
|
7527
|
+
assertEx54(isBlockBoundWitness(bw), () => "Build of BlockBoundWitness failed");
|
|
7530
7528
|
return [await PayloadBuilder25.addStorageMeta(bw), txPayloads.map((p) => asAnyPayload5(p, true))];
|
|
7531
7529
|
}
|
|
7532
7530
|
|
|
@@ -7547,7 +7545,7 @@ async function buildNextBlock(previousBlock, txs, blockPayloads, signers, chainS
|
|
|
7547
7545
|
}
|
|
7548
7546
|
|
|
7549
7547
|
// src/test/buildRandomGenesisBlock.ts
|
|
7550
|
-
import { asAddress, assertEx as
|
|
7548
|
+
import { asAddress, assertEx as assertEx55 } from "@xylabs/sdk-js";
|
|
7551
7549
|
import {
|
|
7552
7550
|
Account as Account3,
|
|
7553
7551
|
asAnyPayload as asAnyPayload6,
|
|
@@ -7591,7 +7589,7 @@ var buildRandomTransaction = async (chain, payloads, account, nbf = asXL1BlockNu
|
|
|
7591
7589
|
};
|
|
7592
7590
|
|
|
7593
7591
|
// src/test/buildRandomGenesisBlock.ts
|
|
7594
|
-
var TestChainId =
|
|
7592
|
+
var TestChainId = assertEx55(asAddress("c5fe2e6F6841Cbab12d8C0618Be2DF8C6156cC44"));
|
|
7595
7593
|
|
|
7596
7594
|
// src/test/createGenesisBlock.ts
|
|
7597
7595
|
import { PayloadBuilder as PayloadBuilder28 } from "@xyo-network/sdk-js";
|
|
@@ -7646,7 +7644,7 @@ var createGenesisBlock = async (initialBlockProducer, nextContractAddress, genes
|
|
|
7646
7644
|
};
|
|
7647
7645
|
|
|
7648
7646
|
// src/test/buildRandomChain.ts
|
|
7649
|
-
var TestGenesisBlockRewardAddress =
|
|
7647
|
+
var TestGenesisBlockRewardAddress = assertEx56(asAddress2("fa7f0bb865a4bfff3d5e2c726d3e063297014da9"));
|
|
7650
7648
|
var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId, transactionAccount, receiverAddresses) => {
|
|
7651
7649
|
const chainIdToUse = chainId ?? TestChainId;
|
|
7652
7650
|
const blocks = [];
|
|
@@ -7690,7 +7688,7 @@ var buildRandomChain = async (blockProducer, count = 10, previousBlock, chainId,
|
|
|
7690
7688
|
receiverAddress
|
|
7691
7689
|
));
|
|
7692
7690
|
}
|
|
7693
|
-
const previousBlock2 =
|
|
7691
|
+
const previousBlock2 = assertEx56(lastBlock?.[0], () => new Error("No last block"));
|
|
7694
7692
|
const block = await buildNextBlock(previousBlock2, txs, [], [blockProducer], transactionAccountToUse.address);
|
|
7695
7693
|
blocks.push(block);
|
|
7696
7694
|
remaining = remaining - 1;
|
|
@@ -7751,13 +7749,13 @@ function getTestProviderContext2(config) {
|
|
|
7751
7749
|
}
|
|
7752
7750
|
|
|
7753
7751
|
// src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
|
|
7754
|
-
import { assertEx as
|
|
7752
|
+
import { assertEx as assertEx57 } from "@xylabs/sdk-js";
|
|
7755
7753
|
import { asTimePayload as asTimePayload3, TimeSchema as TimeSchema2 } from "@xyo-network/xl1-protocol-lib";
|
|
7756
7754
|
async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
|
|
7757
7755
|
const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
|
|
7758
7756
|
const hydratedBlock = await hydrateBlock(context, blockHash);
|
|
7759
7757
|
const timePayload = asTimePayload3(hydratedBlock[1].find((p) => p.schema === TimeSchema2), { required: true });
|
|
7760
|
-
return
|
|
7758
|
+
return assertEx57(timePayload.ethereum, () => "No ethereum timestamp found on block");
|
|
7761
7759
|
}
|
|
7762
7760
|
|
|
7763
7761
|
// src/validation/lib/isLocalhost.ts
|
|
@@ -7968,6 +7966,7 @@ export {
|
|
|
7968
7966
|
buildRandomChainArchivist,
|
|
7969
7967
|
buildRandomTransaction,
|
|
7970
7968
|
buildTransaction,
|
|
7969
|
+
buildUnsignedBoundWitness,
|
|
7971
7970
|
buildUnsignedTransaction,
|
|
7972
7971
|
bundledPayloadToHydratedBlock,
|
|
7973
7972
|
bundledPayloadToHydratedTransaction,
|
|
@@ -8083,6 +8082,7 @@ export {
|
|
|
8083
8082
|
schemasStepSummaryFromRange,
|
|
8084
8083
|
schemasSummary,
|
|
8085
8084
|
scoreUncle,
|
|
8085
|
+
signBoundWitness,
|
|
8086
8086
|
signEIP712Message,
|
|
8087
8087
|
signTransaction,
|
|
8088
8088
|
splitOnDecimal,
|