Skip to content

Commit c4a201f

Browse files
authored
feat: add GenerateClaimProofBulk rpc (#58)
Add a new GenerateClaimProofBulk rpc. It's similar to GenerateClaimProof, but it takes in multiple earnerToTokens
2 parents 02e09fc + b100476 commit c4a201f

File tree

11 files changed

+995
-477
lines changed

11 files changed

+995
-477
lines changed

gen/api-ts/eigenlayer/sidecar/v1/rewards/rewards.pb.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,23 @@ export type GenerateClaimProofResponse = {
125125
proof?: EigenlayerSidecarV1RewardsCommon.Proof
126126
}
127127

128+
export type EarnerToTokens = {
129+
earnerAddress?: string
130+
tokens?: string[]
131+
}
132+
133+
134+
type BaseGenerateClaimProofBulkRequest = {
135+
earnerToTokens?: EarnerToTokens[]
136+
}
137+
138+
export type GenerateClaimProofBulkRequest = BaseGenerateClaimProofBulkRequest
139+
& OneOf<{ rootIndex: GoogleProtobufWrappers.Int64Value }>
140+
141+
export type GenerateClaimProofBulkResponse = {
142+
proofs?: EigenlayerSidecarV1RewardsCommon.Proof[]
143+
}
144+
128145
export type GetClaimableRewardsRequest = {
129146
earnerAddress?: string
130147
blockHeight?: string

gen/api-ts/eigenlayer/sidecar/v1/rewards/rpc.pb.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ export class Rewards {
4040
static GenerateClaimProof(req: EigenlayerSidecarV1RewardsRewards.GenerateClaimProofRequest, initReq?: fm.InitReq): Promise<EigenlayerSidecarV1RewardsRewards.GenerateClaimProofResponse> {
4141
return fm.fetchReq<EigenlayerSidecarV1RewardsRewards.GenerateClaimProofRequest, EigenlayerSidecarV1RewardsRewards.GenerateClaimProofResponse>(`/rewards/v1/claim-proof`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)})
4242
}
43+
static GenerateClaimProofBulk(req: EigenlayerSidecarV1RewardsRewards.GenerateClaimProofBulkRequest, initReq?: fm.InitReq): Promise<EigenlayerSidecarV1RewardsRewards.GenerateClaimProofBulkResponse> {
44+
return fm.fetchReq<EigenlayerSidecarV1RewardsRewards.GenerateClaimProofBulkRequest, EigenlayerSidecarV1RewardsRewards.GenerateClaimProofBulkResponse>(`/rewards/v1/claim-proof-bulk`, {...initReq, method: "POST", body: JSON.stringify(req, fm.replacer)})
45+
}
4346
static GetClaimableRewards(req: EigenlayerSidecarV1RewardsRewards.GetClaimableRewardsRequest, initReq?: fm.InitReq): Promise<EigenlayerSidecarV1RewardsRewards.GetClaimableRewardsResponse> {
4447
return fm.fetchReq<EigenlayerSidecarV1RewardsRewards.GetClaimableRewardsRequest, EigenlayerSidecarV1RewardsRewards.GetClaimableRewardsResponse>(`/rewards/v1/earners/${req["earnerAddress"]}/claimable-rewards?${fm.renderURLSearchParams(req, ["earnerAddress"])}`, {...initReq, method: "GET"})
4548
}

gen/openapi/api.public.swagger.json

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -599,6 +599,54 @@
599599
]
600600
}
601601
},
602+
"/rewards/v1/claim-proof-bulk": {
603+
"post": {
604+
"summary": "GenerateClaimProofBulk",
605+
"description": "GenerateClaimProofBulk generates proofs for multiple earner addresses and their tokens for claiming\ntokens against the RewardsCoordinator",
606+
"operationId": "Rewards_GenerateClaimProofBulk",
607+
"requestBody": {
608+
"required": true,
609+
"content": {
610+
"application/json": {
611+
"schema": {
612+
"type": "object",
613+
"properties": {
614+
"earnerToTokens": {
615+
"$ref": "#/components/schemas/EarnerToTokens"
616+
},
617+
"rootIndex": {
618+
"$ref": "#/components/schemas/Int64Value"
619+
}
620+
},
621+
"required": [
622+
"root_index"
623+
]
624+
}
625+
}
626+
}
627+
},
628+
"responses": {
629+
"200": {
630+
"description": "Successful response",
631+
"content": {
632+
"application/json": {
633+
"schema": {
634+
"type": "object",
635+
"properties": {
636+
"proofs": {
637+
"$ref": "#/components/schemas/Proof"
638+
}
639+
}
640+
}
641+
}
642+
}
643+
}
644+
},
645+
"tags": [
646+
"rewards"
647+
]
648+
}
649+
},
602650
"/rewards/v1/distribution-roots": {
603651
"get": {
604652
"summary": "ListDistributionRoots",
@@ -1333,6 +1381,17 @@
13331381
}
13341382
}
13351383
},
1384+
"EarnerToTokens": {
1385+
"type": "object",
1386+
"properties": {
1387+
"earnerAddress": {
1388+
"type": "string"
1389+
},
1390+
"tokens": {
1391+
"type": "string"
1392+
}
1393+
}
1394+
},
13361395
"EigenStateChange": {
13371396
"type": "object",
13381397
"properties": {
@@ -1456,6 +1515,28 @@
14561515
"transaction_metadata"
14571516
]
14581517
},
1518+
"GenerateClaimProofBulkRequest": {
1519+
"type": "object",
1520+
"properties": {
1521+
"earnerToTokens": {
1522+
"$ref": "#/components/schemas/EarnerToTokens"
1523+
},
1524+
"rootIndex": {
1525+
"$ref": "#/components/schemas/Int64Value"
1526+
}
1527+
},
1528+
"required": [
1529+
"root_index"
1530+
]
1531+
},
1532+
"GenerateClaimProofBulkResponse": {
1533+
"type": "object",
1534+
"properties": {
1535+
"proofs": {
1536+
"$ref": "#/components/schemas/Proof"
1537+
}
1538+
}
1539+
},
14591540
"GenerateClaimProofRequest": {
14601541
"type": "object",
14611542
"properties": {

gen/openapi/api.swagger.json

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,54 @@
10001000
]
10011001
}
10021002
},
1003+
"/rewards/v1/claim-proof-bulk": {
1004+
"post": {
1005+
"summary": "GenerateClaimProofBulk",
1006+
"description": "GenerateClaimProofBulk generates proofs for multiple earner addresses and their tokens for claiming\ntokens against the RewardsCoordinator",
1007+
"operationId": "Rewards_GenerateClaimProofBulk",
1008+
"requestBody": {
1009+
"required": true,
1010+
"content": {
1011+
"application/json": {
1012+
"schema": {
1013+
"type": "object",
1014+
"properties": {
1015+
"earnerToTokens": {
1016+
"$ref": "#/components/schemas/EarnerToTokens"
1017+
},
1018+
"rootIndex": {
1019+
"$ref": "#/components/schemas/Int64Value"
1020+
}
1021+
},
1022+
"required": [
1023+
"root_index"
1024+
]
1025+
}
1026+
}
1027+
}
1028+
},
1029+
"responses": {
1030+
"200": {
1031+
"description": "Successful response",
1032+
"content": {
1033+
"application/json": {
1034+
"schema": {
1035+
"type": "object",
1036+
"properties": {
1037+
"proofs": {
1038+
"$ref": "#/components/schemas/Proof"
1039+
}
1040+
}
1041+
}
1042+
}
1043+
}
1044+
}
1045+
},
1046+
"tags": [
1047+
"rewards"
1048+
]
1049+
}
1050+
},
10031051
"/rewards/v1/distribution-roots": {
10041052
"get": {
10051053
"summary": "ListDistributionRoots",
@@ -2388,6 +2436,17 @@
23882436
}
23892437
}
23902438
},
2439+
"EarnerToTokens": {
2440+
"type": "object",
2441+
"properties": {
2442+
"earnerAddress": {
2443+
"type": "string"
2444+
},
2445+
"tokens": {
2446+
"type": "string"
2447+
}
2448+
}
2449+
},
23912450
"EigenStateChange": {
23922451
"type": "object",
23932452
"properties": {
@@ -2511,6 +2570,28 @@
25112570
"transaction_metadata"
25122571
]
25132572
},
2573+
"GenerateClaimProofBulkRequest": {
2574+
"type": "object",
2575+
"properties": {
2576+
"earnerToTokens": {
2577+
"$ref": "#/components/schemas/EarnerToTokens"
2578+
},
2579+
"rootIndex": {
2580+
"$ref": "#/components/schemas/Int64Value"
2581+
}
2582+
},
2583+
"required": [
2584+
"root_index"
2585+
]
2586+
},
2587+
"GenerateClaimProofBulkResponse": {
2588+
"type": "object",
2589+
"properties": {
2590+
"proofs": {
2591+
"$ref": "#/components/schemas/Proof"
2592+
}
2593+
}
2594+
},
25142595
"GenerateClaimProofRequest": {
25152596
"type": "object",
25162597
"properties": {

0 commit comments

Comments
 (0)