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::{contractimpl, vec, BytesN, Env, Symbol, Vec};

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

  • Crypto contains functions for cryptographic functions.
  • Deploy contains types for deploying contracts.
  • Events contains types for publishing contract events.
  • Iterators for use with collections like Map, [Set], Vec.
  • 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.
  • testutilstestutils
    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 Vec with the given items.

Structs

  • Address is a universal opaque identifier to use in contracts.
  • Bytes is a contiguous growable array type containing u8s.
  • BytesN is a contiguous fixed-size array type containing u8s.
  • Error type indicating a failure to convert some type to another; details of the failed conversion will typically be written to the debug log.
  • The Env type provides access to the environment the contract is executing within.
  • Map is a ordered key-value dictionary.
  • Raw value of the Soroban smart contract platform that types can be converted to and from for storing, or passing between contracts.
  • String is a contiguous growable array type containing u8s.
  • Symbol is a short string with a limited character set.
  • 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

  • Generates a client for a contract trait.
  • Generates conversions from the repr(u32) enum from/into a Status.
  • Exports the publicly accessible functions to the Soroban environment.
  • Generates conversions from the struct/enum from/into a RawVal.