Crate thor_devkit
source ·Expand description
Rust library to aid coding with VeChain, eg. Wallets/Tx/Sign/Verify.
This library acts primary as a proxy to several underlying libraries, with the addition of some VeChain-specific toolchain components.
Usage
One of possible use cases can be transaction creation and signing.
Here is how you may approach it. Let’s transfer a few VET to another account.
To do so, we need to create a transaction and encode it into broadcastable bytes.
use thor_devkit::transactions::{Transaction, Clause};
use thor_devkit::hdnode::{Mnemonic, Language, HDNode};
let transaction = Transaction {
chain_tag: 1,
block_ref: 0xaabbccdd,
expiration: 32,
clauses: vec![
Clause {
to: Some(
"0x7567d83b7b8d80addcb281a71d54fc7b3364ffed"
.parse()
.unwrap(),
),
value: 10000.into(),
data: b"\x00\x00\x00\x60\x60\x60".to_vec().into(),
},
],
gas_price_coef: 128,
gas: 21000,
depends_on: None,
nonce: 0xbc614e,
reserved: None,
signature: None,
};
let mnemonic = Mnemonic::from_phrase(
"ignore empty bird silly journey junior ripple have guard waste between tenant",
Language::English
).expect("Must be correct");
let wallet = HDNode::build().mnemonic(mnemonic).build().expect("Builds");
let signed = transaction.sign(&wallet.private_key().expect("Must be non-restricted").private_key());
println!("{:02x?}", signed.to_broadcastable_bytes());Examples
You can check out sample usage of this crate in the examples/ folder in the project repo on GitHub.
Readme Docs
You can find the crate’s readme documentation on the
crates.io page, or alternatively in the README.md file on the GitHub project repo.
Contributing
Contributions are welcome! Open a pull request to fix a bug, or open an issue to discuss a new feature or change.
Check out the Contributing section in the docs for more info.
License
This project is proudly licensed under the GNU General Public License v3 (LICENSE.
thor-devkit can be distributed according to the GNU General Public License v3. Contributions
will be accepted under the same license.
Re-exports
pub use ethabi;
Modules
- VeChain address operations and verifications.
- VeChain-tailored Hierarchically deterministic nodes support
- VeChain transactions support.
Structs
- Little-endian large integer type 256-bit unsigned integer.
Functions
- Compute blake2b hash with 32-byte digest.
- Convert a hex string (with or without 0x prefix) to binary.
- Compute a keccak hash with 32-byte digest.