@mavrykdynamics/mavryk-wallet-dapp
v8.0.1
Published
This module is required to provide communication between DApps and Mavryk Wallet, it exposes unified interface for this interaction.
Downloads
15
Readme
MavrykWallet DApp Module
This module is required to provide communication between DApps and Mavryk Wallet, it exposes unified interface for this interaction.
🚀 Quick Start
Install
yarn add @mavrykdynamics/taquito @mavrykdynamics/mavryk-wallet-dapp
Usage
import { MavrykWallet } from "@mavrykdynamics/mavryk-wallet-dapp";
(async () => {
try {
const available = await MavrykWallet.isAvailable();
if (!available) {
throw new Error("Mavryk Wallet not installed");
}
// Note:
// use `MavrykWallet.isAvailable` method only after web application fully loaded.
// Alternatively, you can use the method `MavrykWallet.onAvailabilityChange`
// that tracks availability in real-time .
const wallet = new MavrykWallet("My Super DApp");
await wallet.connect("carthagenet");
const tezos = wallet.toTezos();
const accountPkh = await tezos.wallet.pkh();
const accountBalance = await tezos.tz.getBalance(accountPkh);
console.info(`address: ${accountPkh}, balance: ${accountBalance}`);
const counter = await tezos.wallet.at(
"KT1DjYkruvfujfKw6nLYafArqKufcwHuKXvT"
);
const operation = await counter.methods.increment(1).send();
await operation.confirmation();
const counterValue = await counter.storage();
console.info(`count: ${counterValue}`);
} catch (err) {
console.error(err);
}
})();
Check permissions
import { MavrykWallet } from "@mavrykdynamics/mavryk-wallet-dapp";
(async () => {
try {
const available = await MavrykWallet.isAvailable();
if (!available) {
throw new Error("Mavryk Wallet not installed");
}
const permission = await MavrykWallet.getCurrentPermission();
// Alternatively, you can use the method `MavrykWallet.onPermissionChange`
// that tracks current permission in real-time.
console.info(permission);
// prints "{ rpc: string, pkh: string, publicKey: string }" if permission exists, "null" - if not.
const wallet = new MavrykWallet("My Super DApp", permission);
console.info(wallet.connected);
// prints "true" if permission exists, "false" - if not.
if (!wallet.connected) {
await wallet.connect("carthagenet");
}
const tezos = wallet.toTezos();
// ...
} catch (err) {
console.error(err);
}
})();
Sign
import { MavrykWallet } from "@mavrykdynamics/mavryk-wallet-dapp";
(async () => {
try {
const wallet = new MavrykWallet("My Super DApp");
// ...
// Only hex strings
const signature = await wallet.sign(
Buffer.from("Hello world").toString("hex")
);
} catch (err) {
console.error(err);
}
})();
Demo
You can find the example of Counter DApp in this repo.
API
You can explore auto generated full API Docs here.
Probably you would be most interested in the MavrykWallet class methods.
Local Development
Below is a list of commands you will probably find useful.
npm run dev or yarn dev
Runs the project in development/watch mode. Your project will be rebuilt upon changes.
Your library will be rebuilt if you make edits.
npm run build or yarn build
Bundles the package to the dist folder. The package is optimized and bundled with Rollup into multiple formats (CommonJS, UMD, and ES Module).