From 145ce6c6a1cdbca7b32521a8bc9f5434bcbda021 Mon Sep 17 00:00:00 2001 From: Soares Chen Date: Mon, 26 Aug 2024 17:15:50 +0200 Subject: [PATCH] Add Wasm variant of ibc-go v7 and v8 (#270) * Add Wasm variant of ibc-go v7 and v8 * Fix formatting * Fix incorrect update --- flake.lock | 36 ++++++++++++++++++++++++++++++++++++ flake.nix | 18 +++++++++++++++++- modules/apps.nix | 8 ++++++++ modules/packages.nix | 2 +- packages/ibc-go.nix | 31 +++++++++++++++++++++++++++++++ 5 files changed, 93 insertions(+), 2 deletions(-) diff --git a/flake.lock b/flake.lock index 30bccc7..15cc65f 100644 --- a/flake.lock +++ b/flake.lock @@ -848,6 +848,23 @@ "type": "github" } }, + "ibc-go-v7-wasm-src": { + "flake": false, + "locked": { + "lastModified": 1722365763, + "narHash": "sha256-ZYGCvm1Ek1RaXKzkkwQCc56I2HzmbrLR/lFD5IZZdLc=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "13c071f0b34d67342f0b7a8874d84d2e68b887e1", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "modules/light-clients/08-wasm/v0.3.1+ibc-go-v7.4-wasmvm-v1.5", + "repo": "ibc-go", + "type": "github" + } + }, "ibc-go-v8-src": { "flake": false, "locked": { @@ -865,6 +882,23 @@ "type": "github" } }, + "ibc-go-v8-wasm-src": { + "flake": false, + "locked": { + "lastModified": 1722365433, + "narHash": "sha256-mgfbibipk09LtO0h0hQDfnVA0cQADaI6Bq+ruyP6xI4=", + "owner": "cosmos", + "repo": "ibc-go", + "rev": "ccd4dc278e720be87418028026ebd93a80fa5ac0", + "type": "github" + }, + "original": { + "owner": "cosmos", + "ref": "modules/light-clients/08-wasm/v0.4.1+ibc-go-v8.4-wasmvm-v2.0", + "repo": "ibc-go", + "type": "github" + } + }, "ibc-go-v9-src": { "flake": false, "locked": { @@ -1412,7 +1446,9 @@ "ibc-go-v5-src": "ibc-go-v5-src", "ibc-go-v6-src": "ibc-go-v6-src", "ibc-go-v7-src": "ibc-go-v7-src", + "ibc-go-v7-wasm-src": "ibc-go-v7-wasm-src", "ibc-go-v8-src": "ibc-go-v8-src", + "ibc-go-v8-wasm-src": "ibc-go-v8-wasm-src", "ibc-go-v9-src": "ibc-go-v9-src", "ibc-rs-src": "ibc-rs-src", "ica-src": "ica-src", diff --git a/flake.nix b/flake.nix index fb73e27..2ef3df5 100644 --- a/flake.nix +++ b/flake.nix @@ -1,7 +1,7 @@ { nixConfig = { substituters = "https://cosmos-nix.cachix.org https://cache.nixos.org https://nix-community.cachix.org"; - trusted-public-keys = "cosmosnix.store-1:O28HneR1MPtgY3WYruWFuXCimRPwY7em5s0iynkQxdk= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="; + trusted-public-keys = "cosmos-nix.cachix.org-1:I9dmz4kn5+JExjPxOd9conCzQVHPl0Jo1Cdp6s+63d4= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="; }; description = "A reproducible package set for Cosmos, IBC and CosmWasm"; @@ -147,6 +147,22 @@ ibc-go-v9-src.url = "github:cosmos/ibc-go/v9.0.0-beta.1"; ibc-go-v9-src.flake = false; + ibc-go-v7-wasm-src = { + type = "github"; + owner = "cosmos"; + repo = "ibc-go"; + ref = "modules/light-clients/08-wasm/v0.3.1+ibc-go-v7.4-wasmvm-v1.5"; + flake = false; + }; + + ibc-go-v8-wasm-src = { + type = "github"; + owner = "cosmos"; + repo = "ibc-go"; + ref = "modules/light-clients/08-wasm/v0.4.1+ibc-go-v8.4-wasmvm-v2.0"; + flake = false; + }; + cosmos-sdk-src.url = "github:cosmos/cosmos-sdk/v0.46.0"; cosmos-sdk-src.flake = false; diff --git a/modules/apps.nix b/modules/apps.nix index 99c100f..c698bcb 100644 --- a/modules/apps.nix +++ b/modules/apps.nix @@ -126,6 +126,14 @@ type = "app"; program = "${packages.ibc-go-v9-simapp}/bin/simd"; }; + ibc-go-v7-wasm-simapp = { + type = "app"; + program = "${packages.ibc-go-v7-wasm-simapp}/bin/simd"; + }; + ibc-go-v8-wasm-simapp = { + type = "app"; + program = "${packages.ibc-go-v8-wasm-simapp}/bin/simd"; + }; ignite-cli = { type = "app"; program = "${packages.ignite-cli}/bin/ignite"; diff --git a/modules/packages.nix b/modules/packages.nix index 9b54c50..5b04d8b 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -181,7 +181,7 @@ # IBC Go (import ../packages/ibc-go.nix { inherit inputs; - inherit (self'.packages) libwasmvm_2_1_0; + inherit (self'.packages) libwasmvm_1_5_0 libwasmvm_2_1_0; inherit (cosmosLib) mkCosmosGoApp wasmdPreFixupPhase; }) # Libwasm VM diff --git a/packages/ibc-go.nix b/packages/ibc-go.nix index d15d577..f78d4fb 100644 --- a/packages/ibc-go.nix +++ b/packages/ibc-go.nix @@ -1,5 +1,6 @@ { inputs, + libwasmvm_1_5_0, libwasmvm_2_1_0, mkCosmosGoApp, wasmdPreFixupPhase, @@ -102,4 +103,34 @@ with inputs; ''; buildInputs = [libwasmvm_2_1_0]; }; + + ibc-go-v7-wasm-simapp = { + name = "simd"; + version = "v7.4.0-wasm"; + src = "${ibc-go-v7-wasm-src}/modules/light-clients/08-wasm"; + rev = ibc-go-v7-wasm-src.rev; + vendorHash = "sha256-jPd1mjyjFlS3thN0LlpPUhnA6D4UyVkDU+pcJwI9tp0="; + goVersion = "1.22"; + tags = ["netgo"]; + engine = "cometbft/cometbft"; + preFixup = '' + ${wasmdPreFixupPhase libwasmvm_1_5_0 "simd"} + ''; + buildInputs = [libwasmvm_1_5_0]; + }; + + ibc-go-v8-wasm-simapp = { + name = "simd"; + version = "v8.4.0-wasm"; + src = "${ibc-go-v8-wasm-src}/modules/light-clients/08-wasm"; + rev = ibc-go-v8-wasm-src.rev; + vendorHash = "sha256-z+hmzuAeyVYXtbb3SClfwQW0+nrUiYYYZCP6Vvc4dmQ="; + goVersion = "1.22"; + tags = ["netgo"]; + engine = "cometbft/cometbft"; + preFixup = '' + ${wasmdPreFixupPhase libwasmvm_2_1_0 "simd"} + ''; + buildInputs = [libwasmvm_2_1_0]; + }; }