0xWeb
- Contract package manager and CLI Web3 Toolkit
Generate TypeScript classes for contracts fetched from Etherscan and Co.
We use 📦 dequanto library 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 autogenerated TypeScript classes for much safer and faster backend implementation
import { ChainlinkOracleEth } from './0xweb/eth/chainlink/oracle-eth/oracle-eth';
import { Config } from '@dequanto/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
❗❣️❗ 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
$ web3 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 to create cryptographically strong secrets 🔑 for 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.