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 |
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