Third Year Project
This repository hosts the code that I have used for completing my third year project in Ethical Hacking & Cybersecurity.
Logic for reading the code
The folder "erc20s" holds the code related to my implementation. erc20.sol is the code used to deploy the cryptocurrency "eGBP2" in the dissertation and erc20_002.sol is the code used to deply the cryptocurrency "eGBP3"
The code for eGBP1 is standard OpenZeppelin implementation ( https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol )
There are 4 main files to consider: app.js, app2.js, app3.js, app3_2nd_cycle.js (those were used to find transaction times on dissertation)
and 2 Ethereum connection example files: web3.js and smartcontract.js (those are examples on how to connect to Ethereum API using https://infura.io and not rely on ethers.js library)
Each of the 4 main files start with the smart contracts' addresses and their ABI.
app.js contains the logic to analyze transaction speeds in normal ERC20-s according to openzeppelin implementation
app2.js contains the logic to analyze transaction speeds based on eGBP2 implementation
app3.js contains the logic to analyze the first transaction cycle based on eGBP3 implementation
app3_2nd_cycle.js contains the logic to analyze any other transaction cycles after the first one based on eGBP3 implementation
app.js and app2.js have a comment on line 292 which indicates how I carried transactions using the provider by ethers.js (mix of public infura.io node and etherscan.io). By default those are set to use infura's token access however the link can also be of QuikNode's private blockchain node for faster API access.
app3.js and app3_2nd_cycle.js have the same comments on line 310
The mnemonic parameter in each file is a BIP39 seed phrase which can be generated using: https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
or when installing HD (hierarchical deterministic) cryptocurrency wallets such as https://metamask.io/