Skip to content

Commit e240f16

Browse files
authored
feat: IBCv2 receive packet entrypoint (#2403)
1 parent adad747 commit e240f16

34 files changed

+1583
-103
lines changed

.circleci/config.yml

+42-1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ workflows:
7878
- contract_crypto_verify
7979
- contract_cyberpunk
8080
- contract_empty
81+
- contract_ibc2
8182
- contract_replier
8283
# - contract_floaty # This contract needs nightly Rust to compile
8384
- contract_hackatom
@@ -167,6 +168,10 @@ jobs:
167168
name: "contracts/hackatom: integration-test"
168169
working_directory: ~/project/contracts/hackatom
169170
command: cargo wasm --locked && cargo integration-test --locked
171+
- run:
172+
name: "contracts/ibc2: integration-test"
173+
working_directory: ~/project/contracts/ibc2
174+
command: cargo wasm --locked
170175
- run:
171176
name: "contracts/queue: integration-test"
172177
working_directory: ~/project/contracts/queue
@@ -195,7 +200,7 @@ jobs:
195200
name: "packages/vm: test"
196201
working_directory: ~/project/packages/vm
197202
# use all features
198-
command: cargo test --locked --features iterator,staking,stargate
203+
command: cargo test --locked --features iterator,staking,stargate,ibc2
199204
- save_cache:
200205
key: v4-arm64-workspace-rust:1.81-{{ checksum "Cargo.lock" }}
201206
paths:
@@ -221,6 +226,13 @@ jobs:
221226
- contracts/hackatom/target/wasm32-unknown-unknown/release/.fingerprint
222227
- contracts/hackatom/target/wasm32-unknown-unknown/release/build
223228
- contracts/hackatom/target/wasm32-unknown-unknown/release/deps
229+
# ibc2
230+
- contracts/ibc2/target/debug/.fingerprint
231+
- contracts/ibc2/target/debug/build
232+
- contracts/ibc2/target/debug/deps
233+
- contracts/ibc2/target/wasm32-unknown-unknown/release/.fingerprint
234+
- contracts/ibc2/target/wasm32-unknown-unknown/release/build
235+
- contracts/ibc2/target/wasm32-unknown-unknown/release/deps
224236
# queue
225237
- contracts/queue/target/debug/.fingerprint
226238
- contracts/queue/target/debug/build
@@ -688,6 +700,35 @@ jobs:
688700
- target/wasm32-unknown-unknown/release/deps
689701
key: cargocache-v2-contract_cyberpunk-rust:1.81-{{ checksum "Cargo.lock" }}
690702

703+
contract_ibc2:
704+
docker:
705+
- image: rust:1.81
706+
environment:
707+
RUST_BACKTRACE: 1
708+
working_directory: ~/cosmwasm/contracts/ibc2
709+
steps:
710+
- checkout:
711+
path: ~/cosmwasm
712+
- run:
713+
name: Version information
714+
command: rustc --version; cargo --version; rustup --version
715+
- restore_cache:
716+
keys:
717+
- cargocache-v2-contract_ibc2-rust:1.74-{{ checksum "Cargo.lock" }}
718+
- check_contract:
719+
skip_cosmwasm_check: true
720+
min_version: "2.2"
721+
- save_cache:
722+
paths:
723+
- /usr/local/cargo/registry
724+
- target/debug/.fingerprint
725+
- target/debug/build
726+
- target/debug/deps
727+
- target/wasm32-unknown-unknown/release/.fingerprint
728+
- target/wasm32-unknown-unknown/release/build
729+
- target/wasm32-unknown-unknown/release/deps
730+
key: cargocache-v2-contract_ibc2-rust:1.74-{{ checksum "Cargo.lock" }}
731+
691732
contract_hackatom:
692733
docker:
693734
- image: rust:1.81

.mergify.yml

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ pull_request_rules:
1818
- "status-success=ci/circleci: contract_burner"
1919
- "status-success=ci/circleci: contract_crypto_verify"
2020
- "status-success=ci/circleci: contract_cyberpunk"
21+
- "status-success=ci/circleci: contract_ibc2"
2122
- "status-success=ci/circleci: contract_floaty"
2223
- "status-success=ci/circleci: contract_hackatom"
2324
- "status-success=ci/circleci: contract_hackatom"

CHANGELOG.md

+5-2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@ and this project adheres to
1515
`From<Int128> for i128` ([#2268])
1616
- cosmwasm-std: Implement `Uint128::from_{be,le}_bytes` and
1717
`Uint64::from_{be,le}_bytes`. ([#2269])
18-
- cosmwasm-std: Added new `EurekaMsg` and `CosmosMsg::Eureka` variant ([#2340])
18+
- cosmwasm-std: Added new `Ibc2Msg` and `CosmosMsg::Ibc2` variant ([#2390],
19+
[#2403])
1920
- cosmwasm-std: Implement downcasting for `Api` trait. This allows using
2021
`MockApi::addr_make` from `DepsMut`. ([#2383])
21-
- cosmwasm-std: Added `eureka_port` to `ContractInfoResponse`. ([#2390])
22+
- cosmwasm-std: Added `ibc2_port` to `ContractInfoResponse`. ([#2390], [#2403])
23+
- cosmwasm-vm: Added `ibc2_packet_receive` entrypoint ([#2403])
2224

2325
## Changed
2426

@@ -74,6 +76,7 @@ and this project adheres to
7476
[#2383]: https://github.com/CosmWasm/cosmwasm/issues/2383
7577
[#2390]: https://github.com/CosmWasm/cosmwasm/issues/2390
7678
[#2399]: https://github.com/CosmWasm/cosmwasm/pull/2399
79+
[#2403]: https://github.com/CosmWasm/cosmwasm/pull/2403
7780

7881
## [2.2.0] - 2024-12-17
7982

contracts/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ docker run --rm -v "$(pwd)":/code \
113113
--mount type=volume,source="devcontract_cache_empty",target=/target \
114114
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
115115
cosmwasm/optimizer:0.15.0 ./contracts/empty
116+
117+
docker run --rm -v "$(pwd)":/code \
118+
--mount type=volume,source="devcontract_cache_ibc2",target=/target \
119+
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
120+
cosmwasm/optimizer:0.15.0 ./contracts/ibc2
116121
```
117122

118123
## Entry points

contracts/ibc2/.cargo/config.toml

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[alias]
2+
wasm = "build --release --lib --target wasm32-unknown-unknown"
3+
wasm-debug = "build --lib --target wasm32-unknown-unknown"
4+
unit-test = "test --lib"
5+
integration-test = "test --test integration"
6+
schema = "run --bin schema"

0 commit comments

Comments
 (0)