Pangea Swap
English
English
  • Introduction
  • Protocol Overview
  • Disclaimer
    • Risk & Security
    • Terms of Use
  • Updates
  • Audit
  • concentrated liquidity
    • Weakness of V2 DEXs: Low Liquidity utilization rate
    • Solution by V3 DEXs: Concentrated Liquidity
    • Concentrated Liquidity FAQ
  • Connectivity
    • Customizable Pool
  • Governance
    • STONE
      • STONE Distribution Plan
      • Tokenomics (Before)
      • Tokenomics (After)
      • Growth Fund History
    • Contribution Point NFT
  • Guide
    • SWAP
    • Add Liquidity
      • Add liquidity (Preset)
      • Add liquidity (Custom)
    • STONE Staking
    • Revenue Sharing
    • FAQ
  • Growth Partnership
    • Swapscanner
    • ISKRA
  • event
    • Promotion
  • Developers
    • Concept Overview
      • Problem : Lazy Liquidity
      • Liquidity Concentration
      • Position & Risk
      • Price Tick
      • Position NFT
      • Fees
      • Flash Loan
    • Contracts
      • Core Contracts
        • MasterDeployer
        • ConcentratedLiquidityPoolFactory
        • ConcentratedLiquidityPool
        • ConcentratedLiquidityPoolManager
        • PoolRouter
        • PoolLogger
        • AirdropDistributor
      • Contribution Point NFT
      • Price Oracle
    • Interacting with the Protocol
      • Setting up Local Test Environment
        • Test env. commands
      • Getting Pangea Pool Info
      • Creating Pangea Pool
      • Mint Position (add liquidity)
      • Burn Position (remove liquidity)
      • Claim Fee
      • Swap
  • Community
    • Website
    • Discord
    • Telegram
    • Medium
    • Twitter
    • Opensea - Position NFT
    • Opensea - CP NFT
    • GitHub
    • Testnet
    • E-mail
Powered by GitBook
On this page
  • tasks
  • accounts
  • addresses
  • dashboard:tokens
  • dashboard:pools
  • dashboard:positions
  • pool:create
  • position:mint
  • position:addLiquidity
  • position:burn
  • position:collect
  • swap:exactInputSingle
  • swap:exactOutputSingle
  • erc20:balanceOf
  • erc20:faucet
  1. Developers
  2. Interacting with the Protocol
  3. Setting up Local Test Environment

Test env. commands

Using the Hardhat framework, interacting with a contract deployed in the local environment is implemented as a CLI. All commands can be called with yarn hardhat <command>. The implementation is under the tasks/ folder, so please refer to the task.

When testing on the local environment, first run yarn hardhat:deploy to open the local environment.

// example: get pool info
$ yarn hardhat pool:info 0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817


┌────────────────────────────────────────────┬────────┬────────┬─────────┬────────────┬───────────────────────────┬───────────────────────────┬────────────────────┐
│ pool Address                               │ token0 │ token1 │ swapFee │ priceRatio │ reserve0                  │ reserve1                  │ totalValueLock ($) │
├────────────────────────────────────────────┼────────┼────────┼─────────┼────────────┼───────────────────────────┼───────────────────────────┼────────────────────┤
│ 0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 │ KDAI   │ WKLAY  │ 0.002   │ 0.92336    │ 1052510019943583677983227 │ 1000189271702431420936569 │ 2142716            │
└────────────────────────────────────────────┴────────┴────────┴─────────┴────────────┴───────────────────────────┴───────────────────────────┴────────────────────┘

tasks

accounts

Returns accounts list of local test environment

yarn hardhat accounts

┌───────────────┬────────────────────────────────────────────┬───────────────────────────────┐
│ name          │ address                                    │ balance                       │
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤
│ deployer      │ 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 │ 9999999329713343500000000000  │
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤
│ dev           │ 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 │ 10000000000000000000000000000 │
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤
│ user100       │ 0x90F79bf6EB2c4f870365E785982E1f101E93b906 │ 9998999998657649250000000000  │
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤

addresses

Returns Pangea contracts list of local test environment

yarn hardhat addresses

{
  AirdropDistributor: '0x0165878A594ca255338adfa4d48449f69242Eb8F',
  ConcentratedLiquidityPoolFactory: '0x959922bE3CAee4b8Cd9a407cc3ac1C251C2007B1',
  ConcentratedLiquidityPoolHelper: '0x68B1D87F95878fE05B998F19b66F4baba5De1aed',
  ConcentratedLiquidityPoolManager: '0x59b670e9fA9D0A427751Af201D676719a970857b',
  ...
}

dashboard:tokens

Returns token info in local test environment

  • caution : token prices are set randomly

yarn hardhat dashboard:tokens

┌─────────────────────────────────┬────────┬──────────┬──────────┬────────────────────────────────────────────┐
│ name                            │ symbol │ decimals │ price($) │ address                                    │
├─────────────────────────────────┼────────┼──────────┼──────────┼────────────────────────────────────────────┤
│ Wrapped KLAY v10                │ WKLAY  │ 18       │ 1.09     │ 0xdB83e471d49c12789092593fE9a229744e73eb41 │
├─────────────────────────────────┼────────┼──────────┼──────────┼────────────────────────────────────────────┤
│ Klaytn DAI                      │ KDAI   │ 18       │ 1        │ 0x10cc453eA2d3d8C89Efb9EDf1Df7c237CC9b25Da │
├─────────────────────────────────┼────────┼──────────┼──────────┼────────────────────────────────────────────┤
│ Orbit Bridge Klaytn Ethereum    │ KETH   │ 18       │ 2709.05  │ 0x7B4A0dCCdcae601C61e66C64CfA01Ff951e465e5 │
├─────────────────────────────────┼────────┼──────────┼──────────┼────────────────────────────────────────────┤

dashboard:pools

Returns every pools' info in local test environment

yarn hardhat dashboard:pools

┌────────────────────────────────────────────┬────────┬────────┬─────────┬─────────────┬────────────┬──────────┬──────────┬────────────────────┐
│ pool Address                               │ token0 │ token1 │ swapFee │ tickSpacing │ priceRatio │ reserve0 │ reserve1 │ totalValueLock ($) │
├────────────────────────────────────────────┼────────┼────────┼─────────┼─────────────┼────────────┼──────────┼──────────┼────────────────────┤
│ 0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 │ KDAI   │ WKLAY  │ 0.002   │ 40          │ 0.92336    │ 1052510  │ 1000189  │ 2142716            │
├────────────────────────────────────────────┼────────┼────────┼─────────┼─────────────┼────────────┼──────────┼──────────┼────────────────────┤
│ 0x7B63D1288D0A486FCf7180773C010DDf38912937 │ KETH   │ WKLAY  │ 0.002   │ 40          │ 2380.95238 │ 509      │ 1000099  │ 2470287            │
├────────────────────────────────────────────┼────────┼────────┼─────────┼─────────────┼────────────┼──────────┼──────────┼────────────────────┤
│ 0x583579E9fe3b5aDE4dED3113bD8a20358BdEe551 │ KSP    │ WKLAY  │ 0.002   │ 40          │ 4.99999    │ 193848   │ 1000153  │ 2144722            │
├────────────────────────────────────────────┼────────┼────────┼─────────┼─────────────┼────────────┼──────────┼──────────┼────────────────────┤

dashboard:positions

Returns every positions' info in local test environment

yarn hardhat dashboard:positions

┌───────┬─────────┬────────────────────────────────────────────┬────────┬────────┬────────────┬────────────┬───────────────────────────┬──────────────────┬──────────────────┐
│ nftId │ owner   │ pool                                       │ token0 │ token1 │ lower      │ upper      │ liquidity                 │ fee0             │ fee1             │
├───────┼─────────┼────────────────────────────────────────────┼────────┼────────┼────────────┼────────────┼───────────────────────────┼──────────────────┼──────────────────┤
│ 1     │ user100 │ 0xF518f82F7E2739D0fc3b60ee4d95965F223856FB │ KUSDT  │ KETH   │ 0.00019    │ 0.00076    │ 346693996190808338        │ 577              │ 577665416539282  │
├───────┼─────────┼────────────────────────────────────────────┼────────┼────────┼────────────┼────────────┼───────────────────────────┼──────────────────┼──────────────────┤
│ 2     │ user101 │ 0xF518f82F7E2739D0fc3b60ee4d95965F223856FB │ KUSDT  │ KETH   │ 0.00007    │ 0.00153    │ 184542166574024376        │ 307              │ 307486223281393  │
├───────┼─────────┼────────────────────────────────────────────┼────────┼────────┼────────────┼────────────┼───────────────────────────┼──────────────────┼──────────────────┤
│ 3     │ user103 │ 0xF518f82F7E2739D0fc3b60ee4d95965F223856FB │ KUSDT  │ KETH   │ 0.00034    │ 0.00042    │ 1998786737516867651       │ 3330             │ 3330400831820018 │
├───────┼─────────┼────────────────────────────────────────────┼────────┼────────┼────────────┼────────────┼───────────────────────────┼──────────────────┼──────────────────┤
│ 4     │ user104 │ 0xF518f82F7E2739D0fc3b60ee4d95965F223856FB │ KUSDT  │ KETH   │ 0.00019    │ 0.00038    │ 346693996190808338        │ 577              │ 577665416539282  │
├───────┼─────────┼────────────────────────────────────────────┼────────┼────────┼────────────┼────────────┼───────────────────────────┼──────────────────┼──────────────────┤

pool:create

Creates a new pool

yarn hardhat pool:create <owner> <token0> <token1> <swapFee> <amount0> <amount1> <tickSpacing>

# example (user101 creates  0.2% swap fee rate KSP /KDAI Pool (Initial Price => KSP : KDAI = 10 : 20)
yarn hardhat pool:create user101 KSP KDAI 2000 10 20

position:mint

Mints a new position

yarn hardhat position:mint 
<owner> <pool> <lowerRate> <upperRate> <amount0Desired> <amount1Desired>

# user100 deposits [40 KDAI + 40 WKLAY] in KDAI/WKLAY Pool on 50% ~15000% price range
yarn hardhat position:mint 
user100 0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 5000 15000 
40000000000000000000 40000000000000000000 

position:addLiquidity

Adds liquidity to existing position

yarn hardhat position:addLiquidity <owner> <tokenId> <amount0Desired> <amount1Desired>

# user100 deposits additional [40 KDAI / 40 KLAY ] to NFT(position) #43
yarn hardhat position:addLiquidity user100 43 4000000000000000000 4000000000000000000

position:burn

Burns existing position

(If the amount is larger than existing liquidity, NFT will be burn after claiming liquidity+fees)

yarn hardhat position:burn <owner> <tokenId> <amount> <recipient>

# user100 withdraws 100,000,000,000 liquidity from NFT #44 and sends to user100
yarn hardhat position:burn user100 44 100000000000 user100 

position:collect

Claims fee from position

yarn hardhat position:collect <owner> <tokenId> <recipient>

# user100 claims fee from NFT #44 and sends to user100
yarn hardhat position:collect user100 44 user100

swap:exactInputSingle

Swaps token in pool (Based on Input amount)

yarn hardhat swap:exactInputSingle <owner> <tokenIn> <amountIn> <pool> <to>

# user100 swaps KDAI ==> KLAY in pool 0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 
yarn hardhat swap:exactInputSingle user100 KDAI 1000000000000  0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 user100

swap:exactOutputSingle

Swaps token in pool (Based on Output amount)

yarn hardhat swap:exactOutputSingle <owner> <tokenIn> <amountOut> <pool> <to>

# user100 swaps KDAI ==> KLAY in pool 0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 
yarn hardhat swap:exactOutputSingle user100 KDAI 1000000000000  0xe7de38237a4ED33fbf30f5aaD683F99Bc6c15817 user100

erc20:balanceOf

Returns balance of user

yarn hardhat erc20:balanceOf <owner>

# balance of user100
yarn hardhat erc20:balanceOf user100
┌──────────────────────────────┬────────┬─────────────────────────┬─────────────────────┬──────┬────────────────────────┬──────────────┬───────┬────────────────────────┐
│ klay                         │ WKLAY  │ KDAI                    │ KETH                │ KORC │ KSP                    │ KUSDT        │ KWBTC │ WEMIX                  │
├──────────────────────────────┼────────┼─────────────────────────┼─────────────────────┼──────┼────────────────────────┼──────────────┼───────┼────────────────────────┤
│ 9998999998725332500000000000 │ 330816 │ 20449002984303316073525 │ 7887949398267321649 │ 0    │ 3817526685307753417416 │ 532894420041 │ 0     │ 4806473531128610147717 │
└──────────────────────────────┴────────┴─────────────────────────┴─────────────────────┴──────┴────────────────────────┴──────────────┴───────┴────────────────────────┘

erc20:faucet

Gets token for test

yarn hardhat erc20:faucet <token> <to> <amount>

# Provide user100 KUSDT 1,000,000
yarn hardhat erc20:faucet KUSDT user100 1000000
PreviousSetting up Local Test EnvironmentNextGetting Pangea Pool Info

Last updated 2 years ago