code: func (api *API) GetSnapshot(number *rpc.BlockNumber) (*Snapshot, error) {
  	// Retrieve the requested block number (or current if none requested)
  	var header *types.Header
  	if number == nil || *number == rpc.LatestBlockNumber {
  		header = api.chain.CurrentHeader()
  	} else {
  		header = api.chain.GetHeaderByNumber(uint64(number.Int64()))
  	}
  	// Ensure we have an actually valid block and return its snapshot
  	if header == nil {
  		return nil, errUnknownBlock
  	}
  	return api.clique.snapshot(api.chain, header.Number.Uint64(), header.Hash(), nil)
  }
docs: // GetSnapshot retrieves the state snapshot at a given block.