42 lines
1.3 KiB
Go
42 lines
1.3 KiB
Go
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"`
|
|
}
|