@swapkit/helpers 3.0.0-beta.12 → 3.0.0-beta.13
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 +2 -2
- package/dist/api/index.cjs.map +6 -6
- package/dist/api/index.js +2 -2
- package/dist/api/index.js.map +6 -6
- package/dist/{chunk-hk0jx7rp.js → chunk-7shcm26h.js} +3 -3
- package/dist/{chunk-hk0jx7rp.js.map → chunk-7shcm26h.js.map} +1 -1
- package/dist/chunk-8fdws4se.js +4 -0
- package/dist/chunk-8fdws4se.js.map +10 -0
- package/dist/{chunk-k2m9hvag.js → chunk-b8hashv0.js} +3 -3
- package/dist/{chunk-k2m9hvag.js.map → chunk-b8hashv0.js.map} +1 -1
- package/dist/{chunk-c4ndre32.js → chunk-bf0ph1bk.js} +3 -3
- package/dist/{chunk-c4ndre32.js.map → chunk-bf0ph1bk.js.map} +1 -1
- package/dist/{chunk-4mz4n5jc.js → chunk-bh986mnf.js} +3 -3
- package/dist/{chunk-4mz4n5jc.js.map → chunk-bh986mnf.js.map} +1 -1
- package/dist/{chunk-hbnf5tky.js → chunk-dzypg9sp.js} +3 -3
- package/dist/{chunk-hbnf5tky.js.map → chunk-dzypg9sp.js.map} +1 -1
- package/dist/{chunk-mt3sdnfg.js → chunk-ghdhtvtt.js} +3 -3
- package/dist/{chunk-mt3sdnfg.js.map → chunk-ghdhtvtt.js.map} +1 -1
- package/dist/{chunk-3ts9cha8.js → chunk-jhmhh7ax.js} +3 -3
- package/dist/{chunk-3ts9cha8.js.map → chunk-jhmhh7ax.js.map} +1 -1
- package/dist/{chunk-frkpmajq.js → chunk-nm1av1e6.js} +3 -3
- package/dist/{chunk-frkpmajq.js.map → chunk-nm1av1e6.js.map} +1 -1
- package/dist/{chunk-4edjz16h.js → chunk-rarep8vg.js} +3 -3
- package/dist/{chunk-4edjz16h.js.map → chunk-rarep8vg.js.map} +1 -1
- package/dist/{chunk-2vqx8ecy.js → chunk-rr043vwc.js} +3 -3
- package/dist/{chunk-2vqx8ecy.js.map → chunk-rr043vwc.js.map} +1 -1
- package/dist/{chunk-ganzk321.js → chunk-s82pm7xc.js} +2 -2
- package/dist/{chunk-ganzk321.js.map → chunk-s82pm7xc.js.map} +1 -1
- package/dist/chunk-sb9hymk1.js +3 -0
- package/dist/chunk-sb9hymk1.js.map +10 -0
- package/dist/{chunk-prm0g9b0.js → chunk-tn4e7zrk.js} +3 -3
- package/dist/{chunk-prm0g9b0.js.map → chunk-tn4e7zrk.js.map} +1 -1
- package/dist/{chunk-zv69dnwn.js → chunk-vadspc46.js} +3 -3
- package/dist/{chunk-zv69dnwn.js.map → chunk-vadspc46.js.map} +1 -1
- package/dist/{chunk-qpz3c078.js → chunk-vgg88vt8.js} +3 -3
- package/dist/{chunk-qpz3c078.js.map → chunk-vgg88vt8.js.map} +1 -1
- package/dist/{chunk-qkreqkaa.js → chunk-wssz50sc.js} +3 -3
- package/dist/{chunk-qkreqkaa.js.map → chunk-wssz50sc.js.map} +1 -1
- package/dist/contracts/index.js +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +15 -16
- package/dist/index.js +3 -3
- package/dist/index.js.map +15 -16
- package/dist/tokens/index.js +2 -2
- package/dist/tokens/index.js.map +2 -2
- package/package.json +2 -2
- package/src/api/midgard/endpoints.ts +6 -47
- package/src/api/swapkitApi/endpoints.ts +9 -26
- package/src/api/swapkitApi/types.ts +1 -1
- package/src/api/thornode/endpoints.ts +8 -26
- package/src/modules/__tests__/assetValue.test.ts +42 -0
- package/src/modules/__tests__/swapKitNumber.test.ts +4 -5
- package/src/modules/assetValue.ts +12 -28
- package/src/modules/bigIntArithmetics.ts +12 -1
- package/src/modules/requestClient.ts +36 -22
- package/src/modules/swapKitConfig.ts +1 -29
- package/src/modules/swapKitError.ts +294 -105
- package/src/types/chains.ts +45 -37
- package/src/types/derivationPath.ts +1 -0
- package/src/types/wallet.ts +2 -0
- package/src/utils/asset.ts +3 -2
- package/src/utils/memo.ts +5 -11
- package/src/utils/others.ts +1 -2
- package/src/utils/wallets.ts +4 -1
package/dist/api/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var mE={};Y(mE,{TxnType:()=>v,TxnStatus:()=>$,TransactionSchema:()=>FA,TransactionDTOSchema:()=>UA,TrackingStatus:()=>f,TokenDetailsMetadataSchema:()=>s,SwapKitApi:()=>NE,RouteQuoteWarningSchema:()=>NA,RouteQuoteTxType:()=>U,RouteQuoteMetadataSchema:()=>rA,RouteQuoteMetadataAssetSchema:()=>EA,RouteLegWithoutAddressesSchema:()=>$A,RouteLegSchema:()=>AA,QuoteResponseSchema:()=>Q,QuoteRequestSchema:()=>BA,PriorityLabel:()=>W,PriceResponseSchema:()=>Z,PriceRequestSchema:()=>MA,GasResponseSchema:()=>t,FeesSchema:()=>J,EstimatedTimeSchema:()=>j,EVMTransactionSchema:()=>l,EVMTransactionDetailsSchema:()=>gA,EVMTransactionDetailsParamsSchema:()=>p,DepositChannelResponseSchema:()=>z,CosmosTransactionSchema:()=>a,ChainflipMetadataSchema:()=>nA,BrokerDepositChannelParamsSchema:()=>e,AssetValueSchema:()=>M,ApiV2ErrorSchema:()=>SA});module.exports=rE(mE);var g={};Y(g,{getTNSChainAddress:()=>TA,getTHORNamesByOwner:()=>IA,getTHORNamesByAddress:()=>OA,getTHORNameDetails:()=>k,getTHORChainPools:()=>uA,getLiquidityPositionsRaw:()=>c,getLiquidityPositions:()=>bA});var L=require("@swapkit/helpers"),_="https://mu.thorswap.net";function k(E){return L.RequestClient.get(`${_}/thorname/lookup/${E}`)}function IA(E){return L.RequestClient.get(`${_}/thorname/owner/${E}`)}function OA(E){return L.RequestClient.get(`${_}/thorname/address/${E}`)}function uA(E){return L.RequestClient.get(`${_}/pools`,{searchParams:{period:E}})}function c(E){return L.RequestClient.get(`${_}/fullmember?address=${E.join(",")}`)}async function TA({chain:E,tns:n}){return(await k(n))?.entries?.find((N)=>N.chain.toLowerCase()===E.toLowerCase())?.address}async function bA(E){return(await c(E)).map((r)=>({assetRegisteredAddress:r.assetAddress,asset:L.AssetValue.from({asset:r.pool,value:r.assetAdded,fromBaseDecimal:L.BaseDecimal.THOR}),assetPending:L.AssetValue.from({asset:r.pool,value:r.assetPending,fromBaseDecimal:L.BaseDecimal.THOR}),assetWithdrawn:L.AssetValue.from({asset:r.pool,value:r.assetWithdrawn,fromBaseDecimal:L.BaseDecimal.THOR}),runeRegisteredAddress:r.runeAddress,rune:L.AssetValue.from({asset:"THOR.RUNE",value:r.runeAdded,fromBaseDecimal:L.BaseDecimal.THOR}),runePending:L.AssetValue.from({asset:"THOR.RUNE",value:r.runePending,fromBaseDecimal:L.BaseDecimal.THOR}),runeWithdrawn:L.AssetValue.from({asset:"THOR.RUNE",value:r.runeWithdrawn,fromBaseDecimal:L.BaseDecimal.THOR}),poolShare:new L.SwapKitNumber(r.sharedUnits).div(r.poolUnits),dateLastAdded:r.dateLastAdded,dateFirstAdded:r.dateFirstAdded}))}var I=require("@swapkit/helpers"),X=()=>{let E=I.SKConfig.get("apiHeaders");return I.RequestClient.extend({headers:E.midgard||{}})};function d(E=!0){let{isStagenet:n}=I.SKConfig.get("envs"),r=I.SKConfig.get("midgardUrls");if(E){let m=n?I.StagenetChain.THORChain:I.Chain.THORChain;if(r[m])return r[m];return n?"https://stagenet-midgard.ninerealms.com":"https://midgard.ninerealms.com"}let N=n?I.StagenetChain.Maya:I.Chain.Maya;if(r[N])return r[N];return n?"https://stagenet-midgard.mayachain.info":"https://midgard.mayachain.info"}function HA(E=!0){let n=d(E);return E?`${n}/v2/thorname`:`${n}/v2/mayaname`}function DA(E){return function n(r){return X().get(`${E}/v2/member/${r}`)}}function CA(E){return function n(r){return X().get(`${E}/lookup/${r}`)}}function PA(E){return function n(r){return X().get(`${E}/rlookup/${r}`)}}function RA(E){return function n(r){return X().get(`${E}/owner/${r}`)}}function V({asset:E,value:n}){return I.AssetValue.from({asset:E,value:n,fromBaseDecimal:I.BaseDecimal.THOR})}function GA({liquidityPositionGetter:E,isThorchain:n}){return async function r(N){let m=await E(N),T=n?"rune":"cacao";return m.pools.map((b)=>({[`${T}Pending`]:V({asset:"THOR.RUNE",value:b.runePending}),[`${T}RegisteredAddress`]:b.runeAddress,[`${T}Withdrawn`]:V({asset:"THOR.RUNE",value:b.runeWithdrawn}),[T]:V({asset:"THOR.RUNE",value:b.runeAdded}),asset:V({asset:b.pool,value:b.assetAdded}),assetPending:V({asset:b.pool,value:b.assetPending}),assetRegisteredAddress:b.assetAddress,assetWithdrawn:V({asset:b.pool,value:b.assetWithdrawn}),dateFirstAdded:b.dateFirstAdded,dateLastAdded:b.dateLastAdded,poolShare:new I.SwapKitNumber(b.liquidityUnits).div(b.pool)}))}}function y(E){let n=E===I.Chain.THORChain,r=d(n),N=HA(n),m=DA(r);return{getLiquidityPositionRaw:m,getNameDetails:CA(N),getNamesByAddress:PA(N),getNamesByOwner:RA(N),getLiquidityPosition:GA({liquidityPositionGetter:m,isThorchain:n})}}var i=y(I.Chain.THORChain),q=y(I.Chain.Maya);var K={};Y(K,{getTrackerDetails:()=>zA,getTokenListProviders:()=>x,getTokenList:()=>QA,getSwapQuote:()=>JA,getPrice:()=>tA,getGasRate:()=>xA,getChainflipDepositChannel:()=>KA,getChainBalance:()=>jA});var u=require("@swapkit/helpers");var O=require("@swapkit/helpers"),A=require("zod"),W;((N)=>{N.CHEAPEST="CHEAPEST";N.FASTEST="FASTEST";N.RECOMMENDED="RECOMMENDED"})(W||={});var U;((m)=>{m.PSBT="PSBT";m.EVM="EVM";m.COSMOS="COSMOS";m.RADIX="RADIX"})(U||={});var v;((D)=>{D.native_send="native_send";D.token_transfer="token_transfer";D.native_contract_call="native_contract_call";D.token_contract_call="token_contract_call";D.approve="approve";D.deposit="deposit";D.thorname_action="thorname_action";D.lp_action="lp_action";D.swap="swap";D.streaming_swap="streaming_swap";D.stake="stake";D.claim="claim";D.lending="lending";D.unknown="unknown"})(v||={});var $;((T)=>{T.unknown="unknown";T.not_started="not_started";T.pending="pending";T.swapping="swapping";T.completed="completed"})($||={});var f;((H)=>{H.not_started="not_started";H.starting="starting";H.broadcasted="broadcasted";H.mempool="mempool";H.inbound="inbound";H.outbound="outbound";H.swapping="swapping";H.completed="completed";H.refunded="refunded";H.partially_refunded="partially_refunded";H.dropped="dropped";H.reverted="reverted";H.replaced="replaced";H.retries_exceeded="retries_exceeded";H.parsing_error="parsing_error"})(f||={});var SA=A.object({error:A.string(),message:A.string()}),M=A.object({chain:A.nativeEnum(O.Chain),symbol:A.string(),ticker:A.string(),decimal:A.optional(A.number()),address:A.optional(A.string()),isGasAsset:A.boolean(),isSynthetic:A.boolean(),tax:A.optional(A.object({buy:A.number(),sell:A.number()}))}),s=A.object({id:A.string(),market_cap:A.number(),name:A.string(),price_change_24h_usd:A.number(),price_change_percentage_24h_usd:A.number(),sparkline_in_7d:A.array(A.number()),timestamp:A.string(),total_volume:A.number()}),Z=A.array(A.object({identifier:A.string(),provider:A.string(),cg:s.optional(),price_usd:A.number(),timestamp:A.number()}).partial()),BA=A.object({sellAsset:A.string({description:"Asset to sell"}),buyAsset:A.string({description:"Asset to buy"}),sellAmount:A.string({description:"Amount of asset to sell"}).refine((E)=>+E>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:A.optional(A.array(A.string({description:"List of providers to use"}).refine((E)=>O.ProviderName[E]!==void 0,{message:"Invalid provider",path:["providers"]}))),sourceAddress:A.optional(A.string({description:"Address to send asset from"})),destinationAddress:A.optional(A.string({description:"Address to send asset to"})),slippage:A.optional(A.number({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:A.optional(A.string({description:"Affiliate thorname"})),affiliateFee:A.optional(A.number({description:"Affiliate fee in basis points"}).refine((E)=>E===Math.floor(E)&&E>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:A.optional(A.boolean({description:"Allow smart contract as sender"})),allowSmartContractReceiver:A.optional(A.boolean({description:"Allow smart contract as recipient"})),disableSecurityChecks:A.optional(A.boolean({description:"Disable security checks"})),includeTx:A.optional(A.boolean({description:"Set to true to include an transaction object (EVM only)"})),cfBoost:A.optional(A.boolean({description:"Set to true to enable CF boost to speed up Chainflip swaps. BTC only."})),referrer:A.optional(A.string({description:"Referrer address (referral program)"}))}).refine((E)=>E.sellAsset!==E.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),MA=A.object({tokens:A.array(A.object({identifier:A.string()})),metadata:A.boolean()}),e=A.object({sellAsset:A.object({chain:A.string(),asset:A.string()}),buyAsset:A.object({chain:A.string(),asset:A.string()}),destinationAddress:A.string(),channelMetadata:A.object({cfParameters:A.string().optional(),gasBudget:A.string().optional(),message:A.string().optional()}).optional(),affiliateFees:A.array(A.object({brokerAddress:A.string(),feeBps:A.number()})).optional(),refundParameters:A.object({minPrice:A.string().optional(),refundAddress:A.string().optional(),retryDuration:A.number().optional()}).optional(),dcaParameters:A.object({chunkInterval:A.number().optional(),numberOfChunks:A.number().optional()}).optional(),brokerCommissionBps:A.number().optional(),maxBoostFeeBps:A.number().optional()}),z=A.object({channelId:A.string(),depositAddress:A.string()}),VA=A.object({evmCalldata:A.optional(A.string()),logs:A.optional(A.unknown()),memo:A.optional(A.string()),spender:A.optional(A.string())}),YA=A.object({estimatedFinalisedAt:A.number(),estimatedTimeToComplete:A.number(),updatedAt:A.number(),currentLegIndex:A.optional(A.number()),providerDetails:A.optional(A.unknown())}),_A=A.object({network:A.optional(M),affiliate:A.optional(M),liquidity:A.optional(M),protocol:A.optional(M),tax:A.optional(M)}),XA=A.object({broadcastedAt:A.optional(A.number()),wallet:A.optional(A.string()),quoteId:A.optional(A.string()),explorerUrl:A.optional(A.string()),affiliate:A.optional(A.string()),fees:A.optional(_A),provider:A.optional(A.nativeEnum(O.ProviderName)),images:A.optional(A.object({from:A.optional(A.string()),to:A.optional(A.string()),provider:A.optional(A.string()),chain:A.optional(A.string())}))}),F=A.object({chainId:A.nativeEnum(O.ChainId),hash:A.string(),block:A.number(),type:A.nativeEnum(v),status:A.nativeEnum($),trackingStatus:A.optional(A.nativeEnum(f)),fromAsset:A.string(),fromAmount:A.string(),fromAddress:A.string(),toAsset:A.string(),toAmount:A.string(),toAddress:A.string(),finalAsset:A.optional(M),finalAddress:A.optional(A.string()),finalisedAt:A.number(),transient:A.optional(YA),meta:A.optional(XA),payload:A.optional(VA)}),FA=F.extend({legs:A.array(F)}),UA=F.extend({legs:A.array(F)}),J=A.array(A.object({type:A.nativeEnum(O.FeeTypeEnum),amount:A.string(),asset:A.string(),chain:A.string(),protocol:A.nativeEnum(O.ProviderName)})),j=A.object({inbound:A.optional(A.number({description:"Time to receive inbound asset in seconds"})),swap:A.optional(A.number({description:"Time to swap assets in seconds"})),outbound:A.optional(A.number({description:"Time to receive outbound asset in seconds"})),total:A.number({description:"Total time in seconds"})}),l=A.object({to:A.string({description:"Address of the recipient"}),from:A.string({description:"Address of the sender"}),value:A.string({description:"Value to send"}),data:A.string({description:"Data to send"})}),p=A.array(A.union([A.string(),A.number(),A.array(A.string()),A.object({from:A.string(),value:A.string()}).describe("Parameters to pass to the contract method")])),gA=A.object({contractAddress:A.string({description:"Address of the contract to interact with"}),contractMethod:A.string({description:"Name of the method to call"}),contractParams:p,contractParamNames:A.array(A.string({description:"Names of the parameters to pass to the contract method"})),approvalToken:A.optional(A.string({description:"Address of the token to approve spending of"})),approvalSpender:A.optional(A.string({description:"Address of the spender to approve"}))}),WA=A.object({typeUrl:A.string(),value:A.unknown()}),vA=A.object({amount:A.array(A.object({denom:A.string(),amount:A.string()})),gas:A.string()}),a=A.object({memo:A.string(),accountNumber:A.number(),sequence:A.number(),chainId:A.nativeEnum(O.ChainId),msgs:A.array(WA),fee:vA}),AA=A.object({sellAsset:A.string({description:"Asset to sell"}),buyAsset:A.string({description:"Asset to buy"}),provider:A.nativeEnum(O.ProviderName),sourceAddress:A.string({description:"Source address"}),destinationAddress:A.string({description:"Destination address"}),estimatedTime:j.optional(),affiliate:A.string({description:"Affiliate address"}).optional(),affiliateFee:A.number({description:"Affiliate fee"}).optional(),slipPercentage:A.number({description:"Slippage as a percentage"})}),$A=AA.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),EA=A.object({asset:A.string({description:"Asset name"}),price:A.number({description:"Price in USD"}),image:A.string({description:"Asset image"})}),nA=e,rA=A.object({priceImpact:A.optional(A.number({description:"Price impact"})),assets:A.optional(A.array(EA)),approvalAddress:A.optional(A.string({description:"Approval address for swap"})),streamingInterval:A.number().optional(),maxStreamingQuantity:A.number().optional(),tags:A.array(A.nativeEnum(W)),affiliate:A.optional(A.string()),affiliateFee:A.optional(A.string()),txType:A.optional(A.nativeEnum(U)),chainflip:A.optional(nA),referrer:A.optional(A.string())}),NA=A.array(A.object({code:A.nativeEnum(O.WarningCodeEnum),display:A.string(),tooltip:A.string().optional()})),fA=A.object({provider:A.nativeEnum(O.ProviderName),sellAsset:A.string({description:"Asset to sell"}),sellAmount:A.string({description:"Sell amount"}),buyAsset:A.string({description:"Asset to buy"}),buyAmount:A.string({description:"Buy amount"}),buyAmountMaxSlippage:A.string({description:"Buy amount max slippage"}),fees:A.optional(J)}),ZA=A.object({providers:A.array(A.nativeEnum(O.ProviderName)),sellAsset:A.string({description:"Asset to sell"}),sellAmount:A.string({description:"Sell amount"}),buyAsset:A.string({description:"Asset to buy"}),expectedBuyAmount:A.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:A.string({description:"Expected Buy amount max slippage"}),sourceAddress:A.string({description:"Source address"}),destinationAddress:A.string({description:"Destination address"}),targetAddress:A.optional(A.string({description:"Target address"})),inboundAddress:A.optional(A.string({description:"Inbound address"})),expiration:A.optional(A.string({description:"Expiration"})),memo:A.optional(A.string({description:"Memo"})),fees:J,txType:A.optional(A.nativeEnum(U)),tx:A.optional(A.union([l,a,A.string()])),estimatedTime:A.optional(j),totalSlippageBps:A.number({description:"Total slippage in bps"}),legs:A.array(fA),warnings:NA,meta:rA}),Q=A.object({quoteId:A.string({description:"Quote ID"}),routes:A.array(ZA),error:A.optional(A.string({description:"Error message"})),providerErrors:A.optional(A.array(A.object({provider:A.nativeEnum(O.ProviderName).optional(),errorCode:A.optional(A.nativeEnum(O.ErrorCode)),message:A.optional(A.string())})))}),t=A.array(A.object({id:A.number(),chainId:A.string(),value:A.string(),unit:A.string(),createdAt:A.string()})),IE=A.array(A.object({chain:A.nativeEnum(O.Chain),decimal:A.number(),ticker:A.string(),symbol:A.string(),value:A.string(),identifier:A.string()}));var R=()=>{let E=u.SKConfig.get("apiHeaders");return u.RequestClient.extend({headers:E.swapkitApi||{}})};function zA(E){return R().post(G("/track"),{json:E})}async function JA(E){let r=await R().post(G("/quote"),{json:E});if(r.error)throw new u.SwapKitError("api_v2_server_error",{message:r.error});try{let N=Q.safeParse(r);if(!N.success)throw new u.SwapKitError("api_v2_invalid_response",N.error);return N.data}catch(N){return console.warn(N),r}}async function jA({chain:E,address:n,scamFilter:r=!0}){let N=R(),m=G(`/balance?chain=${E}&address=${n}`),T=await N.get(m),b=Array.isArray(T)?T:[];return r?wA(b):b}function x(){let E=R(),n=G("/providers");return E.get(n)}function QA(E){let n=R(),r=G(`/tokens?provider=${E}`);return n.get(r)}async function tA(E){let n=R(),r=G("/price"),N=await n.post(r,{json:E});try{let m=Z.safeParse(N);if(!m.success)throw new u.SwapKitError("api_v2_invalid_response",m.error);return m.data}catch(m){throw new u.SwapKitError("api_v2_invalid_response",m)}}async function xA(){let E=R(),n=G("/gas"),r=await E.get(n);try{let N=t.safeParse(r);if(!N.success)throw new u.SwapKitError("api_v2_invalid_response",N.error);return N.data}catch(N){throw new u.SwapKitError("api_v2_invalid_response",N)}}async function KA(E){let{destinationAddress:n}=E;if(!n)throw new u.SwapKitError("chainflip_broker_invalid_params");let r=R(),N=u.SKConfig.get("integrations").chainflip?.brokerUrl||G("/channel"),m=await r.post(N,{json:E});try{let T=z.safeParse(m);if(!T.success)throw new u.SwapKitError("api_v2_invalid_response",T.error);return T.data}catch(T){throw new u.SwapKitError("api_v2_invalid_response",T)}}function G(E){let{isDev:n,apiUrl:r,devApiUrl:N}=u.SKConfig.get("envs");return`${n?N:r}${E}`}function oA(E){let[n,r]=E.split(".");if(!u.EVMChains.includes(n))return!0;let N=r.split("-"),m=N.length===1?void 0:N[N.length-1];return u.isGasAsset({chain:n,symbol:r})||!!m}var hA=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi");function wA(E){return E.filter((n)=>{return!hA.test(n.identifier)&&oA(n.identifier)})}var o={};Y(o,{getThorchainQueue:()=>dA,getTNSPreferredAsset:()=>sA,getTHORNodeTNSDetails:()=>mA,getRunePoolProviderInfo:()=>lA,getRunePoolInfo:()=>eA,getNodes:()=>yA,getMimirInfo:()=>iA,getLastBlock:()=>cA,getInboundAddresses:()=>qA});var C=require("@swapkit/helpers"),S=()=>{let E=C.SKConfig.get("apiHeaders");return C.RequestClient.extend({headers:E.thornode||{}})};function B(E){let{isStagenet:n}=C.SKConfig.get("envs"),r=C.SKConfig.get("nodeUrls");switch(E){case"mayachain":return`${r[n?C.StagenetChain.Maya:C.Chain.Maya]}/mayachain`;default:return`${r[n?C.StagenetChain.THORChain:C.Chain.THORChain]}/thorchain`}}function kA(E){let n=E==="mayachain"?"mayaname":"thorname";return`${B(E)}/${n}`}function cA(E="thorchain"){return S().get(`${B(E)}/lastblock`)}function dA(E){return S().get(`${B(E)}/queue`)}function yA(E){return S().get(`${B(E)}/nodes`)}function iA(E){return S().get(`${B(E)}/mimir`)}function qA(E){return S().get(`${B(E)}/inbound_addresses`)}async function mA({type:E,name:n}){try{return await S().get(`${kA(E)}/${n}`)}catch(r){return{name:n,expire_block_height:0,owner:"",preferred_asset:"",affiliate_collector_rune:"",aliases:[]}}}async function sA({type:E,tns:n}){let r=await mA({name:n,type:E});if(!r.preferred_asset||r.preferred_asset===".")return;return C.AssetValue.from({asyncTokenLookup:!0,asset:r.preferred_asset})}function eA(E){return S().get(`${B(E)}/runepool`)}function lA({type:E,thorAddress:n}){return S().get(`${B(E)}/rune_provider/${n}`)}var w={};Y(w,{getStaticTokenList:()=>pA,getProviderLogo:()=>EE,getLogoForAsset:()=>aA,getChainLogoForAsset:()=>AE});var P=require("@swapkit/helpers");var h="https://static.thorswap.net";function pA(E){return P.RequestClient.get(`${h}/token-list/${E}.json`)}function aA(E){let n=nE(E);return`${h}/token-list/images/${n}.png`}function AE(E){let{chain:n}=P.AssetValue.from({asset:E}),r=P.getChainIdentifier(n).toLowerCase();return`${h}/token-list/images/${r}.png`}var LA;async function EE(E){return LA||=await x(),LA.find((n)=>n.name===E)?.url}function nE(E){let{symbol:n}=P.AssetValue.from({asset:E});if(n===P.Chain.Ethereum)return"eth.eth";return E.toLowerCase()}var NE={...K,...w,mayachainMidgard:q,microgard:g,thorchainMidgard:i,thornode:o};
|
|
1
|
+
var ir={};d(ir,{TxnType:()=>h,TxnStatus:()=>B,TransactionSchema:()=>an,TransactionDTOSchema:()=>Sn,TrackingStatus:()=>M,TokenDetailsMetadataSchema:()=>Z,SwapKitApi:()=>tr,RouteQuoteWarningSchema:()=>en,RouteQuoteTxType:()=>R,RouteQuoteMetadataSchema:()=>rn,RouteQuoteMetadataAssetSchema:()=>p,RouteLegWithoutAddressesSchema:()=>Gn,RouteLegSchema:()=>q,QuoteResponseSchema:()=>F,QuoteRequestSchema:()=>Hn,PriorityLabel:()=>S,PriceResponseSchema:()=>G,PriceRequestSchema:()=>gn,GasResponseSchema:()=>Y,FeesSchema:()=>c,EstimatedTimeSchema:()=>V,EVMTransactionSchema:()=>J,EVMTransactionDetailsSchema:()=>hn,EVMTransactionDetailsParamsSchema:()=>j,DepositChannelResponseSchema:()=>U,CosmosTransactionSchema:()=>Q,ChainflipMetadataSchema:()=>nn,BrokerDepositChannelParamsSchema:()=>z,AssetValueSchema:()=>H,ApiV2ErrorSchema:()=>Cn});module.exports=er(ir);var a={};d(a,{getTNSChainAddress:()=>Nn,getTHORNamesByOwner:()=>mn,getTHORNamesByAddress:()=>un,getTHORNameDetails:()=>$,getTHORChainPools:()=>En,getLiquidityPositionsRaw:()=>W,getLiquidityPositions:()=>sn});var m=require("@swapkit/helpers"),D="https://mu.thorswap.net";function $(r){return m.RequestClient.get(`${D}/thorname/lookup/${r}`)}function mn(r){return m.RequestClient.get(`${D}/thorname/owner/${r}`)}function un(r){return m.RequestClient.get(`${D}/thorname/address/${r}`)}function En(r){return m.RequestClient.get(`${D}/pools`,{searchParams:{period:r}})}function W(r){return m.RequestClient.get(`${D}/fullmember?address=${r.join(",")}`)}async function Nn({chain:r,tns:e}){return(await $(e))?.entries?.find((i)=>i.chain.toLowerCase()===r.toLowerCase())?.address}async function sn(r){return(await W(r)).map((t)=>({assetRegisteredAddress:t.assetAddress,asset:m.AssetValue.from({asset:t.pool,value:t.assetAdded,fromBaseDecimal:m.BaseDecimal.THOR}),assetPending:m.AssetValue.from({asset:t.pool,value:t.assetPending,fromBaseDecimal:m.BaseDecimal.THOR}),assetWithdrawn:m.AssetValue.from({asset:t.pool,value:t.assetWithdrawn,fromBaseDecimal:m.BaseDecimal.THOR}),runeRegisteredAddress:t.runeAddress,rune:m.AssetValue.from({asset:"THOR.RUNE",value:t.runeAdded,fromBaseDecimal:m.BaseDecimal.THOR}),runePending:m.AssetValue.from({asset:"THOR.RUNE",value:t.runePending,fromBaseDecimal:m.BaseDecimal.THOR}),runeWithdrawn:m.AssetValue.from({asset:"THOR.RUNE",value:t.runeWithdrawn,fromBaseDecimal:m.BaseDecimal.THOR}),poolShare:new m.SwapKitNumber(t.sharedUnits).div(t.poolUnits),dateLastAdded:t.dateLastAdded,dateFirstAdded:t.dateFirstAdded}))}var T=require("@swapkit/helpers");function y(r=!0){return r?"https://midgard.ninerealms.com":"https://midgard.mayachain.info"}function Ln(r=!0){let e=y(r);return r?`${e}/v2/thorname`:`${e}/v2/mayaname`}function Tn(r){return function e(t){return T.RequestClient.get(`${r}/v2/member/${t}`)}}function In(r){return function e(t){return T.RequestClient.get(`${r}/lookup/${t}`)}}function On(r){return function e(t){return T.RequestClient.get(`${r}/rlookup/${t}`)}}function bn(r){return function e(t){return T.RequestClient.get(`${r}/owner/${t}`)}}function g({asset:r,value:e}){return T.AssetValue.from({asset:r,value:e,fromBaseDecimal:T.BaseDecimal.THOR})}function on({liquidityPositionGetter:r,isThorchain:e}){return async function t(i){let u=await r(i),O=e?"rune":"cacao";return u.pools.map((s)=>({[`${O}Pending`]:g({asset:"THOR.RUNE",value:s.runePending}),[`${O}RegisteredAddress`]:s.runeAddress,[`${O}Withdrawn`]:g({asset:"THOR.RUNE",value:s.runeWithdrawn}),[O]:g({asset:"THOR.RUNE",value:s.runeAdded}),asset:g({asset:s.pool,value:s.assetAdded}),assetPending:g({asset:s.pool,value:s.assetPending}),assetRegisteredAddress:s.assetAddress,assetWithdrawn:g({asset:s.pool,value:s.assetWithdrawn}),dateFirstAdded:s.dateFirstAdded,dateLastAdded:s.dateLastAdded,poolShare:new T.SwapKitNumber(s.liquidityUnits).div(s.pool)}))}}function x(r){let e=r===T.Chain.THORChain,t=y(e),i=Ln(e),u=Tn(t);return{getLiquidityPositionRaw:u,getNameDetails:In(i),getNamesByAddress:On(i),getNamesByOwner:bn(i),getLiquidityPosition:on({liquidityPositionGetter:u,isThorchain:e})}}var l=x(T.Chain.THORChain),k=x(T.Chain.Maya);var X={};d(X,{getTrackerDetails:()=>Vn,getTokenListProviders:()=>_,getTokenList:()=>_n,getSwapQuote:()=>Fn,getPrice:()=>Xn,getGasRate:()=>fn,getChainflipDepositChannel:()=>vn,getChainBalance:()=>Yn});var A=require("@swapkit/helpers");var N=require("@swapkit/helpers"),n=require("zod");var S;((i)=>{i.CHEAPEST="CHEAPEST";i.FASTEST="FASTEST";i.RECOMMENDED="RECOMMENDED"})(S||={});var R;((u)=>{u.PSBT="PSBT";u.EVM="EVM";u.COSMOS="COSMOS";u.RADIX="RADIX"})(R||={});var h;((I)=>{I.native_send="native_send";I.token_transfer="token_transfer";I.native_contract_call="native_contract_call";I.token_contract_call="token_contract_call";I.approve="approve";I.deposit="deposit";I.thorname_action="thorname_action";I.lp_action="lp_action";I.swap="swap";I.streaming_swap="streaming_swap";I.stake="stake";I.claim="claim";I.lending="lending";I.unknown="unknown"})(h||={});var B;((O)=>{O.unknown="unknown";O.not_started="not_started";O.pending="pending";O.swapping="swapping";O.completed="completed"})(B||={});var M;((L)=>{L.not_started="not_started";L.starting="starting";L.broadcasted="broadcasted";L.mempool="mempool";L.inbound="inbound";L.outbound="outbound";L.swapping="swapping";L.completed="completed";L.refunded="refunded";L.partially_refunded="partially_refunded";L.dropped="dropped";L.reverted="reverted";L.replaced="replaced";L.retries_exceeded="retries_exceeded";L.parsing_error="parsing_error"})(M||={});var Cn=n.object({error:n.string(),message:n.string()}),H=n.object({chain:n.nativeEnum(N.Chain),symbol:n.string(),ticker:n.string(),decimal:n.optional(n.number()),address:n.optional(n.string()),isGasAsset:n.boolean(),isSynthetic:n.boolean(),tax:n.optional(n.object({buy:n.number(),sell:n.number()}))}),Z=n.object({id:n.string(),market_cap:n.number(),name:n.string(),price_change_24h_usd:n.number(),price_change_percentage_24h_usd:n.number(),sparkline_in_7d:n.array(n.number()),timestamp:n.string(),total_volume:n.number()}),G=n.array(n.object({identifier:n.string(),provider:n.string(),cg:Z.optional(),price_usd:n.number(),timestamp:n.number()}).partial()),Hn=n.object({sellAsset:n.string({description:"Asset to sell"}),buyAsset:n.string({description:"Asset to buy"}),sellAmount:n.string({description:"Amount of asset to sell"}).refine((r)=>+r>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:n.optional(n.array(n.string({description:"List of providers to use"}).refine((r)=>N.ProviderName[r]!==void 0,{message:"Invalid provider",path:["providers"]}))),sourceAddress:n.optional(n.string({description:"Address to send asset from"})),destinationAddress:n.optional(n.string({description:"Address to send asset to"})),slippage:n.optional(n.number({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:n.optional(n.string({description:"Affiliate thorname"})),affiliateFee:n.optional(n.number({description:"Affiliate fee in basis points"}).refine((r)=>r===Math.floor(r)&&r>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:n.optional(n.boolean({description:"Allow smart contract as sender"})),allowSmartContractReceiver:n.optional(n.boolean({description:"Allow smart contract as recipient"})),disableSecurityChecks:n.optional(n.boolean({description:"Disable security checks"})),includeTx:n.optional(n.boolean({description:"Set to true to include an transaction object (EVM only)"})),cfBoost:n.optional(n.boolean({description:"Set to true to enable CF boost to speed up Chainflip swaps. BTC only."})),referrer:n.optional(n.string({description:"Referrer address (referral program)"}))}).refine((r)=>r.sellAsset!==r.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),gn=n.object({tokens:n.array(n.object({identifier:n.string()})),metadata:n.boolean()}),z=n.object({sellAsset:n.object({chain:n.string(),asset:n.string()}),buyAsset:n.object({chain:n.string(),asset:n.string()}),destinationAddress:n.string(),channelMetadata:n.object({cfParameters:n.string().optional(),gasBudget:n.string().optional(),message:n.string().optional()}).optional(),affiliateFees:n.array(n.object({brokerAddress:n.string(),feeBps:n.number()})).optional(),refundParameters:n.object({minPrice:n.string().optional(),refundAddress:n.string().optional(),retryDuration:n.number().optional()}).optional(),dcaParameters:n.object({chunkInterval:n.number().optional(),numberOfChunks:n.number().optional()}).optional(),brokerCommissionBps:n.number().optional(),maxBoostFeeBps:n.number().optional()}),U=n.object({channelId:n.string(),depositAddress:n.string()}),dn=n.object({evmCalldata:n.optional(n.string()),logs:n.optional(n.unknown()),memo:n.optional(n.string()),spender:n.optional(n.string())}),Dn=n.object({estimatedFinalisedAt:n.number(),estimatedTimeToComplete:n.number(),updatedAt:n.number(),currentLegIndex:n.optional(n.number()),providerDetails:n.optional(n.unknown())}),Pn=n.object({network:n.optional(H),affiliate:n.optional(H),liquidity:n.optional(H),protocol:n.optional(H),tax:n.optional(H)}),Rn=n.object({broadcastedAt:n.optional(n.number()),wallet:n.optional(n.string()),quoteId:n.optional(n.string()),explorerUrl:n.optional(n.string()),affiliate:n.optional(n.string()),fees:n.optional(Pn),provider:n.optional(n.nativeEnum(N.ProviderName)),images:n.optional(n.object({from:n.optional(n.string()),to:n.optional(n.string()),provider:n.optional(n.string()),chain:n.optional(n.string())}))}),P=n.object({chainId:n.nativeEnum(N.ChainId),hash:n.string(),block:n.number(),type:n.nativeEnum(h),status:n.nativeEnum(B),trackingStatus:n.optional(n.nativeEnum(M)),fromAsset:n.string(),fromAmount:n.string(),fromAddress:n.string(),toAsset:n.string(),toAmount:n.string(),toAddress:n.string(),finalAsset:n.optional(H),finalAddress:n.optional(n.string()),finalisedAt:n.number(),transient:n.optional(Dn),meta:n.optional(Rn),payload:n.optional(dn)}),an=P.extend({legs:n.array(P)}),Sn=P.extend({legs:n.array(P)}),c=n.array(n.object({type:n.nativeEnum(N.FeeTypeEnum),amount:n.string(),asset:n.string(),chain:n.string(),protocol:n.nativeEnum(N.ProviderName)})),V=n.object({inbound:n.optional(n.number({description:"Time to receive inbound asset in seconds"})),swap:n.optional(n.number({description:"Time to swap assets in seconds"})),outbound:n.optional(n.number({description:"Time to receive outbound asset in seconds"})),total:n.number({description:"Total time in seconds"})}),J=n.object({to:n.string({description:"Address of the recipient"}),from:n.string({description:"Address of the sender"}),value:n.string({description:"Value to send"}),data:n.string({description:"Data to send"})}),j=n.array(n.union([n.string(),n.number(),n.array(n.string()),n.object({from:n.string(),value:n.string()}).describe("Parameters to pass to the contract method")])),hn=n.object({contractAddress:n.string({description:"Address of the contract to interact with"}),contractMethod:n.string({description:"Name of the method to call"}),contractParams:j,contractParamNames:n.array(n.string({description:"Names of the parameters to pass to the contract method"})),approvalToken:n.optional(n.string({description:"Address of the token to approve spending of"})),approvalSpender:n.optional(n.string({description:"Address of the spender to approve"}))}),Bn=n.object({typeUrl:n.string(),value:n.unknown()}),Mn=n.object({amount:n.array(n.object({denom:n.string(),amount:n.string()})),gas:n.string()}),Q=n.object({memo:n.string(),accountNumber:n.number(),sequence:n.number(),chainId:n.nativeEnum(N.ChainId),msgs:n.array(Bn),fee:Mn}),q=n.object({sellAsset:n.string({description:"Asset to sell"}),buyAsset:n.string({description:"Asset to buy"}),provider:n.nativeEnum(N.ProviderName),sourceAddress:n.string({description:"Source address"}),destinationAddress:n.string({description:"Destination address"}),estimatedTime:V.optional(),affiliate:n.string({description:"Affiliate address"}).optional(),affiliateFee:n.number({description:"Affiliate fee"}).optional(),slipPercentage:n.number({description:"Slippage as a percentage"})}),Gn=q.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),p=n.object({asset:n.string({description:"Asset name"}),price:n.number({description:"Price in USD"}),image:n.string({description:"Asset image"})}),nn=z,rn=n.object({priceImpact:n.optional(n.number({description:"Price impact"})),assets:n.optional(n.array(p)),approvalAddress:n.optional(n.string({description:"Approval address for swap"})),streamingInterval:n.number().optional(),maxStreamingQuantity:n.number().optional(),tags:n.array(n.nativeEnum(S)),affiliate:n.optional(n.string()),affiliateFee:n.optional(n.string()),txType:n.optional(n.nativeEnum(R)),chainflip:n.optional(nn),referrer:n.optional(n.string())}),en=n.array(n.object({code:n.nativeEnum(N.WarningCodeEnum),display:n.string(),tooltip:n.string().optional()})),Un=n.object({provider:n.nativeEnum(N.ProviderName),sellAsset:n.string({description:"Asset to sell"}),sellAmount:n.string({description:"Sell amount"}),buyAsset:n.string({description:"Asset to buy"}),buyAmount:n.string({description:"Buy amount"}),buyAmountMaxSlippage:n.string({description:"Buy amount max slippage"}),fees:n.optional(c)}),cn=n.object({providers:n.array(n.nativeEnum(N.ProviderName)),sellAsset:n.string({description:"Asset to sell"}),sellAmount:n.string({description:"Sell amount"}),buyAsset:n.string({description:"Asset to buy"}),expectedBuyAmount:n.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:n.string({description:"Expected Buy amount max slippage"}),sourceAddress:n.string({description:"Source address"}),destinationAddress:n.string({description:"Destination address"}),targetAddress:n.optional(n.string({description:"Target address"})),inboundAddress:n.optional(n.string({description:"Inbound address"})),expiration:n.optional(n.string({description:"Expiration"})),memo:n.optional(n.string({description:"Memo"})),fees:c,txType:n.optional(n.nativeEnum(R)),tx:n.optional(n.union([J,Q,n.string()])),estimatedTime:n.optional(V),totalSlippageBps:n.number({description:"Total slippage in bps"}),legs:n.array(Un),warnings:en,meta:rn}),F=n.object({quoteId:n.string({description:"Quote ID"}),routes:n.array(cn),error:n.optional(n.string({description:"Error message"})),providerErrors:n.optional(n.array(n.object({provider:n.nativeEnum(N.ProviderName).optional(),errorCode:n.optional(n.nativeEnum(K)),message:n.optional(n.string())})))}),Y=n.array(n.object({id:n.number(),chainId:n.string(),value:n.string(),unit:n.string(),createdAt:n.string()})),ur=n.array(n.object({chain:n.nativeEnum(N.Chain),decimal:n.number(),ticker:n.string(),symbol:n.string(),value:n.string(),identifier:n.string()}));function Vn(r){return A.RequestClient.post(o("/track"),{json:r})}async function Fn(r){let e=await A.RequestClient.post(o("/quote"),{json:r});if(e.error)throw new A.SwapKitError("api_v2_server_error",{message:e.error});try{let t=F.safeParse(e);if(!t.success)throw new A.SwapKitError("api_v2_invalid_response",t.error);return t.data}catch(t){return e}}async function Yn({chain:r,address:e,scamFilter:t=!0}){let i=o(`/balance?chain=${r}&address=${e}`),u=await A.RequestClient.get(i),O=Array.isArray(u)?u:[];return t?Wn(O):O}function _(){let r=o("/providers");return A.RequestClient.get(r)}function _n(r){let e=o(`/tokens?provider=${r}`);return A.RequestClient.get(e)}async function Xn(r){let e=o("/price"),t=await A.RequestClient.post(e,{json:r});try{let i=G.safeParse(t);if(!i.success)throw new A.SwapKitError("api_v2_invalid_response",i.error);return i.data}catch(i){throw new A.SwapKitError("api_v2_invalid_response",i)}}async function fn(){let r=o("/gas"),e=await A.RequestClient.get(r);try{let t=Y.safeParse(e);if(!t.success)throw new A.SwapKitError("api_v2_invalid_response",t.error);return t.data}catch(t){throw new A.SwapKitError("api_v2_invalid_response",t)}}async function vn(r){let{destinationAddress:e}=r;if(!e)throw new A.SwapKitError("chainflip_broker_invalid_params");let t=A.SKConfig.get("integrations").chainflip?.brokerUrl||o("/channel"),i=await A.RequestClient.post(t,{json:r});try{let u=U.safeParse(i);if(!u.success)throw new A.SwapKitError("api_v2_invalid_response",u.error);return u.data}catch(u){throw new A.SwapKitError("api_v2_invalid_response",u)}}function o(r){let{isDev:e,apiUrl:t,devApiUrl:i}=A.SKConfig.get("envs");return`${e?i:t}${r}`}function wn(r){let[e,t]=r.split(".");if(!A.EVMChains.includes(e))return!0;let i=t.split("-"),u=i.length===1?void 0:i[i.length-1];return A.isGasAsset({chain:e,symbol:t})||!!u}var $n=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi");function Wn(r){return r.filter((e)=>{return!$n.test(e.identifier)&&wn(e.identifier)})}var f={};d(f,{getThorchainQueue:()=>ln,getTNSPreferredAsset:()=>zn,getTHORNodeTNSDetails:()=>tn,getRunePoolProviderInfo:()=>jn,getRunePoolInfo:()=>Jn,getNodes:()=>kn,getMimirInfo:()=>Kn,getLastBlock:()=>xn,getInboundAddresses:()=>Zn});var E=require("@swapkit/helpers");function C(r){let{isStagenet:e}=E.SKConfig.get("envs"),t=E.SKConfig.get("nodeUrls");switch(r){case"mayachain":return`${t[e?E.StagenetChain.Maya:E.Chain.Maya]}/mayachain`;default:return`${t[e?E.StagenetChain.THORChain:E.Chain.THORChain]}/thorchain`}}function yn(r){let e=r==="mayachain"?"mayaname":"thorname";return`${C(r)}/${e}`}function xn(r="thorchain"){return E.RequestClient.get(`${C(r)}/lastblock`)}function ln(r){return E.RequestClient.get(`${C(r)}/queue`)}function kn(r){return E.RequestClient.get(`${C(r)}/nodes`)}function Kn(r){return E.RequestClient.get(`${C(r)}/mimir`)}function Zn(r){return E.RequestClient.get(`${C(r)}/inbound_addresses`)}async function tn({type:r,name:e}){try{return await E.RequestClient.get(`${yn(r)}/${e}`)}catch(t){return{name:e,expire_block_height:0,owner:"",preferred_asset:"",affiliate_collector_rune:"",aliases:[]}}}async function zn({type:r,tns:e}){let t=await tn({name:e,type:r});if(!t.preferred_asset||t.preferred_asset===".")return;return E.AssetValue.from({asyncTokenLookup:!0,asset:t.preferred_asset})}function Jn(r){return E.RequestClient.get(`${C(r)}/runepool`)}function jn({type:r,thorAddress:e}){return E.RequestClient.get(`${C(r)}/rune_provider/${e}`)}var w={};d(w,{getStaticTokenList:()=>Qn,getProviderLogo:()=>nr,getLogoForAsset:()=>qn,getChainLogoForAsset:()=>pn});var b=require("@swapkit/helpers");var v="https://static.thorswap.net";function Qn(r){return b.RequestClient.get(`${v}/token-list/${r}.json`)}function qn(r){let e=rr(r);return`${v}/token-list/images/${e}.png`}function pn(r){let{chain:e}=b.AssetValue.from({asset:r}),t=b.getChainIdentifier(e).toLowerCase();return`${v}/token-list/images/${t}.png`}var An;async function nr(r){return An||=await _(),An.find((e)=>e.name===r)?.url}function rr(r){let{symbol:e}=b.AssetValue.from({asset:r});if(e===b.Chain.Ethereum)return"eth.eth";return r.toLowerCase()}var tr={...X,...w,mayachainMidgard:k,microgard:a,thorchainMidgard:l,thornode:f};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=9EB721D94EABBD3D64756E2164756E21
|
package/dist/api/index.cjs.map
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
"sources": ["../src/api/microgard/endpoints.ts", "../src/api/midgard/endpoints.ts", "../src/api/swapkitApi/endpoints.ts", "../src/api/swapkitApi/types.ts", "../src/api/thornode/endpoints.ts", "../src/api/thorswapStatic/endpoints.ts", "../src/api/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import {\n AssetValue,\n BaseDecimal,\n type Chain,\n RequestClient,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\nimport type { LiquidityPositionRaw, PoolDetail, PoolPeriod, THORNameDetails } from \"./types\";\n\n/**\n * TODO: Move to SKConfig under midgardUrls.microgard\n */\nconst baseUrl = \"https://mu.thorswap.net\";\n\nexport function getTHORNameDetails(thorname: string) {\n return RequestClient.get<THORNameDetails>(`${baseUrl}/thorname/lookup/${thorname}`);\n}\n\nexport function getTHORNamesByOwner(owner: string) {\n return RequestClient.get<string[]>(`${baseUrl}/thorname/owner/${owner}`);\n}\n\nexport function getTHORNamesByAddress(address: string) {\n return RequestClient.get<string[]>(`${baseUrl}/thorname/address/${address}`);\n}\n\nexport function getTHORChainPools(period: PoolPeriod) {\n return RequestClient.get<PoolDetail[]>(`${baseUrl}/pools`, { searchParams: { period } });\n}\n\nexport function getLiquidityPositionsRaw(addresses: string[]) {\n return RequestClient.get<LiquidityPositionRaw[]>(\n `${baseUrl}/fullmember?address=${addresses.join(\",\")}`,\n );\n}\n\nexport async function getTNSChainAddress({ chain, tns }: { chain: Chain; tns: string }) {\n const tnsDetails = await getTHORNameDetails(tns);\n\n return tnsDetails?.entries?.find((e) => e.chain.toLowerCase() === chain.toLowerCase())?.address;\n}\n\nexport async function getLiquidityPositions(addresses: string[]) {\n const rawLiquidityPositions = await getLiquidityPositionsRaw(addresses);\n\n return rawLiquidityPositions.map((p) => ({\n assetRegisteredAddress: p.assetAddress,\n asset: AssetValue.from({\n asset: p.pool,\n value: p.assetAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetPending: AssetValue.from({\n asset: p.pool,\n value: p.assetPending,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetWithdrawn: AssetValue.from({\n asset: p.pool,\n value: p.assetWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n runeRegisteredAddress: p.runeAddress,\n rune: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n runePending: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runePending,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n runeWithdrawn: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n poolShare: new SwapKitNumber(p.sharedUnits).div(p.poolUnits),\n dateLastAdded: p.dateLastAdded,\n dateFirstAdded: p.dateFirstAdded,\n }));\n}\n",
|
|
6
|
-
"import {
|
|
7
|
-
"import {\n type Chain,\n type EVMChain,\n EVMChains,\n type ProviderName,\n RequestClient,\n SKConfig,\n SwapKitError,\n isGasAsset,\n} from \"@swapkit/helpers\";\n\
|
|
8
|
-
"import {\n type AssetValue,\n Chain,\n ChainId,\n ErrorCode,\n FeeTypeEnum,\n ProviderName,\n WarningCodeEnum,\n} from \"@swapkit/helpers\";\nimport {\n type ZodType,\n array,\n boolean,\n nativeEnum,\n number,\n object,\n optional,\n string,\n union,\n unknown,\n type z,\n} from \"zod\";\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 native_send = \"native_send\",\n token_transfer = \"token_transfer\",\n native_contract_call = \"native_contract_call\",\n token_contract_call = \"token_contract_call\",\n approve = \"approve\",\n deposit = \"deposit\",\n thorname_action = \"thorname_action\",\n lp_action = \"lp_action\",\n swap = \"swap\",\n streaming_swap = \"streaming_swap\",\n stake = \"stake\",\n claim = \"claim\",\n lending = \"lending\",\n unknown = \"unknown\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\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 = {\n major: number;\n minor: number;\n patch: number;\n};\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: TokenV2[];\n version: TokenProviderVersion;\n};\n\nexport type TokenV2 = {\n address?: string;\n chain: string;\n shortCode?: string;\n chainId: string;\n decimals: number;\n extensions?: {};\n identifier: string;\n logoURI: string;\n name?: string;\n symbol: string;\n ticker: string;\n};\n\nexport interface TransactionProps {\n chainId: ChainId;\n hash: string;\n block: number;\n type?: TxnType;\n status?: TxnStatus;\n trackingStatus?: TrackingStatus;\n fromAsset: AssetValue | null;\n fromAddress: string;\n toAsset: AssetValue | null;\n toAddress: string;\n finalisedAt?: number;\n meta?: Partial<TxnMeta>;\n payload?: Partial<TxnPayload>;\n}\n\nexport type TrackerParams = {\n chainId: ChainId;\n hash: string;\n block?: number;\n};\n\nexport type TrackerResponse = TransactionProps & {\n legs: TransactionLegDTO[];\n transient?: TxnTransient;\n};\n\nexport const ApiV2ErrorSchema = object({\n error: string(),\n message: string(),\n});\n\nexport const AssetValueSchema = object({\n chain: nativeEnum(Chain),\n symbol: string(),\n ticker: string(),\n decimal: optional(number()),\n address: optional(string()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n tax: optional(object({ buy: number(), sell: number() })),\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 identifier: string(),\n provider: string(),\n cg: TokenDetailsMetadataSchema.optional(),\n price_usd: number(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n sellAmount: string({ description: \"Amount of asset to sell\" }).refine((amount) => +amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: optional(\n array(\n string({ description: \"List of providers to use\" }).refine(\n (provider) => ProviderName[provider as ProviderName] !== undefined,\n { message: \"Invalid provider\", path: [\"providers\"] },\n ),\n ),\n ),\n sourceAddress: optional(string({ description: \"Address to send asset from\" })),\n destinationAddress: optional(string({ description: \"Address to send asset to\" })),\n slippage: optional(number({ description: \"Slippage tolerance as a percentage. Default is 3%.\" })),\n affiliate: optional(string({ description: \"Affiliate thorname\" })),\n affiliateFee: optional(\n number({ description: \"Affiliate fee in basis points\" }).refine(\n (fee) => fee === Math.floor(fee) && fee >= 0,\n { message: \"affiliateFee must be a positive integer\", path: [\"affiliateFee\"] },\n ),\n ),\n allowSmartContractSender: optional(boolean({ description: \"Allow smart contract as sender\" })),\n allowSmartContractReceiver: optional(\n boolean({ description: \"Allow smart contract as recipient\" }),\n ),\n disableSecurityChecks: optional(boolean({ description: \"Disable security checks\" })),\n includeTx: optional(\n boolean({ description: \"Set to true to include an transaction object (EVM only)\" }),\n ),\n cfBoost: optional(\n boolean({\n description: \"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\",\n }),\n ),\n referrer: optional(string({ description: \"Referrer address (referral program)\" })),\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({\n tokens: array(\n object({\n identifier: string(),\n }),\n ),\n metadata: boolean(),\n});\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const BrokerDepositChannelParamsSchema = object({\n sellAsset: object({\n chain: string(),\n asset: string(),\n }),\n buyAsset: object({\n chain: string(),\n asset: string(), // identifier of the asset\n }),\n destinationAddress: string(),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n affiliateFees: array(\n object({\n brokerAddress: string(),\n feeBps: number(),\n }),\n ).optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n dcaParameters: object({\n chunkInterval: number().optional(),\n numberOfChunks: number().optional(),\n }).optional(),\n brokerCommissionBps: number().optional(),\n maxBoostFeeBps: number().optional(),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({\n channelId: string(),\n depositAddress: string(),\n});\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: optional(string()),\n logs: optional(unknown()),\n memo: optional(string()),\n spender: optional(string()), // used in evm approve transactions\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\n// props that are most important while the transaction is live\nconst TxnTransientSchema = object({\n estimatedFinalisedAt: number(),\n estimatedTimeToComplete: number(),\n updatedAt: number(),\n currentLegIndex: optional(number()),\n providerDetails: optional(unknown()), // see ProviderTransientDetails\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\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 TxnMetaSchema = object({\n broadcastedAt: optional(number()),\n wallet: optional(string()),\n quoteId: optional(string()),\n explorerUrl: optional(string()),\n affiliate: optional(string()),\n fees: optional(TransactionFeesSchema),\n provider: optional(nativeEnum(ProviderName)),\n images: optional(\n object({\n from: optional(string()),\n to: optional(string()),\n provider: optional(string()),\n chain: optional(string()),\n }),\n ),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = object({\n chainId: nativeEnum(ChainId),\n hash: string(),\n block: number(),\n type: nativeEnum(TxnType),\n status: nativeEnum(TxnStatus),\n trackingStatus: optional(nativeEnum(TrackingStatus)),\n\n fromAsset: string(),\n fromAmount: string(),\n fromAddress: string(),\n toAsset: string(),\n toAmount: string(),\n toAddress: string(),\n finalAsset: optional(AssetValueSchema),\n finalAddress: optional(string()),\n\n finalisedAt: number(),\n\n transient: optional(TxnTransientSchema),\n meta: optional(TxnMetaSchema),\n payload: optional(TxnPayloadSchema),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & {\n legs: TransactionLegDTO[];\n};\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n type: nativeEnum(FeeTypeEnum),\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = object({\n inbound: optional(number({ description: \"Time to receive inbound asset in seconds\" })),\n swap: optional(number({ description: \"Time to swap assets in seconds\" })),\n outbound: optional(number({ description: \"Time to receive outbound asset in seconds\" })),\n total: number({ description: \"Total time in seconds\" }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n to: string({ description: \"Address of the recipient\" }),\n from: string({ description: \"Address of the sender\" }),\n value: string({ description: \"Value to send\" }),\n data: string({ description: \"Data 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\n object({ from: string(), value: string() }).describe(\n \"Parameters to pass to the contract method\",\n ),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n contractAddress: string({ description: \"Address of the contract to interact with\" }),\n contractMethod: string({ description: \"Name of the method to call\" }),\n contractParams: EVMTransactionDetailsParamsSchema,\n contractParamNames: array(\n string({ description: \"Names of the parameters to pass to the contract method\" }),\n ),\n approvalToken: optional(string({ description: \"Address of the token to approve spending of\" })),\n approvalSpender: optional(string({ description: \"Address of the spender to approve\" })),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({\n typeUrl: string(),\n value: unknown(),\n});\n\nconst FeeSchema = object({\n amount: array(object({ denom: string(), amount: string() })),\n gas: string(),\n});\n\nexport const CosmosTransactionSchema = object({\n memo: string(),\n accountNumber: number(),\n sequence: number(),\n chainId: nativeEnum(ChainId),\n msgs: array(EncodeObjectSchema),\n fee: FeeSchema,\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n provider: nativeEnum(ProviderName),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: string({ description: \"Affiliate address\" }).optional(),\n affiliateFee: number({ description: \"Affiliate fee\" }).optional(),\n slipPercentage: number({ description: \"Slippage as a percentage\" }),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n sourceAddress: true,\n destinationAddress: true,\n slipPercentage: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string({ description: \"Asset name\" }),\n price: number({ description: \"Price in USD\" }),\n image: string({ description: \"Asset image\" }),\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 priceImpact: optional(number({ description: \"Price impact\" })),\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n approvalAddress: optional(string({ description: \"Approval address for swap\" })),\n streamingInterval: number().optional(),\n maxStreamingQuantity: number().optional(),\n tags: array(nativeEnum(PriorityLabel)),\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n txType: optional(nativeEnum(RouteQuoteTxType)),\n chainflip: optional(ChainflipMetadataSchema),\n referrer: optional(string()),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: nativeEnum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n provider: nativeEnum(ProviderName),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n buyAmount: string({ description: \"Buy amount\" }),\n buyAmountMaxSlippage: string({ description: \"Buy amount max slippage\" }),\n fees: optional(FeesSchema),\n});\n\nconst QuoteResponseRouteItem = object({\n providers: array(nativeEnum(ProviderName)),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n expectedBuyAmount: string({ description: \"Expected Buy amount\" }),\n expectedBuyAmountMaxSlippage: string({ description: \"Expected Buy amount max slippage\" }),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n targetAddress: optional(string({ description: \"Target address\" })),\n inboundAddress: optional(string({ description: \"Inbound address\" })),\n expiration: optional(string({ description: \"Expiration\" })),\n memo: optional(string({ description: \"Memo\" })),\n fees: FeesSchema,\n txType: optional(nativeEnum(RouteQuoteTxType)),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n estimatedTime: optional(EstimatedTimeSchema),\n totalSlippageBps: number({ description: \"Total slippage in bps\" }),\n legs: array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = object({\n quoteId: string({ description: \"Quote ID\" }),\n routes: array(QuoteResponseRouteItem),\n error: optional(string({ description: \"Error message\" })),\n providerErrors: optional(\n array(\n object({\n provider: nativeEnum(ProviderName).optional(),\n errorCode: optional(nativeEnum(ErrorCode)),\n message: optional(string()),\n }),\n ),\n ),\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 GasResponseSchema = array(\n object({ id: number(), chainId: string(), value: string(), unit: string(), createdAt: string() }),\n);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: nativeEnum(Chain),\n decimal: number(),\n ticker: string(),\n symbol: string(),\n value: string(),\n identifier: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
|
|
9
|
-
"import { AssetValue, Chain, RequestClient, SKConfig, StagenetChain } from \"@swapkit/helpers\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\
|
|
6
|
+
"import { AssetValue, BaseDecimal, Chain, RequestClient, SwapKitNumber } from \"@swapkit/helpers\";\nimport type { MemberDetailsMayachain, MemberDetailsThorchain, THORNameDetails } 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 getLiquidityPositionRaw<Chain extends Chain.THORChain | Chain.Maya>(baseUrl: string) {\n return function getLiquidityPosition(\n address: string,\n ): Promise<Chain extends Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain> {\n return RequestClient.get<\n Chain extends Chain.THORChain ? MemberDetailsThorchain : MemberDetailsMayachain\n >(`${baseUrl}/v2/member/${address}`);\n };\n}\n\nfunction getNameDetails(baseUrl: string) {\n return function getNameDetails(name: string) {\n return RequestClient.get<THORNameDetails>(`${baseUrl}/lookup/${name}`);\n };\n}\n\nfunction getNamesByAddress(baseUrl: string) {\n return function getNamesByAddress(address: string) {\n return RequestClient.get<string[]>(`${baseUrl}/rlookup/${address}`);\n };\n}\n\nfunction getNamesByOwner(baseUrl: string) {\n return function getNamesByOwner(address: string) {\n return RequestClient.get<string[]>(`${baseUrl}/owner/${address}`);\n };\n}\n\nfunction getPoolAsset({ asset, value }: { asset: string; value: string }) {\n return AssetValue.from({ asset, value, fromBaseDecimal: BaseDecimal.THOR });\n}\n\nfunction getLiquidityPosition<IsThorchain extends boolean = true>({\n liquidityPositionGetter,\n isThorchain,\n}: {\n liquidityPositionGetter: ReturnType<\n typeof getLiquidityPositionRaw<IsThorchain extends true ? Chain.THORChain : 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 SwapKitNumber(p.liquidityUnits).div(p.pool),\n }));\n };\n}\n\nfunction getMidgardMethodsForProtocol<T extends Chain.THORChain | Chain.Maya>(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 getLiquidityPositionRaw: liquidityPositionGetter,\n getNameDetails: getNameDetails(nameServiceBaseUrl),\n getNamesByAddress: getNamesByAddress(nameServiceBaseUrl),\n getNamesByOwner: getNamesByOwner(nameServiceBaseUrl),\n getLiquidityPosition: getLiquidityPosition({ liquidityPositionGetter, isThorchain }),\n };\n}\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
|
|
7
|
+
"import {\n type Chain,\n type EVMChain,\n EVMChains,\n type ProviderName,\n RequestClient,\n SKConfig,\n SwapKitError,\n isGasAsset,\n} from \"@swapkit/helpers\";\n\nimport {\n type BalanceResponse,\n type BrokerDepositChannelParams,\n type DepositChannelResponse,\n DepositChannelResponseSchema,\n type GasResponse,\n GasResponseSchema,\n type PriceRequest,\n type PriceResponse,\n PriceResponseSchema,\n type QuoteRequest,\n type QuoteResponse,\n QuoteResponseSchema,\n type TokenListProvidersResponse,\n type TokensResponseV2,\n type TrackerParams,\n type TrackerResponse,\n} from \"./types\";\n\nexport function getTrackerDetails(json: TrackerParams) {\n return RequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), { json });\n}\n\nexport async function getSwapQuote(json: QuoteRequest) {\n const response = await RequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), { json });\n\n if (response.error) {\n throw new SwapKitError(\"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 SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (_error) {\n // throw new SwapKitError(\"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}: { chain: T; address: string; scamFilter?: boolean }) {\n const url = getApiUrl(`/balance?chain=${chain}&address=${address}`);\n const balanceResponse = await RequestClient.get<BalanceResponse>(url);\n const balances = Array.isArray(balanceResponse) ? balanceResponse : [];\n\n return scamFilter ? filterAssets(balances) : balances;\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return RequestClient.get<TokenListProvidersResponse>(url);\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return RequestClient.get<TokensResponseV2>(url);\n}\n\nexport async function getPrice(body: PriceRequest) {\n const url = getApiUrl(\"/price\");\n const response = await RequestClient.post<PriceResponse>(url, {\n json: body,\n });\n\n try {\n const parsedResponse = PriceResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nexport async function getGasRate() {\n const url = getApiUrl(\"/gas\");\n const response = await RequestClient.get<GasResponse>(url);\n\n try {\n const parsedResponse = GasResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"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 SwapKitError(\"chainflip_broker_invalid_params\");\n }\n const url = SKConfig.get(\"integrations\").chainflip?.brokerUrl || getApiUrl(\"/channel\");\n\n const response = await RequestClient.post<DepositChannelResponse>(url, { json: body });\n\n try {\n const parsedResponse = DepositChannelResponseSchema.safeParse(response);\n\n if (!parsedResponse.success) {\n throw new SwapKitError(\"api_v2_invalid_response\", parsedResponse.error);\n }\n\n return parsedResponse.data;\n } catch (error) {\n throw new SwapKitError(\"api_v2_invalid_response\", error);\n }\n}\n\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl } = SKConfig.get(\"envs\");\n\n return `${isDev ? devApiUrl : apiUrl}${path}`;\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(\n /(.)\\1{6}|\\.ORG|\\.NET|\\.FINANCE|\\.COM|WWW|HTTP|\\\\\\\\|\\/\\/|[\\s$%:[\\]]/,\n \"gmi\",\n);\nfunction filterAssets(tokens: BalanceResponse) {\n return tokens.filter((token) => {\n return !potentialScamRegex.test(token.identifier) && evmAssetHasAddress(token.identifier);\n });\n}\n",
|
|
8
|
+
"import {\n type AssetValue,\n Chain,\n ChainId,\n FeeTypeEnum,\n ProviderName,\n WarningCodeEnum,\n} from \"@swapkit/helpers\";\nimport {\n type ZodType,\n array,\n boolean,\n nativeEnum,\n number,\n object,\n optional,\n string,\n union,\n unknown,\n type z,\n} from \"zod\";\nimport { ErrorCode } from \"../../types/quotes\";\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 native_send = \"native_send\",\n token_transfer = \"token_transfer\",\n native_contract_call = \"native_contract_call\",\n token_contract_call = \"token_contract_call\",\n approve = \"approve\",\n deposit = \"deposit\",\n thorname_action = \"thorname_action\",\n lp_action = \"lp_action\",\n swap = \"swap\",\n streaming_swap = \"streaming_swap\",\n stake = \"stake\",\n claim = \"claim\",\n lending = \"lending\",\n unknown = \"unknown\",\n}\n\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swapping = \"swapping\",\n completed = \"completed\",\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 = {\n major: number;\n minor: number;\n patch: number;\n};\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: TokenV2[];\n version: TokenProviderVersion;\n};\n\nexport type TokenV2 = {\n address?: string;\n chain: string;\n shortCode?: string;\n chainId: string;\n decimals: number;\n extensions?: {};\n identifier: string;\n logoURI: string;\n name?: string;\n symbol: string;\n ticker: string;\n};\n\nexport interface TransactionProps {\n chainId: ChainId;\n hash: string;\n block: number;\n type?: TxnType;\n status?: TxnStatus;\n trackingStatus?: TrackingStatus;\n fromAsset: AssetValue | null;\n fromAddress: string;\n toAsset: AssetValue | null;\n toAddress: string;\n finalisedAt?: number;\n meta?: Partial<TxnMeta>;\n payload?: Partial<TxnPayload>;\n}\n\nexport type TrackerParams = {\n chainId: ChainId;\n hash: string;\n block?: number;\n};\n\nexport type TrackerResponse = TransactionProps & {\n legs: TransactionLegDTO[];\n transient?: TxnTransient;\n};\n\nexport const ApiV2ErrorSchema = object({\n error: string(),\n message: string(),\n});\n\nexport const AssetValueSchema = object({\n chain: nativeEnum(Chain),\n symbol: string(),\n ticker: string(),\n decimal: optional(number()),\n address: optional(string()),\n isGasAsset: boolean(),\n isSynthetic: boolean(),\n tax: optional(object({ buy: number(), sell: number() })),\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 identifier: string(),\n provider: string(),\n cg: TokenDetailsMetadataSchema.optional(),\n price_usd: number(),\n timestamp: number(),\n }).partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n sellAmount: string({ description: \"Amount of asset to sell\" }).refine((amount) => +amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: optional(\n array(\n string({ description: \"List of providers to use\" }).refine(\n (provider) => ProviderName[provider as ProviderName] !== undefined,\n { message: \"Invalid provider\", path: [\"providers\"] },\n ),\n ),\n ),\n sourceAddress: optional(string({ description: \"Address to send asset from\" })),\n destinationAddress: optional(string({ description: \"Address to send asset to\" })),\n slippage: optional(number({ description: \"Slippage tolerance as a percentage. Default is 3%.\" })),\n affiliate: optional(string({ description: \"Affiliate thorname\" })),\n affiliateFee: optional(\n number({ description: \"Affiliate fee in basis points\" }).refine(\n (fee) => fee === Math.floor(fee) && fee >= 0,\n { message: \"affiliateFee must be a positive integer\", path: [\"affiliateFee\"] },\n ),\n ),\n allowSmartContractSender: optional(boolean({ description: \"Allow smart contract as sender\" })),\n allowSmartContractReceiver: optional(\n boolean({ description: \"Allow smart contract as recipient\" }),\n ),\n disableSecurityChecks: optional(boolean({ description: \"Disable security checks\" })),\n includeTx: optional(\n boolean({ description: \"Set to true to include an transaction object (EVM only)\" }),\n ),\n cfBoost: optional(\n boolean({\n description: \"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\",\n }),\n ),\n referrer: optional(string({ description: \"Referrer address (referral program)\" })),\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({\n tokens: array(\n object({\n identifier: string(),\n }),\n ),\n metadata: boolean(),\n});\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const BrokerDepositChannelParamsSchema = object({\n sellAsset: object({\n chain: string(),\n asset: string(),\n }),\n buyAsset: object({\n chain: string(),\n asset: string(), // identifier of the asset\n }),\n destinationAddress: string(),\n channelMetadata: object({\n cfParameters: string().optional(),\n gasBudget: string().optional(),\n message: string().optional(),\n }).optional(),\n affiliateFees: array(\n object({\n brokerAddress: string(),\n feeBps: number(),\n }),\n ).optional(),\n refundParameters: object({\n minPrice: string().optional(),\n refundAddress: string().optional(),\n retryDuration: number().optional(),\n }).optional(),\n dcaParameters: object({\n chunkInterval: number().optional(),\n numberOfChunks: number().optional(),\n }).optional(),\n brokerCommissionBps: number().optional(),\n maxBoostFeeBps: number().optional(),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = object({\n channelId: string(),\n depositAddress: string(),\n});\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = object({\n evmCalldata: optional(string()),\n logs: optional(unknown()),\n memo: optional(string()),\n spender: optional(string()), // used in evm approve transactions\n});\n\nexport type TxnPayload = z.infer<typeof TxnPayloadSchema>;\n\n// props that are most important while the transaction is live\nconst TxnTransientSchema = object({\n estimatedFinalisedAt: number(),\n estimatedTimeToComplete: number(),\n updatedAt: number(),\n currentLegIndex: optional(number()),\n providerDetails: optional(unknown()), // see ProviderTransientDetails\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = object({\n network: optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n affiliate: optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: optional(AssetValueSchema), // fee paid to pool\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 TxnMetaSchema = object({\n broadcastedAt: optional(number()),\n wallet: optional(string()),\n quoteId: optional(string()),\n explorerUrl: optional(string()),\n affiliate: optional(string()),\n fees: optional(TransactionFeesSchema),\n provider: optional(nativeEnum(ProviderName)),\n images: optional(\n object({\n from: optional(string()),\n to: optional(string()),\n provider: optional(string()),\n chain: optional(string()),\n }),\n ),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = object({\n chainId: nativeEnum(ChainId),\n hash: string(),\n block: number(),\n type: nativeEnum(TxnType),\n status: nativeEnum(TxnStatus),\n trackingStatus: optional(nativeEnum(TrackingStatus)),\n\n fromAsset: string(),\n fromAmount: string(),\n fromAddress: string(),\n toAsset: string(),\n toAmount: string(),\n toAddress: string(),\n finalAsset: optional(AssetValueSchema),\n finalAddress: optional(string()),\n\n finalisedAt: number(),\n\n transient: optional(TxnTransientSchema),\n meta: optional(TxnMetaSchema),\n payload: optional(TxnPayloadSchema),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & {\n legs: TransactionLegDTO[];\n};\n\nexport const TransactionDTOSchema: ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = array(\n object({\n type: nativeEnum(FeeTypeEnum),\n amount: string(),\n asset: string(),\n chain: string(),\n protocol: nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = object({\n inbound: optional(number({ description: \"Time to receive inbound asset in seconds\" })),\n swap: optional(number({ description: \"Time to swap assets in seconds\" })),\n outbound: optional(number({ description: \"Time to receive outbound asset in seconds\" })),\n total: number({ description: \"Total time in seconds\" }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = object({\n to: string({ description: \"Address of the recipient\" }),\n from: string({ description: \"Address of the sender\" }),\n value: string({ description: \"Value to send\" }),\n data: string({ description: \"Data 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\n object({ from: string(), value: string() }).describe(\n \"Parameters to pass to the contract method\",\n ),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = object({\n contractAddress: string({ description: \"Address of the contract to interact with\" }),\n contractMethod: string({ description: \"Name of the method to call\" }),\n contractParams: EVMTransactionDetailsParamsSchema,\n contractParamNames: array(\n string({ description: \"Names of the parameters to pass to the contract method\" }),\n ),\n approvalToken: optional(string({ description: \"Address of the token to approve spending of\" })),\n approvalSpender: optional(string({ description: \"Address of the spender to approve\" })),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = object({\n typeUrl: string(),\n value: unknown(),\n});\n\nconst FeeSchema = object({\n amount: array(object({ denom: string(), amount: string() })),\n gas: string(),\n});\n\nexport const CosmosTransactionSchema = object({\n memo: string(),\n accountNumber: number(),\n sequence: number(),\n chainId: nativeEnum(ChainId),\n msgs: array(EncodeObjectSchema),\n fee: FeeSchema,\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = object({\n sellAsset: string({ description: \"Asset to sell\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n provider: nativeEnum(ProviderName),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: string({ description: \"Affiliate address\" }).optional(),\n affiliateFee: number({ description: \"Affiliate fee\" }).optional(),\n slipPercentage: number({ description: \"Slippage as a percentage\" }),\n});\n\nexport type RouteLeg = z.infer<typeof RouteLegSchema>;\n\nexport const RouteLegWithoutAddressesSchema = RouteLegSchema.omit({\n sourceAddress: true,\n destinationAddress: true,\n slipPercentage: true,\n});\n\nexport type RouteLegWithoutAddresses = z.infer<typeof RouteLegWithoutAddressesSchema>;\n\nexport const RouteQuoteMetadataAssetSchema = object({\n asset: string({ description: \"Asset name\" }),\n price: number({ description: \"Price in USD\" }),\n image: string({ description: \"Asset image\" }),\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 priceImpact: optional(number({ description: \"Price impact\" })),\n assets: optional(array(RouteQuoteMetadataAssetSchema)),\n approvalAddress: optional(string({ description: \"Approval address for swap\" })),\n streamingInterval: number().optional(),\n maxStreamingQuantity: number().optional(),\n tags: array(nativeEnum(PriorityLabel)),\n affiliate: optional(string()),\n affiliateFee: optional(string()),\n txType: optional(nativeEnum(RouteQuoteTxType)),\n chainflip: optional(ChainflipMetadataSchema),\n referrer: optional(string()),\n});\n\nexport const RouteQuoteWarningSchema = array(\n object({ code: nativeEnum(WarningCodeEnum), display: string(), tooltip: string().optional() }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = object({\n provider: nativeEnum(ProviderName),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n buyAmount: string({ description: \"Buy amount\" }),\n buyAmountMaxSlippage: string({ description: \"Buy amount max slippage\" }),\n fees: optional(FeesSchema),\n});\n\nconst QuoteResponseRouteItem = object({\n providers: array(nativeEnum(ProviderName)),\n sellAsset: string({ description: \"Asset to sell\" }),\n sellAmount: string({ description: \"Sell amount\" }),\n buyAsset: string({ description: \"Asset to buy\" }),\n expectedBuyAmount: string({ description: \"Expected Buy amount\" }),\n expectedBuyAmountMaxSlippage: string({ description: \"Expected Buy amount max slippage\" }),\n sourceAddress: string({ description: \"Source address\" }),\n destinationAddress: string({ description: \"Destination address\" }),\n targetAddress: optional(string({ description: \"Target address\" })),\n inboundAddress: optional(string({ description: \"Inbound address\" })),\n expiration: optional(string({ description: \"Expiration\" })),\n memo: optional(string({ description: \"Memo\" })),\n fees: FeesSchema,\n txType: optional(nativeEnum(RouteQuoteTxType)),\n tx: optional(union([EVMTransactionSchema, CosmosTransactionSchema, string()])),\n estimatedTime: optional(EstimatedTimeSchema),\n totalSlippageBps: number({ description: \"Total slippage in bps\" }),\n legs: array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = object({\n quoteId: string({ description: \"Quote ID\" }),\n routes: array(QuoteResponseRouteItem),\n error: optional(string({ description: \"Error message\" })),\n providerErrors: optional(\n array(\n object({\n provider: nativeEnum(ProviderName).optional(),\n errorCode: optional(nativeEnum(ErrorCode)),\n message: optional(string()),\n }),\n ),\n ),\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 GasResponseSchema = array(\n object({ id: number(), chainId: string(), value: string(), unit: string(), createdAt: string() }),\n);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\n\nconst BalanceResponseSchema = array(\n object({\n chain: nativeEnum(Chain),\n decimal: number(),\n ticker: string(),\n symbol: string(),\n value: string(),\n identifier: string(),\n }),\n);\n\nexport type BalanceResponse = z.infer<typeof BalanceResponseSchema>;\n",
|
|
9
|
+
"import { AssetValue, Chain, RequestClient, SKConfig, StagenetChain } from \"@swapkit/helpers\";\nimport type {\n InboundAddressesItem,\n LastBlockItem,\n MimirData,\n NodeItem,\n RunePoolInfo,\n RunePoolProviderInfo,\n THORNodeTNSDetails,\n THORNodeType,\n} from \"./types\";\n\nfunction baseUrl(type?: THORNodeType) {\n const { isStagenet } = SKConfig.get(\"envs\");\n const nodeUrls = SKConfig.get(\"nodeUrls\");\n\n switch (type) {\n case \"mayachain\": {\n const mayaNodeUrl = nodeUrls[isStagenet ? StagenetChain.Maya : Chain.Maya];\n\n return `${mayaNodeUrl}/mayachain`;\n }\n default: {\n const thorNodeUrl = nodeUrls[isStagenet ? StagenetChain.THORChain : Chain.THORChain];\n\n return `${thorNodeUrl}/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}: { type?: THORNodeType; name: string }): Promise<THORNodeTNSDetails> {\n try {\n const result = await RequestClient.get<THORNodeTNSDetails>(\n `${getNameServiceBaseUrl(type)}/${name}`,\n );\n return result;\n } catch (_error) {\n // If we get an error, the name doesn't exist and is available for registration\n return {\n name,\n expire_block_height: 0,\n owner: \"\",\n preferred_asset: \"\",\n affiliate_collector_rune: \"\",\n aliases: [],\n };\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({ asyncTokenLookup: true, asset: tnsDetails.preferred_asset });\n}\n\nexport function getRunePoolInfo(type?: THORNodeType) {\n return RequestClient.get<RunePoolInfo>(`${baseUrl(type)}/runepool`);\n}\n\nexport function getRunePoolProviderInfo({\n type,\n thorAddress,\n}: { type?: THORNodeType; thorAddress: string }) {\n return RequestClient.get<RunePoolProviderInfo>(`${baseUrl(type)}/rune_provider/${thorAddress}`);\n}\n",
|
|
10
10
|
"import {\n AssetValue,\n Chain,\n type ProviderName,\n RequestClient,\n getChainIdentifier,\n} from \"@swapkit/helpers\";\n\nimport { getTokenListProviders } from \"../swapkitApi/endpoints\";\nimport type { TokenListProvidersResponse } from \"../swapkitApi/types\";\nimport type { TokensResponse } from \"./types\";\n\nconst baseUrl = \"https://static.thorswap.net\";\n\nexport function getStaticTokenList(tokenListName: string) {\n return RequestClient.get<TokensResponse>(`${baseUrl}/token-list/${tokenListName}.json`);\n}\n\nexport function getLogoForAsset(assetString: string) {\n const mappedAssetIcon = getMappedAssetIcon(assetString);\n\n return `${baseUrl}/token-list/images/${mappedAssetIcon}.png`;\n}\n\nexport function getChainLogoForAsset(assetString: string) {\n const { chain } = AssetValue.from({ asset: assetString });\n const chainIdentifier = getChainIdentifier(chain).toLowerCase();\n\n return `${baseUrl}/token-list/images/${chainIdentifier}.png`;\n}\n\nlet providerData: TokenListProvidersResponse;\n\nexport async function getProviderLogo(providerName: ProviderName | string) {\n providerData ||= await getTokenListProviders();\n\n return providerData.find((p) => p.name === providerName)?.url;\n}\n\nfunction getMappedAssetIcon(assetString: string) {\n const { symbol } = AssetValue.from({ asset: assetString });\n\n if (symbol === Chain.Ethereum) return \"eth.eth\";\n\n return assetString.toLowerCase();\n}\n",
|
|
11
11
|
"import * as microgard from \"./microgard/endpoints\";\nimport { mayachainMidgard, thorchainMidgard } from \"./midgard/endpoints\";\nimport * as swapkit from \"./swapkitApi/endpoints\";\nimport * as thornode from \"./thornode/endpoints\";\nimport * as tsStatic from \"./thorswapStatic/endpoints\";\n\nexport * from \"./microgard/types\";\nexport * from \"./thorswapStatic/types\";\nexport * from \"./thornode/types\";\nexport * from \"./swapkitApi/types\";\n\nexport const SwapKitApi = {\n ...swapkit,\n ...tsStatic,\n mayachainMidgard,\n microgard,\n thorchainMidgard,\n thornode,\n};\n"
|
|
12
12
|
],
|
|
13
|
-
"mappings": "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",
|
|
14
|
-
"debugId": "
|
|
13
|
+
"mappings": "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",
|
|
14
|
+
"debugId": "9EB721D94EABBD3D64756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|
package/dist/api/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{p as v}from"../chunk-ganzk321.js";var Z={};v(Z,{getTNSChainAddress:()=>SA,getTHORNamesByOwner:()=>PA,getTHORNamesByAddress:()=>RA,getTHORNameDetails:()=>k,getTHORChainPools:()=>GA,getLiquidityPositionsRaw:()=>c,getLiquidityPositions:()=>BA});import{AssetValue as Y,BaseDecimal as _,RequestClient as U,SwapKitNumber as CA}from"@swapkit/helpers";var g="https://mu.thorswap.net";function k(E){return U.get(`${g}/thorname/lookup/${E}`)}function PA(E){return U.get(`${g}/thorname/owner/${E}`)}function RA(E){return U.get(`${g}/thorname/address/${E}`)}function GA(E){return U.get(`${g}/pools`,{searchParams:{period:E}})}function c(E){return U.get(`${g}/fullmember?address=${E.join(",")}`)}async function SA({chain:E,tns:n}){return(await k(n))?.entries?.find((m)=>m.chain.toLowerCase()===E.toLowerCase())?.address}async function BA(E){return(await c(E)).map((N)=>({assetRegisteredAddress:N.assetAddress,asset:Y.from({asset:N.pool,value:N.assetAdded,fromBaseDecimal:_.THOR}),assetPending:Y.from({asset:N.pool,value:N.assetPending,fromBaseDecimal:_.THOR}),assetWithdrawn:Y.from({asset:N.pool,value:N.assetWithdrawn,fromBaseDecimal:_.THOR}),runeRegisteredAddress:N.runeAddress,rune:Y.from({asset:"THOR.RUNE",value:N.runeAdded,fromBaseDecimal:_.THOR}),runePending:Y.from({asset:"THOR.RUNE",value:N.runePending,fromBaseDecimal:_.THOR}),runeWithdrawn:Y.from({asset:"THOR.RUNE",value:N.runeWithdrawn,fromBaseDecimal:_.THOR}),poolShare:new CA(N.sharedUnits).div(N.poolUnits),dateLastAdded:N.dateLastAdded,dateFirstAdded:N.dateFirstAdded}))}import{AssetValue as MA,BaseDecimal as VA,Chain as W,RequestClient as YA,SKConfig as z,StagenetChain as d,SwapKitNumber as _A}from"@swapkit/helpers";var $=()=>{let E=z.get("apiHeaders");return YA.extend({headers:E.midgard||{}})};function y(E=!0){let{isStagenet:n}=z.get("envs"),N=z.get("midgardUrls");if(E){let O=n?d.THORChain:W.THORChain;if(N[O])return N[O];return n?"https://stagenet-midgard.ninerealms.com":"https://midgard.ninerealms.com"}let m=n?d.Maya:W.Maya;if(N[m])return N[m];return n?"https://stagenet-midgard.mayachain.info":"https://midgard.mayachain.info"}function XA(E=!0){let n=y(E);return E?`${n}/v2/thorname`:`${n}/v2/mayaname`}function FA(E){return function n(N){return $().get(`${E}/v2/member/${N}`)}}function UA(E){return function n(N){return $().get(`${E}/lookup/${N}`)}}function gA(E){return function n(N){return $().get(`${E}/rlookup/${N}`)}}function WA(E){return function n(N){return $().get(`${E}/owner/${N}`)}}function X({asset:E,value:n}){return MA.from({asset:E,value:n,fromBaseDecimal:VA.THOR})}function vA({liquidityPositionGetter:E,isThorchain:n}){return async function N(m){let O=await E(m),T=n?"rune":"cacao";return O.pools.map((H)=>({[`${T}Pending`]:X({asset:"THOR.RUNE",value:H.runePending}),[`${T}RegisteredAddress`]:H.runeAddress,[`${T}Withdrawn`]:X({asset:"THOR.RUNE",value:H.runeWithdrawn}),[T]:X({asset:"THOR.RUNE",value:H.runeAdded}),asset:X({asset:H.pool,value:H.assetAdded}),assetPending:X({asset:H.pool,value:H.assetPending}),assetRegisteredAddress:H.assetAddress,assetWithdrawn:X({asset:H.pool,value:H.assetWithdrawn}),dateFirstAdded:H.dateFirstAdded,dateLastAdded:H.dateLastAdded,poolShare:new _A(H.liquidityUnits).div(H.pool)}))}}function i(E){let n=E===W.THORChain,N=y(n),m=XA(n),O=FA(N);return{getLiquidityPositionRaw:O,getNameDetails:UA(m),getNamesByAddress:gA(m),getNamesByOwner:WA(m),getLiquidityPosition:vA({liquidityPositionGetter:O,isThorchain:n})}}var q=i(W.THORChain),s=i(W.Maya);var x={};v(x,{getTrackerDetails:()=>AE,getTokenListProviders:()=>t,getTokenList:()=>rE,getSwapQuote:()=>EE,getPrice:()=>NE,getGasRate:()=>mE,getChainflipDepositChannel:()=>LE,getChainBalance:()=>nE});import{EVMChains as lA,RequestClient as pA,SKConfig as Q,SwapKitError as P,isGasAsset as aA}from"@swapkit/helpers";import{Chain as e,ChainId as l,ErrorCode as $A,FeeTypeEnum as fA,ProviderName as V,WarningCodeEnum as ZA}from"@swapkit/helpers";import{array as u,boolean as R,nativeEnum as b,number as I,object as L,optional as r,string as A,union as p,unknown as J}from"zod";var a;((m)=>{m.CHEAPEST="CHEAPEST";m.FASTEST="FASTEST";m.RECOMMENDED="RECOMMENDED"})(a||={});var j;((O)=>{O.PSBT="PSBT";O.EVM="EVM";O.COSMOS="COSMOS";O.RADIX="RADIX"})(j||={});var AA;((C)=>{C.native_send="native_send";C.token_transfer="token_transfer";C.native_contract_call="native_contract_call";C.token_contract_call="token_contract_call";C.approve="approve";C.deposit="deposit";C.thorname_action="thorname_action";C.lp_action="lp_action";C.swap="swap";C.streaming_swap="streaming_swap";C.stake="stake";C.claim="claim";C.lending="lending";C.unknown="unknown"})(AA||={});var EA;((T)=>{T.unknown="unknown";T.not_started="not_started";T.pending="pending";T.swapping="swapping";T.completed="completed"})(EA||={});var nA;((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"})(nA||={});var JE=L({error:A(),message:A()}),F=L({chain:b(e),symbol:A(),ticker:A(),decimal:r(I()),address:r(A()),isGasAsset:R(),isSynthetic:R(),tax:r(L({buy:I(),sell:I()}))}),zA=L({id:A(),market_cap:I(),name:A(),price_change_24h_usd:I(),price_change_percentage_24h_usd:I(),sparkline_in_7d:u(I()),timestamp:A(),total_volume:I()}),rA=u(L({identifier:A(),provider:A(),cg:zA.optional(),price_usd:I(),timestamp:I()}).partial()),jE=L({sellAsset:A({description:"Asset to sell"}),buyAsset:A({description:"Asset to buy"}),sellAmount:A({description:"Amount of asset to sell"}).refine((E)=>+E>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:r(u(A({description:"List of providers to use"}).refine((E)=>V[E]!==void 0,{message:"Invalid provider",path:["providers"]}))),sourceAddress:r(A({description:"Address to send asset from"})),destinationAddress:r(A({description:"Address to send asset to"})),slippage:r(I({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:r(A({description:"Affiliate thorname"})),affiliateFee:r(I({description:"Affiliate fee in basis points"}).refine((E)=>E===Math.floor(E)&&E>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:r(R({description:"Allow smart contract as sender"})),allowSmartContractReceiver:r(R({description:"Allow smart contract as recipient"})),disableSecurityChecks:r(R({description:"Disable security checks"})),includeTx:r(R({description:"Set to true to include an transaction object (EVM only)"})),cfBoost:r(R({description:"Set to true to enable CF boost to speed up Chainflip swaps. BTC only."})),referrer:r(A({description:"Referrer address (referral program)"}))}).refine((E)=>E.sellAsset!==E.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),QE=L({tokens:u(L({identifier:A()})),metadata:R()}),JA=L({sellAsset:L({chain:A(),asset:A()}),buyAsset:L({chain:A(),asset:A()}),destinationAddress:A(),channelMetadata:L({cfParameters:A().optional(),gasBudget:A().optional(),message:A().optional()}).optional(),affiliateFees:u(L({brokerAddress:A(),feeBps:I()})).optional(),refundParameters:L({minPrice:A().optional(),refundAddress:A().optional(),retryDuration:I().optional()}).optional(),dcaParameters:L({chunkInterval:I().optional(),numberOfChunks:I().optional()}).optional(),brokerCommissionBps:I().optional(),maxBoostFeeBps:I().optional()}),NA=L({channelId:A(),depositAddress:A()}),jA=L({evmCalldata:r(A()),logs:r(J()),memo:r(A()),spender:r(A())}),QA=L({estimatedFinalisedAt:I(),estimatedTimeToComplete:I(),updatedAt:I(),currentLegIndex:r(I()),providerDetails:r(J())}),tA=L({network:r(F),affiliate:r(F),liquidity:r(F),protocol:r(F),tax:r(F)}),xA=L({broadcastedAt:r(I()),wallet:r(A()),quoteId:r(A()),explorerUrl:r(A()),affiliate:r(A()),fees:r(tA),provider:r(b(V)),images:r(L({from:r(A()),to:r(A()),provider:r(A()),chain:r(A())}))}),f=L({chainId:b(l),hash:A(),block:I(),type:b(AA),status:b(EA),trackingStatus:r(b(nA)),fromAsset:A(),fromAmount:A(),fromAddress:A(),toAsset:A(),toAmount:A(),toAddress:A(),finalAsset:r(F),finalAddress:r(A()),finalisedAt:I(),transient:r(QA),meta:r(xA),payload:r(jA)}),tE=f.extend({legs:u(f)}),xE=f.extend({legs:u(f)}),mA=u(L({type:b(fA),amount:A(),asset:A(),chain:A(),protocol:b(V)})),LA=L({inbound:r(I({description:"Time to receive inbound asset in seconds"})),swap:r(I({description:"Time to swap assets in seconds"})),outbound:r(I({description:"Time to receive outbound asset in seconds"})),total:I({description:"Total time in seconds"})}),KA=L({to:A({description:"Address of the recipient"}),from:A({description:"Address of the sender"}),value:A({description:"Value to send"}),data:A({description:"Data to send"})}),oA=u(p([A(),I(),u(A()),L({from:A(),value:A()}).describe("Parameters to pass to the contract method")])),KE=L({contractAddress:A({description:"Address of the contract to interact with"}),contractMethod:A({description:"Name of the method to call"}),contractParams:oA,contractParamNames:u(A({description:"Names of the parameters to pass to the contract method"})),approvalToken:r(A({description:"Address of the token to approve spending of"})),approvalSpender:r(A({description:"Address of the spender to approve"}))}),hA=L({typeUrl:A(),value:J()}),wA=L({amount:u(L({denom:A(),amount:A()})),gas:A()}),kA=L({memo:A(),accountNumber:I(),sequence:I(),chainId:b(l),msgs:u(hA),fee:wA}),cA=L({sellAsset:A({description:"Asset to sell"}),buyAsset:A({description:"Asset to buy"}),provider:b(V),sourceAddress:A({description:"Source address"}),destinationAddress:A({description:"Destination address"}),estimatedTime:LA.optional(),affiliate:A({description:"Affiliate address"}).optional(),affiliateFee:I({description:"Affiliate fee"}).optional(),slipPercentage:I({description:"Slippage as a percentage"})}),oE=cA.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),dA=L({asset:A({description:"Asset name"}),price:I({description:"Price in USD"}),image:A({description:"Asset image"})}),yA=JA,iA=L({priceImpact:r(I({description:"Price impact"})),assets:r(u(dA)),approvalAddress:r(A({description:"Approval address for swap"})),streamingInterval:I().optional(),maxStreamingQuantity:I().optional(),tags:u(b(a)),affiliate:r(A()),affiliateFee:r(A()),txType:r(b(j)),chainflip:r(yA),referrer:r(A())}),qA=u(L({code:b(ZA),display:A(),tooltip:A().optional()})),sA=L({provider:b(V),sellAsset:A({description:"Asset to sell"}),sellAmount:A({description:"Sell amount"}),buyAsset:A({description:"Asset to buy"}),buyAmount:A({description:"Buy amount"}),buyAmountMaxSlippage:A({description:"Buy amount max slippage"}),fees:r(mA)}),eA=L({providers:u(b(V)),sellAsset:A({description:"Asset to sell"}),sellAmount:A({description:"Sell amount"}),buyAsset:A({description:"Asset to buy"}),expectedBuyAmount:A({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:A({description:"Expected Buy amount max slippage"}),sourceAddress:A({description:"Source address"}),destinationAddress:A({description:"Destination address"}),targetAddress:r(A({description:"Target address"})),inboundAddress:r(A({description:"Inbound address"})),expiration:r(A({description:"Expiration"})),memo:r(A({description:"Memo"})),fees:mA,txType:r(b(j)),tx:r(p([KA,kA,A()])),estimatedTime:r(LA),totalSlippageBps:I({description:"Total slippage in bps"}),legs:u(sA),warnings:qA,meta:iA}),IA=L({quoteId:A({description:"Quote ID"}),routes:u(eA),error:r(A({description:"Error message"})),providerErrors:r(u(L({provider:b(V).optional(),errorCode:r(b($A)),message:r(A())})))}),OA=u(L({id:I(),chainId:A(),value:A(),unit:A(),createdAt:A()})),hE=u(L({chain:b(e),decimal:I(),ticker:A(),symbol:A(),value:A(),identifier:A()}));var G=()=>{let E=Q.get("apiHeaders");return pA.extend({headers:E.swapkitApi||{}})};function AE(E){return G().post(S("/track"),{json:E})}async function EE(E){let N=await G().post(S("/quote"),{json:E});if(N.error)throw new P("api_v2_server_error",{message:N.error});try{let m=IA.safeParse(N);if(!m.success)throw new P("api_v2_invalid_response",m.error);return m.data}catch(m){return console.warn(m),N}}async function nE({chain:E,address:n,scamFilter:N=!0}){let m=G(),O=S(`/balance?chain=${E}&address=${n}`),T=await m.get(O),H=Array.isArray(T)?T:[];return N?uE(H):H}function t(){let E=G(),n=S("/providers");return E.get(n)}function rE(E){let n=G(),N=S(`/tokens?provider=${E}`);return n.get(N)}async function NE(E){let n=G(),N=S("/price"),m=await n.post(N,{json:E});try{let O=rA.safeParse(m);if(!O.success)throw new P("api_v2_invalid_response",O.error);return O.data}catch(O){throw new P("api_v2_invalid_response",O)}}async function mE(){let E=G(),n=S("/gas"),N=await E.get(n);try{let m=OA.safeParse(N);if(!m.success)throw new P("api_v2_invalid_response",m.error);return m.data}catch(m){throw new P("api_v2_invalid_response",m)}}async function LE(E){let{destinationAddress:n}=E;if(!n)throw new P("chainflip_broker_invalid_params");let N=G(),m=Q.get("integrations").chainflip?.brokerUrl||S("/channel"),O=await N.post(m,{json:E});try{let T=NA.safeParse(O);if(!T.success)throw new P("api_v2_invalid_response",T.error);return T.data}catch(T){throw new P("api_v2_invalid_response",T)}}function S(E){let{isDev:n,apiUrl:N,devApiUrl:m}=Q.get("envs");return`${n?m:N}${E}`}function IE(E){let[n,N]=E.split(".");if(!lA.includes(n))return!0;let m=N.split("-"),O=m.length===1?void 0:m[m.length-1];return aA({chain:n,symbol:N})||!!O}var OE=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi");function uE(E){return E.filter((n)=>{return!OE.test(n.identifier)&&IE(n.identifier)})}var o={};v(o,{getThorchainQueue:()=>CE,getTNSPreferredAsset:()=>SE,getTHORNodeTNSDetails:()=>bA,getRunePoolProviderInfo:()=>ME,getRunePoolInfo:()=>BE,getNodes:()=>PE,getMimirInfo:()=>RE,getLastBlock:()=>DE,getInboundAddresses:()=>GE});import{AssetValue as TE,Chain as uA,RequestClient as bE,SKConfig as K,StagenetChain as TA}from"@swapkit/helpers";var B=()=>{let E=K.get("apiHeaders");return bE.extend({headers:E.thornode||{}})};function M(E){let{isStagenet:n}=K.get("envs"),N=K.get("nodeUrls");switch(E){case"mayachain":return`${N[n?TA.Maya:uA.Maya]}/mayachain`;default:return`${N[n?TA.THORChain:uA.THORChain]}/thorchain`}}function HE(E){let n=E==="mayachain"?"mayaname":"thorname";return`${M(E)}/${n}`}function DE(E="thorchain"){return B().get(`${M(E)}/lastblock`)}function CE(E){return B().get(`${M(E)}/queue`)}function PE(E){return B().get(`${M(E)}/nodes`)}function RE(E){return B().get(`${M(E)}/mimir`)}function GE(E){return B().get(`${M(E)}/inbound_addresses`)}async function bA({type:E,name:n}){try{return await B().get(`${HE(E)}/${n}`)}catch(N){return{name:n,expire_block_height:0,owner:"",preferred_asset:"",affiliate_collector_rune:"",aliases:[]}}}async function SE({type:E,tns:n}){let N=await bA({name:n,type:E});if(!N.preferred_asset||N.preferred_asset===".")return;return TE.from({asyncTokenLookup:!0,asset:N.preferred_asset})}function BE(E){return B().get(`${M(E)}/runepool`)}function ME({type:E,thorAddress:n}){return B().get(`${M(E)}/rune_provider/${n}`)}var w={};v(w,{getStaticTokenList:()=>XE,getProviderLogo:()=>gE,getLogoForAsset:()=>FE,getChainLogoForAsset:()=>UE});import{AssetValue as DA,Chain as VE,RequestClient as YE,getChainIdentifier as _E}from"@swapkit/helpers";var h="https://static.thorswap.net";function XE(E){return YE.get(`${h}/token-list/${E}.json`)}function FE(E){let n=WE(E);return`${h}/token-list/images/${n}.png`}function UE(E){let{chain:n}=DA.from({asset:E}),N=_E(n).toLowerCase();return`${h}/token-list/images/${N}.png`}var HA;async function gE(E){return HA||=await t(),HA.find((n)=>n.name===E)?.url}function WE(E){let{symbol:n}=DA.from({asset:E});if(n===VE.Ethereum)return"eth.eth";return E.toLowerCase()}var sE={...x,...w,mayachainMidgard:s,microgard:Z,thorchainMidgard:q,thornode:o};export{AA as TxnType,EA as TxnStatus,tE as TransactionSchema,xE as TransactionDTOSchema,nA as TrackingStatus,zA as TokenDetailsMetadataSchema,sE as SwapKitApi,qA as RouteQuoteWarningSchema,j as RouteQuoteTxType,iA as RouteQuoteMetadataSchema,dA as RouteQuoteMetadataAssetSchema,oE as RouteLegWithoutAddressesSchema,cA as RouteLegSchema,IA as QuoteResponseSchema,jE as QuoteRequestSchema,a as PriorityLabel,rA as PriceResponseSchema,QE as PriceRequestSchema,OA as GasResponseSchema,mA as FeesSchema,LA as EstimatedTimeSchema,KA as EVMTransactionSchema,KE as EVMTransactionDetailsSchema,oA as EVMTransactionDetailsParamsSchema,NA as DepositChannelResponseSchema,kA as CosmosTransactionSchema,yA as ChainflipMetadataSchema,JA as BrokerDepositChannelParamsSchema,F as AssetValueSchema,JE as ApiV2ErrorSchema};
|
|
1
|
+
import{a as K}from"../chunk-8fdws4se.js";import{t as M}from"../chunk-s82pm7xc.js";var c={};M(c,{getTNSChainAddress:()=>Hn,getTHORNamesByOwner:()=>bn,getTHORNamesByAddress:()=>on,getTHORNameDetails:()=>$,getTHORChainPools:()=>Cn,getLiquidityPositionsRaw:()=>W,getLiquidityPositions:()=>gn});import{AssetValue as P,BaseDecimal as R,RequestClient as h,SwapKitNumber as On}from"@swapkit/helpers";var B="https://mu.thorswap.net";function $(r){return h.get(`${B}/thorname/lookup/${r}`)}function bn(r){return h.get(`${B}/thorname/owner/${r}`)}function on(r){return h.get(`${B}/thorname/address/${r}`)}function Cn(r){return h.get(`${B}/pools`,{searchParams:{period:r}})}function W(r){return h.get(`${B}/fullmember?address=${r.join(",")}`)}async function Hn({chain:r,tns:t}){return(await $(t))?.entries?.find((u)=>u.chain.toLowerCase()===r.toLowerCase())?.address}async function gn(r){return(await W(r)).map((i)=>({assetRegisteredAddress:i.assetAddress,asset:P.from({asset:i.pool,value:i.assetAdded,fromBaseDecimal:R.THOR}),assetPending:P.from({asset:i.pool,value:i.assetPending,fromBaseDecimal:R.THOR}),assetWithdrawn:P.from({asset:i.pool,value:i.assetWithdrawn,fromBaseDecimal:R.THOR}),runeRegisteredAddress:i.runeAddress,rune:P.from({asset:"THOR.RUNE",value:i.runeAdded,fromBaseDecimal:R.THOR}),runePending:P.from({asset:"THOR.RUNE",value:i.runePending,fromBaseDecimal:R.THOR}),runeWithdrawn:P.from({asset:"THOR.RUNE",value:i.runeWithdrawn,fromBaseDecimal:R.THOR}),poolShare:new On(i.sharedUnits).div(i.poolUnits),dateLastAdded:i.dateLastAdded,dateFirstAdded:i.dateFirstAdded}))}import{AssetValue as dn,BaseDecimal as Dn,Chain as V,RequestClient as G,SwapKitNumber as Pn}from"@swapkit/helpers";function y(r=!0){return r?"https://midgard.ninerealms.com":"https://midgard.mayachain.info"}function Rn(r=!0){let t=y(r);return r?`${t}/v2/thorname`:`${t}/v2/mayaname`}function an(r){return function t(i){return G.get(`${r}/v2/member/${i}`)}}function Sn(r){return function t(i){return G.get(`${r}/lookup/${i}`)}}function hn(r){return function t(i){return G.get(`${r}/rlookup/${i}`)}}function Bn(r){return function t(i){return G.get(`${r}/owner/${i}`)}}function a({asset:r,value:t}){return dn.from({asset:r,value:t,fromBaseDecimal:Dn.THOR})}function Mn({liquidityPositionGetter:r,isThorchain:t}){return async function i(u){let N=await r(u),O=t?"rune":"cacao";return N.pools.map((L)=>({[`${O}Pending`]:a({asset:"THOR.RUNE",value:L.runePending}),[`${O}RegisteredAddress`]:L.runeAddress,[`${O}Withdrawn`]:a({asset:"THOR.RUNE",value:L.runeWithdrawn}),[O]:a({asset:"THOR.RUNE",value:L.runeAdded}),asset:a({asset:L.pool,value:L.assetAdded}),assetPending:a({asset:L.pool,value:L.assetPending}),assetRegisteredAddress:L.assetAddress,assetWithdrawn:a({asset:L.pool,value:L.assetWithdrawn}),dateFirstAdded:L.dateFirstAdded,dateLastAdded:L.dateLastAdded,poolShare:new Pn(L.liquidityUnits).div(L.pool)}))}}function x(r){let t=r===V.THORChain,i=y(t),u=Rn(t),N=an(i);return{getLiquidityPositionRaw:N,getNameDetails:Sn(u),getNamesByAddress:hn(u),getNamesByOwner:Bn(u),getLiquidityPosition:Mn({liquidityPositionGetter:N,isThorchain:t})}}var l=x(V.THORChain),k=x(V.Maya);var X={};M(X,{getTrackerDetails:()=>Qn,getTokenListProviders:()=>_,getTokenList:()=>nr,getSwapQuote:()=>qn,getPrice:()=>rr,getGasRate:()=>er,getChainflipDepositChannel:()=>tr,getChainBalance:()=>pn});import{EVMChains as Jn,RequestClient as C,SKConfig as un,SwapKitError as b,isGasAsset as jn}from"@swapkit/helpers";import{Chain as Z,ChainId as z,FeeTypeEnum as Gn,ProviderName as D,WarningCodeEnum as Un}from"@swapkit/helpers";import{array as E,boolean as o,nativeEnum as s,number as m,object as A,optional as e,string as n,union as J,unknown as F}from"zod";var j;((u)=>{u.CHEAPEST="CHEAPEST";u.FASTEST="FASTEST";u.RECOMMENDED="RECOMMENDED"})(j||={});var Y;((N)=>{N.PSBT="PSBT";N.EVM="EVM";N.COSMOS="COSMOS";N.RADIX="RADIX"})(Y||={});var Q;((I)=>{I.native_send="native_send";I.token_transfer="token_transfer";I.native_contract_call="native_contract_call";I.token_contract_call="token_contract_call";I.approve="approve";I.deposit="deposit";I.thorname_action="thorname_action";I.lp_action="lp_action";I.swap="swap";I.streaming_swap="streaming_swap";I.stake="stake";I.claim="claim";I.lending="lending";I.unknown="unknown"})(Q||={});var q;((O)=>{O.unknown="unknown";O.not_started="not_started";O.pending="pending";O.swapping="swapping";O.completed="completed"})(q||={});var p;((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"})(p||={});var cr=A({error:n(),message:n()}),S=A({chain:s(Z),symbol:n(),ticker:n(),decimal:e(m()),address:e(n()),isGasAsset:o(),isSynthetic:o(),tax:e(A({buy:m(),sell:m()}))}),cn=A({id:n(),market_cap:m(),name:n(),price_change_24h_usd:m(),price_change_percentage_24h_usd:m(),sparkline_in_7d:E(m()),timestamp:n(),total_volume:m()}),nn=E(A({identifier:n(),provider:n(),cg:cn.optional(),price_usd:m(),timestamp:m()}).partial()),Vr=A({sellAsset:n({description:"Asset to sell"}),buyAsset:n({description:"Asset to buy"}),sellAmount:n({description:"Amount of asset to sell"}).refine((r)=>+r>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:e(E(n({description:"List of providers to use"}).refine((r)=>D[r]!==void 0,{message:"Invalid provider",path:["providers"]}))),sourceAddress:e(n({description:"Address to send asset from"})),destinationAddress:e(n({description:"Address to send asset to"})),slippage:e(m({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:e(n({description:"Affiliate thorname"})),affiliateFee:e(m({description:"Affiliate fee in basis points"}).refine((r)=>r===Math.floor(r)&&r>=0,{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:e(o({description:"Allow smart contract as sender"})),allowSmartContractReceiver:e(o({description:"Allow smart contract as recipient"})),disableSecurityChecks:e(o({description:"Disable security checks"})),includeTx:e(o({description:"Set to true to include an transaction object (EVM only)"})),cfBoost:e(o({description:"Set to true to enable CF boost to speed up Chainflip swaps. BTC only."})),referrer:e(n({description:"Referrer address (referral program)"}))}).refine((r)=>r.sellAsset!==r.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),Fr=A({tokens:E(A({identifier:n()})),metadata:o()}),Vn=A({sellAsset:A({chain:n(),asset:n()}),buyAsset:A({chain:n(),asset:n()}),destinationAddress:n(),channelMetadata:A({cfParameters:n().optional(),gasBudget:n().optional(),message:n().optional()}).optional(),affiliateFees:E(A({brokerAddress:n(),feeBps:m()})).optional(),refundParameters:A({minPrice:n().optional(),refundAddress:n().optional(),retryDuration:m().optional()}).optional(),dcaParameters:A({chunkInterval:m().optional(),numberOfChunks:m().optional()}).optional(),brokerCommissionBps:m().optional(),maxBoostFeeBps:m().optional()}),rn=A({channelId:n(),depositAddress:n()}),Fn=A({evmCalldata:e(n()),logs:e(F()),memo:e(n()),spender:e(n())}),Yn=A({estimatedFinalisedAt:m(),estimatedTimeToComplete:m(),updatedAt:m(),currentLegIndex:e(m()),providerDetails:e(F())}),_n=A({network:e(S),affiliate:e(S),liquidity:e(S),protocol:e(S),tax:e(S)}),Xn=A({broadcastedAt:e(m()),wallet:e(n()),quoteId:e(n()),explorerUrl:e(n()),affiliate:e(n()),fees:e(_n),provider:e(s(D)),images:e(A({from:e(n()),to:e(n()),provider:e(n()),chain:e(n())}))}),U=A({chainId:s(z),hash:n(),block:m(),type:s(Q),status:s(q),trackingStatus:e(s(p)),fromAsset:n(),fromAmount:n(),fromAddress:n(),toAsset:n(),toAmount:n(),toAddress:n(),finalAsset:e(S),finalAddress:e(n()),finalisedAt:m(),transient:e(Yn),meta:e(Xn),payload:e(Fn)}),Yr=U.extend({legs:E(U)}),_r=U.extend({legs:E(U)}),en=E(A({type:s(Gn),amount:n(),asset:n(),chain:n(),protocol:s(D)})),tn=A({inbound:e(m({description:"Time to receive inbound asset in seconds"})),swap:e(m({description:"Time to swap assets in seconds"})),outbound:e(m({description:"Time to receive outbound asset in seconds"})),total:m({description:"Total time in seconds"})}),fn=A({to:n({description:"Address of the recipient"}),from:n({description:"Address of the sender"}),value:n({description:"Value to send"}),data:n({description:"Data to send"})}),vn=E(J([n(),m(),E(n()),A({from:n(),value:n()}).describe("Parameters to pass to the contract method")])),Xr=A({contractAddress:n({description:"Address of the contract to interact with"}),contractMethod:n({description:"Name of the method to call"}),contractParams:vn,contractParamNames:E(n({description:"Names of the parameters to pass to the contract method"})),approvalToken:e(n({description:"Address of the token to approve spending of"})),approvalSpender:e(n({description:"Address of the spender to approve"}))}),wn=A({typeUrl:n(),value:F()}),$n=A({amount:E(A({denom:n(),amount:n()})),gas:n()}),Wn=A({memo:n(),accountNumber:m(),sequence:m(),chainId:s(z),msgs:E(wn),fee:$n}),yn=A({sellAsset:n({description:"Asset to sell"}),buyAsset:n({description:"Asset to buy"}),provider:s(D),sourceAddress:n({description:"Source address"}),destinationAddress:n({description:"Destination address"}),estimatedTime:tn.optional(),affiliate:n({description:"Affiliate address"}).optional(),affiliateFee:m({description:"Affiliate fee"}).optional(),slipPercentage:m({description:"Slippage as a percentage"})}),fr=yn.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),xn=A({asset:n({description:"Asset name"}),price:m({description:"Price in USD"}),image:n({description:"Asset image"})}),ln=Vn,kn=A({priceImpact:e(m({description:"Price impact"})),assets:e(E(xn)),approvalAddress:e(n({description:"Approval address for swap"})),streamingInterval:m().optional(),maxStreamingQuantity:m().optional(),tags:E(s(j)),affiliate:e(n()),affiliateFee:e(n()),txType:e(s(Y)),chainflip:e(ln),referrer:e(n())}),Kn=E(A({code:s(Un),display:n(),tooltip:n().optional()})),Zn=A({provider:s(D),sellAsset:n({description:"Asset to sell"}),sellAmount:n({description:"Sell amount"}),buyAsset:n({description:"Asset to buy"}),buyAmount:n({description:"Buy amount"}),buyAmountMaxSlippage:n({description:"Buy amount max slippage"}),fees:e(en)}),zn=A({providers:E(s(D)),sellAsset:n({description:"Asset to sell"}),sellAmount:n({description:"Sell amount"}),buyAsset:n({description:"Asset to buy"}),expectedBuyAmount:n({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:n({description:"Expected Buy amount max slippage"}),sourceAddress:n({description:"Source address"}),destinationAddress:n({description:"Destination address"}),targetAddress:e(n({description:"Target address"})),inboundAddress:e(n({description:"Inbound address"})),expiration:e(n({description:"Expiration"})),memo:e(n({description:"Memo"})),fees:en,txType:e(s(Y)),tx:e(J([fn,Wn,n()])),estimatedTime:e(tn),totalSlippageBps:m({description:"Total slippage in bps"}),legs:E(Zn),warnings:Kn,meta:kn}),An=A({quoteId:n({description:"Quote ID"}),routes:E(zn),error:e(n({description:"Error message"})),providerErrors:e(E(A({provider:s(D).optional(),errorCode:e(s(K)),message:e(n())})))}),mn=E(A({id:m(),chainId:n(),value:n(),unit:n(),createdAt:n()})),vr=E(A({chain:s(Z),decimal:m(),ticker:n(),symbol:n(),value:n(),identifier:n()}));function Qn(r){return C.post(H("/track"),{json:r})}async function qn(r){let t=await C.post(H("/quote"),{json:r});if(t.error)throw new b("api_v2_server_error",{message:t.error});try{let i=An.safeParse(t);if(!i.success)throw new b("api_v2_invalid_response",i.error);return i.data}catch(i){return t}}async function pn({chain:r,address:t,scamFilter:i=!0}){let u=H(`/balance?chain=${r}&address=${t}`),N=await C.get(u),O=Array.isArray(N)?N:[];return i?mr(O):O}function _(){let r=H("/providers");return C.get(r)}function nr(r){let t=H(`/tokens?provider=${r}`);return C.get(t)}async function rr(r){let t=H("/price"),i=await C.post(t,{json:r});try{let u=nn.safeParse(i);if(!u.success)throw new b("api_v2_invalid_response",u.error);return u.data}catch(u){throw new b("api_v2_invalid_response",u)}}async function er(){let r=H("/gas"),t=await C.get(r);try{let i=mn.safeParse(t);if(!i.success)throw new b("api_v2_invalid_response",i.error);return i.data}catch(i){throw new b("api_v2_invalid_response",i)}}async function tr(r){let{destinationAddress:t}=r;if(!t)throw new b("chainflip_broker_invalid_params");let i=un.get("integrations").chainflip?.brokerUrl||H("/channel"),u=await C.post(i,{json:r});try{let N=rn.safeParse(u);if(!N.success)throw new b("api_v2_invalid_response",N.error);return N.data}catch(N){throw new b("api_v2_invalid_response",N)}}function H(r){let{isDev:t,apiUrl:i,devApiUrl:u}=un.get("envs");return`${t?u:i}${r}`}function ir(r){let[t,i]=r.split(".");if(!Jn.includes(t))return!0;let u=i.split("-"),N=u.length===1?void 0:u[u.length-1];return jn({chain:t,symbol:i})||!!N}var Ar=new RegExp(/(.)\1{6}|\.ORG|\.NET|\.FINANCE|\.COM|WWW|HTTP|\\\\|\/\/|[\s$%:[\]]/,"gmi");function mr(r){return r.filter((t)=>{return!Ar.test(t.identifier)&&ir(t.identifier)})}var f={};M(f,{getThorchainQueue:()=>sr,getTNSPreferredAsset:()=>Or,getTHORNodeTNSDetails:()=>Ln,getRunePoolProviderInfo:()=>or,getRunePoolInfo:()=>br,getNodes:()=>Lr,getMimirInfo:()=>Tr,getLastBlock:()=>Nr,getInboundAddresses:()=>Ir});import{AssetValue as ur,Chain as En,RequestClient as g,SKConfig as Nn,StagenetChain as sn}from"@swapkit/helpers";function d(r){let{isStagenet:t}=Nn.get("envs"),i=Nn.get("nodeUrls");switch(r){case"mayachain":return`${i[t?sn.Maya:En.Maya]}/mayachain`;default:return`${i[t?sn.THORChain:En.THORChain]}/thorchain`}}function Er(r){let t=r==="mayachain"?"mayaname":"thorname";return`${d(r)}/${t}`}function Nr(r="thorchain"){return g.get(`${d(r)}/lastblock`)}function sr(r){return g.get(`${d(r)}/queue`)}function Lr(r){return g.get(`${d(r)}/nodes`)}function Tr(r){return g.get(`${d(r)}/mimir`)}function Ir(r){return g.get(`${d(r)}/inbound_addresses`)}async function Ln({type:r,name:t}){try{return await g.get(`${Er(r)}/${t}`)}catch(i){return{name:t,expire_block_height:0,owner:"",preferred_asset:"",affiliate_collector_rune:"",aliases:[]}}}async function Or({type:r,tns:t}){let i=await Ln({name:t,type:r});if(!i.preferred_asset||i.preferred_asset===".")return;return ur.from({asyncTokenLookup:!0,asset:i.preferred_asset})}function br(r){return g.get(`${d(r)}/runepool`)}function or({type:r,thorAddress:t}){return g.get(`${d(r)}/rune_provider/${t}`)}var w={};M(w,{getStaticTokenList:()=>dr,getProviderLogo:()=>Rr,getLogoForAsset:()=>Dr,getChainLogoForAsset:()=>Pr});import{AssetValue as In,Chain as Cr,RequestClient as Hr,getChainIdentifier as gr}from"@swapkit/helpers";var v="https://static.thorswap.net";function dr(r){return Hr.get(`${v}/token-list/${r}.json`)}function Dr(r){let t=ar(r);return`${v}/token-list/images/${t}.png`}function Pr(r){let{chain:t}=In.from({asset:r}),i=gr(t).toLowerCase();return`${v}/token-list/images/${i}.png`}var Tn;async function Rr(r){return Tn||=await _(),Tn.find((t)=>t.name===r)?.url}function ar(r){let{symbol:t}=In.from({asset:r});if(t===Cr.Ethereum)return"eth.eth";return r.toLowerCase()}var Kr={...X,...w,mayachainMidgard:k,microgard:c,thorchainMidgard:l,thornode:f};export{Q as TxnType,q as TxnStatus,Yr as TransactionSchema,_r as TransactionDTOSchema,p as TrackingStatus,cn as TokenDetailsMetadataSchema,Kr as SwapKitApi,Kn as RouteQuoteWarningSchema,Y as RouteQuoteTxType,kn as RouteQuoteMetadataSchema,xn as RouteQuoteMetadataAssetSchema,fr as RouteLegWithoutAddressesSchema,yn as RouteLegSchema,An as QuoteResponseSchema,Vr as QuoteRequestSchema,j as PriorityLabel,nn as PriceResponseSchema,Fr as PriceRequestSchema,mn as GasResponseSchema,en as FeesSchema,tn as EstimatedTimeSchema,fn as EVMTransactionSchema,Xr as EVMTransactionDetailsSchema,vn as EVMTransactionDetailsParamsSchema,rn as DepositChannelResponseSchema,Wn as CosmosTransactionSchema,ln as ChainflipMetadataSchema,Vn as BrokerDepositChannelParamsSchema,S as AssetValueSchema,cr as ApiV2ErrorSchema};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=80F792D505D3CF9864756E2164756E21
|