add sentinel errors for machine module (#116)

Signed-off-by: Lorenz Herzberger <lorenzherzberger@gmail.com>
This commit is contained in:
Lorenz Herzberger 2023-10-03 13:23:56 +02:00 committed by GitHub
parent 94022e1102
commit 4db2fbc43f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 13 deletions

View File

@ -2,7 +2,6 @@ package keeper
import (
"context"
"errors"
"strconv"
config "github.com/planetmint/planetmint-go/config"
@ -13,6 +12,7 @@ import (
"github.com/btcsuite/btcd/chaincfg"
"github.com/crgimenes/go-osc"
errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
)
@ -36,21 +36,21 @@ func (k msgServer) AttestMachine(goCtx context.Context, msg *types.MsgAttestMach
isValidIssuerPlanetmint := validateExtendedPublicKey(msg.Machine.IssuerPlanetmint, config.PlmntNetParams)
if !isValidIssuerPlanetmint {
return nil, errors.New("invalid planetmint key")
return nil, errorsmod.Wrap(types.ErrInvalidKey, "planetmint")
}
isValidIssuerLiquid := validateExtendedPublicKey(msg.Machine.IssuerLiquid, config.LiquidNetParams)
if !isValidIssuerLiquid {
return nil, errors.New("invalid liquid key")
return nil, errorsmod.Wrap(types.ErrInvalidKey, "liquid")
}
if k.isNFTCreationRequest(msg.Machine) {
err := k.issueMachineNFT(msg.Machine)
if err != nil {
return nil, errors.New("an error occurred while issuing the machine NFT")
return nil, types.ErrNFTIssuanceFailed
}
}
if msg.Machine.GetType() == 0 { // 0 == RDDL_MACHINE_UNDEFINED
return nil, errors.New("the machine type has to be defined")
return nil, types.ErrMachineTypeUndefined
}
k.StoreMachine(ctx, *msg.Machine)

View File

@ -3,7 +3,6 @@ package keeper
import (
"context"
"encoding/hex"
"errors"
"github.com/planetmint/planetmint-go/x/machine/types"
@ -15,12 +14,12 @@ func (k msgServer) RegisterTrustAnchor(goCtx context.Context, msg *types.MsgRegi
isValidTrustAnchorPubkey := validatePublicKey(msg.TrustAnchor.Pubkey)
if !isValidTrustAnchorPubkey {
return nil, errors.New("invalid trust anchor pubkey")
return nil, types.ErrInvalidTrustAnchorKey
}
_, _, found := k.GetTrustAnchor(ctx, msg.TrustAnchor.Pubkey)
if found {
return nil, errors.New("trust anchor is already registered")
return nil, types.ErrTrustAnchorAlreadyRegistered
}
err := k.StoreTrustAnchor(ctx, *msg.TrustAnchor, false)

View File

@ -52,7 +52,7 @@ func TestMsgServerAttestMachineInvalidLiquidKey(t *testing.T) {
_, err := msgServer.RegisterTrustAnchor(ctx, taMsg)
assert.NoError(t, err)
_, err = msgServer.AttestMachine(ctx, msg)
assert.EqualError(t, err, "invalid liquid key")
assert.EqualError(t, err, "liquid: invalid key")
}
func TestMsgServerRegisterTrustAnchor(t *testing.T) {

View File

@ -8,8 +8,13 @@ import (
// x/machine module sentinel errors
var (
ErrMachineNotFound = errorsmod.Register(ModuleName, 2, "machine not found")
ErrTrustAnchorNotFound = errorsmod.Register(ModuleName, 3, "trust anchor not found")
ErrTrustAnchorAlreadyInUse = errorsmod.Register(ModuleName, 4, "trust anchor already in use")
ErrMachineIsNotCreator = errorsmod.Register(ModuleName, 5, "the machine.address is no the message creator address")
ErrMachineNotFound = errorsmod.Register(ModuleName, 2, "machine not found")
ErrTrustAnchorNotFound = errorsmod.Register(ModuleName, 3, "trust anchor not found")
ErrTrustAnchorAlreadyInUse = errorsmod.Register(ModuleName, 4, "trust anchor already in use")
ErrMachineIsNotCreator = errorsmod.Register(ModuleName, 5, "the machine.address is no the message creator address")
ErrInvalidKey = errorsmod.Register(ModuleName, 6, "invalid key")
ErrNFTIssuanceFailed = errorsmod.Register(ModuleName, 7, "an error occurred while issuing the machine NFT")
ErrMachineTypeUndefined = errorsmod.Register(ModuleName, 8, "the machine type has to be defined")
ErrInvalidTrustAnchorKey = errorsmod.Register(ModuleName, 9, "invalid trust anchor pubkey")
ErrTrustAnchorAlreadyRegistered = errorsmod.Register(ModuleName, 10, "trust anchor is already registered")
)