Dapple['maker-otc'].objects.otc.offers(id, (error, data) => {
   if (!error) {
     const idx = id.toString();
     const [sellHowMuch, sellWhichTokenAddress, buyHowMuch, buyWhichTokenAddress, owner, timestamp] = data;
     const sellToken = Dapple.getTokenByAddress(sellWhichTokenAddress);
     if (sellToken === base && Session.get('loadingBuyOrders')) {
       Session.set('loadingBuyOrders', false);
     } else if (Session.get('loadingSellOrders')) {
       Session.set('loadingSellOrders', false);
     }
     if (timestamp.valueOf() > 0) {
       Offers.updateOffer(idx, sellHowMuch, sellWhichTokenAddress, buyHowMuch, buyWhichTokenAddress,
         owner, Status.CONFIRMED);
     } else {
       Offers.remove(idx);
       if (isBuyEnabled && Session.equals('selectedOffer', idx)) {
         $('#offerModal').modal('hide');
       }
     }
     Offers.syncedOffers.push(id);
     if (max > 0 && id > 1) {
       Session.set('loadingProgress', Math.round(100 * (Offers.syncedOffers.length / max)));
     } else {
       clearLoadingIndicators();
     }
   } else {
     clearLoadingIndicators();
   }
 });
 { gas: Math.min(gasEstimate[0] + 500000, gasEstimate[1]) }, (error, tx) => {
   callback(error, tx);
   if (!error) {
     Offers.updateOffer(tx, sellHowMuchAbsolute, sellWhichTokenAddress, buyHowMuchAbsolute, buyWhichTokenAddress,
       web3Obj.eth.defaultAccount, Status.PENDING);
     Transactions.add('offer', tx, { id: tx, status: Status.PENDING });
   }
 });