Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: x/did and x/resource module changes according to sdk v0.47 #691

Merged
merged 46 commits into from
Feb 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
de7f7d0
chore: did module upgrade changes
deepan95dev Feb 8, 2024
3e63964
merge: resolved merge conflicts with v047_upgrade branch
deepan95dev Feb 9, 2024
effb836
fix: did test case and golangci, gofumpt fixes
deepan95dev Feb 14, 2024
b886a44
fix lint
atheeshp Feb 14, 2024
81cf263
go mod tidy
atheeshp Feb 14, 2024
ed437b0
remove commented code
atheeshp Feb 14, 2024
0e694c1
remove commented line
atheeshp Feb 14, 2024
3087902
update golang version
atheeshp Feb 15, 2024
1a88b08
fix lint
atheeshp Feb 15, 2024
3871fb2
fix lint
atheeshp Feb 15, 2024
f484446
try fix lint
atheeshp Feb 15, 2024
ff21e03
fix lint
atheeshp Feb 15, 2024
39bf3b9
fix proto-gen
atheeshp Feb 15, 2024
45db469
add logs
atheeshp Feb 15, 2024
8398cfb
add log
atheeshp Feb 15, 2024
9af4a94
update
atheeshp Feb 15, 2024
5552ff1
fix lint
atheeshp Feb 15, 2024
fac4fca
fix proto-gen
atheeshp Feb 15, 2024
36a17e3
add perms
atheeshp Feb 15, 2024
e3be83d
fix build
atheeshp Feb 15, 2024
552ca9d
lint fix
atheeshp Feb 15, 2024
e04ea81
lint:gofmt enabled in ci
deepan95dev Feb 15, 2024
4645640
try fixing lint
atheeshp Feb 15, 2024
ba2bcd3
try fix lint
atheeshp Feb 15, 2024
054ffc9
reveert
atheeshp Feb 15, 2024
4854299
try lint
atheeshp Feb 15, 2024
06fad31
try fix lint
atheeshp Feb 15, 2024
88c1b96
fix lint
atheeshp Feb 15, 2024
2cea141
lint fixes
atheeshp Feb 16, 2024
768b6fa
fix permissions
atheeshp Feb 16, 2024
aa699e5
fix releases
atheeshp Feb 16, 2024
3550dfc
revert
atheeshp Feb 16, 2024
f373afc
review changes
atheeshp Feb 16, 2024
efe833c
try fixing jobs
atheeshp Feb 16, 2024
0e8c43d
try fixing jobs
atheeshp Feb 16, 2024
11fbb00
add logs
atheeshp Feb 16, 2024
e199f1f
add change perms
atheeshp Feb 16, 2024
1bc179a
revert
atheeshp Feb 16, 2024
b1a1e4d
chore: appmodule missing methods added
deepan95dev Feb 19, 2024
9794599
Merge branch 'v047_upgrade' of github.com:cheqd/cheqd-node into did_m…
atheeshp Feb 19, 2024
5ae6249
try fix build
atheeshp Feb 19, 2024
a8403ea
add perms
atheeshp Feb 19, 2024
4e5d59e
chore: missing method with attrition variable
deepan95dev Feb 19, 2024
ac96e5b
Update .github/linters/.golangci.yaml
atheeshp Feb 20, 2024
9f0b6c4
Update scripts/protocgen.sh
atheeshp Feb 20, 2024
664dc18
review changes
atheeshp Feb 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions .github/linters/.golangci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,18 @@ run:


linters:
disable-all: true
enable:
- bodyclose
- depguard
- depguard
- dogsled
- errcheck
- exportloopref
- goconst
- gocritic
- gofumpt
- gofmt
- goimports
- gosimple
- govet
Expand Down Expand Up @@ -42,7 +45,7 @@ linters-settings:
- badCall # Remove this after CI workflow PR

gofumpt:
lang-version: "1.18"
lang-version: "1.21"

misspell:
ignore-words:
Expand All @@ -52,7 +55,7 @@ linters-settings:

stylecheck:
# Select the Go version to target.
go: "1.18"
go: "1.21"
# STxxxx checks in https://staticcheck.io/docs/configuration/options/#checks
# Default: ["*"]
checks: ["all"]
Expand All @@ -62,3 +65,17 @@ linters-settings:
- "github.com/onsi/gomega"
# https://staticcheck.io/docs/configuration/options/#initialisms
initialisms: ["ACL", "API", "ASCII", "CPU", "CSS", "DNS", "EOF", "GUID", "HTML", "HTTP", "HTTPS", "ID", "IP", "JSON", "QPS", "RAM", "RPC", "SLA", "SMTP", "SQL", "SSH", "TCP", "TLS", "TTL", "UDP", "UI", "GID", "UID", "UUID", "URI", "URL", "UTF8", "VM", "XML", "XMPP", "XSRF", "XSS", "SIP", "RTP", "AMQP", "DB", "TS"]

depguard:
rules:
main:
files:
- $all
list-mode: lax
allow: "*"

goconst:
min-occurrences: 5
ignore-tests: true
ignore-strings: "echo '"

4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ on:
defaults:
run:
shell: bash
permissions:
contents: write
packages: read
checks: write


jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
- name: Run golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.49.0
version: v1.56.2
args: --config .github/linters/.golangci.yaml

proto-lint:
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ defaults:
shell: bash
permissions:
contents: write
packages: write
packages: read
checks: write


jobs:
Expand Down
10 changes: 8 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -200,11 +200,17 @@ generate:
### Lint / Format ###
###############################################################################


golangci_version=v1.56.2

lint:
golangci-lint run --out-format=tab
@echo "--> Running linter"
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version)
golangci-lint run --out-format=tab --config .github/linters/.golangci.yaml

lint-fix:
golangci-lint run --fix --out-format=tab --issues-exit-code=0
@go install github.com/golangci/golangci-lint/cmd/golangci-lint@$(golangci_version)
golangci-lint run --config .github/linters/.golangci.yaml --fix --out-format=tab --issues-exit-code=0

format_filter = -name '*.go' -type f \
-not -path '*.git*' \
Expand Down
24 changes: 13 additions & 11 deletions ante/fee.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ package ante
import (
"fmt"

"github.com/cosmos/cosmos-sdk/types/errors"

errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
"github.com/cosmos/cosmos-sdk/x/auth/ante"
"github.com/cosmos/cosmos-sdk/x/auth/types"
)
Expand Down Expand Up @@ -38,11 +40,11 @@ func NewDeductFeeDecorator(ak ante.AccountKeeper, bk BankKeeper, fk ante.Feegran
func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) {
feeTx, ok := tx.(sdk.FeeTx)
if !ok {
return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx")
return ctx, errorsmod.Wrap(errors.ErrTxDecode, "Tx must be a FeeTx")
}

if !simulate && ctx.BlockHeight() > 0 && feeTx.GetGas() == 0 {
return ctx, sdkerrors.Wrap(sdkerrors.ErrInvalidGasLimit, "must provide positive gas")
return ctx, errorsmod.Wrap(errors.ErrInvalidGasLimit, "must provide positive gas")
}

var (
Expand Down Expand Up @@ -82,7 +84,7 @@ func (dfd DeductFeeDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bo
func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee sdk.Coins) error {
feeTx, ok := sdkTx.(sdk.FeeTx)
if !ok {
return sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx")
return errorsmod.Wrap(errors.ErrTxDecode, "Tx must be a FeeTx")
}

if addr := dfd.accountKeeper.GetModuleAddress(types.FeeCollectorName); addr == nil {
Expand All @@ -97,11 +99,11 @@ func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee
// this works with only when feegrant enabled.
if feeGranter != nil {
if dfd.feegrantKeeper == nil {
return sdkerrors.ErrInvalidRequest.Wrap("fee grants are not enabled")
return errors.ErrInvalidRequest.Wrap("fee grants are not enabled")
} else if !feeGranter.Equals(feePayer) {
err := dfd.feegrantKeeper.UseGrantedFees(ctx, feeGranter, feePayer, fee, sdkTx.GetMsgs())
if err != nil {
return sdkerrors.Wrapf(err, "%s does not not allow to pay fees for %s", feeGranter, feePayer)
return errorsmod.Wrapf(err, "%s does not not allow to pay fees for %s", feeGranter, feePayer)
}
}

Expand All @@ -110,7 +112,7 @@ func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee

deductFeesFromAcc := dfd.accountKeeper.GetAccount(ctx, deductFeesFrom)
if deductFeesFromAcc == nil {
return sdkerrors.ErrUnknownAddress.Wrapf("fee payer address: %s does not exist", deductFeesFrom)
return errors.ErrUnknownAddress.Wrapf("fee payer address: %s does not exist", deductFeesFrom)
}

// deduct the fees
Expand All @@ -136,12 +138,12 @@ func (dfd DeductFeeDecorator) checkDeductFee(ctx sdk.Context, sdkTx sdk.Tx, fee
// DeductFees deducts fees from the given account.
func DeductFees(bankKeeper types.BankKeeper, ctx sdk.Context, acc types.AccountI, fees sdk.Coins) error {
if !fees.IsValid() {
return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "invalid fee amount: %s", fees)
return errorsmod.Wrapf(errors.ErrInsufficientFee, "invalid fee amount: %s", fees)
}

err := bankKeeper.SendCoinsFromAccountToModule(ctx, acc.GetAddress(), types.FeeCollectorName, fees)
if err != nil {
return sdkerrors.Wrapf(sdkerrors.ErrInsufficientFunds, err.Error())
return errorsmod.Wrapf(errors.ErrInsufficientFunds, err.Error())
}

return nil
Expand All @@ -150,7 +152,7 @@ func DeductFees(bankKeeper types.BankKeeper, ctx sdk.Context, acc types.AccountI
func IsSufficientFee(ctx sdk.Context, tax, reward, burn, feeProvided sdk.Coins, gasRequested int64) (bool, int64, error) {
// check if the provided fee is enough for `did`, `resource` module specific Msg
if !feeProvided.IsAnyGTE(tax) {
return false, 0, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeProvided, tax)
return false, 0, errorsmod.Wrapf(errors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeProvided, tax)
}

// check with the default validator min gas prices based on rewards distribution
Expand All @@ -169,7 +171,7 @@ func IsSufficientFee(ctx sdk.Context, tax, reward, burn, feeProvided sdk.Coins,

// check if the fee is sufficient
if !reward.IsAnyGTE(requiredFees) {
return false, 0, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", reward, requiredFees)
return false, 0, errorsmod.Wrapf(errors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", reward, requiredFees)
}
}
}
Expand Down
7 changes: 4 additions & 3 deletions ante/feedistrib.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ante

import (
errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
Expand All @@ -22,7 +23,7 @@ func GetDistributionFee(ctx sdk.Context, fee sdk.Coins, burnFeePortion sdk.Coins
}

if ValidateDistributionFee(fee, distrFeeAlloc) != nil {
return distrFeeAlloc, sdkerrors.Wrap(sdkerrors.ErrLogic, "fee distribution is invalid")
return distrFeeAlloc, errorsmod.Wrap(sdkerrors.ErrLogic, "fee distribution is invalid")
}

return distrFeeAlloc, nil
Expand All @@ -40,11 +41,11 @@ func SumDistributionFee(distrFeeAlloc DistributionFeeAllocation) sdk.Coins {

func ValidateDistributionFee(fee sdk.Coins, distrFeeAlloc DistributionFeeAllocation) error {
if fee.IsZero() {
return sdkerrors.Wrap(sdkerrors.ErrInsufficientFee, "fee cannot be zero")
return errorsmod.Wrap(sdkerrors.ErrInsufficientFee, "fee cannot be zero")
}

if !fee.IsEqual(SumDistributionFee(distrFeeAlloc)) {
return sdkerrors.Wrap(sdkerrors.ErrLogic, "fee distribution is invalid")
return errorsmod.Wrap(sdkerrors.ErrLogic, "fee distribution is invalid")
}

return nil
Expand Down
16 changes: 9 additions & 7 deletions ante/testutil_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
"github.com/stretchr/testify/suite"

"github.com/cheqd/cheqd-node/app"
cheqdapp "github.com/cheqd/cheqd-node/app"
didtypes "github.com/cheqd/cheqd-node/x/did/types"
resourcetypes "github.com/cheqd/cheqd-node/x/resource/types"
Expand All @@ -34,21 +33,24 @@ type TestAccount struct {
type AnteTestSuite struct {
suite.Suite

app *app.TestApp
app *cheqdapp.TestApp
anteHandler sdk.AnteHandler
ctx sdk.Context
clientCtx client.Context
txBuilder client.TxBuilder
}

// returns context and app with params set on account keeper
func createTestApp(isCheckTx bool) (*app.TestApp, sdk.Context, error) {
app, err := app.Setup(isCheckTx)
func createTestApp(isCheckTx bool) (*cheqdapp.TestApp, sdk.Context, error) {
app, err := cheqdapp.Setup(isCheckTx)
if err != nil {
return nil, sdk.Context{}, err
}
ctx := app.BaseApp.NewContext(isCheckTx, tmproto.Header{})
app.AccountKeeper.SetParams(ctx, authtypes.DefaultParams())
err = app.AccountKeeper.SetParams(ctx, authtypes.DefaultParams())
if err != nil {
return nil, sdk.Context{}, err
}

// cheqd specific params
didFeeParams := didtypes.DefaultGenesis().FeeParams
Expand Down Expand Up @@ -76,8 +78,8 @@ func (s *AnteTestSuite) SetupTest(isCheckTx bool) error {
s.clientCtx = client.Context{}.
WithTxConfig(encodingConfig.TxConfig)

anteHandler, err := app.NewAnteHandler(
app.HandlerOptions{
anteHandler, err := cheqdapp.NewAnteHandler(
cheqdapp.HandlerOptions{
AccountKeeper: s.app.AccountKeeper,
BankKeeper: s.app.BankKeeper,
FeegrantKeeper: s.app.FeeGrantKeeper,
Expand Down
5 changes: 3 additions & 2 deletions ante/validator_tx_fee.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package ante
import (
"math"

errorsmod "cosmossdk.io/errors"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
)
Expand All @@ -12,7 +13,7 @@ import (
func checkTxFeeWithValidatorMinGasPrices(ctx sdk.Context, tx sdk.Tx) (sdk.Coins, int64, error) {
feeTx, ok := tx.(sdk.FeeTx)
if !ok {
return nil, 0, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx")
return nil, 0, errorsmod.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx")
}

feeCoins := feeTx.GetFee()
Expand All @@ -35,7 +36,7 @@ func checkTxFeeWithValidatorMinGasPrices(ctx sdk.Context, tx sdk.Tx) (sdk.Coins,
}

if !feeCoins.IsAnyGTE(requiredFees) {
return nil, 0, sdkerrors.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeCoins, requiredFees)
return nil, 0, errorsmod.Wrapf(sdkerrors.ErrInsufficientFee, "insufficient fees; got: %s required: %s", feeCoins, requiredFees)
}
}
}
Expand Down
9 changes: 5 additions & 4 deletions app/ante.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package app

import (
errorsmod "cosmossdk.io/errors"
cheqdante "github.com/cheqd/cheqd-node/ante"
sdk "github.com/cosmos/cosmos-sdk/types"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"
Expand Down Expand Up @@ -32,19 +33,19 @@ type HandlerOptions struct {
// signer.
func NewAnteHandler(options HandlerOptions) (sdk.AnteHandler, error) {
if options.AccountKeeper == nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "account keeper is required for ante builder")
return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "account keeper is required for ante builder")
}

if options.BankKeeper == nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "bank keeper is required for ante builder")
return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "bank keeper is required for ante builder")
}

if options.SignModeHandler == nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder")
return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "sign mode handler is required for ante builder")
}

if options.IBCKeeper == nil {
return nil, sdkerrors.Wrap(sdkerrors.ErrLogic, "IBC keeper is required for ante builder")
return nil, errorsmod.Wrap(sdkerrors.ErrLogic, "IBC keeper is required for ante builder")
}

anteDecorators := []sdk.AnteDecorator{
Expand Down
11 changes: 5 additions & 6 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ import (
govclient "github.com/cosmos/cosmos-sdk/x/gov/client"
govkeeper "github.com/cosmos/cosmos-sdk/x/gov/keeper"
govtypes "github.com/cosmos/cosmos-sdk/x/gov/types"
govv1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1"
govv1beta1 "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1"
"github.com/cosmos/cosmos-sdk/x/group"
groupkeeper "github.com/cosmos/cosmos-sdk/x/group/keeper"
Expand Down Expand Up @@ -832,8 +831,8 @@ func (app *App) InitChainer(ctx sdk.Context, req abci.RequestInitChain) abci.Res
}

// RegisterNodeService registers the node gRPC service on the app gRPC router.
func (a *App) RegisterNodeService(clientCtx client.Context) {
nodeservice.RegisterNodeService(clientCtx, a.GRPCQueryRouter())
func (app *App) RegisterNodeService(clientCtx client.Context) {
nodeservice.RegisterNodeService(clientCtx, app.GRPCQueryRouter())
}

// SimulationManager implements the SimulationApp interface.
Expand Down Expand Up @@ -971,7 +970,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(minttypes.ModuleName)
paramsKeeper.Subspace(distrtypes.ModuleName)
paramsKeeper.Subspace(slashingtypes.ModuleName)
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govv1.ParamKeyTable())
paramsKeeper.Subspace(govtypes.ModuleName)
paramsKeeper.Subspace(crisistypes.ModuleName)
paramsKeeper.Subspace(ibctransfertypes.ModuleName)
paramsKeeper.Subspace(ibcexported.ModuleName)
Expand Down Expand Up @@ -1176,6 +1175,6 @@ func (app *App) RegisterUpgradeHandlers() {
)
}

func (a *App) Configurator() module.Configurator {
return a.configurator
func (app *App) Configurator() module.Configurator {
return app.configurator
}
6 changes: 4 additions & 2 deletions app/test_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
tmproto "github.com/cometbft/cometbft/proto/tendermint/types"
tmtypes "github.com/cometbft/cometbft/types"

errorsmod "cosmossdk.io/errors"
sdkmath "cosmossdk.io/math"
bam "github.com/cosmos/cosmos-sdk/baseapp"
"github.com/cosmos/cosmos-sdk/client"
Expand All @@ -27,7 +28,8 @@ import (
"github.com/cosmos/cosmos-sdk/testutil/mock"
simtestutil "github.com/cosmos/cosmos-sdk/testutil/sims"
sdk "github.com/cosmos/cosmos-sdk/types"
"github.com/cosmos/cosmos-sdk/types/errors"
sdkerrors "github.com/cosmos/cosmos-sdk/types/errors"

moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
banktypes "github.com/cosmos/cosmos-sdk/x/bank/types"
Expand Down Expand Up @@ -580,7 +582,7 @@ func NewPubKeyFromHex(pk string) (res cryptotypes.PubKey) {
panic(err)
}
if len(pkBytes) != ed25519.PubKeySize {
panic(errors.Wrap(errors.ErrInvalidPubKey, "invalid pubkey size"))
panic(errorsmod.Wrap(sdkerrors.ErrInvalidPubKey, "invalid pubkey size"))
}
return &ed25519.PubKey{Key: pkBytes}
}
Expand Down
Loading
Loading