@xyo-network/xl1-protocol-sdk 1.26.4 → 1.26.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/index.mjs +33 -20
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts +2 -1
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -1
- package/dist/neutral/payloads/netSchemasForPayloads.d.ts +2 -1
- package/dist/neutral/payloads/netSchemasForPayloads.d.ts.map +1 -1
- package/dist/neutral/payloads/netTransfersForPayloads.d.ts +2 -1
- package/dist/neutral/payloads/netTransfersForPayloads.d.ts.map +1 -1
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +1 -0
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -1
- package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts +4 -2
- package/dist/neutral/simple/mempool/SimpleMempoolRunner.d.ts.map +1 -1
- package/dist/neutral/test/index.mjs +14 -7
- package/dist/neutral/test/index.mjs.map +1 -1
- package/package.json +11 -10
- package/src/payloads/netBalancesForPayloads.ts +3 -2
- package/src/payloads/netSchemasForPayloads.ts +3 -2
- package/src/payloads/netTransfersForPayloads.ts +3 -2
- package/src/primitives/chain/step/stepRewardTotal.ts +1 -1
- package/src/simple/block/SimpleBlockViewer.ts +18 -7
- package/src/simple/mempool/SimpleMempoolRunner.ts +11 -3
- package/src/summary/primitives/balances/balancesStepSummaryFromRange.ts +1 -1
- package/src/summary/primitives/transfers/transfersStepSummaryFromRange.ts +1 -1
package/dist/neutral/index.mjs
CHANGED
|
@@ -2167,7 +2167,7 @@ import {
|
|
|
2167
2167
|
} from "@xylabs/sdk-js";
|
|
2168
2168
|
import { span } from "@xylabs/sdk-js";
|
|
2169
2169
|
import { isTransfer } from "@xyo-network/xl1-protocol-lib";
|
|
2170
|
-
var netBalancesForPayloads = (payloads) => {
|
|
2170
|
+
var netBalancesForPayloads = (context, payloads) => {
|
|
2171
2171
|
return span("netBalancesForPayloads", () => {
|
|
2172
2172
|
const balances = {};
|
|
2173
2173
|
for (const payload of payloads) {
|
|
@@ -2180,7 +2180,7 @@ var netBalancesForPayloads = (payloads) => {
|
|
|
2180
2180
|
}
|
|
2181
2181
|
}
|
|
2182
2182
|
return balances;
|
|
2183
|
-
});
|
|
2183
|
+
}, context.traceProvider);
|
|
2184
2184
|
};
|
|
2185
2185
|
|
|
2186
2186
|
// src/payloads/netSchemasForPayloads.ts
|
|
@@ -2190,7 +2190,7 @@ import {
|
|
|
2190
2190
|
} from "@xylabs/sdk-js";
|
|
2191
2191
|
import { span as span2 } from "@xylabs/sdk-js";
|
|
2192
2192
|
import { isTransfer as isTransfer2 } from "@xyo-network/xl1-protocol-lib";
|
|
2193
|
-
var netSchemasForPayloads = (payloads) => {
|
|
2193
|
+
var netSchemasForPayloads = (context, payloads) => {
|
|
2194
2194
|
return span2("netSchemasForPayloads", () => {
|
|
2195
2195
|
const balances = {};
|
|
2196
2196
|
for (const payload of payloads) {
|
|
@@ -2203,7 +2203,7 @@ var netSchemasForPayloads = (payloads) => {
|
|
|
2203
2203
|
}
|
|
2204
2204
|
}
|
|
2205
2205
|
return balances;
|
|
2206
|
-
});
|
|
2206
|
+
}, context.traceProvider);
|
|
2207
2207
|
};
|
|
2208
2208
|
|
|
2209
2209
|
// src/payloads/netTransfersForPayloads.ts
|
|
@@ -2212,7 +2212,7 @@ import {
|
|
|
2212
2212
|
} from "@xylabs/sdk-js";
|
|
2213
2213
|
import { span as span3 } from "@xylabs/sdk-js";
|
|
2214
2214
|
import { isTransfer as isTransfer3 } from "@xyo-network/xl1-protocol-lib";
|
|
2215
|
-
function netTransfersForPayloads(payloads) {
|
|
2215
|
+
function netTransfersForPayloads(context, payloads) {
|
|
2216
2216
|
return span3("netTransfersForPayloads", () => {
|
|
2217
2217
|
const transfers = {};
|
|
2218
2218
|
for (const payload of payloads) {
|
|
@@ -2227,7 +2227,7 @@ function netTransfersForPayloads(payloads) {
|
|
|
2227
2227
|
}
|
|
2228
2228
|
}
|
|
2229
2229
|
return transfers;
|
|
2230
|
-
});
|
|
2230
|
+
}, context.traceProvider);
|
|
2231
2231
|
}
|
|
2232
2232
|
|
|
2233
2233
|
// src/primitives/block/range/blockRangeSteps.ts
|
|
@@ -2586,7 +2586,7 @@ async function stepRewardTotal(context, blockViewer, { block, step }, multiplier
|
|
|
2586
2586
|
() => `No step transfer found for step ${step} at block ${block} (${blockBw._hash})`
|
|
2587
2587
|
);
|
|
2588
2588
|
const rewards = assertEx22(
|
|
2589
|
-
netTransfersForPayloads([stepTransfer])[XYO_STEP_REWARD_ADDRESS2],
|
|
2589
|
+
netTransfersForPayloads(context, [stepTransfer])[XYO_STEP_REWARD_ADDRESS2],
|
|
2590
2590
|
() => `No rewards found for step reward address ${XYO_STEP_REWARD_ADDRESS2} at block ${block} (${blockBw._hash})`
|
|
2591
2591
|
);
|
|
2592
2592
|
const sortedTransfers = Object.entries(rewards).toSorted(([, a], [, b]) => a > b ? -1 : a < b ? 1 : 0);
|
|
@@ -3218,7 +3218,7 @@ async function balancesStepSummaryFromRange(context, semaphores, blockViewer, su
|
|
|
3218
3218
|
return frameSize === 1 ? await spanRootAsync2(`balancesStepSummaryFromRange.frameSize=1[${key}]`, async () => {
|
|
3219
3219
|
const [, payloads] = assertEx26(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
|
|
3220
3220
|
const balances = {};
|
|
3221
|
-
for (const [address, balance] of Object.entries(netBalancesForPayloads(payloads))) {
|
|
3221
|
+
for (const [address, balance] of Object.entries(netBalancesForPayloads(context, payloads))) {
|
|
3222
3222
|
balances[address] = toSignedBigInt(balance);
|
|
3223
3223
|
}
|
|
3224
3224
|
return {
|
|
@@ -3422,7 +3422,7 @@ async function transfersStepSummaryFromRange(context, semaphores, blockViewer, s
|
|
|
3422
3422
|
if (frameSize === 1) {
|
|
3423
3423
|
const [, payloads] = assertEx30(await blockViewer.blockByNumber(range[0]), () => `Block not found for number: ${range[0]}`);
|
|
3424
3424
|
const transfers = {};
|
|
3425
|
-
for (const [from, toMap] of Object.entries(netTransfersForPayloads(payloads))) {
|
|
3425
|
+
for (const [from, toMap] of Object.entries(netTransfersForPayloads(context, payloads))) {
|
|
3426
3426
|
transfers[from] = transfers[from] ?? {};
|
|
3427
3427
|
for (const [to, amount] of Object.entries(toMap)) {
|
|
3428
3428
|
transfers[from][to] = toSignedBigInt(amount);
|
|
@@ -3818,13 +3818,11 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
3818
3818
|
}
|
|
3819
3819
|
async blockByNumber(blockNumber) {
|
|
3820
3820
|
return await this.spanAsync("blockByNumber", async () => {
|
|
3821
|
-
const
|
|
3822
|
-
if (isUndefined6(head)) {
|
|
3821
|
+
const chainContext = await this.getChainContextRead();
|
|
3822
|
+
if (isUndefined6(chainContext.head)) {
|
|
3823
3823
|
return null;
|
|
3824
3824
|
}
|
|
3825
|
-
|
|
3826
|
-
const [result] = block ? await addDataLakePayloads(block, this.dataLakeViewer) : [null, []];
|
|
3827
|
-
return result;
|
|
3825
|
+
return await this.blockByNumberWithContext(chainContext, blockNumber);
|
|
3828
3826
|
}, { ...this.context, timeBudgetLimit: 100 });
|
|
3829
3827
|
}
|
|
3830
3828
|
async blocksByHash(hash, limit = 50) {
|
|
@@ -3846,13 +3844,17 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
3846
3844
|
return await this.spanAsync("blocksByNumber", async () => {
|
|
3847
3845
|
assertEx33(limit > 0, () => "limit must be greater than 0");
|
|
3848
3846
|
assertEx33(limit <= 100, () => "limit must be less than 100");
|
|
3847
|
+
const chainContext = await this.getChainContextRead();
|
|
3848
|
+
if (isUndefined6(chainContext.head)) {
|
|
3849
|
+
return [];
|
|
3850
|
+
}
|
|
3849
3851
|
const blocks = [];
|
|
3850
|
-
let current = await this.
|
|
3852
|
+
let current = await this.blockByNumberWithContext(chainContext, blockNumber);
|
|
3851
3853
|
while (current && blocks.length < limit) {
|
|
3852
3854
|
blocks.push(current);
|
|
3853
3855
|
if (current[0].block === 0) break;
|
|
3854
3856
|
const previousNumber = asXL1BlockNumber9(current[0].block - 1, true);
|
|
3855
|
-
current = await this.
|
|
3857
|
+
current = await this.blockByNumberWithContext(chainContext, previousNumber);
|
|
3856
3858
|
}
|
|
3857
3859
|
return blocks.map((b) => asSignedHydratedBlockWithHashMeta(b, true));
|
|
3858
3860
|
}, this.context);
|
|
@@ -3915,6 +3917,11 @@ var SimpleBlockViewer = class extends AbstractCreatableProvider {
|
|
|
3915
3917
|
head: (await this.finalizationViewer.head())[0]
|
|
3916
3918
|
};
|
|
3917
3919
|
}
|
|
3920
|
+
async blockByNumberWithContext(chainContext, blockNumber) {
|
|
3921
|
+
const block = asSignedHydratedBlockWithHashMeta(await hydratedBlockByNumber(chainContext, blockNumber)) ?? null;
|
|
3922
|
+
const [result] = block ? await addDataLakePayloads(block, this.dataLakeViewer) : [null, []];
|
|
3923
|
+
return result;
|
|
3924
|
+
}
|
|
3918
3925
|
};
|
|
3919
3926
|
__publicField(SimpleBlockViewer, "defaultMoniker", BlockViewerMoniker2);
|
|
3920
3927
|
__publicField(SimpleBlockViewer, "dependencies", [FinalizationViewerMoniker]);
|
|
@@ -4586,7 +4593,8 @@ import {
|
|
|
4586
4593
|
isHydratedTransactionWithHashMeta,
|
|
4587
4594
|
isSignedHydratedBlockWithHashMeta,
|
|
4588
4595
|
isSignedHydratedTransactionWithHashMeta,
|
|
4589
|
-
MempoolRunnerMoniker
|
|
4596
|
+
MempoolRunnerMoniker,
|
|
4597
|
+
TransactionValidationViewerMoniker
|
|
4590
4598
|
} from "@xyo-network/xl1-protocol-lib";
|
|
4591
4599
|
import { Mutex } from "async-mutex";
|
|
4592
4600
|
var DEFAULT_SYNC_INTERVAL = 3e4;
|
|
@@ -4596,6 +4604,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
4596
4604
|
_blockValidationViewer;
|
|
4597
4605
|
_chainContractViewer;
|
|
4598
4606
|
_finalizationViewer;
|
|
4607
|
+
_transactionValidationViewer;
|
|
4599
4608
|
_syncMutex = new Mutex();
|
|
4600
4609
|
_syncTimerId = null;
|
|
4601
4610
|
get blockValidationViewer() {
|
|
@@ -4625,6 +4634,9 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
4625
4634
|
get syncLimit() {
|
|
4626
4635
|
return this.params.syncLimit ?? DEFAULT_SYNC_LIMIT;
|
|
4627
4636
|
}
|
|
4637
|
+
get transactionValidationViewer() {
|
|
4638
|
+
return this._transactionValidationViewer;
|
|
4639
|
+
}
|
|
4628
4640
|
static async paramsHandler(params) {
|
|
4629
4641
|
return {
|
|
4630
4642
|
...await super.paramsHandler(params),
|
|
@@ -4637,6 +4649,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
4637
4649
|
this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker2);
|
|
4638
4650
|
this._chainContractViewer = await this.locator.getInstance(ChainContractViewerMoniker4);
|
|
4639
4651
|
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker4);
|
|
4652
|
+
this._transactionValidationViewer = await this.locator.getInstance(TransactionValidationViewerMoniker);
|
|
4640
4653
|
}
|
|
4641
4654
|
async prunePendingBlocks({
|
|
4642
4655
|
batchSize = 10,
|
|
@@ -4668,7 +4681,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
4668
4681
|
remainingBlockMap.length === remainingBlocks.length,
|
|
4669
4682
|
() => `remainingBlockMap length should match remainingBlocks length [${remainingBlockMap.length}/${remainingBlocks.length}]`
|
|
4670
4683
|
);
|
|
4671
|
-
const validationResults = await this.blockValidationViewer.validateBlocks(remainingBlocks, { value: true, state:
|
|
4684
|
+
const validationResults = await this.blockValidationViewer.validateBlocks(remainingBlocks, { value: true, state: true });
|
|
4672
4685
|
for (const [i, r] of validationResults.entries()) {
|
|
4673
4686
|
const validated = isHydratedBlockWithHashMeta(r);
|
|
4674
4687
|
if (!validated) {
|
|
@@ -4725,7 +4738,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
4725
4738
|
remainingTransactionMap.length === remainingTransactions.length,
|
|
4726
4739
|
() => `remainingTransactionMap length should match remainingTransactions length [${remainingTransactionMap.length}/${remainingTransactions.length}]`
|
|
4727
4740
|
);
|
|
4728
|
-
const validationResults =
|
|
4741
|
+
const validationResults = await this.transactionValidationViewer.validateTransactions(remainingTransactions, { value: true, state: true });
|
|
4729
4742
|
for (const [i, r] of validationResults.entries()) {
|
|
4730
4743
|
const validated = isHydratedTransactionWithHashMeta(r);
|
|
4731
4744
|
if (!validated) {
|
|
@@ -4881,7 +4894,7 @@ var SimpleMempoolRunner = class extends AbstractCreatableProvider {
|
|
|
4881
4894
|
}
|
|
4882
4895
|
};
|
|
4883
4896
|
__publicField(SimpleMempoolRunner, "defaultMoniker", MempoolRunnerMoniker);
|
|
4884
|
-
__publicField(SimpleMempoolRunner, "dependencies", [FinalizationViewerMoniker4, BlockValidationViewerMoniker2, ChainContractViewerMoniker4]);
|
|
4897
|
+
__publicField(SimpleMempoolRunner, "dependencies", [FinalizationViewerMoniker4, BlockValidationViewerMoniker2, TransactionValidationViewerMoniker, ChainContractViewerMoniker4]);
|
|
4885
4898
|
__publicField(SimpleMempoolRunner, "monikers", [MempoolRunnerMoniker]);
|
|
4886
4899
|
SimpleMempoolRunner = __decorateClass([
|
|
4887
4900
|
creatableProvider()
|