git ssb

0+

wanderer🌟 / js-primea-hypervisor



Tree: 13a1e3d8dd84c2821f34bf0285d2d2c0df84717f

Files: 13a1e3d8dd84c2821f34bf0285d2d2c0df84717f / wasm / interface.wast

1424 bytesRaw
1(module
2 ;; useGas
3 (import $useGas "interface" "useGas" (param i32 i32))
4 (func $useGasShim
5 (param $amount i64)
6 (call_import $useGas
7 (i32.wrap/i64
8 (i64.shr_u (get_local $amount) (i64.const 32)))
9 (i32.wrap/i64 (get_local $amount)))
10 )
11 (export "useGas" $useGasShim)
12
13 ;; getGasLeft
14 (import $getGasLeftHigh "interface" "getGasLeftHigh" (result i32))
15 (import $getGasLeftLow "interface" "getGasLeftLow" (result i32))
16 (func $getGasLeft
17 (result i64)
18 (call_import $useGas (i32.const 0) (i32.const 2))
19 (return
20 (i64.add
21 (i64.shl (i64.extend_u/i32 (call_import $getGasLeftHigh)) (i64.const 32))
22 (i64.extend_u/i32 (call_import $getGasLeftLow))))
23 )
24 (export "getGasLeft" $getGasLeft)
25
26 ;; call
27 ;; (import $call "ethereum" "call" (param i32 i32 i32 i32 i32 i32 i32 i32) (result i32))
28 (import $call "interface" "call" (param i32 i32 i32 i32 i32 i32 i32 i32 i32) (result i32))
29 (func $callShim
30 (param i64 i32 i32 i32 i32 i32 i32 i32)
31 (result i32)
32 (call_import $call
33 (i32.wrap/i64
34 (i64.shr_u (get_local 0) (i64.const 32)))
35 (i32.wrap/i64 (get_local 0))
36 (get_local 1)
37 (get_local 2)
38 (get_local 3)
39 (get_local 4)
40 (get_local 5)
41 (get_local 6)
42 (get_local 7)
43 )
44 )
45 (export "call" $callShim)
46)
47

Built with git-ssb-web