0xweb
Version:
Contract package manager and other web3 tools
127 lines (81 loc) ⢠4.29 kB
Markdown
## [`0xweb`](https://0xweb.org) - Contract package manager and CLI Web3 Toolkit
<p align='center'>
<img src='images/background.jpg'/>
</p>
----
[](https://0xweb.org)
[](https://docs.0xweb.org)
[](http://badge.fury.io/js/0xweb)
[](https://circleci.com/gh/0xweb-org/0xweb)
| | |
|--|--|
|[Demo: Backend](https://github.com/0xweb-org/examples-backend) | [](https://dl.circleci.com/status-badge/redirect/gh/0xweb-org/examples-backend/tree/master) |
|[Demo: Storage](https://github.com/0xweb-org/examples-storage) | [](https://dl.circleci.com/status-badge/redirect/gh/0xweb-org/examples-storage/tree/master) |
|[Demo: Hardhat](https://github.com/0xweb-org/examples-hardhat) | [](https://dl.circleci.com/status-badge/redirect/gh/0xweb-org/examples-hardhat/tree/master) |
|[Demo: Price Loader](https://github.com/0xweb-org/examples-price) | [](https://dl.circleci.com/status-badge/redirect/gh/0xweb-org/examples-price/tree/master) |
- Generate TypeScript or ES6 classes for contracts fetched from Etherscan and Co.
- CLI commands to query the contracts or to submit transactions
- RESTful API for the installed contracts
- Deploy and track deployed contracts with ease
> [Dequanto library š¦](https://github.com/0xweb-org/dequanto) is used for the wrapped classes
Here the example of generated classes: [0xweb-org/0xweb-sample š](https://github.com/0xweb-org/0xweb-sample)
### Install
```bash
$ npm i 0xweb -g
# Boostrap dequanto library in cwd
$ 0xweb init
# Download sources/ABI and generate TS classes
$ 0xweb install 0x5f4ec3df9cbd43714fe2740f5e3616155c5b8419 --name chainlink/oracle-eth
```
> Use the `--hardhat` flag, if you want to develop|compile|deploy|test contracts: `0xweb init --hardhat`
#### API Usage
> Use autogenerated TypeScript classes for much safer and faster backend implementation
```ts
import { ChainlinkOracleEth } from '0xc/eth/chainlink/oracle-eth/oracle-eth';
import { Config } from 'dequanto/config/Config';
import { $bigint } from 'dequanto/utils/$bigint';
await Config.fetch();
let oracle = new ChainlinkOracleEth();
let decimals = await oracle.decimals();
let price = await oracle.latestAnswer();
console.log(`ETH Price`, $bigint.toEther(price, decimals));
```
### CLI Usage
> **READ** and **WRITE** to installed contracts directly from the command line
```bash
$ 0xweb contract chainlink/oracle-eth latestAnswer
```
## Config
> āā£ļøā We include our default KEYs for etherscan/co and infura. They are rate-limited. Please, create and insert your keys. Thank you!
```bash
$ 0xweb config --edit
## optionally, you can provide the Nodes Endpoint with `--endpoint` flag
$ 0xweb COMMAND --endpoint https://my-node-url-here
```
## [Commands overview š](https://docs.0xweb.org/cli/commands-overview)
## Various Blockchain tools
> Get the commands overview
```bash
$ 0xweb --help
$ 0xweb install --help
```
### `block`
1. Get current block info
```bash
$ 0xweb block get latest
```
### `token`
1. Get Token Price
```bash
$ 0xweb token price WETH
```
### `accounts`
**š Wallet** feature allows to store accounts in encrypted local storage. We use local machine KEY and provided PIN in arguments or environment to create cryptographically strong secrets š for account encryption.
When calling contracts `WRITE` methods, you should first add an account to the wallet, and then use PIN to unlock the storage
```bash
$ 0xweb account add --name foo --key the_private_key --pin foobar
$ 0xweb token transfer USDC --from foo --to 0x123456 --amount 20 --pin foobar
```
š
----
Ā©ļø MIT License.