diff --git a/src/main.rs b/src/main.rs index a62b0cc..545e25b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -21,8 +21,8 @@ enum Command { Sign { /// Signing key (hex encoded) skey: String, - /// Subbit id (hex encoded) - id: String, + /// Tag (hex encoded) + tag: String, /// Amount (unsigned integer u64. Seems to be largest permitted) amt: u64, }, @@ -30,8 +30,8 @@ enum Command { Verify { /// Verifying key (hex encoded) vkey: String, - /// Subbit id (hex encoded) - id: String, + /// Tag (hex encoded) + tag: String, /// Amount (unsigned integer u64. Seems to be largest permitted) amt: u64, /// Signature (hex encoded) @@ -49,17 +49,22 @@ fn main() -> anyhow::Result<()> { let skey = skey_from_seed(seed)?; println!("{}", serde_json::to_string(&KeyPairHex::from_skey(&skey))?); } - Some(Command::Sign { skey, id, amt }) => { + Some(Command::Sign { skey, tag, amt }) => { let skey = skey_from_hex(&skey)?; - let iou = Iou::from_cli(id, amt)?; + let iou = Iou::from_cli(tag, amt)?; let msg = iou.to_vec()?; let sig = sign(&mut skey.clone(), msg.clone()); let _ver = verify(&skey.verifying_key(), &msg, &sig); println!("{}", sig_to_hex(&sig)); } - Some(Command::Verify { vkey, id, amt, sig }) => { + Some(Command::Verify { + vkey, + tag, + amt, + sig, + }) => { let vkey = vkey_from_hex(&vkey)?; - let iou = Iou::from_cli(id, amt)?; + let iou = Iou::from_cli(tag, amt)?; let msg = iou.to_vec()?; let sig = sig_from_hex(&sig)?; let res = verify(&vkey, &msg, &sig)?; @@ -176,21 +181,21 @@ impl KeyPairHex { } } -pub fn id_from_hex(s: &str) -> Result, anyhow::Error> { - let id = hex::decode(s)?; - Ok(id) +pub fn tag_from_hex(s: &str) -> Result, anyhow::Error> { + let tag = hex::decode(s)?; + Ok(tag) } #[derive(Serialize, Deserialize)] struct Iou { - subbit_id: Vec, + tag: Vec, amount: u64, } impl Iou { - fn from_cli(id: String, amt: u64) -> Result { + fn from_cli(tag: String, amt: u64) -> Result { Ok(Self { - subbit_id: id_from_hex(&id)?, + tag: tag_from_hex(&tag)?, amount: amt, }) } @@ -200,9 +205,7 @@ impl Iou { tag: 121, any_constructor: None, fields: pallas_primitives::MaybeIndefArray::Indef(vec![ - PlutusData::BoundedBytes(pallas_primitives::BoundedBytes::from( - self.subbit_id.clone(), - )), + PlutusData::BoundedBytes(pallas_primitives::BoundedBytes::from(self.tag.clone())), PlutusData::BigInt(pallas_primitives::BigInt::Int( pallas_primitives::Int::try_from(self.amount as i128)?, )), @@ -218,16 +221,16 @@ impl Iou { fn gen(seed: Option) -> Self { let mut rng: rand_chacha::ChaCha8Rng = SeedableRng::seed_from_u64(seed.unwrap_or(0)); - let subbit_id: Vec = rng.next_u64().to_le_bytes().into(); + let tag: Vec = rng.next_u64().to_le_bytes().into(); let amount = rng.next_u64(); - Iou { subbit_id, amount } + Iou { tag, amount } } } #[derive(Serialize, Deserialize)] struct SignedIou { vkey: String, - subbit_id: String, + tag: String, amount: u64, msg: String, sig: String, @@ -242,7 +245,7 @@ impl SignedIou { let sig = sign(&mut skey.clone(), msg.clone()); Ok(Self { vkey: vkey_to_hex(&vkey), - subbit_id: hex::encode(iou.subbit_id), + tag: hex::encode(iou.tag), amount: iou.amount, msg: hex::encode(&msg), sig: sig_to_hex(&sig), @@ -252,14 +255,14 @@ impl SignedIou { fn aiken_fmt(self: Self, seed: Option) { let Self { vkey, - subbit_id, + tag, amount, msg, sig, } = self; println!("const i{} = IouTest {{", seed.unwrap_or(0),); println!(" vkey: {}", aiken_hex(&vkey)); - println!(" subbit_id: {}", aiken_hex(&subbit_id)); + println!(" tag: {}", aiken_hex(&tag)); println!(" amount: {},", amount); println!(" msg: {}", aiken_hex(&msg)); println!(" sig: {}", aiken_hex(&sig)); @@ -270,7 +273,7 @@ impl SignedIou { fn aiken_test(seed: Option) { println!("test test_i{} () {{", seed.unwrap_or(0)); println!(" let i = i{}", seed.unwrap_or(0)); - println!(" verify_iou(i.vkey, i.subbit_id, t.Iou (i.amount, i.sig))"); + println!(" verify_iou(i.vkey, i.tag, t.Iou (i.amount, i.sig))"); println!("}}"); } diff --git a/test.ak b/test.ak index 4b86db2..261ed65 100644 --- a/test.ak +++ b/test.ak @@ -1,7 +1,7 @@ const i0 = IouTest { vkey: #"3b6a27bcceb6a42d62a3a8d02a6f0d73653215771de243a63ac048a18b59da29", - subbit_id: #"6c3b9aa767f785b5", + tag: #"6c3b9aa767f785b5", amount: 8594738769458413623, msg: #"d8799f486c3b9aa767f785b51b7746a55fbad8c037ff", sig: #"8bb7cb5fc82b23fac9114e9a4913f3b01c4db608e6189f01eeb431c7cd0c8c6e28484cdcc25aa895a715622598110754ede40f390797179a70e373856450ce03" @@ -9,13 +9,13 @@ const i0 = IouTest { test test_i0 () { let i = i0 - verify_iou(i.vkey, i.subbit_id, t.Iou (i.amount, i.sig)) + verify_iou(i.vkey, i.tag, t.Iou (i.amount, i.sig)) } const i1 = IouTest { vkey: #"cecc1507dc1ddd7295951c290888f095adb9044d1b73d696e6df065d683bd4fc", - subbit_id: #"b10da48cea4c0967", + tag: #"b10da48cea4c0967", amount: 1482817706323250795, msg: #"d8799f48b10da48cea4c09671b149406d8fc0e8e6bff", sig: #"7f96d963c32e225ae0a1fe1491466f277cd4cde77cd4f8335578fd888b61942af64972e02efc3a603241f2d84bb5df95b18f57e2f88e4d63c249716b068d8d01" @@ -23,13 +23,13 @@ const i1 = IouTest { test test_i1 () { let i = i1 - verify_iou(i.vkey, i.subbit_id, t.Iou (i.amount, i.sig)) + verify_iou(i.vkey, i.tag, t.Iou (i.amount, i.sig)) } const i2 = IouTest { vkey: #"6b79c57e6a095239282c04818e96112f3f03a4001ba97a564c23852a3f1ea5fc", - subbit_id: #"c51b8a31c98b9fe1", + tag: #"c51b8a31c98b9fe1", amount: 10116765682372994352, msg: #"d8799f48c51b8a31c98b9fe11b8c65f8c985b46530ff", sig: #"7e6161aab7aff7d73afe83b176d0f3549dc81a5c69ff35aaa7576417e69d7eb81b070d8aa4ae115a6beff99851be1b6266b66d4b2a3d56b4ae499bbc66d8f306" @@ -37,13 +37,13 @@ const i2 = IouTest { test test_i2 () { let i = i2 - verify_iou(i.vkey, i.subbit_id, t.Iou (i.amount, i.sig)) + verify_iou(i.vkey, i.tag, t.Iou (i.amount, i.sig)) } const i3 = IouTest { vkey: #"dadbd184a2d526f1ebdd5c06fdad9359b228759b4d7f79d66689fa254aad8546", - subbit_id: #"5de9bc1bb4cb7a9f", + tag: #"5de9bc1bb4cb7a9f", amount: 1499751601245649308, msg: #"d8799f485de9bc1bb4cb7a9f1b14d03022a391f99cff", sig: #"c6ca9a4e75691b030d416bb8316d4cf43601b8764d88f8cdbd36207136334abbd819cd00ac77962f7a8dbc494d253f147b5c9d78bf3a77fb6435d0f318d32d09" @@ -51,13 +51,13 @@ const i3 = IouTest { test test_i3 () { let i = i3 - verify_iou(i.vkey, i.subbit_id, t.Iou (i.amount, i.sig)) + verify_iou(i.vkey, i.tag, t.Iou (i.amount, i.sig)) } const i4 = IouTest { vkey: #"9be3287795907809407e14439ff198d5bfc7dce6f9bc743cb369146f610b4801", - subbit_id: #"22cfaefc92e4edb9", + tag: #"22cfaefc92e4edb9", amount: 1287912097577021104, msg: #"d8799f4822cfaefc92e4edb91b11df953aa601aeb0ff", sig: #"8775af7f57f681bddb8ad3682f662dcfd0fbb09b0a0fe652d880fc3d96f60f66225f4d5bc31e7a1acb729ffebec5ed0666b93e4acbc26392103a1e7878638f0e" @@ -65,6 +65,6 @@ const i4 = IouTest { test test_i4 () { let i = i4 - verify_iou(i.vkey, i.subbit_id, t.Iou (i.amount, i.sig)) + verify_iou(i.vkey, i.tag, t.Iou (i.amount, i.sig)) }