Skip to content

Commit

Permalink
accounts/abi: return error on fixed bytes with size larger than 32 by…
Browse files Browse the repository at this point in the history
…tes (ethereum#26075)

* fixed bytes with size larger than 32 bytes is not allowed

* add testcase
  • Loading branch information
zhiqiangxu committed Nov 1, 2022
1 parent 0c40df5 commit 8578eb2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 0 deletions.
3 changes: 3 additions & 0 deletions accounts/abi/type.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,9 @@ func NewType(t string, internalType string, components []ArgumentMarshaling) (ty
if varSize == 0 {
typ.T = BytesTy
} else {
if varSize > 32 {
return Type{}, fmt.Errorf("unsupported arg type: %s", t)
}
typ.T = FixedBytesTy
typ.Size = varSize
}
Expand Down
7 changes: 7 additions & 0 deletions accounts/abi/type_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -366,3 +366,10 @@ func TestGetTypeSize(t *testing.T) {
}
}
}

func TestNewFixedBytesOver32(t *testing.T) {
_, err := NewType("bytes4096", "", nil)
if err == nil {
t.Errorf("fixed bytes with size over 32 is not spec'd")
}
}

0 comments on commit 8578eb2

Please sign in to comment.