caivega / ipfslib

Other
2 stars 1 forks source link

S2 - jt_sendTransaction:钱包代币余额超过total_supply上限后会显示不准确 #164

Closed zyd82 closed 3 years ago

zyd82 commented 3 years ago

测试版本:v0.5.3-dev-20201231-72973ab08899c404ac4998f2e79c8b5fac0e199e 用例编号:jt_sendTransaction_000520

1、钱包A(jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J)上发行9000000000000000000(9后面18个0)个代币AAT13,发行成功后,将这个代币全部发送到钱包B(js3MF5kQkTG6NBVj9HEiw9cFe4ckNvMYGg)。钱包A的余额显示为-0,钱包B的余额显示正确。(这里可以看下为什么显示-0?)

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "balance": {
            "value": "-0",
            "currency": "AAT13",
            "issuer": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J"
        }
    }
}

2、钱包A上继续增发9000000000000000000(9后面18个0)个代币AAT13,增发成功,将增发的代币全部发送到钱包B,此时钱包B的余额变为-446744073709551616。

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "balance": {
            "value": "-446744073709551616",
            "currency": "AAT13",
            "issuer": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J"
        }
    }
}

3、钱包A上继续增发9000000000000000000(9后面18个0)个代币AAT13,增发成功,将增发的代币全部发送到钱包B,此时钱包B的余额又变为8553255926290448384。

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "balance": {
            "value": "8553255926290448384",
            "currency": "AAT13",
            "issuer": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J"
        }
    }
}

这里是否需要考虑如下的限制: 1、一个钱包的代币余额不能超过9000000000000000000(9后面18个0)这个上限,如果某个发送代币交易会使某个钱包突破这个上限,则该交易应该失败。 2、或者考虑另外一个限制,某个代币的发行总量不能超过9000000000000000000(9后面18个0),即当钱包A发行了9000000000000000000个代币USD后,钱包A将所有USD转移到另外一个钱包后,钱包A也不能继续增发USD了,因为USD的总量已经到达上限了。

caivega commented 3 years ago
  1. done
  2. done
  3. 问题不存在了

all done, 下一个build验证

zyd82 commented 3 years ago

v0.5.3-dev-20210103-bcc6a93d716c6b4916bf52f55df8fb591ab54965版本上验证通过,目前代币的历史累计发行总量不能超过9000000000000000000(9后面18个0)。