If you would like to queue up multiple requests and have them processed sequentially, you can use our Batch Request. Note that if the user declines one of the requests, rest of the unprocessed requests will be declined as well.
The Fortmatic X modal will pop open once batch.execute() is called and display the number of requests the user will be interacting with.
// Initialize providerimport Fortmatic from'fortmatic';import Web3 from'web3';constfm=newFortmatic('YOUR_API_KEY');window.web3 =newWeb3(fm.getProvider());consttoAddress='0xb159752065EA68Ef0B22249Df25864E624fec45D';constsendValue=web3.toWei(1,'ether'); // Convert 1 ether to wei// Create batchconstbatch=web3.createBatch();// Get user account wallet address firstweb3.eth.getAccounts((error, accounts) => {if (error) throw error;// Construct ether transaction paramsconsttxnParams= { from: accounts[0], to: toAddress, value: sendValue }// Add send transaction to batchbatch.add(web3.eth.sendTransaction.request(txnParams, (error, txnHash) => {if (error) throw error;console.log(txnHash); }));// Add another send transaction to batchbatch.add(web3.eth.sendTransaction.request(txnParams, (error, txnHash) => {if (error) throw error;console.log(txnHash); }));});// Send batch to providerbatch.execute();
You could also include contract call or other web3 actions like below.
Currently supports both Web3 1.2.0+ and 1.0.0-beta versions.
1.0.0-beta.4x is not supported
It is a known issue with .4x versions where a batch request is blocked and cannot be processed. For more details, please click here.
// Initialize providerimport Fortmatic from'fortmatic';import Web3 from'web3';constfm=newFortmatic('YOUR_API_KEY');window.web3 =newWeb3(fm.getProvider());consttoAddress='0xb159752065EA68Ef0B22249Df25864E624fec45D';constsendValue=web3.toWei(1,'ether'); // Convert 1 ether to wei// Create batchconstbatch=newweb3.eth.BatchRequest();// Get user account wallet address firstweb3.eth.getAccounts().then((accounts) => {// Construct ether transaction paramsconsttxnParams= { from: accounts[0], to: toAddress, value: sendValue }// Add send transaction to batchbatch.add(web3.eth.sendTransaction.request(txnParams, (error, txnHash) => {if (error) throw error;console.log(txnHash); }));// Add another send transaction to batchbatch.add(web3.eth.sendTransaction.request(txnParams, (error, txnHash) => {if (error) throw error;console.log(txnHash); }));// Send batch to providerbatch.execute();});
You could also include contract call or other web3 actions like below.