@sonarwatch/portfolio-plugins 0.8.28 → 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.
- package/CHANGELOG.md +4 -0
- package/package.json +2 -2
- package/src/plugins/curve/abis.d.ts +897 -0
- package/src/plugins/curve/abis.js +658 -1
- package/src/plugins/curve/abis.js.map +1 -1
- package/src/plugins/curve/constants.d.ts +4 -0
- package/src/plugins/curve/constants.js +5 -1
- package/src/plugins/curve/constants.js.map +1 -1
- package/src/plugins/curve/index.js +4 -0
- package/src/plugins/curve/index.js.map +1 -1
- package/src/plugins/curve/vestingEscrowFetcher.d.ts +3 -0
- package/src/plugins/curve/vestingEscrowFetcher.js +88 -0
- package/src/plugins/curve/vestingEscrowFetcher.js.map +1 -0
- package/src/plugins/curve/votingEscrowFetcher.d.ts +3 -0
- package/src/plugins/curve/votingEscrowFetcher.js +64 -0
- package/src/plugins/curve/votingEscrowFetcher.js.map +1 -0
- package/src/plugins/navi/collateralFetcher.js +4 -6
- package/src/plugins/navi/collateralFetcher.js.map +1 -1
- package/src/plugins/navi/constants.d.ts +2 -0
- package/src/plugins/navi/constants.js +3 -1
- package/src/plugins/navi/constants.js.map +1 -1
- package/src/plugins/navi/reservesJob.js +42 -0
- package/src/plugins/navi/reservesJob.js.map +1 -1
- package/src/plugins/navi/types.d.ts +17 -2
@@ -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;
|
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;
|
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,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,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":";;;;;;;;;;;;;;AAAA,+DAQoC;AACpC,2CAAiD;AACjD,gEAAqC;AAGrC,
|
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":"
|
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:
|
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:
|
66
|
+
supply_balance: ReserveBalance;
|
52
67
|
supply_cap_ceiling: string;
|
53
68
|
treasury_balance: string;
|
54
69
|
treasury_factor: string;
|