```
@external
@view
def helloWorld() -> String[24]:
return "Hello World!"
```
```
@internal
@pure
def hello() -> String[24]:
return "Hello World!!!"
@external
@view
def get_hello() -> String[24]:
return self.hello()
```
```python!
NAME: constant(String[32]) = "YOUR NAME"
SYMBOL: constant(String[5]) = "YOUR NAME"
DECIMALS: constant(uint256) = 0
INIT_SUPPLY: constant(uint256) = 1024
name: public(String[32])
symbol: public(String[5])
decimals: public(uint256)
totalSupply: public(uint256)
@deploy
def __init__():
self.totalSupply = INIT_SUPPLY
self.name = NAME
self.symbol = SYMBOL
self.decimals = DECIMALS
self.founder = msg.sender
self.balances[self.founder] = INIT_SUPPLY
@external
@view
def get_totalSupply() -> uint256:
return self.totalSupply
balances: HashMap[address, uint256]
@view
@external
def balanceOf(_owner: address) -> uint256:
return self.balances[_owner]
founder: public(address)
@internal
def _transferCoins(_src: address, _dst: address, _amount: uint256):
assert _src != empty(address), "YOUR NAME::_transferCoins: cannot transfer from the zero address"
assert _dst != empty(address), "YOUR NAME::_transfersCoins: cannot transfer to the zero address"
self.balances[_src] -= _amount
self.balances[_dst] += _amount
event Transfer:
sender: indexed(address)
receiver: indexed(address)
amount: uint256
@external
def transfer(_to: address, _value: uint256) -> bool:
assert self.balances[msg.sender] >= _value, "YOUR NAME::transfer: Not enough coins"
self._transferCoins(msg.sender, _to, _value)
log Transfer(msg.sender, _to, _value)
return True
event Approval:
owner: indexed(address)
spender: indexed(address)
value: uint256
allowances: HashMap[address, HashMap[address, uint256]]
@external
def approve(_spender: address, _value: uint256) -> bool:
self.allowances[msg.sender][_spender] = _value
log Approval(msg.sender, _spender, _value)
return True
@view
@external
def allowance(_owner: address, _spender: address) -> uint256:
return self.allowances[_owner][_spender]
@external
def transferFrom(_from: address, _to: address, _value: uint256) -> bool:
allowance: uint256 = self.allowances[_from][msg.sender]
assert self.balances[_from] >= _value and allowance >= _value
self._transferCoins(_from, _to, _value)
self.allowances[_from][msg.sender] -= _value
log Transfer(_from, _to, _value)
return True
```