web3agent-aof
Version:
AI Framework for Onchain Operations and DeFi Interactions
42 lines • 1.39 kB
JavaScript
import { ethers } from 'ethers';
// ERC20 ABI (minimal)
const ERC20_ABI = [
'function transfer(address to, uint256 amount) external returns (bool)',
'function balanceOf(address account) external view returns (uint256)',
'function approve(address spender, uint256 amount) external returns (bool)'
];
export const transfer = async (params, wallet) => {
const { to, amount, tokenAddress } = params;
try {
let tx;
if (tokenAddress) {
// ERC20 transfer
const token = new ethers.Contract(tokenAddress, ERC20_ABI, wallet);
tx = await token.transfer(to, amount);
}
else {
// Native ETH transfer
tx = await wallet.sendTransaction({
to,
value: amount
});
}
const receipt = await tx.wait();
return receipt;
}
catch (error) {
throw new Error(`Transfer failed: ${error.message}`);
}
};
export const approve = async (spender, amount, tokenAddress, wallet) => {
try {
const token = new ethers.Contract(tokenAddress, ERC20_ABI, wallet);
const tx = await token.approve(spender, amount);
const receipt = await tx.wait();
return receipt;
}
catch (error) {
throw new Error(`Approval failed: ${error.message}`);
}
};
//# sourceMappingURL=transfers.js.map