@alphasquare/connect-wallet

3.0.1 • Public • Published

Connect Wallet

Usage

Initialization

You must run this function first to setup the smart contract connection. The other methods won't work until you've successfully initialized the package.

if (window.alphasquare.initialized) {
  return;
} else {
  window.alphasquare.init({
    chain: {
      id: "<CHAIN_ID>", // Goerli is "0x5"
      token: "<CHAIN_TOKEN_SYMBOL>", // Goerli is "gETH"
      label: "<YOUR_CHAIN_LABEL>",
      rpcUrl: "<YOUR_RPC_URL>",
    },
    subscriptionAddress: "<SUBSCRIPTION_CONTRACT_ADDRESS>",
    alphaAddress: "<ALPHA_TOKEN_CONTRACT_ADDRESS>",
    appMetadata: {
      name: "AlphaSquare",
      icon: "<SVG_ICON_STRING>",
      logo: "<SVG_LOGO_STRING>",
      description: "<APP_DESCRIPTION>",
      recommendedInjectedWallets: [
        { name: "Coinbase", url: "https://wallet.coinbase.com/" },
        { name: "MetaMask", url: "https://metamask.io" },
      ],
    },
  });
}

Connect Wallet

const result = await window.alphasquare.connectWallet();

console.log(result);
/**
 * {
 *   "address": "0x1234...",
 *   "ens"?: {
 *     "name": "example.eth",
 *     "avatar": {
 *       "linkage": [
 *         {
 *           "type": "name",
 *           "content": "example.eth"
 *         },
 *         {
 *           "type": "url",
 *           "content": "https://example.com/image"
 *         }
 *       ],
 *       "url": "https://example.com/image"
 *     },
 *     "contentHash": null
 *   },
 *   "icon": "<?xml version=\"1.0\" ...", // SVG string
 *   "label": "MetaMask",
 *   "success": true
 * }
 */

Disconnect Wallet

const result = await window.alphasquare.disconnectWallet();

console.log(result); // true

Get $ALPHA Balance

const result = await window.alphasquare.getAlphaBalance();

console.log(result); // 1000

Subscribe to AlphaSquare

await window.alphasquare.connectWallet();

await window.alphasquare.approveAlpha(10);

const subscriptionTx = await window.alphasquare.subscribe(USER_ID); // USER_ID should be the AlphaSquare user ID not the wallet address

const result = await window.alphasquare.isSubscriptionValid(USER_ID);
console.log(result); // true

Verify Wallet Ownership

To be used when you need to confirm if the current users owns the wallet they say they do, e.g. before creating an Alpha NFT.

This function is already built into the connect wallet flow.

const result = await window.alphasquare.verifyOwnership(
  "Some string to display in wallet"
);

console.log(result); // true

Set Disconnect Callback

Set a callback to be called when all wallets have been disconnected.

window.alphasquare.setDisconnectCallback(() => {
  console.log("All wallets disconnected.");
});

Readme

Keywords

none

Package Sidebar

Install

npm i @alphasquare/connect-wallet

Weekly Downloads

2

Version

3.0.1

License

MIT

Unpacked Size

3.61 MB

Total Files

9

Last publish

Collaborators

  • hnipps