Search Apps Documentation Source Content File Folder Download Copy Actions Download

packet_key.gno

2.31 Kb · 57 lines
 1package host
 2
 3import "gno.land/p/aib/encoding"
 4
 5const (
 6	PacketCommitmentBasePrefix      = byte(1)
 7	PacketReceiptBasePrefix         = byte(2)
 8	PacketAcknowledgementBasePrefix = byte(3)
 9)
10
11// PacketCommitmentPrefixKey returns the store key prefix under which packet
12// commitments for a particular client are stored.
13// clientID must be a generated identifier, not provided externally so key
14// collisions are not possible.
15func PacketCommitmentPrefixKey(clientID string) []byte {
16	return append([]byte(clientID), PacketCommitmentBasePrefix)
17}
18
19// PacketCommitmentKey returns the store key of under which a packet commitment
20// is stored.
21// clientID must be a generated identifier, not provided externally so key
22// collisions are not possible.
23func PacketCommitmentKey(clientID string, sequence uint64) []byte {
24	return append(PacketCommitmentPrefixKey(clientID), encoding.Uint64ToBigEndian(sequence)...)
25}
26
27// PacketReceiptPrefixKey returns the store key prefix under which packet
28// receipts for a particular channel are stored.
29// clientID must be a generated identifier, not provided externally so key
30// collisions are not possible.
31func PacketReceiptPrefixKey(clientID string) []byte {
32	return append([]byte(clientID), PacketReceiptBasePrefix)
33}
34
35// PacketReceiptKey returns the store key of under which a packet receipt is
36// stored.
37// clientID must be a generated identifier, not provided externally so key
38// collisions are not possible.
39func PacketReceiptKey(clientID string, sequence uint64) []byte {
40	return append(PacketReceiptPrefixKey(clientID), encoding.Uint64ToBigEndian(sequence)...)
41}
42
43// PacketAcknowledgementPrefixKey returns the store key prefix under which
44// packet acknowledgements for a particular channel are stored.  clientID must
45// be a generated identifier, not provided externally so key collisions are not
46// possible.
47func PacketAcknowledgementPrefixKey(clientID string) []byte {
48	return append([]byte(clientID), PacketAcknowledgementBasePrefix)
49}
50
51// PacketAcknowledgementKey returns the store key of under which a packet
52// acknowledgement is stored.
53// clientID must be a generated identifier, not provided externally so key
54// collisions are not possible.
55func PacketAcknowledgementKey(clientID string, sequence uint64) []byte {
56	return append(PacketAcknowledgementPrefixKey(clientID), encoding.Uint64ToBigEndian(sequence)...)
57}