-
Notifications
You must be signed in to change notification settings - Fork 194
/
operatorlist.go
59 lines (46 loc) · 1.67 KB
/
operatorlist.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package keeper
import (
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/Stride-Labs/stride/v18/x/staketia/types"
)
// CheckIsOperatorAddress checks if the given address is the operator address
func isOperatorAddress(hostZone types.HostZone, address string) bool {
return address == hostZone.OperatorAddressOnStride
}
// CheckIsSafeAddress checks if the given address is the safe address
func isSafeAddress(hostZone types.HostZone, address string) bool {
return address == hostZone.SafeAddressOnStride
}
// CheckIsOperatorAddress checks if the given address is EITHER the safe admin OR operator admin address
func (k Keeper) CheckIsOperatorAddress(ctx sdk.Context, address string) error {
hostZone, err := k.GetHostZone(ctx)
if err != nil {
return err
}
if !isOperatorAddress(hostZone, address) {
return types.ErrInvalidAdmin.Wrapf("invalid operator address %s", address)
}
return nil
}
// CheckIsSafeAddress checks if the given address is the safe admin address
func (k Keeper) CheckIsSafeAddress(ctx sdk.Context, address string) error {
hostZone, err := k.GetHostZone(ctx)
if err != nil {
return err
}
if !isSafeAddress(hostZone, address) {
return types.ErrInvalidAdmin.Wrapf("invalid safe address %s", address)
}
return nil
}
// CheckIsSafeOrOperatorAddress checks if the given address is EITHER the safe admin OR operator admin address
func (k Keeper) CheckIsSafeOrOperatorAddress(ctx sdk.Context, address string) error {
hostZone, err := k.GetHostZone(ctx)
if err != nil {
return err
}
if !isSafeAddress(hostZone, address) && !isOperatorAddress(hostZone, address) {
return types.ErrInvalidAdmin.Wrapf("invalid admin address %s", address)
}
return nil
}