UltrainGas
ERC20
This contract is an ERC20 token.
Name
UltrainGas
Symbol
UGAS
Decimals
18
Total Supply
1,000,000,000 UGAS
About
link
Ultrain bills itself as a high-performance decentralized blockchain platform. Ultrain aims to construct a sustainable commercial ecosystem that enables industrial applications. The team claims that Ultrain is able to solve the performance and scalability issues in traditional public blockchain platforms by providing a multifold increase in performance.
Founded by former tech leads from Alibaba and Ant Financial Blockchain, Ultrain's core team reportedly includes 40 developers from Alibaba, Ant Financial, Google, and Huawei. The team claims that its proprietary RPOS consensus algorithm, smart contract/developer framework, and customizable privacy solutions(zkp) makes Ultrain a cost-effective solution that offers customization and ease of use.
As of 15 Apr 2019, Ultrain released its main-net and aims to be the top commercial public-chain globally across multiple verticals such as supply chain, media, retail, and healthcare.
Stats
Public Functions
15
Event Types
5
Code Size
10,442 bytes
Events (5) keyboard_arrow_up
Functions
transferOwnership keyboard_arrow_up
totalSupply keyboard_arrow_up
balanceOf keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
allowance keyboard_arrow_up
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
emit Transfer(_from, _to, _value);
return true;
}
approve keyboard_arrow_up
Source Code
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
return true;
}
increaseApproval keyboard_arrow_up
Source Code
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
decreaseApproval keyboard_arrow_up
Source Code
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
constructor keyboard_arrow_up
transfer keyboard_arrow_up
Requirements help
Source Code
function transfer(address _to, uint _value) whenOpen public returns (bool) {
return super.transfer(_to, _value);
}
transferFrom keyboard_arrow_up
Requirements help
Source Code
function transferFrom(address _from, address _to, uint _value) whenOpen public returns (bool) {
return super.transferFrom(_from, _to, _value);
}
register keyboard_arrow_up
Requirements help
Source Code
function register(string key) whenOpen {
assert(bytes(key).length <= 64);
keys[msg.sender] = key;
}