@dodoex/widgets 3.0.1-solana.1 → 3.0.1-solana.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import e from"bignumber.js";import{merge as t,throttle as i,debounce as o}from"lodash";import r,{useEffect as n,useMemo as l,useRef as s,useState as a}from"react";import d from"@emotion/styled";import{css as u}from"@emotion/react";import{Stage as c,Layer as p,Rect as m,Line as g,Text as h,Circle as b,Label as f,Tag as M}from"react-konva";import{c as x,e as v,a as y,b as P,d as w,f as j,u as z,g as L,h as k,l as B,i as C,j as S,k as N}from"./helper-BDlZKsz2.js";import{f as O,j as X,a as T,b as A}from"./index-CIb0BonQ.js";import{solveQuadraticFunctionForTarget as q,PMMModel as W}from"@dodoex/api";import"@lingui/core";import"@lingui/react";import"@dodoex/components";import"react-redux";import"identicon.js";import"@web3-react/core";import"@web3-react/eip1193";import"@web3-react/walletconnect-v2";import"@web3-react/metamask";import"@web3-react/types";import"@solana/wallet-adapter-react";import"@reduxjs/toolkit";import"redux";import"@tanstack/react-query";import"@solana/web3.js";import"react-dom";import"react-window";import"@ethersproject/bignumber";import"dayjs";import"react-transition-group";import"zustand";import"@solana/wallet-adapter-base";import"@solana/wallet-adapter-wallets";import"@solana/wallet-adapter-react-ui";import"axios";import"recharts";import"react-infinite-scroller";import"rmc-date-picker";var E={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},F=r.createContext&&r.createContext(E),H=["attr","size","title"];function Z(e,t){if(null==e)return{};var i,o,r=function(e,t){if(null==e)return{};var i,o,r={},n=Object.keys(e);for(o=0;o<n.length;o++)i=n[o],t.indexOf(i)>=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)i=n[o],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e},G.apply(this,arguments)}function D(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function J(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?D(Object(i),!0).forEach((function(t){V(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):D(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function V(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var o=i.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function Y(e){return e&&e.map(((e,t)=>r.createElement(e.tag,J({key:t},e.attr),Y(e.child))))}function I(e){return t=>r.createElement(R,G({attr:J({},e.attr)},t),Y(e.child))}function R(e){var t=t=>{var i,{attr:o,size:n,title:l}=e,s=Z(e,H),a=n||t.size||"1em";return t.className&&(i=t.className),e.className&&(i=(i?i+" ":"")+e.className),r.createElement("svg",G({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,s,{className:i,style:J(J({color:e.color||t.color},t.style),e.style),height:a,width:a,xmlns:"http://www.w3.org/2000/svg"}),l&&r.createElement("title",null,l),e.children)};return void 0!==F?r.createElement(F.Consumer,null,(e=>t(e))):t(E)}function $(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"},child:[]}]})(e)}function Q(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"},child:[]}]})(e)}function K(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M5 11h14v2H5z"},child:[]}]})(e)}function U(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z"},child:[]}]})(e)}const _=d.input`
1
+ import e from"bignumber.js";import{merge as t,throttle as i,debounce as o}from"lodash";import r,{useEffect as n,useMemo as l,useRef as a,useState as s}from"react";import d from"@emotion/styled";import{css as c}from"@emotion/react";import{Stage as u,Layer as p,Rect as m,Line as g,Text as h,Circle as b,Label as f,Tag as M}from"react-konva";import{c as x,e as v,a as y,b as P,d as w,f as j,u as z,g as L,h as k,l as B,i as C,j as S,k as N}from"./helper-C-GIFY8n.js";import{f as O,j as X,a as T,b as A}from"./index-CZah-wJD.js";import{solveQuadraticFunctionForTarget as q,PMMModel as W}from"@dodoex/api";import"@lingui/core";import"@lingui/react";import"@dodoex/components";import"react-redux";import"identicon.js";import"@web3-react/core";import"@web3-react/eip1193";import"@web3-react/walletconnect-v2";import"@web3-react/metamask";import"@web3-react/types";import"@solana/wallet-adapter-react";import"@reduxjs/toolkit";import"redux";import"@tanstack/react-query";import"@solana/web3.js";import"react-dom";import"react-window";import"@ethersproject/bignumber";import"dayjs";import"react-transition-group";import"zustand";import"@solana/wallet-adapter-base";import"@solana/wallet-adapter-wallets";import"@solana/wallet-adapter-react-ui";import"axios";import"@coral-xyz/anchor";import"@solana/spl-token";import"recharts";import"react-infinite-scroller";import"rmc-date-picker";var E={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},F=r.createContext&&r.createContext(E),H=["attr","size","title"];function Z(e,t){if(null==e)return{};var i,o,r=function(e,t){if(null==e)return{};var i,o,r={},n=Object.keys(e);for(o=0;o<n.length;o++)i=n[o],t.indexOf(i)>=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)i=n[o],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}function G(){return G=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t];for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e},G.apply(this,arguments)}function D(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,o)}return i}function J(e){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?D(Object(i),!0).forEach((function(t){V(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):D(Object(i)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}))}return e}function V(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var o=i.call(e,t||"default");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function Y(e){return e&&e.map(((e,t)=>r.createElement(e.tag,J({key:t},e.attr),Y(e.child))))}function I(e){return t=>r.createElement(R,G({attr:J({},e.attr)},t),Y(e.child))}function R(e){var t=t=>{var i,{attr:o,size:n,title:l}=e,a=Z(e,H),s=n||t.size||"1em";return t.className&&(i=t.className),e.className&&(i=(i?i+" ":"")+e.className),r.createElement("svg",G({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},t.attr,o,a,{className:i,style:J(J({color:e.color||t.color},t.style),e.style),height:s,width:s,xmlns:"http://www.w3.org/2000/svg"}),l&&r.createElement("title",null,l),e.children)};return void 0!==F?r.createElement(F.Consumer,null,(e=>t(e))):t(E)}function $(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13.293 6.293 7.586 12l5.707 5.707 1.414-1.414L10.414 12l4.293-4.293z"},child:[]}]})(e)}function Q(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10.707 17.707 16.414 12l-5.707-5.707-1.414 1.414L13.586 12l-4.293 4.293z"},child:[]}]})(e)}function K(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M5 11h14v2H5z"},child:[]}]})(e)}function U(e){return I({tag:"svg",attr:{viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M19 11h-6V5h-2v6H5v2h6v6h2v-6h6z"},child:[]}]})(e)}const _=d.input`
2
2
  margin: 4px 10px 4px 6px;
3
3
  border-radius: 10px;
4
4
  border: 1px solid #373739;
@@ -13,11 +13,11 @@ import e from"bignumber.js";import{merge as t,throttle as i,debounce as o}from"l
13
13
  &:focus {
14
14
  border-color: #fff;
15
15
 
16
- ${({error:e})=>e&&u`
16
+ ${({error:e})=>e&&c`
17
17
  border-color: red;
18
18
  `}
19
19
  }
20
- `;const ee="rgba(38, 39, 41, 0.3)";function te({width:o,height:r,midPrice:a,pmmModel:d,params:u,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,colorMap:T,setBaseMinAndZoomMultiples:A}){const q=t({grid:"#2A2A2D",midPriceLine:"#313335",leftBg:[0,ee,1,"#31645d"],leftLine:"#55f6db",leftColor:"",rightBg:[0,ee,1,"#67303d"],rightLine:"#ff4f73",rightColor:"",tooltipBg:"#121212",tooltipColor:void 0},T),W=o,E=r-18,F=W/7,{buyBaseVert:H,sellBaseVert:Z}=y({midPrice:a,q:u.q,q0:u.q0,pmmModel:d}),G=H.div(E),D=Z.div(E),J=s(null),V=s(null),{current:Y}=J,I=s(0),R=s(),{horizontalGridLines:$,verticalGridLines:Q}=function({chartHeight:e,chartWidth:t,horizontalLineCount:i,verticalLineCount:o}){return l((()=>{const r=[],n=e/(i+1),l=[],s=t/o;for(let e=0;e<i;e++){const i=n*(e+1);r.push([0,i,t,i])}for(let t=0;t<o;t++){const i=s*t+s/2;l.push([i,0,i,e])}return{horizontalGridLines:r,verticalGridLines:l}}),[e,t,i,o])}({chartHeight:E,chartWidth:W,horizontalLineCount:9,verticalLineCount:7}),{horizontalLabelTickPoints:K,horizontalLabelTextPoints:U}=function({chartHeight:e,chartWidth:t,xAxisPoints:i,oneXPx:o,baseMinAndZoomMultiples:r}){return l((()=>{const n=x(t,r.zoomMultiples),l=[],s=[];for(let t=0;t<i;t++){l.push([t*o+o/2,e,t*o+o/2,e+4]);const i=n.multipliedBy(t).multipliedBy(o).plus(n.multipliedBy(o/2)).toNumber(),a=r.baseMin.multipliedBy(10**i),d=t*o,u=e+2+4,c=O(a);s.push({x:d,y:u,text:c})}return{horizontalLabelTickPoints:l,horizontalLabelTextPoints:s}}),[r.baseMin,r.zoomMultiples,e,t,o,i])}({chartHeight:E,chartWidth:W,xAxisPoints:7,oneXPx:F,baseMinAndZoomMultiples:N}),{quoteLinePoints:_,quoteLineAreaPoints:te,quoteLineAreaLinearGradientEndPointY:ie,baseLinePoints:oe,baseLineAreaPoints:re,baseLineAreaLinearGradientEndPointY:ne,midPriceLinePoints:le}=function({chartHeight:t,chartWidth:i,midPrice:o,xPoints:r,pmmModel:n,baseMinAndZoomMultiples:s,buyYPortion:a,sellYPortion:d}){return l((()=>{const l=[],u=[],c=[],{baseMin:p,zoomMultiples:m}=s,g=x(i,m),h=2*m,b=new e(h).div(r);let f=new e(Math.log(o.div(p).toNumber())/Math.log(10));f=e.minimum(h,f),f=e.maximum(0,f);for(let i=new e(0);i.lte(f);){const e=p.multipliedBy(10**i.toNumber()),r=v({val:e,model:n,midPrice:o});if(!r.vert.isNaN()){const e=i.div(g).toNumber(),o=t-r.vert.div(a).toNumber();l.push(e,o)}i=i.plus(b)}for(let e=f;e.lte(h);){const i=p.multipliedBy(10**e.toNumber()),r=v({val:i,model:n,midPrice:o});if(!r.vert.isNaN()){const i=e.div(g).toNumber(),o=t-r.vert.div(d).toNumber();u.push(i,o)}e=e.plus(b)}const M=f.div(g).toNumber(),[,y]=l,P=n.k.eq(0);P&&l.push(M,y||t),l.push(M,t),c.push(M,t,M,0);const w=v({val:p.multipliedBy(10**h),model:n,midPrice:o});let j=t;const z=new e(h).div(g).toNumber();return w.vert.isNaN()||(j=t-w.vert.div(d).toNumber()),P&&u.length>=2&&(u.unshift(M,j),u.unshift(M,t)),u.push(z,j),f.lte(0)&&u.unshift(0,t),{quoteLinePoints:l,quoteLineAreaPoints:[0,t,0,y,...l],quoteLineAreaLinearGradientEndPointY:y,baseLinePoints:u,baseLineAreaPoints:[...u,z,t],baseLineAreaLinearGradientEndPointY:j,midPriceLinePoints:c}}),[s,i,r,o,n,t,a,d])}({chartHeight:E,chartWidth:W,midPrice:a,xPoints:50,pmmModel:d,baseMinAndZoomMultiples:N,buyYPortion:G,sellYPortion:D}),se=e=>{var t;const i=e.target;if(i&&Y){const e=null===(t=i.getStage())||void 0===t?void 0:t.getPointerPosition();if(e){const{x:t}=e;if(t>W)return void Y.hide();z({x:t,tooltip:Y,buyBaseVert:H,sellBaseVert:Z,chartWidth:W,chartHeight:E,midPrice:a,pmmModel:d,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,t:L,isHover:!0,color:q.tooltipColor,leftColor:q.leftLine,rightColor:q.rightLine})}}},ae=l((()=>i((e=>{const{target:t}=e,i=t.getStage();if(i){i.container().style.cursor="grabbing";const e=null==i?void 0:i.getPointerPosition();if(e){const t=e.x-I.current;I.current=e.x,R.current=e.x,A((e=>void 0===e.baseMin?e:{baseMin:P({dragDistance:t,prevBaseMin:e.baseMin,chartWidth:W,zoomMultiples:e.zoomMultiples}),zoomMultiples:e.zoomMultiples,targetMarginPriceX:0}))}}}),100)),[W,A]),de=l((()=>i((e=>{e.cancelBubble=!0,e.evt.preventDefault();const t=e.evt.deltaY<0;A((e=>{const i=w({zoomIn:t,prevZoomMultiples:e.zoomMultiples});return{baseMin:j({midPrice:a,zoomMultiples:i}),zoomMultiples:i,targetMarginPriceX:e.targetMarginPriceX}}))}),100)),[a,A]);return n((()=>{N.targetMarginPriceX>0&&null!==Y?z({x:N.targetMarginPriceX,tooltip:Y,buyBaseVert:H,sellBaseVert:Z,chartWidth:W,chartHeight:E,midPrice:a,pmmModel:d,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,t:L,color:q.tooltipColor,leftColor:q.leftLine,rightColor:q.rightLine}):void 0!==R.current&&null!==Y&&z({x:R.current,tooltip:Y,buyBaseVert:H,sellBaseVert:Z,chartWidth:W,chartHeight:E,midPrice:a,pmmModel:d,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,t:L,isHover:!0,color:q.tooltipColor,leftColor:q.leftLine,rightColor:q.rightLine})}),[N,C,H,E,W,q.leftLine,q.rightLine,q.tooltipColor,a,d,S,Z,Y]),X.jsxs(c,{ref:V,width:o,offsetY:-k,height:r+k,draggable:!0,dragBoundFunc:function(){return{x:this.absolutePosition().x,y:this.absolutePosition().y}},onMouseMove:se,onMouseOver:se,onMouseOut:()=>{Y&&Y.hide()},onDragStart:function(e){const{target:t}=e,i=t.getStage();if(i){const e=i.getPointerPosition();e&&(I.current=e.x)}},onDragMove:ae,onDragEnd:e=>{const{target:t}=e,i=t.getStage();i&&(i.container().style.cursor="pointer")},onWheel:de,children:[X.jsxs(p,{children:[X.jsx(m,{x:0,y:0,width:o,height:E,stroke:q.grid,strokeWidth:1}),$.map(((e,t)=>X.jsx(g,{points:e,stroke:q.grid,strokeWidth:1,lineCap:"round",lineJoin:"round",listening:!1},t))),Q.map(((e,t)=>X.jsx(g,{points:e,stroke:q.grid,strokeWidth:1,lineCap:"round",lineJoin:"round",listening:!1},t))),K.map(((e,t)=>X.jsx(g,{points:e,stroke:"#9d9d9d",strokeWidth:1,lineCap:"round",lineJoin:"round",listening:!1},t))),U.map(((e,t)=>X.jsx(h,{x:e.x,y:e.y,text:e.text,fontFamily:"Manrope",fontSize:12,fill:"#9d9d9d",width:F,padding:0,align:"center",verticalAlign:"bottom",listening:!1},t))),X.jsx(g,{points:te,closed:!0,listening:!1,lineCap:"round",lineJoin:"round",fillLinearGradientStartPoint:{x:0,y:E},fillLinearGradientEndPoint:{x:0,y:ie},fillLinearGradientColorStops:q.leftBg}),X.jsx(g,{points:_,stroke:q.leftLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1}),X.jsx(g,{points:re,closed:!0,listening:!1,lineCap:"round",lineJoin:"round",fillLinearGradientStartPoint:{x:W,y:E},fillLinearGradientEndPoint:{x:W,y:ne},fillLinearGradientColorStops:q.rightBg}),X.jsx(g,{points:oe,stroke:q.rightLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1}),X.jsx(g,{points:le,stroke:q.midPriceLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1})]}),X.jsxs(p,{ref:J,visible:!1,listening:!1,children:[X.jsx(g,{points:[],stroke:"#ff4f73",strokeWidth:1,lineCap:"round",lineJoin:"round",dash:[4,6],id:"toolTipVertLine"}),X.jsx(g,{points:[],stroke:"ff4f73",strokeWidth:1,lineCap:"round",lineJoin:"round",dash:[4,6],id:"toolTipHoriLine"}),X.jsx(b,{x:0,y:0,radius:5,fill:"#FF5072",stroke:"rgba(255, 80, 114, 0.3)",strokeWidth:12,id:"joinCircle"}),X.jsxs(f,{x:0,y:0,id:"priceTextLabel",children:[X.jsx(M,{fill:q.tooltipBg,id:"priceTextLabel-tag"}),X.jsx(h,{text:"",fontSize:12,fontFamily:"Manrope",padding:4,fill:"#FF5072",id:"priceTextLabel-text"})]}),X.jsxs(f,{x:0,y:0,id:"slippageTextLabel",children:[X.jsx(M,{fill:q.tooltipBg,id:"slippageTextLabel-tag"}),X.jsx(h,{text:"",fontSize:12,fontFamily:"Manrope",padding:4,fill:"#FF5072",id:"slippageTextLabel-text"})]}),X.jsxs(f,{x:0,y:0,id:"toolTip",children:[X.jsx(M,{fill:q.tooltipBg,pointerDirection:"down",pointerWidth:15,pointerHeight:8,cornerRadius:8,lineJoin:"round",id:"toolTip-tag"}),X.jsx(h,{text:"-",fontSize:12,lineHeight:17/12,padding:B,fontFamily:"Manrope",fill:"#FFFFFF",id:"toolTip-text"})]})]})]})}const ie=d.button`
20
+ `;const ee="rgba(38, 39, 41, 0.3)";function te({width:o,height:r,midPrice:s,pmmModel:d,params:c,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,colorMap:T,setBaseMinAndZoomMultiples:A}){const q=t({grid:"#2A2A2D",midPriceLine:"#313335",leftBg:[0,ee,1,"#31645d"],leftLine:"#55f6db",leftColor:"",rightBg:[0,ee,1,"#67303d"],rightLine:"#ff4f73",rightColor:"",tooltipBg:"#121212",tooltipColor:void 0},T),W=o,E=r-18,F=W/7,{buyBaseVert:H,sellBaseVert:Z}=y({midPrice:s,q:c.q,q0:c.q0,pmmModel:d}),G=H.div(E),D=Z.div(E),J=a(null),V=a(null),{current:Y}=J,I=a(0),R=a(),{horizontalGridLines:$,verticalGridLines:Q}=function({chartHeight:e,chartWidth:t,horizontalLineCount:i,verticalLineCount:o}){return l((()=>{const r=[],n=e/(i+1),l=[],a=t/o;for(let e=0;e<i;e++){const i=n*(e+1);r.push([0,i,t,i])}for(let t=0;t<o;t++){const i=a*t+a/2;l.push([i,0,i,e])}return{horizontalGridLines:r,verticalGridLines:l}}),[e,t,i,o])}({chartHeight:E,chartWidth:W,horizontalLineCount:9,verticalLineCount:7}),{horizontalLabelTickPoints:K,horizontalLabelTextPoints:U}=function({chartHeight:e,chartWidth:t,xAxisPoints:i,oneXPx:o,baseMinAndZoomMultiples:r}){return l((()=>{const n=x(t,r.zoomMultiples),l=[],a=[];for(let t=0;t<i;t++){l.push([t*o+o/2,e,t*o+o/2,e+4]);const i=n.multipliedBy(t).multipliedBy(o).plus(n.multipliedBy(o/2)).toNumber(),s=r.baseMin.multipliedBy(10**i),d=t*o,c=e+2+4,u=O(s);a.push({x:d,y:c,text:u})}return{horizontalLabelTickPoints:l,horizontalLabelTextPoints:a}}),[r.baseMin,r.zoomMultiples,e,t,o,i])}({chartHeight:E,chartWidth:W,xAxisPoints:7,oneXPx:F,baseMinAndZoomMultiples:N}),{quoteLinePoints:_,quoteLineAreaPoints:te,quoteLineAreaLinearGradientEndPointY:ie,baseLinePoints:oe,baseLineAreaPoints:re,baseLineAreaLinearGradientEndPointY:ne,midPriceLinePoints:le}=function({chartHeight:t,chartWidth:i,midPrice:o,xPoints:r,pmmModel:n,baseMinAndZoomMultiples:a,buyYPortion:s,sellYPortion:d}){return l((()=>{const l=[],c=[],u=[],{baseMin:p,zoomMultiples:m}=a,g=x(i,m),h=2*m,b=new e(h).div(r);let f=new e(Math.log(o.div(p).toNumber())/Math.log(10));f=e.minimum(h,f),f=e.maximum(0,f);for(let i=new e(0);i.lte(f);){const e=p.multipliedBy(10**i.toNumber()),r=v({val:e,model:n,midPrice:o});if(!r.vert.isNaN()){const e=i.div(g).toNumber(),o=t-r.vert.div(s).toNumber();l.push(e,o)}i=i.plus(b)}for(let e=f;e.lte(h);){const i=p.multipliedBy(10**e.toNumber()),r=v({val:i,model:n,midPrice:o});if(!r.vert.isNaN()){const i=e.div(g).toNumber(),o=t-r.vert.div(d).toNumber();c.push(i,o)}e=e.plus(b)}const M=f.div(g).toNumber(),[,y]=l,P=n.k.eq(0);P&&l.push(M,y||t),l.push(M,t),u.push(M,t,M,0);const w=v({val:p.multipliedBy(10**h),model:n,midPrice:o});let j=t;const z=new e(h).div(g).toNumber();return w.vert.isNaN()||(j=t-w.vert.div(d).toNumber()),P&&c.length>=2&&(c.unshift(M,j),c.unshift(M,t)),c.push(z,j),f.lte(0)&&c.unshift(0,t),{quoteLinePoints:l,quoteLineAreaPoints:[0,t,0,y,...l],quoteLineAreaLinearGradientEndPointY:y,baseLinePoints:c,baseLineAreaPoints:[...c,z,t],baseLineAreaLinearGradientEndPointY:j,midPriceLinePoints:u}}),[a,i,r,o,n,t,s,d])}({chartHeight:E,chartWidth:W,midPrice:s,xPoints:50,pmmModel:d,baseMinAndZoomMultiples:N,buyYPortion:G,sellYPortion:D}),ae=e=>{var t;const i=e.target;if(i&&Y){const e=null===(t=i.getStage())||void 0===t?void 0:t.getPointerPosition();if(e){const{x:t}=e;if(t>W)return void Y.hide();z({x:t,tooltip:Y,buyBaseVert:H,sellBaseVert:Z,chartWidth:W,chartHeight:E,midPrice:s,pmmModel:d,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,t:L,isHover:!0,color:q.tooltipColor,leftColor:q.leftLine,rightColor:q.rightLine})}}},se=l((()=>i((e=>{const{target:t}=e,i=t.getStage();if(i){i.container().style.cursor="grabbing";const e=null==i?void 0:i.getPointerPosition();if(e){const t=e.x-I.current;I.current=e.x,R.current=e.x,A((e=>void 0===e.baseMin?e:{baseMin:P({dragDistance:t,prevBaseMin:e.baseMin,chartWidth:W,zoomMultiples:e.zoomMultiples}),zoomMultiples:e.zoomMultiples,targetMarginPriceX:0}))}}}),100)),[W,A]),de=l((()=>i((e=>{e.cancelBubble=!0,e.evt.preventDefault();const t=e.evt.deltaY<0;A((e=>{const i=w({zoomIn:t,prevZoomMultiples:e.zoomMultiples});return{baseMin:j({midPrice:s,zoomMultiples:i}),zoomMultiples:i,targetMarginPriceX:e.targetMarginPriceX}}))}),100)),[s,A]);return n((()=>{N.targetMarginPriceX>0&&null!==Y?z({x:N.targetMarginPriceX,tooltip:Y,buyBaseVert:H,sellBaseVert:Z,chartWidth:W,chartHeight:E,midPrice:s,pmmModel:d,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,t:L,color:q.tooltipColor,leftColor:q.leftLine,rightColor:q.rightLine}):void 0!==R.current&&null!==Y&&z({x:R.current,tooltip:Y,buyBaseVert:H,sellBaseVert:Z,chartWidth:W,chartHeight:E,midPrice:s,pmmModel:d,baseTokenSymbol:C,quoteTokenSymbol:S,baseMinAndZoomMultiples:N,t:L,isHover:!0,color:q.tooltipColor,leftColor:q.leftLine,rightColor:q.rightLine})}),[N,C,H,E,W,q.leftLine,q.rightLine,q.tooltipColor,s,d,S,Z,Y]),X.jsxs(u,{ref:V,width:o,offsetY:-k,height:r+k,draggable:!0,dragBoundFunc:function(){return{x:this.absolutePosition().x,y:this.absolutePosition().y}},onMouseMove:ae,onMouseOver:ae,onMouseOut:()=>{Y&&Y.hide()},onDragStart:function(e){const{target:t}=e,i=t.getStage();if(i){const e=i.getPointerPosition();e&&(I.current=e.x)}},onDragMove:se,onDragEnd:e=>{const{target:t}=e,i=t.getStage();i&&(i.container().style.cursor="pointer")},onWheel:de,children:[X.jsxs(p,{children:[X.jsx(m,{x:0,y:0,width:o,height:E,stroke:q.grid,strokeWidth:1}),$.map(((e,t)=>X.jsx(g,{points:e,stroke:q.grid,strokeWidth:1,lineCap:"round",lineJoin:"round",listening:!1},t))),Q.map(((e,t)=>X.jsx(g,{points:e,stroke:q.grid,strokeWidth:1,lineCap:"round",lineJoin:"round",listening:!1},t))),K.map(((e,t)=>X.jsx(g,{points:e,stroke:"#9d9d9d",strokeWidth:1,lineCap:"round",lineJoin:"round",listening:!1},t))),U.map(((e,t)=>X.jsx(h,{x:e.x,y:e.y,text:e.text,fontFamily:"Manrope",fontSize:12,fill:"#9d9d9d",width:F,padding:0,align:"center",verticalAlign:"bottom",listening:!1},t))),X.jsx(g,{points:te,closed:!0,listening:!1,lineCap:"round",lineJoin:"round",fillLinearGradientStartPoint:{x:0,y:E},fillLinearGradientEndPoint:{x:0,y:ie},fillLinearGradientColorStops:q.leftBg}),X.jsx(g,{points:_,stroke:q.leftLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1}),X.jsx(g,{points:re,closed:!0,listening:!1,lineCap:"round",lineJoin:"round",fillLinearGradientStartPoint:{x:W,y:E},fillLinearGradientEndPoint:{x:W,y:ne},fillLinearGradientColorStops:q.rightBg}),X.jsx(g,{points:oe,stroke:q.rightLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1}),X.jsx(g,{points:le,stroke:q.midPriceLine,strokeWidth:2,lineCap:"round",lineJoin:"round",listening:!1})]}),X.jsxs(p,{ref:J,visible:!1,listening:!1,children:[X.jsx(g,{points:[],stroke:"#ff4f73",strokeWidth:1,lineCap:"round",lineJoin:"round",dash:[4,6],id:"toolTipVertLine"}),X.jsx(g,{points:[],stroke:"ff4f73",strokeWidth:1,lineCap:"round",lineJoin:"round",dash:[4,6],id:"toolTipHoriLine"}),X.jsx(b,{x:0,y:0,radius:5,fill:"#FF5072",stroke:"rgba(255, 80, 114, 0.3)",strokeWidth:12,id:"joinCircle"}),X.jsxs(f,{x:0,y:0,id:"priceTextLabel",children:[X.jsx(M,{fill:q.tooltipBg,id:"priceTextLabel-tag"}),X.jsx(h,{text:"",fontSize:12,fontFamily:"Manrope",padding:4,fill:"#FF5072",id:"priceTextLabel-text"})]}),X.jsxs(f,{x:0,y:0,id:"slippageTextLabel",children:[X.jsx(M,{fill:q.tooltipBg,id:"slippageTextLabel-tag"}),X.jsx(h,{text:"",fontSize:12,fontFamily:"Manrope",padding:4,fill:"#FF5072",id:"slippageTextLabel-text"})]}),X.jsxs(f,{x:0,y:0,id:"toolTip",children:[X.jsx(M,{fill:q.tooltipBg,pointerDirection:"down",pointerWidth:15,pointerHeight:8,cornerRadius:8,lineJoin:"round",id:"toolTip-tag"}),X.jsx(h,{text:"-",fontSize:12,lineHeight:17/12,padding:B,fontFamily:"Manrope",fill:"#FFFFFF",id:"toolTip-text"})]})]})]})}const ie=d.button`
21
21
  margin: 0;
22
22
  border: none;
23
23
  padding: 0;
@@ -51,12 +51,12 @@ import e from"bignumber.js";import{merge as t,throttle as i,debounce as o}from"l
51
51
  }
52
52
  `,le=d.span`
53
53
  color: #85858d;
54
- `,se=d.div`
54
+ `,ae=d.div`
55
55
  margin-top: 20px;
56
56
  display: flex;
57
57
  justify-content: center;
58
58
  margin-bottom: 9px;
59
- `,ae=d(ie)`
59
+ `,se=d(ie)`
60
60
  border-radius: 13px;
61
61
  background-color: #373739;
62
62
  width: 24px;
@@ -75,4 +75,4 @@ import e from"bignumber.js";import{merge as t,throttle as i,debounce as o}from"l
75
75
  &:hover {
76
76
  color: #fff;
77
77
  }
78
- `;function de({params:t,target:i,isBuy:o=!0}){const r=new e(t.b),n=new e(t.q);let l=new e(t.b0);const s=new e(t.q0),a=new e(t.i),d=new e(t.k),{R:u}=t;1===u&&l.eq(r)&&(l=q(r,n.minus(s),new e(1).div(a),d));const c=o?r.plus(i):r.minus(i);if(c.lt(l)||r.eq(l)){let t=l.multipliedBy(l).div(c).div(c);return t=new e(1).minus(d).plus(d.multipliedBy(t)),a.multipliedBy(t)}const p=new W;p.RStatus=u,p.B=r,p.B0=l,p.Q=n,p.Q0=s,p.i=a,p.k=d,p.mtFeeRate=new e(0),p.lpFeeRate=new e(0);let m=new e(0);m=o?p.querySellBase(i):p.queryBuyBase(i);const g=o?n.minus(m):n.plus(m);let h=s.multipliedBy(s).div(g).div(g);return h=new e(1).minus(d).plus(d.multipliedBy(h)),a.div(h)}const ue=({chartId:t,width:i=834,height:r=460,baseTokenSymbol:s,quoteTokenSymbol:d,pmmModel:u,pmmParams:c,midPrice:p=new e(0),colorMap:m,notShowAmountInput:g})=>{(({id:e})=>{n((()=>{function t(e){e.preventDefault()}let i=!1;try{const e={get passive(){return i=!0,!1}};window.addEventListener("test",(()=>{}),e),window.removeEventListener("test",(()=>{}))}catch(e){i=!1}const o=document.getElementById(e),r=!!i&&{passive:!1};return null==o||o.addEventListener("wheel",t,r),()=>{null==o||o.removeEventListener("wheel",t)}}),[e])})({id:t});const[h,b]=a(""),[f,M]=a(""),[x,v]=a("-"),[y,z]=a("-"),[k,B]=a({baseMin:new e(0),zoomMultiples:C,targetMarginPriceX:0});n((()=>{void 0!==p&&B((e=>({baseMin:j({midPrice:p,zoomMultiples:e.zoomMultiples}),zoomMultiples:e.zoomMultiples,targetMarginPriceX:e.targetMarginPriceX})))}),[p]);const O=l((()=>o((({type:t,amount:o})=>{""===o&&p&&(B({baseMin:j({midPrice:p,zoomMultiples:C}),zoomMultiples:C,targetMarginPriceX:0}),"buy"===t?v("-"):z("-"));const r=new e(o);if(!r.lte(0)&&!r.isNaN()&&(null==c?void 0:c.b)&&!r.gte(c.b)&&p)if("buy"===t){const e=de({params:c,target:r});B((o=>{const r=S({currentBaseMinAndZoomMultiples:o,targetPrice:e,midPrice:p,width:i});if(r.isSkip)return{baseMin:o.baseMin,zoomMultiples:o.zoomMultiples,targetMarginPriceX:r.targetX};if(r.targetX>0)return{baseMin:r.baseMin,zoomMultiples:r.zoomMultiples,targetMarginPriceX:r.targetX};const n=N({midPrice:p,width:i,type:t,targetPrice:e}),l=n.zoomMultiples.dp(6).toNumber();return{baseMin:j({midPrice:p,zoomMultiples:l}),zoomMultiples:l,targetMarginPriceX:n.targetX}})),v(`${T({input:e.minus(p).div(p)})}`)}else{const e=function({params:e,target:t}){return de({params:e,target:t,isBuy:!1})}({params:c,target:r});B((o=>{const r=S({currentBaseMinAndZoomMultiples:o,targetPrice:e,midPrice:p,width:i});if(r.isSkip)return{baseMin:o.baseMin,zoomMultiples:o.zoomMultiples,targetMarginPriceX:r.targetX};if(r.targetX>0)return{baseMin:r.baseMin,zoomMultiples:r.zoomMultiples,targetMarginPriceX:r.targetX};const n=N({midPrice:p,width:i,type:t,targetPrice:e}),l=n.zoomMultiples.dp(6).toNumber();return{baseMin:j({midPrice:p,zoomMultiples:l}),zoomMultiples:l,targetMarginPriceX:n.targetX}})),z(`+${T({input:e.minus(p).div(p)})}`)}}),300)),[c,p,i]);n((()=>{void 0!==h&&O({type:"buy",amount:h})}),[O,h]),n((()=>{void 0!==f&&O({type:"sell",amount:f})}),[O,f]);const q=e=>{let t=0;t=e?-.1*i:.1*i,B((e=>void 0===e.baseMin?e:{baseMin:P({dragDistance:t,prevBaseMin:e.baseMin,chartWidth:i,zoomMultiples:e.zoomMultiples}),zoomMultiples:e.zoomMultiples,targetMarginPriceX:e.targetMarginPriceX}))},W=e=>{B((t=>{const i=w({zoomIn:null!=e&&e,prevZoomMultiples:t.zoomMultiples});return{baseMin:j({midPrice:p,zoomMultiples:i}),zoomMultiples:i,targetMarginPriceX:t.targetMarginPriceX}}))},E=l((()=>{if(""===h)return!1;const t=new e(h);return!(!t.lte(0)&&!t.isNaN()&&(null==c?void 0:c.b)&&!t.gte(c.b))}),[h,c]),F=l((()=>{if(""===f)return!1;const t=new e(f);return!(!t.lte(0)&&!t.isNaN()&&(null==c?void 0:c.b)&&!t.gte(c.b))}),[f,c]);return X.jsxs(oe,{id:t,children:[g?"":X.jsxs(re,{children:[X.jsxs(ne,{borderColor:m&&m.grid,children:[L("pool.chart.buy-amount",{symbol:s}),X.jsx(_,{value:h,error:E,onChange:e=>{const t=A(e.target.value,2);null!==t&&b(t)}}),X.jsx(le,{children:L("pool.chart.price-impact",{amount:x})})]}),X.jsxs(ne,{borderColor:m&&m.grid,children:[L("pool.chart.sell-amount",{symbol:s}),X.jsx(_,{value:f,error:F,onChange:e=>{const t=A(e.target.value,2);null!==t&&M(t)}}),X.jsx(le,{children:L("pool.chart.price-impact",{amount:y})})]})]}),void 0!==c&&void 0!==p&&void 0!==u&&void 0!==k.baseMin&&void 0!==p&&X.jsx(te,{width:i,height:r,params:c,midPrice:p,pmmModel:u,baseTokenSymbol:s,quoteTokenSymbol:d,baseMinAndZoomMultiples:k,colorMap:m,setBaseMinAndZoomMultiples:B}),X.jsxs(se,{className:"operate-btn-wrapper",children:[X.jsx(ae,{onClick:()=>q(!0),children:X.jsx($,{})}),X.jsx(ae,{onClick:()=>W(!1),children:X.jsx(K,{})}),X.jsx(ae,{onClick:()=>W(!0),children:X.jsx(U,{})}),X.jsx(ae,{onClick:()=>q(!1),children:X.jsx(Q,{})})]})]})};export{ue as default};
78
+ `;function de({params:t,target:i,isBuy:o=!0}){const r=new e(t.b),n=new e(t.q);let l=new e(t.b0);const a=new e(t.q0),s=new e(t.i),d=new e(t.k),{R:c}=t;1===c&&l.eq(r)&&(l=q(r,n.minus(a),new e(1).div(s),d));const u=o?r.plus(i):r.minus(i);if(u.lt(l)||r.eq(l)){let t=l.multipliedBy(l).div(u).div(u);return t=new e(1).minus(d).plus(d.multipliedBy(t)),s.multipliedBy(t)}const p=new W;p.RStatus=c,p.B=r,p.B0=l,p.Q=n,p.Q0=a,p.i=s,p.k=d,p.mtFeeRate=new e(0),p.lpFeeRate=new e(0);let m=new e(0);m=o?p.querySellBase(i):p.queryBuyBase(i);const g=o?n.minus(m):n.plus(m);let h=a.multipliedBy(a).div(g).div(g);return h=new e(1).minus(d).plus(d.multipliedBy(h)),s.div(h)}const ce=({chartId:t,width:i=834,height:r=460,baseTokenSymbol:a,quoteTokenSymbol:d,pmmModel:c,pmmParams:u,midPrice:p=new e(0),colorMap:m,notShowAmountInput:g})=>{(({id:e})=>{n((()=>{function t(e){e.preventDefault()}let i=!1;try{const e={get passive(){return i=!0,!1}};window.addEventListener("test",(()=>{}),e),window.removeEventListener("test",(()=>{}))}catch(e){i=!1}const o=document.getElementById(e),r=!!i&&{passive:!1};return null==o||o.addEventListener("wheel",t,r),()=>{null==o||o.removeEventListener("wheel",t)}}),[e])})({id:t});const[h,b]=s(""),[f,M]=s(""),[x,v]=s("-"),[y,z]=s("-"),[k,B]=s({baseMin:new e(0),zoomMultiples:C,targetMarginPriceX:0});n((()=>{void 0!==p&&B((e=>({baseMin:j({midPrice:p,zoomMultiples:e.zoomMultiples}),zoomMultiples:e.zoomMultiples,targetMarginPriceX:e.targetMarginPriceX})))}),[p]);const O=l((()=>o((({type:t,amount:o})=>{""===o&&p&&(B({baseMin:j({midPrice:p,zoomMultiples:C}),zoomMultiples:C,targetMarginPriceX:0}),"buy"===t?v("-"):z("-"));const r=new e(o);if(!r.lte(0)&&!r.isNaN()&&(null==u?void 0:u.b)&&!r.gte(u.b)&&p)if("buy"===t){const e=de({params:u,target:r});B((o=>{const r=S({currentBaseMinAndZoomMultiples:o,targetPrice:e,midPrice:p,width:i});if(r.isSkip)return{baseMin:o.baseMin,zoomMultiples:o.zoomMultiples,targetMarginPriceX:r.targetX};if(r.targetX>0)return{baseMin:r.baseMin,zoomMultiples:r.zoomMultiples,targetMarginPriceX:r.targetX};const n=N({midPrice:p,width:i,type:t,targetPrice:e}),l=n.zoomMultiples.dp(6).toNumber();return{baseMin:j({midPrice:p,zoomMultiples:l}),zoomMultiples:l,targetMarginPriceX:n.targetX}})),v(`${T({input:e.minus(p).div(p)})}`)}else{const e=function({params:e,target:t}){return de({params:e,target:t,isBuy:!1})}({params:u,target:r});B((o=>{const r=S({currentBaseMinAndZoomMultiples:o,targetPrice:e,midPrice:p,width:i});if(r.isSkip)return{baseMin:o.baseMin,zoomMultiples:o.zoomMultiples,targetMarginPriceX:r.targetX};if(r.targetX>0)return{baseMin:r.baseMin,zoomMultiples:r.zoomMultiples,targetMarginPriceX:r.targetX};const n=N({midPrice:p,width:i,type:t,targetPrice:e}),l=n.zoomMultiples.dp(6).toNumber();return{baseMin:j({midPrice:p,zoomMultiples:l}),zoomMultiples:l,targetMarginPriceX:n.targetX}})),z(`+${T({input:e.minus(p).div(p)})}`)}}),300)),[u,p,i]);n((()=>{void 0!==h&&O({type:"buy",amount:h})}),[O,h]),n((()=>{void 0!==f&&O({type:"sell",amount:f})}),[O,f]);const q=e=>{let t=0;t=e?-.1*i:.1*i,B((e=>void 0===e.baseMin?e:{baseMin:P({dragDistance:t,prevBaseMin:e.baseMin,chartWidth:i,zoomMultiples:e.zoomMultiples}),zoomMultiples:e.zoomMultiples,targetMarginPriceX:e.targetMarginPriceX}))},W=e=>{B((t=>{const i=w({zoomIn:null!=e&&e,prevZoomMultiples:t.zoomMultiples});return{baseMin:j({midPrice:p,zoomMultiples:i}),zoomMultiples:i,targetMarginPriceX:t.targetMarginPriceX}}))},E=l((()=>{if(""===h)return!1;const t=new e(h);return!(!t.lte(0)&&!t.isNaN()&&(null==u?void 0:u.b)&&!t.gte(u.b))}),[h,u]),F=l((()=>{if(""===f)return!1;const t=new e(f);return!(!t.lte(0)&&!t.isNaN()&&(null==u?void 0:u.b)&&!t.gte(u.b))}),[f,u]);return X.jsxs(oe,{id:t,children:[g?"":X.jsxs(re,{children:[X.jsxs(ne,{borderColor:m&&m.grid,children:[L("pool.chart.buy-amount",{symbol:a}),X.jsx(_,{value:h,error:E,onChange:e=>{const t=A(e.target.value,2);null!==t&&b(t)}}),X.jsx(le,{children:L("pool.chart.price-impact",{amount:x})})]}),X.jsxs(ne,{borderColor:m&&m.grid,children:[L("pool.chart.sell-amount",{symbol:a}),X.jsx(_,{value:f,error:F,onChange:e=>{const t=A(e.target.value,2);null!==t&&M(t)}}),X.jsx(le,{children:L("pool.chart.price-impact",{amount:y})})]})]}),void 0!==u&&void 0!==p&&void 0!==c&&void 0!==k.baseMin&&void 0!==p&&X.jsx(te,{width:i,height:r,params:u,midPrice:p,pmmModel:c,baseTokenSymbol:a,quoteTokenSymbol:d,baseMinAndZoomMultiples:k,colorMap:m,setBaseMinAndZoomMultiples:B}),X.jsxs(ae,{className:"operate-btn-wrapper",children:[X.jsx(se,{onClick:()=>q(!0),children:X.jsx($,{})}),X.jsx(se,{onClick:()=>W(!1),children:X.jsx(K,{})}),X.jsx(se,{onClick:()=>W(!0),children:X.jsx(U,{})}),X.jsx(se,{onClick:()=>q(!1),children:X.jsx(Q,{})})]})]})};export{ce as default};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var e=require("./index-DpM5nfM0.cjs");require("@lingui/react"),require("@lingui/core"),require("bignumber.js"),require("lodash"),require("@dodoex/components"),require("@dodoex/api"),require("react"),require("react-redux"),require("identicon.js"),require("@web3-react/core"),require("@web3-react/eip1193"),require("@web3-react/walletconnect-v2"),require("@web3-react/metamask"),require("@web3-react/types"),require("@solana/wallet-adapter-react"),require("@reduxjs/toolkit"),require("redux"),require("@tanstack/react-query"),require("@solana/web3.js"),require("react-dom"),require("react-window"),require("@ethersproject/bignumber"),require("dayjs"),require("react-transition-group"),require("zustand"),require("@solana/wallet-adapter-base"),require("@solana/wallet-adapter-wallets"),require("@solana/wallet-adapter-react-ui"),require("axios"),require("recharts"),require("react-infinite-scroller"),require("rmc-date-picker"),exports.EmptyList=e.EmptyList,exports.FailedList=e.FailedList,exports.InitSwapWidget=e.InitSwapWidget,exports.Message=e.Message,Object.defineProperty(exports,"MetadataFlag",{enumerable:!0,get:function(){return e.MetadataFlag}}),exports.MiningCreate=e.MiningCreate,exports.MiningDetail=e.MiningDetail,exports.MiningList=e.MiningList,Object.defineProperty(exports,"PageType",{enumerable:!0,get:function(){return e.PageType}}),exports.Pool=e.Pool,exports.PoolCreate=e.PoolCreate,exports.PoolDetail=e.PoolDetail,exports.PoolList=e.PoolList,exports.PoolModify=e.PoolModify,exports.PoolOperate=e.PoolOperate,exports.PoolOperateDialog=e.PoolOperateDialog,exports.PoolWidget=e.PoolWidget,exports.Swap=e.Swap,exports.SwapOrderHistory=e.SwapOrderHistory,exports.SwapWidget=e.SwapWidget,exports.TokenCard=e.TokenCard,exports.TokenLogo=e.TokenLogo,exports.UnstyleWidget=e.UnstyleWidget,exports.WIDGET_CLASS_NAME=e.WIDGET_CLASS_NAME,exports.WIDGET_MODULE_CLASS_NAME=e.WIDGET_MODULE_CLASS_NAME,exports.Widget=e.Widget,exports.chainListMap=e.chainListMap,exports.formatPercentageNumber=e.formatPercentageNumber,exports.formatReadableNumber=e.formatReadableNumber,exports.formatShortNumber=e.formatShortNumber,exports.formatTokenAmountNumber=e.formatTokenAmountNumber,exports.getEtherscanPage=e.getEtherscanPage,exports.rpcServerMap=e.rpcServerMap,exports.scanUrlDomainMap=e.scanUrlDomainMap,exports.useMessageState=e.useMessageState,exports.usePoolBalanceInfo=e.usePoolBalanceInfo,exports.useRouterStore=e.useRouterStore,exports.useTradeSwapOrderList=e.useTradeSwapOrderList;
1
+ "use strict";var e=require("./index-DKukw7Mu.cjs");require("@lingui/react"),require("@lingui/core"),require("bignumber.js"),require("lodash"),require("@dodoex/components"),require("@dodoex/api"),require("react"),require("react-redux"),require("identicon.js"),require("@web3-react/core"),require("@web3-react/eip1193"),require("@web3-react/walletconnect-v2"),require("@web3-react/metamask"),require("@web3-react/types"),require("@solana/wallet-adapter-react"),require("@reduxjs/toolkit"),require("redux"),require("@tanstack/react-query"),require("@solana/web3.js"),require("react-dom"),require("react-window"),require("@ethersproject/bignumber"),require("dayjs"),require("react-transition-group"),require("zustand"),require("@solana/wallet-adapter-base"),require("@solana/wallet-adapter-wallets"),require("@solana/wallet-adapter-react-ui"),require("axios"),require("@coral-xyz/anchor"),require("@solana/spl-token"),require("recharts"),require("react-infinite-scroller"),require("rmc-date-picker"),exports.EmptyList=e.EmptyList,exports.FailedList=e.FailedList,exports.InitSwapWidget=e.InitSwapWidget,exports.Message=e.Message,Object.defineProperty(exports,"MetadataFlag",{enumerable:!0,get:function(){return e.MetadataFlag}}),exports.MiningCreate=e.MiningCreate,exports.MiningDetail=e.MiningDetail,exports.MiningList=e.MiningList,Object.defineProperty(exports,"PageType",{enumerable:!0,get:function(){return e.PageType}}),exports.Pool=e.Pool,exports.PoolCreate=e.PoolCreate,exports.PoolDetail=e.PoolDetail,exports.PoolList=e.PoolList,exports.PoolModify=e.PoolModify,exports.PoolOperate=e.PoolOperate,exports.PoolOperateDialog=e.PoolOperateDialog,exports.PoolWidget=e.PoolWidget,exports.Swap=e.Swap,exports.SwapOrderHistory=e.SwapOrderHistory,exports.SwapWidget=e.SwapWidget,exports.TokenCard=e.TokenCard,exports.TokenLogo=e.TokenLogo,exports.UnstyleWidget=e.UnstyleWidget,exports.WIDGET_CLASS_NAME=e.WIDGET_CLASS_NAME,exports.WIDGET_MODULE_CLASS_NAME=e.WIDGET_MODULE_CLASS_NAME,exports.Widget=e.Widget,exports.chainListMap=e.chainListMap,exports.formatPercentageNumber=e.formatPercentageNumber,exports.formatReadableNumber=e.formatReadableNumber,exports.formatShortNumber=e.formatShortNumber,exports.formatTokenAmountNumber=e.formatTokenAmountNumber,exports.getEtherscanPage=e.getEtherscanPage,exports.rpcServerMap=e.rpcServerMap,exports.scanUrlDomainMap=e.scanUrlDomainMap,exports.useMessageState=e.useMessageState,exports.usePoolBalanceInfo=e.usePoolBalanceInfo,exports.useRouterStore=e.useRouterStore,exports.useTradeSwapOrderList=e.useTradeSwapOrderList;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- export{E as EmptyList,F as FailedList,I as InitSwapWidget,g as Message,M as MetadataFlag,A as MiningCreate,z as MiningDetail,y as MiningList,c as PageType,n as Pool,p as PoolCreate,t as PoolDetail,o as PoolList,q as PoolModify,w as PoolOperate,v as PoolOperateDialog,P as PoolWidget,k as Swap,l as SwapOrderHistory,S as SwapWidget,T as TokenCard,B as TokenLogo,U as UnstyleWidget,W as WIDGET_CLASS_NAME,h as WIDGET_MODULE_CLASS_NAME,e as Widget,d as chainListMap,a as formatPercentageNumber,D as formatReadableNumber,f as formatShortNumber,G as formatTokenAmountNumber,C as getEtherscanPage,r as rpcServerMap,s as scanUrlDomainMap,i as useMessageState,x as usePoolBalanceInfo,u as useRouterStore,m as useTradeSwapOrderList}from"./index-CIb0BonQ.js";import"@lingui/react";import"@lingui/core";import"bignumber.js";import"lodash";import"@dodoex/components";import"@dodoex/api";import"react";import"react-redux";import"identicon.js";import"@web3-react/core";import"@web3-react/eip1193";import"@web3-react/walletconnect-v2";import"@web3-react/metamask";import"@web3-react/types";import"@solana/wallet-adapter-react";import"@reduxjs/toolkit";import"redux";import"@tanstack/react-query";import"@solana/web3.js";import"react-dom";import"react-window";import"@ethersproject/bignumber";import"dayjs";import"react-transition-group";import"zustand";import"@solana/wallet-adapter-base";import"@solana/wallet-adapter-wallets";import"@solana/wallet-adapter-react-ui";import"axios";import"recharts";import"react-infinite-scroller";import"rmc-date-picker";
1
+ export{E as EmptyList,F as FailedList,I as InitSwapWidget,g as Message,M as MetadataFlag,A as MiningCreate,z as MiningDetail,y as MiningList,c as PageType,n as Pool,p as PoolCreate,t as PoolDetail,o as PoolList,q as PoolModify,w as PoolOperate,v as PoolOperateDialog,P as PoolWidget,k as Swap,l as SwapOrderHistory,S as SwapWidget,T as TokenCard,B as TokenLogo,U as UnstyleWidget,W as WIDGET_CLASS_NAME,h as WIDGET_MODULE_CLASS_NAME,e as Widget,d as chainListMap,a as formatPercentageNumber,D as formatReadableNumber,f as formatShortNumber,G as formatTokenAmountNumber,C as getEtherscanPage,r as rpcServerMap,s as scanUrlDomainMap,i as useMessageState,x as usePoolBalanceInfo,u as useRouterStore,m as useTradeSwapOrderList}from"./index-CZah-wJD.js";import"@lingui/react";import"@lingui/core";import"bignumber.js";import"lodash";import"@dodoex/components";import"@dodoex/api";import"react";import"react-redux";import"identicon.js";import"@web3-react/core";import"@web3-react/eip1193";import"@web3-react/walletconnect-v2";import"@web3-react/metamask";import"@web3-react/types";import"@solana/wallet-adapter-react";import"@reduxjs/toolkit";import"redux";import"@tanstack/react-query";import"@solana/web3.js";import"react-dom";import"react-window";import"@ethersproject/bignumber";import"dayjs";import"react-transition-group";import"zustand";import"@solana/wallet-adapter-base";import"@solana/wallet-adapter-wallets";import"@solana/wallet-adapter-react-ui";import"axios";import"@coral-xyz/anchor";import"@solana/spl-token";import"recharts";import"react-infinite-scroller";import"rmc-date-picker";
@@ -8,7 +8,7 @@ export interface ReviewDialogProps {
8
8
  clearFromAmt: () => void;
9
9
  toToken: TokenInfo | null;
10
10
  fromToken: TokenInfo | null;
11
- priceImpact: string;
11
+ priceImpact: string | null;
12
12
  fromAmount: string | number | null;
13
13
  toAmount: string | number | null;
14
14
  baseFeeAmount: number | null;
@@ -0,0 +1 @@
1
+ export declare const STABLE_POOL_PROGRAM_ADDRESS = "E2U6mJwFYKqjz5DCLD9hJHJNBsUajhVLefA5Yd1TTy1R";
@@ -0,0 +1,12 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ export declare const POOL_SEED: Buffer;
3
+ export declare const POOL_LPMINT_SEED: Buffer;
4
+ export declare const POOL_BASE_VAULT_SEED: Buffer;
5
+ export declare const POOL_QUOTE_VAULT_SEED: Buffer;
6
+ export declare const POOL_AUTH_SEED: Buffer;
7
+ export declare function getAuthAddress(programId: PublicKey): Promise<[PublicKey, number]>;
8
+ export declare function sortsBeforeToken(baseToken: PublicKey, quoteToken: PublicKey): boolean;
9
+ export declare function getPoolAddress(baseToken: PublicKey, quoteToken: PublicKey, programId: PublicKey): Promise<[PublicKey, number]>;
10
+ export declare function getPoolLpMintAddress(poolAddress: PublicKey, programId: PublicKey): Promise<[PublicKey, number]>;
11
+ export declare function getBaseVaultAddress(poolState: PublicKey, programId: PublicKey): Promise<[PublicKey, number]>;
12
+ export declare function getQuoteVaultAddress(poolState: PublicKey, programId: PublicKey): Promise<[PublicKey, number]>;
@@ -0,0 +1,3 @@
1
+ import { Connection, PublicKey, Transaction } from '@solana/web3.js';
2
+ export declare function wrappedSOL(tx: Transaction, connection: Connection, user: PublicKey, amount: string | number): Promise<void>;
3
+ export declare function unWrappedPartSOL(tx: Transaction, connection: Connection, user: PublicKey, amount: number): Promise<void>;
@@ -1 +1 @@
1
- export declare function useCurrentChainId(): import("@dodoex/api").ChainId;
1
+ export declare function useCurrentChainId(): number | undefined;
@@ -1,7 +1,6 @@
1
- import { ChainId } from '@dodoex/api';
2
1
  export declare function useWalletInfo(): {
3
2
  account: string | undefined;
4
- chainId: ChainId;
3
+ chainId: number | undefined;
5
4
  connectedChainId: number | undefined;
6
5
  defaultChainId: number | undefined;
7
6
  onlyChainId: number | undefined;
@@ -49,6 +49,19 @@ export interface Showing {
49
49
  subtitle?: string | React.ReactNode;
50
50
  spec: StepSpec;
51
51
  }
52
+ export interface ExecuteCustomHandlerParameters {
53
+ onSubmit: (tx: string, params?: {
54
+ reportInfo?: Record<string, any>;
55
+ showing?: Partial<Showing> | null;
56
+ }) => void;
57
+ onSuccess: (tx: string, params?: {
58
+ reportInfo?: Record<string, any>;
59
+ notShowingDone?: boolean;
60
+ showing?: Partial<Showing>;
61
+ }) => Promise<void>;
62
+ onError: (e: any) => void;
63
+ setShowing: React.Dispatch<React.SetStateAction<Showing | null>>;
64
+ }
52
65
  export type ExecutionCtx = {
53
66
  /**
54
67
  * Execute an on-chain operation
@@ -70,6 +83,17 @@ export type ExecutionCtx = {
70
83
  successBack?: (tx: string, callback?: ExecutionProps['onTxSuccess']) => void;
71
84
  metadata?: Metadata;
72
85
  }) => Promise<ExecutionResult>;
86
+ executeCustom: (params: {
87
+ brief: string;
88
+ subtitle?: string | React.ReactNode | null;
89
+ early?: boolean;
90
+ mixpanelProps?: Record<string, any>;
91
+ submittedBack?: () => void;
92
+ submittedConfirmBack?: () => void;
93
+ metadata?: Record<string, any>;
94
+ successBack?: (tx: string, callback?: ExecutionProps['onTxSuccess']) => void;
95
+ handler: (params: ExecuteCustomHandlerParameters) => Promise<any>;
96
+ }) => Promise<ExecutionResult>;
73
97
  /**
74
98
  * order
75
99
  */
@@ -32,7 +32,14 @@ interface IRouteResponse {
32
32
  }
33
33
  export declare function useFetchRoutePrice({ toToken, fromToken, fromAmount, toAmount, marginAmount, estimateGas, isReverseRouting, slippage, slippageLoading, }: FetchRoutePrice): {
34
34
  status: RoutePriceStatus;
35
- rawBrief: IRouteResponse | null;
35
+ rawBrief: {
36
+ resAmount: number;
37
+ baseFeeAmount: number;
38
+ additionalFeeAmount: number;
39
+ priceImpact: null;
40
+ resPricePerToToken: number;
41
+ resPricePerFromToken: number;
42
+ } | IRouteResponse | null | undefined;
36
43
  refetch: () => Promise<void>;
37
44
  executeSwap: (subtitle: React.ReactNode) => void;
38
45
  reset: () => void;
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import { FetchRoutePrice } from '../Swap/useFetchRoutePrice';
3
+ export declare function useFetchSolanaRoutePrice({ toToken, fromToken, fromAmount, slippage, }: FetchRoutePrice): {
4
+ fetchRouteQuery: import("@tanstack/react-query").UseQueryResult<{
5
+ resAmount: number;
6
+ baseFeeAmount: number;
7
+ additionalFeeAmount: number;
8
+ priceImpact: null;
9
+ resPricePerToToken: number;
10
+ resPricePerFromToken: number;
11
+ } | undefined, Error>;
12
+ execute: import("@tanstack/react-query").UseMutationResult<import("../Submission/types").ExecutionResult | undefined, Error, {
13
+ resAmount: number;
14
+ subtitle: React.ReactNode;
15
+ }, unknown>;
16
+ };
@@ -1,18 +1,22 @@
1
+ import BigNumber from 'bignumber.js';
1
2
  export declare function useSolanaConnection(): {
2
3
  fetchETHBalance: () => Promise<{
3
- amount: import("bignumber.js").BigNumber;
4
+ amount: BigNumber;
4
5
  decimals: number;
5
6
  uiAmount: number;
6
7
  uiAmountString: string;
7
8
  }>;
8
9
  fetchTokenBalance: (address: string) => Promise<{
9
- amount: import("bignumber.js").BigNumber;
10
+ amount: BigNumber;
10
11
  decimals: number;
11
12
  uiAmount: number;
12
13
  uiAmountString: string;
14
+ } | {
15
+ amount: BigNumber;
13
16
  } | {
14
17
  context: import("@solana/web3.js").Context;
15
18
  value: import("@solana/web3.js").TokenAmount;
16
- amount: import("bignumber.js").BigNumber;
19
+ amount: BigNumber;
17
20
  }>;
21
+ fetchBlockNumber: () => Promise<number>;
18
22
  };
@@ -0,0 +1,2 @@
1
+ import { Idl, Program } from '@coral-xyz/anchor';
2
+ export declare function useSolanaProgram(idl: Idl): Program<Idl> | undefined;
@@ -0,0 +1 @@
1
+ export declare function useSolanaStablePoolProgram(): import("@coral-xyz/anchor").Program<import("@coral-xyz/anchor").Idl> | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dodoex/widgets",
3
- "version": "3.0.1-solana.1",
3
+ "version": "3.0.1-solana.3",
4
4
  "description": "DODO Widgets",
5
5
  "source": "src/index.tsx",
6
6
  "types": "dist/types/index.d.ts",
@@ -58,7 +58,8 @@
58
58
  },
59
59
  "dependencies": {
60
60
  "@babel/runtime": "^7.17.0",
61
- "@dodoex/api": "3.0.0",
61
+ "@coral-xyz/anchor": "^0.30.1",
62
+ "@dodoex/api": "3.0.1-solana.0",
62
63
  "@dodoex/components": "3.0.0",
63
64
  "@dodoex/icons": "^2.0.2",
64
65
  "@emotion/react": "^11.10.0",
@@ -72,6 +73,7 @@
72
73
  "@semantic-release/changelog": "^6.0.1",
73
74
  "@semantic-release/git": "^10.0.1",
74
75
  "@solana/react": "^2.0.0",
76
+ "@solana/spl-token": "^0.4.9",
75
77
  "@solana/wallet-adapter-base": "^0.9.23",
76
78
  "@solana/wallet-adapter-react": "^0.15.35",
77
79
  "@solana/wallet-adapter-react-ui": "^0.9.35",
@@ -153,4 +155,4 @@
153
155
  "ts-jest": "^29.0.1",
154
156
  "typescript": "^5.6.3"
155
157
  }
156
- }
158
+ }