3.0.0 • Published 2 years ago

web3-wallets v3.0.0

Weekly downloads
-
License
-
Repository
-
Last release
2 years ago

web3-wallets

Adapt to web3 wallet, unified interface.

Example: https://web3w.github.io/web3-wallets

                                    wallets          blockchains


                               ╭───[MetaMask]────────[EVM-blockchains]
                               │
                               ├───[WalletConnect]───[EVM-blockchains]
[your dapp]───[web3-wallets]───|
                               ├───[Coinbase]─────────[EVM-blockchains]
                               │
                               ├───[Coin98]─────[EVM-blockchains]
                               |
                               ╰───[Other]----[Other] #Todo

Used WalletNames

An adapted wallet

'metamask','wallet_connect','coinbase','imtoken','math_wallet','token_pocket','bitkeep','onekey'

Web3Js

const wallet = new Web3Wallets({name: 'metamask'})
const web3 = new Web3(wallet)
const sign = await web3.eth.personal.sign("hello web3", wallet.address)

Ethers

const wallet = new Web3Wallets({name: 'metamask'})
const provider = new ethers.providers.Web3Provider(wallet)
const signer = provider.getSigner()
const sign = await signer.signMessage("hello web3")

Connect

const accounts = await wallet.connect() // same enable()
const res = await wallet.request({"method": "eth_blockNumber", "params": []})

Detect Wallets

const wallets = detectWallets()
const walletList = Object.values(wallets)

Get Provider

export interface WalletInfo {
    chainId: number
    address: string
    privateKeys?: string[]
    rpcUrl?: RpcInfo
    port?: number
    cacheExpiration?: number
    bridge?: string
    offsetGasLimitRatio?: number
    isSetGasPrice?: boolean
}

const {address, chainId, rpcUrl, walletSigner, walletProvider} = getProvider(walletInfo)

Signature

signMessage

signTypeData

const DOMAIN_DEFAULT = {
    name: 'ZeroEx',
    chainId: 1,
    verifyingContract: '0x0000000000000000000000000000000000000000',
    version: '1.0.0',
};
const zeroHash = getEIP712DomainHash(DOMAIN_DEFAULT)
const zero = "0xc92fa40dbe33b59738624b1b4ec40b30ff52e4da223f68018a7e0667ffc0e798"
console.assert(zeroHash == zero)

function getEIP712StructHash(typedData

.
primaryType, EIP_712_ORDER_TYPE, typedData.message
)

function getEIP712Hash(typeData: EIP712TypedData): string

ecSignMessage

ecSignHash

hexUtils

Chain Info

//
function getChainInfo(chinaId: number): ChainConfig

//
async function getChainRpcUrl(chinaId: number, best?: true): Promise<string>

RPC

    const response = await fetchJson(url, {timeout: 10000, proxyUrl: 'http://127.0.0.1:7890'})
if (response.ok) {
    console.log(await response.json())
} else {
    console.log(response)
}
3.0.0

2 years ago

2.4.1

3 years ago

2.4.0

3 years ago

2.3.21

3 years ago

2.3.17

3 years ago

2.3.13

3 years ago

2.3.12

3 years ago

2.3.15

3 years ago

2.3.11

3 years ago

2.0.3

3 years ago

2.0.2

3 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.7

3 years ago

2.0.6

3 years ago

2.0.9

3 years ago

2.0.8

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.1.9

3 years ago

2.1.16

3 years ago

2.1.17

3 years ago

2.1.14

3 years ago

2.1.15

3 years ago

2.1.12

3 years ago

2.1.13

3 years ago

2.1.10

3 years ago

2.1.11

3 years ago

2.1.18

3 years ago

2.1.19

3 years ago

2.3.2

3 years ago

2.3.1

3 years ago

2.3.4

3 years ago

2.3.3

3 years ago

2.3.6

3 years ago

2.1.21

3 years ago

2.3.5

3 years ago

2.1.22

3 years ago

2.1.20

3 years ago

2.2.17

3 years ago

2.2.1

3 years ago

2.2.18

3 years ago

2.2.15

3 years ago

2.2.3

3 years ago

1.5.30

3 years ago

2.2.16

3 years ago

2.2.2

3 years ago

2.2.13

3 years ago

2.2.5

3 years ago

2.2.11

3 years ago

2.2.7

3 years ago

2.2.12

3 years ago

2.2.6

3 years ago

2.2.10

3 years ago

2.3.8

3 years ago

2.3.7

3 years ago

2.3.9

3 years ago

2.2.19

3 years ago

2.2.28

3 years ago

2.2.29

3 years ago

2.2.26

3 years ago

2.2.27

3 years ago

2.2.25

3 years ago

2.2.22

3 years ago

2.2.23

3 years ago

2.2.20

3 years ago

2.2.21

3 years ago

2.1.2

3 years ago

2.0.15

3 years ago

2.1.1

3 years ago

2.0.16

3 years ago

2.1.4

3 years ago

2.0.13

3 years ago

2.1.3

3 years ago

2.0.14

3 years ago

2.1.6

3 years ago

2.0.11

3 years ago

2.1.5

3 years ago

2.0.12

3 years ago

2.1.8

3 years ago

1.5.12

3 years ago

2.1.7

3 years ago

2.0.10

3 years ago

1.5.11

3 years ago

2.2.31

3 years ago

1.5.14

3 years ago

1.5.13

3 years ago

1.5.16

3 years ago

2.2.30

3 years ago

1.5.15

3 years ago

1.5.18

3 years ago

1.5.17

3 years ago

2.1.0

3 years ago

1.5.19

3 years ago

2.2.9

3 years ago

2.2.8

3 years ago

2.0.19

3 years ago

2.0.17

3 years ago

2.0.18

3 years ago

2.0.22

3 years ago

1.5.21

3 years ago

2.0.23

3 years ago

1.5.20

3 years ago

1.5.23

3 years ago

2.0.21

3 years ago

1.5.22

3 years ago

1.5.25

3 years ago

1.5.24

3 years ago

1.5.27

3 years ago

2.3.10

3 years ago

1.5.26

3 years ago

1.5.29

3 years ago

1.5.28

3 years ago

1.5.5

3 years ago

1.5.4

3 years ago

1.5.3

3 years ago

1.5.2

3 years ago

1.5.1

3 years ago

1.5.0

3 years ago

1.4.1

3 years ago

1.4.0

3 years ago

1.5.10

3 years ago

1.5.9

3 years ago

1.5.8

3 years ago

1.5.7

3 years ago

1.5.6

3 years ago

1.3.7

3 years ago

1.2.8

3 years ago

1.3.6

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.3.1

3 years ago

1.3.10

3 years ago

1.3.13

3 years ago

1.3.11

3 years ago

1.3.12

3 years ago

1.3.9

3 years ago

1.3.8

3 years ago

1.2.9

3 years ago

1.2.10

3 years ago

1.2.7

3 years ago

1.2.6

3 years ago

1.2.5

3 years ago

1.2.3

3 years ago

1.2.2

3 years ago

1.2.1

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.9

3 years ago

1.1.8

3 years ago

1.1.7

3 years ago

1.1.6

3 years ago

1.1.5

3 years ago

1.1.4

3 years ago

1.1.3

3 years ago

1.1.1

3 years ago