Skip to content

Commit 7e4eed5

Browse files
committed
add to from json for datum and redeemer
1 parent 67116b3 commit 7e4eed5

File tree

2 files changed

+55
-2
lines changed

2 files changed

+55
-2
lines changed

rust/pkg/cardano_serialization_lib.js.flow

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4480,6 +4480,19 @@ declare export class PlutusData {
44804480
* @returns {Uint8Array | void}
44814481
*/
44824482
as_bytes(): Uint8Array | void;
4483+
4484+
/**
4485+
* @param {number} schema
4486+
* @returns {string}
4487+
*/
4488+
to_json(schema: number): string;
4489+
4490+
/**
4491+
* @param {string} json
4492+
* @param {number} schema
4493+
* @returns {PlutusData}
4494+
*/
4495+
static from_json(json: string, schema: number): PlutusData;
44834496
}
44844497
/**
44854498
*/
@@ -5847,6 +5860,22 @@ declare export class Redeemer {
58475860
*/
58485861
static from_hex(hex_str: string): Redeemer;
58495862

5863+
/**
5864+
* @returns {string}
5865+
*/
5866+
to_json(): string;
5867+
5868+
/**
5869+
* @returns {RedeemerJSON}
5870+
*/
5871+
to_js_value(): RedeemerJSON;
5872+
5873+
/**
5874+
* @param {string} json
5875+
* @returns {Redeemer}
5876+
*/
5877+
static from_json(json: string): Redeemer;
5878+
58505879
/**
58515880
* @returns {RedeemerTag}
58525881
*/
@@ -5976,6 +6005,22 @@ declare export class Redeemers {
59766005
*/
59776006
static from_hex(hex_str: string): Redeemers;
59786007

6008+
/**
6009+
* @returns {string}
6010+
*/
6011+
to_json(): string;
6012+
6013+
/**
6014+
* @returns {RedeemersJSON}
6015+
*/
6016+
to_js_value(): RedeemersJSON;
6017+
6018+
/**
6019+
* @param {string} json
6020+
* @returns {Redeemers}
6021+
*/
6022+
static from_json(json: string): Redeemers;
6023+
59796024
/**
59806025
* @returns {Redeemers}
59816026
*/

rust/src/plutus.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -700,6 +700,14 @@ impl PlutusData {
700700
_ => None,
701701
}
702702
}
703+
704+
pub fn to_json(&self, schema: PlutusDatumSchema) -> Result<String, JsError> {
705+
decode_plutus_datum_to_json_str(self, schema)
706+
}
707+
708+
pub fn from_json(json: &str, schema: PlutusDatumSchema) -> Result<PlutusData, JsError> {
709+
encode_json_str_to_plutus_datum(json, schema)
710+
}
703711
}
704712

705713
//TODO: replace this by cardano-node schemas
@@ -801,7 +809,7 @@ pub struct Redeemer {
801809
ex_units: ExUnits,
802810
}
803811

804-
to_from_bytes!(Redeemer);
812+
impl_to_from!(Redeemer);
805813

806814
#[wasm_bindgen]
807815
impl Redeemer {
@@ -897,7 +905,7 @@ impl RedeemerTag {
897905
)]
898906
pub struct Redeemers(pub(crate) Vec<Redeemer>);
899907

900-
to_from_bytes!(Redeemers);
908+
impl_to_from!(Redeemers);
901909

902910
#[wasm_bindgen]
903911
impl Redeemers {

0 commit comments

Comments
 (0)