A library for secure smart contract development written in Compact for Midnight.
This repo contains highly experimental code. Expect rapid iteration. Use at your own risk.
Make sure you have nvm, yarn, and turbo installed on your machine.
Follow Midnight's compact installation guide and confirm that compactc
is in the PATH
env variable.
$ compactc
Compactc version: 0.23.0
Usage: compactc.bin <flag> ... <source-pathname> <target-directory-pathname>
--help displays detailed usage information
Clone the repository:
git clone [email protected]:OpenZeppelin/compact-contracts.git
cd
into it and then install dependencies and prepare the environment:
nvm install && \
yarn && \
turbo compact
$ turbo compact
(...)
✔ [COMPILE] [1/2] Compiled FungibleToken.compact
@openzeppelin-compact/fungible-token:compact: Compactc version: 0.23.0
@openzeppelin-compact/fungible-token:compact:
✔ [COMPILE] [1/6] Compiled Initializable.compact
@openzeppelin-compact/utils:compact: Compactc version: 0.23.0
@openzeppelin-compact/utils:compact:
✔ [COMPILE] [2/6] Compiled Pausable.compact
@openzeppelin-compact/utils:compact: Compactc version: 0.23.0
@openzeppelin-compact/utils:compact:
✔ [COMPILE] [3/6] Compiled Utils.compact
@openzeppelin-compact/utils:compact: Compactc version: 0.23.0
@openzeppelin-compact/utils:compact:
✔ [COMPILE] [4/6] Compiled test/mocks/MockInitializable.compact
@openzeppelin-compact/utils:compact: Compactc version: 0.23.0
@openzeppelin-compact/utils:compact: Compiling 3 circuits:
✔ [COMPILE] [5/6] Compiled test/mocks/MockPausable.compact
@openzeppelin-compact/utils:compact: Compactc version: 0.23.0
@openzeppelin-compact/utils:compact: Compiling 5 circuits:
✔ [COMPILE] [6/6] Compiled test/mocks/MockUtils.compact
@openzeppelin-compact/utils:compact: Compactc version: 0.23.0
@openzeppelin-compact/utils:compact:
✔ [COMPILE] [2/2] Compiled test/mocks/MockFungibleToken.compact
@openzeppelin-compact/fungible-token:compact: Compactc version: 0.23.0
@openzeppelin-compact/fungible-token:compact: Compiling 15 circuits:
Tasks: 2 successful, 2 total
Cached: 0 cached, 2 total
Time: 7.178s
Note: Speed up the development process by skipping the prover and verifier key file generation:
turbo compact -- --skip-zk
turbo test
turbo fmt-and-lint:fix
turbo compact test fmt-and-lint:fix
This project is still in a very early and experimental phase. It has never been audited nor thoroughly reviewed for security vulnerabilities. DO NOT USE IT IN PRODUCTION.
Please report any security issues you find to [email protected].