@xyo-network/chain-sdk 5.1.1 → 5.2.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/browser/modules/analyze/ChainHeadSelector.d.ts +16 -0
- package/dist/browser/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +24 -2
- package/dist/browser/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/neutral/analyze.mjs +35 -1
- package/dist/neutral/analyze.mjs.map +2 -2
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts +16 -0
- package/dist/neutral/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +24 -2
- package/dist/neutral/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/neutral/services.mjs +67 -25
- package/dist/neutral/services.mjs.map +2 -2
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts +16 -0
- package/dist/node/modules/analyze/ChainHeadSelector.d.ts.map +1 -1
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts +24 -2
- package/dist/node/modules/services/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -3,6 +3,12 @@ import type { AccountInstance, ArchivistInstance, WithHashMeta } from '@xyo-netw
|
|
|
3
3
|
import type { AccountBalanceViewer, BlockBoundWitness, BlockRewardViewer, BlockRunner, BlockValidationViewer, ChainStakeIntent, CreatableProviderParams, DeadLetterQueueRunner, FinalizationViewer, HydratedBlockStateValidationFunction, MempoolViewer, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, TimeSyncViewer, Transfer } from '@xyo-network/xl1-sdk';
|
|
4
4
|
import { AbstractCreatableProvider } from '@xyo-network/xl1-sdk';
|
|
5
5
|
import type { BlockRewardDiviner } from '../../../../modules/index.js';
|
|
6
|
+
import type { OffendingTxReason } from './identifyOffendingTransactions.js';
|
|
7
|
+
/** Why and at which build height a transaction was excluded from future candidates. */
|
|
8
|
+
interface ExcludedTransactionEntry {
|
|
9
|
+
excludedAtBlock: number;
|
|
10
|
+
reason: OffendingTxReason;
|
|
11
|
+
}
|
|
6
12
|
/**
|
|
7
13
|
* The default block size for a block
|
|
8
14
|
*/
|
|
@@ -35,6 +41,12 @@ export interface SimpleBlockRunnerParams extends CreatableProviderParams {
|
|
|
35
41
|
validateHydratedBlockState?: HydratedBlockStateValidationFunction;
|
|
36
42
|
}
|
|
37
43
|
export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleBlockRunnerParams> implements BlockRunner {
|
|
44
|
+
/**
|
|
45
|
+
* Minimum time between build attempts after a fully-rejected build (validation exhausted with
|
|
46
|
+
* no attributable transaction to exclude). Such a build fails identically until external state
|
|
47
|
+
* changes, so retrying at the production tick rate only churns build → validate → DLQ.
|
|
48
|
+
*/
|
|
49
|
+
static readonly RejectedBuildBackoffMs = 1000;
|
|
38
50
|
static readonly connectionTypes: readonly ["lmdb", "mongo", "memory"];
|
|
39
51
|
static readonly defaultMoniker: "BlockRunner";
|
|
40
52
|
static readonly dependencies: ("AccountBalanceViewer" | "MempoolViewer" | "BlockRewardViewer" | "BlockValidationViewer" | "FinalizationViewer" | "TimeSyncViewer")[];
|
|
@@ -43,7 +55,7 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
43
55
|
moniker: "BlockRunner";
|
|
44
56
|
protected _blockRewardDiviner?: BlockRewardDiviner;
|
|
45
57
|
protected _deadLetterQueueRunner?: DeadLetterQueueRunner;
|
|
46
|
-
protected _excludedTransactionHashes:
|
|
58
|
+
protected _excludedTransactionHashes: Map<import("@ariestools/sdk").BrandedHash, ExcludedTransactionEntry>;
|
|
47
59
|
protected _lastRedeclarationBlock?: number;
|
|
48
60
|
protected _rejectedTransactionsArchivist?: ArchivistInstance;
|
|
49
61
|
private _account?;
|
|
@@ -53,6 +65,7 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
53
65
|
private _blockValidationViewer?;
|
|
54
66
|
private _chainParamsViewer?;
|
|
55
67
|
private _finalizationViewer?;
|
|
68
|
+
private _lastRejectedBuildAt;
|
|
56
69
|
/** Cache of the last candidate this runner signed; the mempool is the source of truth. */
|
|
57
70
|
private _lastSignedCandidate?;
|
|
58
71
|
private _mempoolViewer?;
|
|
@@ -137,6 +150,8 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
137
150
|
_hash: import("@ariestools/sdk").BrandedHash;
|
|
138
151
|
_dataHash: import("@ariestools/sdk").BrandedHash;
|
|
139
152
|
}[]] | undefined>;
|
|
153
|
+
private addTransferOutflow;
|
|
154
|
+
private commitProposedBlock;
|
|
140
155
|
/**
|
|
141
156
|
* Compute the cumulative outflow a single tx would charge to its `from`
|
|
142
157
|
* address, using the same rule as `BlockCumulativeBalanceValidator`:
|
|
@@ -146,8 +161,13 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
146
161
|
* reject, which would otherwise wedge the chain because the producer's
|
|
147
162
|
* `_lastProducedBlock` cache mutes retries.
|
|
148
163
|
*/
|
|
149
|
-
private addTransferOutflow;
|
|
150
164
|
private computeTransactionOutflow;
|
|
165
|
+
/**
|
|
166
|
+
* Drops head-relative ('block-balance') exclusions once the head has advanced past the height
|
|
167
|
+
* they were recorded at — the sender's funding is re-evaluated by filterByFunded at the new
|
|
168
|
+
* head. Deterministic ('tx-invalid') exclusions are kept for the process lifetime.
|
|
169
|
+
*/
|
|
170
|
+
private evictStaleExclusions;
|
|
151
171
|
private filterByFunded;
|
|
152
172
|
private generateTimePayload;
|
|
153
173
|
/**
|
|
@@ -156,6 +176,7 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
156
176
|
* @returns True if a heartbeat is required, false otherwise
|
|
157
177
|
*/
|
|
158
178
|
private heartbeatRequired;
|
|
179
|
+
private isWithinRejectedBuildBackoff;
|
|
159
180
|
/**
|
|
160
181
|
* The hash of this producer's own earlier candidate at the same height and parent, if any.
|
|
161
182
|
*
|
|
@@ -189,4 +210,5 @@ export declare class SimpleBlockRunner extends AbstractCreatableProvider<SimpleB
|
|
|
189
210
|
private resolveSupersedes;
|
|
190
211
|
private runBuildValidateRetryLoop;
|
|
191
212
|
}
|
|
213
|
+
export {};
|
|
192
214
|
//# sourceMappingURL=SimpleBlockRunner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/services/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAAQ,UAAU,EAC1B,MAAM,iBAAiB,CAAA;AAKxB,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAAE,YAAY,EAChC,MAAM,kBAAkB,CAAA;AAKzB,OAAO,KAAK,EACV,oBAAoB,EAAuB,iBAAiB,EACxC,iBAAiB,EAAE,WAAW,EAAE,qBAAqB,EACzE,gBAAgB,EAAE,uBAAuB,EACzC,qBAAqB,EACrB,kBAAkB,EAClB,oCAAoC,EAAgC,aAAa,EACjF,mCAAmC,EACnC,+BAA+B,EAClB,cAAc,EAAE,QAAQ,EACtC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,yBAAyB,EAQ1B,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"SimpleBlockRunner.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/services/simple/block/runner/SimpleBlockRunner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/chain-sdk",
|
|
4
|
-
"version": "5.
|
|
4
|
+
"version": "5.2.0",
|
|
5
5
|
"description": "XYO Layer One SDK",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
8
|
-
"url": "git+https://github.com/
|
|
8
|
+
"url": "git+https://github.com/xyo-network/xyo-chain/issues",
|
|
9
9
|
"email": "support@xylabs.com"
|
|
10
10
|
},
|
|
11
11
|
"repository": {
|
|
12
12
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/
|
|
13
|
+
"url": "git+https://github.com/xyo-network/xyo-chain.git"
|
|
14
14
|
},
|
|
15
15
|
"license": "LGPL-3.0-only",
|
|
16
16
|
"author": {
|
|
@@ -154,9 +154,9 @@
|
|
|
154
154
|
"@types/shallowequal": "~1.1.5",
|
|
155
155
|
"@xyo-network/archivist-mongodb": "~7.2.3",
|
|
156
156
|
"@xyo-network/sdk-protocol": "~7.2.4",
|
|
157
|
-
"@xyo-network/xl1-driver-lmdb": "~5.
|
|
158
|
-
"@xyo-network/xl1-driver-mongodb": "~5.
|
|
159
|
-
"@xyo-network/xl1-sdk": "~5.
|
|
157
|
+
"@xyo-network/xl1-driver-lmdb": "~5.3.1",
|
|
158
|
+
"@xyo-network/xl1-driver-mongodb": "~5.3.1",
|
|
159
|
+
"@xyo-network/xl1-sdk": "~5.3.1",
|
|
160
160
|
"async-mutex": "~0.5.0",
|
|
161
161
|
"eslint": "~10.8.1",
|
|
162
162
|
"eslint-import-resolver-typescript": "~4.4.5",
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"@opentelemetry/api": "^1.9",
|
|
174
174
|
"@opentelemetry/sdk-trace-base": "^2.9",
|
|
175
175
|
"@xyo-network/sdk": "^7.2",
|
|
176
|
-
"@xyo-network/xl1-sdk": "^5.
|
|
176
|
+
"@xyo-network/xl1-sdk": "^5.3",
|
|
177
177
|
"async-mutex": "^0.5",
|
|
178
178
|
"ethers": "^6.17",
|
|
179
179
|
"web3-types": "^1.10",
|