Skip to content

Latest commit

 

History

History
164 lines (124 loc) · 6.98 KB

README.md

File metadata and controls

164 lines (124 loc) · 6.98 KB

cceb

GitHub license NPM version Twitter

Bash wallet for Ethereum and RadixDLT

What's new

Changes from 1.4.x to 1.5.x

It is possible to connect to web3 pages through walletconnect.

  1. If you chose to use Walletconnect at a web3 site. It will provide a QR code.
  2. Copy the QR code clicking the Copy to clipboard button.
  3. Paste your code like this:
    • cceb eth walletconnect connect "<walletconnect qrcode content>"
  4. Done, you are connected. Use your Ledger, Private Key, or Airsign to sign transactions.
Multiple provider support

cceb can be configured to connect to multiple providers. If there is more than one is defined cceb will query all of them, and the one responding the fastest will be chosen. Providers marked as preferred have priority over others.

Features

  • Support to operate with 150+ exchanges that are supported by CCXT library
  • Support trading on UNISWAP and Kyber
  • Ethereum smart contract interaction
    • MakerDAO supported
    • AAVE supported
    • Curve contracts integrated (All operations manageable via command line.)
  • Ethereum wallets supported:
    • Account with private keys
    • Ledger wallet supported
    • Airsign supported. Keys are stored on an android device, that is shut off from internet, and communicates with cceb through QR codes.
  • Access CCEB remotely using Telegram.
  • Works on Android Termux

Getting started

Prerequisities

You need access to the followings in order to make CCEB work:

  • On exchanges you wish to connect to, generate api keys and secrets.
  • Infura api-key is needed for Ethereum (and Uniswap) interaction.
  • Etherscan api-key is needed to download abi and contract source code for your Ethereum smart contracts.
  • Ethgasstation api-key is needed for gas pricing for Ethereum transactions.
  • Telegram telegram-token is needed if you want to access CCEB from within Telegram. To receive it:
    • Within Telegram send message to BotFather:
      • /start
      • /newbot
      • /<name_ending_with_bot>
      • The reply of BotFather will include telegram-token. Use this token during Installing!

Installing

  1. Install CCEB:
    $ npm i -g cceb

  2. Add api keys:
    $ vim $(npm root -g)/cceb/config/secrets/default.yaml

    • install basic Ethereum interactions
      • edit Infura api key: web3.mainnet.infura.api-key
      • edit Ethgasstation api-key: web3.ethgasstation.api-key
    • install centralized exhchange credentials
      • add exchange name (using list):
       keys:
       	<ecxhange_name>:	
       		apiKey: <your_key>
       		secret: <your_secret>
       		type: 'centralized'
       		enableRateLimit: true
       		timeout: 30000
       	<ecxhange_name_1>:
       		apiKey: ...
       		...
      
    • (optional) enable abi and contract source download
      • (optional) edit Etherscan api-key: web3.etherscan.api-key
    • (optional) add Telegram token: telegram-token
  3. (optional) Configure cceb.
    $ vim $(npm root -g)/cceb/config/default.yaml

    • (optional) Set Ethereum tx speed.web3.txSpeed
      Values fastest: < 30 sec, fast: < 2 min, average: < 5 min, safeLow: < 30 min
    • (optional) Set default account: web3.defaultFrom
    • (optional) Set network: web3.network
  4. Check if all works well

    $ cceb eth tx USDT balanceOf 0x1062a747393198f70f71ec65a582423dba7e5ab3
    Should return a number greater than zero.

    $ cceb exchange listbalances <exchange_name>
    Should return your balances on <exchange_name> you configured in Installing.

Examples

Exchange

Add order on Binance:
$ cceb exchange add binance buy market 1 ETH/USDT 0

Add order on Uniswap:
$ cceb exchange add uniswap buy market 1 ETH/USDT 0

Add order buying the maximum ETH possible on Binance:
$ cceb exchange add binance buy market max ETH/USDT 0

Add order buying the maximum ETH possible on Uniswap:
$ cceb exchange add uniswap buy market max ETH/USDT 0

Add order buying half of the maximum ETH possible on Binance:
$ cceb exchange add binance buy market max/2 ETH/USDT 0

Add order buying half of the maximum ETH possible on Uniswap:
$ cceb exchange add uniswap buy market max/2 ETH/USDT 0

Sell CRV in batches using random batch size between 0 and 1000 CRV with random time varying from 120 to 240 seconds between the creation of sell orders. Create order only if price of CRV is a minimum of 4 on Binance
$ cceb exchange trickle binance sell market 2090.46936856 CRV/USDT 0 -s 0 -v 1000 -t 120 -r 120 -m 4

Emulate limit order on Uniswap, selling 11 MKR at limit price of 2000. Will try to sell once in every 300 seconds, if price is higher than or equal to limit:
$ cceb exchange trickle uniswap sell market 11 MKR/USDT 0 -s 11 -m 2000 -y 300 -t 10 -r 0

Ethereum contract manipulation

Get info on Curve.fi:
$ cceb eth curve info

See how much an ETH is worth on Uniswap.
$ cceb eth tx UNISWAP_ROUTER_V2 getAmountsOut 1.000000000000000000 '["WETH","USDT"]'

Send 1 ETH to 0x0000000000000000000000000000000000000000:
$ cceb eth tx ETH transfer ZERO_ADDRESS 1.000000000000000000

Import token (eg.: BZRX):
$ cceb eth import BZRX 0x56d811088235F11C8920698a204A5010a788f4b3 -l web3.mainnet.token

Once imported you can use its name to substitute for address:
$ cceb eth abi BZRX

Ledger interaction

List ledger addresses:
$ cceb ledger addresses

Documentation

See documentation.

Get detailed help:
$ cceb --help

Authors

  • Robert Horvath - Initial work - Contact

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Disclaimer

This software and all its components come with absolutely no warranty whatsoever. Using this software is absolutely your own risk. Please note that test are missing, but I have been using this software for quite a while, and trying to fix its bugs.

Acknowledgments

  • Thanks for the CCXT team for the great product.
  • Ethereum team did a great work with their api.