linera_execution/wasm/
entrypoints.rs

1// Copyright (c) Zefchain Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4//! Wasm entrypoints for contracts and services.
5
6use linera_base::data_types::StreamUpdate;
7use linera_witty::wit_import;
8
9/// WIT entrypoints for application contracts.
10#[wit_import(package = "linera:app")]
11pub trait ContractEntrypoints {
12    fn instantiate(argument: Vec<u8>);
13    fn execute_operation(operation: Vec<u8>) -> Vec<u8>;
14    fn execute_message(message: Vec<u8>);
15    fn process_streams(streams: Vec<StreamUpdate>);
16    fn finalize();
17}
18
19/// WIT entrypoints for application services.
20#[wit_import(package = "linera:app")]
21pub trait ServiceEntrypoints {
22    fn handle_query(argument: Vec<u8>) -> Vec<u8>;
23}