Multikey 账户
Aptos .NET SDK 提供 Multikey 账户实现,可通过多个密钥对组合创建账户。这对多签账户很有用。本指南提供创建账户的代码片段。
创建 MultiKeyAccount
Section titled “创建 MultiKeyAccount”MultiKeyAccount 用于签署交易,其账户受多个私钥控制。
创建 MultiKeyAccount
Section titled “创建 MultiKeyAccount”创建 MultiKey 账户需要以下组件:
PublicKeys:控制 MultiKey 账户的账户公钥。SignaturesRequired:签署交易所需的最小签名者数量。Signers:用于签署交易的账户签名者。签名者数量应等于或大于SignaturesRequired。
-
创建账户
创建账户;它们可以是不同类型的账户。
var account1 = Ed25519Account.Generate();var account2 = SingleKeyAccount.Generate(PublicKeyVariant.Secp256k1Ecdsa); -
创建 MultiKey 验证密钥
使用
PublicKeys和SignaturesRequired创建 MultiKey 验证密钥。在此例中,有两个账户控制 MultiKey,并要求 2 个签名者签署交易。var multiKey = new MultiKey(publicKeys: [account1.PublicKey, account2.PublicKey],signaturesRequired: 2,); -
创建 MultiKey 账户
使用
PublicKeys、SignaturesRequired和Signers创建 MultiKey 账户。var multikeyAccount = new MultiKeyAccount(multiKey: multiKey,signers: [account1, account2]); -
签署并提交交易
创建 MultiKey 账户后,可使用
AptosClient签署并提交交易。// 1. Build the transactionvar transaction = await client.Transaction.Build(sender: multikeyAccount,data: new GenerateEntryFunctionPayloadData(function: "0x1::aptos_account::transfer_coins",typeArguments: ["0x1::aptos_coin::AptosCoin"],functionArguments: [account.Address, "100000"]));// 2. Sign and submit the transactionvar submittedTransaction = await client.Transaction.SignAndSubmitTransaction(multikeyAccount, transaction);// 3. (Optional) Wait for the transaction to be committedvar committedTransaction = await client.Transaction.WaitForTransaction(submittedTransaction.Hash);
MultiKeyAccount 参考 MultiKeyAccount 类的完整 API 参考。