neo3/neo_protocol/responses/
neo_transaction_result.rs

1use 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}