Requesting Information from the Ethereum Provider

Published by Mario Oettler on

Last Updated on 8. October 2024 by Mario Oettler

Again, we need our server file that delivers the website using Express.

You can find the code here:

var express = require("express");
var path    = require("path");
var app     = express();

app.listen(3000);
console.log("Listening to Port 3000");
app.get('/', function(req, res){
    res.sendFile(path.join(__dirname, './','providerAPI_browser01.html')); //Adjust path according to your project
});

The provider API works as follows:

ethereum.request({
	method: 'METHOD NAME,
	params})
.then(function(result){

})
.catch(function(error) => {
});

The name of the RPC method and its parameters are submitted.

Parameters are typically provided as array.

[‘value 1’, ‘value 2’]

or as an object

[{
param1: 'value 1',
param2: 'value 2',
param3: 'value3'
}]

The function returns a promise which is caught with then().

If an error occurs, we can catch it with catch().

You can find the code sample here:

<!DOCTYPE html>
<html>
    <head>
        <script src='web3.min.js'>
            
        </script>
        <script>
            window.addEventListener("load", (event)=>{
                if(window.ethereum){
                    ethereum.request({method: 'eth_requestAccounts'}).then(function(accounts){
                        console.log(accounts);
                        document.getElementById("accounts").innerHTML = accounts;

                        // Or by using our conveniance library web3.js
                        window.web3 = new Web3(window.ethereum);
                        web3.eth.getBlockNumber().then(function(blknr){
                            console.log(blknr);
                            document.getElementById("blockNumber_Web3").innerHTML = blknr;
                        })
                    })
                }else{
                    return false
                }
            })
        </script>
    </head>

    <body>
        <h1>My First DApp</h1>
        <div>Accounts </div>
        <div id = "accounts"></div>
        <div>Blocknumber by web3.js: </div>
        <div id = "blockNumber_Web3"></div>
    </body>
</html>

Don’t forget to change the file name in our JavaScript file.

Categories:

https://blockchain-academy.hs-mittweida.de/wp-content/uploads/2021/04/logo_bcam_rgb_gross.png

Welcome

Blockchain Academy

Continue with credential

No account yet?

Powered by Hidy

Register with Hidy


Register
Sign in

We need the following credential to register:

please select:

To create a new account, we need the following data from you:

We would appreciate the following additional information from you for the creation of your account:

Welcome

Blockchain Academy

Continue with credential

Already have an account?

Powered by Hidy

Sign in with Hidy


Register
Sign in

We need the following credential to log in:

please select: