Skip to content

Commit aed849e

Browse files
jtragliaavalonche0xTylerHolmes
authored
Add support for Electra (#651)
* Replace go-*-client deps with electra forks * Add processElectraPayload * Run make fmt * Replace Exits with WithdrawRequests * Rename WithdrawRequest to WithdrawalRequest * Run go mod tidy * Use go-*-client@electra * Upgrade go-eth2-client * update deps * Add t.Helper() call * Add back nolint comment * Replace attestantio/go-*-client deps * Fix accidental change * Update go-boost-utils * Update go-eth2-client for alpha.7 support * Fix mistake * Update & reverse payload decoding order * Revert decoding order & add replacements * Update go-eth2-client * Update go-builder-client * Modify processElectraPayload to use a channel (#704) * server: refactor processElectraPayload (#703) * Update go-eth2-client to latest electra commit * Remove nolint:canonicalheader comments * Disable canonicalheader linter --------- Co-authored-by: avalonche <[email protected]> Co-authored-by: Tyler <[email protected]>
1 parent c390601 commit aed849e

File tree

8 files changed

+379
-43
lines changed

8 files changed

+379
-43
lines changed

.golangci.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
linters:
22
enable-all: true
33
disable:
4+
- canonicalheader
5+
- depguard
46
- dupl
57
- exhaustruct
68
- funlen
@@ -11,15 +13,14 @@ linters:
1113
- godox
1214
- lll
1315
- mnd
16+
- musttag
1417
- nlreturn
1518
- nonamedreturns
1619
- paralleltest
1720
- testpackage
1821
- varnamelen
1922
- wrapcheck
2023
- wsl
21-
- musttag
22-
- depguard
2324

2425
#
2526
# Maybe fix later:
@@ -61,6 +62,10 @@ linters-settings:
6162
disable:
6263
- fieldalignment
6364
- shadow
65+
gomoddirectives:
66+
replace-allow-list:
67+
- github.com/attestantio/go-builder-client
68+
- github.com/attestantio/go-eth2-client
6469

6570
output:
6671
print-issued-lines: true

go.mod

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
module github.com/flashbots/mev-boost
22

3-
go 1.21
3+
go 1.22
44

55
require (
6-
github.com/ethereum/go-ethereum v1.14.7
7-
github.com/flashbots/go-boost-utils v1.8.1
6+
github.com/ethereum/go-ethereum v1.14.9
7+
github.com/flashbots/go-boost-utils v1.8.2-0.20241014214143-c3fca3d69760
88
github.com/flashbots/go-utils v0.5.0
99
github.com/google/uuid v1.6.0
1010
github.com/gorilla/mux v1.8.1
@@ -18,22 +18,22 @@ require (
1818
require (
1919
github.com/DataDog/zstd v1.5.2 // indirect
2020
github.com/beorn7/perks v1.0.1 // indirect
21-
github.com/bits-and-blooms/bitset v1.10.0 // indirect
21+
github.com/bits-and-blooms/bitset v1.13.0 // indirect
2222
github.com/cockroachdb/errors v1.11.3 // indirect
2323
github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce // indirect
2424
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect
25-
github.com/cockroachdb/pebble v1.1.1 // indirect
25+
github.com/cockroachdb/pebble v1.1.2 // indirect
2626
github.com/cockroachdb/redact v1.1.5 // indirect
2727
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
2828
github.com/consensys/bavard v0.1.13 // indirect
2929
github.com/consensys/gnark-crypto v0.12.1 // indirect
3030
github.com/crate-crypto/go-ipa v0.0.0-20240223125850-b1e8a79f509c // indirect
3131
github.com/crate-crypto/go-kzg-4844 v1.0.0 // indirect
3232
github.com/ethereum/c-kzg-4844 v1.0.0 // indirect
33-
github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 // indirect
33+
github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 // indirect
3434
github.com/fatih/color v1.16.0 // indirect
3535
github.com/getsentry/sentry-go v0.27.0 // indirect
36-
github.com/goccy/go-yaml v1.11.2 // indirect
36+
github.com/goccy/go-yaml v1.11.3 // indirect
3737
github.com/gofrs/flock v0.8.1 // indirect
3838
github.com/gogo/protobuf v1.3.2 // indirect
3939
github.com/golang/protobuf v1.5.4 // indirect
@@ -56,16 +56,16 @@ require (
5656
golang.org/x/sync v0.7.0 // indirect
5757
golang.org/x/text v0.15.0 // indirect
5858
golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028 // indirect
59-
google.golang.org/protobuf v1.33.0 // indirect
59+
google.golang.org/protobuf v1.34.2 // indirect
6060
rsc.io/tmplfunc v0.0.3 // indirect
6161
)
6262

6363
require (
6464
github.com/StackExchange/wmi v1.2.1 // indirect
65-
github.com/attestantio/go-builder-client v0.4.5
66-
github.com/attestantio/go-eth2-client v0.21.7
65+
github.com/attestantio/go-builder-client v0.5.1-0.20241014215920-ba44f1de4249
66+
github.com/attestantio/go-eth2-client v0.22.1-0.20250106164842-07b6ce39bb43
6767
github.com/btcsuite/btcd v0.22.0-beta // indirect
68-
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
68+
github.com/btcsuite/btcd/btcec/v2 v2.3.4 // indirect
6969
github.com/cespare/xxhash/v2 v2.3.0 // indirect
7070
github.com/davecgh/go-spew v1.1.1 // indirect
7171
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect
@@ -86,7 +86,7 @@ require (
8686
go.uber.org/multierr v1.11.0 // indirect
8787
go.uber.org/zap v1.25.0 // indirect
8888
golang.org/x/crypto v0.23.0 // indirect
89-
golang.org/x/sys v0.20.0 // indirect
89+
golang.org/x/sys v0.22.0 // indirect
9090
gopkg.in/yaml.v2 v2.4.0 // indirect
9191
gopkg.in/yaml.v3 v3.0.1 // indirect
9292
)

go.sum

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9
55
github.com/VictoriaMetrics/fastcache v1.12.2 h1:N0y9ASrJ0F6h0QaC3o6uJb3NIZ9VKLjCM7NQbSmF7WI=
66
github.com/VictoriaMetrics/fastcache v1.12.2/go.mod h1:AmC+Nzz1+3G2eCPapF6UcsnkThDcMsQicp4xDukwJYI=
77
github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII=
8-
github.com/attestantio/go-builder-client v0.4.5 h1:L11DGcQbMMNNYLJyme2aLeruNK3lXZ7M9QzvpoMPNPs=
9-
github.com/attestantio/go-builder-client v0.4.5/go.mod h1:ZMmatuguvfy/JRHF8eFUy9RQgkHzdslCCVMofiywRkE=
10-
github.com/attestantio/go-eth2-client v0.21.7 h1:tdTJWiOJUCDmYSDt5C8D8+N5Hxfos0yLp+iVT7tKWMk=
11-
github.com/attestantio/go-eth2-client v0.21.7/go.mod h1:d7ZPNrMX8jLfIgML5u7QZxFo2AukLM+5m08iMaLdqb8=
8+
github.com/attestantio/go-builder-client v0.5.1-0.20241014215920-ba44f1de4249 h1:y01TZYnM3DDb3nkqA3VaoiqKuWWAgLIfrm63XOQJsFc=
9+
github.com/attestantio/go-builder-client v0.5.1-0.20241014215920-ba44f1de4249/go.mod h1:X31JAUL4q6cY/OGClpBQcwFN7FBixt6Wjrqy7RrlhEc=
10+
github.com/attestantio/go-eth2-client v0.22.1-0.20250106164842-07b6ce39bb43 h1:lORlCOleRXvVt3H7fan64UaYAK4FJDHdy19uYfe7FKQ=
11+
github.com/attestantio/go-eth2-client v0.22.1-0.20250106164842-07b6ce39bb43/go.mod h1:vy5jU/uDZ2+RcVzq5BfnG+bQ3/6uu9DGwCrGsPtjJ1A=
1212
github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
1313
github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
1414
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
1515
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
16-
github.com/bits-and-blooms/bitset v1.10.0 h1:ePXTeiPEazB5+opbv5fr8umg2R/1NlzgDsyepwsSr88=
17-
github.com/bits-and-blooms/bitset v1.10.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
16+
github.com/bits-and-blooms/bitset v1.13.0 h1:bAQ9OPNFYbGHV6Nez0tmNI0RiEu7/hxlYJRUA0wFAVE=
17+
github.com/bits-and-blooms/bitset v1.13.0/go.mod h1:7hO7Gc7Pp1vODcmWvKMRA9BNmbv6a/7QIWpPxHddWR8=
1818
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
1919
github.com/btcsuite/btcd v0.22.0-beta h1:LTDpDKUM5EeOFBPM8IXpinEcmZ6FWfNZbE3lfrfdnWo=
2020
github.com/btcsuite/btcd v0.22.0-beta/go.mod h1:9n5ntfhhHQBIhUvlhDvD3Qg6fRUj4jkN0VB8L8svzOA=
21-
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
22-
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
21+
github.com/btcsuite/btcd/btcec/v2 v2.3.4 h1:3EJjcN70HCu/mwqlUsGK8GcNVyLVxFDlWurTXGPFfiQ=
22+
github.com/btcsuite/btcd/btcec/v2 v2.3.4/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
2323
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
2424
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
2525
github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce/go.mod h1:0DVlHczLPewLcPGEIeUEzfOJhqGPQ0mJJRDBtD307+o=
@@ -40,8 +40,8 @@ github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/e
4040
github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce/go.mod h1:9/y3cnZ5GKakj/H4y9r9GTjCvAFta7KLgSHPJJYc52M=
4141
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE=
4242
github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs=
43-
github.com/cockroachdb/pebble v1.1.1 h1:XnKU22oiCLy2Xn8vp1re67cXg4SAasg/WDt1NtcRFaw=
44-
github.com/cockroachdb/pebble v1.1.1/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU=
43+
github.com/cockroachdb/pebble v1.1.2 h1:CUh2IPtR4swHlEj48Rhfzw6l/d0qA31fItcIszQVIsA=
44+
github.com/cockroachdb/pebble v1.1.2/go.mod h1:4exszw1r40423ZsmkG/09AFEG83I0uDgfujJdbL6kYU=
4545
github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30=
4646
github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg=
4747
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo=
@@ -66,16 +66,16 @@ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0/go.mod h1:v57UDF4pDQJcEfFUCRop3
6666
github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218=
6767
github.com/ethereum/c-kzg-4844 v1.0.0 h1:0X1LBXxaEtYD9xsyj9B9ctQEZIpnvVDeoBx8aHEwTNA=
6868
github.com/ethereum/c-kzg-4844 v1.0.0/go.mod h1:VewdlzQmpT5QSrVhbBuGoCdFJkpaJlO1aQputP83wc0=
69-
github.com/ethereum/go-ethereum v1.14.7 h1:EHpv3dE8evQmpVEQ/Ne2ahB06n2mQptdwqaMNhAT29g=
70-
github.com/ethereum/go-ethereum v1.14.7/go.mod h1:Mq0biU2jbdmKSZoqOj29017ygFrMnB5/Rifwp980W4o=
71-
github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0 h1:KrE8I4reeVvf7C1tm8elRjj4BdscTYzz/WAbYyf/JI4=
72-
github.com/ethereum/go-verkle v0.1.1-0.20240306133620-7d920df305f0/go.mod h1:D9AJLVXSyZQXJQVk8oh1EwjISE+sJTn2duYIZC0dy3w=
69+
github.com/ethereum/go-ethereum v1.14.9 h1:J7iwXDrtUyE9FUjUYbd4c9tyzwMh6dTJsKzo9i6SrwA=
70+
github.com/ethereum/go-ethereum v1.14.9/go.mod h1:QeW+MtTpRdBEm2pUFoonByee8zfHv7kGp0wK0odvU1I=
71+
github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9 h1:8NfxH2iXvJ60YRB8ChToFTUzl8awsc3cJ8CbLjGIl/A=
72+
github.com/ethereum/go-verkle v0.1.1-0.20240829091221-dffa7562dbe9/go.mod h1:M3b90YRnzqKyyzBEWJGqj8Qff4IDeXnzFw0P9bFw3uk=
7373
github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM=
7474
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
7575
github.com/ferranbt/fastssz v0.1.3 h1:ZI+z3JH05h4kgmFXdHuR1aWYsgrg7o+Fw7/NCzM16Mo=
7676
github.com/ferranbt/fastssz v0.1.3/go.mod h1:0Y9TEd/9XuFlh7mskMPfXiI2Dkw4Ddg9EyXt1W7MRvE=
77-
github.com/flashbots/go-boost-utils v1.8.1 h1:AD+1+4oCbBjXLK8IqWHYznD95K6/MmqXhozv5fFOCkU=
78-
github.com/flashbots/go-boost-utils v1.8.1/go.mod h1:jFi2H1el7jGPr2ShkWpYPfKsY9vwsFNmBPJRCO7IPg8=
77+
github.com/flashbots/go-boost-utils v1.8.2-0.20241014214143-c3fca3d69760 h1:y1VbT0Nbs56kKlSSOzmPN9NEZ/ZWE1yogojh0cOusfY=
78+
github.com/flashbots/go-boost-utils v1.8.2-0.20241014214143-c3fca3d69760/go.mod h1:uU1VYsVItw5cZLDVkBBgSntc80kBc99xsKSRZkY/1jo=
7979
github.com/flashbots/go-utils v0.5.0 h1:ldjWta9B9//DJU2QcwRbErez3+1aKhSn6EoFc6d5kPY=
8080
github.com/flashbots/go-utils v0.5.0/go.mod h1:LauDwifaRdSK0mS5X34GR59pJtUu1T/lOFNdff1BqtI=
8181
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
@@ -95,8 +95,8 @@ github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/j
9595
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
9696
github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ=
9797
github.com/go-playground/validator/v10 v10.11.1/go.mod h1:i+3WkQ1FvaUjjxh1kSvIA4dMGDBiPU55YFDl0WbKdWU=
98-
github.com/goccy/go-yaml v1.11.2 h1:joq77SxuyIs9zzxEjgyLBugMQ9NEgTWxXfz2wVqwAaQ=
99-
github.com/goccy/go-yaml v1.11.2/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU=
98+
github.com/goccy/go-yaml v1.11.3 h1:B3W9IdWbvrUu2OYQGwvU1nZtvMQJPBKgBUuweJjLj6I=
99+
github.com/goccy/go-yaml v1.11.3/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU=
100100
github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
101101
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
102102
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
@@ -283,8 +283,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
283283
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
284284
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
285285
golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
286-
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
287-
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
286+
golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI=
287+
golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
288288
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
289289
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
290290
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -306,8 +306,8 @@ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQ
306306
google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE=
307307
google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo=
308308
google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU=
309-
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
310-
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
309+
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
310+
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
311311
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
312312
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
313313
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

server/mock/mock_relay.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,13 @@ import (
1212

1313
builderApi "github.com/attestantio/go-builder-client/api"
1414
builderApiDeneb "github.com/attestantio/go-builder-client/api/deneb"
15+
builderApiElectra "github.com/attestantio/go-builder-client/api/electra"
1516
builderApiV1 "github.com/attestantio/go-builder-client/api/v1"
1617
builderSpec "github.com/attestantio/go-builder-client/spec"
1718
"github.com/attestantio/go-eth2-client/spec"
1819
"github.com/attestantio/go-eth2-client/spec/capella"
1920
"github.com/attestantio/go-eth2-client/spec/deneb"
21+
"github.com/attestantio/go-eth2-client/spec/electra"
2022
"github.com/attestantio/go-eth2-client/spec/phase0"
2123
"github.com/ethereum/go-ethereum/common/hexutil"
2224
"github.com/flashbots/go-boost-utils/bls"
@@ -195,6 +197,31 @@ func (m *Relay) MakeGetHeaderResponse(value uint64, blockHash, parentHash, publi
195197
Signature: signature,
196198
},
197199
}
200+
case spec.DataVersionElectra:
201+
message := &builderApiElectra.BuilderBid{
202+
Header: &deneb.ExecutionPayloadHeader{
203+
BlockHash: HexToHash(blockHash),
204+
ParentHash: HexToHash(parentHash),
205+
WithdrawalsRoot: phase0.Root{},
206+
BaseFeePerGas: uint256.NewInt(0),
207+
},
208+
BlobKZGCommitments: make([]deneb.KZGCommitment, 0),
209+
ExecutionRequests: &electra.ExecutionRequests{},
210+
Value: uint256.NewInt(value),
211+
Pubkey: HexToPubkey(publicKey),
212+
}
213+
214+
// Sign the message.
215+
signature, err := ssz.SignMessage(message, ssz.DomainBuilder, m.secretKey)
216+
require.NoError(m.t, err)
217+
218+
return &builderSpec.VersionedSignedBuilderBid{
219+
Version: spec.DataVersionElectra,
220+
Electra: &builderApiElectra.SignedBuilderBid{
221+
Message: message,
222+
Signature: signature,
223+
},
224+
}
198225
case spec.DataVersionUnknown, spec.DataVersionPhase0, spec.DataVersionAltair, spec.DataVersionBellatrix, spec.DataVersionCapella:
199226
return nil
200227
}

0 commit comments

Comments
 (0)