Skip to content

Commit bf854d2

Browse files
authored
Update Cosmos SDK to v0.53.5, lumera v1.10.0 (#11)
1 parent 65f624b commit bf854d2

5 files changed

Lines changed: 152 additions & 154 deletions

File tree

.github/actions/setup-go/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ runs:
3333
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
3434
3535
- name: Setup Go
36-
uses: actions/setup-go@v6
36+
uses: actions/setup-go@v6.2.0
3737
with:
3838
go-version: ${{ steps.determine.outputs.version }}
3939
cache: true

.github/copilot-instructions.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
# Lumera SDK Agent Guide
22

33
## Architecture & Config
4-
- `client.Client` (`client/client.go`) fans out to both `blockchain.Client` and `cascade.Client`; add new modules by extending `client.New` so options/config stay in lockstep.
5-
- `client/config.go` hydrates timeouts, 50 MB gRPC limits, retry counts, and `WaitTx` knobs; use `DefaultConfig()` in samples/tests to avoid zero durations.
6-
- `blockchain/client.go` enforces `ensureLumeraBech32Prefixes` and selects TLS using `shouldUseTLS`; follow this heuristic instead of forcing creds per call.
4+
- `client.Client` ([client/client.go](../client/client.go)) fans out to both `blockchain.Client` and `cascade.Client`; add new modules by extending `client.New` so options/config stay in lockstep.
5+
- Config defaults live in `client/config/config.go`; `Config.Validate()` hydrates timeouts, 50 MB gRPC limits, retry counts, and `WaitTx` knobs. Use `client.DefaultConfig()` (alias in `client/config_alias.go`) in samples/tests to avoid zero durations.
6+
- TLS selection lives in `blockchain/base/client.go` (`shouldUseTLS`); follow this heuristic instead of forcing creds per call (unless `InsecureGRPC` is set).
7+
- Address derivation uses `pkg/crypto.AddressFromKey` to avoid mutating global Bech32 config; do not call Cosmos prefix setters in SDK flows.
78
- `cascade/client.go` wraps the SuperNode SDK via `snconfig.NewConfig`; new Cascade entry points must reuse the same keyring/key name to share signatures.
89

910
## Transactions & Waiting
10-
- `blockchain/tx.go` centralizes the tx lifecycle: build with `NewDefaultTxConfig`, resolve account/sequence, simulate gas (adds 30 % buffer), set min `ulume` fees (0.025 gas price), sign with `internal/crypto.SignTxWithKeyring`.
11+
- `blockchain/base/tx.go` centralizes the tx lifecycle: build with `pkg/crypto.NewDefaultTxConfig`, resolve account/sequence, simulate gas (default 1.3x buffer), set min fees from `Config.GasPrice`/`Config.FeeDenom` (defaults set in `blockchain.New`), sign with `pkg/crypto.SignTxWithKeyring`.
1112
- Always broadcast through `Client.Broadcast` + `WaitForTxInclusion`; the waiter (`internal/wait-tx`) prefers CometBFT websockets via `WaitTxConfig.RPCEndpoint` and falls back to gRPC polling.
1213
- `blockchain.Client.ExtractEventAttribute` is how examples retrieve IDs; keep event parsing there so higher layers stay clean.
1314

@@ -22,13 +23,13 @@
2223
- `cascade.TaskManager` polls `snsdk.Client.GetTask` every second until `COMPLETED`/`FAILED`; extend this manager for new task types instead of bespoke loops.
2324

2425
## Keyring & Examples
25-
- `internal/crypto.NewKeyring`, `GetKey`, and `NewDefaultTxConfig` wrap Cosmos keyring and proto registration; all examples (`examples/*`) show the expected bootstrapping/flag pattern.
26-
- `ensureLumeraBech32Prefixes` seals global Bech32 config once; avoid calling Cosmos prefix setters elsewhere to prevent panics.
26+
- `pkg/crypto.NewKeyring`, `GetKey`, and `NewDefaultTxConfig` wrap Cosmos keyring and proto registration; all examples (`examples/*`) show the expected bootstrapping/flag pattern.
27+
- `pkg/crypto.AddressFromKey` derives bech32 addresses without mutating global prefixes; avoid calling Cosmos prefix setters elsewhere to prevent panics.
2728

2829
## Developer Workflows
2930
- `make sdk` (same as `make build`) compiles all packages; `make examples` or `make example-<name>` drops binaries into `build/`.
3031
- `make test` runs `go test -race -coverprofile=coverage.out ./...` and emits `coverage.html`; `make lint` requires `golangci-lint`.
31-
- Stick to Go 1.25.1 (per `go.mod`) and respect the `replace` pins for CometBFT/Cosmos; update both blockchain + SuperNode deps together when bumping versions.
32+
- Stick to Go 1.25.5 (per `go.mod`) and respect the `replace` pins for CometBFT/Cosmos; update both blockchain + SuperNode deps together when bumping versions.
3233

3334
## Conventions
3435
- Errors wrap context with `fmt.Errorf("context: %w", err)` so callers can unwrap lower layers.

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
run: go test -v ./...
2121

2222
- name: Create Release
23-
uses: softprops/action-gh-release@v2
23+
uses: softprops/action-gh-release@v2.5.0
2424
with:
2525
generate_release_notes: true
2626
env:

go.mod

Lines changed: 34 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ go 1.25.5
44

55
// Pin compatible versions to prevent go mod tidy from updating
66
replace (
7-
github.com/cosmos/cosmos-sdk => github.com/cosmos/cosmos-sdk v0.50.14
87
github.com/envoyproxy/protoc-gen-validate => github.com/bufbuild/protoc-gen-validate v1.3.0
98
github.com/lyft/protoc-gen-validate => github.com/envoyproxy/protoc-gen-validate v1.3.0
109
nhooyr.io/websocket => github.com/coder/websocket v1.8.7
@@ -19,15 +18,16 @@ require (
1918
cosmossdk.io/math v1.5.3
2019

2120
// Lumera blockchain types (generated proto)
22-
github.com/LumeraProtocol/lumera v1.9.1
21+
github.com/LumeraProtocol/lumera v1.10.0
2322

2423
// SuperNode SDK for storage operations
25-
github.com/LumeraProtocol/supernode/v2 v2.4.26
26-
github.com/cometbft/cometbft v0.38.18
27-
github.com/cosmos/cosmos-sdk v0.53.0
24+
github.com/LumeraProtocol/supernode/v2 v2.4.27
25+
github.com/cometbft/cometbft v0.38.20
26+
github.com/cosmos/cosmos-sdk v0.53.5
2827
github.com/cosmos/go-bip39 v1.0.0
29-
github.com/cosmos/gogoproto v1.7.0
30-
github.com/cosmos/ibc-go/v10 v10.3.0
28+
github.com/cosmos/gogoproto v1.7.2
29+
github.com/cosmos/ibc-go/v10 v10.5.0
30+
github.com/ethereum/go-ethereum v1.15.11
3131
github.com/stretchr/testify v1.11.1
3232
go.uber.org/zap v1.27.0
3333

@@ -36,14 +36,12 @@ require (
3636
lukechampine.com/blake3 v1.4.1
3737
)
3838

39-
require github.com/ethereum/go-ethereum v1.15.11
40-
4139
require (
42-
cosmossdk.io/collections v1.3.0 // indirect
40+
cosmossdk.io/collections v1.3.1 // indirect
4341
cosmossdk.io/core v0.11.3 // indirect
44-
cosmossdk.io/depinject v1.2.0 // indirect
42+
cosmossdk.io/depinject v1.2.1 // indirect
4543
cosmossdk.io/errors v1.0.2 // indirect
46-
cosmossdk.io/log v1.6.0 // indirect
44+
cosmossdk.io/log v1.6.1 // indirect
4745
cosmossdk.io/schema v1.1.0 // indirect
4846
cosmossdk.io/store v1.1.2 // indirect
4947
cosmossdk.io/x/tx v0.14.0 // indirect
@@ -59,8 +57,8 @@ require (
5957
github.com/beorn7/perks v1.0.1 // indirect
6058
github.com/bgentry/speakeasy v0.2.0 // indirect
6159
github.com/bytedance/gopkg v0.1.3 // indirect
62-
github.com/bytedance/sonic v1.14.1 // indirect
63-
github.com/bytedance/sonic/loader v0.3.0 // indirect
60+
github.com/bytedance/sonic v1.14.2 // indirect
61+
github.com/bytedance/sonic/loader v0.4.0 // indirect
6462
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
6563
github.com/cespare/xxhash/v2 v2.3.0 // indirect
6664
github.com/cloudwego/base64x v0.1.6 // indirect
@@ -72,26 +70,26 @@ require (
7270
github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 // indirect
7371
github.com/cometbft/cometbft-db v0.14.1 // indirect
7472
github.com/cosmos/btcutil v1.0.5 // indirect
75-
github.com/cosmos/cosmos-db v1.1.2 // indirect
73+
github.com/cosmos/cosmos-db v1.1.3 // indirect
7674
github.com/cosmos/cosmos-proto v1.0.0-beta.5 // indirect
7775
github.com/cosmos/gogogateway v1.2.0 // indirect
78-
github.com/cosmos/iavl v1.2.4 // indirect
76+
github.com/cosmos/iavl v1.2.6 // indirect
7977
github.com/cosmos/ics23/go v0.11.0 // indirect
80-
github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect
78+
github.com/cosmos/ledger-cosmos-go v0.16.0 // indirect
8179
github.com/danieljoos/wincred v1.2.2 // indirect
8280
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
8381
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
8482
github.com/desertbit/timer v1.0.1 // indirect
8583
github.com/dgraph-io/badger/v4 v4.2.0 // indirect
86-
github.com/dgraph-io/ristretto v0.1.1 // indirect
84+
github.com/dgraph-io/ristretto v0.2.0 // indirect
8785
github.com/dgraph-io/ristretto/v2 v2.2.0 // indirect
8886
github.com/dustin/go-humanize v1.0.1 // indirect
8987
github.com/dvsekhvalnov/jose2go v1.7.0 // indirect
9088
github.com/emicklei/dot v1.6.2 // indirect
9189
github.com/fatih/color v1.18.0 // indirect
9290
github.com/felixge/httpsnoop v1.0.4 // indirect
9391
github.com/fsnotify/fsnotify v1.9.0 // indirect
94-
github.com/getsentry/sentry-go v0.32.0 // indirect
92+
github.com/getsentry/sentry-go v0.35.0 // indirect
9593
github.com/go-errors/errors v1.5.1 // indirect
9694
github.com/go-kit/kit v0.13.0 // indirect
9795
github.com/go-kit/log v0.2.1 // indirect
@@ -100,8 +98,7 @@ require (
10098
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
10199
github.com/gogo/googleapis v1.4.1 // indirect
102100
github.com/gogo/protobuf v1.3.2 // indirect
103-
github.com/golang/glog v1.2.5 // indirect
104-
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
101+
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
105102
github.com/golang/protobuf v1.5.4 // indirect
106103
github.com/golang/snappy v0.0.5-0.20231225225746-43d5d4cd4e0e // indirect
107104
github.com/google/btree v1.1.3 // indirect
@@ -147,10 +144,10 @@ require (
147144
github.com/petermattis/goid v0.0.0-20240813172612-4fcff4a6cae7 // indirect
148145
github.com/pkg/errors v0.9.1 // indirect
149146
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
150-
github.com/prometheus/client_golang v1.22.0 // indirect
147+
github.com/prometheus/client_golang v1.23.2 // indirect
151148
github.com/prometheus/client_model v0.6.2 // indirect
152-
github.com/prometheus/common v0.63.0 // indirect
153-
github.com/prometheus/procfs v0.15.1 // indirect
149+
github.com/prometheus/common v0.66.1 // indirect
150+
github.com/prometheus/procfs v0.16.1 // indirect
154151
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
155152
github.com/rogpeppe/go-internal v1.14.1 // indirect
156153
github.com/rs/cors v1.11.1 // indirect
@@ -168,29 +165,31 @@ require (
168165
github.com/tendermint/go-amino v0.16.0 // indirect
169166
github.com/tidwall/btree v1.7.0 // indirect
170167
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
168+
github.com/zondax/golem v0.27.0 // indirect
171169
github.com/zondax/hid v0.9.2 // indirect
172-
github.com/zondax/ledger-go v0.14.3 // indirect
170+
github.com/zondax/ledger-go v1.0.1 // indirect
173171
go.etcd.io/bbolt v1.4.0-alpha.1 // indirect
174172
go.opencensus.io v0.24.0 // indirect
175173
go.uber.org/mock v0.6.0 // indirect
176174
go.uber.org/multierr v1.11.0 // indirect
175+
go.yaml.in/yaml/v2 v2.4.2 // indirect
177176
go.yaml.in/yaml/v3 v3.0.4 // indirect
178-
golang.org/x/arch v0.15.0 // indirect
179-
golang.org/x/crypto v0.43.0 // indirect
177+
golang.org/x/arch v0.17.0 // indirect
178+
golang.org/x/crypto v0.47.0 // indirect
180179
golang.org/x/exp v0.0.0-20250819193227-8b4c13bb791b // indirect
181-
golang.org/x/net v0.46.1-0.20251013234738-63d1a5100f82 // indirect
182-
golang.org/x/sync v0.17.0 // indirect
183-
golang.org/x/sys v0.37.0 // indirect
184-
golang.org/x/term v0.36.0 // indirect
185-
golang.org/x/text v0.30.0 // indirect
186-
google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 // indirect
180+
golang.org/x/net v0.48.0 // indirect
181+
golang.org/x/sync v0.19.0 // indirect
182+
golang.org/x/sys v0.40.0 // indirect
183+
golang.org/x/term v0.39.0 // indirect
184+
golang.org/x/text v0.33.0 // indirect
185+
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
187186
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
188187
google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
189-
google.golang.org/protobuf v1.36.10 // indirect
188+
google.golang.org/protobuf v1.36.11 // indirect
190189
gopkg.in/yaml.v2 v2.4.0 // indirect
191190
gopkg.in/yaml.v3 v3.0.1 // indirect
192191
gotest.tools/v3 v3.5.2 // indirect
193192
nhooyr.io/websocket v1.8.17 // indirect
194193
pgregory.net/rapid v1.2.0 // indirect
195-
sigs.k8s.io/yaml v1.4.0 // indirect
194+
sigs.k8s.io/yaml v1.6.0 // indirect
196195
)

0 commit comments

Comments
 (0)