#gem #blockchain

gemblockchain

Library to work with Gem blockchain

3 unstable releases

0.3.0 Dec 5, 2023
0.2.1 Aug 10, 2021
0.2.0 Feb 14, 2021
0.1.1 Nov 10, 2020
0.1.0 Nov 10, 2020

#1216 in #blockchain

39 downloads per month
Used in gemgen

MIT license

66KB
1.5K SLoC

gem-lib-rust

crates.io docs.rs

Library to work with Gem blockchain

Usage

use std::time::{SystemTime, UNIX_EPOCH};
use gemblockchain::account::{PrivateKeyAccount, TESTNET};
use gemblockchain::base58::*;
use gemblockchain::seed::*;
use gemblockchain::transaction::*;

fn main() {
    let phrase = generate_phrase();
    let account = PrivateKeyAccount::from_seed(&phrase);
    println!("My TESTNET address: {}", account.public_key().to_address(TESTNET).to_string());

    let ts = SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs() * 1000;
    let tx = Transaction::new_alias(&account.public_key(), "rhino", TESTNET, 100000, ts);
    println!("ID is {}", tx.id().to_string());
    let ptx = account.sign_transaction(tx);
    println!("Proofs are {:?}", ptx.proofs.iter().map(|p| p.to_base58()).collect::<Vec<String>>());
}

lib.rs:

gemblockchain

Library to work with Gem blockchain.

Supports offline transaction signing and creating addresses and keys.

Usage

 use std::time::{SystemTime, UNIX_EPOCH};
 use gemblockchain::account::{PrivateKeyAccount, TESTNET};
 use gemblockchain::base58::*;
 use gemblockchain::seed::*;
 use gemblockchain::transaction::*;

 fn main() {
     let phrase = generate_phrase();
     let account = PrivateKeyAccount::from_seed(&phrase);
     println!(
         "My TESTNET address: {}",
         account.public_key().to_address(TESTNET).to_string()
     );

     let ts = SystemTime::now()
         .duration_since(UNIX_EPOCH)
         .unwrap()
         .as_secs()
         * 1000;
     let tx = Transaction::new_alias(&account.public_key(), "rhino", TESTNET, 100000, ts);
     println!("ID is {}", tx.id().to_string());
     let ptx = account.sign_transaction(tx);
     println!(
         "Proofs are {:?}",
         ptx.proofs
             .iter()
             .map(|p| p.to_base58())
             .collect::<Vec<String>>()
     );
 }

Dependencies

~12–27MB
~405K SLoC