From b07ddca3504c2b20dd972870c907e6ea0e2d3ad7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Nov 2023 18:03:09 +0000 Subject: [PATCH 01/20] Bump dev-drprasad/delete-older-releases from 0.2.0 to 0.3.2 Bumps [dev-drprasad/delete-older-releases](https://github.com/dev-drprasad/delete-older-releases) from 0.2.0 to 0.3.2. - [Release notes](https://github.com/dev-drprasad/delete-older-releases/releases) - [Commits](https://github.com/dev-drprasad/delete-older-releases/compare/v0.2.0...v0.3.2) --- updated-dependencies: - dependency-name: dev-drprasad/delete-older-releases dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 1a64f0c6..7f9bc499 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -46,7 +46,7 @@ jobs: exit 1 - name: Delete the "latest" Pre-Release - uses: dev-drprasad/delete-older-releases@v0.2.0 + uses: dev-drprasad/delete-older-releases@v0.3.2 with: keep_latest: 0 delete_tag_pattern: .*-${{ github.head_ref || github.ref_name }} From c692f06abb6f9eff14e3691ef6f4441d481091e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 05:33:25 +0000 Subject: [PATCH 02/20] Bump docker/setup-buildx-action from 2 to 3 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index afedb2b0..d3c7093f 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -51,7 +51,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Publish the Pre-Release run: make release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ff50f59..d06f22a7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,7 @@ jobs: uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Publish the Release run: make release From 64cf6e69e13ca2d0bcb6b44cb38c9d2ceeadbb4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 05:33:29 +0000 Subject: [PATCH 03/20] Bump docker/setup-qemu-action from 2 to 3 Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index afedb2b0..4fa4f356 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -48,7 +48,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0ff50f59..729c7aaf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,7 @@ jobs: echo "VERSION=$VER" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 From d8bdaeb22e0404f54e9ab6bbabee1f191f56abda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 05:58:50 +0000 Subject: [PATCH 04/20] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/pre-release.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index bf18bb5a..143ae934 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/setup-go@v3 with: go-version: 1.19 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 7c063fe0..caafa1d4 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eba827fe..c8dc7b4f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5b0ab10f..7c924a1d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v3 From e277d77592281c401197762fba6ec03232a56588 Mon Sep 17 00:00:00 2001 From: Narutobacoshiba Date: Mon, 13 Nov 2023 15:30:59 +0700 Subject: [PATCH 05/20] update max metadata lenght of proposal --- app/app.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/app.go b/app/app.go index af15683f..ab2fbba8 100644 --- a/app/app.go +++ b/app/app.go @@ -579,9 +579,11 @@ func New( govRouter.AddRoute(wasmtypes.RouterKey, wasm.NewWasmProposalHandler(app.WasmKeeper, enabledProposals)) //nolint:staticcheck // still use same ver 0.41.0 of wasmd } + customGovConfig := govtypes.DefaultConfig() + customGovConfig.MaxMetadataLen = 2000 app.GovKeeper = govkeeper.NewKeeper( appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper, - stakingKeeper, app.BaseApp.MsgServiceRouter(), govtypes.DefaultConfig(), govModAddress, + stakingKeeper, app.BaseApp.MsgServiceRouter(), customGovConfig, govModAddress, ) // Set legacy router for backwards compatibility with gov v1beta1 From 1f322915b7f3d547ca0033386f6fa80297a061e0 Mon Sep 17 00:00:00 2001 From: Kien Vu Date: Mon, 20 Nov 2023 14:45:08 +0700 Subject: [PATCH 06/20] add release note template --- .goreleaser.yaml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 4ff2aa2c..c147d0a9 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -28,6 +28,40 @@ builds: tags: - netgo - muslc + +changelog: + sort: asc + templates: + release: | + # {{ .Tag }} + + {{ .Date.Format "2006-01-02" }} + + {{ with .Commits }} + ## Commits + + {{ range . }} + - {{ .Subject }} + {{ end }} + {{ end }} + + {{ with .PullRequests }} + ## Pull Requests + + {{ range . }} + - {{ .Title }} (#{{ .Number }}) + {{ end }} + {{ end }} + + {{ if .Notes }} + + ## Notes + + {{ .Notes }} + + {{ end }} + + commit: "{{ .Hash }} {{ .Subject }}" release: prerelease: auto checksum: From 22cc91ee86acf25cbe2fcabdc1e29b3d08790c47 Mon Sep 17 00:00:00 2001 From: Endless <85695960+Narutobacoshiba@users.noreply.github.com> Date: Mon, 20 Nov 2023 15:37:19 +0700 Subject: [PATCH 07/20] upgrade v0.7.2 - support wasmvm capabilities (#169) --- CHANGELOG.md | 8 ++++++++ app/app.go | 14 ++++++++++++-- app/upgrades/v0.7.2/upgrades.go | 20 ++++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 app/upgrades/v0.7.2/upgrades.go diff --git a/CHANGELOG.md b/CHANGELOG.md index e7fd2a06..f79af6cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,14 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## Unreleased +## [v0.7.2] - 2023-11-20 + +### Features +- Support wasmvm capabilities: + - "cosmwasm_1_1" + - "cosmwasm_1_2" + - "cosmwasm_1_3" + ## [v0.7.1] - 2023-10-18 Update smartaccount diff --git a/app/app.go b/app/app.go index ab2fbba8..8269294c 100644 --- a/app/app.go +++ b/app/app.go @@ -15,6 +15,7 @@ import ( v601 "github.com/aura-nw/aura/app/upgrades/v0.6.1" v700 "github.com/aura-nw/aura/app/upgrades/v0.7.0" v701 "github.com/aura-nw/aura/app/upgrades/v0.7.1" + v702 "github.com/aura-nw/aura/app/upgrades/v0.7.2" "github.com/aura-nw/aura/app/internal" @@ -124,6 +125,7 @@ import ( authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + wasmapp "github.com/CosmWasm/wasmd/app" "github.com/CosmWasm/wasmd/x/wasm" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" @@ -533,7 +535,7 @@ func New( // The last arguments can contain custom message handlers, and custom query handlers, // if we want to allow any custom callbacks - supportedFeatures := "iterator,staking,stargate" + availableCapabilities := strings.Join(wasmapp.AllCapabilities(), ",") wasmOpts := GetWasmOpts(appOpts) app.WasmKeeper = wasmkeeper.NewKeeper( appCodec, @@ -551,7 +553,7 @@ func New( app.BaseApp.GRPCQueryRouter(), wasmDir, wasmConfig, - supportedFeatures, + availableCapabilities, govModAddress, wasmOpts..., ) @@ -1124,6 +1126,11 @@ func (app *App) setupUpgradeHandlers() { ), ) + app.UpgradeKeeper.SetUpgradeHandler( + v702.UpgradeName, + v702.CreateUpgradeHandler(app.mm, app.configurator), + ) + // When a planned update height is reached, the old binary will panic // writing on disk the height and name of the update that triggered it // This will read that value, and execute the preparations for the upgrade. @@ -1197,6 +1204,9 @@ func (app *App) setupUpgradeHandlers() { }, } } + + case v702.UpgradeName: + // no store upgrades in v0.7.2 } if storeUpgrades != nil { diff --git a/app/upgrades/v0.7.2/upgrades.go b/app/upgrades/v0.7.2/upgrades.go new file mode 100644 index 00000000..09796a67 --- /dev/null +++ b/app/upgrades/v0.7.2/upgrades.go @@ -0,0 +1,20 @@ +package v702 + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +// UpgradeName is the name of upgrade. This upgrade added new module +const UpgradeName = "v0.7.2" + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + + return mm.RunMigrations(ctx, configurator, vm) + } +} From 0dea54d0923976457a51b46b078211ba53ca2d30 Mon Sep 17 00:00:00 2001 From: kienvc Date: Mon, 20 Nov 2023 15:41:16 +0700 Subject: [PATCH 08/20] bump patch version --- .VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.VERSION b/.VERSION index 63f2359f..2c0a9c7b 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v0.7.1 +v0.7.2 From 2b36f9a478be79993961550a5da5b459eb448137 Mon Sep 17 00:00:00 2001 From: kienvc Date: Mon, 20 Nov 2023 15:50:44 +0700 Subject: [PATCH 09/20] modify release changelog --- .goreleaser.yaml | 34 +--------------------------------- 1 file changed, 1 insertion(+), 33 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index c147d0a9..dab48f83 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -28,40 +28,8 @@ builds: tags: - netgo - muslc - changelog: - sort: asc - templates: - release: | - # {{ .Tag }} - - {{ .Date.Format "2006-01-02" }} - - {{ with .Commits }} - ## Commits - - {{ range . }} - - {{ .Subject }} - {{ end }} - {{ end }} - - {{ with .PullRequests }} - ## Pull Requests - - {{ range . }} - - {{ .Title }} (#{{ .Number }}) - {{ end }} - {{ end }} - - {{ if .Notes }} - - ## Notes - - {{ .Notes }} - - {{ end }} - - commit: "{{ .Hash }} {{ .Subject }}" + use: github-native release: prerelease: auto checksum: From fdd517811a14cd9b4c0e719916e84889c64641e3 Mon Sep 17 00:00:00 2001 From: phanhoc Date: Mon, 20 Nov 2023 16:17:43 +0700 Subject: [PATCH 10/20] Update support feature wasmd (#170) * Bump dev-drprasad/delete-older-releases from 0.2.0 to 0.3.2 Bumps [dev-drprasad/delete-older-releases](https://github.com/dev-drprasad/delete-older-releases) from 0.2.0 to 0.3.2. - [Release notes](https://github.com/dev-drprasad/delete-older-releases/releases) - [Commits](https://github.com/dev-drprasad/delete-older-releases/compare/v0.2.0...v0.3.2) --- updated-dependencies: - dependency-name: dev-drprasad/delete-older-releases dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump docker/setup-buildx-action from 2 to 3 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump docker/setup-qemu-action from 2 to 3 Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * update max metadata lenght of proposal * add release note template * upgrade v0.7.2 - support wasmvm capabilities (#169) * bump patch version * modify release changelog --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: kienvc Co-authored-by: Narutobacoshiba Co-authored-by: Endless <85695960+Narutobacoshiba@users.noreply.github.com> --- .VERSION | 2 +- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/pre-release.yml | 8 ++++---- .github/workflows/release.yml | 6 +++--- .github/workflows/test.yml | 2 +- .goreleaser.yaml | 2 ++ CHANGELOG.md | 8 ++++++++ app/app.go | 18 +++++++++++++++--- app/upgrades/v0.7.2/upgrades.go | 20 ++++++++++++++++++++ 9 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 app/upgrades/v0.7.2/upgrades.go diff --git a/.VERSION b/.VERSION index 63f2359f..2c0a9c7b 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v0.7.1 +v0.7.2 diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index bf18bb5a..143ae934 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/setup-go@v3 with: go-version: 1.19 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 118a963e..73aa24a4 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -39,7 +39,7 @@ jobs: exit 1 - name: Delete the "latest" Pre-Release - uses: dev-drprasad/delete-older-releases@v0.2.0 + uses: dev-drprasad/delete-older-releases@v0.3.2 with: keep_latest: 0 delete_tag_pattern: .*-${{ github.head_ref || github.ref_name }} @@ -47,10 +47,10 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Publish the Pre-Release run: make release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6cd1b520..c42f5486 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -26,10 +26,10 @@ jobs: echo "VERSION=$VER" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Publish the Release run: make release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5b0ab10f..7c924a1d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v3 diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 4ff2aa2c..dab48f83 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -28,6 +28,8 @@ builds: tags: - netgo - muslc +changelog: + use: github-native release: prerelease: auto checksum: diff --git a/CHANGELOG.md b/CHANGELOG.md index e7fd2a06..f79af6cb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,14 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## Unreleased +## [v0.7.2] - 2023-11-20 + +### Features +- Support wasmvm capabilities: + - "cosmwasm_1_1" + - "cosmwasm_1_2" + - "cosmwasm_1_3" + ## [v0.7.1] - 2023-10-18 Update smartaccount diff --git a/app/app.go b/app/app.go index af15683f..8269294c 100644 --- a/app/app.go +++ b/app/app.go @@ -15,6 +15,7 @@ import ( v601 "github.com/aura-nw/aura/app/upgrades/v0.6.1" v700 "github.com/aura-nw/aura/app/upgrades/v0.7.0" v701 "github.com/aura-nw/aura/app/upgrades/v0.7.1" + v702 "github.com/aura-nw/aura/app/upgrades/v0.7.2" "github.com/aura-nw/aura/app/internal" @@ -124,6 +125,7 @@ import ( authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + wasmapp "github.com/CosmWasm/wasmd/app" "github.com/CosmWasm/wasmd/x/wasm" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" @@ -533,7 +535,7 @@ func New( // The last arguments can contain custom message handlers, and custom query handlers, // if we want to allow any custom callbacks - supportedFeatures := "iterator,staking,stargate" + availableCapabilities := strings.Join(wasmapp.AllCapabilities(), ",") wasmOpts := GetWasmOpts(appOpts) app.WasmKeeper = wasmkeeper.NewKeeper( appCodec, @@ -551,7 +553,7 @@ func New( app.BaseApp.GRPCQueryRouter(), wasmDir, wasmConfig, - supportedFeatures, + availableCapabilities, govModAddress, wasmOpts..., ) @@ -579,9 +581,11 @@ func New( govRouter.AddRoute(wasmtypes.RouterKey, wasm.NewWasmProposalHandler(app.WasmKeeper, enabledProposals)) //nolint:staticcheck // still use same ver 0.41.0 of wasmd } + customGovConfig := govtypes.DefaultConfig() + customGovConfig.MaxMetadataLen = 2000 app.GovKeeper = govkeeper.NewKeeper( appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper, - stakingKeeper, app.BaseApp.MsgServiceRouter(), govtypes.DefaultConfig(), govModAddress, + stakingKeeper, app.BaseApp.MsgServiceRouter(), customGovConfig, govModAddress, ) // Set legacy router for backwards compatibility with gov v1beta1 @@ -1122,6 +1126,11 @@ func (app *App) setupUpgradeHandlers() { ), ) + app.UpgradeKeeper.SetUpgradeHandler( + v702.UpgradeName, + v702.CreateUpgradeHandler(app.mm, app.configurator), + ) + // When a planned update height is reached, the old binary will panic // writing on disk the height and name of the update that triggered it // This will read that value, and execute the preparations for the upgrade. @@ -1195,6 +1204,9 @@ func (app *App) setupUpgradeHandlers() { }, } } + + case v702.UpgradeName: + // no store upgrades in v0.7.2 } if storeUpgrades != nil { diff --git a/app/upgrades/v0.7.2/upgrades.go b/app/upgrades/v0.7.2/upgrades.go new file mode 100644 index 00000000..09796a67 --- /dev/null +++ b/app/upgrades/v0.7.2/upgrades.go @@ -0,0 +1,20 @@ +package v702 + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +// UpgradeName is the name of upgrade. This upgrade added new module +const UpgradeName = "v0.7.2" + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + + return mm.RunMigrations(ctx, configurator, vm) + } +} From 2ea683f1f536e3db2931ef28d8401d6bc552b12b Mon Sep 17 00:00:00 2001 From: kienvc Date: Mon, 20 Nov 2023 18:06:21 +0700 Subject: [PATCH 11/20] Update support feature wasmd (#170) (#171) * Bump dev-drprasad/delete-older-releases from 0.2.0 to 0.3.2 Bumps [dev-drprasad/delete-older-releases](https://github.com/dev-drprasad/delete-older-releases) from 0.2.0 to 0.3.2. - [Release notes](https://github.com/dev-drprasad/delete-older-releases/releases) - [Commits](https://github.com/dev-drprasad/delete-older-releases/compare/v0.2.0...v0.3.2) --- updated-dependencies: - dependency-name: dev-drprasad/delete-older-releases dependency-type: direct:production update-type: version-update:semver-minor ... * Bump docker/setup-buildx-action from 2 to 3 Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... * Bump docker/setup-qemu-action from 2 to 3 Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2 to 3. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2...v3) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... * Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... --- * update max metadata lenght of proposal * add release note template * upgrade v0.7.2 - support wasmvm capabilities (#169) * bump patch version * modify release changelog --------- Signed-off-by: dependabot[bot] Co-authored-by: phanhoc Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Narutobacoshiba Co-authored-by: Endless <85695960+Narutobacoshiba@users.noreply.github.com> --- .VERSION | 2 +- .github/workflows/golangci-lint.yml | 2 +- .github/workflows/pre-release.yml | 8 ++++---- .github/workflows/release.yml | 6 +++--- .github/workflows/test.yml | 2 +- .goreleaser.yaml | 2 ++ CHANGELOG.md | 8 ++++++++ app/app.go | 18 +++++++++++++++--- app/upgrades/v0.7.2/upgrades.go | 20 ++++++++++++++++++++ 9 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 app/upgrades/v0.7.2/upgrades.go diff --git a/.VERSION b/.VERSION index 63f2359f..2c0a9c7b 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v0.7.1 +v0.7.2 diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index bf18bb5a..143ae934 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -9,7 +9,7 @@ jobs: - uses: actions/setup-go@v3 with: go-version: 1.19 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: golangci-lint uses: golangci/golangci-lint-action@v3 with: diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 118a963e..73aa24a4 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -39,7 +39,7 @@ jobs: exit 1 - name: Delete the "latest" Pre-Release - uses: dev-drprasad/delete-older-releases@v0.2.0 + uses: dev-drprasad/delete-older-releases@v0.3.2 with: keep_latest: 0 delete_tag_pattern: .*-${{ github.head_ref || github.ref_name }} @@ -47,10 +47,10 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Publish the Pre-Release run: make release diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6cd1b520..c42f5486 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 @@ -26,10 +26,10 @@ jobs: echo "VERSION=$VER" >> $GITHUB_ENV - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Publish the Release run: make release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5b0ab10f..7c924a1d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,7 +5,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v3 diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 4ff2aa2c..dab48f83 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -28,6 +28,8 @@ builds: tags: - netgo - muslc +changelog: + use: github-native release: prerelease: auto checksum: diff --git a/CHANGELOG.md b/CHANGELOG.md index 92061788..159e9736 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,14 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## Unreleased +## [v0.7.2] - 2023-11-20 + +### Features +- Support wasmvm capabilities: + - "cosmwasm_1_1" + - "cosmwasm_1_2" + - "cosmwasm_1_3" + ## [v0.7.1] - 2023-10-18 Update smartaccount diff --git a/app/app.go b/app/app.go index 02ee4ebb..7e957ac7 100644 --- a/app/app.go +++ b/app/app.go @@ -15,6 +15,7 @@ import ( v601 "github.com/aura-nw/aura/app/upgrades/v0.6.1" v700 "github.com/aura-nw/aura/app/upgrades/v0.7.0" v701 "github.com/aura-nw/aura/app/upgrades/v0.7.1" + v702 "github.com/aura-nw/aura/app/upgrades/v0.7.2" "github.com/aura-nw/aura/app/internal" @@ -124,6 +125,7 @@ import ( authzkeeper "github.com/cosmos/cosmos-sdk/x/authz/keeper" authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + wasmapp "github.com/CosmWasm/wasmd/app" "github.com/CosmWasm/wasmd/x/wasm" wasmkeeper "github.com/CosmWasm/wasmd/x/wasm/keeper" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" @@ -534,7 +536,7 @@ func New( // The last arguments can contain custom message handlers, and custom query handlers, // if we want to allow any custom callbacks - supportedFeatures := "iterator,staking,stargate" + availableCapabilities := strings.Join(wasmapp.AllCapabilities(), ",") wasmOpts := GetWasmOpts(appOpts) app.WasmKeeper = wasmkeeper.NewKeeper( appCodec, @@ -552,7 +554,7 @@ func New( app.BaseApp.GRPCQueryRouter(), wasmDir, wasmConfig, - supportedFeatures, + availableCapabilities, govModAddress, wasmOpts..., ) @@ -580,9 +582,11 @@ func New( govRouter.AddRoute(wasmtypes.RouterKey, wasm.NewWasmProposalHandler(app.WasmKeeper, enabledProposals)) //nolint:staticcheck // still use same ver 0.41.0 of wasmd } + customGovConfig := govtypes.DefaultConfig() + customGovConfig.MaxMetadataLen = 2000 app.GovKeeper = govkeeper.NewKeeper( appCodec, keys[govtypes.StoreKey], app.AccountKeeper, app.BankKeeper, - stakingKeeper, app.BaseApp.MsgServiceRouter(), govtypes.DefaultConfig(), govModAddress, + stakingKeeper, app.BaseApp.MsgServiceRouter(), customGovConfig, govModAddress, ) // Set legacy router for backwards compatibility with gov v1beta1 @@ -1127,6 +1131,11 @@ func (app *App) setupUpgradeHandlers() { ), ) + app.UpgradeKeeper.SetUpgradeHandler( + v702.UpgradeName, + v702.CreateUpgradeHandler(app.mm, app.configurator), + ) + // When a planned update height is reached, the old binary will panic // writing on disk the height and name of the update that triggered it // This will read that value, and execute the preparations for the upgrade. @@ -1200,6 +1209,9 @@ func (app *App) setupUpgradeHandlers() { }, } } + + case v702.UpgradeName: + // no store upgrades in v0.7.2 } if storeUpgrades != nil { diff --git a/app/upgrades/v0.7.2/upgrades.go b/app/upgrades/v0.7.2/upgrades.go new file mode 100644 index 00000000..09796a67 --- /dev/null +++ b/app/upgrades/v0.7.2/upgrades.go @@ -0,0 +1,20 @@ +package v702 + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +// UpgradeName is the name of upgrade. This upgrade added new module +const UpgradeName = "v0.7.2" + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + + return mm.RunMigrations(ctx, configurator, vm) + } +} From d8b4dac3d60d9505538ea3458beb21c7ba9cfe72 Mon Sep 17 00:00:00 2001 From: Endless <85695960+Narutobacoshiba@users.noreply.github.com> Date: Wed, 17 Jan 2024 22:10:37 +0700 Subject: [PATCH 12/20] Update sa flow (#179) * skip checkTx and re-checkTx * remove postHandle limit gas * update sudo call info * feat/panic_recover * No more max gas limit for post-handler * update test wasm --- tests/smartaccount/wasm/base.wasm | Bin 159938 -> 165433 bytes tests/smartaccount/wasm/recovery.wasm | Bin 177880 -> 180738 bytes x/smartaccount/ante.go | 128 +++++++++++++++++--------- x/smartaccount/post.go | 43 +++++---- x/smartaccount/post_test.go | 41 --------- x/smartaccount/types/errors.go | 2 + x/smartaccount/types/smartaccount.go | 13 +++ x/smartaccount/types/wasmbinding.go | 16 ++-- 8 files changed, 136 insertions(+), 107 deletions(-) diff --git a/tests/smartaccount/wasm/base.wasm b/tests/smartaccount/wasm/base.wasm index a007410124398877842f31acdb9d324fb3dc88a6..2906327ee1ab25d64d9d10782e17f1660af2ab36 100644 GIT binary patch literal 165433 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⪼bi2^;XFy#@)`w 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 delta 58487 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̍@#u2KuODfHW_Tpi*f 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 diff --git a/tests/smartaccount/wasm/recovery.wasm b/tests/smartaccount/wasm/recovery.wasm index e4980f9a8bf17db24716da064132539ab07927fa..bc2f20755fc42457c27e6ca94d8ac8164d93eb3e 100644 GIT binary patch delta 66405 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%0DU+g* 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 delta 64219 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 Date: Thu, 18 Jan 2024 10:16:45 +0700 Subject: [PATCH 13/20] Path wasmvm security --- .VERSION | 2 +- CHANGELOG.md | 6 ++++++ go.mod | 1 + go.sum | 4 ++-- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/.VERSION b/.VERSION index 2c0a9c7b..3d105a6f 100644 --- a/.VERSION +++ b/.VERSION @@ -1 +1 @@ -v0.7.2 +v0.7.3 diff --git a/CHANGELOG.md b/CHANGELOG.md index f79af6cb..39a89fd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,12 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## Unreleased +## [v0.7.2] - 2024-01-18 +### Improvements +- Enhance flow of post handle verify tx from smart account module +- Wasm patch security, pump wasmvm version to v1.3.1 + (https://github.com/CosmWasm/advisories/blob/main/CWAs/CWA-2023-004.md) + ## [v0.7.2] - 2023-11-20 ### Features diff --git a/go.mod b/go.mod index 7d7dcfdc..9bc17dbc 100644 --- a/go.mod +++ b/go.mod @@ -177,6 +177,7 @@ require ( replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.3.1 // Ledger Nano S+ support github.com/cosmos/ledger-go => github.com/cosmos/ledger-go v0.9.3 diff --git a/go.sum b/go.sum index aacb1497..aaff8869 100644 --- a/go.sum +++ b/go.sum @@ -213,8 +213,8 @@ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/CosmWasm/wasmd v0.41.0 h1:fmwxSbwb50zZDcBaayYFRLIaSFca+EFld1WOaQi49jg= github.com/CosmWasm/wasmd v0.41.0/go.mod h1:0Sds1q2IsPaTN1gHa3BNOYcUFgtGvxH7CXEXPgoihns= -github.com/CosmWasm/wasmvm v1.3.0 h1:x12X4bKlUPS7TT9QQP45+fJo2sp30GEbiSSgb9jsec8= -github.com/CosmWasm/wasmvm v1.3.0/go.mod h1:vW/E3h8j9xBQs9bCoijDuawKo9kCtxOaS8N8J7KFtkc= +github.com/CosmWasm/wasmvm v1.3.1 h1:EdDItqJalI+n2HQUA6XGFOSSaYsCoqJtiRzlja54jVI= +github.com/CosmWasm/wasmvm v1.3.1/go.mod h1:vW/E3h8j9xBQs9bCoijDuawKo9kCtxOaS8N8J7KFtkc= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= From e12bb88ecd3958c1e72be8cad9fed1166b40e8cc Mon Sep 17 00:00:00 2001 From: phanhoc Date: Thu, 18 Jan 2024 11:00:15 +0700 Subject: [PATCH 14/20] Add upgrade handle --- app/app.go | 11 ++++++++++- app/upgrades/v0.7.3/upgrades.go | 20 ++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 app/upgrades/v0.7.3/upgrades.go diff --git a/app/app.go b/app/app.go index 8269294c..750ad413 100644 --- a/app/app.go +++ b/app/app.go @@ -8,6 +8,7 @@ import ( "strings" appparams "github.com/aura-nw/aura/app/params" + v703 "github.com/aura-nw/aura/app/upgrades/v0.7.3" v500 "github.com/aura-nw/aura/app/upgrades/v0.5.0" v501 "github.com/aura-nw/aura/app/upgrades/v0.5.1" @@ -1131,6 +1132,11 @@ func (app *App) setupUpgradeHandlers() { v702.CreateUpgradeHandler(app.mm, app.configurator), ) + app.UpgradeKeeper.SetUpgradeHandler( + v703.UpgradeName, + v703.CreateUpgradeHandler(app.mm, app.configurator), + ) + // When a planned update height is reached, the old binary will panic // writing on disk the height and name of the update that triggered it // This will read that value, and execute the preparations for the upgrade. @@ -1206,7 +1212,10 @@ func (app *App) setupUpgradeHandlers() { } case v702.UpgradeName: - // no store upgrades in v0.7.2 + // no store upgrades in v0.7.2 + case v703.UpgradeName: + // no store upgrades in v0.7.3 + } if storeUpgrades != nil { diff --git a/app/upgrades/v0.7.3/upgrades.go b/app/upgrades/v0.7.3/upgrades.go new file mode 100644 index 00000000..41588aa0 --- /dev/null +++ b/app/upgrades/v0.7.3/upgrades.go @@ -0,0 +1,20 @@ +package v703 + +import ( + sdk "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/module" + upgradetypes "github.com/cosmos/cosmos-sdk/x/upgrade/types" +) + +// UpgradeName is the name of upgrade. This upgrade added new module +const UpgradeName = "v0.7.3" + +func CreateUpgradeHandler( + mm *module.Manager, + configurator module.Configurator, +) upgradetypes.UpgradeHandler { + return func(ctx sdk.Context, _ upgradetypes.Plan, vm module.VersionMap) (module.VersionMap, error) { + + return mm.RunMigrations(ctx, configurator, vm) + } +} From a6aace97039afc9a11d3b691b2d775bd05762980 Mon Sep 17 00:00:00 2001 From: kienvc Date: Thu, 18 Jan 2024 14:23:11 +0700 Subject: [PATCH 15/20] Update wasvm Dockerfile --- e2e.Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e.Dockerfile b/e2e.Dockerfile index b3fce16c..2d6cc356 100644 --- a/e2e.Dockerfile +++ b/e2e.Dockerfile @@ -9,8 +9,8 @@ COPY . /aura WORKDIR /aura # See https://github.com/CosmWasm/wasmvm/releases -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.3.0/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.3.0/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.3.1/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.3.1/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a #RUN sha256sum /lib/libwasmvm_muslc.aarch64.a | grep 9ecb037336bd56076573dc18c26631a9d2099a7f2b40dc04b6cae31ffb4c8f9a #RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep 6e4de7ba9bad4ae9679c7f9ecf7e283dd0160e71567c6a7be6ae47c81ebe7f32 @@ -40,4 +40,4 @@ COPY --from=go-builder /aura/build/aurad /usr/bin/aurad # rest grpc p2p rpc EXPOSE 1317 9090 26656 26657 -CMD ["/usr/bin/aurad", "start"] \ No newline at end of file +CMD ["/usr/bin/aurad", "start"] From 2e77874ccae8b136e656a8bfe801ee1065c0d8a0 Mon Sep 17 00:00:00 2001 From: phanhoc Date: Thu, 18 Jan 2024 15:12:02 +0700 Subject: [PATCH 16/20] Add upgrade handle --- CHANGELOG.md | 3 +- go.mod | 33 +++++++++++++-------- go.sum | 83 +++++++++++++++++++++++++++++----------------------- 3 files changed, 69 insertions(+), 50 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 39a89fd7..c59b6851 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,7 +40,8 @@ Ref: https://keepachangelog.com/en/1.0.0/ ## [v0.7.2] - 2024-01-18 ### Improvements - Enhance flow of post handle verify tx from smart account module -- Wasm patch security, pump wasmvm version to v1.3.1 +- Bump wasmd version to v0.42.0 to support long term +- Wasm patch security, pump wasmvm version to v1.4.2 (https://github.com/CosmWasm/advisories/blob/main/CWAs/CWA-2023-004.md) ## [v0.7.2] - 2023-11-20 diff --git a/go.mod b/go.mod index 9bc17dbc..94b54498 100644 --- a/go.mod +++ b/go.mod @@ -5,16 +5,16 @@ go 1.19 require ( cosmossdk.io/api v0.3.1 cosmossdk.io/errors v1.0.0 - cosmossdk.io/math v1.0.1 - github.com/CosmWasm/wasmd v0.41.0 + cosmossdk.io/math v1.1.2 + github.com/CosmWasm/wasmd v0.42.0 github.com/armon/go-metrics v0.4.1 github.com/cometbft/cometbft v0.37.2 github.com/cometbft/cometbft-db v0.8.0 github.com/cosmos/cosmos-proto v1.0.0-beta.3 - github.com/cosmos/cosmos-sdk v0.47.4 + github.com/cosmos/cosmos-sdk v0.47.5 github.com/cosmos/gogoproto v1.4.10 github.com/cosmos/ibc-apps/modules/ibc-hooks/v7 v7.0.0-20230803181732-7c8f814d3b79 - github.com/cosmos/ibc-go/v7 v7.2.0 + github.com/cosmos/ibc-go/v7 v7.3.0 github.com/gogo/protobuf v1.3.2 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.3 @@ -40,14 +40,14 @@ require ( cloud.google.com/go/iam v1.1.0 // indirect cloud.google.com/go/storage v1.30.1 // indirect cosmossdk.io/core v0.6.1 // indirect - cosmossdk.io/depinject v1.0.0-alpha.3 // indirect - cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca // indirect + cosmossdk.io/depinject v1.0.0-alpha.4 // indirect + cosmossdk.io/log v1.2.1 // indirect cosmossdk.io/tools/rosetta v0.2.1 // indirect filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.2 // indirect github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect - github.com/CosmWasm/wasmvm v1.3.0 // indirect + github.com/CosmWasm/wasmvm v1.4.0 // indirect github.com/aws/aws-sdk-go v1.44.203 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect @@ -58,12 +58,15 @@ require ( github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect + github.com/cockroachdb/errors v1.10.0 // indirect + github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b // indirect + github.com/cockroachdb/redact v1.1.5 // indirect github.com/coinbase/rosetta-sdk-go/types v1.0.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v0.20.0 // indirect + github.com/cosmos/iavl v0.20.1 // indirect github.com/cosmos/ics23/go v0.10.0 // indirect github.com/cosmos/ledger-cosmos-go v0.12.2 // indirect github.com/cosmos/rosetta-sdk-go v0.10.0 // indirect @@ -80,6 +83,7 @@ require ( github.com/dvsekhvalnov/jose2go v1.5.0 // indirect github.com/felixge/httpsnoop v1.0.2 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/getsentry/sentry-go v0.23.0 // indirect github.com/ghodss/yaml v1.0.0 // indirect github.com/go-kit/kit v0.12.0 // indirect github.com/go-kit/log v0.2.1 // indirect @@ -117,6 +121,8 @@ require ( github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/klauspost/compress v1.16.3 // indirect + github.com/kr/pretty v0.3.1 // indirect + github.com/kr/text v0.2.0 // indirect github.com/lib/pq v1.10.7 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect github.com/linxGnu/grocksdb v1.7.16 // indirect @@ -141,8 +147,9 @@ require ( github.com/prometheus/procfs v0.10.1 // indirect github.com/rakyll/statik v0.1.7 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect + github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/rs/cors v1.8.3 // indirect - github.com/rs/zerolog v1.29.1 // indirect + github.com/rs/zerolog v1.30.0 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect github.com/spf13/afero v1.9.5 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect @@ -157,12 +164,12 @@ require ( go.etcd.io/bbolt v1.3.7 // indirect go.opencensus.io v0.24.0 // indirect golang.org/x/crypto v0.11.0 // indirect - golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc // indirect + golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb // indirect golang.org/x/net v0.12.0 // indirect golang.org/x/oauth2 v0.8.0 // indirect - golang.org/x/sys v0.10.0 // indirect + golang.org/x/sys v0.11.0 // indirect golang.org/x/term v0.10.0 // indirect - golang.org/x/text v0.11.0 // indirect + golang.org/x/text v0.12.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/api v0.126.0 // indirect google.golang.org/appengine v1.6.7 // indirect @@ -177,7 +184,7 @@ require ( replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 - github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.3.1 + github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.4.2 // Ledger Nano S+ support github.com/cosmos/ledger-go => github.com/cosmos/ledger-go v0.9.3 diff --git a/go.sum b/go.sum index aaff8869..a348f8f1 100644 --- a/go.sum +++ b/go.sum @@ -191,14 +191,14 @@ cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.6.1 h1:OBy7TI2W+/gyn2z40vVvruK3di+cAluinA6cybFbE7s= cosmossdk.io/core v0.6.1/go.mod h1:g3MMBCBXtxbDWBURDVnJE7XML4BG5qENhs0gzkcpuFA= -cosmossdk.io/depinject v1.0.0-alpha.3 h1:6evFIgj//Y3w09bqOUOzEpFj5tsxBqdc5CfkO7z+zfw= -cosmossdk.io/depinject v1.0.0-alpha.3/go.mod h1:eRbcdQ7MRpIPEM5YUJh8k97nxHpYbc3sMUnEtt8HPWU= +cosmossdk.io/depinject v1.0.0-alpha.4 h1:PLNp8ZYAMPTUKyG9IK2hsbciDWqna2z1Wsl98okJopc= +cosmossdk.io/depinject v1.0.0-alpha.4/go.mod h1:HeDk7IkR5ckZ3lMGs/o91AVUc7E596vMaOmslGFM3yU= cosmossdk.io/errors v1.0.0 h1:nxF07lmlBbB8NKQhtJ+sJm6ef5uV1XkvPXG2bUntb04= cosmossdk.io/errors v1.0.0/go.mod h1:+hJZLuhdDE0pYN8HkOrVNwrIOYvUGnn6+4fjnJs/oV0= -cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca h1:msenprh2BLLRwNT7zN56TbBHOGk/7ARQckXHxXyvjoQ= -cosmossdk.io/log v1.1.1-0.20230704160919-88f2c830b0ca/go.mod h1:PkIAKXZvaxrTRc++z53XMRvFk8AcGGWYHcMIPzVYX9c= -cosmossdk.io/math v1.0.1 h1:Qx3ifyOPaMLNH/89WeZFH268yCvU4xEcnPLu3sJqPPg= -cosmossdk.io/math v1.0.1/go.mod h1:Ygz4wBHrgc7g0N+8+MrnTfS9LLn9aaTGa9hKopuym5k= +cosmossdk.io/log v1.2.1 h1:Xc1GgTCicniwmMiKwDxUjO4eLhPxoVdI9vtMW8Ti/uk= +cosmossdk.io/log v1.2.1/go.mod h1:GNSCc/6+DhFIj1aLn/j7Id7PaO8DzNylUZoOYBL9+I4= +cosmossdk.io/math v1.1.2 h1:ORZetZCTyWkI5GlZ6CZS28fMHi83ZYf+A2vVnHNzZBM= +cosmossdk.io/math v1.1.2/go.mod h1:l2Gnda87F0su8a/7FEKJfFdJrM0JZRXQaohlgJeyQh0= cosmossdk.io/tools/rosetta v0.2.1 h1:ddOMatOH+pbxWbrGJKRAawdBkPYLfKXutK9IETnjYxw= cosmossdk.io/tools/rosetta v0.2.1/go.mod h1:Pqdc1FdvkNV3LcNIkYWt2RQY6IP1ge6YWZk8MhhO9Hw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -211,10 +211,10 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQcITbvhmL4+C4cKA87NW0tfm3Kl9VXRoPywFg= github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= -github.com/CosmWasm/wasmd v0.41.0 h1:fmwxSbwb50zZDcBaayYFRLIaSFca+EFld1WOaQi49jg= -github.com/CosmWasm/wasmd v0.41.0/go.mod h1:0Sds1q2IsPaTN1gHa3BNOYcUFgtGvxH7CXEXPgoihns= -github.com/CosmWasm/wasmvm v1.3.1 h1:EdDItqJalI+n2HQUA6XGFOSSaYsCoqJtiRzlja54jVI= -github.com/CosmWasm/wasmvm v1.3.1/go.mod h1:vW/E3h8j9xBQs9bCoijDuawKo9kCtxOaS8N8J7KFtkc= +github.com/CosmWasm/wasmd v0.42.0 h1:4xZ7GHLrJp3P8qN0wsWOpk5qYLHW9AM5fgcDFPi/p90= +github.com/CosmWasm/wasmd v0.42.0/go.mod h1:DiEyBjHxzkEENYqQhHyka+r4HfR72stSPUtGv+Yh/UU= +github.com/CosmWasm/wasmvm v1.4.2 h1:UeLR7jvUOiam1nlBwt/xf/UWT11LwbtqQvsBTDfIq0U= +github.com/CosmWasm/wasmvm v1.4.2/go.mod h1:fXB+m2gyh4v9839zlIXdMZGeLAxqUdYdFQqYsTha2hc= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= @@ -227,7 +227,6 @@ github.com/VividCortex/gohistogram v1.0.0 h1:6+hBz+qvs0JOrrNhhmR7lFxo5sINxBCGXrd github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/adlio/schema v1.3.3 h1:oBJn8I02PyTB466pZO1UZEn1TV5XLlifBSyMrmHl/1I= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= -github.com/alecthomas/participle/v2 v2.0.0-alpha7 h1:cK4vjj0VSgb3lN1nuKA5F7dw+1s1pWBe5bx7nNCnN+c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -300,8 +299,13 @@ github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/apd/v2 v2.0.2 h1:weh8u7Cneje73dDh+2tEVLUvyBc89iwepWCD8b8034E= github.com/cockroachdb/apd/v2 v2.0.2/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw= -github.com/cockroachdb/apd/v3 v3.1.0 h1:MK3Ow7LH0W8zkd5GMKA1PvS9qG3bWFI95WaVNfyZJ/w= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/errors v1.10.0 h1:lfxS8zZz1+OjtV4MtNWgboi/W5tyLEB6VQZBXN+0VUU= +github.com/cockroachdb/errors v1.10.0/go.mod h1:lknhIsEVQ9Ss/qKDBQS/UqFSvPQjOwNq2qyKAxtHRqE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b h1:r6VH0faHjZeQy818SGhaone5OnYfxFR/+AzdY3sf5aE= +github.com/cockroachdb/logtags v0.0.0-20230118201751-21c54148d20b/go.mod h1:Vz9DsVWQQhf3vs21MhPMZpMGSht7O/2vFW2xusFUVOs= +github.com/cockroachdb/redact v1.1.5 h1:u1PMllDkdFfPWaNGMyLD1+so+aq3uUItthCFqzwPJ30= +github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZZ2lK+dpvRg= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/coinbase/rosetta-sdk-go/types v1.0.0 h1:jpVIwLcPoOeCR6o1tU+Xv7r5bMONNbHU7MuEHboiFuA= github.com/coinbase/rosetta-sdk-go/types v1.0.0/go.mod h1:eq7W2TMRH22GTW0N0beDnN931DW0/WOI1R2sdHNHG4c= @@ -322,8 +326,8 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-proto v1.0.0-beta.3 h1:VitvZ1lPORTVxkmF2fAp3IiA61xVwArQYKXTdEcpW6o= github.com/cosmos/cosmos-proto v1.0.0-beta.3/go.mod h1:t8IASdLaAq+bbHbjq4p960BvcTqtwuAxid3b/2rOD6I= -github.com/cosmos/cosmos-sdk v0.47.4 h1:FVUpEprm58nMmBX4xkRdMDaIG5Nr4yy92HZAfGAw9bg= -github.com/cosmos/cosmos-sdk v0.47.4/go.mod h1:R5n+uM7vguVPFap4pgkdvQCT1nVo/OtPwrlAU40rvok= +github.com/cosmos/cosmos-sdk v0.47.5 h1:n1+WjP/VM/gAEOx3TqU2/Ny734rj/MX1kpUnn7zVJP8= +github.com/cosmos/cosmos-sdk v0.47.5/go.mod h1:EHwCeN9IXonsjKcjpS12MqeStdZvIdxt3VYXhus3G3c= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -332,12 +336,12 @@ github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= github.com/cosmos/gogoproto v1.4.10 h1:QH/yT8X+c0F4ZDacDv3z+xE3WU1P1Z3wQoLMBRJoKuI= github.com/cosmos/gogoproto v1.4.10/go.mod h1:3aAZzeRWpAwr+SS/LLkICX2/kDFyaYVzckBDzygIxek= -github.com/cosmos/iavl v0.20.0 h1:fTVznVlepH0KK8NyKq8w+U7c2L6jofa27aFX6YGlm38= -github.com/cosmos/iavl v0.20.0/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= +github.com/cosmos/iavl v0.20.1 h1:rM1kqeG3/HBT85vsZdoSNsehciqUQPWrR4BYmqE2+zg= +github.com/cosmos/iavl v0.20.1/go.mod h1:WO7FyvaZJoH65+HFOsDir7xU9FWk2w9cHXNW1XHcl7A= github.com/cosmos/ibc-apps/modules/ibc-hooks/v7 v7.0.0-20230803181732-7c8f814d3b79 h1:pCxyhIxgWTabAQC5UerkITraHG3SwajdLKKMCFDWCv4= github.com/cosmos/ibc-apps/modules/ibc-hooks/v7 v7.0.0-20230803181732-7c8f814d3b79/go.mod h1:JwHFbo1oX/ht4fPpnPvmhZr+dCkYK1Vihw+vZE9umR4= -github.com/cosmos/ibc-go/v7 v7.2.0 h1:dx0DLUl7rxdyZ8NiT6UsrbzKOJx/w7s+BOaewFRH6cg= -github.com/cosmos/ibc-go/v7 v7.2.0/go.mod h1:OOcjKIRku/j1Xs1RgKK0yvKRrJ5iFuZYMetR1n3yMlc= +github.com/cosmos/ibc-go/v7 v7.3.0 h1:QtGeVMi/3JeLWuvEuC60sBHpAF40Oenx/y+bP8+wRRw= +github.com/cosmos/ibc-go/v7 v7.3.0/go.mod h1:mUmaHFXpXrEdcxfdXyau+utZf14pGKVUiXwYftRZZfQ= github.com/cosmos/ics23/go v0.10.0 h1:iXqLLgp2Lp+EdpIuwXTYIQU+AiHj9mOC2X9ab++bZDM= github.com/cosmos/ics23/go v0.10.0/go.mod h1:ZfJSmng/TBNTBkFemHHHj5YY7VAU/MBU980F4VU1NG0= github.com/cosmos/keyring v1.2.0 h1:8C1lBP9xhImmIabyXW4c3vFjjLiBdGCmfLUfeZlV1Yo= @@ -352,8 +356,7 @@ github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46t github.com/creachadair/taskgroup v0.4.2 h1:jsBLdAJE42asreGss2xZGZ8fJra7WtwnHWeJFxv2Li8= github.com/creachadair/taskgroup v0.4.2/go.mod h1:qiXUOSrbwAY3u0JPGTzObbE3yf9hcXHDKBZ2ZjpCbgM= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= -github.com/cucumber/common/gherkin/go/v22 v22.0.0 h1:4K8NqptbvdOrjL9DEea6HFjSpbdT9+Q5kgLpmmsHYl0= -github.com/cucumber/common/messages/go/v17 v17.1.1 h1:RNqopvIFyLWnKv0LfATh34SWBhXeoFTJnSrgm9cT/Ts= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/danieljoos/wincred v1.1.2 h1:QLdCxFs1/Yl4zduvBdcHB8goaYk9RARS2SgLLRuAyr0= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -410,12 +413,15 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/getsentry/sentry-go v0.23.0 h1:dn+QRCeJv4pPt9OjVXiMcGIBIefaTJPw/h0bZWO05nE= +github.com/getsentry/sentry-go v0.23.0/go.mod h1:lc76E2QywIyW8WuBnwl8Lc4bkmQH4+w1gwTf25trprY= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3 h1:ahKqKTFpO5KTPHxWZjEdPScmYaGtLo8Y4DMHoEsnp14= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= +github.com/gin-gonic/gin v1.8.1 h1:4+fr/el88TOO3ewCmQr8cx/CtZ/umlIRIs5M4NTNjf8= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -432,12 +438,12 @@ github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/locales v0.14.0 h1:u50s323jtVGugKlcYeyzC0etD1HifMjqmJqb8WugfUU= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/universal-translator v0.18.0 h1:82dyy6p4OuJq4/CByFNOn/jYrnRPArHwAcmLoJZxyho= -github.com/go-playground/validator/v10 v10.2.0 h1:KgJ0snyC2R9VXYN2rneOtQcw5aHQB1Vv0sFl1UcHBOY= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-playground/validator/v10 v10.11.1 h1:prmOlTVv+YjZjmRmNSF3VmspqJIxJWXmqUsHwfTRRkQ= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= @@ -446,10 +452,10 @@ github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 h1:ZpnhV/YsD2/4cESfV5+Hoeu/iUR3ruzNvZ+yQfO03a0= github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/uuid v4.3.0+incompatible h1:CaSVZxm5B+7o45rtab4jC2G37WGYX1zQfuU2i6DSvnc= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.4.1-0.20201022092350-68b0159b7869/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= github.com/gogo/googleapis v1.4.1 h1:1Yx4Myt7BxzvUr5ldGSbwYiZG6t9wGBZ+8/fX3Wvtq0= @@ -694,9 +700,11 @@ github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw= @@ -810,6 +818,8 @@ github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08 h1:hDSdbBuw3Lefr6 github.com/petermattis/goid v0.0.0-20230317030725-371a4b8eda08/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= +github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= +github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -858,17 +868,18 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/regen-network/cosmos-proto v0.3.1 h1:rV7iM4SSFAagvy8RiyhiACbWEGotmqzywPxOvwMdxcg= github.com/regen-network/cosmos-proto v0.3.1/go.mod h1:jO0sVX6a1B36nmE8C9xBFXpNwWejXC7QqCOnH3O0+YM= -github.com/regen-network/gocuke v0.6.2 h1:pHviZ0kKAq2U2hN2q3smKNxct6hS0mGByFMHGnWA97M= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= +github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.3 h1:O+qNyWn7Z+F9M0ILBHgMVPuB1xTOucVd5gtaYyXBpRo= github.com/rs/cors v1.8.3/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.29.1 h1:cO+d60CHkknCbvzEWxP0S9K6KqyTjrCNUy1LdQLCGPc= -github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= +github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= @@ -1014,8 +1025,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc h1:mCRnTeVUjcrhlRmO0VK8a6k6Rrf6TF9htwo2pJVSjIU= -golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= +golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1042,7 +1053,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1246,8 +1257,8 @@ golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0 h1:SqMFp9UcQJZa+pmYuAKjd9xq1f0j5rLcDIk0mj4qAsA= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= +golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1264,8 +1275,8 @@ golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.11.0 h1:LAntKIrcmeSKERyiOh0XMV39LXS8IE9UL2yP7+f5ij4= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= +golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From d928a0b813235cc969bdd21599315af2bbdababc Mon Sep 17 00:00:00 2001 From: kienvc Date: Thu, 18 Jan 2024 15:47:04 +0700 Subject: [PATCH 17/20] Update e2e.Dockerfile --- e2e.Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e.Dockerfile b/e2e.Dockerfile index 2d6cc356..0fb3d280 100644 --- a/e2e.Dockerfile +++ b/e2e.Dockerfile @@ -9,8 +9,8 @@ COPY . /aura WORKDIR /aura # See https://github.com/CosmWasm/wasmvm/releases -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.3.1/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a -ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.3.1/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.4.2/libwasmvm_muslc.aarch64.a /lib/libwasmvm_muslc.aarch64.a +ADD https://github.com/CosmWasm/wasmvm/releases/download/v1.4.2/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a #RUN sha256sum /lib/libwasmvm_muslc.aarch64.a | grep 9ecb037336bd56076573dc18c26631a9d2099a7f2b40dc04b6cae31ffb4c8f9a #RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep 6e4de7ba9bad4ae9679c7f9ecf7e283dd0160e71567c6a7be6ae47c81ebe7f32 From 1eda11105d22f11d571b72f3a62386e8f8649546 Mon Sep 17 00:00:00 2001 From: kienvc Date: Thu, 18 Jan 2024 15:53:11 +0700 Subject: [PATCH 18/20] Update Makefile --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 9ea9e540..18aca832 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,8 @@ BRANCH := $(shell git rev-parse --abbrev-ref HEAD) COMMIT := $(shell git log -1 --format='%H') # library versions -LIBWASM_VERSION = $(shell go list -m -f '{{ .Version }}' github.com/CosmWasm/wasmvm) +# LIBWASM_VERSION = $(shell go list -m -f '{{ .Version }}' github.com/CosmWasm/wasmvm) +LIBWASM_VERSION = "v1.4.2" # security patch # docker DOCKER := $(shell which docker) @@ -126,4 +127,4 @@ release: -v `pwd`:/go/src/github.com/aura-nw/aura \ -w /go/src/github.com/aura-nw/aura \ ghcr.io/goreleaser/goreleaser:$(GORELEASER_VERSION) \ - --clean --skip-validate \ No newline at end of file + --clean --skip-validate From e0439c0b06d96182f054c6e8559caac4ede2d8c3 Mon Sep 17 00:00:00 2001 From: phanhoc Date: Fri, 19 Jan 2024 09:30:55 +0700 Subject: [PATCH 19/20] Bump version of wasmvm to 1.4.3 --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 94b54498..a07a2185 100644 --- a/go.mod +++ b/go.mod @@ -184,7 +184,7 @@ require ( replace ( github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 - github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.4.2 + github.com/CosmWasm/wasmvm => github.com/CosmWasm/wasmvm v1.4.3 // Ledger Nano S+ support github.com/cosmos/ledger-go => github.com/cosmos/ledger-go v0.9.3 diff --git a/go.sum b/go.sum index a348f8f1..5f13d0b4 100644 --- a/go.sum +++ b/go.sum @@ -213,8 +213,8 @@ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d h1:nalkkPQ github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d/go.mod h1:URdX5+vg25ts3aCh8H5IFZybJYKWhJHYMTnf+ULtoC4= github.com/CosmWasm/wasmd v0.42.0 h1:4xZ7GHLrJp3P8qN0wsWOpk5qYLHW9AM5fgcDFPi/p90= github.com/CosmWasm/wasmd v0.42.0/go.mod h1:DiEyBjHxzkEENYqQhHyka+r4HfR72stSPUtGv+Yh/UU= -github.com/CosmWasm/wasmvm v1.4.2 h1:UeLR7jvUOiam1nlBwt/xf/UWT11LwbtqQvsBTDfIq0U= -github.com/CosmWasm/wasmvm v1.4.2/go.mod h1:fXB+m2gyh4v9839zlIXdMZGeLAxqUdYdFQqYsTha2hc= +github.com/CosmWasm/wasmvm v1.4.3 h1:kB4v+hGsDTQZBIqRjr+YrZTq8GLALc0gOGvNSn1iIvM= +github.com/CosmWasm/wasmvm v1.4.3/go.mod h1:fXB+m2gyh4v9839zlIXdMZGeLAxqUdYdFQqYsTha2hc= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= From e0dff51dbe707a9d48e14dc6f55778660293768d Mon Sep 17 00:00:00 2001 From: kienvc Date: Fri, 19 Jan 2024 09:59:46 +0700 Subject: [PATCH 20/20] patch wasmvm --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 18aca832..8e4142cd 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ COMMIT := $(shell git log -1 --format='%H') # library versions # LIBWASM_VERSION = $(shell go list -m -f '{{ .Version }}' github.com/CosmWasm/wasmvm) -LIBWASM_VERSION = "v1.4.2" # security patch +LIBWASM_VERSION = "v1.4.3" # security patch # docker DOCKER := $(shell which docker)