问题描述
试图找到一种方法或文档来获取地址在智能合约中收到令牌的时间的 timestamp
。
我已经阅读了许多基于 reflection
的合同,这些合同根据时间对接收和发送代币收取不同级别的费用,但天真地说,以下不只是从交换开始到那时的情况在被调用的函数中?
uint256 private _start_timestamp = block.timestamp;
function _getMultiplier() private view returns (uint256) {
uint256 time_since_start = block.timestamp - _start_timestamp;
uint256 hour = 60 * 60;
if (time_since_start < 1 * hour) {
return (3);
} else if (time_since_start < 2 * hour) {
return (2);
} else {
return (1);
}
}
我对 block.timestamp
仅适用于合同创建的理解是否正确?
如果是这样,我需要知道当前地址是否正在发送令牌,他们何时收到令牌。这怎么可能?
我想到的另一件事是,我最初认为我可以使用 Pancakeswap 路由器来识别时间戳。然而,虽然初始流动性将被添加到 Pancakeswap,但同样的逻辑需要应用于交易所。
解决方法
我对 block.timestamp 仅适用于合约创建的理解是否正确?
不,block.timestamp
适用于每个交易。它不适用于读取。
如果是这样,我需要知道当前地址是否正在发送令牌,他们何时收到令牌。这怎么可能?
这是调用 block.timestamp
时的 transferFrom
。
以下内容不就是从交换开始到被调用函数的那个点吗?
您的问题没有足够的源代码和上下文信息来回答这个问题,例如函数的调用是如何完成的以及由谁完成的。