shadowproject/shadow

View on GitHub
src/qt/res/assets/js/pages/send.min.js

Summary

Maintainability
A
0 mins
Test Coverage
var sendPage=function(n){"use strict";function t(){i(!1),c(),p(),n("#send [name^=transaction_type]").on("change",p),n("#send [data-toggle=tab]").on("shown.bs.tab",p)}function e(t){return t?2==t.at&&""===n("#send-balance .pay_to").val()&&(n("#send-balance .pay_to").val(t.address).change(),n("#send-balance .pay_to").data("address",t.address)):n("#send-balance .pay_to").val(n("#send-balance .pay_to").data("address")).change(),!0}function i(t){void 0===t&&(t=n(".show-coin-control .btn-cons").hasClass("active")),n("#coincontrol").toggle(t)}function o(){if(n("#coincontrol").is(":visible")){for(var t=0,e=0;e<recipients;e++)t+=unit.parse(n("#amount"+e).val());bridge.updateCoinControlAmount(t)}}function a(t,e,i,o,a,r,c,l){n("#coincontrol").is(":visible")&&(n("#coincontrol_auto").toggle(0===t),n("#coincontrol_labels").toggle(t>0),t>0?(n("#coincontrol_quantity").text(t),n("#coincontrol_amount").text(unit.format(e)),n("#coincontrol_fee").text(unit.format(i)),n("#coincontrol_afterfee").text(unit.format(o)),n("#coincontrol_bytes").text("~"+a).css("color",a>1e4?"red":null),n("#coincontrol_priority").text(r).css("color",0==r.indexOf("low")?"red":null),n("#coincontrol_low").text(c).toggle(l).css("color","yes"==c?"red":null),n("#coincontrol_change").text(unit.format(l)).toggle(l),n("label[for='coincontrol_low'],label[for='coincontrol_change']").toggle(l)):(n("#coincontrol_quantity").text(""),n("#coincontrol_amount").text(""),n("#coincontrol_fee").text(""),n("#coincontrol_afterfee").text(""),n("#coincontrol_bytes").text(""),n("#coincontrol_priority").text(""),n("#coincontrol_low").text(""),n("#coincontrol_change").text("")))}function r(){return n("div.recipient").length}function c(){n("#recipients").append(((0==r()?"":"<hr />")+_.replace(/recipient-template/g,"recipient[count]")).replace(/\[count\]/g,++f)),n("#recipient"+f.toString()+" [data-title]").tooltip(),n("#amount"+f.toString()).on("keydown",unit.keydown).on("paste",unit.paste),bridge.userAction(["clearRecipients"])}function l(t,e,i,o){s(),n("#recipient"+f.toString()+" .pay_to").val(t).change(),n("#recipient"+f.toString()+" .pay_to_label").val(e).change(),n("#recipient"+f.toString()+" .amount").val(o).change(),n("#recipient"+f.toString()+" .narration").val(i).change(),n("[href=#send]").click()}function s(){n("#recipients").html(""),n("#send-balance .amount").val("0").change(),c(),e()}function u(t){r()<=1?s():(t=n(t),0==t.next("hr").remove().length&&t.prev("hr").remove(),t.remove(),n("#tooltip").remove())}function d(){function t(t,e){void 0!=e&&n.isNumeric(e)||(e=1);var i=chainDataPage.anonOutputs[t];return i?Math.min(i&&i.owned_mature>=e&&i.system_mature>=o&&i.system_mature,a):0}function e(n,i,o){switch(n){case 0:return o;case 2:return t(1*i,2)||e(++n,i,o);case 6:return Math.min(t(5*i,1),t(1*i,1))||e(++n,i,o);case 7:return Math.min(t(4*i,1),t(3*i,1))||e(++n,i,o);case 8:return Math.min(t(5*i,1),t(3*i,1))||e(++n,i,o);case 9:return Math.min(t(5*i,1),t(4*i,1))||e(++n,i,o);default:if(10==n)return t(i/2,2);o=Math.max(t(n*i,1),t(1*i,n))||e(1==n?3:++n,i,o)}return o}function i(){var i=1,r=0,c=n(this).find(".amount"),l=unit.parse(c.val(),n(this).find(".unit").val());for(n("[name=err"+c.attr("id")+"]").remove();l>=i&&a>=o;){r=parseInt(l/i%10);try{a=e(r,i,a)}catch(n){console.log(n)}finally{a||(a=t(r*i)),i*=10}}if(a<o)return invalid(c),c.parent().before("<div name='err"+c.attr("id")+"' class='warning'>Not enough system and or owned outputs for the requested amount. Only <b>"+a+"</b> anonymous outputs exist for coin value: <b>"+unit.format(r*(i/10),n(this).find(".unit"))+"</b></div>"),c.on("change",function(){n("[name=err"+c.attr("id")+"]").remove()}),n("#tx_ringsize").show(),void n("#suggest_ring_size").show()}chainDataPage.updateAnonOutputs();var o=bridge.info.options.MinRingSize||3,a=bridge.info.options.MaxRingSize||32;n("#send-balance").is(":visible")?n("#send-balance").each(i):n("div.recipient").each(i),n("#ring_size").val(a)}function g(){function t(){var t=n(this).find(".pay_to"),o=n(this).find(".amount");if(i=i&&invalid(t,bridge.validateAddress(t.val())),0!=unit.parse(o.val())||invalid(o)||(i=!1),!i||!bridge.addRecipient(t.val(),n(this).find(".pay_to_label").val(),n(this).find(".narration").val(),unit.parse(o.val(),n(this).find(".unit").val()),e,n("#ring_size").val()))return!1}var e=v(),i=!0;bridge.userAction(["clearRecipients"]),bridge.info.options.AutoRingSize&&e>1&&d(),n("#send-balance").is(":visible")?n("#send-balance").each(t):n("div.recipient").each(t),i&&bridge.sendCoins(n("#coincontrol").is(":visible"),n("#change_address").val())&&s()}function p(t){var i=n("#send-main").is(":visible"),o=n("[name=transaction_type_from]:checked").val();t&&t.target!==n("input#to_account_public")[0]&&t.target!==n("input#to_account_private")[0]&&n("input[name=transaction_type_to][value="+(i?o:"public"===o?"private":"public")+"]").prop("checked",!0);var a=n("[name=transaction_type_to  ]:checked").val(),r=v();n("#spend_sdc").toggle("public"===o),n("#spend_shadow").toggle("private"===o),n("#to_sdc").toggle("public"===a),n("#to_shadow").toggle("private"===a),n("#to_balance").toggle(!i),n(".show-coin-control").toggle(r<1),sendPage.toggleCoinControl(r<0);var c=n(".show-advanced-controls .btn-cons").hasClass("active");n(".advanced_controls").toggle(c),n("#tx_ringsize,#suggest_ring_size").toggle((!bridge.info.options||1!=bridge.info.options.AutoRingSize)&&r>1&&c),n("#add_recipient").toggle(n("#send-main").is(":visible")&&c),c||i||e()}function v(){var t="public"===n("[name=transaction_type_from]:checked").val(),e="public"===n("[name=transaction_type_to  ]:checked").val();return t?+!e:2+e}var _=n("#recipient-template")[0].outerHTML,f=0;return n("#recipient-template").remove(),{init:t,initSendBalance:e,toggleCoinControl:i,addRecipient:c,addRecipientDetail:l,clearRecipients:s,removeRecipient:u,suggestRingSize:d,sendCoins:g,updateCoinControl:o,updateCoinControlInfo:a,changeTransactionType:p}}(jQuery);$(sendPage.init);