Skip to content

Commit 5b31a99

Browse files
committed
Implement first signing stub
1 parent a7ac2ca commit 5b31a99

13 files changed

Lines changed: 661 additions & 173 deletions

File tree

config.example.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,7 @@ ssl:
2020
privkey: "/path/to/server.key"
2121
# Optional: root CA for verifying Dirk servers (omit to use system pool)
2222
root_ca: "/path/to/ca.crt"
23+
24+
# Optional: network is either mainnet or hoodi
25+
# Default is mainnet
26+
network: "hoodi"

config/config.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ type Config struct {
2828
RefreshThreshold time.Duration `mapstructure:"refresh_threshold"`
2929
RefreshRetry time.Duration `mapstructure:"refresh_retry"`
3030
}
31+
32+
// Network is either mainnet or hoodi
33+
Network string `mapstructure:"network"`
3134
}
3235

3336
// Load reads configuration from file and environment into cfg.
@@ -41,6 +44,7 @@ func Load(cfgFile string) (*Config, error) {
4144
// Defaults
4245
v.SetDefault("listen_address", "0.0.0.0")
4346
v.SetDefault("listen_port", 9090)
47+
v.SetDefault("network", "mainnet")
4448

4549
if cfgFile != "" {
4650
v.SetConfigFile(cfgFile)
@@ -54,5 +58,18 @@ func Load(cfgFile string) (*Config, error) {
5458
return nil, fmt.Errorf("unmarshaling config: %w", err)
5559
}
5660

61+
_ = cfg.GetGenesisForkVersion()
62+
5763
return &cfg, nil
5864
}
65+
66+
func (c *Config) GetGenesisForkVersion() []byte {
67+
switch c.Network {
68+
case "mainnet":
69+
return []byte{0x00, 0x00, 0x00, 0x00}
70+
case "hoodi":
71+
return []byte{0x10, 0x00, 0x09, 0x10}
72+
default:
73+
panic("invalid network")
74+
}
75+
}

go.mod

Lines changed: 47 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,69 +3,90 @@ module github.com/jshufro/remote-signer-dirk-interop
33
go 1.25.1
44

55
require (
6+
github.com/OffchainLabs/prysm/v7 v7.1.2
7+
github.com/attestantio/go-eth2-client v0.28.0
68
github.com/herumi/bls-eth-go-binary v1.36.1
79
github.com/oapi-codegen/runtime v1.2.0
10+
github.com/rs/zerolog v1.33.0
811
github.com/spf13/viper v1.19.0
912
github.com/wealdtech/go-eth2-wallet-dirk v1.6.0
10-
github.com/wealdtech/go-eth2-wallet-types v1.10.0
11-
google.golang.org/grpc v1.67.1
13+
github.com/wealdtech/go-eth2-wallet-types/v2 v2.12.0
14+
google.golang.org/grpc v1.71.0
1215
gopkg.in/yaml.v3 v3.0.1
1316
)
1417

1518
require (
19+
github.com/OffchainLabs/go-bitfield v0.0.0-20251031151322-f427d04d8506 // indirect
1620
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
1721
github.com/beorn7/perks v1.0.1 // indirect
22+
github.com/bits-and-blooms/bitset v1.17.0 // indirect
1823
github.com/cespare/xxhash/v2 v2.3.0 // indirect
19-
github.com/emicklei/dot v1.6.2 // indirect
24+
github.com/consensys/bavard v0.1.22 // indirect
25+
github.com/consensys/gnark-crypto v0.14.0 // indirect
26+
github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect
27+
github.com/crate-crypto/go-kzg-4844 v1.1.0 // indirect
28+
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
29+
github.com/emicklei/dot v1.6.4 // indirect
30+
github.com/ethereum/c-kzg-4844 v1.0.0 // indirect
31+
github.com/ethereum/go-ethereum v1.15.9 // indirect
32+
github.com/ethereum/go-verkle v0.2.2 // indirect
33+
github.com/fatih/color v1.16.0 // indirect
2034
github.com/ferranbt/fastssz v0.1.4 // indirect
2135
github.com/fsnotify/fsnotify v1.7.0 // indirect
2236
github.com/go-logr/logr v1.4.2 // indirect
2337
github.com/go-logr/stdr v1.2.2 // indirect
38+
github.com/goccy/go-yaml v1.9.2 // indirect
2439
github.com/google/uuid v1.6.0 // indirect
2540
github.com/hashicorp/hcl v1.0.0 // indirect
41+
github.com/holiman/uint256 v1.3.2 // indirect
2642
github.com/jackc/puddle/v2 v2.2.2 // indirect
27-
github.com/klauspost/cpuid/v2 v2.2.8 // indirect
43+
github.com/klauspost/cpuid/v2 v2.2.9 // indirect
2844
github.com/magiconair/properties v1.8.7 // indirect
29-
github.com/mattn/go-colorable v0.1.13 // indirect
45+
github.com/mattn/go-colorable v0.1.14 // indirect
3046
github.com/mattn/go-isatty v0.0.20 // indirect
47+
github.com/minio/highwayhash v1.0.2 // indirect
3148
github.com/minio/sha256-simd v1.0.1 // indirect
3249
github.com/mitchellh/mapstructure v1.5.0 // indirect
50+
github.com/mmcloughlin/addchain v0.4.0 // indirect
51+
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
3352
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
3453
github.com/pelletier/go-toml/v2 v2.2.2 // indirect
35-
github.com/phoreproject/bls v0.0.0-20191211001008-9d5f85bf4a9b // indirect
3654
github.com/pkg/errors v0.9.1 // indirect
3755
github.com/prometheus/client_golang v1.20.5 // indirect
3856
github.com/prometheus/client_model v0.6.1 // indirect
39-
github.com/prometheus/common v0.60.1 // indirect
57+
github.com/prometheus/common v0.62.0 // indirect
4058
github.com/prometheus/procfs v0.15.1 // indirect
41-
github.com/rogpeppe/go-internal v1.11.0 // indirect
42-
github.com/rs/zerolog v1.33.0 // indirect
59+
github.com/prysmaticlabs/fastssz v0.0.0-20251103153600-259302269bfc // indirect
60+
github.com/prysmaticlabs/gohashtree v0.0.5-beta // indirect
4361
github.com/sagikazarmark/locafero v0.4.0 // indirect
4462
github.com/sagikazarmark/slog-shim v0.1.0 // indirect
63+
github.com/sirupsen/logrus v1.9.3 // indirect
4564
github.com/sourcegraph/conc v0.3.0 // indirect
4665
github.com/spf13/afero v1.11.0 // indirect
4766
github.com/spf13/cast v1.6.0 // indirect
4867
github.com/spf13/pflag v1.0.5 // indirect
4968
github.com/subosito/gotenv v1.6.0 // indirect
69+
github.com/supranational/blst v0.3.16-0.20250831170142-f48500c1fdbe // indirect
70+
github.com/thomaso-mirodin/intmath v0.0.0-20160323211736-5dc6d854e46e // indirect
5071
github.com/wealdtech/eth2-signer-api v1.7.2 // indirect
51-
github.com/wealdtech/go-bytesutil v1.1.0 // indirect
52-
github.com/wealdtech/go-eth2-types v1.0.0 // indirect
5372
github.com/wealdtech/go-eth2-types/v2 v2.8.2 // indirect
54-
github.com/wealdtech/go-eth2-wallet-types/v2 v2.12.0 // indirect
55-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 // indirect
56-
go.opentelemetry.io/otel v1.31.0 // indirect
57-
go.opentelemetry.io/otel/metric v1.31.0 // indirect
58-
go.opentelemetry.io/otel/trace v1.31.0 // indirect
59-
go.uber.org/atomic v1.9.0 // indirect
60-
go.uber.org/multierr v1.9.0 // indirect
61-
golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect
62-
golang.org/x/net v0.30.0 // indirect
63-
golang.org/x/sync v0.10.0 // indirect
64-
golang.org/x/sys v0.30.0 // indirect
65-
golang.org/x/text v0.21.0 // indirect
66-
google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 // indirect
67-
google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 // indirect
68-
google.golang.org/protobuf v1.35.1 // indirect
73+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
74+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
75+
go.opentelemetry.io/otel v1.35.0 // indirect
76+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
77+
go.opentelemetry.io/otel/trace v1.35.0 // indirect
78+
go.uber.org/multierr v1.11.0 // indirect
79+
golang.org/x/crypto v0.44.0 // indirect
80+
golang.org/x/exp v0.0.0-20250128182459-e0ece0dbea4c // indirect
81+
golang.org/x/net v0.47.0 // indirect
82+
golang.org/x/sync v0.18.0 // indirect
83+
golang.org/x/sys v0.38.0 // indirect
84+
golang.org/x/text v0.31.0 // indirect
85+
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
86+
google.golang.org/genproto/googleapis/api v0.0.0-20250106144421-5f5ef82da422 // indirect
87+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect
88+
google.golang.org/protobuf v1.36.5 // indirect
6989
gopkg.in/ini.v1 v1.67.0 // indirect
7090
gopkg.in/yaml.v2 v2.4.0 // indirect
91+
rsc.io/tmplfunc v0.0.3 // indirect
7192
)

0 commit comments

Comments
 (0)