下载

arrow_down

开发者服务

arrow_down

更多

arrow_down
activityactivityactivityactivity
  • themelight
  • languageIcon

  • menu
Skip to Content

标准钱包方法

方法参数返回类型描述
enable()Promise连接方法,返回账户信息
isConnected()boolean获取连接状态
addCurrency()Promise添加代币
switchChain(method, data)Promise切换区块链网络
disconnect()Promise断开钱包连接
signPersonalMessage(data)Promise签名个人消息
signTypedMessage(data)Promise签名类型化消息
request(payload, callback)Promise通用 eth 调用方法。payload.method 可以是 eth_signpersonal_signeth_sendTransactioneth_accounts 等。callback 在方法执行后调用

连接Bitget钱包

Provider

const provider = window.bitkeep.ethereum

连接

Preview

用于从用户的以太坊钱包请求账户访问权限

用法

/** * @returns {*} [ address ] 地址列表 / await provider.enable()

试一试

Loading live editor...

连接状态

  • ethereum.isConnected() 检查钱包当前是否连接到 dApp。
  • 如果提供者已连接则返回 true,否则返回 false。

用法

/** * @returns {*} Boolean : 是否连接了钱包 / await provider.isConnected()

试一试

Loading live editor...

试一试

Loading live editor...

管理网络

切换网络

wallet_switchEthereumChain 是以太坊兼容钱包(如 Bitget)提供的方法,允许去中心化应用程序(dApps)请求用户将其钱包切换到不同的区块链网络。

Preview

用法

interface SwitchEthereumChainParams { method: 'wallet_switchEthereumChain' params: { chainId: string // 例如 '0xA4B1' }[] } /* * @param SwitchEthereumChainParams */ await provider.request(switchEthereumChainParams)

添加网络

wallet_addEthereumChain 是以太坊兼容钱包(如 Bitget)使用的方法,允许去中心化应用程序(dApp)以编程方式请求用户向其钱包添加新的区块链网络。

interface AddEthereumChainParams { method: 'wallet_addEthereumChain' params: { chainId: string // 例如 '0xA4B1' }[] } /* * @param AddEthereumChainParams */ await provider.request(addEthereumChainParams)

试一试

Loading live editor...

签名消息

签名任意消息

Chrome
App
Preview
Preview

personal_sign(通常称为 signPersonalMessage)用于使用用户的以太坊私钥签名任意文本消息。

用法

interface PersonalSignMessage { method: string; params: { msgHex: string; // 您要签名的消息,必须转换为十六进制 from: string; // 用户账户地址 }; } /** * @param {*} PersonalSignMessage : * @returns {*} Boolean : 是否连接了钱包 / await provider.signPersonalMessage(message)

试一试

Loading live editor...

签名结构化数据

Chrome
App
Preview
Preview

eth_signTypedData 函数(或特指 eth_signTypedData_v4)用于根据 EIP-712 标准签名结构化数据。此标准允许应用程序为复杂和结构化的数据创建密码学签名,确保签名既人类可读又可验证。

用法

interface EIP712Domain { name: string version: string chainId: number verifyingContract: string } interface Person { name: string wallet: string } interface Mail { from: Person to: Person contents: string } interface TypedDataField { name: string type: string } interface TypedData { types: { EIP712Domain: TypedDataField[] [key: string]: TypedDataField[] } domain: EIP712Domain primaryType: string message: Record<string, any> } interface SignTypedDataV4Param { method: 'eth_signTypedData_v4' params: [string, string] // account 和 JSON.stringify(typedData) } /* * @param signTypedDataV4Param * @returns string : 签名 */ provider.request({ method: 'eth_signTypedData_v4', params: [account, data], })

试一试

Loading live editor...

wallet_watchAsset

EIP-747

EIP-747 标准指定。

参数

  • WatchAssetParams - 要监视的资产的元数据。
interface WatchAssetParams { type: 'ERC20' // 未来将支持其他标准 options: { address: string // 代币合约的地址 symbol: string // 代币符号或简称,最多11个字符 decimals: number // 代币小数位数 image: string // 代币logo的字符串url } }

返回值

boolean - 如果代币被添加则为 True,否则为 false。

描述

请求用户在 Bitget Wallet 中跟踪代币。返回一个布尔值,指示代币是否成功添加。

以太坊钱包支持一组代币,通常来自集中管理的代币注册表。wallet_watchAsset 允许 web3 应用程序开发者在运行时请求用户在其钱包中跟踪代币。一旦添加,代币与通过传统方法(例如集中注册表)添加的代币无法区分。

Provider.request({ method: 'wallet_watchAsset', params: { type: 'ERC20', options: { address: '0xb60e8dd61c5d32be8058bb8eb970870f07233155', symbol: 'FOO', decimals: 18, image: 'https://foo.io/token-image.svg', }, }, }) .then((success) => { if (success) { console.log('FOO 成功添加到钱包!') } else { throw new Error('出现了一些问题。') } }) .catch(console.error)

交易

Chrome
App
Preview
Preview
const transactionParameters = { nonce: '0x00', // 被Bitkeep忽略 gasPrice: '0x09184e72a000', // 用户在Bitkeep确认期间可自定义。 gas: '0x2710', // 用户在Bitkeep确认期间可自定义。 to: '0x0000000000000000000000000000000000000000', // 除合约发布外都需要。 from: Provider.selectedAddress, // 必须匹配用户的活动地址。 value: '0x00', // 只有从发起外部账户向接收方发送以太币时才需要。 data: '0x7f7465737432000000000000000000000000000000000000000000000000000000600057', // 可选,但用于定义智能合约创建和交互。 chainId: '0x3', // 用于防止跨区块链交易重复使用。由Bitkeep自动填充。 } // txHash 是十六进制字符串 // 与任何RPC调用一样,它可能抛出错误 const txHash = await Provider.request({ method: 'eth_sendTransaction', params: [transactionParameters], }) // 如果使用web3 const accounts = await Provider.request({ method: 'eth_requestAccounts' }) const web3 = new Web3(Provider) const result = await web3.eth.sendTransaction({ from: Provider.selectedAddress, to: '0x0000000000000000000000000000000000000000', value: web3.utils.toWei('1', 'ether'), })
Last updated on