;; allocate function type (@interface type (func (param i32) (result i32))) ;; 0 ;; deallocate function (@interface type (func (param i32 i32))) ;; 1 ;; invoke function (@interface type (func (param string) (result string))) ;; 2 ;; result extractor functions (@interface type (func (result i32))) ;; 3 ;; result setter functions (@interface type (func (param i32))) ;; 4 ;; import ipfs put/get function (@interface type (func (param i32 i32))) ;; 5 ;; import ipfs put/get function (@interface type (func (param i32 i32))) ;; 6 ;; import ipfs put/get function (@interface type (func (param string) (result string))) ;; 7 ;; import ipfs put/get function (@interface type (func (param string) (result string))) ;; 8 ;; import ipfs put/get function (@interface type (func (param i32 i32))) ;; 9 ;; import ipfs put/get function (@interface type (func (param i32 i32))) ;; 10 ;; export ipfs put/get function (@interface type (func (param string) (result string))) ;; 11 ;; export ipfs put/get function (@interface type (func (param string) (result string))) ;; 12 (@interface export "allocate" (func 0)) ;; 0 (@interface export "deallocate" (func 1)) ;; 1 (@interface export "invoke" (func 2)) ;; 2 (@interface export "get_result_size" (func 3)) ;; 3 (@interface export "get_result_ptr" (func 3)) ;; 4 (@interface export "set_result_size" (func 4)) ;; 5 (@interface export "set_result_ptr" (func 4)) ;; 6 (@interface export "put" (func 11)) ;; 7 (@interface export "get" (func 12)) ;; 8 (@interface import "ipfs_node.wasm" "get" (func (type 5))) (@interface import "ipfs_node.wasm" "put" (func (type 6))) (@interface import "ipfs_node.wasm" "get" (func (type 7))) ;; 9 (@interface import "ipfs_node.wasm" "put" (func (type 8))) ;; 10 ;; adapter for export invoke function (@interface func (type 2) arg.get 0 string.size call-core 0 ;; call allocate arg.get 0 string.lower_memory call-core 2 ;; call invoke call-core 4 ;; call get_result_size call-core 3 ;; call get_result_ptr string.lift_memory call-core 4 ;; call get_result_size call-core 3 ;; call get_result_ptr call-core 1 ;; call deallocate ) ;; adapter for export put function (@interface func (type 11) arg.get 0 string.size call-core 0 ;; call allocate arg.get 0 string.lower_memory call-core 7 ;; call put call-core 4 ;; call get_result_size call-core 3 ;; call get_result_ptr string.lift_memory call-core 4 ;; call get_result_size call-core 3 ;; call get_result_ptr call-core 1 ;; call deallocate ) ;; adapter for export get function (@interface func (type 12) arg.get 0 string.size call-core 0 ;; call allocate arg.get 0 string.lower_memory call-core 8 ;; call get call-core 4 ;; call get_result_size call-core 3 ;; call get_result_ptr string.lift_memory call-core 4 ;; call get_result_size call-core 3 ;; call get_result_ptr call-core 1 ;; call deallocate ) ;; adapter for import function ipfs.get (@interface func (type 9) arg.get 0 arg.get 1 string.lift_memory call-core 9 ;; call ipfs_node.get that returns string dup string.size call-core 0 ;; call allocate swap2 string.lower_memory call-core 5 ;; call set_result_size call-core 6 ;; call set_result_ptr ) ;; adapter for import function ipfs.put (@interface func (type 10) arg.get 0 arg.get 1 string.lift_memory call-core 10 ;; call ipfs_node.put that returns string dup string.size call-core 0 ;; call allocate swap2 string.lower_memory call-core 5 ;; call set_result_size call-core 6 ;; call set_result_ptr ) ;; Implementations (@interface implement (func 2) (func 2)) (@interface implement (func 5) (func 9)) (@interface implement (func 6) (func 10)) (@interface implement (func 11) (func 11)) (@interface implement (func 12) (func 12))