【发布时间】:2021-12-04 08:17:24
【问题描述】:
我正在使用 rust 语言编写 Solana 合同,并面临一个严重问题。
为了获取当前的 Unix 时间戳,我使用了SystemTime,如下所示。
let current_timestamp: i64 = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap()
.as_secs() as i64;
顺便说一句,客户要求不要使用SystemTime,因为它浪费了太多的计算单元。
对于这个问题,我使用了BpfClock,但是没有通过单元测试。
let clock = BpfClock::get()?;
let current_timestamp: i64 = clock.unix_timestamp;
单元测试结果如下错误信息:
thread 'processor::tests::test_withdraw' panicked at 'called `Result::unwrap()` on an `Err` value: UnsupportedSysvar'
【问题讨论】:
-
bfpclock 从何而来?
-
“顺便说一句,客户端要求不要使用 SystemTime,因为它浪费了太多的计算单元。”纳尼?
-
@Netwave Bfpclock 与 solana_program 中的 Clock 相同。
标签: rust timestamp clock solana