Transaction Details


Transaction Hash
e9eaef7a39ac7ce17bc9aae78a3e308e51a3606bc01f1a683a23a4442068e0e3 ↗ Base Sepolia
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']}

Events

[['function_snippet', 'NewFunctionSnippet', 'a02ff1a10108da1a0ab7bf9e5c4ee96b45d5723f5b3775d8a04aee37d09dc67d']]