판게아 풀에서 스왑하기

라우터를 통해 판게아의 풀에서 스왑하는 3가지 케이스는 다음과 같습니다.

1. ERC20 --> ERC20

  • 스왑 요청 전에 입력 토큰에 대해 라우터로 승인요청(approve)을 수행해야 합니다.

poolRouter.exactInputSingle({
          tokenIn: tokenInAddress, // 스왑 시 입력 토큰의 주소
          amountIn: BigNumber.from(amountIn), // 스왑할 입력 토큰의 갯수
          amountOutMinimum: BigNumber.from(amountOutMinimum), // 슬리피지
          pool: PoolAddress, // 스왑할 풀의 주소
          to: recipient,     // 받을 계정
          unwrap: false      // erc20의 토큰을 받는 경우 항상 false로 고정
        });

2. ERC20 --> KLAY

  • 스왑 요청 전에 입력 토큰에 대해 라우터로 승인요청(approve)을 수행해야 합니다.

poolRouter.exactInputSingle({
          tokenIn: tokenInAddress, // 스왑 시 입력 토큰의 주소
          amountIn: BigNumber.from(amountIn), // 스왑할 입력 토큰의 갯수
          amountOutMinimum: BigNumber.from(amountOutMinimum), // 슬리피지
          pool: PoolAddress, // 스왑할 풀의 주소
          to: recipient,     // 받을 계정
          unwrap: true       
        });

3. KLAY --> ERC20

poolRouter.exactInputSingle({
          // klay를 통해 스왑할 경우, 주소를 0 주소로 둡니다.
          tokenIn: "0x0000000000000000000000000000000000000000", 
          amountIn: BigNumber.from(amountIn),
          amountOutMinimum: BigNumber.from(amountOutMinimum),
          pool: PoolAddress,
          to: recipient,
          unwrap: false
        }, {
           // 보낼 클레이는 아래와 같이 담아서 보내야 합니다.
           value: BigNumber.from(amountIn)
        });

Last updated