mirror of
https://github.com/haveno-dex/haveno-ts.git
synced 2024-10-01 01:35:42 -04:00
TypeScript library for using Haveno
bin | ||
config | ||
docs | ||
public | ||
src | ||
.gitignore | ||
.project | ||
haveno-ui-poc.png | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
README.md | ||
tsconfig.json |
Haveno UI Proof of Concept
A proof of concept to fetch and render data from Haveno's daemon in ReactJS.
This application is a lightly modified create-react-app with typescript using envoy proxy and grpc-web to use Haveno's gRPC API.
Run in a Browser
- Run a local Haveno test network, running Alice as a daemon with
make alice-daemon
. git clone https://github.com/haveno-dex/haveno-ui-poc
- Start envoy with the config in ./config/envoy.yaml
Example:docker run --rm -it -v ~/git/haveno-ui-poc/config/envoy.yaml:/envoy.yaml -p 8080:8080 envoyproxy/envoy-dev:8a2143613d43d17d1eb35a24b4a4a4c432215606 -c /envoy.yaml
npm install
npm start
to open http://localhost:3000 in a browser- Confirm that the Haveno daemon version is displayed (1.6.2)
Run Tests
Running the top-level API tests is a great way to develop and test Haveno end-to-end.
HavenoDaemon
provides the interface to the Haveno daemon's gRPC API.
- Run a local Haveno test network, running Alice and Bob as daemons with
make alice-daemon
andmake bob-daemon
. git clone https://github.com/haveno-dex/haveno-ui-poc
- Start envoy with the test config in ./config/envoy.test.yaml.
Example:docker run --rm -it -v ~/git/haveno-ui-poc/config/envoy.test.yaml:/envoy.test.yaml -p 8080:8080 -p 8081:8081 envoyproxy/envoy-dev:8a2143613d43d17d1eb35a24b4a4a4c432215606 -c /envoy.test.yaml
npm install
- Start and fund an instance of monero-wallet-rpc at port 38084. This wallet will be used to fund the test instances of Alice and Bob.
For example:cd ~/git/haveno/.localnet/ && ./monero-wallet-rpc --daemon-address http://localhost:38081 --daemon-login superuser:abctesting123 --stagenet --rpc-bind-port 38084 --rpc-login rpc_user:abc123 --wallet-dir ./ --rpc-access-control-origins http://localhost:8080
- Modify test config as needed in HavenoDaemon.test.tsx.
The tests need to know the port of Alice's wallet, which is printed to Alice's console. Currently the port needs to be manually copied to the test configuration. npm test
to run all tests ornpm run test -- -t 'my test'
to run tests by name.
How to Update the Protobuf Client
If the protobuf definitions in haveno-dex/haveno are updated, the typescript imports must be regenerated:
- Copy grpc.proto and pb.proto from Haveno's protobuf definitions to ./config.
- Install protobuf for your system, e.g. on mac:
brew install protobuf
./bin/build_protobuf.sh