native: fix getvalidators to match C# implementation
ValidatorsCount is not initialized at block 0 with C# node (the first voter initializes it) and until that initialization happens the standby validators list is being returned as is without sorting. Fixes state mismatch for the key ffffffff0e00000000000000000000000000000001 in the first blocks. It also affects tests as now the first validator is different and it receives the network fees.
This commit is contained in:
parent
66df805f3b
commit
2f8e7e4d33
4 changed files with 36 additions and 24 deletions
|
@ -147,7 +147,7 @@ var rpcTestCases = map[string][]rpcTestCase{
|
|||
},
|
||||
{
|
||||
Asset: e.chain.UtilityTokenHash(),
|
||||
Amount: "923.96937740",
|
||||
Amount: "924.01732700",
|
||||
LastUpdated: 6,
|
||||
}},
|
||||
Address: testchain.PrivateKeyByID(0).GetScriptHash().StringLE(),
|
||||
|
@ -259,6 +259,7 @@ var rpcTestCases = map[string][]rpcTestCase{
|
|||
// take burned gas into account
|
||||
u := testchain.PrivateKeyByID(0).GetScriptHash()
|
||||
for i := 0; i <= int(e.chain.BlockHeight()); i++ {
|
||||
var netFee util.Fixed8
|
||||
h := e.chain.GetHeaderHash(i)
|
||||
b, err := e.chain.GetBlock(h)
|
||||
require.NoError(t, err)
|
||||
|
@ -274,7 +275,19 @@ var rpcTestCases = map[string][]rpcTestCase{
|
|||
TxHash: b.Hash(),
|
||||
})
|
||||
}
|
||||
netFee += b.Transactions[j].NetworkFee
|
||||
}
|
||||
if i > 0 {
|
||||
expected.Received = append(expected.Received, result.NEP5Transfer{
|
||||
Timestamp: b.Timestamp,
|
||||
Asset: e.chain.UtilityTokenHash(),
|
||||
Address: "", // minted from network fees.
|
||||
Amount: amountToString(int64(netFee), 8),
|
||||
Index: b.Index,
|
||||
TxHash: b.Hash(),
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
require.Equal(t, expected.Address, res.Address)
|
||||
require.ElementsMatch(t, expected.Sent, res.Sent)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue