Por favor, informe a FMZ como obter a Uniswap V3 em seu pool de moedas pessoais.

Autora:Dancinglife86, Criado: 2023-07-13 13:48:35, Atualizado:

Por exemplo:https://app.uniswap.org/#/pools/536461Quantidade de GRT/ETH


Mais.

Sonhos pequenosA partir de agora, o projeto será lançado no Brasil, onde o projeto será lançado no Brasil, onde será lançado no Brasil, onde será lançado no Brasil, onde será lançado no Brasil, onde será lançado no Brasil, onde será lançado no Brasil.

Sonhos pequenosVocê pode experimentar isto: https://www.fmz.com/digest-topic/10146

Sonhos pequenosO código é apenas um exemplo, o conteúdo específico deve ser analisado.

Dancinglife86Não tenho nenhum resultado. Qual é a quantidade correspondente de GRT e ETH que eu quero?

Dancinglife86O ABI_UniswapV3Router é o mesmo que eu procurei https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45#code, ABI_NonfungiblePositionManager não é o mesmo, por favor, onde você está procurando?

Sonhos pequenosDeve ser que o ABI não está certo, ou o método de chamada está mal escrito, use o código que eu enviei acima para testar se está certo. Não sei. ABA_Uniswap:"V3Router": = const `[{"inputs"::"{"internalType":"address:":"name:"_factoryV2",:"Type:":":":"Type:":":":"Mutability:":":"Type:":":":":":"Di-paybytes:":":"Constructor:":":"Type:":":":"Type:":":":"Type:":":":":"Type:":":":":"Di:":"type:":":":":":"Address:":":":"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","type:":":"constructor"},{"anonymous:":":":"Type:":"false",:":":"inputs:":":":"type:":":":":":":":":":"type:":":":":":":":":":"type:":":":":":":":":"type:":":":":":":":"type:":":":":":":"type:":":":":":":"type:":":":":":":":"type:":":":":":":":"type:":":":":":":":"WETH9","type:":":":":"type:":":":":":":":"type:" const UniswapV3RouterAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" função main() { // endereço da carteira a ser pesquisado // const walletAddress = exchange.IO (("address") const walletAddress = "0x28df8b987BE232bA33FdFB8Fc5058C1592A3db26" // Obter o endereço do contrato do positionManager do Uniswap V3 exchange.IO (("abi", UniswapV3RouterAddress, ABI_UniswapV3Router) const NonfungiblePositionManagerAddress = exchange.IO (("api", UniswapV3RouterAddress, "positionManager") Log ((("NonfungiblePositionManagerAddress:", NonfungiblePositionManagerAddress) // ABI do contrato do RegistrarpositionManager exchange.IO (("abi", NonfungiblePositionManagerAddress, ABI_NonfungiblePositionManager) // Pergunta o número de posições NFT da Uniswap V3 na conta atual var nftBalance = exchange.IO (("api", NonfungiblePositionManagerAddress, "balanceOf", walletAddress) Log (("nftBalance:", nftBalance) O que é isso? // Para pesquisar o tokenId dessas NFTs var nftTokenIds = [] para (var i = 0 ; i < nftBalance; i++) { var nftTokenId = exchange.IO (("api", NonfungiblePositionManagerAddress, "tokenOfOwnerByIndex", walletAddress, i) nftTokenIds.push (em inglês) Log (("nftTokenId:", nftTokenId) Não. // Pesquisa de posições de liquidez com base no tokenId da NFT de posições Var posições = [] para (var i = 0; i < nftTokenIds.length; i++) { var pos = exchange.IO (("api", NonfungiblePositionManagerAddress, "positions", nftTokenIds[i]) Log (("pos:", pos) // Analisar dados de posição positions.push ((parsePosData ((pos)) Não. O que é isso? Var tbl = { tipo: "table", title : "LP", cols: ["pair", "fee", "lower", "upper", "liquidity"], rows: posições Não. LogStatus (("`" + JSON.stringify ((tbl) + "`") Não. Var tokens = {} função 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] = { name: token.symbol, decimais: token. decimais, endereço: token.address Não. Não. Log (("tokens:", tokens) Não. função parse PosData ((posData) { - Não. - Não. "nonce": "0", 'operator': "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 "token1": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2", "Fee": "3000", "feeGrowthInside0LastX128": "552824104363438506727784685971981736468", "55282410104363438506727784685971981736468", "5528241043634383838506727784685971981736468", "552824104363838383838506727784685971981736468", "55282410436383838383838383838383668" e "552824363668" são alguns dos nomes que estão disponíveis no site da empresa. "feeGrowthInside1LastX128": "2419576808699564757520565912733367379", e "2419576808699564757520565912733367379", e "241957680869956475752056591273336367379", e "241957680869956475752056591273336367379" e "24195768086995647520565752056591273336367379" "tokensOwed0": "0", "tokensOwed1": "0", "token0": "0x1f9840a85d5af5bf1d1762f925bdaddc4201f984", "TickLower": "-62160", "TickUpper": "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280", "-41280" "Liquidity": "19090316141441365693" Não. */ O que é isso? var token0Symbol = null var token1 Símbolo = null para (simbolo var em tokens) { if (tokens[symbol].address == posData.token0) { token0Symbol = tokens[symbol] } else if (tokens[symbol].address == posData.token1) { token1Symbol = tokens[symbol] Não. Não. return [token0Symbol.name + "_" + token1Symbol.name, posData.fee / 10000 + "%", posData.tickLower, posData.tickUpper, posData.liquidity] Não. Não sei. O que é o que você está fazendo?

Dancinglife86O erro /upload/asset/14e3b9c329f0e6d2b7e09.jpg 2 métodos não estão registrados, foi o ABI que procurou? https://etherscan.io/address/0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45#code procurado aqui

Sonhos pequenosNo screenshot que você enviou, há um botão para copiar o ABI, no canto superior direito. Copiar diretamente deve ser feito. O uniswap em todas as outras cadeias deve ser o mesmo.

Dancinglife86/upload/asset/14e185e563e61cd155424.jpg Por favor, pergunte ABI_UniswapV3Router ABI_NonfungiblePositionManager é copiar o conteúdo da imagem? Então, se trocar uma cadeia como a cadeia Arbitrum, além de trocar o endereço RPC adicionado, outros parâmetros precisam ser trocados?

Sonhos pequenosO que você precisa é de seu próprio estoque para obter o pool de troca, com o seguinte código: Não sei. const ABI_UniswapV3Router = ` muito longo omitido, preencha o ABI específico ` const ABI_NonfungiblePositionManager = ` muito longo omitido, preencha o ABI específico ` const UniswapV3RouterAddress = "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45" função main() { // const walletAddress = exchange.IO (("address") const walletAddress = "ou especifique o endereço da carteira" // get positionManager address 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) O que é isso? var nftTokenIds = [] para (var i = 0 ; i < nftBalance; i++) { var nftTokenId = exchange.IO (("api", NonfungiblePositionManagerAddress, "tokenOfOwnerByIndex", walletAddress, i) nftTokenIds.push (em inglês) Log (("nftTokenId:", nftTokenId) Não. Var posições = [] para (var i = 0; i < nftTokenIds.length; i++) { var pos = exchange.IO (("api", NonfungiblePositionManagerAddress, "positions", nftTokenIds[i]) posições.push ((pos)) Log (("pos:", pos) // pos é cada informação de armazenamento de liquidez, que pode ser analisada especificamente em seus dados. Não. Não. Não sei. O artigo será atualizado na biblioteca mais tarde.

Sonhos pequenosSim, aqui é preciso escrever exemplos concretos de buscas, você pode seguir este post.

Dancinglife86Não, obrigada.