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.");
});