我想把ERC-20令牌整合到我的店里。现在我有很多产品,所以我需要自动系统来跟踪付款。我做了一些阅读,看起来,如果我写智能契约来处理这个问题,我需要两次提示用户(一次是备抵,另一次是转帐),这不是很好。我想知道处理这个问题的普遍做法是什么?我知道ERC-223解决了这个问题,但不幸的是,大多数令牌都是ERC-20。
另一种解决方案可能是为每次购买生成新地址,但接下来我需要将ETH传输到每个地址,以便移动可能会变得非常昂贵的令牌。
发布于 2018-04-28 12:29:54
您可以使用作为ERC20定义一部分的事件来跟踪支付。转移事件是在某人付款时触发的。因此,您需要侦听_to参数与收件人地址匹配的传输事件。
Transfer(address indexed _from, address indexed _to, uint256 _value)您可能仍然有两个客户同时购买同一产品的问题,这将使您无法区分谁已经支付和谁没有支付。如果您不希望对每次支付使用单独的接收帐户,则可以为每次支付使用单独的金额:您可以在金额的最小有效位数(1-3位数字)上循环不同的值(最小的可能值通常不值任何值)。您也可以循环各种支付地址,因此只有10或100个付款地址,您收到,确保只有一个是在使用一次。
您甚至可以使用这两种策略的组合来消除“支付冲突”的风险,因为您无法区分两种支付请求。
https://ethereum.stackexchange.com/questions/46974
复制相似问题