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: '오류(문자열)',
무엇이 잘못되었을 수 있는지에 대한 아이디어가 있습니까?
감사!!
Reference
이 문제에 관하여(Pancakeswap ZAPInBNBRebalancing 기능 문제.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/5bngr/pancakeswap-zapinbnbrebalancing-function-issue-4fn7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)