@alphafi/alphafi-sdk 0.0.93 → 0.0.95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/common/constants.d.ts +30 -0
- package/dist/cjs/common/constants.d.ts.map +1 -1
- package/dist/cjs/common/constants.js +34 -3
- package/dist/cjs/common/constants.js.map +1 -1
- package/dist/cjs/graphql/fetchData.js +1 -1
- package/dist/cjs/graphql/fetchData.js.map +1 -1
- package/dist/cjs/graphql/getMultiReceipts.d.ts.map +1 -1
- package/dist/cjs/graphql/getMultiReceipts.js +8 -6
- package/dist/cjs/graphql/getMultiReceipts.js.map +1 -1
- package/dist/cjs/graphql/queries/getMultiReceipts.js +1 -1
- package/dist/cjs/graphql/queries/getMultiReceipts.js.map +1 -1
- package/dist/cjs/transactions/blueRewards.d.ts.map +1 -1
- package/dist/cjs/transactions/blueRewards.js +118 -3
- package/dist/cjs/transactions/blueRewards.js.map +1 -1
- package/dist/esm/common/constants.d.ts +30 -0
- package/dist/esm/common/constants.d.ts.map +1 -1
- package/dist/esm/common/constants.js +34 -3
- package/dist/esm/common/constants.js.map +1 -1
- package/dist/esm/graphql/fetchData.js +1 -1
- package/dist/esm/graphql/fetchData.js.map +1 -1
- package/dist/esm/graphql/getMultiReceipts.d.ts.map +1 -1
- package/dist/esm/graphql/getMultiReceipts.js +8 -6
- package/dist/esm/graphql/getMultiReceipts.js.map +1 -1
- package/dist/esm/graphql/queries/getMultiReceipts.js +1 -1
- package/dist/esm/graphql/queries/getMultiReceipts.js.map +1 -1
- package/dist/esm/transactions/blueRewards.d.ts.map +1 -1
- package/dist/esm/transactions/blueRewards.js +119 -4
- package/dist/esm/transactions/blueRewards.js.map +1 -1
- package/docs/functions/alphaLpBreakdown.html +1 -1
- package/docs/functions/cetusLpBreakdown.html +1 -1
- package/docs/functions/claimRewardTxb.html +1 -1
- package/docs/functions/claimRewardsTxb.html +1 -1
- package/docs/functions/coinAmountToXTokensDoubleAsset.html +1 -1
- package/docs/functions/coinAmountToXTokensSingleAsset.html +1 -1
- package/docs/functions/coinsInPool.html +1 -1
- package/docs/functions/collectAndSwapRewardsSingleLoop.html +1 -1
- package/docs/functions/collectRewardTxb.html +1 -1
- package/docs/functions/collectRewards.html +1 -1
- package/docs/functions/deposit.html +1 -1
- package/docs/functions/depositDoubleAssetTxb.html +1 -1
- package/docs/functions/depositSingleAssetTxb.html +1 -1
- package/docs/functions/fetchAfterTransactionEvents.html +1 -1
- package/docs/functions/fetchAirdropClaimEvents.html +1 -1
- package/docs/functions/fetchAutoCompoundingEvents.html +1 -1
- package/docs/functions/fetchAutoCompoundingEventsGql.html +1 -1
- package/docs/functions/fetchCetusPools.html +1 -1
- package/docs/functions/fetchChainIdentifier.html +1 -1
- package/docs/functions/fetchCheckRatioEvents.html +1 -1
- package/docs/functions/fetchEvents.html +1 -1
- package/docs/functions/fetchLiquidityChangeEvents.html +1 -1
- package/docs/functions/fetchMultiCategoryEvents.html +1 -1
- package/docs/functions/fetchMultiReceipts.html +1 -1
- package/docs/functions/fetchNftHolders.html +1 -1
- package/docs/functions/fetchPools.html +1 -1
- package/docs/functions/fetchPortfolioData.html +1 -1
- package/docs/functions/fetchProtocolData.html +1 -1
- package/docs/functions/fetchRequiredPrices.html +1 -1
- package/docs/functions/fetchTVL.html +1 -1
- package/docs/functions/fetchTransactions.html +1 -1
- package/docs/functions/fetchUserVaultBalances.html +1 -1
- package/docs/functions/fetchUserVaults.html +1 -1
- package/docs/functions/fetchUserWalletData.html +1 -1
- package/docs/functions/fetchVoloExchangeRate.html +1 -1
- package/docs/functions/fetchWithdrawV2Events.html +1 -1
- package/docs/functions/getAirdropShare.html +1 -1
- package/docs/functions/getAllDoubleAssetVaults.html +1 -1
- package/docs/functions/getAllSingleAssetVaults.html +1 -1
- package/docs/functions/getAllVaultBalances.html +1 -1
- package/docs/functions/getAllVaults.html +1 -1
- package/docs/functions/getAlphaUnlocks.html +1 -1
- package/docs/functions/getAlphaVaultBalance.html +1 -1
- package/docs/functions/getAmounts.html +1 -1
- package/docs/functions/getApr.html +1 -1
- package/docs/functions/getAprs.html +1 -1
- package/docs/functions/getApy.html +1 -1
- package/docs/functions/getApys.html +1 -1
- package/docs/functions/getCetusInvestorTicksMap.html +1 -1
- package/docs/functions/getCetusPool.html +1 -1
- package/docs/functions/getCetusSqrtPriceMap.html +1 -1
- package/docs/functions/getCoinAmountsFromLiquidity.html +1 -1
- package/docs/functions/getConf.html +1 -1
- package/docs/functions/getCurrentTick.html +1 -1
- package/docs/functions/getDistributor.html +1 -1
- package/docs/functions/getDoubleAssetVaultBalance.html +1 -1
- package/docs/functions/getDoubleAssetVaults.html +1 -1
- package/docs/functions/getInvestor.html +1 -1
- package/docs/functions/getInvestorPoolMap.html +1 -1
- package/docs/functions/getLastAutoCompoundTime.html +1 -1
- package/docs/functions/getLatestPrices.html +1 -1
- package/docs/functions/getLiquidity.html +1 -1
- package/docs/functions/getMultiCetusPool.html +1 -1
- package/docs/functions/getMultiInvestor.html +1 -1
- package/docs/functions/getMultiLatestPrices.html +1 -1
- package/docs/functions/getMultiParentPool.html +1 -1
- package/docs/functions/getMultiPool.html +1 -1
- package/docs/functions/getMultiReceipts.html +1 -1
- package/docs/functions/getParentPool.html +1 -1
- package/docs/functions/getPool.html +1 -1
- package/docs/functions/getPoolExchangeRate.html +1 -1
- package/docs/functions/getPoolExchangeRateMap.html +1 -1
- package/docs/functions/getPoolsWeightDistribution.html +1 -1
- package/docs/functions/getPositionRange.html +1 -1
- package/docs/functions/getPositionRanges.html +1 -1
- package/docs/functions/getPositionTicks.html +1 -1
- package/docs/functions/getPriceToTick.html +1 -1
- package/docs/functions/getRebalanceHistories.html +1 -1
- package/docs/functions/getRebalanceHistory.html +1 -1
- package/docs/functions/getReceipts.html +1 -1
- package/docs/functions/getSingleAssetVaultBalance.html +1 -1
- package/docs/functions/getSingleAssetVaults.html +1 -1
- package/docs/functions/getSuiClient.html +2 -2
- package/docs/functions/getSuiNodeUrl.html +2 -2
- package/docs/functions/getTVLs-1.html +1 -1
- package/docs/functions/getTickSpacing.html +1 -1
- package/docs/functions/getTickToPrice.html +1 -1
- package/docs/functions/getTvls.html +1 -1
- package/docs/functions/getVaultBalance.html +1 -1
- package/docs/functions/getVaults.html +1 -1
- package/docs/functions/lastAutocompoundTime.html +1 -1
- package/docs/functions/liquidityToTokens.html +1 -1
- package/docs/functions/migrateBoostedToLoop.html +1 -1
- package/docs/functions/multiLiquidityToTokens.html +1 -1
- package/docs/functions/multiTokensToUsd.html +1 -1
- package/docs/functions/multiXTokensToLiquidity.html +1 -1
- package/docs/functions/parseUserWalletData.html +1 -1
- package/docs/functions/pendingRewardAmount.html +1 -1
- package/docs/functions/setCustomSuiClient.html +2 -2
- package/docs/functions/setSuiClient.html +2 -2
- package/docs/functions/setSuiNodeUrl.html +2 -2
- package/docs/functions/setWeights.html +1 -1
- package/docs/functions/withdraw.html +1 -1
- package/docs/functions/withdrawAlphaTxb.html +1 -1
- package/docs/functions/withdrawTxb.html +1 -1
- package/docs/functions/zapDepositQuoteTxb.html +1 -1
- package/docs/functions/zapDepositTxb.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/index.html +2 -2
- package/docs/interfaces/Coin.html +6 -6
- package/docs/interfaces/CoinPair.html +2 -2
- package/docs/interfaces/CommonEventAttributes.html +2 -2
- package/docs/interfaces/NaviVoloData.html +2 -2
- package/docs/interfaces/PoolData.html +2 -2
- package/docs/interfaces/PoolWeightDistribution.html +2 -2
- package/docs/interfaces/RebalanceHistoryType.html +2 -2
- package/docs/modules.html +1 -1
- package/docs/types/AfterTransactionEventNode.html +1 -1
- package/docs/types/AirdropClaimEventNode.html +1 -1
- package/docs/types/Allocator.html +2 -2
- package/docs/types/AlphaFiDoubleAssetVault.html +2 -2
- package/docs/types/AlphaFiMultiVaultBalance.html +1 -1
- package/docs/types/AlphaFiSingleAssetVault.html +2 -2
- package/docs/types/AlphaFiVault.html +1 -1
- package/docs/types/AlphaFiVaultBalance.html +1 -1
- package/docs/types/AlphaLendInvestor.html +1 -1
- package/docs/types/AlphaPoolType.html +2 -2
- package/docs/types/AlphaReceipt.html +2 -2
- package/docs/types/AlphaReceiptFields.html +2 -2
- package/docs/types/AlphaVaultBalance.html +2 -2
- package/docs/types/AutoBalancePoolNames.html +1 -1
- package/docs/types/AutoCompoundingEventNode.html +1 -1
- package/docs/types/BluefinInvestor.html +1 -1
- package/docs/types/BluefinPoolType.html +2 -2
- package/docs/types/BucketInvestor.html +2 -2
- package/docs/types/CetusInvestor.html +2 -2
- package/docs/types/CetusPoolType.html +2 -2
- package/docs/types/CetusSwapOptions.html +1 -1
- package/docs/types/CoinAmounts.html +2 -2
- package/docs/types/CoinName.html +1 -1
- package/docs/types/CoinType.html +1 -1
- package/docs/types/CommonInvestorFields.html +2 -2
- package/docs/types/CreatePoolOptions.html +2 -2
- package/docs/types/Distributor.html +2 -2
- package/docs/types/DoubleAssetMultiVaultBalance.html +2 -2
- package/docs/types/DoubleAssetPoolNames.html +1 -1
- package/docs/types/DoubleAssetTokenHoldings.html +2 -2
- package/docs/types/DoubleAssetVaultBalance.html +2 -2
- package/docs/types/EventCategory.html +1 -1
- package/docs/types/EventNode.html +1 -1
- package/docs/types/GetHoldersParams.html +2 -2
- package/docs/types/GetTokenHoldingsParams.html +2 -2
- package/docs/types/GetUserTokensFromTransactionsParams.html +2 -2
- package/docs/types/GetUserTokensInUsdFromTransactionsParams.html +2 -2
- package/docs/types/GetVaultBalanceParams.html +1 -1
- package/docs/types/HoldingsObj.html +2 -2
- package/docs/types/Icon.html +1 -1
- package/docs/types/Investor.html +1 -1
- package/docs/types/LiquidityChangeEventNode.html +1 -1
- package/docs/types/LiquidityToTokensParams.html +2 -2
- package/docs/types/LiquidityToUsdParams.html +2 -2
- package/docs/types/LoopingDebt.html +2 -2
- package/docs/types/LoopingPoolNames.html +1 -1
- package/docs/types/LpBreakdownType.html +2 -2
- package/docs/types/MemberPoolDataType.html +2 -2
- package/docs/types/MemberType.html +2 -2
- package/docs/types/MultiGetVaultBalancesParams.html +2 -2
- package/docs/types/NaviInvestor.html +2 -2
- package/docs/types/OtherReceiptFields.html +2 -2
- package/docs/types/PoolName.html +1 -1
- package/docs/types/PoolReceipt.html +1 -1
- package/docs/types/PoolType.html +2 -2
- package/docs/types/Receipt.html +2 -2
- package/docs/types/ReceiptGQL.html +2 -2
- package/docs/types/SingleAssetMultiVaultBalance.html +2 -2
- package/docs/types/SingleAssetPoolNames.html +1 -1
- package/docs/types/SingleAssetTokenHoldings.html +2 -2
- package/docs/types/SingleAssetVaultBalance.html +2 -2
- package/docs/types/SingleGetVaultBalancesParams.html +2 -2
- package/docs/types/StrategyType.html +1 -1
- package/docs/types/SuiNetwork.html +1 -1
- package/docs/types/SwapOptions.html +1 -1
- package/docs/types/TickSpacing.html +1 -1
- package/docs/types/TotalWeightType.html +2 -2
- package/docs/types/TransactionBlockType.html +2 -2
- package/docs/types/UserPoolLiquidity.html +2 -2
- package/docs/types/UserPoolTokenHoldings.html +1 -1
- package/docs/types/UserUsdHoldings.html +2 -2
- package/docs/types/VaultBalance.html +1 -1
- package/docs/types/VoteCastEvent.html +1 -1
- package/docs/types/WithdrawV2EventNode.html +1 -1
- package/docs/variables/AUTOBALANCE_SUI_FIRST_POOLS.html +1 -1
- package/docs/variables/AUTOBALANCE_SUI_SECOND_POOLS.html +1 -1
- package/docs/variables/AUTOBALANCE_TYPE_1_POOLS.html +1 -1
- package/docs/variables/alphalendMarketIdMap.html +1 -1
- package/docs/variables/bluefinPoolMap.html +1 -1
- package/docs/variables/cetusPoolMap.html +1 -1
- package/docs/variables/coinsList.html +1 -1
- package/docs/variables/defunctPoolsSet.html +1 -1
- package/docs/variables/doubleAssetPoolCoinMap.html +1 -1
- package/docs/variables/eventCategories.html +1 -1
- package/docs/variables/ignoredWalletsForDailyRevenue.html +1 -1
- package/docs/variables/loopingAccountAddresses.html +1 -1
- package/docs/variables/loopingPoolCoinMap.html +1 -1
- package/docs/variables/naviAssetMap.html +1 -1
- package/docs/variables/poolIdPoolNameMap.html +1 -1
- package/docs/variables/poolInfo.html +1 -1
- package/docs/variables/singleAssetPoolCoinMap.html +1 -1
- package/docs/variables/stableCoins.html +1 -1
- package/package.json +1 -1
|
@@ -37,7 +37,7 @@ export async function fetchUserVaults(walletAddress) {
|
|
|
37
37
|
address: walletAddress,
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
|
-
return data?.
|
|
40
|
+
return data?.address;
|
|
41
41
|
}
|
|
42
42
|
export async function fetchUserVaultBalances(walletAddress) {
|
|
43
43
|
const { data: poolsData } = await client.query({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchData.js","sourceRoot":"","sources":["../../../src/graphql/fetchData.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAE3B;;GAEG;AAEH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,aAAa,EACb,eAAe,GAChB,MAAM,cAAc,CAAC;AActB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAiB;QAClD,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,EAAE,OAAO,EAAE;KACvB,CAAC,CAAC;IACH,OAAO,IAAI,EAAE,UAAU,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAe;QAChD,KAAK,EAAE,iBAAiB;KACzB,CAAC,CAAC;IACH,OAAO,IAAI,EAAE,YAAY,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAe;IACtD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAgB;QACjD,KAAK,EAAE,kBAAkB;QACzB,SAAS,EAAE,EAAE,OAAO,EAAE;KACvB,CAAC,CAAC;IACH,OAAO,IAAI,EAAE,SAAS,CAAC;AACzB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAkB;QACnD,KAAK,EAAE,oBAAoB;KAC5B,CAAC,CAAC;IACH,OAAO,IAAI,EAAE,eAAe,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,aAAqB;IACzD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"fetchData.js","sourceRoot":"","sources":["../../../src/graphql/fetchData.ts"],"names":[],"mappings":"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","sourcesContent":["// src/graphql/fetchData.ts\n\n/* This file will contain functions that use the Apollo Client to\n/* execute the queries and return data.\n */\n\nimport client from \"./client.js\";\nimport {\n GET_USER_WALLET_DATA,\n GET_PROTOCOL_DATA,\n GET_PORTFOLIO_DATA,\n GET_CHAIN_IDENTIFIER,\n GET_USER_VAULTS,\n GET_USER_VAULT_BALANCES,\n GET_POOLS,\n GET_INVESTORS,\n GET_CETUS_POOLS,\n} from \"./queries.js\";\n\ntype UserWalletData = {\n userWallet: { coins: { name: string; amount: string }[] };\n};\ntype ProtocolData = {\n protocolData: {\n totalValueLocked: unknown;\n pools: { name: string; tvl: unknown }[];\n };\n};\ntype PortfolioData = { portfolio: { poolName: string; investment: unknown }[] };\ntype ChainIdentifier = { chainIdentifier: string };\n\nexport async function fetchUserWalletData(address: string) {\n const { data } = await client.query<UserWalletData>({\n query: GET_USER_WALLET_DATA,\n variables: { address },\n });\n return data?.userWallet;\n}\n\nexport async function fetchProtocolData() {\n const { data } = await client.query<ProtocolData>({\n query: GET_PROTOCOL_DATA,\n });\n return data?.protocolData;\n}\n\nexport async function fetchPortfolioData(address: string) {\n const { data } = await client.query<PortfolioData>({\n query: GET_PORTFOLIO_DATA,\n variables: { address },\n });\n return data?.portfolio;\n}\n\nexport async function fetchChainIdentifier() {\n const { data } = await client.query<ChainIdentifier>({\n query: GET_CHAIN_IDENTIFIER,\n });\n return data?.chainIdentifier;\n}\n\nexport async function fetchUserVaults(walletAddress: string) {\n const { data } = await client.query<{ address: unknown }>({\n query: GET_USER_VAULTS,\n variables: {\n address: walletAddress,\n },\n });\n return (data as any)?.address;\n}\n\nexport async function fetchUserVaultBalances(walletAddress: string) {\n const { data: poolsData } = await client.query<Record<string, unknown>>({\n query: GET_POOLS,\n });\n const { data: cetusPoolsData } = await client.query<Record<string, unknown>>({\n query: GET_CETUS_POOLS,\n });\n const { data: investorsData } = await client.query<Record<string, unknown>>({\n query: GET_INVESTORS,\n });\n const { data: userVaultBalancesData } = await client.query<\n Record<string, unknown>\n >({\n query: GET_USER_VAULT_BALANCES,\n variables: {\n address: walletAddress,\n },\n });\n\n const data = {\n ...(poolsData ?? {}),\n ...(cetusPoolsData ?? {}),\n ...(investorsData ?? {}),\n ...(userVaultBalancesData ?? {}),\n };\n\n return data;\n}\n\nexport async function fetchPools() {\n const { data } = await client.query<Record<string, unknown>>({\n query: GET_POOLS,\n });\n return data ?? {};\n}\n\nexport async function fetchCetusPools() {\n const { data } = await client.query<Record<string, unknown>>({\n query: GET_CETUS_POOLS,\n });\n return data ?? {};\n}\n\nexport {\n fetchAutoCompoundingEventsGql,\n AutoCompoundingEventNode,\n} from \"./fetchAutoCompoundingEventsGql.js\";\nexport { fetchNftHolders } from \"./fetchNftHolders.js\";\n\n// Add more functions for other data fetching requirements\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMultiReceipts.d.ts","sourceRoot":"","sources":["../../../src/graphql/getMultiReceipts.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6CxC,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"getMultiReceipts.d.ts","sourceRoot":"","sources":["../../../src/graphql/getMultiReceipts.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA6CxC,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAuFpC"}
|
|
@@ -3,18 +3,18 @@ import { getMultiReceiptsQuery } from "./queries/getMultiReceipts.js";
|
|
|
3
3
|
import { poolInfo } from "../common/maps.js";
|
|
4
4
|
const client = new ApolloClient({
|
|
5
5
|
link: new HttpLink({
|
|
6
|
-
uri: "https://
|
|
6
|
+
uri: "https://graphql.mainnet.sui.io/graphql",
|
|
7
7
|
}),
|
|
8
8
|
cache: new InMemoryCache({
|
|
9
9
|
typePolicies: {
|
|
10
|
-
|
|
11
|
-
keyFields: (
|
|
12
|
-
const objectKeys = Object.keys(
|
|
10
|
+
Address: {
|
|
11
|
+
keyFields: (addressObj) => {
|
|
12
|
+
const objectKeys = Object.keys(addressObj)
|
|
13
13
|
.filter((k) => k !== "__typename")
|
|
14
14
|
.sort();
|
|
15
15
|
const uniqueKey = objectKeys.join(",");
|
|
16
16
|
// Return the final unique ID string
|
|
17
|
-
return `
|
|
17
|
+
return `Address:${uniqueKey}`;
|
|
18
18
|
},
|
|
19
19
|
},
|
|
20
20
|
},
|
|
@@ -63,10 +63,12 @@ export async function fetchMultiReceipts(address) {
|
|
|
63
63
|
address: address,
|
|
64
64
|
},
|
|
65
65
|
});
|
|
66
|
+
console.log("result", result);
|
|
66
67
|
const data = result.data;
|
|
67
68
|
if (!data)
|
|
68
69
|
break;
|
|
69
|
-
const receipts = data.
|
|
70
|
+
const receipts = data.address;
|
|
71
|
+
console.log("receipts", receipts);
|
|
70
72
|
hasNextPage = false;
|
|
71
73
|
Object.keys(receipts).forEach((key) => {
|
|
72
74
|
if (key !== "__typename") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMultiReceipts.js","sourceRoot":"","sources":["../../../src/graphql/getMultiReceipts.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,GAAG,EACH,QAAQ,EACR,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;IAC9B,IAAI,EAAE,IAAI,QAAQ,CAAC;QACjB,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"getMultiReceipts.js","sourceRoot":"","sources":["../../../src/graphql/getMultiReceipts.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApolloClient,\n gql,\n HttpLink,\n InMemoryCache,\n} from \"@apollo/client/core\";\nimport { getMultiReceiptsQuery } from \"./queries/getMultiReceipts.js\";\nimport { ReceiptGQL } from \"./types.js\";\nimport { poolInfo } from \"../common/maps.js\";\n\ntype ReceiptType = {\n type: string;\n cursor: string;\n};\n\nconst client = new ApolloClient({\n link: new HttpLink({\n uri: \"https://graphql.mainnet.sui.io/graphql\",\n }),\n cache: new InMemoryCache({\n typePolicies: {\n Address: {\n keyFields: (addressObj) => {\n const objectKeys = Object.keys(addressObj)\n .filter((k) => k !== \"__typename\")\n .sort();\n const uniqueKey = objectKeys.join(\",\");\n\n // Return the final unique ID string\n return `Address:${uniqueKey}`;\n },\n },\n },\n }),\n});\n\nconst getReceiptTypes = () => {\n const receiptTypes: { [key: string]: ReceiptType } = {};\n const mySet: Set<string> = new Set();\n Object.keys(poolInfo).forEach((pool) => {\n const key = pool.replace(/-/g, \"_\");\n if (!mySet.has(poolInfo[pool].receiptType)) {\n receiptTypes[key] = {\n type: poolInfo[pool].receiptType,\n cursor: \"\",\n } as ReceiptType;\n mySet.add(poolInfo[pool].receiptType);\n }\n });\n return receiptTypes;\n};\n\nexport async function fetchMultiReceipts(\n address: string,\n): Promise<Map<string, ReceiptGQL[]>> {\n const multiReceipts: any[] = [];\n\n const receiptTypes = getReceiptTypes();\n const batchSize = 10; // Set the desired batch size\n\n // Convert the receiptTypes object into an array of entries\n const entries = Object.entries(receiptTypes);\n\n // Create an array to hold the batches\n const batches: { [k: string]: ReceiptType }[] = [];\n //const batches = [];\n // Loop through the entries array and create batches\n for (let i = 0; i < entries.length; i += batchSize) {\n const batchEntries = entries.slice(i, i + batchSize);\n batches.push(Object.fromEntries(batchEntries)); // Convert to object before pushing\n }\n\n for (const receiptTypes of batches) {\n let hasNextPage = true;\n\n try {\n while (hasNextPage) {\n const query = getMultiReceiptsQuery(receiptTypes);\n const GET_RECEIPTS = gql`\n ${query}\n `;\n\n type ReceiptBatchResponse = {\n address: Record<\n string,\n | undefined\n | {\n pageInfo: { hasNextPage: boolean; endCursor: string };\n nodes: any[];\n }\n >;\n };\n const result = await client.query<ReceiptBatchResponse>({\n query: GET_RECEIPTS,\n variables: {\n address: address,\n },\n });\n console.log(\"result\", result);\n\n const data = result.data;\n if (!data) break;\n const receipts = data.address;\n console.log(\"receipts\", receipts);\n hasNextPage = false;\n\n Object.keys(receipts).forEach((key) => {\n if (key !== \"__typename\") {\n const entry = receipts[key];\n if (!entry) return;\n const { pageInfo, nodes } = entry;\n hasNextPage = hasNextPage || pageInfo.hasNextPage;\n if (hasNextPage) receiptTypes[key].cursor = pageInfo.endCursor;\n else receiptTypes[key].cursor = \"0\";\n nodes.forEach((node: any) => {\n multiReceipts.push(node);\n });\n }\n });\n }\n } catch (error) {\n console.warn(\n \"Error fetching receipts from GraphQL, now fetching from suiClient query\",\n error,\n );\n } finally {\n Object.keys(receiptTypes).forEach((key) => {\n receiptTypes[key].cursor = \"\";\n });\n }\n }\n\n const receiptMap: Map<string, ReceiptGQL[]> = new Map();\n multiReceipts.forEach((receipt) => {\n const name = receipt.contents.json.name;\n let arr = receiptMap.get(name);\n if (!arr) arr = [];\n arr.push(receipt);\n receiptMap.set(name, arr);\n });\n return receiptMap;\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function getMultiReceiptsQuery(receiptTypes) {
|
|
2
2
|
let query = `
|
|
3
3
|
query GetUserVaultBalances($address: SuiAddress!) {
|
|
4
|
-
|
|
4
|
+
address(address: $address) {`;
|
|
5
5
|
Object.keys(receiptTypes).forEach((key) => {
|
|
6
6
|
if (receiptTypes[key].cursor === "") {
|
|
7
7
|
query += `
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMultiReceipts.js","sourceRoot":"","sources":["../../../../src/graphql/queries/getMultiReceipts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,YAAiB;IACrD,IAAI,KAAK,GAAG;;
|
|
1
|
+
{"version":3,"file":"getMultiReceipts.js","sourceRoot":"","sources":["../../../../src/graphql/queries/getMultiReceipts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,YAAiB;IACrD,IAAI,KAAK,GAAG;;mCAEqB,CAAC;IAElC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACpC,KAAK,IAAI;UACL,GAAG;;qBAEQ,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI;;;;;UAKjC,CAAC;QACP,CAAC;aAAM,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5C,KAAK,IAAI;UACL,GAAG;;qBAEQ,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI;sBACrB,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM;;;;;UAKpC,CAAC;QACP,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,KAAK,IAAI;;;;;;;;;;;;;;;;;;;;;;KAsBN,CAAC;IACJ,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["export function getMultiReceiptsQuery(receiptTypes: any) {\n let query = `\n query GetUserVaultBalances($address: SuiAddress!) {\n address(address: $address) {`;\n\n Object.keys(receiptTypes).forEach((key) => {\n if (receiptTypes[key].cursor === \"\") {\n query += `\n ${key}: objects(\n filter: {\n type: \"${receiptTypes[key].type}\"\n }\n first: 10\n ) {\n ...ReceiptFields\n }`;\n } else if (receiptTypes[key].cursor !== \"0\") {\n query += `\n ${key}: objects(\n filter: {\n type: \"${receiptTypes[key].type}\"\n after: \"${receiptTypes[key].cursor}\"\n }\n first: 10\n ) {\n ...ReceiptFields\n }`;\n }\n });\n\n query += `\n }\n }\n \n fragment ReceiptFields on MoveObjectConnection {\n pageInfo {\n hasNextPage\n endCursor\n }\n nodes {\n address\n version\n digest\n hasPublicTransfer\n contents {\n type {\n repr\n }\n json\n }\n }\n }\n `;\n return query;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueRewards.d.ts","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,QAAQ,EAMT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"blueRewards.d.ts","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,QAAQ,EAMT,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAC;AAO1D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;CAC9B;AACD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,OAAO,EACpB,EAAE,CAAC,EAAE,WAAW,GACf,OAAO,CAAC,WAAW,CAAC,CA+EtB;AACD,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CA0G1C;AAwDD,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,4BAA4B,CAAC,CA2HvC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Decimal } from "decimal.js";
|
|
2
|
-
import { getConf, poolInfo, coinsList,
|
|
2
|
+
import { getConf, poolInfo, coinsList, doubleAssetPoolCoinMap, getParentPool, AUTOBALANCE_TYPE_1_POOLS, getSuiClient, } from "../index.js";
|
|
3
3
|
import { Transaction } from "@mysten/sui/transactions";
|
|
4
4
|
import { AUTOBALANCE_SUI_FIRST_POOLS, AUTOBALANCE_SUI_SECOND_POOLS, coinTypeMap, } from "../common/maps.js";
|
|
5
|
+
import { bcs, fromBase64 } from "@mysten/bcs";
|
|
5
6
|
export async function collectRewardTxb(poolName, ignoreCache, tx) {
|
|
6
7
|
let txb;
|
|
7
8
|
if (tx) {
|
|
@@ -188,9 +189,124 @@ export async function claimRewardsTxb(userAddress, poolName) {
|
|
|
188
189
|
console.error("error in claim blue rewards", e);
|
|
189
190
|
}
|
|
190
191
|
}
|
|
192
|
+
// TypeName struct from stdlib
|
|
193
|
+
const TypeName = bcs.struct("0x1::type_name::TypeName", {
|
|
194
|
+
name: bcs.vector(bcs.u8()),
|
|
195
|
+
});
|
|
196
|
+
// VecMapEntry<K, V>
|
|
197
|
+
function VecMapEntry(KType, VType) {
|
|
198
|
+
return bcs.struct(`Entry<${KType.name},${VType.name}>`, {
|
|
199
|
+
key: KType,
|
|
200
|
+
value: VType,
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
// VecMap<K, V> (contents: vector<Entry<K, V>>)
|
|
204
|
+
function VecMap(KType, VType) {
|
|
205
|
+
return bcs.struct(`VecMap<${KType.name},${VType.name}>`, {
|
|
206
|
+
contents: bcs.vector(VecMapEntry(KType, VType)),
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
// Specialization for TypeName → u256
|
|
210
|
+
const VecMap_TypeName_U256 = VecMap(TypeName, bcs.u256());
|
|
211
|
+
function parseReturnValue(rv) {
|
|
212
|
+
let [rawBytes, typeTag] = rv;
|
|
213
|
+
let bytes;
|
|
214
|
+
if (typeof rawBytes === "string") {
|
|
215
|
+
bytes = fromBase64(rawBytes);
|
|
216
|
+
}
|
|
217
|
+
else if (Array.isArray(rawBytes)) {
|
|
218
|
+
bytes = Uint8Array.from(rawBytes);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
bytes = rawBytes;
|
|
222
|
+
}
|
|
223
|
+
if (typeTag === "0x2::vec_map::VecMap<0x1::type_name::TypeName, u256>") {
|
|
224
|
+
const parsed = VecMap_TypeName_U256.parse(bytes);
|
|
225
|
+
// parsed.contents is an array of { key: { name: Uint8Array }, value: string }
|
|
226
|
+
return parsed.contents.map((entry) => {
|
|
227
|
+
// Ensure we normalize to Uint8Array
|
|
228
|
+
const keyBytes = entry.key.name instanceof Uint8Array
|
|
229
|
+
? entry.key.name
|
|
230
|
+
: Uint8Array.from(entry.key.name);
|
|
231
|
+
const keyStr = new TextDecoder().decode(keyBytes);
|
|
232
|
+
const valStr = entry.value.toString(); // u256 → string
|
|
233
|
+
return { key: keyStr, value: valStr };
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
return undefined; // fallback
|
|
237
|
+
}
|
|
191
238
|
export async function pendingRewardAmount(userAddress, poolName) {
|
|
192
239
|
const { getReceipts } = await import("../index.js");
|
|
193
240
|
try {
|
|
241
|
+
const txb = new Transaction();
|
|
242
|
+
let poolInf = poolInfo[poolName];
|
|
243
|
+
let coin1Type = coinsList[doubleAssetPoolCoinMap[poolName].coin1].type;
|
|
244
|
+
let coin2Type = coinsList[doubleAssetPoolCoinMap[poolName].coin2].type;
|
|
245
|
+
await collectRewardTxb(poolName, true, txb);
|
|
246
|
+
if (AUTOBALANCE_SUI_FIRST_POOLS.includes(poolName)) {
|
|
247
|
+
txb.moveCall({
|
|
248
|
+
target: `${poolInf.packageId}::alphafi_bluefin_sui_first_pool::update_pool_v4`,
|
|
249
|
+
typeArguments: [coin1Type, coin2Type],
|
|
250
|
+
arguments: [
|
|
251
|
+
txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
|
|
252
|
+
txb.object(poolInf.poolId),
|
|
253
|
+
txb.object(poolInf.investorId),
|
|
254
|
+
txb.object(getConf().ALPHA_DISTRIBUTOR),
|
|
255
|
+
txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
|
|
256
|
+
txb.object(poolInf.parentPoolId),
|
|
257
|
+
txb.object(getConf().CLOCK_PACKAGE_ID),
|
|
258
|
+
],
|
|
259
|
+
});
|
|
260
|
+
txb.moveCall({
|
|
261
|
+
target: `${getConf().ALPHA_BLUEFIN_AUTOBALANCE_LATEST_PACKAGE_ID}::alphafi_bluefin_sui_first_pool::get_cur_acc_per_xtoken`,
|
|
262
|
+
typeArguments: [coin1Type, coin2Type],
|
|
263
|
+
arguments: [txb.object(poolInfo[poolName].poolId)],
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
else if (AUTOBALANCE_SUI_SECOND_POOLS.includes(poolName)) {
|
|
267
|
+
txb.moveCall({
|
|
268
|
+
target: `${poolInf.packageId}::alphafi_bluefin_sui_second_pool::update_pool_v3`,
|
|
269
|
+
typeArguments: [coin1Type, coin2Type],
|
|
270
|
+
arguments: [
|
|
271
|
+
txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
|
|
272
|
+
txb.object(poolInf.poolId),
|
|
273
|
+
txb.object(poolInf.investorId),
|
|
274
|
+
txb.object(getConf().ALPHA_DISTRIBUTOR),
|
|
275
|
+
txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
|
|
276
|
+
txb.object(poolInf.parentPoolId),
|
|
277
|
+
txb.object(getConf().CLOCK_PACKAGE_ID),
|
|
278
|
+
],
|
|
279
|
+
});
|
|
280
|
+
txb.moveCall({
|
|
281
|
+
target: `${getConf().ALPHA_BLUEFIN_AUTOBALANCE_LATEST_PACKAGE_ID}::alphafi_bluefin_sui_second_pool::get_cur_acc_per_xtoken`,
|
|
282
|
+
typeArguments: [coin1Type, coin2Type],
|
|
283
|
+
arguments: [txb.object(poolInfo[poolName].poolId)],
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
else {
|
|
287
|
+
txb.moveCall({
|
|
288
|
+
target: `${poolInf.packageId}::alphafi_bluefin_type_1_pool::update_pool_v3`,
|
|
289
|
+
typeArguments: [coin1Type, coin2Type],
|
|
290
|
+
arguments: [
|
|
291
|
+
txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),
|
|
292
|
+
txb.object(poolInf.poolId),
|
|
293
|
+
txb.object(poolInf.investorId),
|
|
294
|
+
txb.object(getConf().ALPHA_DISTRIBUTOR),
|
|
295
|
+
txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),
|
|
296
|
+
txb.object(poolInf.parentPoolId),
|
|
297
|
+
txb.object(getConf().CLOCK_PACKAGE_ID),
|
|
298
|
+
],
|
|
299
|
+
});
|
|
300
|
+
txb.moveCall({
|
|
301
|
+
target: `${getConf().ALPHA_BLUEFIN_AUTOBALANCE_LATEST_PACKAGE_ID}::alphafi_bluefin_type_1_pool::get_cur_acc_per_xtoken`,
|
|
302
|
+
typeArguments: [coin1Type, coin2Type],
|
|
303
|
+
arguments: [txb.object(poolInfo[poolName].poolId)],
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
let res = await getSuiClient().devInspectTransactionBlock({
|
|
307
|
+
sender: userAddress,
|
|
308
|
+
transactionBlock: txb,
|
|
309
|
+
});
|
|
194
310
|
const receipts = await getReceipts(poolName, userAddress, true);
|
|
195
311
|
const receipt = receipts[0];
|
|
196
312
|
const userXtokenBalance = receipt.content.fields.xTokenBalance;
|
|
@@ -202,10 +318,9 @@ export async function pendingRewardAmount(userAddress, poolName) {
|
|
|
202
318
|
for (let i = 0; i < userPendingRewardsAll.length; i++) {
|
|
203
319
|
userPendingReward["0x" + userPendingRewardsAll[i].fields.key.fields.name] = userPendingRewardsAll[i].fields.value;
|
|
204
320
|
}
|
|
205
|
-
const
|
|
206
|
-
const currAccForAllRewards = pool.content.fields.acc_rewards_per_xtoken.fields.contents;
|
|
321
|
+
const currAccForAllRewards = parseReturnValue(res.results[res.results.length - 1].returnValues[0]);
|
|
207
322
|
currAccForAllRewards?.forEach((reward) => {
|
|
208
|
-
curAcc["0x" + reward.
|
|
323
|
+
curAcc["0x" + reward.key] = reward.value;
|
|
209
324
|
});
|
|
210
325
|
const lastAccAll = receipt.content.fields.last_acc_reward_per_xtoken.fields.contents;
|
|
211
326
|
lastAccAll.forEach((reward) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blueRewards.js","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"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","sourcesContent":["import { Decimal } from \"decimal.js\";\nimport {\n getConf,\n poolInfo,\n coinsList,\n PoolName,\n getPool,\n doubleAssetPoolCoinMap,\n getParentPool,\n BluefinPoolType,\n AUTOBALANCE_TYPE_1_POOLS,\n} from \"../index.js\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nimport { UserAutoBalanceRewardAmounts } from \"./types.js\";\nimport {\n AUTOBALANCE_SUI_FIRST_POOLS,\n AUTOBALANCE_SUI_SECOND_POOLS,\n coinTypeMap,\n} from \"../common/maps.js\";\nexport interface ClaimRewardResponse {\n txb: Transaction;\n coinOut: TransactionResult[];\n}\nexport async function collectRewardTxb(\n poolName: PoolName,\n ignoreCache: boolean,\n tx?: Transaction,\n): Promise<Transaction> {\n let txb: Transaction | PromiseLike<Transaction>;\n if (tx) {\n txb = tx;\n } else {\n txb = new Transaction();\n }\n const bluefinPool = (await getParentPool(\n poolName,\n ignoreCache,\n )) as BluefinPoolType;\n const pool = poolInfo[poolName];\n const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n if (AUTOBALANCE_SUI_FIRST_POOLS.includes(poolName)) {\n for (const reward of bluefinPool.content.fields.reward_infos) {\n const rewardType = \"0x\" + reward.fields.reward_coin_type;\n txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_first_pool::collect_reward`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n } else if (AUTOBALANCE_SUI_SECOND_POOLS.includes(poolName)) {\n for (const reward of bluefinPool.content.fields.reward_infos) {\n const rewardType = \"0x\" + reward.fields.reward_coin_type;\n txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_second_pool::collect_reward`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n } else if (AUTOBALANCE_TYPE_1_POOLS.includes(poolName)) {\n for (const reward of bluefinPool.content.fields.reward_infos) {\n const rewardType = \"0x\" + reward.fields.reward_coin_type;\n txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_type_1_pool::collect_reward`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n }\n return txb;\n}\nexport async function claimRewardsTxb(\n userAddress: string,\n poolName: PoolName,\n): Promise<ClaimRewardResponse | undefined> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, true);\n const txb = await collectRewardTxb(poolName, true); //false for now\n const bluefinPool = (await getParentPool(\n poolName,\n false,\n )) as BluefinPoolType;\n const pool = poolInfo[poolName];\n const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n const rewards: TransactionResult[] = [];\n const rewardsList = bluefinPool.content.fields.reward_infos.map((ele) => {\n return \"0x\" + ele.fields.reward_coin_type;\n });\n rewardsList.push(coinsList[coin1].type.substring(2));\n rewardsList.push(coinsList[coin2].type.substring(2));\n console.log(rewardsList);\n\n if (AUTOBALANCE_SUI_FIRST_POOLS.includes(poolName)) {\n for (const rewardType of [...new Set(rewardsList)]) {\n const balance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_first_pool::get_user_rewards_v4`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n const coin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [rewardType],\n arguments: [balance!],\n });\n rewards.push(coin);\n }\n } else if (AUTOBALANCE_SUI_SECOND_POOLS.includes(poolName)) {\n for (const rewardType of [...new Set(rewardsList)]) {\n const balance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_second_pool::get_user_rewards_v3`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n const coin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [rewardType],\n arguments: [balance!],\n });\n rewards.push(coin);\n }\n } else if (AUTOBALANCE_TYPE_1_POOLS.includes(poolName)) {\n for (const rewardType of [...new Set(rewardsList)]) {\n const balance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_type_1_pool::get_user_rewards_v3`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n const coin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [rewardType],\n arguments: [balance!],\n });\n rewards.push(coin);\n }\n }\n return { txb: txb, coinOut: rewards };\n } catch (e) {\n console.error(\"error in claim blue rewards\", e);\n }\n}\n\nexport async function pendingRewardAmount(\n userAddress: string,\n poolName: PoolName,\n): Promise<UserAutoBalanceRewardAmounts> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, true);\n const receipt = receipts[0];\n const userXtokenBalance = receipt.content.fields.xTokenBalance;\n const totalPendingRewardAmounts: UserAutoBalanceRewardAmounts = {};\n const userPendingReward: { [key in string]: string } = {};\n const curAcc: { [key in string]: string } = {};\n const lastAcc: { [key in string]: string } = {};\n const userPendingRewardsAll =\n receipt.content.fields.pending_rewards.fields.contents;\n for (let i = 0; i < userPendingRewardsAll.length; i++) {\n userPendingReward[\n \"0x\" + userPendingRewardsAll[i].fields.key.fields.name\n ] = userPendingRewardsAll[i].fields.value;\n }\n const pool = await getPool(poolName, false);\n const currAccForAllRewards =\n pool!.content.fields.acc_rewards_per_xtoken.fields.contents;\n currAccForAllRewards?.forEach((reward) => {\n curAcc[\"0x\" + reward.fields.key.fields.name] = reward.fields.value;\n });\n const lastAccAll =\n receipt.content.fields.last_acc_reward_per_xtoken.fields.contents;\n lastAccAll.forEach((reward) => {\n lastAcc[\"0x\" + reward.fields.key.fields.name] = reward.fields.value;\n });\n const coinTypeToCoin = coinTypeMap;\n Object.keys(curAcc).forEach((type) => {\n if (!coinTypeToCoin[type]) {\n console.error(\"coin not present\", type);\n return;\n }\n const cur = new Decimal(curAcc[type]);\n const last = new Decimal(type in lastAcc ? lastAcc[type] : \"0\");\n const pending = new Decimal(\n type in userPendingReward ? userPendingReward[type] : \"0\",\n );\n\n const totalPending = cur\n .minus(last)\n .mul(userXtokenBalance)\n .div(1e36)\n .plus(pending)\n .div(Math.pow(10, coinsList[coinTypeToCoin[type]].expo))\n .toString();\n totalPendingRewardAmounts[type] = totalPending.toString();\n });\n return totalPendingRewardAmounts;\n } catch (e) {\n console.error(\"error in calculate pending blue rewards\", e);\n return {};\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"blueRewards.js","sourceRoot":"","sources":["../../../src/transactions/blueRewards.ts"],"names":[],"mappings":"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","sourcesContent":["import { Decimal } from \"decimal.js\";\nimport {\n getConf,\n poolInfo,\n coinsList,\n PoolName,\n doubleAssetPoolCoinMap,\n getParentPool,\n BluefinPoolType,\n AUTOBALANCE_TYPE_1_POOLS,\n getSuiClient,\n} from \"../index.js\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nimport { UserAutoBalanceRewardAmounts } from \"./types.js\";\nimport {\n AUTOBALANCE_SUI_FIRST_POOLS,\n AUTOBALANCE_SUI_SECOND_POOLS,\n coinTypeMap,\n} from \"../common/maps.js\";\nimport { bcs, fromBase64 } from \"@mysten/bcs\";\nexport interface ClaimRewardResponse {\n txb: Transaction;\n coinOut: TransactionResult[];\n}\nexport async function collectRewardTxb(\n poolName: PoolName,\n ignoreCache: boolean,\n tx?: Transaction,\n): Promise<Transaction> {\n let txb: Transaction | PromiseLike<Transaction>;\n if (tx) {\n txb = tx;\n } else {\n txb = new Transaction();\n }\n const bluefinPool = (await getParentPool(\n poolName,\n ignoreCache,\n )) as BluefinPoolType;\n const pool = poolInfo[poolName];\n const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n if (AUTOBALANCE_SUI_FIRST_POOLS.includes(poolName)) {\n for (const reward of bluefinPool.content.fields.reward_infos) {\n const rewardType = \"0x\" + reward.fields.reward_coin_type;\n txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_first_pool::collect_reward`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n } else if (AUTOBALANCE_SUI_SECOND_POOLS.includes(poolName)) {\n for (const reward of bluefinPool.content.fields.reward_infos) {\n const rewardType = \"0x\" + reward.fields.reward_coin_type;\n txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_second_pool::collect_reward`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n } else if (AUTOBALANCE_TYPE_1_POOLS.includes(poolName)) {\n for (const reward of bluefinPool.content.fields.reward_infos) {\n const rewardType = \"0x\" + reward.fields.reward_coin_type;\n txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_type_1_pool::collect_reward`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n }\n }\n return txb;\n}\nexport async function claimRewardsTxb(\n userAddress: string,\n poolName: PoolName,\n): Promise<ClaimRewardResponse | undefined> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const receipts = await getReceipts(poolName, userAddress, true);\n const txb = await collectRewardTxb(poolName, true); //false for now\n const bluefinPool = (await getParentPool(\n poolName,\n false,\n )) as BluefinPoolType;\n const pool = poolInfo[poolName];\n const coin1 = doubleAssetPoolCoinMap[poolName].coin1;\n const coin2 = doubleAssetPoolCoinMap[poolName].coin2;\n const rewards: TransactionResult[] = [];\n const rewardsList = bluefinPool.content.fields.reward_infos.map((ele) => {\n return \"0x\" + ele.fields.reward_coin_type;\n });\n rewardsList.push(coinsList[coin1].type.substring(2));\n rewardsList.push(coinsList[coin2].type.substring(2));\n console.log(rewardsList);\n\n if (AUTOBALANCE_SUI_FIRST_POOLS.includes(poolName)) {\n for (const rewardType of [...new Set(rewardsList)]) {\n const balance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_first_pool::get_user_rewards_v4`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n const coin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [rewardType],\n arguments: [balance!],\n });\n rewards.push(coin);\n }\n } else if (AUTOBALANCE_SUI_SECOND_POOLS.includes(poolName)) {\n for (const rewardType of [...new Set(rewardsList)]) {\n const balance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_sui_second_pool::get_user_rewards_v3`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n const coin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [rewardType],\n arguments: [balance!],\n });\n rewards.push(coin);\n }\n } else if (AUTOBALANCE_TYPE_1_POOLS.includes(poolName)) {\n for (const rewardType of [...new Set(rewardsList)]) {\n const balance = txb.moveCall({\n target: `${pool.packageId}::alphafi_bluefin_type_1_pool::get_user_rewards_v3`,\n typeArguments: [\n coinsList[coin1].type,\n coinsList[coin2].type,\n rewardType,\n ],\n arguments: [\n txb.object(receipts[0].objectId),\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(pool.poolId),\n txb.object(pool.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(pool.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n const coin = txb.moveCall({\n target: \"0x2::coin::from_balance\",\n typeArguments: [rewardType],\n arguments: [balance!],\n });\n rewards.push(coin);\n }\n }\n return { txb: txb, coinOut: rewards };\n } catch (e) {\n console.error(\"error in claim blue rewards\", e);\n }\n}\n// TypeName struct from stdlib\nconst TypeName = bcs.struct(\"0x1::type_name::TypeName\", {\n name: bcs.vector(bcs.u8()),\n});\n\n// VecMapEntry<K, V>\nfunction VecMapEntry(KType: any, VType: any) {\n return bcs.struct(`Entry<${KType.name},${VType.name}>`, {\n key: KType,\n value: VType,\n });\n}\n\n// VecMap<K, V> (contents: vector<Entry<K, V>>)\nfunction VecMap(KType: any, VType: any) {\n return bcs.struct(`VecMap<${KType.name},${VType.name}>`, {\n contents: bcs.vector(VecMapEntry(KType, VType)),\n });\n}\n\n// Specialization for TypeName → u256\nconst VecMap_TypeName_U256 = VecMap(TypeName, bcs.u256());\n\nfunction parseReturnValue(rv: [Uint8Array | number[] | string, string]) {\n let [rawBytes, typeTag] = rv;\n\n let bytes: Uint8Array;\n if (typeof rawBytes === \"string\") {\n bytes = fromBase64(rawBytes);\n } else if (Array.isArray(rawBytes)) {\n bytes = Uint8Array.from(rawBytes);\n } else {\n bytes = rawBytes;\n }\n\n if (typeTag === \"0x2::vec_map::VecMap<0x1::type_name::TypeName, u256>\") {\n const parsed = VecMap_TypeName_U256.parse(bytes);\n // parsed.contents is an array of { key: { name: Uint8Array }, value: string }\n return parsed.contents.map((entry: any) => {\n // Ensure we normalize to Uint8Array\n const keyBytes =\n entry.key.name instanceof Uint8Array\n ? entry.key.name\n : Uint8Array.from(entry.key.name);\n\n const keyStr = new TextDecoder().decode(keyBytes);\n const valStr = entry.value.toString(); // u256 → string\n\n return { key: keyStr, value: valStr };\n });\n }\n\n return undefined; // fallback\n}\n\nexport async function pendingRewardAmount(\n userAddress: string,\n poolName: PoolName,\n): Promise<UserAutoBalanceRewardAmounts> {\n const { getReceipts } = await import(\"../index.js\");\n try {\n const txb = new Transaction();\n let poolInf = poolInfo[poolName];\n let coin1Type = coinsList[doubleAssetPoolCoinMap[poolName].coin1].type;\n let coin2Type = coinsList[doubleAssetPoolCoinMap[poolName].coin2].type;\n await collectRewardTxb(poolName, true, txb);\n\n if (AUTOBALANCE_SUI_FIRST_POOLS.includes(poolName)) {\n txb.moveCall({\n target: `${poolInf.packageId}::alphafi_bluefin_sui_first_pool::update_pool_v4`,\n typeArguments: [coin1Type, coin2Type],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(poolInf.poolId),\n txb.object(poolInf.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(poolInf.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${getConf().ALPHA_BLUEFIN_AUTOBALANCE_LATEST_PACKAGE_ID}::alphafi_bluefin_sui_first_pool::get_cur_acc_per_xtoken`,\n typeArguments: [coin1Type, coin2Type],\n arguments: [txb.object(poolInfo[poolName].poolId)],\n });\n } else if (AUTOBALANCE_SUI_SECOND_POOLS.includes(poolName)) {\n txb.moveCall({\n target: `${poolInf.packageId}::alphafi_bluefin_sui_second_pool::update_pool_v3`,\n typeArguments: [coin1Type, coin2Type],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(poolInf.poolId),\n txb.object(poolInf.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(poolInf.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${getConf().ALPHA_BLUEFIN_AUTOBALANCE_LATEST_PACKAGE_ID}::alphafi_bluefin_sui_second_pool::get_cur_acc_per_xtoken`,\n typeArguments: [coin1Type, coin2Type],\n arguments: [txb.object(poolInfo[poolName].poolId)],\n });\n } else {\n txb.moveCall({\n target: `${poolInf.packageId}::alphafi_bluefin_type_1_pool::update_pool_v3`,\n typeArguments: [coin1Type, coin2Type],\n arguments: [\n txb.object(getConf().ALPHA_BLUEFIN_AUTOBALANCE_VERSION),\n txb.object(poolInf.poolId),\n txb.object(poolInf.investorId),\n txb.object(getConf().ALPHA_DISTRIBUTOR),\n txb.object(getConf().BLUEFIN_GLOBAL_CONFIG),\n txb.object(poolInf.parentPoolId),\n txb.object(getConf().CLOCK_PACKAGE_ID),\n ],\n });\n txb.moveCall({\n target: `${getConf().ALPHA_BLUEFIN_AUTOBALANCE_LATEST_PACKAGE_ID}::alphafi_bluefin_type_1_pool::get_cur_acc_per_xtoken`,\n typeArguments: [coin1Type, coin2Type],\n arguments: [txb.object(poolInfo[poolName].poolId)],\n });\n }\n let res = await getSuiClient().devInspectTransactionBlock({\n sender: userAddress,\n transactionBlock: txb,\n });\n\n const receipts = await getReceipts(poolName, userAddress, true);\n const receipt = receipts[0];\n const userXtokenBalance = receipt.content.fields.xTokenBalance;\n const totalPendingRewardAmounts: UserAutoBalanceRewardAmounts = {};\n const userPendingReward: { [key in string]: string } = {};\n const curAcc: { [key in string]: string } = {};\n const lastAcc: { [key in string]: string } = {};\n const userPendingRewardsAll =\n receipt.content.fields.pending_rewards.fields.contents;\n for (let i = 0; i < userPendingRewardsAll.length; i++) {\n userPendingReward[\n \"0x\" + userPendingRewardsAll[i].fields.key.fields.name\n ] = userPendingRewardsAll[i].fields.value;\n }\n const currAccForAllRewards = parseReturnValue(\n res.results![res.results!.length - 1].returnValues![0],\n );\n currAccForAllRewards?.forEach((reward) => {\n curAcc[\"0x\" + reward.key] = reward.value;\n });\n const lastAccAll =\n receipt.content.fields.last_acc_reward_per_xtoken.fields.contents;\n lastAccAll.forEach((reward) => {\n lastAcc[\"0x\" + reward.fields.key.fields.name] = reward.fields.value;\n });\n const coinTypeToCoin = coinTypeMap;\n Object.keys(curAcc).forEach((type) => {\n if (!coinTypeToCoin[type]) {\n console.error(\"coin not present\", type);\n return;\n }\n const cur = new Decimal(curAcc[type]);\n const last = new Decimal(type in lastAcc ? lastAcc[type] : \"0\");\n const pending = new Decimal(\n type in userPendingReward ? userPendingReward[type] : \"0\",\n );\n\n const totalPending = cur\n .minus(last)\n .mul(userXtokenBalance)\n .div(1e36)\n .plus(pending)\n .div(Math.pow(10, coinsList[coinTypeToCoin[type]].expo))\n .toString();\n totalPendingRewardAmounts[type] = totalPending.toString();\n });\n return totalPendingRewardAmounts;\n } catch (e) {\n console.error(\"error in calculate pending blue rewards\", e);\n return {};\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>alphaLpBreakdown | @alphafi/alphafi-sdk - v0.0.
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>alphaLpBreakdown | @alphafi/alphafi-sdk - v0.0.95</title><meta name="description" content="Documentation for @alphafi/alphafi-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@alphafi/alphafi-sdk - v0.0.95</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">alphaLpBreakdown</a></li></ul><h1>Function alphaLpBreakdown</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="alphalpbreakdown"><span class="tsd-kind-call-signature">alphaLpBreakdown</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">poolName</span><span class="tsd-signature-symbol">:</span> <a href="../types/PoolName.html" class="tsd-signature-type tsd-kind-type-alias">PoolName</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/LpBreakdownType.html" class="tsd-signature-type tsd-kind-type-alias">LpBreakdownType</a><span class="tsd-signature-symbol">></span><a href="#alphalpbreakdown" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">poolName</span>: <a href="../types/PoolName.html" class="tsd-signature-type tsd-kind-type-alias">PoolName</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/LpBreakdownType.html" class="tsd-signature-type tsd-kind-type-alias">LpBreakdownType</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/AlphaFiTech/alphafi-sdk/blob/9d348228bc655f625d9b23fc306cbd54c6154910/src/vaultFunctions.ts#L5">vaultFunctions.ts:5</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@alphafi/alphafi-sdk - v0.0.95</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cetusLpBreakdown | @alphafi/alphafi-sdk - v0.0.
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>cetusLpBreakdown | @alphafi/alphafi-sdk - v0.0.95</title><meta name="description" content="Documentation for @alphafi/alphafi-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@alphafi/alphafi-sdk - v0.0.95</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">cetusLpBreakdown</a></li></ul><h1>Function cetusLpBreakdown</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="cetuslpbreakdown"><span class="tsd-kind-call-signature">cetusLpBreakdown</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">poolName</span><span class="tsd-signature-symbol">:</span> <a href="../types/PoolName.html" class="tsd-signature-type tsd-kind-type-alias">PoolName</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/LpBreakdownType.html" class="tsd-signature-type tsd-kind-type-alias">LpBreakdownType</a><span class="tsd-signature-symbol">></span><a href="#cetuslpbreakdown" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">poolName</span>: <a href="../types/PoolName.html" class="tsd-signature-type tsd-kind-type-alias">PoolName</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><a href="../types/LpBreakdownType.html" class="tsd-signature-type tsd-kind-type-alias">LpBreakdownType</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/AlphaFiTech/alphafi-sdk/blob/9d348228bc655f625d9b23fc306cbd54c6154910/src/vaultFunctions.ts#L20">vaultFunctions.ts:20</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@alphafi/alphafi-sdk - v0.0.95</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>claimRewardTxb | @alphafi/alphafi-sdk - v0.0.
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>claimRewardTxb | @alphafi/alphafi-sdk - v0.0.95</title><meta name="description" content="Documentation for @alphafi/alphafi-sdk"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@alphafi/alphafi-sdk - v0.0.95</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="" aria-current="page">claimRewardTxb</a></li></ul><h1>Function claimRewardTxb</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="claimrewardtxb"><span class="tsd-kind-call-signature">claimRewardTxb</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">address</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Transaction</span><span class="tsd-signature-symbol">></span><a href="#claimrewardtxb" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">address</span>: <span class="tsd-signature-type">string</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">Transaction</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/AlphaFiTech/alphafi-sdk/blob/9d348228bc655f625d9b23fc306cbd54c6154910/src/transactions/collect_rewards.ts#L13">transactions/collect_rewards.ts:13</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@alphafi/alphafi-sdk - v0.0.95</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|