mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-04 10:21:40 +00:00
feat: Add MsgRegisterService to handle service registration
The commit message for these changes would be: feat: Add MsgRegisterService to handle service registration This commit adds a new message type `MsgRegisterService` to the DID module's transaction proto file. This message allows users to register a new service with a given permission scope and origin URI. The domain must have a valid TXT record containing the public key. The changes include: - Adding the `MsgRegisterService` message type with fields for authority, origin URI, and scopes - Adding the `MsgRegisterServiceResponse` message type to handle the response - Updating the Msg service to include a new `RegisterService` RPC method - Implementing the `RegisterService` method in the keeper This feature allows users to register new services on the DID chain, which is an important part of the overall DID functionality.
This commit is contained in:
committed by
Prad Nukala (aider)
parent
f91107d88e
commit
24db9de0ad
@@ -5,6 +5,7 @@ option go_package = "github.com/onsonr/hway/x/did/types";
|
||||
|
||||
import "cosmos/orm/v1/orm.proto";
|
||||
import "did/v1/genesis.proto";
|
||||
import "did/v1/enums.proto";
|
||||
|
||||
// Aliases represents the `alsoKnownAs` property associated with a DID Controller
|
||||
message Aliases {
|
||||
@@ -146,9 +147,15 @@ message Service {
|
||||
// The type of the service
|
||||
string service_type = 2;
|
||||
|
||||
// The service endpoint
|
||||
string service_endpoint = 3;
|
||||
|
||||
// The controller DID of the service
|
||||
string controller_did = 4;
|
||||
string controller_did = 3;
|
||||
|
||||
// The domain name of the service
|
||||
string origin_uri = 4;
|
||||
|
||||
// The service endpoint
|
||||
map<string, string> service_endpoints = 5;
|
||||
|
||||
// Scopes is the Authorization Grants of the service
|
||||
repeated PermissionScope scopes = 6;
|
||||
}
|
||||
|
||||
+55
-30
@@ -3,6 +3,7 @@ syntax = "proto3";
|
||||
package did.v1;
|
||||
|
||||
import "cosmos/msg/v1/msg.proto";
|
||||
import "did/v1/enums.proto";
|
||||
import "did/v1/genesis.proto";
|
||||
import "gogoproto/gogo.proto";
|
||||
import "cosmos_proto/cosmos.proto";
|
||||
@@ -16,11 +17,14 @@ service Msg {
|
||||
// Since: cosmos-sdk 0.47
|
||||
rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
|
||||
|
||||
// RegisterController initializes a controller with the given authentication set, address, cid, publicKey, and user-defined alias.
|
||||
rpc RegisterController(MsgInitializeController) returns (MsgInitializeControllerResponse);
|
||||
// Authenticate asserts the given controller is the owner of the given address.
|
||||
rpc Authenticate(MsgAuthenticate) returns (MsgAuthenticateResponse);
|
||||
|
||||
// AuthenticateController asserts the given controller is the owner of the given address.
|
||||
rpc AuthenticateController(MsgAuthenticateController) returns (MsgAuthenticateControllerResponse);
|
||||
// RegisterController initializes a controller with the given authentication set, address, cid, publicKey, and user-defined alias.
|
||||
rpc RegisterController(MsgRegisterController) returns (MsgRegisterControllerResponse);
|
||||
|
||||
// RegisterService initializes a Service with a given permission scope and URI. The domain must have a valid TXT record containing the public key.
|
||||
rpc RegisterService(MsgRegisterService) returns (MsgRegisterServiceResponse);
|
||||
}
|
||||
|
||||
// MsgUpdateParams is the Msg/UpdateParams request type.
|
||||
@@ -44,31 +48,8 @@ message MsgUpdateParams {
|
||||
// Since: cosmos-sdk 0.47
|
||||
message MsgUpdateParamsResponse {}
|
||||
|
||||
// MsgInitializeController is the message type for the InitializeController RPC.
|
||||
message MsgInitializeController {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// authority is the address of the governance account.
|
||||
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// Assertions is the list of assertions to initialize the controller with.
|
||||
repeated bytes assertions = 2;
|
||||
|
||||
// Keyshares is the list of keyshares to initialize the controller with.
|
||||
repeated bytes keyshares = 3;
|
||||
|
||||
// Verifications is the list of verifications to initialize the controller with.
|
||||
repeated bytes verifications = 4;
|
||||
}
|
||||
|
||||
// MsgInitializeControllerResponse is the response type for the InitializeController RPC.
|
||||
message MsgInitializeControllerResponse {
|
||||
// Controller is the address of the initialized controller.
|
||||
string controller = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
}
|
||||
|
||||
// MsgAuthenticate is the message type for the Authenticate RPC.
|
||||
message MsgAuthenticateController {
|
||||
message MsgAuthenticate {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// authority is the address of the governance account.
|
||||
@@ -84,6 +65,50 @@ message MsgAuthenticateController {
|
||||
string origin = 4;
|
||||
}
|
||||
|
||||
// MsgAuthenticateControllerResponse is the response type for the Authenticate RPC.
|
||||
message MsgAuthenticateControllerResponse {}
|
||||
// MsgAuthenticateResponse is the response type for the Authenticate RPC.
|
||||
message MsgAuthenticateResponse {}
|
||||
|
||||
// MsgRegisterController is the message type for the InitializeController RPC.
|
||||
message MsgRegisterController {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// authority is the address of the governance account.
|
||||
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// Assertions is the list of assertions to initialize the controller with.
|
||||
repeated bytes assertions = 2;
|
||||
|
||||
// Keyshares is the list of keyshares to initialize the controller with.
|
||||
repeated bytes keyshares = 3;
|
||||
|
||||
// Verifications is the list of verifications to initialize the controller with.
|
||||
repeated bytes verifications = 4;
|
||||
}
|
||||
|
||||
// MsgRegisterControllerResponse is the response type for the InitializeController RPC.
|
||||
message MsgRegisterControllerResponse {
|
||||
// Controller is the address of the initialized controller.
|
||||
string controller = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// Accounts are a Address Map and Supported coin Denoms for the controller
|
||||
map<string, string> accounts = 2;
|
||||
}
|
||||
|
||||
// MsgRegisterService is the message type for the RegisterService RPC.
|
||||
message MsgRegisterService {
|
||||
option (cosmos.msg.v1.signer) = "authority";
|
||||
|
||||
// authority is the address of the governance account.
|
||||
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
||||
|
||||
// origin is the origin of the request in wildcard form.
|
||||
string origin_uri = 2;
|
||||
|
||||
// PermissionScope is the scope of the service.
|
||||
repeated PermissionScope scopes = 3;
|
||||
}
|
||||
|
||||
// MsgRegisterServiceResponse is the response type for the RegisterService RPC.
|
||||
message MsgRegisterServiceResponse {
|
||||
bool success = 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user