10 releases
| 0.3.0 | Jul 24, 2025 |
|---|---|
| 0.2.4 | Mar 19, 2025 |
| 0.2.2 | Jan 3, 2025 |
| 0.2.1 | Oct 26, 2024 |
| 0.0.0 |
|
#8 in #pinocchio
25,911 downloads per month
Used in 43 crates
(26 directly)
170KB
2.5K
SLoC
pinocchio-pubkey
Companion Pubkey helpers for pinocchio.
Overview
This crate provides two convenience macros to resolve Pubkeys at compile time:
pubkey!: takes a pubkey value as a base58&strand generates its correspondentPubkey(byte array)declare_id!: takes a pubkey value as a base58&str(usually representing a program address) and generates anIDconstant,check_id()andid()helpers
It also defines a from_str helper that takes a &str and returns the correspondent Pubkey value.
Examples
Once the project is built the first time with cargo build-sbf, a new keypair is automatically generated. A public key can be retrieved with:
solana-keygen pubkey ./target/deploy/your_program-keypair.json
Instead of the autogenerated keypair, a vanity key can be used. You can move the vanity keypair to ./target/deploy/your_program-keypair.json.
Remember to back up the keypair file securely, it is necessary for deploy the program.
Public keys can be embedded into the program code in the following ways.
- Creating a
Pubkeyconstant value from a static&str:
use pinocchio::pubkey::Pubkey;
pub const AUTHORITY: Pubkey = pinocchio_pubkey::pubkey!("7qtAvP4CJuSKauWHtHZJt9wmQRgvcFeUcU3xKrFzxKf1");
- Declaring the program address of a program (usually on your
lib.rs):
pinocchio_pubkey::declare_id!("Ping111111111111111111111111111111111111111");
- Creating a
Pubkeyfrom a&str:
let address = String::from("7qtAvP4CJuSKauWHtHZJt9wmQRgvcFeUcU3xKrFzxKf1");
let owner = pinocchio_pubkey::from_str(&address);
License
The code is licensed under the Apache License Version 2.0
Dependencies
~0–1.1MB