UNPKG

@okx-dex/okx-dex-sdk

Version:
80 lines (79 loc) 3.34 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); // example.ts or test.ts // example.ts or test.ts const index_1 = require("../../index"); const ethers_1 = require("ethers"); require("dotenv/config"); const evm_wallet_1 = require("../../core/evm-wallet"); const provider = new ethers_1.ethers.JsonRpcProvider(process.env.EVM_RPC_URL); const wallet = (0, evm_wallet_1.createEVMWallet)(process.env.EVM_PRIVATE_KEY, provider); const client = new index_1.OKXDexClient({ apiKey: process.env.OKX_API_KEY, secretKey: process.env.OKX_SECRET_KEY, apiPassphrase: process.env.OKX_API_PASSPHRASE, projectId: process.env.OKX_PROJECT_ID, evm: { wallet: wallet } }); const walletAddress = wallet.address; async function main() { var _a, _b, _c, _d, _e; try { // First get the swap data const swapData = await client.dex.getSwapData({ chainId: '8453', fromTokenAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE', // ETH address toTokenAddress: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913', // USDC address amount: String(10 ** 18 * 0.001), slippage: '0.005', userWalletAddress: walletAddress, fromTokenReferrerWalletAddress: walletAddress, feePercent: '0.001' }); console.log('Got swap data:', JSON.stringify(swapData, null, 2)); // Use the swap data to simulate the transaction const params = { chainIndex: '8453', // Base chain ID fromAddress: ((_a = swapData.data[0].tx) === null || _a === void 0 ? void 0 : _a.from) || walletAddress, toAddress: ((_b = swapData.data[0].tx) === null || _b === void 0 ? void 0 : _b.to) || '', txAmount: ((_c = swapData.data[0].tx) === null || _c === void 0 ? void 0 : _c.value) || '0', extJson: { inputData: ((_d = swapData.data[0].tx) === null || _d === void 0 ? void 0 : _d.data) || '' }, gasPrice: ((_e = swapData.data[0].tx) === null || _e === void 0 ? void 0 : _e.gasPrice) || '2734795', includeDebug: true }; console.log('Simulating transaction...'); const result = await client.dex.simulateTransaction(params); console.log('\nTransaction Summary:'); console.log(`Success: ${result.success}`); console.log(`Gas Used: ${result.gasUsed || 'N/A'}`); if (!result.success) { console.log(`\n❌ Transaction would fail! Reason: ${result.error}`); } else { console.log('\n✅ Transaction would succeed!'); } console.log('\nAsset Changes:'); result.assetChanges.forEach(asset => { console.log(`${asset.direction}: ${asset.symbol} (${asset.type}) - ${asset.amount}`); }); if (result.risks.length > 0) { console.log('\n⚠️ Risks Detected:'); result.risks.forEach(risk => { console.log(`- ${risk.addressType}: ${risk.address}`); }); } if (result.logs) { console.log('\nDebug Trace:'); console.log(JSON.stringify(result.logs, null, 2)); } } catch (error) { console.error('Script failed:', error); process.exit(1); } } main();