Skip to content

Commit 88b15bd

Browse files
authored
feat!: evm (v0.50.13) (#289)
* initial simapp impl (no cmds) * cmds initial * fixes * fix: sealed config * working launched evm * more tags, fix deleting a bunch of bApp setup, and removal * fix: spawntag wasm in sim-test * fix: proper key algo * refactor: ante to work with evm (initial) * refactor: proper cosmos ante setup * Simplify genesis.go & unit test no-evm * use evm IBC wrappers * proper coinTypes * refactor: cleanup test_node scripts to match + replace properly * simplify * support wasmd + evm * no evm e2e test * fix: ict cometbft version * fix: ict evm params * fix: dockerfile --from * fix: ict register evm types * remove e2e for ibc when using EVM (due to Go relayer limitation with CT60) * fix: schema * add `poa` patch for EVM SDK * bump to v0.50.13 * fix: more helpful poa test output * fix: not removing the interfaces * chore(docs): fix x.com links * fix: misc finds in review * fix(ci): chain ids * fix: ibc path for ictest with ICS * proper version * dont delete * <!-- markdown-link-check-disable -->
1 parent 5eb7b19 commit 88b15bd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1620
-1146
lines changed

.github/workflows/spawn-e2e.yaml

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,23 +52,23 @@ jobs:
5252
with:
5353
id: Proof of Stake
5454
spawn-create-cmd: spawn new mychain --consensus=proof-of-stake --bypass-prompt --bech32=prefix --bin=appd --no-git --org=rollchains-org --denom=uroll --debug --log-level=debug
55-
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain-1" BLOCK_TIME="2000ms" CLEAN=true sh scripts/test_node.sh &
55+
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain_9000-1" BLOCK_TIME="2000ms" CLEAN=true sh scripts/test_node.sh &
5656

5757
proof-of-authority:
5858
needs: build-spawn
5959
uses: ./.github/workflows/reusable-e2e.yaml
6060
with:
6161
id: Proof of Authority
6262
spawn-create-cmd: spawn new mychain --consensus=proof-of-authority --bypass-prompt --bech32=cosmos --bin=appd --no-git --org=rollchains-org --denom=uroll --debug --log-level=debug
63-
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain-1" BLOCK_TIME="2000ms" CLEAN=true sh scripts/test_node.sh &
63+
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain_9000-1" BLOCK_TIME="2000ms" CLEAN=true sh scripts/test_node.sh &
6464

6565
normal-ics:
6666
needs: build-spawn
6767
uses: ./.github/workflows/reusable-e2e.yaml
6868
with:
6969
id: ICS - Cosmos Hub
7070
spawn-create-cmd: spawn new mychain --consensus=ics --bin=appd --bypass-prompt --bech32=roll --no-git --org=rollchains-org --denom=uroll --debug --log-level=debug
71-
start-chain-cmd: HOME_DIR="~/.icsnetwork" CHAIN_ID="localchain-2" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_ics_node.sh &
71+
start-chain-cmd: HOME_DIR="~/.icsnetwork" CHAIN_ID="localchain_9000-2" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_ics_node.sh &
7272

7373
ics-with-user-modules:
7474
needs: build-spawn
@@ -77,7 +77,7 @@ jobs:
7777
id: ICS - Module
7878
spawn-create-cmd: spawn new mychain --consensus=ics --bin=appd --bypass-prompt --bech32=roll --disabled=explorer --org=rollchains-org --denom=uroll --debug --log-level=debug
7979
spawn-extra-cmd: cd mychain && spawn module new aaaaaa && make proto-gen
80-
start-chain-cmd: HOME_DIR="~/.icsnetwork" CHAIN_ID="localchain-2" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_ics_node.sh &
80+
start-chain-cmd: HOME_DIR="~/.icsnetwork" CHAIN_ID="localchain_9000-2" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_ics_node.sh &
8181

8282
poa-with-ibc-module:
8383
needs: build-spawn
@@ -86,4 +86,13 @@ jobs:
8686
id: POA - IBC Module
8787
spawn-create-cmd: spawn new mychain --consensus=poa --bin=appd --bypass-prompt --bech32=roll --disabled=explorer --org=rollchains-org --denom=upoa --debug --log-level=debug
8888
spawn-extra-cmd: cd mychain && spawn module new aaaaaa --ibc-module && make proto-gen
89-
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain-10" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_node.sh &
89+
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain_9000-1" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_node.sh &
90+
91+
staking-no-evm:
92+
needs: build-spawn
93+
uses: ./.github/workflows/reusable-e2e.yaml
94+
with:
95+
id: Staking - No EVM
96+
spawn-create-cmd: spawn new mychain --consensus=pos --bin=appd --bypass-prompt --bech32=roll --disabled=explorer,evm --org=rollchains-org --denom=uroll --debug --log-level=debug
97+
spawn-extra-cmd: cd mychain && spawn module new aaaaaa && make proto-gen
98+
start-chain-cmd: HOME_DIR="~/.simapp" CHAIN_ID="localchain-1" CLEAN=true BLOCK_TIME="2000ms" sh scripts/test_node.sh &

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,10 @@ help: Makefile
8787

8888
# ---- Developer Templates ----
8989
template-staking: install
90-
spawn new myproject --consensus=proof-of-stake --debug --bech32=roll --bin=appd --bypass-prompt --log-level=debug --org=reece
90+
spawn new myproject --consensus=proof-of-stake --disable=explorer --debug --bech32=roll --bin=appd --bypass-prompt --log-level=debug --org=reece
91+
92+
template-no-evm: install
93+
spawn new myproject --consensus=proof-of-stake --disable=explorer,evm --debug --bech32=roll --bin=appd --bypass-prompt --log-level=debug --org=reece
9194

9295
template-poa: install
9396
spawn new myproject --consensus=proof-of-authority --debug --no-git --bin=rolld --bech32=roll --denom=uroll --bypass-prompt --log-level=debug

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ If you do not have [`go 1.22+`](https://go.dev/doc/install), [`Docker`](https://
2424

2525
```bash
2626
# Download the the Spawn repository
27-
git clone https://github.com/rollchains/spawn.git --depth=1 --branch v0.50.12
27+
git clone https://github.com/rollchains/spawn.git --depth=1 --branch v0.50.13
2828
cd spawn
2929

3030
# Install Spawn

cmd/spawn/new_chain.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var (
2828
{ID: "ibc-packetforward", IsSelected: true, Details: "Packet forwarding"},
2929
{ID: "ibc-ratelimit", IsSelected: false, Details: "Thresholds for outflow as a percent of total channel value"},
3030
{ID: "cosmwasm", IsSelected: false, Details: "Cosmos smart contracts"},
31+
{ID: "evm", IsSelected: false, Details: "Ethereum Virtual Machine Integration"},
3132
{ID: "wasm-light-client", IsSelected: false, Details: "08 Wasm Light Client"},
3233
{ID: "optimistic-execution", IsSelected: true, Details: "Pre-process blocks ahead of consensus request"},
3334
{ID: "block-explorer", IsSelected: false, Details: "Ping Pub Explorer"},

cmd/spawn/new_chain_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,11 @@ func TestDisabledGeneration(t *testing.T) {
4949
Disabled: []string{spawn.CosmWasm, spawn.WasmLC},
5050
NotContainAny: []string{"wasmkeeper", "wasmtypes"},
5151
},
52+
{
53+
Name: "noevm",
54+
Disabled: []string{spawn.EVM},
55+
NotContainAny: []string{"evmkeeper", "evmos/os"},
56+
},
5257
}
5358

5459
// single module removal

docs/versioned_docs/version-v0.50.x/00-meet-spawn.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,10 @@ Spawn is the easiest way to build, maintain and scale an Interchain blockchain.
1717

1818
## Testimonials
1919

20+
<!-- markdown-link-check-disable -->
2021
> "Spawn is a marked transformation in CosmosSDK protocol development, allowing scaffolding and upgrading from 0.47 to 0.50 to be achievable and understandable. Without the tool, this would have been a dedicated multi-month effort" - Ash, [Burnt.com](https://twitter.com/burnt_xion)
2122
22-
23+
<!-- markdown-link-check-disable -->
2324
> "Spawn has truly streamlined the developer onboarding process into the Cosmos ecosystem, seamless and efficient." - [Anil](https://x.com/anilcse_/status/1840444855576846355) [VitWit](https://www.vitwit.com/)
2425
2526
---

docs/versioned_docs/version-v0.50.x/01-setup/02-install-spawn.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Install Spawn from source.
1919

2020
```bash
2121
# Install from latest source
22-
git clone https://github.com/rollchains/spawn.git --depth 1 --branch v0.50.12
22+
git clone https://github.com/rollchains/spawn.git --depth 1 --branch v0.50.13
2323

2424
# Change to this directory
2525
cd spawn

docs/versioned_docs/version-v0.50.x/04-learn/01-consensus-algos.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ This topic is a little more advanced due to technical speak. It is condensed to
1919

2020
## Choose for me (TLDR)
2121

22+
<!-- markdown-link-check-disable -->
2223
If you just want to build an application and don't want to focus on tokenomics or game theory, use [proof of authority](#proof-of-authority-poa). If a token is part of your product or required to financially reward users with some lock mechanism and long term incentives, use [proof of stake](#proof-of-stake-pos). If you have plans for a large amount of value to be secured or don't want to run your own network nodes, use [interchain security](#interchain-security-ics).
2324

2425
## Proof of Authority (PoA)
2526

2627
### Default
28+
<!-- markdown-link-check-disable -->
2729
If you do not know which security module best fits for you, use this one. The source code for this feature can be found [here](https://github.com/strangelove-ventures/poa). The most popular example of this security model is [Circle's](https://www.circle.com/en/) USDC issuance network, [Noble](https://www.noble.xyz/) ([twitter](https://twitter.com/noble_xyz)).
2830

2931
### What it does

go.mod

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/rollchains/spawn
22

3-
go 1.22.11
3+
go 1.23.0
44

55
toolchain go1.23.1
66

@@ -44,7 +44,7 @@ require (
4444
cosmossdk.io/core v0.12.0 // indirect
4545
cosmossdk.io/depinject v1.1.0 // indirect
4646
cosmossdk.io/errors v1.0.1 // indirect
47-
cosmossdk.io/log v1.4.1 // indirect
47+
cosmossdk.io/log v1.5.0 // indirect
4848
cosmossdk.io/math v1.5.0 // indirect
4949
cosmossdk.io/store v1.1.1 // indirect
5050
cosmossdk.io/x/evidence v0.1.1 // indirect
@@ -67,7 +67,9 @@ require (
6767
github.com/beorn7/perks v1.0.1 // indirect
6868
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
6969
github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect
70-
github.com/bits-and-blooms/bitset v1.10.0 // indirect
70+
github.com/bits-and-blooms/bitset v1.17.0 // indirect
71+
github.com/bytedance/sonic v1.12.3 // indirect
72+
github.com/bytedance/sonic/loader v0.2.0 // indirect
7173
github.com/calmh/randomart v1.1.0 // indirect
7274
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
7375
github.com/cespare/xxhash/v2 v2.3.0 // indirect
@@ -77,6 +79,8 @@ require (
7779
github.com/charmbracelet/glamour v0.6.0 // indirect
7880
github.com/charmbracelet/lipgloss v0.6.0 // indirect
7981
github.com/chzyer/readline v1.5.1 // indirect
82+
github.com/cloudwego/base64x v0.1.4 // indirect
83+
github.com/cloudwego/iasm v0.2.0 // indirect
8084
github.com/cockroachdb/apd/v3 v3.2.1 // indirect
8185
github.com/cockroachdb/errors v1.11.3 // indirect
8286
github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce // indirect
@@ -95,7 +99,7 @@ require (
9599
github.com/cosmos/gogoproto v1.7.0 // indirect
96100
github.com/cosmos/iavl v1.2.2 // indirect
97101
github.com/cosmos/ibc-go/modules/capability v1.0.1 // indirect
98-
github.com/cosmos/ibc-go/v8 v8.5.1 // indirect
102+
github.com/cosmos/ibc-go/v8 v8.5.2 // indirect
99103
github.com/cosmos/ics23/go v0.11.0 // indirect
100104
github.com/cosmos/interchain-security/v5 v5.1.1 // indirect
101105
github.com/cosmos/ledger-cosmos-go v0.14.0 // indirect
@@ -106,15 +110,15 @@ require (
106110
github.com/dgraph-io/badger/v4 v4.2.0 // indirect
107111
github.com/dgraph-io/ristretto v0.1.1 // indirect
108112
github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect
109-
github.com/dlclark/regexp2 v1.4.0 // indirect
113+
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect
110114
github.com/docker/distribution v2.8.2+incompatible // indirect
111115
github.com/docker/docker v24.0.9+incompatible // indirect
112116
github.com/docker/go-connections v0.5.0 // indirect
113117
github.com/docker/go-units v0.5.0 // indirect
114118
github.com/dustin/go-humanize v1.0.1 // indirect
115119
github.com/dvsekhvalnov/jose2go v1.6.0 // indirect
116120
github.com/emicklei/dot v1.6.2 // indirect
117-
github.com/fatih/color v1.15.0 // indirect
121+
github.com/fatih/color v1.16.0 // indirect
118122
github.com/felixge/httpsnoop v1.0.4 // indirect
119123
github.com/fsnotify/fsnotify v1.7.0 // indirect
120124
github.com/getsentry/sentry-go v0.27.0 // indirect
@@ -135,7 +139,7 @@ require (
135139
github.com/golang/protobuf v1.5.4 // indirect
136140
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb // indirect
137141
github.com/google/btree v1.1.3 // indirect
138-
github.com/google/flatbuffers v2.0.8+incompatible // indirect
142+
github.com/google/flatbuffers v23.5.26+incompatible // indirect
139143
github.com/google/go-cmp v0.6.0 // indirect
140144
github.com/google/orderedcode v0.0.1 // indirect
141145
github.com/google/s2a-go v0.1.7 // indirect
@@ -156,7 +160,7 @@ require (
156160
github.com/hashicorp/go-metrics v0.5.3 // indirect
157161
github.com/hashicorp/go-plugin v1.5.2 // indirect
158162
github.com/hashicorp/go-safetemp v1.0.0 // indirect
159-
github.com/hashicorp/go-version v1.6.0 // indirect
163+
github.com/hashicorp/go-version v1.7.0 // indirect
160164
github.com/hashicorp/golang-lru v1.0.2 // indirect
161165
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
162166
github.com/hashicorp/hcl v1.0.0 // indirect
@@ -170,11 +174,12 @@ require (
170174
github.com/jmespath/go-jmespath v0.4.0 // indirect
171175
github.com/jmhodges/levigo v1.0.0 // indirect
172176
github.com/klauspost/compress v1.17.9 // indirect
177+
github.com/klauspost/cpuid/v2 v2.2.7 // indirect
173178
github.com/kr/pretty v0.3.1 // indirect
174179
github.com/kr/text v0.2.0 // indirect
175180
github.com/leodido/go-urn v1.2.1 // indirect
176181
github.com/lib/pq v1.10.9 // indirect
177-
github.com/linxGnu/grocksdb v1.8.14 // indirect
182+
github.com/linxGnu/grocksdb v1.9.8 // indirect
178183
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
179184
github.com/magiconair/properties v1.8.7 // indirect
180185
github.com/mattn/go-colorable v0.1.13 // indirect
@@ -231,6 +236,7 @@ require (
231236
github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect
232237
github.com/tendermint/go-amino v0.16.0 // indirect
233238
github.com/tidwall/btree v1.7.0 // indirect
239+
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
234240
github.com/ulikunitz/xz v0.5.11 // indirect
235241
github.com/yuin/goldmark v1.5.2 // indirect
236242
github.com/yuin/goldmark-emoji v1.0.1 // indirect
@@ -245,13 +251,14 @@ require (
245251
go.opentelemetry.io/otel/trace v1.32.0 // indirect
246252
go.uber.org/multierr v1.11.0 // indirect
247253
go.uber.org/zap v1.27.0 // indirect
254+
golang.org/x/arch v0.3.0 // indirect
248255
golang.org/x/crypto v0.32.0 // indirect
249256
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
250257
golang.org/x/net v0.34.0 // indirect
251258
golang.org/x/oauth2 v0.24.0 // indirect
252259
golang.org/x/sync v0.10.0 // indirect
253260
golang.org/x/sys v0.29.0 // indirect
254-
golang.org/x/time v0.5.0 // indirect
261+
golang.org/x/time v0.9.0 // indirect
255262
google.golang.org/api v0.186.0 // indirect
256263
google.golang.org/genproto v0.0.0-20240701130421-f6361c86f094 // indirect
257264
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a // indirect

0 commit comments

Comments
 (0)