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