mode.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. package common
  2. import (
  3. "fmt"
  4. "strings"
  5. )
  6. type Environment string
  7. const (
  8. MainNet Environment = "prod"
  9. UnsafeDevNet Environment = "dev" // local devnet; Keys are deterministic and many security controls are disabled
  10. TestNet Environment = "test" // public testnet (needs to be reliable, but run with less Guardians and faster finality)
  11. GoTest Environment = "unit-test"
  12. AccountantMock Environment = "accountant-mock" // Used for mocking accountant with a Wormchain connection
  13. )
  14. // ParseEnvironment parses a string into the corresponding Environment value, allowing various reasonable variations.
  15. func ParseEnvironment(str string) (Environment, error) {
  16. str = strings.ToLower(str)
  17. if str == "prod" || str == "mainnet" {
  18. return MainNet, nil
  19. }
  20. if str == "test" || str == "testnet" {
  21. return TestNet, nil
  22. }
  23. if str == "dev" || str == "devnet" || str == "unsafedevnet" {
  24. return UnsafeDevNet, nil
  25. }
  26. if str == "unit-test" || str == "gotest" {
  27. return GoTest, nil
  28. }
  29. if str == "accountant-mock" || str == "accountantmock" {
  30. return AccountantMock, nil
  31. }
  32. return UnsafeDevNet, fmt.Errorf("invalid environment string: %s", str)
  33. }