diff --git a/Cargo.toml b/Cargo.toml index 2b37e54..b4944ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,8 +14,8 @@ glob = "0.2" [lib] [[bin]] -name = "wasm-opt" -path = "opt/src/main.rs" +name = "wasm-prune" +path = "prune/src/main.rs" [[bin]] name = "wasm-ext" diff --git a/opt/.gitignore b/opt/.gitignore deleted file mode 100644 index f2f9e58..0000000 --- a/opt/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -target -Cargo.lock \ No newline at end of file diff --git a/opt/Cargo.toml b/opt/Cargo.toml deleted file mode 100644 index 5270544..0000000 --- a/opt/Cargo.toml +++ /dev/null @@ -1,9 +0,0 @@ -[package] -name = "wasm-opt" -version = "0.1.0" -authors = ["NikVolf "] - -[dependencies] -parity-wasm = "0.12" -wasm-utils = { path = "../" } -clap = "2.24" diff --git a/opt/src/main.rs b/opt/src/main.rs deleted file mode 100644 index 6175ad9..0000000 --- a/opt/src/main.rs +++ /dev/null @@ -1,44 +0,0 @@ -extern crate parity_wasm; -extern crate wasm_utils; -extern crate clap; - -use clap::{App, Arg}; - -fn main() { - wasm_utils::init_log(); - - let matches = App::new("wasm-opt") - .arg(Arg::with_name("input") - .index(1) - .required(true) - .help("Input WASM file")) - .arg(Arg::with_name("output") - .index(2) - .required(true) - .help("Output WASM file")) - .arg(Arg::with_name("exports") - .long("exports") - .short("e") - .takes_value(true) - .value_name("functions") - .help("Comma-separated list of exported functions to keep. Default: _call")) - .get_matches(); - - let exports = matches - .value_of("exports") - .unwrap_or("_call") - .split(',') - .collect(); - - let input = matches.value_of("input").expect("is required; qed"); - let output = matches.value_of("output").expect("is required; qed"); - - let mut module = parity_wasm::deserialize_file(&input).unwrap(); - - // Invoke optimizer - // Contract is supposed to have only these functions as public api - // All other symbols not usable by this list is optimized away - wasm_utils::optimize(&mut module, exports).expect("Optimizer to finish without errors"); - - parity_wasm::serialize_to_file(&output, module).unwrap(); -}