-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
28 lines (23 loc) · 1.04 KB
/
Makefile
File metadata and controls
28 lines (23 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
.PHONY: bindings build test clean
CONTRACTS_OUT := ../muri-contracts/out
ABI_DIR := .abi
BINDINGS_DIR := chain/bindings
# Extract ABIs from Foundry output and generate Go bindings
# FileMarket ABI is merged from FileMarket + FileMarketExtension + FileMarketExtension2 (chained fallback delegation)
bindings:
@mkdir -p $(ABI_DIR)
jq -s '[.[0].abi[], .[1].abi[], .[2].abi[]] | unique_by(.name // .type)' \
$(CONTRACTS_OUT)/Market.sol/FileMarket.json \
$(CONTRACTS_OUT)/FileMarketExtension.sol/FileMarketExtension.json \
$(CONTRACTS_OUT)/FileMarketExtension2.sol/FileMarketExtension2.json > $(ABI_DIR)/FileMarket.json
jq '.abi' $(CONTRACTS_OUT)/NodeStaking.sol/NodeStaking.json > $(ABI_DIR)/NodeStaking.json
abigen --abi $(ABI_DIR)/FileMarket.json --pkg bindings --type FileMarket --out $(BINDINGS_DIR)/filemarket.go
abigen --abi $(ABI_DIR)/NodeStaking.json --pkg bindings --type NodeStaking --out $(BINDINGS_DIR)/nodestaking.go
@echo "Bindings generated."
build:
go build ./...
test:
go test ./... -v
clean:
rm -rf $(ABI_DIR)
go clean ./...