Skip to content

Commit

Permalink
Add missing implementations.
Browse files Browse the repository at this point in the history
  • Loading branch information
andreibancioiu committed Apr 15, 2024
1 parent d0b966c commit 47abbe8
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 0 deletions.
8 changes: 8 additions & 0 deletions abi/codec.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,10 @@ func (c *codec) doEncodeTopLevel(writer io.Writer, value any) error {
return c.encodeTopLevelBigNumber(writer, value.Value)
case AddressValue:
return c.encodeTopLevelAddress(writer, value)
case StringValue:
return c.encodeTopLevelString(writer, value)
case BytesValue:
return c.encodeTopLevelBytes(writer, value)
case StructValue:
return c.encodeTopLevelStruct(writer, value)
case EnumValue:
Expand Down Expand Up @@ -259,6 +263,10 @@ func (c *codec) doDecodeTopLevel(data []byte, value any) error {
value.Value = n
case *AddressValue:
return c.decodeTopLevelAddress(data, value)
case *StringValue:
return c.decodeTopLevelString(data, value)
case *BytesValue:
return c.decodeTopLevelBytes(data, value)
case *StructValue:
return c.decodeTopLevelStruct(data, value)
case *EnumValue:
Expand Down
10 changes: 10 additions & 0 deletions abi/codecForSimpleValues_bytes.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ func (c *codec) encodeNestedBytes(writer io.Writer, value BytesValue) error {
return err
}

func (c *codec) encodeTopLevelBytes(writer io.Writer, value BytesValue) error {
_, err := writer.Write(value.Value)
return err
}

func (c *codec) decodeNestedBytes(reader io.Reader, value *BytesValue) error {
length, err := decodeLength(reader)
if err != nil {
Expand All @@ -28,3 +33,8 @@ func (c *codec) decodeNestedBytes(reader io.Reader, value *BytesValue) error {
value.Value = data
return nil
}

func (c *codec) decodeTopLevelBytes(data []byte, value *BytesValue) error {
value.Value = data
return nil
}
10 changes: 10 additions & 0 deletions abi/codecForSimpleValues_string.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,11 @@ func (c *codec) encodeNestedString(writer io.Writer, value StringValue) error {
return err
}

func (c *codec) encodeTopLevelString(writer io.Writer, value StringValue) error {
_, err := writer.Write([]byte(value.Value))
return err
}

func (c *codec) decodeNestedString(reader io.Reader, value *StringValue) error {
length, err := decodeLength(reader)
if err != nil {
Expand All @@ -29,3 +34,8 @@ func (c *codec) decodeNestedString(reader io.Reader, value *StringValue) error {
value.Value = string(data)
return nil
}

func (c *codec) decodeTopLevelString(data []byte, value *StringValue) error {
value.Value = string(data)
return nil
}

0 comments on commit 47abbe8

Please sign in to comment.