Web3js
如何獲取最接近給定時間戳的塊號?
web3 中是否有任何方法(學)允許在給定日期獲取塊號?
特別是,我有兩個日期作為輸入,我想有效地獲取這兩個日期之間的所有事件。我知道我可以通過擁有塊號來做到這一點:
contract.Event({}, { fromBlock: 100000, toBlock: 121212 })
但是s可以這樣做
Date
嗎?謝謝!
Ethfinex 剛剛發布了一個可以做到這一點的函式。
它是“像素完美”,但到目前為止它工作得非常好,你給它一個時間戳,它會向後移動區塊鏈,直到找到一個非常接近的塊。
在我的測試中,它總是能找到最近的塊,你可能需要稍微調整一下。
https://github.com/ethfinex/efx-trustless-vol/blob/master/src/lib/getBlockByTime.js
這是一些結果
tgt timestamp -> 1545523200 tgt date -> 2018-12-23T00:00:00Z block timestamp -> 1545523212 block date -> 2018-12-23T00:00:12Z requests made -> 3 tgt timestamp -> 1545609600 tgt date -> 2018-12-24T00:00:00Z block timestamp -> 1545609592 block date -> 2018-12-23T23:59:52Z requests made -> 4