Skip to content

pwrlabs/pwrrs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PWR Chain Rust SDK

PWR Rust is a Rust library for interacting with the PWR network. It provides an easy interface for wallet management and sending transactions on PWR.

Installation

# latest official release (main branch)
cargo add pwr-rs

🌐 Documentation

How to Guides 🔜 & API 💻

Play with Code Examples 🎮

💫 Getting Started

Import the library:

use pwr_rs::{
    Wallet, 
    RPC, 
};

Set your RPC node:

let rpc = RPC::new("https://pwrrpc.pwrlabs.io/").await.unwrap();

Generate a new wallet:

let private_key = "0xac0974bec...f80";
let wallet = Wallet::from_hex(&private_key).unwrap();

Get wallet address:

let address = wallet.get_address();

Get wallet balance:

let balance = wallet.get_balance().await;

Transfer PWR tokens:

wallet.transfer_pwr("recipientAddress".to_string(), 1000).await;

Sending a transcation to the PWR Chain returns a Response object, which specified if the transaction was a success, and returns relevant data. If the transaction was a success, you can retrieive the transaction hash, if it failed, you can fetch the error.

use pwr_rs::Wallet;
async fn main() {
    let private_key = "0xac0974bec...f80";
    let wallet = Wallet::from_hex(&private_key).unwrap();

    let trx_hash = wallet.transfer_pwr("recipientAddress".to_string(), 1000).await;
    println!("Transaction Hash: {trx_hash}");
}

Send data to a VM:

use pwr_rs::Wallet;
async fn main() {
    let private_key = "0xac0974bec...f80";
    let wallet = Wallet::from_hex(&private_key).unwrap();

    let data = vec!["Hello World!"];
    let data_as_bytes: Vec<u8> = data.into_iter().flat_map(|s| s.as_bytes().to_vec()).collect();

    let tx_hash = wallet.send_vm_data(123, data_as_bytes).await;
    println!("Transaction Hash: {tx_hash}");
}

Other Static Calls

Get RPC Node Url:

Returns currently set RPC node URL.

let url = rpc.get_node_url();

**Get Fee Per Byte: **

Gets the latest fee-per-byte rate.

let fee = rpc.get_fee_per_byte();

Get Balance Of Address:

Gets the balance of a specific address.

let balance = rpc.get_balance_of_address("0x...").await.unwrap();

Get Nonce Of Address:

Gets the nonce/transaction count of a specific address.

let nonce = rpc.get_nonce_of_address("0x...").await.unwrap();

✏️ Contributing

If you consider to contribute to this project please read CONTRIBUTING.md first.

You can also join our dedicated channel for pwr-rs on the PWR Chain Discord

📜 License

Copyright (c) 2024 PWR Labs

Licensed under the MIT license.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages