Transaction Details



Transaction Hash:
e9eaef7a39ac7ce17bc9aae78a3e308e51a3606bc01f1a683a23a4442068e0e3
Transaction Index:
15
From:
0xe1288759446298f250c3bce5616706d25525ba7f
Block Height:
30231706

Transaction Data

{"p": "zentest3", "f": "function_snippet", "a": ["def token_create(info, args):\n    assert args['f'] == 'token_create'\n    sender = info['sender']\n    addr = handle_lookup(sender)\n\n    tick = args['a'][0]\n    assert type(tick) is str\n    assert len(tick) > 0 and len(tick) < 42\n    assert tick[0] in string.ascii_uppercase\n    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')\n\n    name = args['a'][1]\n    assert type(name) is str\n    decimal = int(args['a'][2])\n    assert type(decimal) is int\n    assert decimal >= 0 and decimal <= 18\n\n    functions = ['token_transfer', 'token_mint_once', 'asset_update_ownership', 'asset_update_functions']\n    if len(args['a']) == 4:\n        functions = args['a'][3]\n        assert type(functions) is list\n\n    put(addr, tick, 'name', name)\n    put(addr, tick, 'decimal', decimal)\n    put(addr, 'asset', 'functions', functions, tick)\n\n\ndef token_mint_once(info, args):\n    tick = args['a'][0]\n    assert type(tick) is str\n    assert len(tick) > 0 and len(tick) < 42\n    assert tick[0] in string.ascii_uppercase\n    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')\n\n    value = int(args['a'][1])\n    assert value > 0\n\n    assert args['f'] == 'token_mint_once'\n    functions, _ = get('asset', 'functions', [], tick)\n    assert args['f'] in functions\n\n    sender = info['sender']\n    addr = handle_lookup(sender)\n\n    total, _ = get(tick, 'total', None)\n    assert total is None, \"Token already minted\"\n    put(addr, tick, 'total', value)\n\n    balance, _ = get(tick, 'balance', 0, addr)\n    balance += value\n    put(addr, tick, 'balance', balance, addr)\n\n\ndef token_mint(info, args):\n    tick = args['a'][0]\n    assert type(tick) is str\n    assert len(tick) > 0 and len(tick) < 42\n    assert tick[0] in string.ascii_uppercase\n    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')\n    assert args['f'] == 'token_mint'\n\n    value = int(args['a'][1])\n    assert value > 0\n    sender = info['sender']\n    addr = handle_lookup(sender)\n\n    balance, _ = get(tick, 'balance', 0, addr)\n    balance += value\n    put(addr, tick, 'balance', balance, addr)\n\n    total, _ = get(tick, 'total', 0)\n    total += value\n    put(addr, tick, 'total', total)\n\n\ndef token_burn(info, args):\n    tick = args['a'][0]\n    assert type(tick) is str\n    assert len(tick) > 0 and len(tick) < 42\n    assert tick[0] in string.ascii_uppercase\n    assert set(tick) <= set(string.ascii_uppercase+string.digits+'_')\n\n    assert args['f'] == 'token_burn'\n    functions, _ = get('asset', 'functions', [], tick)\n    assert args['f'] in functions\n\n    value = int(args['a'][1])\n    assert value > 0\n    sender = info['sender']\n    addr = handle_lookup(sender)\n\n    balance, _ = get(tick, 'balance', 0, addr)\n    balance -= value\n    assert balance >= 0\n\n    total, _ = get(tick, 'total', 0, addr)\n    total -= value\n    assert total >= 0\n\n    put(addr, tick, 'balance', balance, addr)\n    put(addr, tick, 'total', total)\n\n\ndef token_transfer(info, args):\n    tick = args['a'][0]\n    assert set(tick) <= set(string.ascii_uppercase+'_')\n\n    assert args['f'] == 'token_transfer'\n    functions, _ = get('asset', 'functions', [], tick)\n    assert args['f'] in functions\n\n    receiver = args['a'][1].lower()\n    assert len(receiver) <= 42\n    assert type(receiver) is str\n    if len(receiver) == 42:\n        assert receiver.startswith('0x')\n        assert set(receiver[2:]) <= set(string.digits+'abcdef')\n    else:\n        assert len(receiver) > 4\n\n    sender = info['sender']\n    addr = handle_lookup(sender)\n\n    value = int(args['a'][2])\n    assert value > 0\n\n    sender_balance, _ = get(tick, 'balance', 0, addr)\n    assert sender_balance >= value\n    sender_balance -= value\n    put(addr, tick, 'balance', sender_balance, addr)\n    receiver_balance, _ = get(tick, 'balance', 0, receiver)\n    receiver_balance += value\n    put(receiver, tick, 'balance', receiver_balance, receiver)\n    event('Transfer', [tick, addr, receiver, value])\n\n\ndef token_send(info, args):\n    assert args['f'] == 'token_send'\n\n\ndef token_accept(info, args):\n    assert args['f'] == 'token_accept'\n"]}