Ethereum Contract

Smart Contract

Smart Contract

  • Class Object Instance
  • Not pure function formally
  • Asymmetric Cryptography Signature
  • State Machine

Truffle Suite

  • Framework for building smart contract
  • Interactive console
  • Script migration and deployment
  • Package management

Tested Smart Contract Templates

Access Control

Crowdsales

Tokens

Ownable

Roles

Token Emission

Validation

ERC20 - Amount

ERC721 - Each ID

Create a ERC20 Contract

npm i -g truffle

truffle install zeppelin
pragma solidity ^0.4.23;

import "zeppelin/contracts/token/StandardToken.sol";

contract RytassCoin is StandardToken {
  string public name = "RytassCoin";
  string public symbol = "RYC";

  uint public decimals = 8;
  uint public INITIAL_SUPPLY = 100000000;

  function RytassCoin() public {
    totalSupply = INITIAL_SUPPLY;

    balances[msg.sender] = INITIAL_SUPPLY;
  }
}
pragma solidity ^0.4.11;

contract StandardToken is ERC20, BasicToken {

  mapping (address => mapping (address => uint256)) allowed;

  function transferFrom(address _from, address _to, uint256 _value) public returns (bool)

  function approve(address _spender, uint256 _value) public returns (bool)

  function allowance(address _owner, address _spender) public constant returns (uint256 remaining)

  function increaseApproval (address _spender, uint _addedValue) returns (bool success) 

  function decreaseApproval (address _spender, uint _subtractedValue) returns (bool success) 
}

contract ERC20 is ERC20Basic {
  function allowance(address owner, address spender) public constant returns (uint256);
  function transferFrom(address from, address to, uint256 value) public returns (bool);
  function approve(address spender, uint256 value) public returns (bool);
  event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract ERC20Basic {
  uint256 public totalSupply;
  function balanceOf(address who) public constant returns (uint256);
  function transfer(address to, uint256 value) public returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
}

StandardToken.sol

const RytassCoin = artifacts.require('./RytassCoin.sol');

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

Deployment

truffle develop

> compile

> migrate

Ropsten

Ethereum Smart Contract

By Chia Yu Pai

Ethereum Smart Contract

  • 422