OceanONE 接入指南
简介
OceanONE 是一个拥有中心化交易所体验的去中心化交易所
- 安全:交易所代码开源,交易完资产自动返回钱包。
- 透明:所有交易都上链,可查可追溯。
- 速度:实时挂单、买单和撤单,Mixin Network 内部充值提现实时到账。
- 深度:共享深度和流动性
- 币全:支持 Mixin Network 所有币种(12 条主链 45,074 种代币 )与 Mixin XIN、Bitcoin BTC 和 Omni USDT 交易对
- 低费:Maker 免费,Taker 千一手续费,挂单、买单和撤单免转账手续费
- 扩展:基于 Oceean ONE 的 API 可以很方便开自己的交易所
接入
1、注册成为 Mixin 的 Developer
下载 Mixin Messenger ,扫码登录 https://developers.mixin.one (点右上角)。
2、为你的交易所创建一个 Mixin App
点 Create New App 按提示创建就行,通过这个 App 创建的用户都是你的用户,后续可以监听你创建用户的充值、提现和转账信息,并且可以获得提现手续费、交易手续费返还。点 Click to generate a new session 生成 PIN、Session Id 、Pin Token、Private Key,这些都要记下来后面要用,服务器和浏览器都不会保存这些敏感信息(注意刷新再次点又会生成一个新的,会覆盖旧的)。
3、集成钱包
创建 Mixin Network 用户
注册 Mixin Network 用户来实现充值、提现和交易功能。参考文档 https://developers.mixin.one/api#app_apicreate_user 和 https://developers.mixin.one/api#documentationauthentication_token ,会用到前面所说的 Client Secret、Client Session。
设置 PIN 码
如果项目方有能力替用户安全的保管好 PIN 可以根据产品的需求实现为中心化钱包(ocean.one 现在就是用的这个方案,每次交易不需要输入 PIN ,体验较好);否则不要存用户的 PIN ,参考 Mixin Messenger 在客户端本地保存 PIN 也是一个不错的方案。
参考文档 https://developers.mixin.one/api#apicreate_pin 设置 Network 用户的 PIN 。
获取订单
- 方案一:注册 ocean 用户,参考 pool_key.go 的 setupOceanKey 方法代码。获取订单参考文档 https://github.com/MixinNetwork/ocean.one#list-orders
- 方案二:通过用户的转账记录计算用户订单。参考 Mixcoin 代码:https://github.com/over140/mixcoin/blob/master/web/src/account/snapshot.js
4、交易
限制:撮合引擎对挂单的价格、数量有一定的限制,比如 USDT 限价单价格最少 0.0001 USDT,最大挂单数量 500,000 等,不符合规则的挂单会被认为是恶意挂单,这样的挂单会被撮合引擎扣除手续费并退单,参考 example js 代码 https://github.com/MixinNetwork/ocean.one/blob/master/example/web/src/market/index.js 里的 validateOrder 方法。
退单:由于 OceanONE 的挂单、吃单和退单都是通过转账来完成的,退单也需要发起一笔转账。ocean.one 的办法是发行了一万亿的 OOO (Ocean ONE Object) erc-20 代币,每个新用户发 1000 个 OOO ,无法充值提现,每次退单消耗 0.00000001 个 OOO。也可以用别的代币比如 CNB/CANDY 等别的代币发起退单转账,撮合引擎没有限制。
5、统计
注意撮合引擎不负责数据统计,Ticket、Candles 这些需要前端根据 trades 自行统计。ocean.one 显示的 13 个交易对可以直接从 example.ocean.one 抓取数据,其他的交易对需要开发团队参考 example 的代码自行统计即可。
6、前端界面
可以直接使用 example 的代码或者自己开发界面,通过手机号、邮件注册后绑定 Network 用户。
为了应对短时间大量新用户注册,ocean.one 事先批量注册了若干 network 和 ocean 用户,新注册的用户自动分配一个关联账号,参考 pool_key.go 的 GeneratePoolKey 方法。
范例
- Fox.one —— 聚合数字资产交易和钱包 https://fox.one
- Mixcoin —— Mixin Messenger 交易小程序(7000101524),根据钱包显示交易对,开源代码:https://github.com/over140/exchange
FAQ
为什么 ocean.one 看不到其他交易对 ?
API支持所有交易对,但是网站只列出了部分。如何获取 asset id ?
https://developers.mixin.one/api#apiread_assets 可以返回你资产列表,如果没有你的资产,你可以充值一点进来就有了。新的代币如何在 OceanONE 交易?
OceanONE 没有上币这一说,更没有上币费,直接将代币充值到 Mixin Network 即可交易。比如充值 Mixin Messenger 钱包然后通过 Mixcoin 交易,或其他基于 OceanONE 撮合引擎前端交易,也可以利用现有开源代码自行开发前端交易界面。充值慢的问题
为了安全 Mixin Network 的确认数比一般的钱包和交易所高 2 倍以上,耐心等待即可。可以查看 Mixin 的区块链浏览器 https://mixin.one/snapshots 看看区块同步高度和状态。
独立的撮合引擎和钱包能确保资产安全隔离,通过转账的形式挂单、吃单和退单让整个过程都记录在链上,撮合引擎开源这些能确保用户能安全、公平、便捷的交易资产,快来加入 OceanONE 赚取手续费吧!