// 原始类型
type ExecutionResult struct {
StateRoot common.Hash
TxRoot common.Hash
ReceiptRoot common.Hash
Requests [][]byte
}
// JSON序列化方法
func (e ExecutionResult) MarshalJSON() ([]byte, error) {
// 内部类型定义
type ExecutionResult struct {
StateRoot common.Hash `json:"stateRoot"`
TxRoot common.Hash `json:"txRoot"`
ReceiptRoot common.Hash `json:"receiptsRoot"`
Requests []hexutil.Bytes `json:"requests"`
}
// 创建内部类型实例
var enc ExecutionResult
enc.StateRoot = e.StateRoot
enc.TxRoot = e.TxRoot
enc.ReceiptRoot = e.ReceiptRoot
// 类型转换
enc.Requests = make([]hexutil.Bytes, len(e.Requests))
for i, v := range e.Requests {
enc.Requests[i] = v
}
return json.Marshal(&enc)
}