Paragraph TBD.

1. Overview

This document is a new document containing the PlantUML diagrams previously in the ConsensusJ User Guide.

2. JSON-RPC Clients

The following diagram shows the basic class hierarchy of the core org.consensusj.jsonrpc and org.consensusj.bitcoin.jsonrpc modules.

Diagram

2.1. Groovy

By implementing the DynamicRPCMethodFallback trait we can layer dynamic JSON-RPC methods on top of static JSON-RPC methods. The following diagram leaves out some details to focus on the DynamicRPCClient. It extends JsonRpcClientHttpUrlConnection and implements the DynamicRPCMethodFallback trait. By doing this, it inherits the (static) methods of JsonRpcClientHttpUrlConnection and falls back to dynamic method resolution for any additional method names that are used.

Diagram

The following diagram (which also leaves out some details), shows how the BitcoinScriptingClient extends BitcoinExtendedClient but adds dynamic methods by implementing the DynamicRPCMethodFallback trait.

Diagram