metaboss 0.49.0

The Metaplex NFT-standard Swiss Army Knife tool.
Documentation
use anyhow::Result;
use solana_client::rpc_client::RpcClient;
use solana_program::pubkey::Pubkey;
use solana_sdk::{bpf_loader_upgradeable::extend_program, signer::Signer};

use crate::{
    update::{parse_keypair, parse_solana_config},
    utils::send_and_confirm_transaction,
};

pub fn process_extend_program(
    client: RpcClient,
    keypair_path: Option<String>,
    program_address: Pubkey,
    additional_bytes: u32,
) -> Result<()> {
    let solana_opts = parse_solana_config();
    let keypair = parse_keypair(keypair_path, solana_opts);

    let ix = extend_program(&program_address, Some(&keypair.pubkey()), additional_bytes);
    send_and_confirm_transaction(&client, keypair, &[ix])?;

    Ok(())
}