cycles-quartz/crates/contracts/README.md

62 lines
2.5 KiB
Markdown
Raw Normal View History

# Quartz CosmWasm Packages
This repository contains a collection of packages designed to facilitate the development of CosmWasm smart contracts for Quartz apps.
## Packages
### 1. `quartz-cw`
The `quartz-cw` package offers a high-level framework for building attestation-aware smart contracts by wrapping CosmWasm messages in TEE attestations (e.g. DCAP).
- Defines `Attested<M, A>` wrapper for a message and its attestation
- Supports a MockAttestation type for development ease
- Implements session management for secure communication between contract and enclave
The `quartz-cw` package handles actual DCAP verification within smart contracts by calling the standalone `quartz-dcap-verifier` and `tcbinfo` contracts.
### 2. `quartz-dcap-verifier`
Your personal DCAP detective! This package is a standalone smart contract for verifying DCAP attestations that can be called by other contracts.
- Thin wrapper for standalone smart contract around the functionality provided in the `quartz-tee-ra` package
- Provides query and execute entry points for attestation checks
### 3. `quartz-tee-ra`
This `quartz-tee-ra` handles Intel SGX remote attestation for both EPID and DCAP protocols.
- Verifies EPID and DCAP attestations
- Provides core types and structures for SGX quotes
- Implements cryptographic verification of attestation reports
### 4. `tcbinfo`
The `tcbinfo` package manages and verifies TCB information crucial for maintaining enclave security.
- Stores and retrieves TCB information
- Verifies TCB signatures and certificates
- Provides a CosmWasm contract for TCB management
### 5. `wasmd-client`
The `wasmd-client` package offers a Rust client interface for interacting with Wasmd nodes.
- Defines traits for querying and executing CosmWasm contracts
- Provides utilities for deploying and interacting with contracts
## Examples
Check out the `integration_tests` modules in each package for usage examples and best practices!
## Contributing
We welcome contributions from the community! If you find any issues or have suggestions for improvement, please open an issue or submit a pull request. Make sure to follow the contribution guidelines outlined in the repository.
<!-- ## License //TODO check which license is needed
The Quartz CosmWasm Packages are released under the [MIT License](LICENSE). -->
## Contact
If you have any questions or need further assistance, please reach out to us at [quartz.support@informal.systems](mailto:quartz.support@informal.systems).