Skip to content

Commit

Permalink
Merge branch 'main' of github.com:dymensionxyz/dymension-rdk into omr…
Browse files Browse the repository at this point in the history
…itoptix/update-dymint-v1.0.0-alpha
  • Loading branch information
omritoptix committed Mar 22, 2024
2 parents 43687e0 + 61e2b02 commit e70f846
Show file tree
Hide file tree
Showing 42 changed files with 3,648 additions and 32 deletions.
5 changes: 5 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@

---

Closes #XXX

**All** items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow-up issues.

For Author:

- [ ] Targeted PR against correct branch
Expand Down
41 changes: 41 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: "CodeQL"

on:
pull_request:
paths:
- "**.go"
push:
# The branches below must be a subset of the branches above
branches:
- main
- release/**
paths:
- "**.go"

jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

steps:
- name: Checkout repository
uses: actions/checkout@v3
- uses: actions/setup-go@v3
with:
go-version: "1.22"
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: "go"
queries: crypto-com/cosmos-sdk-codeql@main,security-and-quality

- name: Build
run: make build

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
23 changes: 23 additions & 0 deletions .github/workflows/golangci_lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: golangci-lint
on:
push:
tags:
- v*
branches:
- main
pull_request:

jobs:
golangci:
name: golangci-lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: "1.22"
- name: golangci-lint
uses: golangci/[email protected]
with:
version: v1.56.2
skip-cache: true
19 changes: 19 additions & 0 deletions .github/workflows/markdown_lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: markdown-lint
on:
push:
tags:
- v*
branches:
- main
pull_request:

jobs:
markdownlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: markdownlint-cli
uses: nosborn/[email protected]
with:
files: ./
config_file: .markdownlint.yaml
10 changes: 10 additions & 0 deletions .github/workflows/new-pr-notification.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: new-pr-notification-to-slack
on:
pull_request:
types: [opened]

jobs:
new-pr-notification:
uses: dymensionxyz/common-workflows/.github/workflows/new-pr-notification.yaml@main
secrets:
WEBHOOK_URL: ${{ secrets.SLACK_NEW_PR_CHANNEL_WEBHOOK }}
11 changes: 11 additions & 0 deletions .github/workflows/stale-pr-notification.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
name: stale-pr-notification-to-slack
on:
pull_request:
types: [labeled]

jobs:
stale-pr-notification:
if: github.event.label.name == 'Stale'
uses: dymensionxyz/common-workflows/.github/workflows/stale-pr-notification.yaml@main
secrets:
WEBHOOK_URL: ${{ secrets.SLACK_STALE_PR_CHANNEL_WEBHOOK }}
14 changes: 14 additions & 0 deletions proto/denommetadata/genesis.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
syntax = "proto3";
package rollapp.denommetadata.types;

import "gogoproto/gogo.proto";
import "denommetadata/params.proto";
import "cosmos/staking/v1beta1/staking.proto";

option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types";

// GenesisState defines the test module's genesis state.
message GenesisState {
// params are all parameters for the module
Params params = 1 [ (gogoproto.nullable) = false ];
}
13 changes: 13 additions & 0 deletions proto/denommetadata/params.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
syntax = "proto3";
package rollapp.denommetadata.types;
import "gogoproto/gogo.proto";

option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types";

// Params defines the parameters for the module.
message Params {
// allowed_addresses defines the list of addresses authorized to use the
// module
repeated string allowed_addresses = 1
[ (gogoproto.moretags) = "yaml:\"allowed_addresses\"" ];
}
26 changes: 26 additions & 0 deletions proto/denommetadata/query.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
syntax = "proto3";
package rollapp.denommetadata.types;

import "gogoproto/gogo.proto";
import "google/api/annotations.proto";
import "denommetadata/params.proto";

option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types";

// Query defines the gRPC querier service.
service Query {
// Parameters retrieves the denom metadata module params
rpc Params(QueryParamsRequest) returns (QueryParamsResponse) {
option (google.api.http).get =
"/dymensionxyz/dymension-rdk/denommetadata/params";
}
}

// QueryParamsRequest is request type for the Query/Params RPC method.
message QueryParamsRequest {}

// QueryParamsResponse is response type for the Query/Params RPC method.
message QueryParamsResponse {
// params holds all the parameters of this module.
Params params = 1 [ (gogoproto.nullable) = false ];
}
42 changes: 42 additions & 0 deletions proto/denommetadata/tx.proto
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
syntax = "proto3";
package rollapp.denommetadata.types;

import "gogoproto/gogo.proto";
import "cosmos/bank/v1beta1/bank.proto";

import "denommetadata/params.proto";

option go_package = "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types";

// Msg defines the Msg service.
service Msg {
rpc CreateDenomMetadata(MsgCreateDenomMetadata)
returns (MsgCreateDenomMetadataResponse) {};

rpc UpdateDenomMetadata(MsgUpdateDenomMetadata)
returns (MsgUpdateDenomMetadataResponse) {};
}

// MsgCreateDenomMetadata defines a message that create the denom metadata.
message MsgCreateDenomMetadata {
// sender_address is the bech32 address of message sender.
string sender_address = 1;
cosmos.bank.v1beta1.Metadata token_metadata = 2
[ (gogoproto.nullable) = false ];
}

// MsgCreateDenomMetadataResponse defines the MsgCreateDenomMetadata response
// type
message MsgCreateDenomMetadataResponse {}

// MsgDistributeTokens defines a message that update the denom metadata.
message MsgUpdateDenomMetadata {
// sender_address is the bech32 address of message sender.
string sender_address = 1;
cosmos.bank.v1beta1.Metadata token_metadata = 2
[ (gogoproto.nullable) = false ];
}

// MsgUpdateDenomMetadataResponse defines the MsgUpdateDenomMetadata response
// type
message MsgUpdateDenomMetadataResponse {}
Empty file modified proto/mint/v1beta1/genesis.proto
100755 → 100644
Empty file.
13 changes: 1 addition & 12 deletions proto/protocgen.sh → scripts/protocgen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,9 @@

set -eo pipefail

protoc_gen_gocosmos() {
if ! grep "github.com/gogo/protobuf => github.com/regen-network/protobuf" go.mod &>/dev/null ; then
echo -e "\tPlease run this command from somewhere inside the cosmos-sdk folder."
return 1
fi

go get github.com/regen-network/cosmos-proto/protoc-gen-gocosmos@latest 2>/dev/null
}

protoc_gen_gocosmos

proto_dirs=$(find ./proto -path -prune -o -name '*.proto' -print0 | xargs -0 -n1 dirname | sort | uniq)
for dir in $proto_dirs; do
buf protoc \
protoc \
-I "proto" \
-I "third_party/proto" \
--gocosmos_out=plugins=interfacetype+grpc,\
Expand Down
55 changes: 40 additions & 15 deletions testutil/app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ import (
mintkeeper "github.com/dymensionxyz/dymension-rdk/x/mint/keeper"
minttypes "github.com/dymensionxyz/dymension-rdk/x/mint/types"

"github.com/dymensionxyz/dymension-rdk/x/denommetadata"
denommetadatakeeper "github.com/dymensionxyz/dymension-rdk/x/denommetadata/keeper"
denommetadatatypes "github.com/dymensionxyz/dymension-rdk/x/denommetadata/types"

"github.com/dymensionxyz/dymension-rdk/x/epochs"
epochskeeper "github.com/dymensionxyz/dymension-rdk/x/epochs/keeper"
epochstypes "github.com/dymensionxyz/dymension-rdk/x/epochs/types"
Expand Down Expand Up @@ -116,7 +120,7 @@ var (
kvstorekeys = []string{
authtypes.StoreKey, banktypes.StoreKey,
stakingtypes.StoreKey, seqtypes.StoreKey,
minttypes.StoreKey, distrtypes.StoreKey,
minttypes.StoreKey, denommetadatatypes.StoreKey, distrtypes.StoreKey,
govtypes.StoreKey, paramstypes.StoreKey,
ibchost.StoreKey, upgradetypes.StoreKey,
epochstypes.StoreKey, hubgentypes.StoreKey,
Expand Down Expand Up @@ -154,6 +158,7 @@ var (
staking.AppModuleBasic{},
sequencers.AppModuleBasic{},
mint.AppModuleBasic{},
denommetadata.AppModuleBasic{},
epochs.AppModuleBasic{},
distr.AppModuleBasic{},
gov.NewAppModuleBasic(getGovProposalHandlers()),
Expand Down Expand Up @@ -196,20 +201,21 @@ type App struct {
memKeys map[string]*storetypes.MemoryStoreKey

// keepers
AccountKeeper authkeeper.AccountKeeper
BankKeeper bankkeeper.Keeper
CapabilityKeeper *capabilitykeeper.Keeper
StakingKeeper stakingkeeper.Keeper
SequencersKeeper seqkeeper.Keeper
MintKeeper mintkeeper.Keeper
EpochsKeeper epochskeeper.Keeper
DistrKeeper distrkeeper.Keeper
GovKeeper govkeeper.Keeper
HubGenesisKeeper hubgenkeeper.Keeper
UpgradeKeeper upgradekeeper.Keeper
ParamsKeeper paramskeeper.Keeper
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
TransferKeeper ibctransferkeeper.Keeper
AccountKeeper authkeeper.AccountKeeper
BankKeeper bankkeeper.Keeper
CapabilityKeeper *capabilitykeeper.Keeper
StakingKeeper stakingkeeper.Keeper
SequencersKeeper seqkeeper.Keeper
MintKeeper mintkeeper.Keeper
DenommetadataKeeper denommetadatakeeper.Keeper
EpochsKeeper epochskeeper.Keeper
DistrKeeper distrkeeper.Keeper
GovKeeper govkeeper.Keeper
HubGenesisKeeper hubgenkeeper.Keeper
UpgradeKeeper upgradekeeper.Keeper
ParamsKeeper paramskeeper.Keeper
IBCKeeper *ibckeeper.Keeper // IBC Keeper must be a pointer in the app, so we can SetRouter on it correctly
TransferKeeper ibctransferkeeper.Keeper

// make scoped keepers public for test purposes
ScopedIBCKeeper capabilitykeeper.ScopedKeeper
Expand Down Expand Up @@ -338,6 +344,20 @@ func NewRollapp(
),
)

app.DenommetadataKeeper = denommetadatakeeper.NewKeeper(
appCodec,
keys[denommetadatatypes.StoreKey],
app.BankKeeper,
nil,
app.GetSubspace(denommetadatatypes.ModuleName),
)
// set hook for denom metadata keeper later
app.DenommetadataKeeper.SetHooks(
denommetadatatypes.NewMultiDenommetadataHooks(
// insert denom metadata hooks receivers here
),
)

app.DistrKeeper = distrkeeper.NewKeeper(
appCodec, keys[distrtypes.StoreKey], app.GetSubspace(distrtypes.ModuleName), app.AccountKeeper, app.BankKeeper,
&stakingKeeper, &app.SequencersKeeper, authtypes.FeeCollectorName, app.ModuleAccountAddrs(),
Expand Down Expand Up @@ -436,6 +456,7 @@ func NewRollapp(
capability.NewAppModule(appCodec, *app.CapabilityKeeper),
gov.NewAppModule(appCodec, app.GovKeeper, app.AccountKeeper, app.BankKeeper),
mint.NewAppModule(appCodec, app.MintKeeper, app.AccountKeeper, app.BankKeeper),
denommetadata.NewAppModule(appCodec, app.DenommetadataKeeper, app.BankKeeper),
distr.NewAppModule(appCodec, app.DistrKeeper, app.AccountKeeper, app.BankKeeper, app.StakingKeeper),
staking.NewAppModule(appCodec, app.StakingKeeper, app.AccountKeeper, app.BankKeeper),
sequencers.NewAppModule(appCodec, app.SequencersKeeper),
Expand All @@ -458,6 +479,7 @@ func NewRollapp(
upgradetypes.ModuleName,
capabilitytypes.ModuleName,
minttypes.ModuleName,
denommetadatatypes.ModuleName,
distrtypes.ModuleName,
stakingtypes.ModuleName,
seqtypes.ModuleName,
Expand All @@ -484,6 +506,7 @@ func NewRollapp(
distrtypes.ModuleName,
vestingtypes.ModuleName,
minttypes.ModuleName,
denommetadatatypes.ModuleName,
genutiltypes.ModuleName,
epochstypes.ModuleName,
paramstypes.ModuleName,
Expand Down Expand Up @@ -511,6 +534,7 @@ func NewRollapp(
vestingtypes.ModuleName,
govtypes.ModuleName,
minttypes.ModuleName,
denommetadatatypes.ModuleName,
ibchost.ModuleName,
genutiltypes.ModuleName,
paramstypes.ModuleName,
Expand Down Expand Up @@ -819,6 +843,7 @@ func initParamsKeeper(appCodec codec.BinaryCodec, legacyAmino *codec.LegacyAmino
paramsKeeper.Subspace(stakingtypes.ModuleName)
paramsKeeper.Subspace(seqtypes.ModuleName)
paramsKeeper.Subspace(minttypes.ModuleName)
paramsKeeper.Subspace(denommetadatatypes.ModuleName)
paramsKeeper.Subspace(epochstypes.ModuleName)
paramsKeeper.Subspace(distrtypes.ModuleName)
paramsKeeper.Subspace(govtypes.ModuleName).WithKeyTable(govv1.ParamKeyTable())
Expand Down
8 changes: 7 additions & 1 deletion testutil/keepers/keepers.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import (

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

denommetadatakeeper "github.com/dymensionxyz/dymension-rdk/x/denommetadata/keeper"
epochkeeper "github.com/dymensionxyz/dymension-rdk/x/epochs/keeper"
hubgenkeeper "github.com/dymensionxyz/dymension-rdk/x/hub-genesis/keeper"
mintkeeper "github.com/dymensionxyz/dymension-rdk/x/mint/keeper"
seqkeeper "github.com/dymensionxyz/dymension-rdk/x/sequencers/keeper"

tmproto "github.com/tendermint/tendermint/proto/tendermint/types"

app "github.com/dymensionxyz/dymension-rdk/testutil/app"
Expand All @@ -33,6 +33,12 @@ func NewTestMintKeeperFromApp(app *app.App) (*mintkeeper.Keeper, sdk.Context) {
return k, ctx
}

func NewTestDenommetadataKeeperFromApp(app *app.App) (*denommetadatakeeper.Keeper, sdk.Context) {
k := &app.DenommetadataKeeper
ctx := app.BaseApp.NewContext(false, tmproto.Header{Height: 1, ChainID: "rollapp-1", Time: time.Now().UTC()})
return k, ctx
}

func NewTestHubGenesisKeeperFromApp(app *app.App) (*hubgenkeeper.Keeper, sdk.Context) {
k := &app.HubGenesisKeeper
ctx := app.BaseApp.NewContext(false, tmproto.Header{Height: 1, ChainID: "rollapp-1", Time: time.Now().UTC()})
Expand Down
Loading

0 comments on commit e70f846

Please sign in to comment.