/*
* Aptos Node API
*
* The Aptos Node API is a RESTful API for client applications to interact with the Aptos blockchain.
*
* The version of the OpenAPI document: 1.2.0
*
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// VersionedEvent : An event from a transaction with a version
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct VersionedEvent {
/// 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.
#[serde(rename = "version")]
pub version: String,
#[serde(rename = "guid")]
pub guid: Box<models::EventGuid>,
/// 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.
#[serde(rename = "sequence_number")]
pub sequence_number: String,
/// 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).
#[serde(rename = "type")]
pub r#type: String,
/// The JSON representation of the event
#[serde(rename = "data", deserialize_with = "Option::deserialize")]
pub data: Option<serde_json::Value>,
}
impl VersionedEvent {
/// An event from a transaction with a version
pub fn new(version: String, guid: models::EventGuid, sequence_number: String, r#type: String, data: Option<serde_json::Value>) -> VersionedEvent {
VersionedEvent {
version,
guid: Box::new(guid),
sequence_number,
r#type,
data,
}
}
}