# blockchain

A template project for getting started working on the Ethereum blockchain.
This project comes with basic packages for compiling and deploying Solidity contracts with Truffle.

Run `cp example.secrets.json secrets.json` and fill out the copied `secrets.json` with your information.

From this directory, run `npm install` to install required packages.

From there, we can create any contracts and deploy to development or public networks...
### Development Deploy

```
npx truffle develop
truffle(develop)> migrate

Compiling your contracts...
===========================
> Compiling ./contracts/Migrations.sol
> Artifacts written to /home/kapper/Code/klips/blockchain/eth/truffle-solidity/build/contracts
> Compiled successfully using:
   - solc: 0.8.0+commit.c7dfd78e.Emscripten.clang



Starting migrations...
======================
> Network name:    'develop'
> Network id:      5777
> Block gas limit: 6721975 (0x6691b7)


1_initial_migration.js
======================

   Deploying 'Migrations'
   ----------------------
   > transaction hash:    0xa82aeb7e6e3839f06321edc4b41fdb92e70f87b9a989f846fd465623deda4139
   > Blocks: 0            Seconds: 0
   > contract address:    0xD79FAf957cC8d3d6c7f8fc10875D8aF75e4eE9F1
   > block number:        1
   > block timestamp:     1620058221
   > account:             0xcFE4341F1DFEbdff039642e1A26032755F38ADA5
   > balance:             99.995114
   > gas used:            244300 (0x3ba4c)
   > gas price:           20 gwei
   > value sent:          0 ETH
   > total cost:          0.004886 ETH


   > Saving migration to chain.
   > Saving artifacts
   -------------------------------------
   > Total cost:            0.004886 ETH


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


- Blocks: 0            Seconds: 0
- Saving migration to chain.

truffle(develop)> .exit
```

### Public Network Deploy

To deploy, you need ETH on a wallet connected to ropsten. Metamask is the wallet I use.
I explain how to configure metamask on ropsten on [Knoats - Solidity](https://knoats.com/books/c/page/solidity)

Give yourself test Ethereum with the [Ropsten ETH Faucet](https://faucet.ropsten.be)

To deploy to ropsten test network, and verify using `truffle-verify-plugin` -

```asm
npx truffle migrate --network ropsten
npx truffle run verify Migrations --network ropsten
```

For a guide on how I configured this project, see [Knoats - Solidity](https://knoats.com/books/c/page/solidity)

An example ERC20 token can be found at [shaunrd0/karma](https://gitlab.com/shaunrd0/karma)
