Megaton Finance
中文(繁體)
中文(繁體)
  • 入门
    • Megaton Finance
    • TON網絡
    • 參與者
  • products
    • WTON網關
    • 交換(Swap)
    • 收益農場(Yield Farm)
  • TOKENOMICS
    • MEGA
      • 代币经济学(至2023年 8月 31日 03:00 UTC)
      • 代币经济学(当前)
      • 分配(至2023年 8月 31日 03:00 UTC)
      • 分配(当前)
  • Guides
    • 創建錢包
    • 如何存入資產
    • 如何通過WTON網關將TON轉換為WTON
    • 如何在Orbit Bridge上獲取跨鏈資產
  • DEVELOPERS
    • 合約
      • MEGA
      • 路由器(Router)
      • 交換(Exchange)
  • MORE
    • 風險與安全
    • 合约与审计
    • 支持團隊
  • OFFICIAL LINKS
    • Megaton Finance
    • WTON Gateway
    • Orbit Bridge
    • Discord
Powered by GitBook
On this page
  • Code
  • Read-Only Functions
  • Exchange Minter
  • Exchange Wallet
  1. DEVELOPERS
  2. 合約

交換(Exchange)

這是一個擴展Jetton的智能合約,它是用每個流動性對創建的。路由器在請求創建新池時部署它。儘管路由器實際上存儲了一對中的兩個代幣並通過它進行交換,但必須調用交換合約才能提供或獲取流動性。

Code

Github鏈接:(待更新)

Read-Only Functions

Exchange Minter

get_jetton_data

(int, int, slice, cell, cell) get_jetton_data() method_id
  • int totalSupply

  • int mintable

  • slice admin_address

  • cell exchange_content

  • cell exchange_wallet_code

get_lp_swap_data

(int, int, slice, slice, slice, int, int, slice, slice, int, int) get_lp_swap_data() method_id
  • int swap_fee

  • int min_amount

  • slice router_address

  • slice jettonA_address

  • slice jettonA_wallet_address

  • int jettonA_balance

  • int jettonA_pending_balance

  • slice jettonB_address

  • slice jettonB_wallet_address

  • int jettonB_balance

  • int jettonB_pending_balance

get_lp_mining_data

(int, int, int, int, int, int, cell) get_lp_mining_data() method_id
  • int mining_amount

  • int datetime_amount

  • int minable_time

  • int half_life

  • int last_index

  • int last_mined

  • cell mining_rate_cell

get_lp_user_info_dict

(cell) get_lp_user_info_dict() method_id
  • cell ( dict ) total_user_info_dict

get_lp_user_info

(int, int, int, int) get_lp_user_info(slice user_address) method_id
  • int find

  • int balance

  • int user_reward_sum

  • int last_user_index

get_wallet_address

slice get_wallet_address(slice owner_address) method_id
  • slice user_wallet_address

How to build transaction

  • Add Liquidity

// 1. add liquidity tokenA
await sendInternalMessageWithWallet({
    walletContract,
    secretKey,
    to: userJettonAWalletAddress,
    value: toNano(0.7),
    body: beginCell()
        .storeUint(0xf8a7ea5, 32)
        .storeUint(query_id, 64)
        .storeCoins(jettonAAmount)
        .storeAddress(lpAddress)
        .storeAddress(responseAddress)
        .storeDict(beginCell().endCell())
        .storeCoins(toNano(0.5))
        .storeDict(beginCell()
            .storeCoins(minAmountForJettonA)
            .storeCoins(minAmountForJettonB)
        .endCell())
    .endCell()
});

// 2. add liquidity tokenB
await sendInternalMessageWithWallet({
    walletContract,
    secretKey,
    to: userJettonBWalletAddress,
    value: toNano(0.7),
    body: beginCell()
        .storeUint(0xf8a7ea5, 32)
        .storeUint(query_id, 64)
        .storeCoins(jettonBAmount)
        .storeAddress(lpAddress)
        .storeAddress(responseAddress)
        .storeDict(beginCell().endCell())
        .storeCoins(toNano(0.5))
        .storeDict(beginCell()
            .storeCoins(minAmountForJettonA)
            .storeCoins(minAmountForJettonB)
        .endCell())
    .endCell()
});
  • Remove Liquidity

await sendInternalMessageWithWallet({
    walletContract,
    secretKey,
    to: lpAddress,
    value: toNano(0.35),
    body: beginCell()
        .storeUint(0x595f07bc, 32)
        .storeUint(query_id, 64)
        .storeCoins(lpAmount)
        .storeDict(beginCell()
            .storeCoins(minAmountForJettonA)
            .storeCoins(minAmountForJettonB)
        .endCell())
    .endCell()
});
  • Claim

await sendInternalMessageWithWallet({
    walletContract,
    secretKey,
    to: lpAddress,
    value: toNano(0.15),
    body: beginCell()
        .storeUint(0x6b14cfe1, 32)
        .storeUint(query_id, 64)
    .endCell()
});

Exchange Wallet

get_wallet_data

(int, slice, slice, cell) get_wallet_data() method_id
  • int balance

  • slice owner_address

  • slice lp_minter_address

  • cell lp_wallet_code

get_wallet_extra_data

(int, int, slice, slice) get_wallet_extra_data() method_id
  • int jettonA_pending_balance

  • int jettonB_pending_balance

  • slice jettonA_address

  • slice jettonB_address

Previous路由器(Router)Next風險與安全

Last updated 1 year ago