Author Topic: 按百分比计算转账手续费功能,开发完成  (Read 15913 times)

0 Members and 1 Guest are viewing this topic.

Offline bitcrab

  • Committee member
  • Hero Member
  • *
  • Posts: 1928
    • View Profile
  • BitShares: bitcrab
  • GitHub: bitcrab
Email:bitcrab@qq.com

Offline BTSdac

  • Hero Member
  • *****
  • Posts: 1219
    • View Profile
  • BitShares: K1
所有的费用都是按core asset ---bts 收费, 那么如果转帐是资产的时候怎么收费?
« Last Edit: January 20, 2016, 01:38:52 am by BTSdac »
github.com :pureland
BTS2.0 API :ws://139.196.37.179:8091
BTS2.0 API 数据源ws://139.196.37.179:8091

Offline wuxuqiang

  • Sr. Member
  • ****
  • Posts: 377
    • View Profile
    • 比特股中文网
  • BitShares: web1024
我是"比特股中文网"站长:吴序强  欢迎光临我们大家的网站:http://www.BtsABC.org   比特股网页钱包(帝国版):https://bit.btsabc.org

Offline Musewhale

  • Hero Member
  • *****
  • Posts: 2881
  • 丑,实在是太丑了 !
    • View Profile
MUSE witness:mygoodfriend     vote for me

Offline abit

  • Committee member
  • Hero Member
  • *
  • Posts: 4664
    • View Profile
    • Abit's Hive Blog
  • BitShares: abit
  • GitHub: abitmore
写在前面

写这个功能是为了赚钱的,我不想白干。
如果要把这个功能集成到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
有兴趣的可以自己编译测试。


使用示例

* 设置某资产转账手续费按百分比收取的命令:
Code: [Select]
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

* 设置某资产转账手续费按固定值收取的命令:
Code: [Select]
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

* 修改相关全局参数:
Code: [Select]
...
,[
          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