Documentation
API Connect
@mizuwallet-sdk/core

@mizuwallet-sdk/core

💡

NOTICE: If you want to quickly start developing an app, directly use the features of the mizu ecosystem. It is recommended to prioritize using the adapter. If you have an appID and advanced development ability, please continue reading.

Installation

$ pnpm add @mizuwallet-sdk/core

Usage

Initialized by APP_ID

import { Mizu } from "@mizuwallet-sdk/core";
 
const MIZU_WALLET_APP_ID = "xxxxx";
 
// Initialization
const MizuClient = new Mizu({
  appId: MIZU_WALLET_APP_ID,
  // 'mainnet'  | 'testnet'
  network: "mainnet",
});

Login In Telegram [Docs of Telegram Mini App (opens in a new tab)]

// In Tg mini app
await MizuClient.loginInTG(window.Telegram.WebApp.initData);
 
// Login Widget
await MizuClient.loginInTG(
  JSON.stringify({
    id: 123,
    first_name: "",
    username: "",
    photo_url: "https://t.me/i/userpic/320/abc.jpg",
    auth_date: 123,
    hash: "123",
  }),
  {
    isWidget: true,
  }
);

Logout

await MizuClient.logout();

Fetch User's Address

const address: string = await MizuClient.getUserWalletAddress();

Functions

  1. Create Order

The very first step is Order Creation, when your user try to interactive with the chain.

const orderId: any = await MizuClient.createOrder({
  payload: {
    function: "0x1::aptos_account::transfer_coins",
    typeArguments: ["0x1::aptos_coin::AptosCoin"],
    functionArguments: ["0x12345abcde", 10000000],
  },
});
 
// orderId: 1234-abcd-12312412
  1. Confirm Order

Let the order confirmed by user, and the payload will be submitted to the chain.

await MizuClient.confirmOrder({
  orderId: "1234-abcd-12312412",
});
  1. since(1.1.3) Fetch Order Info
await MizuClient.fetchOrder({
  orderId: "1234-abcd-12312412",
});
  1. since(1.1.3) Wait for Order to settled (Status to be: SUCCESS/FAIL/CANCELED)
await MizuClient.waitForOrder({
  orderId: "1234-abcd-12312412",
});
  1. Check is user existed.
await MizuClient.isUserExistByTgID("123123");