Name: Sahil Prashant Sawant
Roll no. : BE-A41
ID : TU4F2122047
EXPERIMENT- 4
TITLE: Design and develop cryptocurrency
AIM:
Design and develop cryptocurrency.
THEORY:
Smart Contracts:
Smart contracts are programs stored on a blockchain. The term ‘smart contract’ was first
coined by Nick Szabo in 1994. It’s a collection of code (its functions) and data (its state) that
resides at a specific address on the Ethereum blockchain. One of the main features is that they
are immutable once deployed on the blockchain. Solidity and Vyper are the two most active
programming languages used to write smart contracts on the Ethereum blockchain with
Solidity being the top choice for most developers as it is an object-oriented, statically-typed
language and is strongly influenced by more popular OOP languages like JavaScript and C++.
Remix IDE:
Remix IDE is an open-source web and desktop application. It fosters a fast development cycle
and has a rich set of plugins with intuitive GUIs. Remix is used for the entire journey of
contract development as well as act as a playground for learning and teaching Ethereum.
Remix IDE is part of the Remix Project which is a platform for development tools that use a
plugin architecture. It encompasses sub-projects including Remix Plugin Engine, Remix Libs,
and of course Remix-IDE. Remix IDE is a powerful open-source tool that helps you write
Solidity contracts straight from the browser. It is written in JavaScript and supports both usage
in the browser, but run locally and in a desktop version. Remix IDE has modules for testing,
debugging and deploying of smart contracts and much more.
Features
Everything in remix is now a plugin
The homepage is located in a tab in the Main Panel
Clicking on one of the environment buttons loads up a collection of plugins
To see all the plugins, go to the Plugin Manager
Remix IDE stores files in Workspaces which are folders in your browser’s local storage
MetaMask:
MetaMask is a popular cryptocurrency wallet that supports a broad range of Ethereum-based
tokens and non-fungible tokens (NFTs) on supported blockchains. While experienced crypto
investors may appreciate the speed and simplicity of the wallet, new investors may find it
difficult to navigate. In addition, the wallet does not support Bitcoin, making it a turn-off for
investors whose primary investment is Bitcoin.
Pros
Easy setup process
Earn rewards via staking and holding
Supports a broad range of Ethereum-based tokens
Central hub for dApp
Cons
No coin-to-fiat conversion
Absence of 24/7 live customer support
OUTPUT:
Step 1: Open Remix IDE in your browser. After opening click on “+” and create new file
“sachinCoin.sol” and “sachinCoinInterface.sol”
Step 2: Open Github and Copy code from eip20.sol into sachinCoin.sol and eipInterface.sol into
sachinCoinInterface.sol and compile by clicking on the Compile button as shown –
Github link: https://github.com/ConsenSys/Tokens/tree/master/contracts/eip20
sachinCoin.sol
sachinCoinInterface.sol
Compile sachinCoin.sol
Step 3: After compilation open GANACHE on your desktop which you have downloaded from
the link given above. The screen will look like below. Click on QUICKSTART Ethereum–
Step 4: Now you will get 10 default accounts for your blockchain at a local RPC server
HTTP://127.0.0.1:7545 as below-
Step 5: Go back to the browser and move to Deploy section just below the compilation and select
Custom – External Http Provider in place Remix VM as shown below-
Step 6: Enter the server HTTP://127.0.0.1:7545 as Custom – External Http Provider. The
screen will look like below
Step 7: Now your contract is ready to be deployed. Input parameter of sachinCoin which
consist initialAmount, tokenName, decimalUnits and tokenSymbol. Click on the Deploy
button and the deployed contract will look as follows-
Step 8: Expand the deployed contracts drop down and perform all function with initial 10000
Scoins. The owner has 10000 SCoins and can perform approve, transfer, transferForm,
allowance, allowed, balanceOf, balances, decimals, name, symbol, totalsupply all these
functions.
transfer(sender_address, amount)
balanceOf(address)
name()
symbol()
CONCLUSION:
In this Experiment we have learned about cryptocurrency also designed and deployed
cryptocurrency.