#!/bin/bash echo "Generating Go Contract Bindings" echo "===============================" # Create bindings directory mkdir -p pkg/bindings/{uniswapv2,uniswapv3,algebra,algebraintegral,pooldetector} # Check if abigen is installed if ! command -v abigen &> /dev/null; then echo "Installing abigen..." go install github.com/ethereum/go-ethereum/cmd/abigen@latest fi echo "" echo "Generating UniswapV2 bindings..." abigen --abi contracts/abis/UniswapV2Pair.json \ --pkg uniswapv2 \ --type UniswapV2Pair \ --out pkg/bindings/uniswapv2/pair.go echo "Generating UniswapV3 bindings..." abigen --abi contracts/abis/UniswapV3Pool.json \ --pkg uniswapv3 \ --type UniswapV3Pool \ --out pkg/bindings/uniswapv3/pool.go echo "Generating Algebra V1.9 bindings..." abigen --abi contracts/abis/AlgebraPool.json \ --pkg algebra \ --type AlgebraPool \ --out pkg/bindings/algebra/pool.go echo "Generating Algebra Integral bindings..." abigen --abi contracts/abis/AlgebraIntegralPool.json \ --pkg algebraintegral \ --type AlgebraIntegralPool \ --out pkg/bindings/algebraintegral/pool.go echo "" echo "Bindings generated successfully!" echo "" echo "Available bindings:" ls -la pkg/bindings/*/