Skip to content

Add contract service layer and API integration#32

Open
pgolla01 wants to merge 11 commits intomainfrom
feature/fastapi-contracts
Open

Add contract service layer and API integration#32
pgolla01 wants to merge 11 commits intomainfrom
feature/fastapi-contracts

Conversation

@pgolla01
Copy link
Copy Markdown
Collaborator

Added a new Web3-based contract service layer that initializes the AgonusBetting contract from settings (RPC URL, contract address, admin key, ABI, chain ID) and exposes admin write operations (create_tournament_on_contract, close_betting, settle_tournament, cancel_tournament) plus read-only helpers (get_tournament_state, get_agent_pool, get_agent_odds), all using a shared helper for nonce, gas estimation, signing, transaction submission, and receipt checking. Updated the Tournament model and schemas to store the on-chain tournament ID, per-agent contract index mapping, and contract status, and rewired the tournaments API routes so POST /tournaments creates both the DB record and on-chain tournament, while the new /tournaments/{id}/settle and /tournaments/{id}/cancel endpoints drive settlement and cancellation on the contract and then sync winner and status back into the database, with require_admin protecting all admin-only endpoints and .env-based configuration (including a local SQLite DATABASE_URL and dummy but valid contract credentials) so the app can be run and tested safely in development.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants