sdkerrors.Wrap

This commit is contained in:
0xmuralik 2023-03-15 10:30:41 +05:30
parent b8d6300e4d
commit 2c883282bc
6 changed files with 72 additions and 66 deletions

View File

@ -3,6 +3,7 @@ package keeper
import ( import (
"context" "context"
errorsmod "cosmossdk.io/errors"
"github.com/cerc-io/laconicd/x/registry/types" "github.com/cerc-io/laconicd/x/registry/types"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
@ -48,7 +49,7 @@ func (q Querier) GetRecord(c context.Context, req *types.QueryRecordByIDRequest)
ctx := sdk.UnwrapSDKContext(c) ctx := sdk.UnwrapSDKContext(c)
id := req.GetId() id := req.GetId()
if !q.Keeper.HasRecord(ctx, id) { if !q.Keeper.HasRecord(ctx, id) {
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "Record not found.") return nil, errorsmod.Wrap(sdkerrors.ErrUnknownRequest, "Record not found.")
} }
record := q.Keeper.GetRecord(ctx, id) record := q.Keeper.GetRecord(ctx, id)
return &types.QueryRecordByIDResponse{Record: record}, nil return &types.QueryRecordByIDResponse{Record: record}, nil
@ -86,11 +87,11 @@ func (q Querier) LookupCrn(c context.Context, req *types.QueryLookupCrn) (*types
ctx := sdk.UnwrapSDKContext(c) ctx := sdk.UnwrapSDKContext(c)
crn := req.GetCrn() crn := req.GetCrn()
if !q.Keeper.HasNameRecord(ctx, crn) { if !q.Keeper.HasNameRecord(ctx, crn) {
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "CRN not found.") return nil, errorsmod.Wrap(sdkerrors.ErrUnknownRequest, "CRN not found.")
} }
nameRecord := q.Keeper.GetNameRecord(ctx, crn) nameRecord := q.Keeper.GetNameRecord(ctx, crn)
if nameRecord == nil { if nameRecord == nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "name record not found.") return nil, errorsmod.Wrap(sdkerrors.ErrUnknownRequest, "name record not found.")
} }
return &types.QueryLookupCrnResponse{Name: nameRecord}, nil return &types.QueryLookupCrnResponse{Name: nameRecord}, nil
} }
@ -100,7 +101,7 @@ func (q Querier) ResolveCrn(c context.Context, req *types.QueryResolveCrn) (*typ
crn := req.GetCrn() crn := req.GetCrn()
record := q.Keeper.ResolveCRN(ctx, crn) record := q.Keeper.ResolveCRN(ctx, crn)
if record == nil { if record == nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrUnknownRequest, "record not found.") return nil, errorsmod.Wrap(sdkerrors.ErrUnknownRequest, "record not found.")
} }
return &types.QueryResolveCrnResponse{Record: record}, nil return &types.QueryResolveCrnResponse{Record: record}, nil
} }

View File

@ -7,6 +7,7 @@ import (
"sort" "sort"
"time" "time"
errorsmod "cosmossdk.io/errors"
auctionkeeper "github.com/cerc-io/laconicd/x/auction/keeper" auctionkeeper "github.com/cerc-io/laconicd/x/auction/keeper"
bondkeeper "github.com/cerc-io/laconicd/x/bond/keeper" bondkeeper "github.com/cerc-io/laconicd/x/bond/keeper"
"github.com/cerc-io/laconicd/x/registry/helpers" "github.com/cerc-io/laconicd/x/registry/helpers"
@ -240,7 +241,7 @@ func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*type
resourceSignBytes, _ := record.GetSignBytes() resourceSignBytes, _ := record.GetSignBytes()
cid, err := record.GetCID() cid, err := record.GetCID()
if err != nil { if err != nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid record JSON") return nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid record JSON")
} }
record.ID = cid record.ID = cid
@ -255,13 +256,13 @@ func (k Keeper) ProcessSetRecord(ctx sdk.Context, msg types.MsgSetRecord) (*type
pubKey, err := legacy.PubKeyFromBytes(helpers.BytesFromBase64(sig.PubKey)) pubKey, err := legacy.PubKeyFromBytes(helpers.BytesFromBase64(sig.PubKey))
if err != nil { if err != nil {
fmt.Println("Error decoding pubKey from bytes: ", err) fmt.Println("Error decoding pubKey from bytes: ", err)
return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Invalid public key.") return nil, errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Invalid public key.")
} }
sigOK := pubKey.VerifySignature(resourceSignBytes, helpers.BytesFromBase64(sig.Sig)) sigOK := pubKey.VerifySignature(resourceSignBytes, helpers.BytesFromBase64(sig.Sig))
if !sigOK { if !sigOK {
fmt.Println("Signature mismatch: ", sig.PubKey) fmt.Println("Signature mismatch: ", sig.PubKey)
return nil, sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Invalid signature.") return nil, errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Invalid signature.")
} }
record.Owners = append(record.Owners, pubKey.Address().String()) record.Owners = append(record.Owners, pubKey.Address().String())
} }

View File

@ -7,6 +7,7 @@ import (
"strings" "strings"
"time" "time"
errorsmod "cosmossdk.io/errors"
auctiontypes "github.com/cerc-io/laconicd/x/auction/types" auctiontypes "github.com/cerc-io/laconicd/x/auction/types"
"github.com/cerc-io/laconicd/x/registry/helpers" "github.com/cerc-io/laconicd/x/registry/helpers"
"github.com/cerc-io/laconicd/x/registry/types" "github.com/cerc-io/laconicd/x/registry/types"
@ -112,12 +113,12 @@ func (k Keeper) updateBlockChangeSetForName(ctx sdk.Context, crn string) {
func (k Keeper) getAuthority(ctx sdk.Context, crn string) (string, *url.URL, *types.NameAuthority, error) { func (k Keeper) getAuthority(ctx sdk.Context, crn string) (string, *url.URL, *types.NameAuthority, error) {
parsedCRN, err := url.Parse(crn) parsedCRN, err := url.Parse(crn)
if err != nil { if err != nil {
return "", nil, nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid CRN.") return "", nil, nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid CRN.")
} }
name := parsedCRN.Host name := parsedCRN.Host
if !k.HasNameAuthority(ctx, name) { if !k.HasNameAuthority(ctx, name) {
return name, nil, nil, sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Name authority not found.") return name, nil, nil, errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Name authority not found.")
} }
authority := k.GetNameAuthority(ctx, name) authority := k.GetNameAuthority(ctx, name)
return name, parsedCRN, &authority, nil return name, parsedCRN, &authority, nil
@ -131,19 +132,19 @@ func (k Keeper) checkCRNAccess(ctx sdk.Context, signer sdk.AccAddress, crn strin
formattedCRN := fmt.Sprintf("crn://%s%s", name, parsedCRN.RequestURI()) formattedCRN := fmt.Sprintf("crn://%s%s", name, parsedCRN.RequestURI())
if formattedCRN != crn { if formattedCRN != crn {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid CRN.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid CRN.")
} }
if authority.OwnerAddress != signer.String() { if authority.OwnerAddress != signer.String() {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Access denied.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Access denied.")
} }
if authority.Status != types.AuthorityActive { if authority.Status != types.AuthorityActive {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Authority is not active.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Authority is not active.")
} }
if authority.BondId == "" || len(authority.BondId) == 0 { if authority.BondId == "" || len(authority.BondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Authority bond not found.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Authority bond not found.")
} }
if authority.OwnerPublicKey == "" { if authority.OwnerPublicKey == "" {
@ -323,13 +324,13 @@ func (k Keeper) ProcessReserveSubAuthority(ctx sdk.Context, name string, msg typ
// Check if parent authority exists. // Check if parent authority exists.
if !k.HasNameAuthority(ctx, parent) { if !k.HasNameAuthority(ctx, parent) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Parent authority not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Parent authority not found.")
} }
parentAuthority := k.GetNameAuthority(ctx, parent) parentAuthority := k.GetNameAuthority(ctx, parent)
// Sub-authority creator needs to be the owner of the parent authority. // Sub-authority creator needs to be the owner of the parent authority.
if parentAuthority.OwnerAddress != msg.Signer { if parentAuthority.OwnerAddress != msg.Signer {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Access denied.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Access denied.")
} }
// Sub-authority owner defaults to parent authority owner. // Sub-authority owner defaults to parent authority owner.
@ -362,17 +363,17 @@ func (k Keeper) createAuthority(ctx sdk.Context, name string, owner string, isRo
if k.HasNameAuthority(ctx, name) { if k.HasNameAuthority(ctx, name) {
authority := k.GetNameAuthority(ctx, name) authority := k.GetNameAuthority(ctx, name)
if authority.Status != types.AuthorityExpired { if authority.Status != types.AuthorityExpired {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Name already reserved.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Name already reserved.")
} }
} }
ownerAddress, err := sdk.AccAddressFromBech32(owner) ownerAddress, err := sdk.AccAddressFromBech32(owner)
if err != nil { if err != nil {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid owner address.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid owner address.")
} }
ownerAccount := k.accountKeeper.GetAccount(ctx, ownerAddress) ownerAccount := k.accountKeeper.GetAccount(ctx, ownerAddress)
if ownerAccount == nil { if ownerAccount == nil {
return sdkerrors.Wrap(sdkerrors.ErrUnknownAddress, "Account not found.") return errorsmod.Wrap(sdkerrors.ErrUnknownAddress, "Account not found.")
} }
authority := types.NameAuthority{ authority := types.NameAuthority{
@ -430,11 +431,11 @@ func (k Keeper) ProcessReserveAuthority(ctx sdk.Context, msg types.MsgReserveAut
crn := fmt.Sprintf("crn://%s", msg.GetName()) crn := fmt.Sprintf("crn://%s", msg.GetName())
parsedCrn, err := url.Parse(crn) parsedCrn, err := url.Parse(crn)
if err != nil { if err != nil {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid name") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid name")
} }
name := parsedCrn.Host name := parsedCrn.Host
if fmt.Sprintf("crn://%s", name) != crn { if fmt.Sprintf("crn://%s", name) != crn {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Invalid name") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Invalid name")
} }
if strings.Contains(name, ".") { if strings.Contains(name, ".") {
return k.ProcessReserveSubAuthority(ctx, name, msg) return k.ProcessReserveSubAuthority(ctx, name, msg)
@ -450,20 +451,20 @@ func (k Keeper) ProcessSetAuthorityBond(ctx sdk.Context, msg types.MsgSetAuthori
name := msg.GetName() name := msg.GetName()
signer := msg.GetSigner() signer := msg.GetSigner()
if !k.HasNameAuthority(ctx, name) { if !k.HasNameAuthority(ctx, name) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Name authority not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Name authority not found.")
} }
authority := k.GetNameAuthority(ctx, name) authority := k.GetNameAuthority(ctx, name)
if authority.OwnerAddress != signer { if authority.OwnerAddress != signer {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Access denied") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Access denied")
} }
if !k.bondKeeper.HasBond(ctx, msg.BondId) { if !k.bondKeeper.HasBond(ctx, msg.BondId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Bond not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bond not found.")
} }
// //
bond := k.bondKeeper.GetBond(ctx, msg.BondId) bond := k.bondKeeper.GetBond(ctx, msg.BondId)
if bond.Owner != signer { if bond.Owner != signer {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.")
} }
// No-op if bond hasn't changed. // No-op if bond hasn't changed.
@ -496,7 +497,7 @@ func (k Keeper) ProcessDeleteName(ctx sdk.Context, msg types.MsgDeleteNameAuthor
} }
if !k.HasNameRecord(ctx, msg.Crn) { if !k.HasNameRecord(ctx, msg.Crn) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Name not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Name not found.")
} }
// Set CID to empty string. // Set CID to empty string.

View File

@ -4,6 +4,7 @@ import (
"fmt" "fmt"
"time" "time"
errorsmod "cosmossdk.io/errors"
auctionkeeper "github.com/cerc-io/laconicd/x/auction/keeper" auctionkeeper "github.com/cerc-io/laconicd/x/auction/keeper"
auctiontypes "github.com/cerc-io/laconicd/x/auction/types" auctiontypes "github.com/cerc-io/laconicd/x/auction/types"
bondtypes "github.com/cerc-io/laconicd/x/bond/types" bondtypes "github.com/cerc-io/laconicd/x/bond/types"
@ -158,7 +159,7 @@ func (k RecordKeeper) QueryRecordsByBond(ctx sdk.Context, bondID string) []types
// ProcessRenewRecord renews a record. // ProcessRenewRecord renews a record.
func (k Keeper) ProcessRenewRecord(ctx sdk.Context, msg types.MsgRenewRecord) error { func (k Keeper) ProcessRenewRecord(ctx sdk.Context, msg types.MsgRenewRecord) error {
if !k.HasRecord(ctx, msg.RecordId) { if !k.HasRecord(ctx, msg.RecordId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.")
} }
// Check if renewal is required (i.e. expired record marked as deleted). // Check if renewal is required (i.e. expired record marked as deleted).
@ -169,7 +170,7 @@ func (k Keeper) ProcessRenewRecord(ctx sdk.Context, msg types.MsgRenewRecord) er
} }
if !record.Deleted || expiryTime.After(ctx.BlockTime()) { if !record.Deleted || expiryTime.After(ctx.BlockTime()) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Renewal not required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Renewal not required.")
} }
recordType := record.ToRecordType() recordType := record.ToRecordType()
@ -184,23 +185,23 @@ func (k Keeper) ProcessRenewRecord(ctx sdk.Context, msg types.MsgRenewRecord) er
// ProcessAssociateBond associates a record with a bond. // ProcessAssociateBond associates a record with a bond.
func (k Keeper) ProcessAssociateBond(ctx sdk.Context, msg types.MsgAssociateBond) error { func (k Keeper) ProcessAssociateBond(ctx sdk.Context, msg types.MsgAssociateBond) error {
if !k.HasRecord(ctx, msg.RecordId) { if !k.HasRecord(ctx, msg.RecordId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.")
} }
if !k.bondKeeper.HasBond(ctx, msg.BondId) { if !k.bondKeeper.HasBond(ctx, msg.BondId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Bond not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bond not found.")
} }
// Check if already associated with a bond. // Check if already associated with a bond.
record := k.GetRecord(ctx, msg.RecordId) record := k.GetRecord(ctx, msg.RecordId)
if record.BondId != "" || len(record.BondId) != 0 { if record.BondId != "" || len(record.BondId) != 0 {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond already exists.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond already exists.")
} }
// Only the bond owner can associate a record with the bond. // Only the bond owner can associate a record with the bond.
bond := k.bondKeeper.GetBond(ctx, msg.BondId) bond := k.bondKeeper.GetBond(ctx, msg.BondId)
if msg.Signer != bond.Owner { if msg.Signer != bond.Owner {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.")
} }
record.BondId = msg.BondId record.BondId = msg.BondId
@ -218,20 +219,20 @@ func (k Keeper) ProcessAssociateBond(ctx sdk.Context, msg types.MsgAssociateBond
// ProcessDissociateBond dissociates a record from its bond. // ProcessDissociateBond dissociates a record from its bond.
func (k Keeper) ProcessDissociateBond(ctx sdk.Context, msg types.MsgDissociateBond) error { func (k Keeper) ProcessDissociateBond(ctx sdk.Context, msg types.MsgDissociateBond) error {
if !k.HasRecord(ctx, msg.RecordId) { if !k.HasRecord(ctx, msg.RecordId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Record not found.")
} }
// Check if associated with a bond. // Check if associated with a bond.
record := k.GetRecord(ctx, msg.RecordId) record := k.GetRecord(ctx, msg.RecordId)
bondID := record.BondId bondID := record.BondId
if bondID == "" || len(bondID) == 0 { if bondID == "" || len(bondID) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond not found.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond not found.")
} }
// Only the bond owner can dissociate a record from the bond. // Only the bond owner can dissociate a record from the bond.
bond := k.bondKeeper.GetBond(ctx, bondID) bond := k.bondKeeper.GetBond(ctx, bondID)
if msg.Signer != bond.Owner { if msg.Signer != bond.Owner {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.")
} }
// Clear bond ID. // Clear bond ID.
@ -245,13 +246,13 @@ func (k Keeper) ProcessDissociateBond(ctx sdk.Context, msg types.MsgDissociateBo
// ProcessDissociateRecords dissociates all records associated with a given bond. // ProcessDissociateRecords dissociates all records associated with a given bond.
func (k Keeper) ProcessDissociateRecords(ctx sdk.Context, msg types.MsgDissociateRecords) error { func (k Keeper) ProcessDissociateRecords(ctx sdk.Context, msg types.MsgDissociateRecords) error {
if !k.bondKeeper.HasBond(ctx, msg.BondId) { if !k.bondKeeper.HasBond(ctx, msg.BondId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Bond not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Bond not found.")
} }
// Only the bond owner can dissociate all records from the bond. // Only the bond owner can dissociate all records from the bond.
bond := k.bondKeeper.GetBond(ctx, msg.BondId) bond := k.bondKeeper.GetBond(ctx, msg.BondId)
if msg.Signer != bond.Owner { if msg.Signer != bond.Owner {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond owner mismatch.")
} }
// Dissociate all records from the bond. // Dissociate all records from the bond.
@ -269,22 +270,22 @@ func (k Keeper) ProcessDissociateRecords(ctx sdk.Context, msg types.MsgDissociat
// ProcessReAssociateRecords switches records from and old to new bond. // ProcessReAssociateRecords switches records from and old to new bond.
func (k Keeper) ProcessReAssociateRecords(ctx sdk.Context, msg types.MsgReAssociateRecords) error { func (k Keeper) ProcessReAssociateRecords(ctx sdk.Context, msg types.MsgReAssociateRecords) error {
if !k.bondKeeper.HasBond(ctx, msg.OldBondId) { if !k.bondKeeper.HasBond(ctx, msg.OldBondId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Old bond not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Old bond not found.")
} }
if !k.bondKeeper.HasBond(ctx, msg.NewBondId) { if !k.bondKeeper.HasBond(ctx, msg.NewBondId) {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "New bond not found.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "New bond not found.")
} }
// Only the bond owner can re-associate all records. // Only the bond owner can re-associate all records.
oldBond := k.bondKeeper.GetBond(ctx, msg.OldBondId) oldBond := k.bondKeeper.GetBond(ctx, msg.OldBondId)
if msg.Signer != oldBond.Owner { if msg.Signer != oldBond.Owner {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Old bond owner mismatch.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Old bond owner mismatch.")
} }
newBond := k.bondKeeper.GetBond(ctx, msg.NewBondId) newBond := k.bondKeeper.GetBond(ctx, msg.NewBondId)
if msg.Signer != newBond.Owner { if msg.Signer != newBond.Owner {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "New bond owner mismatch.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "New bond owner mismatch.")
} }
// Re-associate all records. // Re-associate all records.

View File

@ -3,6 +3,7 @@ package types
import ( import (
"net/url" "net/url"
errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
) )
@ -32,15 +33,15 @@ func (msg MsgSetName) Type() string { return "set-name" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgSetName) ValidateBasic() error { func (msg MsgSetName) ValidateBasic() error {
if msg.Crn == "" { if msg.Crn == "" {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "CRN is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "CRN is required.")
} }
if msg.Cid == "" { if msg.Cid == "" {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "CID is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "CID is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer")
} }
return nil return nil
@ -76,11 +77,11 @@ func (msg MsgReserveAuthority) Type() string { return "reserve-authority" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgReserveAuthority) ValidateBasic() error { func (msg MsgReserveAuthority) ValidateBasic() error {
if len(msg.Name) == 0 { if len(msg.Name) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "name is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "name is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer")
} }
return nil return nil
@ -116,15 +117,15 @@ func (msg MsgSetAuthorityBond) Type() string { return "authority-bond" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgSetAuthorityBond) ValidateBasic() error { func (msg MsgSetAuthorityBond) ValidateBasic() error {
if len(msg.Name) == 0 { if len(msg.Name) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "name is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "name is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
if len(msg.BondId) == 0 { if len(msg.BondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "bond id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "bond id is required.")
} }
return nil return nil
@ -159,16 +160,16 @@ func (msg MsgDeleteNameAuthority) Type() string { return "delete-name" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgDeleteNameAuthority) ValidateBasic() error { func (msg MsgDeleteNameAuthority) ValidateBasic() error {
if len(msg.Crn) == 0 { if len(msg.Crn) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "crn is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "crn is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
_, err := url.Parse(msg.Crn) _, err := url.Parse(msg.Crn)
if err != nil { if err != nil {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "invalid crn.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "invalid crn.")
} }
return nil return nil

View File

@ -1,6 +1,7 @@
package types package types
import ( import (
errorsmod "cosmossdk.io/errors"
cdctypes "github.com/cosmos/cosmos-sdk/codec/types" cdctypes "github.com/cosmos/cosmos-sdk/codec/types"
sdk "github.com/cosmos/cosmos-sdk/types" sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors" sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
@ -34,17 +35,17 @@ func (msg MsgSetRecord) Type() string { return "set-record" }
func (msg MsgSetRecord) ValidateBasic() error { func (msg MsgSetRecord) ValidateBasic() error {
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, msg.Signer) return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, msg.Signer)
} }
owners := msg.Payload.Record.Owners owners := msg.Payload.Record.Owners
for _, owner := range owners { for _, owner := range owners {
if owner == "" { if owner == "" {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "Record owner not set.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "Record owner not set.")
} }
} }
if len(msg.BondId) == 0 { if len(msg.BondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrUnauthorized, "Bond ID is required.") return errorsmod.Wrap(sdkerrors.ErrUnauthorized, "Bond ID is required.")
} }
return nil return nil
} }
@ -83,11 +84,11 @@ func (msg MsgRenewRecord) Type() string { return "renew-record" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgRenewRecord) ValidateBasic() error { func (msg MsgRenewRecord) ValidateBasic() error {
if len(msg.RecordId) == 0 { if len(msg.RecordId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "record id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "record id is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
return nil return nil
@ -123,13 +124,13 @@ func (msg MsgAssociateBond) Type() string { return "associate-bond" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgAssociateBond) ValidateBasic() error { func (msg MsgAssociateBond) ValidateBasic() error {
if len(msg.RecordId) == 0 { if len(msg.RecordId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "record id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "record id is required.")
} }
if len(msg.BondId) == 0 { if len(msg.BondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "bond id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "bond id is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
return nil return nil
@ -164,10 +165,10 @@ func (msg MsgDissociateBond) Type() string { return "dissociate-bond" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgDissociateBond) ValidateBasic() error { func (msg MsgDissociateBond) ValidateBasic() error {
if len(msg.RecordId) == 0 { if len(msg.RecordId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "record id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "record id is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
return nil return nil
@ -202,10 +203,10 @@ func (msg MsgDissociateRecords) Type() string { return "dissociate-records" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgDissociateRecords) ValidateBasic() error { func (msg MsgDissociateRecords) ValidateBasic() error {
if len(msg.BondId) == 0 { if len(msg.BondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "bond id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "bond id is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
return nil return nil
@ -241,13 +242,13 @@ func (msg MsgReAssociateRecords) Type() string { return "reassociate-records" }
// ValidateBasic Implements Msg. // ValidateBasic Implements Msg.
func (msg MsgReAssociateRecords) ValidateBasic() error { func (msg MsgReAssociateRecords) ValidateBasic() error {
if len(msg.OldBondId) == 0 { if len(msg.OldBondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "old-bond-id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "old-bond-id is required.")
} }
if len(msg.NewBondId) == 0 { if len(msg.NewBondId) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidRequest, "new-bond-id is required.") return errorsmod.Wrap(sdkerrors.ErrInvalidRequest, "new-bond-id is required.")
} }
if len(msg.Signer) == 0 { if len(msg.Signer) == 0 {
return sdkerrors.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.") return errorsmod.Wrap(sdkerrors.ErrInvalidAddress, "invalid signer.")
} }
return nil return nil