Here is a sample article explaining how to send transactions from a metamask wallet using a node.js back -end with the metamask API:
Metamask transaction by sending with back of back -end and node.js
In this article, we will address how to create a simple API in the back -e of your Node.js application, which allows you to send transactions from the metamask wallet to other wallets.
Prerequisites:
- Install node.js and metamask on your machine.
- Configure a local development environment for PHP (for example, laravel or express).
- Create an account with metamask to test the API.
Project structure:
`Bash
Metamask-API/
App.php
settings/
Database.php
public/
Controllers/
index.php
Services/
transactionservice.php
routes/
API.PHP
supplier/
Autoad.php
`
APP.JS (Php Back -End)
file
`php
Use illuminated \ support \ facades \ dB;
// connect to the database
$ connection = db :: connect (‘mysql’, [
‘host’ => ‘localhost’,
‘User’ => ‘Your_username’,
‘Password’ => ‘your_password’,
);
// Define a new transaction service
TransactiService Class {
Public Function Createtransaction ($ data) {
// Validate input data
if (! Isset ($ data [‘to’]) ||! ISSET ($ data [‘values’])) {
Return false;
}
to try {
// Execute the transaction
$ result = db :: INSERT (‘Transactions’, [
‘user_id’ => auth ()-> id (),
‘Wallet_id’ => auth ()-> id (),
‘value’ => floatval ($ data [‘value’]),
‘tx_hash’ => hash (‘sha256’, uniqid ()) // generate an exclusive TX_HASH for the transaction
);
if ($ result) {
Return True;
} other {
launch a new exception (‘transaction failure’);
}
} catch (exception $ e) {
Return false;
}
}
}
// Create a new instance of transactionservice
$ transactionservice = new transactionservice ();
// Define a function to send metamask portfolio transactions
Sendtransaction function ($ for, $ value) {
$ data = [
‘to’ => $ for,
‘value’ => $ value
];
if (! $ transactionservice-> creaturensaction ($ data)) {
Return false;
}
// Returns True to indicate successful transaction
Return True;
}
`
Index.php (Controller file)
`php
Use illuminated \ http \ Request;
// Deal with requests for entry of the metamask portfolio
$ to = Request :: Input (‘to’);
$ Value = Request :: Input (‘Value’);
if (! Isset ($ to)) {
Return of Return ()-> JSON ([‘Error’ => ‘Invalid to address’]);
}
if (! Isset ($ value)) {
Return of Return ()-> JSON ([‘ERROR’ => ‘INVALID VALUE’]);
}
// Send the transaction using the Sendtransaction function
$ Answer = Sendtransaction ($ to, $ value);
Return response ()-> json ($ answer);
`
API.PHP (route file)
`php
Use illuminated \ http \ Request;
Use app \ http \ controllers \ transactionService;
// Define a new route to send transactions
Route :: Post (‘/Sendtransaction’, [
‘Name’ => ‘Sendtransaction’,
‘USA’ => Function (Request $ Request) {
Return Transactionservice :: Sendtransaction ($ Request-> Input (‘for’), $ Request-> Input (‘Value’));
},
‘Methods’ => [‘post’]
);
`
Explanation:
- In the
app.php
file, we set a new transaction service using the Laravel IOC container (eloquent orm).
- The
creaturensaction method 'validates the input data and executes the transaction in the database.
- In thesendtransaction function, we recovered the address of the metamask portfolio and the value of the request parameters. Then we call the “CreatTransaction” method of our transaction service to send the transaction.
- Finally, in the Route file
/API/Sendtransaction
, we set a new route to send transactions using the Route Builder da Laravel.
Leave a Reply