Skip to content

PoC & WIP! 🌈 watch a livestream of nft txs (sales, mints, ...) on the ethereum chain in a terminal 🤓 or the integrated web ui 🖥️

License

Notifications You must be signed in to change notification settings

dakma-dev/gloomberg

Repository files navigation

gloomberg

⚠️ this is a wip poc (also the docs!) so I cant provide any support, sorry! you have to know how to use this code yourself for now ⚠️

random screenshots

image image


requirements

  • websocket endpoint of an own ethereum node (e.g. geth, ...) or at least one to that you can make as many calls as you want. Node providers ( e.g. Infura/Alchemy/whatever) also work, but as we make a lot of calls to the node, you will hit the limits very fast or you will have to pay a lot of money for it.
  • a redis(-stack) instance. you can use the redis docker image for this or install redis on a local machine. it is used as a cache for collection & ENS names. it saves a lot of (limited) calls to a node and is also faster than calls to a node.

lfg! or getting started

# get link to latest linux amd64 binary
GBL=$(curl -L -s -H 'Accept: application/json' https://github.com/benleb/gloomberg/releases/latest | sed -e 's/.*"tag_name":"\([^"]*\)".*/\1/')
# download binary and extract it to /usr/local/bin
wget -qO- https://github.com/benleb/gloomberg/releases/download/${GBL}/gloomberg_${GBL/v/}_linux_amd64.tar.gz | sudo tar -C /usr/local/bin -vzx gloomberg

# run
gloomberg live -e "wss://mainnet.infura.io/ws/v3/32e9..." -w "yourDegenWallet.eth"

docker

docker run --rm -it \
  --env "GLOOMBERG_ENDPOINTS=wss://mainnet.infura.io/ws/v3/32e9..."
  --env "GLOOMBERG_WALLETS=yourDegenWallet.eth"
  ghcr.io/benleb/gloomberg:latest live

gloomberg‽

The name is a homage to the famous gloomberg professional artwork created by OSF

Thanks also to all the other testers and contributors not shown in the git history! 💰 ❌ 💤

development (wip)

see the (development) docs for further information

issues closed, PRs open (ping me if you want to contribute)

helpful command

  • create a new release tag and push it to github
export rel_tag="v0.1.2"; git tag -a ${rel_tag} -m "${rel_tag}" && git push origin ${rel_tag}

pre-commit

we use pre-commit to run some checks before committing. install like described in the docs

see the pre-commit config for the checks. you can also run them manually on your machine with pre-commit run --all-files. for more information see the docs

GitHub actions

we use similar checks to the pre-commit ones in the golangci-lint workflow to also check this on the "server side" and do it for pull requests. you can also run them manually on your machine with golangci-lint run. for more information see the docs

docs

todo

contribute

todo