public static function normalizeCurrencyToArray($xrp_amount_or_array) { if (is_array($xrp_amount_or_array)) { $in = $xrp_amount_or_array; if (!isset($in['currency'])) { throw new Exception("Missing currency", 1); } if (!isset($in['value'])) { throw new Exception("Missing value", 1); } if ($in['currency'] !== 'XRP') { if (!isset($in['issuer']) or !strlen($in['issuer'])) { throw new Exception("Missing issuer", 1); } } $currency_type = strtoupper($in['currency']); $value = doubleval($in['value']); // allow values below zero // if ($value < 0) { throw new Exception("Unexpected value {$in['value']}", 1); } return array('currency' => $currency_type, 'value' => CurrencyUtil::roundRippleCurrencyValue($value), 'issuer' => $in['issuer']); } else { $xrp_amount = $xrp_amount_or_array; return array('currency' => 'XRP', 'value' => CurrencyUtil::roundRippleCurrencyValue($xrp_amount)); } }
protected function normalizeCurrencyParameter($info_in) { if (is_array($info_in)) { // { "currency" : "USD", "value" : "120", "issuer" : "rMmTCjGFRWPz8S2zAUUoNVSQHxtRQD4eCx" } if (!isset($info_in['currency'])) { throw new Exception("Missing parameter currency", 1); } if (!isset($info_in['value'])) { throw new Exception("Missing parameter value", 1); } if (!isset($info_in['issuer']) or !strlen($info_in['issuer'])) { throw new Exception("Missing parameter issuer", 1); } $currency_type = strtoupper($info_in['currency']); $value = doubleval($info_in['value']); if ($value <= 0) { throw new Exception("Unexpected value {$info_in['value']}", 1); } if ($currency_type == 'XRP') { // special case for XRP return (string) intval($value * CurrencyUtil::DROP_SIZE); } return array('currency' => $currency_type, 'value' => (string) CurrencyUtil::roundRippleCurrencyValue($value), 'issuer' => $info_in['issuer']); } else { // assume XRP $value = doubleval($info_in); if ($value <= 0) { throw new Exception("Unexpected value {$info_in['value']}", 1); } return (string) intval($value * CurrencyUtil::DROP_SIZE); } }