Andromeda
ADO LibraryBuild AppsDevelop ADOsCLIWeb Application Docs
Andromeda Beta ADOs
Andromeda Beta ADOs
  • Platform and Framework
    • Introduction to AndromedaOS
    • ADO Classes
    • Andromeda Messaging Protocol
      • Kernel
      • ADO Database
      • Economics Engine
      • Virtual File System
    • ADO Base
      • AndromedaMsg
      • AndromedaQuery
    • Common Types
    • Deployed Contracts
  • Andromeda Digital Objects
    • Introduction to ADOs
    • Address List
    • Auction
    • App
    • Conditional Splitter
    • Crowdfund
    • Curve
    • CW20
    • CW20 Staking
    • CW721
    • CW20 Exchange
    • Graph
    • Lockdrop
    • Marketplace
    • Merkle-Airdrop
    • Point
    • Primitive
    • Rates
    • Rate Limiting Withdrawals
    • Fixed Amount Splitter
    • Splitter
    • Timelock
    • Validator Staking
    • Vesting
    • Weighted Distribution Splitter
  • Andromeda Apps
    • Introduction to Apps
    • Crowdfunding App
    • Auctioning App
    • Cw20 Staking App
    • Marketplace App
  • Developing an ADO
    • Getting Started
      • Instantiation
      • Execution
      • Queries
      • Testing
    • ADO Example
    • ADO Submissions
  • Andromeda CLI
    • Introduction
    • Help and Shortcuts
    • ADO
    • Bank
    • Chain
    • Gql
    • Tx
    • OS
    • Wallet
    • Wasm
    • Clearing CLI Data
    • Clear and Exit
  • Chain
    • Running a Node
    • Staking and Rewards
  • Andromeda Dashboard
    • Tokenomics Dashboard
    • Dashboard API
  • Andromeda Changelog
    • Newest Releases
  • Additional Resources
    • GitHub
    • Website
    • White Paper
Powered by GitBook

Additional Resources

  • Github
  • Website

Community

  • Discord
  • Telegram

Socials

  • Twitter
  • Medium
  • Youtube
On this page
  • Introduction
  • InstantiateMsg
  • ExecuteMsg
  • UpdateMap
  • StoreCoordinate
  • StoreUserCoordinate
  • DeleteUserCoordinate
  • Base Executes
  • QueryMsg
  • GetMapInfo
  • GetMaxPointNumber
  • GetAllPoints
  • GetUserCoordinate
  • Base Queries

Was this helpful?

  1. Andromeda Digital Objects

Graph

PreviousCW20 ExchangeNextLockdrop

Last updated 3 months ago

Was this helpful?

Introduction

The Graph ADO allows users to construct a customized graphs. The user first specifies the configurations of the graph at instantiation. Then they are able to store coordinates for points on the graph. These saved points can then be fetched by using the ADO's queries.

The graph can be a 3D graph (x,y, and z coordinates) or a 2D graph (x,y coordinates only).

This ADO can also save and fetch points stored in the

Ado_type: graph

Version: 0.1.0-beta

InstantiateMsg

pub struct InstantiateMsg {
    pub map_info: MapInfo,
    pub kernel_address: String,
    pub owner: Option<String>,
}
{
"map_info":{
    "map_size":{
        "x_width": 1000,
        "y_width": 1000,
        "z_width": 1000
        },
    "allow_negative": false,
    "map_decimal": 0
    },
"kernel_address":"andr1..."
}
Name
Type
Description

map_info

Specifies the configurations of the map.

kernel_address

String

owner

Option<String>

Optional address to specify as the owner of the ADO being created. Defaults to the sender if not specified.

MapInfo

#[cw_serde]
pub struct MapInfo {
    pub map_size: MapSize,
    pub allow_negative: bool,
    pub map_decimal: u16,
}
Name
Type
Description

map_size

Specifies the size of the map.

allow_negative

bool

Whether negative values can be assigned to points of the map. In case negative is allowed, the width of the axis is divided between the positive and negative halfs. For example if negative is allowed and the x_width is set as 1000, then the the x coordinate range is between -500 and 500.

map_decimal

u16

The max number of decimal points that can be specified for a point. For example, if the x_coordinate is set as 4.12345 and the map_decimal is set as 2, then the x coordinate is taken as 4.12 only.

MapSize

#[cw_serde]
pub struct MapSize {
    pub x_width: u64,
    pub y_width: u64,
    pub z_width: Option<u64>,
}
Name
Type
Description

x_width

u64

The maximum allowed x coordinate for the map.

y_width

u64

The maximum allowed y coordinate for the map.

z_width

Option<u64>

The maximum allowed z coordinate for the map. Can be ommited in case a 2D map is wanted by the user.

ExecuteMsg

UpdateMap

Update the map configurations set at instantiation.

Only available to the contract owner.

pub enum ExecuteMsg {
    UpdateMap {
        map_info: MapInfo,
    },
 }
{
"update_map":{
    "map_info":{
    "map_size":{
        "x_width": 3000,
        "y_width": 4000,
        "z_width": 5000
        },
    "allow_negative": true,
    "map_decimal": 2
    }
  }
}
Name
Type
Description

map_info

Specifies the configurations of the map.

StoreCoordinate

Stores the coordinates of a point on the map.

Only available to the contract owner.

pub enum ExecuteMsg {
    StoreCoordinate {
        coordinate: Coordinate,
        is_timestamp_allowed: bool,
        }
 }
{
"store_coordinate":{
    "coordinate":{
        "x_coordinate": 25.66,
        "y_coordinate": 40.33,
        "z_coordinate": -25.12
        },
    "is_timestamp_allowed": true
    }
}       
Name
Type
Description

coordinate

The coordinates of the point.

is_timestamp_allowed

bool

Whether to store the timestamp that the point was created. If yes, then it would show along with the coordinates when queried.

Coordinate

#[cw_serde]
pub struct Coordinate {
    pub x_coordinate: SignedDecimal,
    pub y_coordinate: SignedDecimal,
    pub z_coordinate: Option<SignedDecimal>,
}

/// A signed fixed-point decimal value with 18 fractional digits.
/// The greatest possible value that can be represented is 
/// 170141183460469231731.687303715884105727 (which is (2^127 - 1) / 10^18)
/// and the smallest is
/// -170141183460469231731.687303715884105728 (which is -2^127 / 10^18).
pub struct SignedDecimal(#[schemars(with = "String")] Int128);
Name
Type
Description

x_coordinate

SignedDecimal

The x coordinate for the point.

y_coordinate

SignedDecimal

The y coordinate for the point.

z_coordinate

Option<SignedDecimal>

The z coordinate for the point. Do not specify in case the map is 2D (Only x and y).

StoreUserCoordinate

f the coordinates of the point ADO are changed, you need to call this message again on that Point ADO to store the new coordinates.

pub enum ExecuteMsg {
 StoreUserCoordinate {
        user_location_paths: Vec<AndrAddr>,
    },
 }
{
"store_user_coordinate":{
    "user_location_paths":["andr1...","andr1...",...]
    }
}
Name
Type
Description

user_location_paths

Vec<AndrAddr>

A vector containing the addresses of the point ADOs.

DeleteUserCoordinate

pub enum ExecuteMsg {
 DeleteUserCoordinate {
        user: AndrAddr,
    },
 }
{
"delete_user_coordinate":{
    "user": "andr1..."
    }
}
Name
Type
Description

user

AndrAddr

The Point ADO contract address to remove.

Base Executes

QueryMsg

GetMapInfo

Queries the map configurations set at instantiation.

pub enum QueryMsg {
    #[returns(GetMapInfoResponse)]
    GetMapInfo {},
    }
{
"get_map_info":{}
}

GetMapInfoResponse

#[cw_serde]
pub struct GetMapInfoResponse {
    pub map_info: MapInfo,
}

GetMaxPointNumber

Queries the total number of points created.

pub enum QueryMsg {
    #[returns(GetMaxPointNumberResponse)]
    GetMaxPointNumber {},
    }
{
"get_max_point":{}
}

GetMaxPointResponse

#[cw_serde]
pub struct GetMaxPointNumberResponse {
    pub max_point: u128,
}
Name
Type
Description

max_point

u128

The total number of points created on the graph.

GetAllPoints

Queries all the created points, fetching their coordinates and timestamps if enabled.

pub enum QueryMsg {
 #[returns(GetAllPointsResponse)]
    GetAllPoints {
        start: Option<u128>,
        limit: Option<u32>,
   },
}
{
"get_all_points":{}
}
Name
Type
Description

start

Option<u128>

Optional point to start from. Used for pagination.

limit

Option<u32>

Optional limit on the number of results to return. Used for pagination.

GetAllPointsResponse

#[cw_serde]
pub struct GetAllPointsResponse {
    pub points: Vec<(CoordinateInfo, StoredDate)>,
}

#[cw_serde]
pub struct CoordinateInfo {
    pub x: String,
    pub y: String,
    pub z: Option<String>,
}

#[cw_serde]
pub struct StoredDate {
    pub timestamp: Option<u64>,
}

Returns a vector containing the coordinates of each point. Points that had timestamp enabled will have the timestamp returned as well.

GetUserCoordinate

Fetches the coordinate saved for the specified Point ADO.

pub enum QueryMsg { 
 #[returns(CoordinateInfo)]
    GetUserCoordinate { user: AndrAddr },
    }
{
"get_user_coordinate":{
    "user":"andr1..."
    }
}
Name
Type
Description

user

AndrAddr

The address of the user who set the coordinates in the point ADO.

Base Queries

Contract address of the to be used for messaging. Kernel contract address can be found in our .

Store the coordinates from the specified addresses.

Deletes the coordinate set for the specified point in the .

The rest of the execute messages can be found in the section.

Returns a struct.

Returns an instance of .

The rest of the query messages can be found in the section.

Point ADO.
Point ADO
Point ADO
ADO Base
ADO Base
MapInfo
CoordinateInfo
kernel contract
AMP
deployed contracts
MapInfo
MapSize
MapInfo
Coordinate