[英]Solana Anchor How to withdraw tokens from program account to user account?
[英]paying solana transaction fee from multisig account
我在 solana 上有 3 個簽署者的 solana 智能合約。 人們將溶膠存入“項目”賬戶。 如果要轉出任何 sol 或進行許多其他操作,所有 3 個簽名者都必須使用他們的錢包(幻像)簽名。 我的理解是,簽字的交易費用會向每個簽字的簽字人收取? 是否可以從“項目”賬戶而不是每個簽字人那里收取這筆交易費用?
我想問題歸結為簽名者和付費者是否可以是 solana 中的不同帳戶? 類似問題 - 讓 Solana 程序為交易付費
您可以在https://safe.snowflake.so上利用 Snowflake 的 Solana Multisig 非常輕松地做到這一點
創建保險箱時,您可以選擇 3 個簽名者,並指定任何交易所需的簽名者數量。 這將創建一個安全地址,您可以在其中存儲資金。 任何已獲得必要簽名者批准的交易將使用項目內的資金支付費用。 如果您有任何反饋,請告訴我!
您可以為任何交易手動指定feePayer
,因此它可以是其他帳戶。 這是一個 JS 示例:
const from = Keypair.generate();
const to = Keypair.generate().publicKey;
const feePayer = Keypair.generate();
const transaction = new Transaction({
feePayer: feePayer.publicKey,
}).add(
SystemProgram.transfer({
fromPubkey: from.publicKey,
toPubkey: to,
lamports: 10,
}),
);
const signature = await connection.sendTransaction(transaction, [feePayer, from]);
請注意, feePayer
必須是可以生成簽名的帳戶,而不是程序派生地址。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.