accounts/abi: return error on fixed bytes with size larger than 32 bytes (#26075)

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

* add testcase
pull/26089/head
zhiqiangxu 2 years ago committed by GitHub
parent 0c40df5f28
commit 8578eb2fe1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      accounts/abi/type.go
  2. 7
      accounts/abi/type_test.go

@ -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
}

@ -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")
}
}

Loading…
Cancel
Save