diff --git a/apps/playground/src/pages/apis/utilities/deserializers/deserialize-address.tsx b/apps/playground/src/pages/apis/utilities/deserializers/deserialize-address.tsx
new file mode 100644
index 000000000..3e78bec66
--- /dev/null
+++ b/apps/playground/src/pages/apis/utilities/deserializers/deserialize-address.tsx
@@ -0,0 +1,63 @@
+import { useState } from "react";
+
+import { deserializeAddress } from "@meshsdk/core";
+
+import Input from "~/components/form/input";
+import InputTable from "~/components/sections/input-table";
+import LiveCodeDemo from "~/components/sections/live-code-demo";
+import TwoColumnsScroll from "~/components/sections/two-columns-scroll";
+import { demoAddresses } from "~/data/cardano";
+
+export default function DeserializeAddress() {
+ return (
+
+ );
+}
+
+function Left() {
+ return (
+ <>
+
+ Deserialize bech32 address into payment and staking parts, with
+ visibility of whether they are script or key hash.
+
+ >
+ );
+}
+
+function Right() {
+ const [userInput, setUserInput] = useState(
+ demoAddresses.testnetPayment,
+ );
+
+ async function runDemo() {
+ return deserializeAddress(userInput);
+ }
+
+ let codeSnippet = `deserializeAddress('${userInput}');`;
+
+ return (
+
+ setUserInput(e.target.value)}
+ label="Address"
+ key={0}
+ />,
+ ]}
+ />
+
+ );
+}
diff --git a/apps/playground/src/pages/apis/utilities/deserializers/index.tsx b/apps/playground/src/pages/apis/utilities/deserializers/index.tsx
index 6df1900eb..0b25bd5ca 100644
--- a/apps/playground/src/pages/apis/utilities/deserializers/index.tsx
+++ b/apps/playground/src/pages/apis/utilities/deserializers/index.tsx
@@ -4,10 +4,11 @@ import SidebarFullwidth from "~/components/layouts/sidebar-fullwidth";
import TitleIconDescriptionBody from "~/components/sections/title-icon-description-body";
import Metatags from "~/components/site/metatags";
import { metaDeserializers } from "~/data/links-utilities";
+import DeserializeAddress from "./deserialize-address";
const ReactPage: NextPage = () => {
const sidebarItems = [
- { label: "Coming soon", to: "resolveDataHash" },
+ { label: "Deserialize Address", to: "deserializeAddress" },
];
return (
@@ -24,6 +25,8 @@ const ReactPage: NextPage = () => {
>
<>>
+
+
>
);
diff --git a/apps/playground/src/pages/apis/utilities/deserializers/resolve-data-hash.tsx b/apps/playground/src/pages/apis/utilities/deserializers/resolve-data-hash.tsx
deleted file mode 100644
index ae59bbb55..000000000
--- a/apps/playground/src/pages/apis/utilities/deserializers/resolve-data-hash.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-import { useState } from "react";
-import Link from "~/components/link";
-
-import { Data } from "@meshsdk/core";
-import { resolveDataHash } from "@meshsdk/core";
-
-import Input from "~/components/form/input";
-import InputTable from "~/components/sections/input-table";
-import LiveCodeDemo from "~/components/sections/live-code-demo";
-import TwoColumnsScroll from "~/components/sections/two-columns-scroll";
-
-export default function ResolveDataHash() {
- return (
-
- );
-}
-
-function Left() {
- return (
- <>
-
- Converts datum into hash. Getting the hash is useful when you need to
- query for the UTXO that contain the assets you need for your
- transaction's input.
-
-
- Explore Transaction to learn more
- about designing Datum, and learn how to query for UTXOs containing the
- datum hash.
-
- >
- );
-}
-
-function Right() {
- const [userInput, setUserInput] = useState("supersecretdatum");
-
- async function runDemo() {
- const datum: Data = userInput;
- const dataHash = resolveDataHash(datum);
- return dataHash;
- }
-
- let codeSnippet = `resolveDataHash('${userInput}');`;
-
- return (
-
- setUserInput(e.target.value)}
- label="Datum"
- key={0}
- />,
- ]}
- />
-
- );
-}
diff --git a/apps/playground/src/pages/apis/utilities/serializers/index.tsx b/apps/playground/src/pages/apis/utilities/serializers/index.tsx
index f7b98874c..277dcdcc4 100644
--- a/apps/playground/src/pages/apis/utilities/serializers/index.tsx
+++ b/apps/playground/src/pages/apis/utilities/serializers/index.tsx
@@ -5,9 +5,13 @@ import TitleIconDescriptionBody from "~/components/sections/title-icon-descripti
import Metatags from "~/components/site/metatags";
import { metaSerializers } from "~/data/links-utilities";
import SerializeNativeScript from "./serialize-native-script";
+import SerializePlutusScript from "./serialize-plutus-script";
const ReactPage: NextPage = () => {
- const sidebarItems = [{ label: "Coming soon", to: "resolveDataHash" }];
+ const sidebarItems = [
+ { label: "Serialize Native Script", to: "serializeNativeScript" },
+ { label: "Serialize Plutus Script", to: "serializePlutusScript" },
+ ];
return (
<>
@@ -25,6 +29,7 @@ const ReactPage: NextPage = () => {
+
>
);
diff --git a/apps/playground/src/pages/apis/utilities/serializers/serialize-plutus-script.tsx b/apps/playground/src/pages/apis/utilities/serializers/serialize-plutus-script.tsx
new file mode 100644
index 000000000..860715242
--- /dev/null
+++ b/apps/playground/src/pages/apis/utilities/serializers/serialize-plutus-script.tsx
@@ -0,0 +1,48 @@
+import { PlutusScript, serializePlutusScript } from "@meshsdk/core";
+
+import LiveCodeDemo from "~/components/sections/live-code-demo";
+import TwoColumnsScroll from "~/components/sections/two-columns-scroll";
+import { demoPlutusAlwaysSucceedScript } from "~/data/cardano";
+
+export default function SerializePlutusScript() {
+ return (
+
+ );
+}
+
+function Left() {
+ return (
+ <>
+ Serialize Plutus script into bech32 address.
+ >
+ );
+}
+
+function Right() {
+ async function runDemo() {
+ const script: PlutusScript = {
+ code: demoPlutusAlwaysSucceedScript,
+ version: "V2",
+ };
+
+ const address = serializePlutusScript(script);
+
+ return address;
+ }
+
+ let codeSnippet = ``;
+
+ return (
+
+ );
+}