augmented-tbc-design/static/js/main.a20a0fcc.chunk.js

2 lines
16 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{223:function(e,t,a){e.exports=a(419)},412:function(e,t,a){},419:function(e,t,a){"use strict";a.r(t);var n=a(1),r=a.n(n),i=a(13),o=a.n(i),c=a(459),l=a(458),s=a(63),m=a.n(s),u=a(117),p=a(17),d=a(420),f=a(465),g=a(457),h=a(454),x=a(461),b=a(456),v=a(455),E=a(463),y=Object(d.a)(function(e){return Object(f.a)({title:{},subtitle:{color:e.palette.text.secondary,margin:e.spacing(3,0,0)},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 k(){var e=y();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(h.a,{className:e.logoText},"Commons Stack")),r.a.createElement(h.a,{className:e.title,variant:"h4"},"Augmented Token Bonding Curve Design"),r.a.createElement(h.a,{className:e.subtitle},"Experiment and test augmented token bonding curves"))}var j=a(191),O=a(7),w=a(464),C=a(460),N=a(174),S=a.n(N),F=Object(O.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}})(w.a),B=Object(d.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 A(e){var t=e.inputRef,a=e.onChange,n=e.prefix,i=e.suffix,o=Object(j.a)(e,["inputRef","onChange","prefix","suffix"]);return r.a.createElement(S.a,Object.assign({},o,{getInputRef:t,onValueChange:function(e){a({target:{value:e.value}})},thousandSeparator:!0,prefix:n,suffix:i}))}function R(e){e.curveParams;var t=e.setCurveParams,a=Object(n.useState)(1e6),i=Object(p.a)(a,2),o=i[0],c=i[1],l=Object(n.useState)(.35),s=Object(p.a)(l,2),m=s[0],u=s[1],d=Object(n.useState)(.1),f=Object(p.a)(d,2),g=f[0],x=f[1],b=Object(n.useState)(3),E=Object(p.a)(b,2),y=E[0],k=E[1],j=Object(n.useState)(.05),O=Object(p.a)(j,2),w=O[0],N=O[1];function S(){t({d0:o,theta:m,p0:g,returnF:y,wFee:w})}var R=[{label:"Initial raise",value:o,setter:c,min:1e5,max:1e7,step:1e5,unit:"$M",prefix:"$",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))}},{label:"Allocation to project",value:m,setter:u,min:0,max:.9,step:.01,unit:"%",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:"Initial token price",value:g,setter:x,min:.01,max:1,step:.01,unit:"$",prefix:"$",toText:function(e){return String(+e.toFixed(2))},toNum:function(e){return parseFloat(e)},format:function(e){return"$".concat(e)}},{label:"Return factor",value:y,setter:k,min:1,max:10,step:.1,unit:"x",suffix:"x",toText:function(e){return String(+e.toFixed(1))},toNum:function(e){return parseFloat(e)},format:function(e){return"".concat(e,"x")}},{label:"Withdrawl fee",value:w,setter:N,min:0,max:.1,step:.001,unit:"%",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)}}],I=B();return r.a.createElement("div",{className:I.listBoxContainer},R.map(function(e){var t=e.label,a=e.value,n=e.setter,i=e.min,o=e.max,c=e.step,l=e.prefix,s=e.suffix,m=e.format,u=e.toText,p=e.toNum;function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;isNaN(e)&&(e=0),e>o?e=o:e<i&&(e=i),n(e)}return r.a.createElement(v.a,{key:t,container:!0,spacing:0,className:I.listBox},r.a.createElement(v.a,{item:!0,xs:6,className:I.leftContainer},r.a.createElement(h.a,{id:t,gutterBottom:!0},t)),r.a.createElement(v.a,{item:!0,xs:2,className:I.centerContainer},r.a.createElement(C.a,{onChange:function(e){d(p?p(e.target.value):parseFloat(e.target.value)),S()},InputProps:{inputComponent:A,disableUnderline:!0,inputProps:{prefix:l,suffix:s}},value:u?u(a):a})),r.a.createElement(v.a,{item:!0,xs:4},r.a.createElement(F,{className:I.slider,valueLabelDisplay:"auto","aria-label":t,defaultValue:a,onChange:function(e,t){return d(Number(t))},onChangeCommitted:S,value:a,min:i,max:o,step:c,valueLabelFormat:function(e){return m(e).replace("$","")}})))}))}var I=a(48),M=a(16);function T(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 P(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 L(e){return e[e.length-1]}function D(e){return e.reduce(function(e,t){return e+Math.abs(t)},0)/e.length}function H(e){return new Promise(function(t){return setTimeout(t,e)})}var V=a(192);var $=function(e){for(var t=e.returnF,a=e.theta,n=e.d0,i=e.p0,o=t/(1-a),c=(1-a/100)*n,l=n/i,s=function(e){return l*Math.pow(e/c,1/o)},m=4*c,u=(m-0)/100,d=Math.max(m,s(m)),f=d>5e8?[1e9,"B"]:d>5e5?[1e6,"M"]:d>500?[1e3,"K"]:[1,""],g=Object(p.a)(f,2),h=g[0],x=g[1],b="Supply (tokens) / Reserve (DAI)",v=[],E=0;E<=m;E+=u){var y;v.push((y={},Object(I.a)(y,"x",E),Object(I.a)(y,b,s(E)),y))}var k=Object(V.a)(),j=function(e){return(+(e/h).toPrecision(2)).toLocaleString()};return r.a.createElement(M.f,{debounce:1},r.a.createElement(M.b,{width:0,height:400,data:v,margin:{top:10,right:30,left:0,bottom:0}},r.a.createElement(M.c,{strokeDasharray:"3 3"}),r.a.createElement(M.h,{interval:"preserveStartEnd",ticks:P(v.map(function(e){return e.x}),4),dataKey:"x",tickFormatter:j,unit:x,tick:{fill:k.palette.text.secondary},stroke:k.palette.text.secondary}),r.a.createElement(M.i,{interval:"preserveStartEnd",ticks:P(v.map(function(e){return e[b]}),3),tickFormatter:j,unit:x,tick:{fill:k.palette.text.secondary},domain:[0,s(m)],stroke:k.palette.text.secondary}),r.a.createElement(M.g,{formatter:function(e){return j(Number(e))}}),r.a.createElement(M.a,{isAnimationActive:!1,type:"monotone",dataKey:b,stroke:k.palette.primary.main,fill:k.palette.primary.main}),r.a.createElement(M.e,{x:c,stroke:"#90a4ae",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:k.palette.text.secondary,textAnchor:t},"Initial value")},null)}),r.a.createElement(M.d,{formatter:function(e){return r.a.createElement("span",{style:{color:k.palette.text.secondary}},e)}})))},z=Object(d.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"}}})});function K(e){var t=e.resultFields,a=z();return r.a.createElement("div",{className:a.listBoxContainer},t.map(function(e){var t=e.label,n=e.value;return r.a.createElement(v.a,{key:t,container:!0,spacing:0,className:a.listBox},r.a.createElement(v.a,{item:!0,xs:8,className:a.leftContainer},r.a.createElement(h.a,{id:t,gutterBottom:!0},t)),r.a.createElement(v.a,{item:!0,xs:4,className:a.centerContainer},r.a.createElement(h.a,{gutterBottom:!0},n)))}))}var W=a(90);var J=function(e){for(var t=e.priceTimeseries,a=e.withdrawFeeTimeseries,n=(e.p0,[]),i=0;i<t.length;i++){var o;n.push((o={},Object(I.a)(o,"x",i),Object(I.a)(o,"Price (DAI / token)",t[i]||0),Object(I.a)(o,"Collected withdraw fee (DAI)",a[i]||0),o))}var c=Object(V.a)();return r.a.createElement(M.f,{debounce:1},r.a.createElement(M.b,{width:0,height:400,data:n,margin:{top:10,right:30,left:0,bottom:0}},r.a.createElement(M.c,{strokeDasharray:"3 3"}),r.a.createElement(M.h,{dataKey:"x",tick:{fill:c.palette.text.secondary},stroke:c.palette.text.secondary,ticks:[].concat(Object(W.a)(T({to:t.length,steps:4}).map(Math.floor)),[t.length-1])}),r.a.createElement(M.i,{yAxisId:"left",domain:[Math.min.apply(Math,Object(W.a)(t)),Math.max.apply(Math,Object(W.a)(t))],tickFormatter:function(e){return(+e.toPrecision(3)).toLocaleString()},tick:{fill:c.palette.text.secondary},stroke:c.palette.text.secondary}),r.a.createElement(M.i,{yAxisId:"right",orientation:"right",tick:{fill:c.palette.text.secondary},stroke:c.palette.text.secondary}),r.a.createElement(M.g,{formatter:function(e){return Number(e)}}),r.a.createElement(M.a,{isAnimationActive:!1,yAxisId:"left",type:"monotone",dataKey:"Price (DAI / token)",stroke:c.palette.primary.main,fill:c.palette.primary.main}),r.a.createElement(M.a,{isAnimationActive:!1,yAxisId:"right",type:"monotone",dataKey:"Collected withdraw fee (DAI)",stroke:c.palette.secondary.main,fill:c.palette.secondary.main}),r.a.createElement(M.d,{formatter:function(e){return r.a.createElement("span",{style:{color:c.palette.text.secondary}},e)}})))},q=a(462),U=a(184),G=a.n(U),Q=Object(d.a)(function(e){return{container:{display:"flex",marginLeft:"6px",fontSize:"0.9rem",cursor:"pointer",transition:"opacity ease 150ms",opacity:.2,"&:hover":{opacity:.85}},typography:{padding:e.spacing(2)},paper:{backgroundColor:"#384b59"}}});function X(e){var t=e.text,a=Q(),n=r.a.useState(null),i=Object(p.a)(n,2),o=i[0],c=i[1];var l=Boolean(o),s=l?"simple-popover":void 0;return r.a.createElement("div",{className:a.container},r.a.createElement(G.a,{onClick:function(e){c(e.currentTarget)}}),r.a.createElement(q.a,{PaperProps:{className:a.paper},id:s,open:l,anchorEl:o,onClose:function(){c(null)},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"}},r.a.createElement(h.a,{className:a.typography},t)))}function Y(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 Z(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=Y({R:t,V0:n,k:r});return Math.abs(o-c)/c}function _(e){for(var t=e.numSteps,a=e.avgTxSize,n=[],r=0;r<t;r++){var i=1e5*(1-2*Math.random())+1e5*Math.sin(r/t*.05)+2e4*Math.sin(Math.PI/1*(r/t));n.push(i)}var o=D(n);return n.map(function(e){return a*e/o})}var ee=a(185),te=(a(412),Object(d.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)},paper:{width:"100%",height:"100%",minHeight:310,backgroundColor:"#293640"},box:{padding:e.spacing(3,3),minHeight:310},boxButton:{padding:e.spacing(3,3)},boxHeader:{padding:e.spacing(3,3),height:e.spacing(10),display:"flex",alignItems:"center",borderBottom:"1px solid #313d47"},boxChart:{width:"100%",height:"100%",minHeight:310,maxHeight:350,padding:e.spacing(3,3),paddingRight:"5px",paddingLeft:"5px"},header:{backgroundColor:"#0b1216",color:"#f8f8f8",textAlign:"center",padding:e.spacing(3,0,16),marginBottom:-e.spacing(10)},button:{background:"linear-gradient(290deg, #2ad179, #4ab47c)",color:"white"}})}));var ae=a(189),ne=a.n(ae),re=a(190),ie=Object(re.a)({palette:{type:"dark",primary:{main:"#2ecd79"},secondary:{main:"#116be0"},error:{main:ne.a.A400},background:{default:"#fff",paper:"#293640"},text:{primary:"#fff",secondary:"#9aa3ad"}},typography:{h6:{fontWeight:400}}});console.log(ie);var oe=ie;o.a.render(r.a.createElement(l.a,{theme:oe},r.a.createElement(c.a,null),r.a.createElement(function(){var e=Object(n.useState)({d0:1e6,theta:.35,p0:.1,returnF:3,wFee:.05}),t=Object(p.a)(e,2),a=t[0],i=t[1],o=a.d0,c=a.theta,l=a.p0,s=a.returnF,d=a.wFee,f=Object(n.useMemo)(function(){return Object(ee.throttle)(i,1e3)},[]),y=function(e){var t=e.d0,a=e.theta,n=e.p0,r=e.returnF/(1-a),i=(1-a)*t,o=t/n;return{k:r,R0:i,S0:o,V0:Math.pow(o,r)/i}}({d0:o,theta:c,p0:l,returnF:s}),j=y.k,O=y.R0,w=(y.S0,y.V0),C=Object(n.useState)([0]),N=Object(p.a)(C,2),S=N[0],F=N[1],B=Object(n.useState)([0]),A=Object(p.a)(B,2),I=A[0],M=A[1],T=Object(n.useState)(O),P=Object(p.a)(T,2),V=P[0],z=P[1],W=Object(n.useState)(0),q=Object(p.a)(W,2),U=q[0],G=q[1],Q=Object(n.useState)(0),ae=Object(p.a)(Q,2),ne=ae[0],re=ae[1],ie=Object(n.useState)(1e4),oe=Object(p.a)(ie,1)[0],ce=Object(n.useState)(!1),le=Object(p.a)(ce,2),se=le[0],me=le[1],ue=Object(n.useState)(!1),pe=Object(p.a)(ue,2),de=pe[0],fe=pe[1];function ge(){return(ge=Object(u.a)(m.a.mark(function e(){return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return me(!1),G(0),F([0]),M([0]),re(0),e.next=3,H(0);case 3:me(!0);case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}Object(n.useEffect)(function(){var e=!0;function t(){return(t=Object(u.a)(m.a.mark(function t(){var a,n,r,i,o,c,l,s,u,p,f;return m.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:a=[O],n=[Y({R:O,V0:w,k:j})],r=[0],i=[],c=1,l=_({numSteps:o=100,avgTxSize:oe}),fe(!0),s=0;case 9:if(!(s<o)){t.next=29;break}if(u=l[s],p=L(a),f=p+u,a.push(f),n.push(Y({R:f,V0:w,k:j})),i.push(Z({R:p,deltaR:u,V0:w,k:j})),u<0?(r.push(L(r)-u*d),G(function(e){return e+1})):r.push(L(r)),se&&e){t.next=19;break}return t.abrupt("break",29);case 19:if(s%c!==0){t.next=26;break}return F(n),M(r),re(D(i)),z(f),t.next=26,H(5);case 26:s++,t.next=9;break;case 29:fe(!1);case 30:case"end":return t.stop()}},t)}))).apply(this,arguments)}return se&&function(){t.apply(this,arguments)}(),function(){e=!1}},[se]);var he=[{label:"Average slippage (avg tx size ".concat(oe," DAI)"),value:+(100*ne).toFixed(3)+"%"},{label:"Capital collected from withdraw fees (".concat(U," txs)"),value:(+L(I).toPrecision(3)).toLocaleString()+" DAI"},{label:"Total reserve",value:(+V.toPrecision(3)).toLocaleString()+" DAI"}],xe=te();return r.a.createElement(r.a.Fragment,null,r.a.createElement("header",{className:xe.header},r.a.createElement(g.a,{fixed:!0},r.a.createElement(k,null))),r.a.createElement(g.a,{fixed:!0,className:xe.mainContainer},r.a.createElement(v.a,{container:!0,spacing:3},r.a.createElement(v.a,{item:!0,xs:12,sm:12,md:6,lg:4},r.a.createElement(b.a,{className:xe.paper},r.a.createElement(x.a,{className:xe.boxHeader},r.a.createElement(h.a,{variant:"h6"},"Curve Design"),r.a.createElement(X,{text:r.a.createElement("span",null,"Description of the different parameters ",r.a.createElement("br",null),"Initial raise: Lorem ipsum ",r.a.createElement("br",null),"Allocation to project: Lorem ipsum ",r.a.createElement("br",null),"Initial token price: Lorem ipsum ",r.a.createElement("br",null),"Return factor: Lorem ipsum ",r.a.createElement("br",null),"Withdrawl fee: Lorem ipsum")})),r.a.createElement(x.a,{className:xe.box},r.a.createElement(R,{setCurveParams:f})))),r.a.createElement(v.a,{item:!0,xs:12,sm:12,md:6,lg:8},r.a.createElement(b.a,{className:xe.paper},r.a.createElement(x.a,{className:xe.boxHeader},r.a.createElement(h.a,{variant:"h6"},"Preview"),r.a.createElement(X,{text:r.a.createElement("span",null,"Preview of the token bonding curve")})),r.a.createElement(x.a,{className:xe.boxChart},r.a.createElement($,{returnF:s,theta:c,d0:o,p0:l}))))),r.a.createElement(v.a,{container:!0,spacing:3},r.a.createElement(v.a,{item:!0,xs:12,md:12},r.a.createElement(b.a,null,r.a.createElement(x.a,{className:xe.boxHeader},r.a.createElement(v.a,{container:!0,direction:"row",justify:"center",alignItems:"center"},r.a.createElement(E.a,{variant:"contained",className:xe.button,onClick:function(){return ge.apply(this,arguments)},disabled:de},"Run simulation")))))),se&&r.a.createElement(v.a,{container:!0,spacing:3},r.a.createElement(v.a,{item:!0,xs:12,sm:12,md:6,lg:8},r.a.createElement(b.a,{className:xe.paper},r.a.createElement(x.a,{className:xe.boxHeader},r.a.createElement(h.a,{variant:"h6"},"Simulation"),r.a.createElement(X,{text:r.a.createElement("span",null,"Some context about this simulation")})),r.a.createElement(x.a,{className:xe.boxChart},r.a.createElement(J,{priceTimeseries:S,withdrawFeeTimeseries:I,p0:l})))),r.a.createElement(v.a,{item:!0,xs:12,sm:12,md:6,lg:4},r.a.createElement(b.a,{className:xe.paper},r.a.createElement(x.a,{className:xe.boxHeader},r.a.createElement(h.a,{variant:"h6"},"Results"),r.a.createElement(X,{text:r.a.createElement("span",null,"Explanation of what do this results mean")})),r.a.createElement(x.a,{className:xe.box},r.a.createElement(K,{resultFields:he})))))))},null)),document.querySelector("#root"))}},[[223,1,2]]]);
//# sourceMappingURL=main.a20a0fcc.chunk.js.map