Solana Rust 智能合约如何获取区块高度或 Unix 时间?
How can a Solana Rust smart contract get block height or Unix time?
我知道如何从前端传递当前的 Unix 时间:
web3.js:
anchor.web3.SYSVAR_CLOCK_PUBKEY
生锈:
let current_time = ctx.accounts.clock.unix_timestamp;
我不想这样。我需要智能合约本身来获取当前时间。
我假设你使用的是锚点
let now_ts = Clock::get().unwrap().unix_timestamp;
您需要传入系统程序帐号
查看本页顶部的 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)?;
我知道如何从前端传递当前的 Unix 时间:
web3.js:
anchor.web3.SYSVAR_CLOCK_PUBKEY
生锈:
let current_time = ctx.accounts.clock.unix_timestamp;
我不想这样。我需要智能合约本身来获取当前时间。
我假设你使用的是锚点
let now_ts = Clock::get().unwrap().unix_timestamp;
您需要传入系统程序帐号
查看本页顶部的 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)?;