MCPcopy Index your code
hub / github.com/Multibit-Legacy/multibit

github.com/Multibit-Legacy/multibit @v0.5.19

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.19 ↗ · + Follow
2,309 symbols 8,758 edges 269 files 633 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Introduction

MultiBit is a Simplified Payment Verification (SPV) Bitcoin desktop client.

MultiBit is now in maintenance mode as it has largely been replaced by MultiBit HD. To avoid confusion we refer to MultiBit Classic and MultiBit HD to keep them separate.

MultiBit Classic relies on the following technologies:

  • Maven as the build system, so the usual Maven processes apply. If you're not familiar with Maven then download it first and follow their installation instructions.
  • ZXing ("Zebra Crossing") for QR codes
  • Bitcoinj for access to the Bitcoin network
  • Install4j for creating installers for Windows, Mac, Linux
  • Bitcoinj Enforcer Rules to prevent dependency chain attacks
  • XChange for access to several Bitcoin exchanges

The Bitcoinj "Alice" dependency

MultiBit Classic depends on a special fork of Bitcoinj for its Bitcoin support. This is due to legacy wallet serialization issues and the MultiBit team are working towards a complete integration through the MultiBit HD project.

While it is possible to build MultiBit Classic using our staging repository you may want to review the modified Bitcoinj library for yourself. You can clone from this fork:

https://code.google.com/r/jimburton618-bitcoinj-coinbase-tx/source/checkout

The branch you should use for the MultiBit master code is: bcj-0.11.2-mb-alice The branch you should use for the MultiBit develop code is: bcj-0.11.2-mb-alice

Once cloned, you should then install the custom Bitcoinj library using

mvn clean install

Branching strategy

This loosely follows the "master-develop" or "Git flow" pattern.

There are 2 main branches: master and develop. The master branch is exclusively for releases, while the develop is exclusively for release candidates. The develop branch always has a Maven version of develop-SNAPSHOT.

Occasionally a feature branch will be made off develop to cover a long-running issue. This will then be merged back into develop

When develop is ready for release it is subjected to extensive testing (manual and automated). The final act is to update the pom.xml to remove the SNAPSHOT suffix and merge it into master.

The master branch is then tagged with the release number. Tags are in the format v1.2.3 to distinguish them from branch names.

An announcement is made on the MultiBit website and social media (Twitter, Reddit, Bitcointalk etc) to alert everyone that a new version is available.

Maven build targets

The important targets are:

mvn clean install

After some processing, you will have the following artifacts in the target directory:

  • an executable jar: multibit-exe.jar

Bitcoin Solutions staff

Use the Install4j installer in the multibit-installers project to create your Mac/ Win/ Linux installers.

To run MultiBit from these artifacts you can follow the instructions provided on the main MultiBit website

Custom configuration

MultiBit Classic is quite flexible and has several features only accessible to power users through the configuration file. This is discussed in more detail in configuration.md

Contributing

All contributors must be OK with releasing their work under the MIT license.

Extension points exported contracts — how you extend this code

WalletBusyListener (Interface)
Interface to implement if you are interested in hearing about when the state of a wallets busy status changes. @author [50 …
src/main/java/org/multibit/model/bitcoin/WalletBusyListener.java
GenericApplication (Interface)
Interface to provide the following to applications: Provision of simple platform identification methods< [6 implementers]
src/main/java/org/multibit/platform/GenericApplication.java
Viewable (Interface)
@author Cameron Garnham [39 implementers]
src/main/java/org/multibit/viewsystem/Viewable.java
CurrencyConverterListener (Interface)
(no doc) [8 implementers]
src/main/java/org/multibit/exchange/CurrencyConverterListener.java
GenericEventListener (Interface)
Generic interface to provide the following to generic event handlers: Type safety for adding and removin [4 implementers]
src/main/java/org/multibit/platform/listener/GenericEventListener.java

Core symbols most depended-on inside this repo

getLocaliser
called by 1126
src/main/java/org/multibit/controller/Controller.java
getString
called by 782
src/main/java/org/multibit/Localiser.java
getModel
called by 554
src/main/java/org/multibit/controller/Controller.java
getLocale
called by 327
src/main/java/org/multibit/Localiser.java
getOrientation
called by 292
src/main/java/org/multibit/viewsystem/swing/StatusBar.java
setText
called by 272
src/main/java/org/multibit/message/Message.java
put
called by 235
src/main/java/org/multibit/model/bitcoin/WalletInfoData.java
equals
called by 231
src/main/java/org/multibit/message/Message.java

Shape

Method 1,992
Class 276
Interface 31
Enum 10

Languages

Java100%

Modules by API surface

src/main/java/org/multibit/viewsystem/swing/view/panels/ShowPreferencesPanel.java79 symbols
src/main/java/org/multibit/viewsystem/swing/view/panels/AbstractTradePanel.java74 symbols
src/test/java/com/google/bitcoin/core/WalletTest.java69 symbols
src/main/java/org/multibit/viewsystem/swing/MultiBitFrame.java69 symbols
src/main/java/org/multibit/viewsystem/swing/view/components/JFontChooser.java52 symbols
src/main/java/org/multibit/viewsystem/swing/StatusBar.java47 symbols
src/main/java/org/multibit/viewsystem/swing/view/panels/ShowTransactionsPanel.java43 symbols
src/main/java/org/multibit/viewsystem/dataproviders/PreferencesDataProvider.java42 symbols
src/main/java/org/multibit/viewsystem/swing/view/panels/ExportPrivateKeysPanel.java41 symbols
src/main/java/org/multibit/viewsystem/swing/view/panels/ImportPrivateKeysPanel.java35 symbols
src/main/java/org/multibit/viewsystem/swing/view/walletlist/WalletListPanel.java31 symbols
src/main/java/org/multibit/model/bitcoin/BitcoinModel.java31 symbols

For agents

$ claude mcp add multibit \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact