
如何在EtherEx上注册新市场add_market的6个参数与代币接入实战指南【免费下载链接】etherexEtherEx is an open source, fully transparent, next generation decentralized exchange built on Ethereum.项目地址: https://gitcode.com/gh_mirrors/et/etherexEtherEx 是构建在以太坊上的开源、全透明去中心化交易所DEX。本文带你用一次add_market调用完成注册新市场把任意符合标准接口的代币接入交易所涵盖 6 个参数的含义、取值技巧、接口自查与常见错误码速查新手也能照着走完整个流程。EtherEx 是什么市场又是什么EtherEx 把每一笔买入、卖出、充值、提现都直接写入以太坊链上合约用户自己持有资产交易所只是撮合规则。在这个体系里一个市场Market 一个代币与 ETH 之间的交易对。每个市场都有独立的唯一自增market_id如1 ETX/ETH代币合约地址、小数位数、价格精度、最小成交额、资产类别而创建市场的唯一入口就是合约中的add_market方法定义于 contracts/etherex.se。下面逐个拆解它的 6 个参数。add_market 的 6 个参数逐个拆解方法签名add_market(name, contract, decimals, precision, minimum, category)全部以 256 位整数编码传入官方参数说明见 README.md。#参数含义示例注意1name代币名称3~4 个大写字母BOB全局唯一重名会被拒绝2contract代币合约地址$ETX必须是已部署的合约地址3decimals代币小数位数5需与代币合约一致影响余额换算4precision价格精度分母10000即 0.0001 粒度值越小价格越精细5minimum单笔最小成交额wei100000000000000000000010 ETH官方建议至少 10 ETH太低会沦为灰尘交易6category资产类别见下表1仅用于前端分组展示四类资产类别怎么选值类别适用场景1Subcurrencies子货币你自己的 DApp 代币2Crypto-currencies加密货币通过网关兑换的 BTC 等3Real-world assets现实资产黄金、汽车等实物资产4Fiat currencies法币可通过网关兑换的法币代币参考真实配置仓库的部署脚本 contracts/EtherEx.yaml 就注册了三个市场——ETX5 位小数、精度 10^8、类别 1、CAK4 位小数、精度 1000、MID3 位小数、精度 10000、类别 3可以直接照抄改数。接入前自查代币合约必须符合标准接口这是新手最容易踩的坑add_market在写入市场前会主动调用你的代币合约做 5 项标准校验contracts/etherex.seallowance(owner, spender)→ 返回授权额度approve(spender, value)→ 返回 1balanceOf(address)→ 返回余额transfer(to, value)→ 返回 0零值测试转账成功transferFrom(from, to, value)→ 返回 0零值测试代扣成功✅ 只要你的代币合约实现了这 5 个标准方法如仓库示例 contracts/etx.se校验就会顺利通过任何一项失败注册都会以 40–44 的错误码终止。实战四步完成代币接入第一步拿到代码并理解部署流程git clone https://gitcode.com/gh_mirrors/et/etherex正式部署使用 PyEPM 执行contracts目录下的 EtherEx.yaml先部署交易所合约再逐个add_market注册代币最后 approve deposit 充值测试。第二步准备好 6 个参数以接入一个 4 位小数的 BOB 币为例完整用例见 tests/test_etherex.py参数取值nameBOBcontractBOB 代币合约地址decimals4precision10^8价格精度 0.00000001minimum10^181 ETHcategory1第三步发起 add_market 交易ans contract.add_market(BOB, bob_address, 4, 10**8, 10**18, 1) assert ans 1 # 1 SUCCESS交易上链成功前端界面走的也是同一条路registerMarket方法会把名称转成 ASCII 编码后调用add_marketfrontend/app/clients/EthereumClient.js并先用call预演、确认无错误码再sendTransaction上链——这是很值得借鉴的做法。第四步确认 market_id开始交易market_id contract.get_market_id(bob_address) # 或 get_market_id_by_name(BOB)拿到market_id后交易对即可在代币合约上approve交易所地址再调用交易所deposit充值代币用buy/sell挂单trade成交cancel撤单新市场的last_price初始为 1首笔成交后即更新前端盘口文章开头的截图随即出现该市场。常见错误码速查30–44错误码宏名原因对策30MARKET_NAME_INVALID名称为空/非法用 3~4 位大写字母31MARKET_NAME_ALREADY_EXISTS名称重复换一个名称32MARKET_CONTRACT_INVALID合约地址为 0填入真实代币合约地址33MARKET_CATEGORY_INVALID类别 0取 1~434MARKET_DECIMALS_INVALID小数位 0与代币合约保持一致35MARKET_PRECISION_INVALID精度 0如1000036MARKET_MINIMUM_INVALID最小成交额 0建议 ≥ 10 ETH40–44MARKET_NONSTANDARD_*代币合约未通过 5 项标准接口校验补全approve/transferFrom/balanceOf/transfer/allowance小结注册新市场只有一条路add_market(name, contract, decimals, precision, minimum, category)全部参数校验通过后市场才会上链且msg.sender自动成为该市场的 owner参数中最容易出错的是decimals要和代币合约一致和minimum太小会吸引灰尘单代币合约必须实现 5 个标准方法否则会被 40–44 错误码挡在门外注册成功后用get_market_id/get_market_id_by_name拿到market_id即可充值开交易 【免费下载链接】etherexEtherEx is an open source, fully transparent, next generation decentralized exchange built on Ethereum.项目地址: https://gitcode.com/gh_mirrors/et/etherex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考