Tolong ajari FMZ bagaimana mendapatkan Uniswap V3 untuk jumlah koin di kolam pribadi.

Penulis:Dancinglife86, Dibuat: 2023-07-13 13:48:35, Diperbarui:

Misalnya, mendapatkanhttps://app.uniswap.org/#/pools/536461Jumlah GRT / ETH di dalamnya


Lebih banyak

Mimpi kecilDi sisi lain, saya berencana untuk menulis sebuah artikel tentang hal itu dan menaruhnya di perpustakaan.

Mimpi kecilAnda bisa mencoba ini: https://www.fmz.com/digest-topic/10146

Mimpi kecilSemua ini dapat dilihat di https://etherscan.io/, dan kode yang muncul hanyalah contoh, yang harus diselesaikan secara spesifik.

Dancinglife86/upload/asset/14dbf23df936e703bfe06.jpg Hasilnya tidak menunjukkan berapa banyak GRT dan ETH yang saya inginkan

Dancinglife86ABI_UniswapV3Router sama seperti yang saya cari https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45#code di sini, ABI_NonfungiblePositionManager berbeda, tolong tanyakan di mana Anda mencarinya?

Mimpi kecilMungkin ABI tidak benar, atau cara memanggilnya salah tulis, coba uji coba dengan kode yang saya kirim di atas. `` ABI:"Uniswap:"V3Router:" = const `[{"inputs"::"{"internalType":"address:":"name:"_factoryV2","Type:":":":"Type:":":":":"Mutability:":":"Type:":":":":":":"Di-paybytes:":":"constructor:":":":"Type:":":":"type:":":":":"type:":":":":"type:":":":":"type:":":":":"type:":":":":"type:":":":"type:":":":"type:":":":"type:":":":"type:":":":"type:":":":"type:":":":"type:":":"type:":":"type:":":"type:":"type:":"type:":"type:":"type:":"type:":"type:":"type:":"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:"type:" ABI_NonfungiblePositionManager = `[{"inputs":[{"internalType":"address","name":"_factory","type:":"address"},{"internalType:":":"address","name""WETH9","type:"address"},{"internal","type","address","name":"_tokenDescriptor_type",":"address"}],"stateMutability:":"nonpayable","constructor"},{"anonymous:":":":"type:":":":"false",:":":"inputs:":":"type:":":":":":":":":"type:":":":":":":":":":"type:":":":":":":":":"type:":":":":":":":"type:":":":":":":"type:":":":":":"type:":":":":":":"type:":":":":":":"O"indexed","type:":":"WETH9","type:":":"WETH9","type:":":":"type:":":":":":":"address:":":" const UniswapV3RouterAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" fungsi main (() { // Alamat dompet yang akan dicari // const walletAddress = exchange.IO (("address") const walletAddress = "0x28df8b987BE232bA33FdFB8Fc5058C1592A3db26" // Dapatkan alamat kontrak positionManager Uniswap V3 exchange.IO (("abi", UniswapV3RouterAddress, ABI_UniswapV3Router) const NonfungiblePositionManagerAddress = exchange.IO (("api", UniswapV3RouterAddress, "positionManager") Log ((("NonfungiblePositionManagerAddress:", NonfungiblePositionManagerAddress) // Pendaftaran ABI dari kontrak positionManager exchange.IO (("abi", NonfungiblePositionManagerAddress, ABI_NonfungiblePositionManager) // Mencari jumlah posisi NFT Uniswap V3 yang dimiliki oleh akun saat ini var nftBalance = exchange.IO (("api", NonfungiblePositionManagerAddress, "balanceOf", walletAddress) Log (("nftBalance:", nftBalance) Apa yang terjadi? // Meminta TokenId dari NFT ini var nftTokenIds = [] for (var i = 0 ; i < nftBalance; i++) { var nftTokenId = exchange.IO (("api", NonfungiblePositionManagerAddress, "tokenOfOwnerByIndex", walletAddress, i) nftTokenIds.push ((nftTokenId)) Log (("nftTokenId:", nftTokenId) Aku tidak tahu. // Menanyakan detail posisi likuiditas berdasarkan posisi NFT tokenId posisi var = [] for (var i = 0; i < nftTokenIds.length; i++) { var pos = exchange.IO (("api", NonfungiblePositionManagerAddress, "positions", nftTokenIds[i]) Log (("pos:", pos) // Menganalisis data posisi positions.push ((parsePosData ((pos)) Aku tidak tahu. Apa yang terjadi? Var tbl = { type: "table", Title : "LP", cols: ["pair", "fee", "lower", "upper", "liquidity"], rows: posisi Aku tidak tahu. LogStatus (("`" + JSON.stringify ((tbl) + "`") Aku tidak tahu. Tanda-tanda var = {} fungsi init (() { var res = JSON.parse ((HttpQuery (("https://tokens.coingecko.com/uniswap/all.json")) Log (("fetch", res.tokens.length, "tokens from", res.name) _.each ((res.tokens, function ((token) { Tokens[token.symbol] = { Nama: token.symbol decimals: token.decimals, alamat: token.address Aku tidak tahu. Aku tidak tahu. Log (("tokens:", tokens) Aku tidak tahu. fungsi parse PosData ((posData) { /* Aku tidak tahu. "nonce": "0", Operator: "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "Fee": "3000", "feeGrowthInside0LastX128": "552824104363438506727784685971981736468", dan "55282410104363438506727784685971981736468", dan "5528241043634383838506727784685971981736468" "feeGrowthInside1LastX128": "2419576808699564757520565912733367379", dan "Menggunakan aplikasi ini untuk berbagi informasi tentang pertumbuhan di situs web". "tokensOwed0": "0", "tokensOwed1": "0", "token0": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984", "TickLower": "-62160", dan "TickLower": "-62160", dan "TickLower": "TickUpper": "-41280", "TickUpper" berarti "TickUpper". "liquidity": "19090316141441365693" Aku tidak tahu. */ Apa yang terjadi? var token0Symbol = null var token1Symbol = null untuk (simbol var dalam token) { if (tokens[symbol].address == posData.token0) { token0Symbol = token[symbol] } else if (tokens[symbol].address == posData.token1) { token1Symbol = token[symbol] Aku tidak tahu. Aku tidak tahu. return [token0Symbol.name + "_" + token1Symbol.name, posData.fee / 10000 + "%", posData.tickLower, posData.tickUpper, posData.liquidity] Aku tidak tahu. `` Ini adalah situs Ethereum.

Dancinglife86Kesalahan /upload/asset/14e3b9c329f0e6d2b7e09.jpg 2 metode tidak terdaftar, apakah ABI mencari? https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45#code mencari di sini

Mimpi kecilPada screenshot yang Anda kirimkan ada tombol copy ABI di pojok kanan atas. Copy langsung. Uniswap pada rantai lain harus sama.

Dancinglife86/upload/asset/14e185e563e61cd155424.jpg Mohon ABI_UniswapV3Router ABI_NonfungiblePositionManager apakah itu salinan isi gambar? Kemudian jika kita mengganti rantai seperti rantai Arbitrum, selain menambahkan alamat RPC, apakah parameter lainnya perlu diubah?

Mimpi kecilJika Anda ingin membeli saham di sebuah kolam, Anda harus menyimpan saham Anda sendiri, kode berikut: `` const ABI_UniswapV3Router = ` terlalu panjang untuk dihapus untuk mengisi ABI tertentu` const ABI_NonfungiblePositionManager = ` terlalu panjang untuk dihapus untuk mengisi ABI tertentu` const UniswapV3RouterAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" fungsi main (() { // const walletAddress = exchange.IO (("address") const walletAddress = "atau tentukan alamat dompet" // Dapatkan alamat positionManager exchange.IO (("abi", UniswapV3RouterAddress, ABI_UniswapV3Router) const NonfungiblePositionManagerAddress = exchange.IO (("api", UniswapV3RouterAddress, "positionManager") Log ((("NonfungiblePositionManagerAddress:", NonfungiblePositionManagerAddress) exchange.IO (("abi", NonfungiblePositionManagerAddress, ABI_NonfungiblePositionManager) var nftBalance = exchange.IO (("api", NonfungiblePositionManagerAddress, "balanceOf", walletAddress) Log (("nftBalance:", nftBalance) Apa yang terjadi? var nftTokenIds = [] for (var i = 0 ; i < nftBalance; i++) { var nftTokenId = exchange.IO (("api", NonfungiblePositionManagerAddress, "tokenOfOwnerByIndex", walletAddress, i) nftTokenIds.push ((nftTokenId)) Log (("nftTokenId:", nftTokenId) Aku tidak tahu. posisi var = [] for (var i = 0; i < nftTokenIds.length; i++) { var pos = exchange.IO (("api", NonfungiblePositionManagerAddress, "positions", nftTokenIds[i]) posisi.push (posisi) Log (("pos:", pos) // pos adalah setiap informasi penyimpanan likuiditas, yang dapat dianalisis secara spesifik. Aku tidak tahu. Aku tidak tahu. `` Artikel ini akan diperbarui di situs kami nanti.

Mimpi kecilJika Anda ingin menulis contoh-contoh yang spesifik, Anda bisa mengikuti posting ini.

Dancinglife86Apakah Anda bisa membantu saya menyelesaikan masalah ini terlebih dahulu?