diff --git a/apps/playground/src/components/cardano/connect-browser-wallet.tsx b/apps/playground/src/components/cardano/connect-browser-wallet.tsx
index 18822c153..b933b0f39 100644
--- a/apps/playground/src/components/cardano/connect-browser-wallet.tsx
+++ b/apps/playground/src/components/cardano/connect-browser-wallet.tsx
@@ -1,15 +1,42 @@
import { CardanoWallet, useWalletList } from "@meshsdk/react";
+import { getProvider } from "./mesh-wallet";
+
export default function ConnectBrowserWallet() {
const wallets = useWalletList();
const hasAvailableWallets = wallets.length > 0;
return (
<>
{hasAvailableWallets ? (
-
+
) : (
<>No wallets installed>
)}
>
);
}
+
+export function CommonCardanoWallet() {
+ const provider = getProvider();
+
+ return (
+
+ );
+}
diff --git a/apps/playground/src/components/cardano/mesh-wallet.ts b/apps/playground/src/components/cardano/mesh-wallet.ts
index 4667b0246..ad33bc58f 100644
--- a/apps/playground/src/components/cardano/mesh-wallet.ts
+++ b/apps/playground/src/components/cardano/mesh-wallet.ts
@@ -1,7 +1,11 @@
import { BlockfrostProvider, MeshWallet } from "@meshsdk/core";
export function getProvider(network = "preprod") {
- return new BlockfrostProvider(`/api/blockfrost/${network}/`);
+ const blockchainProvider = new BlockfrostProvider(
+ `/api/blockfrost/${network}/`,
+ );
+ blockchainProvider.setSubmitTxToBytes(false);
+ return blockchainProvider;
}
export function getMeshWallet() {
diff --git a/apps/playground/src/components/sections/hero-two-sections.tsx b/apps/playground/src/components/sections/hero-two-sections.tsx
index 33ec15fb1..d2be5df88 100644
--- a/apps/playground/src/components/sections/hero-two-sections.tsx
+++ b/apps/playground/src/components/sections/hero-two-sections.tsx
@@ -15,7 +15,7 @@ export default function HeroTwoSections({
children?: React.ReactNode;
title: string;
description: string;
- image: string | React.ReactNode;
+ image?: string | React.ReactNode;
link?: { label: string; href: string };
code?: string;
}) {
@@ -45,7 +45,7 @@ export default function HeroTwoSections({
{children &&
{children}
}
- {typeof image === "string" ?
: image}
+ {image && typeof image === "string" ?
: image}
diff --git a/apps/playground/src/pages/aiken/common.tsx b/apps/playground/src/pages/aiken/common.tsx
index 0b719c62d..c8ab05d57 100644
--- a/apps/playground/src/pages/aiken/common.tsx
+++ b/apps/playground/src/pages/aiken/common.tsx
@@ -1,5 +1,5 @@
import {
- BrowserWallet,
+ IWallet,
PlutusScript,
resolveDataHash,
resolvePaymentKeyHash,
@@ -20,7 +20,7 @@ export function getPageLinks() {
export const compiledCode = `58f0010000323232323232323222232325333008323232533300b002100114a06644646600200200644a66602200229404c8c94ccc040cdc78010028a511330040040013014002375c60240026eb0c038c03cc03cc03cc03cc03cc03cc03cc03cc020c008c020014dd71801180400399b8f375c6002600e00a91010d48656c6c6f2c20576f726c6421002300d001149858c94ccc020cdc3a400000226464a66601a601e0042930b1bae300d00130060041630060033253330073370e900000089919299980618070010a4c2c6eb8c030004c01401058c01400c8c014dd5000918019baa0015734aae7555cf2ab9f5742ae89`;
-export async function getWalletAddress(wallet: BrowserWallet) {
+export async function getWalletAddress(wallet: IWallet) {
const addresses = await wallet.getUsedAddresses();
const address = addresses[0];
diff --git a/apps/playground/src/pages/api/blockfrost/[...slug].ts b/apps/playground/src/pages/api/blockfrost/[...slug].ts
index c99a43019..60b3d58be 100644
--- a/apps/playground/src/pages/api/blockfrost/[...slug].ts
+++ b/apps/playground/src/pages/api/blockfrost/[...slug].ts
@@ -1,6 +1,9 @@
import type { NextApiRequest, NextApiResponse } from "next";
import axios from "axios";
+import { bytesToHex, toBytes } from "@meshsdk/common";
+import { fromBytes } from "@meshsdk/core-csl";
+
export default async function handler(
_req: NextApiRequest,
_res: NextApiResponse,
@@ -43,18 +46,31 @@ export default async function handler(
url += `${key}=${params[key]}&`;
}
}
+
// end get params if exists
+ if (url == "tx/submit") {
+ const body = _req.body;
- /**
- * call blockfrost api
- */
- if (url == "tx/submit" || url == "utils/txs/evaluate") {
+ const headers = { "Content-Type": "application/cbor" };
+ const { data, status } = await axiosInstance.post(
+ "tx/submit",
+ toBytes(body),
+ {
+ headers,
+ },
+ );
+ _res.status(status).json(data);
+ } else if (url == "utils/txs/evaluate") {
const body = _req.body;
const headers = { "Content-Type": "application/cbor" };
- const { data, status } = await axiosInstance.post(url, body, {
- headers,
- });
+ const { status, data } = await axiosInstance.post(
+ "utils/txs/evaluate",
+ body,
+ {
+ headers,
+ },
+ );
_res.status(status).json(data);
} else {
const { data, status } = await axiosInstance.get(`${url}`);
diff --git a/apps/playground/src/pages/apis/txbuilder/basics/send-values.tsx b/apps/playground/src/pages/apis/txbuilder/basics/send-values.tsx
index d5ede6e3c..c3927da4e 100644
--- a/apps/playground/src/pages/apis/txbuilder/basics/send-values.tsx
+++ b/apps/playground/src/pages/apis/txbuilder/basics/send-values.tsx
@@ -73,7 +73,7 @@ function Right() {
const { wallet, connected } = useWallet();
const [address, setAddress] = useState(demoAddresses.testnet);
- const [amount, setAmount] = useState("2000000");
+ const [amount, setAmount] = useState("1000000");
async function runDemo() {
const utxos = await wallet.getUtxos();
diff --git a/apps/playground/src/pages/apis/txbuilder/common.tsx b/apps/playground/src/pages/apis/txbuilder/common.tsx
index b949cbf93..6bcbab011 100644
--- a/apps/playground/src/pages/apis/txbuilder/common.tsx
+++ b/apps/playground/src/pages/apis/txbuilder/common.tsx
@@ -6,6 +6,7 @@ export function getTxBuilder() {
const blockchainProvider = getProvider();
const txBuilder = new MeshTxBuilder({
fetcher: blockchainProvider,
+ submitter: blockchainProvider,
evaluator: blockchainProvider,
verbose: true,
});
diff --git a/apps/playground/src/pages/home/index.tsx b/apps/playground/src/pages/home/index.tsx
index 5affc3777..b60398f23 100644
--- a/apps/playground/src/pages/home/index.tsx
+++ b/apps/playground/src/pages/home/index.tsx
@@ -14,7 +14,7 @@ export default function HomePage() {
title="Web3 TypeScript SDK & off-chain Framework"
description="Mesh is a TypeScript open-source library providing numerous tools to easily build powerful dApps on the Cardano blockchain."
link={{ label: "Get started", href: "/getting-started" }}
- image={ }
+ // image={ }
children={
\n`;
+ let codeBurner = ` \n`;
+
return (
<>
@@ -116,6 +124,14 @@ function Left() {
specific CIPs. For example, to enable CIP95, you would pass:
+
+ Burner wallet
+
+ Burner wallets are wallets that are created on the fly on the user's
+ device. They are temporary wallets useful for testing purposes. The
+ private keys are generated and stored on the user's device.
+
+
>
);
}
@@ -136,9 +152,21 @@ function Right() {
example += ` <>\n`;
example += ` \n`;
example += ` >\n`;
example += ` );\n`;
@@ -151,20 +179,7 @@ function Right() {
code={example}
childrenAfterCodeFunctions={true}
>
-
+
);
}
diff --git a/apps/playground/src/pages/smart-contracts/content-ownership/common.tsx b/apps/playground/src/pages/smart-contracts/content-ownership/common.tsx
index dc7cdce84..8abc3e912 100644
--- a/apps/playground/src/pages/smart-contracts/content-ownership/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/content-ownership/common.tsx
@@ -2,7 +2,7 @@ import { create } from "zustand";
import { persist } from "zustand/middleware";
import { MeshContentOwnershipContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder, UTxO } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder, UTxO } from "@meshsdk/core";
import Input from "~/components/form/input";
import InputTable from "~/components/sections/input-table";
@@ -10,7 +10,7 @@ import { demoAddresses } from "~/data/cardano";
import { getProvider } from "../../../components/cardano/mesh-wallet";
export function getContract(
- wallet: BrowserWallet,
+ wallet: IWallet,
operationAddress: string,
paramUtxo?: UTxO["input"],
refScriptUtxos?: {
@@ -80,22 +80,26 @@ export const useContentOwnership = create()(
set(() => ({
paramUtxo: paramUtxo,
})),
- contentRegistry: "dfd2a2616e6154a092807b1ceebb9ddcadc0f22cf5c8e0e6b0757815083ccb70",
+ contentRegistry:
+ "dfd2a2616e6154a092807b1ceebb9ddcadc0f22cf5c8e0e6b0757815083ccb70",
setContentRegistry: (address: string) =>
set(() => ({
contentRegistry: address,
})),
- contentRefToken: "8f731be135171df172c07578a5d74589ec8fb30b37c12fdbe2639d69b7587f5e",
+ contentRefToken:
+ "8f731be135171df172c07578a5d74589ec8fb30b37c12fdbe2639d69b7587f5e",
setContentRefToken: (address: string) =>
set(() => ({
contentRefToken: address,
})),
- ownershipRegistry: "ec874b61eec4e5e8e395dead6c9bb18690e6d6ea64d773760c5e654ec9ff5f97",
+ ownershipRegistry:
+ "ec874b61eec4e5e8e395dead6c9bb18690e6d6ea64d773760c5e654ec9ff5f97",
setOwnershipRegistry: (address: string) =>
set(() => ({
ownershipRegistry: address,
})),
- ownershipRefToken: "e1bdfc7ae6929f934cf9d418273dde143cbb65ec0eec23bdb6c342e4cd91dbd0",
+ ownershipRefToken:
+ "e1bdfc7ae6929f934cf9d418273dde143cbb65ec0eec23bdb6c342e4cd91dbd0",
setOwnershipRefToken: (address: string) =>
set(() => ({
ownershipRefToken: address,
diff --git a/apps/playground/src/pages/smart-contracts/escrow/common.tsx b/apps/playground/src/pages/smart-contracts/escrow/common.tsx
index 954e266bc..ccea51f9c 100644
--- a/apps/playground/src/pages/smart-contracts/escrow/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/escrow/common.tsx
@@ -1,9 +1,9 @@
import { MeshEscrowContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/apps/playground/src/pages/smart-contracts/giftcard/common.tsx b/apps/playground/src/pages/smart-contracts/giftcard/common.tsx
index 6b81bcaf8..b8c0b66b6 100644
--- a/apps/playground/src/pages/smart-contracts/giftcard/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/giftcard/common.tsx
@@ -1,9 +1,9 @@
import { MeshGiftCardContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/apps/playground/src/pages/smart-contracts/hello-world/common.tsx b/apps/playground/src/pages/smart-contracts/hello-world/common.tsx
index a374c811d..69aa6fcdc 100644
--- a/apps/playground/src/pages/smart-contracts/hello-world/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/hello-world/common.tsx
@@ -1,9 +1,9 @@
import { MeshHelloWorldContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/apps/playground/src/pages/smart-contracts/marketplace/common.tsx b/apps/playground/src/pages/smart-contracts/marketplace/common.tsx
index db10682be..0f7653c9e 100644
--- a/apps/playground/src/pages/smart-contracts/marketplace/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/marketplace/common.tsx
@@ -1,5 +1,5 @@
import { MeshMarketplaceContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
import { demoAddresses, demoAsset } from "../../../data/cardano";
@@ -7,7 +7,7 @@ import { demoAddresses, demoAsset } from "../../../data/cardano";
export const asset = demoAsset;
export const price = 10000000;
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/apps/playground/src/pages/smart-contracts/payment-splitter/common.tsx b/apps/playground/src/pages/smart-contracts/payment-splitter/common.tsx
index 63c9b53d8..0750aed6e 100644
--- a/apps/playground/src/pages/smart-contracts/payment-splitter/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/payment-splitter/common.tsx
@@ -1,9 +1,9 @@
import { MeshPaymentSplitterContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/apps/playground/src/pages/smart-contracts/plutus-nft/common.tsx b/apps/playground/src/pages/smart-contracts/plutus-nft/common.tsx
index e1699a9d4..8241fd16e 100644
--- a/apps/playground/src/pages/smart-contracts/plutus-nft/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/plutus-nft/common.tsx
@@ -2,14 +2,14 @@ import { create } from "zustand";
import { persist } from "zustand/middleware";
import { MeshPlutusNFTContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder, UTxO } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder, UTxO } from "@meshsdk/core";
import Input from "~/components/form/input";
import InputTable from "~/components/sections/input-table";
import { getProvider } from "../../../components/cardano/mesh-wallet";
export function getContract(
- wallet: BrowserWallet,
+ wallet: IWallet,
collectionName: string,
paramUtxo?: UTxO["input"],
) {
diff --git a/apps/playground/src/pages/smart-contracts/swap/common.tsx b/apps/playground/src/pages/smart-contracts/swap/common.tsx
index 5db9bda55..7018414b6 100644
--- a/apps/playground/src/pages/smart-contracts/swap/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/swap/common.tsx
@@ -1,9 +1,9 @@
import { MeshSwapContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/apps/playground/src/pages/smart-contracts/vesting/common.tsx b/apps/playground/src/pages/smart-contracts/vesting/common.tsx
index 0dfa96cc7..6eb16e1e5 100644
--- a/apps/playground/src/pages/smart-contracts/vesting/common.tsx
+++ b/apps/playground/src/pages/smart-contracts/vesting/common.tsx
@@ -1,9 +1,9 @@
import { MeshVestingContract } from "@meshsdk/contract";
-import { BrowserWallet, MeshTxBuilder } from "@meshsdk/core";
+import { IWallet, MeshTxBuilder } from "@meshsdk/core";
import { getProvider } from "../../../components/cardano/mesh-wallet";
-export function getContract(wallet: BrowserWallet) {
+export function getContract(wallet: IWallet) {
const blockchainProvider = getProvider();
const meshTxBuilder = new MeshTxBuilder({
diff --git a/package-lock.json b/package-lock.json
index d6d6306dd..a8e8b67e3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13237,6 +13237,39 @@
}
}
},
+ "node_modules/@radix-ui/react-tooltip": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.4.tgz",
+ "integrity": "sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==",
+ "dependencies": {
+ "@radix-ui/primitive": "1.1.0",
+ "@radix-ui/react-compose-refs": "1.1.0",
+ "@radix-ui/react-context": "1.1.1",
+ "@radix-ui/react-dismissable-layer": "1.1.1",
+ "@radix-ui/react-id": "1.1.0",
+ "@radix-ui/react-popper": "1.2.0",
+ "@radix-ui/react-portal": "1.1.2",
+ "@radix-ui/react-presence": "1.1.1",
+ "@radix-ui/react-primitive": "2.0.0",
+ "@radix-ui/react-slot": "1.1.0",
+ "@radix-ui/react-use-controllable-state": "1.1.0",
+ "@radix-ui/react-visually-hidden": "1.1.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@radix-ui/react-use-callback-ref": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz",
@@ -13333,6 +13366,28 @@
}
}
},
+ "node_modules/@radix-ui/react-visually-hidden": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz",
+ "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==",
+ "dependencies": {
+ "@radix-ui/react-primitive": "2.0.0"
+ },
+ "peerDependencies": {
+ "@types/react": "*",
+ "@types/react-dom": "*",
+ "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc",
+ "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc"
+ },
+ "peerDependenciesMeta": {
+ "@types/react": {
+ "optional": true
+ },
+ "@types/react-dom": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@radix-ui/rect": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz",
@@ -33819,7 +33874,7 @@
},
"packages/mesh-common": {
"name": "@meshsdk/common",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
"bech32": "^2.0.0",
@@ -33836,12 +33891,12 @@
},
"packages/mesh-contract": {
"name": "@meshsdk/contract",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/common": "1.7.22",
- "@meshsdk/core": "1.7.22",
- "@meshsdk/core-csl": "1.7.22"
+ "@meshsdk/common": "1.7.25",
+ "@meshsdk/core": "1.7.25",
+ "@meshsdk/core-csl": "1.7.25"
},
"devDependencies": {
"@meshsdk/configs": "*",
@@ -33852,16 +33907,16 @@
},
"packages/mesh-core": {
"name": "@meshsdk/core",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/common": "1.7.22",
- "@meshsdk/core-csl": "1.7.22",
- "@meshsdk/core-cst": "1.7.22",
- "@meshsdk/provider": "1.7.22",
- "@meshsdk/react": "1.7.22",
- "@meshsdk/transaction": "1.7.22",
- "@meshsdk/wallet": "1.7.22"
+ "@meshsdk/common": "1.7.25",
+ "@meshsdk/core-csl": "1.7.25",
+ "@meshsdk/core-cst": "1.7.25",
+ "@meshsdk/provider": "1.7.25",
+ "@meshsdk/react": "1.7.25",
+ "@meshsdk/transaction": "1.7.25",
+ "@meshsdk/wallet": "1.7.25"
},
"devDependencies": {
"@meshsdk/configs": "*",
@@ -33872,10 +33927,10 @@
},
"packages/mesh-core-csl": {
"name": "@meshsdk/core-csl",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/common": "1.7.22",
+ "@meshsdk/common": "1.7.25",
"@sidan-lab/sidan-csl-rs-browser": "0.9.7",
"@sidan-lab/sidan-csl-rs-nodejs": "0.9.7",
"@types/base32-encoding": "^1.0.2",
@@ -33885,7 +33940,7 @@
},
"devDependencies": {
"@meshsdk/configs": "*",
- "@meshsdk/provider": "1.7.22",
+ "@meshsdk/provider": "1.7.25",
"@types/json-bigint": "^1.0.4",
"eslint": "^8.57.0",
"ts-jest": "^29.1.4",
@@ -33895,7 +33950,7 @@
},
"packages/mesh-core-cst": {
"name": "@meshsdk/core-cst",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
"@cardano-sdk/core": "0.35.4",
@@ -33904,7 +33959,7 @@
"@harmoniclabs/cbor": "1.3.0",
"@harmoniclabs/plutus-data": "1.2.4",
"@harmoniclabs/uplc": "1.2.4",
- "@meshsdk/common": "1.7.22",
+ "@meshsdk/common": "1.7.25",
"@stricahq/bip32ed25519": "^1.1.0",
"@stricahq/cbors": "^1.0.3",
"pbkdf2": "^3.1.2"
@@ -33921,11 +33976,11 @@
},
"packages/mesh-provider": {
"name": "@meshsdk/provider",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/common": "1.7.22",
- "@meshsdk/core-cst": "1.7.22",
+ "@meshsdk/common": "1.7.25",
+ "@meshsdk/core-cst": "1.7.25",
"@utxorpc/sdk": "0.6.2",
"@utxorpc/spec": "0.10.1",
"axios": "^1.7.2"
@@ -33939,18 +33994,18 @@
},
"packages/mesh-react": {
"name": "@meshsdk/react",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
"@fabianbormann/cardano-peer-connect": "^1.2.18",
- "@meshsdk/common": "1.7.22",
- "@meshsdk/transaction": "1.7.22",
- "@meshsdk/wallet": "1.7.22",
+ "@meshsdk/common": "1.7.25",
+ "@meshsdk/transaction": "1.7.25",
+ "@meshsdk/wallet": "1.7.25",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.2",
"@radix-ui/react-icons": "^1.3.2",
+ "@radix-ui/react-tooltip": "^1.1.4",
"class-variance-authority": "^0.7.1",
- "react": "^18.2.0",
"tailwindcss-animate": "^1.0.7"
},
"devDependencies": {
@@ -33958,17 +34013,20 @@
"@types/react": "^18.2.61",
"autoprefixer": "^10.4.18",
"postcss": "^8.4.35",
- "react": "^18.2.0",
"tailwindcss": "^3.4.1",
"typescript": "latest"
+ },
+ "peerDependencies": {
+ "react": ">=16.0.0 <20.0.0 || >=16.0.0-rc <20.0.0-rc || >=19.0.0-rc",
+ "react-dom": ">=16.0.0 <20.0.0 || >=16.0.0-rc <20.0.0-rc || >=19.0.0-rc"
}
},
"packages/mesh-svelte": {
"name": "@meshsdk/svelte",
- "version": "0.0.5",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/core": "1.7.22"
+ "@meshsdk/core": "1.7.25"
},
"devDependencies": {
"@meshsdk/configs": "*",
@@ -33993,12 +34051,12 @@
},
"packages/mesh-transaction": {
"name": "@meshsdk/transaction",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/common": "1.7.22",
- "@meshsdk/core-csl": "1.7.22",
- "@meshsdk/core-cst": "1.7.22",
+ "@meshsdk/common": "1.7.25",
+ "@meshsdk/core-csl": "1.7.25",
+ "@meshsdk/core-cst": "1.7.25",
"json-bigint": "^1.0.0"
},
"devDependencies": {
@@ -34011,13 +34069,13 @@
},
"packages/mesh-wallet": {
"name": "@meshsdk/wallet",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
- "@meshsdk/common": "1.7.22",
- "@meshsdk/core-csl": "1.7.22",
- "@meshsdk/core-cst": "1.7.22",
- "@meshsdk/transaction": "1.7.22",
+ "@meshsdk/common": "1.7.25",
+ "@meshsdk/core-csl": "1.7.25",
+ "@meshsdk/core-cst": "1.7.25",
+ "@meshsdk/transaction": "1.7.25",
"@nufi/dapp-client-cardano": "0.3.5",
"@nufi/dapp-client-core": "0.3.5"
},
@@ -34031,7 +34089,7 @@
},
"scripts/mesh-cli": {
"name": "meshjs",
- "version": "1.7.22",
+ "version": "1.7.25",
"license": "Apache-2.0",
"dependencies": {
"chalk": "5.3.0",
diff --git a/packages/mesh-common/package.json b/packages/mesh-common/package.json
index b38b3079c..626232520 100644
--- a/packages/mesh-common/package.json
+++ b/packages/mesh-common/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/common",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Contains constants, types and interfaces used across the SDK and different serialization libraries",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
diff --git a/packages/mesh-common/src/interfaces/index.ts b/packages/mesh-common/src/interfaces/index.ts
index 83d08b96c..f141dce8b 100644
--- a/packages/mesh-common/src/interfaces/index.ts
+++ b/packages/mesh-common/src/interfaces/index.ts
@@ -5,3 +5,4 @@ export * from "./submitter";
export * from "./serializer";
export * from "./signer";
export * from "./evaluator";
+export * from "./wallet";
diff --git a/packages/mesh-common/src/interfaces/signer.ts b/packages/mesh-common/src/interfaces/signer.ts
index 7e9b6c916..346b742f5 100644
--- a/packages/mesh-common/src/interfaces/signer.ts
+++ b/packages/mesh-common/src/interfaces/signer.ts
@@ -1,11 +1,11 @@
import { DataSignature } from "../types";
export interface ISigner {
- signData(address: string, payload: string): SometimesPromise;
- signTx(unsignedTx: string, partialSign: boolean): SometimesPromise;
+ signData(payload: string, address?: string): SometimesPromise;
+ signTx(unsignedTx: string, partialSign?: boolean): SometimesPromise;
signTxs(
unsignedTxs: string[],
- partialSign: boolean,
+ partialSign?: boolean,
): SometimesPromise;
}
diff --git a/packages/mesh-common/src/interfaces/wallet.ts b/packages/mesh-common/src/interfaces/wallet.ts
new file mode 100644
index 000000000..8a6f144e2
--- /dev/null
+++ b/packages/mesh-common/src/interfaces/wallet.ts
@@ -0,0 +1,39 @@
+import { Asset, AssetExtended } from "../types";
+import { IInitiator } from "./initiator";
+import { ISigner } from "./signer";
+import { ISubmitter } from "./submitter";
+
+export interface IWallet extends IInitiator, ISigner, ISubmitter {
+ getAssets(): Promise;
+ getBalance(): Promise;
+ getExtensions(): Promise;
+ getUsedAddresses(): Promise;
+ getLovelace(): Promise;
+ getNetworkId(): Promise;
+ getRewardAddresses(): Promise;
+ getDRep(): Promise<
+ | {
+ publicKey: string;
+ publicKeyHash: string;
+ dRepIDCip105: string;
+ }
+ | undefined
+ >;
+ getUnusedAddresses(): Promise;
+ getPolicyIdAssets(policyId: string): Promise;
+ getPolicyIds(): Promise;
+ getRegisteredPubStakeKeys(): Promise<
+ | {
+ pubStakeKeys: string[];
+ pubStakeKeyHashes: string[];
+ }
+ | undefined
+ >;
+ getUnregisteredPubStakeKeys(): Promise<
+ | {
+ pubStakeKeys: string[];
+ pubStakeKeyHashes: string[];
+ }
+ | undefined
+ >;
+}
diff --git a/packages/mesh-contract/package.json b/packages/mesh-contract/package.json
index b6e896e56..d80956e27 100644
--- a/packages/mesh-contract/package.json
+++ b/packages/mesh-contract/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/contract",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "List of open-source smart contracts, complete with documentation, live demos, and end-to-end source code. https://meshjs.dev/smart-contracts",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -34,9 +34,9 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@meshsdk/common": "1.7.25",
- "@meshsdk/core": "1.7.25",
- "@meshsdk/core-csl": "1.7.25"
+ "@meshsdk/common": "1.7.26",
+ "@meshsdk/core": "1.7.26",
+ "@meshsdk/core-csl": "1.7.26"
},
"prettier": "@meshsdk/configs/prettier",
"publishConfig": {
diff --git a/packages/mesh-contract/src/common.ts b/packages/mesh-contract/src/common.ts
index aaf682b0b..e4ce1fc00 100644
--- a/packages/mesh-contract/src/common.ts
+++ b/packages/mesh-contract/src/common.ts
@@ -1,6 +1,7 @@
import {
BrowserWallet,
IFetcher,
+ IWallet,
LanguageVersion,
MeshTxBuilder,
MeshWallet,
@@ -11,7 +12,7 @@ import {
export type MeshTxInitiatorInput = {
mesh: MeshTxBuilder;
fetcher?: IFetcher;
- wallet?: BrowserWallet | MeshWallet;
+ wallet?: IWallet;
networkId?: number;
stakeCredential?: string;
version?: number;
@@ -20,7 +21,7 @@ export type MeshTxInitiatorInput = {
export class MeshTxInitiator {
mesh: MeshTxBuilder;
fetcher?: IFetcher;
- wallet?: BrowserWallet | MeshWallet;
+ wallet?: IWallet;
stakeCredential?: string;
networkId = 0;
version = 2;
diff --git a/packages/mesh-contract/src/content-ownership/offchain/offchain.ts b/packages/mesh-contract/src/content-ownership/offchain/offchain.ts
index fca1b86a4..ec14ac921 100644
--- a/packages/mesh-contract/src/content-ownership/offchain/offchain.ts
+++ b/packages/mesh-contract/src/content-ownership/offchain/offchain.ts
@@ -1,10 +1,7 @@
import {
- builtinByteString,
- bytesToHex,
Data,
deserializeAddress,
ForgeScript,
- fromUTF8,
mConStr,
mConStr0,
mConStr1,
diff --git a/packages/mesh-contract/src/payment-splitter/offchain.ts b/packages/mesh-contract/src/payment-splitter/offchain.ts
index 4c6a03823..cf1fb7493 100644
--- a/packages/mesh-contract/src/payment-splitter/offchain.ts
+++ b/packages/mesh-contract/src/payment-splitter/offchain.ts
@@ -27,15 +27,9 @@ export class MeshPaymentSplitterContract extends MeshTxInitiator {
super(inputs);
if (inputs.wallet) {
- // We add the initiator to the payees list, as only the payees can trigger the payout in the next steps
- if (inputs.wallet instanceof MeshWallet) {
- this.payees = [inputs.wallet.getUsedAddresses()[0]!, ...payees];
- }
- if (inputs.wallet instanceof BrowserWallet) {
- inputs.wallet.getUsedAddresses().then((addresses) => {
- this.payees = [addresses[0]!, ...payees];
- });
- }
+ inputs.wallet.getUsedAddresses().then((addresses) => {
+ this.payees = [addresses[0]!, ...payees];
+ });
} else {
this.payees = payees;
console.warn(
diff --git a/packages/mesh-core-csl/package.json b/packages/mesh-core-csl/package.json
index 95806dc8f..66d4e2240 100644
--- a/packages/mesh-core-csl/package.json
+++ b/packages/mesh-core-csl/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/core-csl",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Types and utilities functions between Mesh and cardano-serialization-lib",
"main": "./dist/index.cjs",
"module": "./dist/index.js",
@@ -31,7 +31,7 @@
},
"devDependencies": {
"@meshsdk/configs": "*",
- "@meshsdk/provider": "1.7.25",
+ "@meshsdk/provider": "1.7.26",
"@types/json-bigint": "^1.0.4",
"eslint": "^8.57.0",
"ts-jest": "^29.1.4",
@@ -39,7 +39,7 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@meshsdk/common": "1.7.25",
+ "@meshsdk/common": "1.7.26",
"@sidan-lab/sidan-csl-rs-browser": "0.9.7",
"@sidan-lab/sidan-csl-rs-nodejs": "0.9.7",
"@types/base32-encoding": "^1.0.2",
diff --git a/packages/mesh-core-cst/package.json b/packages/mesh-core-cst/package.json
index 832aa497e..c27cf6a13 100644
--- a/packages/mesh-core-cst/package.json
+++ b/packages/mesh-core-cst/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/core-cst",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Types and utilities functions between Mesh and cardano-js-sdk",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -42,7 +42,7 @@
"@harmoniclabs/cbor": "1.3.0",
"@harmoniclabs/plutus-data": "1.2.4",
"@harmoniclabs/uplc": "1.2.4",
- "@meshsdk/common": "1.7.25",
+ "@meshsdk/common": "1.7.26",
"@stricahq/bip32ed25519": "^1.1.0",
"@stricahq/cbors": "^1.0.3",
"pbkdf2": "^3.1.2"
diff --git a/packages/mesh-core/package.json b/packages/mesh-core/package.json
index f0596d5b2..f2e9cf1fc 100644
--- a/packages/mesh-core/package.json
+++ b/packages/mesh-core/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/core",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Mesh SDK Core - https://meshjs.dev/",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -33,13 +33,13 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@meshsdk/common": "1.7.25",
- "@meshsdk/core-csl": "1.7.25",
- "@meshsdk/core-cst": "1.7.25",
- "@meshsdk/provider": "1.7.25",
- "@meshsdk/react": "1.7.25",
- "@meshsdk/transaction": "1.7.25",
- "@meshsdk/wallet": "1.7.25"
+ "@meshsdk/common": "1.7.26",
+ "@meshsdk/core-csl": "1.7.26",
+ "@meshsdk/core-cst": "1.7.26",
+ "@meshsdk/provider": "1.7.26",
+ "@meshsdk/react": "1.7.26",
+ "@meshsdk/transaction": "1.7.26",
+ "@meshsdk/wallet": "1.7.26"
},
"prettier": "@meshsdk/configs/prettier",
"publishConfig": {
diff --git a/packages/mesh-provider/package.json b/packages/mesh-provider/package.json
index 97c4621df..069b52ff3 100644
--- a/packages/mesh-provider/package.json
+++ b/packages/mesh-provider/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/provider",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Blockchain data providers - https://meshjs.dev/providers",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -34,8 +34,8 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@meshsdk/common": "1.7.25",
- "@meshsdk/core-cst": "1.7.25",
+ "@meshsdk/common": "1.7.26",
+ "@meshsdk/core-cst": "1.7.26",
"@utxorpc/sdk": "0.6.2",
"@utxorpc/spec": "0.10.1",
"axios": "^1.7.2"
diff --git a/packages/mesh-provider/src/blockfrost.ts b/packages/mesh-provider/src/blockfrost.ts
index 961ba86c1..9c77b2c86 100644
--- a/packages/mesh-provider/src/blockfrost.ts
+++ b/packages/mesh-provider/src/blockfrost.ts
@@ -22,9 +22,9 @@ import {
UTxO,
} from "@meshsdk/common";
import {
+ normalizePlutusScript,
resolveRewardAddress,
toScriptRef,
- normalizePlutusScript,
} from "@meshsdk/core-cst";
import { utxosToAssets } from "./common/utxos-to-assets";
@@ -48,6 +48,7 @@ export class BlockfrostProvider
{
private readonly _axiosInstance: AxiosInstance;
private readonly _network: BlockfrostSupportedNetworks;
+ private submitTxToBytes = true;
/**
* If you are using a privately hosted Blockfrost instance, you can set the URL in the parameter.
@@ -82,6 +83,10 @@ export class BlockfrostProvider
}
}
+ setSubmitTxToBytes(value: boolean): void {
+ this.submitTxToBytes = value;
+ }
+
/**
* Evaluates the resources required to execute the transaction
* @param tx - The transaction to evaluate
@@ -490,7 +495,7 @@ export class BlockfrostProvider
});
const outputs = await Promise.all(outputsPromises);
- if(index !== undefined) {
+ if (index !== undefined) {
return outputs.filter((utxo) => utxo.input.outputIndex === index);
}
@@ -585,7 +590,7 @@ export class BlockfrostProvider
const headers = { "Content-Type": "application/cbor" };
const { data, status } = await this._axiosInstance.post(
"tx/submit",
- toBytes(tx),
+ this.submitTxToBytes ? toBytes(tx) : tx,
{ headers },
);
@@ -612,7 +617,7 @@ export class BlockfrostProvider
const normalized = normalizePlutusScript(plutusScript, "DoubleCBOR");
script = {
version: data.type.replace("plutus", ""),
- code: normalized
+ code: normalized,
};
} else {
script = await this.fetchNativeScriptJSON(scriptHash);
diff --git a/packages/mesh-react/package.json b/packages/mesh-react/package.json
index 7783c4029..620069077 100644
--- a/packages/mesh-react/package.json
+++ b/packages/mesh-react/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/react",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "React component library - https://meshjs.dev/react",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -29,12 +29,13 @@
},
"dependencies": {
"@fabianbormann/cardano-peer-connect": "^1.2.18",
- "@meshsdk/common": "1.7.25",
- "@meshsdk/transaction": "1.7.25",
- "@meshsdk/wallet": "1.7.25",
+ "@meshsdk/common": "1.7.26",
+ "@meshsdk/transaction": "1.7.26",
+ "@meshsdk/wallet": "1.7.26",
"@radix-ui/react-dialog": "^1.1.2",
"@radix-ui/react-dropdown-menu": "^2.1.2",
"@radix-ui/react-icons": "^1.3.2",
+ "@radix-ui/react-tooltip": "^1.1.4",
"class-variance-authority": "^0.7.1",
"tailwindcss-animate": "^1.0.7"
},
diff --git a/packages/mesh-react/src/cardano-wallet/data.ts b/packages/mesh-react/src/cardano-wallet/data.ts
new file mode 100644
index 000000000..c03e80e1b
--- /dev/null
+++ b/packages/mesh-react/src/cardano-wallet/data.ts
@@ -0,0 +1,14 @@
+export const screens = {
+ main: {
+ title: "Connect Wallet",
+ },
+ p2p: {
+ title: "Peer Connect (CIP45)",
+ subtitle: "Use wallet that supports CIP-45, scan this QR code to connect.",
+ },
+ burner: {
+ title: "Burner Wallet",
+ subtitle:
+ "Instantly create a new burner wallet. No seed phrase required, keys are generated on your device.",
+ },
+};
diff --git a/packages/mesh-react/src/cardano-wallet/index.tsx b/packages/mesh-react/src/cardano-wallet/index.tsx
index babe178af..23ca7f52a 100644
--- a/packages/mesh-react/src/cardano-wallet/index.tsx
+++ b/packages/mesh-react/src/cardano-wallet/index.tsx
@@ -1,5 +1,7 @@
import { useEffect, useState } from "react";
+import { IFetcher, ISubmitter } from "@meshsdk/common";
+
import { Button } from "../common/button";
import {
Dialog,
@@ -13,6 +15,8 @@ import {
import IconChevronRight from "../common/icons/icon-chevron-right";
import { useWallet } from "../hooks";
import ConnectedButton from "./connected-button";
+import { screens } from "./data";
+import ScreenBurner from "./screen-burner";
import ScreenMain from "./screen-main";
import ScreenP2P from "./screen-p2p";
@@ -20,10 +24,10 @@ interface ButtonProps {
label?: string;
onConnected?: Function;
isDark?: boolean;
+ extensions?: number[];
metamask?: {
network: string;
};
- extensions?: number[];
cardanoPeerConnect?: {
dAppInfo: {
name: string;
@@ -31,15 +35,20 @@ interface ButtonProps {
};
announce: string[];
};
+ burnerWallet?: {
+ networkId: 0 | 1;
+ provider: IFetcher & ISubmitter;
+ };
}
export const CardanoWallet = ({
label = "Connect Wallet",
onConnected = undefined,
isDark = false,
- metamask = undefined,
extensions = [],
+ metamask = undefined,
cardanoPeerConnect = undefined,
+ burnerWallet = undefined,
}: ButtonProps) => {
const [open, setOpen] = useState(false);
const [screen, setScreen] = useState("main");
@@ -63,7 +72,10 @@ export const CardanoWallet = ({
)}
-
+ event.preventDefault()}
+ >
{screen == "main" && (
@@ -72,12 +84,20 @@ export const CardanoWallet = ({
extensions={extensions}
setOpen={setOpen}
setScreen={setScreen}
- cardanoPeerConnect={cardanoPeerConnect}
+ cardanoPeerConnect={cardanoPeerConnect != undefined}
+ burnerWallet={burnerWallet != undefined}
/>
)}
{screen == "p2p" && (
)}
+ {screen == "burner" && burnerWallet && (
+
+ )}
@@ -103,14 +123,14 @@ function Header({
)}
- {screen == "main" && "Connect Wallet"}
- {screen == "p2p" && "P2P Connect"}
+ {/* @ts-ignore */}
+ {screens[screen].title}
- {screen == "p2p" &&
- "Use wallet that supports CIP-45, scan this QR code to connect."}
+ {/* @ts-ignore */}
+ {screens[screen].subtitle && screens[screen].subtitle}
);
diff --git a/packages/mesh-react/src/cardano-wallet/screen-burner.tsx b/packages/mesh-react/src/cardano-wallet/screen-burner.tsx
new file mode 100644
index 000000000..d55f4f5e9
--- /dev/null
+++ b/packages/mesh-react/src/cardano-wallet/screen-burner.tsx
@@ -0,0 +1,102 @@
+import { useEffect, useState } from "react";
+
+import { IFetcher, ISubmitter } from "@meshsdk/common";
+import { MeshWallet } from "@meshsdk/wallet";
+
+import { Button } from "../common/button";
+import { useWallet } from "../hooks";
+import { screens } from "./data";
+
+const localstoragekey = "mesh-burnerwallet";
+
+export default function ScreenBurner({
+ networkId,
+ provider,
+ setOpen,
+}: {
+ networkId: 0 | 1;
+ provider: IFetcher & ISubmitter;
+ setOpen: Function;
+}) {
+ const [loading, setLoading] = useState(false);
+ const [hasKeyInStorage, setHasKeyInStorage] = useState(false);
+ const { setWallet } = useWallet();
+
+ function getKeyFromStorage() {
+ return localStorage.getItem(localstoragekey);
+ }
+
+ useEffect(() => {
+ const key = getKeyFromStorage();
+ if (key) {
+ setHasKeyInStorage(true);
+ }
+ }, []);
+
+ function createWallet(key: string) {
+ setTimeout(() => {
+ const wallet = new MeshWallet({
+ networkId: networkId,
+ fetcher: provider,
+ submitter: provider,
+ key: {
+ type: "root",
+ bech32: key as string,
+ },
+ });
+
+ if (!hasKeyInStorage) {
+ localStorage.setItem(localstoragekey, key);
+ }
+
+ setWallet(wallet, screens.burner.title);
+ setLoading(false);
+ setOpen(false);
+ }, 500);
+ }
+
+ function handleRestoreWallet() {
+ setLoading(true);
+ const key = getKeyFromStorage();
+ createWallet(key as string);
+ }
+
+ function handleCreateWallet() {
+ setLoading(true);
+ const key = MeshWallet.brew(true) as string;
+ createWallet(key as string);
+ }
+
+ return (
+
+ {loading ? (
+ <>Setting up wallet...>
+ ) : (
+ <>
+ {hasKeyInStorage && (
+ {
+ handleRestoreWallet();
+ }}
+ disabled={loading}
+ >
+ Restore wallet
+
+ )}
+ {
+ handleCreateWallet();
+ }}
+ disabled={loading}
+ >
+ Create wallet
+
+ >
+ )}
+
+ );
+}
diff --git a/packages/mesh-react/src/cardano-wallet/screen-main.tsx b/packages/mesh-react/src/cardano-wallet/screen-main.tsx
index 12b7c7dca..3dc1f68cf 100644
--- a/packages/mesh-react/src/cardano-wallet/screen-main.tsx
+++ b/packages/mesh-react/src/cardano-wallet/screen-main.tsx
@@ -1,7 +1,10 @@
+import IconBookDashed from "../common/icons/icon-book-dashed";
import IconDownload from "../common/icons/icon-download";
import IconMonitorSmartphone from "../common/icons/icon-monitor-smartphone";
-import WalletIcon from "../common/icons/wallet-icon";
+import { TooltipProvider } from "../common/tooltip";
import { useWallet, useWalletList } from "../hooks";
+import { screens } from "./data";
+import WalletIcon from "./wallet-icon";
export default function ScreenMain({
metamask,
@@ -9,6 +12,7 @@ export default function ScreenMain({
setOpen,
setScreen,
cardanoPeerConnect,
+ burnerWallet,
}: {
metamask?: {
network: string;
@@ -16,51 +20,58 @@ export default function ScreenMain({
extensions: number[];
setOpen: Function;
setScreen: Function;
- cardanoPeerConnect?: {
- dAppInfo: {
- name: string;
- url: string;
- };
- announce: string[];
- };
+ cardanoPeerConnect: boolean;
+ burnerWallet: boolean;
}) {
const wallets = useWalletList({ metamask });
const { connect } = useWallet();
return (
-
- {wallets.map((wallet, index) => (
-
{
- connect(wallet.id, extensions);
- setOpen(false);
- }}
- />
- ))}
+
+
+ {wallets.map((wallet, index) => (
+ {
+ connect(wallet.id, extensions);
+ setOpen(false);
+ }}
+ />
+ ))}
+
+ {cardanoPeerConnect && (
+ {
+ setScreen("p2p");
+ }}
+ />
+ )}
+
+ {burnerWallet && (
+ {
+ setScreen("burner");
+ }}
+ />
+ )}
- {cardanoPeerConnect && (
{
- setScreen("p2p");
+ window.open(
+ "https://developers.cardano.org/showcase/?tags=wallet",
+ "_blank",
+ );
}}
/>
- )}
-
- {
- window.open(
- "https://developers.cardano.org/showcase/?tags=wallet",
- "_blank",
- );
- }}
- />
-
+
+
);
}
diff --git a/packages/mesh-react/src/cardano-wallet/wallet-icon.tsx b/packages/mesh-react/src/cardano-wallet/wallet-icon.tsx
new file mode 100644
index 000000000..a36f1a48e
--- /dev/null
+++ b/packages/mesh-react/src/cardano-wallet/wallet-icon.tsx
@@ -0,0 +1,35 @@
+import {
+ Tooltip,
+ TooltipContent,
+ TooltipProvider,
+ TooltipTrigger,
+} from "../common/tooltip";
+
+export default function WalletIcon({
+ icon,
+ name,
+ action,
+ iconReactNode,
+}: {
+ icon?: string;
+ name: string;
+ action: () => void;
+ iconReactNode?: React.ReactNode;
+}) {
+ return (
+
+
+
+ {icon && }
+ {iconReactNode && iconReactNode}
+
+
+
+ {name}
+
+
+ );
+}
diff --git a/packages/mesh-react/src/common/icons/icon-book-dashed.tsx b/packages/mesh-react/src/common/icons/icon-book-dashed.tsx
new file mode 100644
index 000000000..185604ac0
--- /dev/null
+++ b/packages/mesh-react/src/common/icons/icon-book-dashed.tsx
@@ -0,0 +1,34 @@
+export default function IconBookDashed() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/packages/mesh-react/src/common/icons/wallet-icon.tsx b/packages/mesh-react/src/common/icons/wallet-icon.tsx
deleted file mode 100644
index d1bb48f77..000000000
--- a/packages/mesh-react/src/common/icons/wallet-icon.tsx
+++ /dev/null
@@ -1,21 +0,0 @@
-export default function WalletIcon({
- icon,
- name,
- action,
- iconReactNode,
-}: {
- icon?: string;
- name: string;
- action: () => void;
- iconReactNode?: React.ReactNode;
-}) {
- return (
-
- {icon && }
- {iconReactNode && iconReactNode}
-
- );
-}
diff --git a/packages/mesh-react/src/common/tooltip.tsx b/packages/mesh-react/src/common/tooltip.tsx
new file mode 100644
index 000000000..7b1caa014
--- /dev/null
+++ b/packages/mesh-react/src/common/tooltip.tsx
@@ -0,0 +1,28 @@
+import * as React from "react"
+import * as TooltipPrimitive from "@radix-ui/react-tooltip"
+
+import { cn } from "./cn"
+
+const TooltipProvider = TooltipPrimitive.Provider
+
+const Tooltip = TooltipPrimitive.Root
+
+const TooltipTrigger = TooltipPrimitive.Trigger
+
+const TooltipContent = React.forwardRef<
+ React.ElementRef,
+ React.ComponentPropsWithoutRef
+>(({ className, sideOffset = 4, ...props }, ref) => (
+
+))
+TooltipContent.displayName = TooltipPrimitive.Content.displayName
+
+export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
diff --git a/packages/mesh-react/src/contexts/WalletContext.ts b/packages/mesh-react/src/contexts/WalletContext.ts
index 99fb865d3..b1a13ccfd 100644
--- a/packages/mesh-react/src/contexts/WalletContext.ts
+++ b/packages/mesh-react/src/contexts/WalletContext.ts
@@ -1,20 +1,22 @@
import { createContext, useCallback, useState } from "react";
+import { IWallet } from "@meshsdk/common";
import { BrowserWallet } from "@meshsdk/wallet";
interface WalletContext {
hasConnectedWallet: boolean;
- connectedWalletInstance: BrowserWallet;
- connectedWalletName: string;
+ connectedWalletInstance: IWallet;
+ connectedWalletName: string | undefined;
connectingWallet: boolean;
- connectWallet?: (walletName: string, extensions?: number[]) => Promise;
- disconnect?: () => void;
+ connectWallet: (walletName: string, extensions?: number[]) => Promise;
+ disconnect: () => void;
+ setWallet: (walletInstance: IWallet, walletName: string) => void;
error?: unknown;
}
const INITIAL_STATE = {
- walletName: "",
- walletInstance: {} as BrowserWallet,
+ walletName: undefined,
+ walletInstance: {} as IWallet,
};
export const useWalletStore = () => {
@@ -23,11 +25,11 @@ export const useWalletStore = () => {
const [connectingWallet, setConnectingWallet] = useState(false);
const [connectedWalletInstance, setConnectedWalletInstance] =
- useState(INITIAL_STATE.walletInstance);
+ useState(INITIAL_STATE.walletInstance);
- const [connectedWalletName, setConnectedWalletName] = useState(
- INITIAL_STATE.walletName,
- );
+ const [connectedWalletName, setConnectedWalletName] = useState<
+ string | undefined
+ >(INITIAL_STATE.walletName);
const connectWallet = useCallback(
async (walletName: string, extensions?: number[]) => {
@@ -55,6 +57,14 @@ export const useWalletStore = () => {
setConnectedWalletInstance(INITIAL_STATE.walletInstance);
}, []);
+ const setWallet = useCallback(
+ async (walletInstance: IWallet, walletName: string) => {
+ setConnectedWalletInstance(walletInstance);
+ setConnectedWalletName(walletName);
+ },
+ [],
+ );
+
return {
hasConnectedWallet: INITIAL_STATE.walletName !== connectedWalletName,
connectedWalletInstance,
@@ -62,6 +72,7 @@ export const useWalletStore = () => {
connectingWallet,
connectWallet,
disconnect,
+ setWallet,
error,
};
};
@@ -71,4 +82,7 @@ export const WalletContext = createContext({
connectedWalletInstance: INITIAL_STATE.walletInstance,
connectedWalletName: INITIAL_STATE.walletName,
connectingWallet: false,
+ connectWallet: async () => {},
+ disconnect: () => {},
+ setWallet: async () => {},
});
diff --git a/packages/mesh-react/src/hooks/useAddress.ts b/packages/mesh-react/src/hooks/useAddress.ts
index 5791dcc5b..1c9ae95fd 100644
--- a/packages/mesh-react/src/hooks/useAddress.ts
+++ b/packages/mesh-react/src/hooks/useAddress.ts
@@ -4,7 +4,7 @@ import { WalletContext } from "../contexts";
export const useAddress = (accountId = 0) => {
const [address, setAddress] = useState();
- const { hasConnectedWallet, connectedWalletName, connectedWalletInstance } =
+ const { hasConnectedWallet, connectedWalletInstance } =
useContext(WalletContext);
useEffect(() => {
@@ -15,7 +15,7 @@ export const useAddress = (accountId = 0) => {
}
});
}
- }, [accountId, connectedWalletName]);
+ }, [accountId, hasConnectedWallet, connectedWalletInstance]);
return address;
};
diff --git a/packages/mesh-react/src/hooks/useAssets.ts b/packages/mesh-react/src/hooks/useAssets.ts
index 0cee7be42..1dcf71e07 100644
--- a/packages/mesh-react/src/hooks/useAssets.ts
+++ b/packages/mesh-react/src/hooks/useAssets.ts
@@ -6,14 +6,14 @@ import { WalletContext } from "../contexts";
export const useAssets = () => {
const [assets, setAssets] = useState();
- const { hasConnectedWallet, connectedWalletName, connectedWalletInstance } =
+ const { hasConnectedWallet, connectedWalletInstance } =
useContext(WalletContext);
useEffect(() => {
if (hasConnectedWallet) {
connectedWalletInstance.getAssets().then(setAssets);
}
- }, [connectedWalletName]);
+ }, [hasConnectedWallet, connectedWalletInstance]);
return assets;
};
diff --git a/packages/mesh-react/src/hooks/useLovelace.ts b/packages/mesh-react/src/hooks/useLovelace.ts
index 081c3f2ce..56fa107a1 100644
--- a/packages/mesh-react/src/hooks/useLovelace.ts
+++ b/packages/mesh-react/src/hooks/useLovelace.ts
@@ -10,12 +10,12 @@ export const useLovelace = () => {
useEffect(() => {
async function getLovelace() {
- setLovelace(await connectedWalletInstance.getLovelace());
- }
- if (hasConnectedWallet && !hasFetchedLovelace.current) {
- getLovelace();
- hasFetchedLovelace.current = true;
+ if (hasConnectedWallet && !hasFetchedLovelace.current) {
+ setLovelace(await connectedWalletInstance.getLovelace());
+ hasFetchedLovelace.current = true;
+ }
}
+ getLovelace();
}, [hasConnectedWallet, connectedWalletInstance]);
const _lovelace = useMemo(() => {
diff --git a/packages/mesh-react/src/hooks/useNetwork.ts b/packages/mesh-react/src/hooks/useNetwork.ts
index a24e4a949..d1d6a0dfc 100644
--- a/packages/mesh-react/src/hooks/useNetwork.ts
+++ b/packages/mesh-react/src/hooks/useNetwork.ts
@@ -4,7 +4,7 @@ import { WalletContext } from "../contexts";
export const useNetwork = () => {
const [networkId, setNetworkId] = useState();
- const { hasConnectedWallet, connectedWalletName, connectedWalletInstance } =
+ const { hasConnectedWallet, connectedWalletInstance } =
useContext(WalletContext);
useEffect(() => {
@@ -13,7 +13,7 @@ export const useNetwork = () => {
} else {
setNetworkId(undefined);
}
- }, [connectedWalletName]);
+ }, [hasConnectedWallet, connectedWalletInstance]);
return networkId;
};
diff --git a/packages/mesh-react/src/hooks/useRewardAddress.ts b/packages/mesh-react/src/hooks/useRewardAddress.ts
index 9539fe7b9..182cc9263 100644
--- a/packages/mesh-react/src/hooks/useRewardAddress.ts
+++ b/packages/mesh-react/src/hooks/useRewardAddress.ts
@@ -4,7 +4,7 @@ import { WalletContext } from "../contexts";
export const useRewardAddress = (accountId = 0) => {
const [rewardAddress, setRewardAddress] = useState();
- const { hasConnectedWallet, connectedWalletName, connectedWalletInstance } =
+ const { hasConnectedWallet, connectedWalletInstance } =
useContext(WalletContext);
useEffect(() => {
@@ -15,7 +15,7 @@ export const useRewardAddress = (accountId = 0) => {
}
});
}
- }, [accountId, connectedWalletName]);
+ }, [accountId, hasConnectedWallet, connectedWalletInstance]);
return rewardAddress;
};
diff --git a/packages/mesh-react/src/hooks/useWallet.ts b/packages/mesh-react/src/hooks/useWallet.ts
index 7425b1f6a..2280788a4 100644
--- a/packages/mesh-react/src/hooks/useWallet.ts
+++ b/packages/mesh-react/src/hooks/useWallet.ts
@@ -10,6 +10,7 @@ export const useWallet = () => {
connectingWallet,
connectWallet,
disconnect,
+ setWallet,
error,
} = useContext(WalletContext);
@@ -26,6 +27,7 @@ export const useWallet = () => {
wallet: connectedWalletInstance,
connect: connectWallet,
disconnect,
+ setWallet,
error,
};
};
diff --git a/packages/mesh-react/src/hooks/useWalletSubmit.ts b/packages/mesh-react/src/hooks/useWalletSubmit.ts
index d99f1321c..d4b347643 100644
--- a/packages/mesh-react/src/hooks/useWalletSubmit.ts
+++ b/packages/mesh-react/src/hooks/useWalletSubmit.ts
@@ -12,11 +12,11 @@ export const useWalletSubmit = () => {
const submitTx = useCallback(async (signedTx: string) => {
setSubmitting(true);
+ setError(undefined);
try {
if (hasConnectedWallet) {
const txHash = await connectedWalletInstance.submitTx(signedTx);
- setError(undefined);
setResult(txHash);
}
diff --git a/packages/mesh-react/src/hooks/useWalletTx.ts b/packages/mesh-react/src/hooks/useWalletTx.ts
deleted file mode 100644
index e451c37ad..000000000
--- a/packages/mesh-react/src/hooks/useWalletTx.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-// import { useContext, useState } from "react";
-// import { Transaction } from "@meshsdk/core";
-// import { WalletContext } from "../contexts";
-// import type { Era, Protocol } from "@meshsdk/common";
-
-// export const useWalletTx = (
-// options: {
-// era?: Era;
-// parameters?: Protocol;
-// } = {}
-// ) => {
-// const { era, parameters } = options;
-
-// const { hasConnectedWallet, connectedWalletInstance } =
-// useContext(WalletContext);
-
-// const [tx] = useState(() => {
-// if (hasConnectedWallet) {
-// return new Transaction({
-// initiator: connectedWalletInstance,
-// parameters,
-// era,
-// });
-// }
-
-// throw new Error(
-// "Please make sure to connect a wallet before calling useWalletTx"
-// );
-// });
-
-// return tx;
-// };
diff --git a/packages/mesh-svelte/package.json b/packages/mesh-svelte/package.json
index 552d8c4cb..2e8094e85 100644
--- a/packages/mesh-svelte/package.json
+++ b/packages/mesh-svelte/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/svelte",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Svelte component library - https://meshjs.dev/svelte",
"type": "module",
"exports": {
@@ -26,7 +26,7 @@
"dev": "vite dev"
},
"dependencies": {
- "@meshsdk/core": "1.7.25"
+ "@meshsdk/core": "1.7.26"
},
"devDependencies": {
"@meshsdk/configs": "*",
diff --git a/packages/mesh-transaction/package.json b/packages/mesh-transaction/package.json
index 49f77d8d9..bf80eb75e 100644
--- a/packages/mesh-transaction/package.json
+++ b/packages/mesh-transaction/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/transaction",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Transactions - https://meshjs.dev/apis/transaction",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -35,9 +35,9 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@meshsdk/common": "1.7.25",
- "@meshsdk/core-csl": "1.7.25",
- "@meshsdk/core-cst": "1.7.25",
+ "@meshsdk/common": "1.7.26",
+ "@meshsdk/core-csl": "1.7.26",
+ "@meshsdk/core-cst": "1.7.26",
"json-bigint": "^1.0.0"
},
"prettier": "@meshsdk/configs/prettier",
diff --git a/packages/mesh-wallet/package.json b/packages/mesh-wallet/package.json
index 12b8a7606..b689735bf 100644
--- a/packages/mesh-wallet/package.json
+++ b/packages/mesh-wallet/package.json
@@ -1,6 +1,6 @@
{
"name": "@meshsdk/wallet",
- "version": "1.7.25",
+ "version": "1.7.26",
"description": "Wallets - https://meshjs.dev/apis/wallets",
"main": "./dist/index.cjs",
"browser": "./dist/index.js",
@@ -35,10 +35,10 @@
"typescript": "^5.3.3"
},
"dependencies": {
- "@meshsdk/common": "1.7.25",
- "@meshsdk/core-csl": "1.7.25",
- "@meshsdk/core-cst": "1.7.25",
- "@meshsdk/transaction": "1.7.25",
+ "@meshsdk/common": "1.7.26",
+ "@meshsdk/core-csl": "1.7.26",
+ "@meshsdk/core-cst": "1.7.26",
+ "@meshsdk/transaction": "1.7.26",
"@nufi/dapp-client-cardano": "0.3.5",
"@nufi/dapp-client-core": "0.3.5"
},
diff --git a/packages/mesh-wallet/src/browser/index.ts b/packages/mesh-wallet/src/browser/index.ts
index e0f2d546b..da0045284 100644
--- a/packages/mesh-wallet/src/browser/index.ts
+++ b/packages/mesh-wallet/src/browser/index.ts
@@ -4,9 +4,7 @@ import {
DataSignature,
DEFAULT_PROTOCOL_PARAMETERS,
fromUTF8,
- IInitiator,
- ISigner,
- ISubmitter,
+ IWallet,
POLICY_ID_LENGTH,
resolveFingerprint,
UTxO,
@@ -52,7 +50,7 @@ declare global {
* const wallet = await BrowserWallet.enable('eternl');
* ```
*/
-export class BrowserWallet implements IInitiator, ISigner, ISubmitter {
+export class BrowserWallet implements IWallet {
walletInstance: WalletInstance;
private constructor(
diff --git a/packages/mesh-wallet/src/mesh/index.ts b/packages/mesh-wallet/src/mesh/index.ts
index 82ad1ef96..213b483ee 100644
--- a/packages/mesh-wallet/src/mesh/index.ts
+++ b/packages/mesh-wallet/src/mesh/index.ts
@@ -2,12 +2,11 @@ import type {
Asset,
AssetExtended,
DataSignature,
+ IWallet,
UTxO,
} from "@meshsdk/common";
import {
IFetcher,
- IInitiator,
- ISigner,
ISubmitter,
POLICY_ID_LENGTH,
resolveFingerprint,
@@ -84,7 +83,7 @@ export type CreateMeshWalletOptions = {
* });
* ```
*/
-export class MeshWallet implements IInitiator, ISigner, ISubmitter {
+export class MeshWallet implements IWallet {
private readonly _wallet: EmbeddedWallet | null;
private readonly _accountIndex: number = 0;
private readonly _keyIndex: number = 0;
@@ -212,6 +211,15 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter {
});
}
+ /**
+ * Return a list of supported CIPs of the wallet.
+ *
+ * @returns a list of CIPs
+ */
+ async getExtensions(): Promise {
+ return [];
+ }
+
/**
* Get a list of UTXOs to be used as collateral inputs for transactions with plutus script inputs.
*
@@ -247,12 +255,29 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter {
return [];
}
+ /**
+ * The connected wallet account provides the account's public DRep Key, derivation as described in CIP-0105.
+ * These are used by the client to identify the user's on-chain CIP-1694 interactions, i.e. if a user has registered to be a DRep.
+ *
+ * @returns wallet account's public DRep Key
+ */
+ async getDRep(): Promise<
+ | {
+ publicKey: string;
+ publicKeyHash: string;
+ dRepIDCip105: string;
+ }
+ | undefined
+ > {
+ console.warn("Not implemented yet");
+ return undefined;
+ }
/**
* Returns the network ID of the currently connected account. 0 is testnet and 1 is mainnet but other networks can possibly be returned by wallets. Those other network ID values are not governed by CIP-30. This result will stay the same unless the connected account has changed.
*
* @returns network ID
*/
- getNetworkId(): number {
+ async getNetworkId(): Promise {
return this._networkId;
}
@@ -261,7 +286,7 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter {
*
* @returns a list of reward addresses
*/
- getRewardAddresses(): string[] {
+ async getRewardAddresses(): Promise {
return [this.addresses.rewardAddressBech32!];
}
@@ -270,7 +295,7 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter {
*
* @returns a list of unused addresses
*/
- getUnusedAddresses(): string[] {
+ async getUnusedAddresses(): Promise {
return [this.getChangeAddress()];
}
@@ -279,7 +304,7 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter {
*
* @returns a list of used addresses
*/
- getUsedAddresses(): string[] {
+ async getUsedAddresses(): Promise {
return [this.getChangeAddress()];
}
@@ -508,6 +533,28 @@ export class MeshWallet implements IInitiator, ISigner, ISubmitter {
).filter((p) => p !== "lovelace");
}
+ async getRegisteredPubStakeKeys(): Promise<
+ | {
+ pubStakeKeys: string[];
+ pubStakeKeyHashes: string[];
+ }
+ | undefined
+ > {
+ console.warn("Not implemented yet");
+ return undefined;
+ }
+
+ async getUnregisteredPubStakeKeys(): Promise<
+ | {
+ pubStakeKeys: string[];
+ pubStakeKeyHashes: string[];
+ }
+ | undefined
+ > {
+ console.warn("Not implemented yet");
+ return undefined;
+ }
+
/**
* A helper function to create a collateral input for a transaction.
*
diff --git a/packages/mesh-wallet/test/mesh.test.ts b/packages/mesh-wallet/test/mesh.test.ts
index b2933da4c..b291c8da8 100644
--- a/packages/mesh-wallet/test/mesh.test.ts
+++ b/packages/mesh-wallet/test/mesh.test.ts
@@ -23,7 +23,7 @@ describe("MeshWallet", () => {
);
});
- it("cli keys", () => {
+ it("cli keys", async () => {
const _wallet = new MeshWallet({
networkId: 0,
key: {
@@ -37,7 +37,7 @@ describe("MeshWallet", () => {
expect(_wallet.getChangeAddress()).toEqual(
"addr_test1qqdy60gf798xrl20wwvapvsxj3kr8yz8ac6zfmgwg6c5g9p3x07mt562mneg8jxgj03p2uvmhyfyvktjn259mws8e6wq3cdn8p",
);
- expect(_wallet.getRewardAddresses()[0]).toEqual(
+ expect((await _wallet.getRewardAddresses())[0]).toEqual(
"stake_test1uqcn8ld46d9deu5reryf8cs4wxdmjyjxt9ef42zahgrua8qctnd74",
);
});
@@ -69,27 +69,27 @@ describe("MeshWallet", () => {
);
});
- it("getNetworkId", () => {
- const networkId = wallet.getNetworkId();
+ it("getNetworkId", async () => {
+ const networkId = await wallet.getNetworkId();
expect(networkId).toEqual(0);
});
- it("getRewardAddresses", () => {
- const addresses = wallet.getRewardAddresses();
+ it("getRewardAddresses", async () => {
+ const addresses = await wallet.getRewardAddresses();
expect(addresses).toEqual([
"stake_test1uzw5mnt7g4xjgdqkfa80hrk7kdvds6sa4k0vvgjvlj7w8eskffj2n",
]);
});
- it("getUnusedAddresses", () => {
- const addresses = wallet.getUnusedAddresses();
+ it("getUnusedAddresses", async () => {
+ const addresses = await wallet.getUnusedAddresses();
expect(addresses).toEqual([
"addr_test1qpvx0sacufuypa2k4sngk7q40zc5c4npl337uusdh64kv0uafhxhu32dys6pvn6wlw8dav6cmp4pmtv7cc3yel9uu0nq93swx9",
]);
});
- it("getUsedAddresses", () => {
- const addresses = wallet.getUsedAddresses();
+ it("getUsedAddresses", async () => {
+ const addresses = await wallet.getUsedAddresses();
expect(addresses).toEqual([
"addr_test1qpvx0sacufuypa2k4sngk7q40zc5c4npl337uusdh64kv0uafhxhu32dys6pvn6wlw8dav6cmp4pmtv7cc3yel9uu0nq93swx9",
]);
diff --git a/scripts/mesh-cli/package.json b/scripts/mesh-cli/package.json
index f256fb142..e2e7c0bf0 100644
--- a/scripts/mesh-cli/package.json
+++ b/scripts/mesh-cli/package.json
@@ -3,7 +3,7 @@
"description": "A quick and easy way to bootstrap your dApps on Cardano using Mesh.",
"homepage": "https://meshjs.dev",
"author": "MeshJS",
- "version": "1.7.25",
+ "version": "1.7.26",
"license": "Apache-2.0",
"type": "module",
"main": "./dist/index.cjs",