/PFC-whitelist

package to handle whitelists in smart contracts

Primary LanguageRustApache License 2.0Apache-2.0

WARNING

  • v0.2.9 has been audited and remediations have been applied (in 0.2.10 tag). Please pay careful attention to which contracts were audited, as 'dust-collector' were not, and are still considered unstable.

  • v0.2.1 has been audited

you should still exercise caution, and do your own research. no warranty is given or implied

PFC-Whitelist protocol helpers

This project initially started in PFC-Fee-Split and was moved to make it usable for cosmos-sdk-2.0 things

Components

Development

Environment Setup

  • Rust v1.73.1+
  • wasm32-unknown-unknown target
  • Docker
  1. Install rustup via https://rustup.rs/

  2. Run the following:

rustup default stable
rustup target add wasm32-unknown-unknown
  1. Make sure Docker is installed

Unit / Integration Tests

Each contract contains Rust unit and integration tests embedded within the contract source directories. You can run:

cargo unit-test
cargo integration-test

Compiling

After making sure tests pass, you can compile each contract with the following:

RUSTFLAGS='-C link-arg=-s' cargo wasm
cp ../../target/wasm32-unknown-unknown/release/cw1_subkeys.wasm .
ls -l cw1_subkeys.wasm
sha256sum cw1_subkeys.wasm

Production

For production builds, run the following:

docker run --rm -v "$(pwd)":/code \
  --mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
  --mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
  cosmwasm/workspace-optimizer:0.10.4

This performs several optimizations which can significantly reduce the final size of the contract binaries, which will be available inside the artifacts/ directory.

License

ASL 2.0 - see LICENSE

PFC

If you think this was useful, feel free to delegate to the PFC validator. It will help defray the costs.

PFC - As Terra is all about the Perpetual Fee Chain right... feel free to drop me a line