For the complete documentation index, see llms.txt. This page is also available as Markdown.

Factory

The Factory smart contract oversees the full functionality of token pair registration and transactions in KLAYswap. It is also a token contract for KLAYswap's KSP governance token that complies with the KIP7 standard, and a smart contract that implements all functions related to KSP mining.

Code

Github Link: (Will be updated after official launch)

Address

Events, Read-Only Functions, and State-Changing Functions

Events

Transfer

event Transfer(address indexed from, address indexed to, uint amount);
  • Event for the movement and burning of KSP tokens

  • A KIP7 Standard Event

Approval

event Approval(address indexed holder, address indexed spender, uint amount);
  • Event for KSP token approval

  • A KIP7 Standard Event

ChangeCreateFee

event ChangeCreateFee(uint _createFee);
  • An event to change the Pool Contract Creation Fee when adding a new liquidity pool pair

CreatePool

event CreatePool(address tokenA, uint amountA, address tokenB, uint amountB, uint fee, address exchange, uint exid);
  • Event to create new liquidity pool

  • parameters

    • tokenA : A token address in pair

    • amountA : A token amount in pool

    • tokenB : B token address in pair

    • amountB : B token amount in pool

    • fee : pool fee rate exchange :

    • exchange : contract address of this pool

    • exid : exchange id

ExchangePos

  • Positive exchange Event

  • parameters

    • tokenA : User input tokenA address

    • amountA : User input tokenA amount

    • tokenB : User get tokenB address

    • amountB : User get tokenB amount

ExchangeNeg

  • Positive exchange Event

  • parameters

    • tokenA : User input tokenA address

    • amountA : User input tokenA amount

    • tokenB : User get tokenB address

    • amountB : User get tokenB amount

Read-Only Functions

name

  • KlaySwap Protocol

symbol

  • KSP

decimals

  • 18

totalSupply

  • 126144000000000000000000000 = 126144000 KSP

  • There is only one case in which the total supply can be changed:

    • A decrease due to fee payments for adding new liquidity pairs

balanceOf

  • The amount of KSP held in each address

allowance

  • Status of approval to spender for each address

owner

  • Governance Contract Address

miningAmount

  • The total mining amount

  • This cannot be changed after a contract is deployed

halfLife

  • The block unit that proceeds with halving

  • This cannot be changed after a contract is deployed

minableBlock

  • The block number that starts mining

unfreezeBlock

  • The block number that makes KSP token transfers possible

teamRatio

  • The ratio of the mined amount given to the developement team for the first two years.

pools

  • List of liquidity pool pairings

  • Each item saves the smart contract address of the liquidity pool

poolExist

  • Returns if the contract for the given liquidiy pool pair exists

tokenToPool

  • When the addresses of tokenA and tokenB are inputted, this returns the contract address of the corresponding pairing

  • Returns the same contract address regardless of the order of the liquidity pool pairing tokens:

    tokenToPool[tokenA][tokenB] == tokenToPool[tokenB][tokenA]

createFee

  • The amount of KSP that must be paired to create a new liquidity pool pair

teamWallet

  • The address to which the development team can claim their reward

teamAward

  • The team reward amount that has already been claimed

mined

  • Returns the KSP amount mined so far

  • This amount includes the quantity already claimed and the quantity to be claimed

  • The teamAward quantity is exempted from this amount

estimatePos

  • Returns the possible quantity received for a POS transaction.

  • Parameters

    • inToken : token address for payment

    • inAmount : amount of tokens for payment

    • outToken : token address for receiving

estimateNeg

  • Function to return the amount of tokens that need to be paid for a NEG transaction.

  • Parameters

    • inToken : token address for payment

    • outToken : token address for receiving

    • outAmount : amount of tokens to receive

getPoolCount

  • Returns the current number of registered liquidity pools.

getPoolAddress

  • Returns the liquidity pair contract address of the pair's index.

State-Changing Functions

transfer

  • KIP7 Standard

  • Method to transfer KSP tokens

transferFrom

  • KIP7 Standard

  • Method to transfer tokens on behalf of the approved wallet

approve

  • KIP7 Standard

  • Method to approve a transfer as much as value to spender

burn

  • KIP7 Standard

  • Method to burn as much as value to spender

changePoolFee

  • Method to change transaction fees for each liquidity pair

  • only owner

changeMiningRate

  • Method to change the mining weight per liquidity pair

  • All pairs for mining must be changed at once

  • The rate of each pair is between 1 and 100

  • The sum of rates for all pairs is 100

  • only owner

  • Parameters

    • tokenA : list of addresses of the first token pair

    • tokenB : list of addresses of the second token pair

    • rate : list of mining rate for a pair

createKlayPool

  • A method called to add a liquidity pair with one side as KLAY

  • The wallet that calls this must have KSP greater than or equal to createFee

  • Token for when the KLAY-KIP7 pair to be registered has never been registered before

  • Parameters

    • token : KIP7 token address to add liquidity

    • amount : the amount of tokens (KIP7) to be provided for the initial liquidity

    • fee : Sets the initial fee value for liquidity pairs

      • A value between 30 and 100

      • Meaning: 30 -> 0.3%, 100 -> 1%

    • msg.value : KLAY quantity to initially supply liquidity

      • Delivers the transaction value without specifying otherwise

createKctPool

  • 양쪽 다 KIP7인 경우의 유동성 페어 추가를 위해 호출하는 method

  • createFee 이상의 KSP를 호출하는 지갑이 보유하고 있어야 함

  • 등록하려는 KIP7-KIP7 페어가 한번도 등록되지 않은 토큰 페어여야 함

  • parameter

    • tokenA : The address of the first token

    • amountA : The quantity of the first token that supplies the initial liquidity

    • tokenB : The address of the second token

    • amountB : The quantity of the second token that supplies the initial liquidity

    • fee : Sets the initial fee value for liquidity pairs

exchangeKlayPos

  • Method to call when token to be paid is KLAY and a POS transaction is desired

  • Parameters

    • token : Address of the KIP7 to be recieved

    • amount : the minimum amount tokens that you want to receive

      • If the amount of tokens to be received is lower than this amount, the Tx will fail.

    • path : list of token addresses to go through for routing transactions

      • If routing transaction is not needed, submit empty list

    • msg.value : KLAY quantity to be paid

exchangeKctPos

  • Method called when the token to be paid is KIP7 and a POS transaction is desired

  • Parameters

    • tokenA : address of token to be paid

    • amountA : the amount of tokens to be paid

    • tokenB : address of token to be received

      • When KLAY, it is 0x0

    • amountB : the minimum amount of tokens that you want to receive

      • If the amount of tokens to be received is lower than this amount, the Tx will fail.

    • path :list of token addresses to go through for routing transactions

      • If routing transaction is not needed, submit empty list

exchangeKlayNeg

  • Method for executing a NEG transaction by paying KLAY

  • Parameters

    • token : address of tokens to be received

    • amount : quantity of tokens to be received

    • path : list of token addresses to go through for routing transactions

      • If routing transaction is not needed, submit empty list

    • msg.value : maximum amount of payable KLAY

      • If more KLAY than the corresponding quantity needs to be paid, theTx will fail

      • the difference with KLAY used in the actual transaction is returned to msg.sender

exchangeKctNeg

  • Method for executing NEG transaction by paying KIP7

  • Parameters

    • tokenA : address of token to be paid

    • amountA : the maximum amount of tokenA that can be paid

      • If more tokenA than the corresponding amount is needed, the Tx will fail.

    • tokenB : address of the token to be received

      • For KLAY: 0x0

    • amountB : the amount of tokens to be received

    • path : list of token addresses to go through for routing transactions

      • If routing transaction is not needed, submit empty list

Last updated