NAV
Im token logo imToken API Documentation DApp-SDK Tokenlon-Onboarding Tokenlon-MMSK Tokenlon-MMProxy
  • 介绍
  • 接口
  • dapp
  • 安全性
  • 中文

    介绍

    Market Maker Proxy 是做市商的链上代币储备库,是一个使用 Solidity 编写的以太坊智能合约(简称 MMProxy)。加入 Tokenlon 生态后,做市商需要将做市代币存入 MMProxy 合约。做市商具有 MMP 合约的所有权,代币充值、提现和授权都由做市商自行控制。

    接口

    权限

    合约里有两种权限,分别是 owner 和 operator。

    owner 具备合约权限接口的操作权限,operator 具备合约功能接口的操作权限。

    transferOwnership

    移交 owner 权限。

    owner 是合约的最高权限,具备合约的完全管理能力。

    API

    transferOwnership(address newOwner)
    

    参数

    注意

    setOperator

    设置 operator。

    operator 具备合约功能的操作权限,只有 owner 能指定 operator,operator 可以对合约进行提现和授权等功能。

    API

    setOperator(address newOperator)
    

    参数

    注意

    功能

    setSigner

    设置 signer。

    signer 是 MMSK 中的订单签名钱包地址,做市商在接入 Tokenlon 时,需要将 MMSK 的钱包地址设置到 MMProxy 合约中。

    API

    setSigner(address signer)
    

    参数

    注意

    setAllowance

    将合约的指定代币转移权限授权给 spender。

    做市商必须将支持的代币授权给 0x ERC20Proxy 合约(0x 部署地址)。

    此时,0x ERC20Proxy 就是 spender。

    0x ERC20Proxy mainnet 地址: 0x95e6f48254609a6ee006f7d493c8e5fb97094cef

    0x ERC20Proxy kovan 地址: 0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e

    注意:请以0x 部署地址为准

    API

    setAllowance(address[] memory token_addrs, address spender)
    

    参数

    注意

    closeAllowance

    关闭合约的指定代币转移权限。

    做市商不再支持的代币,可自行关闭授权。

    API

    closeAllowance(address[] memory token_addrs, address spender)
    

    参数

    注意

    withdraw

    提现合约中指定代币。

    API

    withdraw(address token, address to, uint256 amount)
    

    参数

    注意

    dapp

    注意:dapp 处于 Beta 阶段。使用需自行承担风险。

    为了方便做市商使用 MMProxy 合约,我们提供相应的 dapp 工具操作合约。

    项目链接: github(NOT READY)

    dapp 链接:https://consenlabs.github.io/contract-admin/mmp.html?addr={mmProxyContractAddress}

    {mmProxyContractAddress} 为做市商代理合约地址。

    冷(离线)钱包设置:imToken 2.0 如何设置观察钱包(冷钱包)?

    安全性

    为保证合约操作安全,建议使用 3 个独立的钱包管理合约:

    1. owner 钱包,MMProxy 的 owner 权限,用于设置合约的 operator 权限
    2. operator 钱包,用于 MMProxy 的功能设置和提现
    3. signer 钱包,用于 MMSK 中对订单进行签名

    钱包要求

    操作流程

    1. 准备一个新的 operator 钱包,存储一定的 ETH 用于操作合约
    2. 使用 owner 钱包设置 operator
    3. 使用 operator 钱包对合约进行配置或提现
    4. 使用 owner 钱包设置 operator 为 0x0000..(空地址)