当我运行构建命令时
cargo build-bpf --manifest-path=Cargo.toml --bpf-out-dir=dist/program
Run Code Online (Sandbox Code Playgroud)
错误:下载失败solana-frozen-abi v1.7.9
原因:无法从源获取包
原因:无法解析清单/home/USER/.cargo/registry/src/github.com-1ecc6299db9ec823/solana-frozen-abi-1.7.9/Cargo.toml
原因:resolver需要功能
有人遇到过类似的问题,但原因是旧的 rustc 版本。我的看起来不错
rustc --version
rustc 1.55.0-nightly (7c3872e6b 2021-06-24)
cargo --version
cargo 1.55.0-nightly (9233aa06c 2021-06-22)
Run Code Online (Sandbox Code Playgroud)
我的 Cargo.toml 文件看起来像
[package]
name = "test"
version = "0.0.1"
edition = "2018"
exclude = ["tests/**"]
[features]
no-entrypoint = []
test-bpf = []
[dependencies]
borsh = "0.8.2"
num-derive = "0.3"
num-traits = "0.2"
solana-program = "1.6.10"
spl-token = { version="3.1.1", features = [ "no-entrypoint" ] }
thiserror = "1.0"
[dev-dependencies]
solana-program-test …Run Code Online (Sandbox Code Playgroud) 我在这里跟随 - https://docs.solana.com/developing/on-chain-programs/debugging
我已将这一行包含在 .bashrc 中
export RUST_LOG=solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=info,solana_bpf_loader=debug,solana_rbpf=debug
Run Code Online (Sandbox Code Playgroud)
当我将程序部署到 solana-test-validator 并调用该函数时,程序成功完成,但是 msg! Rust 程序中的调用不会在控制台中打印。
我收到以下命令未找到错误。我必须配置 github 货物注册表吗?
$RUST_LOG
solana_runtime::system_instruction_processor=trace,solana_runtime::message_processor=info,solana_bpf_loader=debug,solana_rbpf=debug: command not found
Run Code Online (Sandbox Code Playgroud) 我运行了这个 CLI 命令
solana-keygen new --outfile ~/my-solana-wallet/my-keypair.json
Run Code Online (Sandbox Code Playgroud)
并复制了公钥、BIP39 密码和 12 个种子词。当我将种子词复制到 phantom 和 sollet 中时,它显示空帐户。我将 SOL 发送到该公钥地址,但担心我丢失了它。
如何通过 sollet 或 phatom 钱包访问我的帐户?
当我在此代码上运行 Cargo test-bpf --manifest-path=./Cargo.toml 时
#[tokio::test]
async fn test_init_mapping() {
let program_id = Pubkey::new_unique();
let mut init_map_test = ProgramTest::new(
"simple", // Run the BPF version with `cargo test-bpf`
program_id,
processor!(process_instruction),
);
let main_pubkey = Pubkey::new_unique();
let main_account = Account {
lamports: 100,
owner: program_id,
..Account::default()
};
init_map_test.add_account(main_pubkey, main_account);
let (mut banks_client, payer, recent_blockhash) = init_map_test.start().await;
}
Run Code Online (Sandbox Code Playgroud)
我收到这个错误。
线程“test_init_mapping”因“调用上下文未设置!”而惊慌失措。**
我不知道如何调试这个,所以任何帮助都很棒。我已将问题范围缩小到最后一行。我的项目中一定有其他地方设置错误吗?
我不认为这段代码有问题,因为它是从 helloworld 示例中复制粘贴的。
编辑:我留下了原始问题的重要细节。在最后一行之后,我收到了 msg!("started"); ,我认为无关紧要,所以将其排除在外