Nagaprasad V R 17b0e862c0 `feat` : add multisig state (#227) 3 meses atrás
..
src 17b0e862c0 `feat` : add multisig state (#227) 3 meses atrás
Cargo.toml 55ecb47a4f `feat` : add token-2022 core ixs and state (#190) 3 meses atrás
README.md 55ecb47a4f `feat` : add token-2022 core ixs and state (#190) 3 meses atrás

README.md

pinocchio-token-2022

pinocchio-token-2022

Overview

This crate contains pinocchio helpers to perform cross-program invocations (CPIs) for SPL Token-2022 instructions.

Each instruction defines a struct with the accounts and parameters required. Once all values are set, you can call directly invoke or invoke_signed to perform the CPI.

Instruction that are common to both SPL Token and SPL Token-2022 programs expect the program address, so they can be used to invoke either token program.

This is a no_std crate.

Note: The API defined in this crate is subject to change.

Examples

Initializing a mint account:

// This example assumes that the instruction receives a writable `mint`
// account; `authority` is a `Pubkey`.
// The SPL Token program is being invoked.
InitializeMint {
    mint,
    rent_sysvar,
    decimals: 9,
    mint_authority: authority,
    freeze_authority: Some(authority),
    token_program: Pubkey::from_str("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
}.invoke()?;

Performing a transfer of tokens:

// This example assumes that the instruction receives writable `from` and `to`
// accounts, and a signer `authority` account.
// The SPL Token-2022 is being invoked.
Transfer {
    from,
    to,
    authority,
    amount: 10,
    token_program: Pubkey::from_str("TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb")
}.invoke()?;

License

The code is licensed under the Apache License Version 2.0