0

试图找到一种方法或文档来获取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,但同样的逻辑需要应用于交易所。

4

1 回答 1

0

我是否正确理解 block.timestamp 仅适用于合同创建?

不,block.timestamp适用于每笔交易。它不适用于读取。

如果是这样,我需要知道当前地址是否正在发送令牌,他们何时收到令牌。这怎么可能?

这是被调用的block.timestamp时候。transferFrom

以下内容不只是从交换开始到被调用函数的那一点吗?

您的问题没有足够的源代码和上下文信息来回答这个问题,例如函数的调用是如何完成的以及由谁完成的。

于 2021-06-12T20:20:31.360 回答