Initial commit: smart contract templates for bash, go, python, and typescript

This commit is contained in:
2026-03-17 19:59:47 -04:00
commit 0634e66469
35 changed files with 3794 additions and 0 deletions

45
go/Makefile Executable file
View File

@@ -0,0 +1,45 @@
SHELL := /bin/bash
.PHONY: proto build run clean tools test deps fix-package-name
# Generate Go code from proto files
proto:
protoc --go_out=. --go_opt=paths=source_relative \
--go-grpc_out=. --go-grpc_opt=paths=source_relative \
proto/remote_sc.proto
# Build the smart contract binary
build:
go build -o smart-contract .
# Run the smart contract
run:
go run . -config config.yaml
# Clean build artifacts
clean:
rm -f smart-contract
# Install required tools
tools:
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
# Run tests
test:
go test -v ./...
# Download dependencies
deps:
go mod download
go mod tidy
# Fix package name based on current working directory
fix-package-name:
@NEW_MODULE=$$(go list -m 2>/dev/null || echo "$$(basename $$(dirname $$(pwd)))/$$(basename $$(pwd))"); \
if [ -z "$$NEW_MODULE" ]; then \
echo "Could not determine module name. Please run 'go mod init <module-name>' first."; \
exit 1; \
fi; \
echo "Updating package name to: $$NEW_MODULE"; \
find . -type f -name "*.go" ! -path "./proto/*" -exec sed -i 's|github.com/your-org/smart-contract|'$$NEW_MODULE'|g' {} +; \
echo "Done. Run 'make proto' to generate proto files, then 'make build' to build."