Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomholford/hodl
A crypto porfolio app for Urbit
https://github.com/tomholford/hodl
cryptocurrency hoon typescript urbit
Last synced: about 1 month ago
JSON representation
A crypto porfolio app for Urbit
- Host: GitHub
- URL: https://github.com/tomholford/hodl
- Owner: tomholford
- Created: 2022-01-02T20:40:58.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-02-09T21:55:54.000Z (9 months ago)
- Last Synced: 2024-08-03T01:12:51.893Z (4 months ago)
- Topics: cryptocurrency, hoon, typescript, urbit
- Language: TypeScript
- Homepage:
- Size: 4.53 MB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-urbit - hodl
README
# hodl
A simple cryto portfolio app for Urbit.
Enter your transactions in the UI. The data is stored on your ship. [CoinGecko API](https://www.coingecko.com/en/api) is used to pull price data and calculate your net worth.
## Demo
https://user-images.githubusercontent.com/16504501/200311743-ef330af9-12b3-4a3f-ac9c-1faf36e62c17.mp4
## Installation
On your Urbit's home screen, search for:
```
~hodler-datder-sonnet
```Or paste this in your ship's terminal:
```
|install ~hodler-datder-sonnet %hodl
```Or you can manually install using the Development instructions below.
## Usage
1. Click Add a Transaction button (the $)
2. Enter the relevant data in the New Transaction form
3. Submit and view the data in the dashboardIt is also possible to programmatically add Transactions using pokes, see `notes/pokes.txt` for examples.
## Development
0. Install the [bouncer desk sync tool](https://github.com/tloncorp/bouncer) and update the `env` values in `ops/*.yml` to match your system configuration.
1. Clone this repo
2. In `ui/`, run `npm install`
3. Start a fake ship; `~dev` is what's used in the default bouncer config.
4. Run `bin/bounce` to sync the agent desk and install on your fake ship
5. Open http://localhost:3000/apps/hodl/ in your browser
6. Changes in `ui/` will automatically reload the frontend; after making backend changes run `bin/sync`## Deployment
### Make a new glob
1. Boot a new fake ship; in this example, using `~bus`
2. Merge and mount a desk:
```
|merge %work our %base
|mount %work
```
3. Run `npm run build` in `ui/` to build frontend assets
4. Copy built `dist`:
```
rsync -avL --delete ui/dist/ ~/dev/urbit/ships/bus/work/hodl
```
5. Switch dojo working directory:
```
=dir /=garden
```
6. Make glob:
```
-make-glob %work /hodl
```
7. Find the built glob in the mounted ship dir under `.urb/put`, e.g.
```
~/dev/urbit/ships/nus/.urb/put
```
8. scp to file server, update docket with hash and URL### Publish
1. Boot a new fake ship; in this example, using `~nus`
2. Fork an existing desk:
```
|merge %hodl our %webterm
|mount %hodl
```
3. Remove existing files:
```
rm -Rv ~/dev/urbit/ships/nus/hodl/*
```
4. Within Urbit git repo:
```
./symbolic-merge.sh base-dev hodl
./symbolic-merge.sh garden-dev hodl
```
5. Copy linked dev files to mount:
```
cp -rL hodl/* ~/dev/urbit/ships/nus/hodl/
```
6. Copy desk contents to mount:
```
cp -r ./desk/* ~/dev/urbit/ships/nus/hodl
```
7. Commit and install:
```
|commit %hodl
|install our %hodl
```
8. Publish:
```
:treaty|publish %hodl
```## Roadmap
- responsive mobile UI
- connect a wallet to automatically import transactions
- data visualization## Questions or Feedback
DM me on the network at `~datder-sonnet`, or join the app group:
```
~hodler-datder-sonnet/hodl
```