dir : consensus/clique/api.go
header를 가져온다.
var header *types.Header
// 지정된 number가 없거나 최신 블럭이라면 현재 header를 준다.
if number == nil | *number == rpc.LatestBlockNumber {
header = api.chain.CurrentHeader()
// 그 외 다른 header라면 다른 함수로 검색
} else {
header = api.chain.GetHeaderByNumber(uint64(number.Int64())
}
대응하는 header가 있는지 확인 후, 있다면 snapshot을 리턴
if header == nil {
return nil, errUnknownBlock
}
return api.clique.snapshot(api.chain, header.Number.Uint64(), header.hash(), nil)