FDF互助開發上線版丨FDF互助系統開發詳細技術丨FDF互助系統原始碼模式

xiaofufu發表於2023-03-09

  Smart contract is a computer protocol designed to disseminate,verify or execute contracts in an information-based manner.It's a bit like a technology that everyone makes rules and the machine automatically executes them.Because the data stored and maintained in the network always needs to be executed by someone,and smart contracts can also conduct trusted transactions without a third party,


  and these transactions can be tracked and irreversible.Therefore,smart contracts play a major role in data execution in the syste


  pragma solidity=0.5.16;


  import'./interfaces/IUniswapV2ERC20.sol';


  import'./libraries/SafeMath.sol';


  contract UniswapV2ERC20 is IUniswapV2ERC20{


  using SafeMath for uint;


  string public constant name='Uniswap V2';


  string public constant symbol='UNI-V2';


  uint8 public constant decimals=18;


  uint public totalSupply;


  mapping(address=>uint)public balanceOf;


  mapping(address=>mapping(address=>uint))public allowance;


  bytes32 public DOMAIN_SEPARATOR;


  //keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");


  bytes32 public constant PERMIT_TYPEHASH=0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;


  mapping(address=>uint)public nonces;


  event Approval(address indexed owner,address indexed spender,uint value);


  event Transfer(address indexed from,address indexed to,uint value);


  constructor()public{案例及模式:MrsFu123

  uint chainId;


  assembly{


  chainId:=chainid


  }


  DOMAIN_SEPARATOR=keccak256(


  abi.encode(


  keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),


  keccak256(bytes(name)),


  keccak256(bytes('1')),


  chainId,


  address(this)


  )


  );


  }


  function _mint(address to,uint value)internal{


  totalSupply=totalSupply.add(value);


  balanceOf[to]=balanceOf[to].add(value);


  emit Transfer(address(0),to,value);


  }


  function _burn(address from,uint value)internal{


  balanceOf[from]=balanceOf[from].sub(value);


  totalSupply=totalSupply.sub(value);


  emit Transfer(from,address(0),value);


  }


  function _approve(address owner,address spender,uint value)private{


  allowance[owner][spender]=value;


  emit Approval(owner,spender,value);


  }


  function _transfer(address from,address to,uint value)private{


  balanceOf[from]=balanceOf[from].sub(value);


  balanceOf[to]=balanceOf[to].add(value);


  emit Transfer(from,to,value);


  }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2938863/,如需轉載,請註明出處,否則將追究法律責任。

相關文章