Commit graph

103 commits

Author SHA1 Message Date
Chris Stewart
21b82a5bab
Add script to connect to a local/remote running bitcoind instance and print the balance of the wallet (#459)
Rm hardcoded username and env var for pw
2019-05-06 09:07:17 -05:00
Chris Stewart
3354cc8298
Rename root project to 'bitcoins' (#420) 2019-04-15 14:38:25 -05:00
Torkel Rogstad
f9d1f84dc5 Add Bloop config, documentation (#412) 2019-04-15 13:08:51 -05:00
Torkel Rogstad
a76c581477 Add support for Bitcoin Core 0.17 (#384) 2019-03-26 12:41:05 -05:00
Torkel Rogstad
019aaec242 Fix Ammonite compile errors (#368) 2019-03-01 06:36:13 -06:00
Torkel Rogstad
7de78bb0fc Adds Ammonite REPL in test scope (#323) 2019-02-26 06:16:12 -06:00
Chris Stewart
74f1203924
Clean up compiler warnings (#349) 2019-02-19 14:44:44 -06:00
Chris Stewart
463fe7eebf
Put tests for bitcoind-rpc and eclair-rpc into a separate project to … (#341)
* Put tests for bitcoind-rpc and eclair-rpc into a separate project to get rid of circular dependency

* Modify travis yml file to get rid of all testkit stuff

* rename rpc project to bitcoind-rpc project

* Add bitcoind-rpc test cases that got deleted accidentally

* Add more files missing from bitcoind-rpc-test

* Remove circular deps part on CONTRIBUTING.md
2019-02-18 09:57:18 -06:00
Chris Stewart
b6dc57edda
Fix bench project configuration (#338) 2019-02-16 14:54:17 -06:00
Chris Stewart
f85fcf5137
Add bitcoin-s unit test class, all unit tests going forward should extend this (#335) 2019-02-15 07:13:33 -06:00
Chris Stewart
3200e6a1e3
Make start methods return Future[Unit] (#328)
WIP: Refactoring EclairTestUtil to use Futures

Finished refactor EclairTestUtil to use futures

Address code review

fix async bug in chan opening

Change snapshot version to something that should compile
2019-02-07 19:58:18 -06:00
Chris Stewart
0a3bfbf6ec
Make timestamp a lazy val outside of versioning code (#317)
* Make timestamp a lazy val outside of versioning code

* revert bitcoin-s snapshot to something that is published
2019-01-30 04:38:15 -06:00
Chris Stewart
5d3bf4fec0
Add sbt-git plugin, reformat snapshot versioning scheme (#309) 2019-01-23 10:23:05 -06:00
Torkel Rogstad
26949b0245 Adds Bitcoin-S static site (#299) 2019-01-18 06:34:27 -06:00
Chris Stewart
9dfbc9ed24
version 0.0.3 (#290)
* version 0.0.3

* Fix cross compile issues so we can now compile and publish a dependency for the scala 2.11 series

scalafmt

* bump versions on readme, try to fix scoverage crossversion issue

* Downgrade scoverage to try and get it to work with ci

* Tinker with scoverage versions

* Add suggestion from scoverage people to exclude secp256k1jni from build coverage
2019-01-10 09:07:18 -06:00
Chris Stewart
d01e37cfa8
Add secp256k1jni readme, start working main project readme, move old readme to core/README.md (#276)
Add documentation for TxBuilder

Try to fix links on core/README.md

add readme badges for bintray

Nits and formatting of README (#23)

ran scalafmt, fixed format in secp readme
2019-01-08 09:29:06 -06:00
Chris Stewart
ba20734df7
Add ability to publish snapshots for bitcoin-s (#281) 2019-01-05 09:40:51 -06:00
Chris Stewart
20a0d38c93
2018 12 14 rm gen dup test files (#269)
* remove duplicate files in rpc,eclair-rpc and replace them with publish testkit dep

remove gen package, fix bugs in testkit generators that weren't properly copied for the gen project

* Adding bintray resolver, fixing bug in bech32 address generator where exception was being thrown because an unassigned witness spk was hash was being called
2018-12-15 10:09:52 -06:00
Chris Stewart
701738d829
WIP: Add ability to publish to bintray, take on the org.scijava native-lib… (#268)
* Add ability to publish to bintray, take on the org.scijava native-lib-loader dependenency so we can bundle secp256k1 natively in a jar file and publish. This dependency will allow us to link the correct secp256k1 version dependending on the os and arch in the future

* Add sbt-pgp plugin to sign binaries, modify project names to all have the 'bitcoin-s-' prefix.

* Adding linux 32 bit secp256k1 natives to secp256k1jni project

* Add mising linux_64 binaries

* remove unused symlinks
2018-12-14 13:09:53 -06:00
Chris Stewart
935843c790
Add hard coded secp256k1 files for linux x86_64 bit arch (#263)
* Add hard coded secp256k1 files for linux x86_64 bit arch

* Add binary files that ignored in .gitignore
2018-12-11 15:38:17 -05:00
Nadav Kohen
b8dbd302cb Added scalafmt and ran it (#264) 2018-12-09 14:43:31 -05:00
Chris Stewart
4a407ccdf1
Lightning Network (#256)
* Implementation of LnCurrencyUnit

Fix unary and unneeded comments.

Refactor and change arithmetic to use PicoBitcoins.

Add property based testing for LnCurrencyUnits

Refactor LnCurrencyUnits after code review

Fix case and change LnPolicy to val

Remove division and add Unit tests

* Add additional unit tests and deserialization

* WIP: Implement LnHumanReadablePart (#190)

* Initial Implementation of LnHumanReadablePart

* Add unit tests and improve deserialization from string

* Refactor LnParams and LnHrp. Add requirements for instantiating LnHrp.

* Clean up and re-organize things

Re-working LnHumanReadablePart.fromString

Fix unnecessary pattern match

Removing test case

* Created eclairRpc project (#193)

Added getinfo functionality

Added connect functionality

Added most of the rpcs

Added send and checkpayment functionality

Added updaterelayfee functionality

Fixed compile errors

Ran scalafmt

Added DaemonInstance and start/stop methods

Added TestUtil

Added open test

Fixed typo in allUpdates

Fixed ChannelResult

Add eclair prefix to rpc stuff

open channel unit test passing

Adding instructions to grab default eclair in build

Add zmq config to bitcoin.conf

rename test log files, bump timeouts on connections

Add eclair-rpc README, rework some RpcUtil/TestUtil stuff for async

fixing bug in precious block, addressing code review

Address more code review comments

* Add NodeId, NodeUri, ChannelId (#196)

refactor json serializing methods to SerializerUtil, add more types

* Adding LnCurrencyUnit types to rpc api, fixing bug where eclair tests were not binding to a random port for zmq (#198)

Remove start stuff

* Adding more rpc tests, testing open, payment over channel, and closing of the channel (#199)

Add checkpayment tests

Address code review, create EclairTestUtil.createNodPair

* Two way eclair transactions sanity test (#200)

* Added a test for sending payments in both directions

* Updated travis bitcoin core version

* Initial LnInvoice Implementation (#194)

Start typing some ln invoice stuff

Add support for Fallback Address encoding

Part 1: Breaking out Bech32 specific functions into a util class, don't embed in Bech32Address

re-naming fromBase8ToBase5 -> from8BitTo5bit

Part 1: Breaking out Bech32 specific functions into a util class, don't embed in Bech32Address

rework ln invoices tags

fix more method names in Bech32

Rename ScriptPubKeyTag -> NodeIdTag

All invoice tags tests passing except weird serialization order one

Address code review, add some more comments

rename 'LnInvoiceTags' -> 'LnInvoiceTaggedFields'

create a UInt5 type to represent all of the bech32 data structures

Passing all serialization in the BOLT11 examples

First cut at deserialization

* Adding bitcoin-s types to the eclair-rpc, fixing bug with decoding numbers, refactoring more things (#204)

* Switch bech32 p2wpkh hash from RipdeMd160 -> Sha256Hash160Digest (#206)

* Add testkit project / dependency (#209)

fix core-gen build.sbt name

* add correct dependencies to testkit (#210)

* Get dep name right (#211)

* Add serialization symmetry property for LnInvoice, fixing various bugs in LnInvoice data structures, adding generators for various LnInvoice data structures (#217)

* Reworking AuthCredentials and Instances so that we can read from config files (#218)

add core files that were missing

* Reworking a lot of testkit data structures to be more helpful for testing (#219)

Add missing EclairApi file

remove noisy log

* Rebase onto master, fix testkit compile issues

* Simplify LnCurrencyUnit, add MilliSatoshis, refactor EclairRpc to use… (#226)

* Simplify LnCurrencyUnit, add MilliSatoshis, refactor EclairRpc to use MilliSatoshis

* Add some helper functions around millisatoshis for comparing them to other things

* more tests / helper methods, at generator for millisatoshis

* Fix typo

* Fix comparison operators for millisatoshis, add Writes for MilliSatos… (#227)

* Fix comparison operators for millisatoshis, add Writes for MilliSatoshis in JsonWriters

* re-add comparison operators to LnCurrencyUnit for convinience

* Add millisatoshi reads (#228)

* Updating version of eclair to https://github.com/ACINQ/eclair/releases/download/v0.2-beta8/eclair-node-0.2-beta8-52821b8.jar (#229)

* Derive nodeId from ln invoice signature, move nodeid case class into … (#230)

* Derive nodeId from ln invoice signature, move nodeid case class into the core project

* Add missing assert

* Fix null pointer exception that could occurred during requiring the invoice's signature to valid. This could occurr if a user tried to construct an invoice with an invalid signature (#233)

* Turn down logging / remove logging (#235)

* Cleaned up eclair conf (#237)

* Cleaned up eclair conf

* Added test for bad auth and Reads for LnInvoice

* WIP: rebase onto master with new compiler opts

fix more compiler warnings with testkit

* fix new compiler warnings for scalac 2.12.x on ln (#253)

* fix new compiler warnings for scalac 2.12.x on ln

* fix missing p2wpkhoutput in rawoutput testkit/CreditingTxGen.scala

* First cut at code review for the ln branch (#258)

Fix bug in parsing the LnTagPrefix.CltvExpiry, add properties that check if the NodeIdTag is given explicitly to the invoice

remove dumb invariants

revert version

* 2018 12 4 ln code review rd2 (#259)

* Amend EclairRpc test case for confirming that channel is closed

* Add final check to test case to make sure the bitcoind wallet received funds when closing channel

* Address Torkel's code review

* Addresses some review on #256 (#260)

* Docstring cleanup, small nits

* Refactors some redudant data, nested if => switch

* Fixes SO error by reversing remowal of `new`

* Fixes a couple of bugs

* map.get instead of list.find

* StringBuilder in HRP

* Rework NetworkParam to LnParam

* Cleanup

* Renames file to match trait/object name

* Docstring cleanup, pure formatting

* Simplifies a few expressions, doesn't change semantics

* Adds overloaded findRoute method instead of Either[NodeId, LnInvoice]

* Eclair cleanup

* Address concerns from Chris

* Type annotation to match case

* Address nadav's code review
2018-12-08 11:03:24 -05:00
Chris Stewart
cad975308a Add BlockBench and benchmark README 2018-11-23 08:38:30 -05:00
Chris Stewart
a5bdda8d94 Add compiler options for the Compile scope 2018-11-18 18:37:26 -05:00
Torkel Rogstad
1e2f0df30f Adds cancelable in Global := true 2018-11-15 14:11:34 -05:00
Chris Stewart
9db5180d6f bump sbt to 1.1.6, bump scalac version to 2.11.12
Adding compilerOpts, adding commonSettings across projects
2018-08-26 12:44:25 -05:00
Daniel James
cd794d9ee3 scodec
Migration to scodec

Src is compiling

tests compiling

All unit tests passing now

fix compiler issue in ScriptParser

bump timeout to run on travis ci

Fixing two unit tests that had types failing

Turn down excessive logging

Uncomment rpc tests

fixing nits
2018-08-09 21:32:17 -05:00
nkohen
6dd7ffade9 added travis integration, added awaitSync to createNodePair, cleaned up RpcAddressReads and TransactionInputReads, added ScripSignatureReads, made sure all tests run all assertions as intended 2018-06-25 13:38:40 -05:00
nkohen
a6fab31069 Added getblockchaininfo and createrawtransaction functionality with tests (also fixed bug where bip125-replaceable needed to be read into field called bip125_replaceable) 2018-06-25 09:56:37 -05:00
Nadav Kohen
afa0f0f1f2 Created rpc project and added getNewAddress endpoint 2018-06-25 09:56:37 -05:00
Daniel James
20c47323cc Refactor multi-module build
- separate Java source copied from libsecp256k1 into separate module
- split main module into core core-gen core-test
  - generators can be published separated to core code for use in
    3rd-party tests
- code coverage needs to be aggregated
2018-05-02 16:18:01 -04:00
Chris Stewart
590d9a7737 Init for zmq, successfully parsing blocks from bitcoind
MVP working for zmq notifications

removing logging, making block header generators less likely to fail

subscribing earlier in zmq life cycle

refactoring some zmq stuff to remove excess Futures

Adding error condition to processMsg loop

changing error message in processMsg loop

refactoring ZMQSubscriber api to just take in Seq[Byte] functions

cleaning up nits, adding documentation, list shortcomings of current iteration
2018-04-25 10:29:59 -05:00
Chris Stewart
b63e553e95 bumping scalacheck version, fixing bug in CryptoGenerators.privateKeySeqWithRequiredSigs that could error if a negative number was passed in 2018-04-11 16:25:35 -04:00
Chris Stewart
26bf6546f3 Refactor TxBuilder api to return a Future rather than a Either
removing superflous utxoMap in EscrowTimeoutHelper

Refactoring TxBuilder api to return a Future[Transaction] rather than a Either[Transaction, TxBuilderError

Removing TxBuilderSpec type aliases
2018-04-08 09:32:06 -05:00
Chris Stewart
bd0eb32ea0 Changing verison to snapshot 2018-03-24 17:44:00 -05:00
Chris Stewart
386ea336a0 Changing spongycastle crypto dependency to the bouncy castle crypto dependnecy 2018-03-24 17:44:00 -05:00
Chris Stewart
551679e913 Removing Build.scala file and moving things into build.sbt
Adding appName to project root
2018-03-24 12:40:02 -05:00
Chris Stewart
6d1043fafd successfully signing p2wpkh spk types 2018-03-07 15:11:58 -06:00
Chris Stewart
e9a54bbdf2 Adding abilility to create TransactionWitness from a Seq[Option[ScriptWitness]], adding checks to determine if a ScriptWitness is a P2WPKHWitnessV0 or a P2WSHWitnessV0 2018-03-07 15:11:58 -06:00
Chris Stewart
cd8728cd80 Breaking 'ScriptWitness' into two ADTs 'P2WPKHWitnessV0,P2WSHWitnessV0' and breaking 'WitnessScriptPubKeyV0' into two ADTs 'P2WPKHWitnessSPKV0, P2WSHWitnessSPKV0'
Adding abilility to create TransactionWitness from a Seq[Option[ScriptWitness]], adding checks to determine if a ScriptWitness is a P2WPKHWitnessV0 or a P2WSHWitnessV0

Deprecating some Transaction constructors that are dangerous

removing usages of deprecated Transaction constructors in bitcoin-s-core codebase

fixing nits
2018-02-18 16:19:28 -06:00
Chris Stewart
b12378ef2c fix file name to long on encrypted directories 2018-01-22 10:15:12 -06:00
Chris Stewart
6358eb8306 Implmenetation of ExtPrivateKey, passing BIP32 test vectors
ExtKey serialization symmetry spec passing

Derivation symmetry for non hardened indices

implement ExtKey.deriveChildPubKey

implementing invariants as they are specified in bip32, adding comments

Moving all ECKeys types into one file so we can create an ADT
2017-11-29 15:01:30 -06:00
Chris Stewart
97b72544de Able to parse a List[ScriptToken] -> binary tree -> List[ScriptToken] for one set of test cases inside of ControlOperationsInterpreterTet -- this includes nested OP_IFs 2017-09-07 15:41:01 -05:00
Chris Stewart
8758e3fe9d Updating sbt assembly plugin to 0.14.5
removing discard strategy for library.properties
2017-08-21 15:09:57 -05:00
Chris Stewart
c3a3300106 refactoring Channel code to use WitnessTransactions instead of BaseTransactions 2017-08-10 13:13:34 -05:00
Chris Stewart
73f41eb2cd Modifying assembly.sbt settings to not include relevant files to jar file 2016-09-02 21:01:33 -05:00
Chris Stewart
4018b38fbb Removing gen package from test coverage report 2016-07-17 10:35:03 -05:00
Chris Stewart
14c4e057f0 Fixing bug with serialization of UInt64s, wasn't being padded correctly perviously 2016-06-27 10:50:50 -05:00
Chris Stewart
93765a2643 Merging in master, refactoring functions to CompactSizeUInt, adding BitcoinSUtilSpec, adding UInt64Spec 2016-06-20 14:28:38 -05:00
Chris Stewart
956c6ae1ad Adding scalacheck properties for creating UInt32s and adding UInt32s 2016-06-16 13:42:33 -05:00