From 816a57909d4dcabb82b12acb501e7349f5c2284e Mon Sep 17 00:00:00 2001 From: 0xgleb Date: Wed, 6 May 2026 16:50:01 +0700 Subject: [PATCH] feat: provide json abi as flake output --- Cargo.lock | 7 +++++++ crates/float/src/lib.rs | 4 ++-- flake.nix | 36 ++++++++++++++++++++++++++++++++++-- 3 files changed, 43 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bb9ade17..1728af1d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3181,6 +3181,13 @@ dependencies = [ "wasm-bindgen-utils", ] +[[package]] +name = "rain-math-float-wasm" +version = "0.1.0" +dependencies = [ + "rain-math-float", +] + [[package]] name = "rand" version = "0.8.5" diff --git a/crates/float/src/lib.rs b/crates/float/src/lib.rs index b447a856..26638ac0 100644 --- a/crates/float/src/lib.rs +++ b/crates/float/src/lib.rs @@ -24,14 +24,14 @@ use evm::execute_test_call; sol!( #![sol(all_derives)] DecimalFloat, - "../../out/DecimalFloat.sol/DecimalFloat.json" + env!("RAIN_MATH_FLOAT_DECIMAL_FLOAT_ABI") ); #[cfg(test)] sol!( #![sol(all_derives)] TestDecimalFloat, - "../../out/TestDecimalFloat.sol/TestDecimalFloat.json" + env!("RAIN_MATH_FLOAT_TEST_DECIMAL_FLOAT_ABI") ); #[derive(Debug, Copy, Clone, Default, Serialize, Deserialize, Hash)] diff --git a/flake.nix b/flake.nix index 7c850c76..55d630ed 100644 --- a/flake.nix +++ b/flake.nix @@ -8,9 +8,38 @@ outputs = { self, flake-utils, rainix }: flake-utils.lib.eachDefaultSystem (system: - let pkgs = rainix.pkgs.${system}; + let + pkgs = rainix.pkgs.${system}; + + decimal-float-abi = pkgs.stdenvNoCC.mkDerivation { + pname = "rain-math-float-abi"; + version = "0.1.0"; + src = ./.; + + nativeBuildInputs = [ pkgs.foundry-bin pkgs.solc_0_8_25 ]; + + FOUNDRY_SOLC = "${pkgs.solc_0_8_25}/bin/solc-0.8.25"; + FOUNDRY_OFFLINE = "true"; + + buildPhase = '' + runHook preBuild + export HOME="$TMPDIR" + forge build + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + mkdir -p $out + cp out/DecimalFloat.sol/DecimalFloat.json $out/DecimalFloat.json + cp out/TestDecimalFloat.sol/TestDecimalFloat.json $out/TestDecimalFloat.json + runHook postInstall + ''; + }; in rec { packages = rainix.packages.${system} // { + inherit decimal-float-abi; + test-wasm-build = rainix.mkTask.${system} { name = "test-wasm-build"; body = '' @@ -31,7 +60,10 @@ }; devShells.default = pkgs.mkShell { - shellHook = rainix.devShells.${system}.default.shellHook; + shellHook = rainix.devShells.${system}.default.shellHook + '' + export RAIN_MATH_FLOAT_DECIMAL_FLOAT_ABI="$PWD/out/DecimalFloat.sol/DecimalFloat.json" + export RAIN_MATH_FLOAT_TEST_DECIMAL_FLOAT_ABI="$PWD/out/TestDecimalFloat.sol/TestDecimalFloat.json" + ''; packages = [ packages.test-wasm-build packages.test-js-bindings ]; inputsFrom = [ rainix.devShells.${system}.default ]; };