All Projects → threadshare → exchange

threadshare / exchange

Licence: other
simple decentralized exchange using eos smart contract

Projects that are alternatives of or similar to exchange

loginapp
Web application for Kubernetes CLI configuration with OIDC
Stars: ✭ 74 (+208.33%)
Mutual labels:  dex
dex
docker executables - run applications without installing them or their dependencies
Stars: ✭ 31 (+29.17%)
Mutual labels:  dex
dalvikgate
Lightweight dex / odex / apk to jar converter
Stars: ✭ 32 (+33.33%)
Mutual labels:  dex
ping-eos
Implementing ping between EOS / React.js
Stars: ✭ 86 (+258.33%)
Mutual labels:  eos-contracts
binance-node-docker
Docker image for Binance full and light nodes
Stars: ✭ 24 (+0%)
Mutual labels:  dex
dex2jar
Tools to work with android .dex and java .class files
Stars: ✭ 102 (+325%)
Mutual labels:  dex
tokenlon-mmsk
Tokenlon Market Maker Service Kit
Stars: ✭ 35 (+45.83%)
Mutual labels:  dex
NinjaDroid
Ninja Reverse Engineering on Android APK packages
Stars: ✭ 224 (+833.33%)
Mutual labels:  dex
dex-parser
Rust parser for Android's dex format
Stars: ✭ 26 (+8.33%)
Mutual labels:  dex
BarterDEX
DEPRECATED/OUTDATED!!! Do not use!
Stars: ✭ 189 (+687.5%)
Mutual labels:  dex
airswap-protocols
AirSwap Contracts and Tools
Stars: ✭ 176 (+633.33%)
Mutual labels:  dex
rainbow
DeFi options comparator to detect market opportunities with CLI (Go) and web (Vue3).
Stars: ✭ 40 (+66.67%)
Mutual labels:  dex
osprey
Kubernetes OIDC CLI login
Stars: ✭ 49 (+104.17%)
Mutual labels:  dex
alcor-ui
Alcor Exchange | First self-listing onchain DEX for eosio tokens;
Stars: ✭ 103 (+329.17%)
Mutual labels:  dex
idex-sdk-js
IDEX v3 SDK built with TypeScript, supporting both web and Node environments.
Stars: ✭ 35 (+45.83%)
Mutual labels:  dex
dex-operator
A Kubernetes operator for Dex
Stars: ✭ 16 (-33.33%)
Mutual labels:  dex
FartRepair
fart修复脚本
Stars: ✭ 43 (+79.17%)
Mutual labels:  dex
jitana
A graph-based static-dynamic hybrid DEX code analysis tool
Stars: ✭ 35 (+45.83%)
Mutual labels:  dex
stablecoooin
EOS stable coin contract
Stars: ✭ 17 (-29.17%)
Mutual labels:  eos-contracts
defi
Tools for use in DeFi. Impermanent Loss calculations, staking and farming strategies, coingecko and pancakeswap API queries, liquidity pools and more
Stars: ✭ 464 (+1833.33%)
Mutual labels:  dex

EOS DEX

EOS Decentralized Exchanges

有bug,先不要使用!!

实现效果

目前可以实现EOS链上所有的EOS包括代币的交易买卖

WIP

  1. 3中不同的交易所在链上逻辑的盈利模式
  2. 在考虑历史订单的处理方式,可能会有两个分支,如果资金足够可以将历史订单存到链上,在这个里面可能会提供删除历史订单等相应的操作。另一个分支不会提供历史订单这个功能。
  3. 为了实现K线等常用功能,可能会再单开一个repo,通过热插件的方式来实现历史订单的存储
  4. 持续修复bug

BUG

  1. 买卖单的时候没有判断资金是否足够(修复待验证->develop)
  2. 撤单权限的验证(修复待验证->develop)

develop 分支功能(未验证)

  1. 添加了订单来源

功能

  1. 下买单(bid)
  2. 下卖单(ask)
  3. 撤单 (cancelorder)

功能实现原理

买卖单的实现的核心原理是 低买高卖

  1. 下买单的原理

    下买单主要分为以下这几步: . 首先会去查找链上的卖单,如果有匹配的就先把这部分订单的成交 . 然后没有完成的买单会把剩下的资金存入到交易所这个账户中,并将这部分的挂买单写入到链上 . 最后一步就将成交的订单买到的资金转入到买家的账户中

  2. 下卖单的原理

    下卖单主要分为以下几个步骤: . 同样回去查找链上未完成的买单,如果有价格匹配的会先成交这部分的订单 . 把没有完成的剩余资金存入到交易所中,并将这部分的卖单写入到链上 . 将完成的订单的资金提现给卖家账户中

  3. 撤单的实现

    撤单只能撤回没有完成的那部分订单,会在链上把这部分的数据删除,删除之前会将存入的资金退还到相应的账户中

部署

建议:可以在麒麟测试网上测试部署,贼好用

  1. 将合约部署到链上。(unlock wallet)
cleos set contract <contract account> <contract_path(dir)>

cleos --url http://12x.x.x:xxxx --wallet-url http://xxx.xx.xx:xxx set contract hello11zhang /Users/zhangzhichao/off-work/eos/cmake-build-debug/contracts/exchange
  1. 给合约代码授权转账操作(这一块是坑啊!!)
cleos --wallet-url http://127.0.0.1:6666 --url http://xx.xx.xx.xx:8888 set account permission hellozhang11 active '{"threshold": 1,"keys": [{"key": "EOS7AvcLQKShYhb2FHAybmjk9tqQAzJr9zaxyKjP9nwZ1RFr8ZoX8","weight": 1}],"accounts": [{"permission":{"actor":"hello11zhang","permission":"eosio.code"},"weight":1}]}' owner -p hellozhang11

这一部分的原理我会放在wiki中

用例

  1. 下买单的示例
cleos --wallet-url http://127.0.0.1:6666 --url http://xx.xx.xx.xx:8888 push action hello11zhang bid '["hellozhang11","5.0000 ZZC",10,"0.0000 ZZC","onedexchange"]' --permission hellozhang11@active

abi:

{
      "name": "bid",
      "base": "",
      "fields": [{
          "name": "maker", //下单账户
          "type": "name"
        },{
          "name": "quantity", //下单要买的币种和数量
          "type": "asset"
        },{
          "name": "price", //价格  现在是用的uint64
          "type": "uint64"
        },{
          "name": "bid_currency", //要买币种的类型,但是因为symbol_type的问题,现在是asset类型,这样的话如上示例就需要写成 0.0000 XXX
          "type": "asset"
        },{
          "name": "bid_contract", //要买币种的合约   EOS的话eosio.token
          "type": "name"
}

  1. 下卖单的示例
cleos --wallet-url http://127.0.0.1:6666 --url http://xx.xx.xx.xx:8888 push action hello11zhang ask '["onedexchange","1000.0000 ZZC",1,"onedexchange"]' --permission onedexchange@active

abi

{
      "name": "ask",
      "base": "",
      "fields": [{
          "name": "maker", //下单人
          "type": "name"
        },{
          "name": "quantity", //卖单的币种和类型
          "type": "asset"
        },{
          "name": "price", //价格
          "type": "uint64"
        },{
          "name": "ask_contract", //要卖币种的合约  eos是eosio.token
          "type": "name"
}
  1. 撤单的示例
cleos --wallet-url http://127.0.0.1:6666 --url http://13.230.87.138:8888 push action hello11zhang cancelorder '["ask",1]' --permission onedexchange

abi

{
      "name": "cancelorder",
      "base": "",
      "fields": [{
          "name": "scope", //撤单种类
          "type": "name"
        },{
          "name": "order_id",  //撤单的id
          "type": "uint64"
        }
      ]
}

查询买卖单的示例(在这里面可以获取到订单号)

cleos --wallet-url http://127.0.0.1:6666 --url http://xx.xx.xx.xx:8888 get table hello11zhang ask orders
cleos --wallet-url http://127.0.0.1:6666 --url http://xx.xx.xx.xx:8888 get table hello11zhang bid orders

贡献方式 (之后会移到wiki中)

  1. 帮忙翻译文档
  2. 贡献代码
  3. 提交bug修复

任何好的想法都欢迎,坐等来撩!

最近不知道怎么了,有的时候有通知,邮件会漏掉 不过最好还是走github,这样可溯源,还可能对其他人有帮助。

感谢

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].