MCPcopy Create free account
hub / github.com/akash-network/node / Encode

Method Encode

x/bme/keeper/codec.go:68–100  ·  view source on GitHub ↗
(buffer []byte, key types.LedgerRecordID)

Source from the content-addressed store, hash-verified

66}
67
68func (d ledgerRecordIDCodec) Encode(buffer []byte, key types.LedgerRecordID) (int, error) {
69 offset := 0
70
71 data := conv.UnsafeStrToBytes(key.Denom)
72 buffer[offset] = byte(len(data))
73 offset++
74 offset += copy(buffer[offset:], data)
75
76 data = conv.UnsafeStrToBytes(key.ToDenom)
77 buffer[offset] = byte(len(data))
78 offset++
79 offset += copy(buffer[offset:], data)
80
81 addr, err := sdktypes.AccAddressFromBech32(key.Source)
82 if err != nil {
83 return 0, err
84 }
85
86 data, err = validation.EncodeWithLengthPrefix(addr)
87 if err != nil {
88 return 0, err
89 }
90
91 offset += copy(buffer[offset:], data)
92
93 binary.BigEndian.PutUint64(buffer[offset:], uint64(key.Height)) //nolint: gosec
94 offset += 8
95
96 binary.BigEndian.PutUint64(buffer[offset:], uint64(key.Sequence)) //nolint: gosec
97 offset += 8
98
99 return offset, nil
100}
101
102func (d ledgerRecordIDCodec) Decode(buffer []byte) (int, types.LedgerRecordID, error) {
103 originBuffer := buffer

Callers 2

EncodeNonTerminalMethod · 0.95
encodeLedgerNextKeyMethod · 0.45

Calls 1

EncodeWithLengthPrefixFunction · 0.92

Tested by

no test coverage detected