2

我知道如何从前端传递当前的 Unix 时间:

web3.js:

anchor.web3.SYSVAR_CLOCK_PUBKEY

锈:

let current_time = ctx.accounts.clock.unix_timestamp;

我不要那个。我需要智能合约本身来获取当前时间。

4

2 回答 2

3

我假设你正在使用锚

let now_ts = Clock::get().unwrap().unix_timestamp;

您需要传入系统程序帐户

于 2021-08-11T03:09:06.623 回答
3

查看本页顶部的 sysvar 数据示例:https ://docs.solana.com/developing/runtime-facilities/sysvars

智能合约/链上程序​​有两种方式:

let clock = Clock::get();

或者您将帐户传递给外部的指令,然后从该帐户反序列化时钟:

let clock_sysvar_info = next_account_info(account_info_iter)?;
let clock = Clock::from_account_info(&clock_sysvar_info)?;
于 2021-08-11T03:11:16.537 回答