Transaction Details


Transaction Hash
373caba24089788e9ba556f89e8b74200eb0589a9e00345e7ab8ba845e61e700 ↗ Base Sepolia
Transaction Index
8
From
0xe1288759446298f250c3bce5616706d25525ba7f
Block Height
34462910

Transaction Data

{'p': 'zentest3', 'f': 'function_snippet', 'a': ['def bridge_incoming(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\'] == \'bridge_incoming\'\n functions, _ = get(\'asset\', \'functions\', [], tick)\n assert args[\'f\'] in functions\n\n operator, _ = get(tick, \'incoming_operator\', None)\n assert operator is not None, "Bridge is not initialized"\n sender = info[\'sender\']\n assert sender == operator, "Only the operator can perform this operation"\n\n amount = int(args[\'a\'][1])\n assert amount > 0\n\n receiver = args[\'a\'][2].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 balance, _ = get(tick, \'balance\', 0, receiver)\n balance = int(balance)\n balance += amount\n put(receiver, tick, \'balance\', balance, receiver)\n\n asset_owner, _ = get(\'asset\', \'owner\', None, tick)\n total, _ = get(tick, \'total\', 0)\n total = int(total)\n total += amount\n put(asset_owner, tick, \'total\', total)\n\n\ndef bridge_outgoing(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\'] == \'bridge_outgoing\'\n functions, _ = get(\'asset\', \'functions\', [], tick)\n assert args[\'f\'] in functions\n\n amount = int(args[\'a\'][1])\n assert amount > 0\n\n chain = args[\'a\'][2]\n assert chain in [\'base\', \'base-sepolia\', \'op-sepolia\']\n\n sender = info[\'sender\']\n event(\'BridgeOutgoing\', [tick, amount, chain, sender])\n\n\ndef bridge_set_operator(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\'] == \'bridge_set_operator\'\n functions, _ = get(\'asset\', \'functions\', [], tick)\n assert args[\'f\'] in functions\n\n asset_owner, _ = get(\'asset\', \'owner\', None, tick)\n sender = info[\'sender\']\n addr = handle_lookup(sender)\n print(\'bridge_set_operator\', asset_owner, addr)\n assert addr == asset_owner, "Only the asset owner can perform this operation"\n\n operator = args[\'a\'][1].lower()\n assert type(operator) is str\n # assert len(operator) == 42\n assert operator.startswith(\'0x\')\n assert set(operator[2:]) <= set(string.digits+\'abcdef\')\n\n put(addr, tick, \'incoming_operator\', operator)\n\n\ndef bridge_unset_operator(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\'] == \'bridge_unset_operator\'\n functions, _ = get(\'asset\', \'functions\', [], tick)\n assert args[\'f\'] in functions\n\n asset_owner, _ = get(\'asset\', \'owner\', None, tick)\n sender = info[\'sender\']\n addr = handle_lookup(sender)\n # print(\'bridge_unset_operator\', asset_owner, addr)\n assert addr == asset_owner, "Only the asset owner can perform this operation"\n\n # operator = args[\'a\'][1].lower()\n # assert type(operator) is str\n # assert len(operator) == 42\n # assert operator.startswith(\'0x\')\n # assert set(operator[2:]) <= set(string.digits+\'abcdef\')\n\n put(addr, tick, \'incoming_operator\', None)\n\ndef bridge_set_outgoing_fee(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\'] == \'bridge_set_outgoing_fee\'\n functions, _ = get(\'asset\', \'functions\', [], tick)\n assert args[\'f\'] in functions\n\n chain = args[\'a\'][1]\n assert chain in [\'base\']\n\n fee = int(args[\'a\'][2])\n assert fee > 0\n']}

Events

[['function_snippet', 'NewFunctionSnippet', '4ab60a5271b2eeebb72952ec6fb27ce9dcfc1d49277e86adc900d605d2f471a5']]