mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
The commit message should be: feat: Add ProveWitness and SyncVault RPCs This change adds two new RPCs to the DID module: 1. ProveWitness: An operation to prove the controller has a valid property using ZK Accumulators. 2. SyncVault: Synchronizes the controller with the Vault Motr DWN WASM Wallet. These new RPCs allow for more advanced DID management functionality.
160 lines
5.4 KiB
Protocol Buffer
160 lines
5.4 KiB
Protocol Buffer
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";
|
|
option go_package = "github.com/onsonr/hway/x/did/types";
|
|
|
|
// Msg defines the Msg service.
|
|
service Msg {
|
|
option (cosmos.msg.v1.service) = true;
|
|
// UpdateParams defines a governance operation for updating the parameters.
|
|
//
|
|
// Since: cosmos-sdk 0.47
|
|
rpc UpdateParams(MsgUpdateParams) returns (MsgUpdateParamsResponse);
|
|
|
|
// Authenticate asserts the given controller is the owner of the given address.
|
|
rpc Authenticate(MsgAuthenticate) returns (MsgAuthenticateResponse);
|
|
|
|
// ProveWitness is an operation to prove the controller has a valid property using ZK Accumulators.
|
|
rpc ProveWitness(MsgProveWitness) returns (MsgProveWitnessResponse);
|
|
|
|
// SyncVault synchronizes the controller with the Vault Motr DWN WASM Wallet.
|
|
rpc SyncVault(MsgSyncVault) returns (MsgSyncVaultResponse);
|
|
|
|
// 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.
|
|
//
|
|
// Since: cosmos-sdk 0.47
|
|
message MsgUpdateParams {
|
|
option (cosmos.msg.v1.signer) = "authority";
|
|
|
|
// authority is the address of the governance account.
|
|
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// params defines the parameters to update.
|
|
//
|
|
// NOTE: All parameters must be supplied.
|
|
Params params = 2 [(gogoproto.nullable) = false];
|
|
}
|
|
|
|
// MsgUpdateParamsResponse defines the response structure for executing a
|
|
// MsgUpdateParams message.
|
|
//
|
|
// Since: cosmos-sdk 0.47
|
|
message MsgUpdateParamsResponse {}
|
|
|
|
// MsgAuthenticate is the message type for the Authenticate RPC.
|
|
message MsgAuthenticate {
|
|
option (cosmos.msg.v1.signer) = "authority";
|
|
|
|
// authority is the address of the governance account.
|
|
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// Controller is the address of the controller to authenticate.
|
|
string controller = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// Address is the address to authenticate.
|
|
string address = 3 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// Origin is the origin of the request in wildcard form.
|
|
string origin = 4;
|
|
}
|
|
|
|
// MsgAuthenticateResponse is the response type for the Authenticate RPC.
|
|
message MsgAuthenticateResponse {}
|
|
|
|
// MsgProveWitness is the message type for the ProveWitness RPC.
|
|
message MsgProveWitness {
|
|
option (cosmos.msg.v1.signer) = "authority";
|
|
|
|
// authority is the address of the governance account.
|
|
string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// property is key to prove.
|
|
string property = 2;
|
|
|
|
// Witness Value is the bytes of the witness.
|
|
bytes witness = 3;
|
|
}
|
|
|
|
// MsgProveWitnessResponse is the response type for the ProveWitness RPC.
|
|
message MsgProveWitnessResponse {
|
|
bool success = 1;
|
|
string property = 2;
|
|
}
|
|
|
|
// MsgSyncVault is the message type for the SyncVault RPC.
|
|
message MsgSyncVault {
|
|
option (cosmos.msg.v1.signer) = "controller";
|
|
|
|
// controller is the address of the controller to sync.
|
|
string controller = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"];
|
|
|
|
// cid is the IPFS content identifier.
|
|
string cid = 2;
|
|
|
|
// Macroon is the public token to authenticate the operation.
|
|
bytes macron = 3;
|
|
}
|
|
|
|
// MsgSyncVaultResponse is the response type for the SyncVault RPC.
|
|
message MsgSyncVaultResponse {
|
|
bool success = 1;
|
|
}
|
|
|
|
// 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;
|
|
}
|