Beispiel #1
0
 api.users.create(userOpts, function(err, user) {
   if (err) { fn(err, null); return; }
   var addressOpts = { 
     user_id: user.id,
     address: opts.rippleAddress,
     managed: false,
     type: "independent"
   };  
   api.rippleAddresses.create(addressOpts, function(err, ripple_address) {
     if (err) { fn(err, null); return; };
     api.externalAccounts.create({ name: "default", user_id: user.id }, function(err, account){
       if (err) { fn(err, null); return; }
       var addressOpts = { 
         user_id: user.id,
         address: coldWalletAddress,
         managed: true,
         type: "hosted",
         tag: account.id
       };  
       api.rippleAddresses.create(addressOpts, function(err, hosted_address) {
         var response = user.toJSON();
         response.ripple_address = ripple_address;
         response.external_account = account;
         response.hosted_address = hosted_address
         fn(err, response);
       }); 
     }); 
   }); 
 }); 
Beispiel #2
0
 api.rippleTransactions.readAll({ transaction_state: "queued" }, function(err, transactions) {
   if (!err) {
     var transaction = transactions[0];
     if (transaction) {
       api.rippleAddresses.read(transaction.to_address_id, function(err, address) {
         console.log(address.address, transaction.to_currency + transaction.to_issuer)
         send(address.address, transaction.to_amount, transaction.to_currency, null, function(err, resp){
           if (err) { setTimeout(workJob, 500); return }
           var payment = JSON.parse(resp);
           if (payment.success) {
             transaction.transaction_state = 'sent';
             transaction.save().complete(function(){
               setTimeout(workJob, 500);
             });
           } else {
             setTimeout(workJob, 500);
           }
         });
       });
     } else {
       setTimeout(workJob, 500);
     }
   } else {
     setTimeout(workJob, 500);
   }
 });
Beispiel #3
0
 api.rippleAddresses.read(params, function(err, address) {
   if (err) { fn(err, null); return; };
   if (address) {
     fn(null, address);
   } else {
     api.rippleAddresses.create(params, fn);
   }
 });
queue.on('payment:withdrawal', function(payment) {

  console.log('received a new payment event');
  console.log(payment.toJSON());

  
  api.rippleAddresses.read(payment.from_address_id, function(err, address) {
    
    if (err || !address) {
      console.log('no address found');
      return;
    }

    console.log(address);
      
    sql.transaction(function(t) {

      api.externalTransactions.create({
        deposit: false,
        amount: payment.to_amount * 0.99,
        currency: payment.to_currency,
        status: 'pending',
        ripple_transaction_id: payment.id,
        external_account_id: address.tag
      }, function(err, withdrawal) {

        console.log(err, withdrawal);
        
        if (err) {
          t.rollback();
          return;
        } 
        
        api.rippleTransactions.update({
          id: payment.id,
          transaction_state: 'tesSUCCESS'
        }, function(err, rippleTransaction) {

          if (err) {
            t.rollback();
            return;
          } else {
            if (rippleTransaction.transaction_state == 'incoming') {
              t.rollback();
              return;
            } 
            t.commit();
            console.log('commit!');
          }

        })
      });
    });
  });
});
Beispiel #5
0
function getHostedAddress(tag, fn) {
  var params = { address: coldWalletAddress, tag: tag };
  api.rippleAddresses.read(params, function(err, address) {
    if (err) { fn(err, null); return; };
    if (address) {
      fn(null, address);
    } else {
      api.rippleAddresses.create(params, fn);
    }
  });
}
Beispiel #6
0
 getUserByName(name, function(err, user){
   if (err) { fn(err, null); return; };
   api.rippleAddresses.read({ user_id: user.id },fn);
 });
Beispiel #7
0
 api.externalAccounts.read({ id: externalAccountId }, function(err, account) {
   if (err) { fn(err, null); return; };
   api.rippleAddresses.read({ user_id: account.user_id },fn);
 });