sonr/proto/did/v1/genesis.proto

72 lines
1.8 KiB
Protocol Buffer
Raw Normal View History

2024-07-05 22:20:13 -04:00
syntax = "proto3";
package did.v1;
import "amino/amino.proto";
2024-09-14 14:27:45 -04:00
import "gogoproto/gogo.proto";
option go_package = "github.com/onsonr/sonr/x/did/types";
2024-07-05 22:20:13 -04:00
// GenesisState defines the module genesis state
message GenesisState {
feat: add enums.pulsar.go file for PermissionScope enum (#4) * feat: add enums.pulsar.go file for PermissionScope enum * refactor: remove PERMISSION_SCOPE_IDENTIFIERS_ENS enum value * 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. * (no commit message provided) * fix: Add ProveWitness and SyncVault RPCs 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. * fix: Remove unused `Meta` message from `genesis.proto` * refactor: Simplify the types and properties to keep a consistent structure for the blockchain * (no commit message provided) * {} * feat: add Equal methods for AssetInfo and ChainInfo types
2024-08-10 18:27:11 -04:00
// Params defines all the parameters of the module.
2024-10-08 16:43:59 -04:00
Params params = 1 [ (gogoproto.nullable) = false ];
2024-07-05 22:20:13 -04:00
}
// Params defines the set of module parameters.
message Params {
option (amino.name) = "did/params";
option (gogoproto.equal) = true;
option (gogoproto.goproto_stringer) = false;
2024-09-14 14:27:45 -04:00
// Whitelisted Assets
2024-07-05 22:20:13 -04:00
2024-09-14 14:27:45 -04:00
// Whitelisted Key Types
map<string, KeyInfo> allowed_public_keys = 2;
// ConveyancePreference defines the conveyance preference
2024-09-25 19:49:16 -04:00
string conveyance_preference = 3;
2024-09-14 14:27:45 -04:00
// AttestationFormats defines the attestation formats
2024-09-25 19:49:16 -04:00
repeated string attestation_formats = 4;
2024-09-14 14:27:45 -04:00
}
// KeyInfo defines information for accepted PubKey types
message KeyInfo {
string role = 1;
string algorithm = 2; // e.g., "ES256", "EdDSA", "ES256K"
2024-10-08 16:43:59 -04:00
string encoding = 3; // e.g., "hex", "base64", "multibase"
string curve = 4; // e.g., "P256", "P384", "P521", "X25519", "X448",
2024-09-25 19:49:16 -04:00
// "Ed25519", "Ed448", "secp256k1"
2024-09-14 14:27:45 -04:00
}
2024-10-08 16:43:59 -04:00
message Keyshares {
string validator_cid = 1;
string user_cid = 2;
int64 last_updated_block = 3;
}
// PubKey defines a public key for a did
message PubKey {
string role = 1;
string key_type = 2;
RawKey raw_key = 3;
JSONWebKey jwk = 4;
}
// JWK represents a JSON Web Key
message JSONWebKey {
string kty = 1; // Key Type
string crv = 2; // Curve (for EC and OKP keys)
string x = 3; // X coordinate (for EC and OKP keys)
string y = 4; // Y coordinate (for EC keys)
string n = 5; // Modulus (for RSA keys)
string e = 6; // Exponent (for RSA keys)
}
message RawKey {
string algorithm = 1;
string encoding = 2;
string curve = 3;
bytes key = 4;
}