Factor out a bad storage diff for testing
This commit is contained in:
parent
6869330bd3
commit
f315988507
@ -146,17 +146,8 @@ var _ = Describe("Geth RPC Storage Fetcher", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("adds errors to error channel if formatting the diff as a StateDiff object fails", func(done Done) {
|
It("adds errors to error channel if formatting the diff as a StateDiff object fails", func(done Done) {
|
||||||
badStorageDiffs := []statediff.StorageDiff{{
|
|
||||||
Key: test_data.StorageKey,
|
|
||||||
Value: []byte{1, 2, 3},
|
|
||||||
// this storage value will fail to be decoded as an RLP with the following error message:
|
|
||||||
// "input contains more than one value"
|
|
||||||
Path: test_data.StoragePath,
|
|
||||||
Proof: [][]byte{},
|
|
||||||
}}
|
|
||||||
|
|
||||||
accountDiffs := test_data.CreatedAccountDiffs
|
accountDiffs := test_data.CreatedAccountDiffs
|
||||||
accountDiffs[0].Storage = badStorageDiffs
|
accountDiffs[0].Storage = []statediff.StorageDiff{test_data.StorageWithBadValue}
|
||||||
|
|
||||||
stateDiff := statediff.StateDiff{
|
stateDiff := statediff.StateDiff{
|
||||||
BlockNumber: test_data.BlockNumber,
|
BlockNumber: test_data.BlockNumber,
|
||||||
|
@ -67,7 +67,7 @@ var _ = Describe("Storage row parsing", func() {
|
|||||||
Describe("FromGethStateDiff", func() {
|
Describe("FromGethStateDiff", func() {
|
||||||
var (
|
var (
|
||||||
accountDiff = statediff.AccountDiff{Key: []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}}
|
accountDiff = statediff.AccountDiff{Key: []byte{1, 2, 3, 4, 5, 6, 7, 8, 9, 0}}
|
||||||
stateDiff = &statediff.StateDiff{
|
stateDiff = &statediff.StateDiff{
|
||||||
BlockNumber: big.NewInt(rand.Int63()),
|
BlockNumber: big.NewInt(rand.Int63()),
|
||||||
BlockHash: fakes.FakeHash,
|
BlockHash: fakes.FakeHash,
|
||||||
}
|
}
|
||||||
@ -113,12 +113,7 @@ var _ = Describe("Storage row parsing", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
It("returns an err if decoding the storage value Rlp fails", func() {
|
It("returns an err if decoding the storage value Rlp fails", func() {
|
||||||
storageDiff := statediff.StorageDiff{
|
_, err := utils.FromGethStateDiff(accountDiff, stateDiff, test_data.StorageWithBadValue)
|
||||||
Key: []byte{0, 9, 8, 7, 6, 5, 4, 3, 2, 1},
|
|
||||||
Value: test_data.StorageKey,
|
|
||||||
}
|
|
||||||
|
|
||||||
_, err := utils.FromGethStateDiff(accountDiff, stateDiff, storageDiff)
|
|
||||||
Expect(err).To(HaveOccurred())
|
Expect(err).To(HaveOccurred())
|
||||||
Expect(err).To(MatchError("rlp: input contains more than one value"))
|
Expect(err).To(MatchError("rlp: input contains more than one value"))
|
||||||
})
|
})
|
||||||
|
@ -27,31 +27,37 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
BlockNumber = big.NewInt(rand.Int63())
|
BlockNumber = big.NewInt(rand.Int63())
|
||||||
BlockHash = "0xfa40fbe2d98d98b3363a778d52f2bcd29d6790b9b3f3cab2b167fd12d3550f73"
|
BlockHash = "0xfa40fbe2d98d98b3363a778d52f2bcd29d6790b9b3f3cab2b167fd12d3550f73"
|
||||||
CodeHash = common.Hex2Bytes("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470")
|
CodeHash = common.Hex2Bytes("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470")
|
||||||
NewNonceValue = rand.Uint64()
|
NewNonceValue = rand.Uint64()
|
||||||
NewBalanceValue = rand.Int63()
|
NewBalanceValue = rand.Int63()
|
||||||
ContractRoot = common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")
|
ContractRoot = common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421")
|
||||||
StoragePath = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes()
|
StoragePath = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes()
|
||||||
StorageKey = common.HexToHash("0000000000000000000000000000000000000000000000000000000000000001").Bytes()
|
StorageKey = common.HexToHash("0000000000000000000000000000000000000000000000000000000000000001").Bytes()
|
||||||
SmallStorageValue = common.Hex2Bytes("03")
|
SmallStorageValue = common.Hex2Bytes("03")
|
||||||
SmallStorageValueRlp, _ = rlp.EncodeToBytes(SmallStorageValue)
|
SmallStorageValueRlp, _ = rlp.EncodeToBytes(SmallStorageValue)
|
||||||
storageWithSmallValue = []statediff.StorageDiff{{
|
storageWithSmallValue = []statediff.StorageDiff{{
|
||||||
Key: StorageKey,
|
Key: StorageKey,
|
||||||
Value: SmallStorageValueRlp,
|
Value: SmallStorageValueRlp,
|
||||||
Path: StoragePath,
|
Path: StoragePath,
|
||||||
Proof: [][]byte{},
|
Proof: [][]byte{},
|
||||||
}}
|
}}
|
||||||
LargeStorageValue = common.Hex2Bytes("00191b53778c567b14b50ba0000")
|
LargeStorageValue = common.Hex2Bytes("00191b53778c567b14b50ba0000")
|
||||||
LargeStorageValueRlp, rlpErr = rlp.EncodeToBytes(LargeStorageValue)
|
LargeStorageValueRlp, rlpErr = rlp.EncodeToBytes(LargeStorageValue)
|
||||||
storageWithLargeValue = []statediff.StorageDiff{{
|
storageWithLargeValue = []statediff.StorageDiff{{
|
||||||
Key: StorageKey,
|
Key: StorageKey,
|
||||||
Value: LargeStorageValueRlp,
|
Value: LargeStorageValueRlp,
|
||||||
Path: StoragePath,
|
Path: StoragePath,
|
||||||
Proof: [][]byte{},
|
Proof: [][]byte{},
|
||||||
}}
|
}}
|
||||||
EmptyStorage = make([]statediff.StorageDiff, 0)
|
EmptyStorage = make([]statediff.StorageDiff, 0)
|
||||||
|
StorageWithBadValue = statediff.StorageDiff{
|
||||||
|
Key: StorageKey,
|
||||||
|
Value: []byte{0, 1, 2},
|
||||||
|
// this storage value will fail to be decoded as an RLP with the following error message:
|
||||||
|
// "input contains more than one value"
|
||||||
|
}
|
||||||
contractAddress = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476592")
|
contractAddress = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476592")
|
||||||
ContractLeafKey = crypto.Keccak256Hash(contractAddress[:])
|
ContractLeafKey = crypto.Keccak256Hash(contractAddress[:])
|
||||||
anotherContractAddress = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476593")
|
anotherContractAddress = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476593")
|
||||||
|
Loading…
Reference in New Issue
Block a user