1use kascov_decode::{kcc20, Registry};
7fn main() {
8 let reg = Registry::default();
9 for path in std::env::args().skip(1) {
10 let bytes = std::fs::read(&path).expect("read");
11 let d = reg.decode(0, &bytes);
12 let digest = blake2b_simd::Params::new().hash_length(32).hash(&bytes);
13 println!(
14 "== {} len={} blake2b={}",
15 path,
16 bytes.len(),
17 hex::encode(digest.as_bytes())
18 );
19 println!(
20 " decoder={} template={:?} fields={}",
21 d.decoder,
22 d.template,
23 d.fields.len()
24 );
25 for f in &d.fields {
26 let v = if f.value.len() > 40 {
27 format!("{}…({}B)", hex::encode(&f.value[..40]), f.value.len())
28 } else {
29 hex::encode(&f.value)
30 };
31 println!(" - {} = {}", f.name, v);
32 }
33 println!(
34 " kcc20.revealed_template = {:?}",
35 kcc20::revealed_template(®, 0, &bytes)
36 );
37 match kcc20::locate_state_block(&bytes) {
38 Some(x) => println!(" kcc20.locate_state_block = {:?}", x),
39 None => println!(" kcc20.locate_state_block = None"),
40 }
41 match kcc20::decode_token_state(®, 0, &bytes) {
42 Some(s) => println!(
43 " token_state owner={} type={} amount={:?} minter={:?}",
44 hex::encode(s.owner),
45 s.identifier_type,
46 s.amount_i64(),
47 s.is_minter()
48 ),
49 None => println!(" token_state = None"),
50 }
51 }
52}