@deficonnect/web3-connector
v2.0.3
Published
deficonnect web3-connector for Crypto.com DeFi Wallet Extension
Downloads
1,288
Readme
DeFiConnect
Installation
use npm package manager
npm install "@deficonnect/web3-connector"
use script tag
<script type="module" src="https://unpkg.com/@deficonnect/web3-connector/dist/index.umd.js"></script>
the global variable is: DeFiWeb3Connector
constructor
const connector = new DeFiWeb3Connector({
supportedChainIds: [1],
appName: 'your app name',
chainType: 'eth', // only support 'eth' for DeFiWeb3Connector
chainId: '25', // for eth is 1
rpcUrls: {
1: 'https://mainnet.infura.io/v3/INFURA_API_KEY',
25: 'https://evm-cronos.crypto.org/',
},
})
if you want to support cosmos like chain, please use: @deficonnect/provider directly
Usage
connect wallet
if you use
web3-react
, it is easy to integrate:DeFiWeb3Connector
has implementAbstractConnector
fromweb3-react
import { DeFiWeb3Connector } from '@deficonnect/web3-connector'
const connector = new DeFiWeb3Connector({
supportedChainIds: [1],
appName: 'your app name',
chainType: 'eth', // only support 'eth' for DeFiWeb3Connector
chainId: '25', // for eth is 1
rpcUrls: {
1: 'https://mainnet.infura.io/v3/INFURA_API_KEY',
25: 'https://evm-cronos.crypto.org/',
},
})
connector.activate()
methods for DeFiWeb3Connector
// connect to the Wallet
await connector.activate()
// disconnect the Wallet
await connector.deactivate()
events for Provider (EIP-1193)
// Subscribe to accounts change
provider.on('accountsChanged', (accounts: string[]) => {
console.log(accounts)
})
// Subscribe to chainId change
provider.on('chainChanged', (chainId: number) => {
console.log(chainId)
})
// Subscribe to session connection
provider.on('connect', () => {
console.log('connect')
})
// Subscribe to session disconnection
provider.on('disconnect', (code: number, reason: string) => {
console.log(code, reason)
})
methods for Provider
interface RequestArguments {
method: string;
params?: unknown[] | object;
}
// Send JSON RPC requests
const result = await provider.request(payload: RequestArguments);
// Close provider session
await provider.disconnect()
methods for Web3
// Get Accounts
const accounts = await web3.eth.getAccounts()
// Get Chain Id
const chainId = await web3.eth.chainId()
// Get Network Id
const networkId = await web3.eth.net.getId()
// Send Transaction
const txHash = await web3.eth.sendTransaction(tx)
// Sign Transaction
const signedTx = await web3.eth.signTransaction(tx)
// Sign Message
const signedMessage = await web3.eth.sign(msg)
// Sign Typed Data
const signedTypedData = await web3.eth.signTypedData(msg)
release package step
- change the package.json version, and create PR to master.
- approved release on CI control
- create a new tag on Github