Crates.io | ink-quill |
lib.rs | ink-quill |
version | 0.1.0 |
source | src |
created_at | 2023-07-30 03:03:31.066895 |
updated_at | 2023-07-30 03:03:31.066895 |
description | Another transcript library |
homepage | |
repository | |
max_upload_size | |
id | 929698 |
size | 25,245 |
Inspired by Random Oracle, The ink-quill library is a Rust package for efficient and reliable transcript construction. The library provides an efficient way to group various pieces of information, making it easier for verification, storage, or exchange of data.
[dependencies]
ink-quill = "0.1.0"
Here's an example of how to create a transcript and add data to it:
use ink_quill::{TranscriptBuilder, TranscriptBuilderInput};
async fn main() {
let mut builder = TranscriptBuilder::empty("example domain");
builder = builder.with("nonce", &0)
.with("transaction", &"deposit")
.with_prefix("amount".to_string())
.with("value", &1000_u64)
compile();
}
For your own data types, you can implement the TranscriptBuilderInput trait:
struct MyData {
pub value: u64,
}
impl TranscriptBuilderInput for MyData {
const TYPE: &'static str = "MyData";
fn to_transcript_builder_input(&self) -> Vec<u8> {
self.value.to_be_bytes().to_vec()
}
}
Contributions to ink_quill are welcomed. Please make sure to run the test suite before opening a pull request