上个月的时候,学习了一下内部市场要价(Ask)与出价(Bid)的区别
之后除了偶尔需要换STEEM或者换SBD的时候进一下内部市场,就很少登陆了。
内部市场交易类型都显示为买入
今天尝试了一下在内部市场挂单,竟然发现无论是买入STEEM还是卖出STEEM,挂单成功后显示的交易类型都是Buy, 吓我一身冷汗,我还以为我挂反了呢!如果持续高价买入,低价卖出,估计乐子就大了。那样不叫交易,叫送温暖。
(内部市场当前部分Orders)
(内部市场我的两笔挂单)
通过上边两图可以看出,若我的第二笔挂的是买单,早就应该成交的。
从代码上看程序对买入卖出没有区别
看了一下钱包代码,可以看出程序上是不区分啥买入卖出的
也就是说,实际上有几种情况:
1) 买入STEEM, 付出SBD
2) 卖出STEEM, 换取SBD
3) 买入SBD, 付出STEEM
4) 卖出SBD, 换取STEEM
其中1和4,2和3本质上是相同的,只是不同的视角
无论哪种情况,都是填充以下结构体并广播出去
struct limit_order_create_operation : public base_operation
(代码大家去github自己搜索,不贴出来凑数了。)
然后在这里被处理:void limit_order_create_evaluator::do_apply( const limit_order_create_operation& o )
(代码大家去github自己搜索,不贴出来凑数了。)
可以通过指定标准来区别何为买入何为卖出
我测试时挂的卖出STEEM订单
我测试时挂的买入STEEM订单
尽管填充的是相同的结构体,但是买和卖的资产类型是对调的。
所以原则上,内部市场可以定出一个参考标准:
- min_to_receive处,资产类型是STEEM的定义成买单。
- min_to_receive处,资产类型是SBD的定义成卖单。
如此一来,在Open Orders显示成这样, 多直观啊
另外,顺便说一下,STEEM内部市场交易0手续费哦
你们各种交易牛,不来研究一下吗?
参考资料:
https://github.com/steemit/steem
This page is synchronized from the post: 内部市场交易类型显示的问题