@sonarwatch/portfolio-plugins 0.15.30 → 0.15.31
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/CHANGELOG.md +43 -21
- package/package.json +1 -1
- package/src/plugins/cropper/whirlpoolFetcher.js +1 -1
- package/src/plugins/cropper/whirlpoolFetcher.js.map +1 -1
- package/src/plugins/helium/getHeliumPositions.d.ts +1 -1
- package/src/plugins/helium/getHeliumPositions.js +1 -2
- package/src/plugins/helium/getHeliumPositions.js.map +1 -1
- package/src/plugins/helium/positionsFetcher.js +1 -1
- package/src/plugins/helium/positionsFetcher.js.map +1 -1
- package/src/plugins/magiceden/bidsFetcher.d.ts +3 -0
- package/src/plugins/magiceden/bidsFetcher.js +58 -0
- package/src/plugins/magiceden/bidsFetcher.js.map +1 -0
- package/src/plugins/magiceden/constants.d.ts +1 -0
- package/src/plugins/magiceden/constants.js +2 -1
- package/src/plugins/magiceden/constants.js.map +1 -1
- package/src/plugins/magiceden/index.js +2 -1
- package/src/plugins/magiceden/index.js.map +1 -1
- package/src/plugins/magiceden/structs.d.ts +30 -0
- package/src/plugins/magiceden/structs.js +29 -1
- package/src/plugins/magiceden/structs.js.map +1 -1
- package/src/plugins/metaplex/index.js +5 -1
- package/src/plugins/metaplex/index.js.map +1 -1
- package/src/plugins/metaplex/resizableNftFetcher.d.ts +0 -3
- package/src/plugins/metaplex/resizableNftFetcher.js +3 -8
- package/src/plugins/metaplex/resizableNftFetcher.js.map +1 -1
- package/src/plugins/meteora/cpamm/cpammPositionsFetcher.d.ts +0 -3
- package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js +2 -10
- package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js.map +1 -1
- package/src/plugins/meteora/index.js +2 -0
- package/src/plugins/meteora/index.js.map +1 -1
- package/src/plugins/orca/getWhirlpoolPositions.d.ts +1 -1
- package/src/plugins/orca/getWhirlpoolPositions.js +3 -4
- package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
- package/src/plugins/orca/whirlpoolFetcher.js +1 -1
- package/src/plugins/orca/whirlpoolFetcher.js.map +1 -1
- package/src/plugins/picasso/getPicassoPositions.d.ts +1 -1
- package/src/plugins/picasso/getPicassoPositions.js +1 -2
- package/src/plugins/picasso/getPicassoPositions.js.map +1 -1
- package/src/plugins/picasso/positionsFetcher.js +1 -1
- package/src/plugins/picasso/positionsFetcher.js.map +1 -1
- package/src/plugins/raydium/clmmFetcher.d.ts +0 -3
- package/src/plugins/raydium/clmmFetcher.js +3 -96
- package/src/plugins/raydium/clmmFetcher.js.map +1 -1
- package/src/plugins/raydium/getClmmPositions.d.ts +3 -0
- package/src/plugins/raydium/getClmmPositions.js +107 -0
- package/src/plugins/raydium/getClmmPositions.js.map +1 -0
- package/src/plugins/streamflow/stakingFetcher.js +2 -0
- package/src/plugins/streamflow/stakingFetcher.js.map +1 -1
- package/src/plugins/tokens/fetchers/solana-native.js +21 -11
- package/src/plugins/tokens/fetchers/solana-native.js.map +1 -1
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.d.ts +3 -0
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js +44 -0
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js.map +1 -0
- package/src/plugins/tokens/fetchers/solana-simple.js +44 -4
- package/src/plugins/tokens/fetchers/solana-simple.js.map +1 -1
- package/src/plugins/tokens/fetchers/solana.d.ts +0 -4
- package/src/plugins/tokens/fetchers/solana.js +104 -85
- package/src/plugins/tokens/fetchers/solana.js.map +1 -1
- package/src/plugins/tokens/index.js +4 -2
- package/src/plugins/tokens/index.js.map +1 -1
- package/src/plugins/tokens/types.d.ts +1 -1
- package/src/utils/elementbuilder/AssetTokenBuilder.d.ts +1 -2
- package/src/utils/elementbuilder/AssetTokenBuilder.js +1 -2
- package/src/utils/elementbuilder/AssetTokenBuilder.js.map +1 -1
- package/src/utils/elementbuilder/Params.d.ts +1 -2
@@ -8,99 +8,118 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
9
|
});
|
10
10
|
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.getSolanaTokens = void 0;
|
13
15
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
16
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
14
17
|
const helpers_1 = require("../helpers");
|
15
|
-
const
|
16
|
-
const
|
17
|
-
const
|
18
|
-
const
|
19
|
-
const
|
20
|
-
const
|
21
|
-
const
|
22
|
-
|
23
|
-
const
|
24
|
-
const
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
const tokenPrices = yield cache.getTokenPricesAsMap(fungibleAddresses, portfolio_core_1.NetworkId.solana);
|
29
|
-
const tokenYields = !simple
|
30
|
-
? yield cache.getTokenYieldsAsMap([...tokenPrices.keys()], portfolio_core_1.NetworkId.solana)
|
31
|
-
: new TokenYieldMap_1.TokenYieldMap(portfolio_core_1.NetworkId.solana);
|
32
|
-
const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, portfolio_core_1.walletTokensPlatformId);
|
33
|
-
const elementTokens = elementRegistry.addElementMultiple({
|
34
|
-
label: 'Wallet',
|
18
|
+
const tokenPriceToAssetToken_1 = __importDefault(require("../../../utils/misc/tokenPriceToAssetToken"));
|
19
|
+
const heliusAssetToAssetCollectible_1 = require("../../../utils/solana/das/heliusAssetToAssetCollectible");
|
20
|
+
const getAssetsByOwnerDas_1 = require("../../../utils/solana/das/getAssetsByOwnerDas");
|
21
|
+
const isHeliusFungibleAsset_1 = require("../../../utils/solana/das/isHeliusFungibleAsset");
|
22
|
+
const getSolanaDasEndpoint_1 = __importDefault(require("../../../utils/clients/getSolanaDasEndpoint"));
|
23
|
+
const tokenPriceToAssetTokens_1 = __importDefault(require("../../../utils/misc/tokenPriceToAssetTokens"));
|
24
|
+
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
25
|
+
var _a;
|
26
|
+
const dasEndpoint = (0, getSolanaDasEndpoint_1.default)();
|
27
|
+
const items = yield (0, getAssetsByOwnerDas_1.getAssetsByOwnerDas)(dasEndpoint, owner, {
|
28
|
+
showNativeBalance: false,
|
29
|
+
showGrandTotal: false,
|
30
|
+
showInscription: false,
|
35
31
|
});
|
36
|
-
const
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
32
|
+
const fungibleAddresses = items.reduce((addresses, curr) => {
|
33
|
+
if ((0, isHeliusFungibleAsset_1.isHeliusFungibleAsset)(curr))
|
34
|
+
addresses.push(curr.id);
|
35
|
+
return addresses;
|
36
|
+
}, []);
|
37
|
+
const tokenPrices = yield cache.getTokenPricesAsMap(fungibleAddresses, portfolio_core_1.NetworkId.solana);
|
38
|
+
const tokenYields = yield cache.getTokenYieldsAsMap(fungibleAddresses, portfolio_core_1.NetworkId.solana);
|
39
|
+
const nftAssets = [];
|
40
|
+
const tokenAssets = [];
|
41
|
+
const liquiditiesByTag = {};
|
42
|
+
for (let i = 0; i < items.length; i++) {
|
43
|
+
const asset = items[i];
|
44
|
+
const isFungible = (0, isHeliusFungibleAsset_1.isHeliusFungibleAsset)(asset);
|
45
|
+
const address = asset.id;
|
46
|
+
const tokenPrice = isFungible ? tokenPrices.get(address) : undefined;
|
47
|
+
const tokenYield = isFungible ? tokenYields.get(address) : undefined;
|
48
|
+
const amount = asset.token_info
|
49
|
+
? (0, bignumber_js_1.default)(asset.token_info.balance)
|
50
|
+
.div(Math.pow(10, asset.token_info.decimals))
|
51
|
+
.toNumber()
|
52
|
+
: 1;
|
53
|
+
// If it's an LP Token
|
54
|
+
if (tokenPrice && tokenPrice.platformId !== portfolio_core_1.walletTokensPlatformId) {
|
55
|
+
const assets = (0, tokenPriceToAssetTokens_1.default)(address, amount, portfolio_core_1.NetworkId.solana, tokenPrice);
|
56
|
+
const liquidity = {
|
57
|
+
assets,
|
58
|
+
assetsValue: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
|
59
|
+
rewardAssets: [],
|
60
|
+
rewardAssetsValue: 0,
|
61
|
+
value: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
|
62
|
+
yields: tokenYield ? [tokenYield.yield] : [],
|
63
|
+
name: tokenPrice.liquidityName,
|
64
|
+
};
|
59
65
|
const tag = (0, helpers_1.getLpTag)(tokenPrice.platformId, tokenPrice.elementName, tokenPrice.label);
|
60
|
-
|
61
|
-
|
62
|
-
elementLiquidity = elementRegistry.addElementLiquidity({
|
63
|
-
name: tokenPrice.elementName,
|
64
|
-
label: (_a = tokenPrice.label) !== null && _a !== void 0 ? _a : 'LiquidityPool',
|
65
|
-
platformId: tokenPrice.platformId,
|
66
|
-
});
|
66
|
+
if (!liquiditiesByTag[tag]) {
|
67
|
+
liquiditiesByTag[tag] = [];
|
67
68
|
}
|
68
|
-
|
69
|
-
name: tokenPrice.liquidityName,
|
70
|
-
});
|
71
|
-
liquidity.addAsset({
|
72
|
-
address,
|
73
|
-
amount,
|
74
|
-
alreadyShifted: true,
|
75
|
-
ref: tokenAccount.pubkey,
|
76
|
-
link: tokenPrice.link,
|
77
|
-
sourceRefs: tokenPrice.sourceRefs,
|
78
|
-
tokenYield,
|
79
|
-
});
|
80
|
-
elementsLiquidity.set(tag, elementLiquidity);
|
69
|
+
liquiditiesByTag[tag].push(liquidity);
|
81
70
|
}
|
82
|
-
|
83
|
-
|
84
|
-
});
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
71
|
+
// If it's a regular token
|
72
|
+
else if (tokenPrice && tokenPrice.platformId === portfolio_core_1.walletTokensPlatformId) {
|
73
|
+
tokenAssets.push(Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(address, amount, portfolio_core_1.NetworkId.solana, tokenPrice, undefined, undefined, undefined, tokenYield)), { ref: (_a = asset.token_info) === null || _a === void 0 ? void 0 : _a.associated_token_address, link: tokenPrice.link, sourceRefs: tokenPrice.sourceRefs }));
|
74
|
+
}
|
75
|
+
// If it's a NFT
|
76
|
+
else {
|
77
|
+
const nftAsset = (0, heliusAssetToAssetCollectible_1.heliusAssetToAssetCollectible)(asset);
|
78
|
+
if (nftAsset)
|
79
|
+
nftAssets.push(nftAsset);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
const elements = [];
|
83
|
+
if (nftAssets.length !== 0) {
|
84
|
+
elements.push({
|
85
|
+
type: portfolio_core_1.PortfolioElementType.multiple,
|
86
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
87
|
+
platformId: portfolio_core_1.walletNftsPlatformId,
|
88
|
+
label: 'Wallet',
|
89
|
+
value: null,
|
90
|
+
data: {
|
91
|
+
// Limit NFTs to 1K, to avoid fetcherResult to be too big
|
92
|
+
assets: nftAssets.slice(0, 1000),
|
93
|
+
},
|
94
|
+
});
|
95
|
+
}
|
96
|
+
if (tokenAssets.length !== 0) {
|
97
|
+
elements.push({
|
98
|
+
type: portfolio_core_1.PortfolioElementType.multiple,
|
99
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
100
|
+
platformId: portfolio_core_1.walletTokensPlatformId,
|
101
|
+
label: 'Wallet',
|
102
|
+
value: (0, portfolio_core_1.getUsdValueSum)(tokenAssets.map((a) => a.value)),
|
103
|
+
data: {
|
104
|
+
assets: tokenAssets,
|
105
|
+
},
|
106
|
+
});
|
107
|
+
}
|
108
|
+
for (const [tag, liquidities] of Object.entries(liquiditiesByTag)) {
|
109
|
+
const { platformId, elementName, label } = (0, helpers_1.parseLpTag)(tag);
|
110
|
+
elements.push({
|
111
|
+
type: portfolio_core_1.PortfolioElementType.liquidity,
|
112
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
113
|
+
platformId,
|
114
|
+
name: elementName,
|
115
|
+
label: label !== null && label !== void 0 ? label : 'LiquidityPool',
|
116
|
+
value: (0, portfolio_core_1.getUsdValueSum)(liquidities.map((a) => a.value)),
|
117
|
+
data: {
|
118
|
+
liquidities,
|
119
|
+
},
|
120
|
+
});
|
101
121
|
}
|
102
|
-
|
103
|
-
return result.flatMap((res) => (res.status === 'rejected' ? [] : res.value));
|
122
|
+
return elements;
|
104
123
|
});
|
105
124
|
const fetcher = {
|
106
125
|
id: `${portfolio_core_1.walletTokensPlatformId}-solana`,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/tokens/fetchers/solana.ts"],"names":[],"mappings":"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"}
|
@@ -11,8 +11,9 @@ const sui_1 = __importDefault(require("./fetchers/sui"));
|
|
11
11
|
const sui_nfts_1 = __importDefault(require("./fetchers/sui-nfts"));
|
12
12
|
const sei_1 = __importDefault(require("./fetchers/sei"));
|
13
13
|
const bitcoin_1 = __importDefault(require("./fetchers/bitcoin"));
|
14
|
-
const solana_native_1 = __importDefault(require("./fetchers/solana-native"));
|
15
14
|
const solana_1 = __importDefault(require("./fetchers/solana"));
|
15
|
+
const solana_native_1 = __importDefault(require("./fetchers/solana-native"));
|
16
|
+
const solana_nfts_underlyings_1 = __importDefault(require("./fetchers/solana-nfts-underlyings"));
|
16
17
|
const evms_1 = require("./fetchers/evms");
|
17
18
|
const getTokenListsJob_1 = __importDefault(require("./getTokenListsJob"));
|
18
19
|
const solana_simple_1 = __importDefault(require("./fetchers/solana-simple"));
|
@@ -31,8 +32,9 @@ exports.jobs = [
|
|
31
32
|
];
|
32
33
|
exports.fetchers = [
|
33
34
|
aptos_1.default,
|
34
|
-
solana_native_1.default,
|
35
35
|
solana_1.default,
|
36
|
+
solana_native_1.default,
|
37
|
+
solana_nfts_underlyings_1.default,
|
36
38
|
sui_1.default,
|
37
39
|
sui_nfts_1.default,
|
38
40
|
sei_1.default,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tokens/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAwE;AAIxE,kEAA0C;AAC1C,6DAA4C;AAC5C,yDAAwC;AACxC,mEAAiD;AACjD,yDAAwC;AACxC,iEAAgD;AAChD,6EAA2D;AAC3D
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tokens/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAwE;AAIxE,kEAA0C;AAC1C,6DAA4C;AAC5C,yDAAwC;AACxC,mEAAiD;AACjD,yDAAwC;AACxC,iEAAgD;AAChD,+DAA8C;AAC9C,6EAA2D;AAC3D,iGAA8E;AAC9E,0CAA0D;AAC1D,0EAAkD;AAElD,6EAA2D;AA2BlD,8BA3BF,uBAAmB,CA2BE;AAzBf,QAAA,IAAI,GAAU;IACzB,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;IAC/B,IAAA,sBAAY,EAAC,0BAAS,CAAC,KAAK,CAAC;IAC7B,IAAA,sBAAY,EAAC,0BAAS,CAAC,MAAM,CAAC;IAC9B,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC;IAChC,IAAA,sBAAY,EAAC,0BAAS,CAAC,SAAS,CAAC;IACjC,IAAA,sBAAY,EAAC,0BAAS,CAAC,OAAO,CAAC;IAC/B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,IAAA,sBAAY,EAAC,0BAAS,CAAC,GAAG,CAAC;IAC3B,GAAG,gCAAe,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,0BAAgB,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC;CAClE,CAAC;AAEW,QAAA,QAAQ,GAAc;IACjC,eAAY;IACZ,gBAAa;IACb,uBAAmB;IACnB,iCAA4B;IAC5B,aAAU;IACV,kBAAc;IACd,aAAU;IACV,iBAAc;IACd,GAAG,eAAW;CACf,CAAC"}
|
@@ -36,4 +36,4 @@ export type Token = {
|
|
36
36
|
index?: string;
|
37
37
|
};
|
38
38
|
};
|
39
|
-
export type
|
39
|
+
export type NftFetcher = (potentialTokens: ParsedAccount<TokenAccount>[], cache: Cache) => Promise<PortfolioElement[]>;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/// <reference types="@drift-labs/sdk/node_modules/@solana/web3.js" />
|
2
2
|
/// <reference types="jito-ts/node_modules/@solana/web3.js" />
|
3
|
-
import { NetworkIdType, PortfolioAsset, PortfolioAssetAttributes, SourceRef, TokenPriceMap
|
3
|
+
import { NetworkIdType, PortfolioAsset, PortfolioAssetAttributes, SourceRef, TokenPriceMap } from '@sonarwatch/portfolio-core';
|
4
4
|
import BigNumber from 'bignumber.js';
|
5
5
|
import { PublicKey } from '@solana/web3.js';
|
6
6
|
import { AssetBuilder } from './AssetBuilder';
|
@@ -13,7 +13,6 @@ export declare class AssetTokenBuilder extends AssetBuilder {
|
|
13
13
|
sourceRefs?: SourceRef[];
|
14
14
|
ref?: string | PublicKey;
|
15
15
|
link?: string;
|
16
|
-
tokenYield?: TokenYield;
|
17
16
|
constructor(params: PortfolioAssetTokenParams);
|
18
17
|
tokenAddresses(): string[];
|
19
18
|
getUnderlyings(networkId: NetworkIdType, tokenPrices: TokenPriceMap): PortfolioAsset[];
|
@@ -18,7 +18,6 @@ class AssetTokenBuilder extends AssetBuilder_1.AssetBuilder {
|
|
18
18
|
this.ref = params.ref;
|
19
19
|
this.sourceRefs = params.sourceRefs;
|
20
20
|
this.link = params.link;
|
21
|
-
this.tokenYield = params.tokenYield;
|
22
21
|
}
|
23
22
|
tokenAddresses() {
|
24
23
|
return [this.address];
|
@@ -44,7 +43,7 @@ class AssetTokenBuilder extends AssetBuilder_1.AssetBuilder {
|
|
44
43
|
return null;
|
45
44
|
if (!this.alreadyShifted && tokenPrice)
|
46
45
|
amount = amount.dividedBy(Math.pow(10, tokenPrice.decimals));
|
47
|
-
return Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(this.address, amount.toNumber(), networkId, tokenPrice, undefined, this.attributes, this.link
|
46
|
+
return Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(this.address, amount.toNumber(), networkId, tokenPrice, undefined, this.attributes, this.link)), { sourceRefs: this.sourceRefs, ref: (_a = this.ref) === null || _a === void 0 ? void 0 : _a.toString() });
|
48
47
|
}
|
49
48
|
}
|
50
49
|
exports.AssetTokenBuilder = AssetTokenBuilder;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssetTokenBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetTokenBuilder.ts"],"names":[],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"AssetTokenBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetTokenBuilder.ts"],"names":[],"mappings":";;;;;;AAOA,gEAAqC;AAErC,4FAAoE;AACpE,8FAAsE;AACtE,iDAA8C;AAG9C,MAAa,iBAAkB,SAAQ,2BAAY;IASjD,YAAY,MAAiC;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,cAAc,CACZ,SAAwB,EACxB,WAA0B;QAE1B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,OAAO,IAAA,iCAAuB,EAC5B,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,WAA0B;;QAE1B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,UAAU;YACpC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,uCACK,IAAA,gCAAsB,EACvB,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,CACV,KACD,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE,IACzB;IACJ,CAAC;CACF;AA3ED,8CA2EC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/// <reference types="@drift-labs/sdk/node_modules/@solana/web3.js" />
|
2
2
|
/// <reference types="jito-ts/node_modules/@solana/web3.js" />
|
3
|
-
import { CrossLevPosition, IsoLevPosition, PortfolioAssetAttributes, PortfolioElementLabel, PortfolioElementTypeType, SourceRef,
|
3
|
+
import { CrossLevPosition, IsoLevPosition, PortfolioAssetAttributes, PortfolioElementLabel, PortfolioElementTypeType, SourceRef, UsdValue } from '@sonarwatch/portfolio-core';
|
4
4
|
import { PublicKey } from '@solana/web3.js';
|
5
5
|
import BigNumber from 'bignumber.js';
|
6
6
|
export type Params = {
|
@@ -70,7 +70,6 @@ export type PortfolioAssetTokenParams = {
|
|
70
70
|
sourceRefs?: SourceRef[];
|
71
71
|
ref?: string | PublicKey;
|
72
72
|
link?: string;
|
73
|
-
tokenYield?: TokenYield;
|
74
73
|
};
|
75
74
|
export type TradeParams = {
|
76
75
|
inputAsset: Omit<PortfolioAssetTokenParams, 'amount'> & {
|