# monero-lw
Monero lightwallet project. Packages the following services in one package:
* `monero-lws` by [vtnerd ](https://github.com/vtnerd/monero-lws ) - scans your wallet's view keys in the background
* `lwsadmin` by [lza_menace ](https://lzahq.tech ) - backend CRUD app for managing the LWS backend
* `monerod` by [The Monero Project ](https://github.com/monero-project/monero ) - node for syncing Monero blockchain transactions
* `mymonero-web` by [MyMonero ](https://mymonero.com ) but forked and cleaned up for personal use by [CryptoGrampy ](https://github.com/CryptoGrampy/mymonero-web-js ) - the web wallet client
## Running
The default compose stack pulls in images which were pre-built for ease of use. See the `development` section to build everything locally.
Otherwise, clone the repo and run: `docker-compose up -d`
- `lwsadmin` will be available at http://127.0.0.1:5000
- `mymonero-web` will be available at http://127.0.0.1:9110
- `monero-lws` will be available at http://127.0.0.1:8080 (rpc) and http://127.0.0.1:8081 (admin)
- `monerod` will be available at :18080 (p2p), :18081 (unrestricted rpc), :18082 (zmq), and :18089 (restricted rpc)
## Development
Built on Ubuntu 22.04
1. Install packages
2. Clone the repo
3. Clone other projects
4. Build container images
5. Run containers
6. Initialize admin - note address and key
```
# 1
sudo apt install docker.io docker-compose python3 python3-venv make
# 2
git clone https://git.cloud.lzahq.tech/nerodev/monero-lw & & cd monero-lw
# 3
git clone --recursive --branch develop https://github.com/vtnerd/monero-lws
git clone https://github.com/lalanza808/docker-monero-node
git clone https://github.com/CryptoGrampy/mymonero-web-js
# 4
docker-compose build # builds images from the nested repos
# 5
docker-compose up -d
# 6
docker exec -ti monero-lws monero-lws-admin create_admin
```
Proceed to setup your user at http://127.0.0.1:5000/setup - use the LWS admin address and key from `# 6` .
Start adding wallets.
### Links
* https://github.com/moneroexamples/openmonero
* https://github.com/vtnerd/monero-lws/tree/feature/no_auth_admin
* https://github.com/vtnerd/monero-lws/blob/feature/no_auth_admin/docs/administration.md
* https://github.com/monero-project/meta/blob/master/api/lightwallet_rest.md
* https://github.com/CryptoGrampy/monero-lws-admin
* https://www.npmjs.com/package/@mymonero/mymonero-wallet-manager/v/3.0.0
* https://github.com/mymonero/mymonero-utils/tree/master/packages/mymonero-lws-client
* https://github.com/mymonero/mymonero-utils/tree/master/packages/mymonero-monero-client
* https://github.com/mymonero/mymonero-utils/tree/master/packages/mymonero-wallet-manager
### Notes
```
accept_requests: {"type": "import"|"create", "addresses":[...]}
add_account: {"address": ..., "key": ...}
list_accounts: {}
list_requests: {}
modify_account_status: {"status": "active"|"hidden"|"inactive", "addresses":[...]}
reject_requests: {"type": "import"|"create", "addresses":[...]}
rescan: {"height":..., "addresses":[...]}
webhook_add: {"type":"tx-confirmation", "address":"...", "url":"...", ...} with optional fields:
token: A string to be returned when the webhook is triggered
payment_id: 16 hex characters representing a unique identifier for a transaction
webhook_delete
```