code: func (b *SimulatedBackend) StorageAt(ctx context.Context, contract common.Address, key common.Hash, blockNumber *big.Int) ([]byte, error) {
  	b.mu.Lock()
  	defer b.mu.Unlock()
  
  	if blockNumber != nil && blockNumber.Cmp(b.blockchain.CurrentBlock().Number()) != 0 {
  		return nil, errBlockNumberUnsupported
  	}
  	statedb, _ := b.blockchain.State()
  	val := statedb.GetState(contract, key)
  	return val[:], nil
  }
docs: // StorageAt returns the value of key in the storage of an account in the blockchain.