Provably Rare Gem Raritygems API, currently focused on mining.
# 1. Install packages
# !pip install --force-reinstall jsonschema==3.2.0
!python --version
!python -m pip --version
!pip install web3==5.23.0
!pip install raritygems==0.5.0
# 2. Download "raritygems_salt_finder" and give permission to execute
!wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=10K-ZTxj14_BrY_ZxupvOkGXYl2Eo9mEq' -O raritygems_salt_finder
!chmod 755 raritygems_salt_finder
# 3. Run with Python
from raritygems import raritygems
david = raritygems.Miner(
user_address="0xxxxx",
gem_kind=0, # 0 = Turquoise, 1 = Pearl, ...
salt_finder_path="/content/raritygems_salt_finder",
private_key="", # if "" is provided then it will only find a salt then exit
line_token="", # if "" is provided then it will not notify you via LINE
)
david.mine()
note
- If you got "jsonschema" error then click "Runtime > Restart and run all".
- "raritygems_salt_finder" is built by golang code that can be found here https://github.com/jojoee/raritygems/blob/master/main.go
- You can check more about gem kind here
It basically finds a "salt" and sign a transaction for you. The program will do the following
- Get the information that needed for mining:
user_nonce
andgem_difficulty
- Use raritygems_salt_finder to find a salt
- Sign a transaction to claim a gem
- Go back to step 1.
At first, I start with Python and try to optimize it but I realize Go is must faster. So, I write this "raritygems_salt_finder" part with Go language instead, and this is command I used to built it.
# to build "raritygems_salt_finder"
go build -o raritygems_salt_finder main.go
go build -o raritygems_salt_finder-0.5.0 main.go
# to build "raritygems_salt_finder" for Google Colab
GOOS=linux GOARCH=amd64 go build -o raritygems_salt_finder_linux main.go
GOOS=linux GOARCH=amd64 go build -o raritygems_salt_finder_linux-0.5.0 main.go
- mining: auto update
gem_difficulty
- lint: setup linting: flask8
- ci-cd: pypi: publish to pypi
- ci-cd: CI & CD with GitHub Actions
- ci-cd: integrate semantic release
- test: writing automated test
- perf: performance evaluation
- info: display your current balance
- info: display your gems
- info: estimate how many times you can mine (before your have no gas left)
- gas: optimize gas price
- parallel: make it support parallel / multi-threading
- gpu: create GPU support version
- noti: refactor notification message
- noti: add more channels e.g. Facebook Messenger, email
- web3: auto claim gems
- network: support Ethereum chain
- network: support Fantom network
- info: bot nickname
- salt_finder: auto load by default when it is not provided
TODO
conda create --name raritygems python=3.7.11
conda activate raritygems
pip uninstall raritygems -y && pip install .
go run main.go \
-user-nonce=1234 \
-user-address=0x28bc92e7b7e77d348fd262fb8e29da129308fbd3 \
-chain-id=250 \
-gem-difficulty=535996 \
-gem-address=0x342EbF0A5ceC4404CcFF73a40f9c30288Fc72611 \
-gem-entropy=0x000080440000047163a56455ac4bc6b1f1b88efadf17db76e5c52c0ca594fd9b \
-gem-kind=0 \
-salt=41543544848 \
-n=800000 \
-debug=true