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

Method ToPrefix

x/bme/keeper/codec.go:24–66  ·  view source on GitHub ↗
(key types.LedgerRecordID)

Source from the content-addressed store, hash-verified

22)
23
24func (d ledgerRecordIDCodec) ToPrefix(key types.LedgerRecordID) ([]byte, error) {
25 buffer := bytes.Buffer{}
26
27 if key.Denom != "" {
28 data := conv.UnsafeStrToBytes(key.Denom)
29 buffer.WriteByte(byte(len(data)))
30 buffer.Write(data)
31
32 if key.ToDenom != "" {
33 data = conv.UnsafeStrToBytes(key.ToDenom)
34 buffer.WriteByte(byte(len(data)))
35 buffer.Write(data)
36
37 if key.Source != "" {
38 addr, err := sdktypes.AccAddressFromBech32(key.Source)
39 if err != nil {
40 return nil, err
41 }
42
43 data, err = validation.EncodeWithLengthPrefix(addr)
44 if err != nil {
45 return nil, err
46 }
47
48 buffer.Write(data)
49
50 if key.Height > 0 {
51 data = make([]byte, 8)
52 binary.BigEndian.PutUint64(data, uint64(key.Height))
53 buffer.Write(data)
54
55 if key.Sequence > 0 {
56 data = make([]byte, 8)
57 binary.BigEndian.PutUint64(data, uint64(key.Sequence))
58 buffer.Write(data)
59 }
60 }
61 }
62 }
63 }
64
65 return buffer.Bytes(), nil
66}
67
68func (d ledgerRecordIDCodec) Encode(buffer []byte, key types.LedgerRecordID) (int, error) {
69 offset := 0

Callers 1

EndBlockerMethod · 0.80

Calls 2

EncodeWithLengthPrefixFunction · 0.92
WriteMethod · 0.80

Tested by

no test coverage detected