У меня проблема с возможностями Web 3 и Мета-маской В интерфейсе

#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 для создания проекта в первый раз