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: Integrate feemarket + reworked ante, post handler decorator distinction #782

Merged
merged 38 commits into from
Sep 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
89c3505
feat: integrated feemarket
vishal-kanna Aug 27, 2024
defe327
chore: updated anteHandler and postHandler
vishal-kanna Aug 28, 2024
5e33e65
chore: use replace for feemarket in go.mod
vishal-kanna Aug 28, 2024
d5667f0
chore: changed go version in docker file
vishal-kanna Aug 29, 2024
8684ce9
fix : fix testing in antehandler
vishal-kanna Aug 29, 2024
ea06beb
fix: fix lint issues
vishal-kanna Aug 29, 2024
d09e816
chore: updated antehandler
vishal-kanna Aug 29, 2024
adcd9f3
fix: fix lint issues
vishal-kanna Aug 29, 2024
e2f6a74
fix: fix lint issues
vishal-kanna Aug 29, 2024
f016460
fix: lint issus
vishal-kanna Aug 29, 2024
36202e4
chore: updated ante and fix test cases
vishal-kanna Aug 30, 2024
945b3cc
fix: gofumt errors
vishal-kanna Aug 30, 2024
74089c2
fix: golint issues
vishal-kanna Aug 30, 2024
4256d7f
chore: updated postHandler
vishal-kanna Aug 30, 2024
acd8d74
testing
vishal-kanna Sep 3, 2024
4779b6a
chore: added test cases
vishal-kanna Sep 4, 2024
9557978
fix
vishal-kanna Sep 4, 2024
044bc3d
fix
vishal-kanna Sep 4, 2024
b2b8502
fix: golint issues
vishal-kanna Sep 4, 2024
e2866fb
fix : fix testcase
vishal-kanna Sep 5, 2024
9bcd0cb
fix: fix lint issues
vishal-kanna Sep 5, 2024
64c505d
disable update tests
vishal-kanna Sep 5, 2024
b05f6ee
disable report test
vishal-kanna Sep 5, 2024
9af6f82
fix: added response check in tests
vishal-kanna Sep 5, 2024
6181458
fix
vishal-kanna Sep 5, 2024
33403e1
chore: added param subsace for feemarket
vishal-kanna Sep 6, 2024
05fa0ec
addressed review comments
vishal-kanna Sep 10, 2024
281af5e
chore: merged feemarket integration PR
vishal-kanna Sep 10, 2024
0c5a67b
fix
vishal-kanna Sep 10, 2024
1fd19a2
fix
vishal-kanna Sep 10, 2024
cb727e6
fix
vishal-kanna Sep 10, 2024
611e181
TODO in app.go
vishal-kanna Sep 10, 2024
af939e1
fix: golint error
vishal-kanna Sep 10, 2024
15b751a
Temporarily disabled upgrade test runs + references
Eengineer1 Sep 18, 2024
9a64ed4
chore: added upgradeHandler and upgraded the store loader
vishal-kanna Sep 19, 2024
bd49157
Merge branch 'vishal/integrate-antehandler' of https://github.com/che…
vishal-kanna Sep 19, 2024
55441ec
Removed redundant
Eengineer1 Sep 20, 2024
77f34f5
Bump gas adjustment
Eengineer1 Sep 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
308 changes: 154 additions & 154 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,144 +166,144 @@ jobs:
path: report-integration.xml

# NOTE: This job is disabled since upgrade tests from v0.6.x to v1.x.x are not needed until next major release.
upgrade-tests:
name: "Upgrade Tests"
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4

# Preparations

- name: Download old node binary (mainnet-latest)
run: |
mkdir -p ${{ env.RUNNER_BIN_DIR }}
wget -c https://github.com/cheqd/cheqd-node/releases/download/v"${LEGACY_VERSION}"/cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz
tar -xvf cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz -C ${{ env.RUNNER_BIN_DIR }}
sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
env:
LEGACY_VERSION: 1.4.5

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: actions/setup-go@v5
with:
go-version-file: ./go.mod
cache: true

- name: Install ginkgo
working-directory: ./..
run: go install github.com/onsi/ginkgo/v2/ginkgo@latest

- name: Download new version of the Docker image (build-latest)
uses: actions/download-artifact@v4
with:
name: cheqd-node-build.tar

- name: Load node Docker image
run: docker load -i cheqd-node-build.tar

# Run tests
- name: Setting up network with old binary inside (mainnet version)
working-directory: ./tests/upgrade/integration
run: |
bash scripts/old_binary_setup.sh

- name: Run pre-upgrade tests
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file pre_test.go --keep-going --trace --junit-report ../../../../report-pre-upgrade.xml

- name: Upload pre-upgrade tests result
uses: actions/upload-artifact@v4
with:
name: report-pre-upgrade.xml
path: report-pre-upgrade.xml

- name: Restart network using new node version (build-latest)
working-directory: ./tests/upgrade/integration
run: |
bash scripts/upgrade.sh

- name: Verifying docker processes
working-directory: ./tests/upgrade/integration
run: |
docker ps -a

- name: Run post-upgrade tests
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file post_test.go --keep-going --trace --junit-report ../../../../report-post-upgrade.xml

- name: Upload post-upgrade tests result
uses: actions/upload-artifact@v4
with:
name: report-post-upgrade.xml
path: report-post-upgrade.xml

- name: Download binary artifact (build-latest)
uses: actions/download-artifact@v4
id: download
with:
name: cheqd-noded
path: ${{ env.RUNNER_BIN_DIR }}

- name: Restore binary permissions
run: sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded

- name: Run integration tests on upgraded network
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --junit-report ../../report-upgraded-integration.xml

- name: Upload post-upgrade integration tests result
uses: actions/upload-artifact@v4
with:
name: report-upgraded-integration.xml
path: report-upgraded-integration.xml

- name: Show logs on failure
if: failure()
working-directory: ./docker/localnet
run: docker compose --env-file build-latest.env logs --tail --follow

- name: Submit governance fee parameter change proposals
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file param_change_proposal_test.go --keep-going --trace --junit-report ../../../../report-pricing-proposal.xml

- name: Upload pricing proposal tests result
uses: actions/upload-artifact@v4
with:
name: report-pricing-proposal.xml
path: report-pricing-proposal.xml

- name: Run pricing integration tests after successful param change proposal
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --skip-file cli_diddoc_test.go --skip-file cli_diddoc_negative_test.go --skip-file cli_resource_test.go --skip-file cli_resource_negative_test.go --junit-report ../../report-pricing-change.xml

- name: Upload pricing change tests result
uses: actions/upload-artifact@v4
with:
name: report-pricing-change.xml
path: report-pricing-change.xml

- name: Cleanup after tests
working-directory: ./tests/upgrade/integration
run: |
bash scripts/cleanup.sh
# upgrade-tests:
# name: "Upgrade Tests"
# runs-on: ubuntu-20.04
# steps:
# - uses: actions/checkout@v4

# # Preparations

# - name: Download old node binary (mainnet-latest)
# run: |
# mkdir -p ${{ env.RUNNER_BIN_DIR }}
# wget -c https://github.com/cheqd/cheqd-node/releases/download/v"${LEGACY_VERSION}"/cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz
# tar -xvf cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz -C ${{ env.RUNNER_BIN_DIR }}
# sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
# env:
# LEGACY_VERSION: 1.4.5

# - name: Login to GitHub Container Registry
# uses: docker/login-action@v3
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}

# - uses: actions/setup-go@v5
# with:
# go-version-file: ./go.mod
# cache: true

# - name: Install ginkgo
# working-directory: ./..
# run: go install github.com/onsi/ginkgo/v2/ginkgo@latest

# - name: Download new version of the Docker image (build-latest)
# uses: actions/download-artifact@v4
# with:
# name: cheqd-node-build.tar

# - name: Load node Docker image
# run: docker load -i cheqd-node-build.tar

# # Run tests
# - name: Setting up network with old binary inside (mainnet version)
# working-directory: ./tests/upgrade/integration
# run: |
# bash scripts/old_binary_setup.sh

# - name: Run pre-upgrade tests
# working-directory: ./tests/upgrade/integration/v2
# run: |
# ginkgo -r --race --tags upgrade_integration --focus-file pre_test.go --keep-going --trace --junit-report ../../../../report-pre-upgrade.xml

# - name: Upload pre-upgrade tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-pre-upgrade.xml
# path: report-pre-upgrade.xml

# - name: Restart network using new node version (build-latest)
# working-directory: ./tests/upgrade/integration
# run: |
# bash scripts/upgrade.sh

# - name: Verifying docker processes
# working-directory: ./tests/upgrade/integration
# run: |
# docker ps -a

# - name: Run post-upgrade tests
# working-directory: ./tests/upgrade/integration/v2
# run: |
# ginkgo -r --race --tags upgrade_integration --focus-file post_test.go --keep-going --trace --junit-report ../../../../report-post-upgrade.xml

# - name: Upload post-upgrade tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-post-upgrade.xml
# path: report-post-upgrade.xml

# - name: Download binary artifact (build-latest)
# uses: actions/download-artifact@v4
# id: download
# with:
# name: cheqd-noded
# path: ${{ env.RUNNER_BIN_DIR }}

# - name: Restore binary permissions
# run: sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded

# - name: Run integration tests on upgraded network
# working-directory: ./tests/integration
# run: |
# ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --junit-report ../../report-upgraded-integration.xml

# - name: Upload post-upgrade integration tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-upgraded-integration.xml
# path: report-upgraded-integration.xml

# - name: Show logs on failure
# if: failure()
# working-directory: ./docker/localnet
# run: docker compose --env-file build-latest.env logs --tail --follow

# - name: Submit governance fee parameter change proposals
# working-directory: ./tests/upgrade/integration/v2
# run: |
# ginkgo -r --race --tags upgrade_integration --focus-file param_change_proposal_test.go --keep-going --trace --junit-report ../../../../report-pricing-proposal.xml

# - name: Upload pricing proposal tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-pricing-proposal.xml
# path: report-pricing-proposal.xml

# - name: Run pricing integration tests after successful param change proposal
# working-directory: ./tests/integration
# run: |
# ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --skip-file cli_diddoc_test.go --skip-file cli_diddoc_negative_test.go --skip-file cli_resource_test.go --skip-file cli_resource_negative_test.go --junit-report ../../report-pricing-change.xml

# - name: Upload pricing change tests result
# uses: actions/upload-artifact@v4
# with:
# name: report-pricing-change.xml
# path: report-pricing-change.xml

# - name: Cleanup after tests
# working-directory: ./tests/upgrade/integration
# run: |
# bash scripts/cleanup.sh

report-results:
name: "Report"
runs-on: ubuntu-20.04
# NOTE: If not next major release, only unit and integration tests are necessary, otherwise all tests are needed.
# needs: [unit-tests, integration-tests]
needs: [unit-tests, integration-tests, upgrade-tests]
needs: [unit-tests, integration-tests]
# needs: [unit-tests, integration-tests, upgrade-tests]
if: always()

steps:
Expand All @@ -319,34 +319,34 @@ jobs:
with:
name: report-integration.xml

- name: Download pre-upgrade test Report
uses: actions/download-artifact@v4
with:
name: report-pre-upgrade.xml
# - name: Download pre-upgrade test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pre-upgrade.xml

- name: Download post-upgrade test Report
uses: actions/download-artifact@v4
with:
name: report-post-upgrade.xml
# - name: Download post-upgrade test Report
# uses: actions/download-artifact@v4
# with:
# name: report-post-upgrade.xml

- name: Download upgraded integration test Report
uses: actions/download-artifact@v4
with:
name: report-upgraded-integration.xml
# - name: Download upgraded integration test Report
# uses: actions/download-artifact@v4
# with:
# name: report-upgraded-integration.xml

- name: Download pricing proposal test Report
uses: actions/download-artifact@v4
with:
name: report-pricing-proposal.xml
# - name: Download pricing proposal test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pricing-proposal.xml

- name: Download pricing change test Report
uses: actions/download-artifact@v4
with:
name: report-pricing-change.xml
# - name: Download pricing change test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pricing-change.xml

- name: Combine test results
run: |
python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml report-pre-upgrade.xml report-post-upgrade.xml report-upgraded-integration.xml report-pricing-proposal.xml report-pricing-change.xml > report.xml
# python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml
# run: |
# python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml > report.xml

Expand Down
23 changes: 23 additions & 0 deletions ante/expected_keepers.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import (
didtypes "github.com/cheqd/cheqd-node/x/did/types"
resourcetypes "github.com/cheqd/cheqd-node/x/resource/types"
sdk "github.com/cosmos/cosmos-sdk/types"
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
feemarkettypes "github.com/skip-mev/feemarket/x/feemarket/types"
)

type BankKeeper interface {
Expand All @@ -12,6 +14,7 @@ type BankKeeper interface {
SendCoinsFromModuleToModule(ctx sdk.Context, senderModule, recipientModule string, amt sdk.Coins) error
BurnCoins(ctx sdk.Context, name string, amt sdk.Coins) error
IsSendEnabledCoins(ctx sdk.Context, coins ...sdk.Coin) error
SendCoinsFromModuleToAccount(ctx sdk.Context, senderModule string, recipientAddr sdk.AccAddress, amt sdk.Coins) error
}

type DidKeeper interface {
Expand All @@ -21,3 +24,23 @@ type DidKeeper interface {
type ResourceKeeper interface {
GetParams(ctx sdk.Context) (params resourcetypes.FeeParams)
}
type AccountKeeper interface {
GetParams(ctx sdk.Context) (params authtypes.Params)
GetAccount(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
SetAccount(ctx sdk.Context, acc authtypes.AccountI)
GetModuleAddress(moduleName string) sdk.AccAddress
GetModuleAccount(ctx sdk.Context, name string) authtypes.ModuleAccountI
NewAccountWithAddress(ctx sdk.Context, addr sdk.AccAddress) authtypes.AccountI
}
type FeeGrantKeeper interface {
UseGrantedFees(ctx sdk.Context, granter, grantee sdk.AccAddress, fee sdk.Coins, msgs []sdk.Msg) error
}

type FeeMarketKeeper interface {
GetState(ctx sdk.Context) (feemarkettypes.State, error)
GetMinGasPrice(ctx sdk.Context, denom string) (sdk.DecCoin, error)
GetParams(ctx sdk.Context) (feemarkettypes.Params, error)
SetState(ctx sdk.Context, state feemarkettypes.State) error
SetParams(ctx sdk.Context, params feemarkettypes.Params) error
ResolveToDenom(ctx sdk.Context, coin sdk.DecCoin, denom string) (sdk.DecCoin, error)
}
Loading
Loading