【问题标题】:Solana Anchor How to test different Signers interacting with program functionsSolana Anchor 如何测试与程序功能交互的不同签名者
【发布时间】:2021-10-16 01:58:52
【问题描述】:

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

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

await program.rpc.initializeProgram(
 arg1, arg2, ... {
 accounts: {...}
 signers: [keypair1, keypair2, ... keypairN],
)

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

查看来自https://project-serum.github.io/anchor/tutorials/tutorial-1的示例锚代码

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

【问题讨论】:

    标签: solana


    【解决方案1】:

    对于您的锚点测试,它将使用 provider.wallet 作为付款人,因此会自动使用 provider.wallet 作为签名者。

    您还可以通过签名者数组字段将签名者添加到您的 javascript 调用中,以防您的程序要求他们成为签名者。

    教程 1 在这里不是一个现实的例子,因为任何人都可以进来修改帐户。

    【讨论】:

    • 所以如果我添加“signers: [keypair1]”,Anchor 会用它来签名吗?
    • 是的,您可以在一个事务中拥有多个签名者。 Anchor 将使用签名者数组 + provider.wallet 中的所有签名者(因为这是用来支付 txn 的)。如果 txn 不需要签名者,则会抛出错误。
    猜你喜欢
    • 2022-06-20
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    相关资源
    最近更新 更多