我在python上创建了这个事务指令,类似于在solana食谱上编写的指令,但使用了rust。
我很好奇为什么它返回的错误不是计算极限扩展,而是200000计算极限消耗的200000错误。
python
transaction = Transaction()
request_units = CStruct(
"units" / U32,
"additional_fee" / U32
)
transaction.add(
TransactionInstruction(
[],
compute_program_meta.pubkey,
request_units.build({"units": 500000, "additional_fee": int(0.01*10**9)})
)
)
transaction.add(
TransactionInstruction(
accounts,
program_id,
bytes([0, 10])
)
)
锈蚀
fn send_instructions_demo(
rpc_client: &RpcClient,
wallet_signer: &dyn Signer,
) -> Result<(), Box<dyn std::error::Error>> {{
let accounts = &[];
let txn = submit_transaction(
&connection,
&wallet_signer,
// Array of instructions: 0: Increase Budget, 1: Do something, 2: Do something else
[ComputeBudgetInstruction::request_units(400_000u32),
Instruction::new_with_borsh(PROG_KEY, &0u8, accounts.to_vec()),
Instruction::new_with_borsh(PROG_KEY, &0u8, accounts.to_vec())].to_vec(),
)?;
println!("{:?}", txn);
Ok(())}
计算预算的增加尚未在mainnet测试版或devnet上发布。在激活该功能并且任一集群发布1.9.X
版本之前,您不能使用它来请求更多计算