@swapkit/api
Advanced tools
Comparing version 0.0.0-nightly-20240607015403 to 0.0.0-nightly-20240718103505
@@ -1,509 +0,3 @@ | ||
var __defProp = Object.defineProperty; | ||
var __export = (target, all) => { | ||
for (var name in all) | ||
__defProp(target, name, { | ||
get: all[name], | ||
enumerable: true, | ||
configurable: true, | ||
set: (newValue) => all[name] = () => newValue | ||
}); | ||
}; | ||
var _=Object.defineProperty;var T=(e,t)=>{for(var o in t)_(e,o,{get:t[o],enumerable:!0,configurable:!0,set:(s)=>t[o]=()=>s})};var B={};T(B,{getTNSChainAddress:()=>se,getTHORNamesByOwner:()=>ee,getTHORNamesByAddress:()=>re,getTHORNameDetails:()=>F,getTHORChainPools:()=>te,getLiquidityPositionsRaw:()=>$,getLiquidityPositions:()=>ne});import{AssetValue as l,BaseDecimal as b,RequestClient as f,SwapKitNumber as R} from"@swapkit/helpers";function F(e){return f.get(`${h}/thorname/lookup/${e}`)}function ee(e){return f.get(`${h}/thorname/owner/${e}`)}function re(e){return f.get(`${h}/thorname/address/${e}`)}function te(e){return f.get(`${h}/pools`,{searchParams:{period:e}})}function $(e){return f.get(`${h}/fullmember?address=${e.join(",")}`)}async function se({chain:e,tns:t}){return(await F(t))?.entries?.find((s)=>s.chain.toLowerCase()===e.toLowerCase())?.address}async function ne(e){return(await $(e)).map((o)=>({assetRegisteredAddress:o.assetAddress,asset:l.from({asset:o.pool,value:o.assetAdded,fromBaseDecimal:b.THOR}),assetPending:l.from({asset:o.pool,value:o.assetPending,fromBaseDecimal:b.THOR}),assetWithdrawn:l.from({asset:o.pool,value:o.assetWithdrawn,fromBaseDecimal:b.THOR}),runeRegisteredAddress:o.runeAddress,rune:l.from({asset:"THOR.RUNE",value:o.runeAdded,fromBaseDecimal:b.THOR}),runePending:l.from({asset:"THOR.RUNE",value:o.runePending,fromBaseDecimal:b.THOR}),runeWithdrawn:l.from({asset:"THOR.RUNE",value:o.runeWithdrawn,fromBaseDecimal:b.THOR}),poolShare:new R(o.sharedUnits).div(o.poolUnits),dateLastAdded:o.dateLastAdded,dateFirstAdded:o.dateFirstAdded}))}var h="https://mu.thorswap.net";import{AssetValue as m,BaseDecimal as i,Chain as p,RequestClient as D,SwapKitNumber as P} from"@swapkit/helpers";function M(e,t=!1){return D.get(`${t?V:G}/v2/borrower/${e}`)}function w(e,t=!1){return D.get(`${t?V:G}/v2/saver/${e}`)}function X(e,t){return D.get(`${t?V:G}/v2/member/${e}`)}async function oe(e,t=!1){return(await M(e,t)).pools.map((s)=>({collateral_deposited:m.from({asset:s.collateral_asset,value:s.collateral_deposited,fromBaseDecimal:i.THOR}),collateral_withdrawn:m.from({asset:s.collateral_asset,value:s.collateral_withdrawn,fromBaseDecimal:i.THOR}),debt_issued_tor:P.fromBigInt(BigInt(s.debt_issued_tor),i.THOR),debt_repaid_tor:P.fromBigInt(BigInt(s.debt_repaid_tor),i.THOR),last_open_loan_timestamp:s.last_open_loan_timestamp,last_repay_loan_timestamp:s.last_repay_loan_timestamp,target_assets:s.target_assets.map((H)=>m.from({asset:H}))}))}async function ae(e,t=!1){return(await w(e,t)).pools.map((s)=>({assetRegisteredAddress:s.assetAddress,assetAdded:m.from({asset:s.pool,value:s.assetAdded,fromBaseDecimal:i.THOR}),assetDeposit:m.from({asset:s.pool,value:s.assetDeposit,fromBaseDecimal:i.THOR}),assetRedeem:m.from({asset:s.pool,value:s.assetRedeem,fromBaseDecimal:i.THOR}),assetWithdrawn:m.from({asset:s.pool,value:s.assetWithdrawn,fromBaseDecimal:i.THOR}),dateLastAdded:s.dateLastAdded,dateFirstAdded:s.dateFirstAdded}))}async function ie(e,t=!1){return(await X(e,t)).pools.map((s)=>({assetRegisteredAddress:s.assetAddress,asset:m.from({asset:s.pool,value:s.assetAdded,fromBaseDecimal:i.THOR}),assetPending:m.from({asset:s.pool,value:s.assetPending,fromBaseDecimal:i.THOR}),assetWithdrawn:m.from({asset:s.pool,value:s.assetWithdrawn,fromBaseDecimal:i.THOR}),[`${t?"cacao":"rune"}RegisteredAddress`]:s.runeAddress,[`${t?"cacao":"rune"}`]:m.from({asset:"THOR.RUNE",value:s.runeAdded,fromBaseDecimal:i.THOR}),[`${t?"cacao":"rune"}Pending`]:m.from({asset:"THOR.RUNE",value:s.runePending,fromBaseDecimal:i.THOR}),[`${t?"cacao":"rune"}Withdrawn`]:m.from({asset:"THOR.RUNE",value:s.runeWithdrawn,fromBaseDecimal:i.THOR}),poolShare:new P(s.liquidityUnits).div(s.pool),dateLastAdded:s.dateLastAdded,dateFirstAdded:s.dateFirstAdded}))}var G="https://midgard.ninerealms.com",V="https://midgard.mayachain.info",Y=(e)=>({getBorrowerDetail:(t)=>oe(t,e===p.Maya),getBorrowerDetailRaw:(t)=>M(t,e===p.Maya),getSaversDetail:(t)=>ae(t,e===p.Maya),getSaverDetailRaw:(t)=>w(t,e===p.Maya),getLiquidityPosition:(t)=>ie(t,e===p.Maya),getLiquidityPositionRaw:(t)=>X(t,e===p.Maya)}),q=Y(p.THORChain),E=Y(p.Maya);var v={};T(v,{getThorchainQueue:()=>ue,getTNSPreferredAsset:()=>le,getTHORNodeTNSDetails:()=>W,getNodes:()=>Ae,getMimirInfo:()=>pe,getLastBlock:()=>de,getInboundAddresses:()=>ge});import{AssetValue as me,RequestClient as N} from"@swapkit/helpers";var I=function({type:e="thorchain",stagenet:t=!1}={}){switch(e){case"mayachain":return t?"https://stagenet.mayanode.mayachain.info/mayachain":"https://mayanode.mayachain.info/mayachain";default:return t?"https://stagenet-thornode.ninerealms.com/thorchain":"https://thornode.thorswap.net/thorchain"}};function de(e){return N.get(`${I(e)}/lastblock`)}function ue(e){return N.get(`${I(e)}/queue`)}function Ae(e){return N.get(`${I(e)}/nodes`)}function pe(e){return N.get(`${I(e)}/mimir`)}function ge(e){return N.get(`${I(e)}/inbound_addresses`)}function W(e){return N.get(`${I(e)}/thorname/${e.name}`)}async function le(e){const t=await W({name:e});if(!t.preferred_asset||t.preferred_asset===".")return;return me.from({asyncTokenLookup:!0,asset:t.preferred_asset})}var U={};T(U,{getTxnDetails:()=>Ce,getTokenListProviders:()=>Be,getSwapQuote:()=>He,getRepayQuote:()=>fe,getLoans:()=>ce,getLendingAssets:()=>he,getGasRates:()=>Se,getCachedPrices:()=>Le,getBorrowQuote:()=>Te,APIV1RequestClient:()=>c});import{RequestClient as L} from"@swapkit/helpers";import{z as g} from"zod";var be;((n)=>{n.SWAP_TC_TO_TC="SWAP:TC-TC";n.SWAP_ETH_TO_TC="SWAP:ERC20-TC";n.SWAP_TC_TO_ETH="SWAP:TC-ERC20";n.SWAP_ETH_TO_ETH="SWAP:ERC20-ERC20";n.SWAP_AVAX_TO_TC="SWAP:AVAX-TC";n.SWAP_TC_TO_AVAX="SWAP:TC-AVAX";n.SWAP_AVAX_TO_AVAX="SWAP:AVAX-AVAX";n.SWAP_ETH_TO_AVAX="SWAP:ETH-AVAX";n.SWAP_AVAX_TO_ETH="SWAP:AVAX-ETH";n.SWAP_TC_TO_GAIA="SWAP:TC-GAIA";n.SWAP_GAIA_TO_TC="SWAP:GAIA-TC";n.SWAP_TC_TO_BTC="SWAP:TC-BTC";n.SWAP_BTC_TO_TC="SWAP:BTC-TC";n.SWAP_TC_TO_BCH="SWAP:TC-BCH";n.SWAP_BCH_TO_TC="SWAP:BCH-TC";n.SWAP_TC_TO_LTC="SWAP:TC-LTC";n.SWAP_LTC_TO_TC="SWAP:LTC-TC";n.SWAP_TC_TO_DOGE="SWAP:TC-DOGE";n.SWAP_DOGE_TO_TC="SWAP:DOGE-TC";n.TC_STATUS="TC:STATUS";n.TC_TRANSFER="TC:TRANSFER";n.TC_DEPOSIT="TC:DEPOSIT";n.TC_SEND="TC:SEND";n.TC_SWITCH="TC:SWITCH";n.TC_LP_ADD="TC:ADDLIQUIDITY";n.TC_LP_WITHDRAW="TC:WITHDRAW";n.TC_TNS_CREATE="TC:TNS-CREATE";n.TC_TNS_EXTEND="TC:TNS-EXTEND";n.TC_TNS_UPDATE="TC:TNS-UPDATE";n.TC_SAVINGS_ADD="TC:ADDSAVINGS";n.TC_SAVINGS_WITHDRAW="TC:WITHDRAWSAVINGS";n.TC_LENDING_OPEN="TC:LENDINGOPEN";n.TC_LENDING_CLOSE="TC:LENDINGCLOSE";n.ETH_APPROVAL="ETH:APPROVAL";n.ETH_STATUS="ETH:STATUS";n.ETH_TRANSFER_TO_TC="ETH:TRANSFER:IN";n.ETH_TRANSFER_FROM_TC="ETH:TRANSFER:OUT";n.AVAX_APPROVAL="AVAX:APPROVAL";n.AVAX_STATUS="AVAX:STATUS";n.AVAX_TRANSFER_TO_TC="AVAX:TRANSFER:IN";n.AVAX_TRANSFER_FROM_TC="AVAX:TRANSFER:OUT";n.BSC_APPROVAL="BSC:APPROVAL";n.BSC_STATUS="BSC:STATUS";n.BSC_TRANSFER_TO_TC="BSC:TRANSFER:IN";n.BSC_TRANSFER_FROM_TC="BSC:TRANSFER:OUT";n.APPROVAL="APPROVAL";n.STATUS="STATUS";n.TRANSFER_TO_TC="TRANSFER:IN";n.TRANSFER_FROM_TC="TRANSFER:OUT";n.UNSUPPORTED="UNSUPPORTED";n.TC_LENDING="TC:LENDING"})(be||={});var Ne;((u)=>{u.PENDING="pending";u.SUCCESS="success";u.CANCELLED="cancelled";u.REFUNDED="refunded";u.REPLACED="replaced";u.ERROR="error";u.UNKNOWN="unknown";u.NOT_STARTED="not_started";u.NOT_FOUND="not_found";u.RETRIES_EXCEEDED="retries_exceeded";u.STREAMING="streaming"})(Ne||={});var Ie;((s)=>{s[s.NOT_STARTED=0]="NOT_STARTED";s[s.SUCCESS=1]="SUCCESS";s[s.REFUNDED=2]="REFUNDED"})(Ie||={});var K;((r)=>{r.INVALID_INPUT_PARAMETERS="1000";r.UNKNOWN_PROVIDERS="1001";r.CANNOT_FIND_INBOUND_ADDRESS="1002";r.NO_INBOUND_ADDRESSES="1003";r.CHAIN_HALTED_OR_UNSUPPORTED="1004";r.MISSING_INPUT_PARAMETER="1005";r.INVALID_TYPE_GENERIC="1100";r.INVALID_NUMBER_STRING="1101";r.INVALID_NUMBER="1102";r.INVALID_BOOLEAN="1103";r.INVALID_OBJECT="1104";r.INVALID_ARRAY="1105";r.SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER="2000";r.SELL_BUY_ASSETS_ARE_THE_SAME="2001";r.MISSING_SOURCE_ADDRESS_FOR_SYNTH="2002";r.AFF_ADDRESS_AND_BPS_OR_NEITHER="2003";r.AFF_ADDRESS_TOO_LONG="2004";r.AFF_BPS_INTEGER_MAX_500="2005";r.SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN="2006";r.DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN="2007";r.PREFERRED_PROVIDER_NOT_SUPPORTED="2008";r.DESTINATION_ADDRESS_SMART_CONTRACT="2009";r.BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER="2010";r.SOURCE_ADDRESS_SMART_CONTRACT="2011";r.SWAP_AMOUNT_TOO_LOW="2012";r.INVALID_PROVIDER="2100";r.MISSING_CROSS_CHAIN_PROVIDER="2101";r.MISSING_AVAX_PROVIDER="2102";r.MISSING_BSC_PROVIDER="2103";r.MISSING_ETH_PROVIDER="2104";r.INVALID_PROVIDER_FOR_SWAP_OUT="2105";r.MISSING_ARB_PROVIDER="2106";r.INVALID_CHAIN="2200";r.INVALID_ASSET="2201";r.INVALID_ASSET_IDENTIFIER="2202";r.UNSUPPORTED_CHAIN="2204";r.UNSUPPORTED_ASSET="2203";r.UNSUPPORTED_ASSET_FOR_SWAPOUT="2205";r.INVALID_SOURCE_ADDRESS="2300";r.INVALID_DESTINATION_ADDRESS="2301";r.THORNODE_QUOTE_GENERIC_ERROR="3000";r.NOT_ENOUGH_SYNTH_BALANCE="3001";r.SYNTH_MINTING_CAP_REACHED="3002";r.INVALID_QUOTE_MODE="4000";r.NO_QUOTES="4001";r.SERVICE_UNAVAILABLE_GENERIC="5000";r.MISSING_GAS_DATA_GENERIC="5100";r.MISSING_TOKEN_INFO_GENERIC="5200";r.CANT_FIND_TOKEN_LIST="5201";r.NO_PRICE="5202";r.PRICE_IS_STALE="5203";r.ADDRESS_NOT_WHITELISTED="6000";r.ADDRESS_ALREADY_CLAIMED="6001";r.TEMPORARY_ERROR="9999"})(K||={});var Q;((a)=>{a.HEALTH_CONTROLLER="1000";a.LIQUIDITY_CONTROLLER="1001";a.PROVIDER_CONTROLLER="1002";a.QUOTE_CONTROLLER="1003";a.SWAP_CONTROLLER="1004";a.UTIL_CONTROLLER="1005";a.AIRDROP_CONTROLLER="1006";a.PROVIDER="2000";a.ASSET="2001";a.TOKEN_LIST="2002";a.QUOTE="2100";a.QUOTE_TXN_DETAILS="2101";a.THORCHAIN_PROVIDER="3000";a.UNISWAPV2_ETH_PROVIDER="3001";a.UNISWAPV3_ETH_PROVIDER="3002";a.SUSHISWAP_ETH_PROVIDER="3003";a.PANCAKESWAP_BSC_PROVIDER="3004";a.PANCAKESWAP_ETH_PROVIDER="3005";a.ONEINCH_ETH_PROVIDER="3006";a.ONEINCH_BSC_PROVIDER="3007";a.ONEINCH_AVAX_PROVIDER="3008";a.ZEROX_ETH_PROVIDER="3009";a.WOOFI_AVAX_PROVIDER="3010";a.PANGOLIN_AVAX_PROVIDER="3011";a.TRADERJOE_AVAX_PROVIDER="3012";a.KYBER_ETH_PROVIDER="3013";a.KYBER_AVAX_PROVIDER="3014";a.WOOFI_BSC_PROVIDER="3015";a.STARGATE_PROVIDER="3016";a.PROVIDER_UTIL="4000";a.TXN_DETAILS="5000";a.AIRDROP_UTIL="6000"})(Q||={});var j;((d)=>{d.VALIDATION_ERROR="VALIDATION_ERROR";d.REQUEST_PARAMETER_ERROR="REQUEST_PARAMETER_ERROR";d.RESPONSE_PARSING_ERROR="RESPONSE_PARSING_ERROR";d.UNSUPPORTED="UNSUPPORTED";d.NOT_IMPLEMENTED="NOT_IMPLEMENTED";d.INCOMPATIBLE_ASSETS_OPERATIONS="INCOMPATIBLE_ASSETS_OPERATIONS";d.SERVICE_UNAVAILABLE="SERVICE_UNAVAILABLE";d.DOWN_FOR_MAINTENANCE="DOWN_FOR_MAINTENANCE";d.MISSING_INBOUND_INFO="MISSING_INBOUND_INFO";d.QUOTE_FETCHING_ERROR="QUOTE_FETCHING_ERROR";d.AIRDROP_ERROR="AIRDROP_ERROR";d.UNHANDLED_ERROR="UNHANDLED_ERROR"})(j||={});var J=g.object({status:g.number(),type:g.nativeEnum(j),code:g.nativeEnum(K),module:g.nativeEnum(Q),complete:g.string(),identifier:g.string(),message:g.string()});function Le({tokens:e,...t}){const o=new URLSearchParams,s=e.filter((H,Z,O)=>O.findIndex((z)=>z===H)===Z);for(let H of s)o.append("tokens",JSON.stringify(H));if(t.metadata)o.append("metadata","true");if(t.lookup)o.append("lookup","true");if(t.sparkline)o.append("sparkline","true");return c.post(`${A}/tokenlist/cached-price`,{body:o.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded"}})}function He(e){return c.get(`${A}/aggregator/tokens/quote`,{searchParams:e})}function Te(e){return c.get(`${A}/aggregator/lending/borrow`,{searchParams:e})}function fe(e){return c.get(`${A}/aggregator/lending/repay`,{searchParams:e})}function he(){return L.get(`${A}/aggregator/lending/assets`)}function ce(e){return L.get(`${A}/aggregator/lending/loans`,{searchParams:e})}function Se(){return L.get(`${A}/resource-worker/gasPrice/getAll`)}function Ce(e){return L.get(`${A}/apiusage/v2/txn`,{searchParams:{txHash:e}})}function Be(){return L.get(`${A}/tokenlist/providers`)}var A="https://api.thorswap.finance",c=L.extend({responseHandler:(e)=>{try{return J.parse(e)}catch(t){return e}}});var y={};T(y,{getTrackerDetails:()=>Ve,getTokenListV2:()=>ye,getTokenListProvidersV2:()=>Ue,getSwapQuoteV2:()=>ve});import{QuoteResponseSchema as Pe,RequestClient as S,SwapKitError as De} from"@swapkit/helpers";function Ve(e){return S.post(`${C}/track`,{body:JSON.stringify(e)})}async function ve(e,t=!1){const o=await S.post(`${t?Ge:C}/quote`,{json:e});try{return Pe.parse(o)}catch(s){throw new De("api_v2_invalid_response",s)}}async function Ue(){return await S.get(`${C}/providers`)}function ye(e){return S.get(`${C}/tokens?provider=${e}`)}var C="https://api.swapkit.dev",Ge="https://dev-api.swapkit.dev";var k={};T(k,{getTokenList:()=>$e,getLogoForAsset:()=>Me,getChainLogoForAsset:()=>we});import{AssetValue as xe,RequestClient as ke,getChainIdentifier as Fe} from"@swapkit/helpers";function $e(e){return ke.get(`${x}/token-list/${e}.json`)}function Me(e){return`${x}/token-list/images/${e.toLowerCase()}.png`}function we(e){const{chain:t}=xe.from({asset:e}),o=Fe(t).toLowerCase();return`${x}/token-list/images/${o}.png`}var x="https://static.thorswap.net";var _e={...B,...v,...U,...y,...k,thorchainMidgard:q,mayachainMidgard:E};export{Ne as TxStatus,be as TransactionType,_e as SwapKitApi,Ie as StreamingSwapProgressStatus,j as ERROR_TYPE,Q as ERROR_MODULE,K as ERROR_CODE,J as ApiV1ErrorSchema}; | ||
// src/microgard/endpoints.ts | ||
var exports_endpoints = {}; | ||
__export(exports_endpoints, { | ||
getTHORNamesByOwner: () => { | ||
{ | ||
return getTHORNamesByOwner; | ||
} | ||
}, | ||
getTHORNamesByAddress: () => { | ||
{ | ||
return getTHORNamesByAddress; | ||
} | ||
}, | ||
getTHORNameDetails: () => { | ||
{ | ||
return getTHORNameDetails; | ||
} | ||
}, | ||
getTHORChainPools: () => { | ||
{ | ||
return getTHORChainPools; | ||
} | ||
} | ||
}); | ||
import {RequestClient} from "@swapkit/helpers"; | ||
function getTHORNameDetails(thorname) { | ||
return RequestClient.get(`${baseUrl}/thorname/lookup/${thorname}`); | ||
} | ||
function getTHORNamesByOwner(owner) { | ||
return RequestClient.get(`${baseUrl}/thorname/owner/${owner}`); | ||
} | ||
function getTHORNamesByAddress(address) { | ||
return RequestClient.get(`${baseUrl}/thorname/address/${address}`); | ||
} | ||
function getTHORChainPools(period) { | ||
return RequestClient.get(`${baseUrl}/pools`, { searchParams: { period } }); | ||
} | ||
var baseUrl = "https://mu.thorswap.net"; | ||
// src/thornode/endpoints.ts | ||
var exports_endpoints2 = {}; | ||
__export(exports_endpoints2, { | ||
getThorchainQueue: () => { | ||
{ | ||
return getThorchainQueue; | ||
} | ||
}, | ||
getNodes: () => { | ||
{ | ||
return getNodes; | ||
} | ||
}, | ||
getMimirInfo: () => { | ||
{ | ||
return getMimirInfo; | ||
} | ||
}, | ||
getLastBlock: () => { | ||
{ | ||
return getLastBlock; | ||
} | ||
}, | ||
getInboundAddresses: () => { | ||
{ | ||
return getInboundAddresses; | ||
} | ||
} | ||
}); | ||
import {RequestClient as RequestClient2} from "@swapkit/helpers"; | ||
var baseUrl2 = function({ type = "thorchain", stagenet = false } = {}) { | ||
switch (type) { | ||
case "mayachain": | ||
return stagenet ? "https://stagenet.mayanode.mayachain.info/mayachain" : "https://mayanode.mayachain.info/mayachain"; | ||
default: | ||
return stagenet ? "https://stagenet-thornode.ninerealms.com/thorchain" : "https://thornode.thorswap.net/thorchain"; | ||
} | ||
}; | ||
function getLastBlock(params) { | ||
return RequestClient2.get(`${baseUrl2(params)}/lastblock`); | ||
} | ||
function getThorchainQueue(params) { | ||
return RequestClient2.get(`${baseUrl2(params)}/queue`); | ||
} | ||
function getNodes(params) { | ||
return RequestClient2.get(`${baseUrl2(params)}/nodes`); | ||
} | ||
function getMimirInfo(params) { | ||
return RequestClient2.get(`${baseUrl2(params)}/mimir`); | ||
} | ||
function getInboundAddresses(params) { | ||
return RequestClient2.get(`${baseUrl2(params)}/inbound_addresses`); | ||
} | ||
// src/thorswapApi/endpoints.ts | ||
var exports_endpoints3 = {}; | ||
__export(exports_endpoints3, { | ||
getTxnDetails: () => { | ||
{ | ||
return getTxnDetails; | ||
} | ||
}, | ||
getTokenListProviders: () => { | ||
{ | ||
return getTokenListProviders; | ||
} | ||
}, | ||
getSwapQuote: () => { | ||
{ | ||
return getSwapQuote; | ||
} | ||
}, | ||
getRepayQuote: () => { | ||
{ | ||
return getRepayQuote; | ||
} | ||
}, | ||
getLoans: () => { | ||
{ | ||
return getLoans; | ||
} | ||
}, | ||
getLendingAssets: () => { | ||
{ | ||
return getLendingAssets; | ||
} | ||
}, | ||
getGasRates: () => { | ||
{ | ||
return getGasRates; | ||
} | ||
}, | ||
getCachedPrices: () => { | ||
{ | ||
return getCachedPrices; | ||
} | ||
}, | ||
getBorrowQuote: () => { | ||
{ | ||
return getBorrowQuote; | ||
} | ||
}, | ||
APIV1RequestClient: () => { | ||
{ | ||
return APIV1RequestClient; | ||
} | ||
} | ||
}); | ||
import {RequestClient as RequestClient3} from "@swapkit/helpers"; | ||
// src/thorswapApi/types.ts | ||
import {z} from "zod"; | ||
var TransactionType; | ||
(function(TransactionType2) { | ||
TransactionType2["SWAP_TC_TO_TC"] = "SWAP:TC-TC"; | ||
TransactionType2["SWAP_ETH_TO_TC"] = "SWAP:ERC20-TC"; | ||
TransactionType2["SWAP_TC_TO_ETH"] = "SWAP:TC-ERC20"; | ||
TransactionType2["SWAP_ETH_TO_ETH"] = "SWAP:ERC20-ERC20"; | ||
TransactionType2["SWAP_AVAX_TO_TC"] = "SWAP:AVAX-TC"; | ||
TransactionType2["SWAP_TC_TO_AVAX"] = "SWAP:TC-AVAX"; | ||
TransactionType2["SWAP_AVAX_TO_AVAX"] = "SWAP:AVAX-AVAX"; | ||
TransactionType2["SWAP_ETH_TO_AVAX"] = "SWAP:ETH-AVAX"; | ||
TransactionType2["SWAP_AVAX_TO_ETH"] = "SWAP:AVAX-ETH"; | ||
TransactionType2["SWAP_TC_TO_GAIA"] = "SWAP:TC-GAIA"; | ||
TransactionType2["SWAP_GAIA_TO_TC"] = "SWAP:GAIA-TC"; | ||
TransactionType2["SWAP_TC_TO_BNB"] = "SWAP:TC-BNB"; | ||
TransactionType2["SWAP_BNB_TO_TC"] = "SWAP:BNB-TC"; | ||
TransactionType2["SWAP_TC_TO_BTC"] = "SWAP:TC-BTC"; | ||
TransactionType2["SWAP_BTC_TO_TC"] = "SWAP:BTC-TC"; | ||
TransactionType2["SWAP_TC_TO_BCH"] = "SWAP:TC-BCH"; | ||
TransactionType2["SWAP_BCH_TO_TC"] = "SWAP:BCH-TC"; | ||
TransactionType2["SWAP_TC_TO_LTC"] = "SWAP:TC-LTC"; | ||
TransactionType2["SWAP_LTC_TO_TC"] = "SWAP:LTC-TC"; | ||
TransactionType2["SWAP_TC_TO_DOGE"] = "SWAP:TC-DOGE"; | ||
TransactionType2["SWAP_DOGE_TO_TC"] = "SWAP:DOGE-TC"; | ||
TransactionType2["TC_STATUS"] = "TC:STATUS"; | ||
TransactionType2["TC_TRANSFER"] = "TC:TRANSFER"; | ||
TransactionType2["TC_DEPOSIT"] = "TC:DEPOSIT"; | ||
TransactionType2["TC_SEND"] = "TC:SEND"; | ||
TransactionType2["TC_SWITCH"] = "TC:SWITCH"; | ||
TransactionType2["TC_LP_ADD"] = "TC:ADDLIQUIDITY"; | ||
TransactionType2["TC_LP_WITHDRAW"] = "TC:WITHDRAW"; | ||
TransactionType2["TC_TNS_CREATE"] = "TC:TNS-CREATE"; | ||
TransactionType2["TC_TNS_EXTEND"] = "TC:TNS-EXTEND"; | ||
TransactionType2["TC_TNS_UPDATE"] = "TC:TNS-UPDATE"; | ||
TransactionType2["TC_SAVINGS_ADD"] = "TC:ADDSAVINGS"; | ||
TransactionType2["TC_SAVINGS_WITHDRAW"] = "TC:WITHDRAWSAVINGS"; | ||
TransactionType2["TC_LENDING_OPEN"] = "TC:LENDINGOPEN"; | ||
TransactionType2["TC_LENDING_CLOSE"] = "TC:LENDINGCLOSE"; | ||
TransactionType2["ETH_APPROVAL"] = "ETH:APPROVAL"; | ||
TransactionType2["ETH_STATUS"] = "ETH:STATUS"; | ||
TransactionType2["ETH_TRANSFER_TO_TC"] = "ETH:TRANSFER:IN"; | ||
TransactionType2["ETH_TRANSFER_FROM_TC"] = "ETH:TRANSFER:OUT"; | ||
TransactionType2["AVAX_APPROVAL"] = "AVAX:APPROVAL"; | ||
TransactionType2["AVAX_STATUS"] = "AVAX:STATUS"; | ||
TransactionType2["AVAX_TRANSFER_TO_TC"] = "AVAX:TRANSFER:IN"; | ||
TransactionType2["AVAX_TRANSFER_FROM_TC"] = "AVAX:TRANSFER:OUT"; | ||
TransactionType2["BSC_APPROVAL"] = "BSC:APPROVAL"; | ||
TransactionType2["BSC_STATUS"] = "BSC:STATUS"; | ||
TransactionType2["BSC_TRANSFER_TO_TC"] = "BSC:TRANSFER:IN"; | ||
TransactionType2["BSC_TRANSFER_FROM_TC"] = "BSC:TRANSFER:OUT"; | ||
TransactionType2["APPROVAL"] = "APPROVAL"; | ||
TransactionType2["STATUS"] = "STATUS"; | ||
TransactionType2["TRANSFER_TO_TC"] = "TRANSFER:IN"; | ||
TransactionType2["TRANSFER_FROM_TC"] = "TRANSFER:OUT"; | ||
TransactionType2["UNSUPPORTED"] = "UNSUPPORTED"; | ||
TransactionType2["TC_LENDING"] = "TC:LENDING"; | ||
})(TransactionType || (TransactionType = {})); | ||
var TxStatus; | ||
(function(TxStatus2) { | ||
TxStatus2["PENDING"] = "pending"; | ||
TxStatus2["SUCCESS"] = "success"; | ||
TxStatus2["CANCELLED"] = "cancelled"; | ||
TxStatus2["REFUNDED"] = "refunded"; | ||
TxStatus2["REPLACED"] = "replaced"; | ||
TxStatus2["ERROR"] = "error"; | ||
TxStatus2["UNKNOWN"] = "unknown"; | ||
TxStatus2["NOT_STARTED"] = "not_started"; | ||
TxStatus2["NOT_FOUND"] = "not_found"; | ||
TxStatus2["RETRIES_EXCEEDED"] = "retries_exceeded"; | ||
TxStatus2["STREAMING"] = "streaming"; | ||
})(TxStatus || (TxStatus = {})); | ||
var StreamingSwapProgressStatus; | ||
(function(StreamingSwapProgressStatus2) { | ||
StreamingSwapProgressStatus2[StreamingSwapProgressStatus2["NOT_STARTED"] = 0] = "NOT_STARTED"; | ||
StreamingSwapProgressStatus2[StreamingSwapProgressStatus2["SUCCESS"] = 1] = "SUCCESS"; | ||
StreamingSwapProgressStatus2[StreamingSwapProgressStatus2["REFUNDED"] = 2] = "REFUNDED"; | ||
})(StreamingSwapProgressStatus || (StreamingSwapProgressStatus = {})); | ||
var ERROR_CODE; | ||
(function(ERROR_CODE2) { | ||
ERROR_CODE2["INVALID_INPUT_PARAMETERS"] = "1000"; | ||
ERROR_CODE2["UNKNOWN_PROVIDERS"] = "1001"; | ||
ERROR_CODE2["CANNOT_FIND_INBOUND_ADDRESS"] = "1002"; | ||
ERROR_CODE2["NO_INBOUND_ADDRESSES"] = "1003"; | ||
ERROR_CODE2["CHAIN_HALTED_OR_UNSUPPORTED"] = "1004"; | ||
ERROR_CODE2["MISSING_INPUT_PARAMETER"] = "1005"; | ||
ERROR_CODE2["INVALID_TYPE_GENERIC"] = "1100"; | ||
ERROR_CODE2["INVALID_NUMBER_STRING"] = "1101"; | ||
ERROR_CODE2["INVALID_NUMBER"] = "1102"; | ||
ERROR_CODE2["INVALID_BOOLEAN"] = "1103"; | ||
ERROR_CODE2["INVALID_OBJECT"] = "1104"; | ||
ERROR_CODE2["INVALID_ARRAY"] = "1105"; | ||
ERROR_CODE2["SELL_AMOUNT_MUST_BE_POSITIVE_INTEGER"] = "2000"; | ||
ERROR_CODE2["SELL_BUY_ASSETS_ARE_THE_SAME"] = "2001"; | ||
ERROR_CODE2["MISSING_SOURCE_ADDRESS_FOR_SYNTH"] = "2002"; | ||
ERROR_CODE2["AFF_ADDRESS_AND_BPS_OR_NEITHER"] = "2003"; | ||
ERROR_CODE2["AFF_ADDRESS_TOO_LONG"] = "2004"; | ||
ERROR_CODE2["AFF_BPS_INTEGER_MAX_500"] = "2005"; | ||
ERROR_CODE2["SOURCE_ADDRESS_INVALID_FOR_SELL_CHAIN"] = "2006"; | ||
ERROR_CODE2["DESTINATION_ADDRESS_INVALID_FOR_BUY_CHAIN"] = "2007"; | ||
ERROR_CODE2["PREFERRED_PROVIDER_NOT_SUPPORTED"] = "2008"; | ||
ERROR_CODE2["DESTINATION_ADDRESS_SMART_CONTRACT"] = "2009"; | ||
ERROR_CODE2["BUY_AMOUNT_MUST_BE_POSITIVE_INTEGER"] = "2010"; | ||
ERROR_CODE2["SOURCE_ADDRESS_SMART_CONTRACT"] = "2011"; | ||
ERROR_CODE2["SWAP_AMOUNT_TOO_LOW"] = "2012"; | ||
ERROR_CODE2["INVALID_PROVIDER"] = "2100"; | ||
ERROR_CODE2["MISSING_CROSS_CHAIN_PROVIDER"] = "2101"; | ||
ERROR_CODE2["MISSING_AVAX_PROVIDER"] = "2102"; | ||
ERROR_CODE2["MISSING_BSC_PROVIDER"] = "2103"; | ||
ERROR_CODE2["MISSING_ETH_PROVIDER"] = "2104"; | ||
ERROR_CODE2["INVALID_PROVIDER_FOR_SWAP_OUT"] = "2105"; | ||
ERROR_CODE2["MISSING_ARB_PROVIDER"] = "2106"; | ||
ERROR_CODE2["INVALID_CHAIN"] = "2200"; | ||
ERROR_CODE2["INVALID_ASSET"] = "2201"; | ||
ERROR_CODE2["INVALID_ASSET_IDENTIFIER"] = "2202"; | ||
ERROR_CODE2["UNSUPPORTED_CHAIN"] = "2204"; | ||
ERROR_CODE2["UNSUPPORTED_ASSET"] = "2203"; | ||
ERROR_CODE2["UNSUPPORTED_ASSET_FOR_SWAPOUT"] = "2205"; | ||
ERROR_CODE2["INVALID_SOURCE_ADDRESS"] = "2300"; | ||
ERROR_CODE2["INVALID_DESTINATION_ADDRESS"] = "2301"; | ||
ERROR_CODE2["THORNODE_QUOTE_GENERIC_ERROR"] = "3000"; | ||
ERROR_CODE2["NOT_ENOUGH_SYNTH_BALANCE"] = "3001"; | ||
ERROR_CODE2["SYNTH_MINTING_CAP_REACHED"] = "3002"; | ||
ERROR_CODE2["INVALID_QUOTE_MODE"] = "4000"; | ||
ERROR_CODE2["NO_QUOTES"] = "4001"; | ||
ERROR_CODE2["SERVICE_UNAVAILABLE_GENERIC"] = "5000"; | ||
ERROR_CODE2["MISSING_GAS_DATA_GENERIC"] = "5100"; | ||
ERROR_CODE2["MISSING_TOKEN_INFO_GENERIC"] = "5200"; | ||
ERROR_CODE2["CANT_FIND_TOKEN_LIST"] = "5201"; | ||
ERROR_CODE2["NO_PRICE"] = "5202"; | ||
ERROR_CODE2["PRICE_IS_STALE"] = "5203"; | ||
ERROR_CODE2["ADDRESS_NOT_WHITELISTED"] = "6000"; | ||
ERROR_CODE2["ADDRESS_ALREADY_CLAIMED"] = "6001"; | ||
ERROR_CODE2["TEMPORARY_ERROR"] = "9999"; | ||
})(ERROR_CODE || (ERROR_CODE = {})); | ||
var ERROR_MODULE; | ||
(function(ERROR_MODULE2) { | ||
ERROR_MODULE2["HEALTH_CONTROLLER"] = "1000"; | ||
ERROR_MODULE2["LIQUIDITY_CONTROLLER"] = "1001"; | ||
ERROR_MODULE2["PROVIDER_CONTROLLER"] = "1002"; | ||
ERROR_MODULE2["QUOTE_CONTROLLER"] = "1003"; | ||
ERROR_MODULE2["SWAP_CONTROLLER"] = "1004"; | ||
ERROR_MODULE2["UTIL_CONTROLLER"] = "1005"; | ||
ERROR_MODULE2["AIRDROP_CONTROLLER"] = "1006"; | ||
ERROR_MODULE2["PROVIDER"] = "2000"; | ||
ERROR_MODULE2["ASSET"] = "2001"; | ||
ERROR_MODULE2["TOKEN_LIST"] = "2002"; | ||
ERROR_MODULE2["QUOTE"] = "2100"; | ||
ERROR_MODULE2["QUOTE_TXN_DETAILS"] = "2101"; | ||
ERROR_MODULE2["THORCHAIN_PROVIDER"] = "3000"; | ||
ERROR_MODULE2["UNISWAPV2_ETH_PROVIDER"] = "3001"; | ||
ERROR_MODULE2["UNISWAPV3_ETH_PROVIDER"] = "3002"; | ||
ERROR_MODULE2["SUSHISWAP_ETH_PROVIDER"] = "3003"; | ||
ERROR_MODULE2["PANCAKESWAP_BSC_PROVIDER"] = "3004"; | ||
ERROR_MODULE2["PANCAKESWAP_ETH_PROVIDER"] = "3005"; | ||
ERROR_MODULE2["ONEINCH_ETH_PROVIDER"] = "3006"; | ||
ERROR_MODULE2["ONEINCH_BSC_PROVIDER"] = "3007"; | ||
ERROR_MODULE2["ONEINCH_AVAX_PROVIDER"] = "3008"; | ||
ERROR_MODULE2["ZEROX_ETH_PROVIDER"] = "3009"; | ||
ERROR_MODULE2["WOOFI_AVAX_PROVIDER"] = "3010"; | ||
ERROR_MODULE2["PANGOLIN_AVAX_PROVIDER"] = "3011"; | ||
ERROR_MODULE2["TRADERJOE_AVAX_PROVIDER"] = "3012"; | ||
ERROR_MODULE2["KYBER_ETH_PROVIDER"] = "3013"; | ||
ERROR_MODULE2["KYBER_AVAX_PROVIDER"] = "3014"; | ||
ERROR_MODULE2["WOOFI_BSC_PROVIDER"] = "3015"; | ||
ERROR_MODULE2["STARGATE_PROVIDER"] = "3016"; | ||
ERROR_MODULE2["PROVIDER_UTIL"] = "4000"; | ||
ERROR_MODULE2["TXN_DETAILS"] = "5000"; | ||
ERROR_MODULE2["AIRDROP_UTIL"] = "6000"; | ||
})(ERROR_MODULE || (ERROR_MODULE = {})); | ||
var ERROR_TYPE; | ||
(function(ERROR_TYPE2) { | ||
ERROR_TYPE2["VALIDATION_ERROR"] = "VALIDATION_ERROR"; | ||
ERROR_TYPE2["REQUEST_PARAMETER_ERROR"] = "REQUEST_PARAMETER_ERROR"; | ||
ERROR_TYPE2["RESPONSE_PARSING_ERROR"] = "RESPONSE_PARSING_ERROR"; | ||
ERROR_TYPE2["UNSUPPORTED"] = "UNSUPPORTED"; | ||
ERROR_TYPE2["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED"; | ||
ERROR_TYPE2["INCOMPATIBLE_ASSETS_OPERATIONS"] = "INCOMPATIBLE_ASSETS_OPERATIONS"; | ||
ERROR_TYPE2["SERVICE_UNAVAILABLE"] = "SERVICE_UNAVAILABLE"; | ||
ERROR_TYPE2["DOWN_FOR_MAINTENANCE"] = "DOWN_FOR_MAINTENANCE"; | ||
ERROR_TYPE2["MISSING_INBOUND_INFO"] = "MISSING_INBOUND_INFO"; | ||
ERROR_TYPE2["QUOTE_FETCHING_ERROR"] = "QUOTE_FETCHING_ERROR"; | ||
ERROR_TYPE2["AIRDROP_ERROR"] = "AIRDROP_ERROR"; | ||
ERROR_TYPE2["UNHANDLED_ERROR"] = "UNHANDLED_ERROR"; | ||
})(ERROR_TYPE || (ERROR_TYPE = {})); | ||
var ApiV1ErrorSchema = z.object({ | ||
status: z.number(), | ||
type: z.nativeEnum(ERROR_TYPE), | ||
code: z.nativeEnum(ERROR_CODE), | ||
module: z.nativeEnum(ERROR_MODULE), | ||
complete: z.string(), | ||
identifier: z.string(), | ||
message: z.string() | ||
}); | ||
// src/thorswapApi/endpoints.ts | ||
function getCachedPrices({ tokens, ...options }) { | ||
const body = new URLSearchParams; | ||
const filteredTokens = tokens.filter((token, index, sourceArr) => sourceArr.findIndex((t) => t === token) === index); | ||
for (const token of filteredTokens) { | ||
body.append("tokens", JSON.stringify(token)); | ||
} | ||
if (options.metadata) | ||
body.append("metadata", "true"); | ||
if (options.lookup) | ||
body.append("lookup", "true"); | ||
if (options.sparkline) | ||
body.append("sparkline", "true"); | ||
return APIV1RequestClient.post(`${baseUrlV1}/tokenlist/cached-price`, { | ||
body: body.toString(), | ||
headers: { "Content-Type": "application/x-www-form-urlencoded" } | ||
}); | ||
} | ||
function getSwapQuote(searchParams) { | ||
return APIV1RequestClient.get(`${baseUrlV1}/aggregator/tokens/quote`, { | ||
searchParams | ||
}); | ||
} | ||
function getBorrowQuote(searchParams) { | ||
return APIV1RequestClient.get(`${baseUrlV1}/aggregator/lending/borrow`, { | ||
searchParams | ||
}); | ||
} | ||
function getRepayQuote(searchParams) { | ||
return APIV1RequestClient.get(`${baseUrlV1}/aggregator/lending/repay`, { | ||
searchParams | ||
}); | ||
} | ||
function getLendingAssets() { | ||
return RequestClient3.get(`${baseUrlV1}/aggregator/lending/assets`); | ||
} | ||
function getLoans(searchParams) { | ||
return RequestClient3.get(`${baseUrlV1}/aggregator/lending/loans`, { | ||
searchParams | ||
}); | ||
} | ||
function getGasRates() { | ||
return RequestClient3.get(`${baseUrlV1}/resource-worker/gasPrice/getAll`); | ||
} | ||
function getTxnDetails(txHash) { | ||
return RequestClient3.get(`${baseUrlV1}/apiusage/v2/txn`, { | ||
searchParams: { txHash } | ||
}); | ||
} | ||
function getTokenListProviders() { | ||
return RequestClient3.get(`${baseUrlV1}/tokenlist/providers`); | ||
} | ||
var baseUrlV1 = "https://api.thorswap.finance"; | ||
var APIV1RequestClient = RequestClient3.extend({ | ||
hooks: { | ||
afterResponse: [ | ||
async (_request, _options, response) => { | ||
const body = await response.json(); | ||
try { | ||
const errorBody = ApiV1ErrorSchema.parse(body); | ||
return new Response(JSON.stringify(errorBody), { status: 200 }); | ||
} catch (_error) { | ||
return response; | ||
} | ||
} | ||
] | ||
} | ||
}); | ||
// src/thorswapApiV2/endpoints.ts | ||
var exports_endpoints4 = {}; | ||
__export(exports_endpoints4, { | ||
getTrackerDetails: () => { | ||
{ | ||
return getTrackerDetails; | ||
} | ||
}, | ||
getSwapQuoteV2: () => { | ||
{ | ||
return getSwapQuoteV2; | ||
} | ||
} | ||
}); | ||
import { | ||
QuoteResponseSchema, | ||
RequestClient as RequestClient4, | ||
SwapKitError | ||
} from "@swapkit/helpers"; | ||
function getTrackerDetails(payload) { | ||
return RequestClient4.post(`${baseUrl3}/track`, { body: JSON.stringify(payload) }); | ||
} | ||
function getSwapQuoteV2(searchParams, isDev = false) { | ||
const afterResponse = [ | ||
async (_request, _options, response) => { | ||
const body = await response.json(); | ||
try { | ||
QuoteResponseSchema.parse(body); | ||
} catch (error) { | ||
throw new SwapKitError("api_v2_invalid_response", error); | ||
} | ||
return response; | ||
} | ||
]; | ||
const kyClient = RequestClient4.extend({ hooks: { afterResponse } }); | ||
return kyClient.post(`${isDev ? baseUrlDev : baseUrl3}/quote`, { | ||
json: searchParams | ||
}); | ||
} | ||
var baseUrl3 = "https://api.swapkit.dev"; | ||
var baseUrlDev = "https://dev-api.swapkit.dev"; | ||
// src/thorswapStatic/endpoints.ts | ||
var exports_endpoints5 = {}; | ||
__export(exports_endpoints5, { | ||
getTokenList: () => { | ||
{ | ||
return getTokenList; | ||
} | ||
}, | ||
getLogoForAsset: () => { | ||
{ | ||
return getLogoForAsset; | ||
} | ||
} | ||
}); | ||
import {RequestClient as RequestClient5} from "@swapkit/helpers"; | ||
function getTokenList(tokenListName) { | ||
return RequestClient5.get(`${baseUrl4}/token-list/${tokenListName}.json`); | ||
} | ||
function getLogoForAsset(assetString) { | ||
return `${baseUrl4}/token-list/images/${assetString.toLowerCase()}.png`; | ||
} | ||
var baseUrl4 = "https://static.thorswap.finance"; | ||
// src/index.ts | ||
var SwapKitApi = { | ||
...exports_endpoints, | ||
...exports_endpoints2, | ||
...exports_endpoints3, | ||
...exports_endpoints4, | ||
...exports_endpoints5 | ||
}; | ||
export { | ||
TxStatus, | ||
TransactionType, | ||
SwapKitApi, | ||
StreamingSwapProgressStatus, | ||
ERROR_TYPE, | ||
ERROR_MODULE, | ||
ERROR_CODE, | ||
ApiV1ErrorSchema | ||
}; | ||
//# debugId=CDB82025C5831F1264756e2164756e21 | ||
//# debugId=328FF35413B218D764756E2164756E21 |
{ | ||
"author": "swapkit-oss", | ||
"dependencies": { | ||
"@swapkit/helpers": "0.0.0-nightly-20240607015403", | ||
"@swapkit/helpers": "0.0.0-nightly-20240718103505", | ||
"zod": "3.23.8" | ||
}, | ||
"devDependencies": { | ||
"bun-types": "1.1.8" | ||
"ky": "1.4.0" | ||
}, | ||
@@ -19,6 +19,2 @@ "description": "SwapKit - API", | ||
"name": "@swapkit/api", | ||
"peerDependencies": { | ||
"@swapkit/helpers": "0.0.0-nightly-20240607015403", | ||
"zod": "3.23.8" | ||
}, | ||
"react-native": "./src/index.ts", | ||
@@ -31,6 +27,6 @@ "repository": { | ||
"build": "bun run ./build.ts", | ||
"clean": "rm -rf .turbo dist node_modules *.tsbuildinfo", | ||
"lint": "biome check --apply ./src", | ||
"clean": "rm -rf dist node_modules *.tsbuildinfo", | ||
"lint": "biome check --write ./src", | ||
"test": "echo 'bun test'", | ||
"test:coverage": "echo 'bun test --coverage'", | ||
"test:coverage": "bun test --coverage", | ||
"type-check": "tsc --noEmit" | ||
@@ -40,3 +36,3 @@ }, | ||
"types": "./src/index.ts", | ||
"version": "0.0.0-nightly-20240607015403" | ||
"version": "0.0.0-nightly-20240718103505" | ||
} |
import * as microgardEndpoints from "./microgard/endpoints.ts"; | ||
import { mayachainMidgard, thorchainMidgard } from "./midgard/endpoints.ts"; | ||
import * as thornodeEndpoints from "./thornode/endpoints.ts"; | ||
@@ -18,2 +19,4 @@ import * as thorswapApiEndpoints from "./thorswapApi/endpoints.ts"; | ||
...thorswapStaticEndpoints, | ||
thorchainMidgard, | ||
mayachainMidgard, | ||
}; |
@@ -1,3 +0,9 @@ | ||
import { RequestClient } from "@swapkit/helpers"; | ||
import type { PoolDetail, PoolPeriod, THORNameDetails } from "./types.ts"; | ||
import { | ||
AssetValue, | ||
BaseDecimal, | ||
type Chain, | ||
RequestClient, | ||
SwapKitNumber, | ||
} from "@swapkit/helpers"; | ||
import type { LiquidityPositionRaw, PoolDetail, PoolPeriod, THORNameDetails } from "./types.ts"; | ||
@@ -21,1 +27,55 @@ const baseUrl = "https://mu.thorswap.net"; | ||
} | ||
export function getLiquidityPositionsRaw(addresses: string[]) { | ||
return RequestClient.get<LiquidityPositionRaw[]>( | ||
`${baseUrl}/fullmember?address=${addresses.join(",")}`, | ||
); | ||
} | ||
export async function getTNSChainAddress({ chain, tns }: { chain: Chain; tns: string }) { | ||
const tnsDetails = await getTHORNameDetails(tns); | ||
return tnsDetails?.entries?.find((e) => e.chain.toLowerCase() === chain.toLowerCase())?.address; | ||
} | ||
export async function getLiquidityPositions(addresses: string[]) { | ||
const rawLiquidityPositions = await getLiquidityPositionsRaw(addresses); | ||
return rawLiquidityPositions.map((rawPosition) => ({ | ||
assetRegisteredAddress: rawPosition.assetAddress, | ||
asset: AssetValue.from({ | ||
asset: rawPosition.pool, | ||
value: rawPosition.assetAdded, | ||
fromBaseDecimal: BaseDecimal.THOR, | ||
}), | ||
assetPending: AssetValue.from({ | ||
asset: rawPosition.pool, | ||
value: rawPosition.assetPending, | ||
fromBaseDecimal: BaseDecimal.THOR, | ||
}), | ||
assetWithdrawn: AssetValue.from({ | ||
asset: rawPosition.pool, | ||
value: rawPosition.assetWithdrawn, | ||
fromBaseDecimal: BaseDecimal.THOR, | ||
}), | ||
runeRegisteredAddress: rawPosition.runeAddress, | ||
rune: AssetValue.from({ | ||
asset: "THOR.RUNE", | ||
value: rawPosition.runeAdded, | ||
fromBaseDecimal: BaseDecimal.THOR, | ||
}), | ||
runePending: AssetValue.from({ | ||
asset: "THOR.RUNE", | ||
value: rawPosition.runePending, | ||
fromBaseDecimal: BaseDecimal.THOR, | ||
}), | ||
runeWithdrawn: AssetValue.from({ | ||
asset: "THOR.RUNE", | ||
value: rawPosition.runeWithdrawn, | ||
fromBaseDecimal: BaseDecimal.THOR, | ||
}), | ||
poolShare: new SwapKitNumber(rawPosition.sharedUnits).div(rawPosition.poolUnits), | ||
dateLastAdded: rawPosition.dateLastAdded, | ||
dateFirstAdded: rawPosition.dateFirstAdded, | ||
})); | ||
} |
@@ -0,1 +1,3 @@ | ||
import type { AssetValue, SwapKitNumber } from "@swapkit/helpers"; | ||
export type THORNameDetails = { | ||
@@ -27,1 +29,33 @@ entries: Array<{ address: string; chain: string }>; | ||
}; | ||
export type LiquidityPositionRaw = { | ||
assetAdded: string; | ||
assetAddress: string; | ||
assetPending: string; | ||
assetWithdrawn: string; | ||
dateFirstAdded: string; | ||
dateLastAdded: string; | ||
pool: string; | ||
poolAssetDepth: string; | ||
poolRuneDepth: string; | ||
poolUnits: string; | ||
runeAdded: string; | ||
runeAddress: string; | ||
runePending: string; | ||
runeWithdrawn: string; | ||
sharedUnits: string; | ||
}; | ||
export type LiquidityPosition = { | ||
asset: AssetValue; | ||
assetPending: AssetValue; | ||
assetWithdrawn: AssetValue; | ||
assetAddress: string; | ||
native: AssetValue; | ||
nativeAddress: string; | ||
nativePending: AssetValue; | ||
nativeWithdrawn: AssetValue; | ||
dateFirstAdded: string; | ||
dateLastAdded: string; | ||
poolShare: SwapKitNumber; | ||
}; |
@@ -1,2 +0,2 @@ | ||
import { RequestClient } from "@swapkit/helpers"; | ||
import { AssetValue, RequestClient } from "@swapkit/helpers"; | ||
import type { | ||
@@ -7,2 +7,3 @@ InboundAddressesItem, | ||
NodeItem, | ||
THORNodeTNSDetails, | ||
ThornodeEndpointParams, | ||
@@ -43,1 +44,13 @@ } from "./types.ts"; | ||
} | ||
export function getTHORNodeTNSDetails(params: ThornodeEndpointParams & { name: string }) { | ||
return RequestClient.get<THORNodeTNSDetails>(`${baseUrl(params)}/thorname/${params.name}`); | ||
} | ||
export async function getTNSPreferredAsset(tns: string) { | ||
const tnsDetails = await getTHORNodeTNSDetails({ name: tns }); | ||
if (!tnsDetails.preferred_asset || tnsDetails.preferred_asset === ".") return undefined; | ||
return AssetValue.from({ asyncTokenLookup: true, asset: tnsDetails.preferred_asset }); | ||
} |
@@ -6,2 +6,14 @@ export type ThornodeEndpointParams = { | ||
export type THORNodeTNSDetails = { | ||
name: string; | ||
expire_block_height: number; | ||
owner: string; | ||
preferred_asset: string; | ||
affiliate_collector_rune: string; | ||
aliases: { | ||
chain: string; | ||
address: string; | ||
}[]; | ||
}; | ||
export type InboundAddressesItem = { | ||
@@ -71,4 +83,2 @@ address: string; | ||
HALTBCHTRADING: number; | ||
HALTBNBCHAIN: number; | ||
HALTBNBTRADING: number; | ||
HALTBSCCHAIN: number; | ||
@@ -91,3 +101,2 @@ HALTBSCTRADING: number; | ||
HALTSIGNINGBCH: number; | ||
HALTSIGNINGBNB: number; | ||
HALTSIGNINGBSC: number; | ||
@@ -140,3 +149,2 @@ HALTSIGNINGBTC: number; | ||
PAUSELPBCH: number; | ||
PAUSELPBNB: number; | ||
PAUSELPBSC: number; | ||
@@ -154,5 +162,2 @@ PAUSELPBTC: number; | ||
"POL-BCH-BCH": number; | ||
"POL-BNB-BNB": number; | ||
"POL-BNB-BUSD-BD1": number; | ||
"POL-BSC-BNB": number; | ||
"POL-BSC-USDC-0X8AC76A51CC950D9822D68B83FE1AD97B32CD580D": number; | ||
@@ -174,18 +179,2 @@ "POL-BTC-BTC": number; | ||
PREFERREDASSETOUTBOUNDFEEMULTIPLIER: number; | ||
"RAGNAROK-BNB-AVA-645": number; | ||
"RAGNAROK-BNB-BAT-07A": number; | ||
"RAGNAROK-BNB-BNB": number; | ||
"RAGNAROK-BNB-BTCB-1DE": number; | ||
"RAGNAROK-BNB-BUSD-BD1": number; | ||
"RAGNAROK-BNB-CAKE-435": number; | ||
"RAGNAROK-BNB-EQL-586": number; | ||
"RAGNAROK-BNB-ETH-1C9": number; | ||
"RAGNAROK-BNB-ETHBULL-D33": number; | ||
"RAGNAROK-BNB-NEXO-A84": number; | ||
"RAGNAROK-BNB-RUNE": number; | ||
"RAGNAROK-BNB-TWT-8C2": number; | ||
"RAGNAROK-BNB-USDT-6D8": number; | ||
"RAGNAROK-BNB-XRP-BF2": number; | ||
"RAGNAROK-TERRA-LUNA": number; | ||
"RAGNAROK-TERRA-UST": number; | ||
RESCHEDULECOALESCEBLOCKS: number; | ||
@@ -205,3 +194,2 @@ SAVERSSTREAMINGSWAPSINTERVAL: number; | ||
STOPSOLVENCYCHECKAVAX: number; | ||
STOPSOLVENCYCHECKBNB: number; | ||
STOPSOLVENCYCHECKBSC: number; | ||
@@ -217,3 +205,2 @@ STOPSOLVENCYCHECKDOGE: number; | ||
"TORANCHOR-AVAX-USDT-0X9702230A8EA53601F5CD2DC00FDBC13D4DF4A8C7": number; | ||
"TORANCHOR-BNB-BUSD-BD1": number; | ||
"TORANCHOR-BSC-USDC-0X8AC76A51CC950D9822D68B83FE1AD97B32CD580D": number; | ||
@@ -220,0 +207,0 @@ "TORANCHOR-ETH-DAI-0X6B175474E89094C44DA98B954EEDEAC495271D0F": number; |
@@ -24,15 +24,9 @@ import { RequestClient } from "@swapkit/helpers"; | ||
export const APIV1RequestClient = RequestClient.extend({ | ||
hooks: { | ||
afterResponse: [ | ||
async (_request, _options, response) => { | ||
const body = await response.json(); | ||
try { | ||
const errorBody = ApiV1ErrorSchema.parse(body); | ||
return new Response(JSON.stringify(errorBody), { status: 200 }); | ||
} catch (_error) { | ||
return response; | ||
} | ||
}, | ||
], | ||
responseHandler: (response) => { | ||
try { | ||
const errorBody = ApiV1ErrorSchema.parse(response); | ||
return errorBody; | ||
} catch (_error) { | ||
return response; | ||
} | ||
}, | ||
@@ -39,0 +33,0 @@ }); |
@@ -337,5 +337,2 @@ import type { Chain, LedgerErrorCode, QuoteMode } from "@swapkit/helpers"; | ||
SWAP_GAIA_TO_TC = "SWAP:GAIA-TC", | ||
// BNB | ||
SWAP_TC_TO_BNB = "SWAP:TC-BNB", | ||
SWAP_BNB_TO_TC = "SWAP:BNB-TC", | ||
// BTC | ||
@@ -442,2 +439,3 @@ SWAP_TC_TO_BTC = "SWAP:TC-BTC", | ||
lastLegEffectiveSlipPercentage: number; | ||
slippagePercentage: number; | ||
priceProtectionDetected: boolean; | ||
@@ -444,0 +442,0 @@ priceProtectionRequired: boolean; |
import { | ||
type ProviderName, | ||
type QuoteRequest as QuoteRequestV2, | ||
@@ -8,4 +9,8 @@ type QuoteResponse, | ||
} from "@swapkit/helpers"; | ||
import type { AfterResponseHook } from "ky"; | ||
import type { TrackerParams, TrackerResponse } from "./types"; | ||
import type { | ||
TokenListProvidersResponse, | ||
TokensResponseV2, | ||
TrackerParams, | ||
TrackerResponse, | ||
} from "./types"; | ||
@@ -19,20 +24,25 @@ const baseUrl = "https://api.swapkit.dev"; | ||
export function getSwapQuoteV2(searchParams: QuoteRequestV2, isDev = false) { | ||
const afterResponse: AfterResponseHook[] = [ | ||
async (_request, _options, response) => { | ||
const body = await response.json(); | ||
try { | ||
QuoteResponseSchema.parse(body); | ||
} catch (error) { | ||
throw new SwapKitError("api_v2_invalid_response", error); | ||
} | ||
return response; | ||
export async function getSwapQuoteV2(searchParams: QuoteRequestV2, isDev = false) { | ||
const response = await RequestClient.post<QuoteResponse>( | ||
`${isDev ? baseUrlDev : baseUrl}/quote`, | ||
{ | ||
json: searchParams, | ||
}, | ||
]; | ||
); | ||
const kyClient = RequestClient.extend({ hooks: { afterResponse } }); | ||
try { | ||
return QuoteResponseSchema.parse(response); | ||
} catch (error) { | ||
throw new SwapKitError("api_v2_invalid_response", error); | ||
} | ||
} | ||
return kyClient.post<QuoteResponse>(`${isDev ? baseUrlDev : baseUrl}/quote`, { | ||
json: searchParams, | ||
}); | ||
export async function getTokenListProvidersV2() { | ||
const response = await RequestClient.get<TokenListProvidersResponse>(`${baseUrl}/providers`); | ||
return response; | ||
} | ||
export function getTokenListV2(provider: ProviderName) { | ||
const response = RequestClient.get<TokensResponseV2>(`${baseUrl}/tokens?provider=${provider}`); | ||
return response; | ||
} |
@@ -172,2 +172,42 @@ import { type AssetValue, Chain, ChainId } from "@swapkit/helpers"; | ||
type TokenProviderVersion = { | ||
major: number; | ||
minor: number; | ||
patch: number; | ||
}; | ||
export type TokenListProvidersResponse = Array<{ | ||
provider: ProviderName; | ||
name: string; | ||
timestamp: string; | ||
version: TokenProviderVersion; | ||
keywords: string[]; | ||
count: number; | ||
url: string; | ||
}>; | ||
export type TokensResponseV2 = { | ||
chainId: ChainId; | ||
count: number; | ||
keywords: string[]; | ||
name: string; | ||
provider: ProviderName; | ||
timestamp: string; | ||
tokens: TokenV2[]; | ||
version: TokenProviderVersion; | ||
}; | ||
export type TokenV2 = { | ||
address?: string; | ||
chain: string; | ||
chainId: string; | ||
decimals: number; | ||
extensions?: {}; | ||
identifier: string; | ||
logoURI: string; | ||
name?: string; | ||
symbol: string; | ||
ticker: string; | ||
}; | ||
export interface TransactionProps { | ||
@@ -174,0 +214,0 @@ chainId: ChainId; |
@@ -1,6 +0,6 @@ | ||
import { RequestClient } from "@swapkit/helpers"; | ||
import { AssetValue, RequestClient, getChainIdentifier } from "@swapkit/helpers"; | ||
import type { TokensResponse } from "./types.ts"; | ||
const baseUrl = "https://static.thorswap.finance"; | ||
const baseUrl = "https://static.thorswap.net"; | ||
@@ -14,1 +14,7 @@ export function getTokenList(tokenListName: string) { | ||
} | ||
export function getChainLogoForAsset(assetString: string) { | ||
const { chain } = AssetValue.from({ asset: assetString }); | ||
const chainIdentifier = getChainIdentifier(chain).toLowerCase(); | ||
return `${baseUrl}/token-list/images/${chainIdentifier}.png`; | ||
} |
Sorry, the diff of this file is not supported yet
109875
2
17
1647
+ Added@swapkit/helpers@0.0.0-nightly-20240718103505(transitive)
+ Added@swapkit/tokens@1.0.3(transitive)
+ Addedpicocolors@1.0.1(transitive)
- Removed@swapkit/helpers@0.0.0-nightly-20240607015403(transitive)
- Removed@swapkit/tokens@0.0.0-nightly-20240607015403(transitive)
- Removedky@1.2.3(transitive)