eth-tools.js
Compact set of ES6 tools for Ethereum dapps that work in the browser.
import * as tools from '@adraffy/eth-tools';
Providers
let provider = new WebSocketProvider({url: 'ws://...', });
let provider = new FetchProvider({url: 'https://cloudflare-eth.com', });
let providers = new Providers();
providers.add_static(1, provider)
providers.add_static(137, new FetchProvider({url: 'https://rpc-mainnet.matic.network'}));
determine_window_provider.then(p => {
providers.add_dynamic(p);
}).catch(() => {});
let view = providers.view(1);
await view.get_provider();
await view.find_provider(2);
ENS
import {ens_normalize} from '@adraffy/ens-normalize.js';
let ens = new ENS({provider, ens_normalize});
let ens = new ENS({provider: providers.view(1), ens_normalize});
await ens.resolve('bRAntly.eth');
let name = await ens.resolve('bRAntly.eth');
console.log(name.node);
console.log(name.resolver);
console.log(name.is_input_normalized());
console.log(name.is_equivalent_name('BRANTLY.ETH'));
console.log(await name.get_address());
console.log(await name.get_primary());
console.log(await name.is_owner_primary_name());
console.log(await name.is_input_display());
console.log(await name.get_content());
console.log(await name.get_text('com.twitter'));
console.log(await name.get_addr(['BTC', 'XCH']));
console.log(await name.get_pubkey());
console.log(await ens.is_dot_eth_available('brantly'));
console.log(await ens.get_dot_eth_owner('brantly'));
console.log((await ens.primary_from_address('0x983110309620D911731Ac0932219af06091b6744'));
console.log((await ens.owner('0x983110309620D911731Ac0932219af06091b6744').resolve()).name);
NFT
let nft = new NFT(provider, '0xdc8bed466ee117ebff8ee84896d6acd42170d4bb');
console.log(await nft.get_type());
console.log(await nft.get_token_uri(1));
ABI
let enc = ABIEncoder.method('func(string,bytes32');
enc.string('hello');
enc.number(1234);
enc.number(Uint256.from_number(1234));
enc.addr('0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41');
console.log(enc.build());
console.log(enc.build_hex());
let dec = ABIDecoder.from_hex(enc.build_hex());
dec.read_bytes(4);
console.log(dec.string());
console.log(dec.number());
console.log(dec.uint256());
console.log(dec.addr());
Address and Utils
let a = '0xb8c2c29ee19d8307cb7255e1cd9cbde883a267d5';
let b = checksum_address(a);
console.log(b);
console.log(a.toLowerCase() === b.toLowerCase());
console.log([is_valid_address(a), is_checksum_address(b)]);
console.log([is_checksum_address(a), is_checksum_address(b)]);