@lodestar/api 1.17.0-dev.eeaa7dabf3 → 1.17.0-dev.f47cc18b9c

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.
@@ -6,14 +6,17 @@ import { RoutesData, ReturnTypes } from "../../../utils/index.js";
6
6
  import * as block from "./block.js";
7
7
  import * as pool from "./pool.js";
8
8
  import * as state from "./state.js";
9
+ import * as rewards from "./rewards.js";
9
10
  export * as block from "./block.js";
10
11
  export * as pool from "./pool.js";
11
12
  export * as state from "./state.js";
13
+ export * as rewards from "./rewards.js";
12
14
  export { BroadcastValidation } from "./block.js";
13
15
  export type { BlockId, BlockHeaderResponse } from "./block.js";
14
16
  export type { AttestationFilters } from "./pool.js";
17
+ export type { BlockRewards } from "./rewards.js";
15
18
  export type { StateId, ValidatorId, ValidatorStatus, ValidatorFilters, CommitteesFilters, FinalityCheckpoints, ValidatorResponse, ValidatorBalance, EpochCommitteeResponse, EpochSyncCommitteeResponse, } from "./state.js";
16
- export type Api = block.Api & pool.Api & state.Api & {
19
+ export type Api = block.Api & pool.Api & state.Api & rewards.Api & {
17
20
  getGenesis(): Promise<ApiClientResponse<{
18
21
  [HttpStatusCode.OK]: {
19
22
  data: phase0.Genesis;
@@ -25,6 +28,16 @@ export type ReqTypes = {
25
28
  [K in keyof ReturnType<typeof getReqSerializers>]: ReturnType<ReturnType<typeof getReqSerializers>[K]["writeReq"]>;
26
29
  };
27
30
  export declare function getReqSerializers(config: ChainForkConfig): {
31
+ getBlockRewards: import("../../../utils/types.js").ReqSerializer<(blockId: block.BlockId) => Promise<ApiClientResponse<{
32
+ 200: {
33
+ data: rewards.BlockRewards;
34
+ executionOptimistic: boolean;
35
+ };
36
+ }, HttpStatusCode.BAD_REQUEST | HttpStatusCode.NOT_FOUND>>, {
37
+ params: {
38
+ block_id: string;
39
+ };
40
+ }>;
28
41
  getStateRoot: import("../../../utils/types.js").ReqSerializer<(stateId: state.StateId) => Promise<ApiClientResponse<{
29
42
  200: {
30
43
  data: {
@@ -4,18 +4,21 @@ import { reqEmpty, ContainerData } from "../../../utils/index.js";
4
4
  import * as block from "./block.js";
5
5
  import * as pool from "./pool.js";
6
6
  import * as state from "./state.js";
7
+ import * as rewards from "./rewards.js";
7
8
  // See /packages/api/src/routes/index.ts for reasoning and instructions to add new routes
8
9
  // NOTE: We choose to split the block, pool, and state namespaces so the files are not too big.
9
10
  // However, for a consumer all these methods are within the same service "beacon"
10
11
  export * as block from "./block.js";
11
12
  export * as pool from "./pool.js";
12
13
  export * as state from "./state.js";
14
+ export * as rewards from "./rewards.js";
13
15
  export { BroadcastValidation } from "./block.js";
14
16
  export const routesData = {
15
17
  getGenesis: { url: "/eth/v1/beacon/genesis", method: "GET" },
16
18
  ...block.routesData,
17
19
  ...pool.routesData,
18
20
  ...state.routesData,
21
+ ...rewards.routesData,
19
22
  };
20
23
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
21
24
  export function getReqSerializers(config) {
@@ -24,6 +27,7 @@ export function getReqSerializers(config) {
24
27
  ...block.getReqSerializers(config),
25
28
  ...pool.getReqSerializers(),
26
29
  ...state.getReqSerializers(),
30
+ ...rewards.getReqSerializers(),
27
31
  };
28
32
  }
29
33
  export function getReturnTypes() {
@@ -32,6 +36,7 @@ export function getReturnTypes() {
32
36
  ...block.getReturnTypes(),
33
37
  ...pool.getReturnTypes(),
34
38
  ...state.getReturnTypes(),
39
+ ...rewards.getReturnTypes(),
35
40
  };
36
41
  }
37
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAA0B,QAAQ,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,yFAAyF;AAEzF,+FAA+F;AAC/F,iFAAiF;AAEjF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAuB/C,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,UAAU,EAAE,EAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,KAAK,EAAC;IAC1D,GAAG,KAAK,CAAC,UAAU;IACnB,GAAG,IAAI,CAAC,UAAU;IAClB,GAAG,KAAK,CAAC,UAAU;CACpB,CAAC;AAMF,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAClC,GAAG,IAAI,CAAC,iBAAiB,EAAE;QAC3B,GAAG,KAAK,CAAC,iBAAiB,EAAE;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7C,GAAG,KAAK,CAAC,cAAc,EAAE;QACzB,GAAG,IAAI,CAAC,cAAc,EAAE;QACxB,GAAG,KAAK,CAAC,cAAc,EAAE;KAC1B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,GAAG,EAAC,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AACvE,OAAO,EAA0B,QAAQ,EAAE,aAAa,EAAC,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,yFAAyF;AAEzF,+FAA+F;AAC/F,iFAAiF;AAEjF,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAyB/C,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,UAAU,EAAE,EAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,KAAK,EAAC;IAC1D,GAAG,KAAK,CAAC,UAAU;IACnB,GAAG,IAAI,CAAC,UAAU;IAClB,GAAG,KAAK,CAAC,UAAU;IACnB,GAAG,OAAO,CAAC,UAAU;CACtB,CAAC;AAMF,4EAA4E;AAC5E,MAAM,UAAU,iBAAiB,CAAC,MAAuB;IACvD,OAAO;QACL,UAAU,EAAE,QAAQ;QACpB,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAClC,GAAG,IAAI,CAAC,iBAAiB,EAAE;QAC3B,GAAG,KAAK,CAAC,iBAAiB,EAAE;QAC5B,GAAG,OAAO,CAAC,iBAAiB,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7C,GAAG,KAAK,CAAC,cAAc,EAAE;QACzB,GAAG,IAAI,CAAC,cAAc,EAAE;QACxB,GAAG,KAAK,CAAC,cAAc,EAAE;QACzB,GAAG,OAAO,CAAC,cAAc,EAAE;KAC5B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { ValidatorIndex } from "@lodestar/types";
2
+ import { RoutesData, ReturnTypes, ReqSerializers } from "../../../utils/index.js";
3
+ import { HttpStatusCode } from "../../../utils/client/httpStatusCode.js";
4
+ import { ApiClientResponse } from "../../../interfaces.js";
5
+ import { BlockId } from "./block.js";
6
+ /**
7
+ * True if the response references an unverified execution payload. Optimistic information may be invalidated at
8
+ * a later time. If the field is not present, assume the False value.
9
+ */
10
+ export type ExecutionOptimistic = boolean;
11
+ /**
12
+ * Rewards info for a single block. Every reward value is in Gwei.
13
+ */
14
+ export type BlockRewards = {
15
+ /** Proposer of the block, the proposer index who receives these rewards */
16
+ proposerIndex: ValidatorIndex;
17
+ /** Total block reward, equal to attestations + sync_aggregate + proposer_slashings + attester_slashings */
18
+ total: number;
19
+ /** Block reward component due to included attestations */
20
+ attestations: number;
21
+ /** Block reward component due to included sync_aggregate */
22
+ syncAggregate: number;
23
+ /** Block reward component due to included proposer_slashings */
24
+ proposerSlashings: number;
25
+ /** Block reward component due to included attester_slashings */
26
+ attesterSlashings: number;
27
+ };
28
+ export type Api = {
29
+ /**
30
+ * Get block rewards
31
+ * Returns the info of rewards received by the block proposer
32
+ *
33
+ * @param blockId Block identifier.
34
+ * Can be one of: "head" (canonical head in node's view), "genesis", "finalized", \<slot\>, \<hex encoded blockRoot with 0x prefix\>.
35
+ */
36
+ getBlockRewards(blockId: BlockId): Promise<ApiClientResponse<{
37
+ [HttpStatusCode.OK]: {
38
+ data: BlockRewards;
39
+ executionOptimistic: ExecutionOptimistic;
40
+ };
41
+ }, HttpStatusCode.BAD_REQUEST | HttpStatusCode.NOT_FOUND>>;
42
+ };
43
+ /**
44
+ * Define javascript values for each route
45
+ */
46
+ export declare const routesData: RoutesData<Api>;
47
+ export type ReqTypes = {
48
+ getBlockRewards: {
49
+ params: {
50
+ block_id: string;
51
+ };
52
+ };
53
+ };
54
+ export declare function getReqSerializers(): ReqSerializers<Api, ReqTypes>;
55
+ export declare function getReturnTypes(): ReturnTypes<Api>;
56
+ //# sourceMappingURL=rewards.d.ts.map
@@ -0,0 +1,33 @@
1
+ import { ContainerType } from "@chainsafe/ssz";
2
+ import { ssz } from "@lodestar/types";
3
+ import { Schema, ContainerDataExecutionOptimistic, } from "../../../utils/index.js";
4
+ import { HttpStatusCode } from "../../../utils/client/httpStatusCode.js";
5
+ /**
6
+ * Define javascript values for each route
7
+ */
8
+ export const routesData = {
9
+ getBlockRewards: { url: "/eth/v1/beacon/rewards/blocks/{block_id}", method: "GET" },
10
+ };
11
+ export function getReqSerializers() {
12
+ return {
13
+ getBlockRewards: {
14
+ writeReq: (block_id) => ({ params: { block_id: String(block_id) } }),
15
+ parseReq: ({ params }) => [params.block_id],
16
+ schema: { params: { block_id: Schema.StringRequired } },
17
+ },
18
+ };
19
+ }
20
+ export function getReturnTypes() {
21
+ const BlockRewardsResponse = new ContainerType({
22
+ proposerIndex: ssz.ValidatorIndex,
23
+ total: ssz.UintNum64,
24
+ attestations: ssz.UintNum64,
25
+ syncAggregate: ssz.UintNum64,
26
+ proposerSlashings: ssz.UintNum64,
27
+ attesterSlashings: ssz.UintNum64,
28
+ }, { jsonCase: "eth2" });
29
+ return {
30
+ getBlockRewards: ContainerDataExecutionOptimistic(BlockRewardsResponse),
31
+ };
32
+ }
33
+ //# sourceMappingURL=rewards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rewards.js","sourceRoot":"","sources":["../../../../src/beacon/routes/beacon/rewards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,GAAG,EAAiB,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAGL,MAAM,EAEN,gCAAgC,GACjC,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAgDvE;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAoB;IACzC,eAAe,EAAE,EAAC,GAAG,EAAE,0CAA0C,EAAE,MAAM,EAAE,KAAK,EAAC;CAClF,CAAC;AAOF,MAAM,UAAU,iBAAiB;IAC/B,OAAO;QACL,eAAe,EAAE;YACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAC,EAAC,CAAC;YAChE,QAAQ,EAAE,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YACzC,MAAM,EAAE,EAAC,MAAM,EAAE,EAAC,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAC,EAAC;SACpD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,oBAAoB,GAAG,IAAI,aAAa,CAC5C;QACE,aAAa,EAAE,GAAG,CAAC,cAAc;QACjC,KAAK,EAAE,GAAG,CAAC,SAAS;QACpB,YAAY,EAAE,GAAG,CAAC,SAAS;QAC3B,aAAa,EAAE,GAAG,CAAC,SAAS;QAC5B,iBAAiB,EAAE,GAAG,CAAC,SAAS;QAChC,iBAAiB,EAAE,GAAG,CAAC,SAAS;KACjC,EACD,EAAC,QAAQ,EAAE,MAAM,EAAC,CACnB,CAAC;IAEF,OAAO;QACL,eAAe,EAAE,gCAAgC,CAAC,oBAAoB,CAAC;KACxE,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "bugs": {
12
12
  "url": "https://github.com/ChainSafe/lodestar/issues"
13
13
  },
14
- "version": "1.17.0-dev.eeaa7dabf3",
14
+ "version": "1.17.0-dev.f47cc18b9c",
15
15
  "type": "module",
16
16
  "exports": {
17
17
  ".": {
@@ -69,10 +69,10 @@
69
69
  "dependencies": {
70
70
  "@chainsafe/persistent-merkle-tree": "^0.6.1",
71
71
  "@chainsafe/ssz": "^0.14.0",
72
- "@lodestar/config": "1.17.0-dev.eeaa7dabf3",
73
- "@lodestar/params": "1.17.0-dev.eeaa7dabf3",
74
- "@lodestar/types": "1.17.0-dev.eeaa7dabf3",
75
- "@lodestar/utils": "1.17.0-dev.eeaa7dabf3",
72
+ "@lodestar/config": "1.17.0-dev.f47cc18b9c",
73
+ "@lodestar/params": "1.17.0-dev.f47cc18b9c",
74
+ "@lodestar/types": "1.17.0-dev.f47cc18b9c",
75
+ "@lodestar/utils": "1.17.0-dev.f47cc18b9c",
76
76
  "eventsource": "^2.0.2",
77
77
  "qs": "^6.11.1"
78
78
  },
@@ -89,5 +89,5 @@
89
89
  "api",
90
90
  "blockchain"
91
91
  ],
92
- "gitHead": "f383403044d1fe10f610040631e01f31f2131490"
92
+ "gitHead": "ffe416684827a3624af0b16d40696707e773f07a"
93
93
  }