[英]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.