Integration tests, deploy scripts, and a multi-repo dev workspace for the COTI PoD stack.
| Repo | Role |
|---|---|
| coti-pod-inbox-contracts | Inbox implementation, fee manager, miner |
| coti-contracts | dApp contracts (contracts/pod/) |
| pod-ecosystem-integration (this repo) | E2E tests, deploy orchestration, workspace |
Clone all repos as siblings under the same parent directory:
workspaces/
coti-pod-inbox-contracts/
coti-contracts/
pod-ecosystem-integration/ ← you are here
npm install # file: deps → ../coti-pod-inbox-contracts, ../coti-contracts, ../sim-coti-node
npx hardhat compileHardhat compiles Solidity from those packages via solidity.npmFilesToBuild in hardhat.config.ts (Hardhat 3 does not allow paths.sources under node_modules). No link-contracts mirror. After editing a sibling repo, recompile here (re-run npm install only if package.json / lockfile changed).
Open pod-ecosystem.code-workspace for multi-root editing across all repos.
| Command | Description |
|---|---|
npm run test:erc7984 |
ERC-7984 compat (local) |
npm run test:pp-system |
Privacy Portal system (PP_SYSTEM_TESTS=1) |
npm run test:pp-mainnet-smoke |
Read-only mainnet config + optional code checks |
npm run test:pod-token |
pToken cross-chain (POD_TOKEN_SYSTEM_TESTS=1) |
npm run test:executor-coti |
COTI MPC executor |
Inbox-only tests live in coti-pod-inbox-contracts (test:inbox-events, test:inbox-fee, etc.).
Configuration (YAML):
deployConfig.testnet.yaml— default (DEPLOY_CONFIGunset)deployConfig.mainnet.yaml— Ethereum + Avalanche + COTI mainnet
Mainnet guides: docs/mainnet/.
Dry-run orchestration (forks → services → PP): see sibling
pod-integration-tests/deployments/builder/MAINNET.md.
npm run deploy:cli
DEPLOY_CONFIG=deployConfig.mainnet.yaml npm run deploy:cli
npm run fork:cli -- setup --source avalanche --coti mainnet
npm run deploy:cli:pack # → dist/deploy-cli.js
npm run verify:deployments:config # fees / oracles / wiring dump
npm run verify:deployments # + MpcAdder.add round-tripsInbox deploy scripts: run from coti-pod-inbox-contracts (deploy:inbox, relay).
Canonical copies live in coti-contracts (contracts/pod/…). This workspace depends on it via file:../coti-contracts (and the inbox via file:../coti-pod-inbox-contracts). Change sources in those repos, then:
cd ../coti-pod-inbox-contracts && npm install && npx hardhat compile
cd ../pod-ecosystem-integration && npx hardhat compile