问题标签 [solana]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
82 浏览

solana - Solana - 如何获取集群版本

如何在 Solana 上获取集群版本?

例如,我想知道 devnet 集群的当前版本。

是否有命令行或网站告诉我当前版本?

0 投票
1 回答
124 浏览

rust - 我在测试时会发生什么“调用上下文未设置错误”?

当我在此代码上运行 cargo test-bpf --manifest-path=./Cargo.toml

我得到这个错误。

线程“test_init_mapping”在“未设置调用上下文!”时惊慌失措 **

我不知道如何调试它,所以任何帮助都很棒。我已将问题缩小到最后一行。我必须在我的项目中的某个地方设置其他错误?

我认为这段代码不是问题,因为它是从 helloworld 示例中粘贴的。

编辑:我留下了原始问题的重要细节。在最后一行之后我有 msg!("started"); ,我认为无关紧要,所以把它排除在外

0 投票
1 回答
483 浏览

solana - Solana Anchor 如何测试与程序功能交互的不同签名者

如果黑客可以调用或调用某些程序功能,我如何在 Solana Anchor 中进行测试?

是否通过更改签名者数组中的第一个元素:

但是在某些教程案例中,这个签名者数组被省略了......我可以在 Anchor 的哪里设置用于签署交易的调用者的密钥对?

请参阅https://project-serum.github.io/anchor/tutorials/tutorial-1中的示例锚代码

关键词:智能合约,安全测试

0 投票
1 回答
981 浏览

rust - Solana Anchor 如何使用结构数组定义自定义类型?

在 pub mod xyz {...} 中移动我的结构后,我的 Rust 代码:

我的 Rust 程序可以编译,但 Anchor 没有运行并出现错误:

TypeError:无法读取未定义的属性“rpc”

我从本教程 Basic1 中知道:https ://project-serum.github.io/anchor/tutorials/tutorial-1.html#defining-a-program ,它说“如果您想将自己的类型传递为一个指令处理程序的输入,那么它必须在与 #[program] 模块相同的 src/lib.rs 文件中定义,以便 IDL 解析器可以接收它。”,以及关于状态结构的教程 Basic4...

此外,如果我将 Ppool 结构移到 mod 之外,Rust 将编译,但 Anchor 会说“错误:未提供用户定义的类型”......所以我认为 Ppool 结构应该留在 mod 内

但是在将我的 Ppool 结构移动到 mod 之后,我的 Ppool 结构不能有 #[state] ...请参阅以下错误:

我应该在 mod 中为我的 Ppool 结构添加什么样的宏?

0 投票
1 回答
515 浏览

rust - Solana 如何将原生 SOL 质押到 Rust 程序并从程序中撤回 SOL?

我对此进行了谷歌搜索,只找到了如何通过命令行发送令牌:

https://spl.solana.com/token

但我需要在 Rust 程序中/从 Rust 程序中质押/撤回 Native SOL,而不是代币。

我还发现了有关 Rust 原生令牌的信息:

https://docs.rs/solana-program/1.7.10/solana_program/native_token/index.html

https://docs.rs/solana-program/1.7.10/solana_program/native_token/struct.Sol.html

看来我必须声明这个 Sol 结构

然后使用它的“发送”特性发送它......对吗?有人可以通过 Rust 程序解释如何做到这一点吗?

0 投票
1 回答
388 浏览

solana - 如何在 Anchor 上升级程序 ID

每次我在 Solana 上部署锚程序时,它都会创建一个新的程序 ID。无论如何要使用相同的程序 ID 升级锚程序?

0 投票
1 回答
733 浏览

rust - Solana Anchor 如何将代币从程序账户提取到用户账户?

我可以成功地将 USDC 代币从用户账户抵押到程序账户,但是要提取 USDC 代币,它在“check4”之后就失败了:

...

'程序日志:错误:所有者不匹配'

错误:发送交易失败:交易模拟失败:错误处理指令0:自定义程序错误:0x4

在锚脚本中:

上面的accounts对象、amt2、nonce的值和stakeUsdc函数调用中的完全一样……所以不知道owner是哪里错了……

在失败之前,USDC 在 usdc_pgid 帐户上,该帐户由:

usdc_pgid 的所有者是 program.programId,所以我应该让 cpi_accounts 使用 programId 作为权限......比如:

错误[E0599]:在当前范围内没有to_account_info找到用于引用的命名方法&anchor_lang::prelude::Pubkey--> 程序/doge/src/lib.rs:265:33 | 265 | 权限:ctx.program_id.to_account_info(), | ^^^^^^^^^^^^^^^ 方法未在&anchor_lang::prelude::Pubkey

anchor_lang::CpiAccount https://docs.rs/anchor-lang/0.13.2/anchor_lang/struct.CpiAccount.html

anchor_lang::prelude::Pubkey https://docs.rs/anchor-lang/0.13.2/anchor_lang/prelude/struct.Pubkey.html

从上面的文档中,Pubkey 类型没有从 Pubkey 转换为 AccountInfo 类型的方法!我怎样才能做到这一点?

0 投票
1 回答
2140 浏览

rust - 如何在 Serum Anchor 中签署代币交易

我有一个使用 Serum Anchor(在 Solana 上)的简单合约,将代币从一方转移到另一方。它目前正在失败:

Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: Cross-program invocation with unauthorized signer or writable account

以下片段的完整代码:https ://gist.github.com/h4rkl/700400f515ab0736fd6d9318d44b2dca

我正在为交易设置 4 个帐户:

我将它们设置如下:

然后我用以下方法付款:

在该方法触发我的交互过程的合同中如下:

我已经pub struct使用以下参数设置了交互:

据我所知,参数是正确的,并且该god帐户拥有钱包作为付款人并且是签名人。为什么会失败,我错过了什么?我完全没有想法。

0 投票
1 回答
265 浏览

rust - 如何从 2 个帐户转移到 Serum Anchor 中的同一个保险库?

我正在写一个简单的合同,从一个普通支票保险库中的 2 个账户转移代币。我以cashiers-check基本示例为基础并使用它。

这是从第二个帐户收取

结构:

这是我写的测试:

无论我做什么,我都会收到此错误: Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x3

我做错了什么?

0 投票
2 回答
3753 浏览

solana - 我无法使用锚将程序部署到开发网

这是我在运行时遇到的错误 anchor deploy

我在部署之前所做的是在本地更改集群配置: