neo3/neo_protocol/responses/
neo_transaction_result.rs1use crate::{
2 builder::{TransactionAttribute, TransactionSigner, WitnessRule, WitnessScope},
3 deserialize_h256, deserialize_h256_option,
4 neo_protocol::NeoWitness,
5 serialize_h256, serialize_h256_option, NeoVMStateType,
6};
7use primitive_types::{H160, H256};
8use serde::{Deserialize, Serialize};
9
10#[derive(Serialize, Deserialize, Hash, Clone, Debug)]
11pub struct TransactionResult {
12 #[serde(serialize_with = "serialize_h256")]
13 #[serde(deserialize_with = "deserialize_h256")]
14 pub hash: H256,
15 pub size: i32,
16 pub version: i32,
17 pub nonce: i32,
18 pub sender: String,
19 #[serde(rename = "sysfee")]
20 pub sys_fee: String,
21 #[serde(rename = "netfee")]
22 pub net_fee: String,
23 #[serde(rename = "validuntilblock")]
24 pub valid_until_block: i32,
25 pub signers: Vec<TransactionSigner>,
26 pub attributes: Vec<TransactionAttribute>,
27 pub script: String,
28 pub witnesses: Vec<NeoWitness>,
29 #[serde(rename = "blockhash")]
30 #[serde(serialize_with = "serialize_h256_option")]
31 #[serde(deserialize_with = "deserialize_h256_option")]
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub block_hash: Option<H256>,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub confirmations: Option<i32>,
36 #[serde(rename = "blocktime")]
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub block_time: Option<u64>,
39 #[serde(rename = "vmstate")]
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub vm_state: Option<NeoVMStateType>,
42}
43
44#[derive(Debug, Clone, PartialEq, Hash)]
45pub struct NeoTransactionSigner {
46 account: H160,
47 scopes: Vec<WitnessScope>,
48 allowed_contracts: Option<Vec<String>>,
49 allowed_groups: Option<Vec<String>>,
50 rules: Option<Vec<WitnessRule>>,
51}