Tokens
MetaMask API - 如何檢測令牌是否已註冊?
我想阻止使用者在使用 MetaMask 註冊我的令牌之前進入我的 dapp。
我使用下面的程式碼完成此操作,該程式碼在使用者即將進入 dapp 時執行:
const wasAdded = await ethereum.request({ method: "wallet_watchAsset", params: { type: "ERC20", options: { address: TOKEN_ADDRESS, symbol: TOKEN_SYMBOL, decimals: 18, image: "", }, }, });
如果
wasAdded
返回 false,我會阻止使用者進入 dapp。問題是,此程式碼將始終向使用者顯示註冊令牌的提示,即使它已經註冊。
在觸發此提示之前,是否有任何方法可以檢查令牌是否已註冊?
如果沒有,有什麼替代方案?每次使用者啟動 dapp 時都顯示無意義的提示是不可行的。
沒有辦法檢查是否註冊
相反,您預設為所有使用者使用未註冊的令牌,並且當使用者首次註冊時,您會記錄它們,以便下次不需要向使用者顯示它們。
或者它可以在使用者移除令牌的情況下不顯眼地顯示,並且可以重新註冊。
您可以找到自動令牌檢測(在撰寫本文時進行了實驗)。