Fix mappings util

- Remove hex prefix so that the function can accept keys with or
  without a hex prefix and return the same result
This commit is contained in:
Rob Mulholand 2019-06-13 18:33:22 -05:00
parent eb2b3a0263
commit 95fa6280c5
2 changed files with 11 additions and 1 deletions

View File

@ -47,7 +47,7 @@ const (
) )
func GetMapping(indexOnContract, key string) common.Hash { func GetMapping(indexOnContract, key string) common.Hash {
keyBytes := common.FromHex("0x" + key + indexOnContract) keyBytes := common.FromHex(key + indexOnContract)
encoded := crypto.Keccak256(keyBytes) encoded := crypto.Keccak256(keyBytes)
return common.BytesToHash(encoded) return common.BytesToHash(encoded)
} }

View File

@ -21,6 +21,16 @@ var _ = Describe("Mappings", func() {
expectedStorageKey := common.HexToHash("0xee0c1b59a3856bafbfb8730e7694c4badc271eb5f01ce4a8d7a53d8a6499676f") expectedStorageKey := common.HexToHash("0xee0c1b59a3856bafbfb8730e7694c4badc271eb5f01ce4a8d7a53d8a6499676f")
Expect(storageKey).To(Equal(expectedStorageKey)) Expect(storageKey).To(Equal(expectedStorageKey))
}) })
It("returns same result if value includes hex prefix", func() {
indexOfMappingOnContract := storage.IndexZero
keyForDesiredValueInMapping := "0x1234567890abcdef"
storageKey := storage.GetMapping(indexOfMappingOnContract, keyForDesiredValueInMapping)
expectedStorageKey := common.HexToHash("0xee0c1b59a3856bafbfb8730e7694c4badc271eb5f01ce4a8d7a53d8a6499676f")
Expect(storageKey).To(Equal(expectedStorageKey))
})
}) })
Describe("GetNestedMapping", func() { Describe("GetNestedMapping", func() {