version: '3'
services:
  stackup:
    image: ${DOCKER_IMAGE:-stackupwallet/stackup-bundler:latest}
    ports:
      - ${DOCKER_LISTEN:-4337}:4337
    environment:
      - "ERC4337_BUNDLER_ETH_CLIENT_URL=${BUNDLER_NODE_RPC}"
      - "ERC4337_BUNDLER_PRIVATE_KEY=${BUNDLER_PRIVATE_KEY}"
      - "ERC4337_BUNDLER_SUPPORTED_ENTRY_POINTS=${BUNDLER_ENTRYPOINT}"
      - "ERC4337_BUNDLER_MAX_OP_TTL_SECONDS=30"
    entrypoint:
      - /bin/bash
      - -c
      - |
        (apt-get update && apt-get install -y curl) >/dev/null
        while true; do
          echo -n "checking eth_chainId... "
          curl -sSL -X POST "$$ERC4337_BUNDLER_ETH_CLIENT_URL" \
               -H "content-type: application/json" \
               --data '{"id":1, "jsonrpc":"2.0", "method":"eth_chainId"}'
          [ $$? -eq 0 ] && break;
          sleep 5
        done
        echo "connected to RPC '$$ERC4337_BUNDLER_ETH_CLIENT_URL'";
        /app/stackup-bundler start --mode private