7 releases
0.2.8 | Oct 19, 2024 |
---|---|
0.2.7 | Oct 8, 2024 |
0.2.6 | Sep 23, 2024 |
0.2.1 | Aug 21, 2024 |
0.1.1 | Dec 7, 2023 |
#586 in #sdk
76KB
2K
SLoC
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
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.
Dependencies
~4–16MB
~194K SLoC