Skip to content

Commit

Permalink
Add getters to TransactionWitnessSetBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
SebastienGllmt committed Apr 14, 2022
1 parent a465d58 commit 5207b33
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 1 deletion.
30 changes: 30 additions & 0 deletions rust/pkg/cardano_multiplatform_lib.js.flow
Original file line number Diff line number Diff line change
Expand Up @@ -7318,6 +7318,11 @@ declare export class TransactionWitnessSet {
declare export class TransactionWitnessSetBuilder {
free(): void;

/**
* @returns {Vkeys}
*/
get_vkeys(): Vkeys;

/**
* @param {Vkeywitness} vkey
*/
Expand All @@ -7328,26 +7333,51 @@ declare export class TransactionWitnessSetBuilder {
*/
add_bootstrap(bootstrap: BootstrapWitness): void;

/**
* @returns {Vkeys}
*/
get_bootstraps(): Vkeys;

/**
* @param {NativeScript} native_script
*/
add_native_script(native_script: NativeScript): void;

/**
* @returns {NativeScripts}
*/
get_native_script(): NativeScripts;

/**
* @param {PlutusScript} plutus_script
*/
add_plutus_script(plutus_script: PlutusScript): void;

/**
* @returns {PlutusScripts}
*/
get_plutus_script(): PlutusScripts;

/**
* @param {PlutusData} plutus_datum
*/
add_plutus_datum(plutus_datum: PlutusData): void;

/**
* @returns {PlutusList}
*/
get_plutus_datum(): PlutusList;

/**
* @param {Redeemer} redeemer
*/
add_redeemer(redeemer: Redeemer): void;

/**
* @returns {Redeemers}
*/
get_redeemer(): Redeemers;

/**
* @param {RequiredWitnessSet} required_wits
*/
Expand Down
2 changes: 1 addition & 1 deletion rust/src/crypto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -380,7 +380,7 @@ impl Deserialize for Vkey {

#[wasm_bindgen]
#[derive(Clone)]
pub struct Vkeys(Vec<Vkey>);
pub struct Vkeys(pub(crate) Vec<Vkey>);

#[wasm_bindgen]
impl Vkeys {
Expand Down
27 changes: 27 additions & 0 deletions rust/src/witness_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,10 @@ pub struct TransactionWitnessSetBuilder {

#[wasm_bindgen]
impl TransactionWitnessSetBuilder {
pub fn get_vkeys(&self) -> Vkeys {
Vkeys(self.vkeys.clone().into_keys().collect())
}

pub fn add_vkey(&mut self, vkey: &Vkeywitness) {
self.vkeys.insert(vkey.vkey(), vkey.clone());
}
Expand All @@ -155,25 +159,48 @@ impl TransactionWitnessSetBuilder {
self.bootstraps.insert(bootstrap.vkey(), bootstrap.clone());
}

pub fn get_bootstraps(&self) -> Vkeys {
Vkeys(self.bootstraps.clone().into_keys().collect())
}

pub fn add_native_script(&mut self, native_script: &NativeScript) {
self.native_scripts.insert(native_script.hash(ScriptHashNamespace::NativeScript), native_script.clone());
}

pub fn get_native_script(&self) -> NativeScripts {
NativeScripts(self.native_scripts.clone().into_values().collect())
}

pub fn add_plutus_script(&mut self, plutus_script: &PlutusScript) {
self.plutus_scripts.insert(plutus_script.hash(ScriptHashNamespace::PlutusV1), plutus_script.clone());
}

pub fn get_plutus_script(&self) -> PlutusScripts {
PlutusScripts(self.plutus_scripts.clone().into_values().collect())
}

pub fn add_plutus_datum(&mut self, plutus_datum: &PlutusData) {
self.plutus_data.insert(hash_plutus_data(plutus_datum), plutus_datum.clone());
}

pub fn get_plutus_datum(&self) -> PlutusList {
PlutusList {
elems: self.plutus_data.clone().into_values().collect(),
definite_encoding: None
}
}

pub fn add_redeemer(&mut self, redeemer: &Redeemer) {
self.redeemers.insert(
RedeemerWitnessKey::new(&redeemer.tag(), &redeemer.index()),
redeemer.clone()
);
}

pub fn get_redeemer(&self) -> Redeemers {
Redeemers(self.redeemers.clone().into_values().collect())
}

pub fn add_required_wits(&mut self, required_wits: &RequiredWitnessSet) {
self.required_wits.add_all(required_wits)
}
Expand Down

0 comments on commit 5207b33

Please sign in to comment.