Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- uses: actions/setup-go@v5
with:
cache: false
go-version: '^1.22'
go-version: '^1.25'
- uses: actions/checkout@v4
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
uses: actions/setup-go@v3
with:
cache: false
go-version: '^1.22'
go-version: '^1.25'

- name: Check out repository into the Go module directory
uses: actions/checkout@v4
Expand Down Expand Up @@ -123,7 +123,7 @@ jobs:
uses: actions/setup-go@v5
with:
cache: false
go-version: '^1.22'
go-version: '^1.25'

- name: Check out repository into the Go module directory
uses: actions/checkout@v4
Expand Down Expand Up @@ -169,7 +169,7 @@ jobs:
uses: actions/setup-go@v5
with:
cache: false
go-version: '^1.22'
go-version: '^1.25'

- name: Check out repository into the Go module directory
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ jobs:
- uses: actions/setup-go@v5
with:
cache: false
go-version: '^1.22'
go-version: '^1.25'
- uses: actions/checkout@v4
- uses: n8maninger/action-golang-test@v1
with:
Expand Down
181 changes: 63 additions & 118 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -1,126 +1,15 @@
# This file contains all available configuration options
# with their default values (in comments).
#
# This file is not a configuration example,
# it contains the exhaustive configuration with explanations of the options.

issues:
# Which files to exclude: they will be analyzed, but issues from them won't be reported.
# There is no need to include all autogenerated files,
# we confidently recognize autogenerated files.
# If it's not, please let us know.
# "/" will be replaced by current OS file path separator to properly work on Windows.
# Default: []
exclude-files:
- ".*_ssz\\.go$"

# Options for analysis running.
version: "2"
run:
# The default concurrency value is the number of available CPU.
# concurrency: 4

# Timeout for analysis, e.g. 30s, 5m.
# Default: 1m
timeout: 10m

# Exit code when at least one issue was found.
# Default: 1
# issues-exit-code: 2

# Include test files or not.
# Default: true
tests: false

# List of build tags, all linters use it.
# Default: [].
# build-tags:
# - mytag

# Which dirs to skip: issues from them won't be reported.
# Can use regexp here: `generated.*`, regexp is applied on full path.
# Default value is empty list,
# but default dirs are skipped independently of this option's value (see skip-dirs-use-default).
# "/" will be replaced by current OS file path separator to properly work on Windows.
# skip-dirs:
# - autogenerated_by_my_lib

# Enables skipping of directories:
# - vendor$, third_party$, testdata$, examples$, Godeps$, builtin$
# Default: true
# skip-dirs-use-default: false

# If set we pass it to "go list -mod={option}". From "go help modules":
# If invoked with -mod=readonly, the go command is disallowed from the implicit
# automatic updating of go.mod described above. Instead, it fails when any changes
# to go.mod are needed. This setting is most useful to check that go.mod does
# not need updates, such as in a continuous integration and testing system.
# If invoked with -mod=vendor, the go command assumes that the vendor
# directory holds the correct copies of dependencies and ignores
# the dependency descriptions in go.mod.
#
# Allowed values: readonly|vendor|mod
# By default, it isn't set.
modules-download-mode: readonly

# Allow multiple parallel golangci-lint instances running.
# If false (default) - golangci-lint acquires file lock on start.
tests: false
allow-parallel-runners: true

# Define the Go version limit.
# Mainly related to generics support since go1.18.
# Default: use Go version from the go.mod file, fallback on the env var `GOVERSION`, fallback on 1.18
# go: '1.19'


# output configuration options
timeout: 10m
output:
formats:
- format: colored-line-number
text:
path: stderr

# All available settings of specific linters.
linters-settings:
lll:
line-length: 132

nlreturn:
# Allow two-line blocks without requiring a newline
block-size: 3

stylecheck:
checks: [ "all", "-ST1000" ]

tagliatelle:
case:
# use-field-name: true
rules:
json: snake
yaml: snake

goheader:
values:
regexp:
YEARS: '(20\d\d - 20\d\d|20\d\d, 20\d\d|20\d\d)'
template: |-
Copyright © {{ YEARS }} Attestant Limited.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

linters:
# Enable all available linters.
# Default: false
enable-all: true
# Disable specific linter
# https://golangci-lint.run/usage/linters/#disabled-by-default
default: all
disable:
- cyclop
- depguard
Expand All @@ -129,16 +18,72 @@ linters:
- exhaustruct
- forcetypeassert
- funlen
- gci
Comment thread
AntiD2ta marked this conversation as resolved.
- gochecknoglobals
- gocognit
- goconst
- ireturn
- lll
- mnd
- nlreturn
- noinlineerr
Comment thread
AntiD2ta marked this conversation as resolved.
- perfsprint
- tenv
- revive
Comment thread
Bez625 marked this conversation as resolved.
- varnamelen
- wrapcheck
- wsl
- wsl_v5
Comment thread
AntiD2ta marked this conversation as resolved.
settings:
goheader:
values:
regexp:
YEARS: (20\d\d - 20\d\d|20\d\d, 20\d\d|20\d\d)
template: |-
Copyright © {{ YEARS }} Attestant Limited.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
lll:
line-length: 132
nlreturn:
block-size: 3
staticcheck:
checks:
- all
- -ST1000
tagliatelle:
case:
rules:
json: snake
yaml: snake
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- .*_ssz\.go$
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
- gofumpt
- goimports
exclusions:
generated: lax
paths:
- .*_ssz\.go$
- third_party$
- builtin$
- examples$
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.22-bookworm as builder
FROM golang:1.25-bookworm as builder

WORKDIR /app

Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
module github.com/attestantio/dirk

go 1.22.0
go 1.25

toolchain go1.22.4
toolchain go1.25.3

require (
github.com/attestantio/go-eth2-client v0.21.11
Expand Down
1 change: 1 addition & 0 deletions services/api/grpc/handlers/accountmanager/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
// Handler is the account manager handler.
type Handler struct {
pb.UnimplementedAccountManagerServer

accountManager accountmanager.Service
process process.Service
}
Expand Down
1 change: 1 addition & 0 deletions services/api/grpc/handlers/lister/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
// Handler is the lister handler.
type Handler struct {
pb.UnimplementedListerServer

lister lister.Service
}

Expand Down
1 change: 1 addition & 0 deletions services/api/grpc/handlers/receiver/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
// Handler is the receiver handler, receiving requests in the distributed key generation process.
type Handler struct {
pb.UnimplementedDKGServer

process process.Service
peers peers.Service
}
Expand Down
1 change: 1 addition & 0 deletions services/api/grpc/handlers/signer/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
// Handler is the signer handler, allowing access to signer functions through grpc.
type Handler struct {
pb.UnimplementedSignerServer

signer signer.Service
}

Expand Down
1 change: 1 addition & 0 deletions services/api/grpc/handlers/walletmanager/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
// Handler is the handler for GRPC requests to the wallet manager.
type Handler struct {
pb.UnimplementedWalletManagerServer

walletManager walletmanager.Service
}

Expand Down
9 changes: 5 additions & 4 deletions services/api/grpc/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ func New(ctx context.Context, params ...Parameter) (*Service, error) {
}
pb.RegisterDKGServer(s.grpcServer, receiverHandler)

err = s.serve(parameters.listenAddress)
err = s.serve(ctx, parameters.listenAddress)
if err != nil {
return nil, errors.Wrap(err, "failed to start API server")
}
Expand Down Expand Up @@ -177,15 +177,16 @@ func (s *Service) createServer(name string, certPEMBlock []byte, keyPEMBlock []b
}

// Serve serves the GRPC server.
func (s *Service) serve(listenAddress string) error {
conn, err := net.Listen("tcp", listenAddress)
func (s *Service) serve(ctx context.Context, listenAddress string) error {
var lc net.ListenConfig
listener, err := lc.Listen(ctx, "tcp", listenAddress)
if err != nil {
return err
}
log.Info().Str("address", listenAddress).Msg("Listening")

go func() {
if err := s.grpcServer.Serve(conn); err != nil {
if err := s.grpcServer.Serve(listener); err != nil {
log.Error().Err(err).Msg("Could not start GRPC server")
}
}()
Expand Down
Loading