-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added experimental Android payment channel support #306
Open
w-shackleton
wants to merge
18
commits into
bitcoin-wallet:main
Choose a base branch
from
w-shackleton:micropayments
base: main
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Created interfaces for channels flowing in both directions Added PaymentChannelService exported service for initiating payment channels Filled implementation of PaymentChannelServerInstanceBinder Added base client implementation for payment channel service Added interface to Android remote service for minimal service communication
…only available when linked with bitcoinj Added PaymentChannelClientAndroidConnection class that mirrors PaymentChannelClientConnection, but communicates with a wallet over an Android service Added PaymentChannelServerAndroidConnection, to accept money from a wallet by Android service Implemented remote server event handler and close semantics across connection
Added UI for creating payment channel from wallet
…dded debug lines to message send / receive Added required extensions to Wallet for payment channels
Got channel confirm dialog working Added channel settling Added payment increment dialogue Cleaned up incorrect password boundary cases Fixed a couple of functional issues with channels
Switched payment channel task from looper to queue to avoid thread reuse issues
Improved stability of demos Improved semantics around double-requesting increments Removed unused field from demo client
This is fine because this is an entirely new platform - there's no legacy code that we'll have to interact with. Got payments working to wallet
w-shackleton
force-pushed
the
micropayments
branch
from
March 1, 2016 11:26
9b46fb8
to
de6fae3
Compare
I want to add btc my coinbase |
schildbach
force-pushed
the
master
branch
2 times, most recently
from
September 12, 2018 16:34
481ed68
to
c16bda1
Compare
schildbach
force-pushed
the
master
branch
2 times, most recently
from
January 18, 2020 19:47
23527de
to
b1392bc
Compare
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've added experimental payment channel support to Bitcoin Wallet.
This works by exposing an Android service that other apps may connect to using the provided AIDL interface. This can be used to create channels in both directions, and for channels that spend Bitcoin wallet's money, dialog boxes are displayed confirming that the user wants to spend that money. I've also included a set of demos that show how such integration might work. In a real-world scenario the app that talks to the service (game, etc) should use a server-side bitcoinj instance and then forward messages from the Bitcoin Wallet service to its remote server, but that's too implementation specific to cover in a demo app.
This feature is disabled by default, and can be enabled in settings.
This code requires the master version of bitcoinj currently (there's code in bitcoinj master not yet in 0.13.5 etc) so there are three commits on the beginning that need to be removed before merge that tell gradle to find
bitcoinj-0.14-SNAPSHOT
in the maven local repo.