cml_chain_wasm/builders/
mint_builder.rs1use crate::builders::witness_builder::{NativeScriptWitnessInfo, PartialPlutusWitness};
2
3use cml_core_wasm::impl_wasm_conversions;
4use wasm_bindgen::prelude::wasm_bindgen;
5
6use crate::{AssetName, MapAssetNameToNonZeroInt64, NativeScript, RequiredSigners};
7
8#[wasm_bindgen]
9#[derive(Clone)]
10pub struct MintBuilderResult(cml_chain::builders::mint_builder::MintBuilderResult);
11
12impl_wasm_conversions!(
13 cml_chain::builders::mint_builder::MintBuilderResult,
14 MintBuilderResult
15);
16
17#[wasm_bindgen]
18#[derive(Clone)]
19pub struct SingleMintBuilder(cml_chain::builders::mint_builder::SingleMintBuilder);
20
21impl_wasm_conversions!(
22 cml_chain::builders::mint_builder::SingleMintBuilder,
23 SingleMintBuilder
24);
25
26#[wasm_bindgen]
27impl SingleMintBuilder {
28 pub fn new(assets: &MapAssetNameToNonZeroInt64) -> Self {
29 cml_chain::builders::mint_builder::SingleMintBuilder::new(assets.clone().into()).into()
30 }
31
32 pub fn new_single_asset(asset: &AssetName, amount: i64) -> Self {
33 cml_chain::builders::mint_builder::SingleMintBuilder::new_single_asset(
34 asset.clone().into(),
35 amount,
36 )
37 .into()
38 }
39
40 pub fn native_script(
41 self,
42 native_script: &NativeScript,
43 witness_info: &NativeScriptWitnessInfo,
44 ) -> MintBuilderResult {
45 self.0
46 .native_script(native_script.clone().into(), witness_info.clone().into())
47 .into()
48 }
49
50 pub fn plutus_script(
51 self,
52 partial_witness: &PartialPlutusWitness,
53 required_signers: &RequiredSigners,
54 ) -> MintBuilderResult {
55 self.0
56 .plutus_script(
57 partial_witness.clone().into(),
58 required_signers.clone().into(),
59 )
60 .into()
61 }
62}