cml_chain_wasm/builders/
withdrawal_builder.rs1use crate::builders::witness_builder::PartialPlutusWitness;
2use crate::*;
3use cml_core_wasm::impl_wasm_conversions;
4use wasm_bindgen::prelude::{wasm_bindgen, JsError};
5
6use super::witness_builder::NativeScriptWitnessInfo;
7
8use crate::{address::RewardAddress, RequiredSigners};
9
10#[wasm_bindgen]
11#[derive(Clone)]
12pub struct WithdrawalBuilderResult(
13 cml_chain::builders::withdrawal_builder::WithdrawalBuilderResult,
14);
15
16impl_wasm_conversions!(
17 cml_chain::builders::withdrawal_builder::WithdrawalBuilderResult,
18 WithdrawalBuilderResult
19);
20
21#[wasm_bindgen]
22#[derive(Clone)]
23pub struct SingleWithdrawalBuilder(
24 cml_chain::builders::withdrawal_builder::SingleWithdrawalBuilder,
25);
26
27impl_wasm_conversions!(
28 cml_chain::builders::withdrawal_builder::SingleWithdrawalBuilder,
29 SingleWithdrawalBuilder
30);
31
32#[wasm_bindgen]
33impl SingleWithdrawalBuilder {
34 pub fn new(address: &RewardAddress, amount: Coin) -> Self {
35 cml_chain::builders::withdrawal_builder::SingleWithdrawalBuilder::new(
36 address.clone().into(),
37 amount,
38 )
39 .into()
40 }
41
42 pub fn payment_key(&self) -> Result<WithdrawalBuilderResult, JsError> {
43 self.0
44 .clone()
45 .payment_key()
46 .map(Into::into)
47 .map_err(Into::into)
48 }
49
50 pub fn native_script(
51 self,
52 native_script: &NativeScript,
53 witness_info: &NativeScriptWitnessInfo,
54 ) -> Result<WithdrawalBuilderResult, JsError> {
55 self.0
56 .native_script(native_script.as_ref(), witness_info.as_ref())
57 .map(Into::into)
58 .map_err(Into::into)
59 }
60
61 pub fn plutus_script(
62 self,
63 partial_witness: PartialPlutusWitness,
64 required_signers: RequiredSigners,
65 ) -> Result<WithdrawalBuilderResult, JsError> {
66 self.0
67 .plutus_script(partial_witness.into(), required_signers.into())
68 .map(Into::into)
69 .map_err(Into::into)
70 }
71}