Skip to main content

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