0xweb
- Contract package manager and CLI Web3 Toolkit
Demo: Backend | |
Demo: Storage | |
Demo: Hardhat | |
Demo: Price Loader |
- 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 📦 is used for the wrapped classes
Here the example of generated classes: 0xweb-org/0xweb-sample 🔗
$ 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
Use autogenerated TypeScript classes for much safer and faster backend implementation
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));
READ and WRITE to installed contracts directly from the command line
$ 0xweb contract chainlink/oracle-eth latestAnswer
The package has the built-in web interface to make the blockchain analyze and interaction simpler.
-
If you initialize the Transaction via CMD, you may want to sign the transaction with your browser wallet. For this, 0xweb spins up the HTTP server and redirects your browser to visit local page where the details of the transaction being shown, and you can sign and submit the transaction.
-
Launch local server to view the validated contract in UI interface to interact with.
0xweb server start
❗❣️❗ We include our default KEYs for etherscan/co and infura. They are rate-limited. Please, create and insert your keys. Thank you!
$ 0xweb config --edit
## optionally, you can provide the Nodes Endpoint with `--endpoint` flag
$ 0xweb COMMAND --endpoint https://my-node-url-here
Get the commands overview
$ 0xweb --help
$ 0xweb install --help
- Get current block info
$ 0xweb block get latest
- Get Token Price
$ 0xweb token price WETH
🔐 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
$ 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.