@sonarwatch/portfolio-plugins 0.5.29 → 0.5.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 +8 -0
- package/package.json +1 -21
- package/src/index.js +5 -0
- package/src/index.js.map +1 -1
- package/src/platforms.d.ts +1 -0
- package/src/platforms.js +6 -1
- package/src/platforms.js.map +1 -1
- package/src/plugins/aave/constants.d.ts +4 -0
- package/src/plugins/aave/constants.js +79 -0
- package/src/plugins/aave/constants.js.map +1 -0
- package/src/plugins/aave/helpers.d.ts +55 -0
- package/src/plugins/aave/helpers.js +263 -0
- package/src/plugins/aave/helpers.js.map +1 -0
- package/src/plugins/aave/index.d.ts +4 -0
- package/src/plugins/aave/index.js +39 -0
- package/src/plugins/aave/index.js.map +1 -0
- package/src/plugins/aave/lendingFetcherExecutorGenerator.d.ts +4 -0
- package/src/plugins/aave/lendingFetcherExecutorGenerator.js +36 -0
- package/src/plugins/aave/lendingFetcherExecutorGenerator.js.map +1 -0
- package/src/plugins/aave/lendingPoolsJob.d.ts +3 -0
- package/src/plugins/aave/lendingPoolsJob.js +84 -0
- package/src/plugins/aave/lendingPoolsJob.js.map +1 -0
- package/src/plugins/aave/types.d.ts +23 -0
- package/src/plugins/aave/types.js +3 -0
- package/src/plugins/aave/types.js.map +1 -0
- package/src/plugins/saber/constants.d.ts +2 -0
- package/src/plugins/saber/constants.js +6 -0
- package/src/plugins/saber/constants.js.map +1 -0
- package/src/plugins/saber/index.d.ts +2 -0
- package/src/plugins/saber/index.js +9 -0
- package/src/plugins/saber/index.js.map +1 -0
- package/src/plugins/saber/lpTokensJob.d.ts +3 -0
- package/src/plugins/saber/lpTokensJob.js +119 -0
- package/src/plugins/saber/lpTokensJob.js.map +1 -0
- package/src/plugins/saber/types.d.ts +42 -0
- package/src/plugins/saber/types.js +26 -0
- package/src/plugins/saber/types.js.map +1 -0
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,14 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
+
## [0.5.31](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.30...plugins-0.5.31) (2023-08-14)
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
## [0.5.30](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.29...plugins-0.5.30) (2023-08-12)
|
10
|
+
|
11
|
+
|
12
|
+
|
5
13
|
## [0.5.29](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.28...plugins-0.5.29) (2023-08-11)
|
6
14
|
|
7
15
|
|
package/package.json
CHANGED
@@ -1,28 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sonarwatch/portfolio-plugins",
|
3
|
-
"version": "0.5.
|
3
|
+
"version": "0.5.31",
|
4
4
|
"type": "commonjs",
|
5
5
|
"generators": "./generators.json",
|
6
|
-
"dependencies": {
|
7
|
-
"@ethersproject/address": "^5.7.0",
|
8
|
-
"@ethersproject/bytes": "^5.7.0",
|
9
|
-
"@metaplex-foundation/beet": "^0.7.1",
|
10
|
-
"@metaplex-foundation/beet-solana": "^0.4.0",
|
11
|
-
"@metaplex-foundation/js": "^0.19.4",
|
12
|
-
"@mysten/sui.js": "^0.37.1",
|
13
|
-
"@solana/web3.js": "^1.78.0",
|
14
|
-
"aptos": "^1.13.1",
|
15
|
-
"axios": "^1.4.0",
|
16
|
-
"bignumber.js": "^9.1.1",
|
17
|
-
"bitcoin-address-validation": "^2.2.1",
|
18
|
-
"bn.js": "^5.2.1",
|
19
|
-
"decimal.js": "^10.4.3",
|
20
|
-
"unstorage": "^1.8.0",
|
21
|
-
"viem": "^1.2.9"
|
22
|
-
},
|
23
|
-
"peerDependencies": {
|
24
|
-
"@sonarwatch/portfolio-core": "0.5.29"
|
25
|
-
},
|
26
6
|
"main": "./src/index.js",
|
27
7
|
"types": "./src/index.d.ts"
|
28
8
|
}
|
package/src/index.js
CHANGED
@@ -32,6 +32,7 @@ const tokens_1 = require("./plugins/tokens");
|
|
32
32
|
const native_stake_1 = require("./plugins/native-stake");
|
33
33
|
const marinade_1 = require("./plugins/marinade");
|
34
34
|
const marginfi_1 = require("./plugins/marginfi");
|
35
|
+
const saber_1 = require("./plugins/saber");
|
35
36
|
const solend_1 = require("./plugins/solend");
|
36
37
|
const raydium_1 = require("./plugins/raydium");
|
37
38
|
const orca_1 = require("./plugins/orca");
|
@@ -40,6 +41,7 @@ const cetus_1 = require("./plugins/cetus");
|
|
40
41
|
const turbos_1 = require("./plugins/turbos");
|
41
42
|
const thala_1 = require("./plugins/thala");
|
42
43
|
const tensor_1 = require("./plugins/tensor");
|
44
|
+
const aave_1 = require("./plugins/aave");
|
43
45
|
const staking_aptos_1 = require("./plugins/staking-aptos");
|
44
46
|
const drift_1 = require("./plugins/drift");
|
45
47
|
const mango_1 = require("./plugins/mango");
|
@@ -70,6 +72,8 @@ exports.jobs = [
|
|
70
72
|
...pancakeswap_1.jobs,
|
71
73
|
...liquidswap_1.jobs,
|
72
74
|
...auxexchange_1.jobs,
|
75
|
+
...saber_1.jobs,
|
76
|
+
...aave_1.jobs,
|
73
77
|
];
|
74
78
|
exports.fetchers = [
|
75
79
|
...tokens_1.fetchers,
|
@@ -86,6 +90,7 @@ exports.fetchers = [
|
|
86
90
|
...cetus_1.fetchers,
|
87
91
|
...turbos_1.fetchers,
|
88
92
|
...staking_aptos_1.fetchers,
|
93
|
+
...aave_1.fetchers,
|
89
94
|
];
|
90
95
|
exports.fetchersByAddressSystem = (0, getFetchersByAddressSystem_1.getFetchersByAddressSystem)(exports.fetchers);
|
91
96
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,0DAA4C;AAC5C,6CAG0B;AAC1B,yDAGgC;AAChC,iDAAkE;AAClE,iDAG4B;AAC5B,6CAG0B;AAC1B,+CAG2B;AAC3B,yCAA4E;AAC5E,+CAAwD;AACxD,2CAA+E;AAC/E,6CAG0B;AAC1B,2CAA+E;AAC/E,6CAA8D;AAC9D,2DAA2E;AAC3E,2CAA+E;AAC/E,2CAA+E;AAC/E,qDAA6D;AAC7D,uDAAgE;AAChE,qDAA8D;AAC9D,uDAAgE;AAChE,wFAAqF;AAErF,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AAEtB,8CAA4B;AACf,QAAA,SAAS,GAAe,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEpD,QAAA,IAAI,GAAU;IACzB,GAAG,aAAU;IACb,GAAG,mBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,eAAY;IACf,GAAG,cAAW;IACd,GAAG,aAAU;IACb,GAAG,cAAW;IACd,GAAG,WAAQ;IACX,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,aAAU;IACb,GAAG,iBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,kBAAe;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,0DAA4C;AAC5C,6CAG0B;AAC1B,yDAGgC;AAChC,iDAAkE;AAClE,iDAG4B;AAC5B,2CAAoD;AACpD,6CAG0B;AAC1B,+CAG2B;AAC3B,yCAA4E;AAC5E,+CAAwD;AACxD,2CAA+E;AAC/E,6CAG0B;AAC1B,2CAA+E;AAC/E,6CAA8D;AAC9D,yCAA4E;AAC5E,2DAA2E;AAC3E,2CAA+E;AAC/E,2CAA+E;AAC/E,qDAA6D;AAC7D,uDAAgE;AAChE,qDAA8D;AAC9D,uDAAgE;AAChE,wFAAqF;AAErF,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AAEtB,8CAA4B;AACf,QAAA,SAAS,GAAe,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAEpD,QAAA,IAAI,GAAU;IACzB,GAAG,aAAU;IACb,GAAG,mBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,eAAY;IACf,GAAG,cAAW;IACd,GAAG,aAAU;IACb,GAAG,cAAW;IACd,GAAG,WAAQ;IACX,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,aAAU;IACb,GAAG,iBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,kBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,WAAQ;CACZ,CAAC;AAEW,QAAA,QAAQ,GAAc;IACjC,GAAG,iBAAc;IACjB,GAAG,uBAAmB;IACtB,GAAG,iBAAc;IACjB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,iBAAc;IACjB,GAAG,gBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,eAAY;IACf,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,wBAAoB;IACvB,GAAG,eAAY;CAChB,CAAC;AAEW,QAAA,uBAAuB,GAAG,IAAA,uDAA0B,EAAC,gBAAQ,CAAC,CAAC"}
|
package/src/platforms.d.ts
CHANGED
package/src/platforms.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.nativeStakePlatform = exports.meeiroPlatform = exports.turbosPlatform = exports.cetusPlatform = exports.mangoPlatform = exports.driftPlatform = exports.meteoraPlatform = exports.orcaPlatform = exports.solendPlatform = exports.raydiumPlatform = exports.animeswapPlatform = exports.dittoPlatform = exports.liquidswapPlatform = exports.pancakeswapPlatform = exports.auxExchangePlatform = exports.tortugaPlatform = exports.thalaPlatform = exports.tensorPlatform = exports.marginfiPlatform = exports.aavePlatform = exports.marinadePlatform = exports.walletNftsPlatform = exports.walletTokensPlatform = void 0;
|
3
|
+
exports.saberPlatform = exports.nativeStakePlatform = exports.meeiroPlatform = exports.turbosPlatform = exports.cetusPlatform = exports.mangoPlatform = exports.driftPlatform = exports.meteoraPlatform = exports.orcaPlatform = exports.solendPlatform = exports.raydiumPlatform = exports.animeswapPlatform = exports.dittoPlatform = exports.liquidswapPlatform = exports.pancakeswapPlatform = exports.auxExchangePlatform = exports.tortugaPlatform = exports.thalaPlatform = exports.tensorPlatform = exports.marginfiPlatform = exports.aavePlatform = exports.marinadePlatform = exports.walletNftsPlatform = exports.walletTokensPlatform = void 0;
|
4
4
|
exports.walletTokensPlatform = {
|
5
5
|
id: 'wallet-tokens',
|
6
6
|
name: 'Tokens',
|
@@ -116,4 +116,9 @@ exports.nativeStakePlatform = {
|
|
116
116
|
name: 'Native Stake',
|
117
117
|
image: 'https://alpha.sonar.watch/img/platforms/native-stake.png',
|
118
118
|
};
|
119
|
+
exports.saberPlatform = {
|
120
|
+
id: 'saber',
|
121
|
+
name: 'Saber',
|
122
|
+
image: 'https://alpha.sonar.watch/img/platforms/saber.png',
|
123
|
+
};
|
119
124
|
//# sourceMappingURL=platforms.js.map
|
package/src/platforms.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../../../packages/plugins/src/platforms.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../../../packages/plugins/src/platforms.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.platformId = exports.lendingConfigs = void 0;
|
4
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
5
|
+
exports.lendingConfigs = new Map([
|
6
|
+
[
|
7
|
+
portfolio_core_1.NetworkId.avalanche,
|
8
|
+
[
|
9
|
+
{
|
10
|
+
chainId: portfolio_core_1.networks.avalanche.chainId,
|
11
|
+
networkId: portfolio_core_1.NetworkId.avalanche,
|
12
|
+
elementName: 'Aave V2',
|
13
|
+
lendingPoolAddressProvider: '0xb6A86025F0FE1862B372cb0ca18CE3EDe02A318f',
|
14
|
+
uiIncentiveDataProviderAddress: '0x11979886A6dBAE27D7a72c49fCF3F23240D647bF',
|
15
|
+
uiPoolDataProviderAddress: '0x00e50FAB64eBB37b87df06Aa46b8B35d5f1A4e1A',
|
16
|
+
},
|
17
|
+
{
|
18
|
+
chainId: portfolio_core_1.networks.avalanche.chainId,
|
19
|
+
networkId: portfolio_core_1.NetworkId.avalanche,
|
20
|
+
elementName: 'Aave V3',
|
21
|
+
lendingPoolAddressProvider: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
|
22
|
+
uiIncentiveDataProviderAddress: '0x265d414f80b0fca9505710e6F16dB4b67555D365',
|
23
|
+
uiPoolDataProviderAddress: '0xF71DBe0FAEF1473ffC607d4c555dfF0aEaDb878d',
|
24
|
+
},
|
25
|
+
],
|
26
|
+
],
|
27
|
+
[
|
28
|
+
portfolio_core_1.NetworkId.polygon,
|
29
|
+
[
|
30
|
+
{
|
31
|
+
chainId: portfolio_core_1.networks.polygon.chainId,
|
32
|
+
networkId: portfolio_core_1.NetworkId.polygon,
|
33
|
+
elementName: 'Aave V2',
|
34
|
+
lendingPoolAddressProvider: '0xd05e3E715d945B59290df0ae8eF85c1BdB684744',
|
35
|
+
uiIncentiveDataProviderAddress: '0x645654D59A5226CBab969b1f5431aA47CBf64ab8',
|
36
|
+
uiPoolDataProviderAddress: '0x204f2Eb81D996729829debC819f7992DCEEfE7b1',
|
37
|
+
},
|
38
|
+
{
|
39
|
+
chainId: portfolio_core_1.networks.polygon.chainId,
|
40
|
+
networkId: portfolio_core_1.NetworkId.polygon,
|
41
|
+
elementName: 'Aave V3',
|
42
|
+
lendingPoolAddressProvider: '0xa97684ead0e402dC232d5A977953DF7ECBaB3CDb',
|
43
|
+
uiIncentiveDataProviderAddress: '0x874313A46e4957D29FAAC43BF5Eb2B144894f557',
|
44
|
+
uiPoolDataProviderAddress: '0xC69728f11E9E6127733751c8410432913123acf1',
|
45
|
+
},
|
46
|
+
],
|
47
|
+
],
|
48
|
+
[
|
49
|
+
portfolio_core_1.NetworkId.ethereum,
|
50
|
+
[
|
51
|
+
{
|
52
|
+
chainId: portfolio_core_1.networks.ethereum.chainId,
|
53
|
+
networkId: portfolio_core_1.NetworkId.ethereum,
|
54
|
+
elementName: 'Aave V2 Main',
|
55
|
+
lendingPoolAddressProvider: '0xB53C1a33016B2DC2fF3653530bfF1848a515c8c5',
|
56
|
+
uiIncentiveDataProviderAddress: '0xD01ab9a6577E1D84F142e44D49380e23A340387d',
|
57
|
+
uiPoolDataProviderAddress: '0x00e50FAB64eBB37b87df06Aa46b8B35d5f1A4e1A',
|
58
|
+
},
|
59
|
+
{
|
60
|
+
chainId: portfolio_core_1.networks.ethereum.chainId,
|
61
|
+
networkId: portfolio_core_1.NetworkId.ethereum,
|
62
|
+
elementName: 'Aave V2 AMM',
|
63
|
+
lendingPoolAddressProvider: '0xAcc030EF66f9dFEAE9CbB0cd1B25654b82cFA8d5',
|
64
|
+
uiIncentiveDataProviderAddress: '0xD01ab9a6577E1D84F142e44D49380e23A340387d',
|
65
|
+
uiPoolDataProviderAddress: '0x00e50FAB64eBB37b87df06Aa46b8B35d5f1A4e1A',
|
66
|
+
},
|
67
|
+
{
|
68
|
+
chainId: portfolio_core_1.networks.ethereum.chainId,
|
69
|
+
networkId: portfolio_core_1.NetworkId.ethereum,
|
70
|
+
elementName: 'Aave V3 AMM',
|
71
|
+
lendingPoolAddressProvider: '0x2f39d218133AFaB8F2B819B1066c7E434Ad94E9e',
|
72
|
+
uiIncentiveDataProviderAddress: '0x162A7AC02f547ad796CA549f757e2b8d1D9b10a6',
|
73
|
+
uiPoolDataProviderAddress: '0x91c0eA31b49B69Ea18607702c5d9aC360bf3dE7d',
|
74
|
+
},
|
75
|
+
],
|
76
|
+
],
|
77
|
+
]);
|
78
|
+
exports.platformId = 'aave';
|
79
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/aave/constants.ts"],"names":[],"mappings":";;;AAAA,+DAAgF;AAGnE,QAAA,cAAc,GAAwC,IAAI,GAAG,CAAC;IACzE;QACE,0BAAS,CAAC,SAAS;QACnB;YACE;gBACE,OAAO,EAAE,yBAAQ,CAAC,SAAS,CAAC,OAAO;gBACnC,SAAS,EAAE,0BAAS,CAAC,SAAS;gBAC9B,WAAW,EAAE,SAAS;gBACtB,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;YACD;gBACE,OAAO,EAAE,yBAAQ,CAAC,SAAS,CAAC,OAAO;gBACnC,SAAS,EAAE,0BAAS,CAAC,SAAS;gBAC9B,WAAW,EAAE,SAAS;gBACtB,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;SACF;KACF;IACD;QACE,0BAAS,CAAC,OAAO;QACjB;YACE;gBACE,OAAO,EAAE,yBAAQ,CAAC,OAAO,CAAC,OAAO;gBACjC,SAAS,EAAE,0BAAS,CAAC,OAAO;gBAC5B,WAAW,EAAE,SAAS;gBACtB,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;YACD;gBACE,OAAO,EAAE,yBAAQ,CAAC,OAAO,CAAC,OAAO;gBACjC,SAAS,EAAE,0BAAS,CAAC,OAAO;gBAC5B,WAAW,EAAE,SAAS;gBACtB,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;SACF;KACF;IACD;QACE,0BAAS,CAAC,QAAQ;QAClB;YACE;gBACE,OAAO,EAAE,yBAAQ,CAAC,QAAQ,CAAC,OAAO;gBAClC,SAAS,EAAE,0BAAS,CAAC,QAAQ;gBAC7B,WAAW,EAAE,cAAc;gBAC3B,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;YACD;gBACE,OAAO,EAAE,yBAAQ,CAAC,QAAQ,CAAC,OAAO;gBAClC,SAAS,EAAE,0BAAS,CAAC,QAAQ;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;YACD;gBACE,OAAO,EAAE,yBAAQ,CAAC,QAAQ,CAAC,OAAO;gBAClC,SAAS,EAAE,0BAAS,CAAC,QAAQ;gBAC7B,WAAW,EAAE,aAAa;gBAC1B,0BAA0B,EACxB,4CAA4C;gBAC9C,8BAA8B,EAC5B,4CAA4C;gBAC9C,yBAAyB,EAAE,4CAA4C;aACxE;SACF;KACF;CACF,CAAC,CAAC;AAEU,QAAA,UAAU,GAAG,MAAM,CAAC"}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
import { NetworkIdType, PortfolioAssetToken, PortfolioElement, PortfolioElementBorrowLendData, ProxyInfo, Yield } from '@sonarwatch/portfolio-core';
|
2
|
+
import { UiIncentiveDataProvider, UiPoolDataProvider } from '@aave/contract-helpers';
|
3
|
+
import { UserIncentiveDict } from '@aave/math-utils';
|
4
|
+
import { LendingConfig, LendingData } from './types';
|
5
|
+
import { Cache } from '../../Cache';
|
6
|
+
export declare const lendingPoolsPrefix = "aave-lendingPools";
|
7
|
+
export declare function fetchLendingForAddress(address: string, networkId: NetworkIdType, configs: LendingConfig[], cache: Cache, proxyInfo?: ProxyInfo): Promise<PortfolioElement[]>;
|
8
|
+
export declare function getUserSummary(user: string, lendingData: LendingData, poolDataProvider: UiPoolDataProvider, incentiveDataProvider: UiIncentiveDataProvider, lendingPoolAddressProvider: string): Promise<import("@aave/math-utils").FormatUserSummaryAndIncentivesResponse<import("@aave/math-utils").FormatReserveUSDResponse & import("@aave/math-utils").ReserveData & {
|
9
|
+
priceInMarketReferenceCurrency: string;
|
10
|
+
} & Partial<import("@aave/math-utils/dist/esm/formatters/incentive/calculate-reserve-incentives").CalculateReserveIncentivesResponse>>>;
|
11
|
+
type UserReserveData = {
|
12
|
+
underlyingAsset: string;
|
13
|
+
underlyingBalance: string;
|
14
|
+
underlyingBalanceUSD: string;
|
15
|
+
stableBorrows: string;
|
16
|
+
stableBorrowsUSD: string;
|
17
|
+
variableBorrows: string;
|
18
|
+
variableBorrowsUSD: string;
|
19
|
+
reserve: ReserveYieldInfo;
|
20
|
+
stableBorrowAPR: string;
|
21
|
+
stableBorrowAPY: string;
|
22
|
+
};
|
23
|
+
type UserSummary = {
|
24
|
+
userReservesData: UserReserveData[];
|
25
|
+
calculatedUserIncentives: UserIncentiveDict;
|
26
|
+
};
|
27
|
+
type ReserveYieldInfo = {
|
28
|
+
supplyAPY: string;
|
29
|
+
supplyAPR: string;
|
30
|
+
variableBorrowAPR: string;
|
31
|
+
variableBorrowAPY: string;
|
32
|
+
priceInUSD: string;
|
33
|
+
symbol: string;
|
34
|
+
};
|
35
|
+
export declare function getSupplyYields(reserve: ReserveYieldInfo): Yield[];
|
36
|
+
export declare function getVariableBorrowYields(reserve: ReserveYieldInfo): Yield[];
|
37
|
+
export declare function getStableBorrowedAsset(networkId: NetworkIdType, userReserveData: UserReserveData): {
|
38
|
+
stableBorrowedAsset: PortfolioAssetToken;
|
39
|
+
yields: {
|
40
|
+
apr: number;
|
41
|
+
apy: number;
|
42
|
+
}[];
|
43
|
+
};
|
44
|
+
export declare function getVarriableBorrowedAsset(networkId: NetworkIdType, userReserveData: UserReserveData): {
|
45
|
+
variableBorrowedAsset: PortfolioAssetToken;
|
46
|
+
yields: Yield[];
|
47
|
+
};
|
48
|
+
export declare function getSuppliedAsset(networkId: NetworkIdType, userReserveData: UserReserveData): {
|
49
|
+
suppliedAsset: PortfolioAssetToken;
|
50
|
+
yields: Yield[];
|
51
|
+
};
|
52
|
+
export declare function getElementLendingData(networkId: NetworkIdType, userSummary: UserSummary): PortfolioElementBorrowLendData;
|
53
|
+
export declare function getTokenAddressesFromLendingData(lendingData: LendingData): string[];
|
54
|
+
export declare function getTokenAddressesFromLendingDatas(lendingDatas: LendingData[]): Map<NetworkIdType, string[]>;
|
55
|
+
export {};
|
@@ -0,0 +1,263 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.getTokenAddressesFromLendingDatas = exports.getTokenAddressesFromLendingData = exports.getElementLendingData = exports.getSuppliedAsset = exports.getVarriableBorrowedAsset = exports.getStableBorrowedAsset = exports.getVariableBorrowYields = exports.getSupplyYields = exports.getUserSummary = exports.fetchLendingForAddress = exports.lendingPoolsPrefix = void 0;
|
13
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
14
|
+
const contract_helpers_1 = require("@aave/contract-helpers");
|
15
|
+
const providers_1 = require("@ethersproject/providers");
|
16
|
+
const math_utils_1 = require("@aave/math-utils");
|
17
|
+
const constants_1 = require("../../utils/clients/constants");
|
18
|
+
const constants_2 = require("./constants");
|
19
|
+
exports.lendingPoolsPrefix = 'aave-lendingPools';
|
20
|
+
function fetchLendingForAddress(address, networkId, configs, cache, proxyInfo) {
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
22
|
+
const elements = [];
|
23
|
+
for (let i = 0; i < configs.length; i++) {
|
24
|
+
const config = configs[i];
|
25
|
+
if (!config)
|
26
|
+
continue;
|
27
|
+
const { lendingPoolAddressProvider, uiPoolDataProviderAddress, uiIncentiveDataProviderAddress, } = config;
|
28
|
+
const lendingData = yield cache.getItem(lendingPoolAddressProvider, {
|
29
|
+
prefix: exports.lendingPoolsPrefix,
|
30
|
+
networkId,
|
31
|
+
});
|
32
|
+
if (!lendingData)
|
33
|
+
continue;
|
34
|
+
const provider = new providers_1.StaticJsonRpcProvider({
|
35
|
+
url: (0, constants_1.getUrlEndpoint)(networkId),
|
36
|
+
}, portfolio_core_1.networks[networkId].chainId);
|
37
|
+
const poolDataProvider = new contract_helpers_1.UiPoolDataProvider({
|
38
|
+
uiPoolDataProviderAddress,
|
39
|
+
provider,
|
40
|
+
chainId: portfolio_core_1.networks[networkId].chainId,
|
41
|
+
});
|
42
|
+
const incentiveDataProvider = new contract_helpers_1.UiIncentiveDataProvider({
|
43
|
+
uiIncentiveDataProviderAddress,
|
44
|
+
provider,
|
45
|
+
chainId: portfolio_core_1.networks[networkId].chainId,
|
46
|
+
});
|
47
|
+
const userSummary = yield getUserSummary(address, lendingData, poolDataProvider, incentiveDataProvider, lendingPoolAddressProvider);
|
48
|
+
const elementData = getElementLendingData(networkId, userSummary);
|
49
|
+
if (elementData.value === 0) {
|
50
|
+
continue;
|
51
|
+
}
|
52
|
+
const element = {
|
53
|
+
type: portfolio_core_1.PortfolioElementType.borrowlend,
|
54
|
+
networkId,
|
55
|
+
platformId: constants_2.platformId,
|
56
|
+
label: 'Lending',
|
57
|
+
value: elementData.value,
|
58
|
+
data: elementData,
|
59
|
+
name: config.elementName,
|
60
|
+
proxyInfo,
|
61
|
+
};
|
62
|
+
elements.push(element);
|
63
|
+
}
|
64
|
+
return elements;
|
65
|
+
});
|
66
|
+
}
|
67
|
+
exports.fetchLendingForAddress = fetchLendingForAddress;
|
68
|
+
function getUserSummary(user, lendingData, poolDataProvider, incentiveDataProvider, lendingPoolAddressProvider) {
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
70
|
+
const userReserves = yield poolDataProvider.getUserReservesHumanized({
|
71
|
+
lendingPoolAddressProvider,
|
72
|
+
user,
|
73
|
+
});
|
74
|
+
const userIncentives = yield incentiveDataProvider.getUserReservesIncentivesDataHumanized({
|
75
|
+
lendingPoolAddressProvider,
|
76
|
+
user,
|
77
|
+
});
|
78
|
+
const userReservesArray = userReserves.userReserves;
|
79
|
+
const userSummary = (0, math_utils_1.formatUserSummaryAndIncentives)({
|
80
|
+
currentTimestamp: lendingData.currentTimestamp,
|
81
|
+
marketReferencePriceInUsd: lendingData.marketReferencePriceInUsd,
|
82
|
+
marketReferenceCurrencyDecimals: lendingData.marketReferenceCurrencyDecimals,
|
83
|
+
userReserves: userReservesArray,
|
84
|
+
formattedReserves: lendingData.formattedReserves,
|
85
|
+
userEmodeCategoryId: userReserves.userEmodeCategoryId,
|
86
|
+
reserveIncentives: lendingData.reserveIncentives,
|
87
|
+
userIncentives,
|
88
|
+
});
|
89
|
+
return userSummary;
|
90
|
+
});
|
91
|
+
}
|
92
|
+
exports.getUserSummary = getUserSummary;
|
93
|
+
function getSupplyYields(reserve) {
|
94
|
+
let yields = [];
|
95
|
+
if (reserve.supplyAPR !== '0') {
|
96
|
+
yields = [
|
97
|
+
{
|
98
|
+
apr: +reserve.supplyAPR,
|
99
|
+
apy: +reserve.supplyAPY,
|
100
|
+
},
|
101
|
+
];
|
102
|
+
}
|
103
|
+
return yields;
|
104
|
+
}
|
105
|
+
exports.getSupplyYields = getSupplyYields;
|
106
|
+
function getVariableBorrowYields(reserve) {
|
107
|
+
let yields = [];
|
108
|
+
if (reserve.supplyAPR !== '0') {
|
109
|
+
yields = [
|
110
|
+
{
|
111
|
+
apr: -+reserve.variableBorrowAPR,
|
112
|
+
apy: -+reserve.variableBorrowAPY,
|
113
|
+
},
|
114
|
+
];
|
115
|
+
}
|
116
|
+
return yields;
|
117
|
+
}
|
118
|
+
exports.getVariableBorrowYields = getVariableBorrowYields;
|
119
|
+
function getStableBorrowedAsset(networkId, userReserveData) {
|
120
|
+
const stableBorrowedAsset = {
|
121
|
+
networkId,
|
122
|
+
type: portfolio_core_1.PortfolioAssetType.token,
|
123
|
+
value: +(+userReserveData.stableBorrowsUSD).toFixed(2),
|
124
|
+
data: {
|
125
|
+
address: userReserveData.underlyingAsset,
|
126
|
+
amount: +userReserveData.stableBorrows,
|
127
|
+
price: +userReserveData.reserve.priceInUSD,
|
128
|
+
},
|
129
|
+
};
|
130
|
+
const yields = [
|
131
|
+
{
|
132
|
+
apr: -+userReserveData.stableBorrowAPR,
|
133
|
+
apy: -+userReserveData.stableBorrowAPY,
|
134
|
+
},
|
135
|
+
];
|
136
|
+
return { stableBorrowedAsset, yields };
|
137
|
+
}
|
138
|
+
exports.getStableBorrowedAsset = getStableBorrowedAsset;
|
139
|
+
function getVarriableBorrowedAsset(networkId, userReserveData) {
|
140
|
+
const variableBorrowedAsset = {
|
141
|
+
networkId,
|
142
|
+
type: portfolio_core_1.PortfolioAssetType.token,
|
143
|
+
value: +(+userReserveData.variableBorrowsUSD).toFixed(2),
|
144
|
+
data: {
|
145
|
+
address: userReserveData.underlyingAsset,
|
146
|
+
amount: +userReserveData.variableBorrows,
|
147
|
+
price: +userReserveData.reserve.priceInUSD,
|
148
|
+
},
|
149
|
+
};
|
150
|
+
const yields = getVariableBorrowYields(userReserveData.reserve);
|
151
|
+
return { variableBorrowedAsset, yields };
|
152
|
+
}
|
153
|
+
exports.getVarriableBorrowedAsset = getVarriableBorrowedAsset;
|
154
|
+
function getSuppliedAsset(networkId, userReserveData) {
|
155
|
+
const suppliedAsset = {
|
156
|
+
networkId,
|
157
|
+
type: portfolio_core_1.PortfolioAssetType.token,
|
158
|
+
value: +(+userReserveData.underlyingBalanceUSD).toFixed(2),
|
159
|
+
data: {
|
160
|
+
address: userReserveData.underlyingAsset,
|
161
|
+
amount: +userReserveData.underlyingBalance,
|
162
|
+
price: +userReserveData.reserve.priceInUSD,
|
163
|
+
},
|
164
|
+
};
|
165
|
+
const yields = getSupplyYields(userReserveData.reserve);
|
166
|
+
return { suppliedAsset, yields };
|
167
|
+
}
|
168
|
+
exports.getSuppliedAsset = getSuppliedAsset;
|
169
|
+
function getRewardAssets(networkId, calculatedUserIncentives) {
|
170
|
+
const rewardAssets = [];
|
171
|
+
for (const rewardAddress in calculatedUserIncentives) {
|
172
|
+
if (Object.prototype.hasOwnProperty.call(calculatedUserIncentives, rewardAddress)) {
|
173
|
+
const userIncentiveData = calculatedUserIncentives[rewardAddress];
|
174
|
+
if (userIncentiveData.claimableRewards.isZero())
|
175
|
+
continue;
|
176
|
+
const amount = userIncentiveData.claimableRewards
|
177
|
+
.div(Math.pow(10, userIncentiveData.rewardTokenDecimals))
|
178
|
+
.toNumber();
|
179
|
+
const price = +userIncentiveData.rewardPriceFeed || null;
|
180
|
+
const value = price ? amount * price : null;
|
181
|
+
const rewardAsset = {
|
182
|
+
type: portfolio_core_1.PortfolioAssetType.token,
|
183
|
+
networkId,
|
184
|
+
value,
|
185
|
+
data: { address: rewardAddress, amount, price },
|
186
|
+
};
|
187
|
+
rewardAssets.push(rewardAsset);
|
188
|
+
}
|
189
|
+
}
|
190
|
+
return rewardAssets;
|
191
|
+
}
|
192
|
+
function getElementLendingData(networkId, userSummary) {
|
193
|
+
const { calculatedUserIncentives, userReservesData } = userSummary;
|
194
|
+
const suppliedAssets = [];
|
195
|
+
const suppliedYields = [];
|
196
|
+
const borrowedAssets = [];
|
197
|
+
const borrowedYields = [];
|
198
|
+
for (let i = 0; i < userReservesData.length; i++) {
|
199
|
+
const userReserveData = userReservesData[i];
|
200
|
+
// Stable borrows
|
201
|
+
if (userReserveData.stableBorrows !== '0') {
|
202
|
+
const { stableBorrowedAsset, yields } = getStableBorrowedAsset(networkId, userReserveData);
|
203
|
+
borrowedYields.push(yields);
|
204
|
+
borrowedAssets.push(stableBorrowedAsset);
|
205
|
+
}
|
206
|
+
// Variable borrows
|
207
|
+
if (userReserveData.variableBorrows !== '0') {
|
208
|
+
const { variableBorrowedAsset, yields } = getVarriableBorrowedAsset(networkId, userReserveData);
|
209
|
+
borrowedYields.push(yields);
|
210
|
+
borrowedAssets.push(variableBorrowedAsset);
|
211
|
+
}
|
212
|
+
// Deposits
|
213
|
+
if (userReserveData.underlyingBalance !== '0') {
|
214
|
+
const { suppliedAsset, yields } = getSuppliedAsset(networkId, userReserveData);
|
215
|
+
suppliedYields.push(yields);
|
216
|
+
suppliedAssets.push(suppliedAsset);
|
217
|
+
}
|
218
|
+
}
|
219
|
+
const rewardAssets = getRewardAssets(networkId, calculatedUserIncentives);
|
220
|
+
const { borrowedValue, suppliedValue, collateralRatio, value } = (0, portfolio_core_1.getElementLendingValues)(suppliedAssets, borrowedAssets, rewardAssets);
|
221
|
+
const elementData = {
|
222
|
+
rewardAssets,
|
223
|
+
borrowedAssets,
|
224
|
+
borrowedValue,
|
225
|
+
borrowedYields,
|
226
|
+
collateralRatio,
|
227
|
+
suppliedAssets,
|
228
|
+
suppliedValue,
|
229
|
+
suppliedYields,
|
230
|
+
value,
|
231
|
+
};
|
232
|
+
return elementData;
|
233
|
+
}
|
234
|
+
exports.getElementLendingData = getElementLendingData;
|
235
|
+
function getTokenAddressesFromRewards(rewards, networkId) {
|
236
|
+
return rewards.map((r) => (0, portfolio_core_1.formatTokenAddress)(r.rewardTokenAddress, networkId));
|
237
|
+
}
|
238
|
+
function getTokenAddressesFromLendingData(lendingData) {
|
239
|
+
const { networkId, reserveIncentives } = lendingData;
|
240
|
+
const rewards = reserveIncentives
|
241
|
+
.map((reserveIncentive) => [
|
242
|
+
...reserveIncentive.aIncentiveData.rewardsTokenInformation,
|
243
|
+
...reserveIncentive.sIncentiveData.rewardsTokenInformation,
|
244
|
+
...reserveIncentive.vIncentiveData.rewardsTokenInformation,
|
245
|
+
])
|
246
|
+
.flat();
|
247
|
+
return getTokenAddressesFromRewards(rewards, networkId);
|
248
|
+
}
|
249
|
+
exports.getTokenAddressesFromLendingData = getTokenAddressesFromLendingData;
|
250
|
+
function getTokenAddressesFromLendingDatas(lendingDatas) {
|
251
|
+
const tokenAddresses = {};
|
252
|
+
lendingDatas.forEach((lendingData) => {
|
253
|
+
var _a;
|
254
|
+
const { networkId } = lendingData;
|
255
|
+
const cTokenAddresses = getTokenAddressesFromLendingData(lendingData);
|
256
|
+
if (!tokenAddresses[networkId])
|
257
|
+
tokenAddresses[networkId] = [];
|
258
|
+
(_a = tokenAddresses[networkId]) === null || _a === void 0 ? void 0 : _a.push(...cTokenAddresses);
|
259
|
+
});
|
260
|
+
return new Map(Object.entries(tokenAddresses));
|
261
|
+
}
|
262
|
+
exports.getTokenAddressesFromLendingDatas = getTokenAddressesFromLendingDatas;
|
263
|
+
//# sourceMappingURL=helpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/aave/helpers.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.fetchers = exports.jobs = void 0;
|
7
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
8
|
+
const dsa_connect_1 = __importDefault(require("dsa-connect"));
|
9
|
+
const web3_v1_1 = __importDefault(require("web3-v1"));
|
10
|
+
const contract_helpers_1 = require("@aave/contract-helpers");
|
11
|
+
const lendingPoolsJob_1 = __importDefault(require("./lendingPoolsJob"));
|
12
|
+
const lendingFetcherExecutorGenerator_1 = __importDefault(require("./lendingFetcherExecutorGenerator"));
|
13
|
+
const constants_1 = require("../../utils/clients/constants");
|
14
|
+
const constants_2 = require("./constants");
|
15
|
+
exports.jobs = [lendingPoolsJob_1.default];
|
16
|
+
exports.fetchers = [
|
17
|
+
{
|
18
|
+
id: `${constants_2.platformId}-${portfolio_core_1.NetworkId.ethereum}-lending`,
|
19
|
+
networkId: portfolio_core_1.NetworkId.ethereum,
|
20
|
+
executor: (0, lendingFetcherExecutorGenerator_1.default)(portfolio_core_1.NetworkId.ethereum, new dsa_connect_1.default({
|
21
|
+
web3: new web3_v1_1.default(new web3_v1_1.default.providers.HttpProvider((0, constants_1.getUrlEndpoint)(portfolio_core_1.NetworkId.ethereum))),
|
22
|
+
}, contract_helpers_1.ChainId.mainnet)),
|
23
|
+
},
|
24
|
+
{
|
25
|
+
id: `${constants_2.platformId}-${portfolio_core_1.NetworkId.polygon}-lending`,
|
26
|
+
networkId: portfolio_core_1.NetworkId.polygon,
|
27
|
+
executor: (0, lendingFetcherExecutorGenerator_1.default)(portfolio_core_1.NetworkId.polygon, new dsa_connect_1.default({
|
28
|
+
web3: new web3_v1_1.default(new web3_v1_1.default.providers.HttpProvider((0, constants_1.getUrlEndpoint)(portfolio_core_1.NetworkId.polygon))),
|
29
|
+
}, contract_helpers_1.ChainId.polygon)),
|
30
|
+
},
|
31
|
+
{
|
32
|
+
id: `${constants_2.platformId}-${portfolio_core_1.NetworkId.avalanche}-lending`,
|
33
|
+
networkId: portfolio_core_1.NetworkId.avalanche,
|
34
|
+
executor: (0, lendingFetcherExecutorGenerator_1.default)(portfolio_core_1.NetworkId.avalanche, new dsa_connect_1.default({
|
35
|
+
web3: new web3_v1_1.default(new web3_v1_1.default.providers.HttpProvider((0, constants_1.getUrlEndpoint)(portfolio_core_1.NetworkId.avalanche))),
|
36
|
+
}, contract_helpers_1.ChainId.avalanche)),
|
37
|
+
},
|
38
|
+
];
|
39
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/aave/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAuD;AACvD,8DAA8B;AAC9B,sDAA2B;AAC3B,6DAAiD;AAGjD,wEAAgD;AAChD,wGAA0E;AAC1E,6DAA+D;AAC/D,2CAAyC;AAE5B,QAAA,IAAI,GAAU,CAAC,yBAAe,CAAC,CAAC;AAChC,QAAA,QAAQ,GAAc;IACjC;QACE,EAAE,EAAE,GAAG,sBAAU,IAAI,0BAAS,CAAC,QAAQ,UAAU;QACjD,SAAS,EAAE,0BAAS,CAAC,QAAQ;QAC7B,QAAQ,EAAE,IAAA,yCAAyB,EACjC,0BAAS,CAAC,QAAQ,EAClB,IAAI,qBAAG,CACL;YACE,IAAI,EAAE,IAAI,iBAAI,CACZ,IAAI,iBAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAA,0BAAc,EAAC,0BAAS,CAAC,QAAQ,CAAC,CAAC,CACpE;SACF,EACD,0BAAO,CAAC,OAAO,CAChB,CACF;KACF;IACD;QACE,EAAE,EAAE,GAAG,sBAAU,IAAI,0BAAS,CAAC,OAAO,UAAU;QAChD,SAAS,EAAE,0BAAS,CAAC,OAAO;QAC5B,QAAQ,EAAE,IAAA,yCAAyB,EACjC,0BAAS,CAAC,OAAO,EACjB,IAAI,qBAAG,CACL;YACE,IAAI,EAAE,IAAI,iBAAI,CACZ,IAAI,iBAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAA,0BAAc,EAAC,0BAAS,CAAC,OAAO,CAAC,CAAC,CACnE;SACF,EACD,0BAAO,CAAC,OAAO,CAChB,CACF;KACF;IACD;QACE,EAAE,EAAE,GAAG,sBAAU,IAAI,0BAAS,CAAC,SAAS,UAAU;QAClD,SAAS,EAAE,0BAAS,CAAC,SAAS;QAC9B,QAAQ,EAAE,IAAA,yCAAyB,EACjC,0BAAS,CAAC,SAAS,EACnB,IAAI,qBAAG,CACL;YACE,IAAI,EAAE,IAAI,iBAAI,CACZ,IAAI,iBAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAA,0BAAc,EAAC,0BAAS,CAAC,SAAS,CAAC,CAAC,CACrE;SACF,EACD,0BAAO,CAAC,SAAS,CAClB,CACF;KACF;CACF,CAAC"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
const helpers_1 = require("./helpers");
|
13
|
+
const constants_1 = require("./constants");
|
14
|
+
function getLendingFetcherExecutor(networkId, instadappDSA) {
|
15
|
+
return (owner, cache) => __awaiter(this, void 0, void 0, function* () {
|
16
|
+
const addresses = [owner];
|
17
|
+
if (instadappDSA) {
|
18
|
+
const accounts = yield instadappDSA.getAccounts(owner);
|
19
|
+
const accountsAddresses = accounts.map((acc) => acc.address);
|
20
|
+
addresses.push(...accountsAddresses);
|
21
|
+
}
|
22
|
+
const configs = constants_1.lendingConfigs.get(networkId);
|
23
|
+
if (!configs)
|
24
|
+
return [];
|
25
|
+
const promises = addresses.map((address, i) => {
|
26
|
+
let proxyInfo;
|
27
|
+
if (i > 0)
|
28
|
+
proxyInfo = { address, id: 'instadapp' };
|
29
|
+
return (0, helpers_1.fetchLendingForAddress)(address, networkId, configs, cache, proxyInfo);
|
30
|
+
});
|
31
|
+
const elements = (yield Promise.all(promises)).flat(1);
|
32
|
+
return elements;
|
33
|
+
});
|
34
|
+
}
|
35
|
+
exports.default = getLendingFetcherExecutor;
|
36
|
+
//# sourceMappingURL=lendingFetcherExecutorGenerator.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lendingFetcherExecutorGenerator.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/aave/lendingFetcherExecutorGenerator.ts"],"names":[],"mappings":";;;;;;;;;;;AAGA,uCAAmD;AAEnD,2CAA6C;AAE7C,SAAwB,yBAAyB,CAC/C,SAA2B,EAC3B,YAAkB;IAElB,OAAO,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;QAC3C,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,YAAY,EAAE;YAChB,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7D,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;SACtC;QAED,MAAM,OAAO,GAAG,0BAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC5C,IAAI,SAAgC,CAAC;YACrC,IAAI,CAAC,GAAG,CAAC;gBAAE,SAAS,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC;YACpD,OAAO,IAAA,gCAAsB,EAC3B,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,EACL,SAAS,CACV,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAA,CAAC;AACJ,CAAC;AA9BD,4CA8BC"}
|
@@ -0,0 +1,84 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
13
|
+
const providers_1 = require("@ethersproject/providers");
|
14
|
+
const contract_helpers_1 = require("@aave/contract-helpers");
|
15
|
+
const math_utils_1 = require("@aave/math-utils");
|
16
|
+
const constants_1 = require("./constants");
|
17
|
+
const constants_2 = require("../../utils/clients/constants");
|
18
|
+
const helpers_1 = require("./helpers");
|
19
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
20
|
+
const lendingConfigsArray = Array.from(constants_1.lendingConfigs.values()).flat();
|
21
|
+
for (let i = 0; i < lendingConfigsArray.length; i++) {
|
22
|
+
const lendingConfig = lendingConfigsArray[i];
|
23
|
+
if (!lendingConfig)
|
24
|
+
continue;
|
25
|
+
const { uiPoolDataProviderAddress, uiIncentiveDataProviderAddress, lendingPoolAddressProvider, chainId, networkId, } = lendingConfig;
|
26
|
+
const provider = new providers_1.StaticJsonRpcProvider({
|
27
|
+
url: (0, constants_2.getUrlEndpoint)(lendingConfig.networkId),
|
28
|
+
}, portfolio_core_1.networks[lendingConfig.networkId].chainId);
|
29
|
+
if (!provider)
|
30
|
+
continue;
|
31
|
+
const poolDataProvider = new contract_helpers_1.UiPoolDataProvider({
|
32
|
+
uiPoolDataProviderAddress,
|
33
|
+
provider,
|
34
|
+
chainId: lendingConfig.chainId,
|
35
|
+
});
|
36
|
+
const incentiveDataProvider = new contract_helpers_1.UiIncentiveDataProvider({
|
37
|
+
uiIncentiveDataProviderAddress,
|
38
|
+
provider,
|
39
|
+
chainId: lendingConfig.chainId,
|
40
|
+
});
|
41
|
+
if (!poolDataProvider || !incentiveDataProvider)
|
42
|
+
continue;
|
43
|
+
// If it fails, this is probably because of a contract upgrade.
|
44
|
+
// Make sure contracts in /constants.ts are up-to-date.
|
45
|
+
const reserves = yield poolDataProvider.getReservesHumanized({
|
46
|
+
lendingPoolAddressProvider,
|
47
|
+
});
|
48
|
+
const reservesArray = reserves.reservesData;
|
49
|
+
const { baseCurrencyData } = reserves;
|
50
|
+
const { marketReferenceCurrencyDecimals } = baseCurrencyData;
|
51
|
+
const marketReferencePriceInUsd = baseCurrencyData.marketReferenceCurrencyPriceInUsd;
|
52
|
+
const currentTimestamp = Math.round(Date.now() / 1000);
|
53
|
+
const reserveIncentives = yield incentiveDataProvider.getReservesIncentivesDataHumanized({
|
54
|
+
lendingPoolAddressProvider,
|
55
|
+
});
|
56
|
+
const formattedReserves = (0, math_utils_1.formatReservesAndIncentives)({
|
57
|
+
reserves: reservesArray,
|
58
|
+
currentTimestamp,
|
59
|
+
marketReferenceCurrencyDecimals,
|
60
|
+
marketReferencePriceInUsd,
|
61
|
+
reserveIncentives,
|
62
|
+
});
|
63
|
+
const lendingData = {
|
64
|
+
lendingPoolAddressProvider,
|
65
|
+
chainId,
|
66
|
+
networkId,
|
67
|
+
currentTimestamp,
|
68
|
+
reserveIncentives,
|
69
|
+
formattedReserves,
|
70
|
+
marketReferencePriceInUsd,
|
71
|
+
marketReferenceCurrencyDecimals,
|
72
|
+
};
|
73
|
+
yield cache.setItem(lendingPoolAddressProvider, lendingData, {
|
74
|
+
prefix: helpers_1.lendingPoolsPrefix,
|
75
|
+
networkId,
|
76
|
+
});
|
77
|
+
}
|
78
|
+
});
|
79
|
+
const job = {
|
80
|
+
id: `${constants_1.platformId}-lending-pools`,
|
81
|
+
executor,
|
82
|
+
};
|
83
|
+
exports.default = job;
|
84
|
+
//# sourceMappingURL=lendingPoolsJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lendingPoolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/aave/lendingPoolsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAsD;AACtD,wDAAiE;AACjE,6DAGgC;AAChC,iDAA+D;AAG/D,2CAAyD;AAEzD,6DAA+D;AAC/D,uCAA+C;AAE/C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,0BAAc,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACnD,MAAM,aAAa,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa;YAAE,SAAS;QAC7B,MAAM,EACJ,yBAAyB,EACzB,8BAA8B,EAC9B,0BAA0B,EAC1B,OAAO,EACP,SAAS,GACV,GAAG,aAAa,CAAC;QAElB,MAAM,QAAQ,GAAG,IAAI,iCAAqB,CACxC;YACE,GAAG,EAAE,IAAA,0BAAc,EAAC,aAAa,CAAC,SAAS,CAAC;SAC7C,EACD,yBAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAO,CAC1C,CAAC;QACF,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,gBAAgB,GAAG,IAAI,qCAAkB,CAAC;YAC9C,yBAAyB;YACzB,QAAQ;YACR,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC,CAAC;QAEH,MAAM,qBAAqB,GAAG,IAAI,0CAAuB,CAAC;YACxD,8BAA8B;YAC9B,QAAQ;YACR,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,IAAI,CAAC,qBAAqB;YAAE,SAAS;QAE1D,+DAA+D;QAC/D,uDAAuD;QACvD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,oBAAoB,CAAC;YAC3D,0BAA0B;SAC3B,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC5C,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;QACtC,MAAM,EAAE,+BAA+B,EAAE,GAAG,gBAAgB,CAAC;QAC7D,MAAM,yBAAyB,GAC7B,gBAAgB,CAAC,iCAAiC,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QACvD,MAAM,iBAAiB,GACrB,MAAM,qBAAqB,CAAC,kCAAkC,CAAC;YAC7D,0BAA0B;SAC3B,CAAC,CAAC;QACL,MAAM,iBAAiB,GAAG,IAAA,wCAA2B,EAAC;YACpD,QAAQ,EAAE,aAAa;YACvB,gBAAgB;YAChB,+BAA+B;YAC/B,yBAAyB;YACzB,iBAAiB;SAClB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAgB;YAC/B,0BAA0B;YAC1B,OAAO;YACP,SAAS;YACT,gBAAgB;YAChB,iBAAiB;YACjB,iBAAiB;YACjB,yBAAyB;YACzB,+BAA+B;SAChC,CAAC;QACF,MAAM,KAAK,CAAC,OAAO,CAAC,0BAA0B,EAAE,WAAW,EAAE;YAC3D,MAAM,EAAE,4BAAkB;YAC1B,SAAS;SACV,CAAC,CAAC;KACJ;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,gBAAgB;IACjC,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
|
@@ -0,0 +1,23 @@
|
|
1
|
+
import { ReservesIncentiveDataHumanized } from '@aave/contract-helpers';
|
2
|
+
import { formatReservesAndIncentives } from '@aave/math-utils';
|
3
|
+
import { NetworkIdType } from '@sonarwatch/portfolio-core';
|
4
|
+
type FormattedReserves = ReturnType<typeof formatReservesAndIncentives>;
|
5
|
+
export type LendingConfig = {
|
6
|
+
chainId: number;
|
7
|
+
networkId: NetworkIdType;
|
8
|
+
elementName: string;
|
9
|
+
lendingPoolAddressProvider: string;
|
10
|
+
uiIncentiveDataProviderAddress: string;
|
11
|
+
uiPoolDataProviderAddress: string;
|
12
|
+
};
|
13
|
+
export type LendingData = {
|
14
|
+
lendingPoolAddressProvider: string;
|
15
|
+
chainId: number;
|
16
|
+
networkId: NetworkIdType;
|
17
|
+
currentTimestamp: number;
|
18
|
+
marketReferencePriceInUsd: string;
|
19
|
+
marketReferenceCurrencyDecimals: number;
|
20
|
+
formattedReserves: FormattedReserves;
|
21
|
+
reserveIncentives: ReservesIncentiveDataHumanized[];
|
22
|
+
};
|
23
|
+
export {};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/aave/types.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.SABER_SWAPS = exports.platformId = void 0;
|
4
|
+
exports.platformId = 'saber';
|
5
|
+
exports.SABER_SWAPS = 'https://raw.githubusercontent.com/saber-hq/saber-registry-dist/master/data/swaps.mainnet.json';
|
6
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/saber/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,OAAO,CAAC;AAErB,QAAA,WAAW,GACtB,+FAA+F,CAAC"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.jobs = void 0;
|
7
|
+
const lpTokensJob_1 = __importDefault(require("./lpTokensJob"));
|
8
|
+
exports.jobs = [lpTokensJob_1.default];
|
9
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/saber/index.ts"],"names":[],"mappings":";;;;;;AACA,gEAAwC;AAE3B,QAAA,IAAI,GAAU,CAAC,qBAAW,CAAC,CAAC"}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
+
};
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
+
const web3_js_1 = require("@solana/web3.js");
|
16
|
+
const axios_1 = __importDefault(require("axios"));
|
17
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
18
|
+
const clients_1 = require("../../utils/clients");
|
19
|
+
const constants_1 = require("./constants");
|
20
|
+
const getMultipleAccountsInfoSafe_1 = require("../../utils/solana/getMultipleAccountsInfoSafe");
|
21
|
+
const solana_1 = require("../../utils/solana");
|
22
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
23
|
+
const client = (0, clients_1.getClientSolana)();
|
24
|
+
const swapsResponse = yield axios_1.default
|
25
|
+
.get(constants_1.SABER_SWAPS)
|
26
|
+
.catch(() => null);
|
27
|
+
if (!swapsResponse)
|
28
|
+
return;
|
29
|
+
const swaps = swapsResponse.data;
|
30
|
+
const accounts = [];
|
31
|
+
for (let i = 0; i < swaps.length; i++) {
|
32
|
+
const reserveA = swaps[i].addresses.reserves[0];
|
33
|
+
const reserveB = swaps[i].addresses.reserves[1];
|
34
|
+
const lpMint = swaps[i].addresses.lpTokenMint;
|
35
|
+
accounts.push(new web3_js_1.PublicKey(reserveA));
|
36
|
+
accounts.push(new web3_js_1.PublicKey(reserveB));
|
37
|
+
accounts.push(new web3_js_1.PublicKey(lpMint));
|
38
|
+
}
|
39
|
+
const accountInfos = yield (0, getMultipleAccountsInfoSafe_1.getMultipleAccountsInfoSafe)(client, accounts);
|
40
|
+
const mints = new Set();
|
41
|
+
for (let i = 0; i < swaps.length; i++) {
|
42
|
+
const reserveAInfo = accountInfos[i * 3];
|
43
|
+
const reserveBInfo = accountInfos[i * 3 + 1];
|
44
|
+
const lpMintInfo = accountInfos[i * 3 + 2];
|
45
|
+
if (!reserveAInfo || !reserveBInfo || !lpMintInfo)
|
46
|
+
continue;
|
47
|
+
const reserveA = solana_1.tokenAccountStruct.deserialize(reserveAInfo.data)[0];
|
48
|
+
const reserveB = solana_1.tokenAccountStruct.deserialize(reserveBInfo.data)[0];
|
49
|
+
mints.add(reserveA.mint.toString());
|
50
|
+
mints.add(reserveB.mint.toString());
|
51
|
+
}
|
52
|
+
const tokenPricesAsArray = yield cache.getTokenPrices(Array.from(mints), portfolio_core_1.NetworkId.solana);
|
53
|
+
const tokenPrices = new Map();
|
54
|
+
tokenPricesAsArray.forEach((tokenPrice) => {
|
55
|
+
if (!tokenPrice)
|
56
|
+
return;
|
57
|
+
tokenPrices.set(tokenPrice.address, tokenPrice);
|
58
|
+
});
|
59
|
+
for (let i = 0; i < swaps.length; i++) {
|
60
|
+
const swap = swaps[i];
|
61
|
+
const reserveAInfo = accountInfos[i * 3];
|
62
|
+
const reserveBInfo = accountInfos[i * 3 + 1];
|
63
|
+
const lpMintInfo = accountInfos[i * 3 + 2];
|
64
|
+
if (!reserveAInfo || !reserveBInfo || !lpMintInfo)
|
65
|
+
continue;
|
66
|
+
const reserveA = solana_1.tokenAccountStruct.deserialize(reserveAInfo.data)[0];
|
67
|
+
const reserveB = solana_1.tokenAccountStruct.deserialize(reserveBInfo.data)[0];
|
68
|
+
const lpMint = solana_1.mintAccountStruct.deserialize(lpMintInfo.data)[0];
|
69
|
+
if (lpMint.supply.isZero())
|
70
|
+
continue;
|
71
|
+
const priceA = tokenPrices.get(reserveA.mint.toBase58());
|
72
|
+
const priceB = tokenPrices.get(reserveB.mint.toBase58());
|
73
|
+
if (!priceA || !priceB)
|
74
|
+
continue;
|
75
|
+
const coinValue = reserveA.amount
|
76
|
+
.multipliedBy(priceA.price)
|
77
|
+
.div(Math.pow(10, priceA.decimals));
|
78
|
+
const pcValue = reserveB.amount
|
79
|
+
.multipliedBy(priceB.price)
|
80
|
+
.div(Math.pow(10, priceB.decimals));
|
81
|
+
const lpTokenPrice = coinValue
|
82
|
+
.plus(pcValue)
|
83
|
+
.div(lpMint.supply)
|
84
|
+
.times(Math.pow(10, lpMint.decimals));
|
85
|
+
const underlyings = [
|
86
|
+
{
|
87
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
88
|
+
address: priceA.address,
|
89
|
+
decimals: priceA.decimals,
|
90
|
+
price: priceA.price,
|
91
|
+
amountPerLp: reserveA.amount.div(lpMint.supply).toNumber(),
|
92
|
+
},
|
93
|
+
{
|
94
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
95
|
+
address: priceB.address,
|
96
|
+
decimals: priceB.decimals,
|
97
|
+
price: priceB.price,
|
98
|
+
amountPerLp: reserveB.amount.div(lpMint.supply).toNumber(),
|
99
|
+
},
|
100
|
+
];
|
101
|
+
yield cache.setTokenPriceSource({
|
102
|
+
id: constants_1.platformId,
|
103
|
+
weight: 1,
|
104
|
+
address: swap.addresses.lpTokenMint,
|
105
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
106
|
+
platformId: constants_1.platformId,
|
107
|
+
decimals: lpMint.decimals,
|
108
|
+
price: lpTokenPrice.toNumber(),
|
109
|
+
underlyings,
|
110
|
+
timestamp: Date.now(),
|
111
|
+
});
|
112
|
+
}
|
113
|
+
});
|
114
|
+
const job = {
|
115
|
+
id: `${constants_1.platformId}-lp-tokens`,
|
116
|
+
executor,
|
117
|
+
};
|
118
|
+
exports.default = job;
|
119
|
+
//# sourceMappingURL=lpTokensJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lpTokensJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/saber/lpTokensJob.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
export interface SaberSwap {
|
2
|
+
addresses: Addresses;
|
3
|
+
currency: Currency;
|
4
|
+
decimals: number;
|
5
|
+
displayTokens: string[];
|
6
|
+
id: string;
|
7
|
+
isVerified: boolean;
|
8
|
+
name: string;
|
9
|
+
sources: string[];
|
10
|
+
underlyingTokens: string[];
|
11
|
+
tags?: Tag[];
|
12
|
+
newPoolID?: string;
|
13
|
+
}
|
14
|
+
export interface Addresses {
|
15
|
+
admin: string;
|
16
|
+
lpTokenMint: string;
|
17
|
+
mergePool: string;
|
18
|
+
quarry: string;
|
19
|
+
reserves: string[];
|
20
|
+
swapAccount: string;
|
21
|
+
swapAuthority: string;
|
22
|
+
}
|
23
|
+
export declare enum Currency {
|
24
|
+
Btc = "BTC",
|
25
|
+
Eth = "ETH",
|
26
|
+
Eur = "EUR",
|
27
|
+
Ftt = "FTT",
|
28
|
+
Luna = "LUNA",
|
29
|
+
Sol = "SOL",
|
30
|
+
Srm = "SRM",
|
31
|
+
Try = "TRY",
|
32
|
+
Usd = "USD"
|
33
|
+
}
|
34
|
+
export declare enum Tag {
|
35
|
+
Allbridge = "allbridge",
|
36
|
+
Cashio = "cashio",
|
37
|
+
Port = "port",
|
38
|
+
Solend = "solend",
|
39
|
+
Synthetify = "synthetify",
|
40
|
+
WormholeV1 = "wormhole-v1",
|
41
|
+
WormholeV2 = "wormhole-v2"
|
42
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.Tag = exports.Currency = void 0;
|
4
|
+
var Currency;
|
5
|
+
(function (Currency) {
|
6
|
+
Currency["Btc"] = "BTC";
|
7
|
+
Currency["Eth"] = "ETH";
|
8
|
+
Currency["Eur"] = "EUR";
|
9
|
+
Currency["Ftt"] = "FTT";
|
10
|
+
Currency["Luna"] = "LUNA";
|
11
|
+
Currency["Sol"] = "SOL";
|
12
|
+
Currency["Srm"] = "SRM";
|
13
|
+
Currency["Try"] = "TRY";
|
14
|
+
Currency["Usd"] = "USD";
|
15
|
+
})(Currency || (exports.Currency = Currency = {}));
|
16
|
+
var Tag;
|
17
|
+
(function (Tag) {
|
18
|
+
Tag["Allbridge"] = "allbridge";
|
19
|
+
Tag["Cashio"] = "cashio";
|
20
|
+
Tag["Port"] = "port";
|
21
|
+
Tag["Solend"] = "solend";
|
22
|
+
Tag["Synthetify"] = "synthetify";
|
23
|
+
Tag["WormholeV1"] = "wormhole-v1";
|
24
|
+
Tag["WormholeV2"] = "wormhole-v2";
|
25
|
+
})(Tag || (exports.Tag = Tag = {}));
|
26
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/saber/types.ts"],"names":[],"mappings":";;;AAwBA,IAAY,QAUX;AAVD,WAAY,QAAQ;IAClB,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;IACX,uBAAW,CAAA;AACb,CAAC,EAVW,QAAQ,wBAAR,QAAQ,QAUnB;AAED,IAAY,GAQX;AARD,WAAY,GAAG;IACb,8BAAuB,CAAA;IACvB,wBAAiB,CAAA;IACjB,oBAAa,CAAA;IACb,wBAAiB,CAAA;IACjB,gCAAyB,CAAA;IACzB,iCAA0B,CAAA;IAC1B,iCAA0B,CAAA;AAC5B,CAAC,EARW,GAAG,mBAAH,GAAG,QAQd"}
|