结论
当手续费来源账户和流向账户是同一个账户的时候 账户余额为
账户初始金额+出块高度x出块奖励-转账金额
上面的公式并没有将手续费计算在内
咱们再来一个测试来印象下
刚才不是手续费来源账户和目的账户是同一个账户嘛
那咱们测试下让手续费来源账户和目的账户是不一个账户的情况
- 先创建一个普通账户
./xchain-cli account newkeys --output data/bob a1E2v3RHtLHhE7N4yRgcrsfsDdMsjQFm9
- 通过节点账户给这个普通账户转点钱
来源账户是这个普通账户a1E2v3RHtLHhE7N4yRgcrsfsDdMsjQFm9
初始金额是刚才转给它的1000000000这么多钱
目的账户 1、手续费1000元给到了 $ 这个出块节点地址
2、剩余的999999000钱又回到了来源地址中a1E2v3RHtLHhE7N4yRgcrsfsDdMsjQFm9
- 看下普通账户余额和节点账户余额(确认下手续费有没有转给节点账户)
./xchain-cli account balance a1E2v3RHtLHhE7N4yRgcrsfsDdMsjQFm9 999999000
余额是999999000说明手续费已经扣掉了
通过区块id查询区块详情已确认出块奖励去了哪个节点账户 (当然这里咱只用的一个节点进行测试的)
余额是这么个值 99999999999913801000
咱计算下这个值是否符合预期
初始金额是 100000000000000000000
创建了一个合约账户手续费1000(来源账户和目的账户是一个地址 不计算在内)
给合约地址转账100000
又转账了一笔 100000 手续费100(来源账户和目的账户是一个地址 不计算在内)
创建了一个普通账户
给普通账户转账了 1000000000
普通账户创建了一个合约账户 手续费1000给到了节点账户
100000000000000000000-100000-100000+1000-1000000000=99999999998999801000
这个值是不包含出块奖励在内的值
当前的出块高度1101
99999999998999801000+1101000000=100000000000100801000
金额正好可以匹配上
通过合约账户部署合约
期望:手续费来源于合约账户,手续费给到节点账户(出块节点)
先给合约账户XC1111111111111111@xuper转账 1000000000
./xchain-cli wasm deploy --account XC1111111111111111@xuper --cname hello_last_17 --fee 5574291 --runtime go /Users/mengfanxiao/Documents/project/company/XinPools_INFO/document/business/baidu/20200714-最新版本/xuperchain/core/contractsdk/go/example/eleccert_final/eleccert_final.wasm -a '{"creator":"mengfanxiao"}' contract response: The gas you cousume is: 5206429 The fee you pay is: 5574291 Tx id: f7392917ed5691ed40b3756b0b562e5dc54994052cafd7894fc21e17524b4231
来源账户是合约账户 XC1111111111111111@xuper
初始金额是 1000000000
最终金额 994425709
手续费是 5574291 转给了出块节点账户
查询节点账户余额为99999999999322375291
分析下这个金额是否正确
1、刚才计算的金额是 100000000000100801000
2、给合约账户XC1111111111111111@xuper转了1000000000
3、收到手续费 5574291
100000000000100801000-1000000000+5574291=99999999999106375291
100000000000100801000这个所对应的区块高度是 1101
目前高度是 1356
目前账户金额 99999999999361375291
99999999999106375291+(1356-1101)x1000000=99999999999361375291
金额完美匹配哦
通过调用合约交易
期望:账户来源是节点账户,手续费专项节点账户,即目前的余额的增加只包含出块奖励 没有手续费 ,因为手续费抵消了嘛
目前最新高度1485
最新余额 99999999999490375291
刚才计算的金额 99999999999361375291 对应的高度1356
99999999999361375291+(1485-1356)x1000000=99999999999490375291
正好对应
感谢
感谢百度链超哥的技术支持🙏