UNPKG

sei-agent-kit

Version:

A package for building AI agents on the SEI blockchain

34 lines (33 loc) 1.69 kB
import { Toolkit } from '@bancor/carbon-sdk/strategy-management'; import { initSyncedCache } from '@bancor/carbon-sdk/chain-cache'; import { ContractsApi } from '@bancor/carbon-sdk/contracts-api'; import { JsonRpcProvider } from '@ethersproject/providers'; import { SEI_RPC_URL, MAX_BLOCK_AGE } from '../../constants'; /** */ export async function composeTradeBySourceTx(agent, config, sourceToken, targetToken, tradeActions, deadline, minReturn, overrides) { try { const provider = new JsonRpcProvider(SEI_RPC_URL); const api = new ContractsApi(provider, config); const { cache } = initSyncedCache(api.reader, undefined, MAX_BLOCK_AGE); const carbonSDK = new Toolkit(api, cache, undefined); const populatedTx = await carbonSDK.composeTradeBySourceTransaction(sourceToken, targetToken, tradeActions, deadline, minReturn, overrides); const viemTx = { chain: agent.walletClient.chain, account: agent.walletClient.account?.address, to: populatedTx.to, data: populatedTx.data, value: populatedTx.value ? BigInt(populatedTx.value.toString()) : 0n, gas: populatedTx.gasLimit ? BigInt(populatedTx.gasLimit.toString()) : undefined, nonce: populatedTx.nonce, }; const txHash = await agent.walletClient.sendTransaction(viemTx); console.log('Transaction sent! Hash:', txHash); return txHash; } catch (error) { console.error(`Error fetching token address from DexScreener: ${error instanceof Error ? error.message : String(error)}`); throw error; } } //# sourceMappingURL=composeTradeBySourceTx.js.map