@swapkit/helpers 2.4.3 → 3.0.0-beta.0

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.
Files changed (106) hide show
  1. package/dist/api/index.cjs +3 -0
  2. package/dist/api/index.cjs.map +16 -0
  3. package/dist/api/index.js +3 -0
  4. package/dist/api/index.js.map +16 -0
  5. package/dist/chunk-fazw0jvt.js +3 -0
  6. package/dist/chunk-fazw0jvt.js.map +9 -0
  7. package/dist/chunk-nm00d52v.js +4 -0
  8. package/dist/chunk-nm00d52v.js.map +9 -0
  9. package/dist/contracts/index.cjs +3 -0
  10. package/dist/contracts/index.cjs.map +38 -0
  11. package/dist/contracts/index.js +3 -0
  12. package/dist/contracts/index.js.map +38 -0
  13. package/dist/index.cjs +6 -0
  14. package/dist/index.cjs.map +29 -0
  15. package/dist/index.js +3 -3
  16. package/dist/index.js.map +19 -20
  17. package/dist/tokens/index.cjs +3 -0
  18. package/dist/tokens/index.cjs.map +23 -0
  19. package/dist/tokens/index.js +3 -0
  20. package/dist/tokens/index.js.map +23 -0
  21. package/package.json +31 -15
  22. package/src/api/index.ts +19 -0
  23. package/src/api/microgard/endpoints.ts +83 -0
  24. package/src/api/microgard/types.ts +60 -0
  25. package/src/api/midgard/endpoints.ts +166 -0
  26. package/src/api/midgard/types.ts +155 -0
  27. package/src/api/swapkitApi/endpoints.ts +266 -0
  28. package/src/api/swapkitApi/types.ts +772 -0
  29. package/src/api/thornode/endpoints.ts +78 -0
  30. package/src/api/thornode/types.ts +241 -0
  31. package/src/api/thorswapStatic/endpoints.ts +30 -0
  32. package/src/api/thorswapStatic/types.ts +18 -0
  33. package/src/contracts/abis/avaxGeneric.ts +92 -0
  34. package/src/contracts/abis/avaxWoofi.ts +145 -0
  35. package/src/contracts/abis/bscGeneric.ts +106 -0
  36. package/src/contracts/abis/chainflipGateway.ts +330 -0
  37. package/src/contracts/abis/erc20.ts +99 -0
  38. package/src/contracts/abis/ethGeneric.ts +92 -0
  39. package/src/contracts/abis/mayaEvmVaults.ts +331 -0
  40. package/src/contracts/abis/pancakeV2.ts +145 -0
  41. package/src/contracts/abis/pangolin.ts +120 -0
  42. package/src/contracts/abis/sushiswap.ts +120 -0
  43. package/src/contracts/abis/tcEthVault.ts +650 -0
  44. package/src/contracts/abis/traderJoe.ts +120 -0
  45. package/src/contracts/abis/uniswapV2.ts +120 -0
  46. package/src/contracts/abis/uniswapV2Leg.ts +128 -0
  47. package/src/contracts/abis/uniswapV3_100.ts +128 -0
  48. package/src/contracts/abis/uniswapV3_10000.ts +128 -0
  49. package/src/contracts/abis/uniswapV3_3000.ts +128 -0
  50. package/src/contracts/abis/uniswapV3_500.ts +128 -0
  51. package/src/contracts/index.ts +95 -0
  52. package/src/contracts/routers/index.ts +58 -0
  53. package/src/contracts/routers/kyber.ts +402 -0
  54. package/src/contracts/routers/oneinch.ts +2188 -0
  55. package/src/contracts/routers/pancakeswap.ts +340 -0
  56. package/src/contracts/routers/pangolin.ts +340 -0
  57. package/src/contracts/routers/sushiswap.ts +340 -0
  58. package/src/contracts/routers/traderJoe.ts +340 -0
  59. package/src/contracts/routers/uniswapv2.ts +340 -0
  60. package/src/contracts/routers/uniswapv3.ts +254 -0
  61. package/src/contracts/routers/woofi.ts +171 -0
  62. package/src/index.ts +11 -12
  63. package/src/modules/__tests__/assetValue.test.ts +0 -2
  64. package/src/modules/__tests__/swapKitConfig.test.ts +37 -0
  65. package/src/modules/assetValue.ts +26 -92
  66. package/src/modules/bigIntArithmetics.ts +6 -2
  67. package/src/modules/requestClient.ts +26 -35
  68. package/src/modules/swapKitConfig.ts +131 -0
  69. package/src/modules/swapKitError.ts +6 -6
  70. package/src/tokens/index.ts +15 -0
  71. package/src/tokens/lists/camelot_v3.ts +15920 -0
  72. package/src/tokens/lists/caviar_v1.ts +1694 -0
  73. package/src/tokens/lists/chainflip.ts +104 -0
  74. package/src/tokens/lists/index.ts +13 -0
  75. package/src/tokens/lists/jupiter.ts +29606 -0
  76. package/src/tokens/lists/mayachain.ts +513 -0
  77. package/src/tokens/lists/oneinch.ts +14238 -0
  78. package/src/tokens/lists/openocean_v2.ts +11514 -0
  79. package/src/tokens/lists/pancakeswap.ts +4296 -0
  80. package/src/tokens/lists/pangolin_v1.ts +175 -0
  81. package/src/tokens/lists/sushiswap_v2.ts +965 -0
  82. package/src/tokens/lists/thorchain.ts +669 -0
  83. package/src/tokens/lists/traderjoe_v2.ts +1384 -0
  84. package/src/tokens/lists/uniswap_v2.ts +5596 -0
  85. package/src/tokens/lists/uniswap_v3.ts +5946 -0
  86. package/src/types/chains.ts +26 -46
  87. package/src/types/commonTypes.ts +3 -90
  88. package/src/types/index.ts +3 -4
  89. package/src/types/sdk.ts +0 -24
  90. package/src/types/tokens.ts +1 -1
  91. package/src/types/wallet.ts +37 -21
  92. package/src/{helpers → utils}/asset.ts +49 -19
  93. package/src/{helpers → utils}/derivationPath.ts +7 -2
  94. package/src/{helpers → utils}/memo.ts +0 -65
  95. package/src/{helpers → utils}/others.ts +12 -5
  96. package/src/utils/plugin.ts +13 -0
  97. package/src/{helpers/web3wallets.ts → utils/wallets.ts} +175 -148
  98. package/src/modules/walletUtils.ts +0 -30
  99. package/src/types/network.ts +0 -49
  100. /package/src/{helpers → utils}/__tests__/asset.test.ts +0 -0
  101. /package/src/{helpers/__tests__/derivationPath.ts → utils/__tests__/derivationPath.test.ts} +0 -0
  102. /package/src/{helpers → utils}/__tests__/memo.test.ts +0 -0
  103. /package/src/{helpers → utils}/__tests__/others.test.ts +0 -0
  104. /package/src/{helpers → utils}/__tests__/validators.test.ts +0 -0
  105. /package/src/{helpers → utils}/liquidity.ts +0 -0
  106. /package/src/{helpers → utils}/validators.ts +0 -0
@@ -0,0 +1,3 @@
1
+ var OA={};G(OA,{TxnType:()=>$,TxnStatus:()=>W,TransactionSchema:()=>Wn,TransactionDTOSchema:()=>xn,TrackingStatus:()=>x,TokenDetailsMetadataSchema:()=>nn,SwapKitApi:()=>mA,RouteQuoteWarningSchema:()=>Ln,RouteQuoteTxType:()=>B,RouteQuoteMetadataSchema:()=>un,RouteQuoteMetadataAssetSchema:()=>tn,RouteLegWithoutAddressesSchema:()=>zn,RouteLegSchema:()=>Tn,QuoteResponseSchema:()=>J,QuoteRequestSchema:()=>Bn,PriorityLabel:()=>M,PriceResponseSchema:()=>j,PriceRequestSchema:()=>fn,GasResponseSchema:()=>Q,FeesSchema:()=>Z,EstimatedTimeSchema:()=>z,EVMTransactionSchema:()=>En,EVMTransactionDetailsSchema:()=>jn,EVMTransactionDetailsParamsSchema:()=>rn,DepositChannelResponseSchema:()=>k,CosmosTransactionSchema:()=>Nn,ChainflipMetadataSchema:()=>In,BrokerDepositChannelParamsSchema:()=>An,AssetValueSchema:()=>R,ApiV2ErrorSchema:()=>Xn});module.exports=bA(OA);var F={};G(F,{getTNSChainAddress:()=>Dn,getTHORNamesByOwner:()=>on,getTHORNamesByAddress:()=>Rn,getTHORNameDetails:()=>q,getTHORChainPools:()=>en,getLiquidityPositionsRaw:()=>l,getLiquidityPositions:()=>Sn});var u=require("@swapkit/helpers"),U="https://mu.thorswap.net";function q(A){return u.RequestClient.get(`${U}/thorname/lookup/${A}`)}function on(A){return u.RequestClient.get(`${U}/thorname/owner/${A}`)}function Rn(A){return u.RequestClient.get(`${U}/thorname/address/${A}`)}function en(A){return u.RequestClient.get(`${U}/pools`,{searchParams:{period:A}})}function l(A){return u.RequestClient.get(`${U}/fullmember?address=${A.join(",")}`)}async function Dn({chain:A,tns:E}){return(await q(E))?.entries?.find((r)=>r.chain.toLowerCase()===A.toLowerCase())?.address}async function Sn(A){return(await l(A)).map((N)=>({assetRegisteredAddress:N.assetAddress,asset:u.AssetValue.from({asset:N.pool,value:N.assetAdded,fromBaseDecimal:u.BaseDecimal.THOR}),assetPending:u.AssetValue.from({asset:N.pool,value:N.assetPending,fromBaseDecimal:u.BaseDecimal.THOR}),assetWithdrawn:u.AssetValue.from({asset:N.pool,value:N.assetWithdrawn,fromBaseDecimal:u.BaseDecimal.THOR}),runeRegisteredAddress:N.runeAddress,rune:u.AssetValue.from({asset:"THOR.RUNE",value:N.runeAdded,fromBaseDecimal:u.BaseDecimal.THOR}),runePending:u.AssetValue.from({asset:"THOR.RUNE",value:N.runePending,fromBaseDecimal:u.BaseDecimal.THOR}),runeWithdrawn:u.AssetValue.from({asset:"THOR.RUNE",value:N.runeWithdrawn,fromBaseDecimal:u.BaseDecimal.THOR}),poolShare:new u.SwapKitNumber(N.sharedUnits).div(N.poolUnits),dateLastAdded:N.dateLastAdded,dateFirstAdded:N.dateFirstAdded}))}var T=require("@swapkit/helpers");function _(A=!1){return A?"https://midgard.mayachain.info":"https://midgard.ninerealms.com"}function V(A=!1){return A?`${_(A)}/v2/mayaname`:`${_(A)}/v2/thorname`}function d(A,E=!1){return T.RequestClient.get(`${_(E)}/v2/borrower/${A}`)}function c(A,E=!1){return T.RequestClient.get(`${_(E)}/v2/saver/${A}`)}function h(A,E){return T.RequestClient.get(`${_(E)}/v2/member/${A}`)}function gn(A,E=!1){return T.RequestClient.get(`${V(E)}/lookup/${A}`)}function Pn(A,E=!1){return T.RequestClient.get(`${V(E)}/rlookup/${A}`)}function Gn(A,E=!1){return T.RequestClient.get(`${V(E)}/owner/${A}`)}async function Un(A,E=!1){return(await d(A,E)).pools.map((r)=>({collateral_deposited:T.AssetValue.from({asset:r.collateral_asset,value:r.collateral_deposited,fromBaseDecimal:T.BaseDecimal.THOR}),collateral_withdrawn:T.AssetValue.from({asset:r.collateral_asset,value:r.collateral_withdrawn,fromBaseDecimal:T.BaseDecimal.THOR}),debt_issued_tor:T.SwapKitNumber.fromBigInt(BigInt(r.debt_issued_tor),T.BaseDecimal.THOR),debt_repaid_tor:T.SwapKitNumber.fromBigInt(BigInt(r.debt_repaid_tor),T.BaseDecimal.THOR),last_open_loan_timestamp:r.last_open_loan_timestamp,last_repay_loan_timestamp:r.last_repay_loan_timestamp,target_assets:r.target_assets.map((O)=>T.AssetValue.from({asset:O}))}))}async function _n(A,E=!1){return(await c(A,E)).pools.map((r)=>({assetRegisteredAddress:r.assetAddress,assetAdded:T.AssetValue.from({asset:r.pool,value:r.assetAdded,fromBaseDecimal:T.BaseDecimal.THOR}),assetDeposit:T.AssetValue.from({asset:r.pool,value:r.assetDeposit,fromBaseDecimal:T.BaseDecimal.THOR}),assetRedeem:T.AssetValue.from({asset:r.pool,value:r.assetRedeem,fromBaseDecimal:T.BaseDecimal.THOR}),assetWithdrawn:T.AssetValue.from({asset:r.pool,value:r.assetWithdrawn,fromBaseDecimal:T.BaseDecimal.THOR}),dateLastAdded:r.dateLastAdded,dateFirstAdded:r.dateFirstAdded}))}async function Yn(A,E=!1){return(await h(A,E)).pools.map((r)=>({assetRegisteredAddress:r.assetAddress,asset:T.AssetValue.from({asset:r.pool,value:r.assetAdded,fromBaseDecimal:T.BaseDecimal.THOR}),assetPending:T.AssetValue.from({asset:r.pool,value:r.assetPending,fromBaseDecimal:T.BaseDecimal.THOR}),assetWithdrawn:T.AssetValue.from({asset:r.pool,value:r.assetWithdrawn,fromBaseDecimal:T.BaseDecimal.THOR}),[`${E?"cacao":"rune"}RegisteredAddress`]:r.runeAddress,[`${E?"cacao":"rune"}`]:T.AssetValue.from({asset:"THOR.RUNE",value:r.runeAdded,fromBaseDecimal:T.BaseDecimal.THOR}),[`${E?"cacao":"rune"}Pending`]:T.AssetValue.from({asset:"THOR.RUNE",value:r.runePending,fromBaseDecimal:T.BaseDecimal.THOR}),[`${E?"cacao":"rune"}Withdrawn`]:T.AssetValue.from({asset:"THOR.RUNE",value:r.runeWithdrawn,fromBaseDecimal:T.BaseDecimal.THOR}),poolShare:new T.SwapKitNumber(r.liquidityUnits).div(r.pool),dateLastAdded:r.dateLastAdded,dateFirstAdded:r.dateFirstAdded}))}var s=(A)=>({getBorrowerDetail:(E)=>Un(E,A===T.Chain.Maya),getBorrowerDetailRaw:(E)=>d(E,A===T.Chain.Maya),getSaversDetail:(E)=>_n(E,A===T.Chain.Maya),getSaverDetailRaw:(E)=>c(E,A===T.Chain.Maya),getLiquidityPosition:(E)=>Yn(E,A===T.Chain.Maya),getLiquidityPositionRaw:(E)=>h(E,A===T.Chain.Maya),getNameDetails:(E)=>gn(E,A===T.Chain.Maya),getNamesByAddress:(E)=>Pn(E,A===T.Chain.Maya),getNamesByOwner:(E)=>Gn(E,A===T.Chain.Maya)}),p=s(T.Chain.THORChain),a=s(T.Chain.Maya);var v={};G(v,{getTrackerDetails:()=>Kn,getTokenTradingPairs:()=>cn,getTokenListProvidersV2:()=>yn,getTokenListProviders:()=>f,getTokenList:()=>On,getSwapQuote:()=>wn,getPrice:()=>qn,getGasRate:()=>ln,getChainflipDepositChannel:()=>hn,computeHash:()=>D});var mn=vn(require("crypto")),t=require("@swapkit/helpers");var b=require("@swapkit/helpers"),n=require("zod"),M;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(M||={});var B;((O)=>{O.PSBT="PSBT";O.EVM="EVM";O.COSMOS="COSMOS";O.RADIX="RADIX"})(B||={});var $;((H)=>{H.native_send="native_send";H.token_transfer="token_transfer";H.native_contract_call="native_contract_call";H.token_contract_call="token_contract_call";H.approve="approve";H.deposit="deposit";H.thorname_action="thorname_action";H.lp_action="lp_action";H.swap="swap";H.streaming_swap="streaming_swap";H.stake="stake";H.claim="claim";H.lending="lending";H.unknown="unknown"})($||={});var W;((I)=>{I.unknown="unknown";I.not_started="not_started";I.pending="pending";I.swappping="swapping";I.completed="completed"})(W||={});var x;((m)=>{m.not_started="not_started";m.starting="starting";m.broadcasted="broadcasted";m.mempool="mempool";m.inbound="inbound";m.outbound="outbound";m.swapping="swapping";m.completed="completed";m.refunded="refunded";m.partially_refunded="partially_refunded";m.dropped="dropped";m.reverted="reverted";m.replaced="replaced";m.retries_exceeded="retries_exceeded";m.parsing_error="parsing_error"})(x||={});var Xn=n.z.object({error:n.z.string(),message:n.z.string()}),R=n.z.object({chain:n.z.nativeEnum(b.Chain),symbol:n.z.string(),ticker:n.z.string(),decimal:n.z.optional(n.z.number()),address:n.z.optional(n.z.string()),isGasAsset:n.z.boolean(),isSynthetic:n.z.boolean(),tax:n.z.optional(n.z.object({buy:n.z.number(),sell:n.z.number()}))}),nn=n.z.object({name:n.z.string(),id:n.z.string(),market_cap:n.z.number(),total_volume:n.z.number(),price_change_24h_usd:n.z.number(),price_change_percentage_24h_usd:n.z.number(),timestamp:n.z.string(),sparkline_in_7d:n.z.array(n.z.number())}),j=n.z.array(n.z.object({identifier:n.z.string(),provider:n.z.string(),cg:nn.optional(),price_usd:n.z.number(),timestamp:n.z.number()}).partial()),Bn=n.z.object({sellAsset:n.z.string({description:"Asset to sell"}),buyAsset:n.z.string({description:"Asset to buy"}),sellAmount:n.z.string({description:"Amount of asset to sell"}).refine((A)=>+A>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:n.z.optional(n.z.array(n.z.string({description:"List of providers to use"}).refine((A)=>{return b.ProviderName[A]!==void 0},{message:"Invalid provider",path:["providers"]}))),sourceAddress:n.z.optional(n.z.string({description:"Address to send asset from"})),destinationAddress:n.z.optional(n.z.string({description:"Address to send asset to"})),slippage:n.z.optional(n.z.number({description:"Slippage tolerance as a percentage. Default is 3%."})),affiliate:n.z.optional(n.z.string({description:"Affiliate thorname"})),affiliateFee:n.z.optional(n.z.number({description:"Affiliate fee in basis points"}).refine((A)=>{return A===Math.floor(A)&&A>=0},{message:"affiliateFee must be a positive integer",path:["affiliateFee"]})),allowSmartContractSender:n.z.optional(n.z.boolean({description:"Allow smart contract as sender"})),allowSmartContractReceiver:n.z.optional(n.z.boolean({description:"Allow smart contract as recipient"})),disableSecurityChecks:n.z.optional(n.z.boolean({description:"Disable security checks"})),includeTx:n.z.optional(n.z.boolean({description:"Set to true to include an transaction object (EVM only)"})),cfBoost:n.z.optional(n.z.boolean({description:"Set to true to enable CF boost to speed up Chainflip swaps. BTC only."})),referrer:n.z.optional(n.z.string({description:"Referrer address (referral program)"}))}).refine((A)=>A.sellAsset!==A.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),fn=n.z.object({tokens:n.z.array(n.z.object({identifier:n.z.string()})),metadata:n.z.boolean()}),An=n.z.object({sellAsset:n.z.object({chain:n.z.string(),asset:n.z.string()}),buyAsset:n.z.object({chain:n.z.string(),asset:n.z.string()}),destinationAddress:n.z.string(),channelMetadata:n.z.object({cfParameters:n.z.string().optional(),gasBudget:n.z.string().optional(),message:n.z.string().optional()}).optional(),affiliateFees:n.z.array(n.z.object({brokerAddress:n.z.string(),feeBps:n.z.number()})).optional(),refundParameters:n.z.object({minPrice:n.z.string().optional(),refundAddress:n.z.string().optional(),retryDuration:n.z.number().optional()}).optional(),dcaParameters:n.z.object({chunkInterval:n.z.number().optional(),numberOfChunks:n.z.number().optional()}).optional(),brokerCommissionBps:n.z.number().optional(),maxBoostFeeBps:n.z.number().optional()}),k=n.z.object({channelId:n.z.string(),depositAddress:n.z.string()}),Fn=n.z.object({evmCalldata:n.z.optional(n.z.string()),logs:n.z.optional(n.z.unknown()),memo:n.z.optional(n.z.string()),spender:n.z.optional(n.z.string())}),Vn=n.z.object({estimatedfinalisedAt:n.z.number(),estimatedTimeToComplete:n.z.number(),updatedAt:n.z.number(),currentLegIndex:n.z.optional(n.z.number()),providerDetails:n.z.optional(n.z.unknown())}),Mn=n.z.object({network:n.z.optional(R),affiliate:n.z.optional(R),liquidity:n.z.optional(R),protocol:n.z.optional(R),tax:n.z.optional(R)}),$n=n.z.object({broadcastedAt:n.z.optional(n.z.number()),wallet:n.z.optional(n.z.string()),quoteId:n.z.optional(n.z.string()),explorerUrl:n.z.optional(n.z.string()),affiliate:n.z.optional(n.z.string()),fees:n.z.optional(Mn),provider:n.z.optional(n.z.nativeEnum(b.ProviderName)),images:n.z.optional(n.z.object({from:n.z.optional(n.z.string()),to:n.z.optional(n.z.string()),provider:n.z.optional(n.z.string()),chain:n.z.optional(n.z.string())}))}),X=n.z.object({chainId:n.z.nativeEnum(b.ChainId),hash:n.z.string(),block:n.z.number(),type:n.z.nativeEnum($),status:n.z.nativeEnum(W),trackingStatus:n.z.optional(n.z.nativeEnum(x)),fromAsset:n.z.string(),fromAmount:n.z.string(),fromAddress:n.z.string(),toAsset:n.z.string(),toAmount:n.z.string(),toAddress:n.z.string(),finalAsset:n.z.optional(R),finalAddress:n.z.optional(n.z.string()),finalisedAt:n.z.number(),transient:n.z.optional(Vn),meta:n.z.optional($n),payload:n.z.optional(Fn)}),Wn=X.extend({legs:n.z.array(X)}),xn=X.extend({legs:n.z.array(X)}),Z=n.z.array(n.z.object({type:n.z.nativeEnum(b.FeeTypeEnum),amount:n.z.string(),asset:n.z.string(),chain:n.z.string(),protocol:n.z.nativeEnum(b.ProviderName)})),z=n.z.object({inbound:n.z.optional(n.z.number({description:"Time to receive inbound asset in seconds"})),swap:n.z.optional(n.z.number({description:"Time to swap assets in seconds"})),outbound:n.z.optional(n.z.number({description:"Time to receive outbound asset in seconds"})),total:n.z.number({description:"Total time in seconds"})}),En=n.z.object({to:n.z.string({description:"Address of the recipient"}),from:n.z.string({description:"Address of the sender"}),value:n.z.string({description:"Value to send"}),data:n.z.string({description:"Data to send"})}),rn=n.z.array(n.z.union([n.z.string(),n.z.number(),n.z.array(n.z.string()),n.z.object({from:n.z.string(),value:n.z.string()}).describe("Parameters to pass to the contract method")])),jn=n.z.object({contractAddress:n.z.string({description:"Address of the contract to interact with"}),contractMethod:n.z.string({description:"Name of the method to call"}),contractParams:rn,contractParamNames:n.z.array(n.z.string({description:"Names of the parameters to pass to the contract method"})),approvalToken:n.z.optional(n.z.string({description:"Address of the token to approve spending of"})),approvalSpender:n.z.optional(n.z.string({description:"Address of the spender to approve"}))}),kn=n.z.object({typeUrl:n.z.string(),value:n.z.unknown()}),Zn=n.z.object({amount:n.z.array(n.z.object({denom:n.z.string(),amount:n.z.string()})),gas:n.z.string()}),Nn=n.z.object({memo:n.z.string(),accountNumber:n.z.number(),sequence:n.z.number(),chainId:n.z.nativeEnum(b.ChainId),msgs:n.z.array(kn),fee:Zn}),Tn=n.z.object({sellAsset:n.z.string({description:"Asset to sell"}),buyAsset:n.z.string({description:"Asset to buy"}),provider:n.z.nativeEnum(b.ProviderName),sourceAddress:n.z.string({description:"Source address"}),destinationAddress:n.z.string({description:"Destination address"}),estimatedTime:z.optional(),affiliate:n.z.string({description:"Affiliate address"}).optional(),affiliateFee:n.z.number({description:"Affiliate fee"}).optional(),slipPercentage:n.z.number({description:"Slippage as a percentage"})}),zn=Tn.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),tn=n.z.object({asset:n.z.string({description:"Asset name"}),price:n.z.number({description:"Price in USD"}),image:n.z.string({description:"Asset image"})}),In=An,un=n.z.object({priceImpact:n.z.optional(n.z.number({description:"Price impact"})),assets:n.z.optional(n.z.array(tn)),approvalAddress:n.z.optional(n.z.string({description:"Approval address for swap"})),streamingInterval:n.z.number().optional(),maxStreamingQuantity:n.z.number().optional(),tags:n.z.array(n.z.nativeEnum(M)),affiliate:n.z.optional(n.z.string()),affiliateFee:n.z.optional(n.z.string()),txType:n.z.optional(n.z.nativeEnum(B)),chainflip:n.z.optional(In),referrer:n.z.optional(n.z.string())}),Ln=n.z.array(n.z.object({code:n.z.nativeEnum(b.WarningCodeEnum),display:n.z.string(),tooltip:n.z.string().optional()})),Jn=n.z.object({provider:n.z.nativeEnum(b.ProviderName),sellAsset:n.z.string({description:"Asset to sell"}),sellAmount:n.z.string({description:"Sell amount"}),buyAsset:n.z.string({description:"Asset to buy"}),buyAmount:n.z.string({description:"Buy amount"}),buyAmountMaxSlippage:n.z.string({description:"Buy amount max slippage"}),fees:n.z.optional(Z)}),Qn=n.z.object({providers:n.z.array(n.z.nativeEnum(b.ProviderName)),sellAsset:n.z.string({description:"Asset to sell"}),sellAmount:n.z.string({description:"Sell amount"}),buyAsset:n.z.string({description:"Asset to buy"}),expectedBuyAmount:n.z.string({description:"Expected Buy amount"}),expectedBuyAmountMaxSlippage:n.z.string({description:"Expected Buy amount max slippage"}),sourceAddress:n.z.string({description:"Source address"}),destinationAddress:n.z.string({description:"Destination address"}),targetAddress:n.z.optional(n.z.string({description:"Target address"})),inboundAddress:n.z.optional(n.z.string({description:"Inbound address"})),expiration:n.z.optional(n.z.string({description:"Expiration"})),memo:n.z.optional(n.z.string({description:"Memo"})),fees:Z,txType:n.z.optional(n.z.nativeEnum(B)),tx:n.z.optional(n.z.union([En,Nn,n.z.string()])),estimatedTime:n.z.optional(z),totalSlippageBps:n.z.number({description:"Total slippage in bps"}),legs:n.z.array(Jn),warnings:Ln,meta:un}),J=n.z.object({quoteId:n.z.string({description:"Quote ID"}),routes:n.z.array(Qn),error:n.z.optional(n.z.string({description:"Error message"})),providerErrors:n.z.optional(n.z.array(n.z.object({provider:n.z.nativeEnum(b.ProviderName).optional(),errorCode:n.z.optional(n.z.nativeEnum(b.ErrorCode)),message:n.z.optional(n.z.string())})))}),Q=n.z.array(n.z.object({id:n.z.number(),chainId:n.z.string(),value:n.z.string(),unit:n.z.string(),createdAt:n.z.string()}));function e(A){let{isDev:E,apiUrl:N,devApiUrl:r}=t.SKConfig.get("envs");return`${E?r:N}${A}`}function g(A){let{swapKit:E}=t.SKConfig.get("apiKeys"),{referer:N}=t.SKConfig.get("envs");return{...E&&!A?{"x-api-key":E}:{},...A&&N?{"x-payload-hash":A,referer:N}:{}}}var D=(A)=>{let{swapKit:E}=t.SKConfig.get("apiKeys"),{referer:N}=t.SKConfig.get("envs");if(!(N&&E))return;if(!["POST","GET"].includes(A.method))throw new t.SwapKitError("api_v2_invalid_method_key_hash",{message:`Invalid method for params: ${JSON.stringify(A)}`});let r=A.method==="POST"?JSON.stringify(A.payload):`${A.url}${E}`;return mn.default.createHash("sha256").update(r,"utf8").digest("hex")};function Kn(A){return t.RequestClient.post(e("/track"),{json:A,headers:g(D({method:"POST",payload:A}))})}async function wn(A){let E=await t.RequestClient.post(e("/quote"),{json:A,headers:g(D({method:"POST",payload:A}))});if(E.error)throw new t.SwapKitError("api_v2_server_error",{message:E.error});try{let N=J.safeParse(E);if(!N.success)throw new t.SwapKitError("api_v2_invalid_response",N.error);return N.data}catch(N){return console.warn(N),E}}function yn(){return t.warnOnce(!0,"getTokenListProvidersV2 is deprecated, use getTokenListProviders instead"),f()}function f(){let A=e("/providers");return t.RequestClient.get(A,{headers:g(D({method:"GET",url:A}))})}function On(A){let E=e(`/tokens?provider=${A}`);return t.RequestClient.get(E,{headers:g(D({method:"GET",url:E}))})}async function qn(A){let E=e("/price"),N=await t.RequestClient.post(E,{json:A,headers:g(D({method:"POST",payload:A}))});try{let r=j.safeParse(N);if(!r.success)throw new t.SwapKitError("api_v2_invalid_response",r.error);return r.data}catch(r){throw new t.SwapKitError("api_v2_invalid_response",r)}}async function ln(){let A=e("/gas"),E=await t.RequestClient.get(A,{headers:g(D({method:"GET",url:A}))});try{let N=Q.safeParse(E);if(!N.success)throw new t.SwapKitError("api_v2_invalid_response",N.error);return N.data}catch(N){throw new t.SwapKitError("api_v2_invalid_response",N)}}var bn=[t.ProviderName.CAVIAR_V1,t.ProviderName.CHAINFLIP,t.ProviderName.CHAINFLIP_STREAMING,t.ProviderName.MAYACHAIN,t.ProviderName.MAYACHAIN_STREAMING],dn=[t.ProviderName.ONEINCH,t.ProviderName.PANCAKESWAP,t.ProviderName.PANGOLIN_V1,t.ProviderName.SUSHISWAP_V2,t.ProviderName.THORCHAIN,t.ProviderName.THORCHAIN_STREAMING,t.ProviderName.TRADERJOE_V2,t.ProviderName.UNISWAP_V2,t.ProviderName.UNISWAP_V3];async function cn(A){let E=new Map;if(!A.length)return E;let N=A.map(async(I)=>{return await On(I)}),r=(await Promise.all(N)).filter((I)=>!!I).map(({tokens:I,...C})=>({data:{...C||{},tokens:I.map(({address:S,...Y})=>({...Y,...S&&["resource_rdx1tknxxxxxxxxxradxrdxxxxxxxxx009923554798xxxxxxxxxradxrd","0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"].includes(S.toLowerCase())?{}:{address:S}}))},...C})),O=r.filter(({data:I})=>{return!bn.includes(I?.provider||"")}).reduce((I,{data:C})=>C?.tokens?I.concat(C.tokens):I,[]);for(let{data:I}of r){if(!I?.tokens)return;let C=I.provider&&!bn.includes(I.provider);for(let S of I.tokens){let Y=E.get(S.identifier.toLowerCase())||{tokens:[],providers:[]},y=C?{tokens:O,providers:dn}:{tokens:I.tokens,providers:I.provider};E.set(S.identifier.toLowerCase(),{tokens:Y.tokens.concat(y.tokens),providers:Y.providers.concat(y.providers)})}}return E}async function hn(A){let{destinationAddress:E}=A;if(!E)throw new t.SwapKitError("chainflip_broker_invalid_params");let N=t.SKConfig.get("integrations").chainflip?.brokerUrl||e("/channel"),r=await t.RequestClient.post(N,{json:A});try{let O=k.safeParse(r);if(!O.success)throw new t.SwapKitError("api_v2_invalid_response",O.error);return O.data}catch(O){throw new t.SwapKitError("api_v2_invalid_response",O)}}var i={};G(i,{getThorchainQueue:()=>an,getTNSPreferredAsset:()=>rA,getTHORNodeTNSDetails:()=>Hn,getRunePoolProviderInfo:()=>TA,getRunePoolInfo:()=>NA,getNodes:()=>nA,getMimirInfo:()=>AA,getLastBlock:()=>pn,getInboundAddresses:()=>EA});var L=require("@swapkit/helpers");function o(A){let{isStagenet:E}=L.SKConfig.get("envs"),N=L.SKConfig.get("nodeUrls");switch(A){case"mayachain":return`${N[E?L.StagenetChain.Maya:L.Chain.Maya]}/mayachain`;default:return`${N[E?L.StagenetChain.THORChain:L.Chain.THORChain]}/thorchain`}}function sn(A){let E=A==="mayachain"?"mayaname":"thorname";return`${o(A)}/${E}`}function pn(A){return L.RequestClient.get(`${o(A)}/lastblock`)}function an(A){return L.RequestClient.get(`${o(A)}/queue`)}function nA(A){return L.RequestClient.get(`${o(A)}/nodes`)}function AA(A){return L.RequestClient.get(`${o(A)}/mimir`)}function EA(A){return L.RequestClient.get(`${o(A)}/inbound_addresses`)}function Hn({type:A,name:E}){return L.RequestClient.get(`${sn(A)}/${E}`)}async function rA({type:A,tns:E}){let N=await Hn({name:E,type:A});if(!N.preferred_asset||N.preferred_asset===".")return;return L.AssetValue.from({asyncTokenLookup:!0,asset:N.preferred_asset})}function NA(A){return L.RequestClient.get(`${o(A)}/runepool`)}function TA({type:A,thorAddress:E}){return L.RequestClient.get(`${o(A)}/rune_provider/${E}`)}var w={};G(w,{getStaticTokenList:()=>tA,getProviderLogo:()=>LA,getLogoForAsset:()=>IA,getChainLogoForAsset:()=>uA});var P=require("@swapkit/helpers");var K="https://static.thorswap.net";function tA(A){return P.RequestClient.get(`${K}/token-list/${A}.json`)}function IA(A){return`${K}/token-list/images/${A.toLowerCase()}.png`}function uA(A){let{chain:E}=P.AssetValue.from({asset:A}),N=P.getChainIdentifier(E).toLowerCase();return`${K}/token-list/images/${N}.png`}var Cn;async function LA(A){return Cn||=await f(),Cn.find((E)=>E.name===A)?.url}var mA={...v,...w,mayachainMidgard:a,microgard:F,thorchainMidgard:p,thornode:i};
2
+
3
+ //# debugId=B09A5C882BB6E5D264756E2164756E21
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": 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
+ "sourcesContent": [
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 { AssetValue, BaseDecimal, Chain, RequestClient, SwapKitNumber } from \"@swapkit/helpers\";\nimport type {\n BorrowerDetails,\n MemberDetailsMayachain,\n MemberDetailsThorchain,\n SaverDetails,\n THORNameDetails,\n} from \"./types\";\n\n// TODO: question: Move to SKConfig under midgardUrls\n// also - shouldn't that be named `isThorchain`?\n// As we default to TC and this is the only place that checks for opposite\nfunction getMidgardBaseUrl(isMayachain = false) {\n return isMayachain ? \"https://midgard.mayachain.info\" : \"https://midgard.ninerealms.com\";\n}\n\nfunction getNameServiceBaseUrl(isMayachain = false) {\n return isMayachain\n ? `${getMidgardBaseUrl(isMayachain)}/v2/mayaname`\n : `${getMidgardBaseUrl(isMayachain)}/v2/thorname`;\n}\n\nexport function getBorrowerDetailRaw(address: string, isMayachain = false) {\n return RequestClient.get<BorrowerDetails>(\n `${getMidgardBaseUrl(isMayachain)}/v2/borrower/${address}`,\n );\n}\n\nexport function getSaverDetailRaw(address: string, isMayachain = false) {\n return RequestClient.get<SaverDetails>(`${getMidgardBaseUrl(isMayachain)}/v2/saver/${address}`);\n}\n\nexport function getLiquidityPositionRaw<T extends boolean = false>(\n address: string,\n isMayachain?: T,\n) {\n return RequestClient.get<T extends true ? MemberDetailsMayachain : MemberDetailsThorchain>(\n `${getMidgardBaseUrl(isMayachain)}/v2/member/${address}`,\n );\n}\n\nexport function getNameDetails(name: string, isMayachain = false) {\n return RequestClient.get<THORNameDetails>(`${getNameServiceBaseUrl(isMayachain)}/lookup/${name}`);\n}\n\nexport function getNamesByAddress(address: string, isMayachain = false) {\n return RequestClient.get<THORNameDetails>(\n `${getNameServiceBaseUrl(isMayachain)}/rlookup/${address}`,\n );\n}\n\nexport function getNamesByOwner(address: string, isMayachain = false) {\n return RequestClient.get<THORNameDetails>(\n `${getNameServiceBaseUrl(isMayachain)}/owner/${address}`,\n );\n}\n\nexport async function getBorrowerDetail(address: string, isMayachain = false) {\n const rawBorrowerDetail = await getBorrowerDetailRaw(address, isMayachain);\n\n return rawBorrowerDetail.pools.map((p) => ({\n collateral_deposited: AssetValue.from({\n asset: p.collateral_asset,\n value: p.collateral_deposited,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n collateral_withdrawn: AssetValue.from({\n asset: p.collateral_asset,\n value: p.collateral_withdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n debt_issued_tor: SwapKitNumber.fromBigInt(BigInt(p.debt_issued_tor), BaseDecimal.THOR),\n debt_repaid_tor: SwapKitNumber.fromBigInt(BigInt(p.debt_repaid_tor), BaseDecimal.THOR),\n last_open_loan_timestamp: p.last_open_loan_timestamp,\n last_repay_loan_timestamp: p.last_repay_loan_timestamp,\n target_assets: p.target_assets.map((asset) => AssetValue.from({ asset })),\n }));\n}\n\nexport async function getSaverDetail(address: string, isMayachain = false) {\n const rawSaverPositions = await getSaverDetailRaw(address, isMayachain);\n\n return rawSaverPositions.pools.map((p) => ({\n assetRegisteredAddress: p.assetAddress,\n assetAdded: AssetValue.from({\n asset: p.pool,\n value: p.assetAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetDeposit: AssetValue.from({\n asset: p.pool,\n value: p.assetDeposit,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetRedeem: AssetValue.from({\n asset: p.pool,\n value: p.assetRedeem,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetWithdrawn: AssetValue.from({\n asset: p.pool,\n value: p.assetWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n dateLastAdded: p.dateLastAdded,\n dateFirstAdded: p.dateFirstAdded,\n }));\n}\n\nexport async function getLiquidityPosition(address: string, isMayachain = false) {\n const rawLiquidityPositions = await getLiquidityPositionRaw(address, isMayachain);\n\n return rawLiquidityPositions.pools.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 [`${isMayachain ? \"cacao\" : \"rune\"}RegisteredAddress`]: p.runeAddress,\n [`${isMayachain ? \"cacao\" : \"rune\"}`]: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n [`${isMayachain ? \"cacao\" : \"rune\"}Pending`]: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runePending,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n [`${isMayachain ? \"cacao\" : \"rune\"}Withdrawn`]: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n poolShare: new SwapKitNumber(p.liquidityUnits).div(p.pool),\n dateLastAdded: p.dateLastAdded,\n dateFirstAdded: p.dateFirstAdded,\n }));\n}\n\nconst getMidgardMethodsForProtocol = (chain: Chain.THORChain | Chain.Maya) => ({\n getBorrowerDetail: (address: string) => getBorrowerDetail(address, chain === Chain.Maya),\n getBorrowerDetailRaw: (address: string) => getBorrowerDetailRaw(address, chain === Chain.Maya),\n getSaversDetail: (address: string) => getSaverDetail(address, chain === Chain.Maya),\n getSaverDetailRaw: (address: string) => getSaverDetailRaw(address, chain === Chain.Maya),\n getLiquidityPosition: (address: string) => getLiquidityPosition(address, chain === Chain.Maya),\n getLiquidityPositionRaw: (address: string) =>\n getLiquidityPositionRaw(address, chain === Chain.Maya),\n getNameDetails: (name: string) => getNameDetails(name, chain === Chain.Maya),\n getNamesByAddress: (address: string) => getNamesByAddress(address, chain === Chain.Maya),\n getNamesByOwner: (address: string) => getNamesByOwner(address, chain === Chain.Maya),\n});\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
7
+ "import crypto from \"crypto\";\nimport { ProviderName, RequestClient, SKConfig, SwapKitError, warnOnce } from \"@swapkit/helpers\";\n\nimport {\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\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl } = SKConfig.get(\"envs\");\n\n return `${isDev ? devApiUrl : apiUrl}${path}`;\n}\n\nfunction getAuthHeaders(hash?: string) {\n const { swapKit } = SKConfig.get(\"apiKeys\");\n const { referer } = SKConfig.get(\"envs\");\n\n return {\n ...(swapKit && !hash ? { \"x-api-key\": swapKit } : {}),\n ...(hash && referer ? { \"x-payload-hash\": hash, referer } : {}),\n };\n}\n\nexport const computeHash = (\n hashParams: { method: \"POST\"; payload: any } | { method: \"GET\"; url: string },\n) => {\n const { swapKit } = SKConfig.get(\"apiKeys\");\n const { referer } = SKConfig.get(\"envs\");\n\n if (!(referer && swapKit)) return;\n\n if (![\"POST\", \"GET\"].includes(hashParams.method)) {\n throw new SwapKitError(\"api_v2_invalid_method_key_hash\", {\n message: `Invalid method for params: ${JSON.stringify(hashParams)}`,\n });\n }\n\n const data =\n hashParams.method === \"POST\"\n ? JSON.stringify(hashParams.payload)\n : `${hashParams.url}${swapKit}`;\n\n return crypto.createHash(\"sha256\").update(data, \"utf8\").digest(\"hex\");\n};\n\nexport function getTrackerDetails(payload: TrackerParams) {\n return RequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), {\n json: payload,\n headers: getAuthHeaders(computeHash({ method: \"POST\", payload })),\n });\n}\n\nexport async function getSwapQuote(searchParams: QuoteRequest) {\n const response = await RequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), {\n json: searchParams,\n headers: getAuthHeaders(computeHash({ method: \"POST\", payload: searchParams })),\n });\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 console.warn(error);\n return response;\n }\n}\n\n/**\n * @deprecated use getTokenListProviders instead\n */\nexport function getTokenListProvidersV2() {\n warnOnce(true, \"getTokenListProvidersV2 is deprecated, use getTokenListProviders instead\");\n return getTokenListProviders();\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return RequestClient.get<TokenListProvidersResponse>(url, {\n headers: getAuthHeaders(computeHash({ method: \"GET\", url })),\n });\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return RequestClient.get<TokensResponseV2>(url, {\n headers: getAuthHeaders(computeHash({ method: \"GET\", url })),\n });\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 headers: getAuthHeaders(computeHash({ method: \"POST\", payload: 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\n const response = await RequestClient.get<GasResponse>(url, {\n headers: getAuthHeaders(computeHash({ method: \"GET\", url })),\n });\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\nconst UNCHAINABLE_PROVIDERS = [\n ProviderName.CAVIAR_V1,\n ProviderName.CHAINFLIP,\n ProviderName.CHAINFLIP_STREAMING,\n ProviderName.MAYACHAIN,\n ProviderName.MAYACHAIN_STREAMING,\n];\n\nconst CHAINABLE_PROVIDERS = [\n ProviderName.ONEINCH,\n ProviderName.PANCAKESWAP,\n ProviderName.PANGOLIN_V1,\n ProviderName.SUSHISWAP_V2,\n ProviderName.THORCHAIN,\n ProviderName.THORCHAIN_STREAMING,\n ProviderName.TRADERJOE_V2,\n ProviderName.UNISWAP_V2,\n ProviderName.UNISWAP_V3,\n];\n\n// TODO update this once the trading pairs are supported by BE api\nexport async function getTokenTradingPairs(providers: ProviderName[]) {\n const tradingPairs = new Map<\n string,\n {\n tokens: TokensResponseV2[\"tokens\"];\n providers: ProviderName[];\n }\n >();\n\n if (!providers.length) return tradingPairs;\n\n const providerRequests = providers.map(async (provider) => {\n const tokenList = await getTokenList(provider);\n return tokenList;\n });\n\n const providersData = (await Promise.all(providerRequests))\n .filter((provider) => !!provider)\n .map(({ tokens, ...rest }) => ({\n data: {\n ...(rest || {}),\n tokens: tokens.map(({ address, ...rest }) => ({\n ...rest,\n ...(address &&\n [\n \"resource_rdx1tknxxxxxxxxxradxrdxxxxxxxxx009923554798xxxxxxxxxradxrd\",\n \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\",\n ].includes(address.toLowerCase())\n ? {}\n : { address }),\n })),\n },\n ...rest,\n }));\n\n const chainableTokens = providersData\n .filter(({ data }) => {\n return !UNCHAINABLE_PROVIDERS.includes((data?.provider || \"\") as ProviderName);\n })\n .reduce(\n (acc, { data }) => (data?.tokens ? acc.concat(data.tokens) : acc),\n [] as TokensResponseV2[\"tokens\"],\n );\n\n for (const { data } of providersData) {\n if (!data?.tokens) return;\n\n const isProviderChainable =\n data.provider && !UNCHAINABLE_PROVIDERS.includes(data.provider as ProviderName);\n\n for (const token of data.tokens) {\n const existingTradingPairs = tradingPairs.get(token.identifier.toLowerCase()) || {\n tokens: [],\n providers: [],\n };\n\n const tradingPairsForToken = isProviderChainable\n ? { tokens: chainableTokens, providers: CHAINABLE_PROVIDERS }\n : { tokens: data.tokens, providers: data.provider };\n\n tradingPairs.set(token.identifier.toLowerCase(), {\n tokens: existingTradingPairs.tokens.concat(tradingPairsForToken.tokens),\n providers: existingTradingPairs.providers.concat(tradingPairsForToken.providers),\n });\n }\n }\n\n return tradingPairs;\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",
8
+ "import {\n type AssetValue,\n Chain,\n ChainId,\n ErrorCode,\n FeeTypeEnum,\n ProviderName,\n WarningCodeEnum,\n} from \"@swapkit/helpers\";\nimport { z } 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\", // native send, msgSend, etc.\n token_transfer = \"token_transfer\", // token transfer\n native_contract_call = \"native_contract_call\", // native contract call\n token_contract_call = \"token_contract_call\", // token contract call\n approve = \"approve\", // token approve\n deposit = \"deposit\", // msgDeposit and related cosmos operations, not deposit to vault or deposit contract name\n thorname_action = \"thorname_action\", // should we use this or msgDeposit?\n lp_action = \"lp_action\", // deposit to an evm pool, tc pool, etc.\n swap = \"swap\", // any kind of operations that involves swapping assets\n streaming_swap = \"streaming_swap\", // streaming swap\n stake = \"stake\", // defi operations like $vthor and other types of staking\n claim = \"claim\", // claim rewards, claim tokens, etc.\n lending = \"lending\", // lending operations\n unknown = \"unknown\",\n}\n\n// transaction status devoid of any business logic\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swappping = \"swapping\",\n completed = \"completed\",\n}\n\nexport enum TrackingStatus {\n not_started = \"not_started\",\n starting = \"starting\", // first status once we receive, old or new transaction\n broadcasted = \"broadcasted\",\n mempool = \"mempool\", // or indexing\n inbound = \"inbound\",\n outbound = \"outbound\",\n swapping = \"swapping\", // more generic than streaming\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 = z.object({\n error: z.string(),\n message: z.string(),\n});\n\nexport const AssetValueSchema = z.object({\n chain: z.nativeEnum(Chain),\n symbol: z.string(),\n ticker: z.string(),\n decimal: z.optional(z.number()),\n address: z.optional(z.string()),\n isGasAsset: z.boolean(),\n isSynthetic: z.boolean(),\n tax: z.optional(\n z.object({\n buy: z.number(),\n sell: z.number(),\n }),\n ),\n});\n\nexport const TokenDetailsMetadataSchema = z.object({\n name: z.string(),\n id: z.string(),\n market_cap: z.number(),\n total_volume: z.number(),\n price_change_24h_usd: z.number(),\n price_change_percentage_24h_usd: z.number(),\n timestamp: z.string(),\n sparkline_in_7d: z.array(z.number()),\n});\n\nexport const PriceResponseSchema = z.array(\n z\n .object({\n identifier: z.string(),\n provider: z.string(),\n cg: TokenDetailsMetadataSchema.optional(),\n price_usd: z.number(),\n timestamp: z.number(),\n })\n .partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = z\n .object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n sellAmount: z\n .string({\n description: \"Amount of asset to sell\",\n })\n .refine((amount) => +amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: z.optional(\n z.array(\n z\n .string({\n description: \"List of providers to use\",\n })\n .refine(\n (provider) => {\n return ProviderName[provider as ProviderName] !== undefined;\n },\n {\n message: \"Invalid provider\",\n path: [\"providers\"],\n },\n ),\n ),\n ),\n sourceAddress: z.optional(\n z.string({\n description: \"Address to send asset from\",\n }),\n ),\n destinationAddress: z.optional(\n z.string({\n description: \"Address to send asset to\",\n }),\n ),\n slippage: z.optional(\n z.number({\n description: \"Slippage tolerance as a percentage. Default is 3%.\",\n }),\n ),\n affiliate: z.optional(\n z.string({\n description: \"Affiliate thorname\",\n }),\n ),\n affiliateFee: z.optional(\n z\n .number({\n description: \"Affiliate fee in basis points\",\n })\n .refine(\n (fee) => {\n return fee === Math.floor(fee) && fee >= 0;\n },\n {\n message: \"affiliateFee must be a positive integer\",\n path: [\"affiliateFee\"],\n },\n ),\n ),\n allowSmartContractSender: z.optional(\n z.boolean({\n description: \"Allow smart contract as sender\",\n }),\n ),\n allowSmartContractReceiver: z.optional(\n z.boolean({\n description: \"Allow smart contract as recipient\",\n }),\n ),\n disableSecurityChecks: z.optional(\n z.boolean({\n description: \"Disable security checks\",\n }),\n ),\n includeTx: z.optional(\n z.boolean({\n description: \"Set to true to include an transaction object (EVM only)\",\n }),\n ),\n cfBoost: z.optional(\n z.boolean({\n description: \"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\",\n }),\n ),\n referrer: z.optional(\n z.string({\n description: \"Referrer address (referral program)\",\n }),\n ),\n })\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 = z.object({\n tokens: z.array(\n z.object({\n identifier: z.string(),\n }),\n ),\n metadata: z.boolean(),\n});\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const BrokerDepositChannelParamsSchema = z.object({\n sellAsset: z.object({\n chain: z.string(), // identifier of the asset\n asset: z.string(), // identifier of the asset\n }),\n buyAsset: z.object({\n chain: z.string(), // identifier of the asset\n asset: z.string(), // identifier of the asset\n }),\n destinationAddress: z.string(),\n channelMetadata: z\n .object({\n cfParameters: z.string().optional(),\n gasBudget: z.string().optional(),\n message: z.string().optional(),\n })\n .optional(),\n affiliateFees: z\n .array(\n z.object({\n brokerAddress: z.string(),\n feeBps: z.number(),\n }),\n )\n .optional(),\n refundParameters: z\n .object({\n minPrice: z.string().optional(),\n refundAddress: z.string().optional(),\n retryDuration: z.number().optional(),\n })\n .optional(),\n dcaParameters: z\n .object({\n chunkInterval: z.number().optional(),\n numberOfChunks: z.number().optional(),\n })\n .optional(),\n brokerCommissionBps: z.number().optional(),\n maxBoostFeeBps: z.number().optional(),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = z.object({\n channelId: z.string(),\n depositAddress: z.string(),\n});\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = z.object({\n evmCalldata: z.optional(z.string()), // raw 0xcalldata\n logs: z.optional(z.unknown()),\n memo: z.optional(z.string()),\n spender: z.optional(z.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 = z.object({\n estimatedfinalisedAt: z.number(),\n estimatedTimeToComplete: z.number(),\n updatedAt: z.number(),\n currentLegIndex: z.optional(z.number()),\n providerDetails: z.optional(z.unknown()), // see ProviderTransientDetails\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = z.object({\n network: z.optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n affiliate: z.optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: z.optional(AssetValueSchema), // fee paid to pool\n protocol: z.optional(AssetValueSchema), // extra protocol fees (TS dex aggregation contracts, stargate fees, etc.)\n tax: z.optional(AssetValueSchema), // taxed tokens\n});\n\nexport type TransactionFees = z.infer<typeof TransactionFeesSchema>;\n\n// props that are not part of the transaction itself, but are still relevant for integrators\nconst TxnMetaSchema = z.object({\n broadcastedAt: z.optional(z.number()),\n wallet: z.optional(z.string()),\n quoteId: z.optional(z.string()),\n explorerUrl: z.optional(z.string()),\n affiliate: z.optional(z.string()),\n fees: z.optional(TransactionFeesSchema),\n provider: z.optional(z.nativeEnum(ProviderName)),\n images: z.optional(\n z.object({\n from: z.optional(z.string()),\n to: z.optional(z.string()),\n provider: z.optional(z.string()),\n chain: z.optional(z.string()),\n }),\n ),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = z.object({\n chainId: z.nativeEnum(ChainId),\n hash: z.string(),\n block: z.number(),\n type: z.nativeEnum(TxnType),\n status: z.nativeEnum(TxnStatus),\n trackingStatus: z.optional(z.nativeEnum(TrackingStatus)),\n\n fromAsset: z.string(),\n fromAmount: z.string(),\n fromAddress: z.string(),\n toAsset: z.string(),\n toAmount: z.string(),\n toAddress: z.string(),\n finalAsset: z.optional(AssetValueSchema),\n finalAddress: z.optional(z.string()),\n\n finalisedAt: z.number(),\n\n transient: z.optional(TxnTransientSchema),\n meta: z.optional(TxnMetaSchema),\n payload: z.optional(TxnPayloadSchema),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & {\n legs: TransactionLegDTO[];\n};\n\nexport const TransactionDTOSchema: z.ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = z.array(\n z.object({\n type: z.nativeEnum(FeeTypeEnum),\n amount: z.string(),\n asset: z.string(),\n chain: z.string(),\n protocol: z.nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = z.object({\n inbound: z.optional(\n z.number({\n description: \"Time to receive inbound asset in seconds\",\n }),\n ),\n swap: z.optional(\n z.number({\n description: \"Time to swap assets in seconds\",\n }),\n ),\n outbound: z.optional(\n z.number({\n description: \"Time to receive outbound asset in seconds\",\n }),\n ),\n total: z.number({\n description: \"Total time in seconds\",\n }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = z.object({\n to: z.string({\n description: \"Address of the recipient\",\n }),\n from: z.string({\n description: \"Address of the sender\",\n }),\n value: z.string({\n description: \"Value to send\",\n }),\n data: z.string({\n description: \"Data to send\",\n }),\n});\n\nexport type EVMTransaction = z.infer<typeof EVMTransactionSchema>;\n\nexport const EVMTransactionDetailsParamsSchema = z.array(\n z.union([\n z.string(),\n z.number(),\n z.array(z.string()),\n z\n .object({\n from: z.string(),\n value: z.string(),\n })\n .describe(\"Parameters to pass to the contract method\"),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = z.object({\n contractAddress: z.string({\n description: \"Address of the contract to interact with\",\n }),\n contractMethod: z.string({\n description: \"Name of the method to call\",\n }),\n contractParams: EVMTransactionDetailsParamsSchema,\n // contractParamsStreaming: z.array(\n // z.string({\n // description:\n // \"If making a streaming swap through THORChain, parameters to pass to the contract method\",\n // }),\n // ),\n contractParamNames: z.array(\n z.string({\n description: \"Names of the parameters to pass to the contract method\",\n }),\n ),\n approvalToken: z.optional(\n z.string({\n description: \"Address of the token to approve spending of\",\n }),\n ),\n approvalSpender: z.optional(\n z.string({\n description: \"Address of the spender to approve\",\n }),\n ),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = z.object({\n typeUrl: z.string(),\n value: z.unknown(),\n});\n\nconst FeeSchema = z.object({\n amount: z.array(\n z.object({\n denom: z.string(),\n amount: z.string(),\n }),\n ),\n gas: z.string(),\n});\n\n// Define the full schema\nexport const CosmosTransactionSchema = z.object({\n memo: z.string(),\n accountNumber: z.number(),\n sequence: z.number(),\n chainId: z.nativeEnum(ChainId),\n msgs: z.array(EncodeObjectSchema),\n fee: FeeSchema,\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = z.object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n provider: z.nativeEnum(ProviderName),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: z\n .string({\n description: \"Affiliate address\",\n })\n .optional(),\n affiliateFee: z\n .number({\n description: \"Affiliate fee\",\n })\n .optional(),\n slipPercentage: z.number({\n description: \"Slippage as a percentage\",\n }),\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 = z.object({\n asset: z.string({\n description: \"Asset name\",\n }),\n price: z.number({\n description: \"Price in USD\",\n }),\n image: z.string({\n description: \"Asset image\",\n }),\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 = z.object({\n priceImpact: z.optional(\n z.number({\n description: \"Price impact\",\n }),\n ),\n assets: z.optional(z.array(RouteQuoteMetadataAssetSchema)),\n approvalAddress: z.optional(\n z.string({\n description: \"Approval address for swap\",\n }),\n ),\n streamingInterval: z.number().optional(),\n maxStreamingQuantity: z.number().optional(),\n tags: z.array(z.nativeEnum(PriorityLabel)),\n\n affiliate: z.optional(z.string()),\n affiliateFee: z.optional(z.string()),\n\n txType: z.optional(z.nativeEnum(RouteQuoteTxType)),\n chainflip: z.optional(ChainflipMetadataSchema),\n referrer: z.optional(z.string()),\n});\n\nexport const RouteQuoteWarningSchema = z.array(\n z.object({\n code: z.nativeEnum(WarningCodeEnum),\n display: z.string(),\n tooltip: z.string().optional(),\n }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = z.object({\n provider: z.nativeEnum(ProviderName),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"Sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n buyAmount: z.string({\n description: \"Buy amount\",\n }),\n buyAmountMaxSlippage: z.string({\n description: \"Buy amount max slippage\",\n }),\n fees: z.optional(FeesSchema), // TODO remove optionality\n});\n\nconst QuoteResponseRouteItem = z.object({\n providers: z.array(z.nativeEnum(ProviderName)),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"Sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n expectedBuyAmount: z.string({\n description: \"Expected Buy amount\",\n }),\n expectedBuyAmountMaxSlippage: z.string({\n description: \"Expected Buy amount max slippage\",\n }),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n targetAddress: z.optional(\n z.string({\n description: \"Target address\",\n }),\n ),\n inboundAddress: z.optional(\n z.string({\n description: \"Inbound address\",\n }),\n ),\n expiration: z.optional(\n z.string({\n description: \"Expiration\",\n }),\n ),\n memo: z.optional(\n z.string({\n description: \"Memo\",\n }),\n ),\n fees: FeesSchema,\n txType: z.optional(z.nativeEnum(RouteQuoteTxType)),\n tx: z.optional(z.union([EVMTransactionSchema, CosmosTransactionSchema, z.string()])),\n estimatedTime: z.optional(EstimatedTimeSchema), // TODO remove optionality\n totalSlippageBps: z.number({\n description: \"Total slippage in bps\",\n }),\n legs: z.array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = z.object({\n quoteId: z.string({\n description: \"Quote ID\",\n }),\n routes: z.array(QuoteResponseRouteItem),\n // in case of bad request or actual backend error, not bad quotes from providers\n error: z.optional(\n z.string({\n description: \"Error message\",\n }),\n ),\n // errors from providers\n providerErrors: z.optional(\n z.array(\n z.object({\n provider: z.nativeEnum(ProviderName).optional(),\n errorCode: z.optional(z.nativeEnum(ErrorCode)),\n message: z.optional(z.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 = z.array(\n z.object({\n id: z.number(),\n chainId: z.string(),\n value: z.string(),\n unit: z.string(),\n createdAt: z.string(),\n }),\n);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\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(type?: THORNodeType) {\n return RequestClient.get<LastBlockItem[]>(`${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 function getTHORNodeTNSDetails({ type, name }: { type?: THORNodeType; name: string }) {\n return RequestClient.get<THORNodeTNSDetails>(`${getNameServiceBaseUrl(type)}/${name}`);\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
+ "import { AssetValue, type ProviderName, RequestClient, getChainIdentifier } 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 return `${baseUrl}/token-list/images/${assetString.toLowerCase()}.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",
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
+ ],
13
+ "mappings": "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",
14
+ "debugId": "B09A5C882BB6E5D264756E2164756E21",
15
+ "names": []
16
+ }
@@ -0,0 +1,3 @@
1
+ import{b as $}from"../chunk-nm00d52v.js";var j={};$(j,{getTNSChainAddress:()=>gn,getTHORNamesByOwner:()=>en,getTHORNamesByAddress:()=>Dn,getTHORNameDetails:()=>w,getTHORChainPools:()=>Sn,getLiquidityPositionsRaw:()=>y,getLiquidityPositions:()=>Pn});import{AssetValue as G,BaseDecimal as U,RequestClient as f,SwapKitNumber as Rn}from"@swapkit/helpers";var F="https://mu.thorswap.net";function w(A){return f.get(`${F}/thorname/lookup/${A}`)}function en(A){return f.get(`${F}/thorname/owner/${A}`)}function Dn(A){return f.get(`${F}/thorname/address/${A}`)}function Sn(A){return f.get(`${F}/pools`,{searchParams:{period:A}})}function y(A){return f.get(`${F}/fullmember?address=${A.join(",")}`)}async function gn({chain:A,tns:E}){return(await w(E))?.entries?.find((r)=>r.chain.toLowerCase()===A.toLowerCase())?.address}async function Pn(A){return(await y(A)).map((N)=>({assetRegisteredAddress:N.assetAddress,asset:G.from({asset:N.pool,value:N.assetAdded,fromBaseDecimal:U.THOR}),assetPending:G.from({asset:N.pool,value:N.assetPending,fromBaseDecimal:U.THOR}),assetWithdrawn:G.from({asset:N.pool,value:N.assetWithdrawn,fromBaseDecimal:U.THOR}),runeRegisteredAddress:N.runeAddress,rune:G.from({asset:"THOR.RUNE",value:N.runeAdded,fromBaseDecimal:U.THOR}),runePending:G.from({asset:"THOR.RUNE",value:N.runePending,fromBaseDecimal:U.THOR}),runeWithdrawn:G.from({asset:"THOR.RUNE",value:N.runeWithdrawn,fromBaseDecimal:U.THOR}),poolShare:new Rn(N.sharedUnits).div(N.poolUnits),dateLastAdded:N.dateLastAdded,dateFirstAdded:N.dateFirstAdded}))}import{AssetValue as m,BaseDecimal as L,Chain as O,RequestClient as _,SwapKitNumber as k}from"@swapkit/helpers";function V(A=!1){return A?"https://midgard.mayachain.info":"https://midgard.ninerealms.com"}function Z(A=!1){return A?`${V(A)}/v2/mayaname`:`${V(A)}/v2/thorname`}function q(A,E=!1){return _.get(`${V(E)}/v2/borrower/${A}`)}function l(A,E=!1){return _.get(`${V(E)}/v2/saver/${A}`)}function d(A,E){return _.get(`${V(E)}/v2/member/${A}`)}function Gn(A,E=!1){return _.get(`${Z(E)}/lookup/${A}`)}function Un(A,E=!1){return _.get(`${Z(E)}/rlookup/${A}`)}function _n(A,E=!1){return _.get(`${Z(E)}/owner/${A}`)}async function Yn(A,E=!1){return(await q(A,E)).pools.map((r)=>({collateral_deposited:m.from({asset:r.collateral_asset,value:r.collateral_deposited,fromBaseDecimal:L.THOR}),collateral_withdrawn:m.from({asset:r.collateral_asset,value:r.collateral_withdrawn,fromBaseDecimal:L.THOR}),debt_issued_tor:k.fromBigInt(BigInt(r.debt_issued_tor),L.THOR),debt_repaid_tor:k.fromBigInt(BigInt(r.debt_repaid_tor),L.THOR),last_open_loan_timestamp:r.last_open_loan_timestamp,last_repay_loan_timestamp:r.last_repay_loan_timestamp,target_assets:r.target_assets.map((I)=>m.from({asset:I}))}))}async function Xn(A,E=!1){return(await l(A,E)).pools.map((r)=>({assetRegisteredAddress:r.assetAddress,assetAdded:m.from({asset:r.pool,value:r.assetAdded,fromBaseDecimal:L.THOR}),assetDeposit:m.from({asset:r.pool,value:r.assetDeposit,fromBaseDecimal:L.THOR}),assetRedeem:m.from({asset:r.pool,value:r.assetRedeem,fromBaseDecimal:L.THOR}),assetWithdrawn:m.from({asset:r.pool,value:r.assetWithdrawn,fromBaseDecimal:L.THOR}),dateLastAdded:r.dateLastAdded,dateFirstAdded:r.dateFirstAdded}))}async function Bn(A,E=!1){return(await d(A,E)).pools.map((r)=>({assetRegisteredAddress:r.assetAddress,asset:m.from({asset:r.pool,value:r.assetAdded,fromBaseDecimal:L.THOR}),assetPending:m.from({asset:r.pool,value:r.assetPending,fromBaseDecimal:L.THOR}),assetWithdrawn:m.from({asset:r.pool,value:r.assetWithdrawn,fromBaseDecimal:L.THOR}),[`${E?"cacao":"rune"}RegisteredAddress`]:r.runeAddress,[`${E?"cacao":"rune"}`]:m.from({asset:"THOR.RUNE",value:r.runeAdded,fromBaseDecimal:L.THOR}),[`${E?"cacao":"rune"}Pending`]:m.from({asset:"THOR.RUNE",value:r.runePending,fromBaseDecimal:L.THOR}),[`${E?"cacao":"rune"}Withdrawn`]:m.from({asset:"THOR.RUNE",value:r.runeWithdrawn,fromBaseDecimal:L.THOR}),poolShare:new k(r.liquidityUnits).div(r.pool),dateLastAdded:r.dateLastAdded,dateFirstAdded:r.dateFirstAdded}))}var c=(A)=>({getBorrowerDetail:(E)=>Yn(E,A===O.Maya),getBorrowerDetailRaw:(E)=>q(E,A===O.Maya),getSaversDetail:(E)=>Xn(E,A===O.Maya),getSaverDetailRaw:(E)=>l(E,A===O.Maya),getLiquidityPosition:(E)=>Bn(E,A===O.Maya),getLiquidityPositionRaw:(E)=>d(E,A===O.Maya),getNameDetails:(E)=>Gn(E,A===O.Maya),getNamesByAddress:(E)=>Un(E,A===O.Maya),getNamesByOwner:(E)=>_n(E,A===O.Maya)}),h=c(O.THORChain),s=c(O.Maya);var J={};$(J,{getTrackerDetails:()=>an,getTokenTradingPairs:()=>TA,getTokenListProvidersV2:()=>AA,getTokenListProviders:()=>x,getTokenList:()=>bn,getSwapQuote:()=>nA,getPrice:()=>EA,getGasRate:()=>rA,getChainflipDepositChannel:()=>tA,computeHash:()=>g});import sn from"crypto";import{ProviderName as b,RequestClient as D,SKConfig as X,SwapKitError as H,warnOnce as pn}from"@swapkit/helpers";import{Chain as fn,ChainId as p,ErrorCode as Fn,FeeTypeEnum as Vn,ProviderName as e,WarningCodeEnum as Mn}from"@swapkit/helpers";import{z as n}from"zod";var a;((r)=>{r.CHEAPEST="CHEAPEST";r.FASTEST="FASTEST";r.RECOMMENDED="RECOMMENDED"})(a||={});var z;((I)=>{I.PSBT="PSBT";I.EVM="EVM";I.COSMOS="COSMOS";I.RADIX="RADIX"})(z||={});var nn;((u)=>{u.native_send="native_send";u.token_transfer="token_transfer";u.native_contract_call="native_contract_call";u.token_contract_call="token_contract_call";u.approve="approve";u.deposit="deposit";u.thorname_action="thorname_action";u.lp_action="lp_action";u.swap="swap";u.streaming_swap="streaming_swap";u.stake="stake";u.claim="claim";u.lending="lending";u.unknown="unknown"})(nn||={});var An;((T)=>{T.unknown="unknown";T.not_started="not_started";T.pending="pending";T.swappping="swapping";T.completed="completed"})(An||={});var En;((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"})(En||={});var FA=n.object({error:n.string(),message:n.string()}),Y=n.object({chain:n.nativeEnum(fn),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()}))}),$n=n.object({name:n.string(),id:n.string(),market_cap:n.number(),total_volume:n.number(),price_change_24h_usd:n.number(),price_change_percentage_24h_usd:n.number(),timestamp:n.string(),sparkline_in_7d:n.array(n.number())}),rn=n.array(n.object({identifier:n.string(),provider:n.string(),cg:$n.optional(),price_usd:n.number(),timestamp:n.number()}).partial()),VA=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((A)=>+A>0,{message:"sellAmount must be greater than 0",path:["sellAmount"]}),providers:n.optional(n.array(n.string({description:"List of providers to use"}).refine((A)=>{return e[A]!==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((A)=>{return A===Math.floor(A)&&A>=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((A)=>A.sellAsset!==A.buyAsset,{message:"Must be different",path:["sellAsset","buyAsset"]}),MA=n.object({tokens:n.array(n.object({identifier:n.string()})),metadata:n.boolean()}),Wn=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()}),Nn=n.object({channelId:n.string(),depositAddress:n.string()}),xn=n.object({evmCalldata:n.optional(n.string()),logs:n.optional(n.unknown()),memo:n.optional(n.string()),spender:n.optional(n.string())}),jn=n.object({estimatedfinalisedAt:n.number(),estimatedTimeToComplete:n.number(),updatedAt:n.number(),currentLegIndex:n.optional(n.number()),providerDetails:n.optional(n.unknown())}),kn=n.object({network:n.optional(Y),affiliate:n.optional(Y),liquidity:n.optional(Y),protocol:n.optional(Y),tax:n.optional(Y)}),Zn=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(kn),provider:n.optional(n.nativeEnum(e)),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())}))}),W=n.object({chainId:n.nativeEnum(p),hash:n.string(),block:n.number(),type:n.nativeEnum(nn),status:n.nativeEnum(An),trackingStatus:n.optional(n.nativeEnum(En)),fromAsset:n.string(),fromAmount:n.string(),fromAddress:n.string(),toAsset:n.string(),toAmount:n.string(),toAddress:n.string(),finalAsset:n.optional(Y),finalAddress:n.optional(n.string()),finalisedAt:n.number(),transient:n.optional(jn),meta:n.optional(Zn),payload:n.optional(xn)}),$A=W.extend({legs:n.array(W)}),WA=W.extend({legs:n.array(W)}),Tn=n.array(n.object({type:n.nativeEnum(Vn),amount:n.string(),asset:n.string(),chain:n.string(),protocol:n.nativeEnum(e)})),tn=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"})}),zn=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"})}),Jn=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")])),xA=n.object({contractAddress:n.string({description:"Address of the contract to interact with"}),contractMethod:n.string({description:"Name of the method to call"}),contractParams:Jn,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"}))}),Qn=n.object({typeUrl:n.string(),value:n.unknown()}),vn=n.object({amount:n.array(n.object({denom:n.string(),amount:n.string()})),gas:n.string()}),Kn=n.object({memo:n.string(),accountNumber:n.number(),sequence:n.number(),chainId:n.nativeEnum(p),msgs:n.array(Qn),fee:vn}),wn=n.object({sellAsset:n.string({description:"Asset to sell"}),buyAsset:n.string({description:"Asset to buy"}),provider:n.nativeEnum(e),sourceAddress:n.string({description:"Source address"}),destinationAddress:n.string({description:"Destination address"}),estimatedTime:tn.optional(),affiliate:n.string({description:"Affiliate address"}).optional(),affiliateFee:n.number({description:"Affiliate fee"}).optional(),slipPercentage:n.number({description:"Slippage as a percentage"})}),jA=wn.omit({sourceAddress:!0,destinationAddress:!0,slipPercentage:!0}),yn=n.object({asset:n.string({description:"Asset name"}),price:n.number({description:"Price in USD"}),image:n.string({description:"Asset image"})}),qn=Wn,ln=n.object({priceImpact:n.optional(n.number({description:"Price impact"})),assets:n.optional(n.array(yn)),approvalAddress:n.optional(n.string({description:"Approval address for swap"})),streamingInterval:n.number().optional(),maxStreamingQuantity:n.number().optional(),tags:n.array(n.nativeEnum(a)),affiliate:n.optional(n.string()),affiliateFee:n.optional(n.string()),txType:n.optional(n.nativeEnum(z)),chainflip:n.optional(qn),referrer:n.optional(n.string())}),dn=n.array(n.object({code:n.nativeEnum(Mn),display:n.string(),tooltip:n.string().optional()})),cn=n.object({provider:n.nativeEnum(e),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(Tn)}),hn=n.object({providers:n.array(n.nativeEnum(e)),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:Tn,txType:n.optional(n.nativeEnum(z)),tx:n.optional(n.union([zn,Kn,n.string()])),estimatedTime:n.optional(tn),totalSlippageBps:n.number({description:"Total slippage in bps"}),legs:n.array(cn),warnings:dn,meta:ln}),In=n.object({quoteId:n.string({description:"Quote ID"}),routes:n.array(hn),error:n.optional(n.string({description:"Error message"})),providerErrors:n.optional(n.array(n.object({provider:n.nativeEnum(e).optional(),errorCode:n.optional(n.nativeEnum(Fn)),message:n.optional(n.string())})))}),un=n.array(n.object({id:n.number(),chainId:n.string(),value:n.string(),unit:n.string(),createdAt:n.string()}));function S(A){let{isDev:E,apiUrl:N,devApiUrl:r}=X.get("envs");return`${E?r:N}${A}`}function B(A){let{swapKit:E}=X.get("apiKeys"),{referer:N}=X.get("envs");return{...E&&!A?{"x-api-key":E}:{},...A&&N?{"x-payload-hash":A,referer:N}:{}}}var g=(A)=>{let{swapKit:E}=X.get("apiKeys"),{referer:N}=X.get("envs");if(!(N&&E))return;if(!["POST","GET"].includes(A.method))throw new H("api_v2_invalid_method_key_hash",{message:`Invalid method for params: ${JSON.stringify(A)}`});let r=A.method==="POST"?JSON.stringify(A.payload):`${A.url}${E}`;return sn.createHash("sha256").update(r,"utf8").digest("hex")};function an(A){return D.post(S("/track"),{json:A,headers:B(g({method:"POST",payload:A}))})}async function nA(A){let E=await D.post(S("/quote"),{json:A,headers:B(g({method:"POST",payload:A}))});if(E.error)throw new H("api_v2_server_error",{message:E.error});try{let N=In.safeParse(E);if(!N.success)throw new H("api_v2_invalid_response",N.error);return N.data}catch(N){return console.warn(N),E}}function AA(){return pn(!0,"getTokenListProvidersV2 is deprecated, use getTokenListProviders instead"),x()}function x(){let A=S("/providers");return D.get(A,{headers:B(g({method:"GET",url:A}))})}function bn(A){let E=S(`/tokens?provider=${A}`);return D.get(E,{headers:B(g({method:"GET",url:E}))})}async function EA(A){let E=S("/price"),N=await D.post(E,{json:A,headers:B(g({method:"POST",payload:A}))});try{let r=rn.safeParse(N);if(!r.success)throw new H("api_v2_invalid_response",r.error);return r.data}catch(r){throw new H("api_v2_invalid_response",r)}}async function rA(){let A=S("/gas"),E=await D.get(A,{headers:B(g({method:"GET",url:A}))});try{let N=un.safeParse(E);if(!N.success)throw new H("api_v2_invalid_response",N.error);return N.data}catch(N){throw new H("api_v2_invalid_response",N)}}var Ln=[b.CAVIAR_V1,b.CHAINFLIP,b.CHAINFLIP_STREAMING,b.MAYACHAIN,b.MAYACHAIN_STREAMING],NA=[b.ONEINCH,b.PANCAKESWAP,b.PANGOLIN_V1,b.SUSHISWAP_V2,b.THORCHAIN,b.THORCHAIN_STREAMING,b.TRADERJOE_V2,b.UNISWAP_V2,b.UNISWAP_V3];async function TA(A){let E=new Map;if(!A.length)return E;let N=A.map(async(T)=>{return await bn(T)}),r=(await Promise.all(N)).filter((T)=>!!T).map(({tokens:T,...C})=>({data:{...C||{},tokens:T.map(({address:P,...M})=>({...M,...P&&["resource_rdx1tknxxxxxxxxxradxrdxxxxxxxxx009923554798xxxxxxxxxradxrd","0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"].includes(P.toLowerCase())?{}:{address:P}}))},...C})),I=r.filter(({data:T})=>{return!Ln.includes(T?.provider||"")}).reduce((T,{data:C})=>C?.tokens?T.concat(C.tokens):T,[]);for(let{data:T}of r){if(!T?.tokens)return;let C=T.provider&&!Ln.includes(T.provider);for(let P of T.tokens){let M=E.get(P.identifier.toLowerCase())||{tokens:[],providers:[]},K=C?{tokens:I,providers:NA}:{tokens:T.tokens,providers:T.provider};E.set(P.identifier.toLowerCase(),{tokens:M.tokens.concat(K.tokens),providers:M.providers.concat(K.providers)})}}return E}async function tA(A){let{destinationAddress:E}=A;if(!E)throw new H("chainflip_broker_invalid_params");let N=X.get("integrations").chainflip?.brokerUrl||S("/channel"),r=await D.post(N,{json:A});try{let I=Nn.safeParse(r);if(!I.success)throw new H("api_v2_invalid_response",I.error);return I.data}catch(I){throw new H("api_v2_invalid_response",I)}}var Q={};$(Q,{getThorchainQueue:()=>bA,getTNSPreferredAsset:()=>CA,getTHORNodeTNSDetails:()=>Cn,getRunePoolProviderInfo:()=>RA,getRunePoolInfo:()=>oA,getNodes:()=>mA,getMimirInfo:()=>OA,getLastBlock:()=>LA,getInboundAddresses:()=>HA});import{AssetValue as IA,Chain as mn,RequestClient as o,SKConfig as On,StagenetChain as Hn}from"@swapkit/helpers";function R(A){let{isStagenet:E}=On.get("envs"),N=On.get("nodeUrls");switch(A){case"mayachain":return`${N[E?Hn.Maya:mn.Maya]}/mayachain`;default:return`${N[E?Hn.THORChain:mn.THORChain]}/thorchain`}}function uA(A){let E=A==="mayachain"?"mayaname":"thorname";return`${R(A)}/${E}`}function LA(A){return o.get(`${R(A)}/lastblock`)}function bA(A){return o.get(`${R(A)}/queue`)}function mA(A){return o.get(`${R(A)}/nodes`)}function OA(A){return o.get(`${R(A)}/mimir`)}function HA(A){return o.get(`${R(A)}/inbound_addresses`)}function Cn({type:A,name:E}){return o.get(`${uA(A)}/${E}`)}async function CA({type:A,tns:E}){let N=await Cn({name:E,type:A});if(!N.preferred_asset||N.preferred_asset===".")return;return IA.from({asyncTokenLookup:!0,asset:N.preferred_asset})}function oA(A){return o.get(`${R(A)}/runepool`)}function RA({type:A,thorAddress:E}){return o.get(`${R(A)}/rune_provider/${E}`)}var i={};$(i,{getStaticTokenList:()=>gA,getProviderLogo:()=>UA,getLogoForAsset:()=>PA,getChainLogoForAsset:()=>GA});import{AssetValue as eA,RequestClient as DA,getChainIdentifier as SA}from"@swapkit/helpers";var v="https://static.thorswap.net";function gA(A){return DA.get(`${v}/token-list/${A}.json`)}function PA(A){return`${v}/token-list/images/${A.toLowerCase()}.png`}function GA(A){let{chain:E}=eA.from({asset:A}),N=SA(E).toLowerCase();return`${v}/token-list/images/${N}.png`}var on;async function UA(A){return on||=await x(),on.find((E)=>E.name===A)?.url}var wA={...J,...i,mayachainMidgard:s,microgard:j,thorchainMidgard:h,thornode:Q};export{nn as TxnType,An as TxnStatus,$A as TransactionSchema,WA as TransactionDTOSchema,En as TrackingStatus,$n as TokenDetailsMetadataSchema,wA as SwapKitApi,dn as RouteQuoteWarningSchema,z as RouteQuoteTxType,ln as RouteQuoteMetadataSchema,yn as RouteQuoteMetadataAssetSchema,jA as RouteLegWithoutAddressesSchema,wn as RouteLegSchema,In as QuoteResponseSchema,VA as QuoteRequestSchema,a as PriorityLabel,rn as PriceResponseSchema,MA as PriceRequestSchema,un as GasResponseSchema,Tn as FeesSchema,tn as EstimatedTimeSchema,zn as EVMTransactionSchema,xA as EVMTransactionDetailsSchema,Jn as EVMTransactionDetailsParamsSchema,Nn as DepositChannelResponseSchema,Kn as CosmosTransactionSchema,qn as ChainflipMetadataSchema,Wn as BrokerDepositChannelParamsSchema,Y as AssetValueSchema,FA as ApiV2ErrorSchema};
2
+
3
+ //# debugId=EFCF6B6CE59EB4BD64756E2164756E21
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": 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
+ "sourcesContent": [
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 { AssetValue, BaseDecimal, Chain, RequestClient, SwapKitNumber } from \"@swapkit/helpers\";\nimport type {\n BorrowerDetails,\n MemberDetailsMayachain,\n MemberDetailsThorchain,\n SaverDetails,\n THORNameDetails,\n} from \"./types\";\n\n// TODO: question: Move to SKConfig under midgardUrls\n// also - shouldn't that be named `isThorchain`?\n// As we default to TC and this is the only place that checks for opposite\nfunction getMidgardBaseUrl(isMayachain = false) {\n return isMayachain ? \"https://midgard.mayachain.info\" : \"https://midgard.ninerealms.com\";\n}\n\nfunction getNameServiceBaseUrl(isMayachain = false) {\n return isMayachain\n ? `${getMidgardBaseUrl(isMayachain)}/v2/mayaname`\n : `${getMidgardBaseUrl(isMayachain)}/v2/thorname`;\n}\n\nexport function getBorrowerDetailRaw(address: string, isMayachain = false) {\n return RequestClient.get<BorrowerDetails>(\n `${getMidgardBaseUrl(isMayachain)}/v2/borrower/${address}`,\n );\n}\n\nexport function getSaverDetailRaw(address: string, isMayachain = false) {\n return RequestClient.get<SaverDetails>(`${getMidgardBaseUrl(isMayachain)}/v2/saver/${address}`);\n}\n\nexport function getLiquidityPositionRaw<T extends boolean = false>(\n address: string,\n isMayachain?: T,\n) {\n return RequestClient.get<T extends true ? MemberDetailsMayachain : MemberDetailsThorchain>(\n `${getMidgardBaseUrl(isMayachain)}/v2/member/${address}`,\n );\n}\n\nexport function getNameDetails(name: string, isMayachain = false) {\n return RequestClient.get<THORNameDetails>(`${getNameServiceBaseUrl(isMayachain)}/lookup/${name}`);\n}\n\nexport function getNamesByAddress(address: string, isMayachain = false) {\n return RequestClient.get<THORNameDetails>(\n `${getNameServiceBaseUrl(isMayachain)}/rlookup/${address}`,\n );\n}\n\nexport function getNamesByOwner(address: string, isMayachain = false) {\n return RequestClient.get<THORNameDetails>(\n `${getNameServiceBaseUrl(isMayachain)}/owner/${address}`,\n );\n}\n\nexport async function getBorrowerDetail(address: string, isMayachain = false) {\n const rawBorrowerDetail = await getBorrowerDetailRaw(address, isMayachain);\n\n return rawBorrowerDetail.pools.map((p) => ({\n collateral_deposited: AssetValue.from({\n asset: p.collateral_asset,\n value: p.collateral_deposited,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n collateral_withdrawn: AssetValue.from({\n asset: p.collateral_asset,\n value: p.collateral_withdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n debt_issued_tor: SwapKitNumber.fromBigInt(BigInt(p.debt_issued_tor), BaseDecimal.THOR),\n debt_repaid_tor: SwapKitNumber.fromBigInt(BigInt(p.debt_repaid_tor), BaseDecimal.THOR),\n last_open_loan_timestamp: p.last_open_loan_timestamp,\n last_repay_loan_timestamp: p.last_repay_loan_timestamp,\n target_assets: p.target_assets.map((asset) => AssetValue.from({ asset })),\n }));\n}\n\nexport async function getSaverDetail(address: string, isMayachain = false) {\n const rawSaverPositions = await getSaverDetailRaw(address, isMayachain);\n\n return rawSaverPositions.pools.map((p) => ({\n assetRegisteredAddress: p.assetAddress,\n assetAdded: AssetValue.from({\n asset: p.pool,\n value: p.assetAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetDeposit: AssetValue.from({\n asset: p.pool,\n value: p.assetDeposit,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetRedeem: AssetValue.from({\n asset: p.pool,\n value: p.assetRedeem,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n assetWithdrawn: AssetValue.from({\n asset: p.pool,\n value: p.assetWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n dateLastAdded: p.dateLastAdded,\n dateFirstAdded: p.dateFirstAdded,\n }));\n}\n\nexport async function getLiquidityPosition(address: string, isMayachain = false) {\n const rawLiquidityPositions = await getLiquidityPositionRaw(address, isMayachain);\n\n return rawLiquidityPositions.pools.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 [`${isMayachain ? \"cacao\" : \"rune\"}RegisteredAddress`]: p.runeAddress,\n [`${isMayachain ? \"cacao\" : \"rune\"}`]: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeAdded,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n [`${isMayachain ? \"cacao\" : \"rune\"}Pending`]: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runePending,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n [`${isMayachain ? \"cacao\" : \"rune\"}Withdrawn`]: AssetValue.from({\n asset: \"THOR.RUNE\",\n value: p.runeWithdrawn,\n fromBaseDecimal: BaseDecimal.THOR,\n }),\n poolShare: new SwapKitNumber(p.liquidityUnits).div(p.pool),\n dateLastAdded: p.dateLastAdded,\n dateFirstAdded: p.dateFirstAdded,\n }));\n}\n\nconst getMidgardMethodsForProtocol = (chain: Chain.THORChain | Chain.Maya) => ({\n getBorrowerDetail: (address: string) => getBorrowerDetail(address, chain === Chain.Maya),\n getBorrowerDetailRaw: (address: string) => getBorrowerDetailRaw(address, chain === Chain.Maya),\n getSaversDetail: (address: string) => getSaverDetail(address, chain === Chain.Maya),\n getSaverDetailRaw: (address: string) => getSaverDetailRaw(address, chain === Chain.Maya),\n getLiquidityPosition: (address: string) => getLiquidityPosition(address, chain === Chain.Maya),\n getLiquidityPositionRaw: (address: string) =>\n getLiquidityPositionRaw(address, chain === Chain.Maya),\n getNameDetails: (name: string) => getNameDetails(name, chain === Chain.Maya),\n getNamesByAddress: (address: string) => getNamesByAddress(address, chain === Chain.Maya),\n getNamesByOwner: (address: string) => getNamesByOwner(address, chain === Chain.Maya),\n});\n\nexport const thorchainMidgard = getMidgardMethodsForProtocol(Chain.THORChain);\nexport const mayachainMidgard = getMidgardMethodsForProtocol(Chain.Maya);\n",
7
+ "import crypto from \"crypto\";\nimport { ProviderName, RequestClient, SKConfig, SwapKitError, warnOnce } from \"@swapkit/helpers\";\n\nimport {\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\nfunction getApiUrl(path?: `/${string}`) {\n const { isDev, apiUrl, devApiUrl } = SKConfig.get(\"envs\");\n\n return `${isDev ? devApiUrl : apiUrl}${path}`;\n}\n\nfunction getAuthHeaders(hash?: string) {\n const { swapKit } = SKConfig.get(\"apiKeys\");\n const { referer } = SKConfig.get(\"envs\");\n\n return {\n ...(swapKit && !hash ? { \"x-api-key\": swapKit } : {}),\n ...(hash && referer ? { \"x-payload-hash\": hash, referer } : {}),\n };\n}\n\nexport const computeHash = (\n hashParams: { method: \"POST\"; payload: any } | { method: \"GET\"; url: string },\n) => {\n const { swapKit } = SKConfig.get(\"apiKeys\");\n const { referer } = SKConfig.get(\"envs\");\n\n if (!(referer && swapKit)) return;\n\n if (![\"POST\", \"GET\"].includes(hashParams.method)) {\n throw new SwapKitError(\"api_v2_invalid_method_key_hash\", {\n message: `Invalid method for params: ${JSON.stringify(hashParams)}`,\n });\n }\n\n const data =\n hashParams.method === \"POST\"\n ? JSON.stringify(hashParams.payload)\n : `${hashParams.url}${swapKit}`;\n\n return crypto.createHash(\"sha256\").update(data, \"utf8\").digest(\"hex\");\n};\n\nexport function getTrackerDetails(payload: TrackerParams) {\n return RequestClient.post<TrackerResponse>(getApiUrl(\"/track\"), {\n json: payload,\n headers: getAuthHeaders(computeHash({ method: \"POST\", payload })),\n });\n}\n\nexport async function getSwapQuote(searchParams: QuoteRequest) {\n const response = await RequestClient.post<QuoteResponse>(getApiUrl(\"/quote\"), {\n json: searchParams,\n headers: getAuthHeaders(computeHash({ method: \"POST\", payload: searchParams })),\n });\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 console.warn(error);\n return response;\n }\n}\n\n/**\n * @deprecated use getTokenListProviders instead\n */\nexport function getTokenListProvidersV2() {\n warnOnce(true, \"getTokenListProvidersV2 is deprecated, use getTokenListProviders instead\");\n return getTokenListProviders();\n}\n\nexport function getTokenListProviders() {\n const url = getApiUrl(\"/providers\");\n return RequestClient.get<TokenListProvidersResponse>(url, {\n headers: getAuthHeaders(computeHash({ method: \"GET\", url })),\n });\n}\n\nexport function getTokenList(provider: ProviderName) {\n const url = getApiUrl(`/tokens?provider=${provider}`);\n return RequestClient.get<TokensResponseV2>(url, {\n headers: getAuthHeaders(computeHash({ method: \"GET\", url })),\n });\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 headers: getAuthHeaders(computeHash({ method: \"POST\", payload: 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\n const response = await RequestClient.get<GasResponse>(url, {\n headers: getAuthHeaders(computeHash({ method: \"GET\", url })),\n });\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\nconst UNCHAINABLE_PROVIDERS = [\n ProviderName.CAVIAR_V1,\n ProviderName.CHAINFLIP,\n ProviderName.CHAINFLIP_STREAMING,\n ProviderName.MAYACHAIN,\n ProviderName.MAYACHAIN_STREAMING,\n];\n\nconst CHAINABLE_PROVIDERS = [\n ProviderName.ONEINCH,\n ProviderName.PANCAKESWAP,\n ProviderName.PANGOLIN_V1,\n ProviderName.SUSHISWAP_V2,\n ProviderName.THORCHAIN,\n ProviderName.THORCHAIN_STREAMING,\n ProviderName.TRADERJOE_V2,\n ProviderName.UNISWAP_V2,\n ProviderName.UNISWAP_V3,\n];\n\n// TODO update this once the trading pairs are supported by BE api\nexport async function getTokenTradingPairs(providers: ProviderName[]) {\n const tradingPairs = new Map<\n string,\n {\n tokens: TokensResponseV2[\"tokens\"];\n providers: ProviderName[];\n }\n >();\n\n if (!providers.length) return tradingPairs;\n\n const providerRequests = providers.map(async (provider) => {\n const tokenList = await getTokenList(provider);\n return tokenList;\n });\n\n const providersData = (await Promise.all(providerRequests))\n .filter((provider) => !!provider)\n .map(({ tokens, ...rest }) => ({\n data: {\n ...(rest || {}),\n tokens: tokens.map(({ address, ...rest }) => ({\n ...rest,\n ...(address &&\n [\n \"resource_rdx1tknxxxxxxxxxradxrdxxxxxxxxx009923554798xxxxxxxxxradxrd\",\n \"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee\",\n ].includes(address.toLowerCase())\n ? {}\n : { address }),\n })),\n },\n ...rest,\n }));\n\n const chainableTokens = providersData\n .filter(({ data }) => {\n return !UNCHAINABLE_PROVIDERS.includes((data?.provider || \"\") as ProviderName);\n })\n .reduce(\n (acc, { data }) => (data?.tokens ? acc.concat(data.tokens) : acc),\n [] as TokensResponseV2[\"tokens\"],\n );\n\n for (const { data } of providersData) {\n if (!data?.tokens) return;\n\n const isProviderChainable =\n data.provider && !UNCHAINABLE_PROVIDERS.includes(data.provider as ProviderName);\n\n for (const token of data.tokens) {\n const existingTradingPairs = tradingPairs.get(token.identifier.toLowerCase()) || {\n tokens: [],\n providers: [],\n };\n\n const tradingPairsForToken = isProviderChainable\n ? { tokens: chainableTokens, providers: CHAINABLE_PROVIDERS }\n : { tokens: data.tokens, providers: data.provider };\n\n tradingPairs.set(token.identifier.toLowerCase(), {\n tokens: existingTradingPairs.tokens.concat(tradingPairsForToken.tokens),\n providers: existingTradingPairs.providers.concat(tradingPairsForToken.providers),\n });\n }\n }\n\n return tradingPairs;\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",
8
+ "import {\n type AssetValue,\n Chain,\n ChainId,\n ErrorCode,\n FeeTypeEnum,\n ProviderName,\n WarningCodeEnum,\n} from \"@swapkit/helpers\";\nimport { z } 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\", // native send, msgSend, etc.\n token_transfer = \"token_transfer\", // token transfer\n native_contract_call = \"native_contract_call\", // native contract call\n token_contract_call = \"token_contract_call\", // token contract call\n approve = \"approve\", // token approve\n deposit = \"deposit\", // msgDeposit and related cosmos operations, not deposit to vault or deposit contract name\n thorname_action = \"thorname_action\", // should we use this or msgDeposit?\n lp_action = \"lp_action\", // deposit to an evm pool, tc pool, etc.\n swap = \"swap\", // any kind of operations that involves swapping assets\n streaming_swap = \"streaming_swap\", // streaming swap\n stake = \"stake\", // defi operations like $vthor and other types of staking\n claim = \"claim\", // claim rewards, claim tokens, etc.\n lending = \"lending\", // lending operations\n unknown = \"unknown\",\n}\n\n// transaction status devoid of any business logic\nexport enum TxnStatus {\n unknown = \"unknown\",\n not_started = \"not_started\",\n pending = \"pending\",\n swappping = \"swapping\",\n completed = \"completed\",\n}\n\nexport enum TrackingStatus {\n not_started = \"not_started\",\n starting = \"starting\", // first status once we receive, old or new transaction\n broadcasted = \"broadcasted\",\n mempool = \"mempool\", // or indexing\n inbound = \"inbound\",\n outbound = \"outbound\",\n swapping = \"swapping\", // more generic than streaming\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 = z.object({\n error: z.string(),\n message: z.string(),\n});\n\nexport const AssetValueSchema = z.object({\n chain: z.nativeEnum(Chain),\n symbol: z.string(),\n ticker: z.string(),\n decimal: z.optional(z.number()),\n address: z.optional(z.string()),\n isGasAsset: z.boolean(),\n isSynthetic: z.boolean(),\n tax: z.optional(\n z.object({\n buy: z.number(),\n sell: z.number(),\n }),\n ),\n});\n\nexport const TokenDetailsMetadataSchema = z.object({\n name: z.string(),\n id: z.string(),\n market_cap: z.number(),\n total_volume: z.number(),\n price_change_24h_usd: z.number(),\n price_change_percentage_24h_usd: z.number(),\n timestamp: z.string(),\n sparkline_in_7d: z.array(z.number()),\n});\n\nexport const PriceResponseSchema = z.array(\n z\n .object({\n identifier: z.string(),\n provider: z.string(),\n cg: TokenDetailsMetadataSchema.optional(),\n price_usd: z.number(),\n timestamp: z.number(),\n })\n .partial(),\n);\n\nexport type PriceResponse = z.infer<typeof PriceResponseSchema>;\n\nexport const QuoteRequestSchema = z\n .object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n sellAmount: z\n .string({\n description: \"Amount of asset to sell\",\n })\n .refine((amount) => +amount > 0, {\n message: \"sellAmount must be greater than 0\",\n path: [\"sellAmount\"],\n }),\n providers: z.optional(\n z.array(\n z\n .string({\n description: \"List of providers to use\",\n })\n .refine(\n (provider) => {\n return ProviderName[provider as ProviderName] !== undefined;\n },\n {\n message: \"Invalid provider\",\n path: [\"providers\"],\n },\n ),\n ),\n ),\n sourceAddress: z.optional(\n z.string({\n description: \"Address to send asset from\",\n }),\n ),\n destinationAddress: z.optional(\n z.string({\n description: \"Address to send asset to\",\n }),\n ),\n slippage: z.optional(\n z.number({\n description: \"Slippage tolerance as a percentage. Default is 3%.\",\n }),\n ),\n affiliate: z.optional(\n z.string({\n description: \"Affiliate thorname\",\n }),\n ),\n affiliateFee: z.optional(\n z\n .number({\n description: \"Affiliate fee in basis points\",\n })\n .refine(\n (fee) => {\n return fee === Math.floor(fee) && fee >= 0;\n },\n {\n message: \"affiliateFee must be a positive integer\",\n path: [\"affiliateFee\"],\n },\n ),\n ),\n allowSmartContractSender: z.optional(\n z.boolean({\n description: \"Allow smart contract as sender\",\n }),\n ),\n allowSmartContractReceiver: z.optional(\n z.boolean({\n description: \"Allow smart contract as recipient\",\n }),\n ),\n disableSecurityChecks: z.optional(\n z.boolean({\n description: \"Disable security checks\",\n }),\n ),\n includeTx: z.optional(\n z.boolean({\n description: \"Set to true to include an transaction object (EVM only)\",\n }),\n ),\n cfBoost: z.optional(\n z.boolean({\n description: \"Set to true to enable CF boost to speed up Chainflip swaps. BTC only.\",\n }),\n ),\n referrer: z.optional(\n z.string({\n description: \"Referrer address (referral program)\",\n }),\n ),\n })\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 = z.object({\n tokens: z.array(\n z.object({\n identifier: z.string(),\n }),\n ),\n metadata: z.boolean(),\n});\n\nexport type PriceRequest = z.infer<typeof PriceRequestSchema>;\n\nexport const BrokerDepositChannelParamsSchema = z.object({\n sellAsset: z.object({\n chain: z.string(), // identifier of the asset\n asset: z.string(), // identifier of the asset\n }),\n buyAsset: z.object({\n chain: z.string(), // identifier of the asset\n asset: z.string(), // identifier of the asset\n }),\n destinationAddress: z.string(),\n channelMetadata: z\n .object({\n cfParameters: z.string().optional(),\n gasBudget: z.string().optional(),\n message: z.string().optional(),\n })\n .optional(),\n affiliateFees: z\n .array(\n z.object({\n brokerAddress: z.string(),\n feeBps: z.number(),\n }),\n )\n .optional(),\n refundParameters: z\n .object({\n minPrice: z.string().optional(),\n refundAddress: z.string().optional(),\n retryDuration: z.number().optional(),\n })\n .optional(),\n dcaParameters: z\n .object({\n chunkInterval: z.number().optional(),\n numberOfChunks: z.number().optional(),\n })\n .optional(),\n brokerCommissionBps: z.number().optional(),\n maxBoostFeeBps: z.number().optional(),\n});\n\nexport type BrokerDepositChannelParams = z.infer<typeof BrokerDepositChannelParamsSchema>;\n\nexport const DepositChannelResponseSchema = z.object({\n channelId: z.string(),\n depositAddress: z.string(),\n});\n\nexport type DepositChannelResponse = z.infer<typeof DepositChannelResponseSchema>;\n\nconst TxnPayloadSchema = z.object({\n evmCalldata: z.optional(z.string()), // raw 0xcalldata\n logs: z.optional(z.unknown()),\n memo: z.optional(z.string()),\n spender: z.optional(z.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 = z.object({\n estimatedfinalisedAt: z.number(),\n estimatedTimeToComplete: z.number(),\n updatedAt: z.number(),\n currentLegIndex: z.optional(z.number()),\n providerDetails: z.optional(z.unknown()), // see ProviderTransientDetails\n});\n\nexport type TxnTransient = z.infer<typeof TxnTransientSchema>;\n\nconst TransactionFeesSchema = z.object({\n network: z.optional(AssetValueSchema), // gas on ethereum, network fee on thorchain, etc.\n affiliate: z.optional(AssetValueSchema), // e.g. affiliate in memo, other affiliate mechanisms\n liquidity: z.optional(AssetValueSchema), // fee paid to pool\n protocol: z.optional(AssetValueSchema), // extra protocol fees (TS dex aggregation contracts, stargate fees, etc.)\n tax: z.optional(AssetValueSchema), // taxed tokens\n});\n\nexport type TransactionFees = z.infer<typeof TransactionFeesSchema>;\n\n// props that are not part of the transaction itself, but are still relevant for integrators\nconst TxnMetaSchema = z.object({\n broadcastedAt: z.optional(z.number()),\n wallet: z.optional(z.string()),\n quoteId: z.optional(z.string()),\n explorerUrl: z.optional(z.string()),\n affiliate: z.optional(z.string()),\n fees: z.optional(TransactionFeesSchema),\n provider: z.optional(z.nativeEnum(ProviderName)),\n images: z.optional(\n z.object({\n from: z.optional(z.string()),\n to: z.optional(z.string()),\n provider: z.optional(z.string()),\n chain: z.optional(z.string()),\n }),\n ),\n});\n\nexport type TxnMeta = z.infer<typeof TxnMetaSchema>;\n\nconst TransactionLegDTOSchema = z.object({\n chainId: z.nativeEnum(ChainId),\n hash: z.string(),\n block: z.number(),\n type: z.nativeEnum(TxnType),\n status: z.nativeEnum(TxnStatus),\n trackingStatus: z.optional(z.nativeEnum(TrackingStatus)),\n\n fromAsset: z.string(),\n fromAmount: z.string(),\n fromAddress: z.string(),\n toAsset: z.string(),\n toAmount: z.string(),\n toAddress: z.string(),\n finalAsset: z.optional(AssetValueSchema),\n finalAddress: z.optional(z.string()),\n\n finalisedAt: z.number(),\n\n transient: z.optional(TxnTransientSchema),\n meta: z.optional(TxnMetaSchema),\n payload: z.optional(TxnPayloadSchema),\n});\n\nexport type TransactionLegDTO = z.infer<typeof TransactionLegDTOSchema>;\n\nexport const TransactionSchema = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport type TransactionDTO = z.infer<typeof TransactionLegDTOSchema> & {\n legs: TransactionLegDTO[];\n};\n\nexport const TransactionDTOSchema: z.ZodType<TransactionDTO> = TransactionLegDTOSchema.extend({\n legs: z.array(TransactionLegDTOSchema),\n});\n\nexport const FeesSchema = z.array(\n z.object({\n type: z.nativeEnum(FeeTypeEnum),\n amount: z.string(),\n asset: z.string(),\n chain: z.string(),\n protocol: z.nativeEnum(ProviderName),\n }),\n);\n\nexport type Fees = z.infer<typeof FeesSchema>;\n\nexport const EstimatedTimeSchema = z.object({\n inbound: z.optional(\n z.number({\n description: \"Time to receive inbound asset in seconds\",\n }),\n ),\n swap: z.optional(\n z.number({\n description: \"Time to swap assets in seconds\",\n }),\n ),\n outbound: z.optional(\n z.number({\n description: \"Time to receive outbound asset in seconds\",\n }),\n ),\n total: z.number({\n description: \"Total time in seconds\",\n }),\n});\n\nexport type EstimatedTime = z.infer<typeof EstimatedTimeSchema>;\n\nexport const EVMTransactionSchema = z.object({\n to: z.string({\n description: \"Address of the recipient\",\n }),\n from: z.string({\n description: \"Address of the sender\",\n }),\n value: z.string({\n description: \"Value to send\",\n }),\n data: z.string({\n description: \"Data to send\",\n }),\n});\n\nexport type EVMTransaction = z.infer<typeof EVMTransactionSchema>;\n\nexport const EVMTransactionDetailsParamsSchema = z.array(\n z.union([\n z.string(),\n z.number(),\n z.array(z.string()),\n z\n .object({\n from: z.string(),\n value: z.string(),\n })\n .describe(\"Parameters to pass to the contract method\"),\n ]),\n);\n\nexport type EVMTransactionDetailsParams = z.infer<typeof EVMTransactionDetailsParamsSchema>;\n\nexport const EVMTransactionDetailsSchema = z.object({\n contractAddress: z.string({\n description: \"Address of the contract to interact with\",\n }),\n contractMethod: z.string({\n description: \"Name of the method to call\",\n }),\n contractParams: EVMTransactionDetailsParamsSchema,\n // contractParamsStreaming: z.array(\n // z.string({\n // description:\n // \"If making a streaming swap through THORChain, parameters to pass to the contract method\",\n // }),\n // ),\n contractParamNames: z.array(\n z.string({\n description: \"Names of the parameters to pass to the contract method\",\n }),\n ),\n approvalToken: z.optional(\n z.string({\n description: \"Address of the token to approve spending of\",\n }),\n ),\n approvalSpender: z.optional(\n z.string({\n description: \"Address of the spender to approve\",\n }),\n ),\n});\n\nexport type EVMTransactionDetails = z.infer<typeof EVMTransactionDetailsSchema>;\n\nconst EncodeObjectSchema = z.object({\n typeUrl: z.string(),\n value: z.unknown(),\n});\n\nconst FeeSchema = z.object({\n amount: z.array(\n z.object({\n denom: z.string(),\n amount: z.string(),\n }),\n ),\n gas: z.string(),\n});\n\n// Define the full schema\nexport const CosmosTransactionSchema = z.object({\n memo: z.string(),\n accountNumber: z.number(),\n sequence: z.number(),\n chainId: z.nativeEnum(ChainId),\n msgs: z.array(EncodeObjectSchema),\n fee: FeeSchema,\n});\n\nexport type CosmosTransaction = z.infer<typeof CosmosTransactionSchema>;\n\nexport const RouteLegSchema = z.object({\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n provider: z.nativeEnum(ProviderName),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n estimatedTime: EstimatedTimeSchema.optional(),\n affiliate: z\n .string({\n description: \"Affiliate address\",\n })\n .optional(),\n affiliateFee: z\n .number({\n description: \"Affiliate fee\",\n })\n .optional(),\n slipPercentage: z.number({\n description: \"Slippage as a percentage\",\n }),\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 = z.object({\n asset: z.string({\n description: \"Asset name\",\n }),\n price: z.number({\n description: \"Price in USD\",\n }),\n image: z.string({\n description: \"Asset image\",\n }),\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 = z.object({\n priceImpact: z.optional(\n z.number({\n description: \"Price impact\",\n }),\n ),\n assets: z.optional(z.array(RouteQuoteMetadataAssetSchema)),\n approvalAddress: z.optional(\n z.string({\n description: \"Approval address for swap\",\n }),\n ),\n streamingInterval: z.number().optional(),\n maxStreamingQuantity: z.number().optional(),\n tags: z.array(z.nativeEnum(PriorityLabel)),\n\n affiliate: z.optional(z.string()),\n affiliateFee: z.optional(z.string()),\n\n txType: z.optional(z.nativeEnum(RouteQuoteTxType)),\n chainflip: z.optional(ChainflipMetadataSchema),\n referrer: z.optional(z.string()),\n});\n\nexport const RouteQuoteWarningSchema = z.array(\n z.object({\n code: z.nativeEnum(WarningCodeEnum),\n display: z.string(),\n tooltip: z.string().optional(),\n }),\n);\n\nexport type RouteQuoteWarning = z.infer<typeof RouteQuoteWarningSchema>;\n\nconst QuoteResponseRouteLegItem = z.object({\n provider: z.nativeEnum(ProviderName),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"Sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n buyAmount: z.string({\n description: \"Buy amount\",\n }),\n buyAmountMaxSlippage: z.string({\n description: \"Buy amount max slippage\",\n }),\n fees: z.optional(FeesSchema), // TODO remove optionality\n});\n\nconst QuoteResponseRouteItem = z.object({\n providers: z.array(z.nativeEnum(ProviderName)),\n sellAsset: z.string({\n description: \"Asset to sell\",\n }),\n sellAmount: z.string({\n description: \"Sell amount\",\n }),\n buyAsset: z.string({\n description: \"Asset to buy\",\n }),\n expectedBuyAmount: z.string({\n description: \"Expected Buy amount\",\n }),\n expectedBuyAmountMaxSlippage: z.string({\n description: \"Expected Buy amount max slippage\",\n }),\n sourceAddress: z.string({\n description: \"Source address\",\n }),\n destinationAddress: z.string({\n description: \"Destination address\",\n }),\n targetAddress: z.optional(\n z.string({\n description: \"Target address\",\n }),\n ),\n inboundAddress: z.optional(\n z.string({\n description: \"Inbound address\",\n }),\n ),\n expiration: z.optional(\n z.string({\n description: \"Expiration\",\n }),\n ),\n memo: z.optional(\n z.string({\n description: \"Memo\",\n }),\n ),\n fees: FeesSchema,\n txType: z.optional(z.nativeEnum(RouteQuoteTxType)),\n tx: z.optional(z.union([EVMTransactionSchema, CosmosTransactionSchema, z.string()])),\n estimatedTime: z.optional(EstimatedTimeSchema), // TODO remove optionality\n totalSlippageBps: z.number({\n description: \"Total slippage in bps\",\n }),\n legs: z.array(QuoteResponseRouteLegItem),\n warnings: RouteQuoteWarningSchema,\n meta: RouteQuoteMetadataSchema,\n});\n\nexport const QuoteResponseSchema = z.object({\n quoteId: z.string({\n description: \"Quote ID\",\n }),\n routes: z.array(QuoteResponseRouteItem),\n // in case of bad request or actual backend error, not bad quotes from providers\n error: z.optional(\n z.string({\n description: \"Error message\",\n }),\n ),\n // errors from providers\n providerErrors: z.optional(\n z.array(\n z.object({\n provider: z.nativeEnum(ProviderName).optional(),\n errorCode: z.optional(z.nativeEnum(ErrorCode)),\n message: z.optional(z.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 = z.array(\n z.object({\n id: z.number(),\n chainId: z.string(),\n value: z.string(),\n unit: z.string(),\n createdAt: z.string(),\n }),\n);\n\nexport type GasResponse = z.infer<typeof GasResponseSchema>;\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(type?: THORNodeType) {\n return RequestClient.get<LastBlockItem[]>(`${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 function getTHORNodeTNSDetails({ type, name }: { type?: THORNodeType; name: string }) {\n return RequestClient.get<THORNodeTNSDetails>(`${getNameServiceBaseUrl(type)}/${name}`);\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
+ "import { AssetValue, type ProviderName, RequestClient, getChainIdentifier } 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 return `${baseUrl}/token-list/images/${assetString.toLowerCase()}.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",
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
+ ],
13
+ "mappings": "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",
14
+ "debugId": "EFCF6B6CE59EB4BD64756E2164756E21",
15
+ "names": []
16
+ }
@@ -0,0 +1,3 @@
1
+ var j=Object.create;var{getPrototypeOf:k,defineProperty:e,getOwnPropertyNames:h,getOwnPropertyDescriptor:l}=Object,i=Object.prototype.hasOwnProperty;var m=(a,b,c)=>{c=a!=null?j(k(a)):{};let d=b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c;for(let f of h(a))if(!i.call(d,f))e(d,f,{get:()=>a[f],enumerable:!0});return d},g=new WeakMap,n=(a)=>{var b=g.get(a),c;if(b)return b;if(b=e({},"__esModule",{value:!0}),a&&typeof a==="object"||typeof a==="function")h(a).map((d)=>!i.call(b,d)&&e(b,d,{get:()=>a[d],enumerable:!(c=l(a,d))||c.enumerable}));return g.set(a,b),b};var o=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0,configurable:!0,set:(d)=>b[c]=()=>d})};
2
+
3
+ //# debugId=9E860276D712218864756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "9E860276D712218864756E2164756E21",
8
+ "names": []
9
+ }
@@ -0,0 +1,4 @@
1
+ var g=Object.create;var{getPrototypeOf:h,defineProperty:f,getOwnPropertyNames:i}=Object;var j=Object.prototype.hasOwnProperty;var k=(a,c,b)=>{b=a!=null?g(h(a)):{};let d=c||!a||!a.__esModule?f(b,"default",{value:a,enumerable:!0}):b;for(let e of i(a))if(!j.call(d,e))f(d,e,{get:()=>a[e],enumerable:!0});return d};var l=(a,c)=>{for(var b in c)f(a,b,{get:c[b],enumerable:!0,configurable:!0,set:(d)=>c[b]=()=>d})};var m=((a)=>typeof require!=="undefined"?require:typeof Proxy!=="undefined"?new Proxy(a,{get:(c,b)=>(typeof require!=="undefined"?require:c)[b]}):a)(function(a){if(typeof require!=="undefined")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});
2
+ export{k as a,l as b,m as c};
3
+
4
+ //# debugId=AC1F50CD3FE6ED1664756E2164756E21
@@ -0,0 +1,9 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [
5
+ ],
6
+ "mappings": "",
7
+ "debugId": "AC1F50CD3FE6ED1664756E2164756E21",
8
+ "names": []
9
+ }