【问题标题】:Ability to provide keypair to solana spl-token command能够为 solana spl-token 命令提供密钥对
【发布时间】:2022-08-05 03:27:49
【问题描述】:

我正在执行此 CLI 函数的调用

spl-token balance --token--

所以它需要一个 keypair.json 文件出现在这个位置~ .config/solana/id.json(对于 Mac)

没有这个文件 CLI 会抛出一个错误

错误:没有这样的文件或目录(操作系统错误2)

有没有办法指定密钥对的路径,或者甚至更好地将整个文件内容(编码或未编码)指定为 CLI 参数?

顺便说一句,这个问题不仅限于这个命令,我试过的大多数 spl-token cli 命令都有这个问题。

    标签: solana solana-web3js


    【解决方案1】:

    如果要直接指定密钥对,可以使用--fee-payer 参数,即:

    $ spl-token --fee-payer id.json balance --owner <YOUR_PUBKEY> <TOKEN_MINT_PUBKEY>
    

    --fee-payer 参数接受几种不同的可能性,包括密钥对文件,甚至是接受来自标准输入的输入的关键字。更多信息https://docs.solana.com/wallet-guide/paper-wallet#hierarchical-derivation

    这不是超级直观,但可能性是存在的。例如,余额检查不应该需要签名者。 GitHub 上始终接受 PR / 改进建议! https://github.com/solana-labs/solana-program-library

    【讨论】:

    • 是否可以为spl-token transfer 提供--owner 作为字符串(bs58 编码)而不是磁盘的文件路径?
    • 不,因为所有者必须签署交易才能转让。否则,您可以从其他人的钱包转入您的钱包!
    • 是的,我知道您需要私钥进行授权,我问是否可以将其作为字符串而不是文件路径提供。这样我就可以将它存储在内存中而不是磁盘上的文件中。
    • 太好了,这将是您最好的选择,因为您是对的,您不能将密钥对提供为 base58 编码的字符串。作为一种解决方法,您可以使用当前支持的任何其他格式,例如通过 stdin 提供的密钥种子词。您的更改将从github.com/solana-labs/solana/blob/…github.com/solana-labs/solana/blob/… 开始,以支持类似于Pubkey 格式的新格式。
    • 在我们与特伦特在 GH 问题上的对话中,我决定不需要这样做。无论如何,谢谢你的帮助。我敢肯定,当我对 Solana 有更多了解时,我会为这个伟大的项目做出贡献!
    猜你喜欢
    • 1970-01-01
    • 2021-12-09
    • 1970-01-01
    • 2021-12-20
    • 2021-12-22
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    相关资源
    最近更新 更多