Skip to content

LOBYI/BAY_ETHPrediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 프로젝트: ETH Price Prediction dApp (ETH 바이너리)

Solidity, Foundry, Next.js, wagmi를 총동원하여 개발한 실시간 이더리움 가격 예측 게임입니다. Pyth Network 오라클을 통해 실시간 데이터를 가져오며, 자동 정산 봇을 통해 사용자 편의성을 극대화했습니다.

📝 프로젝트 개요

사용자가 특정 시간(1, 4, 24시간) 뒤의 이더리움 가격이 현재보다 높을지(UP) 낮을지(DOWN) 예측하여 ETH를 베팅하는 서비스입니다. 예측 성공 시 베팅금의 2배를 보상으로 받습니다.

✨ 주요 기능

  • 실시간 시세 확인: Pyth Network를 연동하여 2초마다 갱신되는 이더리움 가격 UI 제공.
  • 예측 베팅: 사용자가 상승(UP) 또는 하락(DOWN)에 ETH를 베팅 (최소 0.01 ~ 최대 0.1 ETH).
  • 자동 정산 시스템 (Bot): EC2 서버에서 구동되는 봇이 베팅 만료 시간을 감시하고 자동으로 결과를 정산.
  • 투명한 결과 확인: 스마트 컨트랙트에 저장된 startPriceendPrice를 비교하여 승패를 투명하게 공개.
  • 히스토리 관리: 사용자의 과거 베팅 내역, 시작/종료 시간, 결과 및 수익률 확인 가능.

🛠 기술 스택

  • Smart Contract: Solidity 0.8.26, Pyth SDK (Oracle 연동)
  • Frontend: Next.js, wagmi, RainbowKit, Viem
  • Backend (Bot): Node.js, ethers.js v6, PM2 (EC2 배포)
  • Tools: Foundry (Test), Vercel (Deployment)

🚀 설치 방법 (Installation)

이 프로젝트는 Foundry(스마트 컨트랙트)와 Next.js(프론트엔드), 그리고 Node.js(자동 정산 봇)로 구성되어 있습니다.

1. 필수 요구 사항 (Prerequisites)

  • Node.js: v18.x 이상
  • Foundry: 설치 가이드 참조
  • 지갑: MetaMask (Sepolia 네트워크 설정 및 테스트용 ETH 필요)
  • 오라클: Pyth Network (Sepolia Price Feed ID 활용)

🚀 설치 및 실행 방법 (Installation & Setup)

이 프로젝트는 Foundry(스마트 컨트랙트)와 Next.js(프론트엔드), 그리고 Node.js(자동 정산 봇)로 구성된 모노레포 구조입니다. 프로젝트 폴더 루트 경로에서 아래 과정을 진행합니다.

1. 필수 요구 사항

  • Node.js: v18.x 이상
  • Foundry: 설치 가이드 참조
  • 지갑: MetaMask (Sepolia 네트워크 설정 및 테스트용 ETH 필요)

2. 실행 방법

# 스마트 컨트랙트
# 의존성 라이브러리 설치 (Pyth SDK 등)
forge install

# 컨트랙트 컴파일
forge build

# 단위 테스트 실행 (핵심 로직 테스트)
forge test -vv

# 단위 테스트 실행 (핵심 로직 테스트)
forge script script/DeployETHPrediction.s.sol --rpc-url $SEPOLIA_RPC_URL --private-key $PRIVATE_KEY --broadcast

# 이하부터 컨트랙트 주소를 env에 추가
# 프론트엔드
# 의존성 설치 (버전 충돌 방지를 위해 legacy-peer-deps 옵션 사용)
npm install --legacy-peer-deps

# 로컬 개발 서버 실행
npm run dev

# 백엔드 : 봇이 위치한 폴더로 이동 (예: 루트 경로의 backend 폴더)
# 필수 패키지 설치
npm install dotenv ethers @pythnetwork/pyth-common-js

# 봇 실행 (PM2를 이용한 무중단 운영)
pm2 start bot.js --name "eth-prediction-bot"

링크

[배포 URL] (https://bay-eth-prediction.vercel.app/)

추가사항

가급적 TRUST WALLET으로 연결하시는것을 추천합니다

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors