@naviprotocol/astros-bridge-sdk 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { Chain, Token, BridgeSwapOptions, BridgeSwapQuote, BridgeSwapTransaction, WalletConnection } from './types';
2
- import { config } from './config';
1
+ import { Chain, Token, BridgeSwapOptions, BridgeSwapQuote, BridgeSwapTransaction, WalletConnection } from './types.js';
2
+ import { config } from './config.js';
3
3
 
4
4
  export { config };
5
- export * from './types';
5
+ export * from './types.js';
6
6
  /**
7
7
  * Retrieves a list of supported blockchain networks for bridging
8
8
  * @returns Promise<Chain[]> - Array of supported blockchain networks
@@ -64,7 +64,7 @@ async function y(a, e = 1, t = 10) {
64
64
  })).data.data;
65
65
  }
66
66
  async function T(a, e, t, o, c) {
67
- const i = (/* @__PURE__ */ new Date()).toISOString(), d = await (await import("./mayan-yp610fKK.js")).swap(a, e, t, o, c), g = (/* @__PURE__ */ new Date()).toISOString(), p = {
67
+ const i = (/* @__PURE__ */ new Date()).toISOString(), d = await (await import("./mayan.js")).swap(a, e, t, o, c), g = (/* @__PURE__ */ new Date()).toISOString(), p = {
68
68
  address: a.from_token.address,
69
69
  symbol: a.from_token.symbol,
70
70
  decimals: a.from_token.decimals
@@ -109,4 +109,4 @@ export {
109
109
  u as searchSupportTokens,
110
110
  T as swap
111
111
  };
112
- //# sourceMappingURL=index.esm.js.map
112
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/config.ts","../src/index.ts"],"sourcesContent":["/**\n * Bridge SDK Configuration Management\n *\n * This module provides configuration management for the Astros bridge SDK.\n * It handles base URL and API key management for cross-chain bridge API requests,\n * and provides a configured Axios instance for HTTP requests.\n *\n * @module BridgeConfig\n */\n\nimport axios from 'axios'\n\n/**\n * Configuration object for the bridge SDK\n *\n * Contains the base URL for the bridge API and the API key for authentication.\n */\nexport const BridgeConfig = {\n /** Base URL for the bridge API */\n baseUrl: 'https://open-aggregator-api.naviprotocol.io',\n /** API key for authentication (optional) */\n apiKey: ''\n}\n\n/**\n * Axios instance configured for bridge API requests\n *\n * This instance is pre-configured with the base URL and timeout settings.\n */\nexport const apiInstance = axios.create({\n baseURL: BridgeConfig.baseUrl,\n timeout: 30000\n})\n\n/**\n * Updates the bridge SDK configuration\n *\n * This function allows runtime updates to the configuration object,\n * including the base URL and API key. It also updates the Axios instance\n * to use the new configuration values.\n *\n * @param newConfig - Partial configuration object with new values to merge\n */\nexport function config(newConfig: Partial<typeof BridgeConfig>) {\n Object.assign(BridgeConfig, newConfig)\n apiInstance.defaults.baseURL = BridgeConfig.baseUrl\n if (BridgeConfig.apiKey) {\n apiInstance.defaults.headers.common['x-navi-token'] = BridgeConfig.apiKey\n } else {\n delete apiInstance.defaults.headers.common['x-navi-token']\n }\n}\n","/**\n * Astros Bridge SDK Package - Main Entry Point\n *\n * This package provides cross-chain bridge functionality for the Sui blockchain.\n * It enables users to transfer tokens between different blockchain networks through\n * various bridge providers like Mayan.\n *\n * @module AstrosBridgeSDK\n */\n\nimport {\n Chain,\n Token,\n BridgeSwapOptions,\n BridgeSwapQuote,\n BridgeSwapTransaction,\n WalletConnection\n} from './types'\nimport { apiInstance, config } from './config'\n\n// Export configuration for the bridge SDK\nexport { config }\n\nexport * from './types'\n\n/**\n * Retrieves a list of supported blockchain networks for bridging\n * @returns Promise<Chain[]> - Array of supported blockchain networks\n */\nexport async function getSupportChains(): Promise<Chain[]> {\n const res = await apiInstance.get<{\n data: {\n chains: Chain[]\n }\n }>('/chains/list')\n return res.data.data.chains\n}\n\n/**\n * Retrieves a list of supported tokens for a specific blockchain\n * @param chainId - The ID of the blockchain network\n * @param page - Page number for pagination (default: 1)\n * @param pageSize - Number of tokens per page (default: 100)\n * @returns Promise<Token[]> - Array of supported tokens\n */\nexport async function getSupportTokens(\n chainId: number,\n page: number = 1,\n pageSize: number = 100\n): Promise<Token[]> {\n const res = await apiInstance.get<{\n data: {\n list: Token[]\n }\n }>('/coins/support-token-list', {\n params: {\n chain: chainId,\n page,\n pageSize,\n scene: 'bridge'\n }\n })\n return res.data.data.list\n}\n\n/**\n * Searches for supported tokens by keyword on a specific blockchain\n * @param chainId - The ID of the blockchain network\n * @param keyword - Search keyword for token name or symbol\n * @returns Promise<Token[]> - Array of matching tokens\n */\nexport async function searchSupportTokens(chainId: number, keyword: string): Promise<Token[]> {\n const res = await apiInstance.get<{\n data: {\n list: Token[]\n }\n }>('/coins/search', {\n params: {\n chain: chainId,\n keyword,\n page: 1,\n pageSize: 30,\n scene: 'bridge'\n }\n })\n return res.data.data.list\n}\n\n/**\n * Gets a quote for cross-chain token swap\n * @param from - Source token information\n * @param to - Destination token information\n * @param amount - Amount to swap\n * @param options - Optional swap parameters (slippage, referrer fees)\n * @returns Promise<{routes: BridgeSwapQuote[]}> - Available swap routes\n */\nexport async function getQuote(\n from: Token,\n to: Token,\n amount: string | number,\n options?: BridgeSwapOptions\n) {\n const res = await apiInstance.get<{\n data: {\n routes: BridgeSwapQuote[]\n }\n }>('/bridge-swap/find_routes', {\n params: {\n from: from.address,\n to: to.address,\n fromChain: from.chainId,\n toChain: to.chainId,\n amount,\n slippageBps: options?.slippageBps,\n referrerBps: options?.referrerBps\n }\n })\n // Temporary fix for chain ID parsing\n const rtn = res.data.data\n rtn.routes.forEach((router: any) => {\n if (router.from_token.chain) {\n router.from_token.chainId = parseInt(router.from_token.chain)\n }\n if (router.to_token.chain) {\n router.to_token.chainId = parseInt(router.to_token.chain)\n }\n })\n return rtn\n}\n\n/**\n * Retrieves transaction details by transaction hash\n * @param hash - Transaction hash to look up\n * @returns Promise<BridgeSwapTransaction> - Transaction details\n */\nexport async function getTransaction(hash: string) {\n const res = await apiInstance.get<{\n data: {\n transaction: BridgeSwapTransaction\n }\n }>(`/bridge-swap/transaction/${hash}`)\n return res.data.data.transaction\n}\n\n/**\n * Retrieves wallet transaction history\n * @param address - Wallet address to get transactions for\n * @param page - Page number for pagination (default: 1)\n * @param limit - Number of transactions per page (default: 10)\n * @returns Promise<{transactions: BridgeSwapTransaction[]}> - Transaction history\n */\nexport async function getWalletTransactions(address: string, page: number = 1, limit: number = 10) {\n const res = await apiInstance.get<{\n data: {\n transactions: BridgeSwapTransaction[]\n }\n }>(`/bridge-swap/transactions/list`, {\n params: {\n address,\n page,\n limit\n }\n })\n return res.data.data\n}\n\n/**\n * Executes a cross-chain token swap\n * @param quote - The swap quote to execute\n * @param fromAddress - Source wallet address\n * @param toAddress - Destination wallet address\n * @param walletConnection - Wallet connection for signing\n * @param referrerAddresses - Optional referrer addresses for different chains\n * @returns Promise<BridgeSwapTransaction> - Transaction hash\n */\nexport async function swap(\n quote: BridgeSwapQuote,\n fromAddress: string,\n toAddress: string,\n walletConnection: WalletConnection,\n referrerAddresses?: {\n sui?: string\n evm?: string\n solana?: string\n }\n): Promise<BridgeSwapTransaction> {\n const startAt = new Date().toISOString()\n const mayan = await import('./providers/mayan')\n const hash = await mayan.swap(quote, fromAddress, toAddress, walletConnection, referrerAddresses)\n const endAt = new Date().toISOString()\n\n // Prepare token information for the transaction record\n const sourceToken = {\n address: quote.from_token.address,\n symbol: quote.from_token.symbol,\n decimals: quote.from_token.decimals\n }\n const destToken = {\n address: quote.to_token.address,\n symbol: quote.to_token.symbol,\n decimals: quote.to_token.decimals\n }\n\n // Return transaction details\n return {\n id: hash,\n status: 'processing',\n lastUpdateAt: endAt,\n sourceChainId: quote.from_token.chainId,\n destChainId: quote.to_token.chainId,\n walletSourceAddress: fromAddress,\n walletDestAddress: toAddress,\n totalFeeAmount: quote.total_fee,\n sourceToken: quote.from_token,\n destToken: quote.to_token,\n bridgeFromAmount: quote.amount_in,\n bridgeToAmount: quote.amount_out,\n bridgeStartAt: startAt,\n bridgeEndAt: endAt,\n bridgeFeeAmount: '0',\n bridgeSourceTxHash: hash,\n bridgeDestTxHash: '',\n bridgeRefundTxHash: '',\n bridgeStatus: 'processing',\n bridgeProvider: 'mayan',\n bridgeFromToken: sourceToken,\n bridgeToToken: destToken,\n hasSwap: false\n }\n}\n"],"names":["BridgeConfig","apiInstance","axios","config","newConfig","getSupportChains","getSupportTokens","chainId","page","pageSize","searchSupportTokens","keyword","getQuote","from","to","amount","options","rtn","router","getTransaction","hash","getWalletTransactions","address","limit","swap","quote","fromAddress","toAddress","walletConnection","referrerAddresses","startAt","endAt","sourceToken","destToken"],"mappings":"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"}
@@ -13980,4 +13980,4 @@ async function _o(e, t, n, r, u) {
13980
13980
  export {
13981
13981
  _o as swap
13982
13982
  };
13983
- //# sourceMappingURL=mayan-yp610fKK.js.map
13983
+ //# sourceMappingURL=mayan.js.map