Crates.io | sep-41-token |
lib.rs | sep-41-token |
version | 1.0.0 |
source | src |
created_at | 2023-10-20 18:39:29.603661 |
updated_at | 2024-04-02 17:00:02.35706 |
description | SEP-0041 Standard Token trait, client, and mock implementation |
homepage | |
repository | https://github.com/script3/sep-40-oracle |
max_upload_size | |
id | 1009303 |
size | 18,139 |
Exposes the interface of the SEP-0041 Token alongside a mock token contract.
SEP-0041 Definition: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/sep-0041.md
This is experimental software and is provided on an "as is" and "as available" basis.
We do not give any warranties and will not be liable for any loss incurred through any use of this codebase.
Add the package to your Cargo.toml
:
[dependencies]
sep-41-token = "<desired version>"
You can optionally include the testutils
feature in your dev-dependencies
to deploy a mock version of the sep-41-token
for testing:
[dev_dependencies]
sep-40-token = { version = "<desired version>", features = ["testutils"] }
This package exposes 3 different token clients based on your usage.
TokenClient
is the SEP-0041
standard and is derived from the trait Token
StellarAssetClient
exposes the functions implemented by the Stellar Asset Contract and is derived from the trait StellarAssetExtension
This package exposes an example Soroban token implementation of the SEP-0041
standard that can be used to test protocol interactions with Soroban tokens. This is important to test as interacting with Soroban tokens has a much larger cost impact than interacting with the Stellar Asset Contract.
A WASM version of the contract can be deployed as follows:
use sep_41_token::testutils::{MockTokenClient, MockTokenWASM};
use soroban_sdk::{testutils::Address as _, Address, Env, String};
let env = Env::default();
let admin = Address::generate(&env);
let token_id = env.register_contract_wasm(None, MockTokenWASM);
let token_client = MockTokenClient::new(&env, &token_id);
token_client.initialize(
&admin,
&7,
&String::from_str(&env, "Name"),
&String::from_str(&env, "Symbol"),
);