按百分比计算转账手续费功能,开发完成

Started by abit, January 19, 2016, 04:32:00 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

bitcrab


BTSdac

所有的费用都是按core asset ---bts 收费, 那么如果转帐是资产的时候怎么收费?
[url="//github.com"]github.com[/url] :pureland
BTS2.0 API :[url="ws://139.196.37.179:8091"]ws://139.196.37.179:8091[/url]
BTS2.0 API 数据源ws:[url="//139.196.37.179:8091"]//139.196.37.179:8091[/url]

wuxuqiang

我是"比特股中文网"站长:吴序强  欢迎光临我们大家的网站:http://www.BtsABC.org   比特股网页钱包(帝国版):[url="https://bit.btsabc.org"]https://bit.btsabc.org[/url]

Musewhale

MUSE witness:mygoodfriend     vote for me

abit

写在前面

写这个功能是为了赚钱的,我不想白干。
如果要把这个功能集成到BTS链上,我开价300万BTS,或者1万美刀。
合理砍价可以接受。
希望得到更多筹资方面的建议,如果没有足够资金支持,申请Worker是最后的选择。

正文

按百分比算手续费的需求文档在这里: https://github.com/bitshares/bsips/issues/3
概要:
1. 增加全局参数3个,由理事会控制
  * 百分比
  * 每次手续费上限
  * 每次手续费下限
2. 每个资产可以选择百分比收费模式或者固定值收费模式,由资产发行人控制
3. 手续费下限归系统所有,高于下限的部分归推荐人,不再按20%/80%方式分配
4. 按资产的core_exchange_rate将每笔转账的价值转换为BTS,进而计算百分比、判断上下限,确定收费多少
   (相当于股市里按股票面值算过户费,而不是按股价来算。资产发行人可以根据需要调整core_exchange_rate)

代码在这里: https://github.com/abitmore/bitshares-2/tree/test-transfer-fee
有兴趣的可以自己编译测试。


使用示例

* 设置某资产转账手续费按百分比收取的命令:

update_asset MYASSET null {"max_supply": "1000000000000000","market_fee_percent": 0,"max_market_fee": "1000000000000000","issuer_permissions": 79,"flags": 0,"core_exchange_rate": {  "base": {    "amount": 100000,    "asset_id": "1.3.0"  },  "quote": {    "amount": 10000,    "asset_id": "1.3.1"  }},"whitelist_authorities": [],"blacklist_authorities": [],"whitelist_markets": [],"blacklist_markets": [],"description": "","extensions": [[1,{"transfer_fee_mode":"asset_transfer_fee_mode_percentage_simple"}]]  } true


* 设置某资产转账手续费按固定值收取的命令:

update_asset MYASSET null {"max_supply": "1000000000000000","market_fee_percent": 0,"max_market_fee": "1000000000000000","issuer_permissions": 79,"flags": 0,"core_exchange_rate": {  "base": {    "amount": 100000,    "asset_id": "1.3.0"  },  "quote": {    "amount": 10000,    "asset_id": "1.3.1"  }},"whitelist_authorities": [],"blacklist_authorities": [],"whitelist_markets": [],"blacklist_markets": [],"description": "","extensions": [[1,{"transfer_fee_mode":"asset_transfer_fee_mode_flat"}]]  } true


* 修改相关全局参数:

...
,[
          44,{
            "fee": 2000000,
            "price_per_kbyte": 1000000,
            "min_fee": 600000,
            "max_fee": 30000000,
            "percentage": 100
          }
        ]

...

解释:
* fee: 2000000 即20BTS,如果资产选择按固定值收费,每次转账收20BTS手续费
* price_per_kbyte: 这个不解释了
* min_fee: 600000 即6BTS,如果资产选择按百分比收费,这里可以设置一个下限,每次转账手续费最低6BTS
* max_fee: 3000000 即300BTS,如果资产选择按百分比收费,这里可以设置一个上限,每次转账手续费最高300BTS
* percentage: 100 就是1%,1000就是10%,如果资产选择按百分比收费,就是按这个百分比来算
BitShares committee member: abit
BitShares witness: in.abit