GithubHelp home page GithubHelp logo

cate's Introduction

Cate

Cate (Cross-chain Atomic Trading Engine) is a multicoin wallet based on the bitcoinj and libdohj libraries. It currently supports Bitcoin, Litecoin and Dogecoin, and is readily extensible to support any other currencies compatible with bitcoinj.

Cate is currently in development and should not be used outside of the test networks until it has significantly further testing. It is likely there are bugs which result in loss of funds.

Getting Started

Currently CATE is only suitable for using for development, while testing continues and the wallet format is finalised. As such, you'll need to download and compile supporting libraries and CATE in order to run CATE.

You'll need the following installed:

  • Git
  • Java 8 SDK
  • Apache Maven

Then use Git to clone the repositories for, and Maven to install:

Bitcoinj provides support for Bitcoin-like coins, and libdohj then extends it to add Dogecoin support. To install the libraries, run "mvn install" within the cloned repository. In both cases the master (default) branch must be used, as CATE requires the latest code.

Once that is done, clone the CATE repository and run "mvn package" to build it. This will produce an JAR file "target/cate-0.14-SNAPSHOT-exe.jar", double click it to run.

Contributing

Contributions to the code and documentation are greatly appreciated. A list of tasks needing work is maintained on Github at https://github.com/rnicoll/cate/issues, but obviously do feel free to submit other improvements. Contributions should be raised as a pull request against the project for code review.

Code style should follow the Google Java guidelines, and in cases where existing code does not conform to those guidelines, please raise a pull request to correct the style. Please however raise this as its own pull request, do not mix with other pull requests, so it's clear why code has been changed.

Roadmap

The initial release is targeted for the bitcoinj 0.14 release, and will be a simple wallet only. Later versions will add functionality for cross-chain trades (i.e. the core of a decentralised exchange).

cate's People

Contributors

flxstn avatar langerhans avatar patricklodder avatar qu3ntin0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cate's Issues

Own signature for refund transaction is invalid

python 4_send_coins_a.py
Traceback (most recent call last):
File "4_send_coins_a.py", line 113, in
response = process_offer_confirmed(confirmation, audit)
File "4_send_coins_a.py", line 60, in process_offer_confirmed
raise TradeError("Own signature for refund transaction is invalid.")
cate.error.TradeError: 'Own signature for refund transaction is invalid.

Application icon

The application needs an icon, as it currently uses the Java defaults. Icon has to be at least 32x32, but ideally 16x16, 32x32 and 256x256 versions would mean we can support a good range of resolutions.

Improve transaction confirmation dialogue

The display of transactions on the confirmation dialogue is rough, and would benefit from a custom dialogue. Even better if this includes the password prompt for encrypted wallet rather than requiring the user to enter it afterwards.

User preferences

A number of elements should be configurable. At a minimum, the user should be able to configure which networks the wallet runs on, and being able to override default locale would be good as well. Preferences should be stored in a properties file under the same path as the SPV chain and wallet files.

This work should also include a UI to expose these options

Request and display memo for sent transactions

A good start to address book support would be prompting the user for a memo to attach to the transactions when sending coins, as part of the confirmation dialogue. This would then be added to the SendRequest object passed to the wallet. Correspondingly this needs to be displayed in the list of transactions

Address book

CATE needs an address book to track addresses coins have been sent to. This must tie into the memo facility of the the Wallet class, and should allow multiple addresses to be attached to the same name.

A list of all receiving addresses used also needs to be exposed, and their memos editable.

Litecoin support

I'd like to have litecoin support for this, anyone working on it?
If not , I can put something together. Just didn't want to duplicate any work.

Wallet backup/restore

At the moment wallet backup can be done by manually copying the wallet file from the data directory, and copying it back to restore it, however this process should be streamlined to make it more user friendly.

Given this is an HD wallet, some thought should be given to whether it's best to back up the whole wallet, or just its seed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.