@reactmore/crypto-wallet-sdk 1.2.0 → 1.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"crypto-wallet-sdk.esm.js","sources":["../src/api/dex.ts","../src/services/base/wallet.ts","../src/utils/response.ts","../src/utils/amount.ts","../src/utils/evmUnits.ts","../src/services/evm/wallet.ts","../src/services/btc/wallet.ts","../src/services/sol/wallet.ts","../src/services/wallet-registry.ts","../src/client/index.ts"],"sourcesContent":["// src/api/dex.ts\r\nimport {\r\n DexConfig,\r\n NetworkConfigs,\r\n ChainConfig,\r\n} from \"./../types\";\r\n\r\nexport class DexAPI {\r\n private readonly defaultNetworkConfigs: NetworkConfigs = {\r\n \"1\": { // Ethereum Mainnet\r\n id: \"1\",\r\n explorer: \"https://etherscan.io/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"11155111\": { // Ethereum Sepolia\r\n id: \"11155111\",\r\n explorer: \"https://sepolia.etherscan.io/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"56\": { // Binance Smart Chain\r\n id: \"56\",\r\n explorer: \"https://bscscan.com/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"97\": { // Binance Smart Chain Testnet\r\n id: \"97\",\r\n explorer: \"https://testnet.bscscan.com/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"501\": {\r\n id: \"501\",\r\n explorer: \"https://web3.okx.com/explorer/sol/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n computeUnits: 300000,\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"784\": {\r\n id: \"784\",\r\n explorer: \"https://web3.okx.com/explorer/sui/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"43114\": { // Avalanche C-Chain\r\n id: \"43114\",\r\n explorer: \"https://web3.okx.com/explorer/avax/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n\r\n \"137\": { // Polygon Mainnet\r\n id: \"137\",\r\n explorer: \"https://web3.okx.com/explorer/polygon/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"80002\": { // Polygon Testnet\r\n id: \"80002\",\r\n explorer: \"https://amoy.polygonscan.com\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"146\": { // Sonic Mainnet\r\n id: \"146\",\r\n explorer: \"https://web3.okx.com/explorer/sonic/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"8453\": { // Base Mainnet\r\n id: \"8453\",\r\n explorer: \"https://web3.okx.com/explorer/base/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"196\": { // X Layer Mainnet\r\n id: \"196\",\r\n explorer: \"https://web3.okx.com/explorer/x-layer/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"10\": { // Optimism\r\n id: \"10\",\r\n explorer: \"https://web3.okx.com/explorer/optimism/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"42161\": { // Arbitrum\r\n id: \"42161\",\r\n explorer: \"https://web3.okx.com/explorer/arbitrum/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n\r\n \"100\": { // Gnosis\r\n id: \"100\",\r\n explorer: \"https://web3.okx.com/explorer/gnosis/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"169\": { // Manta Pacific\r\n id: \"169\",\r\n explorer: \"https://web3.okx.com/explorer/manta/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"250\": { // Fantom Opera\r\n id: \"250\",\r\n explorer: \"https://web3.okx.com/explorer/ftm/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"324\": { // zkSync Era\r\n id: \"324\",\r\n explorer: \"https://web3.okx.com/explorer/zksync/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"1101\": { // Polygon zkEVM\r\n id: \"1101\",\r\n explorer: \"https://web3.okx.com/explorer/polygon-zkevm/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"5000\": { // Mantle\r\n id: \"5000\",\r\n explorer: \"https://web3.okx.com/explorer/mantle/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"25\": { // Cronos\r\n id: \"25\",\r\n explorer: \"https://cronoscan.com/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"534352\": { // Scroll\r\n id: \"534352\",\r\n explorer: \"https://web3.okx.com/explorer/scroll/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"59144\": { // Linea\r\n id: \"59144\",\r\n explorer: \"https://web3.okx.com/explorer/linea/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"1088\": { // Metis\r\n id: \"1088\",\r\n explorer: \"https://web3.okx.com/explorer/metis/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"1030\": { // Conflux\r\n id: \"1030\",\r\n explorer: \"https://www.confluxscan.io/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"81457\": { // Blast\r\n id: \"81457\",\r\n explorer: \"https://web3.okx.com/explorer/blast/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"7000\": { // Zeta Chain\r\n id: \"7000\",\r\n explorer: \"https://explorer.zetachain.com/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"66\": { // OKT Chain\r\n id: \"66\",\r\n explorer: \"https://www.okx.com/web3/explorer/oktc/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n\r\n };\r\n\r\n constructor(private readonly config: DexConfig) {\r\n this.config.networks = {\r\n ...this.defaultNetworkConfigs,\r\n ...(config.networks || {}),\r\n };\r\n }\r\n\r\n public getNetworkConfig(chainId: string): ChainConfig {\r\n const networkConfig = this.config.networks?.[chainId];\r\n if (!networkConfig) {\r\n throw new Error(`Network configuration not found for chain ${chainId}`);\r\n }\r\n return networkConfig;\r\n }\r\n\r\n\r\n}","import { DexAPI } from \"./../../api/dex\";\r\nimport { DexConfig, ChainConfig } from \"./../../types\";\r\nimport { bip39 } from \"@okxweb3/crypto-lib\";\r\n\r\nabstract class BaseWallet {\r\n\r\n public config: DexConfig;\r\n public dex: DexAPI;\r\n\r\n constructor(config: DexConfig) {\r\n this.config = {\r\n timeout: 30000,\r\n ...config,\r\n };\r\n\r\n this.dex = new DexAPI(this.config);\r\n }\r\n\r\n public get currentChain(): ChainConfig {\r\n if (!this.config.chainId) throw new Error(\"chainId not set in config\");\r\n return this.dex.getNetworkConfig(this.config.chainId);\r\n }\r\n\r\n public async generateMnemonic(numWords: number = 12): Promise<string> {\r\n const strength = (numWords / 3) * 32;\r\n return bip39.generateMnemonic(strength);\r\n }\r\n}\r\n\r\nexport { BaseWallet }","import { IResponse } from './../types';\r\n\r\nexport const successResponse = (args: IResponse): IResponse => {\r\n return args;\r\n};\r\n","// src/utils/amount.ts\r\nimport BigNumber from \"bignumber.js\";\r\n\r\n/**\r\n * Convert human-readable amount → raw integer by decimals\r\n * ex: 0.1 USDC (decimals 6) => 100000\r\n */\r\nexport const parseAmount = (amount: string | number, decimals: number): bigint => {\r\n const bn = new BigNumber(amount);\r\n const multiplier = new BigNumber(10).pow(decimals);\r\n return BigInt(bn.times(multiplier).toFixed(0));\r\n};\r\n\r\n/**\r\n * Convert raw amount → human-readable number by decimals\r\n * ex: 100000 (decimals 6) => 0.1\r\n */\r\nexport const formatAmount = (raw: bigint | string, decimals: number): number => {\r\n const bn = new BigNumber(raw.toString());\r\n const divisor = new BigNumber(10).pow(decimals);\r\n return bn.dividedBy(divisor).toNumber();\r\n};\r\n","// src/utils/evmUnits.ts\r\nimport { parseAmount, formatAmount } from \"./amount\";\r\n\r\n// Ether = 18 decimals\r\nexport const parseEther = (v: string | number) => parseAmount(v, 18);\r\nexport const formatEther = (v: bigint | string) => formatAmount(v, 18);\r\n\r\n// Gwei = 9 decimals\r\nexport const parseGwei = (v: string | number) => parseAmount(v, 9);\r\nexport const formatGwei = (v: bigint | string) => formatAmount(v, 9);\r\n\r\n// Wei = 0 decimals (identity, tapi biar konsisten)\r\nexport const parseWei = (v: string | number) => parseAmount(v, 0);\r\nexport const formatWei = (v: bigint | string) => formatAmount(v, 0);\r\n","import { BaseWallet } from \"../base/index\";\r\nimport { DexConfig } from \"../../types\";\r\nimport { BigNumber } from \"@okxweb3/crypto-lib\";\r\nimport { EthWallet as EthWalletOkx } from \"@okxweb3/coin-ethereum\";\r\nimport { GenerateWalletPayload, TokenInfo, IResponse } from \"./../../types\";\r\nimport { successResponse, formatAmount, parseAmount, parseGwei, formatGwei, formatEther, parseEther } from \"./../../utils\";\r\nimport { GetContract, BalancePayload, TransferPayload, GetTransactionPayload, ISmartContractCallPayload, SignerPayload, GetErcTokenInfoPayload, estimateGasPayload } from \"./types\";\r\nimport { ethers } from \"ethers\";\r\nimport erc20Abi from \"./abi/erc20.json\";\r\n\r\nconst provider = (rpcUrl?: string) => new ethers.JsonRpcProvider(rpcUrl);\r\n\r\nconst DEFAULT_PRIORITY = \"0.1\";\r\nconst DEFAULT_MAXFEE = \"3\";\r\n\r\nexport class EvmWallet extends BaseWallet {\r\n\r\n private wallet: EthWalletOkx;\r\n\r\n constructor(config: DexConfig) {\r\n super(config)\r\n this.wallet = new EthWalletOkx();\r\n }\r\n\r\n async getContract({ contractAddress, rpcUrl, privateKey, abi }: GetContract) {\r\n if (!rpcUrl) throw new Error(\"RPC URL is required\");\r\n\r\n const providerInstance = provider(rpcUrl ?? this.config.rpcUrl);\r\n const gasFeeData = await providerInstance.getFeeData();\r\n\r\n let nonce, contract, signer;\r\n\r\n\r\n if (privateKey) {\r\n signer = new ethers.Wallet(privateKey, providerInstance);\r\n nonce = await providerInstance.getTransactionCount(\r\n await signer.getAddress(),\r\n \"pending\"\r\n );\r\n }\r\n\r\n if (contractAddress) {\r\n contract = new ethers.Contract(\r\n contractAddress,\r\n abi || erc20Abi,\r\n signer || providerInstance\r\n );\r\n\r\n const code = await providerInstance.getCode(contractAddress);\r\n if (code === \"0x\") {\r\n throw new Error(\"Address is not a contract\");\r\n }\r\n }\r\n\r\n return { contract, signer, gasFeeData, nonce, providerInstance };\r\n }\r\n\r\n async generateWallet({ mnemonic, derivationPath }: GenerateWalletPayload): Promise<IResponse> {\r\n const hdPath = derivationPath || \"m/44'/60'/0'/0/0\";\r\n const getMnemonic = mnemonic ?? (await this.generateMnemonic(12));\r\n\r\n const derivePrivateKey = await this.wallet.getDerivedPrivateKey({ mnemonic: getMnemonic, hdPath });\r\n const { address, publicKey } = await this.wallet.getNewAddress({ privateKey: derivePrivateKey });\r\n\r\n return successResponse({ address, publicKey, privateKey: derivePrivateKey });\r\n }\r\n\r\n async getBalance({ rpcUrl, contractAddress, address }: BalancePayload): Promise<IResponse> {\r\n const { contract, providerInstance } = await this.getContract({ rpcUrl: rpcUrl ?? this.config.rpcUrl, contractAddress });\r\n\r\n if (contract) {\r\n const decimals = await contract.decimals();\r\n const balance = await contract.balanceOf(address);\r\n return successResponse({\r\n balance: formatAmount(balance.toString(), decimals),\r\n _rawBalance: balance.toString(),\r\n _decimal: decimals,\r\n });\r\n }\r\n\r\n const balance = await providerInstance.getBalance(address);\r\n\r\n return successResponse({\r\n balance: formatAmount(balance.toString(), 18),\r\n _rawBalance: balance.toString(),\r\n _decimal: 18,\r\n });\r\n }\r\n\r\n async transfer({ privateKey, contractAddress, rpcUrl, ...args }: TransferPayload): Promise<IResponse> {\r\n const { contract, providerInstance, gasFeeData, nonce } = await this.getContract({\r\n rpcUrl: rpcUrl ?? this.config.rpcUrl,\r\n privateKey,\r\n contractAddress,\r\n });\r\n\r\n const recipientAddress = await this.wallet.validAddress({ address: args.recipientAddress });\r\n if (!recipientAddress.isValid) throw new Error(\"address not valid\");\r\n\r\n // VALIDASI FEE\r\n if (args.maxPriorityFeePerGas && args.maxFeePerGas) {\r\n const prio = BigInt(args.maxPriorityFeePerGas);\r\n const max = BigInt(args.maxFeePerGas);\r\n if (max < prio) {\r\n throw new Error(\"maxFeePerGas must be >= maxPriorityFeePerGas\");\r\n }\r\n }\r\n\r\n if (args.gasPrice && (args.maxFeePerGas || args.maxPriorityFeePerGas)) {\r\n throw new Error(\"Cannot use gasPrice with EIP-1559 fee fields\");\r\n }\r\n\r\n let value: bigint;\r\n let gasLimit: bigint;\r\n\r\n if (contractAddress) {\r\n if (!contract) throw new Error(\"contract not valid\");\r\n\r\n const decimals = await contract.decimals();\r\n value = parseAmount(args.amount.toString(), decimals);\r\n\r\n\r\n gasLimit = args.gasLimit\r\n ? BigInt(args.gasLimit)\r\n : await contract.transfer.estimateGas(\r\n args.recipientAddress,\r\n value\r\n );\r\n } else {\r\n value = parseEther(args.amount.toString());\r\n gasLimit = args.gasLimit ? BigInt(args.gasLimit) : 21000n;\r\n }\r\n\r\n // DEFAULT FEE\r\n const noFeeProvided =\r\n !args.gasPrice &&\r\n !args.maxFeePerGas &&\r\n !args.maxPriorityFeePerGas;\r\n\r\n if (noFeeProvided) {\r\n const estimate = await this.estimateGas({\r\n rpcUrl: rpcUrl ?? this.config.rpcUrl,\r\n recipientAddress: args.recipientAddress,\r\n amount: args.amount.toString(),\r\n data: args.data,\r\n });\r\n\r\n gasLimit = BigInt(estimate.gasLimit);\r\n\r\n // ===== LEGACY =====\r\n if (estimate.model === \"LEGACY\") {\r\n if (!estimate.gasPrice) {\r\n throw new Error(\"LEGACY estimate missing gasPrice\");\r\n }\r\n\r\n args.gasPrice = estimate.gasPrice; // wei\r\n return this.transfer({ privateKey, contractAddress, rpcUrl, ...args });\r\n }\r\n\r\n // ===== EIP-1559 =====\r\n const fee = estimate.fees.regular;\r\n\r\n if (!fee?.maxFeePerGas || !fee?.maxPriorityFeePerGas) {\r\n throw new Error(\"EIP1559 estimate missing fee fields\");\r\n }\r\n\r\n args.maxFeePerGas = fee.maxFeePerGas;\r\n args.maxPriorityFeePerGas = fee.maxPriorityFeePerGas;\r\n }\r\n\r\n // ===============================\r\n // SIGN & BROADCAST\r\n // ===============================\r\n const signParams = await this.buildSignParams({\r\n args: { ...args, privateKey, gasLimit },\r\n nonce,\r\n gasFeeData,\r\n recipientAddress,\r\n value,\r\n contractAddress,\r\n });\r\n\r\n const signedTx = await this.wallet.signTransaction(signParams);\r\n const broadcast = await providerInstance.broadcastTransaction(signedTx);\r\n\r\n return successResponse({ ...broadcast });\r\n }\r\n\r\n async getTransaction({ hash, rpcUrl, withReceipt }: GetTransactionPayload): Promise<IResponse> {\r\n const { providerInstance } = await this.getContract({ rpcUrl: rpcUrl ?? this.config.rpcUrl });\r\n\r\n try {\r\n if (withReceipt) {\r\n const [tx, receipt] = await Promise.all([\r\n providerInstance.getTransaction(hash),\r\n providerInstance.getTransactionReceipt(hash),\r\n ]);\r\n\r\n const memo = tx?.data && tx.data !== \"0x\"\r\n ? ethers.toUtf8String(tx.data)\r\n : null;\r\n\r\n return successResponse({\r\n transaction: tx,\r\n receipt,\r\n memo,\r\n });\r\n }\r\n\r\n const tx = await providerInstance.getTransaction(hash);\r\n\r\n return successResponse({\r\n transaction: tx,\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n async getTokenInfo({ contractAddress, rpcUrl }: GetErcTokenInfoPayload): Promise<IResponse> {\r\n const { contract } = await this.getContract({ contractAddress, rpcUrl: rpcUrl ?? this.config.rpcUrl, });\r\n\r\n if (contract) {\r\n const [name, symbol, decimals, totalSupply] = await Promise.all([\r\n contract.name(),\r\n contract.symbol(),\r\n contract.decimals(),\r\n contract.totalSupply(),\r\n ]);\r\n\r\n const data: TokenInfo = {\r\n name,\r\n symbol,\r\n decimals,\r\n totalSupply: formatAmount(totalSupply.toString(), decimals).toString(),\r\n\r\n };\r\n return successResponse({ ...data });\r\n }\r\n\r\n throw new Error('Contract not found');\r\n };\r\n\r\n async smartContractCall(args: ISmartContractCallPayload): Promise<IResponse> {\r\n const { contract, gasFeeData, nonce } = await this.getContract({\r\n rpcUrl: args.rpcUrl ?? this.config.rpcUrl,\r\n contractAddress: args.contractAddress,\r\n abi: args.contractAbi,\r\n privateKey: args.privateKey,\r\n });\r\n\r\n try {\r\n let tx;\r\n let overrides = {} as any;\r\n\r\n if (args.methodType === 'read') {\r\n overrides = {};\r\n } else if (args.methodType === 'write') {\r\n overrides = {\r\n gasPrice: args.gasPrice\r\n ? parseGwei(args.gasPrice)\r\n : gasFeeData?.gasPrice,\r\n\r\n nonce: args.nonce || nonce,\r\n value: args.value ? parseEther(args.value.toString()) : 0,\r\n };\r\n\r\n if (args.gasLimit) {\r\n overrides.gasLimit = args.gasLimit;\r\n }\r\n }\r\n\r\n if (args.params.length > 0) {\r\n tx = await contract?.[args.method](...args.params, overrides);\r\n } else {\r\n tx = await contract?.[args.method](overrides);\r\n }\r\n\r\n return successResponse({\r\n data: tx,\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n\r\n async estimateGas({ rpcUrl, recipientAddress, amount, data }: estimateGasPayload): Promise<IResponse> {\r\n const { providerInstance } = await this.getContract({ rpcUrl: rpcUrl ?? this.config.rpcUrl });\r\n\r\n try {\r\n\r\n const network = await providerInstance.getNetwork();\r\n const chainId = Number(network.chainId);\r\n\r\n const tx = {\r\n to: recipientAddress,\r\n value: parseEther(amount.toString()),\r\n data: data\r\n ? ethers.hexlify(ethers.toUtf8Bytes(data as string))\r\n : '0x',\r\n };\r\n\r\n const [feeData, gasLimit] = await Promise.all([\r\n providerInstance.getFeeData(),\r\n providerInstance.estimateGas(tx),\r\n ]);\r\n\r\n const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = feeData;\r\n\r\n const applyMultiplier = (base: bigint, mul: number) =>\r\n (base * BigInt(Math.floor(mul * 10))) / 10n;\r\n\r\n // feeData IS AUTO CHECK EIP OR LEGACY\r\n const isEip1559 = maxFeePerGas !== null && maxPriorityFeePerGas !== null;\r\n\r\n if (!isEip1559) {\r\n const baseGasPrice = BigInt(gasPrice ?? 0n);\r\n\r\n const regularGasPrice = baseGasPrice; // wallet \"slow\"\r\n const expressGasPrice = (baseGasPrice * 110n) / 100n; // +10%\r\n const instantGasPrice = (baseGasPrice * 125n) / 100n; // +25%\r\n\r\n const regularFee = gasLimit * regularGasPrice;\r\n const expressFee = gasLimit * expressGasPrice;\r\n const instantFee = gasLimit * instantGasPrice;\r\n\r\n return successResponse({\r\n chainId,\r\n gasLimit: gasLimit.toString(),\r\n gasPrice: baseGasPrice.toString(),\r\n gasPriceGwei: formatGwei(baseGasPrice),\r\n model: \"LEGACY\",\r\n fees: {\r\n regular: formatEther(regularFee),\r\n express: formatEther(expressFee),\r\n instant: formatEther(instantFee),\r\n }\r\n });\r\n }\r\n\r\n let baseFee: bigint;\r\n let priorityFee: bigint;\r\n\r\n const block = await providerInstance.getBlock(\"latest\");\r\n\r\n baseFee = BigInt(block!.baseFeePerGas ?? 0n);\r\n priorityFee = BigInt(\r\n feeData.maxPriorityFeePerGas ?? parseGwei(DEFAULT_PRIORITY)\r\n );\r\n\r\n const regularPriority = priorityFee;\r\n const regularMaxFee = baseFee + regularPriority;\r\n\r\n const expressPriority = applyMultiplier(priorityFee, 1.2);\r\n const expressMaxFee = applyMultiplier(baseFee, 1.2) + expressPriority;\r\n\r\n const instantPriority = applyMultiplier(priorityFee, 1.5);\r\n const instantMaxFee = applyMultiplier(baseFee, 1.5) + instantPriority;\r\n\r\n const MAX_GAS_GWEI = 100n * 1_000_000_000n;\r\n const cap = (v: bigint) => (v > MAX_GAS_GWEI ? MAX_GAS_GWEI : v);\r\n\r\n const regularFee = gasLimit * cap(regularMaxFee);\r\n const expressFee = gasLimit * cap(expressMaxFee);\r\n const instantFee = gasLimit * cap(instantMaxFee);\r\n\r\n return successResponse({\r\n chainId,\r\n gasLimit: gasLimit.toString(),\r\n baseFeeGwei: formatGwei(baseFee),\r\n priorityFeeGwei: formatGwei(priorityFee),\r\n model: \"EIP1559\",\r\n fees: {\r\n regular: {\r\n perCoin: formatEther(regularFee),\r\n maxPriorityFeePerGas: regularPriority.toString(),\r\n maxFeePerGas: regularMaxFee.toString(),\r\n },\r\n express: {\r\n perCoin: formatEther(expressFee),\r\n maxPriorityFeePerGas: expressPriority.toString(),\r\n maxFeePerGas: expressMaxFee.toString(),\r\n },\r\n instant: {\r\n perCoin: formatEther(instantFee),\r\n maxPriorityFeePerGas: instantPriority.toString(),\r\n maxFeePerGas: instantMaxFee.toString(),\r\n },\r\n }\r\n });\r\n\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n private async buildSignParams({ args, nonce, gasFeeData, recipientAddress, value, contractAddress }: SignerPayload) {\r\n const txBase = {\r\n to: recipientAddress.address,\r\n value: BigNumber(value.toString()),\r\n data: args.data\r\n ? ethers.hexlify(ethers.toUtf8Bytes(args.data as string))\r\n : '0x',\r\n nonce: args.nonce || (await nonce),\r\n gasLimit: args.gasLimit ? BigNumber(args.gasLimit) : BigNumber(21000),\r\n chainId: Number(this.currentChain.id),\r\n ...(contractAddress ? { contractAddress } : {}),\r\n };\r\n\r\n // legacy vs eip-1559\r\n if (args.gasPrice) {\r\n return {\r\n privateKey: args.privateKey,\r\n data: {\r\n ...txBase,\r\n gasPrice: BigNumber(parseGwei(args.gasPrice).toString()),\r\n type: 0,\r\n },\r\n };\r\n }\r\n\r\n return {\r\n privateKey: args.privateKey,\r\n data: {\r\n ...txBase,\r\n type: 2,\r\n maxPriorityFeePerGas: BigNumber(\r\n args.maxPriorityFeePerGas\r\n ? args.maxPriorityFeePerGas\r\n : gasFeeData.maxPriorityFeePerGas!.toString()\r\n ),\r\n maxFeePerGas: BigNumber(\r\n args.maxFeePerGas\r\n ? args.maxFeePerGas\r\n : gasFeeData.maxFeePerGas!.toString()\r\n ),\r\n },\r\n };\r\n }\r\n}\r\n","import { BaseWallet } from \"../base/index\";\r\nimport { DexConfig } from \"../../types\";\r\nimport { BtcWallet as BtcWalletOkxm, TBtcWallet } from \"@okxweb3/coin-bitcoin\";\r\nimport { IResponse, GenerateWalletPayload } from \"./../../types\";\r\n\r\nconst successResponse = (args: IResponse): IResponse => args;\r\n\r\nexport class BtcWallet extends BaseWallet {\r\n\r\n private wallet: BtcWalletOkxm | TBtcWallet;\r\n\r\n constructor(config: DexConfig) {\r\n super(config);\r\n this.wallet = this.config.cluster === \"testnet\" ? new TBtcWallet() : new BtcWalletOkxm();\r\n }\r\n\r\n async generateWallet({ mnemonic, derivationPath }: GenerateWalletPayload): Promise<IResponse> {\r\n const hdPath = derivationPath || \"m/44'/0'/0'/0/0\";\r\n const getMnemonic = mnemonic ?? (await this.generateMnemonic(12));\r\n\r\n const derivePrivateKey = await this.wallet.getDerivedPrivateKey({ mnemonic: getMnemonic, hdPath });\r\n const { address, publicKey } = await this.wallet.getNewAddress({ privateKey: derivePrivateKey });\r\n\r\n return successResponse({ address, publicKey, privateKey: derivePrivateKey });\r\n }\r\n\r\n\r\n}\r\n","import { BaseWallet } from \"../base/index\";\r\nimport { DexConfig } from \"../../types\";\r\nimport { base } from \"@okxweb3/crypto-lib\";\r\nimport { SolWallet as SolWalletOkx } from \"@okxweb3/coin-solana\";\r\nimport * as solanaWeb3 from '@solana/web3.js';\r\nimport { getAssociatedTokenAddress } from '@solana/spl-token';\r\nimport { ENV, TokenListProvider } from \"@solana/spl-token-registry\";\r\nimport { successResponse, parseAmount, formatAmount } from \"./../../utils\";\r\nimport { IResponse, GenerateWalletPayload, TokenInfo } from \"./../../types\";\r\nimport { BalanceSolanaPayload, TransferSolanaPayload, GetSplTokenInfoPayload } from \"./types\";\r\n// @ts-ignore\r\nimport * as BufferLayout from 'buffer-layout';\r\n\r\nconst provider = (rpcUrl?: string) => new solanaWeb3.Connection(rpcUrl as string);\r\n\r\nexport const ACCOUNT_LAYOUT = BufferLayout.struct([\r\n BufferLayout.blob(32, 'mint'),\r\n BufferLayout.blob(32, 'owner'),\r\n BufferLayout.nu64('amount'),\r\n BufferLayout.blob(93),\r\n]);\r\n\r\nexport const CLUSTER_ENV: Record<string, ENV> = {\r\n \"mainnet-beta\": ENV.MainnetBeta,\r\n \"testnet\": ENV.Testnet,\r\n \"devnet\": ENV.Devnet,\r\n};\r\n\r\nexport class SolWallet extends BaseWallet {\r\n\r\n private wallet: SolWalletOkx;\r\n\r\n constructor(config: DexConfig) {\r\n super(config)\r\n this.wallet = new SolWalletOkx();\r\n }\r\n\r\n async generateWallet({ mnemonic, derivationPath }: GenerateWalletPayload): Promise<IResponse> {\r\n const hdPath = derivationPath || \"m/44'/501'/0'/0'\";\r\n const getMnemonic = mnemonic ?? (await this.generateMnemonic(12));\r\n\r\n const derivePrivateKey = await this.wallet.getDerivedPrivateKey({ mnemonic: getMnemonic, hdPath });\r\n const { address, publicKey } = await this.wallet.getNewAddress({ privateKey: derivePrivateKey });\r\n\r\n return successResponse({ address, publicKey, privateKey: derivePrivateKey });\r\n }\r\n\r\n async getBalance({ rpcUrl, contractAddress, address }: BalanceSolanaPayload): Promise<IResponse> {\r\n const connection = provider(rpcUrl ?? this.config.rpcUrl);\r\n try {\r\n const recipientAddress = await this.wallet.validAddress({ address });\r\n if (!recipientAddress.isValid) throw new Error(\"address not valid\");\r\n\r\n const publicKey = new solanaWeb3.PublicKey(recipientAddress.address);\r\n if (contractAddress) {\r\n const mintPubkey = new solanaWeb3.PublicKey(contractAddress);\r\n // get token by account \r\n const tokenAccountAddress = await getAssociatedTokenAddress(mintPubkey, publicKey);\r\n const accountInfo = await connection.getAccountInfo(tokenAccountAddress);\r\n\r\n // check if account not associated with this return 0 balance \r\n if (!accountInfo) {\r\n return successResponse({\r\n balance: \"0\",\r\n });\r\n }\r\n\r\n const rawBalance = await connection.getTokenAccountBalance(tokenAccountAddress);\r\n return successResponse({\r\n balance: formatAmount(rawBalance.value.amount, rawBalance.value.decimals),\r\n _rawBalance: rawBalance.value.amount,\r\n _decimal: rawBalance.value.decimals,\r\n });\r\n }\r\n\r\n const balance = await connection.getBalance(publicKey);\r\n return successResponse({\r\n balance: formatAmount(balance.toString(), 9),\r\n _rawBalance: parseAmount(balance, 9),\r\n _decimal: 9,\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n async transfer({ privateKey, contractAddress, rpcUrl, ...args }: TransferSolanaPayload & { createAssociatedAddress?: boolean; token2022?: boolean }): Promise<IResponse> {\r\n const connection = provider(rpcUrl ?? this.config.rpcUrl);\r\n\r\n try {\r\n // validate recipient\r\n const recipientAddress = await this.wallet.validAddress({ address: args.recipientAddress });\r\n if (!recipientAddress.isValid) throw new Error(\"address not valid\");\r\n\r\n // get sender info from privateKey using OKX wallet util\r\n const fromAccount = await this.wallet.getNewAddress({ privateKey });\r\n\r\n // recommended fees (CU)\r\n let { computeUnitLimit, computeUnitPrice } = await this.getRecommendedFees(connection);\r\n if (args.gasLimit) computeUnitLimit = args.gasLimit;\r\n if (args.gasPrice) computeUnitPrice = parseInt(args.gasPrice as any, 10);\r\n\r\n // get latest blockhash\r\n const { blockhash } = await connection.getLatestBlockhash();\r\n\r\n // ---------- SPL TOKEN FLOW ----------\r\n if (contractAddress) {\r\n const mintPubkey = new solanaWeb3.PublicKey(contractAddress);\r\n const fromPubkey = new solanaWeb3.PublicKey(fromAccount.address);\r\n const recipientPubkey = new solanaWeb3.PublicKey(recipientAddress.address);\r\n\r\n // Associated Token Accounts (computed, not necessarily exist)\r\n const fromTokenAccount = await getAssociatedTokenAddress(mintPubkey, fromPubkey);\r\n const recipientTokenAccount = await getAssociatedTokenAddress(mintPubkey, recipientPubkey);\r\n\r\n // Try to read decimals from sender token account first, fallback to token supply\r\n let decimals = 0;\r\n try {\r\n const fromTokenBal = await connection.getTokenAccountBalance(fromTokenAccount);\r\n decimals = fromTokenBal.value.decimals;\r\n } catch (err) {\r\n // fallback: try to fetch mint info (supply) to get decimals\r\n try {\r\n const mintAccountInfo = await connection.getParsedAccountInfo(mintPubkey);\r\n // parsed data path may vary; handle gracefully\r\n // if parsed exists:\r\n if (mintAccountInfo.value && (mintAccountInfo.value.data as any).parsed) {\r\n const parsed = (mintAccountInfo.value.data as any).parsed;\r\n decimals = parsed.info.decimals || 0;\r\n }\r\n } catch (err2) {\r\n // cannot determine decimals — throw explicit error\r\n throw new Error(\"Failed to determine token decimals for mint \" + contractAddress);\r\n }\r\n }\r\n\r\n // Check whether recipient ATA exists\r\n const recipientAtaInfo = await connection.getAccountInfo(recipientTokenAccount);\r\n const recipientHasATA = !!recipientAtaInfo;\r\n\r\n // decide whether to create ATA: user can pass args.createAssociatedAddress\r\n const shouldCreateATA = !!(args.createAssociatedAddress) && !recipientHasATA;\r\n\r\n // compute token amount (smallest unit)\r\n // args.amount is assumed token amount in human units (eg. 1.5 USDC)\r\n const rawTokenAmount = BigInt(Math.round((args.amount ?? 0) * (10 ** decimals)));\r\n\r\n // Build params for OKX wallet signTransaction (tokenTransfer)\r\n const params = {\r\n privateKey,\r\n data: {\r\n type: \"tokenTransfer\",\r\n payer: fromAccount.address,\r\n from: fromAccount.address,\r\n to: recipientAddress.address,\r\n blockHash: blockhash,\r\n mint: contractAddress,\r\n amount: rawTokenAmount.toString(), // send as string\r\n decimal: decimals,\r\n createAssociatedAddress: !!shouldCreateATA, // OKX SDK should create ATA if true\r\n token2022: !!args.token2022, // allow override by user\r\n computeUnitLimit,\r\n computeUnitPrice\r\n }\r\n };\r\n\r\n // sign & broadcast\r\n const signedTx = await this.wallet.signTransaction(params);\r\n // OKX returns base58 signed tx — decode and broadcast\r\n const rawTx = base.fromBase58(signedTx);\r\n const txid = await connection.sendRawTransaction(rawTx, { skipPreflight: false, maxRetries: 3 });\r\n return successResponse({ hash: txid });\r\n }\r\n\r\n // ---------- NATIVE SOL FLOW ----------\r\n const lamports = Math.round((args.amount ?? 0) * solanaWeb3.LAMPORTS_PER_SOL);\r\n\r\n const solParams = {\r\n privateKey,\r\n data: {\r\n type: \"transfer\",\r\n payer: fromAccount.address,\r\n from: fromAccount.address,\r\n to: recipientAddress.address,\r\n blockHash: blockhash,\r\n amount: lamports,\r\n computeUnitLimit,\r\n computeUnitPrice\r\n }\r\n };\r\n\r\n const signedTx = await this.wallet.signTransaction(solParams);\r\n const rawTx = base.fromBase58(signedTx);\r\n const broadcast = await connection.sendRawTransaction(rawTx, {\r\n skipPreflight: false,\r\n maxRetries: 3,\r\n });\r\n\r\n return successResponse({ hash: broadcast });\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n async getTokenInfo({ contractAddress, rpcUrl, cluster = \"mainnet-beta\" }: GetSplTokenInfoPayload): Promise<IResponse> {\r\n try {\r\n const connection = provider(rpcUrl ?? this.config.rpcUrl);\r\n const mintAddress = new solanaWeb3.PublicKey(contractAddress);\r\n\r\n // --- step 1: fetch mint info dari RPC ---\r\n const mintInfo = await connection.getParsedAccountInfo(mintAddress);\r\n const parsedMint = (mintInfo?.value?.data as any)?.parsed?.info;\r\n\r\n\r\n const decimals = parsedMint?.decimals ?? 0;\r\n const supplyRaw = parsedMint?.supply ?? \"0\";\r\n\r\n // --- step 2: coba ambil info dari TokenListProvider ---\r\n let tokenName = \"\";\r\n let tokenSymbol = \"\";\r\n let tokenLogo = \"\";\r\n\r\n try {\r\n const env = CLUSTER_ENV[cluster] ?? ENV.MainnetBeta;\r\n const provider = await new TokenListProvider().resolve();\r\n const tokenList = provider.filterByChainId(env).getList();\r\n const tokenMap = new Map(tokenList.map((item) => [item.address, item]));\r\n const token = tokenMap.get(mintAddress.toBase58());\r\n\r\n if (token) {\r\n tokenName = token.name;\r\n tokenSymbol = token.symbol;\r\n tokenLogo = token.logoURI || \"\";\r\n }\r\n } catch (err) {\r\n console.warn(\"TokenListProvider failed:\", err);\r\n }\r\n\r\n // --- step 3: fallback kalau name/symbol kosong ---\r\n if (!tokenName) tokenName = contractAddress.slice(0, 6) + \"...\";\r\n if (!tokenSymbol) tokenSymbol = \"SPL\";\r\n\r\n const data: TokenInfo = {\r\n name: tokenName,\r\n symbol: tokenSymbol,\r\n address: contractAddress,\r\n decimals,\r\n logoUrl: tokenLogo || \"\",\r\n totalSupply: (Number(supplyRaw) / 10 ** decimals).toString(),\r\n };\r\n\r\n return successResponse({ ...data });\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n\r\n private async getRecommendedFees(connection: solanaWeb3.Connection) {\r\n let computeUnitLimit = 140000; // default \r\n let computeUnitPrice = 0; // default = 0 (without priority fee)\r\n\r\n try {\r\n const fees = await connection.getRecentPrioritizationFees();\r\n if (fees.length > 0) {\r\n // Ambil median biar stabil\r\n const sorted = fees.map(f => f.prioritizationFee).sort((a, b) => a - b);\r\n computeUnitPrice = sorted[Math.floor(sorted.length / 2)] || 0;\r\n }\r\n } catch (err) {\r\n console.warn(\"Failed to fetch prioritization fees, fallback to defaults\");\r\n }\r\n\r\n return { computeUnitLimit, computeUnitPrice };\r\n }\r\n}\r\n","// src/services/wallet-registry.ts\r\nimport { EvmWallet, BtcWallet, SolWallet } from \"./index\";\r\n\r\nexport const WalletRegistry = {\r\n EVM: EvmWallet,\r\n BTC: BtcWallet,\r\n SOL: SolWallet,\r\n};\r\n\r\nexport type WalletTypes = keyof typeof WalletRegistry;\r\n","import { WalletRegistry, WalletTypes } from \"../services/wallet-registry\";\r\nimport { DexConfig } from \"../types\";\r\n\r\n\r\ninterface ClientConfig<T extends WalletTypes> {\r\n network: T;\r\n chainId?: string;\r\n rpcUrl?: string;\r\n}\r\n\r\nexport class CryptoClientSdk<T extends WalletTypes> {\r\n private network: T;\r\n private chainId?: string;\r\n private rpcUrl?: string;\r\n\r\n constructor({ network, chainId, rpcUrl }: ClientConfig<T>) {\r\n this.network = network;\r\n this.chainId = chainId;\r\n this.rpcUrl = rpcUrl;\r\n }\r\n\r\n getWallet(): InstanceType<(typeof WalletRegistry)[T]> {\r\n const WalletClass = WalletRegistry[this.network];\r\n\r\n const config: DexConfig = {\r\n chainId: this.chainId,\r\n rpcUrl: this.rpcUrl,\r\n };\r\n\r\n return new WalletClass(config) as InstanceType<(typeof WalletRegistry)[T]>;\r\n }\r\n}"],"names":["DexAPI","config","id","explorer","defaultSlippage","maxSlippage","confirmationTimeout","maxRetries","computeUnits","networks","_extends","defaultNetworkConfigs","_proto","prototype","getNetworkConfig","chainId","networkConfig","_this$config$networks","Error","BaseWallet","timeout","dex","generateMnemonic","_generateMnemonic","_asyncToGenerator","_regenerator","m","_callee","numWords","strength","_context","a","bip39","_x","apply","arguments","_createClass","key","get","successResponse","args","parseAmount","amount","decimals","bn","BigNumber","multiplier","pow","BigInt","times","toFixed","formatAmount","raw","toString","divisor","dividedBy","toNumber","parseEther","v","formatEther","parseGwei","formatGwei","provider","rpcUrl","ethers","JsonRpcProvider","DEFAULT_PRIORITY","EvmWallet","_BaseWallet","_this","call","wallet","EthWalletOkx","_inheritsLoose","getContract","_getContract","_ref","contractAddress","privateKey","abi","providerInstance","gasFeeData","nonce","contract","signer","code","_t","w","n","getFeeData","Wallet","getAddress","getTransactionCount","Contract","erc20Abi","getCode","generateWallet","_generateWallet","_callee2","_ref2","mnemonic","derivationPath","hdPath","getMnemonic","derivePrivateKey","_yield$this$wallet$ge","address","publicKey","_t2","_context2","getDerivedPrivateKey","getNewAddress","_x2","getBalance","_getBalance","_callee3","_ref3","_yield$this$getContra","_balance","balance","_context3","balanceOf","_rawBalance","_decimal","_x3","transfer","_transfer","_callee4","_ref4","_yield$this$getContra2","recipientAddress","prio","max","value","gasLimit","noFeeProvided","estimate","fee","signParams","signedTx","broadcast","_t3","_context4","_objectWithoutPropertiesLoose","_excluded","validAddress","isValid","maxPriorityFeePerGas","maxFeePerGas","gasPrice","estimateGas","data","model","fees","regular","buildSignParams","signTransaction","broadcastTransaction","_x4","getTransaction","_getTransaction","_callee5","_ref5","hash","withReceipt","_yield$this$getContra3","_yield$Promise$all","_tx","receipt","memo","tx","_t4","_context5","p","Promise","all","getTransactionReceipt","toUtf8String","transaction","_x5","getTokenInfo","_getTokenInfo","_callee6","_ref6","_yield$this$getContra4","_yield$Promise$all2","name","symbol","totalSupply","_context6","_x6","smartContractCall","_smartContractCall","_callee7","_args$rpcUrl","_yield$this$getContra5","overrides","_t5","_context7","contractAbi","methodType","params","length","method","concat","_x7","_estimateGas","_callee8","_ref7","_yield$this$getContra6","_block$baseFeePerGas","_feeData$maxPriorityF","network","_yield$Promise$all3","feeData","applyMultiplier","isEip1559","baseGasPrice","regularGasPrice","expressGasPrice","instantGasPrice","_regularFee","_expressFee","_instantFee","baseFee","priorityFee","block","regularPriority","regularMaxFee","expressPriority","expressMaxFee","instantPriority","instantMaxFee","MAX_GAS_GWEI","cap","regularFee","expressFee","instantFee","_t6","_context8","getNetwork","Number","to","hexlify","toUtf8Bytes","base","mul","Math","floor","gasPriceGwei","express","instant","getBlock","baseFeePerGas","baseFeeGwei","priorityFeeGwei","perCoin","_x8","_buildSignParams","_callee9","_ref8","txBase","_t7","_t8","_t9","_t0","_t1","_t10","_t11","_t12","_context9","currentChain","type","_x9","BtcWallet","cluster","TBtcWallet","BtcWalletOkxm","solanaWeb3","ACCOUNT_LAYOUT","BufferLayout","CLUSTER_ENV","ENV","MainnetBeta","Testnet","Devnet","SolWallet","SolWalletOkx","connection","mintPubkey","tokenAccountAddress","accountInfo","rawBalance","getAssociatedTokenAddress","getAccountInfo","getTokenAccountBalance","_args$amount2","fromAccount","_yield$this$getRecomm","computeUnitLimit","computeUnitPrice","_yield$connection$get","blockhash","_args$amount","fromPubkey","recipientPubkey","fromTokenAccount","recipientTokenAccount","fromTokenBal","mintAccountInfo","parsed","recipientAtaInfo","recipientHasATA","shouldCreateATA","rawTokenAmount","_signedTx","_rawTx","txid","lamports","solParams","rawTx","getRecommendedFees","parseInt","getLatestBlockhash","getParsedAccountInfo","info","createAssociatedAddress","round","payer","from","blockHash","mint","decimal","token2022","fromBase58","sendRawTransaction","skipPreflight","_ref4$cluster","_mintInfo$value","_parsedMint$decimals","_parsedMint$supply","mintAddress","mintInfo","parsedMint","supplyRaw","tokenName","tokenSymbol","tokenLogo","_CLUSTER_ENV$cluster","env","_provider","tokenList","tokenMap","token","supply","TokenListProvider","resolve","filterByChainId","getList","Map","map","item","toBase58","logoURI","console","warn","slice","logoUrl","_getRecommendedFees","sorted","getRecentPrioritizationFees","f","prioritizationFee","sort","b","WalletRegistry","EVM","BTC","SOL","CryptoClientSdk","getWallet","WalletClass"],"mappings":"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"}
1
+ {"version":3,"file":"crypto-wallet-sdk.esm.js","sources":["../src/api/dex.ts","../src/services/base/wallet.ts","../src/utils/response.ts","../src/utils/amount.ts","../src/utils/evmUnits.ts","../src/services/evm/wallet.ts","../src/services/btc/wallet.ts","../src/services/sol/wallet.ts","../src/services/wallet-registry.ts","../src/client/index.ts"],"sourcesContent":["// src/api/dex.ts\r\nimport {\r\n DexConfig,\r\n NetworkConfigs,\r\n ChainConfig,\r\n} from \"./../types\";\r\n\r\nexport class DexAPI {\r\n private readonly defaultNetworkConfigs: NetworkConfigs = {\r\n \"1\": { // Ethereum Mainnet\r\n id: \"1\",\r\n explorer: \"https://etherscan.io/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"11155111\": { // Ethereum Sepolia\r\n id: \"11155111\",\r\n explorer: \"https://sepolia.etherscan.io/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"56\": { // Binance Smart Chain\r\n id: \"56\",\r\n explorer: \"https://bscscan.com/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"97\": { // Binance Smart Chain Testnet\r\n id: \"97\",\r\n explorer: \"https://testnet.bscscan.com/\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"501\": {\r\n id: \"501\",\r\n explorer: \"https://web3.okx.com/explorer/sol/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n computeUnits: 300000,\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"784\": {\r\n id: \"784\",\r\n explorer: \"https://web3.okx.com/explorer/sui/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"43114\": { // Avalanche C-Chain\r\n id: \"43114\",\r\n explorer: \"https://web3.okx.com/explorer/avax/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n\r\n \"137\": { // Polygon Mainnet\r\n id: \"137\",\r\n explorer: \"https://web3.okx.com/explorer/polygon/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"80002\": { // Polygon Testnet\r\n id: \"80002\",\r\n explorer: \"https://amoy.polygonscan.com\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"146\": { // Sonic Mainnet\r\n id: \"146\",\r\n explorer: \"https://web3.okx.com/explorer/sonic/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"8453\": { // Base Mainnet\r\n id: \"8453\",\r\n explorer: \"https://web3.okx.com/explorer/base/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"196\": { // X Layer Mainnet\r\n id: \"196\",\r\n explorer: \"https://web3.okx.com/explorer/x-layer/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"10\": { // Optimism\r\n id: \"10\",\r\n explorer: \"https://web3.okx.com/explorer/optimism/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"42161\": { // Arbitrum\r\n id: \"42161\",\r\n explorer: \"https://web3.okx.com/explorer/arbitrum/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n\r\n \"100\": { // Gnosis\r\n id: \"100\",\r\n explorer: \"https://web3.okx.com/explorer/gnosis/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"169\": { // Manta Pacific\r\n id: \"169\",\r\n explorer: \"https://web3.okx.com/explorer/manta/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"250\": { // Fantom Opera\r\n id: \"250\",\r\n explorer: \"https://web3.okx.com/explorer/ftm/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"324\": { // zkSync Era\r\n id: \"324\",\r\n explorer: \"https://web3.okx.com/explorer/zksync/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"1101\": { // Polygon zkEVM\r\n id: \"1101\",\r\n explorer: \"https://web3.okx.com/explorer/polygon-zkevm/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"5000\": { // Mantle\r\n id: \"5000\",\r\n explorer: \"https://web3.okx.com/explorer/mantle/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"25\": { // Cronos\r\n id: \"25\",\r\n explorer: \"https://cronoscan.com/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"534352\": { // Scroll\r\n id: \"534352\",\r\n explorer: \"https://web3.okx.com/explorer/scroll/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"59144\": { // Linea\r\n id: \"59144\",\r\n explorer: \"https://web3.okx.com/explorer/linea/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"1088\": { // Metis\r\n id: \"1088\",\r\n explorer: \"https://web3.okx.com/explorer/metis/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"1030\": { // Conflux\r\n id: \"1030\",\r\n explorer: \"https://www.confluxscan.io/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"81457\": { // Blast\r\n id: \"81457\",\r\n explorer: \"https://web3.okx.com/explorer/blast/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"7000\": { // Zeta Chain\r\n id: \"7000\",\r\n explorer: \"https://explorer.zetachain.com/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n \"66\": { // OKT Chain\r\n id: \"66\",\r\n explorer: \"https://www.okx.com/web3/explorer/oktc/tx\",\r\n defaultSlippage: \"0.005\",\r\n maxSlippage: \"1\",\r\n confirmationTimeout: 60000,\r\n maxRetries: 3,\r\n },\r\n\r\n };\r\n\r\n constructor(private readonly config: DexConfig) {\r\n this.config.networks = {\r\n ...this.defaultNetworkConfigs,\r\n ...(config.networks || {}),\r\n };\r\n }\r\n\r\n public getNetworkConfig(chainId: string): ChainConfig {\r\n const networkConfig = this.config.networks?.[chainId];\r\n if (!networkConfig) {\r\n throw new Error(`Network configuration not found for chain ${chainId}`);\r\n }\r\n return networkConfig;\r\n }\r\n\r\n\r\n}","import { DexAPI } from \"./../../api/dex\";\r\nimport { DexConfig, ChainConfig } from \"./../../types\";\r\nimport { bip39 } from \"@okxweb3/crypto-lib\";\r\n\r\nabstract class BaseWallet {\r\n\r\n public config: DexConfig;\r\n public dex: DexAPI;\r\n\r\n constructor(config: DexConfig) {\r\n this.config = {\r\n timeout: 30000,\r\n ...config,\r\n };\r\n\r\n this.dex = new DexAPI(this.config);\r\n }\r\n\r\n public get currentChain(): ChainConfig {\r\n if (!this.config.chainId) throw new Error(\"chainId not set in config\");\r\n return this.dex.getNetworkConfig(this.config.chainId);\r\n }\r\n\r\n public async generateMnemonic(numWords: number = 12): Promise<string> {\r\n const strength = (numWords / 3) * 32;\r\n return bip39.generateMnemonic(strength);\r\n }\r\n}\r\n\r\nexport { BaseWallet }","import { IResponse } from './../types';\r\n\r\nexport const successResponse = (args: IResponse): IResponse => {\r\n return args;\r\n};\r\n","// src/utils/amount.ts\r\nimport BigNumber from \"bignumber.js\";\r\n\r\n/**\r\n * Convert human-readable amount → raw integer by decimals\r\n * ex: 0.1 USDC (decimals 6) => 100000\r\n */\r\nexport const parseAmount = (amount: string | number, decimals: number): bigint => {\r\n const bn = new BigNumber(amount);\r\n const multiplier = new BigNumber(10).pow(decimals);\r\n return BigInt(bn.times(multiplier).toFixed(0));\r\n};\r\n\r\n/**\r\n * Convert raw amount → human-readable number by decimals\r\n * ex: 100000 (decimals 6) => 0.1\r\n */\r\nexport const formatAmount = (raw: bigint | string, decimals: number): number => {\r\n const bn = new BigNumber(raw.toString());\r\n const divisor = new BigNumber(10).pow(decimals);\r\n return bn.dividedBy(divisor).toNumber();\r\n};\r\n","// src/utils/evmUnits.ts\r\nimport { parseAmount, formatAmount } from \"./amount\";\r\n\r\n// Ether = 18 decimals\r\nexport const parseEther = (v: string | number) => parseAmount(v, 18);\r\nexport const formatEther = (v: bigint | string) => formatAmount(v, 18);\r\n\r\n// Gwei = 9 decimals\r\nexport const parseGwei = (v: string | number) => parseAmount(v, 9);\r\nexport const formatGwei = (v: bigint | string) => formatAmount(v, 9);\r\n\r\n// Wei = 0 decimals (identity, tapi biar konsisten)\r\nexport const parseWei = (v: string | number) => parseAmount(v, 0);\r\nexport const formatWei = (v: bigint | string) => formatAmount(v, 0);\r\n","import { BaseWallet } from \"../base/index\";\r\nimport { DexConfig } from \"../../types\";\r\nimport { BigNumber } from \"@okxweb3/crypto-lib\";\r\nimport { EthWallet as EthWalletOkx } from \"@okxweb3/coin-ethereum\";\r\nimport { GenerateWalletPayload, TokenInfo, IResponse } from \"./../../types\";\r\nimport { successResponse, formatAmount, parseAmount, parseGwei, formatGwei, formatEther, parseEther } from \"./../../utils\";\r\nimport { GetContract, BalancePayload, TransferPayload, GetTransactionPayload, ISmartContractCallPayload, SignerPayload, GetErcTokenInfoPayload, estimateGasPayload } from \"./types\";\r\nimport { ethers } from \"ethers\";\r\nimport erc20Abi from \"./abi/erc20.json\";\r\n\r\nconst provider = (rpcUrl?: string) => new ethers.JsonRpcProvider(rpcUrl);\r\n\r\nconst DEFAULT_PRIORITY = \"0.1\";\r\nconst DEFAULT_MAXFEE = \"3\";\r\n\r\nexport class EvmWallet extends BaseWallet {\r\n\r\n private wallet: EthWalletOkx;\r\n\r\n constructor(config: DexConfig) {\r\n super(config)\r\n this.wallet = new EthWalletOkx();\r\n }\r\n\r\n async getContract({ contractAddress, rpcUrl, privateKey, abi }: GetContract) {\r\n if (!rpcUrl) throw new Error(\"RPC URL is required\");\r\n\r\n const providerInstance = provider(rpcUrl ?? this.config.rpcUrl);\r\n const gasFeeData = await providerInstance.getFeeData();\r\n\r\n let nonce, contract, signer;\r\n\r\n\r\n if (privateKey) {\r\n signer = new ethers.Wallet(privateKey, providerInstance);\r\n nonce = await providerInstance.getTransactionCount(\r\n await signer.getAddress(),\r\n \"pending\"\r\n );\r\n }\r\n\r\n if (contractAddress) {\r\n contract = new ethers.Contract(\r\n contractAddress,\r\n abi || erc20Abi,\r\n signer || providerInstance\r\n );\r\n\r\n const code = await providerInstance.getCode(contractAddress);\r\n if (code === \"0x\") {\r\n throw new Error(\"Address is not a contract\");\r\n }\r\n }\r\n\r\n return { contract, signer, gasFeeData, nonce, providerInstance };\r\n }\r\n\r\n async generateWallet({ mnemonic, privateKey, derivationPath }: GenerateWalletPayload): Promise<IResponse> {\r\n const hdPath = derivationPath || \"m/44'/60'/0'/0/0\";\r\n\r\n if (mnemonic && privateKey) {\r\n throw new Error(\"Provide either mnemonic or privateKey, not both\");\r\n }\r\n\r\n let derivePrivateKey: string;\r\n\r\n if (privateKey) {\r\n derivePrivateKey = privateKey;\r\n } else if (mnemonic) {\r\n derivePrivateKey = await this.wallet.getDerivedPrivateKey({ mnemonic, hdPath });\r\n } else {\r\n derivePrivateKey = await this.wallet.getRandomPrivateKey();\r\n }\r\n\r\n const { address, publicKey } = await this.wallet.getNewAddress({\r\n privateKey: derivePrivateKey,\r\n });\r\n\r\n return successResponse({\r\n address,\r\n publicKey,\r\n privateKey: derivePrivateKey,\r\n });\r\n }\r\n\r\n async getBalance({ rpcUrl, contractAddress, address }: BalancePayload): Promise<IResponse> {\r\n const { contract, providerInstance } = await this.getContract({ rpcUrl: rpcUrl ?? this.config.rpcUrl, contractAddress });\r\n\r\n if (contract) {\r\n const decimals = await contract.decimals();\r\n const balance = await contract.balanceOf(address);\r\n return successResponse({\r\n balance: formatAmount(balance.toString(), decimals),\r\n _rawBalance: balance.toString(),\r\n _decimal: decimals,\r\n });\r\n }\r\n\r\n const balance = await providerInstance.getBalance(address);\r\n\r\n return successResponse({\r\n balance: formatAmount(balance.toString(), 18),\r\n _rawBalance: balance.toString(),\r\n _decimal: 18,\r\n });\r\n }\r\n\r\n async transfer({ privateKey, contractAddress, rpcUrl, ...args }: TransferPayload): Promise<IResponse> {\r\n\r\n const { contract, providerInstance, gasFeeData, nonce, signer } = await this.getContract({\r\n rpcUrl: rpcUrl ?? this.config.rpcUrl,\r\n privateKey,\r\n contractAddress,\r\n });\r\n\r\n // =========================\r\n // VALIDATE ADDRESS\r\n // =========================\r\n const recipientAddress = await this.wallet.validAddress({\r\n address: args.recipientAddress\r\n });\r\n\r\n if (!recipientAddress.isValid) {\r\n throw new Error(\"recipient address not valid\");\r\n }\r\n\r\n // =========================\r\n // VALIDATE FEE INPUT\r\n // =========================\r\n if (args.maxPriorityFeePerGas && args.maxFeePerGas) {\r\n const prio = BigInt(args.maxPriorityFeePerGas);\r\n const max = BigInt(args.maxFeePerGas);\r\n if (max < prio) {\r\n throw new Error(\"maxFeePerGas must be >= maxPriorityFeePerGas\");\r\n }\r\n }\r\n\r\n if (args.gasPrice && (args.maxFeePerGas || args.maxPriorityFeePerGas)) {\r\n throw new Error(\"Cannot mix gasPrice with EIP-1559 fields\");\r\n }\r\n\r\n // =========================\r\n // BUILD TX DATA\r\n // =========================\r\n let txTo: string;\r\n let txData: string;\r\n let txValue: bigint;\r\n let gasLimit: bigint;\r\n\r\n if (contractAddress) {\r\n // ===== ERC20 TRANSFER =====\r\n if (!contract) throw new Error(\"contract not valid\");\r\n\r\n const decimals = await contract.decimals();\r\n const amount = parseAmount(args.amount.toString(), decimals);\r\n\r\n txData = contract.interface.encodeFunctionData(\r\n \"transfer\",\r\n [args.recipientAddress, amount]\r\n );\r\n\r\n txTo = contractAddress;\r\n txValue = 0n;\r\n\r\n gasLimit = args.gasLimit\r\n ? BigInt(args.gasLimit)\r\n : await providerInstance.estimateGas({\r\n from: await signer!.getAddress(),\r\n to: contractAddress,\r\n data: txData,\r\n });\r\n\r\n } else {\r\n // ===== NATIVE TRANSFER =====\r\n txTo = args.recipientAddress;\r\n txValue = parseEther(args.amount.toString());\r\n\r\n txData = args.data\r\n ? ethers.hexlify(ethers.toUtf8Bytes(args.data))\r\n : '0x';\r\n\r\n gasLimit = args.gasLimit\r\n ? BigInt(args.gasLimit)\r\n : 21000n;\r\n }\r\n\r\n // =========================\r\n // AUTO ESTIMATE FEE\r\n // =========================\r\n const noFeeProvided =\r\n !args.gasPrice &&\r\n !args.maxFeePerGas &&\r\n !args.maxPriorityFeePerGas;\r\n\r\n if (noFeeProvided && !contractAddress) {\r\n const estimate = await this.estimateGas({\r\n rpcUrl: rpcUrl ?? this.config.rpcUrl,\r\n recipientAddress: txTo,\r\n amount: args.amount.toString(),\r\n data: txData !== '0x' ? txData : undefined,\r\n });\r\n\r\n gasLimit = BigInt(estimate.gasLimit);\r\n\r\n if (estimate.model === \"LEGACY\") {\r\n args.gasPrice = estimate.gasPrice!;\r\n return this.transfer({ privateKey, contractAddress, rpcUrl, ...args });\r\n }\r\n\r\n const fee = estimate.fees.regular;\r\n args.maxFeePerGas = fee.maxFeePerGas;\r\n args.maxPriorityFeePerGas = fee.maxPriorityFeePerGas;\r\n }\r\n\r\n // =========================\r\n // SIGN & SEND\r\n // =========================\r\n const signParams = await this.buildSignParams({\r\n privateKey,\r\n nonce,\r\n gasFeeData,\r\n txTo,\r\n txData,\r\n txValue,\r\n gasLimit,\r\n args\r\n });\r\n\r\n const signedTx = await this.wallet.signTransaction(signParams);\r\n const broadcast = await providerInstance.broadcastTransaction(signedTx);\r\n\r\n return successResponse({ ...broadcast });\r\n }\r\n\r\n\r\n async getTransaction({ hash, rpcUrl, withReceipt }: GetTransactionPayload): Promise<IResponse> {\r\n const { providerInstance } = await this.getContract({ rpcUrl: rpcUrl ?? this.config.rpcUrl });\r\n\r\n try {\r\n if (withReceipt) {\r\n const [tx, receipt] = await Promise.all([\r\n providerInstance.getTransaction(hash),\r\n providerInstance.getTransactionReceipt(hash),\r\n ]);\r\n\r\n const memo = tx?.data && tx.data !== \"0x\"\r\n ? ethers.toUtf8String(tx.data)\r\n : null;\r\n\r\n return successResponse({\r\n transaction: tx,\r\n receipt,\r\n memo,\r\n });\r\n }\r\n\r\n const tx = await providerInstance.getTransaction(hash);\r\n\r\n return successResponse({\r\n transaction: tx,\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n async getTokenInfo({ contractAddress, rpcUrl }: GetErcTokenInfoPayload): Promise<IResponse> {\r\n const { contract } = await this.getContract({ contractAddress, rpcUrl: rpcUrl ?? this.config.rpcUrl, });\r\n\r\n if (contract) {\r\n const [name, symbol, decimals, totalSupply] = await Promise.all([\r\n contract.name(),\r\n contract.symbol(),\r\n contract.decimals(),\r\n contract.totalSupply(),\r\n ]);\r\n\r\n const data: TokenInfo = {\r\n name,\r\n symbol,\r\n decimals,\r\n totalSupply: formatAmount(totalSupply.toString(), decimals).toString(),\r\n\r\n };\r\n return successResponse({ ...data });\r\n }\r\n\r\n throw new Error('Contract not found');\r\n };\r\n\r\n async smartContractCall(args: ISmartContractCallPayload): Promise<IResponse> {\r\n const { contract, gasFeeData, nonce } = await this.getContract({\r\n rpcUrl: args.rpcUrl ?? this.config.rpcUrl,\r\n contractAddress: args.contractAddress,\r\n abi: args.contractAbi,\r\n privateKey: args.privateKey,\r\n });\r\n\r\n try {\r\n let tx;\r\n let overrides = {} as any;\r\n\r\n if (args.methodType === 'read') {\r\n overrides = {};\r\n } else if (args.methodType === 'write') {\r\n overrides = {\r\n gasPrice: args.gasPrice\r\n ? parseGwei(args.gasPrice)\r\n : gasFeeData?.gasPrice,\r\n\r\n nonce: args.nonce || nonce,\r\n value: args.value ? parseEther(args.value.toString()) : 0,\r\n };\r\n\r\n if (args.gasLimit) {\r\n overrides.gasLimit = args.gasLimit;\r\n }\r\n }\r\n\r\n if (args.params.length > 0) {\r\n tx = await contract?.[args.method](...args.params, overrides);\r\n } else {\r\n tx = await contract?.[args.method](overrides);\r\n }\r\n\r\n return successResponse({\r\n data: tx,\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n\r\n async estimateGas({ rpcUrl, recipientAddress, amount, data }: estimateGasPayload): Promise<IResponse> {\r\n const { providerInstance } = await this.getContract({ rpcUrl: rpcUrl ?? this.config.rpcUrl });\r\n\r\n try {\r\n\r\n const network = await providerInstance.getNetwork();\r\n const chainId = Number(network.chainId);\r\n\r\n const tx = {\r\n to: recipientAddress,\r\n value: parseEther(amount.toString()),\r\n data: data ? ethers.hexlify(ethers.toUtf8Bytes(data as string)) : '0x',\r\n };\r\n\r\n const [feeData, gasLimit] = await Promise.all([\r\n providerInstance.getFeeData(),\r\n providerInstance.estimateGas(tx),\r\n ]);\r\n\r\n\r\n\r\n const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = feeData;\r\n\r\n const applyMultiplier = (base: bigint, mul: number) =>\r\n (base * BigInt(Math.floor(mul * 10))) / 10n;\r\n\r\n // feeData IS AUTO CHECK EIP OR LEGACY\r\n const isEip1559 = maxFeePerGas !== null && maxPriorityFeePerGas !== null;\r\n\r\n if (!isEip1559) {\r\n const baseGasPrice = BigInt(gasPrice ?? 0n);\r\n\r\n const regularGasPrice = baseGasPrice; // wallet \"slow\"\r\n const expressGasPrice = (baseGasPrice * 110n) / 100n; // +10%\r\n const instantGasPrice = (baseGasPrice * 125n) / 100n; // +25%\r\n\r\n const regularFee = gasLimit * regularGasPrice;\r\n const expressFee = gasLimit * expressGasPrice;\r\n const instantFee = gasLimit * instantGasPrice;\r\n\r\n return successResponse({\r\n chainId,\r\n gasLimit: gasLimit.toString(),\r\n gasPrice: baseGasPrice.toString(),\r\n gasPriceGwei: formatGwei(baseGasPrice),\r\n model: \"LEGACY\",\r\n fees: {\r\n regular: formatEther(regularFee),\r\n express: formatEther(expressFee),\r\n instant: formatEther(instantFee),\r\n }\r\n });\r\n }\r\n\r\n let baseFee: bigint;\r\n let priorityFee: bigint;\r\n\r\n const block = await providerInstance.getBlock(\"latest\");\r\n\r\n baseFee = BigInt(block!.baseFeePerGas ?? 0n);\r\n priorityFee = BigInt(\r\n feeData.maxPriorityFeePerGas ?? parseGwei(DEFAULT_PRIORITY)\r\n );\r\n\r\n const regularPriority = priorityFee;\r\n const regularMaxFee = baseFee + regularPriority;\r\n\r\n const expressPriority = applyMultiplier(priorityFee, 1.2);\r\n const expressMaxFee = applyMultiplier(baseFee, 1.2) + expressPriority;\r\n\r\n const instantPriority = applyMultiplier(priorityFee, 1.5);\r\n const instantMaxFee = applyMultiplier(baseFee, 1.5) + instantPriority;\r\n\r\n const MAX_GAS_GWEI = 100n * 1_000_000_000n;\r\n const cap = (v: bigint) => (v > MAX_GAS_GWEI ? MAX_GAS_GWEI : v);\r\n\r\n const regularFee = gasLimit * cap(regularMaxFee);\r\n const expressFee = gasLimit * cap(expressMaxFee);\r\n const instantFee = gasLimit * cap(instantMaxFee);\r\n\r\n return successResponse({\r\n chainId,\r\n gasLimit: gasLimit.toString(),\r\n baseFeeGwei: formatGwei(baseFee),\r\n priorityFeeGwei: formatGwei(priorityFee),\r\n model: \"EIP1559\",\r\n fees: {\r\n regular: {\r\n perCoin: formatEther(regularFee),\r\n maxPriorityFeePerGas: regularPriority.toString(),\r\n maxFeePerGas: regularMaxFee.toString(),\r\n },\r\n express: {\r\n perCoin: formatEther(expressFee),\r\n maxPriorityFeePerGas: expressPriority.toString(),\r\n maxFeePerGas: expressMaxFee.toString(),\r\n },\r\n instant: {\r\n perCoin: formatEther(instantFee),\r\n maxPriorityFeePerGas: instantPriority.toString(),\r\n maxFeePerGas: instantMaxFee.toString(),\r\n },\r\n }\r\n });\r\n\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n private async buildSignParams({ privateKey, nonce, gasFeeData, txTo, txData, txValue, gasLimit, args,\r\n }: SignerPayload) {\r\n\r\n const txBase = {\r\n to: txTo,\r\n value: BigNumber(txValue.toString()),\r\n data: txData,\r\n nonce: args.nonce ?? await nonce,\r\n gasLimit: BigNumber(gasLimit.toString()),\r\n chainId: Number(this.currentChain.id),\r\n };\r\n\r\n // =========================\r\n // LEGACY TX\r\n // =========================\r\n if (args.gasPrice) {\r\n return {\r\n privateKey,\r\n data: {\r\n ...txBase,\r\n gasPrice: BigNumber(\r\n parseGwei(args.gasPrice).toString()\r\n ),\r\n type: 0,\r\n },\r\n };\r\n }\r\n\r\n // =========================\r\n // EIP-1559 TX\r\n // =========================\r\n return {\r\n privateKey,\r\n data: {\r\n ...txBase,\r\n type: 2,\r\n maxPriorityFeePerGas: BigNumber(\r\n args.maxPriorityFeePerGas ??\r\n gasFeeData.maxPriorityFeePerGas!.toString()\r\n ),\r\n maxFeePerGas: BigNumber(\r\n args.maxFeePerGas ??\r\n gasFeeData.maxFeePerGas!.toString()\r\n ),\r\n },\r\n };\r\n }\r\n\r\n}\r\n","import { BaseWallet } from \"../base/index\";\r\nimport { DexConfig } from \"../../types\";\r\nimport { BtcWallet as BtcWalletOkxm, TBtcWallet } from \"@okxweb3/coin-bitcoin\";\r\nimport { IResponse, GenerateWalletPayload } from \"./../../types\";\r\n\r\nconst successResponse = (args: IResponse): IResponse => args;\r\n\r\nexport class BtcWallet extends BaseWallet {\r\n\r\n private wallet: BtcWalletOkxm | TBtcWallet;\r\n\r\n constructor(config: DexConfig) {\r\n super(config);\r\n this.wallet = this.config.cluster === \"testnet\" ? new TBtcWallet() : new BtcWalletOkxm();\r\n }\r\n\r\n async generateWallet({ mnemonic, derivationPath }: GenerateWalletPayload): Promise<IResponse> {\r\n const hdPath = derivationPath || \"m/44'/0'/0'/0/0\";\r\n const getMnemonic = mnemonic ?? (await this.generateMnemonic(12));\r\n\r\n const derivePrivateKey = await this.wallet.getDerivedPrivateKey({ mnemonic: getMnemonic, hdPath });\r\n const { address, publicKey } = await this.wallet.getNewAddress({ privateKey: derivePrivateKey });\r\n\r\n return successResponse({ address, publicKey, privateKey: derivePrivateKey });\r\n }\r\n\r\n\r\n}\r\n","import { BaseWallet } from \"../base/index\";\r\nimport { DexConfig } from \"../../types\";\r\nimport { base } from \"@okxweb3/crypto-lib\";\r\nimport { SolWallet as SolWalletOkx } from \"@okxweb3/coin-solana\";\r\nimport * as solanaWeb3 from '@solana/web3.js';\r\nimport { getAssociatedTokenAddress } from '@solana/spl-token';\r\nimport { ENV, TokenListProvider } from \"@solana/spl-token-registry\";\r\nimport { successResponse, parseAmount, formatAmount } from \"./../../utils\";\r\nimport { IResponse, GenerateWalletPayload, TokenInfo } from \"./../../types\";\r\nimport { BalanceSolanaPayload, TransferSolanaPayload, GetSplTokenInfoPayload } from \"./types\";\r\n// @ts-ignore\r\nimport * as BufferLayout from 'buffer-layout';\r\n\r\nconst provider = (rpcUrl?: string) => new solanaWeb3.Connection(rpcUrl as string);\r\n\r\nexport const ACCOUNT_LAYOUT = BufferLayout.struct([\r\n BufferLayout.blob(32, 'mint'),\r\n BufferLayout.blob(32, 'owner'),\r\n BufferLayout.nu64('amount'),\r\n BufferLayout.blob(93),\r\n]);\r\n\r\nexport const CLUSTER_ENV: Record<string, ENV> = {\r\n \"mainnet-beta\": ENV.MainnetBeta,\r\n \"testnet\": ENV.Testnet,\r\n \"devnet\": ENV.Devnet,\r\n};\r\n\r\nexport class SolWallet extends BaseWallet {\r\n\r\n private wallet: SolWalletOkx;\r\n\r\n constructor(config: DexConfig) {\r\n super(config)\r\n this.wallet = new SolWalletOkx();\r\n }\r\n\r\n async generateWallet({ mnemonic, derivationPath }: GenerateWalletPayload): Promise<IResponse> {\r\n const hdPath = derivationPath || \"m/44'/501'/0'/0'\";\r\n const getMnemonic = mnemonic ?? (await this.generateMnemonic(12));\r\n\r\n const derivePrivateKey = await this.wallet.getDerivedPrivateKey({ mnemonic: getMnemonic, hdPath });\r\n const { address, publicKey } = await this.wallet.getNewAddress({ privateKey: derivePrivateKey });\r\n\r\n return successResponse({ address, publicKey, privateKey: derivePrivateKey });\r\n }\r\n\r\n async getBalance({ rpcUrl, contractAddress, address }: BalanceSolanaPayload): Promise<IResponse> {\r\n const connection = provider(rpcUrl ?? this.config.rpcUrl);\r\n try {\r\n const recipientAddress = await this.wallet.validAddress({ address });\r\n if (!recipientAddress.isValid) throw new Error(\"address not valid\");\r\n\r\n const publicKey = new solanaWeb3.PublicKey(recipientAddress.address);\r\n if (contractAddress) {\r\n const mintPubkey = new solanaWeb3.PublicKey(contractAddress);\r\n // get token by account \r\n const tokenAccountAddress = await getAssociatedTokenAddress(mintPubkey, publicKey);\r\n const accountInfo = await connection.getAccountInfo(tokenAccountAddress);\r\n\r\n // check if account not associated with this return 0 balance \r\n if (!accountInfo) {\r\n return successResponse({\r\n balance: \"0\",\r\n });\r\n }\r\n\r\n const rawBalance = await connection.getTokenAccountBalance(tokenAccountAddress);\r\n return successResponse({\r\n balance: formatAmount(rawBalance.value.amount, rawBalance.value.decimals),\r\n _rawBalance: rawBalance.value.amount,\r\n _decimal: rawBalance.value.decimals,\r\n });\r\n }\r\n\r\n const balance = await connection.getBalance(publicKey);\r\n return successResponse({\r\n balance: formatAmount(balance.toString(), 9),\r\n _rawBalance: parseAmount(balance, 9),\r\n _decimal: 9,\r\n });\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n async transfer({ privateKey, contractAddress, rpcUrl, ...args }: TransferSolanaPayload & { createAssociatedAddress?: boolean; token2022?: boolean }): Promise<IResponse> {\r\n const connection = provider(rpcUrl ?? this.config.rpcUrl);\r\n\r\n try {\r\n // validate recipient\r\n const recipientAddress = await this.wallet.validAddress({ address: args.recipientAddress });\r\n if (!recipientAddress.isValid) throw new Error(\"address not valid\");\r\n\r\n // get sender info from privateKey using OKX wallet util\r\n const fromAccount = await this.wallet.getNewAddress({ privateKey });\r\n\r\n // recommended fees (CU)\r\n let { computeUnitLimit, computeUnitPrice } = await this.getRecommendedFees(connection);\r\n if (args.gasLimit) computeUnitLimit = args.gasLimit;\r\n if (args.gasPrice) computeUnitPrice = parseInt(args.gasPrice as any, 10);\r\n\r\n // get latest blockhash\r\n const { blockhash } = await connection.getLatestBlockhash();\r\n\r\n // ---------- SPL TOKEN FLOW ----------\r\n if (contractAddress) {\r\n const mintPubkey = new solanaWeb3.PublicKey(contractAddress);\r\n const fromPubkey = new solanaWeb3.PublicKey(fromAccount.address);\r\n const recipientPubkey = new solanaWeb3.PublicKey(recipientAddress.address);\r\n\r\n // Associated Token Accounts (computed, not necessarily exist)\r\n const fromTokenAccount = await getAssociatedTokenAddress(mintPubkey, fromPubkey);\r\n const recipientTokenAccount = await getAssociatedTokenAddress(mintPubkey, recipientPubkey);\r\n\r\n // Try to read decimals from sender token account first, fallback to token supply\r\n let decimals = 0;\r\n try {\r\n const fromTokenBal = await connection.getTokenAccountBalance(fromTokenAccount);\r\n decimals = fromTokenBal.value.decimals;\r\n } catch (err) {\r\n // fallback: try to fetch mint info (supply) to get decimals\r\n try {\r\n const mintAccountInfo = await connection.getParsedAccountInfo(mintPubkey);\r\n // parsed data path may vary; handle gracefully\r\n // if parsed exists:\r\n if (mintAccountInfo.value && (mintAccountInfo.value.data as any).parsed) {\r\n const parsed = (mintAccountInfo.value.data as any).parsed;\r\n decimals = parsed.info.decimals || 0;\r\n }\r\n } catch (err2) {\r\n // cannot determine decimals — throw explicit error\r\n throw new Error(\"Failed to determine token decimals for mint \" + contractAddress);\r\n }\r\n }\r\n\r\n // Check whether recipient ATA exists\r\n const recipientAtaInfo = await connection.getAccountInfo(recipientTokenAccount);\r\n const recipientHasATA = !!recipientAtaInfo;\r\n\r\n // decide whether to create ATA: user can pass args.createAssociatedAddress\r\n const shouldCreateATA = !!(args.createAssociatedAddress) && !recipientHasATA;\r\n\r\n // compute token amount (smallest unit)\r\n // args.amount is assumed token amount in human units (eg. 1.5 USDC)\r\n const rawTokenAmount = BigInt(Math.round((args.amount ?? 0) * (10 ** decimals)));\r\n\r\n // Build params for OKX wallet signTransaction (tokenTransfer)\r\n const params = {\r\n privateKey,\r\n data: {\r\n type: \"tokenTransfer\",\r\n payer: fromAccount.address,\r\n from: fromAccount.address,\r\n to: recipientAddress.address,\r\n blockHash: blockhash,\r\n mint: contractAddress,\r\n amount: rawTokenAmount.toString(), // send as string\r\n decimal: decimals,\r\n createAssociatedAddress: !!shouldCreateATA, // OKX SDK should create ATA if true\r\n token2022: !!args.token2022, // allow override by user\r\n computeUnitLimit,\r\n computeUnitPrice\r\n }\r\n };\r\n\r\n // sign & broadcast\r\n const signedTx = await this.wallet.signTransaction(params);\r\n // OKX returns base58 signed tx — decode and broadcast\r\n const rawTx = base.fromBase58(signedTx);\r\n const txid = await connection.sendRawTransaction(rawTx, { skipPreflight: false, maxRetries: 3 });\r\n return successResponse({ hash: txid });\r\n }\r\n\r\n // ---------- NATIVE SOL FLOW ----------\r\n const lamports = Math.round((args.amount ?? 0) * solanaWeb3.LAMPORTS_PER_SOL);\r\n\r\n const solParams = {\r\n privateKey,\r\n data: {\r\n type: \"transfer\",\r\n payer: fromAccount.address,\r\n from: fromAccount.address,\r\n to: recipientAddress.address,\r\n blockHash: blockhash,\r\n amount: lamports,\r\n computeUnitLimit,\r\n computeUnitPrice\r\n }\r\n };\r\n\r\n const signedTx = await this.wallet.signTransaction(solParams);\r\n const rawTx = base.fromBase58(signedTx);\r\n const broadcast = await connection.sendRawTransaction(rawTx, {\r\n skipPreflight: false,\r\n maxRetries: 3,\r\n });\r\n\r\n return successResponse({ hash: broadcast });\r\n } catch (error) {\r\n throw error;\r\n }\r\n }\r\n\r\n async getTokenInfo({ contractAddress, rpcUrl, cluster = \"mainnet-beta\" }: GetSplTokenInfoPayload): Promise<IResponse> {\r\n try {\r\n const connection = provider(rpcUrl ?? this.config.rpcUrl);\r\n const mintAddress = new solanaWeb3.PublicKey(contractAddress);\r\n\r\n // --- step 1: fetch mint info dari RPC ---\r\n const mintInfo = await connection.getParsedAccountInfo(mintAddress);\r\n const parsedMint = (mintInfo?.value?.data as any)?.parsed?.info;\r\n\r\n\r\n const decimals = parsedMint?.decimals ?? 0;\r\n const supplyRaw = parsedMint?.supply ?? \"0\";\r\n\r\n // --- step 2: coba ambil info dari TokenListProvider ---\r\n let tokenName = \"\";\r\n let tokenSymbol = \"\";\r\n let tokenLogo = \"\";\r\n\r\n try {\r\n const env = CLUSTER_ENV[cluster] ?? ENV.MainnetBeta;\r\n const provider = await new TokenListProvider().resolve();\r\n const tokenList = provider.filterByChainId(env).getList();\r\n const tokenMap = new Map(tokenList.map((item) => [item.address, item]));\r\n const token = tokenMap.get(mintAddress.toBase58());\r\n\r\n if (token) {\r\n tokenName = token.name;\r\n tokenSymbol = token.symbol;\r\n tokenLogo = token.logoURI || \"\";\r\n }\r\n } catch (err) {\r\n console.warn(\"TokenListProvider failed:\", err);\r\n }\r\n\r\n // --- step 3: fallback kalau name/symbol kosong ---\r\n if (!tokenName) tokenName = contractAddress.slice(0, 6) + \"...\";\r\n if (!tokenSymbol) tokenSymbol = \"SPL\";\r\n\r\n const data: TokenInfo = {\r\n name: tokenName,\r\n symbol: tokenSymbol,\r\n address: contractAddress,\r\n decimals,\r\n logoUrl: tokenLogo || \"\",\r\n totalSupply: (Number(supplyRaw) / 10 ** decimals).toString(),\r\n };\r\n\r\n return successResponse({ ...data });\r\n } catch (error) {\r\n throw error;\r\n }\r\n };\r\n\r\n private async getRecommendedFees(connection: solanaWeb3.Connection) {\r\n let computeUnitLimit = 140000; // default \r\n let computeUnitPrice = 0; // default = 0 (without priority fee)\r\n\r\n try {\r\n const fees = await connection.getRecentPrioritizationFees();\r\n if (fees.length > 0) {\r\n // Ambil median biar stabil\r\n const sorted = fees.map(f => f.prioritizationFee).sort((a, b) => a - b);\r\n computeUnitPrice = sorted[Math.floor(sorted.length / 2)] || 0;\r\n }\r\n } catch (err) {\r\n console.warn(\"Failed to fetch prioritization fees, fallback to defaults\");\r\n }\r\n\r\n return { computeUnitLimit, computeUnitPrice };\r\n }\r\n}\r\n","// src/services/wallet-registry.ts\r\nimport { EvmWallet, BtcWallet, SolWallet } from \"./index\";\r\n\r\nexport const WalletRegistry = {\r\n EVM: EvmWallet,\r\n BTC: BtcWallet,\r\n SOL: SolWallet,\r\n};\r\n\r\nexport type WalletTypes = keyof typeof WalletRegistry;\r\n","import { WalletRegistry, WalletTypes } from \"../services/wallet-registry\";\r\nimport { DexConfig } from \"../types\";\r\n\r\n\r\ninterface ClientConfig<T extends WalletTypes> {\r\n network: T;\r\n chainId?: string;\r\n rpcUrl?: string;\r\n}\r\n\r\nexport class CryptoClientSdk<T extends WalletTypes> {\r\n private network: T;\r\n private chainId?: string;\r\n private rpcUrl?: string;\r\n\r\n constructor({ network, chainId, rpcUrl }: ClientConfig<T>) {\r\n this.network = network;\r\n this.chainId = chainId;\r\n this.rpcUrl = rpcUrl;\r\n }\r\n\r\n getWallet(): InstanceType<(typeof WalletRegistry)[T]> {\r\n const WalletClass = WalletRegistry[this.network];\r\n\r\n const config: DexConfig = {\r\n chainId: this.chainId,\r\n rpcUrl: this.rpcUrl,\r\n };\r\n\r\n return new WalletClass(config) as InstanceType<(typeof WalletRegistry)[T]>;\r\n }\r\n}"],"names":["DexAPI","config","id","explorer","defaultSlippage","maxSlippage","confirmationTimeout","maxRetries","computeUnits","networks","_extends","defaultNetworkConfigs","_proto","prototype","getNetworkConfig","chainId","networkConfig","_this$config$networks","Error","BaseWallet","timeout","dex","generateMnemonic","_generateMnemonic","_asyncToGenerator","_regenerator","m","_callee","numWords","strength","_context","a","bip39","_x","apply","arguments","_createClass","key","get","successResponse","args","parseAmount","amount","decimals","bn","BigNumber","multiplier","pow","BigInt","times","toFixed","formatAmount","raw","toString","divisor","dividedBy","toNumber","parseEther","v","formatEther","parseGwei","formatGwei","provider","rpcUrl","ethers","JsonRpcProvider","DEFAULT_PRIORITY","EvmWallet","_BaseWallet","_this","call","wallet","EthWalletOkx","_inheritsLoose","getContract","_getContract","_ref","contractAddress","privateKey","abi","providerInstance","gasFeeData","nonce","contract","signer","code","_t","w","n","getFeeData","Wallet","getAddress","getTransactionCount","Contract","erc20Abi","getCode","generateWallet","_generateWallet","_callee2","_ref2","mnemonic","derivationPath","hdPath","derivePrivateKey","_yield$this$wallet$ge","address","publicKey","_context2","getDerivedPrivateKey","getRandomPrivateKey","getNewAddress","_x2","getBalance","_getBalance","_callee3","_ref3","_yield$this$getContra","_balance","balance","_context3","balanceOf","_rawBalance","_decimal","_x3","transfer","_transfer","_callee4","_ref4","_yield$this$getContra2","recipientAddress","prio","max","txTo","txData","txValue","gasLimit","noFeeProvided","estimate","fee","signParams","signedTx","broadcast","_t2","_t3","_t4","_t5","_t6","_context4","_objectWithoutPropertiesLoose","_excluded","validAddress","isValid","maxPriorityFeePerGas","maxFeePerGas","gasPrice","encodeFunctionData","estimateGas","from","to","data","hexlify","toUtf8Bytes","undefined","model","fees","regular","buildSignParams","signTransaction","broadcastTransaction","_x4","getTransaction","_getTransaction","_callee5","_ref5","hash","withReceipt","_yield$this$getContra3","_yield$Promise$all","_tx","receipt","memo","tx","_t7","_context5","p","Promise","all","getTransactionReceipt","toUtf8String","transaction","_x5","getTokenInfo","_getTokenInfo","_callee6","_ref6","_yield$this$getContra4","_yield$Promise$all2","name","symbol","totalSupply","_context6","_x6","smartContractCall","_smartContractCall","_callee7","_args$rpcUrl","_yield$this$getContra5","overrides","_t8","_context7","contractAbi","methodType","value","params","length","method","concat","_x7","_estimateGas","_callee8","_ref7","_yield$this$getContra6","_block$baseFeePerGas","_feeData$maxPriorityF","network","_yield$Promise$all3","feeData","applyMultiplier","isEip1559","baseGasPrice","regularGasPrice","expressGasPrice","instantGasPrice","_regularFee","_expressFee","_instantFee","baseFee","priorityFee","block","regularPriority","regularMaxFee","expressPriority","expressMaxFee","instantPriority","instantMaxFee","MAX_GAS_GWEI","cap","regularFee","expressFee","instantFee","_t9","_context8","getNetwork","Number","base","mul","Math","floor","gasPriceGwei","express","instant","getBlock","baseFeePerGas","baseFeeGwei","priorityFeeGwei","perCoin","_x8","_buildSignParams","_callee9","_ref8","_args$nonce","_args$maxPriorityFeeP","_args$maxFeePerGas","txBase","_t0","_t1","_t10","_t11","_t12","_t13","_t14","_context9","currentChain","type","_x9","BtcWallet","cluster","TBtcWallet","BtcWalletOkxm","getMnemonic","solanaWeb3","ACCOUNT_LAYOUT","BufferLayout","CLUSTER_ENV","ENV","MainnetBeta","Testnet","Devnet","SolWallet","SolWalletOkx","connection","mintPubkey","tokenAccountAddress","accountInfo","rawBalance","getAssociatedTokenAddress","getAccountInfo","getTokenAccountBalance","_args$amount2","fromAccount","_yield$this$getRecomm","computeUnitLimit","computeUnitPrice","_yield$connection$get","blockhash","_args$amount","fromPubkey","recipientPubkey","fromTokenAccount","recipientTokenAccount","fromTokenBal","mintAccountInfo","parsed","recipientAtaInfo","recipientHasATA","shouldCreateATA","rawTokenAmount","_signedTx","_rawTx","txid","lamports","solParams","rawTx","getRecommendedFees","parseInt","getLatestBlockhash","getParsedAccountInfo","info","createAssociatedAddress","round","payer","blockHash","mint","decimal","token2022","fromBase58","sendRawTransaction","skipPreflight","_ref4$cluster","_mintInfo$value","_parsedMint$decimals","_parsedMint$supply","mintAddress","mintInfo","parsedMint","supplyRaw","tokenName","tokenSymbol","tokenLogo","_CLUSTER_ENV$cluster","env","_provider","tokenList","tokenMap","token","supply","TokenListProvider","resolve","filterByChainId","getList","Map","map","item","toBase58","logoURI","console","warn","slice","logoUrl","_getRecommendedFees","sorted","getRecentPrioritizationFees","f","prioritizationFee","sort","b","WalletRegistry","EVM","BTC","SOL","CryptoClientSdk","getWallet","WalletClass"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { ethers } from "ethers";
2
1
  export interface GetContract {
3
2
  rpcUrl?: string;
4
3
  privateKey?: string;
@@ -45,14 +44,14 @@ export interface ISmartContractCallPayload {
45
44
  privateKey?: string;
46
45
  }
47
46
  export interface SignerPayload {
48
- args: any;
47
+ privateKey: string;
49
48
  nonce: Promise<number> | number | undefined;
50
- gasFeeData: ethers.FeeData;
51
- recipientAddress: {
52
- address: string;
53
- };
54
- value: bigint | string;
55
- contractAddress?: string;
49
+ gasFeeData: any;
50
+ txTo: string;
51
+ txData: string;
52
+ txValue: bigint;
53
+ gasLimit: bigint;
54
+ args: any;
56
55
  }
57
56
  export interface GetErcTokenInfoPayload {
58
57
  rpcUrl: string;
@@ -13,7 +13,7 @@ export declare class EvmWallet extends BaseWallet {
13
13
  nonce: number | undefined;
14
14
  providerInstance: ethers.JsonRpcProvider;
15
15
  }>;
16
- generateWallet({ mnemonic, derivationPath }: GenerateWalletPayload): Promise<IResponse>;
16
+ generateWallet({ mnemonic, privateKey, derivationPath }: GenerateWalletPayload): Promise<IResponse>;
17
17
  getBalance({ rpcUrl, contractAddress, address }: BalancePayload): Promise<IResponse>;
18
18
  transfer({ privateKey, contractAddress, rpcUrl, ...args }: TransferPayload): Promise<IResponse>;
19
19
  getTransaction({ hash, rpcUrl, withReceipt }: GetTransactionPayload): Promise<IResponse>;
@@ -23,6 +23,7 @@ export interface IResponse {
23
23
  }
24
24
  export interface GenerateWalletPayload {
25
25
  mnemonic?: string;
26
+ privateKey?: string;
26
27
  derivationPath?: string;
27
28
  }
28
29
  export interface TokenInfo {