diff --git a/libraries/shared/fetcher/geth_rpc_storage_fetcher_test.go b/libraries/shared/fetcher/geth_rpc_storage_fetcher_test.go index c4b35b12..f46f3f2e 100644 --- a/libraries/shared/fetcher/geth_rpc_storage_fetcher_test.go +++ b/libraries/shared/fetcher/geth_rpc_storage_fetcher_test.go @@ -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) { - 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[0].Storage = badStorageDiffs + accountDiffs[0].Storage = []statediff.StorageDiff{test_data.StorageWithBadValue} stateDiff := statediff.StateDiff{ BlockNumber: test_data.BlockNumber, diff --git a/libraries/shared/storage/utils/diff_test.go b/libraries/shared/storage/utils/diff_test.go index 13c5b4a6..36e80ea3 100644 --- a/libraries/shared/storage/utils/diff_test.go +++ b/libraries/shared/storage/utils/diff_test.go @@ -67,7 +67,7 @@ var _ = Describe("Storage row parsing", func() { Describe("FromGethStateDiff", func() { var ( 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()), 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() { - storageDiff := statediff.StorageDiff{ - Key: []byte{0, 9, 8, 7, 6, 5, 4, 3, 2, 1}, - Value: test_data.StorageKey, - } - - _, err := utils.FromGethStateDiff(accountDiff, stateDiff, storageDiff) + _, err := utils.FromGethStateDiff(accountDiff, stateDiff, test_data.StorageWithBadValue) Expect(err).To(HaveOccurred()) Expect(err).To(MatchError("rlp: input contains more than one value")) }) diff --git a/libraries/shared/test_data/statediff.go b/libraries/shared/test_data/statediff.go index fc8e9e69..3e0a2219 100644 --- a/libraries/shared/test_data/statediff.go +++ b/libraries/shared/test_data/statediff.go @@ -27,31 +27,37 @@ import ( ) var ( - BlockNumber = big.NewInt(rand.Int63()) - BlockHash = "0xfa40fbe2d98d98b3363a778d52f2bcd29d6790b9b3f3cab2b167fd12d3550f73" - CodeHash = common.Hex2Bytes("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") - NewNonceValue = rand.Uint64() - NewBalanceValue = rand.Int63() - ContractRoot = common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") - StoragePath = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes() - StorageKey = common.HexToHash("0000000000000000000000000000000000000000000000000000000000000001").Bytes() - SmallStorageValue = common.Hex2Bytes("03") + BlockNumber = big.NewInt(rand.Int63()) + BlockHash = "0xfa40fbe2d98d98b3363a778d52f2bcd29d6790b9b3f3cab2b167fd12d3550f73" + CodeHash = common.Hex2Bytes("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470") + NewNonceValue = rand.Uint64() + NewBalanceValue = rand.Int63() + ContractRoot = common.HexToHash("0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") + StoragePath = common.HexToHash("0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470").Bytes() + StorageKey = common.HexToHash("0000000000000000000000000000000000000000000000000000000000000001").Bytes() + SmallStorageValue = common.Hex2Bytes("03") SmallStorageValueRlp, _ = rlp.EncodeToBytes(SmallStorageValue) - storageWithSmallValue = []statediff.StorageDiff{{ + storageWithSmallValue = []statediff.StorageDiff{{ Key: StorageKey, Value: SmallStorageValueRlp, Path: StoragePath, Proof: [][]byte{}, }} - LargeStorageValue = common.Hex2Bytes("00191b53778c567b14b50ba0000") + LargeStorageValue = common.Hex2Bytes("00191b53778c567b14b50ba0000") LargeStorageValueRlp, rlpErr = rlp.EncodeToBytes(LargeStorageValue) - storageWithLargeValue = []statediff.StorageDiff{{ + storageWithLargeValue = []statediff.StorageDiff{{ Key: StorageKey, Value: LargeStorageValueRlp, Path: StoragePath, 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") ContractLeafKey = crypto.Keccak256Hash(contractAddress[:]) anotherContractAddress = common.HexToAddress("0xaE9BEa628c4Ce503DcFD7E305CaB4e29E7476593")