@lodestar/builder 1.50.0-dev.11028e782c → 1.50.0-dev.1f129c79a1

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.
@@ -53,7 +53,6 @@ export declare class BidLedger {
53
53
  assertCanRecordBid({ slot, parentBlockHash, parentBlockRoot, }: Pick<SubmittedBid, "slot" | "parentBlockHash" | "parentBlockRoot">): void;
54
54
  recordBid(bid: SubmittedBid): BidLedgerRecord;
55
55
  recordWin(identity: BidIdentity & Pick<SubmittedBid, "signedBidRoot">, blockRoot: RootHex): BidLedgerRecord | null;
56
- hasWon(identity: BidIdentity, blockRoot: RootHex): boolean;
57
56
  /** Release a winning bid liability only after its payment is known to be reflected in Builder balance. */
58
57
  recordPaymentSettled(identity: BidIdentity): BidLedgerRecord | null;
59
58
  canReveal(blockRoot: RootHex, blockHash: RootHex, envelopeRoot: RootHex): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"bidLedger.d.ts","sourceRoot":"","sources":["../../src/services/bidLedger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bidLedger.d.ts","sourceRoot":"","sources":["../../src/services/bidLedger.ts"],"names":[],"mappings":"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"}
@@ -51,10 +51,6 @@ export class BidLedger {
51
51
  record.wonBlockRoots.add(blockRoot);
52
52
  return toRecord(record);
53
53
  }
54
- hasWon(identity, blockRoot) {
55
- const record = this.getBid(identity.slot, identity.parentBlockHash, identity.parentBlockRoot);
56
- return record !== null && record.blockHash === identity.blockHash && record.wonBlockRoots.has(blockRoot);
57
- }
58
54
  /** Release a winning bid liability only after its payment is known to be reflected in Builder balance. */
59
55
  recordPaymentSettled(identity) {
60
56
  const record = this.getBid(identity.slot, identity.parentBlockHash, identity.parentBlockRoot);
@@ -1 +1 @@
1
- {"version":3,"file":"bidLedger.js","sourceRoot":"","sources":["../../src/services/bidLedger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AA6B9C,MAAM,CAAN,IAAY,kBAMX;AAND,WAAY,kBAAkB;IAC5B,8EAAwD,CAAA;IACxD,sEAAgD,CAAA;IAChD,kEAA4C,CAAA;IAC5C,0EAAoD,CAAA;IACpD,4FAAsE,CAAA;AACxE,CAAC,EANW,kBAAkB,KAAlB,kBAAkB,QAM7B;AA+BD,MAAM,OAAO,cAAe,SAAQ,aAAiC;CAAG;AAExE,MAAM,uBAAuB,GAAG,CAAC,CAAC;AAClC,MAAM,UAAU,GAAG,uBAAuB,GAAG,eAAe,CAAC;AAE7D,sGAAsG;AACtG,MAAM,OAAO,SAAS;IACH,UAAU,GAAG,IAAI,GAAG,EAA6C,CAAC;IAClE,0BAA0B,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC1E,eAAe,GAAG,CAAC,CAAC;IAE5B,YAAY,CAAC,IAAU,EAAE,eAAwB,EAAE,eAAwB;QACzE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,IAAI,KAAK,CAAC;IAC7F,CAAC;IAED,kBAAkB,CAAC,EACjB,IAAI,EACJ,eAAe,EACf,eAAe,GACoD;QACnE,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YAChC,MAAM,IAAI,cAAc,CAAC,EAAC,IAAI,EAAE,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAC,CAAC,CAAC;QAChH,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,cAAc,CACtB,EAAC,IAAI,EAAE,kBAAkB,CAAC,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAC,EAChF,6BAA6B,IAAI,oBAAoB,eAAe,oBAAoB,eAAe,EAAE,CAC1G,CAAC;QACJ,CAAC;IACH,CAAC;IAED,SAAS,CAAC,GAAiB;QACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,cAAc,CACtB,EAAC,IAAI,EAAE,kBAAkB,CAAC,iBAAiB,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAC,EACtE,+BAA+B,GAAG,CAAC,SAAS,EAAE,CAC/C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,EAAC,GAAG,GAAG,EAAE,aAAa,EAAE,IAAI,GAAG,EAAW,EAAE,cAAc,EAAE,KAAK,EAAC,CAAC;QAClF,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,QAA2D,EAAE,SAAkB;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC9F,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC;YAClH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,QAAqB,EAAE,SAAkB;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC9F,OAAO,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3G,CAAC;IAED,0GAA0G;IAC1G,oBAAoB,CAAC,QAAqB;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC9F,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAClG,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;QAC7B,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,SAAS,CAAC,SAAkB,EAAE,SAAkB,EAAE,YAAqB;QACrE,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvE,OAAO,CACL,eAAe,KAAK,SAAS;YAC7B,CAAC,eAAe,CAAC,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,YAAY,KAAK,YAAY,CAAC,CAC3F,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,SAAkB;QAC5B,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACxD,CAAC;IAED,kBAAkB,CAAC,SAAkB;QACnC,OAAO,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,SAAS,IAAI,KAAK,CAAC;IAC5E,CAAC;IAED,YAAY,CAAC,IAAU,EAAE,SAAkB,EAAE,SAAkB,EAAE,YAAqB;QACpF,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,IAAI,eAAe,CAAC,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,YAAY,KAAK,YAAY,EAAE,CAAC;gBAC7F,MAAM,IAAI,cAAc,CACtB;oBACE,IAAI,EAAE,kBAAkB,CAAC,eAAe;oBACxC,SAAS;oBACT,SAAS;oBACT,iBAAiB,EAAE,eAAe,CAAC,SAAS;oBAC5C,YAAY;oBACZ,oBAAoB,EAAE,eAAe,CAAC,YAAY;iBACnD,EACD,iDAAiD,SAAS,iBAAiB,eAAe,CAAC,YAAY,EAAE,CAC1G,CAAC;YACJ,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,EAAE,EAAC,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAC,CAAC,CAAC;IACpG,CAAC;IAED,qBAAqB,CAAC,IAAU,EAAE,SAAkB,EAAE,SAAkB,EAAE,YAAqB;QAC7F,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;QAC5D,MAAM,eAAe,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvE,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YAClC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC;QACnC,CAAC;IACH,CAAC;IAED,qBAAqB,CAAC,YAAmB;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;YACnD,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC1C,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7D,SAAS;gBACX,CAAC;gBAED,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,MAAM,IAAI,cAAc,CACtB,EAAC,IAAI,EAAE,kBAAkB,CAAC,wBAAwB,EAAE,YAAY,EAAC,EACjE,mEAAmE,YAAY,EAAE,CAClF,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,cAAc,CAAC,IAAU;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,WAAiB;QACrB,yEAAyE;QACzE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC;QAChF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClD,IAAI,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACjC,SAAS;YACX,CAAC;YAED,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;oBAC7D,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACxB,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAC3E,IAAI,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;gBAChD,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,MAAM,CAAC,IAAU,EAAE,eAAwB,EAAE,eAAwB;QAC3E,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5F,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,eAAwB,EAAE,eAAwB;IAClE,OAAO,GAAG,eAAe,IAAI,eAAe,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,QAAQ,CAAC,MAA8B;IAC9C,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;KAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"bidLedger.js","sourceRoot":"","sources":["../../src/services/bidLedger.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lodestar/builder",
3
- "version": "1.50.0-dev.11028e782c",
3
+ "version": "1.50.0-dev.1f129c79a1",
4
4
  "description": "A Typescript implementation of the builder client",
5
5
  "author": "ChainSafe Systems",
6
6
  "license": "Apache-2.0",
@@ -48,16 +48,16 @@
48
48
  "dependencies": {
49
49
  "@chainsafe/lodestar-z": "catalog:",
50
50
  "@chainsafe/ssz": "^1.8.0",
51
- "@lodestar/api": "^1.50.0-dev.11028e782c",
52
- "@lodestar/config": "^1.50.0-dev.11028e782c",
53
- "@lodestar/params": "^1.50.0-dev.11028e782c",
54
- "@lodestar/state-transition": "^1.50.0-dev.11028e782c",
55
- "@lodestar/types": "^1.50.0-dev.11028e782c",
56
- "@lodestar/utils": "^1.50.0-dev.11028e782c"
51
+ "@lodestar/api": "^1.50.0-dev.1f129c79a1",
52
+ "@lodestar/config": "^1.50.0-dev.1f129c79a1",
53
+ "@lodestar/params": "^1.50.0-dev.1f129c79a1",
54
+ "@lodestar/state-transition": "^1.50.0-dev.1f129c79a1",
55
+ "@lodestar/types": "^1.50.0-dev.1f129c79a1",
56
+ "@lodestar/utils": "^1.50.0-dev.1f129c79a1"
57
57
  },
58
58
  "devDependencies": {
59
- "@lodestar/logger": "^1.50.0-dev.11028e782c",
60
- "@lodestar/test-utils": "^1.50.0-dev.11028e782c"
59
+ "@lodestar/logger": "^1.50.0-dev.1f129c79a1",
60
+ "@lodestar/test-utils": "^1.50.0-dev.1f129c79a1"
61
61
  },
62
- "gitHead": "120d799d811fd332d64b9f090b440a39ddf4616f"
62
+ "gitHead": "56a698e7fdf2c99a7dd95e1602be9c66521fe94b"
63
63
  }
@@ -128,11 +128,6 @@ export class BidLedger {
128
128
  return toRecord(record);
129
129
  }
130
130
 
131
- hasWon(identity: BidIdentity, blockRoot: RootHex): boolean {
132
- const record = this.getBid(identity.slot, identity.parentBlockHash, identity.parentBlockRoot);
133
- return record !== null && record.blockHash === identity.blockHash && record.wonBlockRoots.has(blockRoot);
134
- }
135
-
136
131
  /** Release a winning bid liability only after its payment is known to be reflected in Builder balance. */
137
132
  recordPaymentSettled(identity: BidIdentity): BidLedgerRecord | null {
138
133
  const record = this.getBid(identity.slot, identity.parentBlockHash, identity.parentBlockRoot);
@@ -1,44 +0,0 @@
1
- import { type ApiClient } from "@lodestar/api";
2
- import { type BuilderIndex, type RootHex, type gloas } from "@lodestar/types";
3
- import { LodestarError } from "@lodestar/utils";
4
- import type { BidIdentity, BidLedger } from "./bidLedger.js";
5
- import type { BuilderSigner } from "./builderSigner.js";
6
- import type { ExecutionPayloadEnvelopeContents } from "./executionPayloadEnvelope.js";
7
- export type EnvelopeSelectionIdentity = BidIdentity & {
8
- blockRoot: RootHex;
9
- };
10
- export type EnvelopePublisherModules = {
11
- api: ApiClient;
12
- signer: BuilderSigner;
13
- ledger: BidLedger;
14
- builderIndex: BuilderIndex;
15
- };
16
- export declare enum EnvelopePublisherErrorCode {
17
- BUILDER_INDEX_MISMATCH = "ENVELOPE_PUBLISHER_ERROR_BUILDER_INDEX_MISMATCH",
18
- SELECTION_NOT_RECORDED = "ENVELOPE_PUBLISHER_ERROR_SELECTION_NOT_RECORDED"
19
- }
20
- export type EnvelopePublisherErrorType = {
21
- code: EnvelopePublisherErrorCode.BUILDER_INDEX_MISMATCH;
22
- builderIndex: BuilderIndex;
23
- envelopeBuilderIndex: BuilderIndex;
24
- } | ({
25
- code: EnvelopePublisherErrorCode.SELECTION_NOT_RECORDED;
26
- } & EnvelopeSelectionIdentity);
27
- export declare class EnvelopePublisherError extends LodestarError<EnvelopePublisherErrorType> {
28
- }
29
- export type EnvelopePublicationResult = {
30
- status: "published";
31
- signedEnvelope: gloas.SignedExecutionPayloadEnvelope;
32
- } | {
33
- status: "duplicate";
34
- };
35
- /** Signs and submits an envelope for a recorded local selection. */
36
- export declare class EnvelopePublisher {
37
- private readonly modules;
38
- private readonly activePublications;
39
- constructor(modules: EnvelopePublisherModules);
40
- publish(contents: ExecutionPayloadEnvelopeContents, signal: AbortSignal): Promise<EnvelopePublicationResult>;
41
- private waitForPublication;
42
- private publishEnvelope;
43
- }
44
- //# sourceMappingURL=envelopePublisher.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelopePublisher.d.ts","sourceRoot":"","sources":["../../src/services/envelopePublisher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,SAAS,EAAS,MAAM,eAAe,CAAC;AACrD,OAAO,EAAC,KAAK,YAAY,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAM,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAC,aAAa,EAAmB,MAAM,iBAAiB,CAAC;AAChE,OAAO,KAAK,EAAC,WAAW,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAC,gCAAgC,EAAC,MAAM,+BAA+B,CAAC;AAEpF,MAAM,MAAM,yBAAyB,GAAG,WAAW,GAAG;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,CAAC;AAE3E,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,SAAS,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,oBAAY,0BAA0B;IACpC,sBAAsB,oDAAoD;IAC1E,sBAAsB,oDAAoD;CAC3E;AAED,MAAM,MAAM,0BAA0B,GAClC;IACE,IAAI,EAAE,0BAA0B,CAAC,sBAAsB,CAAC;IACxD,YAAY,EAAE,YAAY,CAAC;IAC3B,oBAAoB,EAAE,YAAY,CAAC;CACpC,GACD,CAAC;IAAC,IAAI,EAAE,0BAA0B,CAAC,sBAAsB,CAAA;CAAC,GAAG,yBAAyB,CAAC,CAAC;AAE5F,qBAAa,sBAAuB,SAAQ,aAAa,CAAC,0BAA0B,CAAC;CAAG;AAExF,MAAM,MAAM,yBAAyB,GACjC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,KAAK,CAAC,8BAA8B,CAAA;CAAC,GAC3E;IAAC,MAAM,EAAE,WAAW,CAAA;CAAC,CAAC;AAQ1B,oEAAoE;AACpE,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAFpC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAyC;IAE5E,YAA6B,OAAO,EAAE,wBAAwB,EAAI;IAE5D,OAAO,CAAC,QAAQ,EAAE,gCAAgC,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAqDjH;YAEa,kBAAkB;YAyBlB,eAAe;CA0B9B"}
@@ -1,96 +0,0 @@
1
- import { routes } from "@lodestar/api";
2
- import { ssz } from "@lodestar/types";
3
- import { LodestarError, defer, toRootHex } from "@lodestar/utils";
4
- export var EnvelopePublisherErrorCode;
5
- (function (EnvelopePublisherErrorCode) {
6
- EnvelopePublisherErrorCode["BUILDER_INDEX_MISMATCH"] = "ENVELOPE_PUBLISHER_ERROR_BUILDER_INDEX_MISMATCH";
7
- EnvelopePublisherErrorCode["SELECTION_NOT_RECORDED"] = "ENVELOPE_PUBLISHER_ERROR_SELECTION_NOT_RECORDED";
8
- })(EnvelopePublisherErrorCode || (EnvelopePublisherErrorCode = {}));
9
- export class EnvelopePublisherError extends LodestarError {
10
- }
11
- /** Signs and submits an envelope for a recorded local selection. */
12
- export class EnvelopePublisher {
13
- modules;
14
- activePublications = new Map();
15
- constructor(modules) {
16
- this.modules = modules;
17
- }
18
- async publish(contents, signal) {
19
- signal.throwIfAborted();
20
- const { api, builderIndex, ledger, signer } = this.modules;
21
- const { envelope } = contents;
22
- if (envelope.builderIndex !== builderIndex) {
23
- throw new EnvelopePublisherError({
24
- code: EnvelopePublisherErrorCode.BUILDER_INDEX_MISMATCH,
25
- builderIndex,
26
- envelopeBuilderIndex: envelope.builderIndex,
27
- }, `Envelope builder index does not match local builder index builderIndex=${builderIndex} envelopeBuilderIndex=${envelope.builderIndex}`);
28
- }
29
- const identity = {
30
- slot: envelope.payload.slotNumber,
31
- parentBlockHash: toRootHex(envelope.payload.parentHash),
32
- parentBlockRoot: toRootHex(envelope.parentBeaconBlockRoot),
33
- blockHash: toRootHex(envelope.payload.blockHash),
34
- blockRoot: toRootHex(envelope.beaconBlockRoot),
35
- };
36
- if (!ledger.hasWon(identity, identity.blockRoot)) {
37
- throw new EnvelopePublisherError({ code: EnvelopePublisherErrorCode.SELECTION_NOT_RECORDED, ...identity }, `Envelope selection is not recorded slot=${identity.slot} blockRoot=${identity.blockRoot} blockHash=${identity.blockHash}`);
38
- }
39
- const envelopeRoot = toRootHex(ssz.gloas.ExecutionPayloadEnvelope.hashTreeRoot(envelope));
40
- ledger.recordReveal(identity.slot, identity.blockRoot, identity.blockHash, envelopeRoot);
41
- if (ledger.hasPublishedReveal(identity.blockRoot)) {
42
- return { status: "duplicate" };
43
- }
44
- let publication = this.activePublications.get(identity.blockRoot);
45
- if (publication === undefined) {
46
- const controller = new AbortController();
47
- publication = {
48
- controller,
49
- waiters: 0,
50
- promise: this.publishEnvelope(contents, identity, envelopeRoot, api, ledger, signer, controller.signal).finally(() => {
51
- if (this.activePublications.get(identity.blockRoot)?.controller === controller) {
52
- this.activePublications.delete(identity.blockRoot);
53
- }
54
- }),
55
- };
56
- this.activePublications.set(identity.blockRoot, publication);
57
- }
58
- return this.waitForPublication(identity.blockRoot, publication, signal);
59
- }
60
- async waitForPublication(blockRoot, publication, signal) {
61
- const aborted = defer();
62
- const onAbort = () => aborted.reject(signal.reason);
63
- publication.waiters++;
64
- signal.addEventListener("abort", onAbort, { once: true });
65
- if (signal.aborted)
66
- onAbort();
67
- try {
68
- return await Promise.race([publication.promise, aborted.promise]);
69
- }
70
- finally {
71
- signal.removeEventListener("abort", onAbort);
72
- publication.waiters--;
73
- if (publication.waiters === 0 && signal.aborted) {
74
- if (this.activePublications.get(blockRoot) === publication) {
75
- this.activePublications.delete(blockRoot);
76
- }
77
- publication.controller.abort(signal.reason);
78
- }
79
- }
80
- }
81
- async publishEnvelope(contents, identity, envelopeRoot, api, ledger, signer, signal) {
82
- const signedEnvelope = signer.signExecutionPayloadEnvelope(contents.envelope);
83
- const response = await api.beacon.publishExecutionPayloadEnvelope({
84
- signedEnvelopeOrContents: {
85
- signedExecutionPayloadEnvelope: signedEnvelope,
86
- kzgProofs: contents.kzgProofs,
87
- blobs: contents.blobs,
88
- },
89
- broadcastValidation: routes.beacon.BroadcastValidation.gossip,
90
- }, { signal });
91
- response.assertOk();
92
- ledger.recordRevealPublished(identity.slot, identity.blockRoot, identity.blockHash, envelopeRoot);
93
- return { status: "published", signedEnvelope };
94
- }
95
- }
96
- //# sourceMappingURL=envelopePublisher.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"envelopePublisher.js","sourceRoot":"","sources":["../../src/services/envelopePublisher.ts"],"names":[],"mappings":"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"}
@@ -1,154 +0,0 @@
1
- import {type ApiClient, routes} from "@lodestar/api";
2
- import {type BuilderIndex, type RootHex, type gloas, ssz} from "@lodestar/types";
3
- import {LodestarError, defer, toRootHex} from "@lodestar/utils";
4
- import type {BidIdentity, BidLedger} from "./bidLedger.js";
5
- import type {BuilderSigner} from "./builderSigner.js";
6
- import type {ExecutionPayloadEnvelopeContents} from "./executionPayloadEnvelope.js";
7
-
8
- export type EnvelopeSelectionIdentity = BidIdentity & {blockRoot: RootHex};
9
-
10
- export type EnvelopePublisherModules = {
11
- api: ApiClient;
12
- signer: BuilderSigner;
13
- ledger: BidLedger;
14
- builderIndex: BuilderIndex;
15
- };
16
-
17
- export enum EnvelopePublisherErrorCode {
18
- BUILDER_INDEX_MISMATCH = "ENVELOPE_PUBLISHER_ERROR_BUILDER_INDEX_MISMATCH",
19
- SELECTION_NOT_RECORDED = "ENVELOPE_PUBLISHER_ERROR_SELECTION_NOT_RECORDED",
20
- }
21
-
22
- export type EnvelopePublisherErrorType =
23
- | {
24
- code: EnvelopePublisherErrorCode.BUILDER_INDEX_MISMATCH;
25
- builderIndex: BuilderIndex;
26
- envelopeBuilderIndex: BuilderIndex;
27
- }
28
- | ({code: EnvelopePublisherErrorCode.SELECTION_NOT_RECORDED} & EnvelopeSelectionIdentity);
29
-
30
- export class EnvelopePublisherError extends LodestarError<EnvelopePublisherErrorType> {}
31
-
32
- export type EnvelopePublicationResult =
33
- | {status: "published"; signedEnvelope: gloas.SignedExecutionPayloadEnvelope}
34
- | {status: "duplicate"};
35
-
36
- type ActivePublication = {
37
- controller: AbortController;
38
- promise: Promise<EnvelopePublicationResult>;
39
- waiters: number;
40
- };
41
-
42
- /** Signs and submits an envelope for a recorded local selection. */
43
- export class EnvelopePublisher {
44
- private readonly activePublications = new Map<RootHex, ActivePublication>();
45
-
46
- constructor(private readonly modules: EnvelopePublisherModules) {}
47
-
48
- async publish(contents: ExecutionPayloadEnvelopeContents, signal: AbortSignal): Promise<EnvelopePublicationResult> {
49
- signal.throwIfAborted();
50
-
51
- const {api, builderIndex, ledger, signer} = this.modules;
52
- const {envelope} = contents;
53
- if (envelope.builderIndex !== builderIndex) {
54
- throw new EnvelopePublisherError(
55
- {
56
- code: EnvelopePublisherErrorCode.BUILDER_INDEX_MISMATCH,
57
- builderIndex,
58
- envelopeBuilderIndex: envelope.builderIndex,
59
- },
60
- `Envelope builder index does not match local builder index builderIndex=${builderIndex} envelopeBuilderIndex=${envelope.builderIndex}`
61
- );
62
- }
63
-
64
- const identity: EnvelopeSelectionIdentity = {
65
- slot: envelope.payload.slotNumber,
66
- parentBlockHash: toRootHex(envelope.payload.parentHash),
67
- parentBlockRoot: toRootHex(envelope.parentBeaconBlockRoot),
68
- blockHash: toRootHex(envelope.payload.blockHash),
69
- blockRoot: toRootHex(envelope.beaconBlockRoot),
70
- };
71
- if (!ledger.hasWon(identity, identity.blockRoot)) {
72
- throw new EnvelopePublisherError(
73
- {code: EnvelopePublisherErrorCode.SELECTION_NOT_RECORDED, ...identity},
74
- `Envelope selection is not recorded slot=${identity.slot} blockRoot=${identity.blockRoot} blockHash=${identity.blockHash}`
75
- );
76
- }
77
-
78
- const envelopeRoot = toRootHex(ssz.gloas.ExecutionPayloadEnvelope.hashTreeRoot(envelope));
79
- ledger.recordReveal(identity.slot, identity.blockRoot, identity.blockHash, envelopeRoot);
80
- if (ledger.hasPublishedReveal(identity.blockRoot)) {
81
- return {status: "duplicate"};
82
- }
83
-
84
- let publication = this.activePublications.get(identity.blockRoot);
85
- if (publication === undefined) {
86
- const controller = new AbortController();
87
- publication = {
88
- controller,
89
- waiters: 0,
90
- promise: this.publishEnvelope(contents, identity, envelopeRoot, api, ledger, signer, controller.signal).finally(
91
- () => {
92
- if (this.activePublications.get(identity.blockRoot)?.controller === controller) {
93
- this.activePublications.delete(identity.blockRoot);
94
- }
95
- }
96
- ),
97
- };
98
- this.activePublications.set(identity.blockRoot, publication);
99
- }
100
- return this.waitForPublication(identity.blockRoot, publication, signal);
101
- }
102
-
103
- private async waitForPublication(
104
- blockRoot: RootHex,
105
- publication: ActivePublication,
106
- signal: AbortSignal
107
- ): Promise<EnvelopePublicationResult> {
108
- const aborted = defer<never>();
109
- const onAbort = (): void => aborted.reject(signal.reason);
110
- publication.waiters++;
111
- signal.addEventListener("abort", onAbort, {once: true});
112
- if (signal.aborted) onAbort();
113
-
114
- try {
115
- return await Promise.race([publication.promise, aborted.promise]);
116
- } finally {
117
- signal.removeEventListener("abort", onAbort);
118
- publication.waiters--;
119
- if (publication.waiters === 0 && signal.aborted) {
120
- if (this.activePublications.get(blockRoot) === publication) {
121
- this.activePublications.delete(blockRoot);
122
- }
123
- publication.controller.abort(signal.reason);
124
- }
125
- }
126
- }
127
-
128
- private async publishEnvelope(
129
- contents: ExecutionPayloadEnvelopeContents,
130
- identity: EnvelopeSelectionIdentity,
131
- envelopeRoot: RootHex,
132
- api: ApiClient,
133
- ledger: BidLedger,
134
- signer: BuilderSigner,
135
- signal: AbortSignal
136
- ): Promise<EnvelopePublicationResult> {
137
- const signedEnvelope = signer.signExecutionPayloadEnvelope(contents.envelope);
138
-
139
- const response = await api.beacon.publishExecutionPayloadEnvelope(
140
- {
141
- signedEnvelopeOrContents: {
142
- signedExecutionPayloadEnvelope: signedEnvelope,
143
- kzgProofs: contents.kzgProofs,
144
- blobs: contents.blobs,
145
- },
146
- broadcastValidation: routes.beacon.BroadcastValidation.gossip,
147
- },
148
- {signal}
149
- );
150
- response.assertOk();
151
- ledger.recordRevealPublished(identity.slot, identity.blockRoot, identity.blockHash, envelopeRoot);
152
- return {status: "published", signedEnvelope};
153
- }
154
- }