;; This passes its input to `seal_call_runtime` and returns the return value to its caller. (module (import "__unstable__" "seal_call_runtime" (func $seal_call_runtime (param i32 i32) (result i32))) (import "seal0" "seal_input" (func $seal_input (param i32 i32))) (import "seal0" "seal_return" (func $seal_return (param i32 i32 i32))) (import "env" "memory" (memory 1 1)) ;; 0x1000 = 4k in little endian ;; size of input buffer (data (i32.const 0) "\00\10") (func (export "call") ;; Receive the encoded call (call $seal_input (i32.const 4) ;; Pointer to the input buffer (i32.const 0) ;; Size of the length buffer ) ;; Just use the call passed as input and store result to memory (i32.store (i32.const 0) (call $seal_call_runtime (i32.const 4) ;; Pointer where the call is stored (i32.load (i32.const 0)) ;; Size of the call ) ) (call $seal_return (i32.const 0) ;; flags (i32.const 0) ;; returned value (i32.const 4) ;; length of returned value ) ) (func (export "deploy")) )