2017-04-12 17:58:28 +03:00
|
|
|
extern crate parity_wasm;
|
2018-03-13 15:58:18 +03:00
|
|
|
extern crate pwasm_utils as utils;
|
2017-04-12 17:58:28 +03:00
|
|
|
|
|
|
|
use std::env;
|
2017-04-12 19:41:36 +03:00
|
|
|
|
2017-04-12 17:58:28 +03:00
|
|
|
fn main() {
|
|
|
|
|
2018-03-13 15:58:18 +03:00
|
|
|
utils::init_log();
|
2017-05-05 16:06:16 +03:00
|
|
|
|
2017-05-19 16:54:53 +03:00
|
|
|
let args = env::args().collect::<Vec<_>>();
|
|
|
|
if args.len() != 3 {
|
|
|
|
println!("Usage: {} input_file.wasm output_file.wasm", args[0]);
|
|
|
|
return;
|
|
|
|
}
|
2017-04-12 17:58:28 +03:00
|
|
|
|
2017-05-19 16:54:53 +03:00
|
|
|
// Loading module
|
|
|
|
let module = parity_wasm::deserialize_file(&args[1]).expect("Module deserialization to succeed");
|
2017-04-12 17:58:28 +03:00
|
|
|
|
2018-03-13 15:58:18 +03:00
|
|
|
let result = utils::inject_gas_counter(
|
2018-02-19 19:28:12 +03:00
|
|
|
module, &Default::default()
|
|
|
|
).expect("Failed to inject gas. Some forbidden opcodes?");
|
2017-04-12 17:58:28 +03:00
|
|
|
|
2017-10-04 13:53:03 +03:00
|
|
|
parity_wasm::serialize_to_file(&args[2], result).expect("Module serialization to succeed")
|
2017-04-12 17:58:28 +03:00
|
|
|
}
|