From f306f1715a5667500b57dc6a60e970a28062951c Mon Sep 17 00:00:00 2001 From: rvcas Date: Tue, 21 May 2024 17:04:25 -0400 Subject: [PATCH] feat: use plutus version in address command relates to #907 --- crates/aiken-project/src/lib.rs | 8 +++++--- crates/uplc/src/ast.rs | 13 +++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/crates/aiken-project/src/lib.rs b/crates/aiken-project/src/lib.rs index d8536de2..99129107 100644 --- a/crates/aiken-project/src/lib.rs +++ b/crates/aiken-project/src/lib.rs @@ -434,9 +434,11 @@ where Network::Testnet }; - Ok(validator - .program - .address(network, delegation_part.to_owned())) + Ok(validator.program.address( + network, + delegation_part.to_owned(), + &self.config.plutus_version.into(), + )) } }) } diff --git a/crates/uplc/src/ast.rs b/crates/uplc/src/ast.rs index c32e79d4..9329c76e 100644 --- a/crates/uplc/src/ast.rs +++ b/crates/uplc/src/ast.rs @@ -177,10 +177,19 @@ impl<'a> Deserialize<'a> for Program { } impl Program { - pub fn address(&self, network: Network, delegation: ShelleyDelegationPart) -> ShelleyAddress { + pub fn address( + &self, + network: Network, + delegation: ShelleyDelegationPart, + plutus_version: &Language, + ) -> ShelleyAddress { let cbor = self.to_cbor().unwrap(); - let validator_hash = babbage::PlutusV2Script(cbor.into()).compute_hash(); + let validator_hash = match plutus_version { + Language::PlutusV1 => conway::PlutusV1Script(cbor.into()).compute_hash(), + Language::PlutusV2 => conway::PlutusV2Script(cbor.into()).compute_hash(), + Language::PlutusV3 => conway::PlutusV3Script(cbor.into()).compute_hash(), + }; ShelleyAddress::new( network,