예제 #1
2
 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));
     }
 }
예제 #2
0
 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);
     }
 }