Pesquisa de site

typescript - Criando nova posição no Uniswap V3 usando hardhat


Então, basicamente, estou tentando cunhar uma posição em um pool criado por mim.

Para criar e inicializar o pool:

  const factory = await ethers.getContractAt("UniswapV3Factory", factoryAddress)
  
  let poolAddress = await factory.getPool("0x40a42Baf86Fc821f972Ad2aC878729063CeEF403", "0x4bf010f1b9beDA5450a8dD702ED602A104ff65EE", 500);

  const pool = await ethers.getContractAt("UniswapV3Pool", poolAddress);
  try{
    await pool.initialize(BigNumber.from(2).pow(96));
  } catch(exception){
    console.log("Pool already initialized");
  }

Então, para tentar ter liquidez, eu tentei isto:

  let signer = await ethers.getSigner("0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266");

  await pool.connect(signer).mint(signer.address,-20,20,10000000,[]);

Percebo que está faltando a transferência dos tokens (que deveria ocorrer em um callback da função de mint), mas não sei como implementar isso! Alguma ideia?

Ou isso é simplesmente a abordagem errada e existe uma melhor?