Metamask: How to deploy smart contract using truffle and ropsten with Metamask account
Placement of smart contracts with metam and truffle
In this article, we will look at the smart contract placement process using the Ropsten test network metam and truffle. We will also address the problem you may face in trying to migrate your contract.
Prerequisites
- NODE.JS (LTS or Newest)
- Truffle CLI (
NPM install -g trifele
)
- Metamask safe
Step 1: Create a new project and configure settings
Create a new directory for your project and initialize it with a truffle initit. Add the following configuration to the Metamk.JS file:
JavaScript
Const Metamk = ask (‘Metamk’);
module.exports = {
// Your account name (eg “your_account”)
mnemonic: “yourmnemonicword”,
// network you want to use
Network: {
Ropsten,
},
// Password for your Metamk safe (it will be used as a key to the contract)
Password: “
};
`
Step 2: Create a new smart contract
Create a new file called “Contract.js” and add the following code:
`JavaScript
Const web3 = ask (‘Web3’);
Const Web3Contract = to ask (‘Web3-Ethereum-Contracts’);
class mymartcontract {
Constructor () {
This.Web3 = New Web3 (New Web3.Providers.httpprovider (‘
CONST CONTRACTADDRESS = ‘0xyourcontractaddress’;
CONST CONTRACTABI = {" version ":" 1 "," word ":" Mycontract "," Functions ": [" MyFunction "]}};
This.contracts = New Web3Contract (This.Web3, Contractaddress, Contractabi);
}
myfunction () {
// Call the feature you want to place
Console.log ("Hello from MyFunction!");
}
}
Module.Exports = MyMartContract;
Step 3: Make and place your smart contract
Create a new file named Compile.Js' and add the following code:
JavaScript
Const trifel = required (‘truffle’);
module.exports = {
Compile () {
return a new trifiliolid ();
},
};
`
Step 4: Use truffle to migrate contract from ropsten
Run this team in your terminal:
`bash
NPM Run Compile
`
This will create the compiled version of your smart contract. Then use a truffle to migrate from Ropsten:
`bash
Truffle migration -the network ropsten
`
step 5: update your Metamask account
Update your file “Metamk.js” with the following configuration:
`JavaScript
Const Metamk = ask (‘Metamk’);
Const ropstenaddress = “0xyourropstenaccount”;
Const ropstenpassword = “
module.exports = {
Mnemonic: ropstenpassword,
Network: {
Ropsten: {
Address: Ropstenaddress,
Password: ropstenpassword,
},
},
};
`
Step 6: Place a contract using Metamk
Update your file “Metamk.js” with the following configuration:
`JavaScript
Const Metamk = ask (‘Metamk’);
Const ropstenaddress = “0xyourropstenaccount”;
Const ropstenpassword = “
module.exports = {
Mnemonic: ropstenpassword,
Network: {
Ropsten: {
Address: Ropstenaddress,
Password: ropstenpassword,
},
},
};
`
Error message
When you run a truffle migrate -thew ropsten" you should get a mistake similar to this:
bash
NPM Run Compile
`
This is because the version compiled by your contract does not include metadata that requires truffles for placement.
Solution
To eliminate this problem, you need to update the contract to include the necessary metadata. This can be done by adding the following code to your file “Compile.js”:
`JavaScript
Const Web3Contract = to ask (‘Web3-Ethereum-Contracts’);
class mymartcontract {
Constructor () {
Const Web3 = New Web3 (New Web3.Providers.httpprovider (‘
This.