mirror of
https://github.com/status-im/status-go.git
synced 2025-01-24 21:49:54 +00:00
7fd9fefdef
This commit adds LoginAccount endpoint. This makes it consistent with CreateAccount and RestoreAccount as they use similar config. The notable difference with the previous endpoint is the API, which is the same as CreateAccount/RestoreAccount, and the fact that it will override your networks configuration. Storing them in the config is now not needed anymore, as that's always driven from the backend, and we won't allow custom networks in the new wallet.
86 lines
2.8 KiB
Go
86 lines
2.8 KiB
Go
package requests
|
|
|
|
import (
|
|
"errors"
|
|
)
|
|
|
|
var ErrCreateAccountInvalidDisplayName = errors.New("create-account: invalid display name")
|
|
var ErrCreateAccountInvalidPassword = errors.New("create-account: invalid password")
|
|
var ErrCreateAccountInvalidCustomizationColor = errors.New("create-account: invalid customization color")
|
|
var ErrCreateAccountInvalidRootKeystoreDir = errors.New("create-account: invalid root keystore directory")
|
|
var ErrCreateAccountInvalidBackupDisabledDataDir = errors.New("create-account: invalid backup disabled data directory")
|
|
var ErrCreateAccountInvalidLogFilePath = errors.New("create-account: invalid log file path")
|
|
|
|
type CreateAccount struct {
|
|
// BackupDisabledDataDir is the directory where backup is disabled
|
|
BackupDisabledDataDir string `json:"backupDisabledDataDir"`
|
|
|
|
DisplayName string `json:"displayName"`
|
|
Password string `json:"password"`
|
|
ImagePath string `json:"imagePath"`
|
|
CustomizationColor string `json:"customizationColor"`
|
|
|
|
WakuV2Nameserver *string `json:"wakuV2Nameserver"`
|
|
|
|
LogLevel *string `json:"logLevel"`
|
|
LogFilePath string `json:"logFilePath"`
|
|
LogEnabled bool `json:"logEnabled"`
|
|
|
|
PreviewPrivacy bool `json:"previewPrivacy"`
|
|
|
|
VerifyTransactionURL *string `json:"verifyTransactionURL"`
|
|
VerifyENSURL *string `json:"verifyENSURL"`
|
|
VerifyENSContractAddress *string `json:"verifyENSContractAddress"`
|
|
VerifyTransactionChainID *int64 `json:"verifyTransactionChainID"`
|
|
UpstreamConfig string `json:"upstreamConfig"`
|
|
|
|
CurrentNetwork string `json:"currentNetwork"`
|
|
NetworkID uint64 `json:"networkId"`
|
|
|
|
WalletSecretsConfig
|
|
}
|
|
|
|
type WalletSecretsConfig struct {
|
|
PoktToken string `json:"poktToken"`
|
|
InfuraToken string `json:"infuraToken"`
|
|
InfuraSecret string `json:"infuraSecret"`
|
|
OpenseaAPIKey string `json:"openseaApiKey"`
|
|
|
|
// Testing
|
|
GanacheURL string `json:"ganacheURL"`
|
|
AlchemyArbitrumMainnetToken string `json:"alchemyArbitrumMainnetToken"`
|
|
AlchemyArbitrumGoerliToken string `json:"alchemyArbitrumGoerliToken"`
|
|
AlchemyOptimismMainnetToken string `json:"alchemyOptimismMainnetToken"`
|
|
AlchemyOptimismGoerliToken string `json:"alchemyOptimismGoerliToken"`
|
|
}
|
|
|
|
func (c *CreateAccount) Validate() error {
|
|
return ValidateAccountCreationRequest(*c)
|
|
}
|
|
|
|
func ValidateAccountCreationRequest(c CreateAccount) error {
|
|
// TODO(cammellos): Add proper validation for password/displayname/etc
|
|
if len(c.DisplayName) == 0 {
|
|
return ErrCreateAccountInvalidDisplayName
|
|
}
|
|
|
|
if len(c.Password) == 0 {
|
|
return ErrCreateAccountInvalidPassword
|
|
}
|
|
|
|
if len(c.CustomizationColor) == 0 {
|
|
return ErrCreateAccountInvalidCustomizationColor
|
|
}
|
|
|
|
if len(c.BackupDisabledDataDir) == 0 {
|
|
return ErrCreateAccountInvalidBackupDisabledDataDir
|
|
}
|
|
|
|
if len(c.LogFilePath) == 0 {
|
|
return ErrCreateAccountInvalidLogFilePath
|
|
}
|
|
|
|
return nil
|
|
|
|
}
|