Makefile 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. bridge_SOURCE=wormhole
  2. token_bridge_SOURCE=token_bridge
  3. nft_bridge_SOURCE=nft_bridge
  4. SOURCE_FILES=$(shell find . -name "*.rs" -or -name "*.lock" -or -name "*.toml" | grep -v target)
  5. PACKAGES=$(shell find . -name "Cargo.toml" | grep -E 'packages|contracts' | cut -d/ -f3 | sed s/-/_/g)
  6. WASMS=$(patsubst %, artifacts/%.wasm, $(PACKAGES))
  7. -include ../Makefile.help
  8. .PHONY: artifacts
  9. ## Build contracts.
  10. artifacts: artifacts/checksums.txt
  11. VALID_mainnet=1
  12. VALID_testnet=1
  13. VALID_devnet=1
  14. .PHONY: check-network
  15. check-network:
  16. ifndef VALID_$(NETWORK)
  17. $(error Invalid or missing NETWORK. Please call with `$(MAKE) $(MAKECMDGOALS) NETWORK=[mainnet | testnet | devnet]`)
  18. endif
  19. $(WASMS) artifacts/checksums.txt: $(SOURCE_FILES)
  20. DOCKER_BUILDKIT=1 docker build --target artifacts -o artifacts .
  21. payer-$(NETWORK).json:
  22. $(error Missing private key in payer-$(NETWORK).json)
  23. .PHONY: deploy/bridge
  24. ## Deploy core bridge
  25. deploy/bridge: bridge-code-id-$(NETWORK).txt
  26. .PHONY: deploy/token_bridge
  27. ## Deploy token bridge
  28. deploy/token_bridge: token_bridge-code-id-$(NETWORK).txt
  29. .PHONY: deploy/nft_bridge
  30. ## Deploy NFT bridge
  31. deploy/nft_bridge: nft_bridge-code-id-$(NETWORK).txt
  32. %-code-id-$(NETWORK).txt: check-network tools/node_modules payer-$(NETWORK).json
  33. @echo "Deploying artifacts/$($*_SOURCE).wasm on $(NETWORK)"
  34. @node tools/deploy_single.js \
  35. --network $(NETWORK) \
  36. --artifact artifacts/$($*_SOURCE).wasm \
  37. --mnemonic "$$(cat payer-$(NETWORK).json)" \
  38. | grep -i "code id" | sed s/[^0-9]//g \
  39. > $@
  40. @echo "Deployed at code id $$(cat $@) (stored in $@)"
  41. tools/node_modules: tools/package-lock.json
  42. cd tools && npm ci
  43. .PHONY: clean
  44. clean:
  45. rm -f $(WASMS)
  46. rm -f artifacts/checksums.txt