Skip to content

Commit e223918

Browse files
authored
Merge pull request #413 from CosmWasm/add-burn-contract
Add burn contract
2 parents 512508b + 6ed75c4 commit e223918

17 files changed

+1727
-2
lines changed

.circleci/config.yml

+63-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ workflows:
88
- package_storage
99
- package_vm_cranelift
1010
- package_vm_singlepass
11+
- contract_burner
1112
- contract_hackatom
1213
- contract_hackatom_in_singlepass_vm
1314
- contract_queue
@@ -210,6 +211,55 @@ jobs:
210211
- target/debug/deps
211212
key: cargocache-v2-package_vm_singlepass-rust:nightly-{{ checksum "Cargo.lock" }}
212213

214+
contract_burner:
215+
docker:
216+
- image: rust:1.41.1
217+
working_directory: ~/cosmwasm/contracts/burner
218+
steps:
219+
- checkout:
220+
path: ~/cosmwasm
221+
- run:
222+
name: Version information
223+
command: rustc --version; cargo --version; rustup --version
224+
- restore_cache:
225+
keys:
226+
- cargocache-v2-contract_burner-rust:1.41.1-{{ checksum "Cargo.lock" }}
227+
- run:
228+
name: Add wasm32 target
229+
command: rustup target add wasm32-unknown-unknown && rustup target list --installed
230+
- run:
231+
name: Build wasm binary
232+
command: cargo wasm --locked
233+
- run:
234+
name: Unit tests
235+
env: RUST_BACKTRACE=1
236+
command: cargo unit-test --locked
237+
- run:
238+
name: Integration tests
239+
command: cargo integration-test --locked
240+
- run:
241+
name: Build and run schema generator
242+
command: cargo schema --locked
243+
- run:
244+
name: Ensure schemas are up-to-date
245+
command: |
246+
CHANGES_IN_REPO=$(git status --porcelain)
247+
if [[ -n "$CHANGES_IN_REPO" ]]; then
248+
echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff' for debugging now:"
249+
git status && git --no-pager diff
250+
exit 1
251+
fi
252+
- save_cache:
253+
paths:
254+
- /usr/local/cargo/registry
255+
- target/debug/.fingerprint
256+
- target/debug/build
257+
- target/debug/deps
258+
- target/wasm32-unknown-unknown/release/.fingerprint
259+
- target/wasm32-unknown-unknown/release/build
260+
- target/wasm32-unknown-unknown/release/deps
261+
key: cargocache-v2-contract_burner-rust:1.41.1-{{ checksum "Cargo.lock" }}
262+
213263
contract_hackatom:
214264
docker:
215265
- image: rust:1.41.1
@@ -458,6 +508,10 @@ jobs:
458508
- run:
459509
name: Check formatting of workspace
460510
command: cargo fmt -- --check
511+
- run:
512+
name: Check formatting of contract burner
513+
working_directory: ~/project/contracts/burner
514+
command: cargo fmt -- --check
461515
- run:
462516
name: Check formatting of contract hackatom
463517
working_directory: ~/project/contracts/hackatom
@@ -504,7 +558,7 @@ jobs:
504558
command: rustc +$NIGHTLY_TOOLCHAIN --version && cargo +$NIGHTLY_TOOLCHAIN --version
505559
- restore_cache:
506560
keys:
507-
- cargocache-v2-clippy-rust:1.41.1-{{ checksum "Cargo.lock" }}-{{ checksum "contracts/hackatom/Cargo.lock" }}-{{ checksum "contracts/queue/Cargo.lock" }}-{{ checksum "contracts/reflect/Cargo.lock" }}-{{ checksum "contracts/staking/Cargo.lock" }}
561+
- cargocache-v2-clippy-rust:1.41.1-{{ checksum "Cargo.lock" }}-{{ checksum "contracts/burner/Cargo.lock" }}-{{ checksum "contracts/hackatom/Cargo.lock" }}-{{ checksum "contracts/queue/Cargo.lock" }}-{{ checksum "contracts/reflect/Cargo.lock" }}-{{ checksum "contracts/staking/Cargo.lock" }}
508562
- run:
509563
name: Add clippy component
510564
command: rustup component add clippy
@@ -550,6 +604,10 @@ jobs:
550604
#
551605
# Contracts
552606
#
607+
- run:
608+
name: Clippy linting on burner
609+
working_directory: ~/project/contracts/burner
610+
command: cargo clippy -- -D warnings
553611
- run:
554612
name: Clippy linting on hackatom
555613
working_directory: ~/project/contracts/hackatom
@@ -572,6 +630,9 @@ jobs:
572630
- target/debug/.fingerprint
573631
- target/debug/build
574632
- target/debug/deps
633+
- contracts/burner/target/debug/.fingerprint
634+
- contracts/burner/target/debug/build
635+
- contracts/burner/target/debug/deps
575636
- contracts/hackatom/target/debug/.fingerprint
576637
- contracts/hackatom/target/debug/build
577638
- contracts/hackatom/target/debug/deps
@@ -584,7 +645,7 @@ jobs:
584645
- contracts/staking/target/debug/.fingerprint
585646
- contracts/staking/target/debug/build
586647
- contracts/staking/target/debug/deps
587-
key: cargocache-v2-clippy-rust:1.41.1-{{ checksum "Cargo.lock" }}-{{ checksum "contracts/hackatom/Cargo.lock" }}-{{ checksum "contracts/queue/Cargo.lock" }}-{{ checksum "contracts/reflect/Cargo.lock" }}-{{ checksum "contracts/staking/Cargo.lock" }}
648+
key: cargocache-v2-clippy-rust:1.41.1-{{ checksum "Cargo.lock" }}-{{ checksum "contracts/burner/Cargo.lock" }}-{{ checksum "contracts/hackatom/Cargo.lock" }}-{{ checksum "contracts/queue/Cargo.lock" }}-{{ checksum "contracts/reflect/Cargo.lock" }}-{{ checksum "contracts/staking/Cargo.lock" }}
588649

589650
# This job roughly follows the instructions from https://circleci.com/blog/publishing-to-github-releases-via-circleci/
590651
build_and_upload_devcontracts:

contracts/README.md

+5
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ example contracts, see
1414
To rebuild all contracts as part of a release use the following commands:
1515

1616
```sh
17+
docker run --rm -v "$(pwd)":/code \
18+
--mount type=volume,source="devcontract_cache_burner",target=/code/contracts/burner/target \
19+
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
20+
cosmwasm/rust-optimizer:0.8.0 ./contracts/burner
21+
1722
docker run --rm -v "$(pwd)":/code \
1823
--mount type=volume,source="devcontract_cache_hackatom",target=/code/contracts/hackatom/target \
1924
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \

contracts/burner/.cargo/config

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

0 commit comments

Comments
 (0)