我可以在以太坊网络中只触发一个地址的事件吗?

Can I trigger an event for only one address in Ethereum network?

我正在研究以太坊智能合约,以在买卖双方之间建立市场。当某人 (y) 向 (x) 询问产品时,我是否可以触发事件仅让 (x) 他对他的产品有新请求??

我已经完成了智能合约的完整代码,我也使用 web3.py 完成了事件监听。但是我想要的不是全网触发,只有卖家有通知,所以每个卖家都有自己的请求列表。

我不知道这是否可能,如果可以,有人可以帮助我在我拥有的事件列表代码中应该更新什么

def handle_event(event):
    if (event.args['_new_req'] == True ):
        print(' New request for the product ')
    else:
        print (' The request has been failed ')

def log_loop(event_filter, poll_interval):
    while True:
        for event in event_filter.get_new_entries():
            handle_event(event)
        time.sleep(poll_interval)
def _new_req_listen():
    block_filter = contract.events._new_req.createFilter(fromBlock = 'latest')

    worker1 = Thread(target=log_loop, args=(block_filter, 2))
    worker1.start()

我可以过滤在不同情况下或针对网络中不同人触发的同一事件吗??

提前致谢

我建议您从高层次(算法)的角度考虑这个问题,而不是立即下降到代码。

对于为特定人(卖家)发起事件的要求,执行此操作的方法是:

  • 一个事件列表。事件数据结构包含一个 "destination" 地址 属性。您可以将 "destination" 设置为一个唯一值(例如 0x000000)而不是 "everyone",或者您可以将 "destination" 设置为一个人(例如卖家的地址)。
  • 或者,为每个卖家准备一个唯一的活动列表。您的事件处理将需要有一个外部循环来遍历所有事件列表。您还可以有一个 'global' 事件列表,这意味着每个卖家都会收到事件。