# RPC Method Policy Configuration
# Defines which JSON-RPC methods are allowed and their rate limits

# Allowed methods for public RPC
allowed_methods:
  - eth_blockNumber
  - eth_call
  - eth_estimateGas
  - eth_gasPrice
  - eth_getBalance
  - eth_getBlockByHash
  - eth_getBlockByNumber
  - eth_getBlockTransactionCountByHash
  - eth_getBlockTransactionCountByNumber
  - eth_getCode
  - eth_getLogs
  - eth_getStorageAt
  - eth_getTransactionByHash
  - eth_getTransactionByBlockHashAndIndex
  - eth_getTransactionByBlockNumberAndIndex
  - eth_getTransactionCount
  - eth_getTransactionReceipt
  - eth_getUncleByBlockHashAndIndex
  - eth_getUncleByBlockNumberAndIndex
  - eth_getUncleCountByBlockHash
  - eth_getUncleCountByBlockNumber
  - eth_protocolVersion
  - eth_syncing
  - net_listening
  - net_peerCount
  - net_version
  - web3_clientVersion
  - web3_sha3

# Blocked methods for public RPC (write operations)
blocked_methods:
  - eth_sendTransaction
  - eth_sendRawTransaction
  - miner_start
  - miner_stop
  - miner_setEtherbase
  - admin_addPeer
  - admin_removePeer
  - admin_addTrustedPeer
  - admin_removeTrustedPeer
  - admin_peers
  - admin_nodeInfo
  - debug_traceBlock
  - debug_traceBlockByNumber
  - debug_traceBlockByHash
  - debug_traceTransaction
  - debug_traceCall
  - debug_dumpBlock
  - debug_getBadBlocks
  - debug_getRawHeader
  - debug_getRawBlock
  - debug_getRawReceipts
  - debug_getRawTransaction

# Rate limits (requests per minute per IP)
rate_limits:
  default: 1200
  eth_call: 600
  eth_getLogs: 300
  eth_getBlockByNumber: 600
  eth_getTransactionReceipt: 600
  eth_estimateGas: 300

# Log range guards for eth_getLogs
log_range_limits:
  max_block_range: 10000
  max_topics: 4
  max_addresses: 10

# Authentication
authentication:
  required: false  # Set to true to require API keys
  api_key_header: "X-API-Key"
  jwt_enabled: false
  jwt_secret: ""

# CORS
cors:
  enabled: true
  allowed_origins:
    - "*"
  allowed_methods:
    - GET
    - POST
    - OPTIONS
  allowed_headers:
    - Content-Type
    - Authorization
    - X-API-Key

