簡體   English   中英

是否可以讓 Solana 程序成為交易的簽名者?

[英]Is it possible to make a Solana program the signer for a transaction?

我正在嘗試使用一條指令MintOne編寫一個 Solana 程序,該指令將單個令牌鑄造到提供的帳戶中。

看來我需要做這樣的事情:

  1. 使用 spl-token CLI 創建令牌
  2. 將程序授權為令牌的鑄造機構
  3. 然后程序“自簽名” MintTo交易

從概念上講,我很難處理 3。程序甚至可以簽署交易嗎? 私鑰不在鏈上,所以我不知道它是如何工作的。

Solana 程序是否有可能成為簽名者? 如果不是,這種類型的用例通常如何解決?

Solana 程序是否有可能成為簽名者?

不直接,不。

任何時候如果您希望 Solana 程序簽署交易,請改用程序派生地址 (PDA)。 PDA 就像公鑰一樣,因此它們可以是鑄幣局或任何其他帳戶地址。 PDA 允許程序“偽造”交易的簽名。

對於這個用例,您可以這樣做:

  1. 使用 spl-token CLI 創建令牌
  2. 使用特定種子為已部署的程序生成 PDA
  3. 授權該 PDA 成為令牌的鑄幣機構
  4. 然后,該程序將invoke_signedCpiContext::new_with_signer (如果您使用 Anchor)與該 PDA 一起使用

這是安全的,因為 Solana 只允許該程序“偽造”PDA 簽名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM