libmonero 0.1.9

Batteries-included Monero Library
Documentation
/*
 * This file is part of Monume's library libmonero
 *
 * Copyright (c) 2023-2024, Monume (monume.xyz)
 * All Rights Reserved
 * The code is distributed under MIT license, see LICENSE file for details.
 * Generated by Monume
 *
 */

#![allow(non_snake_case)]

// Block structs

pub struct BlockHeader {
    pub block_size: u64,
    pub block_weight: u64,
    pub cumulative_difficulty: u64,
    pub cumulative_difficulty_top64: u64,
    pub depth: u64,
    pub difficulty: u64,
    pub difficulty_top64: u64,
    pub hash: String,
    pub height: u64,
    pub long_term_weight: u64,
    pub major_version: u64,
    pub miner_tx_hash: String,
    pub minor_version: u64,
    pub nonce: u64,
    pub num_txes: u64,
    pub orphan_status: bool,
    pub pow_hash: String,
    pub prev_hash: String,
    pub reward: u64,
    pub timestamp: u64,
    pub wide_cumulative_difficulty: String,
    pub wide_difficulty: String
}

pub struct Gen {
    pub height: u64,
}

pub struct Vin {
    pub gen: Gen,
}

pub struct TaggedKey {
    pub key: String,
    pub view_tag: String,
}

pub struct Target {
    pub tagged_key: TaggedKey,
}

pub struct Vout {
    pub amount: u64,
    pub target: Target, 
}

pub struct EcdhInfo {
    pub trunc_amount: String,
}

pub struct RctSignatures {
    pub type_int: u64,
    pub txn_fee: u64,
    pub ecdh_info: Vec<EcdhInfo>,
    pub out_pk: Vec<String>,
}

pub struct MinerTxInfo {
    pub version: u64,
    pub unlock_time: u64,
    pub vin: Vec<Vin>,
    pub vout: Vec<Vout>,
    pub extra: Vec<u8>,
    pub rct_signatures: RctSignatures
}

pub struct BlockDetailsJSON {
    pub major_version: u64,
    pub minor_version: u64,
    pub timestamp: u64,
    pub prev_id: String,
    pub nonce: u64,
    pub miner_tx: MinerTxInfo,
    pub tx_hashes: Vec<String>,
}

pub struct Block {
    pub blob: String,
    pub block_header: BlockHeader,
    pub credits: u64,
    pub json: BlockDetailsJSON,
    pub miner_tx_hash: String,
    pub status: String,
    pub top_hash: String,
    pub untrusted: bool
}

// Tx structs

pub struct KeyRawTx {
    pub amount: u64,
    pub key_offsets: Vec<u64>,
    pub k_image: String
}

pub struct VinRawTx {
    pub key: KeyRawTx
}

pub struct BPP {
    pub A: String,
    pub A1: String,
    pub B: String,
    pub r1: String,
    pub s1: String,
    pub d1: String,
    pub L: Vec<String>,
    pub R: Vec<String>,
}

pub struct CLSAG {
    pub s: Vec<String>,
    pub c1: String,
    pub D: String,
}

pub struct RctsigPrunable {
    pub nbp: u64,
    pub bpp: Vec<BPP>,
    pub CLSAGs: Vec<CLSAG>,
    pub pseudo_outs: Vec<String>
} 

pub struct RawTx {
    pub version: u64,
    pub unlock_time: u64,
    pub vin: Vec<VinRawTx>,
    pub vout: Vec<Vout>,
    pub extra: Vec<u8>,
    pub rct_signatures: RctSignatures,
    pub rctsig_prunable: RctsigPrunable,
}