Examples
↝ Sample ERC20 Implementation of Laïka Token
// SPDX-License-Identifier: MIT
// Compatible with OpenZeppelin Contracts ^5.0.0
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
contract Laika is ERC20, ERC20Burnable, Ownable, ERC20Permit {
constructor(address initialOwner)
ERC20("Laika", "LAIKA")
Ownable(initialOwner)
ERC20Permit("Laika")
{
_mint(msg.sender, 2100000 * 10 ** decimals());
}
function mint(address to, uint256 amount) public onlyOwner {
_mint(to, amount);
}
}
↝ Interacting with a smart contract using Ethers.js to view balance and send token
const ethers = require('ethers');
// Replace with your provider URL
const provider = new ethers.providers.JsonRpcProvider('https://testnet1.laikachain.dog');
// Replace with your contract address
const laikaContractAddress = '0xYOUR_LAIKA_CONTRACT_ADDRESS';
// Replace with your private key (**WARNING: Keep this secure!**)
const signer = new ethers.Wallet('YOUR_PRIVATE_KEY', provider);
// Define contract ABI (replace with your actual ABI)
const laikaAbi = [
"function balanceOf(address owner) public view returns (uint256)",
"function transfer(address recipient, uint256 amount) public returns (bool)",
];
async function main() {
// Create a contract instance for Laika
const laikaContract = new ethers.Contract(laikaContractAddress, laikaAbi, signer);
// Fetch your Laika token balance (replace with your address)
const yourAddress = '0xYOUR_ADDRESS';
const balance = await laikaContract.balanceOf(yourAddress);
const formattedBalance = ethers.utils.formatUnits(balance, 18);
console.log(`Your Laika token balance: ${formattedBalance}`);
// Define recipient address
const recipientAddress = '0xRECIPIENT_ADDRESS';
// Define transfer amount (replace with desired amount)
const transferAmount = ethers.utils.parseUnits('100', 18); // Send 100 Laika tokens
// Send Laika tokens to recipient
const tx = await laikaContract.transfer(recipientAddress, transferAmount);
console.log(`Transaction hash: ${tx.hash}`);
// Wait for transaction confirmation (optional)
const receipt = await tx.wait();
console.log(`Transaction confirmed at block number: ${receipt.blockNumber}`);
}
main()
.then(() => console.log('Laika interaction successful!'))
.catch((error) => console.error('Error:', error));