@bitzy-app/bitzy-sdk 0.1.0 → 0.1.2

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.
@@ -28,6 +28,7 @@ export declare class APIClient {
28
28
  private request;
29
29
  /**
30
30
  * Get V3 path for swap routing
31
+ * Uses URLSearchParams for single encoding (avoids double-encoding on iOS).
31
32
  */
32
33
  getPathV3(srcToken: Token, dstToken: Token, amountIn: string, types: number[], enabledSources: number[]): Promise<PathV3Response>;
33
34
  /**
@@ -35,11 +36,5 @@ export declare class APIClient {
35
36
  * Returns minimum amounts for tokens to use multiple routes
36
37
  */
37
38
  getAssetMinimum(): Promise<any>;
38
- /**
39
- * Build query string from parameters
40
- * Arrays are formatted as JSON strings with quotes encoded as %22, brackets not encoded
41
- * Example: typeId=["1","2"] becomes typeId=[%221%22,%222%22]
42
- */
43
- private buildQueryString;
44
39
  }
45
40
  //# sourceMappingURL=Client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/api/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,cAAc,EAAE,MAAM,UAAU,CAAC;AAIlE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO;IAIP;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS;IAoBtD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;OAEG;YACW,OAAO;IAoDrB;;OAEG;IACG,SAAS,CACb,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC;IAgB1B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC;IAMrC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAgBzB"}
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/api/Client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,cAAc,EAAE,MAAM,UAAU,CAAC;AAIlE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA0B;IACjD,OAAO,CAAC,MAAM,CAAkB;IAEhC,OAAO;IAIP;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS;IAoBtD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;OAEG;YACW,OAAO;IAoDrB;;;OAGG;IACG,SAAS,CACb,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EAAE,EACf,cAAc,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,cAAc,CAAC;IAa1B;;;OAGG;IACG,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC;CAKtC"}
package/dist/index.d.ts CHANGED
@@ -452,6 +452,7 @@ declare class APIClient {
452
452
  private request;
453
453
  /**
454
454
  * Get V3 path for swap routing
455
+ * Uses URLSearchParams for single encoding (avoids double-encoding on iOS).
455
456
  */
456
457
  getPathV3(srcToken: Token, dstToken: Token, amountIn: string, types: number[], enabledSources: number[]): Promise<PathV3Response>;
457
458
  /**
@@ -459,12 +460,6 @@ declare class APIClient {
459
460
  * Returns minimum amounts for tokens to use multiple routes
460
461
  */
461
462
  getAssetMinimum(): Promise<any>;
462
- /**
463
- * Build query string from parameters
464
- * Arrays are formatted as JSON strings with quotes encoded as %22, brackets not encoded
465
- * Example: typeId=["1","2"] becomes typeId=[%221%22,%222%22]
466
- */
467
- private buildQueryString;
468
463
  }
469
464
 
470
465
  interface SwapV3ServiceConfig {
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import e from"bignumber.js";import{defineChain as t,createPublicClient as n,http as r,zeroAddress as s,encodeAbiParameters as o,encodeFunctionData as a,decodeFunctionResult as i}from"viem";import{useMemo as u,useEffect as d,useState as c,useCallback as l}from"react";const f=t=>t instanceof e?t:new e(t),p=t=>t instanceof e;class m extends Error{constructor(e){super(e.message),this.name="SwapError",this.code=e.code,this.details=e.details,Error.captureStackTrace&&Error.captureStackTrace(this,m)}}const E={V2:0,V3:1},A="0x0000000000000000000000000000000000000001",C="0x0000000000000000000000000000000000000000",g=5,y=3e4,b="https://api-public.bitzy.app",h={3637:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"},3636:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"}},w={3637:{factoryAddress:"0xDF2CA43f59fd92874e6C1ef887f7E14cb1f354dD",v3FactoryAddress:"0xa8C00286d8d37131c1d033dEeE2F754148932800",v3PositionManagerAddress:"0x76F3e7e326479Ef559996Cf5ab0aCB79Be4626FD",v3WalletHelperAddress:"0xd9Db96Aa882Da764feFff3eE427701B0337e8Ae7",routerAddress:"0x41207Eadf1932966Ff75bdc35e55D2C6734E47D4",aggregatorAddress:"0x5a0690AC82AAAA2e25bC130E900CD31eE9B67DB8",otcAddress:"0xe97ED77EB36A09c37B57D69A5000d8831167A854",memeTokenGenerator:"0x1cb880329265c7A5deDaD6301b1fbd2684CDd200",bitzyQueryAddress:"0x5b5079587501Bd85d3CDf5bFDf299f4eaAe98c23",wrappedAddress:"0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)},3636:{factoryAddress:"0x472F9A40F47e0e0F770b224AeC2DD093cf5783aC",v3FactoryAddress:"0xc89e6aD4aD42Eeb82dfBA4c301CDaEDfd794A778",v3PositionManagerAddress:"0xA05E35Fa8997852E6a4A073461E36db1AA725D39",v3WalletHelperAddress:"0x232182B50E1d3c037b3E0bdbd89226d7730cFe0e",routerAddress:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",aggregatorAddress:"0x33B1Ed34c11910F767B15eBAbAB782D61FB2C5Ea",otcAddress:"0xB582f4B568f13F29Bba7696Fc352E293952D4b7E",memeTokenGenerator:"0xc76b4a09BecA8b34D94dE8BA27AeeF652FA3D2fC",bitzyQueryAddress:"0x2ad4b8912fb4Fe93f79BbCb3Aa6B8C39025FdfCC",wrappedAddress:"0x233631132FD56c8f86D1FC97F0b82420a8d20af3",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)}},I={3637:{rpcUrls:["https://rpc.botanixlabs.com"],name:"Botanix Mainnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}},3636:{rpcUrls:["https://node.botanixlabs.dev"],name:"Botanix Testnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}}},T={3637:{types:[1,2],enabledSources:[1]},3636:{types:[1,2],enabledSources:[1]}},D=e=>T[e]||{types:[1,2],enabledSources:[1]},B=e=>w[e],x=e=>h[e]||{},O=w,F=h[3637]||{},P={PATH_V3:"/api/sdk/bestpath/split",ASSET_MINIMUM:"/api/sdk/asset/minimum"},R={INVALID_TOKENS:"INVALID_TOKENS",INVALID_AMOUNT:"INVALID_AMOUNT",NETWORK_NOT_SUPPORTED:"NETWORK_NOT_SUPPORTED",API_ERROR:"API_ERROR",QUERY_ERROR:"QUERY_ERROR",INSUFFICIENT_LIQUIDITY:"INSUFFICIENT_LIQUIDITY"};class N{constructor(e){this.config=e}static getInstance(e){if(!N.instance){const t={...e,headers:{...process.env.NEXT_PUBLIC_BITZY_API_KEY&&{"authen-key":process.env.NEXT_PUBLIC_BITZY_API_KEY},...e.headers}};N.instance=new N(t)}return N.instance}static resetInstance(){N.instance=null}async request(e,t={}){const n=new AbortController,r=setTimeout(()=>n.abort(),this.config.timeout);try{const s=await fetch(`${this.config.baseUrl}${e}`,{...t,signal:n.signal,headers:{"Content-Type":"application/json",...this.config.headers,...t.headers}});if(clearTimeout(r),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(t){if(clearTimeout(r),t instanceof Error){if("AbortError"===t.name)throw new m({message:"Request timeout",code:R.API_ERROR,details:{endpoint:e,timeout:this.config.timeout}});throw new m({message:t.message,code:R.API_ERROR,details:{endpoint:e,originalError:t}})}throw new m({message:"Unknown API error",code:R.API_ERROR,details:{endpoint:e,originalError:t}})}}async getPathV3(e,t,n,r,s){const o={src:e.address,dest:t.address,amount:n,typeId:r,sourceId:s},a=this.buildQueryString(o);return this.request(`${P.PATH_V3}?${a}`,{method:"GET"})}async getAssetMinimum(){return this.request(P.ASSET_MINIMUM,{method:"GET"})}buildQueryString(e){return Object.keys(e).reduce((t,n)=>{let r;if(Array.isArray(e[n])){r=('["'+e[n].map(e=>e).join('","')+'"]').replace(/"/g,"%22")}else r=String(e[n]);return[...t,`${n}=${r}`]},[]).join("&")}}N.instance=null;let k=null;function _(){k=null,console.log("Minimum amounts cache cleared")}const v={3637:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56","0x29eE6138DD4C9815f46D34a4A1ed48F46758A402","0x9BC574a6f1170e90D80826D86a6126d59198A3Ef","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"],3636:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x233631132FD56c8f86D1FC97F0b82420a8d20af3","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"]};function U(e,t){if(!e?.address)return!1;const n=v[t];return!!n&&n.some(t=>t.toLowerCase()===e.address.toLowerCase())}function S(e,t,n,r=5){const s=U(e,n),o=U(t,n);return s&&o?r:1}async function L(t,n,r,s,o,a,i=5){try{console.log("Fetching online partCount data...");const u=await async function(e,t){const n=Date.now();if(k&&n<k.expiresAt)return console.log("Using cached minimum amounts data"),k.data;console.log("Fetching fresh minimum amounts data from API");const r=N.getInstance({baseUrl:e,timeout:5e3,headers:{...t&&{"authen-key":t}}}),s=await r.getAssetMinimum();if(!s.success)throw new Error(`API request failed: ${s.error||"Unknown error"}`);return k={data:s.data||[],timestamp:n,expiresAt:n+3e5},k.data}(o,a),d=u.find(e=>e.token?.toLowerCase()===t.address.toLowerCase()),c=u.find(e=>e.token?.toLowerCase()===n.address.toLowerCase()),l=new e(r);return d&&c&&l.gte(d.minimumAmount)&&l.gte(c.minimumAmount)?(console.log("Amount meets minimum threshold for both tokens, using partCount = 5"),5):(console.log("Amount below minimum threshold or missing data, falling back to offline logic"),S(t,n,s,i))}catch(e){return console.warn("Failed to fetch online partCount data:",e),console.log("Falling back to offline partCount logic"),S(t,n,s,i)}}async function V(e,t,n,r,s,o=5,a){try{return await L(e,t,n,r,s,a,o)}catch(e){return console.warn("Online partCount failed, using offline fallback:",e),o}}function Q(e,t,n){if(0===t)return 1/0;return e/n/t*100}function M(e,t,n=5){return Q(e,t,5)>n?1:5}function Y(t,n){return!t||isNaN(Number(t))?new e(0):new e(t).times(new e(10).pow(n))}function z(t,n){return new e(t).dividedBy(new e(10).pow(n)).toString()}function $(e,t){return e.address.toLowerCase()===t.toLowerCase()}function W(e,t){return e.address.toLowerCase()===t.toLowerCase()}function j(e,t){return e&&t&&e.address&&t.address&&e.address!==t.address&&e.chainId===t.chainId}function K(t){if(!t||isNaN(Number(t)))return!1;const n=new e(t);return n.gt(0)&&n.isFinite()}function Z(t,n,r=10){return new e(t).times(n).lt(1)?1:r}function q(e){return"string"==typeof e?e:e?.message?e.message:e?.error?e.error:"Unknown error occurred"}function H(e,t){let n;const r=(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)};return r.cancel=()=>{clearTimeout(n)},r}const G=[{inputs:[{internalType:"uint256",name:"srcAmount",type:"uint256"},{internalType:"bytes",name:"encodedRoutes",type:"bytes"},{internalType:"uint256",name:"parts",type:"uint256"}],name:"splitQuery",outputs:[{components:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"bestIndex",type:"uint256"}],internalType:"struct BitzyQueryV2.OneRoute",name:"",type:"tuple"},{components:[{internalType:"uint256[]",name:"distribution",type:"uint256[]"},{internalType:"uint256",name:"amountOut",type:"uint256"}],internalType:"struct BitzyQueryV2.SplitRoute",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"}];class X{constructor(e){this.config=e}getPublicClient(e){if(this.config.publicClient)return this.config.publicClient;const s=(e=>I[e])(e);if(!s)throw new m({message:`Unsupported chainId: ${e}`,code:R.NETWORK_NOT_SUPPORTED,details:{chainId:e}});const o=t({id:e,name:s.name,network:s.name.toLowerCase().replace(/\s+/g,"-"),nativeCurrency:s.nativeCurrency,rpcUrls:{default:{http:s.rpcUrls},public:{http:s.rpcUrls}}});return n({chain:o,transport:r()})}async fetchRoute(t){const{amountIn:n,srcToken:r,dstToken:u,chainId:d,partCount:c,forcePartCount:l}=t,f=l||c||this.getPartCount(r,u,d,this.config.defaultPartCount);if(!j(r,u))throw new m({message:"Invalid tokens provided",code:R.INVALID_TOKENS,details:{srcToken:r,dstToken:u}});if(!K(n))throw new m({message:"Invalid amount provided",code:R.INVALID_AMOUNT,details:{amountIn:n}});const p=Y(n,r.decimals),{routerAddress:g,bitzyQueryAddress:y,wrappedAddress:b,nativeAddress:h}=this.config.config,w=$(r,h),I=$(u,h);if(w&&W(u,b)||I&&W(r,b)){const e=w?"wrap":"unwrap",t=p;return{routes:[[{routerAddress:g,lpAddress:s,fromToken:r.address,toToken:u.address,from:r.address,to:u.address,part:"100000000",amountAfterFee:"10000",dexInterface:0}]],distributions:[f],amountOutRoutes:[t],amountOutBN:t,amountInParts:[p],isAmountOutError:!1,isWrap:e}}const T=w?{...r,address:b}:r,D=I?{...u,address:b}:u;try{const n=await this.config.apiClient.getPathV3(T,D,p.toFixed(0),t.types||[1,2],t.enabledSources||[1]),{hops:r,validPath:u}=n.data;if(0===r.length)return{routes:[],distributions:[],amountOutRoutes:[],amountOutBN:new e(0),amountInParts:[],isAmountOutError:!0};const c=o([{type:"tuple[][]",components:[{type:"address",name:"src"},{type:"address",name:"dest"},{type:"uint8",name:"typeId"},{type:"uint8",name:"sourceId"},{type:"bytes",name:"path"}]}],[r]);let l=new e(0),m=[],g=[];const h=this.getPublicClient(d);try{const t=a({abi:G,functionName:"splitQuery",args:[p.toFixed(0),c,f]}),n=await h.call({to:y,data:t,gas:50000000000n,gasPrice:void 0});if(n.data){const t=i({abi:G,functionName:"splitQuery",data:n.data})[1];if(t&&t.amountOut){l=new e(t.amountOut.toString());let n=t.distribution.map(t=>new e(t.toString()).toNumber());g=u.reduce((t,r,o)=>(n[o]>0&&t.push(r.map((t,n,r)=>({routerAddress:F[t.source+"_"+t.type]||s,lpAddress:t.pool||s,fromToken:t.src,toToken:t.dest,from:n>0||"V3"===t.type||t.src===b.toLowerCase()?C:A,to:n<r.length-1||n===r.length-1&&t.dest===b.toLowerCase()?C:A,part:"100000000",amountAfterFee:new e(1e4).minus(new e(t.fee||0).dividedBy(100)).toFixed(),dexInterface:E[t.type]||0}))),t),[]),m=n.filter(e=>e>0)}}}catch(t){l=new e(0),m=[],g=[]}const w=m.map(t=>l.times(t).dividedBy(f).dp(0,e.ROUND_DOWN)),I=m.map(t=>p.times(t).dividedBy(f).dp(0,e.ROUND_DOWN));return{routes:g,distributions:m,amountOutRoutes:w,amountOutBN:l,amountInParts:I,isAmountOutError:!1}}catch(e){throw new m({message:"Failed to fetch swap route",code:R.API_ERROR,details:{originalError:e,options:t}})}}getSupportedNetworks(){return Object.keys(O).map(Number)}getNetworkConfig(e){return this.config.config}getPartCount(e,t,n,r){return S(e,t,n,r)}}async function J(e,t={}){const{apiBaseUrl:n=b,defaultPartCount:r=g,timeout:s=3e4,headers:o={},publicClient:a}=t,i=e.chainId,u=B(i);if(!u)throw new Error(`Unsupported network: ${i}`);const d=N.getInstance({baseUrl:n,timeout:s,headers:o});return new X({config:{routerAddress:u.routerAddress,bitzyQueryAddress:u.bitzyQueryAddress,wrappedAddress:u.wrappedAddress,nativeAddress:u.nativeAddress},defaultPartCount:r,apiClient:d,publicClient:a}).fetchRoute(e)}async function ee(e){return(await Promise.allSettled(e.map(async({options:e,config:t})=>{try{return{success:!0,data:await J(e,t)}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}}))).map(e=>"fulfilled"===e.status?e.value:{success:!1,error:e.reason?.message||"Unknown error"})}async function te(e,t,n,r,s={}){const o=await J({amountIn:n,srcToken:e,dstToken:t,chainId:r},s);return{amountOut:o.amountOutBN.toFixed(0),routes:o.routes.length}}async function ne(e,t={}){const{types:n,enabledSources:r}=D(e.chainId);return J({...e,types:n,enabledSources:r},{...t,forcePartCount:t.forcePartCount})}const re=(t,n,r,o,a={})=>{const i=u(()=>({}),[]),f=u(()=>({routerAddress:s,bitzyQueryAddress:s,wrappedAddress:s,nativeAddress:s}),[]),{apiBaseUrl:p,addressConfig:m,defaultPartCount:E,timeout:A,headers:C,refreshInterval:g,publicClient:y,configTypes:h,configEnabledSources:w,forcePartCount:I,useOnlinePartCount:T}=u(()=>{const{apiBaseUrl:e=b,config:t=f,defaultPartCount:n=5,timeout:r=3e4,headers:s=i,refreshInterval:o=1e4,publicClient:u,types:d,enabledSources:c,forcePartCount:l,useOnlinePartCount:p=!1}=a;return{apiBaseUrl:e,addressConfig:t,defaultPartCount:n,timeout:r,headers:s,refreshInterval:o,publicClient:u,configTypes:d,configEnabledSources:c,forcePartCount:l,useOnlinePartCount:p}},[a,i,f]),x=u(()=>D(o),[o]),O=u(()=>h??x.types,[h,x.types]),F=u(()=>w??x.enabledSources,[w,x.enabledSources]);d(()=>{console.log("config",a)},[a]),d(()=>{console.log("srcToken",t)},[t]),d(()=>{console.log("dstToken",n)},[n]),d(()=>{console.log("amountIn",r)},[r]),d(()=>{console.log("chainId",o)},[o]),d(()=>{console.log("apiBaseUrl",p)},[p]),d(()=>{console.log("addressConfig",m)},[m]),d(()=>{console.log("defaultPartCount",E)},[E]),d(()=>{console.log("timeout",A)},[A]),d(()=>{console.log("headers",C)},[C]),d(()=>{console.log("types",O)},[O]),d(()=>{console.log("enabledSources",F)},[F]);const[P,R]=c(new e(0)),[k,_]=c([]),[v,U]=c([]),[L,Q]=c([]),[M,Y]=c([]),[z,$]=c(!1),[W,j]=c(!1),[K,Z]=c(),[q,G]=c(!1),[J,ee]=c(null),[te,ne]=c(null),re=u(()=>(console.log("partCount",0,T),T?null!==te?te:S(t,n,o,E):(console.log("partCount",1,I),void 0!==I?I:(console.log("partCount",2,E),S(t,n,o,E)))),[E,I,T,te,t,n,o]);d(()=>{if(!(T&&t&&n&&r))return void ne(null);(async()=>{try{const e=await V(t,n,r,o,p,E);ne(e)}catch(e){console.warn("Failed to fetch online partCount:",e),ne(null)}})()},[T,t,n,r,o,p,E]);const se=u(()=>{const e=B(o),t=m&&Object.keys(m).length>0?m:{routerAddress:e?.routerAddress||"0x0000000000000000000000000000000000000000",bitzyQueryAddress:e?.bitzyQueryAddress||"0x0000000000000000000000000000000000000000",wrappedAddress:e?.wrappedAddress||"0x0000000000000000000000000000000000000000",nativeAddress:e?.nativeAddress||"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},n=N.getInstance({baseUrl:p,timeout:A,headers:C});return new X({config:t,defaultPartCount:E,apiClient:n,publicClient:y})},[m,E,p,A,C,y,o]),oe=l(()=>{ee(null)},[]),ae=l(async()=>{if(!t||!n||!r||"0"===r)return R(new e(0)),_([]),U([]),Q([]),Y([]),j(!1),G(!1),void ee(null);$(!0),ee(null);try{const e={amountIn:r,srcToken:t,dstToken:n,chainId:o,partCount:re,types:O,enabledSources:F},s=await se.fetchRoute(e);R(s.amountOutBN),_(s.routes),U(s.distributions),Q(s.amountOutRoutes),Y(s.amountInParts),j(s.isAmountOutError),Z(s.isWrap),G(!0)}catch(t){const n=t instanceof Error?t.message:"Unknown error occurred";ee(n),console.error("Error fetching route:",t),R(new e(0)),_([]),U([]),Q([]),Y([]),j(!0),G(!1)}finally{$(!1)}},[se,t,n,r,o,re,O,F]),ie=u(()=>H(ae,300),[ae]);return d(()=>{if(!r||"0"===r)return R(new e(0)),_([]),U([]),Q([]),Y([]),j(!1),G(!1),void ee(null);ie();const t=setInterval(()=>{ie()},g);return()=>{clearInterval(t),"function"==typeof ie.cancel&&ie.cancel()}},[r,t?.address,n?.address,ie,g]),d(()=>{q&&ae()},[ae,q,se]),{routes:k,distributions:v,amountOutRoutes:L,amountOutBN:P,amountInParts:M,fetchRoute:ae,isLoading:z,isAmountOutError:W,isFirstFetch:q,isWrap:K,error:J,clearError:oe}};export{N as APIClient,P as API_ENDPOINTS,G as BITZY_QUERY_ABI,w as CONTRACT_ADDRESSES,O as DEFAULT_NETWORKS,g as DEFAULT_PART_COUNT,y as DEFAULT_TIMEOUT,E as DEX_INTERFACE,F as DEX_ROUTER,h as DEX_ROUTERS,R as ERROR_CODES,v as HIGH_VALUE_TOKENS,T as LIQUIDITY_SOURCES,C as ROUTER_TARGET,X as SwapV3Service,A as USER_TARGET,Z as calculatePartCount,Q as calculatePriceImpact,_ as clearMinimumAmountsCache,H as debounce,f as ensureBigNumber,ee as fetchBatchSwapRoutes,J as fetchSwapRoute,ne as fetchSwapRouteSimple,q as formatError,Y as fromTokenAmount,B as getContractAddresses,x as getDexRouters,D as getLiquiditySources,M as getOptimalPartCount,S as getPartCountOffline,L as getPartCountOnline,V as getPartCountWithFallback,te as getSwapQuote,J as getSwapRoute,p as isBigNumber,U as isHighValueToken,$ as isNativeToken,W as isWrappedToken,z as toTokenAmount,re as useSwapRoutes,re as useSwapV3Routes,K as validateAmount,j as validateTokens};
1
+ import e from"bignumber.js";import{defineChain as t,createPublicClient as n,http as r,zeroAddress as s,encodeAbiParameters as o,encodeFunctionData as a,decodeFunctionResult as i}from"viem";import{useMemo as d,useEffect as c,useState as u,useCallback as l}from"react";const f=t=>t instanceof e?t:new e(t),p=t=>t instanceof e;class m extends Error{constructor(e){super(e.message),this.name="SwapError",this.code=e.code,this.details=e.details,Error.captureStackTrace&&Error.captureStackTrace(this,m)}}const E={V2:0,V3:1},A="0x0000000000000000000000000000000000000001",C="0x0000000000000000000000000000000000000000",g=5,y=3e4,b="https://api-public.bitzy.app",h={3637:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"},3636:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"}},w={3637:{factoryAddress:"0xDF2CA43f59fd92874e6C1ef887f7E14cb1f354dD",v3FactoryAddress:"0xa8C00286d8d37131c1d033dEeE2F754148932800",v3PositionManagerAddress:"0x76F3e7e326479Ef559996Cf5ab0aCB79Be4626FD",v3WalletHelperAddress:"0xd9Db96Aa882Da764feFff3eE427701B0337e8Ae7",routerAddress:"0x41207Eadf1932966Ff75bdc35e55D2C6734E47D4",aggregatorAddress:"0x5a0690AC82AAAA2e25bC130E900CD31eE9B67DB8",otcAddress:"0xe97ED77EB36A09c37B57D69A5000d8831167A854",memeTokenGenerator:"0x1cb880329265c7A5deDaD6301b1fbd2684CDd200",bitzyQueryAddress:"0x5b5079587501Bd85d3CDf5bFDf299f4eaAe98c23",wrappedAddress:"0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)},3636:{factoryAddress:"0x472F9A40F47e0e0F770b224AeC2DD093cf5783aC",v3FactoryAddress:"0xc89e6aD4aD42Eeb82dfBA4c301CDaEDfd794A778",v3PositionManagerAddress:"0xA05E35Fa8997852E6a4A073461E36db1AA725D39",v3WalletHelperAddress:"0x232182B50E1d3c037b3E0bdbd89226d7730cFe0e",routerAddress:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",aggregatorAddress:"0x33B1Ed34c11910F767B15eBAbAB782D61FB2C5Ea",otcAddress:"0xB582f4B568f13F29Bba7696Fc352E293952D4b7E",memeTokenGenerator:"0xc76b4a09BecA8b34D94dE8BA27AeeF652FA3D2fC",bitzyQueryAddress:"0x2ad4b8912fb4Fe93f79BbCb3Aa6B8C39025FdfCC",wrappedAddress:"0x233631132FD56c8f86D1FC97F0b82420a8d20af3",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)}},I={3637:{rpcUrls:["https://rpc.botanixlabs.com"],name:"Botanix Mainnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}},3636:{rpcUrls:["https://node.botanixlabs.dev"],name:"Botanix Testnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}}},T={3637:{types:[1,2],enabledSources:[1]},3636:{types:[1,2],enabledSources:[1]}},D=e=>T[e]||{types:[1,2],enabledSources:[1]},B=e=>w[e],O=e=>h[e]||{},x=w,F=h[3637]||{},P={PATH_V3:"/api/sdk/bestpath/split",ASSET_MINIMUM:"/api/sdk/asset/minimum"},N={INVALID_TOKENS:"INVALID_TOKENS",INVALID_AMOUNT:"INVALID_AMOUNT",NETWORK_NOT_SUPPORTED:"NETWORK_NOT_SUPPORTED",API_ERROR:"API_ERROR",QUERY_ERROR:"QUERY_ERROR",INSUFFICIENT_LIQUIDITY:"INSUFFICIENT_LIQUIDITY"};class R{constructor(e){this.config=e}static getInstance(e){if(!R.instance){const t={...e,headers:{...process.env.NEXT_PUBLIC_BITZY_API_KEY&&{"authen-key":process.env.NEXT_PUBLIC_BITZY_API_KEY},...e.headers}};R.instance=new R(t)}return R.instance}static resetInstance(){R.instance=null}async request(e,t={}){const n=new AbortController,r=setTimeout(()=>n.abort(),this.config.timeout);try{const s=await fetch(`${this.config.baseUrl}${e}`,{...t,signal:n.signal,headers:{"Content-Type":"application/json",...this.config.headers,...t.headers}});if(clearTimeout(r),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(t){if(clearTimeout(r),t instanceof Error){if("AbortError"===t.name)throw new m({message:"Request timeout",code:N.API_ERROR,details:{endpoint:e,timeout:this.config.timeout}});throw new m({message:t.message,code:N.API_ERROR,details:{endpoint:e,originalError:t}})}throw new m({message:"Unknown API error",code:N.API_ERROR,details:{endpoint:e,originalError:t}})}}async getPathV3(e,t,n,r,s){const o=new URLSearchParams;return o.set("src",e.address),o.set("dest",t.address),o.set("amount",n),o.set("typeId",JSON.stringify(r)),o.set("sourceId",JSON.stringify(s)),this.request(`${P.PATH_V3}?${o.toString()}`,{method:"GET"})}async getAssetMinimum(){return this.request(P.ASSET_MINIMUM,{method:"GET"})}}R.instance=null;let _=null;function k(){_=null,console.log("Minimum amounts cache cleared")}const v={3637:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56","0x29eE6138DD4C9815f46D34a4A1ed48F46758A402","0x9BC574a6f1170e90D80826D86a6126d59198A3Ef","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"],3636:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x233631132FD56c8f86D1FC97F0b82420a8d20af3","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"]};function U(e,t){if(!e?.address)return!1;const n=v[t];return!!n&&n.some(t=>t.toLowerCase()===e.address.toLowerCase())}function S(e,t,n,r=5){const s=U(e,n),o=U(t,n);return s&&o?r:1}async function L(t,n,r,s,o,a,i=5){try{console.log("Fetching online partCount data...");const d=await async function(e,t){const n=Date.now();if(_&&n<_.expiresAt)return console.log("Using cached minimum amounts data"),_.data;console.log("Fetching fresh minimum amounts data from API");const r=R.getInstance({baseUrl:e,timeout:5e3,headers:{...t&&{"authen-key":t}}}),s=await r.getAssetMinimum();if(!s.success)throw new Error(`API request failed: ${s.error||"Unknown error"}`);return _={data:s.data||[],timestamp:n,expiresAt:n+3e5},_.data}(o,a),c=d.find(e=>e.token?.toLowerCase()===t.address.toLowerCase()),u=d.find(e=>e.token?.toLowerCase()===n.address.toLowerCase()),l=new e(r);return c&&u&&l.gte(c.minimumAmount)&&l.gte(u.minimumAmount)?(console.log("Amount meets minimum threshold for both tokens, using partCount = 5"),5):(console.log("Amount below minimum threshold or missing data, falling back to offline logic"),S(t,n,s,i))}catch(e){return console.warn("Failed to fetch online partCount data:",e),console.log("Falling back to offline partCount logic"),S(t,n,s,i)}}async function V(e,t,n,r,s,o=5,a){try{return await L(e,t,n,r,s,a,o)}catch(e){return console.warn("Online partCount failed, using offline fallback:",e),o}}function Q(e,t,n){if(0===t)return 1/0;return e/n/t*100}function M(e,t,n=5){return Q(e,t,5)>n?1:5}function Y(t,n){return!t||isNaN(Number(t))?new e(0):new e(t).times(new e(10).pow(n))}function z(t,n){return new e(t).dividedBy(new e(10).pow(n)).toString()}function W(e,t){return e.address.toLowerCase()===t.toLowerCase()}function $(e,t){return e.address.toLowerCase()===t.toLowerCase()}function K(e,t){return e&&t&&e.address&&t.address&&e.address!==t.address&&e.chainId===t.chainId}function Z(t){if(!t||isNaN(Number(t)))return!1;const n=new e(t);return n.gt(0)&&n.isFinite()}function j(t,n,r=10){return new e(t).times(n).lt(1)?1:r}function q(e){return"string"==typeof e?e:e?.message?e.message:e?.error?e.error:"Unknown error occurred"}function H(e,t){let n;const r=(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),t)};return r.cancel=()=>{clearTimeout(n)},r}const G=[{inputs:[{internalType:"uint256",name:"srcAmount",type:"uint256"},{internalType:"bytes",name:"encodedRoutes",type:"bytes"},{internalType:"uint256",name:"parts",type:"uint256"}],name:"splitQuery",outputs:[{components:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"bestIndex",type:"uint256"}],internalType:"struct BitzyQueryV2.OneRoute",name:"",type:"tuple"},{components:[{internalType:"uint256[]",name:"distribution",type:"uint256[]"},{internalType:"uint256",name:"amountOut",type:"uint256"}],internalType:"struct BitzyQueryV2.SplitRoute",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"}];class J{constructor(e){this.config=e}getPublicClient(e){if(this.config.publicClient)return this.config.publicClient;const s=(e=>I[e])(e);if(!s)throw new m({message:`Unsupported chainId: ${e}`,code:N.NETWORK_NOT_SUPPORTED,details:{chainId:e}});const o=t({id:e,name:s.name,network:s.name.toLowerCase().replace(/\s+/g,"-"),nativeCurrency:s.nativeCurrency,rpcUrls:{default:{http:s.rpcUrls},public:{http:s.rpcUrls}}});return n({chain:o,transport:r()})}async fetchRoute(t){const{amountIn:n,srcToken:r,dstToken:d,chainId:c,partCount:u,forcePartCount:l}=t,f=l||u||this.getPartCount(r,d,c,this.config.defaultPartCount);if(!K(r,d))throw new m({message:"Invalid tokens provided",code:N.INVALID_TOKENS,details:{srcToken:r,dstToken:d}});if(!Z(n))throw new m({message:"Invalid amount provided",code:N.INVALID_AMOUNT,details:{amountIn:n}});const p=Y(n,r.decimals),{routerAddress:g,bitzyQueryAddress:y,wrappedAddress:b,nativeAddress:h}=this.config.config,w=W(r,h),I=W(d,h);if(w&&$(d,b)||I&&$(r,b)){const e=w?"wrap":"unwrap",t=p;return{routes:[[{routerAddress:g,lpAddress:s,fromToken:r.address,toToken:d.address,from:r.address,to:d.address,part:"100000000",amountAfterFee:"10000",dexInterface:0}]],distributions:[f],amountOutRoutes:[t],amountOutBN:t,amountInParts:[p],isAmountOutError:!1,isWrap:e}}const T=w?{...r,address:b}:r,D=I?{...d,address:b}:d;try{const n=await this.config.apiClient.getPathV3(T,D,p.toFixed(0),t.types||[1,2],t.enabledSources||[1]),{hops:r,validPath:d}=n.data;if(0===r.length)return{routes:[],distributions:[],amountOutRoutes:[],amountOutBN:new e(0),amountInParts:[],isAmountOutError:!0};const u=o([{type:"tuple[][]",components:[{type:"address",name:"src"},{type:"address",name:"dest"},{type:"uint8",name:"typeId"},{type:"uint8",name:"sourceId"},{type:"bytes",name:"path"}]}],[r]);let l=new e(0),m=[],g=[];const h=this.getPublicClient(c);try{const t=a({abi:G,functionName:"splitQuery",args:[p.toFixed(0),u,f]}),n=await h.call({to:y,data:t,gas:50000000000n,gasPrice:void 0});if(n.data){const t=i({abi:G,functionName:"splitQuery",data:n.data})[1];if(t&&t.amountOut){l=new e(t.amountOut.toString());let n=t.distribution.map(t=>new e(t.toString()).toNumber());g=d.reduce((t,r,o)=>(n[o]>0&&t.push(r.map((t,n,r)=>({routerAddress:F[t.source+"_"+t.type]||s,lpAddress:t.pool||s,fromToken:t.src,toToken:t.dest,from:n>0||"V3"===t.type||t.src===b.toLowerCase()?C:A,to:n<r.length-1||n===r.length-1&&t.dest===b.toLowerCase()?C:A,part:"100000000",amountAfterFee:new e(1e4).minus(new e(t.fee||0).dividedBy(100)).toFixed(),dexInterface:E[t.type]||0}))),t),[]),m=n.filter(e=>e>0)}}}catch(t){l=new e(0),m=[],g=[]}const w=m.map(t=>l.times(t).dividedBy(f).dp(0,e.ROUND_DOWN)),I=m.map(t=>p.times(t).dividedBy(f).dp(0,e.ROUND_DOWN));return{routes:g,distributions:m,amountOutRoutes:w,amountOutBN:l,amountInParts:I,isAmountOutError:!1}}catch(e){throw new m({message:"Failed to fetch swap route",code:N.API_ERROR,details:{originalError:e,options:t}})}}getSupportedNetworks(){return Object.keys(x).map(Number)}getNetworkConfig(e){return this.config.config}getPartCount(e,t,n,r){return S(e,t,n,r)}}async function X(e,t={}){const{apiBaseUrl:n=b,defaultPartCount:r=g,timeout:s=3e4,headers:o={},publicClient:a}=t,i=e.chainId,d=B(i);if(!d)throw new Error(`Unsupported network: ${i}`);const c=R.getInstance({baseUrl:n,timeout:s,headers:o});return new J({config:{routerAddress:d.routerAddress,bitzyQueryAddress:d.bitzyQueryAddress,wrappedAddress:d.wrappedAddress,nativeAddress:d.nativeAddress},defaultPartCount:r,apiClient:c,publicClient:a}).fetchRoute(e)}async function ee(e){return(await Promise.allSettled(e.map(async({options:e,config:t})=>{try{return{success:!0,data:await X(e,t)}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}}))).map(e=>"fulfilled"===e.status?e.value:{success:!1,error:e.reason?.message||"Unknown error"})}async function te(e,t,n,r,s={}){const o=await X({amountIn:n,srcToken:e,dstToken:t,chainId:r},s);return{amountOut:o.amountOutBN.toFixed(0),routes:o.routes.length}}async function ne(e,t={}){const{types:n,enabledSources:r}=D(e.chainId);return X({...e,types:n,enabledSources:r},{...t,forcePartCount:t.forcePartCount})}const re=(t,n,r,o,a={})=>{const i=d(()=>({}),[]),f=d(()=>({routerAddress:s,bitzyQueryAddress:s,wrappedAddress:s,nativeAddress:s}),[]),{apiBaseUrl:p,addressConfig:m,defaultPartCount:E,timeout:A,headers:C,refreshInterval:g,publicClient:y,configTypes:h,configEnabledSources:w,forcePartCount:I,useOnlinePartCount:T}=d(()=>{const{apiBaseUrl:e=b,config:t=f,defaultPartCount:n=5,timeout:r=3e4,headers:s=i,refreshInterval:o=1e4,publicClient:d,types:c,enabledSources:u,forcePartCount:l,useOnlinePartCount:p=!1}=a;return{apiBaseUrl:e,addressConfig:t,defaultPartCount:n,timeout:r,headers:s,refreshInterval:o,publicClient:d,configTypes:c,configEnabledSources:u,forcePartCount:l,useOnlinePartCount:p}},[a,i,f]),O=d(()=>D(o),[o]),x=d(()=>h??O.types,[h,O.types]),F=d(()=>w??O.enabledSources,[w,O.enabledSources]);c(()=>{console.log("config",a)},[a]),c(()=>{console.log("srcToken",t)},[t]),c(()=>{console.log("dstToken",n)},[n]),c(()=>{console.log("amountIn",r)},[r]),c(()=>{console.log("chainId",o)},[o]),c(()=>{console.log("apiBaseUrl",p)},[p]),c(()=>{console.log("addressConfig",m)},[m]),c(()=>{console.log("defaultPartCount",E)},[E]),c(()=>{console.log("timeout",A)},[A]),c(()=>{console.log("headers",C)},[C]),c(()=>{console.log("types",x)},[x]),c(()=>{console.log("enabledSources",F)},[F]);const[P,N]=u(new e(0)),[_,k]=u([]),[v,U]=u([]),[L,Q]=u([]),[M,Y]=u([]),[z,W]=u(!1),[$,K]=u(!1),[Z,j]=u(),[q,G]=u(!1),[X,ee]=u(null),[te,ne]=u(null),re=d(()=>(console.log("partCount",0,T),T?null!==te?te:S(t,n,o,E):(console.log("partCount",1,I),void 0!==I?I:(console.log("partCount",2,E),S(t,n,o,E)))),[E,I,T,te,t,n,o]);c(()=>{if(!(T&&t&&n&&r))return void ne(null);(async()=>{try{const e=await V(t,n,r,o,p,E);ne(e)}catch(e){console.warn("Failed to fetch online partCount:",e),ne(null)}})()},[T,t,n,r,o,p,E]);const se=d(()=>{const e=B(o),t=m&&Object.keys(m).length>0?m:{routerAddress:e?.routerAddress||"0x0000000000000000000000000000000000000000",bitzyQueryAddress:e?.bitzyQueryAddress||"0x0000000000000000000000000000000000000000",wrappedAddress:e?.wrappedAddress||"0x0000000000000000000000000000000000000000",nativeAddress:e?.nativeAddress||"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},n=R.getInstance({baseUrl:p,timeout:A,headers:C});return new J({config:t,defaultPartCount:E,apiClient:n,publicClient:y})},[m,E,p,A,C,y,o]),oe=l(()=>{ee(null)},[]),ae=l(async()=>{if(!t||!n||!r||"0"===r)return N(new e(0)),k([]),U([]),Q([]),Y([]),K(!1),G(!1),void ee(null);W(!0),ee(null);try{const e={amountIn:r,srcToken:t,dstToken:n,chainId:o,partCount:re,types:x,enabledSources:F},s=await se.fetchRoute(e);N(s.amountOutBN),k(s.routes),U(s.distributions),Q(s.amountOutRoutes),Y(s.amountInParts),K(s.isAmountOutError),j(s.isWrap),G(!0)}catch(t){const n=t instanceof Error?t.message:"Unknown error occurred";ee(n),console.error("Error fetching route:",t),N(new e(0)),k([]),U([]),Q([]),Y([]),K(!0),G(!1)}finally{W(!1)}},[se,t,n,r,o,re,x,F]),ie=d(()=>H(ae,300),[ae]);return c(()=>{if(!r||"0"===r)return N(new e(0)),k([]),U([]),Q([]),Y([]),K(!1),G(!1),void ee(null);ie();const t=setInterval(()=>{ie()},g);return()=>{clearInterval(t),"function"==typeof ie.cancel&&ie.cancel()}},[r,t?.address,n?.address,ie,g]),c(()=>{q&&ae()},[ae,q,se]),{routes:_,distributions:v,amountOutRoutes:L,amountOutBN:P,amountInParts:M,fetchRoute:ae,isLoading:z,isAmountOutError:$,isFirstFetch:q,isWrap:Z,error:X,clearError:oe}};export{R as APIClient,P as API_ENDPOINTS,G as BITZY_QUERY_ABI,w as CONTRACT_ADDRESSES,x as DEFAULT_NETWORKS,g as DEFAULT_PART_COUNT,y as DEFAULT_TIMEOUT,E as DEX_INTERFACE,F as DEX_ROUTER,h as DEX_ROUTERS,N as ERROR_CODES,v as HIGH_VALUE_TOKENS,T as LIQUIDITY_SOURCES,C as ROUTER_TARGET,J as SwapV3Service,A as USER_TARGET,j as calculatePartCount,Q as calculatePriceImpact,k as clearMinimumAmountsCache,H as debounce,f as ensureBigNumber,ee as fetchBatchSwapRoutes,X as fetchSwapRoute,ne as fetchSwapRouteSimple,q as formatError,Y as fromTokenAmount,B as getContractAddresses,O as getDexRouters,D as getLiquiditySources,M as getOptimalPartCount,S as getPartCountOffline,L as getPartCountOnline,V as getPartCountWithFallback,te as getSwapQuote,X as getSwapRoute,p as isBigNumber,U as isHighValueToken,W as isNativeToken,$ as isWrappedToken,z as toTokenAmount,re as useSwapRoutes,re as useSwapV3Routes,Z as validateAmount,K as validateTokens};
2
2
  //# sourceMappingURL=index.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/types/index.ts","../src/constants/index.ts","../src/api/Client.ts","../src/utils/PartCount.ts","../src/utils/index.ts","../src/constants/Abis.ts","../src/services/SwapV3Service.ts","../src/common/FetchSwapRoute.ts","../src/hooks/useSwapV3Routes.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["ensureBigNumber","value","BigNumber","isBigNumber","SwapError","Error","constructor","options","super","message","this","name","code","details","captureStackTrace","DEX_INTERFACE","V2","V3","USER_TARGET","ROUTER_TARGET","DEFAULT_PART_COUNT","DEFAULT_TIMEOUT","DEFAULT_API_BASE_URL","DEX_ROUTERS","BITZY_V3","BITZY_V2","AVOCADO_V2","CONTRACT_ADDRESSES","factoryAddress","v3FactoryAddress","v3PositionManagerAddress","v3WalletHelperAddress","routerAddress","aggregatorAddress","otcAddress","memeTokenGenerator","bitzyQueryAddress","wrappedAddress","nativeAddress","gasLimit","BigInt","RPC_CONFIG","rpcUrls","nativeCurrency","symbol","decimals","LIQUIDITY_SOURCES","types","enabledSources","getLiquiditySources","chainId","getContractAddresses","getDexRouters","DEFAULT_NETWORKS","DEX_ROUTER","API_ENDPOINTS","PATH_V3","ASSET_MINIMUM","ERROR_CODES","INVALID_TOKENS","INVALID_AMOUNT","NETWORK_NOT_SUPPORTED","API_ERROR","QUERY_ERROR","INSUFFICIENT_LIQUIDITY","APIClient","config","getInstance","instance","configWithApiKey","headers","process","env","NEXT_PUBLIC_BITZY_API_KEY","resetInstance","request","endpoint","controller","AbortController","timeoutId","setTimeout","abort","timeout","response","fetch","baseUrl","signal","clearTimeout","ok","status","statusText","json","error","originalError","getPathV3","srcToken","dstToken","amountIn","params","src","address","dest","amount","typeId","sourceId","query","buildQueryString","method","getAssetMinimum","queries","Object","keys","reduce","result","key","Array","isArray","map","v","join","replace","String","minimumAmountsCache","clearMinimumAmountsCache","console","log","HIGH_VALUE_TOKENS","isHighValueToken","token","networkTokens","some","addr","toLowerCase","getPartCountOffline","defaultPartCount","srcIsHighValue","dstIsHighValue","async","getPartCountOnline","apiBaseUrl","apiKey","fallbackPartCount","minimumData","now","Date","expiresAt","data","apiClient","success","timestamp","getMinimumAmounts","srcTokenMin","find","item","dstTokenMin","amountInBN","gte","minimumAmount","warn","getPartCountWithFallback","calculatePriceImpact","swapAmount","pairLiquidity","partCount","Infinity","getOptimalPartCount","maxImpactThreshold","fromTokenAmount","isNaN","Number","times","pow","toTokenAmount","dividedBy","toString","isNativeToken","isWrappedToken","validateTokens","validateAmount","num","gt","isFinite","calculatePartCount","price","lt","formatError","debounce","func","wait","debouncedFn","args","cancel","BITZY_QUERY_ABI","inputs","internalType","type","outputs","components","stateMutability","SwapV3Service","getPublicClient","publicClient","rpcConfig","getRpcConfig","chain","defineChain","id","network","default","http","public","createPublicClient","transport","fetchRoute","providedPartCount","forcePartCount","getPartCount","isSrcNative","isDstNative","isWrap","amountOutBN","routes","lpAddress","zeroAddress","fromToken","toToken","from","to","part","amountAfterFee","dexInterface","distributions","amountOutRoutes","amountInParts","isAmountOutError","usingSrcToken","usingDstToken","pathData","toFixed","hops","validPath","length","encodedRoutes","encodeAbiParameters","encodeFunctionData","abi","functionName","call","gas","gasPrice","undefined","splitRouteData","decodeFunctionResult","amountOut","distributionsRaw","distribution","d","toNumber","acc","path","k","push","i","values","source","pool","minus","fee","filter","contractError","am","dp","ROUND_DOWN","getSupportedNetworks","getNetworkConfig","fetchSwapRoute","networkConfig","fetchBatchSwapRoutes","swaps","Promise","allSettled","reason","getSwapQuote","fetchSwapRouteSimple","useSwapV3Routes","defaultHeaders","useMemo","defaultAddressConfig","addressConfig","refreshInterval","configTypes","configEnabledSources","useOnlinePartCount","defaultLiquiditySources","useEffect","setAmountOutBN","useState","setRoutes","setDistributions","setAmountOutRoutes","setAmountInParts","isLoading","setIsLoading","setIsAmountOutError","setIsWrap","isFirstFetch","setIsFirstFetch","setError","onlinePartCount","setOnlinePartCount","onlinePartCountValue","fetchOnlinePartCount","swapService","defaultAddresses","finalAddressConfig","clearError","useCallback","err","errorMessage","debouncedFetchRoute","intervalId","setInterval","clearInterval"],"mappings":"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"}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/types/index.ts","../src/constants/index.ts","../src/api/Client.ts","../src/utils/PartCount.ts","../src/utils/index.ts","../src/constants/Abis.ts","../src/services/SwapV3Service.ts","../src/common/FetchSwapRoute.ts","../src/hooks/useSwapV3Routes.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["ensureBigNumber","value","BigNumber","isBigNumber","SwapError","Error","constructor","options","super","message","this","name","code","details","captureStackTrace","DEX_INTERFACE","V2","V3","USER_TARGET","ROUTER_TARGET","DEFAULT_PART_COUNT","DEFAULT_TIMEOUT","DEFAULT_API_BASE_URL","DEX_ROUTERS","BITZY_V3","BITZY_V2","AVOCADO_V2","CONTRACT_ADDRESSES","factoryAddress","v3FactoryAddress","v3PositionManagerAddress","v3WalletHelperAddress","routerAddress","aggregatorAddress","otcAddress","memeTokenGenerator","bitzyQueryAddress","wrappedAddress","nativeAddress","gasLimit","BigInt","RPC_CONFIG","rpcUrls","nativeCurrency","symbol","decimals","LIQUIDITY_SOURCES","types","enabledSources","getLiquiditySources","chainId","getContractAddresses","getDexRouters","DEFAULT_NETWORKS","DEX_ROUTER","API_ENDPOINTS","PATH_V3","ASSET_MINIMUM","ERROR_CODES","INVALID_TOKENS","INVALID_AMOUNT","NETWORK_NOT_SUPPORTED","API_ERROR","QUERY_ERROR","INSUFFICIENT_LIQUIDITY","APIClient","config","getInstance","instance","configWithApiKey","headers","process","env","NEXT_PUBLIC_BITZY_API_KEY","resetInstance","request","endpoint","controller","AbortController","timeoutId","setTimeout","abort","timeout","response","fetch","baseUrl","signal","clearTimeout","ok","status","statusText","json","error","originalError","getPathV3","srcToken","dstToken","amountIn","params","URLSearchParams","set","address","JSON","stringify","toString","method","getAssetMinimum","minimumAmountsCache","clearMinimumAmountsCache","console","log","HIGH_VALUE_TOKENS","isHighValueToken","token","networkTokens","some","addr","toLowerCase","getPartCountOffline","defaultPartCount","srcIsHighValue","dstIsHighValue","async","getPartCountOnline","apiBaseUrl","apiKey","fallbackPartCount","minimumData","now","Date","expiresAt","data","apiClient","success","timestamp","getMinimumAmounts","srcTokenMin","find","item","dstTokenMin","amountInBN","gte","minimumAmount","warn","getPartCountWithFallback","calculatePriceImpact","swapAmount","pairLiquidity","partCount","Infinity","getOptimalPartCount","maxImpactThreshold","fromTokenAmount","amount","isNaN","Number","times","pow","toTokenAmount","dividedBy","isNativeToken","isWrappedToken","validateTokens","validateAmount","num","gt","isFinite","calculatePartCount","price","lt","formatError","debounce","func","wait","debouncedFn","args","cancel","BITZY_QUERY_ABI","inputs","internalType","type","outputs","components","stateMutability","SwapV3Service","getPublicClient","publicClient","rpcConfig","getRpcConfig","chain","defineChain","id","network","replace","default","http","public","createPublicClient","transport","fetchRoute","providedPartCount","forcePartCount","getPartCount","isSrcNative","isDstNative","isWrap","amountOutBN","routes","lpAddress","zeroAddress","fromToken","toToken","from","to","part","amountAfterFee","dexInterface","distributions","amountOutRoutes","amountInParts","isAmountOutError","usingSrcToken","usingDstToken","pathData","toFixed","hops","validPath","length","encodedRoutes","encodeAbiParameters","encodeFunctionData","abi","functionName","result","call","gas","gasPrice","undefined","splitRouteData","decodeFunctionResult","amountOut","distributionsRaw","distribution","map","d","toNumber","reduce","acc","path","k","push","i","values","source","pool","src","dest","minus","fee","filter","contractError","am","dp","ROUND_DOWN","getSupportedNetworks","Object","keys","getNetworkConfig","fetchSwapRoute","networkConfig","fetchBatchSwapRoutes","swaps","Promise","allSettled","reason","getSwapQuote","fetchSwapRouteSimple","useSwapV3Routes","defaultHeaders","useMemo","defaultAddressConfig","addressConfig","refreshInterval","configTypes","configEnabledSources","useOnlinePartCount","defaultLiquiditySources","useEffect","setAmountOutBN","useState","setRoutes","setDistributions","setAmountOutRoutes","setAmountInParts","isLoading","setIsLoading","setIsAmountOutError","setIsWrap","isFirstFetch","setIsFirstFetch","setError","onlinePartCount","setOnlinePartCount","onlinePartCountValue","fetchOnlinePartCount","swapService","defaultAddresses","finalAddressConfig","clearError","useCallback","err","errorMessage","debouncedFetchRoute","intervalId","setInterval","clearInterval"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var e=require("bignumber.js"),t=require("viem"),r=require("react");class n extends Error{constructor(e){super(e.message),this.name="SwapError",this.code=e.code,this.details=e.details,Error.captureStackTrace&&Error.captureStackTrace(this,n)}}const s={V2:0,V3:1},o="0x0000000000000000000000000000000000000001",a="0x0000000000000000000000000000000000000000",i=5,u="https://api-public.bitzy.app",c={3637:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"},3636:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"}},d={3637:{factoryAddress:"0xDF2CA43f59fd92874e6C1ef887f7E14cb1f354dD",v3FactoryAddress:"0xa8C00286d8d37131c1d033dEeE2F754148932800",v3PositionManagerAddress:"0x76F3e7e326479Ef559996Cf5ab0aCB79Be4626FD",v3WalletHelperAddress:"0xd9Db96Aa882Da764feFff3eE427701B0337e8Ae7",routerAddress:"0x41207Eadf1932966Ff75bdc35e55D2C6734E47D4",aggregatorAddress:"0x5a0690AC82AAAA2e25bC130E900CD31eE9B67DB8",otcAddress:"0xe97ED77EB36A09c37B57D69A5000d8831167A854",memeTokenGenerator:"0x1cb880329265c7A5deDaD6301b1fbd2684CDd200",bitzyQueryAddress:"0x5b5079587501Bd85d3CDf5bFDf299f4eaAe98c23",wrappedAddress:"0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)},3636:{factoryAddress:"0x472F9A40F47e0e0F770b224AeC2DD093cf5783aC",v3FactoryAddress:"0xc89e6aD4aD42Eeb82dfBA4c301CDaEDfd794A778",v3PositionManagerAddress:"0xA05E35Fa8997852E6a4A073461E36db1AA725D39",v3WalletHelperAddress:"0x232182B50E1d3c037b3E0bdbd89226d7730cFe0e",routerAddress:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",aggregatorAddress:"0x33B1Ed34c11910F767B15eBAbAB782D61FB2C5Ea",otcAddress:"0xB582f4B568f13F29Bba7696Fc352E293952D4b7E",memeTokenGenerator:"0xc76b4a09BecA8b34D94dE8BA27AeeF652FA3D2fC",bitzyQueryAddress:"0x2ad4b8912fb4Fe93f79BbCb3Aa6B8C39025FdfCC",wrappedAddress:"0x233631132FD56c8f86D1FC97F0b82420a8d20af3",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)}},l={3637:{rpcUrls:["https://rpc.botanixlabs.com"],name:"Botanix Mainnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}},3636:{rpcUrls:["https://node.botanixlabs.dev"],name:"Botanix Testnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}}},p={3637:{types:[1,2],enabledSources:[1]},3636:{types:[1,2],enabledSources:[1]}},f=e=>p[e]||{types:[1,2],enabledSources:[1]},E=e=>d[e],m=d,A=c[3637]||{},C={PATH_V3:"/api/sdk/bestpath/split",ASSET_MINIMUM:"/api/sdk/asset/minimum"},g={INVALID_TOKENS:"INVALID_TOKENS",INVALID_AMOUNT:"INVALID_AMOUNT",NETWORK_NOT_SUPPORTED:"NETWORK_NOT_SUPPORTED",API_ERROR:"API_ERROR",QUERY_ERROR:"QUERY_ERROR",INSUFFICIENT_LIQUIDITY:"INSUFFICIENT_LIQUIDITY"};class y{constructor(e){this.config=e}static getInstance(e){if(!y.instance){const t={...e,headers:{...process.env.NEXT_PUBLIC_BITZY_API_KEY&&{"authen-key":process.env.NEXT_PUBLIC_BITZY_API_KEY},...e.headers}};y.instance=new y(t)}return y.instance}static resetInstance(){y.instance=null}async request(e,t={}){const r=new AbortController,s=setTimeout(()=>r.abort(),this.config.timeout);try{const n=await fetch(`${this.config.baseUrl}${e}`,{...t,signal:r.signal,headers:{"Content-Type":"application/json",...this.config.headers,...t.headers}});if(clearTimeout(s),!n.ok)throw new Error(`HTTP ${n.status}: ${n.statusText}`);return await n.json()}catch(t){if(clearTimeout(s),t instanceof Error){if("AbortError"===t.name)throw new n({message:"Request timeout",code:g.API_ERROR,details:{endpoint:e,timeout:this.config.timeout}});throw new n({message:t.message,code:g.API_ERROR,details:{endpoint:e,originalError:t}})}throw new n({message:"Unknown API error",code:g.API_ERROR,details:{endpoint:e,originalError:t}})}}async getPathV3(e,t,r,n,s){const o={src:e.address,dest:t.address,amount:r,typeId:n,sourceId:s},a=this.buildQueryString(o);return this.request(`${C.PATH_V3}?${a}`,{method:"GET"})}async getAssetMinimum(){return this.request(C.ASSET_MINIMUM,{method:"GET"})}buildQueryString(e){return Object.keys(e).reduce((t,r)=>{let n;if(Array.isArray(e[r])){n=('["'+e[r].map(e=>e).join('","')+'"]').replace(/"/g,"%22")}else n=String(e[r]);return[...t,`${r}=${n}`]},[]).join("&")}}y.instance=null;let b=null;const h={3637:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56","0x29eE6138DD4C9815f46D34a4A1ed48F46758A402","0x9BC574a6f1170e90D80826D86a6126d59198A3Ef","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"],3636:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x233631132FD56c8f86D1FC97F0b82420a8d20af3","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"]};function w(e,t){if(!e?.address)return!1;const r=h[t];return!!r&&r.some(t=>t.toLowerCase()===e.address.toLowerCase())}function x(e,t,r,n=5){const s=w(e,r),o=w(t,r);return s&&o?n:1}async function T(t,r,n,s,o,a,i=5){try{console.log("Fetching online partCount data...");const u=await async function(e,t){const r=Date.now();if(b&&r<b.expiresAt)return console.log("Using cached minimum amounts data"),b.data;console.log("Fetching fresh minimum amounts data from API");const n=y.getInstance({baseUrl:e,timeout:5e3,headers:{...t&&{"authen-key":t}}}),s=await n.getAssetMinimum();if(!s.success)throw new Error(`API request failed: ${s.error||"Unknown error"}`);return b={data:s.data||[],timestamp:r,expiresAt:r+3e5},b.data}(o,a),c=u.find(e=>e.token?.toLowerCase()===t.address.toLowerCase()),d=u.find(e=>e.token?.toLowerCase()===r.address.toLowerCase()),l=new e(n);return c&&d&&l.gte(c.minimumAmount)&&l.gte(d.minimumAmount)?(console.log("Amount meets minimum threshold for both tokens, using partCount = 5"),5):(console.log("Amount below minimum threshold or missing data, falling back to offline logic"),x(t,r,s,i))}catch(e){return console.warn("Failed to fetch online partCount data:",e),console.log("Falling back to offline partCount logic"),x(t,r,s,i)}}async function I(e,t,r,n,s,o=5,a){try{return await T(e,t,r,n,s,a,o)}catch(e){return console.warn("Online partCount failed, using offline fallback:",e),o}}function D(e,t,r){if(0===t)return 1/0;return e/r/t*100}function O(t,r){return!t||isNaN(Number(t))?new e(0):new e(t).times(new e(10).pow(r))}function R(e,t){return e.address.toLowerCase()===t.toLowerCase()}function B(e,t){return e.address.toLowerCase()===t.toLowerCase()}function S(e,t){return e&&t&&e.address&&t.address&&e.address!==t.address&&e.chainId===t.chainId}function P(t){if(!t||isNaN(Number(t)))return!1;const r=new e(t);return r.gt(0)&&r.isFinite()}function F(e,t){let r;const n=(...n)=>{clearTimeout(r),r=setTimeout(()=>e(...n),t)};return n.cancel=()=>{clearTimeout(r)},n}const _=[{inputs:[{internalType:"uint256",name:"srcAmount",type:"uint256"},{internalType:"bytes",name:"encodedRoutes",type:"bytes"},{internalType:"uint256",name:"parts",type:"uint256"}],name:"splitQuery",outputs:[{components:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"bestIndex",type:"uint256"}],internalType:"struct BitzyQueryV2.OneRoute",name:"",type:"tuple"},{components:[{internalType:"uint256[]",name:"distribution",type:"uint256[]"},{internalType:"uint256",name:"amountOut",type:"uint256"}],internalType:"struct BitzyQueryV2.SplitRoute",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"}];class N{constructor(e){this.config=e}getPublicClient(e){if(this.config.publicClient)return this.config.publicClient;const r=(e=>l[e])(e);if(!r)throw new n({message:`Unsupported chainId: ${e}`,code:g.NETWORK_NOT_SUPPORTED,details:{chainId:e}});const s=t.defineChain({id:e,name:r.name,network:r.name.toLowerCase().replace(/\s+/g,"-"),nativeCurrency:r.nativeCurrency,rpcUrls:{default:{http:r.rpcUrls},public:{http:r.rpcUrls}}});return t.createPublicClient({chain:s,transport:t.http()})}async fetchRoute(r){const{amountIn:i,srcToken:u,dstToken:c,chainId:d,partCount:l,forcePartCount:p}=r,f=p||l||this.getPartCount(u,c,d,this.config.defaultPartCount);if(!S(u,c))throw new n({message:"Invalid tokens provided",code:g.INVALID_TOKENS,details:{srcToken:u,dstToken:c}});if(!P(i))throw new n({message:"Invalid amount provided",code:g.INVALID_AMOUNT,details:{amountIn:i}});const E=O(i,u.decimals),{routerAddress:m,bitzyQueryAddress:C,wrappedAddress:y,nativeAddress:b}=this.config.config,h=R(u,b),w=R(c,b);if(h&&B(c,y)||w&&B(u,y)){const e=h?"wrap":"unwrap",r=E;return{routes:[[{routerAddress:m,lpAddress:t.zeroAddress,fromToken:u.address,toToken:c.address,from:u.address,to:c.address,part:"100000000",amountAfterFee:"10000",dexInterface:0}]],distributions:[f],amountOutRoutes:[r],amountOutBN:r,amountInParts:[E],isAmountOutError:!1,isWrap:e}}const x=h?{...u,address:y}:u,T=w?{...c,address:y}:c;try{const n=await this.config.apiClient.getPathV3(x,T,E.toFixed(0),r.types||[1,2],r.enabledSources||[1]),{hops:i,validPath:u}=n.data;if(0===i.length)return{routes:[],distributions:[],amountOutRoutes:[],amountOutBN:new e(0),amountInParts:[],isAmountOutError:!0};const c=t.encodeAbiParameters([{type:"tuple[][]",components:[{type:"address",name:"src"},{type:"address",name:"dest"},{type:"uint8",name:"typeId"},{type:"uint8",name:"sourceId"},{type:"bytes",name:"path"}]}],[i]);let l=new e(0),p=[],m=[];const g=this.getPublicClient(d);try{const r=t.encodeFunctionData({abi:_,functionName:"splitQuery",args:[E.toFixed(0),c,f]}),n=await g.call({to:C,data:r,gas:50000000000n,gasPrice:void 0});if(n.data){const r=t.decodeFunctionResult({abi:_,functionName:"splitQuery",data:n.data})[1];if(r&&r.amountOut){l=new e(r.amountOut.toString());let n=r.distribution.map(t=>new e(t.toString()).toNumber());m=u.reduce((r,i,u)=>(n[u]>0&&r.push(i.map((r,n,i)=>({routerAddress:A[r.source+"_"+r.type]||t.zeroAddress,lpAddress:r.pool||t.zeroAddress,fromToken:r.src,toToken:r.dest,from:n>0||"V3"===r.type||r.src===y.toLowerCase()?a:o,to:n<i.length-1||n===i.length-1&&r.dest===y.toLowerCase()?a:o,part:"100000000",amountAfterFee:new e(1e4).minus(new e(r.fee||0).dividedBy(100)).toFixed(),dexInterface:s[r.type]||0}))),r),[]),p=n.filter(e=>e>0)}}}catch(t){l=new e(0),p=[],m=[]}const b=p.map(t=>l.times(t).dividedBy(f).dp(0,e.ROUND_DOWN)),h=p.map(t=>E.times(t).dividedBy(f).dp(0,e.ROUND_DOWN));return{routes:m,distributions:p,amountOutRoutes:b,amountOutBN:l,amountInParts:h,isAmountOutError:!1}}catch(e){throw new n({message:"Failed to fetch swap route",code:g.API_ERROR,details:{originalError:e,options:r}})}}getSupportedNetworks(){return Object.keys(m).map(Number)}getNetworkConfig(e){return this.config.config}getPartCount(e,t,r,n){return x(e,t,r,n)}}async function U(e,t={}){const{apiBaseUrl:r=u,defaultPartCount:n=i,timeout:s=3e4,headers:o={},publicClient:a}=t,c=e.chainId,d=E(c);if(!d)throw new Error(`Unsupported network: ${c}`);const l=y.getInstance({baseUrl:r,timeout:s,headers:o});return new N({config:{routerAddress:d.routerAddress,bitzyQueryAddress:d.bitzyQueryAddress,wrappedAddress:d.wrappedAddress,nativeAddress:d.nativeAddress},defaultPartCount:n,apiClient:l,publicClient:a}).fetchRoute(e)}const k=(n,s,o,a,i={})=>{const c=r.useMemo(()=>({}),[]),d=r.useMemo(()=>({routerAddress:t.zeroAddress,bitzyQueryAddress:t.zeroAddress,wrappedAddress:t.zeroAddress,nativeAddress:t.zeroAddress}),[]),{apiBaseUrl:l,addressConfig:p,defaultPartCount:m,timeout:A,headers:C,refreshInterval:g,publicClient:b,configTypes:h,configEnabledSources:w,forcePartCount:T,useOnlinePartCount:D}=r.useMemo(()=>{const{apiBaseUrl:e=u,config:t=d,defaultPartCount:r=5,timeout:n=3e4,headers:s=c,refreshInterval:o=1e4,publicClient:a,types:l,enabledSources:p,forcePartCount:f,useOnlinePartCount:E=!1}=i;return{apiBaseUrl:e,addressConfig:t,defaultPartCount:r,timeout:n,headers:s,refreshInterval:o,publicClient:a,configTypes:l,configEnabledSources:p,forcePartCount:f,useOnlinePartCount:E}},[i,c,d]),O=r.useMemo(()=>f(a),[a]),R=r.useMemo(()=>h??O.types,[h,O.types]),B=r.useMemo(()=>w??O.enabledSources,[w,O.enabledSources]);r.useEffect(()=>{console.log("config",i)},[i]),r.useEffect(()=>{console.log("srcToken",n)},[n]),r.useEffect(()=>{console.log("dstToken",s)},[s]),r.useEffect(()=>{console.log("amountIn",o)},[o]),r.useEffect(()=>{console.log("chainId",a)},[a]),r.useEffect(()=>{console.log("apiBaseUrl",l)},[l]),r.useEffect(()=>{console.log("addressConfig",p)},[p]),r.useEffect(()=>{console.log("defaultPartCount",m)},[m]),r.useEffect(()=>{console.log("timeout",A)},[A]),r.useEffect(()=>{console.log("headers",C)},[C]),r.useEffect(()=>{console.log("types",R)},[R]),r.useEffect(()=>{console.log("enabledSources",B)},[B]);const[S,P]=r.useState(new e(0)),[_,U]=r.useState([]),[k,v]=r.useState([]),[L,M]=r.useState([]),[V,Q]=r.useState([]),[z,Y]=r.useState(!1),[W,$]=r.useState(!1),[K,q]=r.useState(),[j,H]=r.useState(!1),[G,Z]=r.useState(null),[X,J]=r.useState(null),ee=r.useMemo(()=>(console.log("partCount",0,D),D?null!==X?X:x(n,s,a,m):(console.log("partCount",1,T),void 0!==T?T:(console.log("partCount",2,m),x(n,s,a,m)))),[m,T,D,X,n,s,a]);r.useEffect(()=>{if(!(D&&n&&s&&o))return void J(null);(async()=>{try{const e=await I(n,s,o,a,l,m);J(e)}catch(e){console.warn("Failed to fetch online partCount:",e),J(null)}})()},[D,n,s,o,a,l,m]);const te=r.useMemo(()=>{const e=E(a),t=p&&Object.keys(p).length>0?p:{routerAddress:e?.routerAddress||"0x0000000000000000000000000000000000000000",bitzyQueryAddress:e?.bitzyQueryAddress||"0x0000000000000000000000000000000000000000",wrappedAddress:e?.wrappedAddress||"0x0000000000000000000000000000000000000000",nativeAddress:e?.nativeAddress||"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},r=y.getInstance({baseUrl:l,timeout:A,headers:C});return new N({config:t,defaultPartCount:m,apiClient:r,publicClient:b})},[p,m,l,A,C,b,a]),re=r.useCallback(()=>{Z(null)},[]),ne=r.useCallback(async()=>{if(!n||!s||!o||"0"===o)return P(new e(0)),U([]),v([]),M([]),Q([]),$(!1),H(!1),void Z(null);Y(!0),Z(null);try{const e={amountIn:o,srcToken:n,dstToken:s,chainId:a,partCount:ee,types:R,enabledSources:B},t=await te.fetchRoute(e);P(t.amountOutBN),U(t.routes),v(t.distributions),M(t.amountOutRoutes),Q(t.amountInParts),$(t.isAmountOutError),q(t.isWrap),H(!0)}catch(t){const r=t instanceof Error?t.message:"Unknown error occurred";Z(r),console.error("Error fetching route:",t),P(new e(0)),U([]),v([]),M([]),Q([]),$(!0),H(!1)}finally{Y(!1)}},[te,n,s,o,a,ee,R,B]),se=r.useMemo(()=>F(ne,300),[ne]);return r.useEffect(()=>{if(!o||"0"===o)return P(new e(0)),U([]),v([]),M([]),Q([]),$(!1),H(!1),void Z(null);se();const t=setInterval(()=>{se()},g);return()=>{clearInterval(t),"function"==typeof se.cancel&&se.cancel()}},[o,n?.address,s?.address,se,g]),r.useEffect(()=>{j&&ne()},[ne,j,te]),{routes:_,distributions:k,amountOutRoutes:L,amountOutBN:S,amountInParts:V,fetchRoute:ne,isLoading:z,isAmountOutError:W,isFirstFetch:j,isWrap:K,error:G,clearError:re}};exports.APIClient=y,exports.API_ENDPOINTS=C,exports.BITZY_QUERY_ABI=_,exports.CONTRACT_ADDRESSES=d,exports.DEFAULT_NETWORKS=m,exports.DEFAULT_PART_COUNT=i,exports.DEFAULT_TIMEOUT=3e4,exports.DEX_INTERFACE=s,exports.DEX_ROUTER=A,exports.DEX_ROUTERS=c,exports.ERROR_CODES=g,exports.HIGH_VALUE_TOKENS=h,exports.LIQUIDITY_SOURCES=p,exports.ROUTER_TARGET=a,exports.SwapV3Service=N,exports.USER_TARGET=o,exports.calculatePartCount=function(t,r,n=10){return new e(t).times(r).lt(1)?1:n},exports.calculatePriceImpact=D,exports.clearMinimumAmountsCache=function(){b=null,console.log("Minimum amounts cache cleared")},exports.debounce=F,exports.ensureBigNumber=t=>t instanceof e?t:new e(t),exports.fetchBatchSwapRoutes=async function(e){return(await Promise.allSettled(e.map(async({options:e,config:t})=>{try{return{success:!0,data:await U(e,t)}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}}))).map(e=>"fulfilled"===e.status?e.value:{success:!1,error:e.reason?.message||"Unknown error"})},exports.fetchSwapRoute=U,exports.fetchSwapRouteSimple=async function(e,t={}){const{types:r,enabledSources:n}=f(e.chainId);return U({...e,types:r,enabledSources:n},{...t,forcePartCount:t.forcePartCount})},exports.formatError=function(e){return"string"==typeof e?e:e?.message?e.message:e?.error?e.error:"Unknown error occurred"},exports.fromTokenAmount=O,exports.getContractAddresses=E,exports.getDexRouters=e=>c[e]||{},exports.getLiquiditySources=f,exports.getOptimalPartCount=function(e,t,r=5){return D(e,t,5)>r?1:5},exports.getPartCountOffline=x,exports.getPartCountOnline=T,exports.getPartCountWithFallback=I,exports.getSwapQuote=async function(e,t,r,n,s={}){const o=await U({amountIn:r,srcToken:e,dstToken:t,chainId:n},s);return{amountOut:o.amountOutBN.toFixed(0),routes:o.routes.length}},exports.getSwapRoute=U,exports.isBigNumber=t=>t instanceof e,exports.isHighValueToken=w,exports.isNativeToken=R,exports.isWrappedToken=B,exports.toTokenAmount=function(t,r){return new e(t).dividedBy(new e(10).pow(r)).toString()},exports.useSwapRoutes=k,exports.useSwapV3Routes=k,exports.validateAmount=P,exports.validateTokens=S;
1
+ "use strict";var e=require("bignumber.js"),t=require("viem"),r=require("react");class s extends Error{constructor(e){super(e.message),this.name="SwapError",this.code=e.code,this.details=e.details,Error.captureStackTrace&&Error.captureStackTrace(this,s)}}const n={V2:0,V3:1},o="0x0000000000000000000000000000000000000001",a="0x0000000000000000000000000000000000000000",i=5,u="https://api-public.bitzy.app",c={3637:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"},3636:{BITZY_V3:"0xA5E0AE4e5103dc71cA290AA3654830442357A489",BITZY_V2:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",AVOCADO_V2:"0xA4B4cDeC4fE2839d3D3a49Ad5E20c21c01A31091"}},d={3637:{factoryAddress:"0xDF2CA43f59fd92874e6C1ef887f7E14cb1f354dD",v3FactoryAddress:"0xa8C00286d8d37131c1d033dEeE2F754148932800",v3PositionManagerAddress:"0x76F3e7e326479Ef559996Cf5ab0aCB79Be4626FD",v3WalletHelperAddress:"0xd9Db96Aa882Da764feFff3eE427701B0337e8Ae7",routerAddress:"0x41207Eadf1932966Ff75bdc35e55D2C6734E47D4",aggregatorAddress:"0x5a0690AC82AAAA2e25bC130E900CD31eE9B67DB8",otcAddress:"0xe97ED77EB36A09c37B57D69A5000d8831167A854",memeTokenGenerator:"0x1cb880329265c7A5deDaD6301b1fbd2684CDd200",bitzyQueryAddress:"0x5b5079587501Bd85d3CDf5bFDf299f4eaAe98c23",wrappedAddress:"0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)},3636:{factoryAddress:"0x472F9A40F47e0e0F770b224AeC2DD093cf5783aC",v3FactoryAddress:"0xc89e6aD4aD42Eeb82dfBA4c301CDaEDfd794A778",v3PositionManagerAddress:"0xA05E35Fa8997852E6a4A073461E36db1AA725D39",v3WalletHelperAddress:"0x232182B50E1d3c037b3E0bdbd89226d7730cFe0e",routerAddress:"0x07c49Ade88b40f1Ac05707f236d7706f834F6BDB",aggregatorAddress:"0x33B1Ed34c11910F767B15eBAbAB782D61FB2C5Ea",otcAddress:"0xB582f4B568f13F29Bba7696Fc352E293952D4b7E",memeTokenGenerator:"0xc76b4a09BecA8b34D94dE8BA27AeeF652FA3D2fC",bitzyQueryAddress:"0x2ad4b8912fb4Fe93f79BbCb3Aa6B8C39025FdfCC",wrappedAddress:"0x233631132FD56c8f86D1FC97F0b82420a8d20af3",nativeAddress:"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",gasLimit:BigInt(5e10)}},l={3637:{rpcUrls:["https://rpc.botanixlabs.com"],name:"Botanix Mainnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}},3636:{rpcUrls:["https://node.botanixlabs.dev"],name:"Botanix Testnet",nativeCurrency:{name:"Bitcoin",symbol:"BTC",decimals:18}}},p={3637:{types:[1,2],enabledSources:[1]},3636:{types:[1,2],enabledSources:[1]}},f=e=>p[e]||{types:[1,2],enabledSources:[1]},E=e=>d[e],m=d,A=c[3637]||{},C={PATH_V3:"/api/sdk/bestpath/split",ASSET_MINIMUM:"/api/sdk/asset/minimum"},g={INVALID_TOKENS:"INVALID_TOKENS",INVALID_AMOUNT:"INVALID_AMOUNT",NETWORK_NOT_SUPPORTED:"NETWORK_NOT_SUPPORTED",API_ERROR:"API_ERROR",QUERY_ERROR:"QUERY_ERROR",INSUFFICIENT_LIQUIDITY:"INSUFFICIENT_LIQUIDITY"};class y{constructor(e){this.config=e}static getInstance(e){if(!y.instance){const t={...e,headers:{...process.env.NEXT_PUBLIC_BITZY_API_KEY&&{"authen-key":process.env.NEXT_PUBLIC_BITZY_API_KEY},...e.headers}};y.instance=new y(t)}return y.instance}static resetInstance(){y.instance=null}async request(e,t={}){const r=new AbortController,n=setTimeout(()=>r.abort(),this.config.timeout);try{const s=await fetch(`${this.config.baseUrl}${e}`,{...t,signal:r.signal,headers:{"Content-Type":"application/json",...this.config.headers,...t.headers}});if(clearTimeout(n),!s.ok)throw new Error(`HTTP ${s.status}: ${s.statusText}`);return await s.json()}catch(t){if(clearTimeout(n),t instanceof Error){if("AbortError"===t.name)throw new s({message:"Request timeout",code:g.API_ERROR,details:{endpoint:e,timeout:this.config.timeout}});throw new s({message:t.message,code:g.API_ERROR,details:{endpoint:e,originalError:t}})}throw new s({message:"Unknown API error",code:g.API_ERROR,details:{endpoint:e,originalError:t}})}}async getPathV3(e,t,r,s,n){const o=new URLSearchParams;return o.set("src",e.address),o.set("dest",t.address),o.set("amount",r),o.set("typeId",JSON.stringify(s)),o.set("sourceId",JSON.stringify(n)),this.request(`${C.PATH_V3}?${o.toString()}`,{method:"GET"})}async getAssetMinimum(){return this.request(C.ASSET_MINIMUM,{method:"GET"})}}y.instance=null;let b=null;const h={3637:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x0D2437F93Fed6EA64Ef01cCde385FB1263910C56","0x29eE6138DD4C9815f46D34a4A1ed48F46758A402","0x9BC574a6f1170e90D80826D86a6126d59198A3Ef","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"],3636:["0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","0x233631132FD56c8f86D1FC97F0b82420a8d20af3","0xA0b86a33E6441b8c4C8C0C4C0C4C0C4C0C4C0C4C","0xdAC17F958D2ee523a2206206994597C13D831ec7"]};function w(e,t){if(!e?.address)return!1;const r=h[t];return!!r&&r.some(t=>t.toLowerCase()===e.address.toLowerCase())}function x(e,t,r,s=5){const n=w(e,r),o=w(t,r);return n&&o?s:1}async function T(t,r,s,n,o,a,i=5){try{console.log("Fetching online partCount data...");const u=await async function(e,t){const r=Date.now();if(b&&r<b.expiresAt)return console.log("Using cached minimum amounts data"),b.data;console.log("Fetching fresh minimum amounts data from API");const s=y.getInstance({baseUrl:e,timeout:5e3,headers:{...t&&{"authen-key":t}}}),n=await s.getAssetMinimum();if(!n.success)throw new Error(`API request failed: ${n.error||"Unknown error"}`);return b={data:n.data||[],timestamp:r,expiresAt:r+3e5},b.data}(o,a),c=u.find(e=>e.token?.toLowerCase()===t.address.toLowerCase()),d=u.find(e=>e.token?.toLowerCase()===r.address.toLowerCase()),l=new e(s);return c&&d&&l.gte(c.minimumAmount)&&l.gte(d.minimumAmount)?(console.log("Amount meets minimum threshold for both tokens, using partCount = 5"),5):(console.log("Amount below minimum threshold or missing data, falling back to offline logic"),x(t,r,n,i))}catch(e){return console.warn("Failed to fetch online partCount data:",e),console.log("Falling back to offline partCount logic"),x(t,r,n,i)}}async function I(e,t,r,s,n,o=5,a){try{return await T(e,t,r,s,n,a,o)}catch(e){return console.warn("Online partCount failed, using offline fallback:",e),o}}function D(e,t,r){if(0===t)return 1/0;return e/r/t*100}function O(t,r){return!t||isNaN(Number(t))?new e(0):new e(t).times(new e(10).pow(r))}function R(e,t){return e.address.toLowerCase()===t.toLowerCase()}function B(e,t){return e.address.toLowerCase()===t.toLowerCase()}function S(e,t){return e&&t&&e.address&&t.address&&e.address!==t.address&&e.chainId===t.chainId}function P(t){if(!t||isNaN(Number(t)))return!1;const r=new e(t);return r.gt(0)&&r.isFinite()}function F(e,t){let r;const s=(...s)=>{clearTimeout(r),r=setTimeout(()=>e(...s),t)};return s.cancel=()=>{clearTimeout(r)},s}const N=[{inputs:[{internalType:"uint256",name:"srcAmount",type:"uint256"},{internalType:"bytes",name:"encodedRoutes",type:"bytes"},{internalType:"uint256",name:"parts",type:"uint256"}],name:"splitQuery",outputs:[{components:[{internalType:"uint256",name:"amountOut",type:"uint256"},{internalType:"uint256",name:"bestIndex",type:"uint256"}],internalType:"struct BitzyQueryV2.OneRoute",name:"",type:"tuple"},{components:[{internalType:"uint256[]",name:"distribution",type:"uint256[]"},{internalType:"uint256",name:"amountOut",type:"uint256"}],internalType:"struct BitzyQueryV2.SplitRoute",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"}];class _{constructor(e){this.config=e}getPublicClient(e){if(this.config.publicClient)return this.config.publicClient;const r=(e=>l[e])(e);if(!r)throw new s({message:`Unsupported chainId: ${e}`,code:g.NETWORK_NOT_SUPPORTED,details:{chainId:e}});const n=t.defineChain({id:e,name:r.name,network:r.name.toLowerCase().replace(/\s+/g,"-"),nativeCurrency:r.nativeCurrency,rpcUrls:{default:{http:r.rpcUrls},public:{http:r.rpcUrls}}});return t.createPublicClient({chain:n,transport:t.http()})}async fetchRoute(r){const{amountIn:i,srcToken:u,dstToken:c,chainId:d,partCount:l,forcePartCount:p}=r,f=p||l||this.getPartCount(u,c,d,this.config.defaultPartCount);if(!S(u,c))throw new s({message:"Invalid tokens provided",code:g.INVALID_TOKENS,details:{srcToken:u,dstToken:c}});if(!P(i))throw new s({message:"Invalid amount provided",code:g.INVALID_AMOUNT,details:{amountIn:i}});const E=O(i,u.decimals),{routerAddress:m,bitzyQueryAddress:C,wrappedAddress:y,nativeAddress:b}=this.config.config,h=R(u,b),w=R(c,b);if(h&&B(c,y)||w&&B(u,y)){const e=h?"wrap":"unwrap",r=E;return{routes:[[{routerAddress:m,lpAddress:t.zeroAddress,fromToken:u.address,toToken:c.address,from:u.address,to:c.address,part:"100000000",amountAfterFee:"10000",dexInterface:0}]],distributions:[f],amountOutRoutes:[r],amountOutBN:r,amountInParts:[E],isAmountOutError:!1,isWrap:e}}const x=h?{...u,address:y}:u,T=w?{...c,address:y}:c;try{const s=await this.config.apiClient.getPathV3(x,T,E.toFixed(0),r.types||[1,2],r.enabledSources||[1]),{hops:i,validPath:u}=s.data;if(0===i.length)return{routes:[],distributions:[],amountOutRoutes:[],amountOutBN:new e(0),amountInParts:[],isAmountOutError:!0};const c=t.encodeAbiParameters([{type:"tuple[][]",components:[{type:"address",name:"src"},{type:"address",name:"dest"},{type:"uint8",name:"typeId"},{type:"uint8",name:"sourceId"},{type:"bytes",name:"path"}]}],[i]);let l=new e(0),p=[],m=[];const g=this.getPublicClient(d);try{const r=t.encodeFunctionData({abi:N,functionName:"splitQuery",args:[E.toFixed(0),c,f]}),s=await g.call({to:C,data:r,gas:50000000000n,gasPrice:void 0});if(s.data){const r=t.decodeFunctionResult({abi:N,functionName:"splitQuery",data:s.data})[1];if(r&&r.amountOut){l=new e(r.amountOut.toString());let s=r.distribution.map(t=>new e(t.toString()).toNumber());m=u.reduce((r,i,u)=>(s[u]>0&&r.push(i.map((r,s,i)=>({routerAddress:A[r.source+"_"+r.type]||t.zeroAddress,lpAddress:r.pool||t.zeroAddress,fromToken:r.src,toToken:r.dest,from:s>0||"V3"===r.type||r.src===y.toLowerCase()?a:o,to:s<i.length-1||s===i.length-1&&r.dest===y.toLowerCase()?a:o,part:"100000000",amountAfterFee:new e(1e4).minus(new e(r.fee||0).dividedBy(100)).toFixed(),dexInterface:n[r.type]||0}))),r),[]),p=s.filter(e=>e>0)}}}catch(t){l=new e(0),p=[],m=[]}const b=p.map(t=>l.times(t).dividedBy(f).dp(0,e.ROUND_DOWN)),h=p.map(t=>E.times(t).dividedBy(f).dp(0,e.ROUND_DOWN));return{routes:m,distributions:p,amountOutRoutes:b,amountOutBN:l,amountInParts:h,isAmountOutError:!1}}catch(e){throw new s({message:"Failed to fetch swap route",code:g.API_ERROR,details:{originalError:e,options:r}})}}getSupportedNetworks(){return Object.keys(m).map(Number)}getNetworkConfig(e){return this.config.config}getPartCount(e,t,r,s){return x(e,t,r,s)}}async function U(e,t={}){const{apiBaseUrl:r=u,defaultPartCount:s=i,timeout:n=3e4,headers:o={},publicClient:a}=t,c=e.chainId,d=E(c);if(!d)throw new Error(`Unsupported network: ${c}`);const l=y.getInstance({baseUrl:r,timeout:n,headers:o});return new _({config:{routerAddress:d.routerAddress,bitzyQueryAddress:d.bitzyQueryAddress,wrappedAddress:d.wrappedAddress,nativeAddress:d.nativeAddress},defaultPartCount:s,apiClient:l,publicClient:a}).fetchRoute(e)}const k=(s,n,o,a,i={})=>{const c=r.useMemo(()=>({}),[]),d=r.useMemo(()=>({routerAddress:t.zeroAddress,bitzyQueryAddress:t.zeroAddress,wrappedAddress:t.zeroAddress,nativeAddress:t.zeroAddress}),[]),{apiBaseUrl:l,addressConfig:p,defaultPartCount:m,timeout:A,headers:C,refreshInterval:g,publicClient:b,configTypes:h,configEnabledSources:w,forcePartCount:T,useOnlinePartCount:D}=r.useMemo(()=>{const{apiBaseUrl:e=u,config:t=d,defaultPartCount:r=5,timeout:s=3e4,headers:n=c,refreshInterval:o=1e4,publicClient:a,types:l,enabledSources:p,forcePartCount:f,useOnlinePartCount:E=!1}=i;return{apiBaseUrl:e,addressConfig:t,defaultPartCount:r,timeout:s,headers:n,refreshInterval:o,publicClient:a,configTypes:l,configEnabledSources:p,forcePartCount:f,useOnlinePartCount:E}},[i,c,d]),O=r.useMemo(()=>f(a),[a]),R=r.useMemo(()=>h??O.types,[h,O.types]),B=r.useMemo(()=>w??O.enabledSources,[w,O.enabledSources]);r.useEffect(()=>{console.log("config",i)},[i]),r.useEffect(()=>{console.log("srcToken",s)},[s]),r.useEffect(()=>{console.log("dstToken",n)},[n]),r.useEffect(()=>{console.log("amountIn",o)},[o]),r.useEffect(()=>{console.log("chainId",a)},[a]),r.useEffect(()=>{console.log("apiBaseUrl",l)},[l]),r.useEffect(()=>{console.log("addressConfig",p)},[p]),r.useEffect(()=>{console.log("defaultPartCount",m)},[m]),r.useEffect(()=>{console.log("timeout",A)},[A]),r.useEffect(()=>{console.log("headers",C)},[C]),r.useEffect(()=>{console.log("types",R)},[R]),r.useEffect(()=>{console.log("enabledSources",B)},[B]);const[S,P]=r.useState(new e(0)),[N,U]=r.useState([]),[k,v]=r.useState([]),[L,M]=r.useState([]),[V,Q]=r.useState([]),[z,Y]=r.useState(!1),[W,K]=r.useState(!1),[q,$]=r.useState(),[H,G]=r.useState(!1),[Z,j]=r.useState(null),[X,J]=r.useState(null),ee=r.useMemo(()=>(console.log("partCount",0,D),D?null!==X?X:x(s,n,a,m):(console.log("partCount",1,T),void 0!==T?T:(console.log("partCount",2,m),x(s,n,a,m)))),[m,T,D,X,s,n,a]);r.useEffect(()=>{if(!(D&&s&&n&&o))return void J(null);(async()=>{try{const e=await I(s,n,o,a,l,m);J(e)}catch(e){console.warn("Failed to fetch online partCount:",e),J(null)}})()},[D,s,n,o,a,l,m]);const te=r.useMemo(()=>{const e=E(a),t=p&&Object.keys(p).length>0?p:{routerAddress:e?.routerAddress||"0x0000000000000000000000000000000000000000",bitzyQueryAddress:e?.bitzyQueryAddress||"0x0000000000000000000000000000000000000000",wrappedAddress:e?.wrappedAddress||"0x0000000000000000000000000000000000000000",nativeAddress:e?.nativeAddress||"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},r=y.getInstance({baseUrl:l,timeout:A,headers:C});return new _({config:t,defaultPartCount:m,apiClient:r,publicClient:b})},[p,m,l,A,C,b,a]),re=r.useCallback(()=>{j(null)},[]),se=r.useCallback(async()=>{if(!s||!n||!o||"0"===o)return P(new e(0)),U([]),v([]),M([]),Q([]),K(!1),G(!1),void j(null);Y(!0),j(null);try{const e={amountIn:o,srcToken:s,dstToken:n,chainId:a,partCount:ee,types:R,enabledSources:B},t=await te.fetchRoute(e);P(t.amountOutBN),U(t.routes),v(t.distributions),M(t.amountOutRoutes),Q(t.amountInParts),K(t.isAmountOutError),$(t.isWrap),G(!0)}catch(t){const r=t instanceof Error?t.message:"Unknown error occurred";j(r),console.error("Error fetching route:",t),P(new e(0)),U([]),v([]),M([]),Q([]),K(!0),G(!1)}finally{Y(!1)}},[te,s,n,o,a,ee,R,B]),ne=r.useMemo(()=>F(se,300),[se]);return r.useEffect(()=>{if(!o||"0"===o)return P(new e(0)),U([]),v([]),M([]),Q([]),K(!1),G(!1),void j(null);ne();const t=setInterval(()=>{ne()},g);return()=>{clearInterval(t),"function"==typeof ne.cancel&&ne.cancel()}},[o,s?.address,n?.address,ne,g]),r.useEffect(()=>{H&&se()},[se,H,te]),{routes:N,distributions:k,amountOutRoutes:L,amountOutBN:S,amountInParts:V,fetchRoute:se,isLoading:z,isAmountOutError:W,isFirstFetch:H,isWrap:q,error:Z,clearError:re}};exports.APIClient=y,exports.API_ENDPOINTS=C,exports.BITZY_QUERY_ABI=N,exports.CONTRACT_ADDRESSES=d,exports.DEFAULT_NETWORKS=m,exports.DEFAULT_PART_COUNT=i,exports.DEFAULT_TIMEOUT=3e4,exports.DEX_INTERFACE=n,exports.DEX_ROUTER=A,exports.DEX_ROUTERS=c,exports.ERROR_CODES=g,exports.HIGH_VALUE_TOKENS=h,exports.LIQUIDITY_SOURCES=p,exports.ROUTER_TARGET=a,exports.SwapV3Service=_,exports.USER_TARGET=o,exports.calculatePartCount=function(t,r,s=10){return new e(t).times(r).lt(1)?1:s},exports.calculatePriceImpact=D,exports.clearMinimumAmountsCache=function(){b=null,console.log("Minimum amounts cache cleared")},exports.debounce=F,exports.ensureBigNumber=t=>t instanceof e?t:new e(t),exports.fetchBatchSwapRoutes=async function(e){return(await Promise.allSettled(e.map(async({options:e,config:t})=>{try{return{success:!0,data:await U(e,t)}}catch(e){return{success:!1,error:e instanceof Error?e.message:"Unknown error"}}}))).map(e=>"fulfilled"===e.status?e.value:{success:!1,error:e.reason?.message||"Unknown error"})},exports.fetchSwapRoute=U,exports.fetchSwapRouteSimple=async function(e,t={}){const{types:r,enabledSources:s}=f(e.chainId);return U({...e,types:r,enabledSources:s},{...t,forcePartCount:t.forcePartCount})},exports.formatError=function(e){return"string"==typeof e?e:e?.message?e.message:e?.error?e.error:"Unknown error occurred"},exports.fromTokenAmount=O,exports.getContractAddresses=E,exports.getDexRouters=e=>c[e]||{},exports.getLiquiditySources=f,exports.getOptimalPartCount=function(e,t,r=5){return D(e,t,5)>r?1:5},exports.getPartCountOffline=x,exports.getPartCountOnline=T,exports.getPartCountWithFallback=I,exports.getSwapQuote=async function(e,t,r,s,n={}){const o=await U({amountIn:r,srcToken:e,dstToken:t,chainId:s},n);return{amountOut:o.amountOutBN.toFixed(0),routes:o.routes.length}},exports.getSwapRoute=U,exports.isBigNumber=t=>t instanceof e,exports.isHighValueToken=w,exports.isNativeToken=R,exports.isWrappedToken=B,exports.toTokenAmount=function(t,r){return new e(t).dividedBy(new e(10).pow(r)).toString()},exports.useSwapRoutes=k,exports.useSwapV3Routes=k,exports.validateAmount=P,exports.validateTokens=S;
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/types/index.ts","../src/constants/index.ts","../src/api/Client.ts","../src/utils/PartCount.ts","../src/utils/index.ts","../src/constants/Abis.ts","../src/services/SwapV3Service.ts","../src/common/FetchSwapRoute.ts","../src/hooks/useSwapV3Routes.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["SwapError","Error","constructor","options","super","message","this","name","code","details","captureStackTrace","DEX_INTERFACE","V2","V3","USER_TARGET","ROUTER_TARGET","DEFAULT_PART_COUNT","DEFAULT_API_BASE_URL","DEX_ROUTERS","BITZY_V3","BITZY_V2","AVOCADO_V2","CONTRACT_ADDRESSES","factoryAddress","v3FactoryAddress","v3PositionManagerAddress","v3WalletHelperAddress","routerAddress","aggregatorAddress","otcAddress","memeTokenGenerator","bitzyQueryAddress","wrappedAddress","nativeAddress","gasLimit","BigInt","RPC_CONFIG","rpcUrls","nativeCurrency","symbol","decimals","LIQUIDITY_SOURCES","types","enabledSources","getLiquiditySources","chainId","getContractAddresses","DEFAULT_NETWORKS","DEX_ROUTER","API_ENDPOINTS","PATH_V3","ASSET_MINIMUM","ERROR_CODES","INVALID_TOKENS","INVALID_AMOUNT","NETWORK_NOT_SUPPORTED","API_ERROR","QUERY_ERROR","INSUFFICIENT_LIQUIDITY","APIClient","config","getInstance","instance","configWithApiKey","headers","process","env","NEXT_PUBLIC_BITZY_API_KEY","resetInstance","request","endpoint","controller","AbortController","timeoutId","setTimeout","abort","timeout","response","fetch","baseUrl","signal","clearTimeout","ok","status","statusText","json","error","originalError","getPathV3","srcToken","dstToken","amountIn","params","src","address","dest","amount","typeId","sourceId","query","buildQueryString","method","getAssetMinimum","queries","Object","keys","reduce","result","key","value","Array","isArray","map","v","join","replace","String","minimumAmountsCache","HIGH_VALUE_TOKENS","isHighValueToken","token","networkTokens","some","addr","toLowerCase","getPartCountOffline","defaultPartCount","srcIsHighValue","dstIsHighValue","async","getPartCountOnline","apiBaseUrl","apiKey","fallbackPartCount","console","log","minimumData","now","Date","expiresAt","data","apiClient","success","timestamp","getMinimumAmounts","srcTokenMin","find","item","dstTokenMin","amountInBN","BigNumber","gte","minimumAmount","warn","getPartCountWithFallback","calculatePriceImpact","swapAmount","pairLiquidity","partCount","Infinity","fromTokenAmount","isNaN","Number","times","pow","isNativeToken","isWrappedToken","validateTokens","validateAmount","num","gt","isFinite","debounce","func","wait","debouncedFn","args","cancel","BITZY_QUERY_ABI","inputs","internalType","type","outputs","components","stateMutability","SwapV3Service","getPublicClient","publicClient","rpcConfig","getRpcConfig","chain","defineChain","id","network","default","http","public","createPublicClient","transport","fetchRoute","providedPartCount","forcePartCount","getPartCount","isSrcNative","isDstNative","isWrap","amountOutBN","routes","lpAddress","zeroAddress","fromToken","toToken","from","to","part","amountAfterFee","dexInterface","distributions","amountOutRoutes","amountInParts","isAmountOutError","usingSrcToken","usingDstToken","pathData","toFixed","hops","validPath","length","encodedRoutes","encodeAbiParameters","encodeFunctionData","abi","functionName","call","gas","gasPrice","undefined","splitRouteData","decodeFunctionResult","amountOut","toString","distributionsRaw","distribution","d","toNumber","acc","path","k","push","i","values","source","pool","minus","fee","dividedBy","filter","contractError","am","dp","ROUND_DOWN","getSupportedNetworks","getNetworkConfig","fetchSwapRoute","networkConfig","useSwapV3Routes","defaultHeaders","useMemo","defaultAddressConfig","addressConfig","refreshInterval","configTypes","configEnabledSources","useOnlinePartCount","defaultLiquiditySources","useEffect","setAmountOutBN","useState","setRoutes","setDistributions","setAmountOutRoutes","setAmountInParts","isLoading","setIsLoading","setIsAmountOutError","setIsWrap","isFirstFetch","setIsFirstFetch","setError","onlinePartCount","setOnlinePartCount","onlinePartCountValue","fetchOnlinePartCount","swapService","defaultAddresses","finalAddressConfig","clearError","useCallback","err","errorMessage","debouncedFetchRoute","intervalId","setInterval","clearInterval","price","lt","swaps","Promise","allSettled","reason","maxImpactThreshold"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/types/index.ts","../src/constants/index.ts","../src/api/Client.ts","../src/utils/PartCount.ts","../src/utils/index.ts","../src/constants/Abis.ts","../src/services/SwapV3Service.ts","../src/common/FetchSwapRoute.ts","../src/hooks/useSwapV3Routes.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["SwapError","Error","constructor","options","super","message","this","name","code","details","captureStackTrace","DEX_INTERFACE","V2","V3","USER_TARGET","ROUTER_TARGET","DEFAULT_PART_COUNT","DEFAULT_API_BASE_URL","DEX_ROUTERS","BITZY_V3","BITZY_V2","AVOCADO_V2","CONTRACT_ADDRESSES","factoryAddress","v3FactoryAddress","v3PositionManagerAddress","v3WalletHelperAddress","routerAddress","aggregatorAddress","otcAddress","memeTokenGenerator","bitzyQueryAddress","wrappedAddress","nativeAddress","gasLimit","BigInt","RPC_CONFIG","rpcUrls","nativeCurrency","symbol","decimals","LIQUIDITY_SOURCES","types","enabledSources","getLiquiditySources","chainId","getContractAddresses","DEFAULT_NETWORKS","DEX_ROUTER","API_ENDPOINTS","PATH_V3","ASSET_MINIMUM","ERROR_CODES","INVALID_TOKENS","INVALID_AMOUNT","NETWORK_NOT_SUPPORTED","API_ERROR","QUERY_ERROR","INSUFFICIENT_LIQUIDITY","APIClient","config","getInstance","instance","configWithApiKey","headers","process","env","NEXT_PUBLIC_BITZY_API_KEY","resetInstance","request","endpoint","controller","AbortController","timeoutId","setTimeout","abort","timeout","response","fetch","baseUrl","signal","clearTimeout","ok","status","statusText","json","error","originalError","getPathV3","srcToken","dstToken","amountIn","params","URLSearchParams","set","address","JSON","stringify","toString","method","getAssetMinimum","minimumAmountsCache","HIGH_VALUE_TOKENS","isHighValueToken","token","networkTokens","some","addr","toLowerCase","getPartCountOffline","defaultPartCount","srcIsHighValue","dstIsHighValue","async","getPartCountOnline","apiBaseUrl","apiKey","fallbackPartCount","console","log","minimumData","now","Date","expiresAt","data","apiClient","success","timestamp","getMinimumAmounts","srcTokenMin","find","item","dstTokenMin","amountInBN","BigNumber","gte","minimumAmount","warn","getPartCountWithFallback","calculatePriceImpact","swapAmount","pairLiquidity","partCount","Infinity","fromTokenAmount","amount","isNaN","Number","times","pow","isNativeToken","isWrappedToken","validateTokens","validateAmount","num","gt","isFinite","debounce","func","wait","debouncedFn","args","cancel","BITZY_QUERY_ABI","inputs","internalType","type","outputs","components","stateMutability","SwapV3Service","getPublicClient","publicClient","rpcConfig","getRpcConfig","chain","defineChain","id","network","replace","default","http","public","createPublicClient","transport","fetchRoute","providedPartCount","forcePartCount","getPartCount","isSrcNative","isDstNative","isWrap","amountOutBN","routes","lpAddress","zeroAddress","fromToken","toToken","from","to","part","amountAfterFee","dexInterface","distributions","amountOutRoutes","amountInParts","isAmountOutError","usingSrcToken","usingDstToken","pathData","toFixed","hops","validPath","length","encodedRoutes","encodeAbiParameters","encodeFunctionData","abi","functionName","result","call","gas","gasPrice","undefined","splitRouteData","decodeFunctionResult","amountOut","distributionsRaw","distribution","map","d","toNumber","reduce","acc","path","k","push","value","i","values","source","pool","src","dest","minus","fee","dividedBy","filter","contractError","am","dp","ROUND_DOWN","getSupportedNetworks","Object","keys","getNetworkConfig","fetchSwapRoute","networkConfig","useSwapV3Routes","defaultHeaders","useMemo","defaultAddressConfig","addressConfig","refreshInterval","configTypes","configEnabledSources","useOnlinePartCount","defaultLiquiditySources","useEffect","setAmountOutBN","useState","setRoutes","setDistributions","setAmountOutRoutes","setAmountInParts","isLoading","setIsLoading","setIsAmountOutError","setIsWrap","isFirstFetch","setIsFirstFetch","setError","onlinePartCount","setOnlinePartCount","onlinePartCountValue","fetchOnlinePartCount","swapService","defaultAddresses","finalAddressConfig","clearError","useCallback","err","errorMessage","debouncedFetchRoute","intervalId","setInterval","clearInterval","price","lt","swaps","Promise","allSettled","reason","maxImpactThreshold"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitzy-app/bitzy-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Bitzy Swap V3 Routes SDK for frontend and backend applications",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",