wormhole/wormchain/Makefile

83 lines
2.5 KiB
Makefile

PROTO_FILES=$(shell find proto -name "*.proto")
GO_FILES=$(shell find . -name "*.go")
# Address of the main tilt validator that the others should connect to
TILT_VALADDRESS=wormholevaloper1cyyzpxplxdzkeea7kwsydadg87357qna87hzv8
VERSION := $(shell echo $(shell git describe --tags 2> /dev/null || echo v0.0.1) | sed 's/^v//')
COMMIT := $(shell git log -1 --format='%h' 2> /dev/null || echo 'abc123')
ldflags = \
-X github.com/cosmos/cosmos-sdk/version.Name=wormchain\
-X github.com/cosmos/cosmos-sdk/version.ServerName=wormchaind\
-X github.com/cosmos/cosmos-sdk/version.Version=$(VERSION) \
-X github.com/cosmos/cosmos-sdk/version.Commit=$(COMMIT) \
-X "github.com/cosmos/cosmos-sdk/version.BuildTags=ledger"
BUILD_FLAGS := -ldflags '$(ldflags)'
.PHONY: all
all: client
.PHONY: client
client: build/wormchaind
build/wormchaind: cmd/wormchaind/main.go $(GO_FILES)
go build -v $(BUILD_FLAGS) -tags ledger -o $@ $<
proto: $(PROTO_FILES)
docker build --target go-export -f Dockerfile.proto -o type=local,dest=. ..
vue: $(GO_FILES) proto
mkdir -p $@
touch -m $@
docker build --target vue-export -f Dockerfile.proto -o type=local,dest=. ..
# For now this is a phony target so we just rebuild it each time instead of
# tracking dependencies
.PHONY: ts-sdk
ts-sdk: vue
npm ci --prefix $@
npm run build --prefix $@
.PHONY: run
run: build/wormchaind
./$< start --home build --log_level="debug"
# get npm packages for contracts/tools
contracts-tools-deps: contracts/tools/package-lock.json
npm ci --prefix=contracts/tools
# get .env and devnet-consts.json for contracts/tools
contracts-devnet-env:
cd .. && ./scripts/guardian-set-init.sh 1
cd .. && ./scripts/distribute-devnet-consts.sh
# get wasm artifacts for cosmwasm contracts
contracts-artifacts:
cd ../cosmwasm && $(MAKE) artifacts
cp -r ../cosmwasm/artifacts contracts
# get everything needed to
contracts-deploy-setup: contracts-tools-deps contracts-devnet-env contracts-artifacts
# runs the contract deployment script
contracts-deploy-local: contracts-deploy-setup
npm run deploy-wormchain --prefix=contracts/tools
# starts wormchaind in a container, deploys contracts, tests contract interaction
contracts-deploy-test: client contracts-deploy-setup
./contracts/run_deploy_test.sh
.PHONY: test
test:
go test -v ./...
.PHONY: bootstrap
bootstrap:
npm run bootstrap --prefix testing/js
.PHONY: clean
clean:
rm -rf build/wormchaind build/**/*.db build/**/*.wal vue
echo "{\"height\":\"0\",\"round\":0,\"step\":0}" > build/data/priv_validator_state.json