Skip to content

citizenwallet/engine

Repository files navigation

dApp Engine

App Engine is a Go application designed to simplify and enhance blockchain interactions on EVM-compatible chains. It aims to create great user experiences on EVM-compatible blockchains by providing a unified solution for reading and writing data, as well as handling event-based interactions.

Purpose

Engine addresses several key challenges in blockchain development:

  1. Simplified Transactions: Submitting abstracted transactions (user operations) becomes easier.
  2. Chronological Data Reading: Efficiently read data in chronological order from the blockchain.
  3. Event Handling: React to on-chain events through WebSockets (for application displays) or webhooks (for system responses).
  4. Data Enrichment: Attach additional off-chain data to enhance use cases (e.g., transaction descriptions for ERC20 transfers).
  5. Real-time Interaction: Make transactions and their data available before they are confirmed on-chain, enabling immediate user feedback and interaction.

Features

  • Bundler
    • RPC calls through REST Endpoints
      • pm_sponsorUserOperation
      • pm_ooSponsorUserOperation
      • eth_sendUserOperation
      • eth_chainId
    • RPC calls through WebSocket
      • pm_sponsorUserOperation
      • pm_ooSponsorUserOperation
      • eth_sendUserOperation
      • eth_chainId
  • Smart Contract Logs
    • Endpoints
      • Fetch in a date range
    • WebSocket
      • Listen by Contract + Event Signature + Data (optional)
      • Listen by Contract + Event Signature + Data OR Data (optional)
    • Indexing
      • Listen by Contract + Event Signature
    • Mechanism to automate requests to start indexing
      • Manually for system admins
      • By listening to a Smart Contract (people could pay to start indexing)
    • Allow attaching extra data to a log
    • Store in DB
      • Hash
      • Created at
      • Sender (used to determine if modifying extra data is allowed)
      • Destination Contract Address
      • Amount
      • Status
      • Topics (as JSON)
      • Extra Data (as JSON)
    • Webhooks (make a network request based on an event being triggered)

About Citizen Wallet

Citizen Wallet is an open-source project focused on improving blockchain user experiences. Engine is a core component of this ecosystem.

Join our community to contribute, ask questions, or learn more about the project!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages