Cara Membuat CRC20 Token Swap Coinex Smart Chain – PART 1


Swap adalah salah satu metode yang paling banyak digunakan di dunia cryptocurrency, jika anda pengguna dex seperti pancakeswap , uniswap, maka anda tidak asing dengan istilah swap token. TokenSwap merupakan metode menukarkan token atau coin native dengan token lain nya dalam sebuah blockchain dan tanpa campur tangan pihak lain. Swap di jalankan di atas blockchain sepenuhnya, tanpa ada manusia yang ikut campur tangan dalam proses swap.

Pada dasarnya swap adalah metode yang paling mudah dan paling disukai oleh trader untuk menukarkan aset mereka dengan aset lain. Token Swap berjalan di blockchain dan menggunakan smart contract agar fungsi swap bisa berjalan sempurna, umumnya token swap berjalan di blockchain yang support smart contract, seperti ethereum atau blockchain coinex smart chain. Swap tidak bisa berjalan di blockchain seperti bitcoin, litecoin, monero, karena blockchain tersebut bukan “smart contract platform”.

Untuk menjalankan TokenSwap dengan sempurna anda membutuhkan “smart contract platform” yang mempunyai performa tinggi dan kecepatan transaksi yang tinggi pula, serta memiliki biaya tx fee yang murah. Mengapa harus demikian ? Karena sebagian trader tidak mau melakukan transaksi dengan biaya tinggi dan menunggu validasi tx yang lama. Mereka ingin kecepatan dan murah, karena mereka rata-rata melakukan banyak transaksi di blockchain.

Agar token swap berjalan dengan baik dan sempurna, kami sarankan anda menggunakan blockchain coinex smart chain, blockchain tersebut mempunyai performa tinggi, menggunakan protocol PoS yang ramah lingkungan dan mempunyai TPS yang tinggi. Untuk melakukan transaksi swap di coinex smart chain, anda hanya membutuhkan waktu 3-5 detik dan biaya kurang dari $0.005 , berbeda dengan ethereum yang harus membayar $3-5 per transaksi dan harus menunggu waktu 10-30 menit untuk proses swap selesai.

Di artikel ini kami akan memberikan tutorial , bagaimana cara membuat tokenswap di blockchain coinex smart chain. Token swap menggunakan smart contracr opensource dari openzepplin, dan anda bebas untuk mengambil atau memodifikasi smart contract tersebut

 

Beberapa hal yang perlu dipersiapkan, untuk membuat CRC20 Token Swap Coinex Smart Chain

1# Wallet Metamask

Metamask adalah wallet evm yang paling populer saat ini, wallet ini tersedia beberapa versi, mulai dari versi android, IOS, browser firefox dan browser chrome, safari, dll. Anda bisa menggunakan 1 wallet metamask untuk beberapa blockchain, seperti ethereum, binance, dan coinex smart chain. Untuk menggunakan beberapa blockchain dalam 1 wallet, anda perlu setting RPC sesuai dengan blockchain yang anda inginkan. Berikut ini adalah RPC blockchain coinex smart chain

RPC URL : https://rpc.coinex.net
Network Name : Coinex Smart Chain
ChainID : 52
Symbol : CET
Block Explorer : https://www.coinex.net

 

2# Coin CET (coin native coinex smart chain)

CET merupakan coin native dari blockchain coinex smart chain, coin CET digunakan untuk membayar transaksi pada jaringan tersebut, contoh jika anda mengirim token crc20, atau swap atau trading, anda membutuhkan sedikit coin cet untuk membayar fee transaksi tersebut. Untuk mendapatkan coin cet anda bisa membelinya di coinex exchange. Setelah membeli coin cet, segera kirim ke wallet metamask anda.

 

3# Smart Contract Token CRC20

Smart contract ini digunakan untuk membuat token crc20 di blockchain coinex smart chain


// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Token is ERC20 {
constructor(
string memory name_,
string memory symbol_,
uint256 totalSupply_,
address recipient_
) ERC20(name_, symbol_) {
_mint(recipient_, totalSupply_);
}
}

 

4# Smart Contract Token Swap

Ini adalah smart contract swap, yang berfungsi untuk menukarkan token crc20 dengan token crc20 lain nya. Di smart contract ini kita akan membuat 3 token (Token A, Token B dan Token C), masing masing token tersebut bisa di tukarkan atau swap dengan token lain nya. Contoh, anda bisa swap token A ke token B, atau swap token A ke C atau pun sebaliknya. Jika anda mahir dalam bidang coding solidity, anda bisa mengcustom smart contact tersebut.

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.6;;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "./Token.sol";

contract Swapper {
IERC20 public tokenA;
IERC20 public tokenB;
IERC20 public tokenC;

constructor() {
tokenA = new Token("tokenA", "TKNA", 1_000_000 * 1E18, msg.sender);

tokenB = new Token("tokenB", "TKNB", 1_000_000 * 1E18, msg.sender);

tokenC = new Token("tokenC", "TKNC", 1_000_000 * 1E18, address(this));
}

function swap(address token_, uint256 amount) external {
_swap(address(token_), amount);
}

function unswap(address token_, uint256 amount) external {
_unswap(address(token_), amount);
}

function swapAforC(uint256 amount) external {
_swap(address(tokenA), amount);
}

function swapBforC(uint256 amount) external {
_swap(address(tokenB), amount);
}

function unswapCforA(uint256 amount) external {
_unswap(address(tokenA), amount);
}

function unswapCforB(uint256 amount) external {
_unswap(address(tokenB), amount);
}

function _swap(address token_, uint256 amount) private {
require(
(IERC20(token_).allowance(msg.sender, address(this)) >= amount),
"ERC20: transfer amount exceeds allowance"
);
require(
tokenC.balanceOf(address(this)) >= amount,
"ERC20: transfer amount exceeds balance"
);
require(
IERC20(token_).transferFrom(msg.sender, address(this), amount),
"ERC20: Error"
);
require(tokenC.transfer(msg.sender, amount), "Error");
}


function _unswap(address token_, uint256 amount) private {
require(
(tokenC.allowance(msg.sender, address(this)) >= amount),
"ERC20: transfer amount exceeds allowance"
);
require(
IERC20(token_).balanceOf(address(this)) >= amount,
"ERC20: transfer amount exceeds balance"
);
require(
tokenC.transferFrom(msg.sender, address(this), amount),
"ERC20: Error"
);
require(IERC20(token_).transfer(msg.sender, amount), "Error");
}
}

 

Cara Membuat CRC20 Token Swap Coinex Smart Chain

1# Buka Remix IDE CSC – ide.coinex.net

Sama seperti remix ethereum ide, remix ide csc digunakan untuk deploy smart contract di blockchain coinex smart chain, fitur-fiturnya sama persis, karena itu adalah fork dari remix ethereum ide.

  • Buatlah file Token.sol dan paste smart contract crc20 di atas
  • Compile smart contract tersebut dengan compiler yang sesuai dengan smart contract, setting enable compression 200 dan pastikan compile smart contract berjalan dengan baik dan tanpa error, setelah sukses compile maka akan muncul tanda centang hijau di sebelah kiri.
  • Buatlah file Swap.sol dan paste smart contract token swap di atas , dan lakukan compile, sama seperti anda complie smart contract crc20

 

Berikut ini adalah informasi token crc20 yang akan kita buat, anda bisa mengganti nama token, jumlah supply dan symbol token

constructor() {
tokenA = new Token("tokenA", "TKNA", 1_000_000 * 1E18, msg.sender);

tokenB = new Token("tokenB", "TKNB", 1_000_000 * 1E18, msg.sender);

tokenC = new Token("tokenC", "TKNC", 1_000_000 * 1E18, address(this));
}

 

ini adalah fungsi untuk swap yang nanti bisa anda gunakan untuk swap token, fungsi ini bisa anda tautkan dengan aplikasi reactjs atau anda bisa interact contract di explorer

  • Swap token A ke token C
  • Swap token B ke token C
  • UnSwap token C ke token A
  • UnSwap dari token C ke token B
function swapAforC(uint256 amount) external {
_swap(address(tokenA), amount);
}

function swapBforC(uint256 amount) external {
_swap(address(tokenB), amount);
}

function unswapCforA(uint256 amount) external {
_unswap(address(tokenA), amount);
}

function unswapCforB(uint256 amount) external {
_unswap(address(tokenB), amount);
}

Untuk nilai atau perbandingan swap dari token tersebut adalah , 1 banding 1 , contoh 1 token A bernilai 1 token B/C dan juga sebaliknya.

Lanjut ke PART 2


Alif Fahmi

hi , I'm Alif, I'm a blockchain & cryptocurrency lover, I love writing & learning, my job is web developer & crypto trader