Skip to content

Commit

Permalink
feat: Add Eureka test contract
Browse files Browse the repository at this point in the history
  • Loading branch information
kulikthebird committed Feb 5, 2025
1 parent f3c7599 commit 9c05ee7
Show file tree
Hide file tree
Showing 10 changed files with 123 additions and 1 deletion.
40 changes: 40 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ workflows:
- contract_crypto_verify
- contract_cyberpunk
- contract_empty
- contract_eureka
- contract_replier
# - contract_floaty # This contract needs nightly Rust to compile
- contract_hackatom
Expand Down Expand Up @@ -168,6 +169,10 @@ jobs:
name: "contracts/hackatom: integration-test"
working_directory: ~/project/contracts/hackatom
command: cargo wasm --locked && cargo integration-test --locked
- run:
name: "contracts/eureka: integration-test"
working_directory: ~/project/contracts/eureka
command: cargo wasm --locked && cargo integration-test --locked
- run:
name: "contracts/queue: integration-test"
working_directory: ~/project/contracts/queue
Expand Down Expand Up @@ -222,6 +227,13 @@ jobs:
- contracts/hackatom/target/wasm32-unknown-unknown/release/.fingerprint
- contracts/hackatom/target/wasm32-unknown-unknown/release/build
- contracts/hackatom/target/wasm32-unknown-unknown/release/deps
# eureka
- contracts/eureka/target/debug/.fingerprint
- contracts/eureka/target/debug/build
- contracts/eureka/target/debug/deps
- contracts/eureka/target/wasm32-unknown-unknown/release/.fingerprint
- contracts/eureka/target/wasm32-unknown-unknown/release/build
- contracts/eureka/target/wasm32-unknown-unknown/release/deps
# queue
- contracts/queue/target/debug/.fingerprint
- contracts/queue/target/debug/build
Expand Down Expand Up @@ -682,6 +694,34 @@ jobs:
- target/wasm32-unknown-unknown/release/deps
key: cargocache-v2-contract_cyberpunk-rust:1.74-{{ checksum "Cargo.lock" }}

contract_eureka:
docker:
- image: rust:1.74
environment:
RUST_BACKTRACE: 1
working_directory: ~/cosmwasm/contracts/eureka
steps:
- checkout:
path: ~/cosmwasm
- run:
name: Version information
command: rustc --version; cargo --version; rustup --version
- restore_cache:
keys:
- cargocache-v2-contract_eureka-rust:1.74-{{ checksum "Cargo.lock" }}
- check_contract:
min_version: "2.2"
- save_cache:
paths:
- /usr/local/cargo/registry
- target/debug/.fingerprint
- target/debug/build
- target/debug/deps
- target/wasm32-unknown-unknown/release/.fingerprint
- target/wasm32-unknown-unknown/release/build
- target/wasm32-unknown-unknown/release/deps
key: cargocache-v2-contract_eureka-rust:1.74-{{ checksum "Cargo.lock" }}

contract_hackatom:
docker:
- image: rust:1.74
Expand Down
1 change: 1 addition & 0 deletions .mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ pull_request_rules:
- "status-success=ci/circleci: contract_burner"
- "status-success=ci/circleci: contract_crypto_verify"
- "status-success=ci/circleci: contract_cyberpunk"
- "status-success=ci/circleci: contract_eureka"
- "status-success=ci/circleci: contract_floaty"
- "status-success=ci/circleci: contract_hackatom"
- "status-success=ci/circleci: contract_hackatom"
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[workspace]
members = [ "contracts/eureka","packages/*"]
members = ["contracts/eureka", "packages/*"]
exclude = ["contracts"]

# Resolver has to be set explicitly in workspaces
Expand Down
5 changes: 5 additions & 0 deletions contracts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="devcontract_cache_empty",target=/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/optimizer:0.15.0 ./contracts/empty

docker run --rm -v "$(pwd)":/code \
--mount type=volume,source="devcontract_cache_eureka",target=/target \
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
cosmwasm/optimizer:0.15.0 ./contracts/eureka
```

## Entry points
Expand Down
6 changes: 6 additions & 0 deletions contracts/eureka/.cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[alias]
wasm = "build --release --lib --target wasm32-unknown-unknown"
wasm-debug = "build --lib --target wasm32-unknown-unknown"
unit-test = "test --lib"
integration-test = "test --test integration"
schema = "run --bin schema"
28 changes: 28 additions & 0 deletions contracts/eureka/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[package]
name = "eureka"
version = "0.0.0"
authors = ["Tomasz Kulik <[email protected]>"]
edition = "2021"
publish = false
license = "Apache-2.0"

[lib]
crate-type = ["cdylib", "rlib"]

[profile.release]
opt-level = 3
debug = false
rpath = false
lto = true
debug-assertions = false
codegen-units = 1
panic = 'abort'
incremental = false
overflow-checks = true

[dependencies]
cosmwasm-schema = { path = "../../packages/schema" }
cosmwasm-std = { path = "../../packages/std", features = ["eureka"] }
schemars = "0.8.3"
serde = { version = "1.0.103", default-features = false, features = ["derive"] }
thiserror = "1.0.26"
27 changes: 27 additions & 0 deletions contracts/eureka/src/contract.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
use cosmwasm_std::{
entry_point, DepsMut, Env, EurekaPacketReceiveMsg, IbcReceiveResponse, MessageInfo, Response,
StdResult,
};

use crate::error::EurekaError;
use crate::msg::InstantiateMsg;

#[entry_point]
pub fn instantiate(
_deps: DepsMut,
_env: Env,
_info: MessageInfo,
_msg: InstantiateMsg,
) -> Result<Response, EurekaError> {
// This adds some unrelated event attribute for testing purposes
Ok(Response::new())
}

#[entry_point]
pub fn eu_packet_receive(
_deps: DepsMut,
_env: Env,
_msg: EurekaPacketReceiveMsg,
) -> StdResult<IbcReceiveResponse> {
Ok(IbcReceiveResponse::without_ack())
}
8 changes: 8 additions & 0 deletions contracts/eureka/src/error.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
use cosmwasm_std::StdError;
use thiserror::Error;

#[derive(Error, Debug, PartialEq)]
pub enum EurekaError {
#[error("{0}")]
Generic(#[from] StdError),
}
3 changes: 3 additions & 0 deletions contracts/eureka/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
mod contract;
mod error;
mod msg;
4 changes: 4 additions & 0 deletions contracts/eureka/src/msg.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
use cosmwasm_schema::cw_serde;

#[cw_serde]
pub struct InstantiateMsg;

0 comments on commit 9c05ee7

Please sign in to comment.