我知道,在创建时,我们可以使用多达10240字节的
后来,从索拉纳食谱的文档中,我知道我们可以增加账户的规模但是,如果我想将帐户大小增加到10MB,我该如何进行
https://solanacookbook.com/core-concepts/accounts.html#factshttps://solanacookbook.com/references/programs.html#how-更改账户规模
有人能告诉我实现这个吗
帐户的10KiB限制仅适用于程序派生地址上的帐户。对于带有密钥对的地址,您可以分配10MB。以下是一些粗略的伪代码:
use solana_rpc_client::rpc_client::RpcClient;
use solana_sdk::commitment_config::CommitmentLevel;
use solana_sdk::transaction::Transaction;
use solana_sdk::system_instruction;
let payer = Keypair::new();
let account = Keypair::new();
let rpc_client = RpcClient::new_with_commitment("...", CommitmentLevel::Confirmed);
let space = 10_000_000;
let lamports = ...; // figure this out with rent
let transaction = Transaction::new_signed_with_payer(
&[system_instruction::create_account(&payer.pubkey(), &account.pubkey(), space, lamports)],
Some(&payer.pubkey()),
[payer, account],
recent_blockhash
);
rpc_client.send_transaction(transaction);
或者,您可以在程序中执行多个realloc
调用,以便在每次调用时为其提供额外的10KiB。