Vermilliest

TestContract

Dec 7th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. pragma solidity ^0.4.19;
  2.  
  3. contract F4CTest {
  4.  
  5.     uint constant TOKEN_PRICE = 50000000000000000; // 0.05 eth
  6.  
  7.     mapping (address => uint) balances;
  8.     address owner;
  9.  
  10.     function F4CTest( ) public {
  11.         owner = msg.sender;
  12.     }
  13.  
  14.     function getOwnerAddress( ) constant public returns (address) {
  15.         return owner;
  16.     }
  17.  
  18.     function getTokenPrice( ) pure public returns (uint) {
  19.         return TOKEN_PRICE;
  20.     }
  21.  
  22.     function getBalanceOf(address adr) constant public returns (uint) {
  23.         return balances[adr];
  24.     }
  25.  
  26.     function getBalance( ) constant public returns (uint) {
  27.         return balances[msg.sender];
  28.     }
  29.  
  30.     function buyTokens(uint count) payable public {
  31.         uint cost = count * TOKEN_PRICE;
  32.         require(cost <= msg.value);
  33.         balances[msg.sender] += count;
  34.         uint surrender = msg.value - cost;
  35.         if (surrender > 0) {
  36.             msg.sender.transfer(surrender);
  37.         }
  38.     }
  39.  
  40.     function buyTokens( ) payable public returns (uint boughtTokensCount) {
  41.         uint purchasedTokensCount = msg.value / TOKEN_PRICE;
  42.         buyTokens(purchasedTokensCount);
  43.         return purchasedTokensCount;
  44.     }
  45.  
  46.     function sellTokens(uint count) public {
  47.         msg.sender.transfer(count * TOKEN_PRICE);
  48.         balances[msg.sender] -= count;
  49.     }
  50.  
  51.     function sellTokens( ) public returns (uint soldTokensCount) {
  52.         uint count = balances[msg.sender];
  53.         sellTokens(count);
  54.         return count;
  55.     }
  56.  
  57.     function destroy( ) public {
  58.         require(owner == msg.sender);
  59.         selfdestruct(owner);
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment