Skip to content
This repository has been archived by the owner on May 13, 2022. It is now read-only.

Intended class and object structure and description

Adam Gibson edited this page Mar 2, 2016 · 6 revisions

The names of classes may change, their intended use probably wont.

Note: there is considerable expansion on this in the docs repo. See the high level design document.

  • Wallet. Handles the internal HD wallet. Contains methods for generating new addresses and querying data from the blockchain.

  • BlockchainInterface. Abstract class for interacting with the blockchain.

    • BitcoinCoreInterface. Interacts with the blockchain using the Bitcoin Core json-rpc interface.
    • BlockrInterface. Interacts with the blockchain by querying the http://blockr.io/ web API.
    • RegtestBitcoinCoreInterface. Interacts with Bitcoin Core running regtest mode.
  • MessagingChannel. Abstract class for communication between bots.

    • IRCChannel. Implemented in IRC.
    • P2PChannel. Implemented with a p2p network.
    • BitmessageChannel. Implemented in Bitmessage.
  • CoinJoinerPeer. Abstract class for maker and taker

    • OrderbookWatcher. Observes the orderbook and stores it in a database.
      • Taker. Initiates coinjoin transactions by taking liquidity from the market.
        • SendPayment
        • Tumbler
      • GUITaker
    • Maker. Waits for Taker to create coinjoin transactions. Announces orders. * YieldGenerator