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
  1. Developers
  2. Interacting with the Protocol
  3. Setting up Local Test Environment

Test env. commands

PreviousSetting up Local Test EnvironmentNextGetting Pangea Pool Info

Last updated 3 years ago

CtrlK
  • 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

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

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
│
9999999329713343500000000000
│
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤
│ dev │ 0x70997970C51812dc3A010C7d01b50e0d17dc79C8 │ 10000000000000000000000000000 │
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤
│ user100 │ 0x90F79bf6EB2c4f870365E785982E1f101E93b906 │ 9998999998657649250000000000 │
├───────────────┼────────────────────────────────────────────┼───────────────────────────────┤