/**
  * @param null|double $amountFrom
  * @param null|double $amountTo
  * @param null|DateTime $asAtDate
  * @param Pagination|null $pagination
  * @param null|string $onBehalfOf
  *
  * @return Balances
  */
 public function find($amountFrom = null, $amountTo = null, $asAtDate = null, Pagination $pagination = null, $onBehalfOf = null)
 {
     if (null === $pagination) {
         $pagination = new Pagination();
     }
     $response = $this->request('GET', 'balances/find', ['amount_from' => $amountFrom, 'amount_to' => $amountTo, 'as_at_date' => null === $asAtDate ? null : $asAtDate->format(DateTime::RFC3339), 'order' => $pagination->getOrder(), 'page' => $pagination->getCurrentPage(), 'per_page' => $pagination->getPerPage(), 'order_asc_desc' => $pagination->getOrderAscDesc(), 'on_behalf_of' => $onBehalfOf]);
     $balances = [];
     foreach ($response->balances as $data) {
         $balances[] = $this->createBalanceFromResponse($data);
     }
     return new Balances($balances, $this->createPaginationFromResponse($response));
 }
 /**
  * @param Pagination $pagination
  *
  * @return array
  */
 protected function convertPaginationToRequest(Pagination $pagination)
 {
     return ['page' => $pagination->getCurrentPage(), 'per_page' => $pagination->getPerPage(), 'order' => $pagination->getOrder(), 'order_asc_desc' => $pagination->getOrderAscDesc()];
 }