registry-sdk/proto/cerc/registry/v1/registry.proto

169 lines
5.2 KiB
Protocol Buffer
Raw Permalink Normal View History

2022-12-19 06:14:18 +00:00
syntax = "proto3";
package cerc.registry.v1;
2022-12-19 06:14:18 +00:00
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "gogoproto/gogo.proto";
import "cosmos/base/v1beta1/coin.proto";
option go_package = "git.vdb.to/cerc-io/laconicd/x/registry";
2022-12-19 06:14:18 +00:00
// Params defines the registry module parameters
message Params {
cosmos.base.v1beta1.Coin record_rent = 1 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "json:\"record_rent\" yaml:\"record_rent\""
];
2022-12-19 06:14:18 +00:00
google.protobuf.Duration record_rent_duration = 2 [
(gogoproto.nullable) = false,
2022-12-19 06:14:18 +00:00
(gogoproto.stdduration) = true,
(gogoproto.moretags) =
"json:\"record_rent_duration\" yaml:\"record_rent_duration\""
2022-12-19 06:14:18 +00:00
];
cosmos.base.v1beta1.Coin authority_rent = 3 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "json:\"authority_rent\" yaml:\"authority_rent\""
];
2022-12-19 06:14:18 +00:00
google.protobuf.Duration authority_rent_duration = 4 [
(gogoproto.nullable) = false,
2022-12-19 06:14:18 +00:00
(gogoproto.stdduration) = true,
(gogoproto.moretags) =
"json:\"authority_rent_duration\" yaml:\"authority_rent_duration\""
2022-12-19 06:14:18 +00:00
];
2022-12-19 06:14:18 +00:00
google.protobuf.Duration authority_grace_period = 5 [
(gogoproto.nullable) = false,
2022-12-19 06:14:18 +00:00
(gogoproto.stdduration) = true,
(gogoproto.moretags) =
"json:\"authority_grace_period\" yaml:\"authority_grace_period\""
2022-12-19 06:14:18 +00:00
];
bool authority_auction_enabled = 6 [
(gogoproto.moretags) =
"json:\"authority_auction_enabled\" yaml:\"authority_auction_enabled\""
];
2022-12-19 06:14:18 +00:00
google.protobuf.Duration authority_auction_commits_duration = 7 [
(gogoproto.nullable) = false,
2022-12-19 06:14:18 +00:00
(gogoproto.stdduration) = true,
(gogoproto.moretags) = "json:\"authority_auction_commits_duration\" "
"yaml:\"authority_auction_commits_duration\""
2022-12-19 06:14:18 +00:00
];
2022-12-19 06:14:18 +00:00
google.protobuf.Duration authority_auction_reveals_duration = 8 [
(gogoproto.nullable) = false,
2022-12-19 06:14:18 +00:00
(gogoproto.stdduration) = true,
(gogoproto.moretags) = "json:\"authority_auction_reveals_duration\" "
"yaml:\"authority_auction_reveals_duration\""
2022-12-19 06:14:18 +00:00
];
2022-12-19 06:14:18 +00:00
cosmos.base.v1beta1.Coin authority_auction_commit_fee = 9 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "json:\"authority_auction_commit_fee\" "
"yaml:\"authority_auction_commit_fee\""
2022-12-19 06:14:18 +00:00
];
2022-12-19 06:14:18 +00:00
cosmos.base.v1beta1.Coin authority_auction_reveal_fee = 10 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "json:\"authority_auction_reveal_fee\" "
"yaml:\"authority_auction_reveal_fee\""
2022-12-19 06:14:18 +00:00
];
2022-12-19 06:14:18 +00:00
cosmos.base.v1beta1.Coin authority_auction_minimum_bid = 11 [
(gogoproto.nullable) = false,
(gogoproto.moretags) = "json:\"authority_auction_minimum_bid\" "
"yaml:\"authority_auction_minimum_bid\""
2022-12-19 06:14:18 +00:00
];
}
// Record defines a registry record
2022-12-19 06:14:18 +00:00
message Record {
string id = 1 [ (gogoproto.moretags) = "json:\"id\" yaml:\"id\"" ];
string bond_id = 2
[ (gogoproto.moretags) = "json:\"bond_id\" yaml:\"bond_id\"" ];
string create_time = 3
[ (gogoproto.moretags) = "json:\"create_time\" yaml:\"create_time\"" ];
string expiry_time = 4
[ (gogoproto.moretags) = "json:\"expiry_time\" yaml:\"expiry_time\"" ];
bool deleted = 5;
repeated string owners = 6
[ (gogoproto.moretags) = "json:\"owners\" yaml:\"owners\"" ];
bytes attributes = 7
[ (gogoproto.moretags) = "json:\"attributes\" yaml:\"attributes\"" ];
repeated string names = 8
[ (gogoproto.moretags) = "json:\"names\" yaml:\"names\"" ];
string type = 9 [ (gogoproto.moretags) = "json:\"types\" yaml:\"types\"" ];
2022-12-19 06:14:18 +00:00
}
// AuthorityEntry defines a registry authority
2022-12-19 06:14:18 +00:00
message AuthorityEntry {
string name = 1;
2022-12-19 06:14:18 +00:00
NameAuthority entry = 2;
}
// NameAuthority
message NameAuthority {
// Owner public key.
string owner_public_key = 1
[ (gogoproto.moretags) =
"json:\"owner_public_key\" yaml:\"owner_public_key\"" ];
2022-12-19 06:14:18 +00:00
// Owner address.
string owner_address = 2
[ (gogoproto.moretags) =
"json:\"owner_address\" yaml:\"owner_address\"" ];
2022-12-19 06:14:18 +00:00
// height at which name/authority was created.
uint64 height = 3;
string status = 4;
string auction_id = 5
[ (gogoproto.moretags) = "json:\"auction_id\" yaml:\"auction_id\"" ];
string bond_id = 6
[ (gogoproto.moretags) = "json:\"bond_id\" yaml:\"bond_id\"" ];
2022-12-19 06:14:18 +00:00
google.protobuf.Timestamp expiry_time = 7 [
(gogoproto.nullable) = false,
(gogoproto.stdtime) = true,
(gogoproto.moretags) = "json:\"expiry_time\" yaml:\"expiry_time\""
2022-12-19 06:14:18 +00:00
];
}
// NameEntry
message NameEntry {
string name = 1;
2022-12-19 06:14:18 +00:00
NameRecord entry = 2;
}
// NameRecord defines a versioned name record
2022-12-19 06:14:18 +00:00
message NameRecord {
NameRecordEntry latest = 1;
2022-12-19 06:14:18 +00:00
repeated NameRecordEntry history = 2;
}
// NameRecordEntry
message NameRecordEntry {
string id = 1;
2022-12-19 06:14:18 +00:00
uint64 height = 2;
}
// Signature
message Signature {
string sig = 1 [ (gogoproto.moretags) = "json:\"sig\" yaml:\"sig\"" ];
string pub_key = 2
[ (gogoproto.moretags) = "json:\"pub_key\" yaml:\"pub_key\"" ];
2022-12-19 06:14:18 +00:00
}
// ExpiryQueue: record / authority expiry queue type
// id: expiry time
// value: array of ids (record cids / authority names)
message ExpiryQueue {
string id = 1;
repeated string value = 2;
2022-12-19 06:14:18 +00:00
}
// List of record ids
// Value type to be used in AttributesMap
message RecordsList { repeated string value = 1; }