Official Go implementation of the Ethereum protocol
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
go-ethereum/tests/gen_stlog.go

61 lines
1.5 KiB

// Code generated by github.com/fjl/gencodec. DO NOT EDIT.
package tests
import (
"encoding/json"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
)
var _ = (*stLogMarshaling)(nil)
func (s stLog) MarshalJSON() ([]byte, error) {
type stLog struct {
Address common.UnprefixedAddress `json:"address"`
Data hexutil.Bytes `json:"data"`
Topics []common.UnprefixedHash `json:"topics"`
Bloom string `json:"bloom"`
}
var enc stLog
enc.Address = common.UnprefixedAddress(s.Address)
enc.Data = s.Data
if s.Topics != nil {
enc.Topics = make([]common.UnprefixedHash, len(s.Topics))
for k, v := range s.Topics {
enc.Topics[k] = common.UnprefixedHash(v)
}
}
enc.Bloom = s.Bloom
return json.Marshal(&enc)
}
func (s *stLog) UnmarshalJSON(input []byte) error {
type stLog struct {
Address *common.UnprefixedAddress `json:"address"`
Data hexutil.Bytes `json:"data"`
Topics []common.UnprefixedHash `json:"topics"`
Bloom *string `json:"bloom"`
}
var dec stLog
if err := json.Unmarshal(input, &dec); err != nil {
return err
}
if dec.Address != nil {
s.Address = common.Address(*dec.Address)
}
if dec.Data != nil {
s.Data = dec.Data
}
if dec.Topics != nil {
s.Topics = make([]common.Hash, len(dec.Topics))
for k, v := range dec.Topics {
s.Topics[k] = common.Hash(v)
}
}
if dec.Bloom != nil {
s.Bloom = *dec.Bloom
}
return nil
}