#entrypoint #solana #programs

nitrate

为 Solana 程序定制的轻量级入口点

2 个不稳定版本

0.1.0 2024年5月2日
0.0.0 2024年4月29日

#5 in #entrypoint

Apache-2.0

40KB
455

nitrate

Nitrate

为 Solana 程序定制的轻量级入口点。

入门

在你的项目文件夹中

cargo add nitrate

在你的入口点定义上

use nitrate::{entrypoint, program::AccountInfo};
use solana_program::{
    entrypoint::ProgramResult,
    msg,
    pubkey::Pubkey,
};

// custom entrypoint definition:
//
//   1. name of the process instruction function
//   2. expected number of accounts
entrypoint!(process_instruction, 10);

pub fn process_instruction(
    program_id: &Pubkey,
    accounts: &[AccountInfo],
    instruction_data: &[u8],
) -> ProgramResult {
    msg!("Hello from my program!");

    Ok(())
}

与标准 entrypoint! 宏的主要区别在于 nitrate 代表一个在读取输入缓冲区时不执行分配或复制的入口点,因此使用更少的计算单元来解析输入账户。

入口点包含一个配套的 macroprogram 类型包。

[!重要] 程序可以接收比指定最大数量更多的账户,但任何超出最大数量的账户将被忽略。在理想情况下,这个数字应该等于你的程序中最大指令所需的账户数量。

许可证

版权所有 (c) 2024 nifty-oss 维护者

根据 Apache 许可证 2.0 版本(“许可证”);除非遵守许可证规定,否则不得使用此文件。您可以在以下位置获得许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的具体语言规定、权限和限制,请参阅许可证。

依赖项

~17–26MB
~444K SLoC