Mint Master
Search
K
Comment on page

Dapps Integration

Flash wallet using WalletConnect open protocol to communicate securely to dapps.

Links

Install

npm install --save @walletconnect/client
OR
yarn add @walletconnect/client

Initiate Connection

import WalletConnect from "@walletconnect/client";
// Create a connector
const connector = new WalletConnect({
bridge: "https://bridge.walletconnect.org", // Required
});
// Check if connection is already established
if (!connector.connected) {
// create new session
connector.createSession();
}
// Subscribe to connection events
connector.on("connect", (error, payload) => {
if (error) {
throw error;
}
// Get provided accounts and chainId
const { accounts, chainId } = payload.params[0];
});
connector.on("session_update", (error, payload) => {
if (error) {
throw error;
}
// Get updated accounts and chainId
const { accounts, chainId } = payload.params[0];
});
connector.on("disconnect", (error, payload) => {
if (error) {
throw error;
}
// Delete connector
});

Send Transaction

const request = {
id: 1110,
jsonrpc: '2.0',
method: 'hedera_sendTransaction',
params: [
{
from: account // solidityAddress,
data: transByte // format: hex,
},
],
};
// Send Request
connector
.sendCustomRequest(request)
.then((result) => {
// Returns request result
console.log(result);
})
.catch((error) => {
// Error returned when rejected
console.error(error);
});

Create Transaction Example

Transaction

export async function senHbar(
sender: string,
receiver: string,
amount: string,
) {
const senderAccountId = AccountId.fromSolidityAddress(sender).toString();
const newAccountTransaction = new TransferTransaction()
.addHbarTransfer(senderAccountId, new Hbar(-amount))
.addHbarTransfer(receiver, new Hbar(amount))
.setTransactionMemo('Hello buddy sign and enjoy!');
const bytes = await makeTransBytes(newAccountTransaction, senderAccountId);
return bytes;
}
Generate Byte
export const makeTransBytes = async (trans: any, accountId: string) => {
const transId = TransactionId.generate(accountId);
trans.setTransactionId(transId);
trans.setNodeAccountIds([new AccountId(3)]);
await trans.freeze();
return Buffer.from(trans.toBytes()).toString('hex');
};

Supported Hedera Network

Flash Wallet supported all hedera networks e.g MAINNET, TESTNET, and PREVIEWNET. After the connection is approved by the flash wallet. Flash Wallet responds accountId (solidityAddress) and chainId. For MAINNET chainId is 1. For TESTNET chainId is 2. For PREVIEWNET chainId is 3.