Files
motr-enclave/internal/types/generate.go

42 lines
1.3 KiB
Go
Raw Normal View History

package types
// GenerateInput represents the input for the generate function
type GenerateInput struct {
Credential string `json:"credential"` // Base64-encoded WebAuthn credential
// MPC keyshare data (optional - if provided, creates initial keyshare and account)
KeyShare *KeyShareInput `json:"key_share,omitempty"`
}
// KeyShareInput represents MPC keyshare data for initialization
type KeyShareInput struct {
KeyID string `json:"key_id"`
PartyIndex int64 `json:"party_index"`
Threshold int64 `json:"threshold"`
TotalParties int64 `json:"total_parties"`
Curve string `json:"curve"`
ShareData string `json:"share_data"`
PublicKey string `json:"public_key"`
ChainCode string `json:"chain_code,omitempty"`
DerivationPath string `json:"derivation_path,omitempty"`
}
// GenerateOutput represents the output of the generate function
type GenerateOutput struct {
DID string `json:"did"`
Database []byte `json:"database"`
// KeyShare info if a keyshare was provided
KeyShareID string `json:"key_share_id,omitempty"`
// Account info if an account was created
Account *AccountInfo `json:"account,omitempty"`
}
// AccountInfo represents created account information
type AccountInfo struct {
Address string `json:"address"`
ChainID string `json:"chain_id"`
CoinType int64 `json:"coin_type"`
}