2024-02-15 07:08:32 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
|
|
|
package cerc.registry.v1;
|
|
|
|
|
|
|
|
import "google/protobuf/duration.proto";
|
|
|
|
import "google/protobuf/timestamp.proto";
|
|
|
|
import "gogoproto/gogo.proto";
|
|
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
|
|
|
2024-04-01 09:57:26 +00:00
|
|
|
option go_package = "git.vdb.to/cerc-io/laconicd/x/registry";
|
2024-02-15 07:08:32 +00:00
|
|
|
|
|
|
|
// Params defines the registry module parameters
|
|
|
|
message Params {
|
2024-03-07 11:25:15 +00:00
|
|
|
cosmos.base.v1beta1.Coin record_rent = 1 [
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(gogoproto.moretags) = "json:\"record_rent\" yaml:\"record_rent\""
|
|
|
|
];
|
|
|
|
|
|
|
|
google.protobuf.Duration record_rent_duration = 2 [
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.nullable) = false,
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.stdduration) = true,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) =
|
|
|
|
"json:\"record_rent_duration\" yaml:\"record_rent_duration\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
cosmos.base.v1beta1.Coin authority_rent = 3 [
|
|
|
|
(gogoproto.nullable) = false,
|
|
|
|
(gogoproto.moretags) = "json:\"authority_rent\" yaml:\"authority_rent\""
|
|
|
|
];
|
|
|
|
|
|
|
|
google.protobuf.Duration authority_rent_duration = 4 [
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.nullable) = false,
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.stdduration) = true,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) =
|
|
|
|
"json:\"authority_rent_duration\" yaml:\"authority_rent_duration\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
google.protobuf.Duration authority_grace_period = 5 [
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.nullable) = false,
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.stdduration) = true,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) =
|
|
|
|
"json:\"authority_grace_period\" yaml:\"authority_grace_period\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
2024-03-07 11:25:15 +00:00
|
|
|
bool authority_auction_enabled = 6 [
|
|
|
|
(gogoproto.moretags) =
|
|
|
|
"json:\"authority_auction_enabled\" yaml:\"authority_auction_enabled\""
|
|
|
|
];
|
2024-02-15 07:08:32 +00:00
|
|
|
|
|
|
|
google.protobuf.Duration authority_auction_commits_duration = 7 [
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.nullable) = false,
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.stdduration) = true,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) = "json:\"authority_auction_commits_duration\" "
|
|
|
|
"yaml:\"authority_auction_commits_duration\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
google.protobuf.Duration authority_auction_reveals_duration = 8 [
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.nullable) = false,
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.stdduration) = true,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) = "json:\"authority_auction_reveals_duration\" "
|
|
|
|
"yaml:\"authority_auction_reveals_duration\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
cosmos.base.v1beta1.Coin authority_auction_commit_fee = 9 [
|
|
|
|
(gogoproto.nullable) = false,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) = "json:\"authority_auction_commit_fee\" "
|
|
|
|
"yaml:\"authority_auction_commit_fee\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
cosmos.base.v1beta1.Coin authority_auction_reveal_fee = 10 [
|
|
|
|
(gogoproto.nullable) = false,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) = "json:\"authority_auction_reveal_fee\" "
|
|
|
|
"yaml:\"authority_auction_reveal_fee\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
cosmos.base.v1beta1.Coin authority_auction_minimum_bid = 11 [
|
|
|
|
(gogoproto.nullable) = false,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.moretags) = "json:\"authority_auction_minimum_bid\" "
|
|
|
|
"yaml:\"authority_auction_minimum_bid\""
|
2024-02-15 07:08:32 +00:00
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Record defines a registry record
|
|
|
|
message Record {
|
2024-03-07 11:25:15 +00:00
|
|
|
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\"" ];
|
2024-02-15 07:08:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// AuthorityEntry defines a registry authority
|
|
|
|
message AuthorityEntry {
|
2024-03-07 11:25:15 +00:00
|
|
|
string name = 1;
|
2024-02-15 07:08:32 +00:00
|
|
|
NameAuthority entry = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// NameAuthority
|
|
|
|
message NameAuthority {
|
|
|
|
// Owner public key.
|
2024-03-07 11:25:15 +00:00
|
|
|
string owner_public_key = 1
|
|
|
|
[ (gogoproto.moretags) =
|
|
|
|
"json:\"owner_public_key\" yaml:\"owner_public_key\"" ];
|
2024-02-15 07:08:32 +00:00
|
|
|
// Owner address.
|
2024-03-07 11:25:15 +00:00
|
|
|
string owner_address = 2
|
|
|
|
[ (gogoproto.moretags) =
|
|
|
|
"json:\"owner_address\" yaml:\"owner_address\"" ];
|
2024-02-15 07:08:32 +00:00
|
|
|
// height at which name/authority was created.
|
2024-03-07 11:25:15 +00:00
|
|
|
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\"" ];
|
2024-02-15 07:08:32 +00:00
|
|
|
|
|
|
|
google.protobuf.Timestamp expiry_time = 7 [
|
|
|
|
(gogoproto.nullable) = false,
|
2024-03-07 11:25:15 +00:00
|
|
|
(gogoproto.stdtime) = true,
|
2024-02-15 07:08:32 +00:00
|
|
|
(gogoproto.moretags) = "json:\"expiry_time\" yaml:\"expiry_time\""
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
// NameEntry
|
|
|
|
message NameEntry {
|
2024-03-07 11:25:15 +00:00
|
|
|
string name = 1;
|
2024-02-15 07:08:32 +00:00
|
|
|
NameRecord entry = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// NameRecord defines a versioned name record
|
|
|
|
message NameRecord {
|
2024-03-07 11:25:15 +00:00
|
|
|
NameRecordEntry latest = 1;
|
2024-02-15 07:08:32 +00:00
|
|
|
repeated NameRecordEntry history = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// NameRecordEntry
|
|
|
|
message NameRecordEntry {
|
2024-03-07 11:25:15 +00:00
|
|
|
string id = 1;
|
2024-02-15 07:08:32 +00:00
|
|
|
uint64 height = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
// Signature
|
|
|
|
message Signature {
|
2024-03-07 11:25:15 +00:00
|
|
|
string sig = 1 [ (gogoproto.moretags) = "json:\"sig\" yaml:\"sig\"" ];
|
|
|
|
string pub_key = 2
|
|
|
|
[ (gogoproto.moretags) = "json:\"pub_key\" yaml:\"pub_key\"" ];
|
2024-02-15 07:08:32 +00:00
|
|
|
}
|
|
|
|
|
2024-02-26 06:16:09 +00:00
|
|
|
// ExpiryQueue: record / authority expiry queue type
|
|
|
|
// id: expiry time
|
|
|
|
// value: array of ids (record cids / authority names)
|
|
|
|
message ExpiryQueue {
|
2024-03-07 11:25:15 +00:00
|
|
|
string id = 1;
|
2024-02-26 06:16:09 +00:00
|
|
|
repeated string value = 2;
|
|
|
|
}
|
2024-02-29 11:54:35 +00:00
|
|
|
|
|
|
|
// List of record ids
|
|
|
|
// Value type to be used in AttributesMap
|
2024-03-07 11:25:15 +00:00
|
|
|
message RecordsList { repeated string value = 1; }
|