rams
Var contractV3FactoryAddress =
Função toAmount (s, decimais) { Retornar Número (s) (BigDecimal (BigInt)) / BigDecimal (Math.pow (pow), decimais))).toString ()) - Não.
função main (() {
// ABI registrado no contrato da fábrica da Uniswap
exchange.IO ((
// 注册Uniswap路由合约的ABI
exchange.IO("abi", contractV3SwapRouterV2Address, abiRoute)
// 获取交易对的池地址
var tokenIn = {name : "1INCH", address: "0x111111111117dC0aa78b770fA6A738034120C302", decimals: exchange.IO("api", "0x111111111117dC0aa78b770fA6A738034120C302", "decimals")}
var tokenOut = {name : "WETH", address: "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", decimals: exchange.IO("api", "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "decimals")}
var poolAddress = exchange.IO("api", contractV3FactoryAddress, "getPool", tokenIn.address, tokenOut.address, 10000)
// 注册池合约ABI
exchange.IO("abi", poolAddress, abiPool)
// 获取当前配置的钱包地址
var walletAddress = exchange.IO("address")
// 1INCH -> ETH, tokenIn: 1INCH
var allowanceAmount = exchange.IO("api", tokenIn.address, "allowance", walletAddress, contractV3SwapRouterV2Address)
Log("allowanceAmount:", allowanceAmount, ", 使用toAmount()函数转换为可读数值:", toAmount(allowanceAmount, tokenIn.decimals))
}
对于代码中的```toAmount()```函数我们应该比较熟悉,前几章课程中我们多次使用了这个自定义函数代码,用于把数据处理为方便人类阅读的数值。
```javascript
function toAmount(s, decimals) {
return Number((BigDecimal(BigInt(s)) / BigDecimal(Math.pow(10, decimals))).toString())
}
O código é executado e o número de autorizações é zero, então para fazer a troca, é necessário autorizar uma quantidade suficiente para que o contrato de roteamento funcione.
Uniswap V3
Contrato de roteamentoSe estiver a ser usadoallowance
Se a pesquisa descobrir que o número de licenças é insuficiente, é necessário usar a ferramenta.approve
AutorizaçãoUniswap V3
O contrato de roteamento, que permite a operação de uma certa quantidadeERC20
O que é que você está a fazer?
Ou1INCH -> ETH
Por exemplo, a trocaERC20
Não.approve
Método paraUniswap
O contrato de roteamento autoriza a operação da carteira atualmente configurada1INCH
O que é que você está a fazer?