mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +00:00
Smash out the router library
This commit is contained in:
42
processor/ethereum/router/build.rs
Normal file
42
processor/ethereum/router/build.rs
Normal file
@@ -0,0 +1,42 @@
|
||||
use std::{env, fs};
|
||||
|
||||
use alloy_sol_macro_input::SolInputKind;
|
||||
|
||||
fn write(sol: syn_solidity::File, file: &str) {
|
||||
let sol = alloy_sol_macro_expander::expand::expand(sol).unwrap();
|
||||
fs::write(file, sol.to_string()).unwrap();
|
||||
}
|
||||
|
||||
fn sol(sol_files: &[&str], file: &str) {
|
||||
let mut sol = String::new();
|
||||
for sol_file in sol_files {
|
||||
sol += &fs::read_to_string(sol_file).unwrap();
|
||||
}
|
||||
let SolInputKind::Sol(sol) = syn::parse_str(&sol).unwrap() else {
|
||||
panic!("parsed .sols file wasn't SolInputKind::Sol");
|
||||
};
|
||||
write(sol, file);
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let artifacts_path =
|
||||
env::var("OUT_DIR").unwrap().to_string() + "/serai-processor-ethereum-router";
|
||||
|
||||
if !fs::exists(&artifacts_path).unwrap() {
|
||||
fs::create_dir(&artifacts_path).unwrap();
|
||||
}
|
||||
|
||||
build_solidity_contracts::build(
|
||||
&["../../../networks/ethereum/schnorr/contracts", "../erc20/contracts"],
|
||||
"contracts",
|
||||
&artifacts_path,
|
||||
)
|
||||
.unwrap();
|
||||
|
||||
// This cannot be handled with the sol! macro. The Solidity requires an import
|
||||
// https://github.com/alloy-rs/core/issues/602
|
||||
sol(
|
||||
&["../../../networks/ethereum/schnorr/contracts/Schnorr.sol", "contracts/Router.sol"],
|
||||
&(artifacts_path + "/router.rs"),
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user