Skip to content

Commit

Permalink
Merge branch 'wasmd_v0.29.1' into apply_wasmd_v0.29.1
Browse files Browse the repository at this point in the history
* wasmd_v0.29.1: (94 commits)
  fix test.
  fix test.
  update cosmos-sdk to v45.9, add dragonberry.
  Changelog updates (CosmWasm#1024)
  Validate incoming messages
  Add dependencies for protobuf and remove third_party forlder (CosmWasm#1030)
  Bump bufbuild/buf-setup-action from 1.7.0 to 1.8.0 (CosmWasm#1006)
  Add check version wasm (CosmWasm#1029)
  Make SenderPrivKey field public
  Bump actions/checkout from 3.0.2 to 3.1.0
  Revert module version to 1 as there is no migration
  Doc ante handler
  Fix: typos
  Changelog for v0.29.0-rc1 (CosmWasm#1018)
  Implement improvements to new address generation (CosmWasm#1014)
  Prune vesting accounts balances (CosmWasm#1003)
  Bump github.com/cosmos/ibc-go/v3 from 3.2.0 to 3.3.0
  Fix path to proofs in protos
  Upgrade .a files to 1.1.1
  Bump wasmvm to 1.1.1
  ...

# Conflicts:
#	.circleci/config.yml
#	.github/workflows/proto-buf-publisher.yml
#	CHANGELOG.md
#	Dockerfile
#	Makefile
#	README.md
#	app/app.go
#	app/app_test.go
#	app/export.go
#	app/sim_test.go
#	app/test_helpers.go
#	go.mod
#	go.sum
#	scripts/protocgen.sh
#	third_party/proto/cosmos/base/query/v1beta1/pagination.proto
#	third_party/proto/cosmos/base/v1beta1/coin.proto
#	third_party/proto/tendermint/blockchain/types.pb.go
#	third_party/proto/tendermint/consensus/types.pb.go
#	third_party/proto/tendermint/consensus/wal.pb.go
#	third_party/proto/tendermint/p2p/conn.pb.go
#	third_party/proto/tendermint/privval/types.pb.go
#	third_party/proto/tendermint/state/types.pb.go
#	third_party/proto/tendermint/types/types.pb.go
#	third_party/proto/tendermint/types/validator.pb.go
#	x/wasm/alias.go
#	x/wasm/client/cli/genesis_msg.go
#	x/wasm/client/cli/genesis_msg_test.go
#	x/wasm/client/cli/query.go
#	x/wasm/client/cli/tx.go
#	x/wasm/client/rest/gov.go
#	x/wasm/handler.go
#	x/wasm/ibctesting/chain.go
#	x/wasm/ibctesting/wasm.go
#	x/wasm/ioutils/ioutil_test.go
#	x/wasm/ioutils/utils_test.go
#	x/wasm/keeper/authz_policy.go
#	x/wasm/keeper/bench_test.go
#	x/wasm/keeper/contract_keeper.go
#	x/wasm/keeper/gas_register.go
#	x/wasm/keeper/gas_register_test.go
#	x/wasm/keeper/genesis_test.go
#	x/wasm/keeper/ibc_test.go
#	x/wasm/keeper/keeper.go
#	x/wasm/keeper/keeper_test.go
#	x/wasm/keeper/legacy_querier_test.go
#	x/wasm/keeper/msg_server.go
#	x/wasm/keeper/options.go
#	x/wasm/keeper/options_test.go
#	x/wasm/keeper/proposal_handler.go
#	x/wasm/keeper/proposal_integration_test.go
#	x/wasm/keeper/querier.go
#	x/wasm/keeper/querier_test.go
#	x/wasm/keeper/recurse_test.go
#	x/wasm/keeper/reflect_test.go
#	x/wasm/keeper/relay_test.go
#	x/wasm/keeper/staking_test.go
#	x/wasm/keeper/submsg_test.go
#	x/wasm/keeper/test_common.go
#	x/wasm/keeper/testdata/reflect.go
#	x/wasm/keeper/testdata/reflect.wasm
#	x/wasm/keeper/wasmtesting/coin_transferrer.go
#	x/wasm/keeper/wasmtesting/gas_register.go
#	x/wasm/module.go
#	x/wasm/module_test.go
#	x/wasm/simulation/genesis.go
#	x/wasm/simulation/operations.go
#	x/wasm/simulation/params.go
#	x/wasm/types/codec.go
#	x/wasm/types/events.go
#	x/wasm/types/exported_keepers.go
#	x/wasm/types/genesis.pb.go
#	x/wasm/types/iavl_range_test.go
#	x/wasm/types/ibc.pb.go
#	x/wasm/types/params.go
#	x/wasm/types/proposal.pb.go
#	x/wasm/types/query.pb.go
#	x/wasm/types/query.pb.gw.go
#	x/wasm/types/tx.pb.go
#	x/wasm/types/types.pb.go
  • Loading branch information
zemyblue committed Jan 13, 2023
2 parents cae21ec + d8ebe64 commit 8a8fe0d
Show file tree
Hide file tree
Showing 258 changed files with 6,395 additions and 25,773 deletions.
7 changes: 6 additions & 1 deletion .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
version: 2
updates:
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: gomod
directory: "/"
schedule:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/codeql-analizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
paths:
- "**.go"
push:
branches: [ master ]
branches: [ main ]
paths:
- "**.go"

Expand All @@ -19,7 +19,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v2.3.5
uses: actions/checkout@v3.1.0

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
Expand Down
Empty file.
48 changes: 23 additions & 25 deletions INTEGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
# Integration

If you want to use Wasm in your own app, here is how you can get this working
quickly and easily. First, check to make sure you fit the pre-requisites,
quickly and easily.
First start with This [article](https://medium.com/cosmwasm/cosmwasm-for-ctos-iv-native-integrations-713140bf75fc)
in the "CosmWasm for CTOs" series that gives you a high level view.
Then check to make sure you fit the pre-requisites,
then integrate the `x/wasm` module as described below, and finally, you
can add custom messages and queries to your custom Go/SDK modules, exposing
them to any chain-specific contract.
Expand All @@ -14,26 +17,18 @@ The pre-requisites of integrating `x/wasm` into your custom app is to be using
a compatible version of the Cosmos SDK, and to accept some limits to the
hardware it runs on.

| wasmd | Cosmos SDK |
|:------:|:-----------:|
| v0.24 | v0.45.0 |
| v0.23 | v0.45.0 |
| v0.22 | v0.45.0 |
| v0.21 | v0.42.x |
| v0.20 | v0.42.x |
| v0.19 | v0.42.x |
| v0.18 | v0.42.x |
| v0.17 | v0.42.x |
| v0.16 | v0.42.x |
| v0.15 | v0.41.x |
| v0.14 | v0.40.x |
| v0.13 | v0.40.0-rc3 |
| v0.12 | v0.40.0-rc3 |
| v0.11 | v0.39.1 |
| v0.10 | v0.39.1 |
| v0.9 | v0.38.3 |
| v0.8 | v0.38.3 |
| v0.7 | v0.38.3 |
| wasmd | Cosmos SDK |
|:-----:|:----------:|
| v0.29 | v0.45.8 |
| v0.28 | v0.45.5 |
| v0.27 | v0.45.4 |
| v0.26 | v0.45.1 |
| v0.25 | v0.45.1 |
| v0.24 | v0.45.0 |
| v0.23 | v0.45.0 |
| v0.22 | v0.45.0 |
| v0.21 | v0.42.x |


We currently only support Intel/AMD64 CPUs and OSX or Linux. For Linux, the standard build
commands work for `glibc` systems (Ubuntu, Debian, CentOS, etc). If you wish to compile
Expand Down Expand Up @@ -72,9 +67,12 @@ from the Cosmos SDK, and enabled them in `app.go`. If so, you can just look
at [`wasmd/app/app.go`](https://github.com/CosmWasm/wasmd/blob/master/app/app.go#)
for how to do so (just search there for lines with `wasm`).

`wasmd` also comes with a custom `ante handler` that adds the TX position in the block into the context
and passes it to the contracts. In order to support this feature you would need to add our custom
ante handler into the `ante handler chain` as in: [`app/ante.go`](https://github.com/CosmWasm/wasmd/blob/master/app/ante.go)
`wasmd` also comes with 2 custom `ante handlers`:
* `CountTXDecorator` adds the TX position in the block into the context and passes it to the contracts
* `LimitSimulationGasDecorator` prevents an "infinite gas" query

In order to support these features you would need to add our custom
ante handlers into the `ante handler chain` as in: [`app/ante.go`](https://github.com/CosmWasm/wasmd/blob/master/app/ante.go)

### Copied into your app

Expand Down Expand Up @@ -202,5 +200,5 @@ the SDK is implemented properly.

Once you have tested this and are happy with the results, you can wire it up in `app.go`.
Just edit [the default `NewKeeper` constructor](https://github.com/CosmWasm/wasmd/blob/v0.8.0-rc1/app/app.go#L257-L258)
to have the proper `supportedFeatures` and pass in the `CustomEncoder` and `CustomQuerier` as the last two arguments to `NewKeeper`.
to have the proper `availableCapabilities` and pass in the `CustomEncoder` and `CustomQuerier` as the last two arguments to `NewKeeper`.
Now you can compile your chain and upload your custom contracts on it.
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ go.sum: go.mod

draw-deps:
@# requires brew install graphviz or apt-get install graphviz
go get github.com/RobotsAndPencils/goviz
go install github.com/RobotsAndPencils/goviz@latest
@goviz -i ./cmd/wasmd -d 2 | dot -Tpng -o dependency-graph.png

clean:
Expand Down Expand Up @@ -166,7 +166,7 @@ format: format-tools
### Protobuf ###
###############################################################################
PROTO_VERSION=v0.2
PROTO_BUILDER_IMAGE=tendermintdev/sdk-proto-gen@sha256:372dce7be2f465123e26459973ca798fc489ff2c75aeecd814c0ca8ced24faca
PROTO_BUILDER_IMAGE=tendermintdev/sdk-proto-gen:$(PROTO_VERSION)
PROTO_FORMATTER_IMAGE=tendermintdev/docker-build-proto@sha256:aabcfe2fc19c31c0f198d4cd26393f5e5ca9502d7ea3feafbfe972448fee7cae
PROTO_GEN_SWAGGER_IMAGE=cosmos-sdk-proto-gen-swagger-$(PROTO_VERSION)

Expand Down
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ compatibility list:

| line/wasmd | cosmwasm/wasmd | line/wasmvm | cosmwasm/wasmvm | cosmwasm-vm | cosmwasm-std |
|------------|----------------|:--------------|-----------------|-------------|--------------|
| | 0.29 | | v1.1.0 | | 1.0-1.1 |
| | 0.28 | | v1.0.0 | | 1.0-1.1 |
| 0.1 | 0.27 | v1.0.0-0.10.0 | v1.0.0 | | 1.0 |
| | 0.26 | | 1.0.0-beta10 | | 1.0 |
| | 0.25 | | 1.0.0-beta10 | | 1.0 |
Expand All @@ -52,7 +54,7 @@ It will also run contracts compiled with 1.x assuming they don't opt into any ne
The 1.x cosmwasm_vm will support all contracts with 1.0 <= version <= 1.x.

Note that `cosmwasm-std` version defines which contracts are compatible with this system. The wasm code uploaded must
have been compiled with one of the supported `cosmwasm-std` versions, or will be rejeted upon upload (with some error
have been compiled with one of the supported `cosmwasm-std` versions, or will be rejected upon upload (with some error
message about "contract too old?" or "contract too new?"). `cosmwasm-vm` version defines the runtime used. It is a
breaking change to switch runtimes (you will need to organize a chain upgrade). As of `cosmwasm-vm 0.13` we are
using [wasmer](https://github.com/wasmerio/wasmer/) 1.0, which is significantly more performant than the older versions.
Expand Down Expand Up @@ -95,9 +97,9 @@ The used cosmos-sdk version is in transition migrating from amino encoding to pr

We use standard cosmos-sdk encoding (amino) for all sdk Messages. However, the message body sent to all contracts,
as well as the internal state is encoded using JSON. Cosmwasm allows arbitrary bytes with the contract itself
responsible for decodng. For better UX, we often use `json.RawMessage` to contain these bytes, which enforces that it is
responsible for decoding. For better UX, we often use `json.RawMessage` to contain these bytes, which enforces that it is
valid json, but also give a much more readable interface. If you want to use another encoding in the contracts, that is
a relatively minor change to wasmd but would currently require a fork. Please open in issue if this is important for
a relatively minor change to wasmd but would currently require a fork. Please open an issue if this is important for
your use case.

## Quick Start
Expand All @@ -109,6 +111,12 @@ make test
if you are using a linux without X or headless linux, look at [this article](https://ahelpme.com/linux/dbusexception-could-not-get-owner-of-name-org-freedesktop-secrets-no-such-name) or [#31](https://github.com/CosmWasm/wasmd/issues/31#issuecomment-577058321).

## Protobuf
The protobuf files for this project are published automatically to the [buf repository](https://buf.build/) to make integration easier:

| wasmd version | buf tag |
|---------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| 0.26.x | [51931206dbe09529c1819a8a2863d291035a2549](https://buf.build/cosmwasm/wasmd/tree/51931206dbe09529c1819a8a2863d291035a2549:cosmwasm/wasm/v1) |

Generate protobuf
```shell script
make proto-gen
Expand Down
Loading

0 comments on commit 8a8fe0d

Please sign in to comment.