aptos-client-icp 0.0.1

The Aptos Node API is a RESTful API for client applications to interact with the Aptos blockchain.
Documentation
/*
 * 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,
        }
    }
}