acta-maker-sdk 0.4.2

Rust SDK for Acta options market makers — WebSocket client, order signing, message types
Documentation
use super::*;
use solana_sdk::{
    hash::Hash, instruction::AccountMeta, signature::Keypair, transaction::Transaction,
};

#[test]
fn transaction_signing_returns_error_for_missing_signer() {
    let fee_payer = Keypair::new();
    let missing_signer = Pubkey::new_unique();
    let instruction = Instruction {
        program_id: Pubkey::new_unique(),
        accounts: vec![AccountMeta::new_readonly(missing_signer, true)],
        data: Vec::new(),
    };
    let mut transaction = Transaction::new_with_payer(&[instruction], Some(&fee_payer.pubkey()));
    let signers: [&(dyn Signer + Sync); 1] = [&fee_payer];

    assert!(matches!(
        sign_transaction(&mut transaction, &signers, Hash::new_unique()),
        Err(ChainError::Signing(_))
    ));
}

#[test]
fn transaction_signing_verifies_transaction() {
    let fee_payer = Keypair::new();
    let mut transaction = Transaction::new_with_payer(&[], Some(&fee_payer.pubkey()));
    let signers: [&(dyn Signer + Sync); 1] = [&fee_payer];

    sign_transaction(&mut transaction, &signers, Hash::new_unique()).unwrap();

    assert!(transaction.verify().is_ok());
}