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

2 lines
12 KiB
JavaScript

(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{206:function(e,t,a){e.exports=a(401)},394:function(e,t,a){},401:function(e,t,a){"use strict";a.r(t);var n=a(1),r=a.n(n),i=a(22),c=a.n(i),o=a(430),l=a(429),s=a(62),m=a.n(s),u=a(108),d=a(16),p=a(402),b=a(435),h=a(427),f=a(403),g=a(431),x=a(428),v=a(426),E=a(432),k=a(434),j=a(425),O=Object(p.a)(function(e){return Object(b.a)({root:{margin:e.spacing(3,0,0)},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},link:{color:"#4ab47c"}})});function y(){var e=O();return r.a.createElement(r.a.Fragment,null,r.a.createElement(f.a,{variant:"h4",component:"h1",gutterBottom:!0},"Augmented Token Bonding Curve Design"),r.a.createElement(f.a,{className:e.root},"Experiment and test augmented token bonding curves, part of the"," ",r.a.createElement(j.a,{className:e.link,href:"https://commonsstack.org/"},"Commons Stack")))}var w=a(11),B=a(433),A=Object(w.a)({root:{color:"#4ab47c",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:{color:"#90a4ae",top:30}})(B.a),C=Object(p.a)(function(e){return Object(b.a)({root:{margin:e.spacing(6,0,3)},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},leftContainer:{color:"#90a4ae"},centerContainer:{color:"#141e27"},listBoxContainer:{"& > div:not(:last-child)":{paddingBottom:"12px",marginBottom:"12px",borderBottom:"1px solid #e0e0e0"}},listBox:{height:"48px","& > div":{display:"flex",alignItems:"center","& p":{marginBottom:0}},"& > div:not(:last-child)":{paddingRight:"12px"}}})});function S(e){var t=e.inputFields,a=C();return r.a.createElement("div",{className:a.listBoxContainer},t.map(function(e){var t=e.label,n=e.value,i=e.setter,c=e.min,o=e.max,l=e.step,s=e.display;return r.a.createElement(v.a,{key:t,container:!0,spacing:0,className:a.listBox},r.a.createElement(v.a,{item:!0,xs:6,className:a.leftContainer},r.a.createElement(f.a,{id:t,gutterBottom:!0},t)),r.a.createElement(v.a,{item:!0,xs:2,className:a.centerContainer},r.a.createElement(f.a,{gutterBottom:!0},s(n))),r.a.createElement(v.a,{item:!0,xs:4},r.a.createElement(A,{valueLabelDisplay:"auto","aria-label":t,defaultValue:n,onChange:function(e,t){return i(Number(t))},min:c,max:o,step:l,valueLabelFormat:function(e){return s(e).replace("$","")}})))}))}var I=a(41),N=a(10);function F(e){for(var t=e.from,a=void 0===t?0:t,n=e.to,r=e.steps,i=[],c=a;c<=n;c+=(n-a)/r)i.push(c);return i}function M(e){return e[e.length-1]}function D(e){return e.reduce(function(e,t){return e+Math.abs(t)},0)/e.length}function R(e){return new Promise(function(t){return setTimeout(t,e)})}var L="#90a4ae",P="#4ab47c",T="#bbe3cd";function H(e){var t=e.textAnchor,a=e.viewBox;return r.a.createElement("text",{x:a.x+10,y:30,fill:L,textAnchor:t},"Initial value")}var K=function(e){for(var t=e.returnF,a=e.theta,n=e.d0,i=e.p0,c=t/(1-a),o=(1-a/100)*n,l=n/i,s=function(e){return l*Math.pow(e/o,1/c)},m=4*o,u=(m-0)/100,p=Math.max(m,s(m)),b=p>5e8?[1e9,"B"]:p>5e5?[1e6,"M"]:p>500?[1e3,"K"]:[1,""],h=Object(d.a)(b,2),f=h[0],g=h[1],x=[],v=0;v<=m;v+=u){var E;x.push((E={},Object(I.a)(E,"x",v),Object(I.a)(E,"Supply (tokens) / Reserve (DAI)",s(v)),E))}var k=function(e){return(+(e/f).toPrecision(2)).toLocaleString()};return r.a.createElement(N.f,{debounce:1},r.a.createElement(N.b,{width:0,height:400,data:x,margin:{top:10,right:30,left:0,bottom:0}},r.a.createElement(N.c,{strokeDasharray:"3 3"}),r.a.createElement(N.h,{interval:"preserveStartEnd",ticks:F({to:m,steps:4}),dataKey:"x",tickFormatter:k,unit:g,tick:{fill:L},stroke:L}),r.a.createElement(N.i,{interval:"preserveStartEnd",ticks:F({to:s(m),steps:3}),tickFormatter:k,unit:g,tick:{fill:L},domain:[0,s(m)],stroke:L}),r.a.createElement(N.g,{formatter:function(e){return k(Number(e))}}),r.a.createElement(N.a,{isAnimationActive:!1,type:"monotone",dataKey:"Supply (tokens) / Reserve (DAI)",stroke:P,fill:T}),r.a.createElement(N.e,{x:o,stroke:"#90a4ae",strokeDasharray:"6 3",label:r.a.createElement(H,null)}),r.a.createElement(N.d,{formatter:function(e){return r.a.createElement("span",{style:{color:L}},e)}})))},$=Object(p.a)(function(e){return Object(b.a)({root:{margin:e.spacing(6,0,3)},lightBulb:{verticalAlign:"middle",marginRight:e.spacing(1)},leftContainer:{color:"#90a4ae"},centerContainer:{color:"#141e27"},listBoxContainer:{"& > div:not(:last-child)":{marginBottom:"12px",borderBottom:"1px solid #e0e0e0"}},listBox:{height:"48px",paddingBottom:"12px","& > div":{display:"flex",alignItems:"center","& p":{marginBottom:0}},"& > div:not(:last-child)":{paddingRight:"12px"}}})});function J(e){var t=e.resultFields,a=$();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(f.a,{id:t,gutterBottom:!0},t)),r.a.createElement(v.a,{item:!0,xs:4,className:a.centerContainer},r.a.createElement(f.a,{gutterBottom:!0},n)))}))}var q=a(112),z="#90a4ae",V="#4ab47c",W="#b44a9b";var G=function(e){for(var t=e.priceTimeseries,a=e.withdrawFeeTimeseries,n=(e.p0,[]),i=0;i<t.length;i++){var c;n.push((c={},Object(I.a)(c,"x",i),Object(I.a)(c,"Price (DAI / token)",t[i]||0),Object(I.a)(c,"Collected withdraw fee (DAI)",a[i]||0),c))}return r.a.createElement(N.f,{debounce:1},r.a.createElement(N.b,{width:0,height:400,data:n,margin:{top:10,right:30,left:0,bottom:0}},r.a.createElement(N.c,{strokeDasharray:"3 3"}),r.a.createElement(N.h,{dataKey:"x",tick:{fill:z},stroke:z}),r.a.createElement(N.i,{yAxisId:"left",domain:[Math.min.apply(Math,Object(q.a)(t)),Math.max.apply(Math,Object(q.a)(t))],tickFormatter:function(e){return(+e.toPrecision(3)).toLocaleString()},tick:{fill:z},stroke:z}),r.a.createElement(N.i,{yAxisId:"right",orientation:"right",tick:{fill:z},stroke:z}),r.a.createElement(N.g,{formatter:function(e){return Number(e)}}),r.a.createElement(N.a,{isAnimationActive:!1,yAxisId:"left",type:"monotone",dataKey:"Price (DAI / token)",stroke:V,fill:V}),r.a.createElement(N.a,{isAnimationActive:!1,yAxisId:"right",type:"monotone",dataKey:"Collected withdraw fee (DAI)",stroke:W,fill:W}),r.a.createElement(N.d,{formatter:function(e){return r.a.createElement("span",{style:{color:z}},e)}})))},Q=(a(394),Object(p.a)(function(e){return Object(b.a)({mainContainer:{"& > div:not(:last-child)":{paddingBottom:e.spacing(6)},"& > div":{"& > div":{paddingTop:"0 !important"}}},paper:{width:"100%",height:"100%",minHeight:310},box:{padding:e.spacing(3,3),minHeight:310},boxHeader:{padding:e.spacing(3,3),height:e.spacing(10),display:"flex",alignItems:"center",borderBottom:"1px solid #e0e0e0"},boxChart:{width:"100%",height:"100%",minHeight:310,maxHeight:350,padding:e.spacing(3,3),paddingRight:"5px",paddingLeft:"5px"},header:{backgroundColor:"#070a0e",color:"#f5f7f8",padding:e.spacing(9,0,16),marginBottom:-e.spacing(10)},button:{background:"linear-gradient(290deg, #2ad179, #4ab47c)",color:"white"}})}));var U=a(175),X=a.n(U),Y=a(176),Z=Object(Y.a)({palette:{primary:{main:"#556cd6"},secondary:{main:"#19857b"},error:{main:X.a.A400},background:{default:"#fff"}}});c.a.render(r.a.createElement(l.a,{theme:Z},r.a.createElement(o.a,null),r.a.createElement(function(){var e=Object(n.useState)(1e6),t=Object(d.a)(e,2),a=t[0],i=t[1],c=Object(n.useState)(.35),o=Object(d.a)(c,2),l=o[0],s=o[1],p=Object(n.useState)(.1),b=Object(d.a)(p,2),j=b[0],O=b[1],w=Object(n.useState)(3),B=Object(d.a)(w,2),A=B[0],C=B[1],I=Object(n.useState)(.05),N=Object(d.a)(I,2),F=N[0],L=N[1],P=A/(1-l),T=(1-l/100)*a,H=a/j,$=Math.pow(H,P)/T,q=Object(n.useState)([0]),z=Object(d.a)(q,2),V=z[0],W=z[1],U=Object(n.useState)([0]),X=Object(d.a)(U,2),Y=X[0],Z=X[1],_=Object(n.useState)(T),ee=Object(d.a)(_,2),te=ee[0],ae=ee[1],ne=Object(n.useState)(0),re=Object(d.a)(ne,2),ie=re[0],ce=re[1],oe=Object(n.useState)(0),le=Object(d.a)(oe,2),se=le[0],me=le[1],ue=Object(n.useState)(1e4),de=Object(d.a)(ue,1)[0],pe=Object(n.useState)(!1),be=Object(d.a)(pe,2),he=be[0],fe=be[1],ge=Object(n.useState)(!1),xe=Object(d.a)(ge,2),ve=xe[0],Ee=xe[1];function ke(){return(ke=Object(u.a)(m.a.mark(function e(){return m.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return je(),e.next=3,R(0);case 3:fe(!0);case 4:case"end":return e.stop()}},e)}))).apply(this,arguments)}function je(){fe(!1),ce(0),W([0]),Z([0]),me(0)}Object(n.useEffect)(function(){var e=!0;function t(){return(t=Object(u.a)(m.a.mark(function t(){var a,n,r,i,c,o,l,s,u,d,p,b,h,f,g,x,v,E,k,j,O,y,w,B,A,C;return m.a.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:for(a=[T],n=[H],r=[T/H],i=[0],c=[],o=100,l=1,s=[],u=0;u<o;u++)d=1-2*Math.random(),p=Math.sin(u/o*.05),b=Math.sin(Math.PI/1*(u/o)),h=1e5*d+1e5*p+2e4*b,s.push(h);f=D(s),g=s.map(function(e){return de*e/f}),Ee(!0),x=0;case 13:if(!(x<o)){t.next=41;break}if(v=g[x],E=M(a),k=M(n),j=M(r),O=E+v,y=Math.pow($*(E+v),1/P)-k,w=k+y,a.push(O),n.push(w),r.push(O/w),v<0?(i.push(M(i)-v*F),ce(function(e){return e+1})):i.push(M(i)),B=M(r),A=j,C=Math.abs(B-A)/A/2,c.push(C),he&&e){t.next=31;break}return t.abrupt("break",41);case 31:if(x%l!==0){t.next=38;break}return W(r),Z(i),me(D(c)),ae(O),t.next=38,R(5);case 38:x++,t.next=13;break;case 41:Ee(!1);case 42:case"end":return t.stop()}},t)}))).apply(this,arguments)}return he&&function(){t.apply(this,arguments)}(),function(){e=!1}},[he]);var Oe=[{label:"Initial raise",value:a,setter:i,min:1e5,max:1e7,step:1e5,display:function(e){return"$".concat(+(1e-6*e).toFixed(1),"M")}},{label:"Allocation to the project",value:l,setter:s,min:0,max:.9,step:.01,display:function(e){return"".concat(Math.round(100*e),"%")}},{label:"Initial token price",value:j,setter:O,min:.01,max:1,step:.01,display:function(e){return"$".concat(e)}},{label:"Return factor",value:A,setter:C,min:1,max:10,step:.1,display:function(e){return"".concat(e,"x")}},{label:"Withdrawl fee",value:F,setter:L,min:0,max:.1,step:.001,display:function(e){return"".concat(+(100*e).toFixed(1),"%")}}],ye=[{label:"Average slippage (avg tx size ".concat(de," DAI)"),value:+(100*se).toFixed(3)+"%"},{label:"Capital collected from withdraw fees (".concat(ie," txs)"),value:(+M(Y).toPrecision(3)).toLocaleString()+" DAI"},{label:"Total reserve",value:(+te.toPrecision(3)).toLocaleString()+" DAI"}],we=Q();return r.a.createElement(r.a.Fragment,null,r.a.createElement("header",{className:we.header},r.a.createElement(h.a,{fixed:!0},r.a.createElement(y,null))),r.a.createElement(h.a,{fixed:!0,className:we.mainContainer},r.a.createElement(v.a,{container:!0,spacing:3},r.a.createElement(v.a,{item:!0,xs:12,md:6},r.a.createElement(x.a,{className:we.paper},r.a.createElement(g.a,{className:we.boxHeader},r.a.createElement(v.a,{container:!0,direction:"row",justify:"space-between",alignItems:"center"},r.a.createElement(f.a,{variant:"h6"},he?"Results":"Curve Design"),r.a.createElement(k.a,{in:he},r.a.createElement(E.a,{variant:"contained",onClick:je},"Back to design")))),r.a.createElement(g.a,{className:we.box},he?r.a.createElement(J,{resultFields:ye}):r.a.createElement(S,{inputFields:Oe})))),r.a.createElement(v.a,{item:!0,xs:12,md:6},r.a.createElement(x.a,{className:we.paper},r.a.createElement(g.a,{className:we.boxHeader},r.a.createElement(v.a,{container:!0,direction:"row",justify:"space-between",alignItems:"center"},r.a.createElement(f.a,{variant:"h6"},"Preview"),r.a.createElement(E.a,{variant:"contained",className:we.button,onClick:function(){return ke.apply(this,arguments)},disabled:ve},"Run simulation"))),r.a.createElement(g.a,{className:we.boxChart},he?r.a.createElement(G,{priceTimeseries:V,withdrawFeeTimeseries:Y,p0:j}):r.a.createElement(K,{returnF:A,theta:l,d0:a,p0:j})))))))},null)),document.querySelector("#root"))}},[[206,1,2]]]);
//# sourceMappingURL=main.58438057.chunk.js.map