Estoy tratando de implementar un intercambio básico entre 2 monedas, usando éteres, pero sin éxito.
Tengo éxito: https://ropsten.etherscan.io/tx/0x9d09a50143f8e1ec1c72b17007d664b96e931a96cd1f08f5a78b94a9b834e691
pero el resultado es que puedo ver que la cantidad de ETH se reduce, pero mi moneda GCOIN y FLOG sigue siendo la misma, ¿qué me estoy perdiendo?
const walletAddress = "0xD5768aa815D590494277f558Ee5cbeC5FAF1501C"; const GCOINErc20Address = "0x0eb8c372066EbB30B256E8F8707EaA81cB68225D"; const FLOGErc20Address = "0x5a44be26dd414ebfc4beee5c40af5cc5272a62c7"; const ropstenUniswap = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D' const uniswapRouterAbi = [ "function swapExactTokensForTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts)", ]; async function buyListedTokenWithEth( amountEthFloat, uniswapRouterAddress, provider ) { console.log('start') let privateKey = "private_key"; let provider2 = ethers.providers.getDefaultProvider({name: 'ropsten', chainId: 3}); console.log(provider2) let wallet = new ethers.Wallet(privateKey, provider2); const signer = wallet.connect(provider2); const exchangeContract = new ethers.Contract( uniswapRouterAddress, uniswapRouterAbi, signer ); const ethAmount = ethers.utils.parseUnits(amountEthFloat); console.log(exchangeContract) const tx = await exchangeContract.swapExactTokensForTokens( ethAmount, 1, [FLOGErc20Address, GCOINErc20Address], uniswapRouterAddress, Date.now() + 1000 * 60 * 10, //10 minutes, { 'gasLimit': 300000, 'gasPrice': ethers.utils.parseUnits('500', 'gwei'), }); console.log("https://ropsten.etherscan.io/tx/" + tx.hash); } buyListedTokenWithEth('1', walletAddress, provider);Creo que veo un problema aquí.
De un vistazo rápido, me parece que está enviando los tokens a uniswapRouterAddress. Tengo entendido que el cuarto argumento en swapExactTokensForTokens debe ser la dirección en la que desea recibir los tokens intercambiados.