diff --git a/.github/actions/build-dependencies/action.yml b/.github/actions/build-dependencies/action.yml index cd7137a3..8717be4e 100644 --- a/.github/actions/build-dependencies/action.yml +++ b/.github/actions/build-dependencies/action.yml @@ -54,11 +54,5 @@ runs: components: ${{ inputs.rust-components }} targets: wasm32-unknown-unknown, riscv32imac-unknown-none-elf - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@cb603ca0abb544f301eaed59ac0baf579aa6aecf - with: - version: nightly - cache: false - # - name: Cache Rust # uses: Swatinem/rust-cache@a95ba195448af2da9b00fb742d14ffaaf3c21f43 diff --git a/.github/actions/test-dependencies/action.yml b/.github/actions/test-dependencies/action.yml index 748d21a7..b313b38d 100644 --- a/.github/actions/test-dependencies/action.yml +++ b/.github/actions/test-dependencies/action.yml @@ -29,6 +29,7 @@ runs: uses: foundry-rs/foundry-toolchain@cb603ca0abb544f301eaed59ac0baf579aa6aecf with: version: nightly + cache: false - name: Run a Monero Regtest Node uses: ./.github/actions/monero diff --git a/coins/ethereum/build.rs b/coins/ethereum/build.rs index 8094bbfe..2166f6ad 100644 --- a/coins/ethereum/build.rs +++ b/coins/ethereum/build.rs @@ -1,7 +1,15 @@ fn main() { println!("cargo:rerun-if-changed=contracts"); println!("cargo:rerun-if-changed=artifacts"); - println!("cargo:rerun-if-changed=foundry.toml"); - assert!(std::process::Command::new("forge").args(["build"]).status().unwrap().success()); + #[rustfmt::skip] + let args = [ + "--base-path", ".", + "-o", "./artifacts", "--overwrite", + "--bin", "--abi", + "--optimize", + "./contracts/Schnorr.sol" + ]; + + assert!(std::process::Command::new("solc").args(args).status().unwrap().success()); } diff --git a/coins/ethereum/foundry.toml b/coins/ethereum/foundry.toml deleted file mode 100644 index 1eddc8c8..00000000 --- a/coins/ethereum/foundry.toml +++ /dev/null @@ -1,6 +0,0 @@ -[profile.default] -src = "contracts" -out = "artifacts" - -optimizer = true -optimizer_runs = 20_000 diff --git a/coins/ethereum/src/contract.rs b/coins/ethereum/src/contract.rs index 19104005..80093b08 100644 --- a/coins/ethereum/src/contract.rs +++ b/coins/ethereum/src/contract.rs @@ -12,7 +12,7 @@ pub enum EthereumError { VerificationError, } -abigen!(Schnorr, "./artifacts/Schnorr.sol/Schnorr.json"); +abigen!(Schnorr, "./artifacts/Schnorr.abi"); pub async fn call_verify( contract: &Schnorr>, diff --git a/coins/ethereum/tests/contract.rs b/coins/ethereum/tests/contract.rs index 9a0a5b79..5577744a 100644 --- a/coins/ethereum/tests/contract.rs +++ b/coins/ethereum/tests/contract.rs @@ -27,17 +27,6 @@ use ethereum_serai::{ contract::{Schnorr, call_verify}, }; -#[derive(serde::Deserialize)] -struct Bytecode { - object: String, -} - -#[derive(serde::Deserialize)] -struct Artifact { - abi: Option, - bytecode: Bytecode, -} - // TODO: Replace with a contract deployment from an unknown account, so the environment solely has // to fund the deployer, not create/pass a wallet pub async fn deploy_schnorr_verifier_contract( @@ -45,10 +34,9 @@ pub async fn deploy_schnorr_verifier_contract( client: Arc>, wallet: &k256::ecdsa::SigningKey, ) -> eyre::Result>> { - let path = "./artifacts/Schnorr.sol/Schnorr.json"; - let artifact: Artifact = serde_json::from_reader(File::open(path).unwrap()).unwrap(); - let abi = artifact.abi.unwrap(); - let hex_bin_buf = artifact.bytecode.object; + let abi: Abi = serde_json::from_reader(File::open("./artifacts/Schnorr.abi").unwrap()).unwrap(); + + let hex_bin_buf = std::fs::read_to_string("./artifacts/Schnorr.bin").unwrap(); let hex_bin = if let Some(stripped) = hex_bin_buf.strip_prefix("0x") { stripped } else { &hex_bin_buf }; let bin = hex::decode(hex_bin).unwrap(); diff --git a/docs/Getting Started.md b/docs/Getting Started.md index 2dd4b2c5..dae481e3 100644 --- a/docs/Getting Started.md +++ b/docs/Getting Started.md @@ -48,7 +48,7 @@ svm install 0.8.16 svm use 0.8.16 ``` -### Install foundry and anvil +### Install foundry (for tests) ``` cargo install --git https://github.com/foundry-rs/foundry --profile local --locked forge cast chisel anvil