@sonarwatch/portfolio-plugins 0.8.27 → 0.8.29

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.
@@ -6,10 +6,14 @@ export declare const gaugesCachePrefix: string;
6
6
  export declare const poolsByAddressPrefix: string;
7
7
  export declare const gaugesAddresesCachePrefix: string;
8
8
  export declare const apiBaseUrl = "https://api.curve.fi/api";
9
+ export declare const votingEscrowAddress = "0x5f3b5DfEb7B28CDbD7FAba78963EE202a494e2A2";
10
+ export declare const vestingEscrowAddress = "0xd2D43555134dC575BF7279F4bA18809645dB0F1D";
9
11
  export declare enum CrvNetworkId {
10
12
  ethereum = "ethereum",
11
13
  polygon = "polygon",
12
14
  avalanche = "avalanche"
13
15
  }
16
+ export declare const crvAddress = "0xD533a949740bb3306d119CC777fa900bA034cd52";
17
+ export declare const crvDecimals = 18;
14
18
  export declare const crvNetworkIds: CrvNetworkId[];
15
19
  export declare const crvNetworkIdBySwNetworkId: Record<CrvNetworkId, EvmNetworkIdType>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.crvNetworkIdBySwNetworkId = exports.crvNetworkIds = exports.CrvNetworkId = exports.apiBaseUrl = exports.gaugesAddresesCachePrefix = exports.poolsByAddressPrefix = exports.gaugesCachePrefix = exports.poolsCachePrefix = exports.fooPlatform = exports.platformId = void 0;
3
+ exports.crvNetworkIdBySwNetworkId = exports.crvNetworkIds = exports.crvDecimals = exports.crvAddress = exports.CrvNetworkId = exports.vestingEscrowAddress = exports.votingEscrowAddress = exports.apiBaseUrl = exports.gaugesAddresesCachePrefix = exports.poolsByAddressPrefix = exports.gaugesCachePrefix = exports.poolsCachePrefix = exports.fooPlatform = exports.platformId = void 0;
4
4
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
5
5
  exports.platformId = 'curve';
6
6
  exports.fooPlatform = {
@@ -14,12 +14,16 @@ exports.gaugesCachePrefix = `${exports.platformId}-gauges`;
14
14
  exports.poolsByAddressPrefix = `${exports.platformId}-pools-by-address`;
15
15
  exports.gaugesAddresesCachePrefix = `${exports.platformId}-gauges-addresses`;
16
16
  exports.apiBaseUrl = 'https://api.curve.fi/api';
17
+ exports.votingEscrowAddress = '0x5f3b5DfEb7B28CDbD7FAba78963EE202a494e2A2';
18
+ exports.vestingEscrowAddress = '0xd2D43555134dC575BF7279F4bA18809645dB0F1D';
17
19
  var CrvNetworkId;
18
20
  (function (CrvNetworkId) {
19
21
  CrvNetworkId["ethereum"] = "ethereum";
20
22
  CrvNetworkId["polygon"] = "polygon";
21
23
  CrvNetworkId["avalanche"] = "avalanche";
22
24
  })(CrvNetworkId || (exports.CrvNetworkId = CrvNetworkId = {}));
25
+ exports.crvAddress = '0xD533a949740bb3306d119CC777fa900bA034cd52';
26
+ exports.crvDecimals = 18;
23
27
  exports.crvNetworkIds = Object.values(CrvNetworkId);
24
28
  exports.crvNetworkIdBySwNetworkId = {
25
29
  [CrvNetworkId.ethereum]: portfolio_core_1.NetworkId.ethereum,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/curve/constants.ts"],"names":[],"mappings":";;;AAAA,+DAIoC;AAEvB,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,WAAW,GAAa;IACnC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,6CAA6C;IACpD,WAAW,EAAE,sBAAsB;CACpC,CAAC;AACW,QAAA,gBAAgB,GAAG,GAAG,kBAAU,QAAQ,CAAC;AACzC,QAAA,iBAAiB,GAAG,GAAG,kBAAU,SAAS,CAAC;AAC3C,QAAA,oBAAoB,GAAG,GAAG,kBAAU,mBAAmB,CAAC;AACxD,QAAA,yBAAyB,GAAG,GAAG,kBAAU,mBAAmB,CAAC;AAE7D,QAAA,UAAU,GAAG,0BAA0B,CAAC;AAErD,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAEY,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,QAAA,yBAAyB,GACpC;IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,0BAAS,CAAC,QAAQ;IAC3C,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,0BAAS,CAAC,OAAO;IACzC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,0BAAS,CAAC,SAAS;CAC9C,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/curve/constants.ts"],"names":[],"mappings":";;;AAAA,+DAIoC;AAEvB,QAAA,UAAU,GAAG,OAAO,CAAC;AACrB,QAAA,WAAW,GAAa;IACnC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,6CAA6C;IACpD,WAAW,EAAE,sBAAsB;CACpC,CAAC;AACW,QAAA,gBAAgB,GAAG,GAAG,kBAAU,QAAQ,CAAC;AACzC,QAAA,iBAAiB,GAAG,GAAG,kBAAU,SAAS,CAAC;AAC3C,QAAA,oBAAoB,GAAG,GAAG,kBAAU,mBAAmB,CAAC;AACxD,QAAA,yBAAyB,GAAG,GAAG,kBAAU,mBAAmB,CAAC;AAE7D,QAAA,UAAU,GAAG,0BAA0B,CAAC;AAExC,QAAA,mBAAmB,GAAG,4CAA4C,CAAC;AACnE,QAAA,oBAAoB,GAC/B,4CAA4C,CAAC;AAE/C,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAEY,QAAA,UAAU,GAAG,4CAA4C,CAAC;AAC1D,QAAA,WAAW,GAAG,EAAE,CAAC;AACjB,QAAA,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAE5C,QAAA,yBAAyB,GACpC;IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,0BAAS,CAAC,QAAQ;IAC3C,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,0BAAS,CAAC,OAAO;IACzC,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,0BAAS,CAAC,SAAS;CAC9C,CAAC"}
@@ -8,11 +8,15 @@ const constants_1 = require("./constants");
8
8
  const poolsJob_1 = __importDefault(require("./poolsJob"));
9
9
  const gaugesJob_1 = __importDefault(require("./gaugesJob"));
10
10
  const getPositionsFetcher_1 = require("./getPositionsFetcher");
11
+ const votingEscrowFetcher_1 = __importDefault(require("./votingEscrowFetcher"));
12
+ const vestingEscrowFetcher_1 = __importDefault(require("./vestingEscrowFetcher"));
11
13
  exports.platforms = [constants_1.fooPlatform];
12
14
  exports.jobs = [poolsJob_1.default, gaugesJob_1.default];
13
15
  exports.fetchers = [
14
16
  (0, getPositionsFetcher_1.getPositionsFetcher)(constants_1.CrvNetworkId.ethereum),
15
17
  (0, getPositionsFetcher_1.getPositionsFetcher)(constants_1.CrvNetworkId.polygon),
16
18
  (0, getPositionsFetcher_1.getPositionsFetcher)(constants_1.CrvNetworkId.avalanche),
19
+ votingEscrowFetcher_1.default,
20
+ vestingEscrowFetcher_1.default,
17
21
  ];
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/curve/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAwD;AACxD,0DAAkC;AAClC,4DAAoC;AACpC,+DAA4D;AAE/C,QAAA,SAAS,GAAe,CAAC,uBAAW,CAAC,CAAC;AACtC,QAAA,IAAI,GAAU,CAAC,kBAAQ,EAAE,mBAAS,CAAC,CAAC;AACpC,QAAA,QAAQ,GAAc;IACjC,IAAA,yCAAmB,EAAC,wBAAY,CAAC,QAAQ,CAAC;IAC1C,IAAA,yCAAmB,EAAC,wBAAY,CAAC,OAAO,CAAC;IACzC,IAAA,yCAAmB,EAAC,wBAAY,CAAC,SAAS,CAAC;CAC5C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/curve/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAwD;AACxD,0DAAkC;AAClC,4DAAoC;AACpC,+DAA4D;AAC5D,gFAAwD;AACxD,kFAA0D;AAE7C,QAAA,SAAS,GAAe,CAAC,uBAAW,CAAC,CAAC;AACtC,QAAA,IAAI,GAAU,CAAC,kBAAQ,EAAE,mBAAS,CAAC,CAAC;AACpC,QAAA,QAAQ,GAAc;IACjC,IAAA,yCAAmB,EAAC,wBAAY,CAAC,QAAQ,CAAC;IAC1C,IAAA,yCAAmB,EAAC,wBAAY,CAAC,OAAO,CAAC;IACzC,IAAA,yCAAmB,EAAC,wBAAY,CAAC,SAAS,CAAC;IAC3C,6BAAmB;IACnB,8BAAoB;CACrB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ declare const fetcher: Fetcher;
3
+ export default fetcher;
@@ -0,0 +1,88 @@
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 portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const constants_1 = require("./constants");
18
+ const clients_1 = require("../../utils/clients");
19
+ const abis_1 = require("./abis");
20
+ const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
21
+ const zero = BigInt(0);
22
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
23
+ const client = (0, clients_1.getEvmClient)(portfolio_core_1.NetworkId.ethereum);
24
+ const multicallResponse = yield client.multicall({
25
+ contracts: [
26
+ {
27
+ abi: abis_1.vestingEscrowAbi,
28
+ address: constants_1.vestingEscrowAddress,
29
+ functionName: 'lockedOf',
30
+ args: [owner],
31
+ },
32
+ {
33
+ abi: abis_1.vestingEscrowAbi,
34
+ address: constants_1.vestingEscrowAddress,
35
+ functionName: 'balanceOf',
36
+ args: [owner],
37
+ },
38
+ ],
39
+ });
40
+ const lockedOfAmount = multicallResponse[0].status === 'success'
41
+ ? multicallResponse[0].result
42
+ : zero;
43
+ const balanceOfAmount = multicallResponse[1].status === 'success'
44
+ ? multicallResponse[1].result
45
+ : zero;
46
+ if (lockedOfAmount === zero && (!balanceOfAmount || balanceOfAmount === zero))
47
+ return [];
48
+ const crvTokenPrice = yield cache.getTokenPrice(constants_1.crvAddress, portfolio_core_1.NetworkId.ethereum);
49
+ const lockedAmount = new bignumber_js_1.default(lockedOfAmount.toString())
50
+ .div(Math.pow(10, constants_1.crvDecimals))
51
+ .toNumber();
52
+ let balanceAmount = 0;
53
+ if (balanceOfAmount)
54
+ balanceAmount = new bignumber_js_1.default(balanceOfAmount.toString())
55
+ .div(Math.pow(10, constants_1.crvDecimals))
56
+ .toNumber();
57
+ const lockedAsset = (0, tokenPriceToAssetToken_1.default)(constants_1.crvAddress, lockedAmount, portfolio_core_1.NetworkId.ethereum, crvTokenPrice);
58
+ const balanceAsset = (0, tokenPriceToAssetToken_1.default)(constants_1.crvAddress, balanceAmount, portfolio_core_1.NetworkId.ethereum, crvTokenPrice);
59
+ const value = (0, portfolio_core_1.getUsdValueSum)([lockedAsset.value, balanceAsset.value]);
60
+ const element = {
61
+ networkId: portfolio_core_1.NetworkId.ethereum,
62
+ label: 'Vesting',
63
+ name: 'Vesting Escrow',
64
+ platformId: constants_1.platformId,
65
+ type: portfolio_core_1.PortfolioElementType.liquidity,
66
+ value,
67
+ data: {
68
+ liquidities: [
69
+ {
70
+ assets: [balanceAsset],
71
+ assetsValue: balanceAsset.value,
72
+ rewardAssets: [lockedAsset],
73
+ rewardAssetsValue: lockedAsset.value,
74
+ value,
75
+ yields: [],
76
+ },
77
+ ],
78
+ },
79
+ };
80
+ return [element];
81
+ });
82
+ const fetcher = {
83
+ id: `${constants_1.platformId}-vesting-escrow`,
84
+ networkId: portfolio_core_1.NetworkId.ethereum,
85
+ executor,
86
+ };
87
+ exports.default = fetcher;
88
+ //# sourceMappingURL=vestingEscrowFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vestingEscrowFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/curve/vestingEscrowFetcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ declare const fetcher: Fetcher;
3
+ export default fetcher;
@@ -0,0 +1,64 @@
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 portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const constants_1 = require("./constants");
18
+ const clients_1 = require("../../utils/clients");
19
+ const abis_1 = require("./abis");
20
+ const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
21
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
22
+ const client = (0, clients_1.getEvmClient)(portfolio_core_1.NetworkId.ethereum);
23
+ const lockedResponse = yield client.readContract({
24
+ abi: abis_1.votingEscrowAbi,
25
+ address: constants_1.votingEscrowAddress,
26
+ functionName: 'locked',
27
+ args: [owner],
28
+ });
29
+ if (lockedResponse[0] === BigInt(0))
30
+ return [];
31
+ const crvTokenPrice = yield cache.getTokenPrice(constants_1.crvAddress, portfolio_core_1.NetworkId.ethereum);
32
+ const amount = new bignumber_js_1.default(lockedResponse[0].toString())
33
+ .div(Math.pow(10, constants_1.crvDecimals))
34
+ .toNumber();
35
+ const asset = (0, tokenPriceToAssetToken_1.default)(constants_1.crvAddress, amount, portfolio_core_1.NetworkId.ethereum, crvTokenPrice);
36
+ const element = {
37
+ networkId: portfolio_core_1.NetworkId.ethereum,
38
+ label: 'Vesting',
39
+ name: 'Voting Escrow',
40
+ platformId: constants_1.platformId,
41
+ type: portfolio_core_1.PortfolioElementType.liquidity,
42
+ value: asset.value,
43
+ data: {
44
+ liquidities: [
45
+ {
46
+ assets: [asset],
47
+ assetsValue: asset.value,
48
+ rewardAssets: [],
49
+ rewardAssetsValue: 0,
50
+ value: asset.value,
51
+ yields: [],
52
+ },
53
+ ],
54
+ },
55
+ };
56
+ return [element];
57
+ });
58
+ const fetcher = {
59
+ id: `${constants_1.platformId}-voting-escrow`,
60
+ networkId: portfolio_core_1.NetworkId.ethereum,
61
+ executor,
62
+ };
63
+ exports.default = fetcher;
64
+ //# sourceMappingURL=votingEscrowFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"votingEscrowFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/curve/votingEscrowFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAIoC;AACpC,gEAAqC;AAErC,2CAKqB;AAErB,iDAAmD;AACnD,iCAAyC;AACzC,qGAA6E;AAE7E,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,sBAAY,EAAC,0BAAS,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC/C,GAAG,EAAE,sBAAe;QACpB,OAAO,EAAE,+BAAmB;QAC5B,YAAY,EAAE,QAAQ;QACtB,IAAI,EAAE,CAAC,KAAsB,CAAC;KAC/B,CAAC,CAAC;IACH,IAAI,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAE/C,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,aAAa,CAC7C,sBAAU,EACV,0BAAS,CAAC,QAAQ,CACnB,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACvD,GAAG,CAAC,SAAA,EAAE,EAAI,uBAAW,CAAA,CAAC;SACtB,QAAQ,EAAE,CAAC;IACd,MAAM,KAAK,GAAG,IAAA,gCAAsB,EAClC,sBAAU,EACV,MAAM,EACN,0BAAS,CAAC,QAAQ,EAClB,aAAa,CACd,CAAC;IACF,MAAM,OAAO,GAA8B;QACzC,SAAS,EAAE,0BAAS,CAAC,QAAQ;QAC7B,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,eAAe;QACrB,UAAU,EAAV,sBAAU;QACV,IAAI,EAAE,qCAAoB,CAAC,SAAS;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE;YACJ,WAAW,EAAE;gBACX;oBACE,MAAM,EAAE,CAAC,KAAK,CAAC;oBACf,WAAW,EAAE,KAAK,CAAC,KAAK;oBACxB,YAAY,EAAE,EAAE;oBAChB,iBAAiB,EAAE,CAAC;oBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,MAAM,EAAE,EAAE;iBACX;aACF;SACF;KACF,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,gBAAgB;IACjC,SAAS,EAAE,0BAAS,CAAC,QAAQ;IAC7B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -18,8 +18,6 @@ const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
18
  const constants_1 = require("./constants");
19
19
  const clients_1 = require("../../utils/clients");
20
20
  const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
21
- const indexFactor = 18;
22
- const rateFactor = 27;
23
21
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
24
22
  const client = (0, clients_1.getClientSui)();
25
23
  const borrowedAssets = [];
@@ -58,10 +56,10 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
58
56
  if (borrowInfo.value) {
59
57
  borrowedAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPrice.address, new bignumber_js_1.default(borrowInfo.value)
60
58
  .dividedBy(reserveData.current_borrow_index)
61
- .multipliedBy(Math.pow(10, indexFactor))
59
+ .multipliedBy(Math.pow(10, constants_1.indexFactor))
62
60
  .toNumber(), portfolio_core_1.NetworkId.sui, tokenPrice));
63
61
  const apy = new bignumber_js_1.default(reserveData.current_borrow_rate)
64
- .dividedBy(Math.pow(10, rateFactor))
62
+ .dividedBy(Math.pow(10, constants_1.rateFactor))
65
63
  .toNumber();
66
64
  borrowedYields.push([
67
65
  {
@@ -76,10 +74,10 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
76
74
  if (supplyInfo.value) {
77
75
  suppliedAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPrice.address, new bignumber_js_1.default(supplyInfo.value)
78
76
  .dividedBy(reserveData.current_supply_index)
79
- .multipliedBy(Math.pow(10, indexFactor))
77
+ .multipliedBy(Math.pow(10, constants_1.indexFactor))
80
78
  .toNumber(), portfolio_core_1.NetworkId.sui, tokenPrice));
81
79
  const apy = new bignumber_js_1.default(reserveData.current_supply_rate)
82
- .dividedBy(Math.pow(10, rateFactor))
80
+ .dividedBy(Math.pow(10, constants_1.rateFactor))
83
81
  .toNumber();
84
82
  suppliedYields.push([
85
83
  {
@@ -1 +1 @@
1
- {"version":3,"file":"collateralFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/navi/collateralFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collateralFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/navi/collateralFetcher.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ export declare const naviPlatform: Platform;
4
4
  export declare const reservesPrefix = "navi";
5
5
  export declare const reservesKey = "reserves";
6
6
  export declare const reserveParentId = "0xe6d4c6610b86ce7735ea754596d71d72d10c7980b5052fc3c8cdf8d09fea9b4b";
7
+ export declare const indexFactor = 18;
8
+ export declare const rateFactor = 27;
7
9
  export declare const poolsInfos: {
8
10
  id: number;
9
11
  name: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.poolsInfos = exports.reserveParentId = exports.reservesKey = exports.reservesPrefix = exports.naviPlatform = exports.platformId = void 0;
3
+ exports.poolsInfos = exports.rateFactor = exports.indexFactor = exports.reserveParentId = exports.reservesKey = exports.reservesPrefix = exports.naviPlatform = exports.platformId = void 0;
4
4
  exports.platformId = 'navi';
5
5
  exports.naviPlatform = {
6
6
  id: exports.platformId,
@@ -11,6 +11,8 @@ exports.naviPlatform = {
11
11
  exports.reservesPrefix = exports.platformId;
12
12
  exports.reservesKey = 'reserves';
13
13
  exports.reserveParentId = '0xe6d4c6610b86ce7735ea754596d71d72d10c7980b5052fc3c8cdf8d09fea9b4b';
14
+ exports.indexFactor = 18;
15
+ exports.rateFactor = 27;
14
16
  exports.poolsInfos = [
15
17
  {
16
18
  id: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/navi/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,qCAAqC,kBAAU,MAAM;IAC5D,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEW,QAAA,cAAc,GAAG,kBAAU,CAAC;AAC5B,QAAA,WAAW,GAAG,UAAU,CAAC;AAEzB,QAAA,eAAe,GAC1B,oEAAoE,CAAC;AAE1D,QAAA,UAAU,GAAG;IACxB;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,8EAA8E;QACpF,WAAW,EACT,oEAAoE;QACtE,IAAI,EAAE,oEAAoE;QAC1E,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gFAAgF;QACtF,WAAW,EACT,oEAAoE;QACtE,IAAI,EAAE,oEAAoE;QAC1E,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gFAAgF;QACtF,WAAW,EACT,oEAAoE;QACtE,IAAI,EAAE,EAAE;QACR,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gFAAgF;QACtF,IAAI,EAAE,oEAAoE;QAC1E,WAAW,EACT,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/navi/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,qCAAqC,kBAAU,MAAM;IAC5D,WAAW,EAAE,eAAe;CAC7B,CAAC;AAEW,QAAA,cAAc,GAAG,kBAAU,CAAC;AAC5B,QAAA,WAAW,GAAG,UAAU,CAAC;AAEzB,QAAA,eAAe,GAC1B,oEAAoE,CAAC;AAE1D,QAAA,WAAW,GAAG,EAAE,CAAC;AACjB,QAAA,UAAU,GAAG,EAAE,CAAC;AAEhB,QAAA,UAAU,GAAG;IACxB;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,KAAK;QACX,IAAI,EAAE,8EAA8E;QACpF,WAAW,EACT,oEAAoE;QACtE,IAAI,EAAE,oEAAoE;QAC1E,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gFAAgF;QACtF,WAAW,EACT,oEAAoE;QACtE,IAAI,EAAE,oEAAoE;QAC1E,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gFAAgF;QACtF,WAAW,EACT,oEAAoE;QACtE,IAAI,EAAE,EAAE;QACR,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;IACD;QACE,EAAE,EAAE,CAAC;QACL,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,gFAAgF;QACtF,IAAI,EAAE,oEAAoE;QAC1E,WAAW,EACT,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;QACtE,qBAAqB,EACnB,oEAAoE;KACvE;CACF,CAAC"}
@@ -8,9 +8,13 @@ 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
15
  const sui_js_1 = require("@mysten/sui.js");
13
16
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
17
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
14
18
  const clients_1 = require("../../utils/clients");
15
19
  const constants_1 = require("./constants");
16
20
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
@@ -31,6 +35,44 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
31
35
  prefix: constants_1.reservesPrefix,
32
36
  networkId: portfolio_core_1.NetworkId.sui,
33
37
  });
38
+ for (const reserveData of reservesDatas) {
39
+ const reserve = reserveData.value.fields;
40
+ const tokenAddress = reserve.coin_type;
41
+ const poolName = 'Main Pool';
42
+ const depositedAmount = new bignumber_js_1.default(reserve.supply_balance.fields.total_supply)
43
+ .dividedBy(reserve.current_supply_index)
44
+ .multipliedBy(Math.pow(10, constants_1.indexFactor))
45
+ .toNumber();
46
+ const borrowedAmount = new bignumber_js_1.default(reserve.borrow_balance.fields.total_supply)
47
+ .dividedBy(reserve.current_borrow_index)
48
+ .multipliedBy(Math.pow(10, constants_1.indexFactor))
49
+ .toNumber();
50
+ const borrowingApy = new bignumber_js_1.default(reserve.current_borrow_rate)
51
+ .dividedBy(Math.pow(10, constants_1.rateFactor))
52
+ .toNumber();
53
+ const lendingApy = new bignumber_js_1.default(reserve.current_supply_rate)
54
+ .dividedBy(Math.pow(10, constants_1.rateFactor))
55
+ .toNumber();
56
+ const rate = {
57
+ tokenAddress,
58
+ borrowYield: {
59
+ apy: borrowingApy,
60
+ apr: (0, portfolio_core_1.apyToApr)(borrowingApy),
61
+ },
62
+ borrowedAmount,
63
+ depositYield: {
64
+ apy: lendingApy,
65
+ apr: (0, portfolio_core_1.apyToApr)(lendingApy),
66
+ },
67
+ depositedAmount,
68
+ platformId: constants_1.platformId,
69
+ poolName,
70
+ };
71
+ yield cache.setItem(`${reserveData.id.id}-${tokenAddress}`, rate, {
72
+ prefix: portfolio_core_1.borrowLendRatesPrefix,
73
+ networkId: portfolio_core_1.NetworkId.solana,
74
+ });
75
+ }
34
76
  });
35
77
  const job = {
36
78
  id: `${constants_1.platformId}-reserves`,
@@ -1 +1 @@
1
- {"version":3,"file":"reservesJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/navi/reservesJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAiD;AACjD,+DAAuD;AAGvD,iDAAmD;AACnD,2CAMqB;AAGrB,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAC9B,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,sBAAU,EAAE;QAC7B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC;YAClD,QAAQ,EAAE,2BAAe;YACzB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE;SAChD,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjB,MAAM,MAAM,GAAG,IAAA,wBAAe,EAAC,QAAQ,CAAC,IAAI,CAAgB,CAAC;YAC7D,IAAI,MAAM,CAAC,KAAK;gBAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9C;KACF;IACD,MAAM,KAAK,CAAC,OAAO,CAAC,uBAAW,EAAE,aAAa,EAAE;QAC9C,MAAM,EAAE,0BAAc;QACtB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"reservesJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/navi/reservesJob.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,21 @@ export type Balance = {
5
5
  name: string;
6
6
  value: string;
7
7
  };
8
+ export type ReserveBalance = {
9
+ type: string;
10
+ fields: {
11
+ total_supply: string;
12
+ user_state: {
13
+ type: string;
14
+ fields: {
15
+ id: {
16
+ id: string;
17
+ };
18
+ size: string;
19
+ };
20
+ };
21
+ };
22
+ };
8
23
  export type BorrowRateFactors = {
9
24
  type: string;
10
25
  fields: {
@@ -31,7 +46,7 @@ export type ReserveData = {
31
46
  value: {
32
47
  type: string;
33
48
  fields: {
34
- borrow_balance: Balance;
49
+ borrow_balance: ReserveBalance;
35
50
  borrow_cap_ceiling: string;
36
51
  borrow_rate_factors: BorrowRateFactors;
37
52
  coin_type: string;
@@ -48,7 +63,7 @@ export type ReserveData = {
48
63
  reserve_field_a: string;
49
64
  reserve_field_b: string;
50
65
  reserve_field_c: string;
51
- supply_balance: Balance;
66
+ supply_balance: ReserveBalance;
52
67
  supply_cap_ceiling: string;
53
68
  treasury_balance: string;
54
69
  treasury_factor: string;