Ethereum: Receive money in regtest mode
Ethereum: Receiving Funds in Regression Testing Mode (Regtest)
If you are developing your application that interacts with the Bitcoin server to retrieve transaction details by transaction ID, you should definitely consider using Ethereum for additional functionality. One such use case is receiving funds via a regtest mode, which allows you to test and validate your application without revealing your mainnet wallet. Here is an article on how to receive funds in regtest mode on the Ethereum network.
What is Regression Testing Mode (Regtest)?
Regression Testing Mode (Regtest) simulates a transaction with the same transaction ID as the one used to create it on the mainnet, but without actually sending or receiving funds. This allows you to verify that your code behaves correctly and does not introduce any errors that might appear after deployment.
Setting up Ethereum for Regtest mode
Before you proceed, make sure you have Node.js, Geth (the Go Ethereum client), and Truffle Suite installed on your machine.

Prerequisites
- Install the required packages:
– npm install @truffle/core or yarn add truffle-core
– npm install @truffle/compile or yarn add compile
- Create a new project using
npx truffle init
- Configure your mainnet and regtest networks in the
.envfile.
Configuring your Ethereum network
You need to update your network configuration in config/contract.json. Make sure you have the following configuration:
{
"network": {
"mainnet": true,
"regtest": false,
"rpc": "
"eth1": {
"rpc": "
},
}
}
Replace YOUR_PROJECT_ID with your actual Infura project ID.
Creating a contract to receive funds
Create a new file called src/contract/Recipient.sol. Here is an example contract:
pragma solidity ^0.8.0;
import "
import "
recipient contract {
with SafeERC20 for (ERC20.IERC20);
ERC20 public payable;
constructor(address_payable) {
payable = ERC20(_payable);
}
function receive() public payable returns (bool) {
return true;
}
}
Testing the contract with Regtest
To test your contract without actually sending or receiving funds, you can use a combination of commands:
- Start the Get node:
go run --node=127.0.0.1:8545 ./src/contract/Recipient --regtest
- Compile and deploy your smart contract to the Ethereum network.
- Use Truffle’s
compilecommand to compile and update the contract in your local Regtest environment.
Example:
npx truffle compile
truffle migrate --network=regtest
Receiving Funds in Regtest Mode
Once you have successfully deployed and updated your smart contract, you can test receiving funds in Regtest mode. Here’s how:
- Start the Geth node with the
--regtestflag:
go run --node=127.0.0.1:8545 ./src/contract/Recipient --regtest
- Create a new transaction that calls your contract and sends funds:
“`solidity
pragma solidity ^0.8.0;
import “
import “
recipient contract {
using SafeERC20 for (ERC20.IERC20);
ERC20 public payable;
constructor (address_payable) {
payable = ERC20(_payable);
}
Function receive() public payable returns (bool) {
return true;
}
}
Pragma Solidity ^0.8.0;
import “

Leave a Reply
Want to join the discussion?Feel free to contribute!