DeeLance Network
Visit Our website WhitePaper
  • Introducing DeeLance Blockchain
  • BASIC KNOWLEDGE
    • What is Blockchain
  • welcome to DeeLance
    • Overview
    • About DeeLance
    • Ecosystem
    • ERC20 DLANCE Token
    • Community
  • GETTING STARTED
    • Add DeeLance to Metamask
    • Get Testnet Funds
    • Core Concepts
      • Genesis File
      • Consensus
      • Proof of Stake (Pos)
      • Understanding pBFT
      • Research
      • Scalability
    • Developer Guide
      • RPC
      • DeeLance Testnet
      • Deelance Explorers
      • Deploy Smart Contract
        • Using Remix IDE
        • Using Truffle
        • Using Hardhat
  • Dive Into DeeLance Move!
  • Staking
    • Overview
    • User Guide
  • Validator
    • Overview
    • Run validator
    • Create Validator
    • Secure Validator
  • Node Operators
    • Node Best Practices
    • Node Types
      • Bootnodes
      • Full Node
      • Archive Nodes
Powered by GitBook
On this page
  • Using Truffle
  • What is Truffle ?
  • Configuring the Development Workspace
  • Installing Truffle
  • Create a Project
  • Create Contract
  • Deploying DRC20 Contract on Deelance Network
  1. GETTING STARTED
  2. Developer Guide
  3. Deploy Smart Contract

Using Truffle

Setting up and launching anDRC20 Token Smart Contract on the Deelance Testnet using Truffle.

PreviousUsing Remix IDENextUsing Hardhat

Last updated 1 year ago

Using Truffle

What is Truffle ?

Truffle is a development framework and suite of tools primarily used for building, deploying, and managing smart contracts and decentralized applications (DApps) on blockchain platforms. It provides developers with a set of utilities and commands to streamline the development process and make it easier to work with blockchain technologies.

Configuring the Development Workspace

Before we dive in, ensure you have the following essentials installed: Requirements:

  • Windows, Linux or Mac OS X

Installing Truffle

After we've set up those tools, we just need a single command to get Truffle:

npm install -g truffle

Let's ensure Truffle is correctly installed. Open your terminal and type truffle version. If some error shows up, make sure your computer knows where to find the npm modules.

Create a Project

Our first task is to set up a Truffle project. We'll use TokenDeelance.sol as our guide, demonstrating how to create a token that can be shared between accounts:

  • Create a new directory for your Truffle project

mkdir PepeDeelance
cd PepeDeelance
  • Initialize your project:

truffle init

After completing this step, you'll have a project organized with these folders:

  • contracts/: Directory for Solidity contracts

  • migrations/: Directory for scriptable deployment files

  • test/: Directory for test files for testing your application and contracts

  • truffle-config.js: Truffle configuration file

Create Contract

  • Create a PepeDeelance.sol file within the contracts/: directory.

  • Copy the below code and place it into the PepeDeelance.sol file:

PepeDeelance.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract PepeDeelance is ERC20, Ownable {
    constructor() ERC20("PepeDeelance", "PEPEDLANCE") {
        _mint(msg.sender, 1000000000 * 10 ** decimals());
    }

    function mint(address to, uint256 amount) public onlyOwner {
        _mint(to, amount);
    }
}

  • Create a 1_deploy_contracts.js file within the migrations/: directory and insert the following code:

1_deploy_contracts.js
const PepeDeelance = artifacts.require("PepeDeelance");

module.exports = function (deployer) {
  deployer.deploy(PepeDeelance);
};

  • Next, paste the following code into your truffle-config.js file:

truffle-config.js
const HDWalletProvider = require("@truffle/hdwallet-provider");

module.exports = {
  networks: {
    development: {
      host: "127.0.0.1",
      port: 9545,
      network_id: "*",
    },
    testnet: {
      provider: () =>
        new HDWalletProvider(
          "<YOUR_WALLET_PRIVATE_KEY>",
          `https://testnet-rpc.deelance.com`
        ),
      network_id: 455214,
      confirmations: 10,
      timeoutBlocks: 200,
      skipDryRun: true,
    },
  },

  // Set default mocha options here, use special reporters etc.
  mocha: {
    // timeout: 100000
  },

  // Configure your compilers
  compilers: {
    solc: {
      version: "0.8.0", // A version or constraint - Ex. "^0.5.0"
    },
  },
};

Ensure you replace <YOUR_WALLET_PRIVATE_KEY> with the actual private key of your wallet.

  • Compile Contract

To compile your Truffle project, execute the following command:

truffle compile

Deploying DRC20 Contract on Deelance Network

Execute the given command at the base of the project folder:

truffle migrate --network testnet

The contract will deploy on the Deelance Testnet and will appear in your terminal as follows:

1_deploy_contracts.js
=====================

   Deploying 'PepeDeelance'
   ------------------------
   > transaction hash:    0x42a4fe45d66cdc7648d9a8607f4f8c0044946074c1bf07963cf501bf14a8f493
   > Blocks: 2            Seconds: 8
   > contract address:    0xE6D82514Fe6A796D947b5580Fc26090Dd818412e
   > block number:        37296
   > block timestamp:     1692550864
   > account:             0x2bd250B5e8eEeB4e0E9fC6023f525Ac62b72c0ae
   > balance:             9.984142327455598517
   > gas used:            1491671 (0x16c2d7)
   > gas price:           2.500000007 gwei
   > value sent:          0 ETH
   > total cost:          0.003729177510441697 ETH

   Pausing for 10 confirmations...

   --------------------------------
   > confirmation number: 1 (block: 37297)
   > confirmation number: 2 (block: 37298)
   > confirmation number: 3 (block: 37299)
   > confirmation number: 4 (block: 37300)
   > confirmation number: 5 (block: 37301)
   > confirmation number: 6 (block: 37302)
   > confirmation number: 7 (block: 37303)
   > confirmation number: 8 (block: 37304)
   > confirmation number: 9 (block: 37305)
   > confirmation number: 10 (block: 37306)
   > Saving artifacts
   -------------------------------------
   > Total cost:     0.003729177510441697 ETH

Summary
=======
> Total deployments:   1
> Final cost:          0.003729177510441697 ETH

Keep in mind that your address, transaction_hash, and other details will vary. The information above is simply to give you a sense of the format.

Well done! You've successfully launched the DRC20 Smart Contract on Deelance Network. You can now engage with the Smart Contract.

Ensure you have the package since our Solidity code relies on it. To get it, execute: npm i @openzeppelin/contracts in terminal.

Ensure you've set up , as mentioned in the file. To get this package, type npm i @truffle/hdwallet-provider in your terminal.

Node.js v8.9.4 LTS or later
@openzeppelin/contracts
@truffle/hdwallet-provider