@celo/celo-devchain
v7.0.0
Published
Ganache setup with core Celo contracts for local testing and development.
Downloads
2,953
Keywords
Readme
celo-devchain
Ganache setup with core Celo contracts for local testing and development.
Now supports node18
.
Usage
> npm install --save-dev @celo/celo-devchain
> npx celo-devchain --port 7545
# Run sanity tests and print all core contract addresses:
> npx @celo/celo-devchain --test
NOTE: @celo/ganache-cli currently doesn't support locally signed transactions. If you send
a locally signed transaction it will throw: Error: Number can only safely store up to 53 bits
error and crash. Thus you have to make sure your ContractKit doesn't actually have the private
keys for test addresses and send transactions to be signed by ganache-cli itself.
Example code that uses this package: https://github.com/zviadm/celo-hellocontracts
Chain Data
Chain data in ./chains
folder is generated using steps described here: https://docs.celo.org/developer-guide/development-chain.
# Start with a fresh checkout to avoid build complications.
> git clone https://github.com/celo-org/celo-monorepo.git
> git fetch --all --tags
> git tag -l core-contracts*
> git checkout tags/core-contracts.v{version}
# Yarn commands can take a while to run.
> yarn
> yarn build
> cd packages/protocol
# NOTE: The following command is based on the number of migrations available in the protocol package.
# At some point the desired `--upto` flag can change based on changes in core-contracts,
# thus you might have to adjust it too, depending on which version of core-contracts
# you are attempting to build.
> yarn devchain generate-tar .tmp/devchain.tar.gz --migration_override ../dev-utils/src/migration-override.json --upto 28 --release_gold_contracts scripts/truffle/releaseGoldExampleConfigs.json
Contracts Artifatcs
Contracts artifacts in ./contracts
should be updated with every contract release. They are generated by generated by building the protocol
package and copying over the contracts build
artifacts.
You can also use celo-devchain
with custom generated chain data:
> npx celo-devchain --file <path to custom chain data>