1
0
Fork 0
mirror of https://github.com/eosswedenorg/thalos synced 2026-06-17 04:30:03 +02:00

api/message/types.go: Adding Blocknum and Timestamp to ActionTrace struct

This commit is contained in:
Henrik Hautakoski 2023-05-05 07:29:37 +02:00
parent e2b19b7404
commit ae6f3f11a9
3 changed files with 596 additions and 80 deletions

View file

@ -4,6 +4,7 @@ import (
"encoding/hex"
"encoding/json"
"testing"
"time"
"github.com/eosswedenorg/thalos/api/message"
"github.com/shamaton/msgpack/v2"
@ -30,12 +31,14 @@ func TestMsgpack_EncodeActionTrace(t *testing.T) {
assert.NoError(t, err)
msg := message.ActionTrace{
TxID: "edc06dce6320459fd644756972048da453b2816b0a434c37ddffde36778dcab3",
Name: "sellitem",
Contract: "mygame",
Receiver: "eosio",
Data: dataJson,
HexData: "d0fa1b2ab8a6fd0d1b0173df91aa9ffd277642d05780cf750",
TxID: "edc06dce6320459fd644756972048da453b2816b0a434c37ddffde36778dcab3",
BlockNum: 12345,
Timestamp: time.Unix(1699617279, int64(time.Millisecond)*500),
Name: "sellitem",
Contract: "mygame",
Receiver: "eosio",
Data: dataJson,
HexData: "d0fa1b2ab8a6fd0d1b0173df91aa9ffd277642d05780cf750",
Authorization: []message.PermissionLevel{
{Actor: "mygame", Permission: "active"},
},
@ -48,7 +51,7 @@ func TestMsgpack_EncodeActionTrace(t *testing.T) {
assert.NoError(t, err)
expected := []byte{
0x8a, 0xa5, 0x74, 0x78, 0x5f, 0x69, 0x64, 0xd9,
0x8c, 0xa5, 0x74, 0x78, 0x5f, 0x69, 0x64, 0xd9,
0x40, 0x65, 0x64, 0x63, 0x30, 0x36, 0x64, 0x63,
0x65, 0x36, 0x33, 0x32, 0x30, 0x34, 0x35, 0x39,
0x66, 0x64, 0x36, 0x34, 0x34, 0x37, 0x35, 0x36,
@ -57,50 +60,55 @@ func TestMsgpack_EncodeActionTrace(t *testing.T) {
0x62, 0x30, 0x61, 0x34, 0x33, 0x34, 0x63, 0x33,
0x37, 0x64, 0x64, 0x66, 0x66, 0x64, 0x65, 0x33,
0x36, 0x37, 0x37, 0x38, 0x64, 0x63, 0x61, 0x62,
0x33, 0xa4, 0x6e, 0x61, 0x6d, 0x65, 0xa8, 0x73,
0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x6d, 0xa8,
0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
0xa6, 0x6d, 0x79, 0x67, 0x61, 0x6d, 0x65, 0xa8,
0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72,
0xa5, 0x65, 0x6f, 0x73, 0x69, 0x6f, 0xa4, 0x64,
0x61, 0x74, 0x61, 0xc4, 0x9b, 0x7b, 0x22, 0x61,
0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3a, 0x22,
0x31, 0x30, 0x30, 0x30, 0x2e, 0x30, 0x30, 0x30,
0x30, 0x20, 0x53, 0x43, 0x41, 0x4d, 0x22, 0x2c,
0x22, 0x66, 0x72, 0x6f, 0x6d, 0x22, 0x3a, 0x22,
0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x31,
0x22, 0x2c, 0x22, 0x69, 0x74, 0x65, 0x6d, 0x22,
0x3a, 0x7b, 0x22, 0x61, 0x67, 0x69, 0x22, 0x3a,
0x22, 0x32, 0x30, 0x22, 0x2c, 0x22, 0x64, 0x75,
0x72, 0x22, 0x3a, 0x22, 0x31, 0x30, 0x30, 0x22,
0x2c, 0x22, 0x69, 0x64, 0x22, 0x3a, 0x22, 0x32,
0x31, 0x33, 0x31, 0x32, 0x34, 0x32, 0x22, 0x2c,
0x22, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x22,
0x47, 0x72, 0x65, 0x61, 0x74, 0x20, 0x53, 0x77,
0x6f, 0x72, 0x64, 0x22, 0x2c, 0x22, 0x71, 0x75,
0x61, 0x6c, 0x22, 0x3a, 0x22, 0x65, 0x70, 0x69,
0x63, 0x22, 0x2c, 0x22, 0x73, 0x74, 0x72, 0x22,
0x3a, 0x22, 0x31, 0x30, 0x30, 0x22, 0x7d, 0x2c,
0x22, 0x74, 0x6f, 0x22, 0x3a, 0x22, 0x61, 0x63,
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x32, 0x22, 0x7d,
0xa8, 0x68, 0x65, 0x78, 0x5f, 0x64, 0x61, 0x74,
0x61, 0xd9, 0x31, 0x64, 0x30, 0x66, 0x61, 0x31,
0x62, 0x32, 0x61, 0x62, 0x38, 0x61, 0x36, 0x66,
0x64, 0x30, 0x64, 0x31, 0x62, 0x30, 0x31, 0x37,
0x33, 0x64, 0x66, 0x39, 0x31, 0x61, 0x61, 0x39,
0x66, 0x66, 0x64, 0x32, 0x37, 0x37, 0x36, 0x34,
0x32, 0x64, 0x30, 0x35, 0x37, 0x38, 0x30, 0x63,
0x66, 0x37, 0x35, 0x30, 0xad, 0x61, 0x75, 0x74,
0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x91, 0x82, 0xa5, 0x61, 0x63, 0x74,
0x6f, 0x72, 0xa6, 0x6d, 0x79, 0x67, 0x61, 0x6d,
0x65, 0xaa, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0xa6, 0x61, 0x63, 0x74,
0x69, 0x76, 0x65, 0xa6, 0x65, 0x78, 0x63, 0x65,
0x70, 0x74, 0xa6, 0x65, 0x72, 0x72, 0x73, 0x74,
0x72, 0xa5, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x02,
0xa6, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0xc4,
0x4, 0xde, 0xad, 0xbe, 0xef,
0x33, 0xa8, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x6e,
0x75, 0x6d, 0xcd, 0x30, 0x39, 0xae, 0x62, 0x6c,
0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x73,
0x74, 0x61, 0x6d, 0x70, 0xd7, 0xff, 0x77, 0x35,
0x94, 0x00, 0x65, 0x4e, 0x19, 0xff, 0xa4, 0x6e,
0x61, 0x6d, 0x65, 0xa8, 0x73, 0x65, 0x6c, 0x6c,
0x69, 0x74, 0x65, 0x6d, 0xa8, 0x63, 0x6f, 0x6e,
0x74, 0x72, 0x61, 0x63, 0x74, 0xa6, 0x6d, 0x79,
0x67, 0x61, 0x6d, 0x65, 0xa8, 0x72, 0x65, 0x63,
0x65, 0x69, 0x76, 0x65, 0x72, 0xa5, 0x65, 0x6f,
0x73, 0x69, 0x6f, 0xa4, 0x64, 0x61, 0x74, 0x61,
0xc4, 0x9b, 0x7b, 0x22, 0x61, 0x6d, 0x6f, 0x75,
0x6e, 0x74, 0x22, 0x3a, 0x22, 0x31, 0x30, 0x30,
0x30, 0x2e, 0x30, 0x30, 0x30, 0x30, 0x20, 0x53,
0x43, 0x41, 0x4d, 0x22, 0x2c, 0x22, 0x66, 0x72,
0x6f, 0x6d, 0x22, 0x3a, 0x22, 0x61, 0x63, 0x63,
0x6f, 0x75, 0x6e, 0x74, 0x31, 0x22, 0x2c, 0x22,
0x69, 0x74, 0x65, 0x6d, 0x22, 0x3a, 0x7b, 0x22,
0x61, 0x67, 0x69, 0x22, 0x3a, 0x22, 0x32, 0x30,
0x22, 0x2c, 0x22, 0x64, 0x75, 0x72, 0x22, 0x3a,
0x22, 0x31, 0x30, 0x30, 0x22, 0x2c, 0x22, 0x69,
0x64, 0x22, 0x3a, 0x22, 0x32, 0x31, 0x33, 0x31,
0x32, 0x34, 0x32, 0x22, 0x2c, 0x22, 0x6e, 0x61,
0x6d, 0x65, 0x22, 0x3a, 0x22, 0x47, 0x72, 0x65,
0x61, 0x74, 0x20, 0x53, 0x77, 0x6f, 0x72, 0x64,
0x22, 0x2c, 0x22, 0x71, 0x75, 0x61, 0x6c, 0x22,
0x3a, 0x22, 0x65, 0x70, 0x69, 0x63, 0x22, 0x2c,
0x22, 0x73, 0x74, 0x72, 0x22, 0x3a, 0x22, 0x31,
0x30, 0x30, 0x22, 0x7d, 0x2c, 0x22, 0x74, 0x6f,
0x22, 0x3a, 0x22, 0x61, 0x63, 0x63, 0x6f, 0x75,
0x6e, 0x74, 0x32, 0x22, 0x7d, 0xa8, 0x68, 0x65,
0x78, 0x5f, 0x64, 0x61, 0x74, 0x61, 0xd9, 0x31,
0x64, 0x30, 0x66, 0x61, 0x31, 0x62, 0x32, 0x61,
0x62, 0x38, 0x61, 0x36, 0x66, 0x64, 0x30, 0x64,
0x31, 0x62, 0x30, 0x31, 0x37, 0x33, 0x64, 0x66,
0x39, 0x31, 0x61, 0x61, 0x39, 0x66, 0x66, 0x64,
0x32, 0x37, 0x37, 0x36, 0x34, 0x32, 0x64, 0x30,
0x35, 0x37, 0x38, 0x30, 0x63, 0x66, 0x37, 0x35,
0x30, 0xad, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72,
0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x91,
0x82, 0xa5, 0x61, 0x63, 0x74, 0x6f, 0x72, 0xa6,
0x6d, 0x79, 0x67, 0x61, 0x6d, 0x65, 0xaa, 0x70,
0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f,
0x6e, 0xa6, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65,
0xa6, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0xa6,
0x65, 0x72, 0x72, 0x73, 0x74, 0x72, 0xa5, 0x65,
0x72, 0x72, 0x6f, 0x72, 0x02, 0xa6, 0x72, 0x65,
0x74, 0x75, 0x72, 0x6e, 0xc4, 0x04, 0xde, 0xad,
0xbe, 0xef,
}
assert.Equal(t, expected, data)
@ -109,7 +117,7 @@ func TestMsgpack_EncodeActionTrace(t *testing.T) {
func TestMsgpack_Decode(t *testing.T) {
RegisterGeneratedResolver()
data := []byte("\x8a\xa5tx_id\xd9@edc06dce6320459fd644756972048da453b2816b0a434c37ddffde36778dcab3\xa4name\xa4drop\xa8contract\xa6mygame\xa8receiver\xa8account1\xa4dataċ{\"dropped_from_id\":674562,\"item\":{\"dur\":145,\"id\":49623,\"name\":\"Shadowmourne\",\"qual\":\"legendary\",\"sta\":198,\"str\":223},\"receiver\":\"account1\"}\xa8hex_data\xda\x01\x167b2264726f707065645f66726f6d5f6964223a3637343536322c226974656d223a7b22647572223a3134352c226964223a34393632332c226e616d65223a22536861646f776d6f75726e65222c227175616c223a226c6567656e64617279222c22737461223a3139382c22737472223a3232337d2c227265636569766572223a226163636f756e7431227d\xadauthorization\x91\x82\xa5actor\xa6mygame\xaapermission\xa6active\xa6except\xa6errstr\xa5error\x02\xa6return\xc4\x04ޭ\xbe\xef")
data := []byte("\x8c\xa5tx_id\xd9@edc06dce6320459fd644756972048da453b2816b0a434c37ddffde36778dcab3\xa8blocknum\xce\x00\x85F7\xaeblocktimestamp\xd6\xffH\xf1U\x1f\xa4name\xa4drop\xa8contract\xa6mygame\xa8receiver\xa8account1\xa4dataċ{\"dropped_from_id\":674562,\"item\":{\"dur\":145,\"id\":49623,\"name\":\"Shadowmourne\",\"qual\":\"legendary\",\"sta\":198,\"str\":223},\"receiver\":\"account1\"}\xa8hex_data\xda\x01\x167b2264726f707065645f66726f6d5f6964223a3637343536322c226974656d223a7b22647572223a3134352c226964223a34393632332c226e616d65223a22536861646f776d6f75726e65222c227175616c223a226c6567656e64617279222c22737461223a3139382c22737472223a3232337d2c227265636569766572223a226163636f756e7431227d\xadauthorization\x91\x82\xa5actor\xa6mygame\xaapermission\xa6active\xa6except\xa6errstr\xa5error\x02\xa6return\xc4\x04ޭ\xbe\xef")
dataJson, err := json.Marshal(map[string]interface{}{
"item": map[string]interface{}{
@ -127,12 +135,14 @@ func TestMsgpack_Decode(t *testing.T) {
assert.NoError(t, err)
expected := message.ActionTrace{
TxID: "edc06dce6320459fd644756972048da453b2816b0a434c37ddffde36778dcab3",
Name: "drop",
Contract: "mygame",
Receiver: "account1",
Data: dataJson,
HexData: hex.EncodeToString(dataJson),
TxID: "edc06dce6320459fd644756972048da453b2816b0a434c37ddffde36778dcab3",
BlockNum: 8734263,
Timestamp: time.Unix(1223775519, 0),
Name: "drop",
Contract: "mygame",
Receiver: "account1",
Data: dataJson,
HexData: hex.EncodeToString(dataJson),
Authorization: []message.PermissionLevel{
{Actor: "mygame", Permission: "active"},
},

View file

@ -8,6 +8,7 @@ import (
msgpack "github.com/shamaton/msgpackgen/msgpack"
dec "github.com/shamaton/msgpackgen/msgpack/dec"
enc "github.com/shamaton/msgpackgen/msgpack/enc"
"time"
)
// RegisterGeneratedResolver registers generated resolver.
@ -57,6 +58,36 @@ func ___encodeAsArray(i interface{}) ([]byte, error) {
return nil, fmt.Errorf("%s size / offset different %d : %d", "github.com/eosswedenorg/thalos/api/message.HeartBeat", size, offset)
}
return b, err
case message.PermissionLevel:
encoder := enc.NewEncoder()
size, err := ___calcArraySizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, encoder)
if err != nil {
return nil, err
}
encoder.MakeBytes(size)
b, offset, err := ___encodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, encoder, 0)
if err != nil {
return nil, err
}
if size != offset {
return nil, fmt.Errorf("%s size / offset different %d : %d", "github.com/eosswedenorg/thalos/api/message.PermissionLevel", size, offset)
}
return b, err
case *message.PermissionLevel:
encoder := enc.NewEncoder()
size, err := ___calcArraySizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(*v, encoder)
if err != nil {
return nil, err
}
encoder.MakeBytes(size)
b, offset, err := ___encodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(*v, encoder, 0)
if err != nil {
return nil, err
}
if size != offset {
return nil, fmt.Errorf("%s size / offset different %d : %d", "github.com/eosswedenorg/thalos/api/message.PermissionLevel", size, offset)
}
return b, err
case message.ActionTrace:
encoder := enc.NewEncoder()
size, err := ___calcArraySizeActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, encoder)
@ -124,6 +155,36 @@ func ___encodeAsMap(i interface{}) ([]byte, error) {
return nil, fmt.Errorf("%s size / offset different %d : %d", "github.com/eosswedenorg/thalos/api/message.HeartBeat", size, offset)
}
return b, err
case message.PermissionLevel:
encoder := enc.NewEncoder()
size, err := ___calcMapSizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, encoder)
if err != nil {
return nil, err
}
encoder.MakeBytes(size)
b, offset, err := ___encodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, encoder, 0)
if err != nil {
return nil, err
}
if size != offset {
return nil, fmt.Errorf("%s size / offset different %d : %d", "github.com/eosswedenorg/thalos/api/message.PermissionLevel", size, offset)
}
return b, err
case *message.PermissionLevel:
encoder := enc.NewEncoder()
size, err := ___calcMapSizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(*v, encoder)
if err != nil {
return nil, err
}
encoder.MakeBytes(size)
b, offset, err := ___encodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(*v, encoder, 0)
if err != nil {
return nil, err
}
if size != offset {
return nil, fmt.Errorf("%s size / offset different %d : %d", "github.com/eosswedenorg/thalos/api/message.PermissionLevel", size, offset)
}
return b, err
case message.ActionTrace:
encoder := enc.NewEncoder()
size, err := ___calcMapSizeActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, encoder)
@ -184,6 +245,20 @@ func ___decodeAsArray(data []byte, i interface{}) (bool, error) {
return true, fmt.Errorf("read length is different [%d] [%d] ", offset, decoder.Len())
}
return true, err
case *message.PermissionLevel:
decoder := dec.NewDecoder(data)
offset, err := ___decodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, decoder, 0)
if err == nil && offset != decoder.Len() {
return true, fmt.Errorf("read length is different [%d] [%d] ", offset, decoder.Len())
}
return true, err
case **message.PermissionLevel:
decoder := dec.NewDecoder(data)
offset, err := ___decodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(*v, decoder, 0)
if err == nil && offset != decoder.Len() {
return true, fmt.Errorf("read length is different [%d] [%d] ", offset, decoder.Len())
}
return true, err
case *message.ActionTrace:
decoder := dec.NewDecoder(data)
offset, err := ___decodeArrayActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, decoder, 0)
@ -219,6 +294,20 @@ func ___decodeAsMap(data []byte, i interface{}) (bool, error) {
return true, fmt.Errorf("read length is different [%d] [%d] ", offset, decoder.Len())
}
return true, err
case *message.PermissionLevel:
decoder := dec.NewDecoder(data)
offset, err := ___decodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, decoder, 0)
if err == nil && offset != decoder.Len() {
return true, fmt.Errorf("read length is different [%d] [%d] ", offset, decoder.Len())
}
return true, err
case **message.PermissionLevel:
decoder := dec.NewDecoder(data)
offset, err := ___decodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(*v, decoder, 0)
if err == nil && offset != decoder.Len() {
return true, fmt.Errorf("read length is different [%d] [%d] ", offset, decoder.Len())
}
return true, err
case *message.ActionTrace:
decoder := dec.NewDecoder(data)
offset, err := ___decodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v, decoder, 0)
@ -388,11 +477,139 @@ func ___decodeMapHeartBeat_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d
return offset, err
}
// calculate size from github.com/eosswedenorg/thalos/api/message.PermissionLevel
func ___calcArraySizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.PermissionLevel, encoder *enc.Encoder) (int, error) {
size := 0
size += encoder.CalcStructHeaderFix(2)
size += encoder.CalcString(v.Actor)
size += encoder.CalcString(v.Permission)
return size, nil
}
// calculate size from github.com/eosswedenorg/thalos/api/message.PermissionLevel
func ___calcMapSizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.PermissionLevel, encoder *enc.Encoder) (int, error) {
size := 0
size += encoder.CalcStructHeaderFix(2)
size += encoder.CalcStringFix(5)
size += encoder.CalcString(v.Actor)
size += encoder.CalcStringFix(10)
size += encoder.CalcString(v.Permission)
return size, nil
}
// encode from github.com/eosswedenorg/thalos/api/message.PermissionLevel
func ___encodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.PermissionLevel, encoder *enc.Encoder, offset int) ([]byte, int, error) {
var err error
offset = encoder.WriteStructHeaderFixAsArray(2, offset)
offset = encoder.WriteString(v.Actor, offset)
offset = encoder.WriteString(v.Permission, offset)
return encoder.EncodedBytes(), offset, err
}
// encode from github.com/eosswedenorg/thalos/api/message.PermissionLevel
func ___encodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.PermissionLevel, encoder *enc.Encoder, offset int) ([]byte, int, error) {
var err error
offset = encoder.WriteStructHeaderFixAsMap(2, offset)
offset = encoder.WriteStringFix("actor", 5, offset)
offset = encoder.WriteString(v.Actor, offset)
offset = encoder.WriteStringFix("permission", 10, offset)
offset = encoder.WriteString(v.Permission, offset)
return encoder.EncodedBytes(), offset, err
}
// decode to github.com/eosswedenorg/thalos/api/message.PermissionLevel
func ___decodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v *message.PermissionLevel, decoder *dec.Decoder, offset int) (int, error) {
offset, err := decoder.CheckStructHeader(2, offset)
if err != nil {
return 0, err
}
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Actor = vv
}
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Permission = vv
}
return offset, err
}
// decode to github.com/eosswedenorg/thalos/api/message.PermissionLevel
func ___decodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v *message.PermissionLevel, decoder *dec.Decoder, offset int) (int, error) {
keys := [][]byte{
{uint8(0x61), uint8(0x63), uint8(0x74), uint8(0x6f), uint8(0x72)}, // actor
{uint8(0x70), uint8(0x65), uint8(0x72), uint8(0x6d), uint8(0x69), uint8(0x73), uint8(0x73), uint8(0x69), uint8(0x6f), uint8(0x6e)}, // permission
}
offset, err := decoder.CheckStructHeader(2, offset)
if err != nil {
return 0, err
}
count := 0
for count < 2 {
var dataKey []byte
dataKey, offset, err = decoder.AsStringBytes(offset)
if err != nil {
return 0, err
}
fieldIndex := -1
for i, key := range keys {
if len(dataKey) != len(key) {
continue
}
fieldIndex = i
for dataKeyIndex := range dataKey {
if dataKey[dataKeyIndex] != key[dataKeyIndex] {
fieldIndex = -1
break
}
}
if fieldIndex >= 0 {
break
}
}
switch fieldIndex {
case 0:
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Actor = vv
}
count++
case 1:
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Permission = vv
}
count++
default:
return 0, fmt.Errorf("unknown key[%s] found", string(dataKey))
}
}
return offset, err
}
// calculate size from github.com/eosswedenorg/thalos/api/message.ActionTrace
func ___calcArraySizeActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.ActionTrace, encoder *enc.Encoder) (int, error) {
size := 0
size += encoder.CalcStructHeaderFix(6)
size += encoder.CalcStructHeaderFix(12)
size += encoder.CalcString(v.TxID)
size += encoder.CalcUint32(v.BlockNum)
size += encoder.CalcTime(v.Timestamp)
size += encoder.CalcString(v.Name)
size += encoder.CalcString(v.Contract)
size += encoder.CalcString(v.Receiver)
@ -409,15 +626,49 @@ func ___calcArraySizeActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988b
size += encoder.CalcNil()
}
size += encoder.CalcString(v.HexData)
if v.Authorization != nil {
s, err := encoder.CalcSliceLength(len(v.Authorization), false)
if err != nil {
return 0, err
}
size += s
for _, vv := range v.Authorization {
size_vv, err := ___calcArraySizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(vv, encoder)
if err != nil {
return 0, err
}
size += size_vv
}
} else {
size += encoder.CalcNil()
}
size += encoder.CalcString(v.Except)
size += encoder.CalcUint64(v.Error)
if v.Return != nil {
s, err := encoder.CalcSliceLength(len(v.Return), true)
if err != nil {
return 0, err
}
size += s
for _, vv := range v.Return {
size += encoder.CalcByte(vv)
}
} else {
size += encoder.CalcNil()
}
return size, nil
}
// calculate size from github.com/eosswedenorg/thalos/api/message.ActionTrace
func ___calcMapSizeActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.ActionTrace, encoder *enc.Encoder) (int, error) {
size := 0
size += encoder.CalcStructHeaderFix(6)
size += encoder.CalcStructHeaderFix(12)
size += encoder.CalcStringFix(5)
size += encoder.CalcString(v.TxID)
size += encoder.CalcStringFix(8)
size += encoder.CalcUint32(v.BlockNum)
size += encoder.CalcStringFix(14)
size += encoder.CalcTime(v.Timestamp)
size += encoder.CalcStringFix(4)
size += encoder.CalcString(v.Name)
size += encoder.CalcStringFix(8)
@ -439,14 +690,50 @@ func ___calcMapSizeActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc6
}
size += encoder.CalcStringFix(8)
size += encoder.CalcString(v.HexData)
size += encoder.CalcStringFix(13)
if v.Authorization != nil {
s, err := encoder.CalcSliceLength(len(v.Authorization), false)
if err != nil {
return 0, err
}
size += s
for _, vv := range v.Authorization {
size_vv, err := ___calcMapSizePermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(vv, encoder)
if err != nil {
return 0, err
}
size += size_vv
}
} else {
size += encoder.CalcNil()
}
size += encoder.CalcStringFix(6)
size += encoder.CalcString(v.Except)
size += encoder.CalcStringFix(5)
size += encoder.CalcUint64(v.Error)
size += encoder.CalcStringFix(6)
if v.Return != nil {
s, err := encoder.CalcSliceLength(len(v.Return), true)
if err != nil {
return 0, err
}
size += s
for _, vv := range v.Return {
size += encoder.CalcByte(vv)
}
} else {
size += encoder.CalcNil()
}
return size, nil
}
// encode from github.com/eosswedenorg/thalos/api/message.ActionTrace
func ___encodeArrayActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.ActionTrace, encoder *enc.Encoder, offset int) ([]byte, int, error) {
var err error
offset = encoder.WriteStructHeaderFixAsArray(6, offset)
offset = encoder.WriteStructHeaderFixAsArray(12, offset)
offset = encoder.WriteString(v.TxID, offset)
offset = encoder.WriteUint32(v.BlockNum, offset)
offset = encoder.WriteTime(v.Timestamp, offset)
offset = encoder.WriteString(v.Name, offset)
offset = encoder.WriteString(v.Contract, offset)
offset = encoder.WriteString(v.Receiver, offset)
@ -459,15 +746,40 @@ func ___encodeArrayActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc6
offset = encoder.WriteNil(offset)
}
offset = encoder.WriteString(v.HexData, offset)
if v.Authorization != nil {
offset = encoder.WriteSliceLength(len(v.Authorization), offset, false)
for _, vv := range v.Authorization {
_, offset, err = ___encodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(vv, encoder, offset)
if err != nil {
return nil, 0, err
}
}
} else {
offset = encoder.WriteNil(offset)
}
offset = encoder.WriteString(v.Except, offset)
offset = encoder.WriteUint64(v.Error, offset)
if v.Return != nil {
offset = encoder.WriteSliceLength(len(v.Return), offset, true)
for _, vv := range v.Return {
offset = encoder.WriteByte(vv, offset)
}
} else {
offset = encoder.WriteNil(offset)
}
return encoder.EncodedBytes(), offset, err
}
// encode from github.com/eosswedenorg/thalos/api/message.ActionTrace
func ___encodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v message.ActionTrace, encoder *enc.Encoder, offset int) ([]byte, int, error) {
var err error
offset = encoder.WriteStructHeaderFixAsMap(6, offset)
offset = encoder.WriteStructHeaderFixAsMap(12, offset)
offset = encoder.WriteStringFix("tx_id", 5, offset)
offset = encoder.WriteString(v.TxID, offset)
offset = encoder.WriteStringFix("blocknum", 8, offset)
offset = encoder.WriteUint32(v.BlockNum, offset)
offset = encoder.WriteStringFix("blocktimestamp", 14, offset)
offset = encoder.WriteTime(v.Timestamp, offset)
offset = encoder.WriteStringFix("name", 4, offset)
offset = encoder.WriteString(v.Name, offset)
offset = encoder.WriteStringFix("contract", 8, offset)
@ -485,12 +797,37 @@ func ___encodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f
}
offset = encoder.WriteStringFix("hex_data", 8, offset)
offset = encoder.WriteString(v.HexData, offset)
offset = encoder.WriteStringFix("authorization", 13, offset)
if v.Authorization != nil {
offset = encoder.WriteSliceLength(len(v.Authorization), offset, false)
for _, vv := range v.Authorization {
_, offset, err = ___encodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(vv, encoder, offset)
if err != nil {
return nil, 0, err
}
}
} else {
offset = encoder.WriteNil(offset)
}
offset = encoder.WriteStringFix("except", 6, offset)
offset = encoder.WriteString(v.Except, offset)
offset = encoder.WriteStringFix("error", 5, offset)
offset = encoder.WriteUint64(v.Error, offset)
offset = encoder.WriteStringFix("return", 6, offset)
if v.Return != nil {
offset = encoder.WriteSliceLength(len(v.Return), offset, true)
for _, vv := range v.Return {
offset = encoder.WriteByte(vv, offset)
}
} else {
offset = encoder.WriteNil(offset)
}
return encoder.EncodedBytes(), offset, err
}
// decode to github.com/eosswedenorg/thalos/api/message.ActionTrace
func ___decodeArrayActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v *message.ActionTrace, decoder *dec.Decoder, offset int) (int, error) {
offset, err := decoder.CheckStructHeader(6, offset)
offset, err := decoder.CheckStructHeader(12, offset)
if err != nil {
return 0, err
}
@ -502,6 +839,22 @@ func ___decodeArrayActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc6
}
v.TxID = vv
}
{
var vv uint32
vv, offset, err = decoder.AsUint32(offset)
if err != nil {
return 0, err
}
v.BlockNum = vv
}
{
var vv time.Time
vv, offset, err = decoder.AsDateTime(offset)
if err != nil {
return 0, err
}
v.Timestamp = vv
}
{
var vv string
vv, offset, err = decoder.AsString(offset)
@ -554,25 +907,87 @@ func ___decodeArrayActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc6
}
v.HexData = vv
}
if !decoder.IsCodeNil(offset) {
var vv []message.PermissionLevel
var vvl int
vvl, offset, err = decoder.SliceLength(offset)
if err != nil {
return 0, err
}
vv = make([]message.PermissionLevel, vvl)
for vvi := range vv {
var vvv message.PermissionLevel
offset, err = ___decodeArrayPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(&vvv, decoder, offset)
if err != nil {
return 0, err
}
vv[vvi] = vvv
}
v.Authorization = vv
} else {
offset++
}
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Except = vv
}
{
var vv uint64
vv, offset, err = decoder.AsUint64(offset)
if err != nil {
return 0, err
}
v.Error = vv
}
if !decoder.IsCodeNil(offset) {
var vv []byte
var vvl int
vvl, offset, err = decoder.SliceLength(offset)
if err != nil {
return 0, err
}
vv = make([]byte, vvl)
for vvi := range vv {
var vvv byte
vvv, offset, err = decoder.AsByte(offset)
if err != nil {
return 0, err
}
vv[vvi] = vvv
}
v.Return = vv
} else {
offset++
}
return offset, err
}
// decode to github.com/eosswedenorg/thalos/api/message.ActionTrace
func ___decodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(v *message.ActionTrace, decoder *dec.Decoder, offset int) (int, error) {
keys := [][]byte{
{uint8(0x74), uint8(0x78), uint8(0x5f), uint8(0x69), uint8(0x64)}, // tx_id
{uint8(0x6e), uint8(0x61), uint8(0x6d), uint8(0x65)}, // name
{uint8(0x63), uint8(0x6f), uint8(0x6e), uint8(0x74), uint8(0x72), uint8(0x61), uint8(0x63), uint8(0x74)}, // contract
{uint8(0x72), uint8(0x65), uint8(0x63), uint8(0x65), uint8(0x69), uint8(0x76), uint8(0x65), uint8(0x72)}, // receiver
{uint8(0x64), uint8(0x61), uint8(0x74), uint8(0x61)}, // data
{uint8(0x68), uint8(0x65), uint8(0x78), uint8(0x5f), uint8(0x64), uint8(0x61), uint8(0x74), uint8(0x61)}, // hex_data
{uint8(0x74), uint8(0x78), uint8(0x5f), uint8(0x69), uint8(0x64)}, // tx_id
{uint8(0x62), uint8(0x6c), uint8(0x6f), uint8(0x63), uint8(0x6b), uint8(0x6e), uint8(0x75), uint8(0x6d)}, // blocknum
{uint8(0x62), uint8(0x6c), uint8(0x6f), uint8(0x63), uint8(0x6b), uint8(0x74), uint8(0x69), uint8(0x6d), uint8(0x65), uint8(0x73), uint8(0x74), uint8(0x61), uint8(0x6d), uint8(0x70)}, // blocktimestamp
{uint8(0x6e), uint8(0x61), uint8(0x6d), uint8(0x65)}, // name
{uint8(0x63), uint8(0x6f), uint8(0x6e), uint8(0x74), uint8(0x72), uint8(0x61), uint8(0x63), uint8(0x74)}, // contract
{uint8(0x72), uint8(0x65), uint8(0x63), uint8(0x65), uint8(0x69), uint8(0x76), uint8(0x65), uint8(0x72)}, // receiver
{uint8(0x64), uint8(0x61), uint8(0x74), uint8(0x61)}, // data
{uint8(0x68), uint8(0x65), uint8(0x78), uint8(0x5f), uint8(0x64), uint8(0x61), uint8(0x74), uint8(0x61)}, // hex_data
{uint8(0x61), uint8(0x75), uint8(0x74), uint8(0x68), uint8(0x6f), uint8(0x72), uint8(0x69), uint8(0x7a), uint8(0x61), uint8(0x74), uint8(0x69), uint8(0x6f), uint8(0x6e)}, // authorization
{uint8(0x65), uint8(0x78), uint8(0x63), uint8(0x65), uint8(0x70), uint8(0x74)}, // except
{uint8(0x65), uint8(0x72), uint8(0x72), uint8(0x6f), uint8(0x72)}, // error
{uint8(0x72), uint8(0x65), uint8(0x74), uint8(0x75), uint8(0x72), uint8(0x6e)}, // return
}
offset, err := decoder.CheckStructHeader(6, offset)
offset, err := decoder.CheckStructHeader(12, offset)
if err != nil {
return 0, err
}
count := 0
for count < 6 {
for count < 12 {
var dataKey []byte
dataKey, offset, err = decoder.AsStringBytes(offset)
if err != nil {
@ -607,22 +1022,22 @@ func ___decodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f
count++
case 1:
{
var vv string
vv, offset, err = decoder.AsString(offset)
var vv uint32
vv, offset, err = decoder.AsUint32(offset)
if err != nil {
return 0, err
}
v.Name = vv
v.BlockNum = vv
}
count++
case 2:
{
var vv string
vv, offset, err = decoder.AsString(offset)
var vv time.Time
vv, offset, err = decoder.AsDateTime(offset)
if err != nil {
return 0, err
}
v.Contract = vv
v.Timestamp = vv
}
count++
case 3:
@ -632,10 +1047,30 @@ func ___decodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f
if err != nil {
return 0, err
}
v.Receiver = vv
v.Name = vv
}
count++
case 4:
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Contract = vv
}
count++
case 5:
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Receiver = vv
}
count++
case 6:
if !decoder.IsCodeNil(offset) {
var vv []byte
var vvl int
@ -657,7 +1092,7 @@ func ___decodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f
offset++
}
count++
case 5:
case 7:
{
var vv string
vv, offset, err = decoder.AsString(offset)
@ -667,6 +1102,70 @@ func ___decodeMapActionTrace_27424f445a2085e7723342fb0df638c626b43c59240988bc64f
v.HexData = vv
}
count++
case 8:
if !decoder.IsCodeNil(offset) {
var vv []message.PermissionLevel
var vvl int
vvl, offset, err = decoder.SliceLength(offset)
if err != nil {
return 0, err
}
vv = make([]message.PermissionLevel, vvl)
for vvi := range vv {
var vvv message.PermissionLevel
offset, err = ___decodeMapPermissionLevel_27424f445a2085e7723342fb0df638c626b43c59240988bc64f2d60167ee4080(&vvv, decoder, offset)
if err != nil {
return 0, err
}
vv[vvi] = vvv
}
v.Authorization = vv
} else {
offset++
}
count++
case 9:
{
var vv string
vv, offset, err = decoder.AsString(offset)
if err != nil {
return 0, err
}
v.Except = vv
}
count++
case 10:
{
var vv uint64
vv, offset, err = decoder.AsUint64(offset)
if err != nil {
return 0, err
}
v.Error = vv
}
count++
case 11:
if !decoder.IsCodeNil(offset) {
var vv []byte
var vvl int
vvl, offset, err = decoder.SliceLength(offset)
if err != nil {
return 0, err
}
vv = make([]byte, vvl)
for vvi := range vv {
var vvv byte
vvv, offset, err = decoder.AsByte(offset)
if err != nil {
return 0, err
}
vv[vvi] = vvv
}
v.Return = vv
} else {
offset++
}
count++
default:
return 0, fmt.Errorf("unknown key[%s] found", string(dataKey))
}

View file

@ -1,6 +1,9 @@
package message
import "encoding/json"
import (
"encoding/json"
"time"
)
type HeartBeat struct {
BlockNum uint32 `json:"blocknum" msgpack:"blocknum"`
@ -16,6 +19,10 @@ type PermissionLevel struct {
type ActionTrace struct {
TxID string `json:"tx_id" msgpack:"tx_id"`
BlockNum uint32 `json:"blocknum" msgpack:"blocknum"`
Timestamp time.Time `json:"blocktimestamp" msgpack:"blocktimestamp"`
// Action name
Name string `json:"name" msgpack:"name"`