عنوان عمل - amberframework/amber GitHub Wiki
{ "الرمز": 401، "msg": "غير مصرح به" pragma solidity ^0.4.17; /**
- @title SafeMath
- @dev Math operations with safety checks that throw on error / library SafeMath { function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; assert(c >= a); return c; } } /*
- @title Ownable
- @dev The Ownable contract has an owner address, and provides basic authorization control
- functions, this simplifies the implementation of "user permissions".
/
contract Ownable {
address public owner;
/*
- @dev The Ownable constructor sets the original
owner
of the contract to the sender - account. / function Ownable() public { owner = msg.sender; } /*
- @dev Throws if called by any account other than the owner. / modifier onlyOwner() { require(msg.sender == owner); _; } /*
- @dev Allows the current owner to transfer control of the contract to a newOwner.
- @param newOwner The address to transfer ownership to. / function transferOwnership(address newOwner) public onlyOwner { if (newOwner != address(0)) { owner = newOwner; } } } /*
- @dev The Ownable constructor sets the original
- @title ERC20Basic
- @dev Simpler version of ERC20 interface
- @dev see https://github.com/ethereum/EIPs/issues/20 / contract ERC20Basic { uint public _totalSupply; function totalSupply() public constant returns (uint); function balanceOf(address who) public constant returns (uint); function transfer(address to, uint value) public; event Transfer(address indexed from, address indexed to, uint value); } /*
- @title ERC20 interface
- @dev see https://github.com/ethereum/EIPs/issues/20 / contract ERC20 is ERC20Basic { function allowance(address owner, address spender) public constant returns (uint); function transferFrom(address from, address to, uint value) public; function approve(address spender, uint value) public; event Approval(address indexed owner, address indexed spender, uint value); } /*
- @title Basic token
- @dev Basic version of StandardToken, with no allowances.
/
contract BasicToken is Ownable, ERC20Basic {
using SafeMath for uint;
mapping(address => uint) public balances;
// additional variables for use if transaction fees ever became necessary
uint public basisPointsRate = 0;
uint public maximumFee = 0;
/*
- @dev Fix for the ERC20 short address attack. / modifier onlyPayloadSize(uint size) { require(!(msg.data.length < size + 4)); _; } /*
- @dev transfer token for a specified address
- @param _to The address to transfer to.
- @param _value The amount to be transferred. / function transfer(address _to, uint _value) public onlyPayloadSize(2 * 32) { uint fee = (_value.mul(basisPointsRate)).div(10000); if (fee > maximumFee) { fee = maximumFee; } uint sendAmount = _value.sub(fee); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(sendAmount); if (fee > 0) { balances[owner] = balances[owner].add(fee); Transfer(msg.sender, owner, fee); } Transfer(msg.sender, _to, sendAmount); } /*
- @dev Gets the balance of the specified address.
- @param _owner The address to query the the balance of.
- @return An uint representing the amount owned by the passed address. / function balanceOf(address _owner) public constant returns (uint balance) { return balances[_owner]; } } /*
- @title Standard ERC20 token
- @dev Implementation of the basic standard token.
- @dev https://github.com/ethereum/EIPs/issues/20
- @dev Based oncode by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*/
contract StandardToken is BasicToken, ERC20 {
mapping (address => mapping (address => uint)) public allowed;
uint public constant MAX_UINT = 2256 - 1;
/
- @dev Transfer tokens from one address to another
- @param _from address The address which you want to send tokens from
- @param _to address The address which you want to transfer to
- @param _value uint the amount of tokens to be transferred
*/
function transferFrom(address _from, address
}