# GNU Taler Wallet
This repository contains the implementation of a wallet for GNU Taler written
in TypeScript.
## Dependencies
The following dependencies are required to build the wallet:
* python>=3.8
* nodejs>=12
* jq
* npm
* pnpm
* zip
## Installation
The CLI version of the wallet supports the normal GNU installation process.
```shell
./configure [ --prefix=$PREFIX ] && make install
```
### Building the WebExtension
The WebExtension can be built via the 'webextension' make target:
```shell
./configure && make webextension
```
This will create the zip file with the WebExtension in the location
```
packages/taler-wallet-webextension/taler-wallet-webextension-$VERSION.zip
```
We also provide a `Dockerfile` for a container that can build the WebExtension:
```shell
# Build the image
(host)$ docker build --tag walletbuilder contrib/wallet-docker
# Run container with wallet source mounted
(host)$ docker run -it -v $PWD:wallet-core walletbuilder
# Run build inside container
(container)$ cd wallet-core
(container)$ ./configure && make webextension
```
### Compiling from Git
If you are compiling the code from git, you have to run `./bootstrap` before
running `./configure`.
# Integration Tests
This repository comes with integration tests for GNU Taler. To run them,
install the wallet first. Then use the test runner from the
taler-integrationtests package:
```shell
cd packages/taler-integrationtests/
./testrunner '*'
```
The test runner accepts a bash glob pattern as parameter. Individual tests can
be run by specifying their name.
To check coverage, use nyc from the root of the repository and make sure that the taler-wallet-cli
from the source tree is executed, and not the globally installed one:
```
PATH="$PWD/packages/taler-wallet-cli/bin:$PATH" \
nyc ./packages/taler-integrationtests/testrunner '*'
```