ایف ایم زیڈ کا استعمال کرتے ہوئے ایتھرون پر مبنی ویب 3 کی ترقی میں آسان تعارف

مصنف:ایجاد کاروں کی مقدار - خواب, تخلیق: 2023-03-28 13:32:48, تازہ کاری: 2024-11-11 22:28:24

rams,name:params,type:tuplename:exactInput,outputs:[{internalType:uint256,name:amountOut,type:uint256stateMutability:payable,type:function}،{inputs:[{components:[internalType:params,type:tuple],name:tokenInput,type:address,outputs:[{internalType:addaddaddAddress,name:tokenOutput,amountOutput,type:uint256],stateMutability:payable,type:type:,type:,type,,type,,type,, var abiPool = [\inputs\:[],\stateMutability:\nonpayable\,\type\:\constructor\,\name\:\anonymous\:\false,\inputs\:[\\\indexed\:true,\internalType\:\address\:\:\owner\,\typeType:\address\:\addressable\:\,\indexed\:\type:\addressable\:\addressable\:\type:\internalType:\addressable\:\addressable\,\type:\addressable\:\addressable\,\type:\type:\type:\\type:\\\type:\\\type:\\\type:\\ var abiFactory = [\\inputs\:[],\stateMutability\:\\nonpayable\,\\\\type\:\\\constructor\},\\\anonymous\:\false,\\inputs\:[\\\indexed\:true,\\internalType\:\uint24\,\\name\:\fee\,\\\\type\:\uint24\},\\\indexed\:true,\\\internalType\addaddadded\:\uint24\,\tokname\:\tickSaddaddaddadding\addadding\:false,\:false\:false\:false\,\type\type\type\,\type\type\,\type\type\,\type\,\type\type\,\type\

var contractV3FactoryAddress = 0x1F98431c8aD98523631AE4a59f267346ea31F984 var contractV3SwapRouterV2Address = 0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45

فنکشن toAmount ((s، اعشاریہ) { واپسی نمبر (((BigDecimal(BigInt(s)) / BigDecimal(Math.pow(10, اعشاریہ))).toString()) }

function main (() { // Uniswap فیکٹری کے معاہدے کے لئے رجسٹرڈ ABI exchange.IO ((abi, contractV3FactoryAddress, abiFactory)

// 注册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())
}

کوڈ چلائیں ، اور معلوم کریں کہ موجودہ اجازت نامہ کی تعداد 0 ہے ، لہذا تبادلہ کرنے کے لئے روٹر معاہدے کو کام کرنے کے لئے کافی تعداد میں اجازت نامہ دینا ضروری ہے۔

使用FMZ轻松入门基于以太坊的web3开发

اجازتUniswap V3روٹ کا معاہدہ

اگر آپ استعمال کر رہے ہیںallowanceانکوائری کے بعد یہ پتہ چلتا ہے کہ اجازت نامے کی تعداد کم ہے اور اسے استعمال کرنے کی ضرورت ہے۔approveاجازتUniswap V3روٹنگ کا معاہدہ جو اسے ایک مخصوص تعداد میں کام کرنے کی اجازت دیتا ہےERC20ٹوکن۔

یا1INCH -> ETHتبادلہ مثال کے طور پر، استعمالERC20کےapproveطریقہUniswapروٹنگ کے معاہدے کے اختیارات آپریٹنگ موجودہ ترتیب والیٹ میں1INCHٹوکن۔

`جاوا اسکرپٹ var abiRoute = [{inputs:[{internalType:address,name:_WETH9bytes,address},{internalType:address,type:address,type:address},{internalType:address,name:factoryV3,type:address},{internalType:address,name:factoryV3,type:address},{internalType:address,name:positionManager,type:address},{internalType:address:address,type:inputs:input,input:input,input:internalType:address,input:address,input var abiPool = [\inputs\:[],\stateMutability:\nonpayable\,\type\:\constructor\,\name\:\anonymous\:\false,\inputs\:[\\\indexed\:true,\internalType\:\address\:\:\owner\,\typeType:\address\:\addressable\:\,\indexed\:\type:\addressable\:\addressable\:\type:\internalType:\addressable\:\addressable\,\type:\addressable\:\addressable\,\type:\type:\type:\\type:\\\type:\\\type:\\\type:\\


مزید معلومات