@xyo-network/xl1-protocol-sdk 1.14.4 → 1.15.0
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/block/hydrate/allHashesPresent.d.ts +4 -0
- package/dist/neutral/block/hydrate/allHashesPresent.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/blockPayloadsFromHydratedBlock.d.ts +4 -0
- package/dist/neutral/block/hydrate/blockPayloadsFromHydratedBlock.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/flattenHydratedBlock.d.ts +4 -0
- package/dist/neutral/block/hydrate/flattenHydratedBlock.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/flattenHydratedBlocks.d.ts +4 -0
- package/dist/neutral/block/hydrate/flattenHydratedBlocks.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/hydrateBlock.d.ts +5 -0
- package/dist/neutral/block/hydrate/hydrateBlock.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/index.d.ts +8 -0
- package/dist/neutral/block/hydrate/index.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/transactionsFromHydratedBlock.d.ts +4 -0
- package/dist/neutral/block/hydrate/transactionsFromHydratedBlock.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/tryHydrateBlock.d.ts +5 -0
- package/dist/neutral/block/hydrate/tryHydrateBlock.d.ts.map +1 -0
- package/dist/neutral/block/index.d.ts +1 -1
- package/dist/neutral/block/index.d.ts.map +1 -1
- package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts +6 -0
- package/dist/neutral/block/primitives/balances/balancesStepSummaryFromRange.d.ts.map +1 -0
- package/dist/neutral/block/primitives/balances/balancesSummary.d.ts +4 -0
- package/dist/neutral/block/primitives/balances/balancesSummary.d.ts.map +1 -0
- package/dist/neutral/block/primitives/balances/index.d.ts +3 -0
- package/dist/neutral/block/primitives/balances/index.d.ts.map +1 -0
- package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts +5 -0
- package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts.map +1 -0
- package/dist/neutral/block/primitives/hashFromBlockNumber.d.ts.map +1 -1
- package/dist/neutral/block/primitives/index.d.ts +4 -3
- package/dist/neutral/block/primitives/index.d.ts.map +1 -1
- package/dist/neutral/block/primitives/model.d.ts +5 -2
- package/dist/neutral/block/primitives/model.d.ts.map +1 -1
- package/dist/neutral/block/primitives/{payloads.d.ts → payloads/BalancesStepSummary.d.ts} +5 -16
- package/dist/neutral/block/primitives/payloads/BalancesStepSummary.d.ts.map +1 -0
- package/dist/neutral/block/primitives/payloads/ChainWindow.d.ts +6 -0
- package/dist/neutral/block/primitives/payloads/ChainWindow.d.ts.map +1 -0
- package/dist/neutral/block/primitives/payloads/StepSummary.d.ts +11 -0
- package/dist/neutral/block/primitives/payloads/StepSummary.d.ts.map +1 -0
- package/dist/neutral/block/primitives/payloads/TransfersSummary.d.ts +21 -0
- package/dist/neutral/block/primitives/payloads/TransfersSummary.d.ts.map +1 -0
- package/dist/neutral/block/primitives/payloads/index.d.ts +5 -0
- package/dist/neutral/block/primitives/payloads/index.d.ts.map +1 -0
- package/dist/neutral/block/primitives/transfers/index.d.ts +3 -0
- package/dist/neutral/block/primitives/transfers/index.d.ts.map +1 -0
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts +6 -0
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -0
- package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts +4 -0
- package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts.map +1 -0
- package/dist/neutral/config/Config.d.ts +10 -0
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/Producer.d.ts +10 -0
- package/dist/neutral/config/Producer.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +2 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +509 -88
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/payload/index.d.ts +1 -0
- package/dist/neutral/payload/index.d.ts.map +1 -1
- package/dist/neutral/payload/netTransfersForPayloads.d.ts +4 -0
- package/dist/neutral/payload/netTransfersForPayloads.d.ts.map +1 -0
- package/dist/neutral/steps/index.d.ts +2 -0
- package/dist/neutral/steps/index.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/addressStakeWeight.d.ts +4 -0
- package/dist/neutral/steps/primitives/addressStakeWeight.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/claimedRewards.d.ts +3 -0
- package/dist/neutral/steps/primitives/claimedRewards.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/index.d.ts +17 -0
- package/dist/neutral/steps/primitives/index.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepAddressReward.d.ts +4 -0
- package/dist/neutral/steps/primitives/networkStakeStepAddressReward.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepPoolRewardShares.d.ts +4 -0
- package/dist/neutral/steps/primitives/networkStakeStepPoolRewardShares.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepPoolRewards.d.ts +4 -0
- package/dist/neutral/steps/primitives/networkStakeStepPoolRewards.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardAddressHistory.d.ts +4 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardAddressHistory.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardAddressShare.d.ts +4 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardAddressShare.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardForStep.d.ts +3 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardForStep.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardPositionWeight.d.ts +3 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardPositionWeight.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardPotentialPositionLoss.d.ts +3 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardPotentialPositionLoss.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardRandomizer.d.ts +3 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardRandomizer.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardWeightForAddress.d.ts +4 -0
- package/dist/neutral/steps/primitives/networkStakeStepRewardWeightForAddress.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/stakersAsOfBlock.d.ts +4 -0
- package/dist/neutral/steps/primitives/stakersAsOfBlock.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/startingStakes.d.ts +4 -0
- package/dist/neutral/steps/primitives/startingStakes.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/totalStakeWeight.d.ts +4 -0
- package/dist/neutral/steps/primitives/totalStakeWeight.d.ts.map +1 -0
- package/dist/neutral/steps/primitives/unclaimedRewards.d.ts +4 -0
- package/dist/neutral/steps/primitives/unclaimedRewards.d.ts.map +1 -0
- package/dist/neutral/time/index.d.ts +2 -0
- package/dist/neutral/time/index.d.ts.map +1 -0
- package/dist/neutral/time/primitives/index.d.ts +2 -0
- package/dist/neutral/time/primitives/index.d.ts.map +1 -0
- package/dist/neutral/time/primitives/xl1BlockNumberToEthBlockNumber.d.ts +3 -0
- package/dist/neutral/time/primitives/xl1BlockNumberToEthBlockNumber.d.ts.map +1 -0
- package/package.json +6 -5
- package/src/block/hydrate/allHashesPresent.ts +7 -0
- package/src/block/hydrate/blockPayloadsFromHydratedBlock.ts +11 -0
- package/src/block/hydrate/flattenHydratedBlock.ts +7 -0
- package/src/block/hydrate/flattenHydratedBlocks.ts +7 -0
- package/src/block/hydrate/hydrateBlock.ts +38 -0
- package/src/block/hydrate/index.ts +7 -0
- package/src/block/hydrate/transactionsFromHydratedBlock.ts +8 -0
- package/src/block/hydrate/tryHydrateBlock.ts +25 -0
- package/src/block/index.ts +1 -1
- package/src/block/primitives/{balanceStepSummaryFromRange.ts → balances/balancesStepSummaryFromRange.ts} +10 -10
- package/src/block/primitives/{balanceSummary.ts → balances/balancesSummary.ts} +6 -6
- package/src/block/primitives/balances/index.ts +2 -0
- package/src/block/primitives/blockFromBlockNumber.ts +33 -0
- package/src/block/primitives/hashFromBlockNumber.ts +3 -26
- package/src/block/primitives/index.ts +4 -3
- package/src/block/primitives/model.ts +7 -2
- package/src/block/primitives/{payloads.ts → payloads/BalancesStepSummary.ts} +4 -23
- package/src/block/primitives/payloads/ChainWindow.ts +6 -0
- package/src/block/primitives/payloads/StepSummary.ts +15 -0
- package/src/block/primitives/payloads/TransfersSummary.ts +30 -0
- package/src/block/primitives/payloads/index.ts +4 -0
- package/src/block/primitives/transfers/index.ts +2 -0
- package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +79 -0
- package/src/block/primitives/transfers/transfersSummary.ts +31 -0
- package/src/config/Producer.ts +17 -0
- package/src/index.ts +2 -0
- package/src/payload/index.ts +1 -0
- package/src/payload/netTransfersForPayloads.ts +30 -0
- package/src/steps/index.ts +1 -0
- package/src/steps/primitives/addressStakeWeight.ts +51 -0
- package/src/steps/primitives/claimedRewards.ts +5 -0
- package/src/steps/primitives/index.ts +16 -0
- package/src/steps/primitives/networkStakeStepAddressReward.ts +6 -0
- package/src/steps/primitives/networkStakeStepPoolRewardShares.ts +6 -0
- package/src/steps/primitives/networkStakeStepPoolRewards.ts +6 -0
- package/src/steps/primitives/networkStakeStepRewardAddressHistory.ts +6 -0
- package/src/steps/primitives/networkStakeStepRewardAddressShare.ts +6 -0
- package/src/steps/primitives/networkStakeStepRewardForStep.ts +5 -0
- package/src/steps/primitives/networkStakeStepRewardPositionWeight.ts +5 -0
- package/src/steps/primitives/networkStakeStepRewardPotentialPositionLoss.ts +5 -0
- package/src/steps/primitives/networkStakeStepRewardRandomizer.ts +5 -0
- package/src/steps/primitives/networkStakeStepRewardWeightForAddress.ts +6 -0
- package/src/steps/primitives/stakersAsOfBlock.ts +18 -0
- package/src/steps/primitives/startingStakes.ts +30 -0
- package/src/steps/primitives/totalStakeWeight.ts +35 -0
- package/src/steps/primitives/unclaimedRewards.ts +6 -0
- package/src/time/index.ts +1 -0
- package/src/time/primitives/index.ts +1 -0
- package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +13 -0
- package/dist/neutral/block/hydrateBlock.d.ts +0 -12
- package/dist/neutral/block/hydrateBlock.d.ts.map +0 -1
- package/dist/neutral/block/primitives/balanceStepSummaryFromRange.d.ts +0 -6
- package/dist/neutral/block/primitives/balanceStepSummaryFromRange.d.ts.map +0 -1
- package/dist/neutral/block/primitives/balanceSummary.d.ts +0 -4
- package/dist/neutral/block/primitives/balanceSummary.d.ts.map +0 -1
- package/dist/neutral/block/primitives/payloads.d.ts.map +0 -1
- package/src/block/hydrateBlock.ts +0 -84
package/dist/neutral/index.mjs
CHANGED
|
@@ -1,33 +1,56 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
-
// src/block/
|
|
5
|
-
import { filterAs } from "@xylabs/array";
|
|
6
|
-
import { assertEx } from "@xylabs/assert";
|
|
7
|
-
import { asTransactionBoundWitnessWithStorageMeta, isBlockBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
4
|
+
// src/block/hydrate/allHashesPresent.ts
|
|
8
5
|
function allHashesPresent(hashes, payloads) {
|
|
9
6
|
const payloadHashes = new Set(payloads.map((p) => p._hash));
|
|
10
7
|
return hashes.every((hash) => payloadHashes.has(hash));
|
|
11
8
|
}
|
|
12
9
|
__name(allHashesPresent, "allHashesPresent");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
|
|
11
|
+
// src/block/hydrate/blockPayloadsFromHydratedBlock.ts
|
|
12
|
+
import { assertEx } from "@xylabs/assert";
|
|
13
|
+
import { isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
14
|
+
var blockPayloadsFromHydratedBlock = /* @__PURE__ */ __name((block) => {
|
|
15
|
+
return block[0].payload_hashes.map((hash) => assertEx(block[1].find((p) => p._hash === hash), () => `missing payload ${hash}`)).filter((x) => !isTransactionBoundWitnessWithStorageMeta(x));
|
|
16
|
+
}, "blockPayloadsFromHydratedBlock");
|
|
17
|
+
|
|
18
|
+
// src/block/hydrate/flattenHydratedBlock.ts
|
|
19
|
+
var flattenHydratedBlock = /* @__PURE__ */ __name((hydratedBlock) => {
|
|
20
|
+
const [blk, blkPayloads] = hydratedBlock;
|
|
21
|
+
return [
|
|
22
|
+
...blkPayloads,
|
|
23
|
+
blk
|
|
24
|
+
];
|
|
25
|
+
}, "flattenHydratedBlock");
|
|
26
|
+
|
|
27
|
+
// src/block/hydrate/flattenHydratedBlocks.ts
|
|
28
|
+
var flattenHydratedBlocks = /* @__PURE__ */ __name((hydratedBlocks) => hydratedBlocks.flatMap((blk) => flattenHydratedBlock(blk)), "flattenHydratedBlocks");
|
|
29
|
+
|
|
30
|
+
// src/block/hydrate/hydrateBlock.ts
|
|
31
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
32
|
+
import { isBlockBoundWitnessWithStorageMeta, isTransactionBoundWitnessWithStorageMeta as isTransactionBoundWitnessWithStorageMeta2 } from "@xyo-network/xl1-protocol";
|
|
33
|
+
var hydrateBlock = /* @__PURE__ */ __name(async (archivist, hash, maxDepth = 1, minDepth = maxDepth) => {
|
|
34
|
+
assertEx2(maxDepth >= 0, () => "maxDepth must be greater than or equal to 0");
|
|
35
|
+
assertEx2(minDepth >= 0, () => "minDepth must be greater than or equal to 0");
|
|
36
|
+
assertEx2(maxDepth >= minDepth, () => "maxDepth must be greater than or equal to minDepth");
|
|
37
|
+
const bw = assertEx2((await archivist.get([
|
|
16
38
|
hash
|
|
17
|
-
])).find(isBlockBoundWitnessWithStorageMeta);
|
|
18
|
-
if (!bw) return void 0;
|
|
39
|
+
])).find(isBlockBoundWitnessWithStorageMeta), () => `block ${hash} not found`);
|
|
19
40
|
if (maxDepth === 0) return [
|
|
20
41
|
bw,
|
|
21
42
|
[]
|
|
22
43
|
];
|
|
23
44
|
const blkPayloads = await archivist.get(bw.payload_hashes);
|
|
45
|
+
if (minDepth === 1) assertEx2(allHashesPresent(bw.payload_hashes, blkPayloads), () => `Unable to find all payloads for block ${hash}`);
|
|
24
46
|
if (maxDepth === 1) return [
|
|
25
47
|
bw,
|
|
26
48
|
blkPayloads
|
|
27
49
|
];
|
|
28
|
-
const transactions = blkPayloads.filter(
|
|
50
|
+
const transactions = blkPayloads.filter(isTransactionBoundWitnessWithStorageMeta2);
|
|
29
51
|
const transactionsPayloadHashes = transactions.flatMap((tx) => tx.payload_hashes);
|
|
30
52
|
const transactionsPayloads = await archivist.get(transactionsPayloadHashes);
|
|
53
|
+
assertEx2(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`);
|
|
31
54
|
const allPayloadsHashes = new Set([
|
|
32
55
|
...blkPayloads,
|
|
33
56
|
...transactionsPayloads
|
|
@@ -36,32 +59,43 @@ var tryHydrateBlock = /* @__PURE__ */ __name(async (archivist, hash, maxDepth =
|
|
|
36
59
|
...allPayloadsHashes
|
|
37
60
|
]);
|
|
38
61
|
const allPayloadsFiltered = allPayloads.filter((p) => allPayloadsHashes.has(p._hash));
|
|
62
|
+
if (maxDepth === 2) assertEx2(allHashesPresent([
|
|
63
|
+
...allPayloadsHashes
|
|
64
|
+
], allPayloadsFiltered), () => `Unable to find all payloads for transactions in block ${hash}`);
|
|
39
65
|
return [
|
|
40
66
|
bw,
|
|
41
67
|
allPayloadsFiltered
|
|
42
68
|
];
|
|
43
|
-
}, "
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
69
|
+
}, "hydrateBlock");
|
|
70
|
+
|
|
71
|
+
// src/block/hydrate/transactionsFromHydratedBlock.ts
|
|
72
|
+
import { filterAs } from "@xylabs/array";
|
|
73
|
+
import { asTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
74
|
+
var transactionsFromHydratedBlock = /* @__PURE__ */ __name((block) => {
|
|
75
|
+
return filterAs(block[1], asTransactionBoundWitnessWithStorageMeta);
|
|
76
|
+
}, "transactionsFromHydratedBlock");
|
|
77
|
+
|
|
78
|
+
// src/block/hydrate/tryHydrateBlock.ts
|
|
79
|
+
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
80
|
+
import { isBlockBoundWitnessWithStorageMeta as isBlockBoundWitnessWithStorageMeta2, isTransactionBoundWitnessWithStorageMeta as isTransactionBoundWitnessWithStorageMeta3 } from "@xyo-network/xl1-protocol";
|
|
81
|
+
var tryHydrateBlock = /* @__PURE__ */ __name(async (archivist, hash, maxDepth = 1) => {
|
|
82
|
+
assertEx3(maxDepth >= 0, () => "maxDepth must be greater than or equal to 0");
|
|
83
|
+
const bw = (await archivist.get([
|
|
49
84
|
hash
|
|
50
|
-
])).find(
|
|
85
|
+
])).find(isBlockBoundWitnessWithStorageMeta2);
|
|
86
|
+
if (!bw) return void 0;
|
|
51
87
|
if (maxDepth === 0) return [
|
|
52
88
|
bw,
|
|
53
89
|
[]
|
|
54
90
|
];
|
|
55
91
|
const blkPayloads = await archivist.get(bw.payload_hashes);
|
|
56
|
-
if (minDepth === 1) assertEx(allHashesPresent(bw.payload_hashes, blkPayloads), () => `Unable to find all payloads for block ${hash}`);
|
|
57
92
|
if (maxDepth === 1) return [
|
|
58
93
|
bw,
|
|
59
94
|
blkPayloads
|
|
60
95
|
];
|
|
61
|
-
const transactions = blkPayloads.filter(
|
|
96
|
+
const transactions = blkPayloads.filter(isTransactionBoundWitnessWithStorageMeta3);
|
|
62
97
|
const transactionsPayloadHashes = transactions.flatMap((tx) => tx.payload_hashes);
|
|
63
98
|
const transactionsPayloads = await archivist.get(transactionsPayloadHashes);
|
|
64
|
-
assertEx(allHashesPresent(transactionsPayloadHashes, transactionsPayloads), () => `Unable to find all payloads for transactions in block ${hash}`);
|
|
65
99
|
const allPayloadsHashes = new Set([
|
|
66
100
|
...blkPayloads,
|
|
67
101
|
...transactionsPayloads
|
|
@@ -70,31 +104,14 @@ var hydrateBlock = /* @__PURE__ */ __name(async (archivist, hash, maxDepth = 1,
|
|
|
70
104
|
...allPayloadsHashes
|
|
71
105
|
]);
|
|
72
106
|
const allPayloadsFiltered = allPayloads.filter((p) => allPayloadsHashes.has(p._hash));
|
|
73
|
-
if (maxDepth === 2) assertEx(allHashesPresent([
|
|
74
|
-
...allPayloadsHashes
|
|
75
|
-
], allPayloadsFiltered), () => `Unable to find all payloads for transactions in block ${hash}`);
|
|
76
107
|
return [
|
|
77
108
|
bw,
|
|
78
109
|
allPayloadsFiltered
|
|
79
110
|
];
|
|
80
|
-
}, "
|
|
81
|
-
var flattenHydratedBlock = /* @__PURE__ */ __name((hydratedBlock) => {
|
|
82
|
-
const [blk, blkPayloads] = hydratedBlock;
|
|
83
|
-
return [
|
|
84
|
-
...blkPayloads,
|
|
85
|
-
blk
|
|
86
|
-
];
|
|
87
|
-
}, "flattenHydratedBlock");
|
|
88
|
-
var flattenHydratedBlocks = /* @__PURE__ */ __name((hydratedBlocks) => hydratedBlocks.flatMap((blk) => flattenHydratedBlock(blk)), "flattenHydratedBlocks");
|
|
89
|
-
var transactionsFromHydratedBlock = /* @__PURE__ */ __name((block) => {
|
|
90
|
-
return filterAs(block[1], asTransactionBoundWitnessWithStorageMeta);
|
|
91
|
-
}, "transactionsFromHydratedBlock");
|
|
92
|
-
var blockPayloadsFromHydratedBlock = /* @__PURE__ */ __name((block) => {
|
|
93
|
-
return block[0].payload_hashes.map((hash) => assertEx(block[1].find((p) => p._hash === hash), () => `missing payload ${hash}`)).filter((x) => !isTransactionBoundWitnessWithStorageMeta(x));
|
|
94
|
-
}, "blockPayloadsFromHydratedBlock");
|
|
111
|
+
}, "tryHydrateBlock");
|
|
95
112
|
|
|
96
|
-
// src/block/primitives/
|
|
97
|
-
import { assertEx as
|
|
113
|
+
// src/block/primitives/balances/balancesStepSummaryFromRange.ts
|
|
114
|
+
import { assertEx as assertEx4 } from "@xylabs/assert";
|
|
98
115
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
99
116
|
import { isAnyPayload } from "@xyo-network/payload-model";
|
|
100
117
|
import { StepSizes as StepSizes3 } from "@xyo-network/xl1-protocol";
|
|
@@ -119,8 +136,36 @@ var netBalancesForPayloads = /* @__PURE__ */ __name((payloads) => {
|
|
|
119
136
|
});
|
|
120
137
|
}, "netBalancesForPayloads");
|
|
121
138
|
|
|
139
|
+
// src/payload/netTransfersForPayloads.ts
|
|
140
|
+
import { hexToBigInt as hexToBigInt2 } from "@xylabs/hex";
|
|
141
|
+
import { span as span2 } from "@xylabs/telemetry";
|
|
142
|
+
import { isTransfer as isTransfer2 } from "@xyo-network/xl1-protocol";
|
|
143
|
+
function netTransfersForPayloads(payloads, account) {
|
|
144
|
+
return span2("netTransfersForPayloads", () => {
|
|
145
|
+
const transfers = {};
|
|
146
|
+
for (const payload of payloads) {
|
|
147
|
+
if (isTransfer2(payload)) {
|
|
148
|
+
const { from } = payload;
|
|
149
|
+
for (let [address, amount] of Object.entries(payload.transfers)) {
|
|
150
|
+
if (account === from) {
|
|
151
|
+
if (address !== from) {
|
|
152
|
+
transfers[address] = (transfers[address] ?? 0n) + hexToBigInt2(amount);
|
|
153
|
+
}
|
|
154
|
+
} else {
|
|
155
|
+
if (account === address) {
|
|
156
|
+
transfers[from] = (transfers[from] ?? 0n) - hexToBigInt2(amount);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return transfers;
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
__name(netTransfersForPayloads, "netTransfersForPayloads");
|
|
166
|
+
|
|
122
167
|
// src/SignedBigInt.ts
|
|
123
|
-
import { hexToBigInt as
|
|
168
|
+
import { hexToBigInt as hexToBigInt3, toHex } from "@xylabs/hex";
|
|
124
169
|
import { isObject } from "@xylabs/object";
|
|
125
170
|
var isNegativeBigInt = /* @__PURE__ */ __name((value) => {
|
|
126
171
|
return isObject(value) && "negative" in value && typeof value.negative === "string";
|
|
@@ -130,9 +175,9 @@ var isPositiveBigInt = /* @__PURE__ */ __name((value) => {
|
|
|
130
175
|
}, "isPositiveBigInt");
|
|
131
176
|
var parseSignedBigInt = /* @__PURE__ */ __name((value) => {
|
|
132
177
|
if (isNegativeBigInt(value)) {
|
|
133
|
-
return -
|
|
178
|
+
return -hexToBigInt3(value.negative);
|
|
134
179
|
} else if (isPositiveBigInt(value)) {
|
|
135
|
-
return
|
|
180
|
+
return hexToBigInt3(value.positive);
|
|
136
181
|
} else {
|
|
137
182
|
throw new Error("Invalid balance type");
|
|
138
183
|
}
|
|
@@ -225,11 +270,11 @@ function deepCalculateFramesFromRange(range, startingStep = StepSizes.length - 1
|
|
|
225
270
|
}
|
|
226
271
|
__name(deepCalculateFramesFromRange, "deepCalculateFramesFromRange");
|
|
227
272
|
|
|
228
|
-
// src/block/primitives/
|
|
273
|
+
// src/block/primitives/blockFromBlockNumber.ts
|
|
229
274
|
import { asHash } from "@xylabs/hex";
|
|
230
275
|
import { toSafeJsonString } from "@xylabs/object";
|
|
231
276
|
import { asBlockBoundWitnessWithStorageMeta, StepSizes as StepSizes2 } from "@xyo-network/xl1-protocol";
|
|
232
|
-
async function
|
|
277
|
+
async function blockFromBlockNumber(context, blockNumber) {
|
|
233
278
|
const result = await context.chainArchivist.get([
|
|
234
279
|
context.head
|
|
235
280
|
]);
|
|
@@ -259,14 +304,19 @@ async function hashFromBlockNumber(context, blockNumber) {
|
|
|
259
304
|
throw new Error(`Block number ${blockNumber} is not a valid step block number for block ${context.head}.`);
|
|
260
305
|
}
|
|
261
306
|
}
|
|
262
|
-
return currentBlock
|
|
307
|
+
return currentBlock;
|
|
308
|
+
}
|
|
309
|
+
__name(blockFromBlockNumber, "blockFromBlockNumber");
|
|
310
|
+
|
|
311
|
+
// src/block/primitives/hashFromBlockNumber.ts
|
|
312
|
+
async function hashFromBlockNumber(context, blockNumber) {
|
|
313
|
+
return (await blockFromBlockNumber(context, blockNumber))._hash;
|
|
263
314
|
}
|
|
264
315
|
__name(hashFromBlockNumber, "hashFromBlockNumber");
|
|
265
316
|
|
|
266
|
-
// src/block/primitives/payloads.ts
|
|
317
|
+
// src/block/primitives/payloads/BalancesStepSummary.ts
|
|
267
318
|
import { AsObjectFactory } from "@xylabs/object";
|
|
268
319
|
import { isPayloadOfSchemaType, isStorageMeta } from "@xyo-network/payload-model";
|
|
269
|
-
var StepSummarySchema = "network.xyo.step.summary";
|
|
270
320
|
var BalancesStepSummarySchema = "network.xyo.step.summary.balances";
|
|
271
321
|
var isBalancesStepSummary = isPayloadOfSchemaType(BalancesStepSummarySchema);
|
|
272
322
|
var asBalancesStepSummary = AsObjectFactory.create(isBalancesStepSummary);
|
|
@@ -275,8 +325,22 @@ var isBalancesStepSummaryWithStorageMeta = /* @__PURE__ */ __name((value) => {
|
|
|
275
325
|
}, "isBalancesStepSummaryWithStorageMeta");
|
|
276
326
|
var asBalancesStepSummaryWithStorageMeta = AsObjectFactory.create(isBalancesStepSummaryWithStorageMeta);
|
|
277
327
|
|
|
278
|
-
// src/block/primitives/
|
|
279
|
-
|
|
328
|
+
// src/block/primitives/payloads/StepSummary.ts
|
|
329
|
+
var StepSummarySchema = "network.xyo.step.summary";
|
|
330
|
+
|
|
331
|
+
// src/block/primitives/payloads/TransfersSummary.ts
|
|
332
|
+
import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
|
|
333
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType2, isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
|
|
334
|
+
var TransfersStepSummarySchema = "network.xyo.step.summary.transfer";
|
|
335
|
+
var isTransfersStepSummary = isPayloadOfSchemaType2(TransfersStepSummarySchema);
|
|
336
|
+
var asTransfersStepSummary = AsObjectFactory2.create(isTransfersStepSummary);
|
|
337
|
+
var isTransfersStepSummaryWithStorageMeta = /* @__PURE__ */ __name((value) => {
|
|
338
|
+
return isTransfersStepSummary(value) && isStorageMeta2(value);
|
|
339
|
+
}, "isTransfersStepSummaryWithStorageMeta");
|
|
340
|
+
var asTransfersStepSummaryWithStorageMeta = AsObjectFactory2.create(isTransfersStepSummaryWithStorageMeta);
|
|
341
|
+
|
|
342
|
+
// src/block/primitives/balances/balancesStepSummaryFromRange.ts
|
|
343
|
+
async function balancesStepSummaryFromRange(context, range) {
|
|
280
344
|
const frameHeadHash = await hashFromBlockNumber(context, range[1]);
|
|
281
345
|
const frameSize = range[1] - range[0] + 1;
|
|
282
346
|
let result = void 0;
|
|
@@ -295,7 +359,7 @@ async function balanceStepSummaryFromRange(context, range) {
|
|
|
295
359
|
};
|
|
296
360
|
} else {
|
|
297
361
|
const step = StepSizes3.indexOf(frameSize);
|
|
298
|
-
|
|
362
|
+
assertEx4(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes3.join(", ")}`);
|
|
299
363
|
const [summaryResult] = await context.summaryRepository.get([
|
|
300
364
|
frameHeadHash
|
|
301
365
|
]);
|
|
@@ -303,7 +367,7 @@ async function balanceStepSummaryFromRange(context, range) {
|
|
|
303
367
|
result = summaryResult;
|
|
304
368
|
} else {
|
|
305
369
|
const subRanges = deepCalculateFramesFromRange(range, step - 1);
|
|
306
|
-
const promises = subRanges.map((subRange) =>
|
|
370
|
+
const promises = subRanges.map((subRange) => balancesStepSummaryFromRange(context, subRange));
|
|
307
371
|
const subResults = await Promise.all(promises);
|
|
308
372
|
const bigIntBalances = {};
|
|
309
373
|
for (const subResult of subResults) {
|
|
@@ -329,14 +393,14 @@ async function balanceStepSummaryFromRange(context, range) {
|
|
|
329
393
|
const finalResult = await PayloadBuilder.addStorageMeta(result);
|
|
330
394
|
return finalResult;
|
|
331
395
|
}
|
|
332
|
-
__name(
|
|
396
|
+
__name(balancesStepSummaryFromRange, "balancesStepSummaryFromRange");
|
|
333
397
|
|
|
334
|
-
// src/block/primitives/
|
|
398
|
+
// src/block/primitives/balances/balancesSummary.ts
|
|
335
399
|
import { asAddress } from "@xylabs/hex";
|
|
336
400
|
import { spanRootAsync } from "@xylabs/telemetry";
|
|
337
401
|
import { isDefined } from "@xylabs/typeof";
|
|
338
402
|
import { asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta2 } from "@xyo-network/xl1-protocol";
|
|
339
|
-
async function
|
|
403
|
+
async function balancesSummary(context) {
|
|
340
404
|
return await spanRootAsync("balanceSummary", async () => {
|
|
341
405
|
const headResult = await context.chainArchivist.get([
|
|
342
406
|
context.head
|
|
@@ -349,7 +413,7 @@ async function balanceSummary(context) {
|
|
|
349
413
|
rangeStart,
|
|
350
414
|
headBoundWitness.block
|
|
351
415
|
]);
|
|
352
|
-
const summaries = await Promise.all(ranges.map((range) =>
|
|
416
|
+
const summaries = await Promise.all(ranges.map((range) => balancesStepSummaryFromRange(context, range)));
|
|
353
417
|
const balances = {};
|
|
354
418
|
for (let summary of summaries) {
|
|
355
419
|
for (const [address, balance] of Object.entries(summary.balances)) {
|
|
@@ -360,7 +424,101 @@ async function balanceSummary(context) {
|
|
|
360
424
|
return balances;
|
|
361
425
|
});
|
|
362
426
|
}
|
|
363
|
-
__name(
|
|
427
|
+
__name(balancesSummary, "balancesSummary");
|
|
428
|
+
|
|
429
|
+
// src/block/primitives/transfers/transfersStepSummaryFromRange.ts
|
|
430
|
+
import { assertEx as assertEx5 } from "@xylabs/assert";
|
|
431
|
+
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
432
|
+
import { isAnyPayload as isAnyPayload2 } from "@xyo-network/payload-model";
|
|
433
|
+
import { StepSizes as StepSizes4 } from "@xyo-network/xl1-protocol";
|
|
434
|
+
async function transfersStepSummaryFromRange(context, range) {
|
|
435
|
+
const frameHeadHash = await hashFromBlockNumber(context, range[1]);
|
|
436
|
+
const frameSize = range[1] - range[0] + 1;
|
|
437
|
+
const { account } = context;
|
|
438
|
+
let result = void 0;
|
|
439
|
+
if (frameSize === 1) {
|
|
440
|
+
const hash = await hashFromBlockNumber(context, range[0]);
|
|
441
|
+
const [, payloads] = await hydrateBlock(context.chainArchivist, hash);
|
|
442
|
+
const transfers = {};
|
|
443
|
+
for (const [address, balance] of Object.entries(netTransfersForPayloads(payloads, account))) {
|
|
444
|
+
transfers[address] = toSignedBigInt(balance);
|
|
445
|
+
}
|
|
446
|
+
result = {
|
|
447
|
+
schema: TransfersStepSummarySchema,
|
|
448
|
+
hash: context.head,
|
|
449
|
+
stepSize: -1,
|
|
450
|
+
transfers,
|
|
451
|
+
account
|
|
452
|
+
};
|
|
453
|
+
} else {
|
|
454
|
+
const step = StepSizes4.indexOf(frameSize);
|
|
455
|
+
assertEx5(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes4.join(", ")}`);
|
|
456
|
+
const [summaryResult] = await context.summaryRepository.get([
|
|
457
|
+
frameHeadHash
|
|
458
|
+
]);
|
|
459
|
+
if (isAnyPayload2(summaryResult)) {
|
|
460
|
+
result = summaryResult;
|
|
461
|
+
} else {
|
|
462
|
+
const subRanges = deepCalculateFramesFromRange(range, step - 1);
|
|
463
|
+
const promises = subRanges.map((subRange) => transfersStepSummaryFromRange(context, subRange));
|
|
464
|
+
const subResults = await Promise.all(promises);
|
|
465
|
+
const bigIntBalances = {};
|
|
466
|
+
for (const subResult of subResults) {
|
|
467
|
+
for (const [address, transfer] of Object.entries(subResult.transfers)) {
|
|
468
|
+
bigIntBalances[address] = (bigIntBalances[address] ?? 0n) + parseSignedBigInt(transfer);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
const transfers = {};
|
|
472
|
+
for (const [address, transfer] of Object.entries(bigIntBalances)) {
|
|
473
|
+
transfers[address] = toSignedBigInt(transfer);
|
|
474
|
+
}
|
|
475
|
+
result = {
|
|
476
|
+
schema: TransfersStepSummarySchema,
|
|
477
|
+
hash: frameHeadHash,
|
|
478
|
+
stepSize: frameSize,
|
|
479
|
+
transfers,
|
|
480
|
+
account
|
|
481
|
+
};
|
|
482
|
+
await context.summaryRepository.insert([
|
|
483
|
+
result
|
|
484
|
+
]);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
const finalResult = await PayloadBuilder2.addStorageMeta(result);
|
|
488
|
+
return finalResult;
|
|
489
|
+
}
|
|
490
|
+
__name(transfersStepSummaryFromRange, "transfersStepSummaryFromRange");
|
|
491
|
+
|
|
492
|
+
// src/block/primitives/transfers/transfersSummary.ts
|
|
493
|
+
import { asAddress as asAddress2 } from "@xylabs/hex";
|
|
494
|
+
import { spanRootAsync as spanRootAsync2 } from "@xylabs/telemetry";
|
|
495
|
+
import { isDefined as isDefined2 } from "@xylabs/typeof";
|
|
496
|
+
import { asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta3 } from "@xyo-network/xl1-protocol";
|
|
497
|
+
async function transfersSummary(context) {
|
|
498
|
+
return await spanRootAsync2("transferSummary", async () => {
|
|
499
|
+
const headResult = await context.chainArchivist.get([
|
|
500
|
+
context.head
|
|
501
|
+
]);
|
|
502
|
+
const headBoundWitness = asBlockBoundWitnessWithStorageMeta3(headResult.at(0), () => `Head block not found for hash: ${context.head}`, {
|
|
503
|
+
required: true
|
|
504
|
+
});
|
|
505
|
+
const rangeStart = isDefined2(context.windowSize) ? Math.max(headBoundWitness.block - context.windowSize + 1, 0) : 0;
|
|
506
|
+
const ranges = deepCalculateFramesFromRange([
|
|
507
|
+
rangeStart,
|
|
508
|
+
headBoundWitness.block
|
|
509
|
+
]);
|
|
510
|
+
const summaries = await Promise.all(ranges.map((range) => transfersStepSummaryFromRange(context, range)));
|
|
511
|
+
const transfers = {};
|
|
512
|
+
for (let summary of summaries) {
|
|
513
|
+
for (const [address, transfer] of Object.entries(summary.transfers)) {
|
|
514
|
+
const validAddress = asAddress2(address, () => `Invalid address: ${address}`);
|
|
515
|
+
transfers[validAddress] = (transfers[validAddress] ?? 0n) + parseSignedBigInt(transfer);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
return transfers;
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
__name(transfersSummary, "transfersSummary");
|
|
364
522
|
|
|
365
523
|
// src/config/Config.ts
|
|
366
524
|
import * as z11 from "zod";
|
|
@@ -493,9 +651,20 @@ var LogConfigZod = z6.object({
|
|
|
493
651
|
});
|
|
494
652
|
|
|
495
653
|
// src/config/Producer.ts
|
|
654
|
+
import { AddressZod, asAddress as asAddress3 } from "@xylabs/hex";
|
|
496
655
|
import { globalRegistry as globalRegistry6 } from "zod";
|
|
497
656
|
import * as z7 from "zod";
|
|
498
657
|
var ProducerConfigZod = z7.object({
|
|
658
|
+
allowlist: z7.preprocess((val) => {
|
|
659
|
+
if (typeof val === "string") {
|
|
660
|
+
return val.split(",").map((s) => asAddress3(s.trim()));
|
|
661
|
+
}
|
|
662
|
+
return val;
|
|
663
|
+
}, z7.array(AddressZod).optional().register(globalRegistry6, {
|
|
664
|
+
description: "List of allowed producer addresses, if undefined anyone can participate",
|
|
665
|
+
title: "allowlist",
|
|
666
|
+
type: "array"
|
|
667
|
+
})),
|
|
499
668
|
disableIntentRedeclaration: z7.boolean().optional().register(globalRegistry6, {
|
|
500
669
|
description: "Should the producer skip redeclaring their intent to continue producing blocks",
|
|
501
670
|
title: "producer.disableIntentRedeclaration",
|
|
@@ -507,6 +676,11 @@ var ProducerConfigZod = z7.object({
|
|
|
507
676
|
title: "producer.healthCheckPort",
|
|
508
677
|
type: "number"
|
|
509
678
|
}),
|
|
679
|
+
heartbeatInterval: z7.coerce.number().default(36e5).register(globalRegistry6, {
|
|
680
|
+
description: "The number of milliseconds between heartbeats if no blocks are produced",
|
|
681
|
+
title: "producer.heartbeatInterval",
|
|
682
|
+
type: "number"
|
|
683
|
+
}),
|
|
510
684
|
// TODO: BigInt schema
|
|
511
685
|
minStake: z7.coerce.number().default(1).register(globalRegistry6, {
|
|
512
686
|
description: "Minimum stake required to be a Producer",
|
|
@@ -534,12 +708,12 @@ var ProducerConfigZod = z7.object({
|
|
|
534
708
|
});
|
|
535
709
|
|
|
536
710
|
// src/config/storage/driver/Mongo.ts
|
|
537
|
-
import { isDefined as
|
|
711
|
+
import { isDefined as isDefined3, isUndefined } from "@xylabs/typeof";
|
|
538
712
|
import { globalRegistry as globalRegistry7 } from "zod";
|
|
539
713
|
import * as z8 from "zod";
|
|
540
714
|
var hasMongoConfig = /* @__PURE__ */ __name((config) => {
|
|
541
715
|
if (isUndefined(config)) return false;
|
|
542
|
-
return
|
|
716
|
+
return isDefined3(config.connectionString) && isDefined3(config.database) && isDefined3(config.domain) && isDefined3(config.password) && isDefined3(config.username);
|
|
543
717
|
}, "hasMongoConfig");
|
|
544
718
|
var MongoConfigZod = z8.object({
|
|
545
719
|
// TODO: Create from other arguments
|
|
@@ -651,11 +825,232 @@ function isUsageMeta(v) {
|
|
|
651
825
|
}
|
|
652
826
|
__name(isUsageMeta, "isUsageMeta");
|
|
653
827
|
|
|
828
|
+
// src/steps/primitives/addressStakeWeight.ts
|
|
829
|
+
import { toAddress as toAddress2 } from "@xylabs/hex";
|
|
830
|
+
import { XYO_NETWORK_STAKING_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
831
|
+
async function addressStakeWeight(stakeContract, staked, by, startEthBlock, endEthBlock) {
|
|
832
|
+
const stakeAddedFilter = stakeContract.filters.StakeAdded(`0x${XYO_NETWORK_STAKING_ADDRESS}`, by);
|
|
833
|
+
const stakeAddedEvents = await stakeContract.queryFilter(stakeAddedFilter, startEthBlock, endEthBlock);
|
|
834
|
+
const stakeRemovedFilter = stakeContract.filters.StakeRemoved(`0x${XYO_NETWORK_STAKING_ADDRESS}`, by);
|
|
835
|
+
const stakeRemovedEvents = await stakeContract.queryFilter(stakeRemovedFilter, startEthBlock, endEthBlock);
|
|
836
|
+
const accountStakes = [];
|
|
837
|
+
const accountStakeCount = await stakeContract.getStakeCountForAddress(`0x${by}`, {
|
|
838
|
+
blockTag: startEthBlock - 1
|
|
839
|
+
});
|
|
840
|
+
for (let i = 0; i < accountStakeCount; i++) {
|
|
841
|
+
try {
|
|
842
|
+
const stake = await stakeContract.getStake(`0x${by}`, i, {
|
|
843
|
+
blockTag: startEthBlock - 1
|
|
844
|
+
});
|
|
845
|
+
accountStakes.push(stake);
|
|
846
|
+
} catch {
|
|
847
|
+
break;
|
|
848
|
+
}
|
|
849
|
+
}
|
|
850
|
+
const ethStakedAddress = toAddress2(staked, {
|
|
851
|
+
prefix: false
|
|
852
|
+
}).toLowerCase();
|
|
853
|
+
const networkStakes = accountStakes.filter((s) => s.staked.toLowerCase() === ethStakedAddress);
|
|
854
|
+
let totalStake = 0n;
|
|
855
|
+
for (const stake of networkStakes) {
|
|
856
|
+
totalStake += stake.amount;
|
|
857
|
+
}
|
|
858
|
+
let totalWeight = 0n;
|
|
859
|
+
let addIndex = 0;
|
|
860
|
+
let removeIndex = 0;
|
|
861
|
+
for (let i = startEthBlock; i <= endEthBlock; i++) {
|
|
862
|
+
while (addIndex < stakeAddedEvents.length && stakeAddedEvents[addIndex]?.blockNumber === i) {
|
|
863
|
+
totalStake += stakeAddedEvents[addIndex].args.amount;
|
|
864
|
+
addIndex++;
|
|
865
|
+
}
|
|
866
|
+
while (removeIndex < stakeRemovedEvents.length && stakeRemovedEvents[removeIndex]?.blockNumber === i) {
|
|
867
|
+
totalStake -= stakeRemovedEvents[removeIndex].args.amount;
|
|
868
|
+
removeIndex++;
|
|
869
|
+
}
|
|
870
|
+
totalWeight += totalStake;
|
|
871
|
+
}
|
|
872
|
+
return totalWeight;
|
|
873
|
+
}
|
|
874
|
+
__name(addressStakeWeight, "addressStakeWeight");
|
|
875
|
+
|
|
876
|
+
// src/steps/primitives/claimedRewards.ts
|
|
877
|
+
function claimedRewards(_address) {
|
|
878
|
+
return 0n;
|
|
879
|
+
}
|
|
880
|
+
__name(claimedRewards, "claimedRewards");
|
|
881
|
+
|
|
882
|
+
// src/steps/primitives/networkStakeStepAddressReward.ts
|
|
883
|
+
function networkStakeStepAddressReward(address, step, block) {
|
|
884
|
+
return {
|
|
885
|
+
[address]: 0n
|
|
886
|
+
};
|
|
887
|
+
}
|
|
888
|
+
__name(networkStakeStepAddressReward, "networkStakeStepAddressReward");
|
|
889
|
+
|
|
890
|
+
// src/steps/primitives/networkStakeStepPoolRewards.ts
|
|
891
|
+
function networkStakeStepPoolRewards(step, block) {
|
|
892
|
+
return {};
|
|
893
|
+
}
|
|
894
|
+
__name(networkStakeStepPoolRewards, "networkStakeStepPoolRewards");
|
|
895
|
+
|
|
896
|
+
// src/steps/primitives/networkStakeStepPoolRewardShares.ts
|
|
897
|
+
function networkStakeStepPoolRewardShares(step, block) {
|
|
898
|
+
return {};
|
|
899
|
+
}
|
|
900
|
+
__name(networkStakeStepPoolRewardShares, "networkStakeStepPoolRewardShares");
|
|
901
|
+
|
|
902
|
+
// src/steps/primitives/networkStakeStepRewardAddressHistory.ts
|
|
903
|
+
function networkStakeStepRewardAddressHistory(address) {
|
|
904
|
+
return {
|
|
905
|
+
[address]: 0n
|
|
906
|
+
};
|
|
907
|
+
}
|
|
908
|
+
__name(networkStakeStepRewardAddressHistory, "networkStakeStepRewardAddressHistory");
|
|
909
|
+
|
|
910
|
+
// src/steps/primitives/networkStakeStepRewardAddressShare.ts
|
|
911
|
+
function networkStakeStepRewardAddressShare(address, step, block) {
|
|
912
|
+
throw new Error("Method not implemented.");
|
|
913
|
+
}
|
|
914
|
+
__name(networkStakeStepRewardAddressShare, "networkStakeStepRewardAddressShare");
|
|
915
|
+
|
|
916
|
+
// src/steps/primitives/networkStakeStepRewardForStep.ts
|
|
917
|
+
function networkStakeStepRewardForStep(step) {
|
|
918
|
+
return 0n;
|
|
919
|
+
}
|
|
920
|
+
__name(networkStakeStepRewardForStep, "networkStakeStepRewardForStep");
|
|
921
|
+
|
|
922
|
+
// src/steps/primitives/networkStakeStepRewardPositionWeight.ts
|
|
923
|
+
function networkStakeStepRewardPositionWeight(position, step) {
|
|
924
|
+
throw new Error("Method not implemented.");
|
|
925
|
+
}
|
|
926
|
+
__name(networkStakeStepRewardPositionWeight, "networkStakeStepRewardPositionWeight");
|
|
927
|
+
|
|
928
|
+
// src/steps/primitives/networkStakeStepRewardPotentialPositionLoss.ts
|
|
929
|
+
function networkStakeStepRewardPotentialPositionLoss(position, step) {
|
|
930
|
+
throw new Error("Method not implemented.");
|
|
931
|
+
}
|
|
932
|
+
__name(networkStakeStepRewardPotentialPositionLoss, "networkStakeStepRewardPotentialPositionLoss");
|
|
933
|
+
|
|
934
|
+
// src/steps/primitives/networkStakeStepRewardRandomizer.ts
|
|
935
|
+
function networkStakeStepRewardRandomizer(step, block) {
|
|
936
|
+
throw new Error("Method not implemented.");
|
|
937
|
+
}
|
|
938
|
+
__name(networkStakeStepRewardRandomizer, "networkStakeStepRewardRandomizer");
|
|
939
|
+
|
|
940
|
+
// src/steps/primitives/networkStakeStepRewardWeightForAddress.ts
|
|
941
|
+
function networkStakeStepRewardWeightForAddress(address, step) {
|
|
942
|
+
throw new Error("Method not implemented.");
|
|
943
|
+
}
|
|
944
|
+
__name(networkStakeStepRewardWeightForAddress, "networkStakeStepRewardWeightForAddress");
|
|
945
|
+
|
|
946
|
+
// src/steps/primitives/stakersAsOfBlock.ts
|
|
947
|
+
import { toAddress as toAddress4 } from "@xylabs/hex";
|
|
948
|
+
|
|
949
|
+
// src/steps/primitives/startingStakes.ts
|
|
950
|
+
import { toAddress as toAddress3 } from "@xylabs/hex";
|
|
951
|
+
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS2 } from "@xyo-network/xl1-protocol";
|
|
952
|
+
async function startingStakes(stakeContract, staked, ethBlock) {
|
|
953
|
+
const stakeAddedFilter = stakeContract.filters.StakeAdded(toAddress3(XYO_NETWORK_STAKING_ADDRESS2, {
|
|
954
|
+
prefix: true
|
|
955
|
+
}));
|
|
956
|
+
const stakeAddedEvents = await stakeContract.queryFilter(stakeAddedFilter, 0, ethBlock);
|
|
957
|
+
const stakeRemovedFilter = stakeContract.filters.StakeRemoved(`0x${XYO_NETWORK_STAKING_ADDRESS2}`);
|
|
958
|
+
const stakeRemovedEvents = await stakeContract.queryFilter(stakeRemovedFilter, 0, ethBlock);
|
|
959
|
+
const stakes = {};
|
|
960
|
+
for (const event of stakeAddedEvents) {
|
|
961
|
+
const by = toAddress3(event.args.by.toLowerCase(), {
|
|
962
|
+
prefix: false
|
|
963
|
+
});
|
|
964
|
+
stakes[by] = (stakes[by] ?? 0n) + event.args.amount;
|
|
965
|
+
}
|
|
966
|
+
for (const event of stakeRemovedEvents) {
|
|
967
|
+
const by = toAddress3(event.args.by.toLowerCase(), {
|
|
968
|
+
prefix: false
|
|
969
|
+
});
|
|
970
|
+
stakes[by] = (stakes[by] ?? 0n) - event.args.amount;
|
|
971
|
+
}
|
|
972
|
+
const filteredStakes = {};
|
|
973
|
+
for (const [address, amount] of Object.entries(stakes)) {
|
|
974
|
+
if (amount > 0n) {
|
|
975
|
+
filteredStakes[address] = amount;
|
|
976
|
+
}
|
|
977
|
+
}
|
|
978
|
+
return filteredStakes;
|
|
979
|
+
}
|
|
980
|
+
__name(startingStakes, "startingStakes");
|
|
981
|
+
|
|
982
|
+
// src/steps/primitives/stakersAsOfBlock.ts
|
|
983
|
+
async function stakersAsOfBlock(stakeContract, staked, ethBlock) {
|
|
984
|
+
const stakes = await startingStakes(stakeContract, staked, ethBlock);
|
|
985
|
+
let results = [];
|
|
986
|
+
for (const [address, amount] of Object.entries(stakes)) {
|
|
987
|
+
if (amount > 0n) {
|
|
988
|
+
results.push(toAddress4(address, {
|
|
989
|
+
prefix: false
|
|
990
|
+
}));
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
return results;
|
|
994
|
+
}
|
|
995
|
+
__name(stakersAsOfBlock, "stakersAsOfBlock");
|
|
996
|
+
|
|
997
|
+
// src/steps/primitives/totalStakeWeight.ts
|
|
998
|
+
import { toAddress as toAddress5 } from "@xylabs/hex";
|
|
999
|
+
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS3 } from "@xyo-network/xl1-protocol";
|
|
1000
|
+
async function totalStakeWeight(stakeContract, staked, startEthBlock, endEthBlock) {
|
|
1001
|
+
const stakeAddedFilter = stakeContract.filters.StakeAdded(`0x${XYO_NETWORK_STAKING_ADDRESS3}`);
|
|
1002
|
+
const stakeAddedEvents = await stakeContract.queryFilter(stakeAddedFilter, startEthBlock, endEthBlock);
|
|
1003
|
+
const stakeRemovedFilter = stakeContract.filters.StakeRemoved(`0x${XYO_NETWORK_STAKING_ADDRESS3}`);
|
|
1004
|
+
const stakeRemovedEvents = await stakeContract.queryFilter(stakeRemovedFilter, startEthBlock, endEthBlock);
|
|
1005
|
+
const stakes = await startingStakes(stakeContract, staked, startEthBlock);
|
|
1006
|
+
let totalWeight = 0n;
|
|
1007
|
+
let addIndex = 0;
|
|
1008
|
+
let removeIndex = 0;
|
|
1009
|
+
for (let i = startEthBlock; i <= endEthBlock; i++) {
|
|
1010
|
+
while (addIndex < stakeAddedEvents.length && stakeAddedEvents[addIndex]?.blockNumber === i) {
|
|
1011
|
+
const by = toAddress5(stakeAddedEvents[addIndex].args.by.toLowerCase(), {
|
|
1012
|
+
prefix: false
|
|
1013
|
+
});
|
|
1014
|
+
stakes[by] = (stakes[by] ?? 0n) + stakeAddedEvents[addIndex].args.amount;
|
|
1015
|
+
addIndex++;
|
|
1016
|
+
}
|
|
1017
|
+
while (removeIndex < stakeRemovedEvents.length && stakeRemovedEvents[removeIndex]?.blockNumber === i) {
|
|
1018
|
+
const by = toAddress5(stakeAddedEvents[addIndex].args.by.toLowerCase(), {
|
|
1019
|
+
prefix: false
|
|
1020
|
+
});
|
|
1021
|
+
stakes[by] = (stakes[by] ?? 0n) - stakeRemovedEvents[addIndex].args.amount;
|
|
1022
|
+
removeIndex++;
|
|
1023
|
+
}
|
|
1024
|
+
totalWeight += Object.values(stakes).reduce((a, b) => a + b, 0n);
|
|
1025
|
+
}
|
|
1026
|
+
return totalWeight;
|
|
1027
|
+
}
|
|
1028
|
+
__name(totalStakeWeight, "totalStakeWeight");
|
|
1029
|
+
|
|
1030
|
+
// src/steps/primitives/unclaimedRewards.ts
|
|
1031
|
+
function unclaimedRewards(address) {
|
|
1032
|
+
throw new Error("Method not implemented.");
|
|
1033
|
+
}
|
|
1034
|
+
__name(unclaimedRewards, "unclaimedRewards");
|
|
1035
|
+
|
|
1036
|
+
// src/time/primitives/xl1BlockNumberToEthBlockNumber.ts
|
|
1037
|
+
import { assertEx as assertEx6 } from "@xylabs/assert";
|
|
1038
|
+
import { asTimePayload, TimeSchema } from "@xyo-network/xl1-protocol";
|
|
1039
|
+
async function xl1BlockNumberToEthBlockNumber(context, xl1BlockNumber) {
|
|
1040
|
+
const blockHash = await hashFromBlockNumber(context, xl1BlockNumber);
|
|
1041
|
+
const hydratedBlock = await hydrateBlock(context.chainArchivist, blockHash);
|
|
1042
|
+
const timePayload = asTimePayload(hydratedBlock[1].find((p) => p.schema === TimeSchema), {
|
|
1043
|
+
required: true
|
|
1044
|
+
});
|
|
1045
|
+
return assertEx6(timePayload.ethereum, () => "No ethereum timestamp found on block");
|
|
1046
|
+
}
|
|
1047
|
+
__name(xl1BlockNumberToEthBlockNumber, "xl1BlockNumberToEthBlockNumber");
|
|
1048
|
+
|
|
654
1049
|
// src/transaction/buildTransaction.ts
|
|
655
|
-
import { assertEx as
|
|
1050
|
+
import { assertEx as assertEx7 } from "@xylabs/assert";
|
|
656
1051
|
import { toHex as toHex2 } from "@xylabs/hex";
|
|
657
1052
|
import { BoundWitnessBuilder } from "@xyo-network/boundwitness-builder";
|
|
658
|
-
import { PayloadBuilder as
|
|
1053
|
+
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
659
1054
|
import { defaultTransactionFees } from "@xyo-network/xl1-protocol";
|
|
660
1055
|
async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer, nbf, exp, from, fees = defaultTransactionFees) {
|
|
661
1056
|
if (from === void 0 && Array.isArray(signer)) {
|
|
@@ -672,14 +1067,14 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
|
|
|
672
1067
|
nbf,
|
|
673
1068
|
exp
|
|
674
1069
|
};
|
|
675
|
-
const elevatedHashes = await
|
|
1070
|
+
const elevatedHashes = await PayloadBuilder3.hashes(onChainPayloads);
|
|
676
1071
|
const script = [];
|
|
677
1072
|
for (const elevatedHash of elevatedHashes) {
|
|
678
1073
|
script.push(`elevate|${elevatedHash}`);
|
|
679
1074
|
}
|
|
680
1075
|
const fields = {
|
|
681
1076
|
...txBoundWitnessFields,
|
|
682
|
-
from: from ?? (Array.isArray(signer) ?
|
|
1077
|
+
from: from ?? (Array.isArray(signer) ? assertEx7(signer.at(0)?.address) : signer.address)
|
|
683
1078
|
};
|
|
684
1079
|
if (script.length > 0) {
|
|
685
1080
|
fields.script = script;
|
|
@@ -693,8 +1088,8 @@ async function buildTransaction(chain, onChainPayloads, offChainPayloads, signer
|
|
|
693
1088
|
signer
|
|
694
1089
|
]).build();
|
|
695
1090
|
return [
|
|
696
|
-
await
|
|
697
|
-
await
|
|
1091
|
+
await PayloadBuilder3.addStorageMeta(tx),
|
|
1092
|
+
await PayloadBuilder3.addStorageMeta(txPayloads)
|
|
698
1093
|
];
|
|
699
1094
|
}
|
|
700
1095
|
__name(buildTransaction, "buildTransaction");
|
|
@@ -702,7 +1097,7 @@ __name(buildTransaction, "buildTransaction");
|
|
|
702
1097
|
// src/transaction/buildUnsignedTransaction.ts
|
|
703
1098
|
import { toHex as toHex3 } from "@xylabs/hex";
|
|
704
1099
|
import { BoundWitnessBuilder as BoundWitnessBuilder2 } from "@xyo-network/boundwitness-builder";
|
|
705
|
-
import { PayloadBuilder as
|
|
1100
|
+
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
706
1101
|
import { defaultTransactionFees as defaultTransactionFees2 } from "@xyo-network/xl1-protocol";
|
|
707
1102
|
async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads, nbf, exp, from, fees = defaultTransactionFees2) {
|
|
708
1103
|
const txBoundWitnessFields = {
|
|
@@ -716,7 +1111,7 @@ async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads
|
|
|
716
1111
|
nbf,
|
|
717
1112
|
exp
|
|
718
1113
|
};
|
|
719
|
-
const elevatedHashes = await
|
|
1114
|
+
const elevatedHashes = await PayloadBuilder4.hashes(onChainPayloads);
|
|
720
1115
|
const script = [];
|
|
721
1116
|
for (const elevatedHash of elevatedHashes) {
|
|
722
1117
|
script.push(`elevate|${elevatedHash}`);
|
|
@@ -735,26 +1130,26 @@ async function buildUnsignedTransaction(chain, onChainPayloads, offChainPayloads
|
|
|
735
1130
|
...offChainPayloads
|
|
736
1131
|
]).build();
|
|
737
1132
|
return [
|
|
738
|
-
await
|
|
739
|
-
await
|
|
1133
|
+
await PayloadBuilder4.addStorageMeta(tx),
|
|
1134
|
+
await PayloadBuilder4.addStorageMeta(txPayloads)
|
|
740
1135
|
];
|
|
741
1136
|
}
|
|
742
1137
|
__name(buildUnsignedTransaction, "buildUnsignedTransaction");
|
|
743
1138
|
|
|
744
1139
|
// src/transaction/confirmSubmittedTransaction.ts
|
|
745
1140
|
import { delay } from "@xylabs/delay";
|
|
746
|
-
import { isDefined as
|
|
747
|
-
import { PayloadBuilder as
|
|
1141
|
+
import { isDefined as isDefined4 } from "@xylabs/typeof";
|
|
1142
|
+
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
748
1143
|
var DEFAULT_CONFIRMATION_ATTEMPTS = 20;
|
|
749
1144
|
var DEFAULT_DELAY_BETWEEN_ATTEMPTS = 1e3;
|
|
750
1145
|
var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, transaction, options) => {
|
|
751
1146
|
const { attempts: maxAttempts = DEFAULT_CONFIRMATION_ATTEMPTS, delay: attemptDelay = DEFAULT_DELAY_BETWEEN_ATTEMPTS } = options || {};
|
|
752
|
-
const txBWHash = await
|
|
1147
|
+
const txBWHash = await PayloadBuilder5.hash(transaction);
|
|
753
1148
|
options?.logger?.log("\u{1F680} confirming transaction:", txBWHash, "\n");
|
|
754
1149
|
let attempts = 0;
|
|
755
1150
|
while (true) {
|
|
756
1151
|
const tx = await viewer.transactionByHash(txBWHash) ?? void 0;
|
|
757
|
-
if (
|
|
1152
|
+
if (isDefined4(tx)) {
|
|
758
1153
|
options?.logger?.log("\u2705 Transaction confirmed:", txBWHash, "\n");
|
|
759
1154
|
return tx;
|
|
760
1155
|
} else {
|
|
@@ -771,7 +1166,7 @@ var confirmSubmittedTransaction = /* @__PURE__ */ __name(async (viewer, transact
|
|
|
771
1166
|
}, "confirmSubmittedTransaction");
|
|
772
1167
|
|
|
773
1168
|
// src/transaction/hydrateTransaction.ts
|
|
774
|
-
import { assertEx as
|
|
1169
|
+
import { assertEx as assertEx8 } from "@xylabs/assert";
|
|
775
1170
|
import { hydrateTypedBoundWitness, tryHydrateTypedBoundWitness } from "@xyo-network/archivist-model";
|
|
776
1171
|
import { isAllowedBlockPayload, isSignedTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
777
1172
|
var tryHydrateTransaction = /* @__PURE__ */ __name(async (archivist, hash) => {
|
|
@@ -814,15 +1209,15 @@ var tryHydrateElevatedTransaction = /* @__PURE__ */ __name(async (archivist, has
|
|
|
814
1209
|
return void 0;
|
|
815
1210
|
}, "tryHydrateElevatedTransaction");
|
|
816
1211
|
var hydrateElevatedTransaction = /* @__PURE__ */ __name(async (archivist, hash) => {
|
|
817
|
-
return
|
|
1212
|
+
return assertEx8(await tryHydrateElevatedTransaction(archivist, hash), () => "Hydration failed");
|
|
818
1213
|
}, "hydrateElevatedTransaction");
|
|
819
1214
|
|
|
820
1215
|
// src/transaction/primitives/transactionBlockByteCount.ts
|
|
821
|
-
import { PayloadBuilder as
|
|
1216
|
+
import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/payload-builder";
|
|
822
1217
|
function transactionBlockByteCount([transaction, payloads]) {
|
|
823
|
-
const cleanTransaction =
|
|
1218
|
+
const cleanTransaction = PayloadBuilder6.omitStorageMeta(transaction);
|
|
824
1219
|
const transactionBytes = JSON.stringify(cleanTransaction).length;
|
|
825
|
-
const cleanPayloads =
|
|
1220
|
+
const cleanPayloads = PayloadBuilder6.omitStorageMeta(payloads);
|
|
826
1221
|
return cleanPayloads.reduce((acc, payload) => acc + JSON.stringify(payload).length, 0) + transactionBytes;
|
|
827
1222
|
}
|
|
828
1223
|
__name(transactionBlockByteCount, "transactionBlockByteCount");
|
|
@@ -880,7 +1275,7 @@ __name(transactionRequiredGas, "transactionRequiredGas");
|
|
|
880
1275
|
|
|
881
1276
|
// src/transaction/script.ts
|
|
882
1277
|
import { filterAs as filterAs2 } from "@xylabs/array";
|
|
883
|
-
import { assertEx as
|
|
1278
|
+
import { assertEx as assertEx9 } from "@xylabs/assert";
|
|
884
1279
|
import { asHash as asHash3 } from "@xylabs/hex";
|
|
885
1280
|
import { isAllowedBlockPayloadWithHashStorageMeta } from "@xyo-network/xl1-protocol";
|
|
886
1281
|
var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
|
|
@@ -890,7 +1285,7 @@ var tryExtractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
|
|
|
890
1285
|
var extractElevatedHashesFromScript = /* @__PURE__ */ __name((strings) => {
|
|
891
1286
|
const hashes = strings.filter((str) => str.startsWith("elevate|")).map((str) => str.split("|")[1]);
|
|
892
1287
|
const filtered = filterAs2(hashes, (h) => asHash3(h));
|
|
893
|
-
|
|
1288
|
+
assertEx9(filtered.length === hashes.length, () => "Invalid elevated hashes");
|
|
894
1289
|
return filtered;
|
|
895
1290
|
}, "extractElevatedHashesFromScript");
|
|
896
1291
|
var tryExtractElevatedHashes = /* @__PURE__ */ __name((tx) => {
|
|
@@ -904,17 +1299,17 @@ var extractElevatedHashes = /* @__PURE__ */ __name((tx) => {
|
|
|
904
1299
|
const { script } = bw;
|
|
905
1300
|
const hashes = script ? tryExtractElevatedHashesFromScript(script) : [];
|
|
906
1301
|
const filtered = payloads.filter((p) => hashes.includes(p._hash)).filter(isAllowedBlockPayloadWithHashStorageMeta);
|
|
907
|
-
|
|
1302
|
+
assertEx9(filtered.length === hashes.length, () => "Invalid elevated hashes");
|
|
908
1303
|
return filtered;
|
|
909
1304
|
}, "extractElevatedHashes");
|
|
910
1305
|
|
|
911
1306
|
// src/transaction/signTransaction.ts
|
|
912
1307
|
import { toArrayBuffer } from "@xylabs/arraybuffer";
|
|
913
|
-
import { assertEx as
|
|
1308
|
+
import { assertEx as assertEx10 } from "@xylabs/assert";
|
|
914
1309
|
import { hexFromArrayBuffer } from "@xylabs/hex";
|
|
915
|
-
import { PayloadBuilder as
|
|
1310
|
+
import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/payload-builder";
|
|
916
1311
|
async function signTransaction(tx, account) {
|
|
917
|
-
|
|
1312
|
+
assertEx10(tx.from === account.address, () => "Signer address does not match transaction from address");
|
|
918
1313
|
const signedTx = structuredClone(tx);
|
|
919
1314
|
signedTx.addresses = [
|
|
920
1315
|
account.address
|
|
@@ -922,7 +1317,7 @@ async function signTransaction(tx, account) {
|
|
|
922
1317
|
signedTx.previous_hashes = [
|
|
923
1318
|
account.previousHash ?? null
|
|
924
1319
|
];
|
|
925
|
-
const hash = await
|
|
1320
|
+
const hash = await PayloadBuilder7.dataHash(signedTx);
|
|
926
1321
|
const hashBytes = toArrayBuffer(hash);
|
|
927
1322
|
const [signature] = await account.sign(hashBytes);
|
|
928
1323
|
signedTx.$signatures = [
|
|
@@ -972,18 +1367,24 @@ export {
|
|
|
972
1367
|
MnemonicStringZod,
|
|
973
1368
|
StepSummarySchema,
|
|
974
1369
|
TODO,
|
|
1370
|
+
TransfersStepSummarySchema,
|
|
975
1371
|
UsageMetaSchema,
|
|
976
1372
|
WALLET_COMPLIANCE,
|
|
977
1373
|
Xl1CommonConfigSchema,
|
|
1374
|
+
addressStakeWeight,
|
|
978
1375
|
allHashesPresent,
|
|
979
1376
|
asBalancesStepSummary,
|
|
980
1377
|
asBalancesStepSummaryWithStorageMeta,
|
|
981
|
-
|
|
982
|
-
|
|
1378
|
+
asTransfersStepSummary,
|
|
1379
|
+
asTransfersStepSummaryWithStorageMeta,
|
|
1380
|
+
balancesStepSummaryFromRange,
|
|
1381
|
+
balancesSummary,
|
|
1382
|
+
blockFromBlockNumber,
|
|
983
1383
|
blockPayloadsFromHydratedBlock,
|
|
984
1384
|
buildTransaction,
|
|
985
1385
|
buildUnsignedTransaction,
|
|
986
1386
|
calculateFramesFromRange,
|
|
1387
|
+
claimedRewards,
|
|
987
1388
|
confirmSubmittedTransaction,
|
|
988
1389
|
crackOperation,
|
|
989
1390
|
crackOperations,
|
|
@@ -1007,22 +1408,42 @@ export {
|
|
|
1007
1408
|
isLocalhost,
|
|
1008
1409
|
isNegativeBigInt,
|
|
1009
1410
|
isPositiveBigInt,
|
|
1411
|
+
isTransfersStepSummary,
|
|
1412
|
+
isTransfersStepSummaryWithStorageMeta,
|
|
1010
1413
|
isUsageMeta,
|
|
1011
1414
|
netBalancesForPayloads,
|
|
1415
|
+
netTransfersForPayloads,
|
|
1416
|
+
networkStakeStepAddressReward,
|
|
1417
|
+
networkStakeStepPoolRewardShares,
|
|
1418
|
+
networkStakeStepPoolRewards,
|
|
1419
|
+
networkStakeStepRewardAddressHistory,
|
|
1420
|
+
networkStakeStepRewardAddressShare,
|
|
1421
|
+
networkStakeStepRewardForStep,
|
|
1422
|
+
networkStakeStepRewardPositionWeight,
|
|
1423
|
+
networkStakeStepRewardPotentialPositionLoss,
|
|
1424
|
+
networkStakeStepRewardRandomizer,
|
|
1425
|
+
networkStakeStepRewardWeightForAddress,
|
|
1012
1426
|
parseSignedBigInt,
|
|
1013
1427
|
signTransaction,
|
|
1428
|
+
stakersAsOfBlock,
|
|
1429
|
+
startingStakes,
|
|
1014
1430
|
toPositiveBigInt,
|
|
1015
1431
|
toSignedBigInt,
|
|
1432
|
+
totalStakeWeight,
|
|
1016
1433
|
transactionBlockByteCount,
|
|
1017
1434
|
transactionBytesRequiredGas,
|
|
1018
1435
|
transactionElevatedPayloadHashes,
|
|
1019
1436
|
transactionElevatedPayloads,
|
|
1020
1437
|
transactionRequiredGas,
|
|
1021
1438
|
transactionsFromHydratedBlock,
|
|
1439
|
+
transfersStepSummaryFromRange,
|
|
1440
|
+
transfersSummary,
|
|
1022
1441
|
tryExtractElevatedHashes,
|
|
1023
1442
|
tryExtractElevatedHashesFromScript,
|
|
1024
1443
|
tryHydrateBlock,
|
|
1025
1444
|
tryHydrateElevatedTransaction,
|
|
1026
|
-
tryHydrateTransaction
|
|
1445
|
+
tryHydrateTransaction,
|
|
1446
|
+
unclaimedRewards,
|
|
1447
|
+
xl1BlockNumberToEthBlockNumber
|
|
1027
1448
|
};
|
|
1028
1449
|
//# sourceMappingURL=index.mjs.map
|