94eeab8ad0
- added the contract terms on WgInfoBankPeerPush and WgInfoBankPeerPull, so we can show summary and expiration in the ui - added info: PeerInfoShort on Transaction* type - definition of completed p2p tx: - push debit: Amounts.cmp(sentAmount, pickedUpAmount) === 0. is this transfer already picked up? (not working) - pull debit: pi.paid, is this invoice already paid? - pull credit: wsr.timestampFinish, has someone already paid my invoice? - push credit: wsr.timestampFinish, have I already picked up this? - changed the txId of peer pull debit to have the incomingId instead of pursePub (allow deletion) |
||
---|---|---|
.vscode | ||
build-system | ||
contrib | ||
debian | ||
packages | ||
vendor@38acabfa60 | ||
.dir-locals.el | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
.prettierrc | ||
AUTHORS | ||
bootstrap | ||
CHANGELOG.md | ||
COPYING | ||
INSTALL | ||
package.json | ||
pnpm-lock.yaml | ||
pnpm-workspace.yaml | ||
README | ||
tsconfig.build.json |
# GNU Taler Wallet & Anastasis Web UI This repository contains the implementation of a wallet for GNU Taler written in TypeScript and Anastasis Web UI ## 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 ``` ### Compiling from Git If you are compiling the code from git, you have to run `./bootstrap` before running `./configure`. ### 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 directory ``` packages/taler-wallet-webextension/extension/ ``` ### Reviewing WebExtension UI examples The WebExtension can be tested using example stories. To run a live server use the 'dev-view' target ```shell make webextension-dev-view ``` Stories are defined with a \*.stories.tsx file [1], you are free to create new or edit some and commit them in order to create a more complete set of examples. [1] look for them at packages/taler-wallet-webextension/src/\*_/_.stories.tsx ### WebExtension UI Components Every group of component have a directory and a README. Testing component is based in two main category: - UI testing - State transition testing For UI testing, every story example will be taken as a unit test. For State testing, every stateful component should have an `useStateComponent` function that will be tested in a \*.test.ts file. ### Testing WebExtension After building the WebExtension look for the folder `extension` Inside you will find v2 and v3 version referring to the manifest version being used. Firefox users: - Go to about:addons - Then `debug addon` (or about:debugging#/runtime/this-firefox) - Then `Load temporary addon...` - Select the `taler-wallet-webextension-*.zip` Chrome users: - Settings -> More tools -> Extensions (or go to chrome://extensions/) - `Load unpacked` button in the upper left - Selected the `unpacked` folder in v2 or v3 # 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 '*' ``` ## Anastasis Web UI ## Building for deploy To build the Anastasis SPA run: ```shell make anastasis-webui ``` It will run the test suite and put everything into the dist folder under the project root (packages/anastasis-webui). You can run the SPA directly using the file:// protocol. ```shell firefox packages/anastasis-webui/dist/ui.html ``` Additionally you can create a zip file with the content to upload into a web server: ```shell make anastasis-webui-dist ``` It creates the zip file named `anastasis-webui.zip`