aptos_client_icp/models/versioned_event.rs
1/*
2 * Aptos Node API
3 *
4 * The Aptos Node API is a RESTful API for client applications to interact with the Aptos blockchain.
5 *
6 * The version of the OpenAPI document: 1.2.0
7 *
8 * Generated by: https://openapi-generator.tech
9 */
10
11use crate::models;
12use serde::{Deserialize, Serialize};
13
14/// VersionedEvent : An event from a transaction with a version
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct VersionedEvent {
17 /// A string containing a 64-bit unsigned integer. We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.
18 #[serde(rename = "version")]
19 pub version: String,
20 #[serde(rename = "guid")]
21 pub guid: Box<models::EventGuid>,
22 /// A string containing a 64-bit unsigned integer. We represent u64 values as a string to ensure compatibility with languages such as JavaScript that do not parse u64s in JSON natively.
23 #[serde(rename = "sequence_number")]
24 pub sequence_number: String,
25 /// String representation of an on-chain Move type tag that is exposed in transaction payload. Values: - bool - u8 - u16 - u32 - u64 - u128 - u256 - address - signer - vector: `vector<{non-reference MoveTypeId}>` - struct: `{address}::{module_name}::{struct_name}::<{generic types}>` Vector type value examples: - `vector<u8>` - `vector<vector<u64>>` - `vector<0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>>` Struct type value examples: - `0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin> - `0x1::account::Account` Note: 1. Empty chars should be ignored when comparing 2 struct tag ids. 2. When used in an URL path, should be encoded by url-encoding (AKA percent-encoding).
26 #[serde(rename = "type")]
27 pub r#type: String,
28 /// The JSON representation of the event
29 #[serde(rename = "data", deserialize_with = "Option::deserialize")]
30 pub data: Option<serde_json::Value>,
31}
32
33impl VersionedEvent {
34 /// An event from a transaction with a version
35 pub fn new(version: String, guid: models::EventGuid, sequence_number: String, r#type: String, data: Option<serde_json::Value>) -> VersionedEvent {
36 VersionedEvent {
37 version,
38 guid: Box::new(guid),
39 sequence_number,
40 r#type,
41 data,
42 }
43 }
44}
45