mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
81 lines
2.9 KiB
Protocol Buffer
81 lines
2.9 KiB
Protocol Buffer
syntax = "proto3";
|
|
package svc.v1;
|
|
|
|
import "amino/amino.proto";
|
|
import "gogoproto/gogo.proto";
|
|
import "cosmos/base/v1beta1/coin.proto";
|
|
import "cosmos_proto/cosmos.proto";
|
|
import "svc/v1/state.proto";
|
|
|
|
option go_package = "github.com/sonr-io/sonr/x/svc/types";
|
|
|
|
// GenesisState defines the module genesis state
|
|
message GenesisState {
|
|
// Params defines all the parameters of the module.
|
|
Params params = 1 [(gogoproto.nullable) = false];
|
|
|
|
// Service capabilities stored in the module
|
|
repeated ServiceCapability capabilities = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
// Params defines the set of module parameters.
|
|
message Params {
|
|
option (amino.name) = "svc/params";
|
|
option (gogoproto.equal) = true;
|
|
option (gogoproto.goproto_stringer) = false;
|
|
|
|
// Service Limits
|
|
// Maximum number of services that can be registered per account
|
|
uint32 max_services_per_account = 1;
|
|
// Maximum number of domains that can be bound to a single service
|
|
uint32 max_domains_per_service = 2;
|
|
// Maximum number of endpoints that can be registered per service
|
|
uint32 max_endpoints_per_service = 3;
|
|
|
|
// Timeouts and Intervals (in seconds)
|
|
// Time allowed for domain ownership verification before expiry
|
|
int64 domain_verification_timeout = 4;
|
|
// Interval between service health checks
|
|
int64 service_health_check_interval = 5;
|
|
// Default expiration time for capabilities if not specified
|
|
int64 capability_default_expiration = 6;
|
|
|
|
// Economic Parameters
|
|
// Fee required to register a new service
|
|
cosmos.base.v1beta1.Coin service_registration_fee = 7
|
|
[(gogoproto.nullable) = false];
|
|
// Fee required to verify domain ownership
|
|
cosmos.base.v1beta1.Coin domain_verification_fee = 8
|
|
[(gogoproto.nullable) = false];
|
|
// Minimum stake required to keep a service active
|
|
cosmos.base.v1beta1.Coin min_service_stake = 9
|
|
[(gogoproto.nullable) = false];
|
|
|
|
// UCAN and Capability Settings
|
|
// Maximum depth of delegation chains for capabilities
|
|
uint32 max_delegation_chain_depth = 10;
|
|
// Maximum lifetime for UCAN tokens (in seconds)
|
|
int64 ucan_max_lifetime = 11;
|
|
// Minimum lifetime for UCAN tokens (in seconds)
|
|
int64 ucan_min_lifetime = 12;
|
|
// List of supported signature algorithms for UCAN
|
|
repeated string supported_signature_algorithms = 13;
|
|
|
|
// Validation Rules
|
|
// Whether to require cryptographic proof of domain ownership
|
|
bool require_domain_ownership_proof = 14;
|
|
// Whether to require HTTPS for service endpoints
|
|
bool require_https = 15;
|
|
// Whether to allow localhost domains for development
|
|
bool allow_localhost = 16;
|
|
// Maximum length for service description text
|
|
uint32 max_service_description_length = 17;
|
|
|
|
// Rate Limiting
|
|
// Maximum number of service registrations allowed per block
|
|
uint32 max_registrations_per_block = 18;
|
|
// Maximum number of service updates allowed per block
|
|
uint32 max_updates_per_block = 19;
|
|
// Maximum number of capability grants allowed per block
|
|
uint32 max_capability_grants_per_block = 20;
|
|
} |