caivega / ipfslib

Other
2 stars 1 forks source link

S1 - jt_sendTransaction:销毁代币total_supply为"-100"时显示成功但是余额不变 #157

Closed zyd82 closed 3 years ago

zyd82 commented 3 years ago

测试版本:v0.5.3-dev-20201223-c6da505c43c4adaf54df46aa26d97c96ed095d34 测试用例:jt_sendTransaction_000410

1、EET9是一个原先总量为9200000000000000000的可销毁的代币,用如下请求尝试销毁100个代币,返回交易成功的哈希

{
    "jsonrpc": "2.0",
    "method": "jt_sendTransaction",
    "params": [
        { 
            "type": "IssueCoin",
            "from": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
            "secret": "shhquPeZm7uQ6Rvjrqn6L2cR6H33u",
            "name": "",
            "symbol": "EET9",
            "decimals": "6",
            "total_supply": "-100",
            "local": false,
            "flags": 131072
        }
    ],
    "id": 1
}
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": [
        "FC61C36C13204264ECAD6E32E40E87D295019DD020C28189C5349314413597AA"
    ]
}

2、通过查询交易哈希可以看到销毁交易应该是成功的

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "TransactionType": "IssueCoin",
        "Flags": 2147614720,
        "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
        "Sequence": 653,
        "Fee": "10",
        "SigningPubKey": "034153EEBB406B3593AA7F31A4908E56ED820031DB87F4F2E868FB8E1686D5E1E3",
        "TxnSignature": "304402207F8685345E4A45941EFB56BDB4E6F41256AF29AB99EDE615B9039919B6662F890220475B88B4B76E1A62CD8EECA3F88AE66DA16320ED0FA00C71B047981AC10FA7DB",
        "hash": "FC61C36C13204264ECAD6E32E40E87D295019DD020C28189C5349314413597AA",
        "Name": "",
        "Decimals": 6,
        "TotalSupply": {
            "value": "-100",
            "currency": "EET9",
            "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
        },
        "Owner": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
        "date": 662114715,
        "inLedger": 52413,
        "ledger_index": 52413,
        "meta": {
            "AffectedNodes": [
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jhCVwTcg5aYWMMdfDmwqYxBr5NMA1PDfyg",
                            "Sequence": 0,
                            "Balance": {
                                "value": "14404110",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jhCVwTcg5aYWMMdfDmwqYxBr5NMA1PDfyg",
                            "Sequence": 0,
                            "Balance": {
                                "value": "14404100",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                },
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 653,
                            "Balance": {
                                "value": "99985900",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 652,
                            "Balance": {
                                "value": "99985910",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                },
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 653,
                            "Balance": {
                                "value": "9199999999999999000",
                                "currency": "EET9",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 652,
                            "Balance": {
                                "value": "9199999999999999000",
                                "currency": "EET9",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                },
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Flags": 131072,
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 3,
                            "Decimals": 6,
                            "TotalSupply": {
                                "value": "9199999999999999000",
                                "currency": "EET9",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "CurrencyRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Flags": 131072,
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 2,
                            "Decimals": 6,
                            "TotalSupply": {
                                "value": "9199999999999999000",
                                "currency": "EET9",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                }
            ],
            "TransactionIndex": 0,
            "TransactionResult": "tesSUCCESS"
        }
    }
}

3、但是jt_getBalance查询发现余额并没有变化

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "balance": {
            "value": "9199999999999999000",
            "currency": "EET9",
            "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
        }
    }
}

如果销毁量改为"-1000"就可以看到余额成功变化。目前试下来只要销毁量小于1000好像都有这个问题。

zyd82 commented 3 years ago

这个问题在v0.5.3-dev-20201228-2d55b2941a775a8c090b9039d57ef805dba3c516上也能重现。

zyd82 commented 3 years ago

另外在发送代币时,如果交易额小于1000,交易显示成功,但是余额也不发生变化,比如下面这个例子:

1、AAT7是一个decimals为6的全局代币,它的余额如下

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
        "Balance": {
            "currency": "AAT7",
            "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp",
            "value": "9199998999990799000"
        },
        "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
        "LedgerEntryType": "AccountRoot",
        "Sequence": 20
    }
}

2、发送如下交易请求,返回交易成功哈希

{
    "jsonrpc": "2.0",
    "method": "jt_sendTransaction",
    "params": [
        {
            "from": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
            "secret": "shhquPeZm7uQ6Rvjrqn6L2cR6H33u",
            "to": "js3MF5kQkTG6NBVj9HEiw9cFe4ckNvMYGg",
            "value": "0.0001/AAT7"
        }
    ],
    "id": 1
}
{
    "id": 1,
    "jsonrpc": "2.0",
    "result": [
        {
            "result": "1B4810EA411776B7F6CAAD8C8DB52D45C7228139D6576F5C9BA1540219219607"
        }
    ]
}

3、通过交易哈希可以查询到交易成功的信息,但是余额并没有变化

{
    "id": 1,
    "jsonrpc": "2.0",
    "result": {
        "TransactionType": "Payment",
        "Flags": 2147483648,
        "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
        "Sequence": 19,
        "Fee": "10",
        "SigningPubKey": "034153EEBB406B3593AA7F31A4908E56ED820031DB87F4F2E868FB8E1686D5E1E3",
        "TxnSignature": "3045022100874D5455E9C65D6E5883D8F2A36DE854FC8DAFD417A159466FADD6492C0C423702206996F02AEC52BC47B903B186F97617E769BC5FAA3992D992B354C3044F80414F",
        "hash": "1B4810EA411776B7F6CAAD8C8DB52D45C7228139D6576F5C9BA1540219219607",
        "Destination": "js3MF5kQkTG6NBVj9HEiw9cFe4ckNvMYGg",
        "Amount": {
            "value": "100",
            "currency": "AAT7",
            "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
        },
        "date": 662457205,
        "inLedger": 48434,
        "ledger_index": 48434,
        "meta": {
            "AffectedNodes": [
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jhCVwTcg5aYWMMdfDmwqYxBr5NMA1PDfyg",
                            "Sequence": 0,
                            "Balance": {
                                "value": "3400450",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jhCVwTcg5aYWMMdfDmwqYxBr5NMA1PDfyg",
                            "Sequence": 0,
                            "Balance": {
                                "value": "3400440",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                },
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 19,
                            "Balance": {
                                "value": "999810",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 18,
                            "Balance": {
                                "value": "999820",
                                "currency": "SWT",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                },
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 19,
                            "Balance": {
                                "value": "9199998999990799000",
                                "currency": "AAT7",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "jPdx7mG595P6CowtGYbxRkik9HdWUWtB2J",
                            "Sequence": 18,
                            "Balance": {
                                "value": "9199998999990799000",
                                "currency": "AAT7",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                },
                {
                    "ModifiedNode": {
                        "FinalFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "js3MF5kQkTG6NBVj9HEiw9cFe4ckNvMYGg",
                            "Sequence": 0,
                            "Balance": {
                                "value": "1000000001201",
                                "currency": "AAT7",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        },
                        "LedgerEntryType": "AccountRoot",
                        "PreviousFields": {
                            "Hash": "0000000000000000000000000000000000000000000000000000000000000000",
                            "Account": "js3MF5kQkTG6NBVj9HEiw9cFe4ckNvMYGg",
                            "Sequence": 0,
                            "Balance": {
                                "value": "1000000001101",
                                "currency": "AAT7",
                                "issuer": "jjjjjjjjjjjjjjjjjjjjjhoLvTp"
                            }
                        }
                    }
                }
            ],
            "TransactionIndex": 0,
            "TransactionResult": "tesSUCCESS"
        }
    }
}
caivega commented 3 years ago

这个bug是因为之前可以发行超过最大量(6位小数,9万亿)的问题导致的,现在这个问题已经修复,当前bug应该也相应修复,可以在下一个build验证下

zyd82 commented 3 years ago

v0.5.3-dev-20201231-72973ab08899c404ac4998f2e79c8b5fac0e199e版本验证通过。