#solana #constant #anchor #pubkey #string #const #string-literal

const_str_to_pubkey

一个库,帮助您使用常量字符串推导出常量 Solana Pubkey

2个版本

0.1.1 2024年3月6日
0.1.0 2024年3月6日

#5#pubkey

Download history 16/week @ 2024-03-13 33/week @ 2024-03-20 28/week @ 2024-03-27 127/week @ 2024-04-03 9/week @ 2024-04-10 18/week @ 2024-04-17 23/week @ 2024-04-24 38/week @ 2024-05-01 19/week @ 2024-05-08 19/week @ 2024-05-15 11/week @ 2024-05-22 19/week @ 2024-05-29 26/week @ 2024-06-05 14/week @ 2024-06-12 8/week @ 2024-06-19 13/week @ 2024-06-26

每月63次下载

WTFPL 许可证

9KB
94

const_str_to_pubkey

一个 Rust 库,帮助开发者使用常量字符串推导出 常量 Solana Pubkey。(Base58 解码算法与 bs58-rs 相同)

我们有时需要声明一个常量 Pubkey(例如,存储管理员公钥)。我们可以使用 Solana 官方库提供的 pubkey! 宏。然而,这个宏仅适用于字符串字面量。如果我们有一个常量 &'static str(例如,来自 env! 宏),我们不能使用 pubkey! 宏推导出常量 Pubkey

这个库解决了这个问题。

使用方法

use const_str_to_pubkey::str_to_pubkey;

const ADMIN_PUBKEY: Pubkey = str_to_pubkey(env!("ADMIN_PUBKEY"));

要编译,运行

ADMIN_PUBKEY=AdminPubkey11111111111111111111111111111111 cargo build-sbf
# or
ADMIN_PUBKEY=AdminPubkey11111111111111111111111111111111 anchor build
# or exports the environment variable

或者创建一个 cargo 配置文件并将管理员公钥存储在那里(参见下一节)。

Cargo 检查错误

当运行 cargo check(有时 rust-analyzer 会为我们运行),我们可能会得到一个错误,表示环境变量未设置。这是因为 cargo 识别不到我们设置的环境变量。

要解决这个问题,我们可以在项目/工作区根目录中添加一个 cargo 配置文件 .cargo/config.toml(有关详细信息,请参阅 The Cargo Book),内容如下

[env]
ADMIN_PUBKEY = "AdminPubkey11111111111111111111111111111111"

依赖项

~16–25MB
~418K SLoC