``` @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 ```