Example of using TMAWallet to sign a transaction on the Ethereum blockchain.
import { TMAWalletClient } from '@tmawallet/sdk';
import { ethers } from 'ethers';
(async () => {
const tmaWallet = new TMAWalletClient('your_project_public_token');
await tmaWallet.init();
if (tmaWallet.isBundleExists) {
const wallet = new ethers.Wallet(tmaWallet.privateKey);
const provider = ethers.getDefaultProvider('ropsten');
const signer = wallet.connect(provider);
const tx = {
to: 'recipient_address',
value: ethers.utils.parseEther('0.01'),
gasLimit: 21000,
};
const transactionResponse = await signer.sendTransaction(tx);
console.log('Transaction Hash:', transactionResponse.hash);
} else {
console.log('No wallet found to make a transaction.');
}
})();
Telegram Cloud Integration
Using TelegramCloudStorage: Learn how to store and retrieve data using TelegramCloudStorage for wallet management.
import { TelegramCloudStorage } from '@tmawallet/sdk';
(async () => {
const storage = new TelegramCloudStorage();
await storage.setItem('test_key', 'test_value');
const value = await storage.getItem('test_key');
console.log('Stored Value:', value);
})();
Advanced Usage
Managing Bundles: A detailed guide on using ClientBundleController and WalletBundleController to create, retrieve, and clear bundles.
import { ClientBundleController, WalletBundleController } from '@tmawallet/sdk';
import { TelegramCloudStorage } from '@tmawallet/sdk';
(async () => {
const storage = new TelegramCloudStorage();
const clientBundleController = new ClientBundleController(storage);
const walletBundleController = new WalletBundleController(storage);
// Create a new client bundle
const newBundle = await clientBundleController.createNewBundle();
console.log('New client bundle created:', newBundle);
// Retrieve the existing bundle
const existingBundle = await clientBundleController.getClientBundle();
console.log('Existing bundle:', existingBundle);
// Clear the client bundle
await clientBundleController.clearClientBundle();
console.log('Client bundle cleared');
})();
Handling User Sessions: Best practices for managing sessions and key security across different user devices.
Session Persistence: Use Telegram's cloud storage to persist session data, ensuring that users can access their wallets across devices.
Key Security: Avoid storing sensitive keys locally. Instead, leverage MPC and TelegramCloudStorage to manage keys securely.
Session Expiry: Implement session expiry mechanisms to ensure that inactive sessions are securely terminated, reducing the risk of unauthorized access.