ckb-gen-types 1.1.0

Provides the generated types for CKB
Documentation
use crate::{packed, prelude::*, vec};
use ckb_occupied_capacity::{capacity_bytes, Capacity};

#[test]
fn script_occupied_capacity() {
    let testcases = vec![
        (vec![], 32 + 1),
        (vec![0], 1 + 32 + 1),
        (vec![1], 1 + 32 + 1),
        (vec![0, 0], 2 + 32 + 1),
    ];
    for (args, ckb) in testcases.into_iter() {
        let script = packed::Script::new_builder().args(args).build();
        let expect = Capacity::bytes(ckb).unwrap();
        assert_eq!(script.occupied_capacity().unwrap(), expect);
    }
}

#[test]
fn min_cell_output_capacity() {
    let lock = packed::Script::new_builder().build();
    let output = packed::CellOutput::new_builder().lock(lock).build();
    assert_eq!(
        output.occupied_capacity(Capacity::zero()).unwrap(),
        capacity_bytes!(41)
    );
}

#[test]
fn min_secp256k1_cell_output_capacity() {
    let lock = packed::Script::new_builder().args([0u8; 20]).build();
    let output = packed::CellOutput::new_builder().lock(lock).build();
    assert_eq!(
        output.occupied_capacity(Capacity::zero()).unwrap(),
        capacity_bytes!(61)
    );
}