#javascript #frontend #web3 #contract #metamask
Вопрос:
Я разработал пользовательский интерфейс на веб-странице(в html/java-скрипте) для отображения значений моего смарт-контракта. Когда другие пользователи получают доступ к веб-странице через другие браузеры, они не смогут получать услуги Web 3 из-за отсутствия цифрового кошелька. Потому что они не установили кошелек в своем веб-браузере .Как я могу разместить сервисы и возможности Web 3 на своей веб-странице без необходимости установки кошелька пользователем?
Коды, которые я использовал ранее, показаны ниже :
this.web3 = new Web3(this.provider);
//***********
const web3 = new Web3(new Web3.providers.HttpProvider(ethereumUrl))
//****************
new Web3.providers.HttpProvider('https://ropsten.infura.io/' yourInfuraEndPointKey)
);
//*******************
const web3 = new Web3(provider);
//******
const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'))
и много проверенного кода. Я не могу найти здесь никакого ответа. пожалуйста, один, помоги мне.
и это мой последний код подключения к Web3 :
/*this codes in head of web page ant totali it work*/
/*but i want to work in browser that dont install metamask*/
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js@1.0.0-beta.36/dist/web3.min.js"></script>
<script src="https://cdn.jsdelivr.net/gh/ethereum/web3.js@1.0.0-beta.36/dist/web3.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/web3@latest/dist/web3.min.js"></script>
<script src="https://unpkg.com/web3@latest/dist/web3.min.js"></script>
<script>
if (typeof window.ethereum !== 'undefined')
{
console.log('MetaMask is installed!');
}else{
console.log('MetaMask not installed!');
alert("Please install Metamsk wallet first, then try again");
}
const accounts = ethereum.request({ method: 'eth_requestAccounts' });
const account = accounts[0];
const showAccount = document.querySelector('.showAccount');
var contractH;
const accountsH = ethereum.request({ method: 'eth_requestAccounts' });
const accountH = accountsH[0];
const showAccountH = document.querySelector('.showAccount');
web333 = new Web3(web3.currentProvider);
//window.web333 = new Web3(new Web3.providers.HttpProvider("https://mainnet.infura.io/<APIKEY>"));
var addressH = "0x624/*My Contract Address*/4135E7a";
var abiH =[/*My ABI*/];
contractH = new web333.eth.Contract(abiH, addressH);
/*and the other code*/
</script>
и когда Я запускаю Веб-страницу в другом браузере, я вижу эту ошибку:
и я перед проверкой и тестированием подробно расскажу об этих страницах : информация об этой странице
и все страницы, которые на переполнении стека и других сайтах
Ответ №1:
Я нашел ответы на свои вопросы. Я должен использовать Инфуру :
web3 = new Web3(new Web3.providers.HttpProvider("https://ropsten.infura.io/v3/3c68e/*your ID*/301753"));
и проверьте эту страницу, и это веб-страница infura для создания проекта в первый раз