Transaction Details
Transaction Hash
2cbe70dc31d8b5ce9725323a329fc62cb08df94e9b40324c3fe366f29961fa1f
↗ Base Sepolia
From
0xe1288759446298f250c3bce5616706d25525ba7f
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, \'bridge_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 chain = args[\'a\'][3].lower()\n assert chain in [\'base\']\n tx_hash = args[\'a\'][4].lower().replace(\'0x\', \'\')\n assert len(tx_hash) == 64\n\n balance, _ = get(tick, \'balance\', 0, receiver)\n balance = int(balance)\n balance += amount\n put(receiver, tick, \'balance\', balance, receiver)\n\n total, _ = get(tick, \'total\', 0)\n total = int(total)\n total += amount\n asset_owner, _ = get(\'asset\', \'owner\', None, tick)\n assert asset_owner\n put(asset_owner, tick, \'total\', total)\n\n event(\'BridgeIn\', [tick, amount, sender, chain, tx_hash])\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 # decuct balance and total\n balance, _ = get(tick, \'balance\', 0, receiver)\n balance = int(balance)\n assert balance - amount >= 0\n balance -= amount\n put(receiver, tick, \'balance\', balance, receiver)\n\n total, _ = get(tick, \'total\', 0)\n total = int(total)\n assert total - amount >= 0\n total -= amount\n asset_owner, _ = get(\'asset\', \'owner\', None, tick)\n assert asset_owner\n put(asset_owner, tick, \'total\', total)\n\n chain = args[\'a\'][2]\n assert chain in [\'base\']\n\n sender = info[\'sender\']\n # addr = handle_lookup(sender)\n event(\'BridgeOut\', [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 sender == 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, \'bridge_operator\', operator)\n event(\'BridgeOperaterSet\', [tick, 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 assert addr == asset_owner, "Only the asset owner can perform this operation"\n\n put(addr, tick, \'bridge_operator\', None)\n event(\'BridgeOperaterUnset\', [tick])\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\n asset_owner, _ = get(\'asset\', \'owner\', None, tick)\n sender = info[\'sender\']\n addr = handle_lookup(sender)\n assert addr == asset_owner, "Only the asset owner can perform this operation"\n\n put(asset_owner, tick, \'bridgeout_fee\', fee)\n event(\'BridgeOutFeeChanged\', [tick, fee])\n']}
Events
[['function_snippet', 'NewFunctionSnippet', '16c78e1a080ab6cd6548ad6065d67929ad817d9fd976d680a03adfef2a4a87dd']]