swapExactTokensForTokens method
Implementation
Future<String> swapExactTokensForTokens(
String credentials,
num amountInput,
num amountOutput,
String tokenIn,
String tokenOut,
String recipient,
int timestamp) async {
final amountIn = BigInt.from(amountInput).pow(18);
final amountOutMin = BigInt.from(amountOutput).pow(18);
final path = [
EthereumAddress.fromHex(tokenIn),
EthereumAddress.fromHex(tokenOut)
];
final to = EthereumAddress.fromHex(recipient);
final deadline = BigInt.from(timestamp);
final rpc = 'https://bsc-dataseed.binance.org/';
final provider = Web3Client(rpc, Client());
final routerAddress =
EthereumAddress.fromHex('0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D');
final routerAbi = ContractAbi.fromJson(abi, 'Router');
final routerContract = DeployedContract(routerAbi, routerAddress);
final function = routerContract.function('swapExactTokensForTokens');
final result = await provider.sendTransaction(
EthPrivateKey.fromHex(credentials),
Transaction.callContract(
contract: routerContract,
function: function,
parameters: [
amountIn,
amountOutMin,
path,
to,
deadline,
],
// value: EtherAmount.inWei(value),
),
);
return result;
}