1

在我的 Anchor 测试期间,我需要为我的 Solana 程序模拟某些时间变化以做出不同的反应,这样我的 Solana 程序中的 time_now 应该会发生变化:

use solana_program::sysvar::clock::Clock;
let time_now = Clock::get().unwrap().unix_timestamp;

我可以这样做吗?

4

1 回答 1

3

这可能与 Anchor 无关,但在 Rust 方面,可以使用 crate 提前时间,使用program-test创建程序测试start_with_context(),然后使用warp_to_slot().

这是一个在程序上推进时钟的简单示例:https ://github.com/solana-labs/solana/blob/c550b32a4489debb163cf6e6d170e934b0b4faaf/program-test/tests/warp.rs#L54

于 2021-09-01T11:24:14.913 回答