Проблема в том, что в таких браузерах, как Edge и Firefox, появляется ошибка, сообщающая, что функция не определена (неопределена), но в Chrome все в порядке и работает, тогда как иногда в Chrome одна из функций возвращает неопределенную ошибку.
Код: Выделить всё
window.getAccount = async function () {
try {
if (provider === null) {
return { "Success": false, "Address": null, "Message": "Metamask not detected" };
}
else {
const accounts = await provider.request({ method: "eth_requestAccounts" });
console.log("connected accounts = ", accounts);
if (accounts.length !== 0 || accounts !== undefined) {
return { "Success": true, "Message": null, "Address": accounts[0].toString() };
}
else
return "new error";
}
} catch (err) {
if (err.code === 4001) {
/* console.log("Please connect to MetaMask.");*/
return { "Success": false, "Address": null, "Message": "Allow to connect to Metamask" }; // Return a message indicating to connect to MetaMask
} else {
console.error(err);
console.log(err);
//throw err; // Re-throw the error
return { "Success": false, "Address": null, "Message": err.toString() };
}
}
}
и вторая функция
< div class="snippet">
Код: Выделить всё
window.getChainId = async function () {
return chainId.toString();
}
Я вызываю эти функции в C#, например -
Код: Выделить всё
ConnectWallet connectResponse = await JsRuntime.InvokeAsync("getAccount");
Код: Выделить всё
string chainId = await JsRuntime.InvokeAsync("getChainId");
Подробнее здесь: https://stackoverflow.com/questions/783 ... ot-defined