@tcswap/helpers 4.5.15
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.
- package/dist/api/index.cjs +4 -0
- package/dist/api/index.cjs.map +16 -0
- package/dist/api/index.js +4 -0
- package/dist/api/index.js.map +16 -0
- package/dist/chunk-pfmeq01a.js +5 -0
- package/dist/chunk-pfmeq01a.js.map +9 -0
- package/dist/chunk-vb4wtm2w.js +4 -0
- package/dist/chunk-vb4wtm2w.js.map +9 -0
- package/dist/contracts.cjs +4 -0
- package/dist/contracts.cjs.map +10 -0
- package/dist/contracts.js +4 -0
- package/dist/contracts.js.map +10 -0
- package/dist/index.cjs +7 -0
- package/dist/index.cjs.map +30 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +30 -0
- package/dist/tokens.cjs +4 -0
- package/dist/tokens.cjs.map +10 -0
- package/dist/tokens.js +4 -0
- package/dist/tokens.js.map +10 -0
- package/dist/types/api/index.d.ts +502 -0
- package/dist/types/api/index.d.ts.map +1 -0
- package/dist/types/api/memoless/endpoints.d.ts +56 -0
- package/dist/types/api/memoless/endpoints.d.ts.map +1 -0
- package/dist/types/api/memoless/types.d.ts +85 -0
- package/dist/types/api/memoless/types.d.ts.map +1 -0
- package/dist/types/api/midgard/endpoints.d.ts +80 -0
- package/dist/types/api/midgard/endpoints.d.ts.map +1 -0
- package/dist/types/api/midgard/types.d.ts +543 -0
- package/dist/types/api/midgard/types.d.ts.map +1 -0
- package/dist/types/api/thornode/endpoints.d.ts +34 -0
- package/dist/types/api/thornode/endpoints.d.ts.map +1 -0
- package/dist/types/api/thornode/types.d.ts +264 -0
- package/dist/types/api/thornode/types.d.ts.map +1 -0
- package/dist/types/api/uswap/endpoints.d.ts +372 -0
- package/dist/types/api/uswap/endpoints.d.ts.map +1 -0
- package/dist/types/api/uswap/types.d.ts +1487 -0
- package/dist/types/api/uswap/types.d.ts.map +1 -0
- package/dist/types/contracts.d.ts +2 -0
- package/dist/types/contracts.d.ts.map +1 -0
- package/dist/types/index.d.ts +32 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/modules/assetValue.d.ts +82 -0
- package/dist/types/modules/assetValue.d.ts.map +1 -0
- package/dist/types/modules/bigIntArithmetics.d.ts +60 -0
- package/dist/types/modules/bigIntArithmetics.d.ts.map +1 -0
- package/dist/types/modules/feeMultiplier.d.ts +48 -0
- package/dist/types/modules/feeMultiplier.d.ts.map +1 -0
- package/dist/types/modules/requestClient.d.ts +33 -0
- package/dist/types/modules/requestClient.d.ts.map +1 -0
- package/dist/types/modules/uSwapConfig.d.ts +249 -0
- package/dist/types/modules/uSwapConfig.d.ts.map +1 -0
- package/dist/types/modules/uSwapError.d.ts +879 -0
- package/dist/types/modules/uSwapError.d.ts.map +1 -0
- package/dist/types/modules/uSwapNumber.d.ts +10 -0
- package/dist/types/modules/uSwapNumber.d.ts.map +1 -0
- package/dist/types/tokens.d.ts +2 -0
- package/dist/types/tokens.d.ts.map +1 -0
- package/dist/types/types/commonTypes.d.ts +16 -0
- package/dist/types/types/commonTypes.d.ts.map +1 -0
- package/dist/types/types/derivationPath.d.ts +4 -0
- package/dist/types/types/derivationPath.d.ts.map +1 -0
- package/dist/types/types/errors/apiV1.d.ts +2 -0
- package/dist/types/types/errors/apiV1.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +6 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/quotes.d.ts +180 -0
- package/dist/types/types/quotes.d.ts.map +1 -0
- package/dist/types/types/sdk.d.ts +35 -0
- package/dist/types/types/sdk.d.ts.map +1 -0
- package/dist/types/types/wallet.d.ts +130 -0
- package/dist/types/types/wallet.d.ts.map +1 -0
- package/dist/types/utils/asset.d.ts +37 -0
- package/dist/types/utils/asset.d.ts.map +1 -0
- package/dist/types/utils/chains.d.ts +13 -0
- package/dist/types/utils/chains.d.ts.map +1 -0
- package/dist/types/utils/derivationPath.d.ts +21 -0
- package/dist/types/utils/derivationPath.d.ts.map +1 -0
- package/dist/types/utils/explorerUrls.d.ts +10 -0
- package/dist/types/utils/explorerUrls.d.ts.map +1 -0
- package/dist/types/utils/liquidity.d.ts +62 -0
- package/dist/types/utils/liquidity.d.ts.map +1 -0
- package/dist/types/utils/memo.d.ts +65 -0
- package/dist/types/utils/memo.d.ts.map +1 -0
- package/dist/types/utils/others.d.ts +15 -0
- package/dist/types/utils/others.d.ts.map +1 -0
- package/dist/types/utils/validators.d.ts +6 -0
- package/dist/types/utils/validators.d.ts.map +1 -0
- package/dist/types/utils/wallets.d.ts +36 -0
- package/dist/types/utils/wallets.d.ts.map +1 -0
- package/package.json +67 -0
- package/src/api/index.ts +15 -0
- package/src/api/memoless/endpoints.ts +62 -0
- package/src/api/memoless/types.ts +83 -0
- package/src/api/midgard/endpoints.ts +352 -0
- package/src/api/midgard/types.ts +515 -0
- package/src/api/thornode/endpoints.ts +109 -0
- package/src/api/thornode/types.ts +247 -0
- package/src/api/uswap/endpoints.ts +252 -0
- package/src/api/uswap/types.ts +626 -0
- package/src/contracts.ts +1 -0
- package/src/index.ts +32 -0
- package/src/modules/__tests__/assetValue.test.ts +2452 -0
- package/src/modules/__tests__/bigIntArithmetics.test.ts +410 -0
- package/src/modules/__tests__/feeMultiplier.test.ts +131 -0
- package/src/modules/__tests__/uSwapConfig.test.ts +429 -0
- package/src/modules/__tests__/uSwapNumber.test.ts +439 -0
- package/src/modules/assetValue.ts +536 -0
- package/src/modules/bigIntArithmetics.ts +366 -0
- package/src/modules/feeMultiplier.ts +84 -0
- package/src/modules/requestClient.ts +116 -0
- package/src/modules/uSwapConfig.ts +189 -0
- package/src/modules/uSwapError.ts +474 -0
- package/src/modules/uSwapNumber.ts +17 -0
- package/src/tokens.ts +1 -0
- package/src/types/commonTypes.ts +10 -0
- package/src/types/derivationPath.ts +11 -0
- package/src/types/errors/apiV1.ts +0 -0
- package/src/types/index.ts +5 -0
- package/src/types/quotes.ts +182 -0
- package/src/types/sdk.ts +38 -0
- package/src/types/wallet.ts +124 -0
- package/src/utils/__tests__/asset.test.ts +186 -0
- package/src/utils/__tests__/derivationPath.test.ts +142 -0
- package/src/utils/__tests__/explorerUrls.test.ts +59 -0
- package/src/utils/__tests__/liquidity.test.ts +302 -0
- package/src/utils/__tests__/memo.test.ts +99 -0
- package/src/utils/__tests__/others.test.ts +169 -0
- package/src/utils/__tests__/validators.test.ts +84 -0
- package/src/utils/__tests__/wallets.test.ts +625 -0
- package/src/utils/asset.ts +399 -0
- package/src/utils/chains.ts +104 -0
- package/src/utils/derivationPath.ts +101 -0
- package/src/utils/explorerUrls.ts +32 -0
- package/src/utils/liquidity.ts +154 -0
- package/src/utils/memo.ts +102 -0
- package/src/utils/others.ts +64 -0
- package/src/utils/validators.ts +36 -0
- package/src/utils/wallets.ts +238 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var Ze={};D(Ze,{USwapApi:()=>Qe,TxnType:()=>X,TxnStatus:()=>x,TransactionSchema:()=>Pe,TransactionDTOSchema:()=>De,TrackingStatus:()=>w,TrackingRequestSchema:()=>Ne,TrackingRequestQuerySchema:()=>fe,TrackerResponseSchema:()=>Q,TokenSchema:()=>Te,TokenDetailsMetadataSchema:()=>mt,RouteQuoteWarningSchema:()=>bt,RouteQuoteTxType:()=>h,RouteQuoteMetadataV2Schema:()=>Ht,RouteQuoteMetadataSchema:()=>Et,RouteQuoteMetadataAssetSchema:()=>ft,RouteLegWithoutAddressesSchema:()=>Me,RouteLegSchema:()=>Nt,RegistrationResponseSchema:()=>M,RegistrationRequestSchema:()=>St,QuoteResponseSchema:()=>J,QuoteResponseRouteItem:()=>y,QuoteRequestSchema:()=>Ee,ProviderAction:()=>F,PriorityLabel:()=>U,PriceResponseSchema:()=>k,PriceRequestSchema:()=>He,PreflightResultSchema:()=>B,PreflightRequestSchema:()=>Rt,PreflightInputType:()=>_,NearSwapResponseSchema:()=>W,NearDepositChannelResultSchema:()=>be,NearDepositChannelParamsSchema:()=>V,MemolessAssetsSchema:()=>Ct,MemolessAssetItem:()=>nt,GasSchema:()=>q,GasResponseSchema:()=>tt,FeesSchema:()=>Z,EstimatedTimeSchema:()=>j,EVMTransactionSchema:()=>At,EVMTransactionDetailsSchema:()=>he,EVMTransactionDetailsParamsSchema:()=>ct,DepositChannelResponseSchema:()=>z,DepositChannelParamsSchema:()=>K,CosmosTransactionSchema:()=>Tt,ChainflipMetadataSchema:()=>dt,BrokerDepositChannelParamsSchema:()=>gt,AssetValueSchema:()=>I,ApiV2ErrorSchema:()=>de});module.exports=We(Ze);var G={};D(G,{registerMemoless:()=>It,preflightMemoless:()=>Lt,getMemolessAssets:()=>Ot});var S=require("@tcswap/helpers");var o=require("zod/v4"),nt=o.z.object({asset:o.z.string(),balanceRune:o.z.number(),decimals:o.coerce.number(),isToken:o.z.boolean(),priceUSD:o.z.number(),status:o.z.string()}),Ct=o.z.object({assets:o.array(nt),error:o.optional(o.object({code:o.z.string(),details:o.z.string(),message:o.z.string()})),success:o.z.boolean()}),St=o.z.object({asset:o.z.string(),memo:o.z.string(),requested_in_asset_amount:o.z.optional(o.z.string()).or(o.z.number())}),M=o.z.object({asset:o.z.string(),decimals:o.z.number(),height:o.z.string(),internal_api_id:o.z.string(),memo:o.z.string(),minimum_amount_to_send:o.z.string(),reference:o.z.string(),reference_length:o.z.number(),registered_by:o.z.string(),registration_hash:o.z.string(),success:o.z.boolean(),suggested_in_asset_amount:o.z.optional(o.z.string()),txHash:o.z.string()}),_;((n)=>{n.asset="asset";n.usd="usd"})(_||={});var Rt=o.z.object({amount:o.z.string(),asset:o.optional(o.z.string()),inputType:o.optional(o.z.enum(_)),internal_api_id:o.optional(o.z.string()),reference:o.optional(o.z.string())}),B=o.z.object({data:o.z.object({blocks_remaining:o.z.number(),current_uses:o.z.number(),inbound_address:o.optional(o.z.string()),max_uses:o.z.number(),memo:o.optional(o.z.string()),qr_code:o.optional(o.z.string()),qr_code_data_url:o.optional(o.z.string()),seconds_remaining:o.z.number(),time_remaining:o.z.string()}),error:o.optional(o.z.object({code:o.z.string(),message:o.z.string()})),message:o.z.string(),success:o.z.boolean()});var $=S.RequestClient.extend({dynamicHeader:()=>{let{memoless:e}=S.USwapConfig.get("apiKeys");return e?{"x-api-key":e}:{}}});function Ot(e){return $.get(v("/assets"),{...e})}async function It(e,s){let n=v("/register"),r=await $.post(n,{json:e,...s});try{let i=M.safeParse(r);if(!i.success)throw new S.USwapError("api_v2_invalid_response",i.error);return i.data}catch(i){return r}}async function Lt(e,s){let n=v("/preflight"),r=await $.post(n,{json:e,...s});try{let i=B.safeParse(r);if(!i.success)throw new S.USwapError("api_v2_invalid_response",i.error);return i.data}catch(i){return r}}function v(e){let{memolessApiUrl:s}=S.USwapConfig.get("envs");return`${s}${e}`}var a=require("@tcswap/helpers"),O=require("@tcswap/types");function rt(e=!0){return e?"https://midgard.ninerealms.com":"https://midgard.mayachain.info"}function lt(e=!0){let s=rt(e);return e?`${s}/v2/thorname`:`${s}/v2/mayaname`}function Pt(e){return function(n){let r=n?`?status=${n}`:"";return a.RequestClient.get(`${e}/v2/pools${r}`)}}function Dt(e){return function(n){return a.RequestClient.get(`${e}/v2/pool/${n}`)}}function ht(e){return function(n,r){let i=r?`?period=${r}`:"";return a.RequestClient.get(`${e}/v2/pool/${n}/stats${i}`)}}function yt(e){return function(n,r){let i=new URLSearchParams;if(r?.interval)i.append("interval",r.interval);if(r?.count)i.append("count",r.count.toString());if(r?.from)i.append("from",r.from.toString());if(r?.to)i.append("to",r.to.toString());let c=i.toString()?`?${i.toString()}`:"";return a.RequestClient.get(`${e}/v2/history/depths/${n}${c}`)}}function pt(e){return function(){return a.RequestClient.get(`${e}/v2/network`)}}function Mt(e){return function(){return a.RequestClient.get(`${e}/v2/health`)}}function _t(e){return function(){return a.RequestClient.get(`${e}/v2/nodes`)}}function Bt(e){return function(n){return a.RequestClient.get(`${e}/v2/node/${n}`)}}function $t(e){return function(){return a.RequestClient.get(`${e}/v2/mimir/votes`)}}function vt(e){return function(){return a.RequestClient.get(`${e}/v2/mimir`)}}function Gt(e){return function(){return a.RequestClient.get(`${e}/v2/constants`)}}function Yt(e){return function(){return a.RequestClient.get(`${e}/v2/stats`)}}function Vt(e){return function(n){let r=new URLSearchParams;if(n?.interval)r.append("interval",n.interval);if(n?.count)r.append("count",n.count.toString());if(n?.from)r.append("from",n.from.toString());if(n?.to)r.append("to",n.to.toString());let i=r.toString()?`?${r.toString()}`:"";return a.RequestClient.get(`${e}/v2/history/earnings${i}`)}}function Ut(e){return function(n,r){let i=new URLSearchParams;if(r?.interval)i.append("interval",r.interval);if(r?.count)i.append("count",r.count.toString());if(r?.from)i.append("from",r.from.toString());if(r?.to)i.append("to",r.to.toString());let c=i.toString()?`?${i.toString()}`:"",m=n?`/swaps/${n}`:"/swaps";return a.RequestClient.get(`${e}/v2/history${m}${c}`)}}function Xt(e){return function(n){let r=new URLSearchParams;if(n?.interval)r.append("interval",n.interval);if(n?.count)r.append("count",n.count.toString());if(n?.from)r.append("from",n.from.toString());if(n?.to)r.append("to",n.to.toString());let i=r.toString()?`?${r.toString()}`:"";return a.RequestClient.get(`${e}/v2/history/tvl${i}`)}}function Ft(e){if(!e)return"";let s=new URLSearchParams,n=(r,i)=>{if(i!==void 0)s.append(r,typeof i==="number"?i.toString():i)};return n("address",e.address),n("txid",e.txid),n("asset",e.asset),n("type",e.type),n("affiliate",e.affiliate),n("limit",e.limit),n("offset",e.offset),s.toString()?`?${s.toString()}`:""}function xt(e){return function(n){let r=Ft(n);return a.RequestClient.get(`${e}/v2/actions${r}`)}}function wt(e){return function(n){return a.RequestClient.get(`${e}/v2/member/${n}`)}}function kt(e){return function(n){let r=n?`/${n}`:"";return a.RequestClient.get(`${e}/v2/members${r}`)}}function Kt(e){return function(n,r){let i=r?`&asset=${r}`:"";return a.RequestClient.get(`${e}/v2/saver/${n}${i?`?${i.substring(1)}`:""}`)}}function zt(e){return function(n){return a.RequestClient.get(`${e}/v2/savers/${n}`)}}function Wt(e){return function(n,r){let i=new URLSearchParams;if(r?.interval)i.append("interval",r.interval);if(r?.count)i.append("count",r.count.toString());if(r?.from)i.append("from",r.from.toString());if(r?.to)i.append("to",r.to.toString());let c=i.toString()?`?${i.toString()}`:"",m=n?`/savers/${n}`:"/savers";return a.RequestClient.get(`${e}/v2/history${m}${c}`)}}function Qt(e){return function(n){return a.RequestClient.get(`${e}/v2/balance/${n}`)}}function Zt(e){return async function(n){let r=(i)=>{if(i?.cause?.status===404)return;throw i};return await a.RequestClient.get(`${e}/lookup/${n}`,{onError:r,retry:{maxRetries:1}})}}function jt(e){return async function(n){let r=(i)=>{if(i?.cause?.status===404)return[];throw i};return await a.RequestClient.get(`${e}/rlookup/${n}`,{onError:r,retry:{maxRetries:1}})}}function Jt(e){return async function(n){let r=(i)=>{if(i?.cause?.status===404)return[];throw i};return await a.RequestClient.get(`${e}/owner/${n}`,{onError:r,retry:{maxRetries:1}})}}function L({asset:e,value:s}){return a.AssetValue.from({asset:e,fromBaseDecimal:O.getChainConfig(O.Chain.THORChain).baseDecimal,value:s})}function qt({liquidityPositionGetter:e,isThorchain:s}){return async function(r){let i=await e(r),c=s?"rune":"cacao";return i.pools.map((m)=>({[`${c}Pending`]:L({asset:"THOR.RUNE",value:m.runePending}),[`${c}RegisteredAddress`]:m.runeAddress,[`${c}Withdrawn`]:L({asset:"THOR.RUNE",value:m.runeWithdrawn}),[c]:L({asset:"THOR.RUNE",value:m.runeAdded}),asset:L({asset:m.pool,value:m.assetAdded}),assetPending:L({asset:m.pool,value:m.assetPending}),assetRegisteredAddress:m.assetAddress,assetWithdrawn:L({asset:m.pool,value:m.assetWithdrawn}),dateFirstAdded:m.dateFirstAdded,dateLastAdded:m.dateLastAdded,poolShare:new a.USwapNumber(m.liquidityUnits).div(m.pool)}))}}function st(e){let s=e===O.Chain.THORChain,n=rt(s),r=lt(s),i=wt(n);return{getActions:xt(n),getBalance:Qt(n),getConstants:Gt(n),getEarningsHistory:Vt(n),getHealth:Mt(n),getLiquidityPosition:qt({isThorchain:s,liquidityPositionGetter:i}),getLiquidityPositionRaw:i,getMembers:kt(n),getMimir:vt(n),getMimirVotes:$t(n),getNameDetails:Zt(r),getNamesByAddress:jt(r),getNamesByOwner:Jt(r),getNetworkInfo:pt(n),getNode:Bt(n),getNodes:_t(n),getPool:Dt(n),getPoolDepthHistory:yt(n),getPoolStats:ht(n),getPools:Pt(n),getSaverDetails:Kt(n),getSavers:zt(n),getSaversHistory:Wt(n),getStats:Yt(n),getSwapHistory:Ut(n),getTVLHistory:Xt(n)}}var it=st(O.Chain.THORChain),ot=st(O.Chain.Maya);var Y={};D(Y,{getThorchainQueue:()=>ne,getTcyStakers:()=>ge,getTcyStaker:()=>me,getTcyClaimers:()=>ce,getTcyClaimer:()=>Ae,getTNSPreferredAsset:()=>oe,getTHORNodeTNSDetails:()=>at,getRunePoolProviderInfo:()=>ue,getRunePoolInfo:()=>ae,getNodes:()=>re,getMimirInfo:()=>se,getLastBlock:()=>ee,getInboundAddresses:()=>ie});var g=require("@tcswap/helpers"),R=require("@tcswap/types");function d(e){let{isStagenet:s}=g.USwapConfig.get("envs");switch(e){case"mayachain":return`${s?R.StagenetMAYAConfig.nodeUrl:R.MAYAConfig.nodeUrl}/mayachain`;default:return`${s?R.StagenetTHORConfig.nodeUrl:R.THORConfig.nodeUrl}/thorchain`}}function te(e){let s=e==="mayachain"?"mayaname":"thorname";return`${d(e)}/${s}`}function ee(e="thorchain"){return g.RequestClient.get(`${d(e)}/lastblock`)}function ne(e){return g.RequestClient.get(`${d(e)}/queue`)}function re(e){return g.RequestClient.get(`${d(e)}/nodes`)}function se(e){return g.RequestClient.get(`${d(e)}/mimir`)}function ie(e){return g.RequestClient.get(`${d(e)}/inbound_addresses`)}async function at({type:e,name:s}){try{return await g.RequestClient.get(`${te(e)}/${s}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:s,owner:"",preferred_asset:""}}}async function oe({type:e,tns:s}){let n=await at({name:s,type:e});if(!n.preferred_asset||n.preferred_asset===".")return;return g.AssetValue.from({asset:n.preferred_asset,asyncTokenLookup:!0})}function ae(e){return g.RequestClient.get(`${d(e)}/runepool`)}function ue({type:e,thorAddress:s}){return g.RequestClient.get(`${d(e)}/rune_provider/${s}`)}function me({type:e,address:s}){return g.RequestClient.get(`${d(e)}/tcy_staker/${s}`)}function ge(e){return g.RequestClient.get(`${d(e)}/tcy_stakers`)}function Ae({type:e,address:s}){return g.RequestClient.get(`${d(e)}/tcy_claimer/${s}`)}function ce(e){return g.RequestClient.get(`${d(e)}/tcy_claimers`)}var et={};D(et,{getTrackerDetails:()=>$e,getTokenListProviders:()=>Ve,getTokenList:()=>Ue,getSwapQuote:()=>ve,getRouteWithTx:()=>Ge,getPrice:()=>Xe,getNearDepositChannel:()=>we,getGasRate:()=>Fe,getChainflipDepositChannel:()=>xe,getChainBalance:()=>Ye});var u=require("@tcswap/helpers"),P=require("ts-pattern");var N=require("@tcswap/helpers"),C=require("@tcswap/types"),t=require("zod/v4"),U;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(U||={});var h;((i)=>{i.PSBT="PSBT";i.EVM="EVM";i.COSMOS="COSMOS";i.RADIX="RADIX"})(h||={});var X;((A)=>{A.approve="approve";A.claim="claim";A.deposit="deposit";A.donate="donate";A.lending="lending";A.lp_action="lp_action";A.native_contract_call="native_contract_call";A.native_send="native_send";A.stake="stake";A.streaming_swap="streaming_swap";A.swap="swap";A.thorname_action="thorname_action";A.token_contract_call="token_contract_call";A.token_transfer="token_transfer";A.unknown="unknown";A.unstake="unstake"})(X||={});var F;((f)=>{f.swap="swap";f.aggregation="aggregation";f.addLiquidity="addLiquidity";f.withdrawLiquidity="withdrawLiquidity";f.addSavers="addSavers";f.withdrawSavers="withdrawSavers";f.borrow="borrow";f.repay="repay";f.name="name";f.donate="donate";f.claim="claim";f.stake="stake";f.unstake="unstake"})(F||={});var x;((E)=>{E.unknown="unknown";E.not_started="not_started";E.pending="pending";E.swapping="swapping";E.completed="completed";E.refunded="refunded";E.failed="failed"})(x||={});var w;((T)=>{T.not_started="not_started";T.starting="starting";T.broadcasted="broadcasted";T.mempool="mempool";T.inbound="inbound";T.outbound="outbound";T.swapping="swapping";T.completed="completed";T.refunded="refunded";T.partially_refunded="partially_refunded";T.dropped="dropped";T.reverted="reverted";T.replaced="replaced";T.retries_exceeded="retries_exceeded";T.parsing_error="parsing_error"})(w||={});var Te=t.object({address:t.optional(t.string()),chain:t.z.enum(C.Chain).optional(),chainId:t.z.enum(C.ChainId),coingeckoId:t.optional(t.string()),decimals:t.coerce.number(),extensions:t.optional(t.z.looseObject({})),identifier:t.string(),logoURI:t.optional(t.string()),name:t.optional(t.string()),shortCode:t.optional(t.string()),symbol:t.optional(t.string()),ticker:t.string()}),Ne=t.z.object({block:t.z.optional(t.z.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:t.z.optional(t.z.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:t.z.optional(t.z.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:t.z.optional(t.z.string().describe("Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`"))}).refine((e)=>e.hash&&e.chainId||e.depositChannelId,{message:"Either `hash` and `chainId` or `depositChannelId` must be provided"}),fe=t.z.object({forceUpdate:t.z.string().toLowerCase().transform((e)=>e==="true").pipe(t.z.boolean()).optional()}),de=t.object({error:t.string(),message:t.string()}),I=t.object({address:t.optional(t.string()),chain:t.z.enum(C.Chain),decimal:t.optional(t.number()),isGasAsset:t.boolean(),isSynthetic:t.boolean(),symbol:t.string(),tax:t.optional(t.object({buy:t.number(),sell:t.number()})),ticker:t.string()}),mt=t.object({id:t.string(),market_cap:t.number(),name:t.string(),price_change_24h_usd:t.number(),price_change_percentage_24h_usd:t.number(),sparkline_in_7d:t.array(t.number()),timestamp:t.string(),total_volume:t.number()}),k=t.array(t.object({cg:mt.optional(),identifier:t.string(),price_usd:t.number(),provider:t.string(),timestamp:t.number()}).partial()),Ee=t.object({affiliate:t.optional(t.string().describe("Affiliate thorname")),affiliateFee:t.optional(t.number().describe("Affiliate fee in basis points").refine((e)=>e===Math.floor(e)&&e>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractReceiver:t.optional(t.boolean().describe("Allow smart contract as recipient")),allowSmartContractSender:t.optional(t.boolean().describe("Allow smart contract as sender")),buyAsset:t.string().describe("Asset to buy"),cfBoost:t.optional(t.boolean().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:t.optional(t.string().describe("Address to send asset to")),disableSecurityChecks:t.optional(t.boolean().describe("Disable security checks")),dry:t.optional(t.boolean().describe("Set to false to include an transaction object")),providers:t.optional(t.array(t.string().describe("List of providers to use").refine((e)=>N.ProviderName[e]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:t.optional(t.string().describe("Referrer address (referral program)")),refundAddress:t.optional(t.string().describe("Address to refund")),sellAmount:t.string().describe("Amount of asset to sell").refine((e)=>+e>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:t.string().describe("Asset to sell"),slippage:t.optional(t.number().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:t.optional(t.string().describe("Address to send asset from"))}).refine((e)=>e.sellAsset!==e.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),He=t.object({metadata:t.boolean(),tokens:t.array(t.object({identifier:t.string()}))}),K=t.object({destinationAddress:t.string()}),gt=K.extend({affiliateFees:t.array(t.object({brokerAddress:t.string(),feeBps:t.number()})).optional(),brokerCommissionBps:t.number().optional(),buyAsset:t.object({asset:t.string(),chain:t.string()}),channelMetadata:t.object({cfParameters:t.string().optional(),gasBudget:t.string().optional(),message:t.string().optional()}).optional(),dcaParameters:t.object({chunkInterval:t.number().optional(),numberOfChunks:t.number().optional()}).optional(),maxBoostFeeBps:t.number().optional(),refundParameters:t.object({minPrice:t.string().optional(),refundAddress:t.string().optional(),retryDuration:t.number().optional()}).optional(),sellAsset:t.object({asset:t.string(),chain:t.string()})}),z=t.object({channelId:t.string(),depositAddress:t.string()}),V=K.extend({affiliateFees:t.object({feeBps:t.number(),nearId:t.string()}).optional(),buyAsset:t.string(),sellAmount:t.string(),sellAsset:t.string(),slippage:t.coerce.number(),sourceAddress:t.string()}),ut=t.object({amountIn:t.string(),amountInFormatted:t.string(),amountInUsd:t.string(),amountOut:t.string(),amountOutFormatted:t.string(),amountOutUsd:t.string(),deadline:t.string().optional(),minAmountIn:t.string(),minAmountOut:t.string(),timeEstimate:t.number().optional(),timeWhenInactive:t.string().optional()}),be=ut.extend({depositAddress:t.string(),quote:ut,signature:t.string(),timestamp:t.string(),tx:t.unknown()}),W=t.object({buyAsset:t.string(),buyAssetAmount:t.string(),buyAssetAmountMaxSlippage:t.string(),deadline:t.string().optional(),depositAddress:t.string(),depositAmount:t.string(),depositAsset:t.string(),tx:t.unknown()}),Ce=t.object({evmCalldata:t.z.optional(t.z.string()),intentHash:t.z.optional(t.z.string()),logs:t.z.optional(t.z.unknown()),manifest:t.z.optional(t.z.unknown()),memo:t.z.optional(t.z.string()),spender:t.z.optional(t.z.string()),thorname:t.z.optional(t.z.string())}),Se=t.object({currentStage:t.string(),inboundConfirmation:t.number(),inboundObservation:t.number(),outboundDelay:t.number(),outboundObservation:t.number(),streamingSwap:t.number()}),Re=t.object({count:t.optional(t.number()),interval:t.optional(t.number()),quantity:t.optional(t.number()),subSwapsMap:t.optional(t.array(t.number()))}),Oe=t.z.object({currentLegIndex:t.z.optional(t.z.number()),estimatedTimeToComplete:t.z.number(),estimates:t.z.optional(Se),providerDetails:t.z.optional(t.z.object({streamingDetails:t.z.optional(Re)}))}),Ie=t.object({affiliate:t.optional(I),liquidity:t.optional(I),network:t.optional(I),protocol:t.optional(I),tax:t.optional(I)}),Le=t.object({affiliate:t.string(),bps:t.string(),isReferrer:t.boolean()}),le=t.object({affiliate:t.optional(t.string()),affiliateFees:t.optional(t.array(Le)),broadcastedAt:t.optional(t.number()),explorerUrl:t.optional(t.string()),fees:t.optional(Ie),images:t.optional(t.object({chain:t.optional(t.string()),from:t.optional(t.string()),provider:t.optional(t.string()),to:t.optional(t.string())})),provider:t.optional(t.z.enum(N.ProviderName)),providerAction:t.z.optional(t.z.enum(F)),wallet:t.optional(t.string())}),l=t.z.object({block:t.z.number(),chainId:t.z.enum(C.ChainId),finalAddress:t.z.optional(t.z.string()),finalAsset:t.z.optional(I),finalisedAt:t.z.number(),fromAddress:t.z.string(),fromAmount:t.z.string(),fromAsset:t.z.string(),hash:t.z.string(),meta:t.z.optional(le),payload:t.z.optional(Ce),status:t.z.enum(x),toAddress:t.z.string(),toAmount:t.z.string(),toAsset:t.z.string(),trackingStatus:t.z.optional(t.z.enum(w)),transient:t.z.optional(Oe),type:t.z.enum(X)}),Q=l.extend({legs:t.z.array(l)}),Pe=l.extend({legs:t.array(l)}),De=l.extend({legs:t.array(l)}),Z=t.array(t.object({amount:t.string(),asset:t.string(),chain:t.string(),protocol:t.z.enum(N.ProviderName),type:t.z.enum(N.FeeTypeEnum)})),j=t.z.object({inbound:t.z.optional(t.z.number().describe("Time to receive inbound asset in seconds")),outbound:t.z.optional(t.z.number().describe("Time to receive outbound asset in seconds")),swap:t.z.optional(t.z.number().describe("Time to swap assets in seconds")),total:t.z.number().describe("Total time in seconds")}),At=t.object({data:t.string().describe("Data to send"),from:t.string().describe("Address of the sender"),to:t.string().describe("Address of the recipient"),value:t.string().describe("Value to send")}),ct=t.array(t.union([t.string(),t.number(),t.array(t.string()),t.object({from:t.string(),value:t.string()}).describe("Parameters to pass to the contract method")])),he=t.object({approvalSpender:t.optional(t.string().describe("Address of the spender to approve")),approvalToken:t.optional(t.string().describe("Address of the token to approve spending of")),contractAddress:t.string().describe("Address of the contract to interact with"),contractMethod:t.string().describe("Name of the method to call"),contractParamNames:t.array(t.string().describe("Names of the parameters to pass to the contract method")),contractParams:ct}),ye=t.object({typeUrl:t.string(),value:t.unknown()}),pe=t.object({amount:t.array(t.object({amount:t.string(),denom:t.string()})),gas:t.string()}),Tt=t.object({accountNumber:t.number(),chainId:t.z.enum(C.ChainId),fee:pe,memo:t.string(),msgs:t.array(ye),sequence:t.number()}),Nt=t.object({affiliate:t.string().describe("Affiliate address").optional(),affiliateFee:t.number().describe("Affiliate fee").optional(),buyAsset:t.string().describe("Asset to buy"),destinationAddress:t.string().describe("Destination address"),estimatedTime:j.optional(),provider:t.z.enum(N.ProviderName),sellAsset:t.string().describe("Asset to sell"),slipPercentage:t.number().describe("Slippage as a percentage"),sourceAddress:t.string().describe("Source address")}),Me=Nt.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),ft=t.object({asset:t.string().describe("Asset name"),image:t.string().describe("Asset image"),price:t.number().describe("Price in USD")}),dt=gt,Et=t.object({assets:t.optional(t.array(ft)),maxStreamingQuantity:t.number().optional(),referrer:t.string().optional(),streamingInterval:t.number().optional(),tags:t.array(t.z.enum(U)).optional()}),Ht=Et.extend({affiliate:t.optional(t.string()),affiliateFee:t.optional(t.string()),approvalAddress:t.optional(t.string().describe("Approval address for swap")),chainflip:dt.optional(),garden:V.optional(),near:V.optional(),priceImpact:t.optional(t.number().describe("Price impact")),referrer:t.optional(t.string()),txType:t.optional(t.z.enum(h))}),bt=t.array(t.object({code:t.z.enum(N.WarningCodeEnum),display:t.string(),tooltip:t.string().optional()})),_e=t.object({buyAmount:t.string().describe("Buy amount"),buyAmountMaxSlippage:t.string().describe("Buy amount max slippage"),buyAsset:t.string().describe("Asset to buy"),fees:t.optional(Z),provider:t.z.enum(N.ProviderName),sellAmount:t.string().describe("Sell amount"),sellAsset:t.string().describe("Asset to sell")}),y=t.object({buyAsset:t.string().describe("Asset to buy"),destinationAddress:t.optional(t.string().describe("Destination address")),estimatedTime:t.optional(j),expectedBuyAmount:t.string().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:t.optional(t.string().describe("Expected Buy amount max slippage")),expiration:t.optional(t.string().describe("Expiration")),fees:Z,inboundAddress:t.optional(t.string().describe("Inbound address")),legs:t.optional(t.array(_e)),memo:t.optional(t.string().describe("Memo")),meta:t.optional(Ht),providers:t.array(t.z.enum(N.ProviderName)),refundAddress:t.optional(t.string().describe("Refund address")),sellAmount:t.string().describe("Sell amount"),sellAsset:t.string().describe("Asset to sell"),sourceAddress:t.optional(t.string().describe("Source address")),targetAddress:t.optional(t.string().describe("Target address")),tx:t.optional(t.union([At,Tt,t.string()])),txType:t.optional(t.z.enum(h)),warnings:t.optional(bt)}),J=t.object({error:t.optional(t.string().describe("Error message")),providerErrors:t.optional(t.array(t.object({errorCode:t.optional(t.z.enum(N.ErrorCode)),message:t.optional(t.string()),provider:t.z.enum(N.ProviderName).optional()}))),routes:t.array(y)}),q=t.z.object({chainId:t.z.enum(C.ChainId),createdAt:t.z.date(),id:t.z.number(),unit:t.z.string(),value:t.z.string()}),Be=t.z.array(q),tt=t.z.union([q,Be]),tn=t.array(t.object({chain:t.z.enum(C.Chain),decimal:t.number(),identifier:t.string(),symbol:t.string(),ticker:t.string(),value:t.string()}));var H=u.RequestClient.extend({dynamicHeader:()=>{let{uSwap:e}=u.USwapConfig.get("apiKeys");return e?{"x-api-key":e}:{}}});async function $e(e,s){let n=await H.post(b("/track"),{json:e,...s});try{let r=Q.safeParse(n);if(!r.success)throw new u.USwapError("api_v2_invalid_response",r.error);return r.data}catch(r){return n}}async function ve(e,s){let{getQuote:n}=u.USwapConfig.get("endpoints");if(n)return n(e);let r=await H.post(b("/quote"),{json:e,...s});if(r.error)throw new u.USwapError("api_v2_server_error",{message:r.error});try{let i=J.safeParse(r);if(!i.success)throw new u.USwapError("api_v2_invalid_response",i.error);return i.data}catch{return r}}async function Ge(e){let{getRouteWithTx:s}=u.USwapConfig.get("endpoints");if(s)return s(e);let n=await H.post(b("/swap"),{json:e});try{let r=y.safeParse(n);if(!r.success)throw new u.USwapError("api_v2_invalid_response",r.error);return r.data}catch(r){return console.error(new u.USwapError("api_v2_invalid_response",r)),n}}async function Ye({chain:e,address:s,scamFilter:n=!0}){let{getBalance:r}=u.USwapConfig.get("endpoints");if(r)return r({address:s,chain:e});let i=b(`/balance?chain=${e}&address=${s}`),c=await H.get(i),m=Array.isArray(c)?c:[];return n?ze(m):m}function Ve(){let e=b("/providers");return H.get(e)}function Ue(e){let s=b(`/tokens?provider=${e}`);return H.get(s)}async function Xe(e){let s=b("/price"),n=await H.post(s,{json:e});try{let r=k.safeParse(n);if(!r.success)throw new u.USwapError("api_v2_invalid_response",r.error);return r.data}catch(r){throw new u.USwapError("api_v2_invalid_response",r)}}async function Fe(){let e=b("/gas"),s=await H.get(e);try{let n=tt.safeParse(s);if(!n.success)throw new u.USwapError("api_v2_invalid_response",n.error);return Array.isArray(n)?n:[n]}catch(n){throw new u.USwapError("api_v2_invalid_response",n)}}async function xe(e){let{destinationAddress:s}=e;if(!s)throw new u.USwapError("chainflip_broker_invalid_params");let n=u.USwapConfig.get("integrations").chainflip?.brokerUrl||b("/chainflip/broker/channel"),r=await H.post(n,{json:e});try{let i=z.safeParse(r);if(!i.success)throw new u.USwapError("api_v2_invalid_response",i.error);return i.data}catch(i){throw new u.USwapError("api_v2_invalid_response",i)}}async function we(e){let{destinationAddress:s}=e;if(!s)throw new u.USwapError("chainflip_broker_invalid_params");let n=b("/near/channel"),r=await H.post(n,{json:e});try{let i=W.safeParse(r);if(!i.success)throw new u.USwapError("api_v2_invalid_response",i.error);return i.data}catch(i){throw new u.USwapError("api_v2_invalid_response",i)}}function b(e){let{isDev:s,apiUrl:n,devApiUrl:r,experimental_apiUrlQuote:i,experimental_apiUrlSwap:c}=u.USwapConfig.get("envs"),m=`${s?r:n}${e}`;return P.match({experimental_apiUrlQuote:i,experimental_apiUrlSwap:c,path:e}).with({experimental_apiUrlQuote:P.P.string.startsWith("http"),path:"/quote"},({experimental_apiUrlQuote:E,path:p})=>`${E}${p}`).with({experimental_apiUrlSwap:P.P.string.startsWith("http"),path:"/swap"},({experimental_apiUrlSwap:E,path:p})=>`${E}${p}`).otherwise(()=>m)}function ke(e){let[s,n]=e.split(".");if(!u.EVMChains.includes(s))return!0;let r=n.split("-"),i=r.length===1?void 0:r[r.length-1];return u.isGasAsset({chain:s,symbol:n})||!!i}var Ke=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi");function ze(e){return e.filter((s)=>{return!Ke.test(s.identifier)&&ke(s.identifier)})}var Qe={...et,...G,mayachainMidgard:ot,thorchainMidgard:it,thornode:Y};
|
|
2
|
+
|
|
3
|
+
//# debugId=1675BA65EA0768AF64756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/api/memoless/endpoints.ts", "../src/api/memoless/types.ts", "../src/api/midgard/endpoints.ts", "../src/api/thornode/endpoints.ts", "../src/api/uswap/endpoints.ts", "../src/api/uswap/types.ts", "../src/api/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { RequestClient, type RequestOptions, USwapConfig, USwapError } from \"@tcswap/helpers\";\nimport {\n type MemolessAssetsResponse,\n type PreflightRequest,\n type PreflightResult,\n PreflightResultSchema,\n type RegistrationRequest,\n type RegistrationResponse,\n RegistrationResponseSchema,\n} from \"./types\";\n\nconst USwapRequestClient = RequestClient.extend({\n dynamicHeader: () => {\n const { memoless } = USwapConfig.get(\"apiKeys\");\n return memoless ? { \"x-api-key\": memoless } : {};\n },\n});\n\nexport function getMemolessAssets(options?: RequestOptions) {\n return USwapRequestClient.get<MemolessAssetsResponse>(getApiUrl(\"/assets\"), { ...options });\n}\n\nexport async function registerMemoless(json: RegistrationRequest, options?: RequestOptions) {\n const apiUrl = getApiUrl(\"/register\");\n const response = await USwapRequestClient.post<RegistrationResponse>(apiUrl, { json, ...options });\n\n try {\n const parsedResponse = RegistrationResponseSchema.safeParse(response);\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n return response;\n }\n}\n\nexport async function preflightMemoless(json: PreflightRequest, options?: RequestOptions) {\n const apiUrl = getApiUrl(\"/preflight\");\n const response = await USwapRequestClient.post<PreflightResult>(apiUrl, { json, ...options });\n\n try {\n const parsedResponse = PreflightResultSchema.safeParse(response);\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n return response;\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { memolessApiUrl } = USwapConfig.get(\"envs\");\n return `${memolessApiUrl}${path}`;\n}\n",
|
|
6
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { array, coerce, object, optional, z } from \"zod/v4\";\n\nexport const MemolessAssetItem = z.object({\n asset: z.string(),\n balanceRune: z.number(),\n decimals: coerce.number(),\n isToken: z.boolean(),\n priceUSD: z.number(),\n status: z.string(),\n});\n\nexport const MemolessAssetsSchema = z.object({\n assets: array(MemolessAssetItem),\n error: optional(object({ code: z.string(), details: z.string(), message: z.string() })),\n success: z.boolean(),\n});\n\nexport type MemolessAsset = z.infer<typeof MemolessAssetItem>;\nexport type MemolessAssetsResponse = z.infer<typeof MemolessAssetsSchema>;\n\nexport const RegistrationRequestSchema = z.object({\n asset: z.string(),\n memo: z.string(),\n requested_in_asset_amount: z.optional(z.string()).or(z.number()),\n});\n\nexport type RegistrationRequest = z.infer<typeof RegistrationRequestSchema>;\n\nexport const RegistrationResponseSchema = z.object({\n asset: z.string(),\n decimals: z.number(),\n height: z.string(),\n internal_api_id: z.string(),\n memo: z.string(),\n minimum_amount_to_send: z.string(),\n reference: z.string(),\n reference_length: z.number(),\n registered_by: z.string(),\n registration_hash: z.string(),\n success: z.boolean(),\n suggested_in_asset_amount: z.optional(z.string()),\n txHash: z.string(),\n});\n\nexport type RegistrationResponse = z.infer<typeof RegistrationResponseSchema>;\n\nexport enum PreflightInputType {\n asset = \"asset\",\n usd = \"usd\",\n}\n\nexport const PreflightRequestSchema = z.object({\n amount: z.string(),\n asset: optional(z.string()),\n inputType: optional(z.enum(PreflightInputType)),\n internal_api_id: optional(z.string()),\n reference: optional(z.string()),\n});\n\nexport type PreflightRequest = z.infer<typeof PreflightRequestSchema>;\n\nexport const PreflightResultSchema = z.object({\n data: z.object({\n blocks_remaining: z.number(),\n current_uses: z.number(),\n inbound_address: optional(z.string()),\n max_uses: z.number(),\n memo: optional(z.string()),\n qr_code: optional(z.string()),\n qr_code_data_url: optional(z.string()),\n seconds_remaining: z.number(),\n time_remaining: z.string(),\n }),\n error: optional(z.object({ code: z.string(), message: z.string() })),\n message: z.string(),\n success: z.boolean(),\n});\n\nexport type PreflightResult = z.infer<typeof PreflightResultSchema>;\n",
|
|
7
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, RequestClient, USwapNumber } from \"@tcswap/helpers\";\nimport { Chain, getChainConfig, type TCLikeChain } from \"@tcswap/types\";\nimport type {\n Action,\n ActionQuery,\n Balance,\n Constants,\n DepthHistory,\n EarningsHistory,\n HealthInfo,\n HistoryQuery,\n MemberDetailsMayachain,\n MemberDetailsThorchain,\n MimirVote,\n NetworkInfo,\n Node,\n PagedResponse,\n Pool,\n PoolStats,\n SaverDetails,\n SaversHistory,\n Stats,\n SwapHistory,\n THORNameDetails,\n TVLHistory,\n} from \"./types\";\n\nfunction getMidgardBaseUrl(isThorchain = true) {\n return isThorchain ? \"https://midgard.ninerealms.com\" : \"https://midgard.mayachain.info\";\n}\n\nfunction getNameServiceBaseUrl(isThorchain = true) {\n const baseUrl = getMidgardBaseUrl(isThorchain);\n return isThorchain ? `${baseUrl}/v2/thorname` : `${baseUrl}/v2/mayaname`;\n}\n\nfunction getPools(baseUrl: string) {\n return function getPools(status?: string): Promise<Pool[]> {\n const params = status ? `?status=${status}` : \"\";\n return RequestClient.get<Pool[]>(`${baseUrl}/v2/pools${params}`);\n };\n}\n\nfunction getPool(baseUrl: string) {\n return function getPool(asset: string): Promise<Pool> {\n return RequestClient.get<Pool>(`${baseUrl}/v2/pool/${asset}`);\n };\n}\n\nfunction getPoolStats(baseUrl: string) {\n return function getPoolStats(asset: string, period?: string): Promise<PoolStats> {\n const params = period ? `?period=${period}` : \"\";\n return RequestClient.get<PoolStats>(`${baseUrl}/v2/pool/${asset}/stats${params}`);\n };\n}\n\nfunction getPoolDepthHistory(baseUrl: string) {\n return function getPoolDepthHistory(asset: string, query?: HistoryQuery): Promise<DepthHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<DepthHistory>(`${baseUrl}/v2/history/depths/${asset}${queryString}`);\n };\n}\n\nfunction getNetworkInfo(baseUrl: string) {\n return function getNetworkInfo(): Promise<NetworkInfo> {\n return RequestClient.get<NetworkInfo>(`${baseUrl}/v2/network`);\n };\n}\n\nfunction getHealth(baseUrl: string) {\n return function getHealth(): Promise<HealthInfo> {\n return RequestClient.get<HealthInfo>(`${baseUrl}/v2/health`);\n };\n}\n\nfunction getNodes(baseUrl: string) {\n return function getNodes(): Promise<Node[]> {\n return RequestClient.get<Node[]>(`${baseUrl}/v2/nodes`);\n };\n}\n\nfunction getNode(baseUrl: string) {\n return function getNode(address: string): Promise<Node> {\n return RequestClient.get<Node>(`${baseUrl}/v2/node/${address}`);\n };\n}\n\nfunction getMimirVotes(baseUrl: string) {\n return function getMimirVotes(): Promise<MimirVote[]> {\n return RequestClient.get<MimirVote[]>(`${baseUrl}/v2/mimir/votes`);\n };\n}\n\nfunction getMimir(baseUrl: string) {\n return function getMimir(): Promise<Record<string, string>> {\n return RequestClient.get<Record<string, string>>(`${baseUrl}/v2/mimir`);\n };\n}\n\nfunction getConstants(baseUrl: string) {\n return function getConstants(): Promise<Constants> {\n return RequestClient.get<Constants>(`${baseUrl}/v2/constants`);\n };\n}\n\nfunction getStats(baseUrl: string) {\n return function getStats(): Promise<Stats> {\n return RequestClient.get<Stats>(`${baseUrl}/v2/stats`);\n };\n}\n\nfunction getEarningsHistory(baseUrl: string) {\n return function getEarningsHistory(query?: HistoryQuery): Promise<EarningsHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<EarningsHistory>(`${baseUrl}/v2/history/earnings${queryString}`);\n };\n}\n\nfunction getSwapHistory(baseUrl: string) {\n return function getSwapHistory(pool?: string, query?: HistoryQuery): Promise<SwapHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n const poolPath = pool ? `/swaps/${pool}` : \"/swaps\";\n return RequestClient.get<SwapHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);\n };\n}\n\nfunction getTVLHistory(baseUrl: string) {\n return function getTVLHistory(query?: HistoryQuery): Promise<TVLHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<TVLHistory>(`${baseUrl}/v2/history/tvl${queryString}`);\n };\n}\n\nfunction buildActionParams(query?: ActionQuery): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n const appendParam = (key: keyof ActionQuery, value: any) => {\n if (value !== undefined) {\n params.append(key, typeof value === \"number\" ? value.toString() : value);\n }\n };\n appendParam(\"address\", query.address);\n appendParam(\"txid\", query.txid);\n appendParam(\"asset\", query.asset);\n appendParam(\"type\", query.type);\n appendParam(\"affiliate\", query.affiliate);\n appendParam(\"limit\", query.limit);\n appendParam(\"offset\", query.offset);\n return params.toString() ? `?${params.toString()}` : \"\";\n}\n\nfunction getActions(baseUrl: string) {\n return function getActions(query?: ActionQuery): Promise<PagedResponse<Action>> {\n const queryString = buildActionParams(query);\n return RequestClient.get<PagedResponse<Action>>(`${baseUrl}/v2/actions${queryString}`);\n };\n}\n\nfunction getLiquidityPositionRaw<Chain extends TCLikeChain>(baseUrl: string) {\n return function getLiquidityPosition(\n address: string,\n ): Promise<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain> {\n return RequestClient.get<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain>(\n `${baseUrl}/v2/member/${address}`,\n );\n };\n}\n\nfunction getMembers(baseUrl: string) {\n return function getMembers(pool?: string): Promise<string[]> {\n const poolPath = pool ? `/${pool}` : \"\";\n return RequestClient.get<string[]>(`${baseUrl}/v2/members${poolPath}`);\n };\n}\n\nfunction getSaverDetails(baseUrl: string) {\n return function getSaverDetails(address: string, pool?: string): Promise<SaverDetails[]> {\n const poolPath = pool ? `&asset=${pool}` : \"\";\n return RequestClient.get<SaverDetails[]>(\n `${baseUrl}/v2/saver/${address}${poolPath ? `?${poolPath.substring(1)}` : \"\"}`,\n );\n };\n}\n\nfunction getSavers(baseUrl: string) {\n return function getSavers(pool: string): Promise<string[]> {\n return RequestClient.get<string[]>(`${baseUrl}/v2/savers/${pool}`);\n };\n}\n\nfunction getSaversHistory(baseUrl: string) {\n return function getSaversHistory(pool?: string, query?: HistoryQuery): Promise<SaversHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n const poolPath = pool ? `/savers/${pool}` : \"/savers\";\n return RequestClient.get<SaversHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);\n };\n}\n\nfunction getBalance(baseUrl: string) {\n return function getBalance(address: string): Promise<Balance[]> {\n return RequestClient.get<Balance[]>(`${baseUrl}/v2/balance/${address}`);\n };\n}\n\nfunction getNameDetails(baseUrl: string) {\n return async function getNamesByAddress(name: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return undefined;\n }\n throw error;\n };\n return await RequestClient.get<THORNameDetails>(`${baseUrl}/lookup/${name}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getNamesByAddress(baseUrl: string) {\n return async function getNamesByAddress(address: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return [];\n }\n throw error;\n };\n return await RequestClient.get<string[]>(`${baseUrl}/rlookup/${address}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getNamesByOwner(baseUrl: string) {\n return async function getNamesByOwner(address: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return [];\n }\n throw error;\n };\n return await RequestClient.get<string[]>(`${baseUrl}/owner/${address}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getPoolAsset({ asset, value }: { asset: string; value: string }) {\n return AssetValue.from({ asset, fromBaseDecimal: getChainConfig(Chain.THORChain).baseDecimal, value });\n}\n\nfunction getLiquidityPosition<IsThorchain extends boolean = true>({\n liquidityPositionGetter,\n isThorchain,\n}: {\n liquidityPositionGetter: ReturnType<\n typeof getLiquidityPositionRaw<IsThorchain extends true ? typeof Chain.THORChain : typeof Chain.Maya>\n >;\n isThorchain: IsThorchain;\n}) {\n return async function getLiquidityPosition(address: string) {\n const rawLiquidityPositions = await liquidityPositionGetter(address);\n const fieldPrefix = isThorchain ? \"rune\" : \"cacao\";\n\n return rawLiquidityPositions.pools.map((p) => ({\n [`${fieldPrefix}Pending`]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runePending }),\n [`${fieldPrefix}RegisteredAddress`]: p.runeAddress,\n [`${fieldPrefix}Withdrawn`]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runeWithdrawn }),\n [fieldPrefix]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runeAdded }),\n asset: getPoolAsset({ asset: p.pool, value: p.assetAdded }),\n assetPending: getPoolAsset({ asset: p.pool, value: p.assetPending }),\n assetRegisteredAddress: p.assetAddress,\n assetWithdrawn: getPoolAsset({ asset: p.pool, value: p.assetWithdrawn }),\n dateFirstAdded: p.dateFirstAdded,\n dateLastAdded: p.dateLastAdded,\n poolShare: new USwapNumber(p.liquidityUnits).div(p.pool),\n }));\n };\n}\n\nfunction getMidgardMethodsForProtocol<T extends TCLikeChain>(chain: T) {\n const isThorchain = chain === Chain.THORChain;\n const midgardBaseUrl = getMidgardBaseUrl(isThorchain);\n const nameServiceBaseUrl = getNameServiceBaseUrl(isThorchain);\n const liquidityPositionGetter = getLiquidityPositionRaw<T>(midgardBaseUrl);\n\n return {\n getActions: getActions(midgardBaseUrl),\n getBalance: getBalance(midgardBaseUrl),\n getConstants: getConstants(midgardBaseUrl),\n getEarningsHistory: getEarningsHistory(midgardBaseUrl),\n getHealth: getHealth(midgardBaseUrl),\n getLiquidityPosition: getLiquidityPosition({ isThorchain, liquidityPositionGetter }),\n getLiquidityPositionRaw: liquidityPositionGetter,\n getMembers: getMembers(midgardBaseUrl),\n getMimir: getMimir(midgardBaseUrl),\n getMimirVotes: getMimirVotes(midgardBaseUrl),\n getNameDetails: getNameDetails(nameServiceBaseUrl),\n getNamesByAddress: getNamesByAddress(nameServiceBaseUrl),\n getNamesByOwner: getNamesByOwner(nameServiceBaseUrl),\n getNetworkInfo: getNetworkInfo(midgardBaseUrl),\n getNode: getNode(midgardBaseUrl),\n getNodes: getNodes(midgardBaseUrl),\n getPool: getPool(midgardBaseUrl),\n getPoolDepthHistory: getPoolDepthHistory(midgardBaseUrl),\n getPoolStats: getPoolStats(midgardBaseUrl),\n getPools: getPools(midgardBaseUrl),\n getSaverDetails: getSaverDetails(midgardBaseUrl),\n getSavers: getSavers(midgardBaseUrl),\n getSaversHistory: getSaversHistory(midgardBaseUrl),\n getStats: getStats(midgardBaseUrl),\n getSwapHistory: getSwapHistory(midgardBaseUrl),\n getTVLHistory: getTVLHistory(midgardBaseUrl),\n };\n}\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
|
|
8
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, RequestClient, USwapConfig } from \"@tcswap/helpers\";\nimport { MAYAConfig, StagenetMAYAConfig, StagenetTHORConfig, THORConfig } from \"@tcswap/types\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n TCYClaimerResponse,\n TCYClaimersResponse,\n TCYStakerResponse,\n TCYStakersResponse,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\nfunction baseUrl(type?: THORNodeType) {\n const { isStagenet } = USwapConfig.get(\"envs\");\n\n switch (type) {\n case \"mayachain\": {\n const nodeUrl = isStagenet ? StagenetMAYAConfig.nodeUrl : MAYAConfig.nodeUrl;\n return `${nodeUrl}/mayachain`;\n }\n default: {\n const nodeUrl = isStagenet ? StagenetTHORConfig.nodeUrl : THORConfig.nodeUrl;\n\n return `${nodeUrl}/thorchain`;\n }\n }\n}\n\nfunction getNameServiceBaseUrl(type?: THORNodeType) {\n const nsType = type === \"mayachain\" ? \"mayaname\" : \"thorname\";\n\n return `${baseUrl(type)}/${nsType}`;\n}\n\nexport function getLastBlock<T extends THORNodeType = \"thorchain\">(type: T = \"thorchain\" as T) {\n return RequestClient.get<LastBlockItem<T>[]>(`${baseUrl(type)}/lastblock`);\n}\n\nexport function getThorchainQueue(type?: THORNodeType) {\n return RequestClient.get(`${baseUrl(type)}/queue`);\n}\n\nexport function getNodes(type?: THORNodeType) {\n return RequestClient.get<NodeItem[]>(`${baseUrl(type)}/nodes`);\n}\n\nexport function getMimirInfo(type?: THORNodeType) {\n return RequestClient.get<MimirData>(`${baseUrl(type)}/mimir`);\n}\n\nexport function getInboundAddresses(type?: THORNodeType) {\n return RequestClient.get<InboundAddressesItem[]>(`${baseUrl(type)}/inbound_addresses`);\n}\n\nexport async function getTHORNodeTNSDetails({\n type,\n name,\n}: {\n type?: THORNodeType;\n name: string;\n}): Promise<THORNodeTNSDetails> {\n try {\n const result = await RequestClient.get<THORNodeTNSDetails>(`${getNameServiceBaseUrl(type)}/${name}`);\n return result;\n } catch {\n return { affiliate_collector_rune: \"\", aliases: [], expire_block_height: 0, name, owner: \"\", preferred_asset: \"\" };\n }\n}\n\nexport async function getTNSPreferredAsset({ type, tns }: { type?: THORNodeType; tns: string }) {\n const tnsDetails = await getTHORNodeTNSDetails({ name: tns, type });\n\n if (!tnsDetails.preferred_asset || tnsDetails.preferred_asset === \".\") return undefined;\n\n return AssetValue.from({ asset: tnsDetails.preferred_asset, asyncTokenLookup: true });\n}\n\nexport function getRunePoolInfo(type?: THORNodeType) {\n return RequestClient.get<RunePoolInfo>(`${baseUrl(type)}/runepool`);\n}\n\nexport function getRunePoolProviderInfo({ type, thorAddress }: { type?: THORNodeType; thorAddress: string }) {\n return RequestClient.get<RunePoolProviderInfo>(`${baseUrl(type)}/rune_provider/${thorAddress}`);\n}\n\nexport function getTcyStaker({ type, address }: { type?: THORNodeType; address: string }) {\n return RequestClient.get<TCYStakerResponse>(`${baseUrl(type)}/tcy_staker/${address}`);\n}\n\nexport function getTcyStakers(type?: THORNodeType) {\n return RequestClient.get<TCYStakersResponse>(`${baseUrl(type)}/tcy_stakers`);\n}\n\nexport function getTcyClaimer({ type, address }: { type?: THORNodeType; address: string }) {\n return RequestClient.get<TCYClaimerResponse>(`${baseUrl(type)}/tcy_claimer/${address}`);\n}\n\nexport function getTcyClaimers(type?: THORNodeType) {\n return RequestClient.get<TCYClaimersResponse>(`${baseUrl(type)}/tcy_claimers`);\n}\n",
|
|
9
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type Chain,\n type EVMChain,\n EVMChains,\n isGasAsset,\n type ProviderName,\n RequestClient,\n type RequestOptions,\n USwapConfig,\n USwapError,\n} from \"@tcswap/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type NearDepositChannelParams,\n type NearSwapResponse,\n NearSwapResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n type QuoteResponseRoute,\n QuoteResponseRouteItem,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerResponse,\n TrackerResponseSchema,\n type TrackingRequest,\n} from \"./types\";\n\nconst USwapRequestClient = RequestClient.extend({\n dynamicHeader: () => {\n const { uSwap } = USwapConfig.get(\"apiKeys\");\n return uSwap ? { \"x-api-key\": uSwap } : {};\n },\n});\n\nexport async function getTrackerDetails(json: TrackingRequest, options?: RequestOptions) {\n const response = await USwapRequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), { json, ...options });\n\n try {\n const parsedResponse = TrackerResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n // throw new USwapError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getSwapQuote(json: QuoteRequest, options?: RequestOptions) {\n const { getQuote } = USwapConfig.get(\"endpoints\");\n\n if (getQuote) return getQuote(json);\n\n const response = await USwapRequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), { json, ...options });\n\n if (response.error) {\n throw new USwapError(\"api_v2_server_error\", { message: response.error });\n }\n\n try {\n const parsedResponse = QuoteResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch {\n // throw new USwapError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getRouteWithTx(json: { routeId: string; sourceAddress: string; destinationAddress: string }) {\n const { getRouteWithTx } = USwapConfig.get(\"endpoints\");\n\n if (getRouteWithTx) return getRouteWithTx(json);\n\n const response = await USwapRequestClient.post<QuoteResponseRoute>(getApiUrl(\"/swap\"), { json });\n\n try {\n const parsedResponse = QuoteResponseRouteItem.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n console.error(new USwapError(\"api_v2_invalid_response\", error));\n return response;\n }\n}\n\nexport async function getChainBalance<T extends Chain>({\n chain,\n address,\n scamFilter = true,\n}: {\n chain: T;\n address: string;\n scamFilter?: boolean;\n}) {\n const { getBalance } = USwapConfig.get(\"endpoints\");\n if (getBalance) return getBalance({ address, chain });\n\n const url = getApiUrl(`/balance?chain=${chain}&address=${address}`);\n const balanceResponse = await USwapRequestClient.get<BalanceResponse>(url);\n const balances = Array.isArray(balanceResponse) ? balanceResponse : [];\n return scamFilter ? filterAssets(balances) : balances;\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return USwapRequestClient.get<TokenListProvidersResponse>(url);\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return USwapRequestClient.get<TokensResponseV2>(url);\n}\n\nexport async function getPrice(body: PriceRequest) {\n const url = getApiUrl(\"/price\");\n const response = await USwapRequestClient.post<PriceResponse>(url, { json: body });\n\n try {\n const parsedResponse = PriceResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getGasRate() {\n const url = getApiUrl(\"/gas\");\n const response = await USwapRequestClient.get<GasResponse>(url);\n\n try {\n const parsedResponse = GasResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n const gasRates = Array.isArray(parsedResponse) ? parsedResponse : [parsedResponse];\n return gasRates;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getChainflipDepositChannel(body: BrokerDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new USwapError(\"chainflip_broker_invalid_params\");\n }\n const url = USwapConfig.get(\"integrations\").chainflip?.brokerUrl || getApiUrl(\"/chainflip/broker/channel\");\n\n const response = await USwapRequestClient.post<DepositChannelResponse>(url, { json: body });\n\n try {\n const parsedResponse = DepositChannelResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getNearDepositChannel(body: NearDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new USwapError(\"chainflip_broker_invalid_params\");\n }\n const url = getApiUrl(\"/near/channel\");\n\n const response = await USwapRequestClient.post<NearSwapResponse>(url, { json: body });\n\n try {\n const parsedResponse = NearSwapResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl, experimental_apiUrlQuote, experimental_apiUrlSwap } = USwapConfig.get(\"envs\");\n\n const defaultUrl = `${isDev ? devApiUrl : apiUrl}${path}`;\n\n return match({ experimental_apiUrlQuote, experimental_apiUrlSwap, path })\n .with(\n { experimental_apiUrlQuote: P.string.startsWith(\"http\"), path: \"/quote\" },\n ({ experimental_apiUrlQuote, path }) => `${experimental_apiUrlQuote}${path}`,\n )\n .with(\n { experimental_apiUrlSwap: P.string.startsWith(\"http\"), path: \"/swap\" },\n ({ experimental_apiUrlSwap, path }) => `${experimental_apiUrlSwap}${path}`,\n )\n .otherwise(() => defaultUrl);\n}\n\nfunction evmAssetHasAddress(assetString: string) {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const splitSymbol = symbol.split(\"-\");\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n}\n\nconst potentialScamRegex = new RegExp(/(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/, \"gmi\");\nfunction filterAssets(tokens: BalanceResponse) {\n return tokens.filter((token) => {\n return !potentialScamRegex.test(token.identifier) && evmAssetHasAddress(token.identifier);\n });\n}\n",
|
|
10
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { ErrorCode, FeeTypeEnum, ProviderName, WarningCodeEnum } from \"@tcswap/helpers\";\nimport { Chain, ChainId } from \"@tcswap/types\";\nimport { array, boolean, coerce, number, object, optional, string, union, unknown, type ZodType, z } from \"zod/v4\";\n\nexport enum PriorityLabel {\n CHEAPEST = \"CHEAPEST\",\n FASTEST = \"FASTEST\",\n RECOMMENDED = \"RECOMMENDED\",\n}\n\nexport enum RouteQuoteTxType {\n PSBT = \"PSBT\",\n EVM = \"EVM\",\n COSMOS = \"COSMOS\",\n RADIX = \"RADIX\",\n}\n\nexport enum TxnType {\n approve = \"approve\",\n claim = \"claim\",\n deposit = \"deposit\",\n donate = \"donate\",\n lending = \"lending\",\n lp_action = \"lp_action\",\n native_contract_call = \"native_contract_call\",\n native_send = \"native_send\",\n stake = \"stake\",\n streaming_swap = \"streaming_swap\",\n swap = \"swap\",\n thorname_action = \"thorname_action\",\n token_contract_call = \"token_contract_call\",\n token_transfer = \"token_transfer\",\n unknown = \"unknown\",\n unstake = \"unstake\",\n}\n\nexport enum ProviderAction {\n swap = \"swap\",\n aggregation = \"aggregation\",\n addLiquidity = \"addLiquidity\",\n withdrawLiquidity = \"withdrawLiquidity\",\n addSavers = \"addSavers\",\n withdrawSavers = \"withdrawSavers\",\n borrow = \"borrow\",\n repay = \"repay\",\n name = \"name\",\n donate = \"donate\",\n claim = \"claim\",\n stake = \"stake\",\n unstake = \"unstake\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\n refunded = \"refunded\",\n failed = \"failed\",\n}\n\nexport enum TrackingStatus {\n not_started = \"not_started\",\n starting = \"starting\",\n broadcasted = \"broadcasted\",\n mempool = \"mempool\",\n inbound = \"inbound\",\n outbound = \"outbound\",\n swapping = \"swapping\",\n completed = \"completed\",\n refunded = \"refunded\",\n partially_refunded = \"partially_refunded\",\n dropped = \"dropped\",\n reverted = \"reverted\",\n replaced = \"replaced\",\n retries_exceeded = \"retries_exceeded\",\n parsing_error = \"parsing_error\",\n}\n\ntype TokenProviderVersion = { major: number; minor: number; patch: number };\n\nexport type TokenListProvidersResponse = Array<{\n provider: ProviderName;\n name: string;\n timestamp: string;\n version: TokenProviderVersion;\n keywords: string[];\n count: number;\n url: string;\n}>;\n\nexport type TokensResponseV2 = {\n chainId: ChainId;\n count: number;\n keywords: string[];\n name: string;\n provider: ProviderName;\n timestamp: string;\n tokens: Token[];\n version: TokenProviderVersion;\n};\n\nexport const TokenSchema = object({\n address: optional(string()),\n chain: z.enum(Chain).optional(),\n chainId: z.enum(ChainId),\n coingeckoId: optional(string()),\n decimals: coerce.number(),\n extensions: optional(z.looseObject({})),\n identifier: string(),\n logoURI: optional(string()),\n name: optional(string()),\n shortCode: optional(string()),\n symbol: optional(string()),\n ticker: string(),\n});\n\nexport type Token = z.infer<typeof TokenSchema>;\n\nexport const TrackingRequestSchema = z\n .object({\n block: z.optional(z.number().describe(\"Block number. Required for Polkadot chain. e.g. `123456`\")),\n chainId: z.optional(z.string().describe(\"ChainId for the hash. e.g. `thorchain-1`\")),\n depositChannelId: z.optional(\n z.string().describe(\"Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection\"),\n ),\n hash: z.optional(\n z\n .string()\n .describe(\n \"Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`\",\n ),\n ),\n })\n .refine((data) => (data.hash && data.chainId) || data.depositChannelId, {\n message: \"Either `hash` and `chainId` or `depositChannelId` must be provided\",\n });\n\nexport const TrackingRequestQuerySchema = z.object({\n forceUpdate: z\n .string()\n .toLowerCase()\n .transform((x) => x === \"true\")\n .pipe(z.boolean())\n .optional(),\n});\n\nexport type TrackingRequest = z.infer<typeof TrackingRequestSchema>;\n\nexport const ApiV2ErrorSchema = object({ error: string(), message: string() });\n\nexport const AssetValueSchema = object({\n address: optional(string()),\n chain: z.enum(Chain),\n decimal: optional(number()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n symbol: string(),\n tax: optional(object({ buy: number(), sell: number() })),\n ticker: string(),\n});\n\nexport const TokenDetailsMetadataSchema = object({\n id: string(),\n market_cap: number(),\n name: string(),\n price_change_24h_usd: number(),\n price_change_percentage_24h_usd: number(),\n sparkline_in_7d: array(number()),\n timestamp: string(),\n total_volume: number(),\n});\n\nexport const PriceResponseSchema = array(\n object({\n cg: TokenDetailsMetadataSchema.optional(),\n identifier: string(),\n price_usd: number(),\n provider: string(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n affiliate: optional(string().describe(\"Affiliate thorname\")),\n affiliateFee: optional(\n number()\n .describe(\"Affiliate fee in basis points\")\n .refine((fee) => fee === Math.floor(fee) && fee >= 0, {\n message: \"affiliateFee must be a positive integer\",\n path: [\"affiliateFee\"],\n }),\n ),\n allowSmartContractReceiver: optional(boolean().describe(\"Allow smart contract as recipient\")),\n allowSmartContractSender: optional(boolean().describe(\"Allow smart contract as sender\")),\n buyAsset: string().describe(\"Asset to buy\"),\n cfBoost: optional(boolean().describe(\"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\")),\n destinationAddress: optional(string().describe(\"Address to send asset to\")),\n disableSecurityChecks: optional(boolean().describe(\"Disable security checks\")),\n dry: optional(boolean().describe(\"Set to false to include an transaction object\")),\n providers: optional(\n array(\n string()\n .describe(\"List of providers to use\")\n .refine((provider) => ProviderName[provider as ProviderName] !== undefined, {\n message: \"Invalid provider\",\n path: [\"providers\"],\n }),\n ),\n ),\n referrer: optional(string().describe(\"Referrer address (referral program)\")),\n refundAddress: optional(string().describe(\"Address to refund\")),\n sellAmount: string()\n .describe(\"Amount of asset to sell\")\n .refine((amount) => +amount > 0, { message: \"sellAmount must be greater than 0\", path: [\"sellAmount\"] }),\n sellAsset: string().describe(\"Asset to sell\"),\n slippage: optional(number().describe(\"Slippage tolerance as a percentage. Default is 3%.\")),\n sourceAddress: optional(string().describe(\"Address to send asset from\")),\n}).refine((data) => data.sellAsset !== data.buyAsset, {\n message: \"Must be different\",\n path: [\"sellAsset\", \"buyAsset\"],\n});\n\nexport type QuoteRequest = z.infer<typeof QuoteRequestSchema>;\n\nexport const PriceRequestSchema = object({ metadata: boolean(), tokens: array(object({ identifier: string() })) });\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const DepositChannelParamsSchema = object({ destinationAddress: string() });\n\nexport const BrokerDepositChannelParamsSchema = DepositChannelParamsSchema.extend({\n affiliateFees: array(object({ brokerAddress: string(), feeBps: number() })).optional(),\n brokerCommissionBps: number().optional(),\n buyAsset: object({ asset: string(), chain: string() }),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n dcaParameters: object({ chunkInterval: number().optional(), numberOfChunks: number().optional() }).optional(),\n maxBoostFeeBps: number().optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n sellAsset: object({ asset: string(), chain: string() }),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({ channelId: string(), depositAddress: string() });\n\nexport const NearDepositChannelParamsSchema = DepositChannelParamsSchema.extend({\n affiliateFees: object({ feeBps: number(), nearId: string() }).optional(),\n buyAsset: string(),\n sellAmount: string(),\n sellAsset: string(),\n slippage: coerce.number(),\n sourceAddress: string(),\n});\n\nexport type NearDepositChannelParams = z.infer<typeof NearDepositChannelParamsSchema>;\n\nconst NearQuoteResponseSchema = object({\n amountIn: string(),\n amountInFormatted: string(),\n amountInUsd: string(),\n amountOut: string(),\n amountOutFormatted: string(),\n amountOutUsd: string(),\n deadline: string().optional(),\n minAmountIn: string(),\n minAmountOut: string(),\n timeEstimate: number().optional(),\n timeWhenInactive: string().optional(),\n});\n\nexport const NearDepositChannelResultSchema = NearQuoteResponseSchema.extend({\n depositAddress: string(),\n quote: NearQuoteResponseSchema,\n signature: string(),\n timestamp: string(),\n tx: unknown(),\n});\n\nexport type NearDepositChannelResult = z.infer<typeof NearDepositChannelResultSchema>;\n\nexport const NearSwapResponseSchema = object({\n buyAsset: string(),\n buyAssetAmount: string(),\n buyAssetAmountMaxSlippage: string(),\n deadline: string().optional(),\n depositAddress: string(),\n depositAmount: string(),\n depositAsset: string(),\n tx: unknown(),\n});\n\nexport type NearSwapResponse = z.infer<typeof NearSwapResponseSchema>;\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: z.optional(z.string()),\n intentHash: z.optional(z.string()),\n logs: z.optional(z.unknown()),\n manifest: z.optional(z.unknown()),\n memo: z.optional(z.string()),\n spender: z.optional(z.string()),\n thorname: z.optional(z.string()),\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\nconst TransactionEstimatesSchema = object({\n currentStage: string(),\n inboundConfirmation: number(),\n inboundObservation: number(),\n outboundDelay: number(),\n outboundObservation: number(),\n streamingSwap: number(),\n});\n\nexport type TransactionEstimates = z.infer<typeof TransactionEstimatesSchema>;\n\nconst TransactionStreamingDetailsSchema = object({\n count: optional(number()),\n interval: optional(number()),\n quantity: optional(number()),\n subSwapsMap: optional(array(number())),\n});\n\nexport type TransactionStreamingDetails = z.infer<typeof TransactionStreamingDetailsSchema>;\n\nconst TxnTransientSchema = z.object({\n currentLegIndex: z.optional(z.number()),\n estimatedTimeToComplete: z.number(),\n estimates: z.optional(TransactionEstimatesSchema),\n providerDetails: z.optional(z.object({ streamingDetails: z.optional(TransactionStreamingDetailsSchema) })),\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n protocol: optional(AssetValueSchema), // extra protocol fees (TS dex aggregation contracts, stargate fees, etc.)\n tax: optional(AssetValueSchema), // taxed tokens\n});\n\nexport type TransactionFees = z.infer<typeof TransactionFeesSchema>;\n\nconst TxnMetaAffiliateFeesSchema = object({ affiliate: string(), bps: string(), isReferrer: boolean() });\n\nconst TxnMetaSchema = object({\n affiliate: optional(string()),\n affiliateFees: optional(array(TxnMetaAffiliateFeesSchema)),\n broadcastedAt: optional(number()),\n explorerUrl: optional(string()),\n fees: optional(TransactionFeesSchema),\n images: optional(\n object({\n chain: optional(string()),\n from: optional(string()),\n provider: optional(string()),\n to: optional(string()),\n }),\n ),\n provider: optional(z.enum(ProviderName)),\n providerAction: z.optional(z.enum(ProviderAction)),\n wallet: optional(string()),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = z.object({\n block: z.number(),\n chainId: z.enum(ChainId),\n finalAddress: z.optional(z.string()),\n finalAsset: z.optional(AssetValueSchema),\n finalisedAt: z.number(),\n fromAddress: z.string(),\n fromAmount: z.string(),\n fromAsset: z.string(),\n hash: z.string(),\n meta: z.optional(TxnMetaSchema),\n payload: z.optional(TxnPayloadSchema),\n status: z.enum(TxnStatus),\n toAddress: z.string(),\n toAmount: z.string(),\n toAsset: z.string(),\n trackingStatus: z.optional(z.enum(TrackingStatus)),\n transient: z.optional(TxnTransientSchema),\n type: z.enum(TxnType),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TrackerResponseSchema: z.ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport type TrackerResponse = z.infer<typeof TrackerResponseSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({ legs: array(TransactionLegDTOSchema) });\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & { legs: TransactionLegDTO[] };\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: z.enum(ProviderName),\n type: z.enum(FeeTypeEnum),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = z.object({\n inbound: z.optional(z.number().describe(\"Time to receive inbound asset in seconds\")),\n outbound: z.optional(z.number().describe(\"Time to receive outbound asset in seconds\")),\n swap: z.optional(z.number().describe(\"Time to swap assets in seconds\")),\n total: z.number().describe(\"Total time in seconds\"),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n data: string().describe(\"Data to send\"),\n from: string().describe(\"Address of the sender\"),\n to: string().describe(\"Address of the recipient\"),\n value: string().describe(\"Value to send\"),\n});\n\nexport type EVMTransaction = z.infer<typeof EVMTransactionSchema>;\n\nexport const EVMTransactionDetailsParamsSchema = array(\n union([\n string(),\n number(),\n array(string()),\n object({ from: string(), value: string() }).describe(\"Parameters to pass to the contract method\"),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n approvalSpender: optional(string().describe(\"Address of the spender to approve\")),\n approvalToken: optional(string().describe(\"Address of the token to approve spending of\")),\n contractAddress: string().describe(\"Address of the contract to interact with\"),\n contractMethod: string().describe(\"Name of the method to call\"),\n contractParamNames: array(string().describe(\"Names of the parameters to pass to the contract method\")),\n contractParams: EVMTransactionDetailsParamsSchema,\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({ typeUrl: string(), value: unknown() });\n\nconst FeeSchema = object({ amount: array(object({ amount: string(), denom: string() })), gas: string() });\n\nexport const CosmosTransactionSchema = object({\n accountNumber: number(),\n chainId: z.enum(ChainId),\n fee: FeeSchema,\n memo: string(),\n msgs: array(EncodeObjectSchema),\n sequence: number(),\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n affiliate: string().describe(\"Affiliate address\").optional(),\n affiliateFee: number().describe(\"Affiliate fee\").optional(),\n buyAsset: string().describe(\"Asset to buy\"),\n destinationAddress: string().describe(\"Destination address\"),\n estimatedTime: EstimatedTimeSchema.optional(),\n provider: z.enum(ProviderName),\n sellAsset: string().describe(\"Asset to sell\"),\n slipPercentage: number().describe(\"Slippage as a percentage\"),\n sourceAddress: string().describe(\"Source address\"),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n destinationAddress: true,\n slipPercentage: true,\n sourceAddress: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string().describe(\"Asset name\"),\n image: string().describe(\"Asset image\"),\n price: number().describe(\"Price in USD\"),\n});\n\nexport type RouteQuoteMetadataAsset = z.infer<typeof RouteQuoteMetadataAssetSchema>;\n\nexport const ChainflipMetadataSchema = BrokerDepositChannelParamsSchema;\n\nexport type ChainflipMetadata = z.infer<typeof ChainflipMetadataSchema>;\n\nexport const RouteQuoteMetadataSchema = object({\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n maxStreamingQuantity: number().optional(),\n referrer: string().optional(),\n streamingInterval: number().optional(),\n tags: array(z.enum(PriorityLabel)).optional(),\n});\n\nexport const RouteQuoteMetadataV2Schema = RouteQuoteMetadataSchema.extend({\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n approvalAddress: optional(string().describe(\"Approval address for swap\")),\n chainflip: ChainflipMetadataSchema.optional(),\n garden: NearDepositChannelParamsSchema.optional(),\n near: NearDepositChannelParamsSchema.optional(),\n priceImpact: optional(number().describe(\"Price impact\")),\n referrer: optional(string()),\n txType: optional(z.enum(RouteQuoteTxType)),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: z.enum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n buyAmount: string().describe(\"Buy amount\"),\n buyAmountMaxSlippage: string().describe(\"Buy amount max slippage\"),\n buyAsset: string().describe(\"Asset to buy\"),\n fees: optional(FeesSchema),\n provider: z.enum(ProviderName),\n sellAmount: string().describe(\"Sell amount\"),\n sellAsset: string().describe(\"Asset to sell\"),\n});\n\nexport const QuoteResponseRouteItem = object({\n buyAsset: string().describe(\"Asset to buy\"),\n destinationAddress: optional(string().describe(\"Destination address\")),\n estimatedTime: optional(EstimatedTimeSchema),\n expectedBuyAmount: string().describe(\"Expected Buy amount\"),\n expectedBuyAmountMaxSlippage: optional(string().describe(\"Expected Buy amount max slippage\")),\n expiration: optional(string().describe(\"Expiration\")),\n fees: FeesSchema,\n inboundAddress: optional(string().describe(\"Inbound address\")),\n legs: optional(array(QuoteResponseRouteLegItem)),\n memo: optional(string().describe(\"Memo\")),\n meta: optional(RouteQuoteMetadataV2Schema),\n providers: array(z.enum(ProviderName)),\n refundAddress: optional(string().describe(\"Refund address\")),\n sellAmount: string().describe(\"Sell amount\"),\n sellAsset: string().describe(\"Asset to sell\"),\n sourceAddress: optional(string().describe(\"Source address\")),\n targetAddress: optional(string().describe(\"Target address\")),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n txType: optional(z.enum(RouteQuoteTxType)),\n warnings: optional(RouteQuoteWarningSchema),\n});\n\nexport const QuoteResponseSchema = object({\n error: optional(string().describe(\"Error message\")),\n providerErrors: optional(\n array(\n object({\n errorCode: optional(z.enum(ErrorCode)),\n message: optional(string()),\n provider: z.enum(ProviderName).optional(),\n }),\n ),\n ),\n routes: array(QuoteResponseRouteItem),\n});\n\nexport type QuoteResponse = z.infer<typeof QuoteResponseSchema>;\nexport type QuoteResponseRoute = z.infer<typeof QuoteResponseRouteItem>;\nexport type QuoteResponseRouteLeg = z.infer<typeof QuoteResponseRouteLegItem>;\n\nexport const GasSchema = z.object({\n chainId: z.enum(ChainId),\n createdAt: z.date(),\n id: z.number(),\n unit: z.string(),\n value: z.string(),\n});\n\nconst GasSchemaArray = z.array(GasSchema);\n\nexport const GasResponseSchema = z.union([GasSchema, GasSchemaArray]);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: z.enum(Chain),\n decimal: number(),\n identifier: string(),\n symbol: string(),\n ticker: string(),\n value: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
|
|
11
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport * as memoless from \"./memoless/endpoints\";\nimport { mayachainMidgard, thorchainMidgard } from \"./midgard/endpoints\";\nimport * as thornode from \"./thornode/endpoints\";\nimport * as uswap from \"./uswap/endpoints\";\n\nexport * from \"./memoless/types\";\nexport * from \"./midgard/types\";\nexport * from \"./thornode/types\";\nexport * from \"./uswap/types\";\n\nexport const USwapApi = { ...uswap, ...memoless, mayachainMidgard, thorchainMidgard, thornode };\n"
|
|
12
|
+
],
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "1675BA65EA0768AF64756E2164756E21",
|
|
15
|
+
"names": []
|
|
16
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{b as B}from"../chunk-pfmeq01a.js";var G={};B(G,{registerMemoless:()=>lt,preflightMemoless:()=>Pt,getMemolessAssets:()=>Lt});import{RequestClient as It,USwapConfig as z,USwapError as W}from"@tcswap/helpers";import{array as Ct,coerce as St,object as Rt,optional as R,z as u}from"zod/v4";var Ot=u.object({asset:u.string(),balanceRune:u.number(),decimals:St.number(),isToken:u.boolean(),priceUSD:u.number(),status:u.string()}),Nn=u.object({assets:Ct(Ot),error:R(Rt({code:u.string(),details:u.string(),message:u.string()})),success:u.boolean()}),fn=u.object({asset:u.string(),memo:u.string(),requested_in_asset_amount:u.optional(u.string()).or(u.number())}),w=u.object({asset:u.string(),decimals:u.number(),height:u.string(),internal_api_id:u.string(),memo:u.string(),minimum_amount_to_send:u.string(),reference:u.string(),reference_length:u.number(),registered_by:u.string(),registration_hash:u.string(),success:u.boolean(),suggested_in_asset_amount:u.optional(u.string()),txHash:u.string()}),k;((n)=>{n.asset="asset";n.usd="usd"})(k||={});var dn=u.object({amount:u.string(),asset:R(u.string()),inputType:R(u.enum(k)),internal_api_id:R(u.string()),reference:R(u.string())}),K=u.object({data:u.object({blocks_remaining:u.number(),current_uses:u.number(),inbound_address:R(u.string()),max_uses:u.number(),memo:R(u.string()),qr_code:R(u.string()),qr_code_data_url:R(u.string()),seconds_remaining:u.number(),time_remaining:u.string()}),error:R(u.object({code:u.string(),message:u.string()})),message:u.string(),success:u.boolean()});var $=It.extend({dynamicHeader:()=>{let{memoless:t}=z.get("apiKeys");return t?{"x-api-key":t}:{}}});function Lt(t){return $.get(v("/assets"),{...t})}async function lt(t,i){let n=v("/register"),r=await $.post(n,{json:t,...i});try{let o=w.safeParse(r);if(!o.success)throw new W("api_v2_invalid_response",o.error);return o.data}catch(o){return r}}async function Pt(t,i){let n=v("/preflight"),r=await $.post(n,{json:t,...i});try{let o=K.safeParse(r);if(!o.success)throw new W("api_v2_invalid_response",o.error);return o.data}catch(o){return r}}function v(t){let{memolessApiUrl:i}=z.get("envs");return`${i}${t}`}import{AssetValue as Dt,RequestClient as A,USwapNumber as ht}from"@tcswap/helpers";import{Chain as p,getChainConfig as yt}from"@tcswap/types";function Q(t=!0){return t?"https://midgard.ninerealms.com":"https://midgard.mayachain.info"}function pt(t=!0){let i=Q(t);return t?`${i}/v2/thorname`:`${i}/v2/mayaname`}function Mt(t){return function(n){let r=n?`?status=${n}`:"";return A.get(`${t}/v2/pools${r}`)}}function _t(t){return function(n){return A.get(`${t}/v2/pool/${n}`)}}function Bt(t){return function(n,r){let o=r?`?period=${r}`:"";return A.get(`${t}/v2/pool/${n}/stats${o}`)}}function $t(t){return function(n,r){let o=new URLSearchParams;if(r?.interval)o.append("interval",r.interval);if(r?.count)o.append("count",r.count.toString());if(r?.from)o.append("from",r.from.toString());if(r?.to)o.append("to",r.to.toString());let f=o.toString()?`?${o.toString()}`:"";return A.get(`${t}/v2/history/depths/${n}${f}`)}}function vt(t){return function(){return A.get(`${t}/v2/network`)}}function Gt(t){return function(){return A.get(`${t}/v2/health`)}}function Yt(t){return function(){return A.get(`${t}/v2/nodes`)}}function Vt(t){return function(n){return A.get(`${t}/v2/node/${n}`)}}function Ut(t){return function(){return A.get(`${t}/v2/mimir/votes`)}}function Xt(t){return function(){return A.get(`${t}/v2/mimir`)}}function Ft(t){return function(){return A.get(`${t}/v2/constants`)}}function xt(t){return function(){return A.get(`${t}/v2/stats`)}}function wt(t){return function(n){let r=new URLSearchParams;if(n?.interval)r.append("interval",n.interval);if(n?.count)r.append("count",n.count.toString());if(n?.from)r.append("from",n.from.toString());if(n?.to)r.append("to",n.to.toString());let o=r.toString()?`?${r.toString()}`:"";return A.get(`${t}/v2/history/earnings${o}`)}}function kt(t){return function(n,r){let o=new URLSearchParams;if(r?.interval)o.append("interval",r.interval);if(r?.count)o.append("count",r.count.toString());if(r?.from)o.append("from",r.from.toString());if(r?.to)o.append("to",r.to.toString());let f=o.toString()?`?${o.toString()}`:"",c=n?`/swaps/${n}`:"/swaps";return A.get(`${t}/v2/history${c}${f}`)}}function Kt(t){return function(n){let r=new URLSearchParams;if(n?.interval)r.append("interval",n.interval);if(n?.count)r.append("count",n.count.toString());if(n?.from)r.append("from",n.from.toString());if(n?.to)r.append("to",n.to.toString());let o=r.toString()?`?${r.toString()}`:"";return A.get(`${t}/v2/history/tvl${o}`)}}function zt(t){if(!t)return"";let i=new URLSearchParams,n=(r,o)=>{if(o!==void 0)i.append(r,typeof o==="number"?o.toString():o)};return n("address",t.address),n("txid",t.txid),n("asset",t.asset),n("type",t.type),n("affiliate",t.affiliate),n("limit",t.limit),n("offset",t.offset),i.toString()?`?${i.toString()}`:""}function Wt(t){return function(n){let r=zt(n);return A.get(`${t}/v2/actions${r}`)}}function Qt(t){return function(n){return A.get(`${t}/v2/member/${n}`)}}function Zt(t){return function(n){let r=n?`/${n}`:"";return A.get(`${t}/v2/members${r}`)}}function jt(t){return function(n,r){let o=r?`&asset=${r}`:"";return A.get(`${t}/v2/saver/${n}${o?`?${o.substring(1)}`:""}`)}}function Jt(t){return function(n){return A.get(`${t}/v2/savers/${n}`)}}function qt(t){return function(n,r){let o=new URLSearchParams;if(r?.interval)o.append("interval",r.interval);if(r?.count)o.append("count",r.count.toString());if(r?.from)o.append("from",r.from.toString());if(r?.to)o.append("to",r.to.toString());let f=o.toString()?`?${o.toString()}`:"",c=n?`/savers/${n}`:"/savers";return A.get(`${t}/v2/history${c}${f}`)}}function te(t){return function(n){return A.get(`${t}/v2/balance/${n}`)}}function ee(t){return async function(n){let r=(o)=>{if(o?.cause?.status===404)return;throw o};return await A.get(`${t}/lookup/${n}`,{onError:r,retry:{maxRetries:1}})}}function ne(t){return async function(n){let r=(o)=>{if(o?.cause?.status===404)return[];throw o};return await A.get(`${t}/rlookup/${n}`,{onError:r,retry:{maxRetries:1}})}}function re(t){return async function(n){let r=(o)=>{if(o?.cause?.status===404)return[];throw o};return await A.get(`${t}/owner/${n}`,{onError:r,retry:{maxRetries:1}})}}function P({asset:t,value:i}){return Dt.from({asset:t,fromBaseDecimal:yt(p.THORChain).baseDecimal,value:i})}function se({liquidityPositionGetter:t,isThorchain:i}){return async function(r){let o=await t(r),f=i?"rune":"cacao";return o.pools.map((c)=>({[`${f}Pending`]:P({asset:"THOR.RUNE",value:c.runePending}),[`${f}RegisteredAddress`]:c.runeAddress,[`${f}Withdrawn`]:P({asset:"THOR.RUNE",value:c.runeWithdrawn}),[f]:P({asset:"THOR.RUNE",value:c.runeAdded}),asset:P({asset:c.pool,value:c.assetAdded}),assetPending:P({asset:c.pool,value:c.assetPending}),assetRegisteredAddress:c.assetAddress,assetWithdrawn:P({asset:c.pool,value:c.assetWithdrawn}),dateFirstAdded:c.dateFirstAdded,dateLastAdded:c.dateLastAdded,poolShare:new ht(c.liquidityUnits).div(c.pool)}))}}function Z(t){let i=t===p.THORChain,n=Q(i),r=pt(i),o=Qt(n);return{getActions:Wt(n),getBalance:te(n),getConstants:Ft(n),getEarningsHistory:wt(n),getHealth:Gt(n),getLiquidityPosition:se({isThorchain:i,liquidityPositionGetter:o}),getLiquidityPositionRaw:o,getMembers:Zt(n),getMimir:Xt(n),getMimirVotes:Ut(n),getNameDetails:ee(r),getNamesByAddress:ne(r),getNamesByOwner:re(r),getNetworkInfo:vt(n),getNode:Vt(n),getNodes:Yt(n),getPool:_t(n),getPoolDepthHistory:$t(n),getPoolStats:Bt(n),getPools:Mt(n),getSaverDetails:jt(n),getSavers:Jt(n),getSaversHistory:qt(n),getStats:xt(n),getSwapHistory:kt(n),getTVLHistory:Kt(n)}}var j=Z(p.THORChain),J=Z(p.Maya);var Y={};B(Y,{getThorchainQueue:()=>Te,getTcyStakers:()=>Se,getTcyStaker:()=>Ce,getTcyClaimers:()=>Oe,getTcyClaimer:()=>Re,getTNSPreferredAsset:()=>Ee,getTHORNodeTNSDetails:()=>q,getRunePoolProviderInfo:()=>be,getRunePoolInfo:()=>He,getNodes:()=>Ne,getMimirInfo:()=>fe,getLastBlock:()=>ce,getInboundAddresses:()=>de});import{AssetValue as ie,RequestClient as b,USwapConfig as oe}from"@tcswap/helpers";import{MAYAConfig as ae,StagenetMAYAConfig as ue,StagenetTHORConfig as me,THORConfig as ge}from"@tcswap/types";function C(t){let{isStagenet:i}=oe.get("envs");switch(t){case"mayachain":return`${i?ue.nodeUrl:ae.nodeUrl}/mayachain`;default:return`${i?me.nodeUrl:ge.nodeUrl}/thorchain`}}function Ae(t){let i=t==="mayachain"?"mayaname":"thorname";return`${C(t)}/${i}`}function ce(t="thorchain"){return b.get(`${C(t)}/lastblock`)}function Te(t){return b.get(`${C(t)}/queue`)}function Ne(t){return b.get(`${C(t)}/nodes`)}function fe(t){return b.get(`${C(t)}/mimir`)}function de(t){return b.get(`${C(t)}/inbound_addresses`)}async function q({type:t,name:i}){try{return await b.get(`${Ae(t)}/${i}`)}catch{return{affiliate_collector_rune:"",aliases:[],expire_block_height:0,name:i,owner:"",preferred_asset:""}}}async function Ee({type:t,tns:i}){let n=await q({name:i,type:t});if(!n.preferred_asset||n.preferred_asset===".")return;return ie.from({asset:n.preferred_asset,asyncTokenLookup:!0})}function He(t){return b.get(`${C(t)}/runepool`)}function be({type:t,thorAddress:i}){return b.get(`${C(t)}/rune_provider/${i}`)}function Ce({type:t,address:i}){return b.get(`${C(t)}/tcy_staker/${i}`)}function Se(t){return b.get(`${C(t)}/tcy_stakers`)}function Re({type:t,address:i}){return b.get(`${C(t)}/tcy_claimer/${i}`)}function Oe(t){return b.get(`${C(t)}/tcy_claimers`)}var x={};B(x,{getTrackerDetails:()=>qe,getTokenListProviders:()=>rn,getTokenList:()=>sn,getSwapQuote:()=>tn,getRouteWithTx:()=>en,getPrice:()=>on,getNearDepositChannel:()=>mn,getGasRate:()=>an,getChainflipDepositChannel:()=>un,getChainBalance:()=>nn});import{EVMChains as Qe,isGasAsset as Ze,RequestClient as je,USwapConfig as y,USwapError as E}from"@tcswap/helpers";import{match as Je,P as bt}from"ts-pattern";import{ErrorCode as Ie,FeeTypeEnum as Le,ProviderName as l,WarningCodeEnum as le}from"@tcswap/helpers";import{Chain as V,ChainId as M}from"@tcswap/types";import{array as T,boolean as L,coerce as nt,number as g,object as m,optional as a,string as e,union as rt,unknown as U,z as s}from"zod/v4";var st;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(st||={});var X;((o)=>{o.PSBT="PSBT";o.EVM="EVM";o.COSMOS="COSMOS";o.RADIX="RADIX"})(X||={});var it;((N)=>{N.approve="approve";N.claim="claim";N.deposit="deposit";N.donate="donate";N.lending="lending";N.lp_action="lp_action";N.native_contract_call="native_contract_call";N.native_send="native_send";N.stake="stake";N.streaming_swap="streaming_swap";N.swap="swap";N.thorname_action="thorname_action";N.token_contract_call="token_contract_call";N.token_transfer="token_transfer";N.unknown="unknown";N.unstake="unstake"})(it||={});var ot;((H)=>{H.swap="swap";H.aggregation="aggregation";H.addLiquidity="addLiquidity";H.withdrawLiquidity="withdrawLiquidity";H.addSavers="addSavers";H.withdrawSavers="withdrawSavers";H.borrow="borrow";H.repay="repay";H.name="name";H.donate="donate";H.claim="claim";H.stake="stake";H.unstake="unstake"})(ot||={});var at;((S)=>{S.unknown="unknown";S.not_started="not_started";S.pending="pending";S.swapping="swapping";S.completed="completed";S.refunded="refunded";S.failed="failed"})(at||={});var ut;((d)=>{d.not_started="not_started";d.starting="starting";d.broadcasted="broadcasted";d.mempool="mempool";d.inbound="inbound";d.outbound="outbound";d.swapping="swapping";d.completed="completed";d.refunded="refunded";d.partially_refunded="partially_refunded";d.dropped="dropped";d.reverted="reverted";d.replaced="replaced";d.retries_exceeded="retries_exceeded";d.parsing_error="parsing_error"})(ut||={});var Dn=m({address:a(e()),chain:s.enum(V).optional(),chainId:s.enum(M),coingeckoId:a(e()),decimals:nt.number(),extensions:a(s.looseObject({})),identifier:e(),logoURI:a(e()),name:a(e()),shortCode:a(e()),symbol:a(e()),ticker:e()}),hn=s.object({block:s.optional(s.number().describe("Block number. Required for Polkadot chain. e.g. `123456`")),chainId:s.optional(s.string().describe("ChainId for the hash. e.g. `thorchain-1`")),depositChannelId:s.optional(s.string().describe("Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection")),hash:s.optional(s.string().describe("Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`"))}).refine((t)=>t.hash&&t.chainId||t.depositChannelId,{message:"Either `hash` and `chainId` or `depositChannelId` must be provided"}),yn=s.object({forceUpdate:s.string().toLowerCase().transform((t)=>t==="true").pipe(s.boolean()).optional()}),pn=m({error:e(),message:e()}),D=m({address:a(e()),chain:s.enum(V),decimal:a(g()),isGasAsset:L(),isSynthetic:L(),symbol:e(),tax:a(m({buy:g(),sell:g()})),ticker:e()}),Pe=m({id:e(),market_cap:g(),name:e(),price_change_24h_usd:g(),price_change_percentage_24h_usd:g(),sparkline_in_7d:T(g()),timestamp:e(),total_volume:g()}),mt=T(m({cg:Pe.optional(),identifier:e(),price_usd:g(),provider:e(),timestamp:g()}).partial()),Mn=m({affiliate:a(e().describe("Affiliate thorname")),affiliateFee:a(g().describe("Affiliate fee in basis points").refine((t)=>t===Math.floor(t)&&t>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractReceiver:a(L().describe("Allow smart contract as recipient")),allowSmartContractSender:a(L().describe("Allow smart contract as sender")),buyAsset:e().describe("Asset to buy"),cfBoost:a(L().describe("Set to true to enable CF boost to speed up Chainflip swaps. BTC only.")),destinationAddress:a(e().describe("Address to send asset to")),disableSecurityChecks:a(L().describe("Disable security checks")),dry:a(L().describe("Set to false to include an transaction object")),providers:a(T(e().describe("List of providers to use").refine((t)=>l[t]!==void 0,{message:"Invalid provider",path:["providers"]}))),referrer:a(e().describe("Referrer address (referral program)")),refundAddress:a(e().describe("Address to refund")),sellAmount:e().describe("Amount of asset to sell").refine((t)=>+t>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),sellAsset:e().describe("Asset to sell"),slippage:a(g().describe("Slippage tolerance as a percentage. Default is 3%.")),sourceAddress:a(e().describe("Address to send asset from"))}).refine((t)=>t.sellAsset!==t.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),_n=m({metadata:L(),tokens:T(m({identifier:e()}))}),gt=m({destinationAddress:e()}),De=gt.extend({affiliateFees:T(m({brokerAddress:e(),feeBps:g()})).optional(),brokerCommissionBps:g().optional(),buyAsset:m({asset:e(),chain:e()}),channelMetadata:m({cfParameters:e().optional(),gasBudget:e().optional(),message:e().optional()}).optional(),dcaParameters:m({chunkInterval:g().optional(),numberOfChunks:g().optional()}).optional(),maxBoostFeeBps:g().optional(),refundParameters:m({minPrice:e().optional(),refundAddress:e().optional(),retryDuration:g().optional()}).optional(),sellAsset:m({asset:e(),chain:e()})}),At=m({channelId:e(),depositAddress:e()}),tt=gt.extend({affiliateFees:m({feeBps:g(),nearId:e()}).optional(),buyAsset:e(),sellAmount:e(),sellAsset:e(),slippage:nt.number(),sourceAddress:e()}),et=m({amountIn:e(),amountInFormatted:e(),amountInUsd:e(),amountOut:e(),amountOutFormatted:e(),amountOutUsd:e(),deadline:e().optional(),minAmountIn:e(),minAmountOut:e(),timeEstimate:g().optional(),timeWhenInactive:e().optional()}),Bn=et.extend({depositAddress:e(),quote:et,signature:e(),timestamp:e(),tx:U()}),ct=m({buyAsset:e(),buyAssetAmount:e(),buyAssetAmountMaxSlippage:e(),deadline:e().optional(),depositAddress:e(),depositAmount:e(),depositAsset:e(),tx:U()}),he=m({evmCalldata:s.optional(s.string()),intentHash:s.optional(s.string()),logs:s.optional(s.unknown()),manifest:s.optional(s.unknown()),memo:s.optional(s.string()),spender:s.optional(s.string()),thorname:s.optional(s.string())}),ye=m({currentStage:e(),inboundConfirmation:g(),inboundObservation:g(),outboundDelay:g(),outboundObservation:g(),streamingSwap:g()}),pe=m({count:a(g()),interval:a(g()),quantity:a(g()),subSwapsMap:a(T(g()))}),Me=s.object({currentLegIndex:s.optional(s.number()),estimatedTimeToComplete:s.number(),estimates:s.optional(ye),providerDetails:s.optional(s.object({streamingDetails:s.optional(pe)}))}),_e=m({affiliate:a(D),liquidity:a(D),network:a(D),protocol:a(D),tax:a(D)}),Be=m({affiliate:e(),bps:e(),isReferrer:L()}),$e=m({affiliate:a(e()),affiliateFees:a(T(Be)),broadcastedAt:a(g()),explorerUrl:a(e()),fees:a(_e),images:a(m({chain:a(e()),from:a(e()),provider:a(e()),to:a(e())})),provider:a(s.enum(l)),providerAction:s.optional(s.enum(ot)),wallet:a(e())}),h=s.object({block:s.number(),chainId:s.enum(M),finalAddress:s.optional(s.string()),finalAsset:s.optional(D),finalisedAt:s.number(),fromAddress:s.string(),fromAmount:s.string(),fromAsset:s.string(),hash:s.string(),meta:s.optional($e),payload:s.optional(he),status:s.enum(at),toAddress:s.string(),toAmount:s.string(),toAsset:s.string(),trackingStatus:s.optional(s.enum(ut)),transient:s.optional(Me),type:s.enum(it)}),Tt=h.extend({legs:s.array(h)}),$n=h.extend({legs:T(h)}),vn=h.extend({legs:T(h)}),Nt=T(m({amount:e(),asset:e(),chain:e(),protocol:s.enum(l),type:s.enum(Le)})),ft=s.object({inbound:s.optional(s.number().describe("Time to receive inbound asset in seconds")),outbound:s.optional(s.number().describe("Time to receive outbound asset in seconds")),swap:s.optional(s.number().describe("Time to swap assets in seconds")),total:s.number().describe("Total time in seconds")}),ve=m({data:e().describe("Data to send"),from:e().describe("Address of the sender"),to:e().describe("Address of the recipient"),value:e().describe("Value to send")}),Ge=T(rt([e(),g(),T(e()),m({from:e(),value:e()}).describe("Parameters to pass to the contract method")])),Gn=m({approvalSpender:a(e().describe("Address of the spender to approve")),approvalToken:a(e().describe("Address of the token to approve spending of")),contractAddress:e().describe("Address of the contract to interact with"),contractMethod:e().describe("Name of the method to call"),contractParamNames:T(e().describe("Names of the parameters to pass to the contract method")),contractParams:Ge}),Ye=m({typeUrl:e(),value:U()}),Ve=m({amount:T(m({amount:e(),denom:e()})),gas:e()}),Ue=m({accountNumber:g(),chainId:s.enum(M),fee:Ve,memo:e(),msgs:T(Ye),sequence:g()}),Xe=m({affiliate:e().describe("Affiliate address").optional(),affiliateFee:g().describe("Affiliate fee").optional(),buyAsset:e().describe("Asset to buy"),destinationAddress:e().describe("Destination address"),estimatedTime:ft.optional(),provider:s.enum(l),sellAsset:e().describe("Asset to sell"),slipPercentage:g().describe("Slippage as a percentage"),sourceAddress:e().describe("Source address")}),Yn=Xe.omit({destinationAddress:!0,slipPercentage:!0,sourceAddress:!0}),Fe=m({asset:e().describe("Asset name"),image:e().describe("Asset image"),price:g().describe("Price in USD")}),xe=De,we=m({assets:a(T(Fe)),maxStreamingQuantity:g().optional(),referrer:e().optional(),streamingInterval:g().optional(),tags:T(s.enum(st)).optional()}),ke=we.extend({affiliate:a(e()),affiliateFee:a(e()),approvalAddress:a(e().describe("Approval address for swap")),chainflip:xe.optional(),garden:tt.optional(),near:tt.optional(),priceImpact:a(g().describe("Price impact")),referrer:a(e()),txType:a(s.enum(X))}),Ke=T(m({code:s.enum(le),display:e(),tooltip:e().optional()})),ze=m({buyAmount:e().describe("Buy amount"),buyAmountMaxSlippage:e().describe("Buy amount max slippage"),buyAsset:e().describe("Asset to buy"),fees:a(Nt),provider:s.enum(l),sellAmount:e().describe("Sell amount"),sellAsset:e().describe("Asset to sell")}),F=m({buyAsset:e().describe("Asset to buy"),destinationAddress:a(e().describe("Destination address")),estimatedTime:a(ft),expectedBuyAmount:e().describe("Expected Buy amount"),expectedBuyAmountMaxSlippage:a(e().describe("Expected Buy amount max slippage")),expiration:a(e().describe("Expiration")),fees:Nt,inboundAddress:a(e().describe("Inbound address")),legs:a(T(ze)),memo:a(e().describe("Memo")),meta:a(ke),providers:T(s.enum(l)),refundAddress:a(e().describe("Refund address")),sellAmount:e().describe("Sell amount"),sellAsset:e().describe("Asset to sell"),sourceAddress:a(e().describe("Source address")),targetAddress:a(e().describe("Target address")),tx:a(rt([ve,Ue,e()])),txType:a(s.enum(X)),warnings:a(Ke)}),dt=m({error:a(e().describe("Error message")),providerErrors:a(T(m({errorCode:a(s.enum(Ie)),message:a(e()),provider:s.enum(l).optional()}))),routes:T(F)}),Et=s.object({chainId:s.enum(M),createdAt:s.date(),id:s.number(),unit:s.string(),value:s.string()}),We=s.array(Et),Ht=s.union([Et,We]),Vn=T(m({chain:s.enum(V),decimal:g(),identifier:e(),symbol:e(),ticker:e(),value:e()}));var O=je.extend({dynamicHeader:()=>{let{uSwap:t}=y.get("apiKeys");return t?{"x-api-key":t}:{}}});async function qe(t,i){let n=await O.post(I("/track"),{json:t,...i});try{let r=Tt.safeParse(n);if(!r.success)throw new E("api_v2_invalid_response",r.error);return r.data}catch(r){return n}}async function tn(t,i){let{getQuote:n}=y.get("endpoints");if(n)return n(t);let r=await O.post(I("/quote"),{json:t,...i});if(r.error)throw new E("api_v2_server_error",{message:r.error});try{let o=dt.safeParse(r);if(!o.success)throw new E("api_v2_invalid_response",o.error);return o.data}catch{return r}}async function en(t){let{getRouteWithTx:i}=y.get("endpoints");if(i)return i(t);let n=await O.post(I("/swap"),{json:t});try{let r=F.safeParse(n);if(!r.success)throw new E("api_v2_invalid_response",r.error);return r.data}catch(r){return console.error(new E("api_v2_invalid_response",r)),n}}async function nn({chain:t,address:i,scamFilter:n=!0}){let{getBalance:r}=y.get("endpoints");if(r)return r({address:i,chain:t});let o=I(`/balance?chain=${t}&address=${i}`),f=await O.get(o),c=Array.isArray(f)?f:[];return n?cn(c):c}function rn(){let t=I("/providers");return O.get(t)}function sn(t){let i=I(`/tokens?provider=${t}`);return O.get(i)}async function on(t){let i=I("/price"),n=await O.post(i,{json:t});try{let r=mt.safeParse(n);if(!r.success)throw new E("api_v2_invalid_response",r.error);return r.data}catch(r){throw new E("api_v2_invalid_response",r)}}async function an(){let t=I("/gas"),i=await O.get(t);try{let n=Ht.safeParse(i);if(!n.success)throw new E("api_v2_invalid_response",n.error);return Array.isArray(n)?n:[n]}catch(n){throw new E("api_v2_invalid_response",n)}}async function un(t){let{destinationAddress:i}=t;if(!i)throw new E("chainflip_broker_invalid_params");let n=y.get("integrations").chainflip?.brokerUrl||I("/chainflip/broker/channel"),r=await O.post(n,{json:t});try{let o=At.safeParse(r);if(!o.success)throw new E("api_v2_invalid_response",o.error);return o.data}catch(o){throw new E("api_v2_invalid_response",o)}}async function mn(t){let{destinationAddress:i}=t;if(!i)throw new E("chainflip_broker_invalid_params");let n=I("/near/channel"),r=await O.post(n,{json:t});try{let o=ct.safeParse(r);if(!o.success)throw new E("api_v2_invalid_response",o.error);return o.data}catch(o){throw new E("api_v2_invalid_response",o)}}function I(t){let{isDev:i,apiUrl:n,devApiUrl:r,experimental_apiUrlQuote:o,experimental_apiUrlSwap:f}=y.get("envs"),c=`${i?r:n}${t}`;return Je({experimental_apiUrlQuote:o,experimental_apiUrlSwap:f,path:t}).with({experimental_apiUrlQuote:bt.string.startsWith("http"),path:"/quote"},({experimental_apiUrlQuote:S,path:_})=>`${S}${_}`).with({experimental_apiUrlSwap:bt.string.startsWith("http"),path:"/swap"},({experimental_apiUrlSwap:S,path:_})=>`${S}${_}`).otherwise(()=>c)}function gn(t){let[i,n]=t.split(".");if(!Qe.includes(i))return!0;let r=n.split("-"),o=r.length===1?void 0:r[r.length-1];return Ze({chain:i,symbol:n})||!!o}var An=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi");function cn(t){return t.filter((i)=>{return!An.test(i.identifier)&&gn(i.identifier)})}var kn={...x,...G,mayachainMidgard:J,thorchainMidgard:j,thornode:Y};export{kn as USwapApi,it as TxnType,at as TxnStatus,$n as TransactionSchema,vn as TransactionDTOSchema,ut as TrackingStatus,hn as TrackingRequestSchema,yn as TrackingRequestQuerySchema,Tt as TrackerResponseSchema,Dn as TokenSchema,Pe as TokenDetailsMetadataSchema,Ke as RouteQuoteWarningSchema,X as RouteQuoteTxType,ke as RouteQuoteMetadataV2Schema,we as RouteQuoteMetadataSchema,Fe as RouteQuoteMetadataAssetSchema,Yn as RouteLegWithoutAddressesSchema,Xe as RouteLegSchema,w as RegistrationResponseSchema,fn as RegistrationRequestSchema,dt as QuoteResponseSchema,F as QuoteResponseRouteItem,Mn as QuoteRequestSchema,ot as ProviderAction,st as PriorityLabel,mt as PriceResponseSchema,_n as PriceRequestSchema,K as PreflightResultSchema,dn as PreflightRequestSchema,k as PreflightInputType,ct as NearSwapResponseSchema,Bn as NearDepositChannelResultSchema,tt as NearDepositChannelParamsSchema,Nn as MemolessAssetsSchema,Ot as MemolessAssetItem,Et as GasSchema,Ht as GasResponseSchema,Nt as FeesSchema,ft as EstimatedTimeSchema,ve as EVMTransactionSchema,Gn as EVMTransactionDetailsSchema,Ge as EVMTransactionDetailsParamsSchema,At as DepositChannelResponseSchema,gt as DepositChannelParamsSchema,Ue as CosmosTransactionSchema,xe as ChainflipMetadataSchema,De as BrokerDepositChannelParamsSchema,D as AssetValueSchema,pn as ApiV2ErrorSchema};
|
|
2
|
+
|
|
3
|
+
//# debugId=86EEF623ABAC513564756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/api/memoless/endpoints.ts", "../src/api/memoless/types.ts", "../src/api/midgard/endpoints.ts", "../src/api/thornode/endpoints.ts", "../src/api/uswap/endpoints.ts", "../src/api/uswap/types.ts", "../src/api/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { RequestClient, type RequestOptions, USwapConfig, USwapError } from \"@tcswap/helpers\";\nimport {\n type MemolessAssetsResponse,\n type PreflightRequest,\n type PreflightResult,\n PreflightResultSchema,\n type RegistrationRequest,\n type RegistrationResponse,\n RegistrationResponseSchema,\n} from \"./types\";\n\nconst USwapRequestClient = RequestClient.extend({\n dynamicHeader: () => {\n const { memoless } = USwapConfig.get(\"apiKeys\");\n return memoless ? { \"x-api-key\": memoless } : {};\n },\n});\n\nexport function getMemolessAssets(options?: RequestOptions) {\n return USwapRequestClient.get<MemolessAssetsResponse>(getApiUrl(\"/assets\"), { ...options });\n}\n\nexport async function registerMemoless(json: RegistrationRequest, options?: RequestOptions) {\n const apiUrl = getApiUrl(\"/register\");\n const response = await USwapRequestClient.post<RegistrationResponse>(apiUrl, { json, ...options });\n\n try {\n const parsedResponse = RegistrationResponseSchema.safeParse(response);\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n return response;\n }\n}\n\nexport async function preflightMemoless(json: PreflightRequest, options?: RequestOptions) {\n const apiUrl = getApiUrl(\"/preflight\");\n const response = await USwapRequestClient.post<PreflightResult>(apiUrl, { json, ...options });\n\n try {\n const parsedResponse = PreflightResultSchema.safeParse(response);\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n return response;\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { memolessApiUrl } = USwapConfig.get(\"envs\");\n return `${memolessApiUrl}${path}`;\n}\n",
|
|
6
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { array, coerce, object, optional, z } from \"zod/v4\";\n\nexport const MemolessAssetItem = z.object({\n asset: z.string(),\n balanceRune: z.number(),\n decimals: coerce.number(),\n isToken: z.boolean(),\n priceUSD: z.number(),\n status: z.string(),\n});\n\nexport const MemolessAssetsSchema = z.object({\n assets: array(MemolessAssetItem),\n error: optional(object({ code: z.string(), details: z.string(), message: z.string() })),\n success: z.boolean(),\n});\n\nexport type MemolessAsset = z.infer<typeof MemolessAssetItem>;\nexport type MemolessAssetsResponse = z.infer<typeof MemolessAssetsSchema>;\n\nexport const RegistrationRequestSchema = z.object({\n asset: z.string(),\n memo: z.string(),\n requested_in_asset_amount: z.optional(z.string()).or(z.number()),\n});\n\nexport type RegistrationRequest = z.infer<typeof RegistrationRequestSchema>;\n\nexport const RegistrationResponseSchema = z.object({\n asset: z.string(),\n decimals: z.number(),\n height: z.string(),\n internal_api_id: z.string(),\n memo: z.string(),\n minimum_amount_to_send: z.string(),\n reference: z.string(),\n reference_length: z.number(),\n registered_by: z.string(),\n registration_hash: z.string(),\n success: z.boolean(),\n suggested_in_asset_amount: z.optional(z.string()),\n txHash: z.string(),\n});\n\nexport type RegistrationResponse = z.infer<typeof RegistrationResponseSchema>;\n\nexport enum PreflightInputType {\n asset = \"asset\",\n usd = \"usd\",\n}\n\nexport const PreflightRequestSchema = z.object({\n amount: z.string(),\n asset: optional(z.string()),\n inputType: optional(z.enum(PreflightInputType)),\n internal_api_id: optional(z.string()),\n reference: optional(z.string()),\n});\n\nexport type PreflightRequest = z.infer<typeof PreflightRequestSchema>;\n\nexport const PreflightResultSchema = z.object({\n data: z.object({\n blocks_remaining: z.number(),\n current_uses: z.number(),\n inbound_address: optional(z.string()),\n max_uses: z.number(),\n memo: optional(z.string()),\n qr_code: optional(z.string()),\n qr_code_data_url: optional(z.string()),\n seconds_remaining: z.number(),\n time_remaining: z.string(),\n }),\n error: optional(z.object({ code: z.string(), message: z.string() })),\n message: z.string(),\n success: z.boolean(),\n});\n\nexport type PreflightResult = z.infer<typeof PreflightResultSchema>;\n",
|
|
7
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, RequestClient, USwapNumber } from \"@tcswap/helpers\";\nimport { Chain, getChainConfig, type TCLikeChain } from \"@tcswap/types\";\nimport type {\n Action,\n ActionQuery,\n Balance,\n Constants,\n DepthHistory,\n EarningsHistory,\n HealthInfo,\n HistoryQuery,\n MemberDetailsMayachain,\n MemberDetailsThorchain,\n MimirVote,\n NetworkInfo,\n Node,\n PagedResponse,\n Pool,\n PoolStats,\n SaverDetails,\n SaversHistory,\n Stats,\n SwapHistory,\n THORNameDetails,\n TVLHistory,\n} from \"./types\";\n\nfunction getMidgardBaseUrl(isThorchain = true) {\n return isThorchain ? \"https://midgard.ninerealms.com\" : \"https://midgard.mayachain.info\";\n}\n\nfunction getNameServiceBaseUrl(isThorchain = true) {\n const baseUrl = getMidgardBaseUrl(isThorchain);\n return isThorchain ? `${baseUrl}/v2/thorname` : `${baseUrl}/v2/mayaname`;\n}\n\nfunction getPools(baseUrl: string) {\n return function getPools(status?: string): Promise<Pool[]> {\n const params = status ? `?status=${status}` : \"\";\n return RequestClient.get<Pool[]>(`${baseUrl}/v2/pools${params}`);\n };\n}\n\nfunction getPool(baseUrl: string) {\n return function getPool(asset: string): Promise<Pool> {\n return RequestClient.get<Pool>(`${baseUrl}/v2/pool/${asset}`);\n };\n}\n\nfunction getPoolStats(baseUrl: string) {\n return function getPoolStats(asset: string, period?: string): Promise<PoolStats> {\n const params = period ? `?period=${period}` : \"\";\n return RequestClient.get<PoolStats>(`${baseUrl}/v2/pool/${asset}/stats${params}`);\n };\n}\n\nfunction getPoolDepthHistory(baseUrl: string) {\n return function getPoolDepthHistory(asset: string, query?: HistoryQuery): Promise<DepthHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<DepthHistory>(`${baseUrl}/v2/history/depths/${asset}${queryString}`);\n };\n}\n\nfunction getNetworkInfo(baseUrl: string) {\n return function getNetworkInfo(): Promise<NetworkInfo> {\n return RequestClient.get<NetworkInfo>(`${baseUrl}/v2/network`);\n };\n}\n\nfunction getHealth(baseUrl: string) {\n return function getHealth(): Promise<HealthInfo> {\n return RequestClient.get<HealthInfo>(`${baseUrl}/v2/health`);\n };\n}\n\nfunction getNodes(baseUrl: string) {\n return function getNodes(): Promise<Node[]> {\n return RequestClient.get<Node[]>(`${baseUrl}/v2/nodes`);\n };\n}\n\nfunction getNode(baseUrl: string) {\n return function getNode(address: string): Promise<Node> {\n return RequestClient.get<Node>(`${baseUrl}/v2/node/${address}`);\n };\n}\n\nfunction getMimirVotes(baseUrl: string) {\n return function getMimirVotes(): Promise<MimirVote[]> {\n return RequestClient.get<MimirVote[]>(`${baseUrl}/v2/mimir/votes`);\n };\n}\n\nfunction getMimir(baseUrl: string) {\n return function getMimir(): Promise<Record<string, string>> {\n return RequestClient.get<Record<string, string>>(`${baseUrl}/v2/mimir`);\n };\n}\n\nfunction getConstants(baseUrl: string) {\n return function getConstants(): Promise<Constants> {\n return RequestClient.get<Constants>(`${baseUrl}/v2/constants`);\n };\n}\n\nfunction getStats(baseUrl: string) {\n return function getStats(): Promise<Stats> {\n return RequestClient.get<Stats>(`${baseUrl}/v2/stats`);\n };\n}\n\nfunction getEarningsHistory(baseUrl: string) {\n return function getEarningsHistory(query?: HistoryQuery): Promise<EarningsHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<EarningsHistory>(`${baseUrl}/v2/history/earnings${queryString}`);\n };\n}\n\nfunction getSwapHistory(baseUrl: string) {\n return function getSwapHistory(pool?: string, query?: HistoryQuery): Promise<SwapHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n const poolPath = pool ? `/swaps/${pool}` : \"/swaps\";\n return RequestClient.get<SwapHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);\n };\n}\n\nfunction getTVLHistory(baseUrl: string) {\n return function getTVLHistory(query?: HistoryQuery): Promise<TVLHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n return RequestClient.get<TVLHistory>(`${baseUrl}/v2/history/tvl${queryString}`);\n };\n}\n\nfunction buildActionParams(query?: ActionQuery): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n const appendParam = (key: keyof ActionQuery, value: any) => {\n if (value !== undefined) {\n params.append(key, typeof value === \"number\" ? value.toString() : value);\n }\n };\n appendParam(\"address\", query.address);\n appendParam(\"txid\", query.txid);\n appendParam(\"asset\", query.asset);\n appendParam(\"type\", query.type);\n appendParam(\"affiliate\", query.affiliate);\n appendParam(\"limit\", query.limit);\n appendParam(\"offset\", query.offset);\n return params.toString() ? `?${params.toString()}` : \"\";\n}\n\nfunction getActions(baseUrl: string) {\n return function getActions(query?: ActionQuery): Promise<PagedResponse<Action>> {\n const queryString = buildActionParams(query);\n return RequestClient.get<PagedResponse<Action>>(`${baseUrl}/v2/actions${queryString}`);\n };\n}\n\nfunction getLiquidityPositionRaw<Chain extends TCLikeChain>(baseUrl: string) {\n return function getLiquidityPosition(\n address: string,\n ): Promise<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain> {\n return RequestClient.get<Chain extends typeof Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain>(\n `${baseUrl}/v2/member/${address}`,\n );\n };\n}\n\nfunction getMembers(baseUrl: string) {\n return function getMembers(pool?: string): Promise<string[]> {\n const poolPath = pool ? `/${pool}` : \"\";\n return RequestClient.get<string[]>(`${baseUrl}/v2/members${poolPath}`);\n };\n}\n\nfunction getSaverDetails(baseUrl: string) {\n return function getSaverDetails(address: string, pool?: string): Promise<SaverDetails[]> {\n const poolPath = pool ? `&asset=${pool}` : \"\";\n return RequestClient.get<SaverDetails[]>(\n `${baseUrl}/v2/saver/${address}${poolPath ? `?${poolPath.substring(1)}` : \"\"}`,\n );\n };\n}\n\nfunction getSavers(baseUrl: string) {\n return function getSavers(pool: string): Promise<string[]> {\n return RequestClient.get<string[]>(`${baseUrl}/v2/savers/${pool}`);\n };\n}\n\nfunction getSaversHistory(baseUrl: string) {\n return function getSaversHistory(pool?: string, query?: HistoryQuery): Promise<SaversHistory> {\n const params = new URLSearchParams();\n if (query?.interval) params.append(\"interval\", query.interval);\n if (query?.count) params.append(\"count\", query.count.toString());\n if (query?.from) params.append(\"from\", query.from.toString());\n if (query?.to) params.append(\"to\", query.to.toString());\n const queryString = params.toString() ? `?${params.toString()}` : \"\";\n const poolPath = pool ? `/savers/${pool}` : \"/savers\";\n return RequestClient.get<SaversHistory>(`${baseUrl}/v2/history${poolPath}${queryString}`);\n };\n}\n\nfunction getBalance(baseUrl: string) {\n return function getBalance(address: string): Promise<Balance[]> {\n return RequestClient.get<Balance[]>(`${baseUrl}/v2/balance/${address}`);\n };\n}\n\nfunction getNameDetails(baseUrl: string) {\n return async function getNamesByAddress(name: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return undefined;\n }\n throw error;\n };\n return await RequestClient.get<THORNameDetails>(`${baseUrl}/lookup/${name}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getNamesByAddress(baseUrl: string) {\n return async function getNamesByAddress(address: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return [];\n }\n throw error;\n };\n return await RequestClient.get<string[]>(`${baseUrl}/rlookup/${address}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getNamesByOwner(baseUrl: string) {\n return async function getNamesByOwner(address: string) {\n const errorHandler = (error: any) => {\n // Handle specific error cases\n if (error?.cause?.status === 404) {\n return [];\n }\n throw error;\n };\n return await RequestClient.get<string[]>(`${baseUrl}/owner/${address}`, {\n onError: errorHandler,\n retry: { maxRetries: 1 },\n });\n };\n}\n\nfunction getPoolAsset({ asset, value }: { asset: string; value: string }) {\n return AssetValue.from({ asset, fromBaseDecimal: getChainConfig(Chain.THORChain).baseDecimal, value });\n}\n\nfunction getLiquidityPosition<IsThorchain extends boolean = true>({\n liquidityPositionGetter,\n isThorchain,\n}: {\n liquidityPositionGetter: ReturnType<\n typeof getLiquidityPositionRaw<IsThorchain extends true ? typeof Chain.THORChain : typeof Chain.Maya>\n >;\n isThorchain: IsThorchain;\n}) {\n return async function getLiquidityPosition(address: string) {\n const rawLiquidityPositions = await liquidityPositionGetter(address);\n const fieldPrefix = isThorchain ? \"rune\" : \"cacao\";\n\n return rawLiquidityPositions.pools.map((p) => ({\n [`${fieldPrefix}Pending`]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runePending }),\n [`${fieldPrefix}RegisteredAddress`]: p.runeAddress,\n [`${fieldPrefix}Withdrawn`]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runeWithdrawn }),\n [fieldPrefix]: getPoolAsset({ asset: \"THOR.RUNE\", value: p.runeAdded }),\n asset: getPoolAsset({ asset: p.pool, value: p.assetAdded }),\n assetPending: getPoolAsset({ asset: p.pool, value: p.assetPending }),\n assetRegisteredAddress: p.assetAddress,\n assetWithdrawn: getPoolAsset({ asset: p.pool, value: p.assetWithdrawn }),\n dateFirstAdded: p.dateFirstAdded,\n dateLastAdded: p.dateLastAdded,\n poolShare: new USwapNumber(p.liquidityUnits).div(p.pool),\n }));\n };\n}\n\nfunction getMidgardMethodsForProtocol<T extends TCLikeChain>(chain: T) {\n const isThorchain = chain === Chain.THORChain;\n const midgardBaseUrl = getMidgardBaseUrl(isThorchain);\n const nameServiceBaseUrl = getNameServiceBaseUrl(isThorchain);\n const liquidityPositionGetter = getLiquidityPositionRaw<T>(midgardBaseUrl);\n\n return {\n getActions: getActions(midgardBaseUrl),\n getBalance: getBalance(midgardBaseUrl),\n getConstants: getConstants(midgardBaseUrl),\n getEarningsHistory: getEarningsHistory(midgardBaseUrl),\n getHealth: getHealth(midgardBaseUrl),\n getLiquidityPosition: getLiquidityPosition({ isThorchain, liquidityPositionGetter }),\n getLiquidityPositionRaw: liquidityPositionGetter,\n getMembers: getMembers(midgardBaseUrl),\n getMimir: getMimir(midgardBaseUrl),\n getMimirVotes: getMimirVotes(midgardBaseUrl),\n getNameDetails: getNameDetails(nameServiceBaseUrl),\n getNamesByAddress: getNamesByAddress(nameServiceBaseUrl),\n getNamesByOwner: getNamesByOwner(nameServiceBaseUrl),\n getNetworkInfo: getNetworkInfo(midgardBaseUrl),\n getNode: getNode(midgardBaseUrl),\n getNodes: getNodes(midgardBaseUrl),\n getPool: getPool(midgardBaseUrl),\n getPoolDepthHistory: getPoolDepthHistory(midgardBaseUrl),\n getPoolStats: getPoolStats(midgardBaseUrl),\n getPools: getPools(midgardBaseUrl),\n getSaverDetails: getSaverDetails(midgardBaseUrl),\n getSavers: getSavers(midgardBaseUrl),\n getSaversHistory: getSaversHistory(midgardBaseUrl),\n getStats: getStats(midgardBaseUrl),\n getSwapHistory: getSwapHistory(midgardBaseUrl),\n getTVLHistory: getTVLHistory(midgardBaseUrl),\n };\n}\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
|
|
8
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { AssetValue, RequestClient, USwapConfig } from \"@tcswap/helpers\";\nimport { MAYAConfig, StagenetMAYAConfig, StagenetTHORConfig, THORConfig } from \"@tcswap/types\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n TCYClaimerResponse,\n TCYClaimersResponse,\n TCYStakerResponse,\n TCYStakersResponse,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\nfunction baseUrl(type?: THORNodeType) {\n const { isStagenet } = USwapConfig.get(\"envs\");\n\n switch (type) {\n case \"mayachain\": {\n const nodeUrl = isStagenet ? StagenetMAYAConfig.nodeUrl : MAYAConfig.nodeUrl;\n return `${nodeUrl}/mayachain`;\n }\n default: {\n const nodeUrl = isStagenet ? StagenetTHORConfig.nodeUrl : THORConfig.nodeUrl;\n\n return `${nodeUrl}/thorchain`;\n }\n }\n}\n\nfunction getNameServiceBaseUrl(type?: THORNodeType) {\n const nsType = type === \"mayachain\" ? \"mayaname\" : \"thorname\";\n\n return `${baseUrl(type)}/${nsType}`;\n}\n\nexport function getLastBlock<T extends THORNodeType = \"thorchain\">(type: T = \"thorchain\" as T) {\n return RequestClient.get<LastBlockItem<T>[]>(`${baseUrl(type)}/lastblock`);\n}\n\nexport function getThorchainQueue(type?: THORNodeType) {\n return RequestClient.get(`${baseUrl(type)}/queue`);\n}\n\nexport function getNodes(type?: THORNodeType) {\n return RequestClient.get<NodeItem[]>(`${baseUrl(type)}/nodes`);\n}\n\nexport function getMimirInfo(type?: THORNodeType) {\n return RequestClient.get<MimirData>(`${baseUrl(type)}/mimir`);\n}\n\nexport function getInboundAddresses(type?: THORNodeType) {\n return RequestClient.get<InboundAddressesItem[]>(`${baseUrl(type)}/inbound_addresses`);\n}\n\nexport async function getTHORNodeTNSDetails({\n type,\n name,\n}: {\n type?: THORNodeType;\n name: string;\n}): Promise<THORNodeTNSDetails> {\n try {\n const result = await RequestClient.get<THORNodeTNSDetails>(`${getNameServiceBaseUrl(type)}/${name}`);\n return result;\n } catch {\n return { affiliate_collector_rune: \"\", aliases: [], expire_block_height: 0, name, owner: \"\", preferred_asset: \"\" };\n }\n}\n\nexport async function getTNSPreferredAsset({ type, tns }: { type?: THORNodeType; tns: string }) {\n const tnsDetails = await getTHORNodeTNSDetails({ name: tns, type });\n\n if (!tnsDetails.preferred_asset || tnsDetails.preferred_asset === \".\") return undefined;\n\n return AssetValue.from({ asset: tnsDetails.preferred_asset, asyncTokenLookup: true });\n}\n\nexport function getRunePoolInfo(type?: THORNodeType) {\n return RequestClient.get<RunePoolInfo>(`${baseUrl(type)}/runepool`);\n}\n\nexport function getRunePoolProviderInfo({ type, thorAddress }: { type?: THORNodeType; thorAddress: string }) {\n return RequestClient.get<RunePoolProviderInfo>(`${baseUrl(type)}/rune_provider/${thorAddress}`);\n}\n\nexport function getTcyStaker({ type, address }: { type?: THORNodeType; address: string }) {\n return RequestClient.get<TCYStakerResponse>(`${baseUrl(type)}/tcy_staker/${address}`);\n}\n\nexport function getTcyStakers(type?: THORNodeType) {\n return RequestClient.get<TCYStakersResponse>(`${baseUrl(type)}/tcy_stakers`);\n}\n\nexport function getTcyClaimer({ type, address }: { type?: THORNodeType; address: string }) {\n return RequestClient.get<TCYClaimerResponse>(`${baseUrl(type)}/tcy_claimer/${address}`);\n}\n\nexport function getTcyClaimers(type?: THORNodeType) {\n return RequestClient.get<TCYClaimersResponse>(`${baseUrl(type)}/tcy_claimers`);\n}\n",
|
|
9
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport {\n type Chain,\n type EVMChain,\n EVMChains,\n isGasAsset,\n type ProviderName,\n RequestClient,\n type RequestOptions,\n USwapConfig,\n USwapError,\n} from \"@tcswap/helpers\";\nimport { match, P } from \"ts-pattern\";\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type NearDepositChannelParams,\n type NearSwapResponse,\n NearSwapResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n type QuoteResponseRoute,\n QuoteResponseRouteItem,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerResponse,\n TrackerResponseSchema,\n type TrackingRequest,\n} from \"./types\";\n\nconst USwapRequestClient = RequestClient.extend({\n dynamicHeader: () => {\n const { uSwap } = USwapConfig.get(\"apiKeys\");\n return uSwap ? { \"x-api-key\": uSwap } : {};\n },\n});\n\nexport async function getTrackerDetails(json: TrackingRequest, options?: RequestOptions) {\n const response = await USwapRequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), { json, ...options });\n\n try {\n const parsedResponse = TrackerResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n // throw new USwapError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getSwapQuote(json: QuoteRequest, options?: RequestOptions) {\n const { getQuote } = USwapConfig.get(\"endpoints\");\n\n if (getQuote) return getQuote(json);\n\n const response = await USwapRequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), { json, ...options });\n\n if (response.error) {\n throw new USwapError(\"api_v2_server_error\", { message: response.error });\n }\n\n try {\n const parsedResponse = QuoteResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch {\n // throw new USwapError(\"api_v2_invalid_response\", error);\n return response;\n }\n}\n\nexport async function getRouteWithTx(json: { routeId: string; sourceAddress: string; destinationAddress: string }) {\n const { getRouteWithTx } = USwapConfig.get(\"endpoints\");\n\n if (getRouteWithTx) return getRouteWithTx(json);\n\n const response = await USwapRequestClient.post<QuoteResponseRoute>(getApiUrl(\"/swap\"), { json });\n\n try {\n const parsedResponse = QuoteResponseRouteItem.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n console.error(new USwapError(\"api_v2_invalid_response\", error));\n return response;\n }\n}\n\nexport async function getChainBalance<T extends Chain>({\n chain,\n address,\n scamFilter = true,\n}: {\n chain: T;\n address: string;\n scamFilter?: boolean;\n}) {\n const { getBalance } = USwapConfig.get(\"endpoints\");\n if (getBalance) return getBalance({ address, chain });\n\n const url = getApiUrl(`/balance?chain=${chain}&address=${address}`);\n const balanceResponse = await USwapRequestClient.get<BalanceResponse>(url);\n const balances = Array.isArray(balanceResponse) ? balanceResponse : [];\n return scamFilter ? filterAssets(balances) : balances;\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return USwapRequestClient.get<TokenListProvidersResponse>(url);\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return USwapRequestClient.get<TokensResponseV2>(url);\n}\n\nexport async function getPrice(body: PriceRequest) {\n const url = getApiUrl(\"/price\");\n const response = await USwapRequestClient.post<PriceResponse>(url, { json: body });\n\n try {\n const parsedResponse = PriceResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getGasRate() {\n const url = getApiUrl(\"/gas\");\n const response = await USwapRequestClient.get<GasResponse>(url);\n\n try {\n const parsedResponse = GasResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n const gasRates = Array.isArray(parsedResponse) ? parsedResponse : [parsedResponse];\n return gasRates;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getChainflipDepositChannel(body: BrokerDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new USwapError(\"chainflip_broker_invalid_params\");\n }\n const url = USwapConfig.get(\"integrations\").chainflip?.brokerUrl || getApiUrl(\"/chainflip/broker/channel\");\n\n const response = await USwapRequestClient.post<DepositChannelResponse>(url, { json: body });\n\n try {\n const parsedResponse = DepositChannelResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getNearDepositChannel(body: NearDepositChannelParams) {\n const { destinationAddress } = body;\n\n if (!destinationAddress) {\n throw new USwapError(\"chainflip_broker_invalid_params\");\n }\n const url = getApiUrl(\"/near/channel\");\n\n const response = await USwapRequestClient.post<NearSwapResponse>(url, { json: body });\n\n try {\n const parsedResponse = NearSwapResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new USwapError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new USwapError(\"api_v2_invalid_response\", error);\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl, experimental_apiUrlQuote, experimental_apiUrlSwap } = USwapConfig.get(\"envs\");\n\n const defaultUrl = `${isDev ? devApiUrl : apiUrl}${path}`;\n\n return match({ experimental_apiUrlQuote, experimental_apiUrlSwap, path })\n .with(\n { experimental_apiUrlQuote: P.string.startsWith(\"http\"), path: \"/quote\" },\n ({ experimental_apiUrlQuote, path }) => `${experimental_apiUrlQuote}${path}`,\n )\n .with(\n { experimental_apiUrlSwap: P.string.startsWith(\"http\"), path: \"/swap\" },\n ({ experimental_apiUrlSwap, path }) => `${experimental_apiUrlSwap}${path}`,\n )\n .otherwise(() => defaultUrl);\n}\n\nfunction evmAssetHasAddress(assetString: string) {\n const [chain, symbol] = assetString.split(\".\") as [EVMChain, string];\n if (!EVMChains.includes(chain as EVMChain)) return true;\n const splitSymbol = symbol.split(\"-\");\n const address = splitSymbol.length === 1 ? undefined : splitSymbol[splitSymbol.length - 1];\n\n return isGasAsset({ chain: chain as Chain, symbol }) || !!address;\n}\n\nconst potentialScamRegex = new RegExp(/(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/, \"gmi\");\nfunction filterAssets(tokens: BalanceResponse) {\n return tokens.filter((token) => {\n return !potentialScamRegex.test(token.identifier) && evmAssetHasAddress(token.identifier);\n });\n}\n",
|
|
10
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport { ErrorCode, FeeTypeEnum, ProviderName, WarningCodeEnum } from \"@tcswap/helpers\";\nimport { Chain, ChainId } from \"@tcswap/types\";\nimport { array, boolean, coerce, number, object, optional, string, union, unknown, type ZodType, z } from \"zod/v4\";\n\nexport enum PriorityLabel {\n CHEAPEST = \"CHEAPEST\",\n FASTEST = \"FASTEST\",\n RECOMMENDED = \"RECOMMENDED\",\n}\n\nexport enum RouteQuoteTxType {\n PSBT = \"PSBT\",\n EVM = \"EVM\",\n COSMOS = \"COSMOS\",\n RADIX = \"RADIX\",\n}\n\nexport enum TxnType {\n approve = \"approve\",\n claim = \"claim\",\n deposit = \"deposit\",\n donate = \"donate\",\n lending = \"lending\",\n lp_action = \"lp_action\",\n native_contract_call = \"native_contract_call\",\n native_send = \"native_send\",\n stake = \"stake\",\n streaming_swap = \"streaming_swap\",\n swap = \"swap\",\n thorname_action = \"thorname_action\",\n token_contract_call = \"token_contract_call\",\n token_transfer = \"token_transfer\",\n unknown = \"unknown\",\n unstake = \"unstake\",\n}\n\nexport enum ProviderAction {\n swap = \"swap\",\n aggregation = \"aggregation\",\n addLiquidity = \"addLiquidity\",\n withdrawLiquidity = \"withdrawLiquidity\",\n addSavers = \"addSavers\",\n withdrawSavers = \"withdrawSavers\",\n borrow = \"borrow\",\n repay = \"repay\",\n name = \"name\",\n donate = \"donate\",\n claim = \"claim\",\n stake = \"stake\",\n unstake = \"unstake\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\n refunded = \"refunded\",\n failed = \"failed\",\n}\n\nexport enum TrackingStatus {\n not_started = \"not_started\",\n starting = \"starting\",\n broadcasted = \"broadcasted\",\n mempool = \"mempool\",\n inbound = \"inbound\",\n outbound = \"outbound\",\n swapping = \"swapping\",\n completed = \"completed\",\n refunded = \"refunded\",\n partially_refunded = \"partially_refunded\",\n dropped = \"dropped\",\n reverted = \"reverted\",\n replaced = \"replaced\",\n retries_exceeded = \"retries_exceeded\",\n parsing_error = \"parsing_error\",\n}\n\ntype TokenProviderVersion = { major: number; minor: number; patch: number };\n\nexport type TokenListProvidersResponse = Array<{\n provider: ProviderName;\n name: string;\n timestamp: string;\n version: TokenProviderVersion;\n keywords: string[];\n count: number;\n url: string;\n}>;\n\nexport type TokensResponseV2 = {\n chainId: ChainId;\n count: number;\n keywords: string[];\n name: string;\n provider: ProviderName;\n timestamp: string;\n tokens: Token[];\n version: TokenProviderVersion;\n};\n\nexport const TokenSchema = object({\n address: optional(string()),\n chain: z.enum(Chain).optional(),\n chainId: z.enum(ChainId),\n coingeckoId: optional(string()),\n decimals: coerce.number(),\n extensions: optional(z.looseObject({})),\n identifier: string(),\n logoURI: optional(string()),\n name: optional(string()),\n shortCode: optional(string()),\n symbol: optional(string()),\n ticker: string(),\n});\n\nexport type Token = z.infer<typeof TokenSchema>;\n\nexport const TrackingRequestSchema = z\n .object({\n block: z.optional(z.number().describe(\"Block number. Required for Polkadot chain. e.g. `123456`\")),\n chainId: z.optional(z.string().describe(\"ChainId for the hash. e.g. `thorchain-1`\")),\n depositChannelId: z.optional(\n z.string().describe(\"Deposit channel ID, required for Chainflip if tx was broadcasted without wallet connection\"),\n ),\n hash: z.optional(\n z\n .string()\n .describe(\n \"Hash for the first transaction broadcasted by the end user. e.g. `88D1819378ECD09E5284C54937CDC1E99B52F253C007617A02DD1200710CE677`\",\n ),\n ),\n })\n .refine((data) => (data.hash && data.chainId) || data.depositChannelId, {\n message: \"Either `hash` and `chainId` or `depositChannelId` must be provided\",\n });\n\nexport const TrackingRequestQuerySchema = z.object({\n forceUpdate: z\n .string()\n .toLowerCase()\n .transform((x) => x === \"true\")\n .pipe(z.boolean())\n .optional(),\n});\n\nexport type TrackingRequest = z.infer<typeof TrackingRequestSchema>;\n\nexport const ApiV2ErrorSchema = object({ error: string(), message: string() });\n\nexport const AssetValueSchema = object({\n address: optional(string()),\n chain: z.enum(Chain),\n decimal: optional(number()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n symbol: string(),\n tax: optional(object({ buy: number(), sell: number() })),\n ticker: string(),\n});\n\nexport const TokenDetailsMetadataSchema = object({\n id: string(),\n market_cap: number(),\n name: string(),\n price_change_24h_usd: number(),\n price_change_percentage_24h_usd: number(),\n sparkline_in_7d: array(number()),\n timestamp: string(),\n total_volume: number(),\n});\n\nexport const PriceResponseSchema = array(\n object({\n cg: TokenDetailsMetadataSchema.optional(),\n identifier: string(),\n price_usd: number(),\n provider: string(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n affiliate: optional(string().describe(\"Affiliate thorname\")),\n affiliateFee: optional(\n number()\n .describe(\"Affiliate fee in basis points\")\n .refine((fee) => fee === Math.floor(fee) && fee >= 0, {\n message: \"affiliateFee must be a positive integer\",\n path: [\"affiliateFee\"],\n }),\n ),\n allowSmartContractReceiver: optional(boolean().describe(\"Allow smart contract as recipient\")),\n allowSmartContractSender: optional(boolean().describe(\"Allow smart contract as sender\")),\n buyAsset: string().describe(\"Asset to buy\"),\n cfBoost: optional(boolean().describe(\"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\")),\n destinationAddress: optional(string().describe(\"Address to send asset to\")),\n disableSecurityChecks: optional(boolean().describe(\"Disable security checks\")),\n dry: optional(boolean().describe(\"Set to false to include an transaction object\")),\n providers: optional(\n array(\n string()\n .describe(\"List of providers to use\")\n .refine((provider) => ProviderName[provider as ProviderName] !== undefined, {\n message: \"Invalid provider\",\n path: [\"providers\"],\n }),\n ),\n ),\n referrer: optional(string().describe(\"Referrer address (referral program)\")),\n refundAddress: optional(string().describe(\"Address to refund\")),\n sellAmount: string()\n .describe(\"Amount of asset to sell\")\n .refine((amount) => +amount > 0, { message: \"sellAmount must be greater than 0\", path: [\"sellAmount\"] }),\n sellAsset: string().describe(\"Asset to sell\"),\n slippage: optional(number().describe(\"Slippage tolerance as a percentage. Default is 3%.\")),\n sourceAddress: optional(string().describe(\"Address to send asset from\")),\n}).refine((data) => data.sellAsset !== data.buyAsset, {\n message: \"Must be different\",\n path: [\"sellAsset\", \"buyAsset\"],\n});\n\nexport type QuoteRequest = z.infer<typeof QuoteRequestSchema>;\n\nexport const PriceRequestSchema = object({ metadata: boolean(), tokens: array(object({ identifier: string() })) });\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const DepositChannelParamsSchema = object({ destinationAddress: string() });\n\nexport const BrokerDepositChannelParamsSchema = DepositChannelParamsSchema.extend({\n affiliateFees: array(object({ brokerAddress: string(), feeBps: number() })).optional(),\n brokerCommissionBps: number().optional(),\n buyAsset: object({ asset: string(), chain: string() }),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n dcaParameters: object({ chunkInterval: number().optional(), numberOfChunks: number().optional() }).optional(),\n maxBoostFeeBps: number().optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n sellAsset: object({ asset: string(), chain: string() }),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({ channelId: string(), depositAddress: string() });\n\nexport const NearDepositChannelParamsSchema = DepositChannelParamsSchema.extend({\n affiliateFees: object({ feeBps: number(), nearId: string() }).optional(),\n buyAsset: string(),\n sellAmount: string(),\n sellAsset: string(),\n slippage: coerce.number(),\n sourceAddress: string(),\n});\n\nexport type NearDepositChannelParams = z.infer<typeof NearDepositChannelParamsSchema>;\n\nconst NearQuoteResponseSchema = object({\n amountIn: string(),\n amountInFormatted: string(),\n amountInUsd: string(),\n amountOut: string(),\n amountOutFormatted: string(),\n amountOutUsd: string(),\n deadline: string().optional(),\n minAmountIn: string(),\n minAmountOut: string(),\n timeEstimate: number().optional(),\n timeWhenInactive: string().optional(),\n});\n\nexport const NearDepositChannelResultSchema = NearQuoteResponseSchema.extend({\n depositAddress: string(),\n quote: NearQuoteResponseSchema,\n signature: string(),\n timestamp: string(),\n tx: unknown(),\n});\n\nexport type NearDepositChannelResult = z.infer<typeof NearDepositChannelResultSchema>;\n\nexport const NearSwapResponseSchema = object({\n buyAsset: string(),\n buyAssetAmount: string(),\n buyAssetAmountMaxSlippage: string(),\n deadline: string().optional(),\n depositAddress: string(),\n depositAmount: string(),\n depositAsset: string(),\n tx: unknown(),\n});\n\nexport type NearSwapResponse = z.infer<typeof NearSwapResponseSchema>;\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: z.optional(z.string()),\n intentHash: z.optional(z.string()),\n logs: z.optional(z.unknown()),\n manifest: z.optional(z.unknown()),\n memo: z.optional(z.string()),\n spender: z.optional(z.string()),\n thorname: z.optional(z.string()),\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\nconst TransactionEstimatesSchema = object({\n currentStage: string(),\n inboundConfirmation: number(),\n inboundObservation: number(),\n outboundDelay: number(),\n outboundObservation: number(),\n streamingSwap: number(),\n});\n\nexport type TransactionEstimates = z.infer<typeof TransactionEstimatesSchema>;\n\nconst TransactionStreamingDetailsSchema = object({\n count: optional(number()),\n interval: optional(number()),\n quantity: optional(number()),\n subSwapsMap: optional(array(number())),\n});\n\nexport type TransactionStreamingDetails = z.infer<typeof TransactionStreamingDetailsSchema>;\n\nconst TxnTransientSchema = z.object({\n currentLegIndex: z.optional(z.number()),\n estimatedTimeToComplete: z.number(),\n estimates: z.optional(TransactionEstimatesSchema),\n providerDetails: z.optional(z.object({ streamingDetails: z.optional(TransactionStreamingDetailsSchema) })),\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n protocol: optional(AssetValueSchema), // extra protocol fees (TS dex aggregation contracts, stargate fees, etc.)\n tax: optional(AssetValueSchema), // taxed tokens\n});\n\nexport type TransactionFees = z.infer<typeof TransactionFeesSchema>;\n\nconst TxnMetaAffiliateFeesSchema = object({ affiliate: string(), bps: string(), isReferrer: boolean() });\n\nconst TxnMetaSchema = object({\n affiliate: optional(string()),\n affiliateFees: optional(array(TxnMetaAffiliateFeesSchema)),\n broadcastedAt: optional(number()),\n explorerUrl: optional(string()),\n fees: optional(TransactionFeesSchema),\n images: optional(\n object({\n chain: optional(string()),\n from: optional(string()),\n provider: optional(string()),\n to: optional(string()),\n }),\n ),\n provider: optional(z.enum(ProviderName)),\n providerAction: z.optional(z.enum(ProviderAction)),\n wallet: optional(string()),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = z.object({\n block: z.number(),\n chainId: z.enum(ChainId),\n finalAddress: z.optional(z.string()),\n finalAsset: z.optional(AssetValueSchema),\n finalisedAt: z.number(),\n fromAddress: z.string(),\n fromAmount: z.string(),\n fromAsset: z.string(),\n hash: z.string(),\n meta: z.optional(TxnMetaSchema),\n payload: z.optional(TxnPayloadSchema),\n status: z.enum(TxnStatus),\n toAddress: z.string(),\n toAmount: z.string(),\n toAsset: z.string(),\n trackingStatus: z.optional(z.enum(TrackingStatus)),\n transient: z.optional(TxnTransientSchema),\n type: z.enum(TxnType),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TrackerResponseSchema: z.ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport type TrackerResponse = z.infer<typeof TrackerResponseSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({ legs: array(TransactionLegDTOSchema) });\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & { legs: TransactionLegDTO[] };\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: z.enum(ProviderName),\n type: z.enum(FeeTypeEnum),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = z.object({\n inbound: z.optional(z.number().describe(\"Time to receive inbound asset in seconds\")),\n outbound: z.optional(z.number().describe(\"Time to receive outbound asset in seconds\")),\n swap: z.optional(z.number().describe(\"Time to swap assets in seconds\")),\n total: z.number().describe(\"Total time in seconds\"),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n data: string().describe(\"Data to send\"),\n from: string().describe(\"Address of the sender\"),\n to: string().describe(\"Address of the recipient\"),\n value: string().describe(\"Value to send\"),\n});\n\nexport type EVMTransaction = z.infer<typeof EVMTransactionSchema>;\n\nexport const EVMTransactionDetailsParamsSchema = array(\n union([\n string(),\n number(),\n array(string()),\n object({ from: string(), value: string() }).describe(\"Parameters to pass to the contract method\"),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n approvalSpender: optional(string().describe(\"Address of the spender to approve\")),\n approvalToken: optional(string().describe(\"Address of the token to approve spending of\")),\n contractAddress: string().describe(\"Address of the contract to interact with\"),\n contractMethod: string().describe(\"Name of the method to call\"),\n contractParamNames: array(string().describe(\"Names of the parameters to pass to the contract method\")),\n contractParams: EVMTransactionDetailsParamsSchema,\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({ typeUrl: string(), value: unknown() });\n\nconst FeeSchema = object({ amount: array(object({ amount: string(), denom: string() })), gas: string() });\n\nexport const CosmosTransactionSchema = object({\n accountNumber: number(),\n chainId: z.enum(ChainId),\n fee: FeeSchema,\n memo: string(),\n msgs: array(EncodeObjectSchema),\n sequence: number(),\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n affiliate: string().describe(\"Affiliate address\").optional(),\n affiliateFee: number().describe(\"Affiliate fee\").optional(),\n buyAsset: string().describe(\"Asset to buy\"),\n destinationAddress: string().describe(\"Destination address\"),\n estimatedTime: EstimatedTimeSchema.optional(),\n provider: z.enum(ProviderName),\n sellAsset: string().describe(\"Asset to sell\"),\n slipPercentage: number().describe(\"Slippage as a percentage\"),\n sourceAddress: string().describe(\"Source address\"),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n destinationAddress: true,\n slipPercentage: true,\n sourceAddress: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string().describe(\"Asset name\"),\n image: string().describe(\"Asset image\"),\n price: number().describe(\"Price in USD\"),\n});\n\nexport type RouteQuoteMetadataAsset = z.infer<typeof RouteQuoteMetadataAssetSchema>;\n\nexport const ChainflipMetadataSchema = BrokerDepositChannelParamsSchema;\n\nexport type ChainflipMetadata = z.infer<typeof ChainflipMetadataSchema>;\n\nexport const RouteQuoteMetadataSchema = object({\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n maxStreamingQuantity: number().optional(),\n referrer: string().optional(),\n streamingInterval: number().optional(),\n tags: array(z.enum(PriorityLabel)).optional(),\n});\n\nexport const RouteQuoteMetadataV2Schema = RouteQuoteMetadataSchema.extend({\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n approvalAddress: optional(string().describe(\"Approval address for swap\")),\n chainflip: ChainflipMetadataSchema.optional(),\n garden: NearDepositChannelParamsSchema.optional(),\n near: NearDepositChannelParamsSchema.optional(),\n priceImpact: optional(number().describe(\"Price impact\")),\n referrer: optional(string()),\n txType: optional(z.enum(RouteQuoteTxType)),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: z.enum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n buyAmount: string().describe(\"Buy amount\"),\n buyAmountMaxSlippage: string().describe(\"Buy amount max slippage\"),\n buyAsset: string().describe(\"Asset to buy\"),\n fees: optional(FeesSchema),\n provider: z.enum(ProviderName),\n sellAmount: string().describe(\"Sell amount\"),\n sellAsset: string().describe(\"Asset to sell\"),\n});\n\nexport const QuoteResponseRouteItem = object({\n buyAsset: string().describe(\"Asset to buy\"),\n destinationAddress: optional(string().describe(\"Destination address\")),\n estimatedTime: optional(EstimatedTimeSchema),\n expectedBuyAmount: string().describe(\"Expected Buy amount\"),\n expectedBuyAmountMaxSlippage: optional(string().describe(\"Expected Buy amount max slippage\")),\n expiration: optional(string().describe(\"Expiration\")),\n fees: FeesSchema,\n inboundAddress: optional(string().describe(\"Inbound address\")),\n legs: optional(array(QuoteResponseRouteLegItem)),\n memo: optional(string().describe(\"Memo\")),\n meta: optional(RouteQuoteMetadataV2Schema),\n providers: array(z.enum(ProviderName)),\n refundAddress: optional(string().describe(\"Refund address\")),\n sellAmount: string().describe(\"Sell amount\"),\n sellAsset: string().describe(\"Asset to sell\"),\n sourceAddress: optional(string().describe(\"Source address\")),\n targetAddress: optional(string().describe(\"Target address\")),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n txType: optional(z.enum(RouteQuoteTxType)),\n warnings: optional(RouteQuoteWarningSchema),\n});\n\nexport const QuoteResponseSchema = object({\n error: optional(string().describe(\"Error message\")),\n providerErrors: optional(\n array(\n object({\n errorCode: optional(z.enum(ErrorCode)),\n message: optional(string()),\n provider: z.enum(ProviderName).optional(),\n }),\n ),\n ),\n routes: array(QuoteResponseRouteItem),\n});\n\nexport type QuoteResponse = z.infer<typeof QuoteResponseSchema>;\nexport type QuoteResponseRoute = z.infer<typeof QuoteResponseRouteItem>;\nexport type QuoteResponseRouteLeg = z.infer<typeof QuoteResponseRouteLegItem>;\n\nexport const GasSchema = z.object({\n chainId: z.enum(ChainId),\n createdAt: z.date(),\n id: z.number(),\n unit: z.string(),\n value: z.string(),\n});\n\nconst GasSchemaArray = z.array(GasSchema);\n\nexport const GasResponseSchema = z.union([GasSchema, GasSchemaArray]);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: z.enum(Chain),\n decimal: number(),\n identifier: string(),\n symbol: string(),\n ticker: string(),\n value: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
|
|
11
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport * as memoless from \"./memoless/endpoints\";\nimport { mayachainMidgard, thorchainMidgard } from \"./midgard/endpoints\";\nimport * as thornode from \"./thornode/endpoints\";\nimport * as uswap from \"./uswap/endpoints\";\n\nexport * from \"./memoless/types\";\nexport * from \"./midgard/types\";\nexport * from \"./thornode/types\";\nexport * from \"./uswap/types\";\n\nexport const USwapApi = { ...uswap, ...memoless, mayachainMidgard, thorchainMidgard, thornode };\n"
|
|
12
|
+
],
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "86EEF623ABAC513564756E2164756E21",
|
|
15
|
+
"names": []
|
|
16
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var k=(a,c,b)=>{b=a!=null?g(h(a)):{};let d=c||!a||!a.__esModule?f(b,"default",{value:a,enumerable:!0}):b;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var l=(a,c)=>{for(var b in c)f(a,b,{get:c[b],enumerable:!0,configurable:!0,set:(d)=>c[b]=()=>d})};var m=((a)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(c,b)=>(typeof require<"u"?require:c)[b]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});
|
|
2
|
+
export{k as a,l as b,m as c};
|
|
3
|
+
|
|
4
|
+
//# debugId=940CF069C6466DBE64756E2164756E21
|
|
5
|
+
//# sourceMappingURL=chunk-pfmeq01a.js.map
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var j=Object.create;var{getPrototypeOf:k,defineProperty:e,getOwnPropertyNames:f,getOwnPropertyDescriptor:l}=Object,g=Object.prototype.hasOwnProperty,m=(a,c,d)=>{for(let b of f(c))if(!g.call(a,b)&&b!=="default")e(a,b,{get:()=>c[b],enumerable:!0});if(d){for(let b of f(c))if(!g.call(d,b)&&b!=="default")e(d,b,{get:()=>c[b],enumerable:!0});return d}},n=(a,c,d)=>{d=a!=null?j(k(a)):{};let b=c||!a||!a.__esModule?e(d,"default",{value:a,enumerable:!0}):d;for(let h of f(a))if(!g.call(b,h))e(b,h,{get:()=>a[h],enumerable:!0});return b},i=new WeakMap,o=(a)=>{var c=i.get(a),d;if(c)return c;if(c=e({},"__esModule",{value:!0}),a&&typeof a==="object"||typeof a==="function")f(a).map((b)=>!g.call(c,b)&&e(c,b,{get:()=>a[b],enumerable:!(d=l(a,b))||d.enumerable}));return i.set(a,c),c};var p=(a,c)=>{for(var d in c)e(a,d,{get:c[d],enumerable:!0,configurable:!0,set:(b)=>c[d]=()=>b})};
|
|
2
|
+
|
|
3
|
+
//# debugId=5B7366231CF0CA5E64756E2164756E21
|
|
4
|
+
//# sourceMappingURL=chunk-vb4wtm2w.js.map
|