Skip to main content

aptos_client_icp/models/
move_resource.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/// MoveResource : A parsed Move resource
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct MoveResource {
17    /// String representation of a MoveStructTag (on-chain Move struct type). This exists so you can specify MoveStructTags as path / query parameters, e.g. for get_events_by_event_handle.  It is a combination of:   1. `move_module_address`, `module_name` and `struct_name`, all joined by `::`   2. `struct generic type parameters` joined by `, `  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).  See [doc](https://aptos.dev/concepts/accounts) for more details. 
18    #[serde(rename = "type")]
19    pub r#type: String,
20    /// This is a JSON representation of some data within an account resource. More specifically, it is a map of strings to arbitrary JSON values / objects, where the keys are top level fields within the given resource.  To clarify, you might query for 0x1::account::Account and see the example data.  Move `bool` type value is serialized into `boolean`.  Move `u8`, `u16` and `u32` type value is serialized into `integer`.  Move `u64`, `u128` and `u256` type value is serialized into `string`.  Move `address` type value (32 byte Aptos account address) is serialized into a HexEncodedBytes string. For example:   - `0x1`   - `0x1668f6be25668c1a17cd8caf6b8d2f25`  Move `vector` type value is serialized into `array`, except `vector<u8>` which is serialized into a HexEncodedBytes string with `0x` prefix. For example:   - `vector<u64>{255, 255}` => `[\"255\", \"255\"]`   - `vector<u8>{255, 255}` => `0xffff`  Move `struct` type value is serialized into `object` that looks like this (except some Move stdlib types, see the following section):   ```json   {     field1_name: field1_value,     field2_name: field2_value,     ......   }   ```  For example:   `{ \"created\": \"0xa550c18\", \"role_id\": \"0\" }`  **Special serialization for Move stdlib types**:   - [0x1::string::String](https://github.com/aptos-labs/aptos-core/blob/main/language/move-stdlib/docs/ascii.md)     is serialized into `string`. For example, struct value `0x1::string::String{bytes: b\"Hello World!\"}`     is serialized as `\"Hello World!\"` in JSON. 
21    #[serde(rename = "data")]
22    pub data: serde_json::Value,
23}
24
25impl MoveResource {
26    /// A parsed Move resource
27    pub fn new(r#type: String, data: serde_json::Value) -> MoveResource {
28        MoveResource {
29            r#type,
30            data,
31        }
32    }
33}
34