whisky_common/data/
credentials.rs1use serde_json::{json, Value};
2
3use super::{byte_string, con_str0, con_str1};
4
5pub fn payment_pub_key_hash(pub_key_hash: &str) -> Value {
6 byte_string(pub_key_hash)
7}
8
9pub fn pub_key_hash(pub_key_hash: &str) -> Value {
10 byte_string(pub_key_hash)
11}
12
13pub fn maybe_staking_hash(stake_credential: &str, is_script_stake_key: bool) -> Value {
14 if stake_credential.is_empty() {
15 con_str1(json!([]))
16 } else if is_script_stake_key {
17 con_str0(vec![con_str0(vec![con_str1(vec![byte_string(
18 stake_credential,
19 )])])])
20 } else {
21 con_str0(vec![con_str0(vec![con_str0(vec![byte_string(
22 stake_credential,
23 )])])])
24 }
25}
26
27pub fn pub_key_address(
28 bytes: &str,
29 stake_credential: Option<&str>,
30 is_script_stake_key: bool,
31) -> Value {
32 con_str0(vec![
33 con_str0(vec![byte_string(bytes)]),
34 maybe_staking_hash(stake_credential.unwrap_or(""), is_script_stake_key),
35 ])
36}
37
38pub fn script_address(
39 bytes: &str,
40 stake_credential: Option<&str>,
41 is_script_stake_key: bool,
42) -> Value {
43 con_str0(vec![
44 con_str1(vec![byte_string(bytes)]),
45 maybe_staking_hash(stake_credential.unwrap_or(""), is_script_stake_key),
46 ])
47}