diff --git a/compiled/gasleft.wasm b/compiled/gasleft.wasm new file mode 100644 index 0000000..5cc274f Binary files /dev/null and b/compiled/gasleft.wasm differ diff --git a/src/gasleft.rs b/src/gasleft.rs new file mode 100644 index 0000000..361ba73 --- /dev/null +++ b/src/gasleft.rs @@ -0,0 +1,21 @@ +#![no_std] + +extern crate pwasm_std; +extern crate pwasm_ethereum; +extern crate bigint; + +use pwasm_std::{Vec, write_u64}; +use pwasm_ethereum::{self as ext}; + +fn push_u64(buf: &mut Vec, val: u64) { + let mut slc = [0u8; 8]; + write_u64(&mut slc, val); + buf.extend(&slc[..]); +} + +#[no_mangle] +pub fn call() { + let mut output: Vec = Vec::with_capacity(8); + push_u64(&mut output, ext::gas_left()); + ext::ret(&output); +}