Ethereum dApps Next.js Boiletplate
The project contains samples of Ethereum Smart Contract in Solidity.
Smart Contract Development
The project is bootstrapped with Truffle using truffle init
command.
Steps to run the smart contracts locally:
-
Clone the github repository. This also takes care of installing the necessary dependencies.
git clone git@github.com:limcheekin/eth-solidity-samples.git
-
Install Truffle globally.
npm install -g truffle
-
Run the development console in the eth-solidity-samples directory.
truffle develop
-
Compile and migrate the smart contracts. Note inside the development console we don't preface commands with
truffle
.compile migrate
-
Truffle can run tests written in Solidity or JavaScript against your smart contracts. Note the command varies slightly if you're in or outside of the development console.
// If inside the development console. test // If outside the development console. truffle test
-
Run with MetaMask
As
truffle develop
exposes the blockchain onto port9545
, you'll need to add a Custom RPC network ofhttp://localhost:9545
in your MetaMask to make it work. -
Deploy smart contract to Rinkeby testnet
- Install dependencies in the root directory.
npm i # or yarn
- Create a
.env
file with Infura Project ID and private key of your Rinkeby account, for example:INFURA_PROJECT_ID=b874a2f145f84dc5a8466e5490816789 RINKEBY_PRIVATE_KEY=e0adc9a1b4818153aa47fee3f5160179bbb4f14157a971c133c22e2e35f88c9e
- Run the
truffle migrate --network rinkeby
command to deploy smart contract to Rinkeby network.
- Install dependencies in the root directory.
Continuous Integration
The repository setup Continuous Integration build pipeline with GitHub Actions. Please refer to Continuous Integration Setup for more information.