SOURCE_FILES:=$(shell find contracts -name "*.sol") .PHONY: dependencies forge_dependencies wormhole_dependencies est test-forge clean all all: build node_modules: package-lock.json touch -m node_modules npm ci # Note: Forge really wants to manage dependencies via submodules, but that # workflow is a little awkward. There's currently no support for a more # traditional package manager workflow (with a package manifest file and # installation into a subdirectory that can be gitignored). # Instead, we just specify the dependencies here. make will then take care of # installing them if they are not yet present. # When adding a new dependency, make sure to specify the exact commit hash, and # the --no-git and --no-commit flags (see lib/forge-std below) .PHONY: forge_dependencies forge_dependencies: lib/forge-std lib/forge-std: forge install foundry-rs/forge-std@2c7cbfc6fbede6d7c9e6b17afe997e3fdfe22fef --no-git --no-commit .PHONY: wormhole_dependencies wormhole_dependencies: wormhole/ethereum/build wormhole/ethereum/build: git clone --depth 1 --branch feat/batch_vaas --single-branch https://github.com/certusone/wormhole.git cd wormhole/ethereum && npm ci && npm run build && make .env dependencies: node_modules forge_dependencies wormhole_dependencies ##build: node_modules ${SOURCE_FILES} build: dependencies mkdir -p build npm run build touch -m build .env: .env.test cp $< $@ .PHONY: test test: test-forge npm run integration-test .PHONY: test-forge test-forge: dependencies forge test --contracts contracts/gasOracle .PHONY: clean clean: rm -rf anvil.log .env node_modules build lib wormhole