什么是小狐钱包? 小狐钱包是一款新兴的电子支付工具,近年来在国内逐渐获得了较高的认知度和使用频率。它类似...
如果你在玩区块链游戏、交易NFT,或是投资加密货币,那么MetaMask一定不会陌生。说白了,MetaMask就是个钱包,能帮助我们安全地存储和管理以太坊及其代币。不过,它还有一个超级厉害的功能,就是可以通过JavaScript接口让我们的网页或应用直接与区块链交互。
第一步当然是安装MetaMask了。我记得第一次装MetaMask的时候,心里有点忐忑。大伙都说这玩意儿安全又方便,但总有点担心搞错。其实安装很简单,你只需要去Chrome应用商店或者直接去MetaMask的官网,按照指引一步一步来就行了。
装上之后,记得多注意一些安全事项,比如把助记词妥善保存,不要随便泄露给别人。那可是你钱包的钥匙啊!
装好MetaMask后,接下来的目标就是使用它的JS接口。简单来说,MetaMask的JS接口提供了一整套方法,方便我们与以太坊区块链来个接触。我们常用的就是`window.ethereum`这个对象,它就是和MetaMask沟通的桥梁。
不过在使用之前,得确保用户的MetaMask已经连接并且准备好了。你可以通过`ethereum.enable()`或者`ethereum.request({ method: 'eth_requestAccounts' })`来请求用户授权。上面的代码就像是在敲门,“嘿,我想和你的钱包打个招呼,可以吗?”
一旦用户同意连接,你就能获取到他们的以太坊地址。就拿这段代码来说:
async function connectWallet() {
if (typeof window.ethereum !== 'undefined') {
await window.ethereum.request({ method: 'eth_requestAccounts' });
const accounts = await window.ethereum.request({ method: 'eth_accounts' });
console.log('用户的地址是:', accounts[0]);
} else {
console.log('请安装MetaMask!');
}
}
只要一调用这个函数,用户的以太坊地址就躺在你的控制台里了。是不是感觉很方便?
获取到用户的地址后,很多小伙伴就可能开始想了:“我能不能用这个地址发个小红包呢?” 当然可以!这就是用MetaMask发送交易的魅力所在。代码简单明了:
async function sendEther() {
const transactionParameters = {
to: '接收地址',
from: '你的地址',
value: '0x量(单位是wei)',
gas: '0x5208', // gas limit: 21000
};
const txHash = await window.ethereum.request({
method: 'eth_sendTransaction',
params: [transactionParameters],
});
console.log('交易哈希:', txHash);
}
这里需要注意的是,价值是以wei为单位,1 ETH = 10^18 wei。发完之后,你可以用交易哈希在以太坊区块链上查询交易状态。
一旦你发出了交易,总想知道它有没有成功吧?可以通过一些Web3库来实现,比如使用`ethers.js`这类库。监听交易状态就像等快递,能让你随时掌握动态。
比如这样:
const provider = new ethers.providers.Web3Provider(window.ethereum);
const transactionReceipt = await provider.getTransactionReceipt(txHash);
if (transactionReceipt