Pancakeswap ZAPInBNBRebalancing 기능 문제.

2799 단어 pancakeswapzaprouter
여러분, 안녕하세요!
나는 코딩과 포럼에 대해 상당히 익숙하지 않기 때문에 이 글을 올바른 위치에 게시하기를 바랍니다.
내 질문에:
자동화 프로젝트의 일환으로 저는 ERC20 & Pancakeswap Router & ZAP 컨트랙트와 상호 작용하고 있으며 여기서 다음이 필요합니다.

계약에서 정보 읽기(erc20 토큰, LP 계약 등) - 작업 중
erc20 토큰 스왑 - 작동
토큰을 LP 풀로 재핑 - 작동하지 않음
나는 ZAP 라우터 ABI를 통과했고 올바른 함수를 호출하고 있다고 생각하지만 올바른 매개 변수를 사용하지만 확실하지 않습니다.

코드 조각:

변수, 계약, ABI, 가격 책정/도우미 기능 등을 정의하는 코드


lpToken1.amountIn = await coinContracts[token1].balanceOf(account)
lpToken1.decimals = await coinContracts[token1].decimals()
lpToken1.address = tokens[token1].address
lpToken2.amountIn = await coinContracts[token2].balanceOf(account)
lpToken2.decimals = await coinContracts[token2].decimals()
lpToken2.address = tokens[token2].address
lpToken.address = tokens[lptoken].address


토큰 1 및 2에 올바른 데이터가 있는지 확인하기 위한 콘솔 로그 출력
USD의 token1 가격: 269.76639309475314
USD의 토큰1 잔액: 79.72137050869273
LP의 토큰1 잔액: 0.295520022320538927

USD의 token2 가격: 122.43023186809978
USD의 token2 잔액: 0.2733755311081344
LP의 토큰2 잔액: 0.002232908710020704

단일 토큰(이 경우 wbnb)을 유동성 풀로 옮기고 있으므로 재조정이 필요합니다(wbnb 금액을 wbnb/token2의 동일한 금액으로 분할)…

//필요한 양을 추정하는 함수 호출

amounts = await PancakeswapZapContract.estimateZapInRebalancingSwap(
lpToken1.address,
lpToken2.address,
lpToken1.amountIn,
lpToken2.amountIn,
lpToken.address,
{
gasPrice: mygasPrice,
gasLimit: ‘310000’
}
);


//값/수학을 다시 확인하기 위해 추정 함수의 출력을 기록합니다.. 반환된 값이 충분히 가까운 것 같습니다..
12월의 amount[0]: 0.147439545491919011
손실이 있는 12월의 amount[0]: 0.14449075458208063
슬리피지가 있는 이더의 양[0]: 144490754582080630

12월의 amount[1]: 0.326677820074572399
손실이 있는 12월의 금액[1]: 0.32014426367308096
Ether w/Slippage의 amount[1]: 320144263673080960
우리는 wbnb를 판매하고 있습니까? 진실

//amountInMax 및 amountOutMin에 값 할당

amountInMax = amounts[0] // This is the estimated amount of bnb needed to buy the required amount of token2
amountOutMin = amounts[1] // This is the estimated amount of token2 needed


//위의 값으로 ZapIn 리밸런싱 함수를 호출합니다. 마지막 매개변수는 토큰1이 ZAP에 대해 소비/판매되는 토큰임을 지정합니다.

txHash = await PancakeswapZapContract.callStatic.zapInBNBRebalancing(
lpToken1.address,
lpToken1.amountIn,
lpToken.address,
amountInMax,
amountOutMin,
isToken1Sold,
{
gasPrice: mygasPrice,
gasLimit: ‘310000’
}
);


위의 함수 호출은 다음 오류와 함께 계속 실패합니다.
이유: 'SafeERC20: 저수준 호출 실패',
코드: 'CALL_EXCEPTION',
메서드: 'zapInBNBRebalancing(address,uint256,address,uint256,uint256,bool)',
errorArgs: [ 'SafeERC20: 저수준 호출 실패' ],
errorName: '오류',
errorSignature: '오류(문자열)',

무엇이 잘못되었을 수 있는지에 대한 아이디어가 있습니까?
감사!!

좋은 웹페이지 즐겨찾기