57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
import { ethers } from 'ethers';
|
|
import fs from 'fs';
|
|
|
|
const PRIVATE_KEY = '0x886ea4cffe76c386fecf3ff321ac9ae913737c46c17bc6ce2413752144668a2a';
|
|
const RPC_URL = 'https://evm.kava.io';
|
|
|
|
// dUSDT Contract
|
|
const CONTRACT_ADDRESS = '0xA9F3A35dBa8699c8C681D8db03F0c1A8CEB9D7c3';
|
|
const ABI = JSON.parse(fs.readFileSync('build/DurianUSDT.abi', 'utf8'));
|
|
|
|
// Transfer destination
|
|
const TO_ADDRESS = '0xdd919d51ec09c0830fd000a0ff6f0e1859b48db2';
|
|
|
|
async function transferAll() {
|
|
// Connect to Kava mainnet
|
|
const provider = new ethers.JsonRpcProvider(RPC_URL);
|
|
const wallet = new ethers.Wallet(PRIVATE_KEY, provider);
|
|
|
|
console.log('From address:', wallet.address);
|
|
console.log('To address:', TO_ADDRESS);
|
|
|
|
// Connect to contract
|
|
const contract = new ethers.Contract(CONTRACT_ADDRESS, ABI, wallet);
|
|
|
|
// Get current balance
|
|
const balance = await contract.balanceOf(wallet.address);
|
|
console.log('Current balance:', ethers.formatUnits(balance, 6), 'dUSDT');
|
|
|
|
if (balance === 0n) {
|
|
console.log('No balance to transfer');
|
|
return;
|
|
}
|
|
|
|
// Transfer all tokens
|
|
console.log('\nTransferring all tokens...');
|
|
const tx = await contract.transfer(TO_ADDRESS, balance);
|
|
console.log('Transaction hash:', tx.hash);
|
|
|
|
// Wait for confirmation
|
|
console.log('Waiting for confirmation...');
|
|
const receipt = await tx.wait();
|
|
console.log('Confirmed in block:', receipt.blockNumber);
|
|
console.log('Gas used:', receipt.gasUsed.toString());
|
|
|
|
// Verify balances
|
|
console.log('\n=== Transfer Complete ===');
|
|
const newFromBalance = await contract.balanceOf(wallet.address);
|
|
const newToBalance = await contract.balanceOf(TO_ADDRESS);
|
|
console.log('From balance:', ethers.formatUnits(newFromBalance, 6), 'dUSDT');
|
|
console.log('To balance:', ethers.formatUnits(newToBalance, 6), 'dUSDT');
|
|
|
|
console.log('\nExplorer link:');
|
|
console.log(`https://kavascan.com/tx/${tx.hash}`);
|
|
}
|
|
|
|
transferAll().catch(console.error);
|