bitcoin
bitcoin

$76295.98 USD 

0.69%

ethereum
ethereum

$2975.09 USD 

2.55%

tether
tether

$1.00 USD 

-0.02%

solana
solana

$197.85 USD 

0.49%

bnb
bnb

$624.51 USD 

4.55%

usd-coin
usd-coin

$0.999843 USD 

0.00%

xrp
xrp

$0.547606 USD 

-0.63%

dogecoin
dogecoin

$0.198409 USD 

3.29%

cardano
cardano

$0.434640 USD 

5.26%

tron
tron

$0.160115 USD 

-0.10%

toncoin
toncoin

$4.92 USD 

0.46%

avalanche
avalanche

$28.68 USD 

4.75%

shiba-inu
shiba-inu

$0.000019 USD 

-1.54%

chainlink
chainlink

$13.46 USD 

6.65%

bitcoin-cash
bitcoin-cash

$372.38 USD 

-1.03%

암호화폐 뉴스 기사

KLAYswap V2와의 원활한 통합: 스마트 계약 개발자를 위한 종합 가이드

2024/04/02 16:04

KLAYswap을 프로그래밍 방식으로 스마트 계약에 통합하면 사용자는 분산형 애플리케이션 내에서 토큰을 원활하게 사고 팔 수 있습니다. 이 튜토리얼에서는 KLAYswap V2 사용에 중점을 두고 Klaytn Cypress(메인넷) 네트워크에서 토큰을 교환하는 방법을 제공합니다. KLAYswap UniversalRouter는 이러한 스왑을 용이하게 하기 위해 swapExactETHForTokens, swapExactTokensForTokens 및 swapExactTokensForETH와 같은 다양한 메서드를 제공합니다. 사용자는 스왑을 시작하기 전에 지정된 양의 토큰에 액세스하려면 라우터를 승인해야 합니다. 이 가이드에는 완전히 작동하는 예제, thirdweb CLI를 사용하여 MiniKLAYswap 컨트랙트를 배포하기 위한 지침, 대시보드와 Klaytnscope를 사용하여 스왑 작업을 실행하기 위한 단계별 지침이 포함되어 있습니다.

KLAYswap V2와의 원활한 통합: 스마트 계약 개발자를 위한 종합 가이드

Integrating KLAYswap V2 into Smart Contracts: A Comprehensive Guide for Developers

KLAYswap V2를 스마트 계약에 통합: 개발자를 위한 종합 가이드

Introduction

소개

For developers seeking to enhance the functionality of their decentralized applications (dApps), integrating automated market maker (AMM) protocols such as KLAYswap becomes crucial. This integration enables the seamless swapping of tokens within dApps, enhancing user experience and expanding service offerings.

분산형 애플리케이션(dApp)의 기능을 향상시키려는 개발자의 경우 KLAYswap과 같은 AMM(자동화된 마켓 메이커) 프로토콜을 통합하는 것이 중요합니다. 이러한 통합을 통해 dApp 내에서 토큰을 원활하게 교환할 수 있어 사용자 경험이 향상되고 서비스 제공이 확장됩니다.

Understanding KLAYswap

KLAYswap 이해

KLAYswap is an AMM protocol designed specifically for the Klaytn network. It operates as a decentralized exchange (DEX), facilitating instant token swaps by relying on on-chain liquidity pools established by liquidity providers. Unlike traditional order book structures, KLAYswap's liquidity pools allow users to trade tokens directly with the pool, eliminating the need for counterparties.

KLAYswap은 Klaytn 네트워크를 위해 특별히 설계된 AMM 프로토콜입니다. 이는 분산형 거래소(DEX)로 운영되며 유동성 공급자가 구축한 온체인 유동성 풀을 활용하여 즉각적인 토큰 교환을 촉진합니다. 기존 주문서 구조와 달리 KLAYswap의 유동성 풀을 사용하면 사용자가 풀과 직접 토큰을 거래할 수 있으므로 거래 상대방이 필요하지 않습니다.

Benefits of Integrating KLAYswap V2

KLAYswap V2 통합의 이점

Integrating KLAYswap V2 into smart contracts provides numerous advantages:

KLAYswap V2를 스마트 계약에 통합하면 다음과 같은 수많은 이점을 얻을 수 있습니다.

  • Seamless Token Swapping: Users can conveniently swap tokens directly within your dApp without leaving the interface.
  • Enhanced User Experience: By incorporating KLAYswap, you can offer users a more intuitive and efficient trading experience.
  • Expanded Functionality: Integrate additional services around specific ERC20 and KIP7 tokens, such as enabling token purchases or lending.

Technical Integration Details

원활한 토큰 교환: 사용자는 인터페이스를 떠나지 않고도 dApp 내에서 직접 편리하게 토큰을 교환할 수 있습니다. 향상된 사용자 경험: KLAYswap을 통합하면 사용자에게 보다 직관적이고 효율적인 거래 경험을 제공할 수 있습니다. 확장된 기능: 특정 ERC20 및 KIP7 토큰에 대한 추가 서비스 통합 예를 들어 토큰 구매 또는 대출 활성화 등이 있습니다. 기술 통합 세부 사항

To programmatically integrate KLAYswap V2 into your smart contract, follow these steps:

KLAYswap V2를 스마트 계약에 프로그래밍 방식으로 통합하려면 다음 단계를 따르세요.

1. Prerequisites:

1. 전제조건:

  • Proficiency in smart contract development.
  • Familiarity with smart contract development environments (e.g., thirdweb).

2. KLAYswap Universal Router:

스마트 계약 개발에 능숙합니다. 스마트 계약 개발 환경(예: thirdweb)에 익숙합니다.2. KLAYswap 범용 라우터:

  • Utilize the KLAYswap router to access a range of methods for secure token swapping.
  • Before executing any swap method, the user must authorize the router to access the desired amount of tokens.

3. Token Swap Methods:

KLAYswap 라우터를 활용하여 보안 토큰 교환을 위한 다양한 방법에 액세스하세요. 스왑 방법을 실행하기 전에 사용자는 원하는 양의 토큰에 액세스할 수 있도록 라우터를 승인해야 합니다.3. 토큰 교환 방법:

  • swapExactETHForTokens: Swaps an exact amount of KLAY for tokens, maximizing the output tokens along the specified path.
  • swapExactTokensForTokens: Swaps an exact amount of input tokens for tokens, maximizing the output tokens along the specified path.
  • swapExactTokensForETH: Swaps an exact amount of tokens for ETH, maximizing the ETH output along the specified path.

4. Fully Working Example:

swapExactETHForTokens: 토큰에 대한 정확한 양의 KLAY를 교환하여 지정된 경로를 따라 출력 토큰을 최대화합니다.swapExactTokensForTokens: 토큰에 대한 정확한 양의 입력 토큰을 교환하고 지정된 경로를 따라 출력 토큰을 최대화합니다.swapExactTokensForETH: 지정된 경로를 따라 정확한 양의 토큰을 교환합니다. ETH, 지정된 경로를 따라 ETH 출력을 최대화합니다.4. 완전히 작동하는 예:

// Sample smart contract showcasing KLAYswap operations

// KLAYswap 작업을 보여주는 샘플 스마트 계약

pragma solidity ^0.8.20;

프라그마 견고성 ^0.8.20;

interface IKlaySwapRouterV2 {

인터페이스 IKlaySwapRouterV2 {

struct SwapParams {

구조체 SwapParams {

address to;

주소;

address[] path;

주소[] 경로;

address[] pool;

주소[] 풀;

uint deadline;

마감 기한;

}

}

}

}

function swapExactTokensForTokens(

함수 swapExactTokensForTokens(

uint256 amountIn,

uint256 금액,

uint256 amountOutMin,

uint256 amountOutMin,

SwapParams calldata p

SwapParams 호출 데이터 p

arams

SwapParams 호출 데이터 매개변수

) external returns (uint256[] memory amounts);

) 외부 반환(uint256[] 메모리 양);

function swapExactETHForTokens(

함수 swapExactETHForTokens(

uint256 amountOutMin,

uint256 amountOutMin,

SwapParams calldata p

SwapParams 호출 데이터 p

) external payable returns (uint256[] memory amounts);

) 외부 지급 수익(uint256[] 메모리 양);

function swapExactTokensForETH(

함수 swapExactTokensForETH(

uint256 amountIn,

uint256 금액,

uint256 amountOutMin,

uint256 amountOutMin,

SwapParams calldata p

SwapParams 호출 데이터 p

) external returns (uint256[] memory amounts);

) 외부 반환(uint256[] 메모리 양);

}

}

interface IERC20 {

인터페이스 IERC20 {

function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

function transferFrom(주소 발신자, 주소 수신자, uint256 금액) 외부 반환(bool);

function approve(address spender, uint256 amount) external returns (bool);

함수 승인(주소 지출자, uint256 금액) 외부 반환(bool);

}

}

contract MiniKLAYSwap {

MiniKLAYSwap 계약 {

address public constant routerAddress = 0xe0fbB27D0E7F3a397A67a9d4864D4f4DD7cF8cB9;

주소 공개 상수 routerAddress = 0xe0fbB27D0E7F3a397A67a9d4864D4f4DD7cF8cB9;

address public constant MBX_TOKEN_ADDRESS = 0xD068c52d81f4409B9502dA926aCE3301cc41f623;

주소 공개 상수 MBX_TOKEN_ADDRESS = 0xD068c52d81f4409B9502dA926aCE3301cc41f623;

address public constant sKAI_TOKEN_ADDRESS = 0x37d46C6813B121d6A27eD263AeF782081ae95434;

주소 공개 상수 sKAI_TOKEN_ADDRESS = 0x37d46C6813B121d6A27eD263AeF782081ae95434;

address public constant WKLAY_ADDRESS = 0x19Aac5f612f524B754CA7e7c41cbFa2E981A4432;

주소 공개 상수 WKLAY_ADDRESS = 0x19Aac5f612f524B754CA7e7c41cbFa2E981A4432;

IKlaySwapRouterV2 public immutable swapRouter = IKlaySwapRouterV2(routerAddress);

IKlaySwapRouterV2 공개 불변 swapRouter = IKlaySwapRouterV2(routerAddress);

IERC20 public immutable MBX_TOKEN = IERC20(MBX_TOKEN_ADDRESS);

IERC20 공개 불변 MBX_TOKEN = IERC20(MBX_TOKEN_ADDRESS);

IERC20 public immutable SKAI_TOKEN = IERC20(sKAI_TOKEN_ADDRESS);

IERC20 공개 불변 SKAI_TOKEN = IERC20(sKAI_TOKEN_ADDRESS);

address[] private pool = [address(0)];

주소[] 프라이빗 풀 = [주소(0)];

address[] private path = [MBX_TOKEN_ADDRESS, WKLAY_ADDRESS];

주소[] 개인 경로 = [MBX_TOKEN_ADDRESS, WKLAY_ADDRESS];

address[] private path1 = [WKLAY_ADDRESS, sKAI_TOKEN_ADDRESS];

주소[] 개인 경로1 = [WKLAY_ADDRESS, sKAI_TOKEN_ADDRESS];

address[] private path2 = [sKAI_TOKEN_ADDRESS, WKLAY_ADDRESS];

주소[] 개인 경로2 = [sKAI_TOKEN_ADDRESS, WKLAY_ADDRESS];

function swapExactTokensForTokens(

함수 swapExactTokensForTokens(

uint256 amountIn) external returns (uint256[] memory amountOut) { MBX_TOKEN.transferFrom(msg.sender, address(this), amountIn);

MBX_TOKEN.transferFrom(msg.sender, 주소(this), amountIn);

MBX_TOKEN.approve(address(swapRouter), amountIn);

MBX_TOKEN.approve(address(swapRouter), amountIn);

IKlaySwapRouterV2.SwapParams memory params = IKlaySwapRouterV2.SwapParams(

IKlaySwapRouterV2.SwapParams 메모리 매개변수 = IKlaySwapRouterV2.SwapParams(

to: msg.sender,

받는 사람: msg.sender,

path: path,

경로: 경로,

pool: pool,

수영장: 수영장,

deadline: block.timestamp

마감일: block.timestamp

);

);

amountOut = swapRouter.swapExactTokensForTokens(amountIn, 1, params);

amountOut = swapRouter.swapExactTokensForTokens(amountIn, 1, params);

}

}

}

}

function swapExactKLAYForTokens() external payable returns (uint256[] memory amountOut) {

함수 swapExactKLAYForTokens() 외부 지불 반환(uint256[] 메모리 amountOut) {

IKlaySwapRouterV2.SwapParams memory params = IKlaySwapRouterV2.SwapParams(

IKlaySwapRouterV2.SwapParams 메모리 매개변수 = IKlaySwapRouterV2.SwapParams(

to: msg.sender,

받는 사람: msg.sender,

path: path1,

경로: 경로1,

pool: pool,

수영장: 수영장,

deadline: block.timestamp

마감일: block.timestamp

);

);

amountOut = swapRouter.swapExactETHForTokens{value: msg.value}

}

(1, params); }

}

}

}

function swapExactTokensForKLAY(uint256 amountIn) external returns (uint256[] memory amountOut) {

함수 swapExactTokensForKLAY(uint256 amountIn) 외부 반환 (uint256[] 메모리 amountOut) {

SKAI_TOKEN.transferFrom(msg.sender, address(this), amountIn);

SKAI_TOKEN.transferFrom(msg.sender, 주소(this), amountIn);

SKAI_TOKEN.approve(address(swapRouter), amountIn);

SKAI_TOKEN.approve(address(swapRouter), amountIn);

IKlaySwapRouterV2.SwapParams memory params = IKlaySwapRouterV2.SwapParams(

IKlaySwapRouterV2.SwapParams 메모리 매개변수 = IKlaySwapRouterV2.SwapParams(

to: msg.sender,

받는 사람: msg.sender,

path: path2,

경로: 경로2,

pool: pool,

수영장: 수영장,

deadline: block.timestamp

마감일: block.timestamp

);

);

amountOut = swapRouter.swapExactTokensForETH(amountIn, 1, params);

amountOut = swapRouter.swapExactTokensForETH(amountIn, 1, params);

}

}

}

}

}

}

5. Deploying MiniKLAYswap.sol using thirdweb CLI:

Utilize the thirdweb CLI to deploy the MiniKLAYswap.sol contract. Provide a project name and select your desired framework (Hardhat or Foundry). For this example, choose the Empty base contract option.

MiniKLAYswap.sol 계약을 배포하려면 thirdweb CLI를 활용하세요. 프로젝트 이름을 제공하고 원하는 프레임워크(Hardhat 또는 Foundry)를 선택합니다. 이 예에서는 빈 기본 계약 옵션을 선택합니다.

6. Performing the Swap Operation:

6. 스왑 작업 수행:

To execute the swap operations, navigate to the explorer tab of your deployed MiniKLAYswap contract on the thirdweb dashboard. Select the appropriate swap method (e.g., swapExactKLAYForTokens) and provide the necessary input parameters. Click 'Execute' to perform the swap.

스왑 작업을 실행하려면 thirdweb 대시보드에 배포된 MiniKLAYswap 컨트랙트의 탐색기 탭으로 이동하세요. 적절한 교체 방법(예: swapExactKLAYForTokens)을 선택하고 필요한 입력 매개변수를 제공합니다. 스왑을 수행하려면 '실행'을 클릭하세요.

7. Verifying the Swap Operation:

7. 스왑 작업 확인:

To verify the swap, paste the transaction hash into the Klaytnscope search bar. This will display the details of the transaction, including the swapped token amounts.

스왑을 확인하려면 트랜잭션 해시를 Klaytnscope 검색창에 붙여넣으세요. 그러면 교환된 토큰 금액을 포함한 거래 세부 정보가 표시됩니다.

Conclusion

결론

By integrating KLAYswap V2 into your smart contracts, you empower users to seamlessly swap tokens within your dApp. This enhances the user experience and opens up new possibilities for token-related services.

KLAYswap V2를 스마트 계약에 통합하면 사용자가 dApp 내에서 토큰을 원활하게 교환할 수 있습니다. 이는 사용자 경험을 향상시키고 토큰 관련 서비스에 대한 새로운 가능성을 열어줍니다.

For further exploration and guidance, refer to the Klaytn Docs and KLAYswap Docs. If you encounter any queries, engage with the Klaytn Forum for assistance. Stay tuned for Part 2 of this tutorial, where we will delve into building a minimalistic frontend to interact with the MiniKLAYswap contract using thirdweb and Next.js.

추가 탐색 및 지침은 Klaytn Docs 및 KLAYswap Docs를 참조하세요. 질문이 있는 경우 Klaytn 포럼에 참여하여 도움을 받으세요. 이 튜토리얼의 2부에서는 thirdweb 및 Next.js를 사용하여 MiniKLAYswap 계약과 상호 작용하기 위한 최소한의 프런트엔드를 구축하는 방법을 살펴보겠습니다.

부인 성명:info@kdj.com

제공된 정보는 거래 조언이 아닙니다. kdj.com은 이 기사에 제공된 정보를 기반으로 이루어진 투자에 대해 어떠한 책임도 지지 않습니다. 암호화폐는 변동성이 매우 높으므로 철저한 조사 후 신중하게 투자하는 것이 좋습니다!

본 웹사이트에 사용된 내용이 귀하의 저작권을 침해한다고 판단되는 경우, 즉시 당사(info@kdj.com)로 연락주시면 즉시 삭제하도록 하겠습니다.

2024年11月09日 에 게재된 다른 기사