我正在使用Substrate运行时编写拍卖类型的应用程序。在编写测试用例时,如何才能快进区块链时间(从中检索到什么<timestamp::Module<T>>::get()),以便可以达到拍卖结束时间并测试结束逻辑?
<timestamp::Module<T>>::get()
谢谢。
查看更多
您可以使用Timestamp::set_timestamp更改时间戳为所需的任何值。例如Timestamp::set_timestamp(42);
Timestamp::set_timestamp
Timestamp::set_timestamp(42);
您可以查看测试中srml-timestamp的示例
srml-timestamp
https://github.com/paritytech/substrate/blob/fe7f6aff197cd68e102539a42df1134d600b4584/srml/timestamp/src/lib.rs#L368
请注意,这不会触发任何其他功能,例如
on_finalize
或on_initialize
。您将必须手动执行此操作。快进块的跟踪问题(而不是时间):github.com/paritytech/substrate/issues/2818
此外,您可能还需要打电话
session::rotate_session()
。