@alphafi/alphafi-sdk 0.0.35 → 0.0.37
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/README.md +15 -0
- package/dist/cjs/common/coins.d.ts +1 -1
- package/dist/cjs/common/coins.d.ts.map +1 -1
- package/dist/cjs/common/coins.js +15 -11
- package/dist/cjs/common/coins.js.map +1 -1
- package/dist/cjs/common/constants.d.ts +436 -32
- package/dist/cjs/common/constants.d.ts.map +1 -1
- package/dist/cjs/common/constants.js +488 -56
- package/dist/cjs/common/constants.js.map +1 -1
- package/dist/cjs/common/maps.d.ts +46 -28
- package/dist/cjs/common/maps.d.ts.map +1 -1
- package/dist/cjs/common/maps.js +358 -227
- package/dist/cjs/common/maps.js.map +1 -1
- package/dist/cjs/common/types.d.ts +59 -47
- package/dist/cjs/common/types.d.ts.map +1 -1
- package/dist/cjs/common/types.js.map +1 -1
- package/dist/cjs/getAllVaults.d.ts.map +1 -1
- package/dist/cjs/getAllVaults.js +5 -2
- package/dist/cjs/getAllVaults.js.map +1 -1
- package/dist/cjs/getVaultBalances.d.ts +2 -1
- package/dist/cjs/getVaultBalances.d.ts.map +1 -1
- package/dist/cjs/getVaultBalances.js +15 -1
- package/dist/cjs/getVaultBalances.js.map +1 -1
- package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
- package/dist/cjs/graphql/getMultiReceipts.js +4 -0
- package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -4
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +20 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js +2 -2
- package/dist/cjs/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js +2 -2
- package/dist/cjs/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js +5 -7
- package/dist/cjs/sui-sdk/events/fetchRebalanceEvents.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js +11 -20
- package/dist/cjs/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js +12 -9
- package/dist/cjs/sui-sdk/functions/fetchUserVaults.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts +8 -23
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js +157 -141
- package/dist/cjs/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts +15 -10
- package/dist/cjs/sui-sdk/functions/getReceipts.d.ts.map +1 -1
- package/dist/cjs/sui-sdk/functions/getReceipts.js +274 -190
- package/dist/cjs/sui-sdk/functions/getReceipts.js.map +1 -1
- package/dist/cjs/transactions/alpha.d.ts +4 -0
- package/dist/cjs/transactions/alpha.d.ts.map +1 -0
- package/dist/cjs/transactions/alpha.js +104 -0
- package/dist/cjs/transactions/alpha.js.map +1 -0
- package/dist/cjs/transactions/bluefin.d.ts +15 -0
- package/dist/cjs/transactions/bluefin.d.ts.map +1 -0
- package/dist/cjs/transactions/bluefin.js +457 -0
- package/dist/cjs/transactions/bluefin.js.map +1 -0
- package/dist/cjs/transactions/bucket.d.ts +8 -0
- package/dist/cjs/transactions/bucket.d.ts.map +1 -0
- package/dist/cjs/transactions/bucket.js +131 -0
- package/dist/cjs/transactions/bucket.js.map +1 -0
- package/dist/cjs/transactions/cetus.d.ts +24 -0
- package/dist/cjs/transactions/cetus.d.ts.map +1 -0
- package/dist/cjs/transactions/cetus.js +554 -0
- package/dist/cjs/transactions/cetus.js.map +1 -0
- package/dist/cjs/transactions/collect_rewards.d.ts +3 -0
- package/dist/cjs/transactions/collect_rewards.d.ts.map +1 -0
- package/dist/cjs/transactions/collect_rewards.js +332 -0
- package/dist/cjs/transactions/collect_rewards.js.map +1 -0
- package/dist/cjs/transactions/deposit.d.ts +5 -0
- package/dist/cjs/transactions/deposit.d.ts.map +1 -0
- package/dist/cjs/transactions/deposit.js +57 -0
- package/dist/cjs/transactions/deposit.js.map +1 -0
- package/dist/cjs/transactions/navi.d.ts +9 -0
- package/dist/cjs/transactions/navi.d.ts.map +1 -0
- package/dist/cjs/transactions/navi.js +618 -0
- package/dist/cjs/transactions/navi.js.map +1 -0
- package/dist/cjs/transactions/withdraw.d.ts +5 -0
- package/dist/cjs/transactions/withdraw.d.ts.map +1 -0
- package/dist/cjs/transactions/withdraw.js +52 -0
- package/dist/cjs/transactions/withdraw.js.map +1 -0
- package/dist/cjs/transactions/zapDeposit.d.ts +1 -0
- package/dist/cjs/transactions/zapDeposit.d.ts.map +1 -0
- package/dist/cjs/transactions/zapDeposit.js +730 -0
- package/dist/cjs/transactions/zapDeposit.js.map +1 -0
- package/dist/cjs/utils/clmm/prices.js +9 -9
- package/dist/cjs/utils/clmm/prices.js.map +1 -1
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -1
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.js +7 -7
- package/dist/cjs/utils/getHoldersFromTransactionsUtils.js.map +1 -1
- package/dist/cjs/utils/hop.js +3 -3
- package/dist/cjs/utils/hop.js.map +1 -1
- package/dist/cjs/utils/prices.d.ts +2 -0
- package/dist/cjs/utils/prices.d.ts.map +1 -1
- package/dist/cjs/utils/prices.js +39 -0
- package/dist/cjs/utils/prices.js.map +1 -1
- package/dist/cjs/utils/userHoldings.d.ts.map +1 -1
- package/dist/cjs/utils/userHoldings.js +18 -18
- package/dist/cjs/utils/userHoldings.js.map +1 -1
- package/dist/esm/common/coins.d.ts +1 -1
- package/dist/esm/common/coins.d.ts.map +1 -1
- package/dist/esm/common/coins.js +14 -10
- package/dist/esm/common/coins.js.map +1 -1
- package/dist/esm/common/constants.d.ts +436 -32
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +488 -56
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/common/maps.d.ts +46 -28
- package/dist/esm/common/maps.d.ts.map +1 -1
- package/dist/esm/common/maps.js +355 -226
- package/dist/esm/common/maps.js.map +1 -1
- package/dist/esm/common/types.d.ts +59 -47
- package/dist/esm/common/types.d.ts.map +1 -1
- package/dist/esm/common/types.js.map +1 -1
- package/dist/esm/getAllVaults.d.ts.map +1 -1
- package/dist/esm/getAllVaults.js +5 -2
- package/dist/esm/getAllVaults.js.map +1 -1
- package/dist/esm/getVaultBalances.d.ts +2 -1
- package/dist/esm/getVaultBalances.d.ts.map +1 -1
- package/dist/esm/getVaultBalances.js +14 -1
- package/dist/esm/getVaultBalances.js.map +1 -1
- package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
- package/dist/esm/graphql/getMultiReceipts.js +4 -0
- package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
- package/dist/esm/index.d.ts +7 -4
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +7 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.d.ts.map +1 -1
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js +4 -4
- package/dist/esm/sui-sdk/events/fetchAfterTransactionEvents.js.map +1 -1
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.d.ts.map +1 -1
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js +4 -4
- package/dist/esm/sui-sdk/events/fetchAutoCompoundingEvents.js.map +1 -1
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.d.ts.map +1 -1
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js +7 -9
- package/dist/esm/sui-sdk/events/fetchRebalanceEvents.js.map +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js +11 -20
- package/dist/esm/sui-sdk/functions/fetchUserVaultBalances.js.map +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js +13 -10
- package/dist/esm/sui-sdk/functions/fetchUserVaults.js.map +1 -1
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts +8 -23
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js +158 -144
- package/dist/esm/sui-sdk/functions/getPortfolioAmounts.js.map +1 -1
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts +15 -10
- package/dist/esm/sui-sdk/functions/getReceipts.d.ts.map +1 -1
- package/dist/esm/sui-sdk/functions/getReceipts.js +266 -186
- package/dist/esm/sui-sdk/functions/getReceipts.js.map +1 -1
- package/dist/esm/transactions/alpha.d.ts +4 -0
- package/dist/esm/transactions/alpha.d.ts.map +1 -0
- package/dist/esm/transactions/alpha.js +99 -0
- package/dist/esm/transactions/alpha.js.map +1 -0
- package/dist/esm/transactions/bluefin.d.ts +15 -0
- package/dist/esm/transactions/bluefin.d.ts.map +1 -0
- package/dist/esm/transactions/bluefin.js +450 -0
- package/dist/esm/transactions/bluefin.js.map +1 -0
- package/dist/esm/transactions/bucket.d.ts +8 -0
- package/dist/esm/transactions/bucket.d.ts.map +1 -0
- package/dist/esm/transactions/bucket.js +127 -0
- package/dist/esm/transactions/bucket.js.map +1 -0
- package/dist/esm/transactions/cetus.d.ts +24 -0
- package/dist/esm/transactions/cetus.d.ts.map +1 -0
- package/dist/esm/transactions/cetus.js +541 -0
- package/dist/esm/transactions/cetus.js.map +1 -0
- package/dist/esm/transactions/collect_rewards.d.ts +3 -0
- package/dist/esm/transactions/collect_rewards.d.ts.map +1 -0
- package/dist/esm/transactions/collect_rewards.js +329 -0
- package/dist/esm/transactions/collect_rewards.js.map +1 -0
- package/dist/esm/transactions/deposit.d.ts +5 -0
- package/dist/esm/transactions/deposit.d.ts.map +1 -0
- package/dist/esm/transactions/deposit.js +53 -0
- package/dist/esm/transactions/deposit.js.map +1 -0
- package/dist/esm/transactions/navi.d.ts +9 -0
- package/dist/esm/transactions/navi.d.ts.map +1 -0
- package/dist/esm/transactions/navi.js +614 -0
- package/dist/esm/transactions/navi.js.map +1 -0
- package/dist/esm/transactions/withdraw.d.ts +5 -0
- package/dist/esm/transactions/withdraw.d.ts.map +1 -0
- package/dist/esm/transactions/withdraw.js +49 -0
- package/dist/esm/transactions/withdraw.js.map +1 -0
- package/dist/esm/transactions/zapDeposit.d.ts +2 -0
- package/dist/esm/transactions/zapDeposit.d.ts.map +1 -0
- package/dist/esm/transactions/zapDeposit.js +730 -0
- package/dist/esm/transactions/zapDeposit.js.map +1 -0
- package/dist/esm/utils/clmm/prices.js +10 -10
- package/dist/esm/utils/clmm/prices.js.map +1 -1
- package/dist/esm/utils/getHoldersFromTransactionsUtils.d.ts.map +1 -1
- package/dist/esm/utils/getHoldersFromTransactionsUtils.js +9 -9
- package/dist/esm/utils/getHoldersFromTransactionsUtils.js.map +1 -1
- package/dist/esm/utils/hop.js +4 -4
- package/dist/esm/utils/hop.js.map +1 -1
- package/dist/esm/utils/prices.d.ts +2 -0
- package/dist/esm/utils/prices.d.ts.map +1 -1
- package/dist/esm/utils/prices.js +37 -0
- package/dist/esm/utils/prices.js.map +1 -1
- package/dist/esm/utils/userHoldings.d.ts.map +1 -1
- package/dist/esm/utils/userHoldings.js +20 -20
- package/dist/esm/utils/userHoldings.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zapDeposit.js","sourceRoot":"","sources":["../../../src/transactions/zapDeposit.ts"],"names":[],"mappings":"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","sourcesContent":["// import {\n// Transaction,\n// TransactionObjectArgument,\n// } from \"@mysten/sui/transactions\";\n// import { CoinStruct } from \"@mysten/sui/client\";\n// import { coinsList } from \"../common/coins.js\";\n// import {\n// cetusPoolMap,\n// doubleAssetPoolCoinMap,\n// poolInfo,\n// } from \"../common/maps.js\";\n// import { CoinName, PoolName, Receipt, SwapOptions } from \"../common/types.js\";\n// import { getReceipts } from \"../sui-sdk/functions/getReceipts.js\";\n// import { getConf } from \"../common/constants.js\";\n// import { getSuiClient } from \"../sui-sdk/client.js\";\n// import BN from \"bn.js\";\n// import { PythPriceIdPair } from \"../common/pyth.js\";\n// import { getLatestPrices } from \"../utils/prices.js\";\n// import { getAmounts } from \"./cetus.js\";\n\n// export async function zapDepositTxb(\n// inputCoinName: CoinName,\n// inputCoinAmount: number,\n// poolName: PoolName,\n// slippage: number, // 0.01 --> 1%, 0.001 --> 0.1%\n// options: { address: string },\n// ): Promise<Transaction | undefined> {\n// let txb = new Transaction();\n// const suiClient = getSuiClient();\n// const address = options.address;\n// const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;\n// const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;\n// const swapObjectA = coinsList[coinTypeA];\n// const swapObjectB = coinsList[coinTypeB];\n// const inputObject = coinsList[inputCoinName];\n\n// let coin1, coin2;\n\n// const amounts = await getAmounts(poolName, true, \"100000001\");\n// if (amounts) {\n// const amount1 = Number(amounts[0]);\n// const amount2 = Number(amounts[1]);\n\n// const swapGateway = new SevenKGateway();\n// const swapOptions: SwapOptions = {\n// pair: {\n// coinA: swapObjectA,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(amount1),\n// slippage: slippage,\n// };\n\n// const ratioQuote = await swapGateway.getQuote(swapOptions);\n// if (ratioQuote) {\n// const amount1InCoinType2 = Number(ratioQuote.returnAmountWithDecimal);\n// const totalAmount = amount2 + amount1InCoinType2;\n\n// const inputAmountToType1 = Math.floor(\n// (inputCoinAmount * amount1InCoinType2) / totalAmount,\n// );\n// const inputAmountToType2 = Math.floor(\n// (inputCoinAmount * amount2) / totalAmount,\n// );\n\n// let amountA, amountB;\n// const swapOptionsI2A = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectA,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType1),\n// slippage: slippage,\n// };\n// const swapOptionsI2B = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType2),\n// slippage: slippage,\n// };\n// if (inputCoinName === coinTypeA) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2B,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin2 = result.coinOut;\n// }\n// }\n// amountA = inputAmountToType1.toString();\n// if (coinTypeA === \"SUI\") {\n// [coin1] = txb.splitCoins(txb.gas, [amountA]);\n// } else {\n// let currentCursor: string | null | undefined = null;\n// let coins1: CoinStruct[] = [];\n// do {\n// const response = await suiClient.getCoins({\n// owner: address,\n// coinType: coinsList[coinTypeA].type,\n// cursor: currentCursor,\n// });\n// coins1 = coins1.concat(response.data);\n// if (response.hasNextPage && response.nextCursor) {\n// currentCursor = response.nextCursor;\n// } else break;\n// } while (true);\n// [coin1] = txb.splitCoins(txb.object(coins1[0].coinObjectId), [0]);\n// txb.mergeCoins(\n// coin1,\n// coins1.map((c) => c.coinObjectId),\n// );\n// }\n// } else if (inputCoinName === coinTypeB) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2A,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin1 = result.coinOut;\n// }\n// }\n// amountB = inputAmountToType2.toString();\n// if (coinTypeB === \"SUI\") {\n// [coin2] = txb.splitCoins(txb.gas, [amountB]);\n// } else {\n// let currentCursor: string | null | undefined = null;\n// let coins2: CoinStruct[] = [];\n// do {\n// const response = await suiClient.getCoins({\n// owner: address,\n// coinType: coinsList[coinTypeB].type,\n// cursor: currentCursor,\n// });\n// coins2 = coins2.concat(response.data);\n// if (response.hasNextPage && response.nextCursor) {\n// currentCursor = response.nextCursor;\n// } else break;\n// } while (true);\n// [coin2] = txb.splitCoins(txb.object(coins2[0].coinObjectId), [0]);\n// txb.mergeCoins(\n// coin2,\n// coins2.map((c) => c.coinObjectId),\n// );\n// }\n// } else {\n// let quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2A,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin1 = result.coinOut;\n// }\n// }\n// quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// const result = await swapGateway.getTransactionBlock(\n// swapOptionsI2B,\n// quoteResponse,\n// txb,\n// );\n// txb = result.tx;\n// if (result.coinOut) {\n// coin2 = result.coinOut;\n// }\n// }\n// }\n\n// if (amountA && amountB) {\n// if (coin1 && coin2) {\n// // fee charge\n// const fee_address = getConf().FEE_ADDRESS;\n// const feePercentage = 0.05;\n// const amountAFee = ((Number(amountA) * feePercentage) / 100).toFixed(\n// 0,\n// );\n// const amountBFee = ((Number(amountB) * feePercentage) / 100).toFixed(\n// 0,\n// );\n// const [feeCoinA] = txb.splitCoins(coin1, [amountAFee]);\n// const [feeCoinB] = txb.splitCoins(coin2, [amountBFee]);\n// txb.transferObjects([feeCoinA, feeCoinB], fee_address);\n\n// if (\n// poolName === \"ALPHA-SUI\" ||\n// poolName === \"WUSDC-SUI\" ||\n// poolName === \"NAVX-SUI\" ||\n// poolName === \"USDC-SUI\" ||\n// poolName === \"BUCK-SUI\" ||\n// poolName === \"DEEP-SUI\" ||\n// poolName === \"FUD-SUI\"\n// ) {\n// txb = await depositCetusAlphaSuiTxb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else if (poolName === \"CETUS-SUI\") {\n// txb = await depositCetusSuiTxb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else if (poolName === \"BLUEFIN-SUI-USDC\") {\n// txb = await depositBluefinSuiFirstTxb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else if (poolName === \"BLUEFIN-USDT-USDC\") {\n// txb = await depositBluefinType1Txb(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// } else {\n// txb = await depositCetus(\n// amountA,\n// amountB,\n// poolName,\n// { address },\n// txb,\n// coin1,\n// coin2,\n// );\n// }\n// }\n// }\n// txb.setGasBudget(100000000);\n// return txb;\n// }\n// }\n// return undefined;\n// }\n\n// const depositCetus = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const poolinfo = poolInfo[poolName];\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg !== undefined && coin2Arg !== undefined) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// let someReceipt: any;\n\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolInfo[poolName].receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// if (\n// poolName == \"WUSDC-WBTC\" ||\n// poolName == \"USDC-USDT\" ||\n// poolName == \"USDC-WUSDC\" ||\n// poolName == \"USDC-ETH\"\n// ) {\n// txb.moveCall({\n// target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool_base_a::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[`${pool1}-SUI`]),\n// txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n// txb.object(cetusPoolMap[poolName]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// } else {\n// txb.moveCall({\n// target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_pool::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[`${pool2}-SUI`]),\n// txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n// txb.object(cetusPoolMap[poolName]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// }\n\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n// return txb;\n// };\n\n// const depositCetusAlphaSuiTxb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg != undefined && coin2Arg !== undefined) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${getConf().ALPHA_LATEST_PACKAGE_ID}::alphafi_cetus_sui_pool::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[\"CETUS-SUI\"]),\n// txb.object(poolinfo.parentPoolId),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// const depositCetusSuiTxb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg && coin2Arg) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${poolinfo.packageId}::alphafi_cetus_sui_pool::user_deposit`,\n// typeArguments: [coinsList[pool1].type, coinsList[pool2].type],\n// arguments: [\n// txb.object(getConf().ALPHA_2_VERSION),\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().CETUS_REWARDER_GLOBAL_VAULT_ID),\n// txb.object(cetusPoolMap[poolName]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// const depositBluefinSuiFirstTxb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg && coin2Arg) {\n// const [depositCoinA] = txb.splitCoins(txb.gas, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${poolinfo.packageId}::alphafi_bluefin_sui_first_pool::user_deposit`,\n// typeArguments: [\n// coinsList[pool1].type,\n// coinsList[pool2].type,\n// coinsList[\"DEEP\"].type,\n// coinsList[\"SUI\"].type,\n// ],\n// arguments: [\n// txb.object(getConf().ALPHA_4_VERSION),\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().BLUEFIN_SUI_USDC_POOL),\n// txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n// txb.object(cetusPoolMap[\"USDC-SUI\"]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// const depositBluefinType1Txb = async (\n// amountA: string,\n// amountB: string,\n// poolName: PoolName,\n// options: { address: string },\n// transaction: Transaction | undefined = undefined,\n// coin1Arg: TransactionObjectArgument | undefined,\n// coin2Arg: TransactionObjectArgument | undefined,\n// ): Promise<Transaction> => {\n// const address = options.address;\n// let txb;\n// if (transaction) txb = transaction;\n// else txb = new Transaction();\n// poolName = poolName.toUpperCase() as PoolName;\n// const pool1 = doubleAssetPoolCoinMap[poolName].coin1;\n// const pool2 = doubleAssetPoolCoinMap[poolName].coin2;\n\n// const receipt: Receipt[] = await getReceipts(poolName, address, true);\n\n// amountA = (Number(amountA) * 0.999).toString();\n// amountB = (Number(amountB) * 0.999).toString();\n// let amounts = await getAmounts(poolName, true, amountA);\n// if (amounts === undefined || amounts[0] > amountA || amounts[1] > amountB) {\n// amounts = await getAmounts(poolName, false, amountB);\n// }\n\n// if (amounts && coin1Arg && coin2Arg) {\n// const [depositCoinA] = txb.splitCoins(coin1Arg, [amounts[0]]);\n// const [depositCoinB] = txb.splitCoins(coin2Arg, [amounts[1]]);\n\n// const poolinfo = poolInfo[poolName];\n// let someReceipt: any;\n// if (receipt.length == 0) {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::none`,\n// typeArguments: [poolinfo.receiptType],\n// arguments: [],\n// });\n// } else {\n// [someReceipt] = txb.moveCall({\n// target: `0x1::option::some`,\n// typeArguments: [receipt[0].content.type],\n// arguments: [txb.object(receipt[0].objectId)],\n// });\n// }\n\n// txb.moveCall({\n// target: `${poolinfo.packageId}::alphafi_bluefin_type_1_pool::user_deposit`,\n// typeArguments: [\n// coinsList[pool1].type,\n// coinsList[pool2].type,\n// coinsList[\"DEEP\"].type,\n// coinsList[\"SUI\"].type,\n// ],\n// arguments: [\n// txb.object(getConf().ALPHA_4_VERSION),\n// txb.object(getConf().VERSION),\n// someReceipt,\n// txb.object(poolinfo.poolId),\n// depositCoinA,\n// depositCoinB,\n// txb.object(getConf().ALPHA_DISTRIBUTOR),\n// txb.object(poolinfo.investorId),\n// txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n// txb.object(getConf().CETUS_GLOBAL_CONFIG_ID),\n// txb.object(getConf().BLUEFIN_USDT_USDC_POOL),\n// txb.object(getConf().BLUEFIN_DEEP_SUI_POOL),\n// txb.object(cetusPoolMap[\"USDC-USDT\"]),\n// txb.object(cetusPoolMap[\"USDC-SUI\"]),\n// txb.object(getConf().CLOCK_PACKAGE_ID),\n// ],\n// });\n// txb.transferObjects([coin1Arg, coin2Arg], address);\n// } else {\n// throw new Error(`No ${pool1} or ${pool2} Coins`);\n// }\n\n// return txb;\n// };\n\n// export async function getZapAmounts(\n// inputCoinAmount: number,\n// inputCoinName: CoinName,\n// poolName: PoolName,\n// slippage: number,\n// options: { address: string },\n// ignoreCache: boolean,\n// ): Promise<[string, string, string, string] | undefined> {\n// const address = options.address;\n// const coinTypeA = doubleAssetPoolCoinMap[poolName].coin1;\n// const coinTypeB = doubleAssetPoolCoinMap[poolName].coin2;\n// const swapObjectA = coinsList[coinTypeA];\n// const swapObjectB = coinsList[coinTypeB];\n// const inputObject = coinsList[inputCoinName];\n\n// const amounts = await getAmounts(poolName, true, \"100000001\");\n// if (amounts) {\n// const amount1 = Number(amounts[0]);\n// const amount2 = Number(amounts[1]);\n\n// const swapGateway = new SevenKGateway();\n// const swapOptions: SwapOptions = {\n// pair: {\n// coinA: swapObjectA,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(amount1),\n// slippage: slippage,\n// };\n\n// const ratioQuote = await swapGateway.getQuote(swapOptions);\n// if (ratioQuote) {\n// const amount1InCoinType2 = Number(ratioQuote.returnAmountWithDecimal);\n// const totalAmount = amount2 + amount1InCoinType2;\n\n// const inputAmountToType1 = Math.floor(\n// (inputCoinAmount * amount1InCoinType2) / totalAmount,\n// );\n// const inputAmountToType2 = Math.floor(\n// (inputCoinAmount * amount2) / totalAmount,\n// );\n\n// let amountA, amountB;\n// const swapOptionsI2A = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectA,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType1),\n// slippage: slippage,\n// };\n// const swapOptionsI2B = {\n// pair: {\n// coinA: inputObject,\n// coinB: swapObjectB,\n// },\n// senderAddress: address,\n// inAmount: new BN(inputAmountToType2),\n// slippage: slippage,\n// };\n// if (inputCoinName === coinTypeA) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// }\n// amountA = inputAmountToType1.toString();\n// } else if (inputCoinName === coinTypeB) {\n// const quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// }\n// amountB = inputAmountToType2.toString();\n// } else {\n// let quoteResponse = await swapGateway.getQuote(swapOptionsI2A);\n// if (quoteResponse) {\n// amountA = quoteResponse.returnAmountWithDecimal;\n// }\n// quoteResponse = await swapGateway.getQuote(swapOptionsI2B);\n// if (quoteResponse) {\n// amountB = quoteResponse.returnAmountWithDecimal;\n// }\n// }\n\n// if (amountA && amountB) {\n// const [coin1Price, coin2Price] = await getLatestPrices(\n// [\n// `${swapObjectA.name}/USD` as PythPriceIdPair,\n// `${swapObjectB.name}/USD` as PythPriceIdPair,\n// ],\n// ignoreCache,\n// );\n// const coin1InUSD = Number(amountA) * Number(coin1Price);\n// const coin2InUSD = Number(amountB) * Number(coin2Price);\n// return [\n// amountA.toString(),\n// coin1InUSD.toString(),\n// amountB.toString(),\n// coin2InUSD.toString(),\n// ];\n// }\n// }\n// }\n// }\n"]}
|
|
@@ -112,7 +112,7 @@ async function getAlphaPrice(ignoreCache = false) {
|
|
|
112
112
|
cachedPromise = (async () => {
|
|
113
113
|
const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
|
|
114
114
|
const swapOption = {
|
|
115
|
-
pair: { coinA: coins_js_1.
|
|
115
|
+
pair: { coinA: coins_js_1.coinsList.ALPHA, coinB: coins_js_1.coinsList.SUI },
|
|
116
116
|
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
117
117
|
slippage: 1,
|
|
118
118
|
inAmount: new bn_js_1.default(1000000000),
|
|
@@ -137,7 +137,7 @@ async function getAlphaPrice(ignoreCache = false) {
|
|
|
137
137
|
async function getUSDYPrice() {
|
|
138
138
|
const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
|
|
139
139
|
const swapOption = {
|
|
140
|
-
pair: { coinA: coins_js_1.
|
|
140
|
+
pair: { coinA: coins_js_1.coinsList.USDY, coinB: coins_js_1.coinsList.USDC },
|
|
141
141
|
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
142
142
|
slippage: 1,
|
|
143
143
|
inAmount: new bn_js_1.default(1000000),
|
|
@@ -154,7 +154,7 @@ async function getUSDYPrice() {
|
|
|
154
154
|
async function getBUCKPrice() {
|
|
155
155
|
const cetusGateway = new CetusGateway(cetus_mainnet_config_js_1.cetusMainnetSDKOptions);
|
|
156
156
|
const swapOption = {
|
|
157
|
-
pair: { coinA: coins_js_1.
|
|
157
|
+
pair: { coinA: coins_js_1.coinsList.BUCK, coinB: coins_js_1.coinsList.USDC },
|
|
158
158
|
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
159
159
|
slippage: 1,
|
|
160
160
|
inAmount: new bn_js_1.default(1000000000),
|
|
@@ -268,8 +268,8 @@ class CetusGateway {
|
|
|
268
268
|
return txb;
|
|
269
269
|
}
|
|
270
270
|
async createPoolTransactionBlock(options) {
|
|
271
|
-
console.log((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.
|
|
272
|
-
const initializeSqrtPrice = cetus_sui_clmm_sdk_1.TickMath.priceToSqrtPriceX64((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.
|
|
271
|
+
console.log((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coinsList[options.coinNameA].expo, coins_js_1.coinsList[options.coinNameB].expo);
|
|
272
|
+
const initializeSqrtPrice = cetus_sui_clmm_sdk_1.TickMath.priceToSqrtPriceX64((0, cetus_sui_clmm_sdk_1.d)(options.initializePrice), coins_js_1.coinsList[options.coinNameA].expo, coins_js_1.coinsList[options.coinNameB].expo).toString();
|
|
273
273
|
const current_tick_index = cetus_sui_clmm_sdk_1.TickMath.sqrtPriceX64ToTickIndex(new bn_js_1.default(Math.floor(parseFloat(initializeSqrtPrice)).toString()));
|
|
274
274
|
// build tick range
|
|
275
275
|
const lowerTick = cetus_sui_clmm_sdk_1.TickMath.getPrevInitializableTickIndex(new bn_js_1.default(Math.floor(current_tick_index).toString()).toNumber(), new bn_js_1.default(options.tickSpacing.toString()).toNumber());
|
|
@@ -286,8 +286,8 @@ class CetusGateway {
|
|
|
286
286
|
? liquidityInput.tokenMaxB.toNumber()
|
|
287
287
|
: options.amount;
|
|
288
288
|
console.log({
|
|
289
|
-
coinTypeA: coins_js_1.
|
|
290
|
-
coinTypeB: coins_js_1.
|
|
289
|
+
coinTypeA: coins_js_1.coinsList[options.coinNameA].type,
|
|
290
|
+
coinTypeB: coins_js_1.coinsList[options.coinNameB].type,
|
|
291
291
|
tick_spacing: options.tickSpacing,
|
|
292
292
|
initialize_sqrt_price: `${initializeSqrtPrice}`,
|
|
293
293
|
uri: options.imageUrl,
|
|
@@ -299,8 +299,8 @@ class CetusGateway {
|
|
|
299
299
|
});
|
|
300
300
|
// build creatPoolPayload Payload
|
|
301
301
|
const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({
|
|
302
|
-
coinTypeA: coins_js_1.
|
|
303
|
-
coinTypeB: coins_js_1.
|
|
302
|
+
coinTypeA: coins_js_1.coinsList[options.coinNameA].type,
|
|
303
|
+
coinTypeB: coins_js_1.coinsList[options.coinNameB].type,
|
|
304
304
|
tick_spacing: options.tickSpacing,
|
|
305
305
|
initialize_sqrt_price: `${initializeSqrtPrice}`,
|
|
306
306
|
uri: options.imageUrl,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":";;;AAgHA,sCA2CC;AAED,oCAgBC;AAED,oCAgBC;AAED,8CAEC;;AAnMD,0EAU2C;AAC3C,0DAAuB;AAGvB,oDAA8C;AAE9C,kFAA8E;AAC9E,4CAA+C;AAC/C,sDAAgD;AAQhD,MAAM,QAAQ,GAAgC;IAC5C,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,UAAU,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,IAAI;KACV;IACD,WAAW,EAAE;QACX,IAAI,EAAE,WAAW;QACjB,EAAE,EAAE,oEAAoE;QACxE,GAAG,EAAE,KAAK;KACX;CACF,CAAC;AAEF,MAAM,sBAAsB,GAAG,IAAI,4BAAW,CAAkB,KAAK,CAAC,CAAC;AACvE,MAAM,eAAe,GAAG,IAAI,4BAAW,CAAS,KAAK,CAAC,CAAC;AAEhD,KAAK,UAAU,aAAa,CACjC,cAAuB,KAAK;IAE5B,MAAM,QAAQ,GAAG,eAAe,CAAC;IACjC,IAAI,WAAW,EAAE,CAAC;QAChB,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACjC,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,cAAc,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAErD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IACD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,aAAa,GAAG,sBAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,CAAC,KAAK,IAAqB,EAAE;YAC3C,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gDAAsB,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAqB;gBACnC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAK,CAAC,KAAK,EAAE,KAAK,EAAE,gBAAK,CAAC,GAAG,EAAE;gBAC9C,aAAa,EACX,oEAAoE;gBACtE,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,IAAI,eAAE,CAAC,UAAa,CAAC;aAChC,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpD,MAAM,CAAC,cAAc,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;YACnE,IAAI,cAAc,EAAE,CAAC;gBACnB,UAAU;oBACR,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;gBACpE,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC1C,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC;YAC3E,CAAC;YACD,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,gCAAgC;YACzE,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QAEH,sBAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gDAAsB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAqB;QACnC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE;QAC9C,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,IAAI,eAAE,CAAC,OAAS,CAAC;KAC5B,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY;IAChC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,gDAAsB,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAqB;QACnC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE,KAAK,EAAE,gBAAK,CAAC,IAAI,EAAE;QAC9C,aAAa,EACX,oEAAoE;QACtE,QAAQ,EAAE,CAAC;QACX,QAAQ,EAAE,IAAI,eAAE,CAAC,UAAa,CAAC;KAChC,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,2BAAe,EAAC,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC;IAC5E,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,QAAgB;IACtD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAa,YAAY;IAGvB,YAAY,UAAsB;QAChC,IAAI,CAAC,QAAQ,GAAG,IAAI,iCAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAuC;QACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC/D,MAAM,YAAY,GAAW,EAAE,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,aAAa,GAAW,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAU,EAAE,EAAE;gBAC3D,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBAC7B,OAAO,CACL,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;wBACjC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACrC,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;4BACjC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CACtC,CAAC;gBACJ,CAAC;qBAAM,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;wBAClC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CACnC,CAAC;gBACJ,CAAC;qBAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACrC,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;wBAClC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CACnC,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,SAAS,CAAC;gBACnB,CAAC;YACH,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,sCAAsC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/C,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAyB;QACtC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAC9C,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,MAAM,GAAO,IAAI,eAAE,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,UAAU,GAAY,IAAI,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAC;YAClB,MAAM,GAAG,QAAQ,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;YACnB,MAAM,GAAG,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAE5D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC;YACpD,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,UAAU;YACV,MAAM;YACN,SAAS;YACT,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAyB;QAC5C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QACvE,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEtD,IAAI,UAAU,GAAY,IAAI,CAAC;QAC/B,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,GAAG,IAAI,CAAC;QACpB,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,UAAU,GAAG,KAAK,CAAC;QACrB,CAAC;QAED,MAAM,kBAAkB,GAAG,IAAI,+BAAU,CACvC,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,EAC7C,IAAI,eAAE,CAAC,GAAG,CAAC,CACZ,CAAC;QACF,MAAM,QAAQ,GAAG,UAAU;YACzB,CAAC,CAAC,GAAG,CAAC,kBAAkB;YACxB,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAA,sCAAiB,EACnC,QAAQ,EACR,kBAAkB,EAClB,CAAC,UAAU,CACZ,CAAC;QACF,mBAAmB;QACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,4BAA4B,CAAC;YAC1D,OAAO,EAAE,IAAI,CAAC,WAAW;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,YAAY,EAAE,UAAU;YACxB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC7B,YAAY,EAAE,WAAW,CAAC,QAAQ,EAAE;SACrC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,OAA0B;QAE1B,OAAO,CAAC,GAAG,CACT,IAAA,sBAAC,EAAC,OAAO,CAAC,eAAe,CAAC,EAC1B,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAC7B,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAC9B,CAAC;QAEF,MAAM,mBAAmB,GAAG,6BAAQ,CAAC,mBAAmB,CACtD,IAAA,sBAAC,EAAC,OAAO,CAAC,eAAe,CAAC,EAC1B,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAC7B,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAC9B,CAAC,QAAQ,EAAE,CAAC;QAEb,MAAM,kBAAkB,GAAG,6BAAQ,CAAC,uBAAuB,CACzD,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC/D,CAAC;QAEF,mBAAmB;QACnB,MAAM,SAAS,GAAG,6BAAQ,CAAC,6BAA6B,CACtD,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC5D,IAAI,eAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAClD,CAAC;QACF,MAAM,SAAS,GAAG,6BAAQ,CAAC,6BAA6B,CACtD,IAAI,eAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,EAC5D,IAAI,eAAE,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAClD,CAAC;QAEF,+BAA+B;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC;QACtB,uDAAuD;QACvD,MAAM,cAAc,GAAG,iCAAY,CAAC,uCAAuC,CACzE,SAAS,EACT,SAAS,EACT,IAAI,eAAE,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EACjC,OAAO,CAAC,SAAS,EACjB,IAAI,EACJ,QAAQ,EACR,IAAI,eAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CACvC,CAAC;QAEF,uCAAuC;QACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS;YAChC,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS;YAChC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,QAAQ,EAAE;YACrC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAEnB,OAAO,CAAC,GAAG,CAAC;YACV,SAAS,EAAE,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YACxC,SAAS,EAAE,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YACxC,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,qBAAqB,EAAE,GAAG,mBAAmB,EAAE;YAC/C,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,iCAAiC;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,2BAA2B,CAAC;YACzD,SAAS,EAAE,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YACxC,SAAS,EAAE,gBAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI;YACxC,YAAY,EAAE,OAAO,CAAC,WAAW;YACjC,qBAAqB,EAAE,GAAG,mBAAmB,EAAE;YAC/C,GAAG,EAAE,OAAO,CAAC,QAAQ;YACrB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,OAAO,CAAC,SAAS;YAC/B,UAAU,EAAE,SAAS;YACrB,UAAU,EAAE,SAAS;SACtB,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAvMD,oCAuMC","sourcesContent":["import {\n SdkOptions,\n Pool,\n Percentage,\n adjustForSlippage,\n CalculateRatesResult,\n ClmmPoolUtil,\n TickMath,\n d,\n CetusClmmSDK,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Coin } from \"../../common/types.js\";\nimport { coins } from \"../../common/coins.js\";\nimport { CetusSwapOptions, CreatePoolOptions } from \"./types.js\";\nimport { cetusMainnetSDKOptions } from \"../../common/cetus_mainnet_config.js\";\nimport { getLatestPrices } from \"../prices.js\";\nimport { SimpleCache } from \"../simpleCache.js\";\n\ninterface PoolData {\n pair: string;\n id: string;\n a2b: boolean;\n}\n\nconst poolData: { [key: string]: PoolData } = {\n \"SUI/USDC\": {\n pair: \"SUI/USDC\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: false,\n },\n \"USDC/SUI\": {\n pair: \"USDC/SUI\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: true,\n },\n \"SUI/USDT\": {\n pair: \"SUI/USDT\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: false,\n },\n \"USDT/SUI\": {\n pair: \"USDT/SUI\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: true,\n },\n \"USDC/USDT\": {\n pair: \"USDC/USDT\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: false,\n },\n \"USDT/USDC\": {\n pair: \"USDT/USDC\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: true,\n },\n \"SUI/VSUI\": {\n pair: \"SUI/VSUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: false,\n },\n \"VSUI/SUI\": {\n pair: \"VSUI/SUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: true,\n },\n \"SUI/NAVX\": {\n pair: \"SUI/NAVX\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: false,\n },\n \"NAVX/SUI\": {\n pair: \"NAVX/SUI\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: true,\n },\n \"ALPHA/SUI\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: true,\n },\n \"SUI/ALPHA\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: false,\n },\n \"USDY/USDC\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: true,\n },\n \"USDC/USDY\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: false,\n },\n \"BUCK/USDC\": {\n pair: \"BUCK/USDC\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: true,\n },\n \"USDC/BUCK\": {\n pair: \"USDC/BUCK\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: false,\n },\n};\n\nconst alphaPricePromiseCache = new SimpleCache<Promise<number>>(60000);\nconst alphaPriceCache = new SimpleCache<number>(60000);\n\nexport async function getAlphaPrice(\n ignoreCache: boolean = false,\n): Promise<number | undefined> {\n const cacheKey = `getAlphaPrice`;\n if (ignoreCache) {\n alphaPriceCache.delete(cacheKey);\n alphaPricePromiseCache.delete(cacheKey);\n }\n const cachedResponse = alphaPriceCache.get(cacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n let alphaPrice = 0;\n let cachedPromise = alphaPricePromiseCache.get(cacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<number> => {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.ALPHA, coinB: coins.SUI },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestSuiPrice] = await getLatestPrices([\"SUI/USD\"], false);\n if (latestSuiPrice) {\n alphaPrice =\n res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;\n alphaPriceCache.set(cacheKey, alphaPrice);\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n }\n return alphaPrice;\n })().catch((error) => {\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n throw error;\n });\n\n alphaPricePromiseCache.set(cacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getUSDYPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.USDY, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getBUCKPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coins.BUCK, coinB: coins.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getPriceFromCetus(coinType: string): Promise<string> {\n return coinType;\n}\n\nexport class CetusGateway {\n private cetusSDK: CetusClmmSDK;\n\n constructor(sdkOptions: SdkOptions) {\n this.cetusSDK = new CetusClmmSDK(sdkOptions);\n this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;\n }\n\n async getPools(pairs: { coinA?: Coin; coinB?: Coin }[]) {\n const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);\n const matchedPools: Pool[] = [];\n\n pairs.forEach((pair) => {\n const filteredPools: Pool[] = allPools.filter((pool: Pool) => {\n if (pair.coinA && pair.coinB) {\n return (\n (pool.coinTypeA === pair.coinA.type &&\n pool.coinTypeB === pair.coinB.type) ||\n (pool.coinTypeA === pair.coinB.type &&\n pool.coinTypeB === pair.coinA.type)\n );\n } else if (pair.coinA && !pair.coinB) {\n return (\n pool.coinTypeA === pair.coinA.type ||\n pool.coinTypeB === pair.coinA.type\n );\n } else if (!pair.coinA && pair.coinB) {\n return (\n pool.coinTypeB === pair.coinB.type ||\n pool.coinTypeB === pair.coinB.type\n );\n } else {\n return undefined;\n }\n });\n matchedPools.push(...filteredPools);\n });\n\n console.log(matchedPools);\n console.log(`Matched pools for specified pairs: ${matchedPools.length}`);\n console.log(`Total pools: ${allPools.length}`);\n return matchedPools;\n }\n\n async getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult> {\n const { pair, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n let amount: BN = new BN(0);\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n amount = inAmount;\n } else if (outAmount) {\n byAmountIn = false;\n amount = outAmount;\n }\n\n const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);\n\n const swapTicks = await this.cetusSDK.Pool.fetchTicks({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n });\n\n const res = this.cetusSDK.Swap.calculateRates({\n decimalsA: pair.coinA.expo,\n decimalsB: pair.coinB.expo,\n a2b: poolDatum.a2b,\n byAmountIn,\n amount,\n swapTicks,\n currentPool: pool,\n });\n\n return res;\n }\n\n async getTransaction(options: CetusSwapOptions): Promise<Transaction> {\n const res = await this.getPrice(options);\n\n const { pair, senderAddress, slippage, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n const poolID = poolDatum.id;\n const pool = await this.cetusSDK.Pool.getPool(poolID);\n\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n } else if (outAmount) {\n byAmountIn = false;\n }\n\n const slippagePercentage = new Percentage(\n new BN(Math.floor(slippage * 100).toString()),\n new BN(100),\n );\n const toAmount = byAmountIn\n ? res.estimatedAmountOut\n : res.estimatedAmountIn;\n const amountLimit = adjustForSlippage(\n toAmount,\n slippagePercentage,\n !byAmountIn,\n );\n // TransactionBlock\n this.cetusSDK.senderAddress = senderAddress;\n const txb = this.cetusSDK.Swap.createSwapTransactionPayload({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n a2b: poolDatum.a2b,\n by_amount_in: byAmountIn,\n amount: res.amount.toString(),\n amount_limit: amountLimit.toString(),\n });\n\n return txb;\n }\n\n async createPoolTransactionBlock(\n options: CreatePoolOptions,\n ): Promise<Transaction> {\n console.log(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n );\n\n const initializeSqrtPrice = TickMath.priceToSqrtPriceX64(\n d(options.initializePrice),\n coins[options.coinNameA].expo,\n coins[options.coinNameB].expo,\n ).toString();\n\n const current_tick_index = TickMath.sqrtPriceX64ToTickIndex(\n new BN(Math.floor(parseFloat(initializeSqrtPrice)).toString()),\n );\n\n // build tick range\n const lowerTick = TickMath.getPrevInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n const upperTick = TickMath.getNextInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n\n // slippage value 0.05 means 5%\n const slippage = 0.01;\n // Estimate liquidity and token amount from one amounts\n const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(\n lowerTick,\n upperTick,\n new BN(options.amount.toString()),\n options.isAmountA,\n true,\n slippage,\n new BN(initializeSqrtPrice.toString()),\n );\n\n // Estimate token a and token b amount\n const amount_a = options.isAmountA\n ? options.amount\n : liquidityInput.tokenMaxA.toNumber();\n const amount_b = options.isAmountA\n ? liquidityInput.tokenMaxB.toNumber()\n : options.amount;\n\n console.log({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n // build creatPoolPayload Payload\n const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({\n coinTypeA: coins[options.coinNameA].type,\n coinTypeB: coins[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n return txb;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../../src/utils/clmm/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SdkOptions,\n Pool,\n Percentage,\n adjustForSlippage,\n CalculateRatesResult,\n ClmmPoolUtil,\n TickMath,\n d,\n CetusClmmSDK,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport BN from \"bn.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { Coin } from \"../../common/types.js\";\nimport { coinsList } from \"../../common/coins.js\";\nimport { CetusSwapOptions, CreatePoolOptions } from \"./types.js\";\nimport { cetusMainnetSDKOptions } from \"../../common/cetus_mainnet_config.js\";\nimport { getLatestPrices } from \"../prices.js\";\nimport { SimpleCache } from \"../simpleCache.js\";\n\ninterface PoolData {\n pair: string;\n id: string;\n a2b: boolean;\n}\n\nconst poolData: { [key: string]: PoolData } = {\n \"SUI/USDC\": {\n pair: \"SUI/USDC\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: false,\n },\n \"USDC/SUI\": {\n pair: \"USDC/SUI\",\n id: \"0xcf994611fd4c48e277ce3ffd4d4364c914af2c3cbb05f7bf6facd371de688630\",\n a2b: true,\n },\n \"SUI/USDT\": {\n pair: \"SUI/USDT\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: false,\n },\n \"USDT/SUI\": {\n pair: \"USDT/SUI\",\n id: \"0x06d8af9e6afd27262db436f0d37b304a041f710c3ea1fa4c3a9bab36b3569ad3\",\n a2b: true,\n },\n \"USDC/USDT\": {\n pair: \"USDC/USDT\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: false,\n },\n \"USDT/USDC\": {\n pair: \"USDT/USDC\",\n id: \"0xc8d7a1503dc2f9f5b05449a87d8733593e2f0f3e7bffd90541252782e4d2ca20\",\n a2b: true,\n },\n \"SUI/VSUI\": {\n pair: \"SUI/VSUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: false,\n },\n \"VSUI/SUI\": {\n pair: \"VSUI/SUI\",\n id: \"0x6c545e78638c8c1db7a48b282bb8ca79da107993fcb185f75cedc1f5adb2f535\",\n a2b: true,\n },\n \"SUI/NAVX\": {\n pair: \"SUI/NAVX\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: false,\n },\n \"NAVX/SUI\": {\n pair: \"NAVX/SUI\",\n id: \"0x0254747f5ca059a1972cd7f6016485d51392a3fde608107b93bbaebea550f703\",\n a2b: true,\n },\n \"ALPHA/SUI\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: true,\n },\n \"SUI/ALPHA\": {\n pair: \"ALPHA/SUI\",\n id: \"0xda7347c3192a27ddac32e659c9d9cbed6f8c9d1344e605c71c8886d7b787d720\",\n a2b: false,\n },\n \"USDY/USDC\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: true,\n },\n \"USDC/USDY\": {\n pair: \"USDY/USDC\",\n id: \"0x0e809689d04d87f4bd4e660cd1b84bf5448c5a7997e3d22fc480e7e5e0b3f58d\",\n a2b: false,\n },\n \"BUCK/USDC\": {\n pair: \"BUCK/USDC\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: true,\n },\n \"USDC/BUCK\": {\n pair: \"USDC/BUCK\",\n id: \"0x81fe26939ed676dd766358a60445341a06cea407ca6f3671ef30f162c84126d5\",\n a2b: false,\n },\n};\n\nconst alphaPricePromiseCache = new SimpleCache<Promise<number>>(60000);\nconst alphaPriceCache = new SimpleCache<number>(60000);\n\nexport async function getAlphaPrice(\n ignoreCache: boolean = false,\n): Promise<number | undefined> {\n const cacheKey = `getAlphaPrice`;\n if (ignoreCache) {\n alphaPriceCache.delete(cacheKey);\n alphaPricePromiseCache.delete(cacheKey);\n }\n const cachedResponse = alphaPriceCache.get(cacheKey);\n\n if (cachedResponse) {\n return cachedResponse;\n }\n let alphaPrice = 0;\n let cachedPromise = alphaPricePromiseCache.get(cacheKey);\n if (!cachedPromise) {\n cachedPromise = (async (): Promise<number> => {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coinsList.ALPHA, coinB: coinsList.SUI },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestSuiPrice] = await getLatestPrices([\"SUI/USD\"], false);\n if (latestSuiPrice) {\n alphaPrice =\n res.estimatedAmountOut.toNumber() * Number(latestSuiPrice) * 1e-9;\n alphaPriceCache.set(cacheKey, alphaPrice);\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n }\n return alphaPrice;\n })().catch((error) => {\n alphaPricePromiseCache.delete(cacheKey); // Remove the promise from cache\n throw error;\n });\n\n alphaPricePromiseCache.set(cacheKey, cachedPromise);\n }\n\n return cachedPromise;\n}\n\nexport async function getUSDYPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coinsList.USDY, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getBUCKPrice(): Promise<number | undefined> {\n const cetusGateway = new CetusGateway(cetusMainnetSDKOptions);\n const swapOption: CetusSwapOptions = {\n pair: { coinA: coinsList.BUCK, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n slippage: 1,\n inAmount: new BN(1_000_000_000),\n };\n const res = await cetusGateway.getPrice(swapOption);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return res.estimatedAmountOut.toNumber() * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n\nexport async function getPriceFromCetus(coinType: string): Promise<string> {\n return coinType;\n}\n\nexport class CetusGateway {\n private cetusSDK: CetusClmmSDK;\n\n constructor(sdkOptions: SdkOptions) {\n this.cetusSDK = new CetusClmmSDK(sdkOptions);\n this.cetusSDK.senderAddress = sdkOptions.simulationAccount.address;\n }\n\n async getPools(pairs: { coinA?: Coin; coinB?: Coin }[]) {\n const allPools = await this.cetusSDK.Pool.getPoolsWithPage([]);\n const matchedPools: Pool[] = [];\n\n pairs.forEach((pair) => {\n const filteredPools: Pool[] = allPools.filter((pool: Pool) => {\n if (pair.coinA && pair.coinB) {\n return (\n (pool.coinTypeA === pair.coinA.type &&\n pool.coinTypeB === pair.coinB.type) ||\n (pool.coinTypeA === pair.coinB.type &&\n pool.coinTypeB === pair.coinA.type)\n );\n } else if (pair.coinA && !pair.coinB) {\n return (\n pool.coinTypeA === pair.coinA.type ||\n pool.coinTypeB === pair.coinA.type\n );\n } else if (!pair.coinA && pair.coinB) {\n return (\n pool.coinTypeB === pair.coinB.type ||\n pool.coinTypeB === pair.coinB.type\n );\n } else {\n return undefined;\n }\n });\n matchedPools.push(...filteredPools);\n });\n\n console.log(matchedPools);\n console.log(`Matched pools for specified pairs: ${matchedPools.length}`);\n console.log(`Total pools: ${allPools.length}`);\n return matchedPools;\n }\n\n async getPrice(options: CetusSwapOptions): Promise<CalculateRatesResult> {\n const { pair, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n let amount: BN = new BN(0);\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n amount = inAmount;\n } else if (outAmount) {\n byAmountIn = false;\n amount = outAmount;\n }\n\n const pool = await this.cetusSDK.Pool.getPool(poolDatum.id);\n\n const swapTicks = await this.cetusSDK.Pool.fetchTicks({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n });\n\n const res = this.cetusSDK.Swap.calculateRates({\n decimalsA: pair.coinA.expo,\n decimalsB: pair.coinB.expo,\n a2b: poolDatum.a2b,\n byAmountIn,\n amount,\n swapTicks,\n currentPool: pool,\n });\n\n return res;\n }\n\n async getTransaction(options: CetusSwapOptions): Promise<Transaction> {\n const res = await this.getPrice(options);\n\n const { pair, senderAddress, slippage, inAmount, outAmount } = options;\n const poolDatum = poolData[pair.coinA.name + \"/\" + pair.coinB.name];\n const poolID = poolDatum.id;\n const pool = await this.cetusSDK.Pool.getPool(poolID);\n\n let byAmountIn: boolean = true;\n if (inAmount) {\n byAmountIn = true;\n } else if (outAmount) {\n byAmountIn = false;\n }\n\n const slippagePercentage = new Percentage(\n new BN(Math.floor(slippage * 100).toString()),\n new BN(100),\n );\n const toAmount = byAmountIn\n ? res.estimatedAmountOut\n : res.estimatedAmountIn;\n const amountLimit = adjustForSlippage(\n toAmount,\n slippagePercentage,\n !byAmountIn,\n );\n // TransactionBlock\n this.cetusSDK.senderAddress = senderAddress;\n const txb = this.cetusSDK.Swap.createSwapTransactionPayload({\n pool_id: pool.poolAddress,\n coinTypeA: pool.coinTypeA,\n coinTypeB: pool.coinTypeB,\n a2b: poolDatum.a2b,\n by_amount_in: byAmountIn,\n amount: res.amount.toString(),\n amount_limit: amountLimit.toString(),\n });\n\n return txb;\n }\n\n async createPoolTransactionBlock(\n options: CreatePoolOptions,\n ): Promise<Transaction> {\n console.log(\n d(options.initializePrice),\n coinsList[options.coinNameA].expo,\n coinsList[options.coinNameB].expo,\n );\n\n const initializeSqrtPrice = TickMath.priceToSqrtPriceX64(\n d(options.initializePrice),\n coinsList[options.coinNameA].expo,\n coinsList[options.coinNameB].expo,\n ).toString();\n\n const current_tick_index = TickMath.sqrtPriceX64ToTickIndex(\n new BN(Math.floor(parseFloat(initializeSqrtPrice)).toString()),\n );\n\n // build tick range\n const lowerTick = TickMath.getPrevInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n const upperTick = TickMath.getNextInitializableTickIndex(\n new BN(Math.floor(current_tick_index).toString()).toNumber(),\n new BN(options.tickSpacing.toString()).toNumber(),\n );\n\n // slippage value 0.05 means 5%\n const slippage = 0.01;\n // Estimate liquidity and token amount from one amounts\n const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(\n lowerTick,\n upperTick,\n new BN(options.amount.toString()),\n options.isAmountA,\n true,\n slippage,\n new BN(initializeSqrtPrice.toString()),\n );\n\n // Estimate token a and token b amount\n const amount_a = options.isAmountA\n ? options.amount\n : liquidityInput.tokenMaxA.toNumber();\n const amount_b = options.isAmountA\n ? liquidityInput.tokenMaxB.toNumber()\n : options.amount;\n\n console.log({\n coinTypeA: coinsList[options.coinNameA].type,\n coinTypeB: coinsList[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n // build creatPoolPayload Payload\n const txb = this.cetusSDK.Pool.creatPoolTransactionPayload({\n coinTypeA: coinsList[options.coinNameA].type,\n coinTypeB: coinsList[options.coinNameB].type,\n tick_spacing: options.tickSpacing,\n initialize_sqrt_price: `${initializeSqrtPrice}`,\n uri: options.imageUrl,\n amount_a: amount_a,\n amount_b: amount_b,\n fix_amount_a: options.isAmountA,\n tick_lower: lowerTick,\n tick_upper: upperTick,\n });\n\n return txb;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactionsUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAiBrB,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAuBrC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,MAAM,GAAG,SAAS,CAcpB;
|
|
1
|
+
{"version":3,"file":"getHoldersFromTransactionsUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAGL,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAiBrB,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAuBrC;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,oBAAoB,GAC3B,MAAM,GAAG,SAAS,CAcpB;AAqGD,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GACrC,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAkB5B"}
|
|
@@ -65,10 +65,10 @@ function doubleAssetliquidityToUSD(params) {
|
|
|
65
65
|
coin_amounts.coinB.toNumber(),
|
|
66
66
|
];
|
|
67
67
|
const ten = new decimal_js_1.Decimal(10);
|
|
68
|
-
const coin1 = maps_js_1.
|
|
69
|
-
const coin2 = maps_js_1.
|
|
70
|
-
const amount1 = new decimal_js_1.Decimal(coinAmounts[0]).div(ten.pow(coins_js_1.
|
|
71
|
-
const amount2 = new decimal_js_1.Decimal(coinAmounts[1]).div(ten.pow(coins_js_1.
|
|
68
|
+
const coin1 = maps_js_1.doubleAssetPoolCoinMap[pool].coin1;
|
|
69
|
+
const coin2 = maps_js_1.doubleAssetPoolCoinMap[pool].coin2;
|
|
70
|
+
const amount1 = new decimal_js_1.Decimal(coinAmounts[0]).div(ten.pow(coins_js_1.coinsList[coin1].expo));
|
|
71
|
+
const amount2 = new decimal_js_1.Decimal(coinAmounts[1]).div(ten.pow(coins_js_1.coinsList[coin2].expo));
|
|
72
72
|
const priceOfCoin1 = tokenPriceMap.get(coin1);
|
|
73
73
|
const priceOfCoin2 = tokenPriceMap.get(coin2);
|
|
74
74
|
if (priceOfCoin1 && priceOfCoin2) {
|
|
@@ -98,9 +98,9 @@ function alphaLiquidityToUSD(liquidity, tokenPriceMap) {
|
|
|
98
98
|
function singleAssetLiquidityToUSD(liquidity, pool, tokenPriceMap) {
|
|
99
99
|
try {
|
|
100
100
|
const singlePool = pool;
|
|
101
|
-
const coin = maps_js_1.
|
|
102
|
-
let amount = new decimal_js_1.Decimal(liquidity).div(Math.pow(10, 9 - coins_js_1.
|
|
103
|
-
amount = amount.div(new decimal_js_1.Decimal(Math.pow(10, coins_js_1.
|
|
101
|
+
const coin = maps_js_1.singleAssetPoolCoinMap[singlePool].coin;
|
|
102
|
+
let amount = new decimal_js_1.Decimal(liquidity).div(Math.pow(10, 9 - coins_js_1.coinsList[coin].expo));
|
|
103
|
+
amount = amount.div(new decimal_js_1.Decimal(Math.pow(10, coins_js_1.coinsList[coin].expo)));
|
|
104
104
|
const priceOfCoin = tokenPriceMap.get(coin);
|
|
105
105
|
if (priceOfCoin) {
|
|
106
106
|
const amountInUSD = amount.mul(priceOfCoin);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getHoldersFromTransactionsUtils.js","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":"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","sourcesContent":["import { SuiObjectResponse } from \"@mysten/sui/client\";\nimport {\n AlphaReceiptFields,\n OtherReceiptFields,\n LiquidityToUsdParams,\n} from \"../types.js\";\nimport {\n poolIdPoolNameMap,\n poolCoinPairMap,\n getPoolExchangeRateMap,\n poolCoinMap,\n} from \"../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BN } from \"bn.js\";\nimport { PoolName, CoinName, DoubleAssetPoolNames } from \"../common/types.js\";\nimport {\n ClmmPoolUtil,\n TickMath,\n CoinAmounts,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport { coins } from \"../common/coins.js\";\n\nexport async function parseTokensFromReceipts(\n receipts: SuiObjectResponse[],\n): Promise<[string, string, string][]> {\n let userTokens: [string, string, string][] = [];\n\n for (const receipt of receipts) {\n const nftData = receipt.data?.content;\n if (nftData?.dataType === \"moveObject\") {\n const fields = nftData.fields as AlphaReceiptFields | OtherReceiptFields;\n const owner = fields.owner;\n const pool = poolIdPoolNameMap[fields.pool_id] as string;\n const xTokens = fields.xTokenBalance;\n userTokens.push([owner, pool, xTokens]);\n }\n }\n const conversionMap = await getPoolExchangeRateMap();\n userTokens = userTokens.map(([owner, pool, xTokens]) => {\n const conversion = new Decimal(\n conversionMap.get(pool as PoolName) as string,\n );\n const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();\n return [owner, pool, tokens];\n });\n\n return userTokens;\n}\n\nexport function liquidityToUsd(\n params: LiquidityToUsdParams,\n): string | undefined {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToUSD(\n params.liquidity,\n params.poolName,\n params.tokenPriceMap,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);\n } else {\n holdingUSD = doubleAssetliquidityToUSD(params);\n }\n return holdingUSD;\n}\nfunction doubleAssetliquidityToUSD(params: {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n tokenPriceMap: Map<CoinName, string>;\n}): string | undefined {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n const tokenPriceMap = params.tokenPriceMap;\n\n try {\n const upper_bound = 443636;\n let lower_tick = Number(ticksCetusMap[pool].lower);\n let upper_tick = Number(ticksCetusMap[pool].upper);\n\n if (lower_tick > upper_bound) {\n lower_tick = -~(lower_tick - 1);\n }\n if (upper_tick > upper_bound) {\n upper_tick = -~(upper_tick - 1);\n }\n const liquidityInt = Math.floor(Number(liquidity));\n const sqrtPrice = sqrtPriceCetusMap.get(pool as PoolName) as string;\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(sqrtPrice),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n const coinAmounts = [\n coin_amounts.coinA.toNumber(),\n coin_amounts.coinB.toNumber(),\n ];\n const ten = new Decimal(10);\n const coin1 = poolCoinPairMap[pool as DoubleAssetPoolNames].coinA;\n const coin2 = poolCoinPairMap[pool as DoubleAssetPoolNames].coinB;\n\n const amount1 = new Decimal(coinAmounts[0]).div(ten.pow(coins[coin1].expo));\n const amount2 = new Decimal(coinAmounts[1]).div(ten.pow(coins[coin2].expo));\n const priceOfCoin1 = tokenPriceMap.get(coin1);\n const priceOfCoin2 = tokenPriceMap.get(coin2);\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\nfunction alphaLiquidityToUSD(\n liquidity: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const priceOfAlpha = tokenPriceMap.get(\"ALPHA\");\n if (priceOfAlpha) {\n let amount = new Decimal(liquidity).div(1e9);\n amount = amount.mul(priceOfAlpha);\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ALPHA:`, error);\n return undefined;\n }\n}\nfunction singleAssetLiquidityToUSD(\n liquidity: string,\n pool: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const singlePool = pool as Extract<\n PoolName,\n \"NAVI-VSUI\" | \"NAVI-SUI\" | \"NAVI-WETH\" | \"NAVI-USDC\" | \"NAVI-USDT\"\n >;\n const coin = poolCoinMap[singlePool];\n let amount = new Decimal(liquidity).div(Math.pow(10, 9 - coins[coin].expo));\n amount = amount.div(new Decimal(Math.pow(10, coins[coin].expo)));\n const priceOfCoin = tokenPriceMap.get(coin);\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\n\nexport function mergeDuplicateHoldings(\n userTokens: [string, string, string][],\n): [string, string, string][] {\n const address_poolValueMap = new Map<string, number>();\n userTokens.forEach(([address, pool, value]) => {\n const key = `${address}_${pool}`;\n const numericValue = parseFloat(value);\n if (address_poolValueMap.has(key)) {\n address_poolValueMap.set(\n key,\n address_poolValueMap.get(key)! + numericValue,\n );\n } else {\n address_poolValueMap.set(key, numericValue);\n }\n });\n return Array.from(address_poolValueMap.entries()).map(([key, value]) => {\n const [address, pool] = key.split(\"_\");\n return [address, pool, value.toFixed(2).toString()];\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"getHoldersFromTransactionsUtils.js","sourceRoot":"","sources":["../../../src/utils/getHoldersFromTransactionsUtils.ts"],"names":[],"mappings":";;AAsBA,0DAyBC;AAED,wCAgBC;AAqGD,wDAoBC;AApLD,+CAK2B;AAC3B,2CAAqC;AACrC,iCAA2B;AAE3B,0EAI2C;AAC3C,iDAA+C;AAExC,KAAK,UAAU,uBAAuB,CAC3C,QAA6B;IAE7B,IAAI,UAAU,GAA+B,EAAE,CAAC;IAEhD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;QACtC,IAAI,OAAO,EAAE,QAAQ,KAAK,YAAY,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAiD,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;YAC3B,MAAM,IAAI,GAAG,2BAAiB,CAAC,MAAM,CAAC,OAAO,CAAW,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;YACrC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,IAAA,gCAAsB,GAAE,CAAC;IACrD,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;QACrD,MAAM,UAAU,GAAG,IAAI,oBAAO,CAC5B,aAAa,CAAC,GAAG,CAAC,IAAgB,CAAW,CAC9C,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,oBAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC1E,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAgB,cAAc,CAC5B,MAA4B;IAE5B,IAAI,UAA8B,CAAC;IACnC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;QAC3C,UAAU,GAAG,yBAAyB,CACpC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,aAAa,CACrB,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvC,UAAU,GAAG,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AACD,SAAS,yBAAyB,CAAC,MAMlC;IACC,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;IACnD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,CAAC;QAC3B,IAAI,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,UAAU,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;QAEnD,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;YAC7B,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,UAAU,GAAG,WAAW,EAAE,CAAC;YAC7B,UAAU,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAgB,CAAW,CAAC;QACpE,MAAM,YAAY,GAAgB,iCAAY,CAAC,0BAA0B,CACvE,IAAI,UAAE,CAAC,GAAG,YAAY,EAAE,CAAC,EACzB,IAAI,UAAE,CAAC,SAAS,CAAC,EACjB,6BAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAC5C,6BAAQ,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAC5C,IAAI,CACL,CAAC;QACF,MAAM,WAAW,GAAG;YAClB,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC7B,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE;SAC9B,CAAC;QACF,MAAM,GAAG,GAAG,IAAI,oBAAO,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,gCAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QACjD,MAAM,KAAK,GAAG,gCAAsB,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAEjD,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7C,GAAG,CAAC,GAAG,CAAC,oBAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7C,GAAG,CAAC,GAAG,CAAC,oBAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAC/B,CAAC;QACF,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AACD,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,aAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AACD,SAAS,yBAAyB,CAChC,SAAiB,EACjB,IAAY,EACZ,aAAoC;IAEpC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAGlB,CAAC;QACF,MAAM,IAAI,GAAG,gCAAsB,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QACrD,IAAI,MAAM,GAAG,IAAI,oBAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CACrC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,oBAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CACvC,CAAC;QACF,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,oBAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5C,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3C,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAgB,sBAAsB,CACpC,UAAsC;IAEtC,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvD,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE;QAC5C,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAClC,oBAAoB,CAAC,GAAG,CACtB,GAAG,EACH,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAE,GAAG,YAAY,CAC9C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACrE,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { SuiObjectResponse } from \"@mysten/sui/client\";\nimport {\n AlphaReceiptFields,\n OtherReceiptFields,\n LiquidityToUsdParams,\n} from \"../types.js\";\nimport {\n poolIdPoolNameMap,\n doubleAssetPoolCoinMap,\n getPoolExchangeRateMap,\n singleAssetPoolCoinMap,\n} from \"../common/maps.js\";\nimport { Decimal } from \"decimal.js\";\nimport { BN } from \"bn.js\";\nimport { PoolName, CoinName } from \"../common/types.js\";\nimport {\n ClmmPoolUtil,\n TickMath,\n CoinAmounts,\n} from \"@cetusprotocol/cetus-sui-clmm-sdk\";\nimport { coinsList } from \"../common/coins.js\";\n\nexport async function parseTokensFromReceipts(\n receipts: SuiObjectResponse[],\n): Promise<[string, string, string][]> {\n let userTokens: [string, string, string][] = [];\n\n for (const receipt of receipts) {\n const nftData = receipt.data?.content;\n if (nftData?.dataType === \"moveObject\") {\n const fields = nftData.fields as AlphaReceiptFields | OtherReceiptFields;\n const owner = fields.owner;\n const pool = poolIdPoolNameMap[fields.pool_id] as string;\n const xTokens = fields.xTokenBalance;\n userTokens.push([owner, pool, xTokens]);\n }\n }\n const conversionMap = await getPoolExchangeRateMap();\n userTokens = userTokens.map(([owner, pool, xTokens]) => {\n const conversion = new Decimal(\n conversionMap.get(pool as PoolName) as string,\n );\n const tokens = new Decimal(xTokens).mul(conversion).toFixed(4).toString();\n return [owner, pool, tokens];\n });\n\n return userTokens;\n}\n\nexport function liquidityToUsd(\n params: LiquidityToUsdParams,\n): string | undefined {\n let holdingUSD: string | undefined;\n if (params.poolName.slice(0, 4) === \"NAVI\") {\n holdingUSD = singleAssetLiquidityToUSD(\n params.liquidity,\n params.poolName,\n params.tokenPriceMap,\n );\n } else if (params.poolName === \"ALPHA\") {\n holdingUSD = alphaLiquidityToUSD(params.liquidity, params.tokenPriceMap);\n } else {\n holdingUSD = doubleAssetliquidityToUSD(params);\n }\n return holdingUSD;\n}\nfunction doubleAssetliquidityToUSD(params: {\n liquidity: string;\n poolName: string;\n ticksCetusMap: { [pool: string]: { lower: string; upper: string } };\n sqrtPriceCetusMap: Map<PoolName, string>;\n tokenPriceMap: Map<CoinName, string>;\n}): string | undefined {\n const pool = params.poolName;\n const liquidity = params.liquidity;\n const ticksCetusMap = params.ticksCetusMap;\n const sqrtPriceCetusMap = params.sqrtPriceCetusMap;\n const tokenPriceMap = params.tokenPriceMap;\n\n try {\n const upper_bound = 443636;\n let lower_tick = Number(ticksCetusMap[pool].lower);\n let upper_tick = Number(ticksCetusMap[pool].upper);\n\n if (lower_tick > upper_bound) {\n lower_tick = -~(lower_tick - 1);\n }\n if (upper_tick > upper_bound) {\n upper_tick = -~(upper_tick - 1);\n }\n const liquidityInt = Math.floor(Number(liquidity));\n const sqrtPrice = sqrtPriceCetusMap.get(pool as PoolName) as string;\n const coin_amounts: CoinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(\n new BN(`${liquidityInt}`),\n new BN(sqrtPrice),\n TickMath.tickIndexToSqrtPriceX64(lower_tick),\n TickMath.tickIndexToSqrtPriceX64(upper_tick),\n true,\n );\n const coinAmounts = [\n coin_amounts.coinA.toNumber(),\n coin_amounts.coinB.toNumber(),\n ];\n const ten = new Decimal(10);\n const coin1 = doubleAssetPoolCoinMap[pool].coin1;\n const coin2 = doubleAssetPoolCoinMap[pool].coin2;\n\n const amount1 = new Decimal(coinAmounts[0]).div(\n ten.pow(coinsList[coin1].expo),\n );\n const amount2 = new Decimal(coinAmounts[1]).div(\n ten.pow(coinsList[coin2].expo),\n );\n const priceOfCoin1 = tokenPriceMap.get(coin1);\n const priceOfCoin2 = tokenPriceMap.get(coin2);\n if (priceOfCoin1 && priceOfCoin2) {\n const amount = amount1.mul(priceOfCoin1).add(amount2.mul(priceOfCoin2));\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\nfunction alphaLiquidityToUSD(\n liquidity: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const priceOfAlpha = tokenPriceMap.get(\"ALPHA\");\n if (priceOfAlpha) {\n let amount = new Decimal(liquidity).div(1e9);\n amount = amount.mul(priceOfAlpha);\n return amount.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ALPHA:`, error);\n return undefined;\n }\n}\nfunction singleAssetLiquidityToUSD(\n liquidity: string,\n pool: string,\n tokenPriceMap: Map<CoinName, string>,\n) {\n try {\n const singlePool = pool as Extract<\n PoolName,\n \"NAVI-VSUI\" | \"NAVI-SUI\" | \"NAVI-WETH\" | \"NAVI-USDC\" | \"NAVI-USDT\"\n >;\n const coin = singleAssetPoolCoinMap[singlePool].coin;\n let amount = new Decimal(liquidity).div(\n Math.pow(10, 9 - coinsList[coin].expo),\n );\n amount = amount.div(new Decimal(Math.pow(10, coinsList[coin].expo)));\n const priceOfCoin = tokenPriceMap.get(coin);\n if (priceOfCoin) {\n const amountInUSD = amount.mul(priceOfCoin);\n return amountInUSD.toFixed(2).toString();\n }\n } catch (error) {\n console.error(`Error fetching price of ${pool}:`, error);\n return undefined;\n }\n}\n\nexport function mergeDuplicateHoldings(\n userTokens: [string, string, string][],\n): [string, string, string][] {\n const address_poolValueMap = new Map<string, number>();\n userTokens.forEach(([address, pool, value]) => {\n const key = `${address}_${pool}`;\n const numericValue = parseFloat(value);\n if (address_poolValueMap.has(key)) {\n address_poolValueMap.set(\n key,\n address_poolValueMap.get(key)! + numericValue,\n );\n } else {\n address_poolValueMap.set(key, numericValue);\n }\n });\n return Array.from(address_poolValueMap.entries()).map(([key, value]) => {\n const [address, pool] = key.split(\"_\");\n return [address, pool, value.toFixed(2).toString()];\n });\n}\n"]}
|
package/dist/cjs/utils/hop.js
CHANGED
|
@@ -79,7 +79,7 @@ async function getBlubPrice() {
|
|
|
79
79
|
// return 1;
|
|
80
80
|
const hopGateway = new HopGateway(exports.hopSDKOptions);
|
|
81
81
|
const swapOptions = {
|
|
82
|
-
pair: { coinA: coins_js_1.
|
|
82
|
+
pair: { coinA: coins_js_1.coinsList.BLUB, coinB: coins_js_1.coinsList.USDC },
|
|
83
83
|
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
84
84
|
inAmount: new bn_js_1.default(1000000000),
|
|
85
85
|
slippage: 1,
|
|
@@ -96,7 +96,7 @@ async function getBlubPrice() {
|
|
|
96
96
|
async function getFudPrice() {
|
|
97
97
|
const hopGateway = new HopGateway(exports.hopSDKOptions);
|
|
98
98
|
const swapOptions = {
|
|
99
|
-
pair: { coinA: coins_js_1.
|
|
99
|
+
pair: { coinA: coins_js_1.coinsList.FUD, coinB: coins_js_1.coinsList.USDC },
|
|
100
100
|
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
101
101
|
inAmount: new bn_js_1.default(1000000000000),
|
|
102
102
|
slippage: 1,
|
|
@@ -113,7 +113,7 @@ async function getFudPrice() {
|
|
|
113
113
|
async function getWsolPrice() {
|
|
114
114
|
const hopGateway = new HopGateway(exports.hopSDKOptions);
|
|
115
115
|
const swapOptions = {
|
|
116
|
-
pair: { coinA: coins_js_1.
|
|
116
|
+
pair: { coinA: coins_js_1.coinsList.WSOL, coinB: coins_js_1.coinsList.USDC },
|
|
117
117
|
senderAddress: "0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e",
|
|
118
118
|
inAmount: new bn_js_1.default(100000000),
|
|
119
119
|
slippage: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../src/utils/hop.ts"],"names":[],"mappings":";;;AA2FA,sCAGC;AACD,oCAqBC;AAED,kCAoBC;AACD,oCAkBC;;AA7JD,qCAMqB;AAErB,yDAAwD;AAExD,oDAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"hop.js","sourceRoot":"","sources":["../../../src/utils/hop.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetTxParams,\n HopApi,\n HopApiOptions,\n GetQuoteParams,\n GetQuoteResponse,\n} from \"@hop.ag/sdk\";\nimport { SwapOptions } from \"../common/types.js\";\nimport { conf, CONF_ENV } from \"../common/constants.js\";\nimport { Transaction } from \"@mysten/sui/transactions\";\nimport { getSuiNodeUrl } from \"../sui-sdk/client.js\";\nimport { coinsList } from \"../common/coins.js\";\nimport { getLatestPrices } from \"./prices.js\";\nimport BN from \"bn.js\";\n\nexport type HopSwapOptions = SwapOptions;\n\nexport const hopSDKOptions: HopApiOptions = {\n api_key: conf[CONF_ENV].HOP_API_KEY,\n fee_bps: conf[CONF_ENV].HOP_FEE_BPS,\n fee_wallet: conf[CONF_ENV].HOP_QUERY_WALLET,\n};\n\nexport class HopGateway {\n private hopAPI: HopApi;\n\n constructor(sdkOptions: HopApiOptions) {\n const rpc_url = getSuiNodeUrl();\n this.hopAPI = new HopApi(rpc_url, sdkOptions);\n }\n\n async getQuote(\n options: HopSwapOptions,\n debug: boolean = false,\n ): Promise<GetQuoteResponse> {\n const { pair, inAmount, outAmount } = options;\n let amount: BN = new BN(0);\n if (inAmount) {\n amount = inAmount;\n } else if (outAmount) {\n amount = outAmount;\n }\n\n const params: GetQuoteParams = {\n token_in: pair.coinA.type,\n token_out: pair.coinB.type,\n amount_in: BigInt(amount.toString()),\n };\n\n if (debug) {\n console.debug(\"fetchQuote Params:\");\n console.debug(params);\n }\n const quote = await this.hopAPI.fetchQuote(params);\n return quote;\n }\n\n async getTransactionBlock(\n options: HopSwapOptions,\n quote: GetQuoteResponse,\n debug: boolean = false,\n transaction: Transaction | undefined = undefined,\n ): Promise<Transaction> {\n const { senderAddress, slippage } = options;\n const splippageBPS = slippage * 100;\n\n let params: GetTxParams;\n if (transaction) {\n params = {\n trade: quote.trade,\n sui_address: senderAddress,\n max_slippage_bps: splippageBPS,\n base_transaction: transaction,\n };\n } else {\n params = {\n trade: quote.trade,\n sui_address: senderAddress,\n max_slippage_bps: splippageBPS,\n };\n }\n\n if (debug) {\n console.debug(\"fetchTx Params:\");\n console.debug(params);\n }\n const trade = await this.hopAPI.fetchTx(params);\n\n return trade.transaction;\n }\n}\nexport async function getWUSDCPrice(): Promise<number | undefined> {\n const [wusdcPrice] = await getLatestPrices([\"USDC/USD\"], false);\n return Number(wusdcPrice);\n}\nexport async function getBlubPrice(): Promise<number | undefined> {\n // return 1;\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coinsList.BLUB, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_000),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return (\n Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6 * 1e-7\n );\n } else {\n return undefined;\n }\n}\n\nexport async function getFudPrice(): Promise<number | undefined> {\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coinsList.FUD, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_000_000),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return (\n Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6 * 1e-7\n );\n } else {\n return undefined;\n }\n}\nexport async function getWsolPrice(): Promise<number | undefined> {\n const hopGateway = new HopGateway(hopSDKOptions);\n\n const swapOptions: HopSwapOptions = {\n pair: { coinA: coinsList.WSOL, coinB: coinsList.USDC },\n senderAddress:\n \"0x4260738f0f7341adc79a8edaa62f8a4681ebd27c595aecab1f322f47bfc52c5e\",\n inAmount: new BN(1_000_000_00),\n slippage: 1,\n };\n\n const res = await hopGateway.getQuote(swapOptions);\n const [latestUSDCPrice] = await getLatestPrices([\"USDC/USD\"], false);\n if (latestUSDCPrice) {\n return Number(res.amount_out_with_fee) * Number(latestUSDCPrice) * 1e-6;\n } else {\n return undefined;\n }\n}\n"]}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { PythPriceIdPair } from "../common/pyth.js";
|
|
2
|
+
export declare const coinsToGetFromPyth: PythPriceIdPair[];
|
|
3
|
+
export declare function getMultiLatestPrices(): Promise<void>;
|
|
2
4
|
export declare function getLatestPrices(pairs: PythPriceIdPair[], ignoreCache: boolean): Promise<string[]>;
|
|
3
5
|
export declare function getLatestTokenPricePairs(pairs: PythPriceIdPair[], ignoreCache: boolean): Promise<{
|
|
4
6
|
[key: string]: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"prices.d.ts","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKpD,eAAO,MAAM,kBAAkB,EAAE,eAAe,EA2B/C,CAAC;AAEF,wBAAsB,oBAAoB,kBAQzC;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsCnB;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC,CAWhD"}
|
package/dist/cjs/utils/prices.js
CHANGED
|
@@ -1,9 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.coinsToGetFromPyth = void 0;
|
|
4
|
+
exports.getMultiLatestPrices = getMultiLatestPrices;
|
|
3
5
|
exports.getLatestPrices = getLatestPrices;
|
|
4
6
|
exports.getLatestTokenPricePairs = getLatestTokenPricePairs;
|
|
5
7
|
const simpleCache_js_1 = require("./simpleCache.js");
|
|
6
8
|
const latestPriceCache = new simpleCache_js_1.SimpleCache(5000);
|
|
9
|
+
exports.coinsToGetFromPyth = [
|
|
10
|
+
"SUI/USD",
|
|
11
|
+
"USDC/USD",
|
|
12
|
+
"USDT/USD",
|
|
13
|
+
"HASUI/USD",
|
|
14
|
+
"CETUS/USD",
|
|
15
|
+
"VSUI/USD",
|
|
16
|
+
"NAVX/USD",
|
|
17
|
+
"SCA/USD",
|
|
18
|
+
"AFSUI/USD",
|
|
19
|
+
"WETH/USD",
|
|
20
|
+
"WBTC/USD",
|
|
21
|
+
"TURBOS/USD",
|
|
22
|
+
"CELO/USD",
|
|
23
|
+
"SLP/USD",
|
|
24
|
+
"SOL/USD",
|
|
25
|
+
"APT/USD",
|
|
26
|
+
"BUCK/USD",
|
|
27
|
+
"WSOL/USD",
|
|
28
|
+
"WUSDC/USD",
|
|
29
|
+
"ALPHA/USD",
|
|
30
|
+
"FUD/USD",
|
|
31
|
+
"BLUB/USD",
|
|
32
|
+
"ETH/USD",
|
|
33
|
+
"DEEP/USD",
|
|
34
|
+
"AUSD/USD",
|
|
35
|
+
"USDY/USD",
|
|
36
|
+
];
|
|
37
|
+
async function getMultiLatestPrices() {
|
|
38
|
+
const pricesFromPyth = await getLatestPrices(exports.coinsToGetFromPyth, true);
|
|
39
|
+
pricesFromPyth.forEach((price, index) => {
|
|
40
|
+
if (price) {
|
|
41
|
+
const cacheKey = `getLatestPrice-${exports.coinsToGetFromPyth[index]}`;
|
|
42
|
+
latestPriceCache.set(cacheKey, price);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
7
46
|
async function getLatestPrices(pairs, ignoreCache) {
|
|
8
47
|
const pairsToFetch = [];
|
|
9
48
|
const pairsToFetchIndexes = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/utils/prices.ts"],"names":[],"mappings":"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","sourcesContent":["import { PythPriceIdPair } from \"../common/pyth.js\";\nimport { SimpleCache } from \"./simpleCache.js\";\n\nconst latestPriceCache = new SimpleCache<string>(5000);\n\nexport const coinsToGetFromPyth: PythPriceIdPair[] = [\n \"SUI/USD\" as PythPriceIdPair,\n \"USDC/USD\" as PythPriceIdPair,\n \"USDT/USD\" as PythPriceIdPair,\n \"HASUI/USD\" as PythPriceIdPair,\n \"CETUS/USD\" as PythPriceIdPair,\n \"VSUI/USD\" as PythPriceIdPair,\n \"NAVX/USD\" as PythPriceIdPair,\n \"SCA/USD\" as PythPriceIdPair,\n \"AFSUI/USD\" as PythPriceIdPair,\n \"WETH/USD\" as PythPriceIdPair,\n \"WBTC/USD\" as PythPriceIdPair,\n \"TURBOS/USD\" as PythPriceIdPair,\n \"CELO/USD\" as PythPriceIdPair,\n \"SLP/USD\" as PythPriceIdPair,\n \"SOL/USD\" as PythPriceIdPair,\n \"APT/USD\" as PythPriceIdPair,\n \"BUCK/USD\" as PythPriceIdPair,\n \"WSOL/USD\" as PythPriceIdPair,\n \"WUSDC/USD\" as PythPriceIdPair,\n \"ALPHA/USD\" as PythPriceIdPair,\n \"FUD/USD\" as PythPriceIdPair,\n \"BLUB/USD\" as PythPriceIdPair,\n \"ETH/USD\" as PythPriceIdPair,\n \"DEEP/USD\" as PythPriceIdPair,\n \"AUSD/USD\" as PythPriceIdPair,\n \"USDY/USD\" as PythPriceIdPair,\n];\n\nexport async function getMultiLatestPrices() {\n const pricesFromPyth = await getLatestPrices(coinsToGetFromPyth, true);\n pricesFromPyth.forEach((price, index) => {\n if (price) {\n const cacheKey = `getLatestPrice-${coinsToGetFromPyth[index]}`;\n latestPriceCache.set(cacheKey, price);\n }\n });\n}\n\nexport async function getLatestPrices(\n pairs: PythPriceIdPair[],\n ignoreCache: boolean,\n): Promise<string[]> {\n const pairsToFetch: PythPriceIdPair[] = [];\n const pairsToFetchIndexes: number[] = [];\n\n const prices: string[] = pairs.map((pair, index) => {\n const cacheKey = `getLatestPrice-${pair}`;\n if (ignoreCache) {\n latestPriceCache.delete(cacheKey);\n }\n const cachedResponse = latestPriceCache.get(cacheKey);\n if (cachedResponse) {\n return cachedResponse;\n }\n pairsToFetch.push(pair);\n pairsToFetchIndexes.push(index);\n return \"\";\n });\n if (pairsToFetch.length > 0) {\n try {\n const fetchedPrices = await fetchPricesFromAlphaAPI(pairsToFetch);\n pairsToFetch.forEach((_pair, i) => {\n const price = fetchedPrices[i];\n prices[pairsToFetchIndexes[i]] = price.price;\n });\n } catch (error) {\n console.error(\n `Error in getLatestPrices for pairs ${pairsToFetch}:`,\n error,\n );\n }\n }\n prices.forEach((price, i) => {\n if (price) {\n const cacheKey = `getLatestPrice-${pairs[i]}`;\n latestPriceCache.set(cacheKey, price);\n }\n });\n return prices;\n}\n\nexport async function getLatestTokenPricePairs(\n pairs: PythPriceIdPair[],\n ignoreCache: boolean,\n): Promise<{ [key: string]: string | undefined }> {\n const priceMap: { [key: string]: string | undefined } = {};\n\n // Use getLatestPrices to fetch all prices at once\n const prices = await getLatestPrices(pairs, ignoreCache);\n\n pairs.forEach((pair, index) => {\n priceMap[pair] = prices[index];\n });\n\n return priceMap;\n}\n\ninterface PythPricePair {\n pair: PythPriceIdPair;\n price: string;\n}\n\nasync function fetchPricesFromAlphaAPI(\n pairs: PythPriceIdPair[],\n): Promise<PythPricePair[]> {\n const req_url = `https://api.alphafi.xyz/alpha/fetchPrices?pairs=${pairs.join(\",\")}`;\n let prices: PythPricePair[] = [];\n try {\n const res = await fetch(req_url);\n if (!res.ok) {\n throw new Error(`HTTP error! status: ${res.status}`);\n }\n const data = (await res.json()) as PythPricePair[];\n prices = data;\n } catch (error) {\n console.error(`Error fetching prices for pairs ${pairs}:`, error);\n throw error;\n }\n return prices;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userHoldings.d.ts","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"userHoldings.d.ts","sourceRoot":"","sources":["../../../src/utils/userHoldings.ts"],"names":[],"mappings":"AASA,OAAO,EACL,wBAAwB,EACxB,WAAW,EACX,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,aAAa,CAAC;AAarB,wBAAsB,uBAAuB,CAAC,eAAe,EAAE,WAAW,EAAE,0BAmB3E;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,oEA4BnE;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA4B3B;AA0JD,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,CAAC,wBAAwB,GAAG,wBAAwB,CAAC,EAAE,GACtE,OAAO,CAAC,WAAW,EAAE,CAAC,CAoDxB"}
|