augmented-tbc-design/static/js/main.461d04f1.chunk.js

2 lines
30 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{226:function(e,t,a){e.exports=a(423)},421:function(e,t,a){},422:function(e,t,a){},423:function(e,t,a){"use strict";a.r(t);var n=a(1),r=a.n(n),i=a(14),o=a.n(i),c=a(463),l=a(462),s=a(66),u=a.n(s),m=a(121),d=a(12),p=a(424),f=a(468),h=a(461),g=a(425),b=a(465),v=a(459),x=a(460),E=a(467),y=a(458),k="https://medium.com/block-science/cadcad-filling-a-critical-gap-in-open-source-data-science-fcd0d3faa8ed",O=Object(p.a)(function(e){return Object(f.a)({title:{},subtitle:{color:e.palette.text.secondary,margin:e.spacing(3,0,0)},subsubtitle:{color:e.palette.text.secondary,opacity:.6},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},link:{color:e.palette.primary.main},logoContainer:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:e.spacing(4)},logo:{width:"25px",marginRight:"4px"},logoText:{display:"inline",fontSize:"1.1rem",fontWeight:500}})});function j(){var e=O();return r.a.createElement(r.a.Fragment,null,r.a.createElement("div",{className:e.logoContainer},r.a.createElement("img",{src:"./favicon.ico",className:e.logo,alt:"logo"}),r.a.createElement(g.a,{className:e.logoText},"Commons Stack")),r.a.createElement(g.a,{className:e.title,variant:"h4"},"Augmented Bonding Curve Design"),r.a.createElement(g.a,{className:e.subtitle},"Experiment and test augmented bonding curves"),r.a.createElement(g.a,{className:e.subsubtitle},"A narrative showcase of ",r.a.createElement(y.a,{href:k},"cadCAD"),"'s capabilities"))}var C=a(84),N=a(92),w=a(464),B=a(85),F=a.n(B),S=a(7),A=a(469),R=Object(S.a)({root:{height:8},thumb:{height:24,width:24,backgroundColor:"#fff",border:"2px solid currentColor",marginTop:-8,marginLeft:-12,"&:focus,&:hover,&$active":{boxShadow:"inherit"}},active:{},valueLabel:{left:"calc(-50% + 4px)"},track:{height:8,borderRadius:4},rail:{height:8,borderRadius:4},markLabel:{top:30}})(A.a),T=a(21),P=a(466),M=Object(p.a)(function(e){var t;return{container:{color:e.palette.text.secondary,display:"flex",fontSize:"0.9rem",cursor:"pointer",transition:"color ease 150ms","&:hover":{color:"#c3c9d0"}},popoverContainer:{padding:e.spacing(2),"& > p:not(:last-child)":{paddingBottom:e.spacing(1),marginBottom:e.spacing(1),borderBottom:"1px solid #3f5463"}},paper:(t={backgroundColor:"#384b59",maxWidth:.9*e.breakpoints.values.md},Object(T.a)(t,"@media screen and (max-width: ".concat(e.breakpoints.values.md,"px)"),{maxWidth:"90vw"}),Object(T.a)(t,"padding",e.spacing(.5)),t),descriptionBody:{color:"#dbdfe4"}}});function I(e){var t=e.content,a=e.popoverText,n=M(),i=r.a.useState(null),o=Object(d.a)(i,2),c=o[0],l=o[1];function s(){l(null)}var u=Boolean(c),m=u?"simple-popover":void 0;return r.a.createElement("div",{className:n.container},r.a.createElement("div",{"aria-describedby":m,onClick:function(e){l(e.currentTarget)}},r.a.createElement(g.a,null,t)),r.a.createElement(P.a,{PaperProps:{className:n.paper},id:m,open:u,anchorEl:c,onClose:s,onClick:s,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},r.a.createElement(b.a,{className:n.popoverContainer},r.a.createElement(g.a,null,t),r.a.createElement(g.a,{className:n.descriptionBody},a))))}var H=Object(p.a)(function(e){return Object(f.a)({root:{margin:e.spacing(6,0,3)},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},leftContainer:{color:e.palette.text.secondary},centerContainer:{},listBoxContainer:{"& > div:not(:last-child)":{paddingBottom:"12px",marginBottom:"12px",borderBottom:"1px solid #313d47"}},listBox:{"& > div":{display:"flex",alignItems:"center","& p":{marginBottom:0}},"& > div:not(:last-child)":{paddingRight:"12px"}},slider:{color:e.palette.primary.main}})});function D(e){var t=e.inputRef,a=e.onChange,n=e.prefix,i=e.suffix,o=Object(N.a)(e,["inputRef","onChange","prefix","suffix"]);return r.a.createElement(F.a,Object.assign({},o,{getInputRef:t,onValueChange:function(e){a({target:{value:e.value}})},thousandSeparator:!0,prefix:n,suffix:i}))}function V(e){var t=e.inputFields,a=e.onChangeCommited,n=H();return r.a.createElement("div",{className:n.listBoxContainer},t.map(function(e){var t=e.label,i=e.description,o=e.value,c=e.setter,l=e.min,s=e.max,u=e.step,m=e.prefix,d=e.suffix,p=e.format,f=e.toText,h=e.toNum;function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;isNaN(e)&&(e=0),e>s?e=s:e<l&&(e=l),c(e)}return r.a.createElement(x.a,{key:t,container:!0,spacing:0,className:n.listBox},r.a.createElement(x.a,{item:!0,xs:6,className:n.leftContainer},r.a.createElement(I,{content:t,popoverText:i})),r.a.createElement(x.a,{item:!0,xs:2,className:n.centerContainer},r.a.createElement(w.a,{onChange:function(e){g(h?h(e.target.value):parseFloat(e.target.value)),a()},InputProps:{inputComponent:D,disableUnderline:!0,inputProps:{prefix:m,suffix:d}},value:f?f(o):o})),r.a.createElement(x.a,{item:!0,xs:4},r.a.createElement(R,{className:n.slider,valueLabelDisplay:"auto","aria-label":t,defaultValue:o,onChange:function(e,t){return g(Number(t))},onChangeCommitted:a,value:o,min:l,max:s,step:u,valueLabelFormat:function(e){return p(e).replace("$","")}})))}))}var L={theta:{name:"Hatch Raise % to funding pool",text:"The percentage of the funds raised in the Hatch going directly to funding pool to be used to support the Commons, the rest goes to the collateral pool"},p0:{name:"Hatch price",text:"The price paid per token by when hatching the project"},p1:{name:"Post-Hatch price",text:"The price per token after the Hatch ends, the curve is set, and anyone can interact with the bonding curve"},wFee:{name:"Exit tribute",text:"The percentage that goes to the funding pool when token holders 'sell' by burning their token at the price determined by the bonding curve"},vHalflife:{name:"Vesting half-life",text:"Tokens that are purchased during the Hatch are locked for 9 weeks and then released slowly such that 50% of the tokens will be able to be sold after this many weeks and 87.5% of the tokens after 3x this many weeks"},d0:{name:"Hatch Raise",text:"Amount of funds contributed during the hatch period"}},z="Visualization of the bonding curve up to 4x the initial size of the Collateral Pool Post-Hatch. This result is deterministic given the curve parameters and the Hatch raise. It will never change regardless of the campaign's performance, it simply shows how the price will react to changes in the Collateral Pool.",W="This chart shows a 52 week simulation of discrete transactions interacting with the Augmented Bonding Curve. Each transaction adds to or subtracts reserve from the system, modifying the price over time. The frequency, size and direction of each transaction is computed from a set of bounded random functions. This is a NOT a cadCAD simulation, but it showcases the intention behind cadCAD.",K={price:{name:"Price",text:"Price of the token over time."},floorPrice:{name:"Floor price",text:"Lower bound of the price guaranteed by the vesting of hatch tokens. It decreases over time as more hatch tokens are allowed to be traded"},totalRaised:{name:"Total funds raised",text:"Cumulative sum of the funds sent to the Funding Pool"}},$={totalReserve:{name:"Collateral pool balance",text:"Total DAI in the collateral pool at the end of the simulated period"},initialHatchFunds:{name:"Funds generated from Raise Hatch",text:"Funds raised during the Hatch that go directly to the cause"},exitTributes:{name:"Funds generated from exit tributes",text:"Cumulative sum of exit tributes collected from only exit / sell / burn transactions"},slippage:{name:"Median slippage",text:"Median of change in price a user experiences from the current price to the price received for exiting/selling/burning"}};function q(e){var t=e.curveParams,a=e.setCurveParams,i=Object(n.useState)(.35),o=Object(d.a)(i,2),c=o[0],l=o[1],s=Object(n.useState)(.1),u=Object(d.a)(s,2),m=u[0],p=u[1],f=Object(n.useState)(.3),h=Object(d.a)(f,2),g=h[0],b=h[1],v=Object(n.useState)(.05),x=Object(d.a)(v,2),E=x[0],y=x[1],k=Object(n.useState)(52),O=Object(d.a)(k,2),j=O[0],N=O[1];Object(n.useEffect)(function(){l(t.theta),p(t.p0),b(t.p1),y(t.wFee),N(t.vHalflife)},[t]);var w=10,B=[{label:L.theta.name,description:L.theta.text,value:c,setter:l,min:0,max:.9,step:.01,suffix:"%",format:function(e){return"".concat(Math.round(100*e),"%")},toText:function(e){return String(+(100*e).toFixed(0))},toNum:function(e){return.01*parseFloat(e)}},{label:"".concat(L.p0.name," (DAI/token)"),description:L.p0.text,value:m,setter:function(e){p(e),g<e?b(e):g>e*w&&b(e*w)},min:.01,max:1,step:.01,toText:function(e){return String(+e.toFixed(2))},toNum:function(e){return parseFloat(e)},format:function(e){return"$".concat(e)}},{label:"".concat(L.p1.name," (DAI/token)"),description:L.p1.text,value:g,setter:b,min:m||.1,max:Number((w*m).toFixed(2)),step:.01,toText:function(e){return String(+e.toFixed(2))},toNum:function(e){return parseFloat(e)},format:function(e){return"$".concat(e)}},{label:L.wFee.name,description:L.wFee.text,value:E,setter:y,min:0,max:.1,step:.001,suffix:"%",format:function(e){return"".concat(+(100*e).toFixed(1),"%")},toText:function(e){return String(+(100*e).toFixed(1))},toNum:function(e){return.01*parseFloat(e)}},{label:"".concat(L.vHalflife.name," (weeks)"),description:L.vHalflife.text,value:j,setter:N,min:26,max:104,step:1,suffix:"",format:function(e){return String(Math.round(e))},toText:function(e){return String(Math.round(e))},toNum:function(e){return Math.round(parseInt(e))}}];return r.a.createElement(V,{inputFields:B,onChangeCommited:function(){a(function(e){return Object(C.a)({},e,{theta:c,p0:m,p1:g,wFee:E,vHalflife:j})})}})}var G=a(182),J=a.n(G),U=Object(p.a)(function(e){return{container:{display:"flex",marginLeft:"6px",fontSize:"0.9rem",cursor:"pointer",transition:"opacity ease 150ms",opacity:.2,"&:hover":{opacity:.85}},popoverContainer:{padding:e.spacing(2)},paper:Object(T.a)({backgroundColor:"#384b59",maxWidth:.9*e.breakpoints.values.md},"@media screen and (max-width: ".concat(e.breakpoints.values.md,"px)"),{maxWidth:"90vw"}),descriptionContainer:{"& > div:not(:last-child)":{paddingBottom:e.spacing(1),marginBottom:e.spacing(1),borderBottom:"1px solid #3f5463"},"& td":{verticalAlign:"top",padding:e.spacing(.5)}},descriptionTitle:{padding:e.spacing(.5)},descriptionBody:{color:"#dbdfe4",padding:e.spacing(.5)},descriptionPadding:{padding:e.spacing(.5)}}});function Q(e){var t=e.text,a=e.title,n=e.table,i=e.body,o=U(),c=r.a.useState(null),l=Object(d.a)(c,2),s=l[0],u=l[1];function m(){u(null)}var p=Boolean(s),f=p?"simple-popover":void 0;return r.a.createElement("div",{className:o.container},r.a.createElement(J.a,{onClick:function(e){u(e.currentTarget)}}),r.a.createElement(P.a,{PaperProps:{className:o.paper},id:f,open:p,anchorEl:s,onClose:m,onClick:m,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},r.a.createElement(b.a,{className:o.popoverContainer},r.a.createElement("div",{className:o.descriptionContainer},a&&r.a.createElement("div",null,r.a.createElement(g.a,{className:o.descriptionTitle},a)),i&&r.a.createElement("div",null,r.a.createElement(g.a,{className:o.descriptionBody},i)),n&&r.a.createElement("div",null,r.a.createElement("table",null,r.a.createElement("tbody",null,n.map(function(e){var t=e.name,a=e.text;return r.a.createElement("tr",{key:t},r.a.createElement("td",null,r.a.createElement(g.a,null,t)),r.a.createElement("td",null,r.a.createElement(g.a,{className:o.descriptionBody},a)))})))),t))))}var X=Object(p.a)(function(e){return Object(f.a)({root:{margin:e.spacing(6,0,3)},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},leftContainer:{},centerContainer:{},listBoxContainer:{"& > div:not(:last-child)":{paddingBottom:"12px",marginBottom:"12px",borderBottom:"1px solid #313d47"}},listBox:{"& > div":{display:"flex",alignItems:"center","& p":{marginBottom:0}},"& > div:not(:last-child)":{paddingRight:"12px"}},slider:{color:e.palette.primary.main}})});function Y(e){var t=e.inputRef,a=e.onChange,n=e.prefix,i=e.suffix,o=Object(N.a)(e,["inputRef","onChange","prefix","suffix"]);return r.a.createElement(F.a,Object.assign({},o,{getInputRef:t,onValueChange:function(e){a({target:{value:e.value}})},thousandSeparator:!0,prefix:n,suffix:i}))}function Z(e){var t=e.inputFields,a=e.onChangeCommited,n=X();return r.a.createElement("div",{className:n.listBoxContainer},t.map(function(e){var t=e.label,i=e.description,o=e.value,c=e.setter,l=e.min,s=e.max,u=e.step,m=e.prefix,d=e.suffix,p=e.format,f=e.toText,h=e.toNum;function b(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;isNaN(e)&&(e=0),e>s?e=s:e<l&&(e=l),c(e)}return r.a.createElement(x.a,{key:t,container:!0,spacing:0,className:n.listBox},r.a.createElement(x.a,{item:!0,xs:6,sm:6,md:3,lg:2,className:n.leftContainer},r.a.createElement(g.a,{variant:"h6"},t),r.a.createElement(Q,{title:t,body:i})),r.a.createElement(x.a,{item:!0,xs:2,sm:2,md:1,className:n.centerContainer},r.a.createElement(w.a,{onChange:function(e){b(h?h(e.target.value):parseFloat(e.target.value)),a()},InputProps:{inputComponent:Y,disableUnderline:!0,inputProps:{prefix:m,suffix:d}},value:f?f(o):o})),r.a.createElement(x.a,{item:!0,xs:4,sm:4,md:8,lg:9},r.a.createElement(R,{className:n.slider,valueLabelDisplay:"auto","aria-label":t,defaultValue:o,onChange:function(e,t){return b(Number(t))},onChangeCommitted:a,value:o,min:l,max:s,step:u,valueLabelFormat:function(e){return p(e).replace("$","")}})))}))}function _(e){var t=e.curveParams,a=e.setCurveParams,i=Object(n.useState)(3e6),o=Object(d.a)(i,2),c=o[0],l=o[1];Object(n.useEffect)(function(){l(t.d0)},[t]);var s=[{label:"".concat(L.d0.name),description:L.d0.text,value:c,setter:l,min:1e5,max:1e7,step:1e5,suffix:"M",format:function(e){return"$".concat(+(1e-6*e).toFixed(1),"M")},toText:function(e){return String(+(1e-6*e).toFixed(1))},toNum:function(e){return Math.floor(1e6*parseFloat(e))}}];return r.a.createElement(Z,{inputFields:s,onChangeCommited:function(){a(function(e){return Object(C.a)({},e,{d0:c})})}})}var ee=a(15);function te(e){for(var t=e.from,a=void 0===t?0:t,n=e.to,r=e.steps,i=[],o=a;o<=n;o+=(n-a)/r)i.push(o);return i}function ae(e,t){for(var a=[],n=(e[e.length-1]-e[0])/t,r=e[0];r<e[e.length-1];r+=n)a.push(r);return a.length<t+1&&a.push(e[e.length-1]),a}function ne(e){return e[e.length-1]}function re(e){return e.reduce(function(e,t){return e+Math.abs(t)},0)/e.length}function ie(e){return new Promise(function(t){return setTimeout(t,e)})}function oe(e){var t=e>5e8?[1e9,"B"]:e>5e5?[1e6,"M"]:e>500?[1e3,"K"]:[1,""],a=Object(d.a)(t,2);return{scaling:a[0],unit:a[1]}}var ce=a(65);function le(e){var t=e.d0,a=e.theta,n=e.p0,r=e.p1/n/(1-a),i=(1-a)*t,o=t/n;return{k:r,R0:i,S0:o,V0:Math.pow(o,r)/i}}function se(e){var t=e.S,a=e.V0,n=e.k;return Math.pow(t,n)/a}function ue(e){var t=e.R,a=e.V0,n=e.k;return Math.pow(a*t,1/n)}function me(e){var t=e.S,a=e.H,n=e.V0,r=e.k;if(t===a){var i=de({R:se({S:t,V0:n,k:r}),V0:n,k:r});return Math.abs(i)}return de({R:se({S:t-a,V0:n,k:r}),V0:n,k:r})}function de(e){var t=e.R,a=e.V0,n=e.k;return n*Math.pow(t,(n-1)/n)/Math.pow(a,1/n)}function pe(e){var t=e.R,a=e.deltaR,n=e.V0,r=e.k,i=Math.pow(n*t,1/r),o=a/(Math.pow(n*(t+a),1/r)-i),c=de({R:t,V0:n,k:r});return Math.abs(o-c)/c}function fe(e){var t=e.R,a=e.k,n=e.priceGrowth;return-t+Math.pow(n*Math.pow(t,1-1/a),a/(-1+a))}function he(e){for(var t=e.sum,a=e.num,n=t/a,r=n*e.spread,i=[],o=0;o<a;o++)i.push(ve(n-r,n+r));return i}function ge(e){var t=e.week,a=e.H,n=e.halflife;return t<e.cliff?0:a*(1-Math.pow(.5,1/n))}function be(e,t){return Math.random()*(t-e)+e}function ve(e,t){for(var a=0,n=0;0===a;)a=Math.random();for(;0===n;)n=Math.random();var r=Math.sqrt(-2*Math.log(a))*Math.cos(2*Math.PI*n);return((r=r/10+.5)>1||r<0)&&(r=ve(e,t)),r*=t-e,r+=e}function xe(e){var t=Math.floor(e.length/2),a=Object(ce.a)(e).sort(function(e,t){return e-t});return e.length%2!==0?a[t]:(a[t-1]+a[t])/2}var Ee=a(195),ye=!1,ke="x",Oe="Supply (tokens) / Collateral (DAI)",je=Object(p.a)(function(e){return Object(f.a)({tooltip:{border:"1px solid #313d47",backgroundColor:"#384b59",padding:e.spacing(1),color:"#c7ccd2"}})});var Ce=function(e){for(var t=e.theta,a=le({d0:e.d0,theta:t,p0:e.p0,p1:e.p1}),n=a.k,i=a.R0,o=a.S0,c=a.V0,l=Math.round(i),s=function(e){return o*Math.pow(e/l,1/n)},u=4*l,m=Math.round((u-0)/100),p=oe(Math.max(u,s(u))),f=p.scaling,h=p.unit,g=[],b=0;b<101;b++){var v,x=Math.round(0+m*b);g.push((v={},Object(T.a)(v,ke,x),Object(T.a)(v,Oe,s(x)),v))}var E=Object(Ee.a)(),y=je(),k=function(e){return(+(e/f).toPrecision(2)).toLocaleString()};return r.a.createElement(ee.f,{debounce:1},r.a.createElement(ee.b,{width:0,height:400,data:g,margin:{top:10,right:30,left:0,bottom:0}},r.a.createElement(ee.c,{vertical:!1,stroke:E.palette.text.secondary,strokeOpacity:.13}),r.a.createElement(ee.h,{interval:24,dataKey:ke,tickFormatter:k,unit:h,tick:{fill:E.palette.text.secondary},stroke:E.palette.text.secondary}),r.a.createElement(ee.i,{interval:"preserveStartEnd",ticks:ae(g.map(function(e){return e[Oe]}),3),tickFormatter:k,unit:h,tick:{fill:E.palette.text.secondary},domain:[0,s(u)],stroke:E.palette.text.secondary}),r.a.createElement(ee.g,{content:r.a.createElement(function(e){var t=e.active,a=e.payload,i=e.label;if(t){var o=a[0].value,l=i,s=de({R:l,V0:c,k:n}),u=[["Supply",k(o)+h,"tokens"],["Collateral",k(l)+h,"DAI"],["Price",s.toFixed(2),"DAI/token"]];return r.a.createElement("div",{className:y.tooltip},r.a.createElement("table",null,r.a.createElement("tbody",null,u.map(function(e){var t=Object(d.a)(e,3),a=t[0],n=t[1],i=t[2];return r.a.createElement("tr",{key:a},r.a.createElement("td",null,a),r.a.createElement("td",null,n),r.a.createElement("td",null,i))}))))}return null},null)}),r.a.createElement(ee.a,{isAnimationActive:ye,type:"monotone",dataKey:Oe,stroke:E.palette.primary.main,fill:E.palette.primary.main,fillOpacity:.3,strokeWidth:2}),r.a.createElement(ee.e,{x:l,stroke:E.palette.primary.main,strokeDasharray:"9 0",label:r.a.createElement(function(e){var t=e.textAnchor,a=e.viewBox;return r.a.createElement("text",{x:a.x+10,y:30,fill:E.palette.text.secondary,textAnchor:t},"Initial value")},null)}),r.a.createElement(ee.d,{formatter:function(e){return r.a.createElement("span",{style:{color:E.palette.text.secondary}},e)}})))};a(421);function Ne(){return r.a.createElement("div",{className:"spinner"},r.a.createElement("div",{className:"bounce1"}),r.a.createElement("div",{className:"bounce2"}),r.a.createElement("div",{className:"bounce3"}))}var we=Object(p.a)(function(e){return Object(f.a)({root:{margin:e.spacing(6,0,3)},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},leftContainer:{color:e.palette.text.secondary},centerContainer:{},listBoxContainer:{"& > div:not(:last-child)":{marginBottom:"12px",borderBottom:"1px solid #313d47"}},listBox:{paddingBottom:"12px","& > div":{display:"flex",alignItems:"center","& p":{marginBottom:0}},"& > div:not(:last-child)":{paddingRight:"12px"}},valueFooter:{color:e.palette.text.secondary,fontSize:"80%"}})});function Be(e){var t=e.resultFields,a=e.simulationDuration,i=Object(n.useState)(!1),o=Object(d.a)(i,2),c=o[0],l=o[1];Object(n.useEffect)(function(){var e=setTimeout(function(){l(!1)},a);return function(){clearTimeout(e)}});var s=we();return r.a.createElement("div",{className:s.listBoxContainer},t.map(function(e){var t=e.label,a=e.description,n=e.value,i=e.valueFooter;return r.a.createElement(x.a,{key:t,container:!0,spacing:0,className:s.listBox},r.a.createElement(x.a,{item:!0,xs:8,className:s.leftContainer},r.a.createElement(I,{content:t,popoverText:a})),r.a.createElement(x.a,{item:!0,xs:4,className:s.centerContainer},c?r.a.createElement(Ne,null):r.a.createElement("div",null,r.a.createElement(g.a,null,n),i&&r.a.createElement(g.a,{className:s.valueFooter},i))))}))}var Fe="x",Se="Price (DAI/token)",Ae="Floor price (DAI/token)",Re="Total funds raised (DAI)",Te="Post-Hatch price",Pe="Hatch price",Me="#53c388",Ie="#4090d9",He="#b7c1cb",De=Object(p.a)(function(e){return Object(f.a)({tooltip:{border:"1px solid #313d47",backgroundColor:"#384b59",padding:e.spacing(1),color:"#c7ccd2"}})});var Ve=function(e){for(var t=e.priceTimeseries,a=e.totalFundsRaisedTimeseries,i=e.floorpriceTimeseries,o=e.simulationDuration,c=e.p0,l=e.p1,s=[],u=0;u<t.length;u++){var m;s.push((m={},Object(T.a)(m,Fe,u),Object(T.a)(m,Se,t[u]||0),Object(T.a)(m,Ae,i[u]||0),Object(T.a)(m,Re,a[u]||0),m))}var p=Object(n.useState)(!1),f=Object(d.a)(p,2),h=f[0],g=f[1];Object(n.useEffect)(function(){var e=setTimeout(function(){g(!1)},o+100);return function(){clearTimeout(e)}});var b=a[0],v=a.slice(-1)[0],x=v-b,E=function(e){return(+e.toFixed(2)).toLocaleString()},y=oe(v),k=y.scaling,O=y.unit,j=function(e){return(+(e/k).toPrecision(3)).toLocaleString()},C=Object(Ee.a)(),N=De();function w(e){var t=e.textAnchor,a=e.viewBox,n=e.text;return e.fill,r.a.createElement("text",{x:a.x+4,y:a.y+17,fill:He,textAnchor:t},n)}return r.a.createElement(ee.f,{debounce:1},r.a.createElement(ee.b,{width:0,height:400,data:s,margin:{top:10,right:30,left:0,bottom:0}},r.a.createElement(ee.c,{vertical:!1,stroke:C.palette.text.secondary,strokeOpacity:.13}),r.a.createElement(ee.h,{dataKey:Fe,tick:{fill:C.palette.text.secondary},stroke:C.palette.text.secondary,ticks:[].concat(Object(ce.a)(te({to:t.length,steps:4}).map(Math.floor)),[t.length-1])}),r.a.createElement(ee.i,{yAxisId:"left",domain:[0,Math.max.apply(Math,Object(ce.a)(t).concat([1.25*l]))],tickFormatter:E,tick:{fill:Me},stroke:Me}),r.a.createElement(ee.i,{yAxisId:"right",domain:[b.toPrecision(2),+(v+x).toPrecision(2)],orientation:"right",tickFormatter:function(e){return(+e.toPrecision(3)).toLocaleString()},tick:{fill:Ie},stroke:Ie}),r.a.createElement(ee.g,{content:r.a.createElement(function(e){var t=e.active,a=e.payload,n=e.label;if(t){var i=a[0].value,o=a[1].value,c=a[2].value,l=n,s=[["Price",E(i),"DAI/tk"],["Floor P.",E(o),"DAI/tk"],["Funds R.",j(c)+O,"DAI"],["Week",l,""]];return r.a.createElement("div",{className:N.tooltip},r.a.createElement("table",null,r.a.createElement("tbody",null,s.map(function(e){var t=Object(d.a)(e,3),a=t[0],n=t[1],i=t[2];return r.a.createElement("tr",{key:a},r.a.createElement("td",null,a),r.a.createElement("td",null,n),r.a.createElement("td",null,i))}))))}return null},null)}),r.a.createElement(ee.a,{isAnimationActive:h,animationDuration:o,yAxisId:"left",type:"monotone",dataKey:Se,stroke:C.palette.primary.main,fill:C.palette.primary.main,fillOpacity:.3,strokeWidth:2}),r.a.createElement(ee.a,{isAnimationActive:h,animationDuration:o,yAxisId:"left",type:"monotone",dataKey:Ae,stroke:"#adcd2e",fill:"#adcd2e",fillOpacity:.05,strokeWidth:2}),r.a.createElement(ee.e,{y:c,yAxisId:"left",stroke:C.palette.primary.main,label:r.a.createElement(w,{text:Pe})}),r.a.createElement(ee.e,{y:l,yAxisId:"left",stroke:C.palette.primary.main,label:r.a.createElement(w,{text:Te})}),r.a.createElement(ee.a,{isAnimationActive:h,animationDuration:o,yAxisId:"right",type:"monotone",dataKey:Re,stroke:"#0085ff",fill:C.palette.secondary.dark,fillOpacity:.5,strokeWidth:2}),r.a.createElement(ee.d,{formatter:function(e){return r.a.createElement("span",{style:{color:C.palette.text.secondary}},e)}})))},Le=a(192),ze=(a(422),4e3),We=Object(p.a)(function(e){return Object(f.a)({mainContainer:{"& > div:not(:last-child)":{paddingBottom:e.spacing(3)},"& > div":{"& > div":{paddingTop:"0 !important"}},paddingBottom:e.spacing(9)},simulationContainer:{minHeight:"442px"},paper:{width:"100%",height:"100%",minHeight:310,backgroundColor:"#293640"},box:{padding:e.spacing(3,3)},boxButton:{padding:e.spacing(3,3)},boxHeader:{padding:e.spacing(3,3),height:e.spacing(10),display:"flex",alignItems:"center",borderBottom:"1px solid #313d47"},boxBorderBottom:{borderBottom:"1px solid #313d47"},initialRaise:{justifyContent:"space-between"},boxChart:{width:"100%",height:"100%",minHeight:310,maxHeight:350,padding:e.spacing(3,3),paddingRight:"5px",paddingLeft:"5px"},boxPlaceholder:{padding:e.spacing(3,3),display:"flex",height:"100%",alignItems:"center",justifyContent:"center",color:e.palette.text.secondary,opacity:.4},header:{backgroundColor:"#0b1216",color:"#f8f8f8",textAlign:"center",padding:e.spacing(3,0,16),marginBottom:-e.spacing(10)},button:{background:"linear-gradient(290deg, #1aa059, #3d9567)",color:"white"},descriptionContainer:{"& > div:not(:last-child)":{paddingBottom:e.spacing(1),marginBottom:e.spacing(1),borderBottom:"1px solid #3f5463"},"& td":{verticalAlign:"top",padding:e.spacing(.5)}},descriptionTitle:{padding:e.spacing(.5)},descriptionBody:{color:"#dbdfe4"},descriptionPadding:{padding:e.spacing(.5)},d0Container:{"& > div":{padding:"0 12px 0 0 !important",display:"flex",alignItems:"center"}},d0Number:{padding:"0 !important",display:"flex",alignItems:"center"},d0Slidder:{padding:"0 12px 0 0 !important",display:"flex",alignItems:"center"}})});var Ke=a(193),$e=a.n(Ke),qe=a(194),Ge=Object(qe.a)({palette:{type:"dark",primary:{main:"#2ecd79"},secondary:{main:"#116be0",light:"#0f8bff",dark:"#116be0"},error:{main:$e.a.A400},background:{default:"#fff",paper:"#293640"},text:{primary:"#fff",secondary:"#9aa3ad"}},typography:{h6:{fontWeight:400}}});console.log(Ge);var Je=Ge;o.a.render(r.a.createElement(l.a,{theme:Je},r.a.createElement(c.a,null),r.a.createElement(function(){var e=Object(n.useState)({theta:.35,p0:.1,p1:.3,wFee:.05,vHalflife:52,d0:3e6}),t=Object(d.a)(e,2),a=t[0],i=t[1],o=a.d0,c=a.theta,l=a.p0,s=a.p1,p=a.wFee,f=a.vHalflife,y=Object(n.useMemo)(function(){return Object(Le.throttle)(i,250)},[]),k=le({d0:o,theta:c,p0:l,p1:s}),O=k.k,C=k.R0,N=k.S0,w=k.V0,B=Object(n.useState)([0]),F=Object(d.a)(B,2),S=F[0],A=F[1],R=Object(n.useState)([0]),T=Object(d.a)(R,2),P=T[0],M=T[1],I=Object(n.useState)([0]),H=Object(d.a)(I,2),D=H[0],V=H[1],G=Object(n.useState)(C),J=Object(d.a)(G,2),U=J[0],X=J[1],Y=Object(n.useState)(0),Z=Object(d.a)(Y,2),ee=Z[0],te=Z[1],ae=Object(n.useState)(0),oe=Object(d.a)(ae,2),ce=oe[0],ve=oe[1],Ee=Object(n.useState)(0),ye=Object(d.a)(Ee,2),ke=ye[0],Oe=ye[1],je=Object(n.useState)(!1),Ne=Object(d.a)(je,2),we=Ne[0],Fe=Ne[1],Se=Object(n.useState)(!1),Ae=Object(d.a)(Se,2),Re=Ae[0],Te=Ae[1];function Pe(){return(Pe=Object(m.a)(u.a.mark(function e(){return u.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return Fe(!1),te(0),A([0]),M([0]),ve(0),e.next=3,ie(0);case 3:Fe(!0);case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}Object(n.useEffect)(function(){Fe(!1)},[a]),Object(n.useEffect)(function(){var e=!0;function t(){return(t=Object(m.a)(u.a.mark(function t(){var a,n,r,i,o,c,l,s,m,d,h;return u.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:a=[C],n=[N],r=[de({R:C,V0:w,k:O})],i=[0],o=[],c=[],l=[N],s=[],m=52,Te(!0),d=function(t){var u=be(5,2*t+5),m=ne(a),d=ne(n),h=ne(l),g=void 0;if(h>d)g=1;else{var b=se({S:d-h,V0:w,k:O})/m;g=Math.max(1-b,.97)}var v=be(g,1.04),x=fe({R:m,k:O,priceGrowth:v}),E=m+x,y=he({sum:x,num:u,spread:10}),k=xe(y.map(function(e){return pe({R:m,deltaR:e,V0:w,k:O})})),j=y.filter(function(e){return e<0}),C=-p*j.reduce(function(e,t){return e+t},0),N=h-ge({week:t,H:h,halflife:f,cliff:8}),B=ue({R:m,V0:w,k:O}),F=me({S:B,H:B-N,V0:w,k:O}),S=xe(j);if(a.push(E),n.push(B),l.push(N),r.push(de({R:E,V0:w,k:O})),o.push(k),c.push(S),i.push(ne(i)+C),s.push(F),te(function(e){return e+j.length}),!we||!e)return"break"},h=0;case 16:if(!(h<m)){t.next=23;break}if("break"!==d(h)){t.next=20;break}return t.abrupt("break",23);case 20:h++,t.next=16;break;case 23:s[s.length]=s[s.length-1],A(r),M(i),V(s),ve(re(o)),Oe(re(c.filter(function(e){return!isNaN(e)}))),X(ne(a)),Te(!1);case 31:case"end":return t.stop()}},t)}))).apply(this,arguments)}return we&&function(){t.apply(this,arguments)}(),function(){e=!1}},[we]);var Me=o*c,Ie=P.map(function(e){return e+Me}),He=[{label:$.totalReserve.name,description:$.totalReserve.text,value:(+U.toPrecision(3)).toLocaleString()+" DAI"},{label:$.initialHatchFunds.name,description:$.initialHatchFunds.text,value:Math.round(o*c).toLocaleString()+" DAI"},{label:$.exitTributes.name,description:$.exitTributes.text,value:(+ne(P).toPrecision(3)).toLocaleString()+" DAI",valueFooter:"From ".concat(ee," exit txs")},{label:$.slippage.name,description:$.slippage.text,value:+(100*ce).toFixed(3)+" %",valueFooter:"Avg tx size ".concat(Math.round(ke).toLocaleString()," DAI")}],De=We();return r.a.createElement(r.a.Fragment,null,r.a.createElement("header",{className:De.header},r.a.createElement(h.a,{fixed:!0},r.a.createElement(j,null))),r.a.createElement(h.a,{fixed:!0,className:De.mainContainer},r.a.createElement(x.a,{container:!0,spacing:3},r.a.createElement(x.a,{item:!0,xs:12,sm:12,md:6,lg:4},r.a.createElement(v.a,{className:De.paper},r.a.createElement(b.a,{className:De.boxHeader},r.a.createElement(g.a,{variant:"h6"},"Curve Design"),r.a.createElement(Q,{title:"Parameters description",table:[L.theta,L.p0,L.p1,L.wFee,L.vHalflife]})),r.a.createElement(b.a,{className:"".concat(De.box," ").concat(De.boxBorderBottom)},r.a.createElement(q,{curveParams:a,setCurveParams:y})))),r.a.createElement(x.a,{item:!0,xs:12,sm:12,md:6,lg:8},r.a.createElement(v.a,{className:De.paper},r.a.createElement(b.a,{className:De.boxHeader},r.a.createElement(g.a,{variant:"h6"},"Preview"),r.a.createElement(Q,{body:z})),r.a.createElement(b.a,{className:De.boxChart},r.a.createElement(Ce,{theta:c,d0:o,p0:l,p1:s}))))),r.a.createElement(x.a,{container:!0,spacing:3},r.a.createElement(x.a,{item:!0,xs:12},r.a.createElement(v.a,null,r.a.createElement(b.a,{className:"".concat(De.box," ").concat(De.boxBorderBottom)},r.a.createElement(_,{curveParams:a,setCurveParams:y})),r.a.createElement(b.a,{className:De.boxHeader},r.a.createElement(x.a,{container:!0,direction:"row",justify:"center",alignItems:"center"},r.a.createElement(E.a,{variant:"contained",className:De.button,onClick:function(){return Pe.apply(this,arguments)},disabled:Re},"Run simulation")))))),r.a.createElement(x.a,{container:!0,spacing:3,className:De.simulationContainer},we?r.a.createElement(r.a.Fragment,null,r.a.createElement(x.a,{item:!0,xs:12,sm:12,md:6,lg:8},r.a.createElement(v.a,{className:De.paper},r.a.createElement(b.a,{className:De.boxHeader},r.a.createElement(g.a,{variant:"h6"},"Simulation"),r.a.createElement(Q,{body:W,table:Object.values(K)})),r.a.createElement(b.a,{className:De.boxChart},r.a.createElement(Ve,{priceTimeseries:S,floorpriceTimeseries:D,totalFundsRaisedTimeseries:Ie,simulationDuration:ze,p0:l,p1:s})))),r.a.createElement(x.a,{item:!0,xs:12,sm:12,md:6,lg:4},r.a.createElement(v.a,{className:De.paper},r.a.createElement(b.a,{className:De.boxHeader},r.a.createElement(g.a,{variant:"h6"},"Results"),r.a.createElement(Q,{title:"Result parameters description",table:Object.values($)})),r.a.createElement(b.a,{className:De.box},r.a.createElement(Be,{resultFields:He,simulationDuration:ze}))))):r.a.createElement(x.a,{item:!0,xs:12},r.a.createElement(v.a,{className:De.paper},r.a.createElement(b.a,{className:De.boxPlaceholder},r.a.createElement(g.a,{variant:"h6"},"Run a simulation to see results")))))))},null)),document.querySelector("#root"))}},[[226,1,2]]]);
//# sourceMappingURL=main.461d04f1.chunk.js.map