Files
lez-programs/modules/token/ffi/src/api/mod.rs
T
r4bbit 154b41ba5c refactor: rename nssa/nssa_core → lee/lee_core
Follow the spel fork's `nssa → lee` refactor (chore/update-lez): the
`#[lez_program]` macro now emits `lee_core::…` paths, so the crate must be
referenced by its real name rather than the `nssa_core` alias.

- Cargo.toml: rename the `nssa_core`/`nssa` dep keys to `lee_core`/`lee` and
  drop the now-redundant `package = "lee_core"`/`package = "lee"` aliases
  (dep name == package name).
- Rust: `nssa_core::` → `lee_core::`, `nssa::` → `lee::` across programs,
  modules, and tools.
- Docs: update the library reference in CLAUDE.md and README.md.

Also drop the dead `NSSA_WALLET_HOME_DIR` env var — superseded by
`LEE_WALLET_HOME_DIR`, which is the only wallet-home var any v0.2.x wallet
reads — from the test tooling (setup-amm-testnet.sh, custom-token.mjs,
run-basecamp-e2e.sh) and docs.

Closes #225
2026-08-26 12:32:37 +02:00

60 lines
1.7 KiB
Rust

//! Transport-independent token client operations.
mod decode;
mod plan;
mod request;
#[cfg(test)]
mod tests;
use std::{error::Error, fmt};
pub use decode::{decode_account, decode_definition, decode_holding, decode_metadata};
pub use plan::{
burn_plan, create_fungible_plan, create_fungible_with_metadata_plan, create_non_fungible_plan,
initialize_holding_plan, mint_plan, mint_with_authority_plan, print_nft_plan, program_id,
set_authority_plan, set_authority_with_authority_plan, transfer_plan,
};
pub use request::{
BurnPlanRequest, CreateFungiblePlanRequest, CreateFungibleWithMetadataPlanRequest,
CreateNonFungiblePlanRequest, DecodeAccountRequest, DecodeDefinitionRequest,
DecodeHoldingRequest, DecodeMetadataRequest, InitializeHoldingPlanRequest, MintPlanRequest,
MintWithAuthorityPlanRequest, PrintNftPlanRequest, ProgramIdRequest, SetAuthorityPlanRequest,
SetAuthorityWithAuthorityPlanRequest, TransferPlanRequest,
};
use serde_json::Value;
use crate::account::parse_program_id;
pub type TokenResponse = Value;
pub type TokenResult = Result<TokenResponse, TokenApiError>;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct TokenApiError {
code: &'static str,
}
impl TokenApiError {
#[must_use]
pub const fn new(code: &'static str) -> Self {
Self { code }
}
#[must_use]
pub const fn code(&self) -> &'static str {
self.code
}
}
impl fmt::Display for TokenApiError {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
formatter.write_str(self.code)
}
}
impl Error for TokenApiError {}
fn parse_token_program_id(value: &str) -> Result<lee_core::program::ProgramId, TokenApiError> {
parse_program_id(value).map_err(|_| TokenApiError::new("bad_request"))
}