Skip to content

Commit

Permalink
Restore Foundry to a test dependency via direct usage of solc
Browse files Browse the repository at this point in the history
  • Loading branch information
kayabaNerve committed Nov 12, 2023
1 parent 7f1732c commit a43815f
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 31 deletions.
6 changes: 0 additions & 6 deletions .github/actions/build-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 1 addition & 0 deletions .github/actions/test-dependencies/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 10 additions & 2 deletions coins/ethereum/build.rs
Original file line number Diff line number Diff line change
@@ -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());
}
6 changes: 0 additions & 6 deletions coins/ethereum/foundry.toml

This file was deleted.

2 changes: 1 addition & 1 deletion coins/ethereum/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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<Provider<Http>>,
Expand Down
18 changes: 3 additions & 15 deletions coins/ethereum/tests/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,28 +27,16 @@ use ethereum_serai::{
contract::{Schnorr, call_verify},
};

#[derive(serde::Deserialize)]
struct Bytecode {
object: String,
}

#[derive(serde::Deserialize)]
struct Artifact {
abi: Option<Abi>,
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(
chain_id: u32,
client: Arc<Provider<Http>>,
wallet: &k256::ecdsa::SigningKey,
) -> eyre::Result<Schnorr<Provider<Http>>> {
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();
Expand Down
2 changes: 1 addition & 1 deletion docs/Getting Started.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a43815f

Please sign in to comment.