62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
import { ethers } from 'ethers';
|
|
import fs from 'fs';
|
|
|
|
const PRIVATE_KEY = '0x886ea4cffe76c386fecf3ff321ac9ae913737c46c17bc6ce2413752144668a2a';
|
|
const RPC_URL = 'https://evm.kava.io';
|
|
|
|
// Contract bytecode
|
|
const BYTECODE = '0x' + fs.readFileSync('build/DurianUSDT.bin', 'utf8');
|
|
const ABI = JSON.parse(fs.readFileSync('build/DurianUSDT.abi', 'utf8'));
|
|
|
|
async function deploy() {
|
|
// Connect to Kava mainnet
|
|
const provider = new ethers.JsonRpcProvider(RPC_URL);
|
|
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);
|
|
|
|
console.log('Deployer address:', wallet.address);
|
|
|
|
// Check balance
|
|
const balance = await provider.getBalance(wallet.address);
|
|
console.log('Balance:', ethers.formatEther(balance), 'KAVA');
|
|
|
|
// Get network info
|
|
const network = await provider.getNetwork();
|
|
console.log('Chain ID:', network.chainId.toString());
|
|
|
|
// Create contract factory
|
|
const factory = new ethers.ContractFactory(ABI, BYTECODE, wallet);
|
|
|
|
console.log('Deploying contract...');
|
|
|
|
// Deploy
|
|
const contract = await factory.deploy();
|
|
console.log('Transaction hash:', contract.deploymentTransaction().hash);
|
|
|
|
// Wait for deployment
|
|
console.log('Waiting for confirmation...');
|
|
await contract.waitForDeployment();
|
|
|
|
const contractAddress = await contract.getAddress();
|
|
console.log('Contract deployed at:', contractAddress);
|
|
|
|
// Verify deployment
|
|
console.log('\nVerifying deployment...');
|
|
const name = await contract.name();
|
|
const symbol = await contract.symbol();
|
|
const decimals = await contract.decimals();
|
|
const totalSupply = await contract.totalSupply();
|
|
const ownerBalance = await contract.balanceOf(wallet.address);
|
|
|
|
console.log('Token name:', name);
|
|
console.log('Token symbol:', symbol);
|
|
console.log('Decimals:', decimals.toString());
|
|
console.log('Total supply:', ethers.formatUnits(totalSupply, 6), 'dUSDT');
|
|
console.log('Owner balance:', ethers.formatUnits(ownerBalance, 6), 'dUSDT');
|
|
|
|
console.log('\n=== DEPLOYMENT COMPLETE ===');
|
|
console.log('Contract Address:', contractAddress);
|
|
console.log('Explorer:', `https://kavascan.com/address/${contractAddress}`);
|
|
}
|
|
|
|
deploy().catch(console.error);
|