# Smart Contract State
State = Hash(default_value=0)

@construct
def seed(vk: str, amount: int):
    # initial token release
    State[vk] = amount
    

# Extract method users can call
@export
def transfer(amount: int, receiver: str): # apparently you assign data types this way.. nice
    sender = ctx.caller # ctx.caller is the verified person who signed the transaction
    balance = State[sender]
    string = "Transfer amount exceeds available token balance"
    assert balance >= int(amount), string # check out this assert function
    
    State[sender] -= amount
    State[receiver] += amount

46f877cb6fa2b94accd5c16107d1bdac9dd228e2
<mask token>

<mask token>


@export
def transfer(amount: int, receiver: str):
    sender = ctx.caller
    balance = State[sender]
    string = 'Transfer amount exceeds available token balance'
    assert balance >= int(amount), string
    State[sender] -= amount
    State[receiver] += amount

<mask token>


@construct
def seed(vk: str, amount: int):
    State[vk] = amount


@export
def transfer(amount: int, receiver: str):
    sender = ctx.caller
    balance = State[sender]
    string = 'Transfer amount exceeds available token balance'
    assert balance >= int(amount), string
    State[sender] -= amount
    State[receiver] += amount

State = Hash(default_value=0)


@construct
def seed(vk: str, amount: int):
    State[vk] = amount


@export
def transfer(amount: int, receiver: str):
    sender = ctx.caller
    balance = State[sender]
    string = 'Transfer amount exceeds available token balance'
    assert balance >= int(amount), string
    State[sender] -= amount
    State[receiver] += amount

# Smart Contract State
State = Hash(default_value=0)

@construct
def seed(vk: str, amount: int):
    # initial token release
    State[vk] = amount
    

# Extract method users can call
@export
def transfer(amount: int, receiver: str): # apparently you assign data types this way.. nice
    sender = ctx.caller # ctx.caller is the verified person who signed the transaction
    balance = State[sender]
    string = "Transfer amount exceeds available token balance"
    assert balance >= int(amount), string # check out this assert function
    
    State[sender] -= amount
    State[receiver] += amount
