Esempio n. 1
0
        var validator = function(value) {

          // If we're setting the domain, ignore the change.
          if ($rootScope.merchant && $rootScope.merchant.domain && value === $rootScope.merchant.domain) {
            ctrl.$setValidity('validAddress', true);
            return value;
          }

          // Regular url
          if (/^https?:\/\//.test(value)) {
            ctrl.$setValidity('validAddress', true);
            return value;
          }


          // Bip21 uri
          if (/^bitcoin:/.test(value)) {
            var uri = new bitcore.BIP21(value);
            var hasAddress = uri.address && uri.isValid() && uri.address.network().name === $rootScope.wallet.getNetworkName();
            ctrl.$setValidity('validAddress', uri.data.merchant || hasAddress);
            return value;
          }

          // Regular Address
          var a = new Address(value);
          ctrl.$setValidity('validAddress', a.isValid() && a.network().name === $rootScope.wallet.getNetworkName());
          return value;
        };
Esempio n. 2
0
        var validator = function(value) {

          // Regular url
          if (/^https?:\/\//.test(value)) {
            ctrl.$setValidity('validAddress', true);
            return value;
          }


          // Bip21 uri
          if (/^startcoin:/.test(value)) {
            var uri = new bitcore.BIP21(value);
            var hasAddress = uri.address && uri.isValid() && uri.address.network().name === $rootScope.wallet.getNetworkName();
            ctrl.$setValidity('validAddress', uri.data.merchant || hasAddress);
            return value;
          }

          if (typeof value == 'undefined') {
            ctrl.$pristine = true;
            return;
          }

          // Regular Address
          var a = new Address(value);
          ctrl.$setValidity('validAddress', a.isValid() && a.network().name === $rootScope.wallet.getNetworkName());
          return value;
        };
Esempio n. 3
0
    $scope.setFromUri = function(uri) {
      var form = $scope.sendForm;

      var parsed = new bitcore.BIP21(uri);
      if (!parsed.isValid() || !parsed.address.isValid()) {
        $scope.error = 'Invalid bitcoin URL';
        form.address.$isValid = false;
        return uri;
      };

      var addr = parsed.address.toString();
      if (parsed.data.merchant)
        return $scope.setFromPayPro(parsed.data.merchant);

      var amount = (parsed.data && parsed.data.amount) ?
        (parsed.data.amount * 100000000).toFixed(0) * satToUnit : 0;

      $scope.setForm(addr, amount, parsed.data.message, true);
      return addr;
    };
Esempio n. 4
0
        var validator = function(value) {

          // Regular url
          if (/^https?:\/\//.test(value)) {
            ctrl.$setValidity('validAddress', true);
            return value;
          }

          // Bip21 uri
          if (/^bitcoin:/.test(value)) {
            var uri = new bitcore.BIP21(value);
            var hasAddress = uri.address && uri.isValid() && uri.address.network().name === config.networkName;
            ctrl.$setValidity('validAddress', uri.data.merchant || hasAddress);
            return value;
          }

          // Regular Address
          var a = new Address(value);
          ctrl.$setValidity('validAddress', a.isValid() && a.network().name === config.networkName);
          return value;
        };
Esempio n. 5
0
    $scope.setFromUri = function(uri) {
      function sanitizeUri(uri) {
        // Fixes when a region uses comma to separate decimals
        var regex = /[\?\&]amount=(\d+([\,\.]\d+)?)/i;
        var match = regex.exec(uri);
        if (!match || match.length === 0) {
          return uri;
        }
        var value = match[0].replace(',', '.');
        var newUri = uri.replace(regex, value);
        return newUri;
      };

      var w = $rootScope.wallet;
      var satToUnit = 1 / w.settings.unitToSatoshi;
      var form = $scope.sendForm;

      uri = sanitizeUri(uri);

      var parsed = new bitcore.BIP21(uri);
      if (!parsed.isValid() || !parsed.address.isValid()) {
        $scope.error = 'Invalid StartCOIN URL';
        form.address.$isValid = false;
        return uri;
      };

      var addr = parsed.address.toString();
      if (parsed.data.merchant)
        return $scope.setFromPayPro(parsed.data.merchant);

      var amount = (parsed.data && parsed.data.amount) ?
        ((parsed.data.amount * 100000000).toFixed(0) * satToUnit).toFixed(w.settings.unitDecimals) : 0;

      $scope.setForm(addr, amount, parsed.data.message, true);
      return addr;
    };