From e27ece8efffec1a064cf89d6b93f9c0d644dd2a2 Mon Sep 17 00:00:00 2001 From: jack Date: Tue, 18 Jun 2024 16:56:40 +0800 Subject: [PATCH] add rights, attachment operations --- src/interface/contract.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/interface/contract.rs b/src/interface/contract.rs index bfe70a43..a02562ff 100644 --- a/src/interface/contract.rs +++ b/src/interface/contract.rs @@ -443,4 +443,38 @@ impl ContractIface { witness_filter, )) } + + pub fn rights_ops>( + &self, + name: impl Into, + witness_filter: impl WitnessFilter + Copy, + outpoint_filter: impl OutpointFilter + Copy, + ) -> Result>, ContractError> { + Ok(self.operations( + self.state + .rights() + .iter() + .cloned() + .map(OutputAssignment::transmute), + self.rights(name, outpoint_filter)?, + witness_filter, + )) + } + + pub fn attachment_ops>( + &self, + name: impl Into, + witness_filter: impl WitnessFilter + Copy, + outpoint_filter: impl OutpointFilter + Copy, + ) -> Result>, ContractError> { + Ok(self.operations( + self.state + .attach() + .iter() + .cloned() + .map(OutputAssignment::transmute), + self.attachments(name, outpoint_filter)?, + witness_filter, + )) + } }