Crate soroban_sdk
source ·Expand description
Soroban SDK supports writing programs for the Soroban smart contract platform.
Docs
See soroban.stellar.org for documentation.
Examples
use soroban_sdk::{contract, contractimpl, vec, symbol_short, BytesN, Env, Symbol, Vec};
#[contract]
pub struct HelloContract;
#[contractimpl]
impl HelloContract {
pub fn hello(env: Env, to: Symbol) -> Vec<Symbol> {
vec![&env, symbol_short!("Hello"), to]
}
}
#[test]
fn test() {
let env = Env::default();
let contract_id = env.register_contract(None, HelloContract);
let client = HelloContractClient::new(&env, &contract_id);
let words = client.hello(&symbol_short!("Dev"));
assert_eq!(words, vec![&env, symbol_short!("Hello"), symbol_short!("Dev"),]);
}
More examples are available at https://soroban.stellar.org/docs/category/how-to-guides.
Modules
- arbitrary
testutils
Support for fuzzing Soroban contracts withcargo-fuzz
. - Crypto contains functions for cryptographic functions.
- Deploy contains types for deploying contracts.
- Events contains types for publishing contract events.
- Ledger contains types for retrieving information about the current ledger.
- Logging contains types for logging debug events.
- Storage contains types for storing data for the currently executing contract.
- testutils
testutils
Utilities intended for use when testing. - Token contains types for calling and accessing token contracts, including the Stellar Asset Contract.
- Convert values to and from Bytes.
Macros
- Assert a condition and panic with the given error if it is false.
- Create a Bytes with an array, or an integer or hex literal.
- Create a BytesN with an array, or an integer or hex literal.
- Import a contract from its WASM file, generating a constant holding the contract file.
- Import a contract from its WASM file, generating a client, types, and constant holding the contract file.
- Adds a serialized SCMetaEntry::SCMetaV0 to the WASM contracts custom section under the section name ‘contractmetav0’. Contract developers can use this to append metadata to their contract.
- Log a debug event.
- Create a Map with the given key-value pairs.
- Panic with the given error.
- Create a short Symbol constant with the given string.
- Create a Vec with the given items.
Structs
- Address is a universal opaque identifier to use in contracts.
- Bytes is a contiguous growable array type containing
u8
s. - BytesN is a contiguous fixed-size array type containing
u8
s. - Error type indicating a failure to convert some type to another; details of the failed conversion will typically be written to the debug log.
- Duration holds a 64-bit unsigned integer.
- The Env type provides access to the environment the contract is executing within.
- I256 holds a 256-bit signed integer.
- Map is a ordered key-value dictionary.
- String is a contiguous growable array type containing
u8
s. - Symbol is a short string with a limited character set.
- Timepoint holds a 64-bit unsigned integer.
- U256 holds a 256-bit unsigned integer.
- Raw value of the Soroban smart contract platform that types can be converted to and from for storing, or passing between contracts.
- Vec is a sequential and indexable growable collection type.
Traits
- Used to do conversions between values in the Soroban environment.
- Used to do conversions between values in the Soroban environment.
- Used to do conversions between values in the Soroban environment.
- Used to do conversions between values in the Soroban environment.
Attribute Macros
- Marks a type as being the type that contract functions are attached for.
- Generates a client for a contract trait.
- Generates conversions from the repr(u32) enum from/into an
Error
. - Exports the publicly accessible functions to the Soroban environment.
- Generates conversions from the struct/enum from/into a
Val
.