2020-07-31 03:56:17 +02:00
|
|
|
# Tooling
|
2017-10-02 18:01:21 +02:00
|
|
|
|
2020-07-31 03:56:17 +02:00
|
|
|
This README describe some useful tooling that you may need during development and testing.
|
|
|
|
To learn how to get started with your local development environment, read [our documentation](https://docs.btcpayserver.org/LocalDevelopment/).
|
2020-07-29 12:36:23 +02:00
|
|
|
|
2018-03-17 11:26:30 +01:00
|
|
|
## How to manually test payments
|
|
|
|
|
|
|
|
### Using the test bitcoin-cli
|
2017-10-06 04:07:22 +02:00
|
|
|
|
2020-07-23 09:45:40 +02:00
|
|
|
You can call bitcoin-cli inside the container with `docker exec`.
|
|
|
|
For example, if you want to send `0.23111090` to `mohu16LH66ptoWGEL1GtP6KHTBJYXMWhEf`:
|
|
|
|
|
|
|
|
```sh
|
2018-03-17 11:40:23 +01:00
|
|
|
./docker-bitcoin-cli.sh sendtoaddress "mohu16LH66ptoWGEL1GtP6KHTBJYXMWhEf" 0.23111090
|
2017-10-21 13:20:06 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
If you are using Powershell:
|
2020-07-23 09:45:40 +02:00
|
|
|
|
2019-05-08 05:19:16 +02:00
|
|
|
```powershell
|
2017-10-21 13:20:06 +02:00
|
|
|
.\docker-bitcoin-cli.ps1 sendtoaddress "mohu16LH66ptoWGEL1GtP6KHTBJYXMWhEf" 0.23111090
|
2017-12-19 03:43:52 +01:00
|
|
|
```
|
2018-02-23 07:31:19 +01:00
|
|
|
|
2019-05-08 05:19:16 +02:00
|
|
|
You can also generate blocks:
|
2020-07-23 09:45:40 +02:00
|
|
|
|
2019-05-08 05:19:16 +02:00
|
|
|
```powershell
|
|
|
|
.\docker-bitcoin-generate.ps1 3
|
|
|
|
```
|
|
|
|
|
2021-01-19 04:15:52 +01:00
|
|
|
### Using Polar to test Lightning payments
|
|
|
|
|
2021-01-19 19:02:26 +01:00
|
|
|
- Install and run [Polar](https://lightningpolar.com/). Setup a small network of nodes.
|
|
|
|
- Go to your store's General Settings and enable Lightning.
|
|
|
|
- Build your connection string using the Connect infomation in the Polar app.
|
2021-01-19 04:15:52 +01:00
|
|
|
|
|
|
|
LND Connection string example:
|
|
|
|
type=lnd-rest;server=https://127.0.0.1:8084/;macaroonfilepath="local path to admin.macaroon on your computer, without these quotes";allowinsecure=true
|
|
|
|
|
2021-02-24 17:16:27 +01:00
|
|
|
Now you can create a Lightning invoice on BTCPay Server regtest and make a payment through Polar.
|
2021-01-19 19:02:26 +01:00
|
|
|
|
|
|
|
PLEASE NOTE: You may get an exception break in Visual Studio. You must quickly click "Continue" in VS so the invoice is generated.
|
|
|
|
Or, uncheck the box that says, "Break when this exceptiontype is thrown".
|
|
|
|
|
|
|
|
|
2018-03-17 11:26:30 +01:00
|
|
|
### Using the test litecoin-cli
|
|
|
|
|
2020-07-23 09:45:40 +02:00
|
|
|
Same as bitcoin-cli, but with `.\docker-litecoin-cli.ps1` and `.\docker-litecoin-cli.sh` instead.
|
2018-03-17 11:26:30 +01:00
|
|
|
|
|
|
|
### Using the test lightning-cli
|
|
|
|
|
2018-03-17 11:40:23 +01:00
|
|
|
If you are using Linux:
|
2020-07-23 09:45:40 +02:00
|
|
|
|
|
|
|
```sh
|
2018-03-17 11:40:23 +01:00
|
|
|
./docker-customer-lightning-cli.sh pay lnbcrt100u1pd2e6uspp5ajnadvhazjrz55twd5k6yeg9u87wpw0q2fdr7g960yl5asv5fmnqdq9d3hkccqpxmedyrk0ehw5ueqx5e0r4qrrv74cewddfcvsxaawqz7634cmjj39sqwy5tvhz0hasktkk6t9pqfdh3edmf3z09zst5y7khv3rvxh8ctqqw6mwhh
|
2018-03-17 11:26:30 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
If you are using Powershell:
|
2020-07-23 09:45:40 +02:00
|
|
|
|
|
|
|
```powershell
|
2018-03-17 11:26:30 +01:00
|
|
|
.\docker-customer-lightning-cli.ps1 pay lnbcrt100u1pd2e6uspp5ajnadvhazjrz55twd5k6yeg9u87wpw0q2fdr7g960yl5asv5fmnqdq9d3hkccqpxmedyrk0ehw5ueqx5e0r4qrrv74cewddfcvsxaawqz7634cmjj39sqwy5tvhz0hasktkk6t9pqfdh3edmf3z09zst5y7khv3rvxh8ctqqw6mwhh
|
|
|
|
```
|
|
|
|
|
|
|
|
If you get this message:
|
|
|
|
|
2020-07-23 09:45:40 +02:00
|
|
|
```json
|
2018-03-17 11:26:30 +01:00
|
|
|
{ "code" : 205, "message" : "Could not find a route", "data" : { "getroute_tries" : 1, "sendpay_tries" : 0 } }
|
|
|
|
```
|
|
|
|
|
|
|
|
Please, run the test `CanSetLightningServer`, this will establish a channel between the customer and the merchant, then, retry.
|
2018-02-23 07:31:19 +01:00
|
|
|
|
2020-08-11 14:25:12 +02:00
|
|
|
Alternatively you can run the `./docker-lightning-channel-setup.sh` script to establish the channel connection.
|
|
|
|
The `./docker-lightning-channel-teardown.sh` script closes any existing lightning channels.
|
|
|
|
|
2021-02-15 21:15:38 +01:00
|
|
|
### Alternative Lightning testing: Using Polar to test Lightning payments
|
|
|
|
|
|
|
|
- Install and run [Polar](https://lightningpolar.com/). Setup a small network of nodes.
|
|
|
|
- Go to your store's General Settings and enable Lightning.
|
|
|
|
- Build your connection string using the Connect information in the Polar app.
|
|
|
|
|
|
|
|
LND Connection string example:
|
|
|
|
type=lnd-rest;server=https://127.0.0.1:8084/;macaroonfilepath="local path to admin.macaroon on your computer, without these quotes";allowinsecure=true
|
|
|
|
|
|
|
|
Now you can create a lightning invoice on BTCPay Server regtest and make a payment through Polar.
|
|
|
|
|
|
|
|
PLEASE NOTE: You may get an exception break in Visual Studio. You must quickly click "Continue" in VS so the invoice is generated.
|
|
|
|
Or, uncheck the box that says, "Break when this exception type is thrown".
|
|
|
|
|
2018-02-23 07:31:19 +01:00
|
|
|
## FAQ
|
|
|
|
|
2021-01-25 17:22:58 +01:00
|
|
|
### `docker-compose up dev` failed or tests are not passing, what should I do?
|
2018-02-23 07:31:19 +01:00
|
|
|
|
|
|
|
1. Run `docker-compose down --v` (this will reset your test environment)
|
|
|
|
2. Run `docker-compose pull` (this will ensure you have the lastest images)
|
|
|
|
3. Run again with `docker-compose up dev`
|
|
|
|
|
2021-01-25 17:22:58 +01:00
|
|
|
### How to run the Altcoin environment?
|
2021-01-13 19:26:53 +01:00
|
|
|
|
|
|
|
`docker-compose -f docker-compose.altcoins.yml up dev`
|
|
|
|
|
2018-02-23 07:31:19 +01:00
|
|
|
If you still have issues, try to restart docker.
|
2021-01-25 17:22:58 +01:00
|
|
|
|
|
|
|
### How to run the Selenium test with a browser?
|
|
|
|
|
|
|
|
Run `dotnet user-secrets set RunSeleniumInBrowser true` to run tests in browser.
|
|
|
|
|
|
|
|
To switch back to headless mode (recommended) you can run `dotnet user-secrets remove RunSeleniumInBrowser`.
|
2021-02-12 04:21:29 +01:00
|
|
|
|
|
|
|
### Session not created: This version of ChromeDriver only supports Chrome version 88
|
|
|
|
|
|
|
|
When you run tests for selenium, you may end up with this error.
|
|
|
|
This happen when we update the selenium packages on BTCPay Server while you did not update your chrome version.
|
|
|
|
|
|
|
|
If you want to use a older chrome driver on [this page](https://chromedriver.chromium.org/downloads) then point to it with
|
|
|
|
|
|
|
|
`dotnet user-secrets set ChromeDriverDirectory "path/to/the/driver/directory"`
|