#syntax=docker/dockerfile:1.2@sha256:e2a8561e419ab1ba6b2fe6cbdf49fd92b95912df1cf7d313c3e2230a333fdbcc
FROM ghcr.io/certusone/solana:1.10.31@sha256:d31e8db926a1d3fbaa9d9211d9979023692614b7b64912651aba0383e8c01bad AS solana

RUN apt-get update && apt-get install -yq python3 libudev-dev ncat
RUN curl -fsSL https://deb.nodesource.com/setup_16.x | bash - && apt-get install -y nodejs

ADD governance/remote_executor /usr/src/governance/remote_executor
ADD wormhole_attester /usr/src/wormhole_attester

WORKDIR /usr/src/wormhole_attester

ENV EMITTER_ADDRESS="11111111111111111111111111111115"
ENV BRIDGE_ADDRESS="Bridge1p5gheXUvJ6jGWGeCsgPKgnE3YgdGKRVCMY9o"

RUN --mount=type=cache,target=/root/.cache \
    --mount=type=cache,target=/usr/local/cargo/registry \
    --mount=type=cache,target=target \
    cargo test --package pyth-wormhole-attester-client && \
    cargo build --package pyth-wormhole-attester-client && \
    mv target/debug/pwhac /usr/local/bin/pwhac

ADD third_party/pyth/pyth_utils.py /usr/src/pyth/pyth_utils.py
ADD third_party/pyth/p2w_autoattest.py /usr/src/pyth/p2w_autoattest.py
ADD tilt_devnet/secrets/solana /solana-secrets

RUN chmod a+rx /usr/src/pyth/*.py

ENV P2W_OWNER_KEYPAIR="/solana-secrets/p2w_owner.json"
ENV P2W_ATTESTATIONS_PORT="4343"
ENV PYTH_PUBLISHER_KEYPAIR="/solana-secrets/pyth_publisher.json"
ENV PYTH_PROGRAM_KEYPAIR="/solana-secrets/pyth_program.json"
