From 26578ac90bfef272e9a50775c560a2c6603e4b85 Mon Sep 17 00:00:00 2001 From: "Diego H. Gurpegui" Date: Tue, 5 May 2020 21:20:50 -0300 Subject: [PATCH] Build for 0.8.0 --- dist/index.html | 2 +- dist/main.1c0f4e45.js | 1 - dist/main.c54876db.js | 1 + ....7dd1567e.js => serviceAddress.19c944d3.js} | 2 +- ...t.ae4ee4a2.js => serviceScript.3ed45ec4.js} | 2 +- ...iceTx.9320803a.js => serviceTx.47092358.js} | 2 +- ...in.e128cce9.js => vendors~main.2f8a2b2c.js} | 18 +++++++++--------- ...Address~serviceScript~serviceTx.ea8549d5.js | 8 ++++++++ ...Address~serviceScript~serviceTx.f7537eed.js | 8 -------- 9 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 dist/main.1c0f4e45.js create mode 100644 dist/main.c54876db.js rename dist/{serviceAddress.7dd1567e.js => serviceAddress.19c944d3.js} (50%) rename dist/{serviceScript.ae4ee4a2.js => serviceScript.3ed45ec4.js} (90%) rename dist/{serviceTx.9320803a.js => serviceTx.47092358.js} (92%) rename dist/{vendors~main.e128cce9.js => vendors~main.2f8a2b2c.js} (89%) create mode 100644 dist/vendors~main~serviceAddress~serviceScript~serviceTx.ea8549d5.js delete mode 100644 dist/vendors~main~serviceAddress~serviceScript~serviceTx.f7537eed.js diff --git a/dist/index.html b/dist/index.html index 7a6aabf..bca23d7 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1 +1 @@ -Bitcoin Forge
\ No newline at end of file +Bitcoin Forge
\ No newline at end of file diff --git a/dist/main.1c0f4e45.js b/dist/main.1c0f4e45.js deleted file mode 100644 index 107bacc..0000000 --- a/dist/main.1c0f4e45.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){function t(t){for(var r,l,c=t[0],i=t[1],s=t[2],p=0,f=[];p0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;l(this,e),this.index=t,this.address=n,this.amount=r}},22:function(e,t,n){"use strict";n.r(t),function(e){var r=n(12),a=n(34);t.default={decompileScriptASM:function(t){if(!/[0-9a-fA-F]+/g.test(t))throw new Error("Invalid hexadecimal string.");var n=e.from(t,"hex");return a.script.toASM(n)},compileScript:function(t){var n=t.map((function(t){return"string"==typeof t?e.from(t,"hex"):t}));return a.script.compile(n)},compileScriptFromString:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t;r=(r=(r=(r=r.replace(/<(\S+)>/g,(function(t,r){var o=r;if(o.startsWith("HASH160")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var l=n[o];return l&&(l=a.crypto.hash160(e.from(l,"hex")).toString("hex")),l}if(o.startsWith("HASH256")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var c=n[o];return c&&(c=a.crypto.hash256(e.from(c,"hex")).toString("hex")),c}var i=n[r];return i||t}))).replace(/(\s|^)\d+(\s|$)/g,(function(e){return" ".concat(a.script.number.encode(parseInt(e,10)).toString("hex")," ")}))).replace(/\s+/g," ")).trim();var o=a.script.fromASM(r);return{script:o,parsedAsm:r}},getOpcodes:function(){return Object.getOwnPropertyNames(a.opcodes).map((function(e){return new r.a({name:e,code:a.opcodes[e]})}))}}}.call(this,n(2).Buffer)},221:function(e,t,n){},222:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(106),l=n.n(o),c=n(13),i=n(27),s=n(41),u=n(28),p=n(110),f=n(10),m=function(){return a.a.createElement("div",null,a.a.createElement("h1",null,"Welcome to the Bitcoin Forge"),a.a.createElement("p",null,"This project intends to be an"," ",a.a.createElement("strong",null,"offline")," ","suite of tools for low-level operations with Bitcoin, like forging transactions or tinker with scripts."),a.a.createElement("h2",null,"Features"),a.a.createElement("p",null,"These are some of the things you can do with"," ",a.a.createElement("strong",null,"Bitcoin Forge"),":"),a.a.createElement("ul",null,a.a.createElement("li",null,"Transactions",a.a.createElement("ul",null,a.a.createElement("li",null,"Create a transaction by defining the inputs and outputs specifically"),a.a.createElement("li",null,"Deconde a transaction from it's raw hexa"))),a.a.createElement("li",null,"Address",a.a.createElement("ul",null,a.a.createElement("li",null,"Create an address in different formats given the public key(s) or redeem script"))),a.a.createElement("li",null,"Scripts",a.a.createElement("ul",null,a.a.createElement("li",null,"Decompile the script ASM given the raw hexa notation"),a.a.createElement("li",null,"Create a script manually by adding values or OPCODES to the stack"),a.a.createElement("li",null,"Create a script by using"," ",a.a.createElement("a",{href:"http://bitcoin.sipa.be/miniscript/"},"Miniscript")," ","notation")))),a.a.createElement("p",null,"This toolkit can run 100% offline, since everyting is executed on the browser once it's loaded."),a.a.createElement("h2",null,"Development notes"),a.a.createElement("p",null,"This web front-end is developed using"," ",a.a.createElement("a",{href:"https://reactjs.org"},"React"),", ",a.a.createElement("a",{href:"https://getbootstrap.com"},"Bootstrap")," and ",a.a.createElement("a",{href:"https://github.com/improvein/bitcoin-forge/blob/master/package.json"},"some other libraries"),a.a.createElement(f.a,{icon:"exclamation-triangle",className:"ml-1",title:"be careful of 3rd party libraries"}),"."),a.a.createElement("p",null,"The core Bitcoin features are developed using"," ",a.a.createElement("a",{href:"https://github.com/bitcoinjs/bitcoinjs-lib"},"BitcoinJS (bitcoinjs-lib)"),"."),a.a.createElement("p",null,"The Miniscript features are developed using code taken from"," ",a.a.createElement("a",{href:"http://bitcoin.sipa.be/miniscript/"},"http://bitcoin.sipa.be/miniscript/"),".",a.a.createElement("br",null),a.a.createElement("small",null,"Miniscript was designed and implemented by Pieter Wuille, Andrew Poelstra, and Sanket Kanjalkar.")),a.a.createElement("p",null,"Feel free to"," ",a.a.createElement("strong",null,"report an issue")," ","or"," ",a.a.createElement("strong",null,"collaborate")," ","on the GitHub project:",a.a.createElement("br",null),a.a.createElement("a",{href:"https://github.com/improvein/bitcoin-forge"},"https://github.com/improvein/bitcoin-forge")))},d=n(26),h=n(1),b=n.n(h);function y(){return(y=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var v=function(e){var t=e.children,n=e.text,r=e.id,o=e.btnClass,l=e.onClick,c=e.type,i=e.size,s=g(e,["children","text","id","btnClass","onClick","type","size"]);return a.a.createElement("button",y({type:c,className:"btn btn-".concat(o," ").concat(null!==i?"btn-".concat(i):""),id:r,onClick:l},s),n,t)};v.propTypes={id:b.a.string,text:b.a.oneOfType([b.a.string,b.a.element]),type:b.a.oneOf(["button","submit","reset"]),btnClass:b.a.oneOf(["primary","secondary","success","danger","warning","info","light","dark","link"]).isRequired,size:b.a.oneOf(["sm","lg"]),onClick:b.a.func.isRequired},v.defaultProps={id:null,type:"button",size:null,text:null};var E=v;function w(e){return(w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var R=function(e){var t=e.label,n=e.type,r=e.id,o=e.value,l=e.handleChange,c=e.horizontal,i=e.size,s=T(e,["label","type","id","value","handleChange","horizontal","size"]),u=a.a.createElement("input",j({type:n,className:"form-control form-control-".concat(i),id:r,value:o,onChange:l},s));return a.a.createElement("div",{className:"form-group".concat(c?" row":"")},a.a.createElement("label",{htmlFor:r,className:"".concat(c?"col-sm-3 col-form-label":"")},t),c?a.a.createElement("div",{className:"col-sm-9"},u):u)};R.propTypes={label:b.a.string.isRequired,type:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.oneOfType([b.a.string,b.a.number]),horizontal:b.a.bool,size:b.a.oneOf(["sm","md","lg"]),handleChange:b.a.func},R.defaultProps={value:"",size:"md",horizontal:!1,handleChange:function(){}};var _=R;function I(e){return(I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function M(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var B=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=U(e,["label","id","value","handleChange","horizontal","size"]),s=a.a.createElement(F,W({id:n,value:r,size:c,onChange:o},i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},s):s)};B.propTypes={label:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.number,horizontal:b.a.bool,size:b.a.oneOf(["sm","md","lg"]),handleChange:b.a.func},B.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){}};var V=B;function L(e){return(L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function G(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var re=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=ne(e,["label","id","value","handleChange","horizontal","size"]),s=a.a.createElement(ee,te({className:"form-control",id:n,value:r,size:c,onChange:o},i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},s):s)};re.propTypes={label:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.oneOfType([b.a.string,b.a.number]),horizontal:b.a.bool,size:b.a.oneOf(["sm","md","lg"]),handleChange:b.a.func},re.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){}};var ae=re;function oe(e){return(oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function le(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var be=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=he(e,["label","id","value","handleChange","horizontal","size"]),s=a.a.createElement(me,de({className:"form-control",id:n,value:r,size:c,onChange:o},i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},s):s)};be.propTypes={label:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.oneOfType([b.a.string,b.a.number]),horizontal:b.a.bool,size:b.a.oneOf(["sm","md","lg"]),handleChange:b.a.func},be.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){}};var ye=be;function ge(e){return(ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ve(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ke=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=e.helpMessage,s=ze(e,["label","id","value","handleChange","horizontal","size","helpMessage"]),u=a.a.createElement(a.a.Fragment,null,a.a.createElement(Me,He({className:"form-control",id:n,value:r,size:c,onChange:o},s)),null!==i&&a.a.createElement("small",null,i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},u):u)};Ke.propTypes={label:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.oneOfType([b.a.string,b.a.number]),horizontal:b.a.bool,size:b.a.oneOf(["sm","md","lg"]),handleChange:b.a.func,helpMessage:b.a.string},Ke.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){},helpMessage:null};var De=Ke;function qe(e){return(qe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ae(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ye=function(e){var t=e.label,n=e.id,r=e.value,o=e.choices,l=e.handleChange,c=e.horizontal,i=e.size,s=Je(e,["label","id","value","choices","handleChange","horizontal","size"]),u=a.a.createElement(Ge,Xe({id:n,size:i,value:r,choices:o,onChange:l},s));return a.a.createElement("div",{className:"form-group".concat(c?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(c?"col-sm-3 col-form-label":"")},t),c?a.a.createElement("div",{className:"col-sm-9"},u):u)};Ye.propTypes={label:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.oneOfType([b.a.string,b.a.number]),choices:b.a.arrayOf(b.a.shape({text:b.a.string,value:b.a.string})).isRequired,horizontal:b.a.bool,size:b.a.oneOf(["sm","md","lg"]),handleChange:b.a.func},Ye.defaultProps={value:"",size:"md",horizontal:!1,handleChange:function(){}};var $e=Ye;function Qe(e){return(Qe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ze(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var st=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=it(e,["label","id","value","handleChange"]);return a.a.createElement("div",{className:"form-group"},a.a.createElement("div",{className:"custom-control custom-switch"},a.a.createElement("input",ct({type:"checkbox",className:"custom-control-input",id:n,checked:r,onChange:o},l)),a.a.createElement("label",{htmlFor:n,className:"custom-control-label"},t)))};st.propTypes={label:b.a.string.isRequired,id:b.a.string.isRequired,value:b.a.bool,handleChange:b.a.func},st.defaultProps={value:!1,handleChange:function(){}};var ut=n(12),pt=n(5);function ft(e){return(ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function mt(e,t){for(var n=0;n0&&(n=t.reduce((function(e,t){return t>=e.index?t:e.index}),t[0]));var r=new ut.b({index:n+1});t.push(r),this.setState({inputs:t})}},{key:"onUpdateInput",value:function(e){var t=this.state.inputs,n=t.findIndex((function(t){return t.index===e.index}));t.splice(n,1,e),this.setState({inputs:t})}},{key:"onAddOutput",value:function(){var e=this.state.outputs,t=0;e.length>0&&(t=e.reduce((function(e,t){return t>=e.index?t:e.index}),e[0]));var n=new ut.c(t+1);e.push(n),this.setState({outputs:e})}},{key:"onUpdateOutput",value:function(e){var t=this.state.outputs,n=t.findIndex((function(t){return t.index===e.index}));t.splice(n,1,e),this.setState({outputs:t})}},{key:"submit",value:function(){var e=this.state,t=e.inputs,n=e.outputs;try{var r=d.default.createTx(t,n);this.setState({tx:r,errorMessage:""})}catch(e){console.error("Creating tx: ",e),this.setState({errorMessage:e.message})}}},{key:"render",value:function(){var e=this,t=this.state,n=t.isTestnet,r=t.inputs,o=t.outputs,l=t.tx,c=t.errorMessage,i=0;return r.forEach((function(e){i+=e.amount})),o.forEach((function(e){i-=e.amount})),a.a.createElement("div",null,a.a.createElement("h1",null,"Create Transaction"),a.a.createElement("p",null,"Create (forge) a transaction indicating how the inputs and ooutputs are composed."),a.a.createElement("form",{id:"tx-form",className:"row"},a.a.createElement("div",{className:"col-6"},a.a.createElement("div",{className:"form-group row"},a.a.createElement("label",{className:"col-sm-3 col-form-label"},"Network"),a.a.createElement("div",{className:"col-sm-9"},a.a.createElement("div",{className:"custom-control custom-radio custom-control-inline"},a.a.createElement("input",{type:"radio",id:"network-testnet",name:"network",className:"custom-control-input",value:"testnet",checked:n,onChange:this.onNetworkChange}),a.a.createElement("label",{className:"custom-control-label",htmlFor:"network-testnet"},"Testnet")),a.a.createElement("div",{className:"custom-control custom-radio custom-control-inline"},a.a.createElement("input",{type:"radio",id:"network-mainnet",name:"network",className:"custom-control-input",value:"mainnet",checked:!n,onChange:this.onNetworkChange}),a.a.createElement("label",{className:"custom-control-label",htmlFor:"network-mainnet"},"Mainnet"))))),a.a.createElement("div",{className:"col-6"}),a.a.createElement("div",{className:"col-sm"},a.a.createElement("h2",null,a.a.createElement("div",{className:"float-right"},a.a.createElement(E,{btnClass:"primary",size:"sm",onClick:this.onAddInput},a.a.createElement(f.a,{icon:"plus-circle",className:"mr-1"}),"Add new input")),"Inputs"),r.map((function(t){return a.a.createElement(Et,{key:t.index,item:t,onUpdate:e.onUpdateInput})}))),a.a.createElement("div",{className:"col-sm-auto d-flex align-items-center"},a.a.createElement(f.a,{icon:"arrow-right"})),a.a.createElement("div",{className:"col-sm"},a.a.createElement("h2",null,a.a.createElement("div",{className:"float-right"},a.a.createElement(E,{btnClass:"primary",size:"sm",onClick:this.onAddOutput},a.a.createElement(f.a,{icon:"plus-circle",className:"mr-1"}),"Add new output")),"Outputs"),o.map((function(t){return a.a.createElement(jt,{key:t.index,item:t,onUpdate:e.onUpdateOutput})})),a.a.createElement("div",{className:"card bg-light mb-1"},a.a.createElement("div",{className:"card-body"},a.a.createElement("h4",{className:"card-title"},"Estimated fee"),a.a.createElement("p",{className:"card-subtitle mb-2 text-muted"},"Calculated based on entered amounts"),a.a.createElement("p",{className:"card-text text-right"},"".concat(i," sat"))))),a.a.createElement("div",{className:"col-sm-12"},a.a.createElement(E,{text:"Forge transaction",btnClass:"primary",onClick:this.submit}))),a.a.createElement("div",{className:"card mt-3"},a.a.createElement("div",{className:"card-body"},a.a.createElement("h5",{className:"card-title"},"Result"),c&&a.a.createElement("p",{className:"text-danger"},c),l&&a.a.createElement("div",{className:"tx-result"},a.a.createElement("dl",{className:"row"},a.a.createElement("dt",{className:"col-sm-3"},"ID"),a.a.createElement("dd",{className:"col-sm-9"},l.getId()),a.a.createElement("dt",{className:"col-sm-3"},"Size"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(l.byteLength()," bytes")),a.a.createElement("dt",{className:"col-sm-3"},"Virtual size"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(l.virtualSize()," bytes")),a.a.createElement("dt",{className:"col-sm-3"},"Weight"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(l.weight()," bytes")),a.a.createElement("dt",{className:"col-sm-3"},"Miner fee"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(i," sat (").concat(Math.round(i/l.virtualSize())," sat/vbyte)"))),a.a.createElement("div",{className:"form-group"},a.a.createElement("label",{htmlFor:"tx-hex"},"Hex"),a.a.createElement("textarea",{className:"form-control",id:"tx-hex",readOnly:!0,value:l.toHex()}))))))}}])&&Rt(n.prototype,r),o&&Rt(n,o),c}(r.Component),Dt=n(11),qt=n.n(Dt),At=n(4);function Ft(e){return(Ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Wt(e,t){for(var n=0;n0){var r=new Cr({name:n,value:n});t.push(r),this.setState({stack:t})}}},{key:"onOpCodeFilterChange",value:function(e){var t=this.state.opCodes,n=e.target.value,r=t;n.length>0&&(r=t.filter((function(e){return e.name.toLowerCase().includes(n.toLowerCase())}))),this.setState({filteredOpCodes:r})}},{key:"onOpcodeAdd",value:function(e,t){var n=this.state.stack,r=new Cr({name:t.name,value:t.code});n.push(r),this.setState({stack:n})}},{key:"onStackClear",value:function(){this.setState({stack:[]})}},{key:"buttonClick",value:function(){var e=this.state.stack;if(0!==e.length)try{var t=e.map((function(e){return e.value})),n=mr.default.compileScript(t);this.setState({script:n.toString("hex"),errorMessage:""})}catch(e){console.error(e),this.setState({errorMessage:e.message})}else this.setState({errorMessage:"The stack is empty"})}},{key:"render",value:function(){var e=this,t=this.state,n=t.stack,r=t.filteredOpCodes,o=t.script,l=t.errorMessage;return a.a.createElement("div",null,a.a.createElement("h1",null,"Create a script"),a.a.createElement("p",null,"Forge a script by adding items to the stack, and then compile it."),a.a.createElement("div",{className:"row"},a.a.createElement("div",{className:"col-12 col-sm-5"},a.a.createElement("div",{className:"card border-primary"},a.a.createElement("div",{className:"card-header"},a.a.createElement("button",{type:"button",className:"btn btn-link btn-sm float-right",title:"Clear stack",onClick:this.onStackClear},a.a.createElement(f.a,{icon:"trash"})),a.a.createElement("h3",null,"Stack")),a.a.createElement("div",{className:"card-body"},a.a.createElement("ul",{className:"list-dnd"},n.map((function(t,n){return a.a.createElement("li",{key:n.toString(),draggable:!0,className:"list-dnd-item",onDragStart:function(t){return e.onItemDragStart(t,n)},onDragOver:function(){return e.onItemDragOver(n)},onDragEnd:e.onItemDragEnd},a.a.createElement("span",{className:"badge badge-".concat(t.isOpcode()?"secondary":"info"," my-1 list-dnd-item")},t.name))})))),a.a.createElement("div",{className:"card-footer"},a.a.createElement("small",null,"You can drag & drop opcodes in order to sort them."))),a.a.createElement("p",{className:"text-danger"},l)),a.a.createElement("div",{className:"col-12 col-sm-7"},a.a.createElement("div",{className:"form-group"},a.a.createElement("label",{htmlFor:"custom-value"},"Custom value"),a.a.createElement("div",{className:"d-flex"},a.a.createElement("button",{className:"btn btn-link",type:"button",title:"Add value to stack",onClick:this.onCustomValueAdd},a.a.createElement(f.a,{icon:"plus-circle"})),a.a.createElement("div",{className:"flex-grow-1"},a.a.createElement(Me,{id:"customValue",onChange:this.onInputChange})))),a.a.createElement("div",{className:"card available-opcodes"},a.a.createElement("div",{className:"card-header"},a.a.createElement("div",{className:"row"},a.a.createElement("div",{className:"col col-sm-6"},"Available OPCODES"),a.a.createElement("div",{className:"col col-sm-6"},a.a.createElement("input",{type:"search",className:"form-control form-control-sm",id:"opcodeFilter",onChange:this.onOpCodeFilterChange,placeholder:"Filter OPCODEs"})))),a.a.createElement("div",{className:"card-body"},a.a.createElement("ul",{className:"list-unstyled row"},r.map((function(t){return a.a.createElement("li",{key:t.name,className:"col text-nowrap opcode-item"},a.a.createElement("span",{className:"badge badge-secondary my-1"},t.name),a.a.createElement("button",{type:"button",className:"btn btn-link",title:"Add OPCODE to stack",onClick:function(n){return e.onOpcodeAdd(n,t)}},a.a.createElement(f.a,{icon:"plus-circle"})))}))))))),a.a.createElement(E,{text:"Compile",btnClass:"primary",onClick:this.buttonClick}),a.a.createElement("div",{className:"card mt-3"},a.a.createElement("div",{className:"card-body"},a.a.createElement("h5",{className:"card-title"},"Result raw script (hex)"),a.a.createElement("p",{className:"card-text",id:"hex-result"},o))))}}])&&kr(n.prototype,r),o&&kr(n,o),c}(r.Component);function _r(e){return(_r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ir(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;l(this,e),this.index=t,this.address=n,this.amount=r}},2:function(e,t,n){"use strict";n.d(t,"b",(function(){return v})),n.d(t,"a",(function(){return _})),n.d(t,"c",(function(){return V})),n.d(t,"d",(function(){return L.a})),n.d(t,"e",(function(){return se})),n.d(t,"f",(function(){return me})),n.d(t,"g",(function(){return de.a})),n.d(t,"h",(function(){return xe})),n.d(t,"i",(function(){return ze}));var r=n(0),a=n.n(r),o=n(1),l=n.n(o);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var g=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=b(e,["label","id","value","handleChange","horizontal","size"]),s=a.a.createElement(h,y({id:n,value:r,size:c,onChange:o},i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},s):s)};g.propTypes={label:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.number,horizontal:l.a.bool,size:l.a.oneOf(["sm","md","lg"]),handleChange:l.a.func},g.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){}};var v=g;function E(e){return(E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function w(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var R=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=T(e,["label","id","value","handleChange","horizontal","size"]),s=a.a.createElement(P,j({className:"form-control",id:n,value:r,size:c,onChange:o},i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},s):s)};R.propTypes={label:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.oneOfType([l.a.string,l.a.number]),horizontal:l.a.bool,size:l.a.oneOf(["sm","md","lg"]),handleChange:l.a.func},R.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){}};var _=R;function I(e){return(I="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function M(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var B=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=U(e,["label","id","value","handleChange","horizontal","size"]),s=a.a.createElement(F,W({className:"form-control",id:n,value:r,size:c,onChange:o},i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},s):s)};B.propTypes={label:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.oneOfType([l.a.string,l.a.number]),horizontal:l.a.bool,size:l.a.oneOf(["sm","md","lg"]),handleChange:l.a.func},B.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){}};var V=B,L=n(23);function G(e){return(G="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function X(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var fe=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=e.horizontal,c=e.size,i=e.helpMessage,s=pe(e,["label","id","value","handleChange","horizontal","size","helpMessage"]),u=a.a.createElement(a.a.Fragment,null,a.a.createElement(se,ue({className:"form-control",id:n,value:r,size:c,onChange:o},s)),null!==i&&a.a.createElement("small",null,i));return a.a.createElement("div",{className:"form-group".concat(l?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(l?"col-sm-3 col-form-label":"")},t),l?a.a.createElement("div",{className:"col-sm-9"},u):u)};fe.propTypes={label:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.oneOfType([l.a.string,l.a.number]),horizontal:l.a.bool,size:l.a.oneOf(["sm","md","lg"]),handleChange:l.a.func,helpMessage:l.a.string},fe.defaultProps={value:"",horizontal:!1,size:"md",handleChange:function(){},helpMessage:null};var me=fe,de=n(38);function he(e){return(he="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ye(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Ne=function(e){var t=e.label,n=e.id,r=e.value,o=e.choices,l=e.handleChange,c=e.horizontal,i=e.size,s=ke(e,["label","id","value","choices","handleChange","horizontal","size"]),u=a.a.createElement(Ce,Oe({id:n,size:i,value:r,choices:o,onChange:l},s));return a.a.createElement("div",{className:"form-group".concat(c?" row":"")},a.a.createElement("label",{htmlFor:n,className:"".concat(c?"col-sm-3 col-form-label":"")},t),c?a.a.createElement("div",{className:"col-sm-9"},u):u)};Ne.propTypes={label:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.oneOfType([l.a.string,l.a.number]),choices:l.a.arrayOf(l.a.shape({text:l.a.string,value:l.a.string})).isRequired,horizontal:l.a.bool,size:l.a.oneOf(["sm","md","lg"]),handleChange:l.a.func},Ne.defaultProps={value:"",size:"md",horizontal:!1,handleChange:function(){}};var xe=Ne;function Pe(e){return(Pe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function je(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var qe=function(e){var t=e.label,n=e.id,r=e.value,o=e.handleChange,l=Ke(e,["label","id","value","handleChange"]);return a.a.createElement("div",{className:"form-group"},a.a.createElement("div",{className:"custom-control custom-switch"},a.a.createElement("input",De({type:"checkbox",className:"custom-control-input",id:n,checked:r,onChange:o},l)),a.a.createElement("label",{htmlFor:n,className:"custom-control-label"},t)))};qe.propTypes={label:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.bool,handleChange:l.a.func},qe.defaultProps={value:!1,handleChange:function(){}}},226:function(e,t,n){},227:function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(109),l=n.n(o),c=n(14),i=n(29),s=n(44),u=n(30),p=n(115),f=n(11),m=function(){return a.a.createElement("div",null,a.a.createElement("h1",null,"Welcome to the Bitcoin Forge"),a.a.createElement("p",null,"This project intends to be an"," ",a.a.createElement("strong",null,"offline")," ","suite of tools for low-level operations with Bitcoin, like forging transactions or tinker with scripts."),a.a.createElement("h2",null,"Features"),a.a.createElement("p",null,"These are some of the things you can do with"," ",a.a.createElement("strong",null,"Bitcoin Forge"),":"),a.a.createElement("ul",null,a.a.createElement("li",null,"Transactions",a.a.createElement("ul",null,a.a.createElement("li",null,"Create a transaction by defining the inputs and outputs specifically"),a.a.createElement("li",null,"Deconde a transaction from it's raw hexa"))),a.a.createElement("li",null,"Address",a.a.createElement("ul",null,a.a.createElement("li",null,"Create an address in different formats given the public key(s) or redeem script"))),a.a.createElement("li",null,"Scripts",a.a.createElement("ul",null,a.a.createElement("li",null,"Decompile the script ASM given the raw hexa notation"),a.a.createElement("li",null,"Create a script manually by adding values or OPCODES to the stack"),a.a.createElement("li",null,"Create a script by using"," ",a.a.createElement("a",{href:"http://bitcoin.sipa.be/miniscript/"},"Miniscript")," ","notation")))),a.a.createElement("p",null,"This toolkit can run 100% offline, since everyting is executed on the browser once it's loaded."),a.a.createElement("h2",null,"Development notes"),a.a.createElement("p",null,"This web front-end is developed using"," ",a.a.createElement("a",{href:"https://reactjs.org"},"React"),", ",a.a.createElement("a",{href:"https://getbootstrap.com"},"Bootstrap")," and ",a.a.createElement("a",{href:"https://github.com/improvein/bitcoin-forge/blob/master/package.json"},"some other libraries"),a.a.createElement(f.a,{icon:"exclamation-triangle",className:"ml-1",title:"be careful of 3rd party libraries"}),"."),a.a.createElement("p",null,"The core Bitcoin features are developed using"," ",a.a.createElement("a",{href:"https://github.com/bitcoinjs/bitcoinjs-lib"},"BitcoinJS (bitcoinjs-lib)"),"."),a.a.createElement("p",null,"The Miniscript features are developed using code taken from"," ",a.a.createElement("a",{href:"http://bitcoin.sipa.be/miniscript/"},"http://bitcoin.sipa.be/miniscript/"),".",a.a.createElement("br",null),a.a.createElement("small",null,"Miniscript was designed and implemented by Pieter Wuille, Andrew Poelstra, and Sanket Kanjalkar.")),a.a.createElement("p",null,"Feel free to"," ",a.a.createElement("strong",null,"report an issue")," ","or"," ",a.a.createElement("strong",null,"collaborate")," ","on the GitHub project:",a.a.createElement("br",null),a.a.createElement("a",{href:"https://github.com/improvein/bitcoin-forge"},"https://github.com/improvein/bitcoin-forge")))},d=n(28),h=n(23);function y(e){return(y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function b(e,t){for(var n=0;n0&&(n=t.reduce((function(e,t){return t>=e.index?t:e.index}),t[0]));var r=new P.b({index:n+1});t.push(r),this.setState({inputs:t})}},{key:"onUpdateInput",value:function(e){var t=this.state.inputs,n=t.findIndex((function(t){return t.index===e.index}));t.splice(n,1,e),this.setState({inputs:t})}},{key:"onAddOutput",value:function(){var e=this.state.outputs,t=0;e.length>0&&(t=e.reduce((function(e,t){return t>=e.index?t:e.index}),e[0]));var n=new P.c(t+1);e.push(n),this.setState({outputs:e})}},{key:"onUpdateOutput",value:function(e){var t=this.state.outputs,n=t.findIndex((function(t){return t.index===e.index}));t.splice(n,1,e),this.setState({outputs:t})}},{key:"submit",value:function(){var e=this.state,t=e.inputs,n=e.outputs;try{var r=d.default.createTx(t,n);this.setState({tx:r,errorMessage:""})}catch(e){console.error("Creating tx: ",e),this.setState({errorMessage:e.message})}}},{key:"render",value:function(){var e=this,t=this.state,n=t.isTestnet,r=t.inputs,o=t.outputs,l=t.tx,c=t.errorMessage,i=0;return r.forEach((function(e){i+=e.amount})),o.forEach((function(e){i-=e.amount})),a.a.createElement("div",null,a.a.createElement("h1",null,"Create Transaction"),a.a.createElement("p",null,"Create (forge) a transaction indicating how the inputs and ooutputs are composed."),a.a.createElement("form",{id:"tx-form",className:"row"},a.a.createElement("div",{className:"col-6"},a.a.createElement("div",{className:"form-group row"},a.a.createElement("label",{className:"col-sm-3 col-form-label"},"Network"),a.a.createElement("div",{className:"col-sm-9"},a.a.createElement("div",{className:"custom-control custom-radio custom-control-inline"},a.a.createElement("input",{type:"radio",id:"network-testnet",name:"network",className:"custom-control-input",value:"testnet",checked:n,onChange:this.onNetworkChange}),a.a.createElement("label",{className:"custom-control-label",htmlFor:"network-testnet"},"Testnet")),a.a.createElement("div",{className:"custom-control custom-radio custom-control-inline"},a.a.createElement("input",{type:"radio",id:"network-mainnet",name:"network",className:"custom-control-input",value:"mainnet",checked:!n,onChange:this.onNetworkChange}),a.a.createElement("label",{className:"custom-control-label",htmlFor:"network-mainnet"},"Mainnet"))))),a.a.createElement("div",{className:"col-6"}),a.a.createElement("div",{className:"col-sm"},a.a.createElement("h2",null,a.a.createElement("div",{className:"float-right"},a.a.createElement(h.a,{btnClass:"primary",size:"sm",onClick:this.onAddInput},a.a.createElement(f.a,{icon:"plus-circle",className:"mr-1"}),"Add new input")),"Inputs"),r.map((function(t){return a.a.createElement(K,{key:t.index,item:t,onUpdate:e.onUpdateInput})}))),a.a.createElement("div",{className:"col-sm-auto d-flex align-items-center"},a.a.createElement(f.a,{icon:"arrow-right"})),a.a.createElement("div",{className:"col-sm"},a.a.createElement("h2",null,a.a.createElement("div",{className:"float-right"},a.a.createElement(h.a,{btnClass:"primary",size:"sm",onClick:this.onAddOutput},a.a.createElement(f.a,{icon:"plus-circle",className:"mr-1"}),"Add new output")),"Outputs"),o.map((function(t){return a.a.createElement(G,{key:t.index,item:t,onUpdate:e.onUpdateOutput})})),a.a.createElement("div",{className:"card bg-light mb-1"},a.a.createElement("div",{className:"card-body"},a.a.createElement("h4",{className:"card-title"},"Estimated fee"),a.a.createElement("p",{className:"card-subtitle mb-2 text-muted"},"Calculated based on entered amounts"),a.a.createElement("p",{className:"card-text text-right"},"".concat(i," sat"))))),a.a.createElement("div",{className:"col-sm-12"},a.a.createElement(h.a,{text:"Forge transaction",btnClass:"primary",onClick:this.submit}))),a.a.createElement("div",{className:"card mt-3"},a.a.createElement("div",{className:"card-body"},a.a.createElement("h5",{className:"card-title"},"Result"),c&&a.a.createElement("p",{className:"text-danger"},c),l&&a.a.createElement("div",{className:"tx-result"},a.a.createElement("dl",{className:"row"},a.a.createElement("dt",{className:"col-sm-3"},"ID"),a.a.createElement("dd",{className:"col-sm-9"},l.getId()),a.a.createElement("dt",{className:"col-sm-3"},"Size"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(l.byteLength()," bytes")),a.a.createElement("dt",{className:"col-sm-3"},"Virtual size"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(l.virtualSize()," bytes")),a.a.createElement("dt",{className:"col-sm-3"},"Weight"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(l.weight()," bytes")),a.a.createElement("dt",{className:"col-sm-3"},"Miner fee"),a.a.createElement("dd",{className:"col-sm-9"},"".concat(i," sat (").concat(Math.round(i/l.virtualSize())," sat/vbyte)"))),a.a.createElement("div",{className:"form-group"},a.a.createElement("label",{htmlFor:"tx-hex"},"Hex"),a.a.createElement("textarea",{className:"form-control",id:"tx-hex",readOnly:!0,value:l.toHex()}))))))}}])&&J(n.prototype,r),o&&J(n,o),c}(r.Component),ne=n(12),re=n.n(ne),ae=n(5);function oe(e){return(oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function le(e,t){for(var n=0;n0){var r=new At({name:n,value:n});t.push(r),this.setState({stack:t})}}},{key:"onOpCodeFilterChange",value:function(e){var t=this.state.opCodes,n=e.target.value,r=t;n.length>0&&(r=t.filter((function(e){return e.name.toLowerCase().includes(n.toLowerCase())}))),this.setState({filteredOpCodes:r})}},{key:"onOpcodeAdd",value:function(e,t){var n=this.state.stack,r=new At({name:t.name,value:t.code});n.push(r),this.setState({stack:n})}},{key:"onStackClear",value:function(){this.setState({stack:[]})}},{key:"buttonClick",value:function(){var e=this.state.stack;if(0!==e.length)try{var t=e.map((function(e){return e.value})),n=Tt.default.compileScript(t);this.setState({script:n.toString("hex"),errorMessage:""})}catch(e){console.error(e),this.setState({errorMessage:e.message})}else this.setState({errorMessage:"The stack is empty"})}},{key:"render",value:function(){var e=this,t=this.state,n=t.stack,r=t.filteredOpCodes,o=t.script,l=t.errorMessage;return a.a.createElement("div",null,a.a.createElement("h1",null,"Create a script"),a.a.createElement("p",null,"Forge a script by adding items to the stack, and then compile it."),a.a.createElement("div",{className:"row"},a.a.createElement("div",{className:"col-12 col-sm-5"},a.a.createElement("div",{className:"card border-primary"},a.a.createElement("div",{className:"card-header"},a.a.createElement("button",{type:"button",className:"btn btn-link btn-sm float-right",title:"Clear stack",onClick:this.onStackClear},a.a.createElement(f.a,{icon:"trash"})),a.a.createElement("h3",null,"Stack")),a.a.createElement("div",{className:"card-body"},a.a.createElement("ul",{className:"list-dnd"},n.map((function(t,n){return a.a.createElement("li",{key:n.toString(),draggable:!0,className:"list-dnd-item",onDragStart:function(t){return e.onItemDragStart(t,n)},onDragOver:function(){return e.onItemDragOver(n)},onDragEnd:e.onItemDragEnd},a.a.createElement("span",{className:"badge badge-".concat(t.isOpcode()?"secondary":"info"," my-1 list-dnd-item")},t.name))})))),a.a.createElement("div",{className:"card-footer"},a.a.createElement("small",null,"You can drag & drop opcodes in order to sort them."))),a.a.createElement("p",{className:"text-danger"},l)),a.a.createElement("div",{className:"col-12 col-sm-7"},a.a.createElement("div",{className:"form-group"},a.a.createElement("label",{htmlFor:"custom-value"},"Custom value"),a.a.createElement("div",{className:"d-flex"},a.a.createElement("button",{className:"btn btn-link",type:"button",title:"Add value to stack",onClick:this.onCustomValueAdd},a.a.createElement(f.a,{icon:"plus-circle"})),a.a.createElement("div",{className:"flex-grow-1"},a.a.createElement(x.e,{id:"customValue",onChange:this.onInputChange})))),a.a.createElement("div",{className:"card available-opcodes"},a.a.createElement("div",{className:"card-header"},a.a.createElement("div",{className:"row"},a.a.createElement("div",{className:"col col-sm-6"},"Available OPCODES"),a.a.createElement("div",{className:"col col-sm-6"},a.a.createElement("input",{type:"search",className:"form-control form-control-sm",id:"opcodeFilter",onChange:this.onOpCodeFilterChange,placeholder:"Filter OPCODEs"})))),a.a.createElement("div",{className:"card-body"},a.a.createElement("ul",{className:"list-unstyled row"},r.map((function(t){return a.a.createElement("li",{key:t.name,className:"col text-nowrap opcode-item"},a.a.createElement("span",{className:"badge badge-secondary my-1"},t.name),a.a.createElement("button",{type:"button",className:"btn btn-link",title:"Add OPCODE to stack",onClick:function(n){return e.onOpcodeAdd(n,t)}},a.a.createElement(f.a,{icon:"plus-circle"})))}))))))),a.a.createElement(x.d,{text:"Compile",btnClass:"primary",onClick:this.buttonClick}),a.a.createElement("div",{className:"card mt-3"},a.a.createElement("div",{className:"card-body"},a.a.createElement("h5",{className:"card-title"},"Result raw script (hex)"),a.a.createElement("p",{className:"card-text",id:"hex-result"},o))))}}])&&Wt(n.prototype,r),o&&Wt(n,o),c}(r.Component);function Jt(e){return(Jt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Yt(e,t){for(var n=0;n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=function(e){var t=e.children,n=e.text,r=e.id,o=e.btnClass,l=e.onClick,s=e.type,u=e.size,p=i(e,["children","text","id","btnClass","onClick","type","size"]);return a.a.createElement("button",c({type:s,className:"btn btn-".concat(o," ").concat(null!==u?"btn-".concat(u):""),id:r,onClick:l},p),n,t)};s.propTypes={id:l.a.string,text:l.a.oneOfType([l.a.string,l.a.element]),type:l.a.oneOf(["button","submit","reset"]),btnClass:l.a.oneOf(["primary","secondary","success","danger","warning","info","light","dark","link"]).isRequired,size:l.a.oneOf(["sm","lg"]),onClick:l.a.func.isRequired},s.defaultProps={id:null,type:"button",size:null,text:null},t.a=s},24:function(e,t,n){"use strict";n.r(t),function(e){var r=n(13),a=n(31);t.default={decompileScriptASM:function(t){if(!/[0-9a-fA-F]+/g.test(t))throw new Error("Invalid hexadecimal string.");var n=e.from(t,"hex");return a.script.toASM(n)},compileScript:function(t){var n=t.map((function(t){return"string"==typeof t?e.from(t,"hex"):t}));return a.script.compile(n)},compileScriptFromString:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t;r=(r=(r=(r=r.replace(/<(\S+)>/g,(function(t,r){var o=r;if(o.startsWith("HASH160")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var l=n[o];return l&&(l=a.crypto.hash160(e.from(l,"hex")).toString("hex")),l}if(o.startsWith("HASH256")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var c=n[o];return c&&(c=a.crypto.hash256(e.from(c,"hex")).toString("hex")),c}var i=n[r];return i||t}))).replace(/(\s|^)\d+(\s|$)/g,(function(e){return" ".concat(a.script.number.encode(parseInt(e,10)).toString("hex")," ")}))).replace(/\s+/g," ")).trim();var o=a.script.fromASM(r);return{script:o,parsedAsm:r}},getOpcodes:function(){return Object.getOwnPropertyNames(a.opcodes).map((function(e){return new r.a({name:e,code:a.opcodes[e]})}))}}}.call(this,n(3).Buffer)},28:function(e,t,n){"use strict";n.r(t),function(e){var r=n(6),a=(n(13),n(31)),o=a.networks.bitcoin,l={setTestnet:function(e){o=e?a.networks.testnet:a.networks.bitcoin},decodeTx:function(e){return a.Transaction.fromHex(e)},createTx:function(t,n){console.log("Start forging TX.");var l=new a.TransactionBuilder(o);l.setVersion(1),console.log("Add the inputs."),t.forEach((function(e){if(!Object.prototype.hasOwnProperty.call(e,"prevTxHash"))throw new Error("The Tx hash for the input was not found.");if(!Object.prototype.hasOwnProperty.call(e,"prevTxIndex"))throw new Error("The previous Tx output index for the input was not found.");if(!Object.prototype.hasOwnProperty.call(e,"privateKey"))throw new Error("The previous Tx output privateKey for the input was not found.");l.addInput(e.prevTxHash,e.prevTxIndex)})),console.log("Add the outputs."),n.forEach((function(e){if(!Object.prototype.hasOwnProperty.call(e,"address"))throw new Error("The address for the output was not found.");if(!Object.prototype.hasOwnProperty.call(e,"amount"))throw new Error("The amount for the output was not found.");l.addOutput(e.address,e.amount)})),console.log("Sign the inputs."),t.forEach((function(e,t){if([r.a,r.d,r.c].includes(e.type)){var n,c,i=a.ECPair.fromWIF(e.privateKey,o);switch(e.type){case r.c:n=a.payments.p2wpkh({pubkey:i.publicKey,network:o}),c=a.payments.p2sh({redeem:n,network:o}),l.sign(t,i,c.redeem.output,null,e.amount);break;case r.d:n=a.payments.p2wpkh({pubkey:i.publicKey,network:o}),l.sign(t,i,n.redeem.output,null,e.amount);break;case r.a:l.sign(t,i)}}}));var c=l.buildIncomplete();return console.log("Set redeem scripts for inputs."),t.forEach((function(t,n){var a;if([r.b,r.e].includes(t.type))switch(t.type){case r.b:a=t.redeemScript,c.setInputScript(n,e.from(a,"hex"))}})),c}};t.default=l}.call(this,n(3).Buffer)},38:function(e,t,n){"use strict";var r=n(0),a=n.n(r),o=n(1),l=n.n(o);function c(){return(c=Object.assign||function(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=function(e){var t=e.label,n=e.type,r=e.id,o=e.value,l=e.handleChange,s=e.horizontal,u=e.size,p=i(e,["label","type","id","value","handleChange","horizontal","size"]),f=a.a.createElement("input",c({type:n,className:"form-control form-control-".concat(u),id:r,value:o,onChange:l},p));return a.a.createElement("div",{className:"form-group".concat(s?" row":"")},a.a.createElement("label",{htmlFor:r,className:"".concat(s?"col-sm-3 col-form-label":"")},t),s?a.a.createElement("div",{className:"col-sm-9"},f):f)};s.propTypes={label:l.a.string.isRequired,type:l.a.string.isRequired,id:l.a.string.isRequired,value:l.a.oneOfType([l.a.string,l.a.number]),horizontal:l.a.bool,size:l.a.oneOf(["sm","md","lg"]),handleChange:l.a.func},s.defaultProps={value:"",size:"md",horizontal:!1,handleChange:function(){}},t.a=s},46:function(e,t){},47:function(e,t){},48:function(e,t){},49:function(e,t){},5:function(e,t,n){"use strict";n.r(t),function(e){var r=n(31),a=r.networks.bitcoin,o={setTestnet:function(e){a=e?r.networks.testnet:r.networks.bitcoin},createP2PKH:function(t){var n=t;return e.isBuffer(n)||(n=e.from(n,"hex")),r.payments.p2pkh({pubkey:n,network:a}).address},createP2WPKH:function(t){var n=t;return e.isBuffer(n)||(n=e.from(n,"hex")),r.payments.p2wpkh({pubkey:n,network:a}).address},createP2PH_P2WPKH:function(t){var n=t;return e.isBuffer(n)||(n=e.from(n,"hex")),r.payments.p2sh({redeem:r.payments.p2wpkh({pubkey:n,network:a}),network:a}).address},createMultisigP2SH:function(t,n){var o=t.map((function(t){return e.from(t,"hex")}));return r.payments.p2sh({redeem:r.payments.p2ms({m:n,pubkeys:o,network:a}),network:a}).address},createMultisigP2WSH:function(t,n){var o=t.map((function(t){return e.from(t,"hex")}));return r.payments.p2wsh({redeem:r.payments.p2ms({m:n,pubkeys:o,network:a}),network:a}).address},createMultisigP2SH_P2WSH:function(t,n){var o=t.map((function(t){return e.from(t,"hex")}));return r.payments.p2sh({redeem:r.payments.p2wsh({redeem:r.payments.p2ms({m:n,pubkeys:o,network:a}),network:a})}).address},createP2SH:function(t){var n=t;return"string"==typeof t&&(n=e.from(t,"hex")),r.payments.p2sh({redeem:{output:n,network:a},network:a}).address},createP2WSH:function(t){var n=t;return"string"==typeof t&&(n=e.from(t,"hex")),r.payments.p2wsh({redeem:{output:n,network:a},network:a}).address}};t.default=o}.call(this,n(3).Buffer)},6:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return a})),n.d(t,"c",(function(){return o})),n.d(t,"d",(function(){return l})),n.d(t,"e",(function(){return c})),n.d(t,"f",(function(){return i}));var r="P2PKH",a="P2SH",o="P2SH-P2WPKH",l="P2WPKH",c="P2WSH",i=[r,a,o,"P2SH-P2WSH",l,c]}}); \ No newline at end of file diff --git a/dist/serviceAddress.7dd1567e.js b/dist/serviceAddress.19c944d3.js similarity index 50% rename from dist/serviceAddress.7dd1567e.js rename to dist/serviceAddress.19c944d3.js index b7caf84..3863964 100644 --- a/dist/serviceAddress.7dd1567e.js +++ b/dist/serviceAddress.19c944d3.js @@ -1 +1 @@ -!function(e){function r(r){for(var n,s,a=r[0],p=r[1],f=r[2],c=0,d=[];c0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;c(this,t),this.index=n,this.address=e,this.amount=r}},22:function(t,n,e){"use strict";e.r(n),function(t){var r=e(12),i=e(34);n.default={decompileScriptASM:function(n){if(!/[0-9a-fA-F]+/g.test(n))throw new Error("Invalid hexadecimal string.");var e=t.from(n,"hex");return i.script.toASM(e)},compileScript:function(n){var e=n.map((function(n){return"string"==typeof n?t.from(n,"hex"):n}));return i.script.compile(e)},compileScriptFromString:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n;r=(r=(r=(r=r.replace(/<(\S+)>/g,(function(n,r){var o=r;if(o.startsWith("HASH160")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var c=e[o];return c&&(c=i.crypto.hash160(t.from(c,"hex")).toString("hex")),c}if(o.startsWith("HASH256")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var a=e[o];return a&&(a=i.crypto.hash256(t.from(a,"hex")).toString("hex")),a}var u=e[r];return u||n}))).replace(/(\s|^)\d+(\s|$)/g,(function(t){return" ".concat(i.script.number.encode(parseInt(t,10)).toString("hex")," ")}))).replace(/\s+/g," ")).trim();var o=i.script.fromASM(r);return{script:o,parsedAsm:r}},getOpcodes:function(){return Object.getOwnPropertyNames(i.opcodes).map((function(t){return new r.a({name:t,code:i.opcodes[t]})}))}}}.call(this,e(2).Buffer)},43:function(t,n){},44:function(t,n){},45:function(t,n){},46:function(t,n){}}); \ No newline at end of file +!function(t){function n(n){for(var r,c,a=n[0],u=n[1],s=n[2],p=0,l=[];p0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;c(this,t),this.index=n,this.address=e,this.amount=r}},24:function(t,n,e){"use strict";e.r(n),function(t){var r=e(13),i=e(31);n.default={decompileScriptASM:function(n){if(!/[0-9a-fA-F]+/g.test(n))throw new Error("Invalid hexadecimal string.");var e=t.from(n,"hex");return i.script.toASM(e)},compileScript:function(n){var e=n.map((function(n){return"string"==typeof n?t.from(n,"hex"):n}));return i.script.compile(e)},compileScriptFromString:function(n){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=n;r=(r=(r=(r=r.replace(/<(\S+)>/g,(function(n,r){var o=r;if(o.startsWith("HASH160")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var c=e[o];return c&&(c=i.crypto.hash160(t.from(c,"hex")).toString("hex")),c}if(o.startsWith("HASH256")){o=o.substring(o.indexOf("(")+1,o.indexOf(")"));var a=e[o];return a&&(a=i.crypto.hash256(t.from(a,"hex")).toString("hex")),a}var u=e[r];return u||n}))).replace(/(\s|^)\d+(\s|$)/g,(function(t){return" ".concat(i.script.number.encode(parseInt(t,10)).toString("hex")," ")}))).replace(/\s+/g," ")).trim();var o=i.script.fromASM(r);return{script:o,parsedAsm:r}},getOpcodes:function(){return Object.getOwnPropertyNames(i.opcodes).map((function(t){return new r.a({name:t,code:i.opcodes[t]})}))}}}.call(this,e(3).Buffer)},46:function(t,n){},47:function(t,n){},48:function(t,n){},49:function(t,n){}}); \ No newline at end of file diff --git a/dist/serviceTx.9320803a.js b/dist/serviceTx.47092358.js similarity index 92% rename from dist/serviceTx.9320803a.js rename to dist/serviceTx.47092358.js index 9fb9857..192ded9 100644 --- a/dist/serviceTx.9320803a.js +++ b/dist/serviceTx.47092358.js @@ -1 +1 @@ -!function(t){function e(e){for(var r,u,a=e[0],c=e[1],s=e[2],p=0,l=[];p0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;u(this,t),this.index=e,this.address=n,this.amount=r}},26:function(t,e,n){"use strict";n.r(e),function(t){var r=n(5),o=(n(12),n(34)),i=o.networks.bitcoin,u={setTestnet:function(t){i=t?o.networks.testnet:o.networks.bitcoin},decodeTx:function(t){return o.Transaction.fromHex(t)},createTx:function(e,n){console.log("Start forging TX.");var u=new o.TransactionBuilder(i);u.setVersion(1),console.log("Add the inputs."),e.forEach((function(t){if(!Object.prototype.hasOwnProperty.call(t,"prevTxHash"))throw new Error("The Tx hash for the input was not found.");if(!Object.prototype.hasOwnProperty.call(t,"prevTxIndex"))throw new Error("The previous Tx output index for the input was not found.");if(!Object.prototype.hasOwnProperty.call(t,"privateKey"))throw new Error("The previous Tx output privateKey for the input was not found.");u.addInput(t.prevTxHash,t.prevTxIndex)})),console.log("Add the outputs."),n.forEach((function(t){if(!Object.prototype.hasOwnProperty.call(t,"address"))throw new Error("The address for the output was not found.");if(!Object.prototype.hasOwnProperty.call(t,"amount"))throw new Error("The amount for the output was not found.");u.addOutput(t.address,t.amount)})),console.log("Sign the inputs."),e.forEach((function(t,e){if([r.a,r.d,r.c].includes(t.type)){var n,a,c=o.ECPair.fromWIF(t.privateKey,i);switch(t.type){case r.c:n=o.payments.p2wpkh({pubkey:c.publicKey,network:i}),a=o.payments.p2sh({redeem:n,network:i}),u.sign(e,c,a.redeem.output,null,t.amount);break;case r.d:n=o.payments.p2wpkh({pubkey:c.publicKey,network:i}),u.sign(e,c,n.redeem.output,null,t.amount);break;case r.a:u.sign(e,c)}}}));var a=u.buildIncomplete();return console.log("Set redeem scripts for inputs."),e.forEach((function(e,n){var o;if([r.b,r.e].includes(e.type))switch(e.type){case r.b:o=e.redeemScript,a.setInputScript(n,t.from(o,"hex"))}})),a}};e.default=u}.call(this,n(2).Buffer)},43:function(t,e){},44:function(t,e){},45:function(t,e){},46:function(t,e){},5:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return u})),n.d(e,"e",(function(){return a})),n.d(e,"f",(function(){return c}));var r="P2PKH",o="P2SH",i="P2SH-P2WPKH",u="P2WPKH",a="P2WSH",c=[r,o,i,"P2SH-P2WSH",u,a]}}); \ No newline at end of file +!function(t){function e(e){for(var r,u,a=e[0],c=e[1],s=e[2],p=0,l=[];p0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;u(this,t),this.index=e,this.address=n,this.amount=r}},28:function(t,e,n){"use strict";n.r(e),function(t){var r=n(6),o=(n(13),n(31)),i=o.networks.bitcoin,u={setTestnet:function(t){i=t?o.networks.testnet:o.networks.bitcoin},decodeTx:function(t){return o.Transaction.fromHex(t)},createTx:function(e,n){console.log("Start forging TX.");var u=new o.TransactionBuilder(i);u.setVersion(1),console.log("Add the inputs."),e.forEach((function(t){if(!Object.prototype.hasOwnProperty.call(t,"prevTxHash"))throw new Error("The Tx hash for the input was not found.");if(!Object.prototype.hasOwnProperty.call(t,"prevTxIndex"))throw new Error("The previous Tx output index for the input was not found.");if(!Object.prototype.hasOwnProperty.call(t,"privateKey"))throw new Error("The previous Tx output privateKey for the input was not found.");u.addInput(t.prevTxHash,t.prevTxIndex)})),console.log("Add the outputs."),n.forEach((function(t){if(!Object.prototype.hasOwnProperty.call(t,"address"))throw new Error("The address for the output was not found.");if(!Object.prototype.hasOwnProperty.call(t,"amount"))throw new Error("The amount for the output was not found.");u.addOutput(t.address,t.amount)})),console.log("Sign the inputs."),e.forEach((function(t,e){if([r.a,r.d,r.c].includes(t.type)){var n,a,c=o.ECPair.fromWIF(t.privateKey,i);switch(t.type){case r.c:n=o.payments.p2wpkh({pubkey:c.publicKey,network:i}),a=o.payments.p2sh({redeem:n,network:i}),u.sign(e,c,a.redeem.output,null,t.amount);break;case r.d:n=o.payments.p2wpkh({pubkey:c.publicKey,network:i}),u.sign(e,c,n.redeem.output,null,t.amount);break;case r.a:u.sign(e,c)}}}));var a=u.buildIncomplete();return console.log("Set redeem scripts for inputs."),e.forEach((function(e,n){var o;if([r.b,r.e].includes(e.type))switch(e.type){case r.b:o=e.redeemScript,a.setInputScript(n,t.from(o,"hex"))}})),a}};e.default=u}.call(this,n(3).Buffer)},46:function(t,e){},47:function(t,e){},48:function(t,e){},49:function(t,e){},6:function(t,e,n){"use strict";n.d(e,"a",(function(){return r})),n.d(e,"b",(function(){return o})),n.d(e,"c",(function(){return i})),n.d(e,"d",(function(){return u})),n.d(e,"e",(function(){return a})),n.d(e,"f",(function(){return c}));var r="P2PKH",o="P2SH",i="P2SH-P2WPKH",u="P2WPKH",a="P2WSH",c=[r,o,i,"P2SH-P2WSH",u,a]}}); \ No newline at end of file diff --git a/dist/vendors~main.e128cce9.js b/dist/vendors~main.2f8a2b2c.js similarity index 89% rename from dist/vendors~main.e128cce9.js rename to dist/vendors~main.2f8a2b2c.js index ac48471..3f564d4 100644 --- a/dist/vendors~main.e128cce9.js +++ b/dist/vendors~main.2f8a2b2c.js @@ -1,4 +1,4 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{0:function(e,t,n){"use strict";e.exports=n(111)},1:function(e,t,n){e.exports=n(116)()},10:function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var r=n(41),i=n(1),o=n.n(i),a=n(0),l=n.n(a);function s(e){return(s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function p(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0||!Array.isArray(t)&&t?u({},e,t):{}}function b(e){var t=e.icon,n=e.mask,i=e.symbol,o=e.className,a=e.title,l=v(t),s=y("classes",[].concat(p(function(e){var t,n=e.spin,r=e.pulse,i=e.fixedWidth,o=e.inverse,a=e.border,l=e.listItem,s=e.flip,c=e.size,f=e.rotation,d=e.pull,p=(u(t={"fa-spin":n,"fa-pulse":r,"fa-fw":i,"fa-inverse":o,"fa-border":a,"fa-li":l,"fa-flip-horizontal":"horizontal"===s||"both"===s,"fa-flip-vertical":"vertical"===s||"both"===s},"fa-".concat(c),null!=c),u(t,"fa-rotate-".concat(f),null!=f),u(t,"fa-pull-".concat(d),null!=d),u(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(p).map((function(e){return p[e]?e:null})).filter((function(e){return e}))}(e)),p(o.split(" ")))),c=y("transform","string"==typeof e.transform?r.c.transform(e.transform):e.transform),d=y("mask",v(n)),h=Object(r.a)(l,f({},s,{},c,{},d,{symbol:i,title:a}));if(!h)return function(){var e;!g&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",l),null;var m=h.abstract,_={};return Object.keys(e).forEach((function(t){b.defaultProps.hasOwnProperty(t)||(_[t]=e[t])})),w(m[0],_)}b.displayName="FontAwesomeIcon",b.propTypes={border:o.a.bool,className:o.a.string,mask:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),fixedWidth:o.a.bool,inverse:o.a.bool,flip:o.a.oneOf(["horizontal","vertical","both"]),icon:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),listItem:o.a.bool,pull:o.a.oneOf(["right","left"]),pulse:o.a.bool,rotation:o.a.oneOf([90,180,270]),size:o.a.oneOf(["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:o.a.bool,symbol:o.a.oneOfType([o.a.bool,o.a.string]),title:o.a.string,transform:o.a.oneOfType([o.a.string,o.a.object]),swapOpacity:o.a.bool},b.defaultProps={border:!1,className:"",mask:null,fixedWidth:!1,inverse:!1,flip:null,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,symbol:!1,title:"",transform:null,swapOpacity:!1};var w=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var i=(n.children||[]).map((function(n){return e(t,n)})),o=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=m(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[h(t)]=r}return e}),{attrs:{}}),a=r.style,l=void 0===a?{}:a,s=d(r,["style"]);return o.attrs.style=f({},o.attrs.style,{},l),t.apply(void 0,[n.tag,f({},o.attrs,{},s)].concat(p(i)))}.bind(null,l.a.createElement)},101:function(e,t){e.exports={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8}},102:function(e,t){e.exports={L:1,M:0,Q:3,H:2}},103:function(e,t,n){var r=n(104);function i(e,t){if(null==e.length)throw new Error(e.length+"/"+t);for(var n=0;n=256;)e-=255;return n.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},r=0;r<8;r++)n.EXP_TABLE[r]=1<=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function s(e,t){for(var n=0;n>6),t+=String.fromCharCode(128|63&r)):r<55296||r>=57344?(t+=String.fromCharCode(224|r>>12),t+=String.fromCharCode(128|r>>6&63),t+=String.fromCharCode(128|63&r)):(n++,r=65536+((1023&r)<<10|1023&e.charCodeAt(n)),t+=String.fromCharCode(240|r>>18),t+=String.fromCharCode(128|r>>12&63),t+=String.fromCharCode(128|r>>6&63),t+=String.fromCharCode(128|63&r))}return t}var _={size:128,level:"L",bgColor:"#FFFFFF",fgColor:"#000000",includeMargin:!1},E={value:v.string.isRequired,size:v.number,level:v.oneOf(["L","M","Q","H"]),bgColor:v.string,fgColor:v.string,includeMargin:v.bool};function x(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[];return e.forEach((function(e,r){var i=null;e.forEach((function(o,a){if(!o&&null!==i)return n.push("M".concat(i+t," ").concat(r+t,"h").concat(a-i,"v1H").concat(i+t,"z")),void(i=null);if(a!==e.length-1)o&&null===i&&(i=a);else{if(!o)return;null===i?n.push("M".concat(a+t,",").concat(r+t," h1v1H").concat(a+t,"z")):n.push("M".concat(i+t,",").concat(r+t," h").concat(a+1-i,"v1H").concat(i+t,"z"))}}))})),n.join("")}var T=function(){try{(new Path2D).addPath(new Path2D)}catch(e){return!1}return!0}(),C=function(e){function t(){var e,n;l(this,t);for(var r=arguments.length,i=new Array(r),o=0;o=256;)e-=255;return n.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},r=0;r<8;r++)n.EXP_TABLE[r]=1<=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function p(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t0||!Array.isArray(t)&&t?u({},e,t):{}}function b(e){var t=e.icon,n=e.mask,i=e.symbol,o=e.className,a=e.title,l=v(t),s=y("classes",[].concat(p(function(e){var t,n=e.spin,r=e.pulse,i=e.fixedWidth,o=e.inverse,a=e.border,l=e.listItem,s=e.flip,c=e.size,f=e.rotation,d=e.pull,p=(u(t={"fa-spin":n,"fa-pulse":r,"fa-fw":i,"fa-inverse":o,"fa-border":a,"fa-li":l,"fa-flip-horizontal":"horizontal"===s||"both"===s,"fa-flip-vertical":"vertical"===s||"both"===s},"fa-".concat(c),null!=c),u(t,"fa-rotate-".concat(f),null!=f),u(t,"fa-pull-".concat(d),null!=d),u(t,"fa-swap-opacity",e.swapOpacity),t);return Object.keys(p).map((function(e){return p[e]?e:null})).filter((function(e){return e}))}(e)),p(o.split(" ")))),c=y("transform","string"==typeof e.transform?r.c.transform(e.transform):e.transform),d=y("mask",v(n)),h=Object(r.a)(l,f({},s,{},c,{},d,{symbol:i,title:a}));if(!h)return function(){var e;!g&&console&&"function"==typeof console.error&&(e=console).error.apply(e,arguments)}("Could not find icon",l),null;var m=h.abstract,_={};return Object.keys(e).forEach((function(t){b.defaultProps.hasOwnProperty(t)||(_[t]=e[t])})),w(m[0],_)}b.displayName="FontAwesomeIcon",b.propTypes={border:o.a.bool,className:o.a.string,mask:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),fixedWidth:o.a.bool,inverse:o.a.bool,flip:o.a.oneOf(["horizontal","vertical","both"]),icon:o.a.oneOfType([o.a.object,o.a.array,o.a.string]),listItem:o.a.bool,pull:o.a.oneOf(["right","left"]),pulse:o.a.bool,rotation:o.a.oneOf([90,180,270]),size:o.a.oneOf(["lg","xs","sm","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:o.a.bool,symbol:o.a.oneOfType([o.a.bool,o.a.string]),title:o.a.string,transform:o.a.oneOfType([o.a.string,o.a.object]),swapOpacity:o.a.bool},b.defaultProps={border:!1,className:"",mask:null,fixedWidth:!1,inverse:!1,flip:null,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,size:null,spin:!1,symbol:!1,title:"",transform:null,swapOpacity:!1};var w=function e(t,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("string"==typeof n)return n;var i=(n.children||[]).map((function(n){return e(t,n)})),o=Object.keys(n.attributes||{}).reduce((function(e,t){var r=n.attributes[t];switch(t){case"class":e.attrs.className=r,delete n.attributes.class;break;case"style":e.attrs.style=m(r);break;default:0===t.indexOf("aria-")||0===t.indexOf("data-")?e.attrs[t.toLowerCase()]=r:e.attrs[h(t)]=r}return e}),{attrs:{}}),a=r.style,l=void 0===a?{}:a,s=d(r,["style"]);return o.attrs.style=f({},o.attrs.style,{},l),t.apply(void 0,[n.tag,f({},o.attrs,{},s)].concat(p(i)))}.bind(null,l.a.createElement)},110:function(e,t,n){"use strict";(function(t){var n="__global_unique_id__";e.exports=function(){return t[n]=(t[n]||0)+1}}).call(this,n(20))},111:function(e,t,n){"use strict";var r=n(108),i={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?a:l[e.$$typeof]||i}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=a;var u=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var i=p(n);i&&i!==h&&e(t,i,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var l=s(t),m=s(n),g=0;gA.length&&A.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,i){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var s=!1;if(null===t)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case a:s=!0}}if(s)return r(i,t,""===n?"."+L(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var u=0;uA.length&&A.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,i){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var s=!1;if(null===t)s=!0;else switch(l){case"string":case"number":s=!0;break;case"object":switch(t.$$typeof){case o:case a:s=!0}}if(s)return r(i,t,""===n?"."+L(t,0):n),1;if(s=0,n=""===n?".":n+":",Array.isArray(t))for(var u=0;u