From feeaa873f9ef3c0d05c9abef1345625934a4a2d3 Mon Sep 17 00:00:00 2001 From: Ro6afF Date: Tue, 11 Mar 2025 16:41:46 +0200 Subject: [PATCH 1/3] feat(pkgs/foundry): Implement package for foundry v1.0.0 --- packages/all-packages.nix | 6 ++++++ packages/default.nix | 3 +++ packages/foundry/default.nix | 39 ++++++++++++++++++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 packages/foundry/default.nix diff --git a/packages/all-packages.nix b/packages/all-packages.nix index 4fff0e1d..97b67191 100644 --- a/packages/all-packages.nix +++ b/packages/all-packages.nix @@ -23,6 +23,7 @@ cardano-cli pkgs-with-rust-overlay rust-bin-2024-08-01 + unstable-pkgs ; python3Packages = pkgs.python3Packages; @@ -119,6 +120,8 @@ graphql = callPackage ./graphql/default.nix { inherit cardano-cli cardano-node; }; cardano = callPackage ./cardano/default.nix { inherit cardano-cli cardano-node graphql; }; + foundry = callPackage ./foundry/default.nix { inherit unstable-pkgs; }; + polkadot-generic = callPackage ./polkadot/default.nix { craneLib = craneLib-stable; inherit (darwin) libiconv; @@ -189,6 +192,9 @@ { legacyPackages.metacraft-labs = rec { + + inherit foundry; + gaiad = callPackage ./gaiad { }; cosmos-theta-testnet = callPackage ./cosmos-theta-testnet { inherit gaiad; }; blst = callPackage ./blst { }; diff --git a/packages/default.nix b/packages/default.nix index b31fb44d..9d75dc05 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -23,6 +23,8 @@ in pkgs.extend rust-overlay; + unstable-pkgs = inputs.nixpkgs-unstable.legacyPackages.${system}; + rust-stable = pkgs-with-rust-overlay.rust-bin.stable.latest.default.override { extensions = [ "rust-src" ]; targets = [ @@ -90,6 +92,7 @@ craneLib-stable craneLib-nightly pkgs-with-rust-overlay + unstable-pkgs ; rust-bin-2024-08-01 = inputs.rust-overlay-2024-08-01.lib.mkRustBin { } pkgs; diff --git a/packages/foundry/default.nix b/packages/foundry/default.nix new file mode 100644 index 00000000..71882fa4 --- /dev/null +++ b/packages/foundry/default.nix @@ -0,0 +1,39 @@ +{ + unstable-pkgs, + ... +}: +with unstable-pkgs; +rustPlatform.buildRustPackage rec { + pname = "foundry"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "foundry-rs"; + repo = pname; + rev = "v${version}"; + hash = "sha256-YTsneUj5OPw7EyKZMFLJJeAtZoD0je1DdmfMjVju4L8="; + }; + + solc-bin-json = fetchurl { + url = "https://raw.githubusercontent.com/ethereum/solc-bin/f5f39aa9f399dbd24e2dcbccb9e277c573a49d1b/linux-amd64/list.json"; + hash = "sha256-uiVRa6ewZDd1W62Vp5GGruJDO+fH8G8abVkz3XZZ/u8="; + }; + + cargoLock = { + lockFile = "${src}/Cargo.lock"; + }; + + doCheck = false; + + SVM_RELEASES_LIST_JSON = "${solc-bin-json}"; + + meta = { + description = "Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust."; + homepage = "https://github.com/foundry-rs/foundry"; + license = [ + lib.licenses.mit + lib.licenses.asl20 + ]; + maintainers = [ ]; + }; +} From 1ccba1d0635c656db62b52e608464425bf782765 Mon Sep 17 00:00:00 2001 From: Ro6afF Date: Thu, 13 Mar 2025 16:12:49 +0200 Subject: [PATCH 2/3] feat(pkgs/cargo-stylus): Implement package for cargo-stylus v0.5.8 --- flake.nix | 1 + packages/all-packages.nix | 2 ++ packages/cargo-stylus/default.nix | 38 +++++++++++++++++++++++++++++++ shells/stylus.nix | 8 +++++++ 4 files changed, 49 insertions(+) create mode 100644 packages/cargo-stylus/default.nix create mode 100644 shells/stylus.nix diff --git a/flake.nix b/flake.nix index 9a394145..b94495cf 100644 --- a/flake.nix +++ b/flake.nix @@ -75,6 +75,7 @@ devShells.zkwasm = import ./shells/zkwasm.nix { pkgs = final; }; devShells.sp1 = import ./shells/sp1.nix { pkgs = final; }; devShells.risc0 = import ./shells/risc0.nix { pkgs = final; }; + devShells.stylus = import ./shells/stylus.nix { pkgs = final; }; }; }; } diff --git a/packages/all-packages.nix b/packages/all-packages.nix index 97b67191..5b6e293d 100644 --- a/packages/all-packages.nix +++ b/packages/all-packages.nix @@ -121,6 +121,7 @@ cardano = callPackage ./cardano/default.nix { inherit cardano-cli cardano-node graphql; }; foundry = callPackage ./foundry/default.nix { inherit unstable-pkgs; }; + cargo-stylus = callPackage ./cargo-stylus/default.nix { inherit unstable-pkgs; }; polkadot-generic = callPackage ./polkadot/default.nix { craneLib = craneLib-stable; @@ -194,6 +195,7 @@ rec { inherit foundry; + inherit cargo-stylus; gaiad = callPackage ./gaiad { }; cosmos-theta-testnet = callPackage ./cosmos-theta-testnet { inherit gaiad; }; diff --git a/packages/cargo-stylus/default.nix b/packages/cargo-stylus/default.nix new file mode 100644 index 00000000..281b70ce --- /dev/null +++ b/packages/cargo-stylus/default.nix @@ -0,0 +1,38 @@ +{ + unstable-pkgs, + ... +}: +with unstable-pkgs; +rustPlatform.buildRustPackage rec { + pname = "cargo-stylus"; + version = "0.5.8"; + + src = fetchFromGitHub { + owner = "OffchainLabs"; + repo = pname; + rev = "v${version}"; + hash = "sha256-+wHGGzd4GWWmHnxset90s9FAzOjF7VMr58HZHUB+OwQ="; + }; + + cargoLock = { + lockFile = "${src}/Cargo.lock"; + }; + + buildInputs = [ + cargo + openssl + ]; + + nativeBuildInputs = [ + pkg-config + ]; + + meta = { + description = "Cargo subcommand for developing Arbitrum Stylus projects in Rust."; + homepage = "https://github.com/OffchainLabs/cargo-stylus"; + license = [ + lib.licenses.mit + lib.licenses.asl20 + ]; + }; +} diff --git a/shells/stylus.nix b/shells/stylus.nix new file mode 100644 index 00000000..4da7a431 --- /dev/null +++ b/shells/stylus.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: +with pkgs; +mkShell { + packages = [ + metacraft-labs.foundry + metacraft-labs.cargo-stylus + ]; +} From 1514b274999ea071bf4a1c8079211a61683b0ff8 Mon Sep 17 00:00:00 2001 From: Ro6afF Date: Fri, 14 Mar 2025 11:03:24 +0200 Subject: [PATCH 3/3] feat(pkgs/nitro-devnode): Implement package for nitro-devnode commit dd51c52 --- packages/all-packages.nix | 2 ++ packages/nitro-devnode/default.nix | 36 ++++++++++++++++++++++++++++++ shells/stylus.nix | 1 + 3 files changed, 39 insertions(+) create mode 100644 packages/nitro-devnode/default.nix diff --git a/packages/all-packages.nix b/packages/all-packages.nix index 5b6e293d..e1b4aa37 100644 --- a/packages/all-packages.nix +++ b/packages/all-packages.nix @@ -122,6 +122,7 @@ foundry = callPackage ./foundry/default.nix { inherit unstable-pkgs; }; cargo-stylus = callPackage ./cargo-stylus/default.nix { inherit unstable-pkgs; }; + nitro-devnode = callPackage ./nitro-devnode/default.nix { inherit foundry; }; polkadot-generic = callPackage ./polkadot/default.nix { craneLib = craneLib-stable; @@ -196,6 +197,7 @@ inherit foundry; inherit cargo-stylus; + inherit nitro-devnode; gaiad = callPackage ./gaiad { }; cosmos-theta-testnet = callPackage ./cosmos-theta-testnet { inherit gaiad; }; diff --git a/packages/nitro-devnode/default.nix b/packages/nitro-devnode/default.nix new file mode 100644 index 00000000..301eeba7 --- /dev/null +++ b/packages/nitro-devnode/default.nix @@ -0,0 +1,36 @@ +{ + foundry, + pkgs, + stdenv, +}: +with pkgs; +stdenv.mkDerivation rec { + pname = "nitro-devnode"; + version = "dd51c52"; + + src = fetchFromGitHub { + owner = "OffchainLabs"; + repo = "nitro-devnode"; + rev = "dd51c52129276f940632a4c4bf13844a93499a9f"; + hash = "sha256-0ppC05xfVOrcn2yATni3n3oh4A8MEMdgvhs8E2wNsr8="; + }; + + buildInputs = [ + bash + docker + foundry + ]; + + buildPhase = '' + mkdir -p $out/bin + cp ${src}/run-dev-node.sh $out/bin/run-nitro-devnode + ''; + + meta = { + description = "A script for running an Arbitrum Nitro dev node and deploying contracts for testing."; + homepage = "https://github.com/OffchainLabs/nitro-devnode"; + license = [ + lib.licenses.asl20 + ]; + }; +} diff --git a/shells/stylus.nix b/shells/stylus.nix index 4da7a431..416ed09f 100644 --- a/shells/stylus.nix +++ b/shells/stylus.nix @@ -4,5 +4,6 @@ mkShell { packages = [ metacraft-labs.foundry metacraft-labs.cargo-stylus + metacraft-labs.nitro-devnode ]; }