bin+lib xdc3_rust

xdc3_rust SDK with support for smart contracts, XRC20 & XRC721

5 releases

0.1.4 Feb 3, 2022
0.1.3 Jan 28, 2022
0.1.2 Jan 28, 2022
0.1.1 Jan 27, 2022
0.1.0 Jan 25, 2022

MIT license

54KB
1K SLoC

xdc3_rust

xdc3_rust SDK with support for smart contracts, XRC20 & XRC721.

Usage

Add the following dependency to your Cargo.toml:

[dependencies]
xdc3_rust = "0.1.4"

This SDK supports following Read & Write operations:-

  |    XRC20 Token: Read methods                    |   XRC20 Token: Write methods                          |
  |     ---                                         |   ---                                                 | 
  |     name()                                      |   approve(receiverAddress , amount)                   |
  |     symbol()                                    |   transfer(recipient, amount)                         |
  |     decimal()                                   |   transferFrom(sender, recipient, amount)             |
  |     totalSupply()                               |   increaseAllowance(spender, addedValue)              |
  |     balanceOf(account)                          |   decreaseAllowance(spender, subtractedValue)         |
  |     allowance(owner, spender)                   |                                                       |
  |                                                 |                                                       |
                                            
  |    XRC721 Token: Read methods                   |   XRC721 Token: Write methods                         |
  |     ----                                        |   ----                                                |
  |     name()                                      |   setApprovalForAll(operatorAddress, booleanValue)    |
  |     symbol()                                    |   approve(receiverAddress , tokenId)                  |
  |     totalSupply()                               |   transferFrom(recipient, tokenId)                    |
  |     balanceOf(owner address)                    |   safeTransferFrom(spender, tokenId)                  |
  |     ownerOf(tokenId)                            |                                                       |
  |     tokenURI(tokenId)                           |                                                       |
  |     tokenByIndex(index)                         |                                                       |
  |     tokenOfOwnerByIndex(ownerAddress,index)     |                                                       |
  |     supportInterface(interfaceId)               |                                                       |
  |     getApproved(tokenId)                        |                                                       |
  |     isApprovedForAll(ownerAddress,operator)     |                                                       |
  |                                                 |                                                       |
             

Environment Variable

Create a .env file in the root directory of the Rust project to put the wallet and endpoint information in like so: APOTHEM_ADDRESS = wss://ws.apothem.network

Example for XRC20

#![allow(unused_imports)]

use std::io::stdin;

mod lib;
use lib::xrc20::name;

#[allow(unused_must_use)]
fn main() {

   let mut token_address = String::new();
   println!("enter token address: ");
   stdin().read_line(&mut token_address);

   let token_name = name::token_name(token_address).unwrap();
   println!("token name: {}", token_name);
}

This example returns name of the specified address.

Example for XRC721

#![allow(unused_imports)]

use std::io::stdin;

mod lib;
use lib::xrc721::name::token_name;

#[allow(unused_must_use)]
fn main() {

   let mut token_address = String::new();
   println!("enter token address: ");
   stdin().read_line(&mut token_address);

   let token_name = name::token_name(token_address).unwrap();
   println!("token name: {}", token_name);
}

Transports

  • WebSockets transport

Types

  • Types for U256,H256,Address(H160)
  • Transaction type (Transaction from Parity)

Dependencies

~20–33MB
~532K SLoC