一单将资产的“手续费资金”全部刷出

来自技术流笔记
Admin讨论 | 贡献2018年2月12日 (一) 04:39的版本 (创建页面,内容为“在创建资产的时候,有一部分费用是做为“手续费资金”(用你创建的资产来代替BTS做为交易手续费)放在一个资金池里的。...”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

在创建资产的时候,有一部分费用是做为“手续费资金”(用你创建的资产来代替BTS做为交易手续费)放在一个资金池里的。由于各种原因可能想把手续费资金“取”出来。 现在来说说用命令行将其“取”(刷)出来的方法。主要是利用挂单以资产做为支付手续费,相应的系统会扣你资产手续费池里的BTS来做为手续费,当你取消挂单时,则将资产手续费池里BTS退还给你。相当于说用其它资产换成BTS,命令行可以自己定义很高的手续费,然后取消挂单,把BTS一次性刷出来。

1、准备工作: 安装命令行工具也就是重钱包,重钱包的教程可以看这里:http://btsabc.org/article-477-1.html

2、打开命令行工具cli_wallet,解锁,查看info是否同步,导入要刷手续费的账户的三个私钥 导入命令:import_key "btsabc" 1111111111111111111111111 (import_key "你的账户" 你账户对应的私钥 )要导三个 (参考贴:http://btsabc.org/article-360-1.html)

3、执行这两个命令: begin_builder_transaction

这个命令会返回一个数字,默认是 0 ,然后下一个命令:

add_operation_to_builder_transaction 0 [1,{"fee": {"amount": 34691234,"asset_id": "1.3.853"},"seller": "1.2.4950","amount_to_sell": {"amount": 10,"asset_id": "1.3.0"},"min_to_receive": {"amount": 10,"asset_id": "1.3.853"},"expiration": "2017-04-08T06:50:00","fill_or_kill": false,"extensions": []}]


讲解:{"fee": {"amount": 34691234,"asset_id": "1.3.853"} 1.3.853 表示你要刷的资产id ,(你的资产id 可以像这样查http://cryptofresh.com/a/IOU.BOO)"amount": 34691234:表示你出多少手续费数量 3469.1234个IOU.BOO资产(这是资产精度为4的,如果精度为1的话,就写34691,表示用3469.1个IOU.BOO资产。如果你资产和BTS汇率是1:1则直接写出你手续费资金池里BTS的数量,不是1:1你就要自己在算一下),"seller": "1.2.4950"这里的1.2.4950 要换成你自己的账户id (http://cryptofresh.com/u/web1024)。 "1.3.0"表示BTS 上面两个10表示卖出0.0010个BTS,以买入获得0.0010个IOU.BOO ,这个挂单用 3469.1234个IOU.BOO做为手续费

4、上面两个命令执行完就不要管了,然后执行下面这个命令广播交易,执行一次广播一次,也就是说执行一次下一个单 sign_builder_transaction 0 true

5、然后到GUI的委单里取消挂单,手续费就变成BTS退回你的账号了(你所做为手续费花费的资产则在你的赚得的手续费池子里,可以直接GUI里领出来)。也可以命令取消挂单,可以到cryptofresh.com看交易,点进去点raw transaction,最下面有个 operation_results 比如显示 "1.7.111839" ,这个是挂单id,用下面这个命令取消挂单

cancel_order 1.7.111839 true

切记 注意,你的挂单可别让它有可能成交了(可以找偏点的交易对),不然你花的手续费可就真的花了,退不回来了。可以先小量试下。

本方法是abit教我的,现将其整理放出来。感谢abit!