Commit Graph

746 Commits

Author SHA1 Message Date
Rusty Russell
0c3f85d931 lightning.py: parse multiple JSON RPC commands accurately.
We need to keep the remaining buffer, and we need to try to parse it
before we read the next.  I first tried keeping it in the object, but
its lifetime is that of the *socket*, which we actually reopen for
every command.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-11-19 21:36:40 +01:00
Conor Scott
9a0f3a764c [pylightning] Fix lightning-pay script 2018-11-19 21:24:03 +01:00
Christian Decker
6c649ce775 docs: Mention that msatoshi on pay is not optional, but ignored
Reported-by: Tim Horie <@thorie7912>
Signed-off-by: Christian Decker <@cdecker>
2018-11-13 06:17:50 +01:00
Christian Decker
2b3059be0c plugin: Have the helloworld plugin accept a configure message
Just customizes the greeting, the actual sending is in the next commit.

Signed-off-by: Christian Decker <@cdecker>
2018-11-13 00:44:50 +01:00
Christian Decker
55d6d6b0e7 plugin: Register plugin cli options
We also make `--help` a non-early arg so it allows for the plugins to
register their options before printing the help message. The options
themselves are stored in a separate struct inbetween them being
registered and them being forwarded to the plugin. Currently only
supports string options.

Signed-off-by: Christian Decker <@cdecker>
2018-11-13 00:44:50 +01:00
Christian Decker
d0de6e59c6 plugin: Start each plugin and setup the connection to it
Mostly copied from bitcoind.c
2018-11-13 00:44:50 +01:00
Christian Decker
f7116c3a43 plugins: Add simple helloworld plugin to test against
It does double duty to show how a simple plugin might work.
2018-11-13 00:44:50 +01:00
Rusty Russell
f3329d6013 pylightning: add msatoshi optional sendpay param.
And there's a difference between no description and "" as a description:
for no description, listpayments doesn't show the field at all.  So fix
that.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-10-23 16:47:32 +02:00
Christian Decker
6b7546b94d json-rpc: Rename getroutestats and move stats to getinfo
Signed-off-by: Christian Decker <@cdecker>
2018-10-19 21:58:27 +00:00
Christian Decker
facd7d16aa json-rpc: Add listforwardings command 2018-10-19 21:58:27 +00:00
Christian Decker
e904fcc00c docker: Update docker images and docs to non-CVE-2018-17144 bitcoind
While not strictly necessary it's certainly a good idea to test
against the latest one and not encourage users to use old versions.

Reported-by: Jonas Nick <@jonasnick>
Signed-off-by: Christian Decker <@cdecker>
2018-10-15 23:05:25 +00:00
Christian Decker
0a5c45e8b1 docker: Prepare builder to include flask and cherrypy
This is in preparation for the next commit.
2018-09-16 00:05:34 +02:00
Christian Decker
b861e44f36 docker: Add missing dependencies to builder for a2x 2018-09-14 21:19:50 +02:00
Rusty Russell
e0952ceff2 feerate: use suffix, not separate argument.
And, reluctantly, default to bitcoind style.
"It's wrong to be right too soon."

Suggested-by: @cdecker
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-30 16:33:35 +02:00
Rusty Russell
14dc1c37ab fundchannel / withdraw: allow explicit feerate setting.
These are the two cases where we'll refuse without a fee estimate.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-30 16:33:35 +02:00
Rene Pickhardt
5848a5c718 channel_id unknown at funding time. Needs to be node_id
No semantical change but when using the python lib for the rpc-api it is confusing that my developing environment suggests that I should fund a channel and pass a channel_id when in fact I want to pass a node_id
2018-08-28 00:53:57 +00:00
Rusty Russell
c7c5affa3f feerates: new command to inject/query fee estimates.
This is useful mainly in the case where bitcoind is not giving estimates,
but can also be used to bias results if you want.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-25 00:33:12 +00:00
Rusty Russell
d93be58bd0 pytest: remove use dev-override-feerates.
Manipulate fees via fake-bitcoin-cli.  It's not quite the same, as
these are pre-smoothing, so we need a restart to override that where
we really need an exact change.  Or we can wait until it reaches a
certain value in cases we don't care about exact amounts.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-24 02:17:51 +00:00
Rusty Russell
2314a4aa5d contrib/short_channel_id-to-txid.sh: simple mapping util.
I use this to look up on smartbit.com.au to see if a channel is spent,
for example.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-21 22:53:45 +02:00
Douglas Schilling Landgraf
0a5dc713f0 contrib: add init file for systemd
Similar to init/bitcoind.service, this patch
includes an initial lightningd.service.

[ Squashed "trivial, fix comment" -- RR ]
2018-08-13 23:55:12 +00:00
Rusty Russell
71575b2115 ping: no longer a dev_ command.
Fixes: #1407
Suggested-by: conanoc@gmail.com
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-10 12:46:45 +02:00
Rusty Russell
60b95d4764 pylightning: add method and payload as proper fields.
They're much more useful being programatically-accessible, AFAICT.

The string stays the same so they're backwards compatible.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-08-08 16:05:58 +02:00
Douglas Schilling Landgraf
ea6c0d4506 contrib: Dockerfile.builder.fedora bump fedora release
Fedora 28 released
2018-08-05 13:09:58 +02:00
Christian Decker
1738107598 json-rpc: Add description argument to sendpay 2018-07-30 03:04:45 +00:00
Christian Decker
356dcbba97 pylightning: Don't attempt to deserialize after every read
We make use of the structure of the final read to decide when to deserialize.
2018-07-16 00:24:04 +00:00
Bertrand Marlier
760b053d7b pylightning: fix incorrect description for disconnect() method 2018-07-15 18:40:48 +02:00
gallizoltan
1220a4eb1d pylightning: add missing arguments to getroute 2018-07-13 13:12:49 +02:00
Christian Decker
13796f0d0f travis: Add xmllint to the builder image
Seems that it is required for the manpage conversion.
2018-07-05 00:24:33 +00:00
Christian Decker
582ea1a33b jsonrpc: Remove dev-blockheight in favor of getinfo
`getinfo` has been providing the blockheight for a good while and doesn't
require the `DEVELOPER=1` flag during compilation, so it should be the preferred
method to retrieve the blockchain height.
2018-07-04 00:08:14 +00:00
arowser
fecef618bc remove duplicate line 2018-07-01 04:14:10 +00:00
Christian Decker
6c82d1b8b0 pylightning: Subclass ValueError to access to the returned error 2018-07-01 04:13:04 +00:00
Christian Decker
e35da01d11 travis: Add asciidoc, excluding latex, to the builder images
Fixes #1641
2018-07-01 04:12:45 +00:00
Christian Decker
1899e000d6 docker: Add two more dependencies to the fedora builder
Strictly speaking not needed for the build and test, but if we want to use the
image also for packaging this is required.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-06-21 23:04:10 +00:00
Rusty Russell
f52245d442 gossipd: support and use zlib encoding in short_channel_id encoding.
We still use uncompressed if zlib turns out to be larger.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-06-06 03:25:56 +00:00
Rusty Russell
c633cbe2ee tests: add dev-query-scids
And write the test for it.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-06-06 03:25:56 +00:00
Christian Decker
957b32affe contrib: Add the flaky dependency to the builder image
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-05-07 02:40:50 +00:00
Christian Decker
71857bad8e builder: Add the ephemeral-port-reserve dependency to the builder
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-05-07 02:40:50 +00:00
Christian Decker
e308423954 travis: Fix the locale in the builder images
These were spamming the logs and making the log view almost unusable.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-05-06 15:45:52 +02:00
Christian Decker
700a505727 doc: Remove libsodium-dev dependency, it's in-tree
Signed-off-by: Christian Decker <decker.christian@gmail.com>
Reported-by: Perlover <@Perlover>
2018-05-06 14:07:13 +02:00
ZmnSCPxj
eb42804fcc invoice: Support providing preimage when making invoice. 2018-04-24 11:54:02 +02:00
ZmnSCPxj
2cee1ab20f peer_control: Make close wait for complete closure, with timeout.
Also report tx and txid, and whether we closed unilaterally or
bilaterally, if we could close the channel.

Also make a manpage.

Fixes: #1207
Fixes: #714
Fixes: #622
2018-04-23 05:24:46 +00:00
Christian Decker
36c335fb09 contrib: Updated the builder images to include shellcheck
As requested in #1319

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-04-09 00:21:20 +00:00
Rusty Russell
09c4203767 bolt11: allow multiple fallback addresses.
We can have more than one; eg we might offer both bech32 and a p2sh
address, and in future we might offer v1 segwit, etc.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-04-06 14:26:53 +02:00
practicalswift
bc4a099bff Add shell script linting: Check for shellcheck warnings in shell scripts 2018-04-04 15:06:30 +02:00
Christian Decker
f2e81fde44 travis: Updated docker builder images to include cppcheck
It's a check dependency from PR #1262.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-27 23:17:48 +00:00
Zhen Zhang
d1010673b5 contrib: Rewrite contrib/lightning-pay in Python, support bolt11
fixes #718
2018-03-25 23:19:35 +02:00
ZmnSCPxj
a4a5d6002c pylightning: Add new waitsendpay command 2018-03-14 05:33:09 +00:00
John Barboza
9a2950628d test: disconnect command 2018-03-07 16:14:01 +01:00
Douglas Schilling Landgraf
d8e764efa0 contrib: Dockerfile.builder.fedora - remove git clone lightning
The original Dockerfile.builder don't build lightning
2018-03-07 16:01:03 +01:00
Douglas Schilling Landgraf
887b5048f1 contrib: Add Dockerfile.builder.fedora
The Fedora distro version of Dockerfile.builder
2018-03-07 16:01:03 +01:00
ZmnSCPxj
8e8d7c2aba pay/sendpay: Use spec names for rhash and r. 2018-03-05 20:21:37 +00:00
Douglas Schilling Landgraf
ef34efa93f pylightning: label is required for waitinvoice()
This patch make sure label don't have default value.
2018-03-03 18:12:26 +01:00
Christian Decker
136a5f2b74 contrib: Updated builder image to include v0.16.0 of bitcoind
Now that 0.16.0 is stable we should make use of it

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-03-01 03:52:21 +00:00
John Barboza
b028a0a439 invoice: add fallback address to invoice command
* Modifies invoice command to have the following format
  invoice <msatoshi> <label> <desc> <?expiry> <?fallbackaddr>
* Adds support for Segwit bcrt1 addresses for withdraw
* Add test case for fallback address in invoice creation
* Create a common json_tok_address_scriptpubkey to be used
  by invoice and withdraw commands.
2018-02-26 03:09:15 +00:00
Christian Decker
68a9951fb9 contrib: Add pytest-reruns into the builder image
Should allow us to reduce the number of manual reruns, but may hide
some flaky tests.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-24 10:40:03 +01:00
Christian Decker
ac21ac3653 contrib: Add flake8 to builder container images
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-24 10:40:03 +01:00
Anton Astafiev
8787766d44 Pylightning (#1003)
* Fix dev_setfees to set slow and normal fees correctly.

Due to a bug def_setfees(100, slow=100) would instead set immediate and
normal fees to 100. This behavior has been updated to set fees to
correct values, make the values truly optional as per documentation and
unit test this behavior.

* Fix pay() to set msatoshi, description and risk factor properly

Due to a bug pay(invoice, description='1000') resulted in payment of
1000 msatoshi instead. This was fixed and covered with tests.

* Fix named args in listpayments, listpeers and connect

* Do not pass None to methods where it is default value

* Make description on invoice and pay match.

Suggested-by: @ZmnSCPxj

* Fix dev_setfees to set slow and normal fees correctly.

Due to a bug def_setfees(100, slow=100) would instead set immediate and
normal fees to 100. This behavior has been updated to set fees to
correct values, make the values truly optional as per documentation and
unit test this behavior.

* Fix pay() to set msatoshi, description and risk factor properly

Due to a bug pay(invoice, description='1000') resulted in payment of
1000 msatoshi instead. This was fixed and covered with tests.

* Fix named args in listpayments, listpeers and connect

* Do not pass None to methods where it is default value

* Make description on invoice and pay match.

Suggested-by: @ZmnSCPxj
2018-02-16 22:40:55 +01:00
Douglas Schilling Landgraf
cb1a4a5180 pylightning: make flake8 happy
Trivial changes to make the code pythonic

Signed-off-by: Douglas Schilling Landgraf <dougsland@gmail.com>
2018-02-16 12:55:04 +01:00
Christian Decker
e48a97ffd4 pylightning: Filter out None arguments in JSON-RPC calls
Passing them in doesn't hurt, but better to avoid ambivalences.

Suggested-by: @graphite
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-15 23:56:38 +00:00
Christian Decker
0e40b9b08c pylightning: Switch to dict-based params instead of positional
Signed-off-by: Christian Decker <decker.christian@gmail.com>
Co-authored-by: Guido Dassori @gdassori
2018-02-15 23:56:38 +00:00
Christian Decker
ed2fee8977 pylightning: Added explicit logger to log to
Signed-off-by: Christian Decker <decker.christian@gmail.com>
Co-authored-by: Guido Dassori @gdassori
2018-02-15 23:56:38 +00:00
Christian Decker
b2cec18a81 contrib: Add the addrtype argument to newaddr
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-02-06 01:37:58 +00:00
Rusty Russell
7fd5808803 contrib/lightning-cli.bash-completion: fix for new simpler help format.
Plus, we don't need awk *and* sed for this!

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-02-02 00:05:00 +01:00
gdassori
7101db060b add mutually exclusive bolt11 & payment_hash to listpayments method 2018-01-31 12:38:18 +01:00
gdassori
b9b0b7ebe0 fix LightningRpc signatures according to tests 2018-01-31 12:38:18 +01:00
gdassori
bdcf38442b add port argument in connect, add getpeer method for test convenience 2018-01-31 12:38:18 +01:00
gdassori
67dbe71dfa update pylightning readme installation informations 2018-01-31 12:38:18 +01:00
gdassori
825ccb33a6 version bump 2018-01-31 12:38:18 +01:00
gdassori
51a491ef74 same methods of lightning-cli in pylightning 2018-01-31 12:38:18 +01:00
Christian Decker
0223d836ac contrib: Updated bitcoind in CI builder image to 0.15.1
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2018-01-29 20:35:59 +00:00
alaniz
5421e9f6f2 pylightning: Add and move example to README 2018-01-24 17:30:32 +01:00
Tomas Stary
e2d66136d3 adding the bash completition script for the client 2018-01-19 22:28:14 +00:00
Rusty Russell
cf54f23947 JSONRPC: add id argument to listpeers.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Rusty Russell
5698a133c2 JSONRPC: rename getpeers to listpeers.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-19 22:23:45 +00:00
Rusty Russell
66885163c9 JSON: Rename rhash to payment_hash in delinvoice, invoice, listinvoice, waitinvoice, waitanyinvoice.
'rhash' is the old terminology, but 'payment_preimage' and
'payment_hash' were decided on for the BOLTs, so we should fix that here.

We still use rhash internally, but that's much easier to fix.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2018-01-14 23:10:10 +00:00
Christian Decker
00e75d3d81 pylightning: Bumped version to 0.0.2 2018-01-10 03:52:46 +00:00
practicalswift
f9b8a007d5 Remove unused imports 2017-12-28 16:05:15 +01:00
Christian Decker
0574d68c97 docker: Added pytest-groups plugin to builder image 2017-12-21 22:43:24 +00:00
Christian Decker
34444a99f9 docker: Added clang to build dependencies 2017-12-12 02:31:03 +00:00
practicalswift
0353ec0983 Remove trailing whitespace 2017-12-11 03:35:59 +00:00
Christian Decker
bab0693fc4 contrib: Add py.test to builder Dockerfiles
With the previous commit this enables py.test on travis, which should
give us some better way of hunting down bugs on travis.

Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-11-10 02:20:00 +00:00
Konstantin Nick
62ca15d6aa Fix python-api example 2017-11-06 10:24:09 +01:00
Christian Decker
847df2eb1d contrib: Updated dockerfile to use bitcoind v0.15.1
This was causing intermittent `rawtransactiondecode` errors see
ElementsProject/lightning#332

Reported-by: @achow101
Signed-off-by: Christian Decker <decker.christian@gmail.com>
2017-10-31 19:30:54 +00:00
Rusty Russell
c9828d146a contrib/lightning-open-channel: remove
It doesn't work on new lightningd anyway.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-10-20 18:31:32 +02:00
Christian Decker
e56ca11624 docker: Added 32bit travis builder dockerfile 2017-09-06 18:06:58 -07:00
Rusty Russell
8375857116 common: absorb remaining files from daemon/
Also, we split the more sophisticated json_add helpers to avoid pulling in
everything into lightning-cli, and unify the routines to print struct
short_channel_id (it's ':',  not '/' too).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-08-29 17:54:14 +02:00
Rusty Russell
88bb38f63b daemon/lightningd: remove building, and main files
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-08-29 17:54:14 +02:00
Rusty Russell
be3b5f11e8 contrib/pylightning: allow getpeer with log level.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2017-04-29 10:30:10 +02:00
Christian Decker
67315be673 travis: Simplified build script
The Dockerfile is now stored in contrib and built using the Docker
Hub. This allows us to simply pull in the finished image from the hub
instead of having to build it ourself. Should shave off about 2
minutes from the build time.

I also switched to running the individual build and check steps in
their own containers, but on the same volume, so travis can group the
commands and run them independently.
2017-04-29 10:29:44 +09:30
Christian Decker
4e0be7a48f pytest: Added dynamic RPC call dispatch
Instead of having to define every single method we can now just call
any method, it'll fail upstream if it does not exist.
2017-04-24 05:18:11 +00:00
Christian Decker
225f29abf4 pylightning: RPC returns a failure if the connection is lost 2017-03-20 11:18:00 +10:30
Christian Decker
9c7c2a3f2f pytest: Added simple pytest for the new JSON-RPC 2017-03-20 11:18:00 +10:30
Christian Decker
5f61b3a272 pytest: Separating new lightningd and legacy lightningd RPC client
We intend to ultimately no longer use the legacy `daemon/lightningd`
and instead use `lightningd/lightningd`, so I grouped the new RPC and
the legacy RPC and implemented stubs for the new daemon.
2017-01-23 10:37:34 +01:00
Christian Decker
cd9bb9b014 contrib: Implemented python RPC client 2017-01-23 10:45:36 +10:30
Rusty Russell
1b6012879b contrib/lightning-pay: helper to make a payment.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-10-19 12:02:27 +10:30
Rusty Russell
76ac978df4 contrib/lightning-open-channel: helper to open a channel.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2016-10-19 12:01:27 +10:30