stellar-interchain-token 2.0.1

InterchainToken contract, responsible for implementing an interchain token that is compatible with SEP-41.
Documentation
use stellar_axelar_std::{contractstorage, contracttype, soroban_sdk, Address, BytesN};

#[contracttype]
#[derive(Clone)]
pub struct AllowanceDataKey {
    pub from: Address,
    pub spender: Address,
}

#[contracttype]
pub struct AllowanceValue {
    pub amount: i128,
    pub expiration_ledger: u32,
}

/// Do not use the symbol `METADATA` as a key as it is reserved for token metadata.
#[contractstorage]
enum DataKey {
    #[temporary]
    #[value(AllowanceValue)]
    Allowance { key: AllowanceDataKey },

    #[persistent]
    #[value(i128)]
    Balance { address: Address },

    #[instance]
    #[status]
    Minter { minter: Address },

    #[instance]
    #[value(BytesN<32>)]
    TokenId,
}