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?