@sonarwatch/portfolio-plugins 0.4.2 → 0.4.3
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 +3 -2
- package/src/index.js +9 -1
- package/src/index.js.map +1 -1
- package/src/platforms.d.ts +2 -1
- package/src/platforms.js +9 -4
- package/src/platforms.js.map +1 -1
- package/src/plugins/tensor/constants.d.ts +1 -1
- package/src/plugins/tensor/constants.js +2 -2
- package/src/plugins/tensor/constants.js.map +1 -1
- package/src/plugins/thala/constants.d.ts +24 -0
- package/src/plugins/thala/constants.js +37 -0
- package/src/plugins/thala/constants.js.map +1 -0
- package/src/plugins/thala/helpers.d.ts +2 -0
- package/src/plugins/thala/helpers.js +39 -0
- package/src/plugins/thala/helpers.js.map +1 -0
- package/src/plugins/thala/index.d.ts +3 -0
- package/src/plugins/thala/index.js +14 -0
- package/src/plugins/thala/index.js.map +1 -0
- package/src/plugins/thala/lpTokensJob.d.ts +3 -0
- package/src/plugins/thala/lpTokensJob.js +126 -0
- package/src/plugins/thala/lpTokensJob.js.map +1 -0
- package/src/plugins/thala/stabilityPoolFetcher.d.ts +3 -0
- package/src/plugins/thala/stabilityPoolFetcher.js +81 -0
- package/src/plugins/thala/stabilityPoolFetcher.js.map +1 -0
- package/src/plugins/thala/stakingAprJob.d.ts +3 -0
- package/src/plugins/thala/stakingAprJob.js +35 -0
- package/src/plugins/thala/stakingAprJob.js.map +1 -0
- package/src/plugins/thala/types.d.ts +78 -0
- package/src/plugins/thala/types.js +9 -0
- package/src/plugins/thala/types.js.map +1 -0
- package/src/plugins/thala/vaultsFetcher.d.ts +3 -0
- package/src/plugins/thala/vaultsFetcher.js +86 -0
- package/src/plugins/thala/vaultsFetcher.js.map +1 -0
- package/src/plugins/thala/vaultsRatesJob.d.ts +3 -0
- package/src/plugins/thala/vaultsRatesJob.js +39 -0
- package/src/plugins/thala/vaultsRatesJob.js.map +1 -0
- package/src/plugins/wallet-tokens/constants.d.ts +1 -0
- package/src/plugins/wallet-tokens/constants.js +3 -1
- package/src/plugins/wallet-tokens/constants.js.map +1 -1
- package/src/plugins/wallet-tokens/fetchers/aptos.d.ts +3 -0
- package/src/plugins/wallet-tokens/fetchers/aptos.js +81 -0
- package/src/plugins/wallet-tokens/fetchers/aptos.js.map +1 -0
- package/src/plugins/wallet-tokens/helpers.js +2 -2
- package/src/plugins/wallet-tokens/helpers.js.map +1 -1
- package/src/plugins/wallet-tokens/index.d.ts +2 -1
- package/src/plugins/wallet-tokens/index.js +7 -5
- package/src/plugins/wallet-tokens/index.js.map +1 -1
- package/src/plugins/wallet-tokens/types.d.ts +1 -1
- package/src/utils/aptos/parseTypeString.js +7 -2
- package/src/utils/aptos/parseTypeString.js.map +1 -1
package/CHANGELOG.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
+
## [0.4.3](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.2...plugins-0.4.3) (2023-07-08)
|
6
|
+
|
7
|
+
|
8
|
+
|
5
9
|
## [0.4.2](https://github.com/sonarwatch/portfolio/compare/plugins-0.4.1...plugins-0.4.2) (2023-07-07)
|
6
10
|
|
7
11
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sonarwatch/portfolio-plugins",
|
3
|
-
"version": "0.4.
|
3
|
+
"version": "0.4.3",
|
4
4
|
"type": "commonjs",
|
5
5
|
"generators": "./generators.json",
|
6
6
|
"dependencies": {
|
@@ -17,11 +17,12 @@
|
|
17
17
|
"bitcoin-address-validation": "^2.2.1",
|
18
18
|
"bn.js": "^5.2.1",
|
19
19
|
"decimal.js": "^10.4.3",
|
20
|
+
"listhen": "^1.0.4",
|
20
21
|
"unstorage": "^1.7.0",
|
21
22
|
"viem": "^1.2.9"
|
22
23
|
},
|
23
24
|
"peerDependencies": {
|
24
|
-
"@sonarwatch/portfolio-core": "0.4.
|
25
|
+
"@sonarwatch/portfolio-core": "0.4.3"
|
25
26
|
},
|
26
27
|
"main": "./src/index.js",
|
27
28
|
"types": "./src/index.d.ts"
|
package/src/index.js
CHANGED
@@ -31,15 +31,23 @@ const platformsObj = __importStar(require("./platforms"));
|
|
31
31
|
const wallet_tokens_1 = require("./plugins/wallet-tokens");
|
32
32
|
const marinade_1 = require("./plugins/marinade");
|
33
33
|
const marginfi_1 = require("./plugins/marginfi");
|
34
|
+
const thala_1 = require("./plugins/thala");
|
34
35
|
const tensor_1 = require("./plugins/tensor");
|
35
36
|
const foo_1 = require("./plugins/foo");
|
36
37
|
__exportStar(require("./platforms"), exports);
|
37
38
|
exports.platforms = Object.values(platformsObj);
|
38
|
-
exports.jobs = [
|
39
|
+
exports.jobs = [
|
40
|
+
...foo_1.jobs,
|
41
|
+
...marginfi_1.jobs,
|
42
|
+
...wallet_tokens_1.jobs,
|
43
|
+
...thala_1.jobs,
|
44
|
+
];
|
39
45
|
exports.fetchers = [
|
40
46
|
...foo_1.fetchers,
|
41
47
|
...tensor_1.fetchers,
|
42
48
|
...marginfi_1.fetchers,
|
43
49
|
...marinade_1.fetchers,
|
50
|
+
...thala_1.fetchers,
|
51
|
+
...wallet_tokens_1.fetchers,
|
44
52
|
];
|
45
53
|
//# 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0DAA4C;AAC5C,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,0DAA4C;AAC5C,2DAGiC;AACjC,iDAAkE;AAClE,iDAG4B;AAC5B,2CAA+E;AAC/E,6CAA8D;AAC9D,uCAAyE;AAEzE,8CAA4B;AACf,QAAA,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAExC,QAAA,IAAI,GAAU;IACzB,GAAG,UAAO;IACV,GAAG,eAAY;IACf,GAAG,oBAAgB;IACnB,GAAG,YAAS;CACb,CAAC;AAEW,QAAA,QAAQ,GAAc;IACjC,GAAG,cAAW;IACd,GAAG,iBAAc;IACjB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,gBAAa;IAChB,GAAG,wBAAoB;CACxB,CAAC"}
|
package/src/platforms.d.ts
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
import { Platform } from '@sonarwatch/portfolio-core';
|
2
2
|
export declare const marinadePlatform: Platform;
|
3
3
|
export declare const aavePlatform: Platform;
|
4
|
-
export declare const
|
4
|
+
export declare const walletNftsPlatform: Platform;
|
5
5
|
export declare const walletTokensPlatform: Platform;
|
6
6
|
export declare const marginfiPlatform: Platform;
|
7
7
|
export declare const tensorPlatform: Platform;
|
8
|
+
export declare const thalaPlatform: Platform;
|
package/src/platforms.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.tensorPlatform = exports.marginfiPlatform = exports.walletTokensPlatform = exports.
|
3
|
+
exports.thalaPlatform = exports.tensorPlatform = exports.marginfiPlatform = exports.walletTokensPlatform = exports.walletNftsPlatform = exports.aavePlatform = exports.marinadePlatform = void 0;
|
4
4
|
exports.marinadePlatform = {
|
5
5
|
id: 'marinade',
|
6
6
|
name: 'Marinade',
|
@@ -11,10 +11,10 @@ exports.aavePlatform = {
|
|
11
11
|
name: 'AAVE',
|
12
12
|
image: 'https://beta.sonar.watch/img/platforms/aave.png',
|
13
13
|
};
|
14
|
-
exports.
|
15
|
-
id: '
|
14
|
+
exports.walletNftsPlatform = {
|
15
|
+
id: 'wallet-nfts',
|
16
16
|
name: 'NFTs',
|
17
|
-
image: 'https://beta.sonar.watch/img/platforms/
|
17
|
+
image: 'https://beta.sonar.watch/img/platforms/wallet-nfts.png',
|
18
18
|
};
|
19
19
|
exports.walletTokensPlatform = {
|
20
20
|
id: 'wallet-tokens',
|
@@ -31,4 +31,9 @@ exports.tensorPlatform = {
|
|
31
31
|
name: 'Tensor',
|
32
32
|
image: 'https://beta.sonar.watch/img/platforms/tensor.png',
|
33
33
|
};
|
34
|
+
exports.thalaPlatform = {
|
35
|
+
id: 'thala',
|
36
|
+
name: 'Thala',
|
37
|
+
image: 'https://beta.sonar.watch/img/platforms/thala.png',
|
38
|
+
};
|
34
39
|
//# 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":";;;AAEa,QAAA,gBAAgB,GAAa;IACxC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,qDAAqD;CAC7D,CAAC;AACW,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,iDAAiD;CACzD,CAAC;AACW,QAAA,kBAAkB,GAAa;IAC1C,EAAE,EAAE,
|
1
|
+
{"version":3,"file":"platforms.js","sourceRoot":"","sources":["../../../../packages/plugins/src/platforms.ts"],"names":[],"mappings":";;;AAEa,QAAA,gBAAgB,GAAa;IACxC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,qDAAqD;CAC7D,CAAC;AACW,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,iDAAiD;CACzD,CAAC;AACW,QAAA,kBAAkB,GAAa;IAC1C,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,wDAAwD;CAChE,CAAC;AACW,QAAA,oBAAoB,GAAa;IAC5C,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,0DAA0D;CAClE,CAAC;AACW,QAAA,gBAAgB,GAAa;IACxC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,qDAAqD;CAC7D,CAAC;AACW,QAAA,cAAc,GAAa;IACtC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,mDAAmD;CAC3D,CAAC;AACW,QAAA,aAAa,GAAa;IACrC,EAAE,EAAE,OAAO;IACX,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,kDAAkD;CAC1D,CAAC"}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.tensorProgram = exports.
|
3
|
+
exports.tensorProgram = exports.cachePrefix = exports.platformId = void 0;
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
5
5
|
const platforms_1 = require("../../platforms");
|
6
|
-
exports.cachePrefix = 'tensor';
|
7
6
|
exports.platformId = platforms_1.tensorPlatform.id;
|
7
|
+
exports.cachePrefix = 'tensor';
|
8
8
|
exports.tensorProgram = new web3_js_1.PublicKey('TSWAPaqyCSx2KABk68Shruf4rp7CxcNi8hAsbdwmHbN');
|
9
9
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tensor/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,+CAAiD;AAEpC,QAAA,
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/tensor/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,+CAAiD;AAEpC,QAAA,UAAU,GAAG,0BAAc,CAAC,EAAE,CAAC;AAC/B,QAAA,WAAW,GAAG,QAAQ,CAAC;AAEvB,QAAA,aAAa,GAAG,IAAI,mBAAS,CACxC,6CAA6C,CAC9C,CAAC"}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
export declare const platformId: string;
|
2
|
+
export declare const programAdressThala = "0x6f986d146e4a90b828d8c12c14b6f4e003fdff11a8eecceceb63744363eaac01";
|
3
|
+
export declare const vaultFilter: string;
|
4
|
+
export declare const vaultCollateralParamsFilter: string;
|
5
|
+
export declare const thlCoin = "0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL";
|
6
|
+
export declare const modCoin: string;
|
7
|
+
export declare const stabilityEndpoint = "https://app.thala.fi/api/total-stability";
|
8
|
+
export declare const programAddressLP = "0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af";
|
9
|
+
export declare const lpStableTypeTokenPrefix: string;
|
10
|
+
export declare const lpWeightedTypeTokenPrefix: string;
|
11
|
+
export declare const lpStableTypePrefix: string;
|
12
|
+
export declare const lpWeightedTypePrefix: string;
|
13
|
+
export declare const lpStableCoinInfoTypePrefix: string;
|
14
|
+
export declare const lpWeightedCoinInfoTypePrefix: string;
|
15
|
+
export declare const stabilityDepositPayload: (owner: string) => {
|
16
|
+
function: string;
|
17
|
+
type_arguments: string[];
|
18
|
+
arguments: string[];
|
19
|
+
};
|
20
|
+
export declare const stabilityClaimablePayload: (owner: string) => {
|
21
|
+
function: string;
|
22
|
+
type_arguments: never[];
|
23
|
+
arguments: string[];
|
24
|
+
};
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.stabilityClaimablePayload = exports.stabilityDepositPayload = exports.lpWeightedCoinInfoTypePrefix = exports.lpStableCoinInfoTypePrefix = exports.lpWeightedTypePrefix = exports.lpStableTypePrefix = exports.lpWeightedTypeTokenPrefix = exports.lpStableTypeTokenPrefix = exports.programAddressLP = exports.stabilityEndpoint = exports.modCoin = exports.thlCoin = exports.vaultCollateralParamsFilter = exports.vaultFilter = exports.programAdressThala = exports.platformId = void 0;
|
4
|
+
const platforms_1 = require("../../platforms");
|
5
|
+
const aptos_1 = require("../../utils/aptos");
|
6
|
+
exports.platformId = platforms_1.thalaPlatform.id;
|
7
|
+
exports.programAdressThala = '0x6f986d146e4a90b828d8c12c14b6f4e003fdff11a8eecceceb63744363eaac01';
|
8
|
+
const stabilityModule = 'stability_pool';
|
9
|
+
const vaultModule = 'vault';
|
10
|
+
const liquidityDeposit = `${exports.programAdressThala}::${stabilityModule}::account_deposit`;
|
11
|
+
const liquidityClaimable = `${exports.programAdressThala}::${stabilityModule}::claimable_thl`;
|
12
|
+
const cryptoType = `${exports.programAdressThala}::${stabilityModule}::Crypto`;
|
13
|
+
exports.vaultFilter = `${exports.programAdressThala}::${vaultModule}::Vault<`;
|
14
|
+
exports.vaultCollateralParamsFilter = `${exports.programAdressThala}::${vaultModule}::VaultCollateralParams<`;
|
15
|
+
exports.thlCoin = `0x7fd500c11216f0fe3095d0c4b8aa4d64a4e2e04f83758462f2b127255643615::thl_coin::THL`;
|
16
|
+
exports.modCoin = `${exports.programAdressThala}::mod_coin::MOD`;
|
17
|
+
exports.stabilityEndpoint = 'https://app.thala.fi/api/total-stability';
|
18
|
+
exports.programAddressLP = '0x48271d39d0b05bd6efca2278f22277d6fcc375504f9839fd73f74ace240861af';
|
19
|
+
exports.lpStableTypeTokenPrefix = `${exports.programAddressLP}::stable_pool::StablePoolToken`;
|
20
|
+
exports.lpWeightedTypeTokenPrefix = `${exports.programAddressLP}::weighted_pool::WeightedPoolToken`;
|
21
|
+
exports.lpStableTypePrefix = `${exports.programAddressLP}::stable_pool::StablePool`;
|
22
|
+
exports.lpWeightedTypePrefix = `${exports.programAddressLP}::weighted_pool::WeightedPool`;
|
23
|
+
exports.lpStableCoinInfoTypePrefix = `${aptos_1.coinInfo}<${exports.lpStableTypeTokenPrefix}`;
|
24
|
+
exports.lpWeightedCoinInfoTypePrefix = `${aptos_1.coinInfo}<${exports.lpWeightedTypeTokenPrefix}`;
|
25
|
+
const stabilityDepositPayload = (owner) => ({
|
26
|
+
function: liquidityDeposit,
|
27
|
+
type_arguments: [cryptoType],
|
28
|
+
arguments: [owner],
|
29
|
+
});
|
30
|
+
exports.stabilityDepositPayload = stabilityDepositPayload;
|
31
|
+
const stabilityClaimablePayload = (owner) => ({
|
32
|
+
function: liquidityClaimable,
|
33
|
+
type_arguments: [],
|
34
|
+
arguments: [owner],
|
35
|
+
});
|
36
|
+
exports.stabilityClaimablePayload = stabilityClaimablePayload;
|
37
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/constants.ts"],"names":[],"mappings":";;;AAAA,+CAAgD;AAChD,6CAA6C;AAEhC,QAAA,UAAU,GAAG,yBAAa,CAAC,EAAE,CAAC;AAC9B,QAAA,kBAAkB,GAC7B,oEAAoE,CAAC;AAEvE,MAAM,eAAe,GAAG,gBAAgB,CAAC;AACzC,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B,MAAM,gBAAgB,GAAG,GAAG,0BAAkB,KAAK,eAAe,mBAAmB,CAAC;AACtF,MAAM,kBAAkB,GAAG,GAAG,0BAAkB,KAAK,eAAe,iBAAiB,CAAC;AAEtF,MAAM,UAAU,GAAG,GAAG,0BAAkB,KAAK,eAAe,UAAU,CAAC;AAC1D,QAAA,WAAW,GAAG,GAAG,0BAAkB,KAAK,WAAW,UAAU,CAAC;AAC9D,QAAA,2BAA2B,GAAG,GAAG,0BAAkB,KAAK,WAAW,0BAA0B,CAAC;AAE9F,QAAA,OAAO,GAAG,kFAAkF,CAAC;AAC7F,QAAA,OAAO,GAAG,GAAG,0BAAkB,iBAAiB,CAAC;AAEjD,QAAA,iBAAiB,GAAG,0CAA0C,CAAC;AAE/D,QAAA,gBAAgB,GAC3B,oEAAoE,CAAC;AAC1D,QAAA,uBAAuB,GAAG,GAAG,wBAAgB,gCAAgC,CAAC;AAC9E,QAAA,yBAAyB,GAAG,GAAG,wBAAgB,oCAAoC,CAAC;AACpF,QAAA,kBAAkB,GAAG,GAAG,wBAAgB,2BAA2B,CAAC;AACpE,QAAA,oBAAoB,GAAG,GAAG,wBAAgB,+BAA+B,CAAC;AAC1E,QAAA,0BAA0B,GAAG,GAAG,gBAAQ,IAAI,+BAAuB,EAAE,CAAC;AACtE,QAAA,4BAA4B,GAAG,GAAG,gBAAQ,IAAI,iCAAyB,EAAE,CAAC;AAEhF,MAAM,uBAAuB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;IACzD,QAAQ,EAAE,gBAAgB;IAC1B,cAAc,EAAE,CAAC,UAAU,CAAC;IAC5B,SAAS,EAAE,CAAC,KAAK,CAAC;CACnB,CAAC,CAAC;AAJU,QAAA,uBAAuB,2BAIjC;AAEI,MAAM,yBAAyB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC;IAC3D,QAAQ,EAAE,kBAAkB;IAC5B,cAAc,EAAE,EAAE;IAClB,SAAS,EAAE,CAAC,KAAK,CAAC;CACnB,CAAC,CAAC;AAJU,QAAA,yBAAyB,6BAInC"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.tokenToLpType = exports.fp64ToFloat = void 0;
|
4
|
+
/* eslint-disable no-bitwise */
|
5
|
+
function fp64ToFloat(a) {
|
6
|
+
// avoid large number
|
7
|
+
let mask = BigInt('0xffffffff000000000000000000000000');
|
8
|
+
if ((a & mask) !== BigInt(0)) {
|
9
|
+
throw new Error('too large');
|
10
|
+
}
|
11
|
+
// integer part
|
12
|
+
mask = BigInt('0x10000000000000000');
|
13
|
+
let base = 1;
|
14
|
+
let result = 0;
|
15
|
+
for (let i = 0; i < 32; ++i) {
|
16
|
+
if ((a & mask) !== BigInt(0)) {
|
17
|
+
result += base;
|
18
|
+
}
|
19
|
+
base *= 2;
|
20
|
+
mask <<= BigInt(1);
|
21
|
+
}
|
22
|
+
// fractional part
|
23
|
+
mask = BigInt('0x8000000000000000');
|
24
|
+
base = 0.5;
|
25
|
+
for (let i = 0; i < 32; ++i) {
|
26
|
+
if ((a & mask) !== BigInt(0)) {
|
27
|
+
result += base;
|
28
|
+
}
|
29
|
+
base /= 2;
|
30
|
+
mask >>= BigInt(1);
|
31
|
+
}
|
32
|
+
return result;
|
33
|
+
}
|
34
|
+
exports.fp64ToFloat = fp64ToFloat;
|
35
|
+
function tokenToLpType(tokenType) {
|
36
|
+
return tokenType.replace('PoolToken', 'Pool');
|
37
|
+
}
|
38
|
+
exports.tokenToLpType = tokenToLpType;
|
39
|
+
//# sourceMappingURL=helpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/helpers.ts"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,SAAgB,WAAW,CAAC,CAAS;IACnC,qBAAqB;IACrB,IAAI,IAAI,GAAG,MAAM,CAAC,oCAAoC,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;KAC9B;IAED,eAAe;IACf,IAAI,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IACrC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;QAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;YAC5B,MAAM,IAAI,IAAI,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,CAAC;QACV,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;KACpB;IAED,kBAAkB;IAClB,IAAI,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;IACpC,IAAI,GAAG,GAAG,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE;QAC3B,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE;YAC5B,MAAM,IAAI,IAAI,CAAC;SAChB;QACD,IAAI,IAAI,CAAC,CAAC;QACV,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC;KACpB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AA9BD,kCA8BC;AAED,SAAgB,aAAa,CAAC,SAAiB;IAC7C,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAFD,sCAEC"}
|
@@ -0,0 +1,14 @@
|
|
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 vaultsRatesJob_1 = __importDefault(require("./vaultsRatesJob"));
|
8
|
+
const lpTokensJob_1 = __importDefault(require("./lpTokensJob"));
|
9
|
+
const stakingAprJob_1 = __importDefault(require("./stakingAprJob"));
|
10
|
+
const vaultsFetcher_1 = __importDefault(require("./vaultsFetcher"));
|
11
|
+
const stabilityPoolFetcher_1 = __importDefault(require("./stabilityPoolFetcher"));
|
12
|
+
exports.jobs = [vaultsRatesJob_1.default, lpTokensJob_1.default, stakingAprJob_1.default];
|
13
|
+
exports.fetchers = [vaultsFetcher_1.default, stabilityPoolFetcher_1.default];
|
14
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/index.ts"],"names":[],"mappings":";;;;;;AACA,sEAA4C;AAC5C,gEAAuC;AACvC,oEAA4C;AAC5C,oEAA4C;AAC5C,kFAAiD;AAEpC,QAAA,IAAI,GAAU,CAAC,wBAAY,EAAE,qBAAU,EAAE,uBAAa,CAAC,CAAC;AACxD,QAAA,QAAQ,GAAc,CAAC,uBAAa,EAAE,8BAAW,CAAC,CAAC"}
|
@@ -0,0 +1,126 @@
|
|
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 aptos_1 = require("../../utils/aptos");
|
19
|
+
const clients_1 = require("../../utils/clients");
|
20
|
+
const helpers_1 = require("./helpers");
|
21
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
22
|
+
var _a, _b, _c, _d;
|
23
|
+
const connection = (0, clients_1.getClientAptos)();
|
24
|
+
const resources = yield (0, aptos_1.getAccountResources)(connection, constants_1.programAddressLP);
|
25
|
+
if (!resources)
|
26
|
+
return;
|
27
|
+
const tokenResourcesByType = new Map();
|
28
|
+
resources.forEach((resource) => {
|
29
|
+
if (resource.type.includes(constants_1.lpStableTypePrefix) ||
|
30
|
+
resource.type.includes(constants_1.lpWeightedTypePrefix))
|
31
|
+
tokenResourcesByType.set(resource.type, resource);
|
32
|
+
});
|
33
|
+
for (let i = 0; i < resources.length; i++) {
|
34
|
+
const resource = resources[i];
|
35
|
+
const parseLpInfo = (0, aptos_1.parseTypeString)(resource.type);
|
36
|
+
if (parseLpInfo.root !== aptos_1.coinInfo)
|
37
|
+
continue;
|
38
|
+
if (!parseLpInfo.keys)
|
39
|
+
continue;
|
40
|
+
const poolInfo = (_a = parseLpInfo.keys) === null || _a === void 0 ? void 0 : _a.at(0);
|
41
|
+
if (poolInfo === undefined)
|
42
|
+
continue;
|
43
|
+
if (poolInfo.root !== constants_1.lpStableTypeTokenPrefix &&
|
44
|
+
poolInfo.root !== constants_1.lpWeightedTypeTokenPrefix) {
|
45
|
+
continue;
|
46
|
+
}
|
47
|
+
const lpInfoData = resource.data;
|
48
|
+
const lpSupplyString = (_d = (_c = (_b = lpInfoData.supply) === null || _b === void 0 ? void 0 : _b.vec[0]) === null || _c === void 0 ? void 0 : _c.integer.vec[0]) === null || _d === void 0 ? void 0 : _d.value;
|
49
|
+
if (!lpSupplyString)
|
50
|
+
continue;
|
51
|
+
const lpDecimals = lpInfoData.decimals;
|
52
|
+
const lpSupply = new bignumber_js_1.default(lpSupplyString)
|
53
|
+
.div(Math.pow(10, lpDecimals))
|
54
|
+
.toNumber();
|
55
|
+
if (lpSupply === 0)
|
56
|
+
continue;
|
57
|
+
const lpType = poolInfo.type;
|
58
|
+
const lpTokenComposition = poolInfo.keys;
|
59
|
+
if (!lpTokenComposition)
|
60
|
+
continue;
|
61
|
+
const tokenPairResource = tokenResourcesByType.get((0, helpers_1.tokenToLpType)(lpType));
|
62
|
+
if (!tokenPairResource)
|
63
|
+
continue;
|
64
|
+
const tokensValues = getTokensValuesArray(tokenPairResource.data);
|
65
|
+
const underlyings = [];
|
66
|
+
let totalReserveValue = 0;
|
67
|
+
for (let index = 0; index < lpTokenComposition.length; index++) {
|
68
|
+
const token = lpTokenComposition.at(index);
|
69
|
+
if (!token)
|
70
|
+
continue;
|
71
|
+
if (token.struct === 'Null')
|
72
|
+
break;
|
73
|
+
const tokenAddress = token.type;
|
74
|
+
if (!tokenAddress)
|
75
|
+
continue;
|
76
|
+
const tokenAmount = tokensValues[index];
|
77
|
+
if (!tokenAmount)
|
78
|
+
continue;
|
79
|
+
if (tokenAmount.isZero())
|
80
|
+
continue;
|
81
|
+
const tokenPrice = yield cache.getTokenPrice(tokenAddress, portfolio_core_1.NetworkId.aptos);
|
82
|
+
if (!tokenPrice || tokenPrice === undefined)
|
83
|
+
continue;
|
84
|
+
const reserveAmount = new bignumber_js_1.default(tokenAmount)
|
85
|
+
.div(Math.pow(10, tokenPrice.decimals))
|
86
|
+
.toNumber();
|
87
|
+
const reserveValue = reserveAmount * tokenPrice.price;
|
88
|
+
totalReserveValue += reserveValue;
|
89
|
+
underlyings.push({
|
90
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
91
|
+
address: tokenPrice.address,
|
92
|
+
decimals: tokenPrice.decimals,
|
93
|
+
price: tokenPrice.price,
|
94
|
+
amountPerLp: reserveAmount / lpSupply,
|
95
|
+
});
|
96
|
+
}
|
97
|
+
if (totalReserveValue === 0)
|
98
|
+
continue;
|
99
|
+
const price = totalReserveValue / lpSupply;
|
100
|
+
yield cache.setTokenPriceSource({
|
101
|
+
id: constants_1.platformId,
|
102
|
+
weight: 1,
|
103
|
+
address: lpType.substring(0, lpType.length - 1),
|
104
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
105
|
+
platformId: constants_1.platformId,
|
106
|
+
decimals: lpDecimals,
|
107
|
+
price,
|
108
|
+
underlyings,
|
109
|
+
timestamp: Date.now(),
|
110
|
+
});
|
111
|
+
}
|
112
|
+
});
|
113
|
+
function getTokensValuesArray(tokenPairMetadataData) {
|
114
|
+
return [
|
115
|
+
new bignumber_js_1.default(tokenPairMetadataData.asset_0.value),
|
116
|
+
new bignumber_js_1.default(tokenPairMetadataData.asset_1.value),
|
117
|
+
new bignumber_js_1.default(tokenPairMetadataData.asset_2.value),
|
118
|
+
new bignumber_js_1.default(tokenPairMetadataData.asset_3.value),
|
119
|
+
];
|
120
|
+
}
|
121
|
+
const job = {
|
122
|
+
id: `${constants_1.platformId}-lp-tokens`,
|
123
|
+
executor,
|
124
|
+
};
|
125
|
+
exports.default = job;
|
126
|
+
//# sourceMappingURL=lpTokensJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lpTokensJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/lpTokensJob.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,81 @@
|
|
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 constants_1 = require("./constants");
|
14
|
+
const aptos_1 = require("../../utils/aptos");
|
15
|
+
const clients_1 = require("../../utils/clients");
|
16
|
+
const tokenPriceToAssetToken_1 = require("../../utils/misc/tokenPriceToAssetToken");
|
17
|
+
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
18
|
+
const connection = (0, clients_1.getClientAptos)();
|
19
|
+
const stabilityPoolDepositView = yield (0, aptos_1.getView)(connection, (0, constants_1.stabilityDepositPayload)(owner));
|
20
|
+
if (!stabilityPoolDepositView || stabilityPoolDepositView.length === 0)
|
21
|
+
return [];
|
22
|
+
const claimableView = yield (0, aptos_1.getView)(connection, (0, constants_1.stabilityClaimablePayload)(owner));
|
23
|
+
const depositAmountString = stabilityPoolDepositView.at(0);
|
24
|
+
if (!depositAmountString)
|
25
|
+
return [];
|
26
|
+
const depositAmount = +depositAmountString / Math.pow(10, portfolio_core_1.aptosNetwork.native.decimals);
|
27
|
+
if (depositAmount === 0)
|
28
|
+
return [];
|
29
|
+
const depositTokenPrice = yield cache.getTokenPrice(constants_1.modCoin.toString(), portfolio_core_1.NetworkId.aptos);
|
30
|
+
const assets = (0, tokenPriceToAssetToken_1.tokenPriceToAssetToken)(constants_1.modCoin.toString(), depositAmount, portfolio_core_1.NetworkId.aptos, depositTokenPrice);
|
31
|
+
const assetsValue = !depositTokenPrice
|
32
|
+
? null
|
33
|
+
: depositTokenPrice.price * depositAmount;
|
34
|
+
if (!claimableView || claimableView.length === 0)
|
35
|
+
return [];
|
36
|
+
const rewardsAmountString = claimableView.at(0);
|
37
|
+
if (!rewardsAmountString)
|
38
|
+
return [];
|
39
|
+
const rewardsAmount = +rewardsAmountString / Math.pow(10, portfolio_core_1.aptosNetwork.native.decimals);
|
40
|
+
const rewardsTokenPrice = yield cache.getTokenPrice(constants_1.thlCoin.toString(), portfolio_core_1.NetworkId.aptos);
|
41
|
+
const rewardAssets = (0, tokenPriceToAssetToken_1.tokenPriceToAssetToken)(constants_1.thlCoin.toString(), rewardsAmount, portfolio_core_1.NetworkId.aptos, rewardsTokenPrice);
|
42
|
+
const rewardAssetsValue = !rewardsTokenPrice
|
43
|
+
? null
|
44
|
+
: rewardsTokenPrice.price * rewardsAmount;
|
45
|
+
const value = !rewardAssetsValue || !assetsValue ? null : rewardAssetsValue + assetsValue;
|
46
|
+
const yields = [];
|
47
|
+
const apr = yield cache.getItem('apr', { prefix: constants_1.platformId });
|
48
|
+
if (apr) {
|
49
|
+
yields.push({
|
50
|
+
apr,
|
51
|
+
apy: (0, portfolio_core_1.aprToApy)(apr),
|
52
|
+
});
|
53
|
+
}
|
54
|
+
const liquidity = {
|
55
|
+
value,
|
56
|
+
assets: [assets],
|
57
|
+
assetsValue,
|
58
|
+
rewardAssets: [rewardAssets],
|
59
|
+
rewardAssetsValue,
|
60
|
+
yields,
|
61
|
+
};
|
62
|
+
const liquidities = [liquidity];
|
63
|
+
const elementMultiple = {
|
64
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
65
|
+
platformId: 'thala',
|
66
|
+
type: portfolio_core_1.PortfolioElementType.liquidity,
|
67
|
+
label: 'Lending',
|
68
|
+
value,
|
69
|
+
data: {
|
70
|
+
liquidities,
|
71
|
+
},
|
72
|
+
};
|
73
|
+
return [elementMultiple];
|
74
|
+
});
|
75
|
+
const fetcher = {
|
76
|
+
id: `${constants_1.platformId}-stability-pool`,
|
77
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
78
|
+
executor,
|
79
|
+
};
|
80
|
+
exports.default = fetcher;
|
81
|
+
//# sourceMappingURL=stabilityPoolFetcher.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"stabilityPoolFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/stabilityPoolFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,35 @@
|
|
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 axios_1 = __importDefault(require("axios"));
|
16
|
+
const constants_1 = require("./constants");
|
17
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
18
|
+
const marketsInfoRes = yield axios_1.default
|
19
|
+
.get(constants_1.stabilityEndpoint)
|
20
|
+
.catch(() => null);
|
21
|
+
if (marketsInfoRes !== null &&
|
22
|
+
marketsInfoRes.data &&
|
23
|
+
marketsInfoRes.data.data &&
|
24
|
+
marketsInfoRes.data.data.apy &&
|
25
|
+
typeof marketsInfoRes.data.data.apy === 'number')
|
26
|
+
cache.setItem('mod-apr', marketsInfoRes.data.data.apy, {
|
27
|
+
prefix: `${constants_1.platformId}-stabilityPool`,
|
28
|
+
});
|
29
|
+
});
|
30
|
+
const job = {
|
31
|
+
id: `${constants_1.platformId}-staking-apr`,
|
32
|
+
executor,
|
33
|
+
};
|
34
|
+
exports.default = job;
|
35
|
+
//# sourceMappingURL=stakingAprJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"stakingAprJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/stakingAprJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,kDAA6C;AAC7C,2CAA4D;AAG5D,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,cAAc,GAAwC,MAAM,eAAK;SACpE,GAAG,CAAC,6BAAiB,CAAC;SACtB,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,IACE,cAAc,KAAK,IAAI;QACvB,cAAc,CAAC,IAAI;QACnB,cAAc,CAAC,IAAI,CAAC,IAAI;QACxB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QAC5B,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ;QAEhD,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YACrD,MAAM,EAAE,GAAG,sBAAU,gBAAgB;SACtC,CAAC,CAAC;AACP,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,cAAc;IAC/B,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
export type LiquidityInfo = {
|
2
|
+
data: {
|
3
|
+
totalStability: number;
|
4
|
+
emissionPerDay: number;
|
5
|
+
apy: number;
|
6
|
+
};
|
7
|
+
};
|
8
|
+
export type Guid = {
|
9
|
+
id: {
|
10
|
+
addr: string;
|
11
|
+
creation_num: string;
|
12
|
+
};
|
13
|
+
};
|
14
|
+
export type Event = {
|
15
|
+
counter: string;
|
16
|
+
guid: Guid;
|
17
|
+
};
|
18
|
+
export type VaultRessource = {
|
19
|
+
account_address: string;
|
20
|
+
collateral: {
|
21
|
+
value: number;
|
22
|
+
};
|
23
|
+
debt: number;
|
24
|
+
events: {
|
25
|
+
borrow_events: Event[];
|
26
|
+
deposit_events: Event[];
|
27
|
+
liquidation_events: Event[];
|
28
|
+
redemption_events: Event[];
|
29
|
+
repay_events: Event[];
|
30
|
+
withdraw_events: Event[];
|
31
|
+
};
|
32
|
+
interest: string;
|
33
|
+
last_interest_rate_index_ratio: VFloat;
|
34
|
+
};
|
35
|
+
export type VFloat = {
|
36
|
+
v: string;
|
37
|
+
};
|
38
|
+
export type VaultCollateralParamsRessource = {
|
39
|
+
collateral_frozen: boolean;
|
40
|
+
interest_annual_rate_ratio: VFloat;
|
41
|
+
interest_last_update_seconds: string;
|
42
|
+
interest_rate_index_ratio: VFloat;
|
43
|
+
liquidations_frozen: boolean;
|
44
|
+
mcr_penalty_multiplier: number;
|
45
|
+
mcr_ratio: VFloat;
|
46
|
+
mint_cap: string;
|
47
|
+
param_change_event: Event;
|
48
|
+
redemption_fee_ratio: VFloat;
|
49
|
+
redemption_mode_enabled: boolean;
|
50
|
+
};
|
51
|
+
export type LiquidswapLiquidityPoolData = {
|
52
|
+
coin_x_reserve: {
|
53
|
+
value: string;
|
54
|
+
};
|
55
|
+
coin_y_reserve: {
|
56
|
+
value: string;
|
57
|
+
};
|
58
|
+
x_scale: string;
|
59
|
+
y_scale: string;
|
60
|
+
};
|
61
|
+
export type ThalaTokenPairMetadataData = {
|
62
|
+
asset_0: {
|
63
|
+
value: string;
|
64
|
+
};
|
65
|
+
asset_1: {
|
66
|
+
value: string;
|
67
|
+
};
|
68
|
+
asset_2: {
|
69
|
+
value: string;
|
70
|
+
};
|
71
|
+
asset_3: {
|
72
|
+
value: string;
|
73
|
+
};
|
74
|
+
};
|
75
|
+
export declare enum PoolType {
|
76
|
+
WEIGHTED = 0,
|
77
|
+
STABLE = 1
|
78
|
+
}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.PoolType = void 0;
|
4
|
+
var PoolType;
|
5
|
+
(function (PoolType) {
|
6
|
+
PoolType[PoolType["WEIGHTED"] = 0] = "WEIGHTED";
|
7
|
+
PoolType[PoolType["STABLE"] = 1] = "STABLE";
|
8
|
+
})(PoolType || (exports.PoolType = PoolType = {}));
|
9
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/types.ts"],"names":[],"mappings":";;;AAsEA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,+CAAQ,CAAA;IACR,2CAAM,CAAA;AACR,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
|
@@ -0,0 +1,86 @@
|
|
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 constants_1 = require("./constants");
|
14
|
+
const clients_1 = require("../../utils/clients");
|
15
|
+
const aptos_1 = require("../../utils/aptos");
|
16
|
+
const tokenPriceToAssetToken_1 = require("../../utils/misc/tokenPriceToAssetToken");
|
17
|
+
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
18
|
+
const connection = (0, clients_1.getClientAptos)();
|
19
|
+
const resources = yield (0, aptos_1.getAccountResources)(connection, owner);
|
20
|
+
if (!resources)
|
21
|
+
return [];
|
22
|
+
const borrowedAsset = constants_1.modCoin;
|
23
|
+
const borrowedTokenPrice = yield cache.getTokenPrice(borrowedAsset, portfolio_core_1.NetworkId.aptos);
|
24
|
+
if (!borrowedTokenPrice)
|
25
|
+
return [];
|
26
|
+
const elements = [];
|
27
|
+
for (let index = 0; index < resources.length; index++) {
|
28
|
+
const borrowedAssets = [];
|
29
|
+
const borrowedYields = [];
|
30
|
+
const suppliedAssets = [];
|
31
|
+
const suppliedYields = [];
|
32
|
+
const rewardAssets = [];
|
33
|
+
const resource = resources[index];
|
34
|
+
if (!resource.type.startsWith(constants_1.vaultFilter))
|
35
|
+
continue;
|
36
|
+
const vaultData = resource.data;
|
37
|
+
const vaultType = resource.type;
|
38
|
+
const suppliedAsset = (0, aptos_1.getNestedType)(vaultType);
|
39
|
+
const suppliedTokenPrice = yield cache.getTokenPrice(suppliedAsset, portfolio_core_1.NetworkId.aptos);
|
40
|
+
if (!suppliedTokenPrice || !suppliedTokenPrice.decimals)
|
41
|
+
continue;
|
42
|
+
const suppliedAmount = vaultData.collateral.value / Math.pow(10, suppliedTokenPrice.decimals);
|
43
|
+
suppliedAssets.push((0, tokenPriceToAssetToken_1.tokenPriceToAssetToken)(suppliedAsset, suppliedAmount, portfolio_core_1.NetworkId.aptos, suppliedTokenPrice));
|
44
|
+
const borrowedAmount = vaultData.debt / Math.pow(10, borrowedTokenPrice.decimals);
|
45
|
+
borrowedAssets.push((0, tokenPriceToAssetToken_1.tokenPriceToAssetToken)(borrowedAsset, borrowedAmount, portfolio_core_1.NetworkId.aptos, borrowedTokenPrice));
|
46
|
+
const { borrowedValue, collateralRatio, suppliedValue, value } = (0, portfolio_core_1.getElementLendingValues)(suppliedAssets, borrowedAssets, rewardAssets);
|
47
|
+
elements.push({
|
48
|
+
type: portfolio_core_1.PortfolioElementType.borrowlend,
|
49
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
50
|
+
platformId: constants_1.platformId,
|
51
|
+
label: 'Lending',
|
52
|
+
value,
|
53
|
+
data: {
|
54
|
+
borrowedAssets,
|
55
|
+
borrowedValue,
|
56
|
+
borrowedYields,
|
57
|
+
suppliedAssets,
|
58
|
+
suppliedValue,
|
59
|
+
suppliedYields,
|
60
|
+
collateralRatio,
|
61
|
+
rewardAssets,
|
62
|
+
value,
|
63
|
+
},
|
64
|
+
});
|
65
|
+
const borrowedAssetRate = yield cache.getItem(suppliedAsset, {
|
66
|
+
prefix: constants_1.platformId,
|
67
|
+
});
|
68
|
+
if (!borrowedAssetRate && borrowedAssetRate !== 0)
|
69
|
+
continue;
|
70
|
+
const stableBorrowedYields = [
|
71
|
+
{
|
72
|
+
apr: (0, portfolio_core_1.apyToApr)(borrowedAssetRate),
|
73
|
+
apy: borrowedAssetRate,
|
74
|
+
},
|
75
|
+
];
|
76
|
+
borrowedYields.push(stableBorrowedYields);
|
77
|
+
}
|
78
|
+
return elements;
|
79
|
+
});
|
80
|
+
const fetcher = {
|
81
|
+
id: `${constants_1.platformId}-vaults`,
|
82
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
83
|
+
executor,
|
84
|
+
};
|
85
|
+
exports.default = fetcher;
|
86
|
+
//# sourceMappingURL=vaultsFetcher.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"vaultsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/vaultsFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,39 @@
|
|
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 constants_1 = require("./constants");
|
13
|
+
const clients_1 = require("../../utils/clients");
|
14
|
+
const helpers_1 = require("./helpers");
|
15
|
+
const aptos_1 = require("../../utils/aptos");
|
16
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
17
|
+
const connection = (0, clients_1.getClientAptos)();
|
18
|
+
const vaultsRate = yield (0, aptos_1.getAccountResources)(connection, constants_1.programAdressThala);
|
19
|
+
if (!vaultsRate)
|
20
|
+
return;
|
21
|
+
vaultsRate.forEach((resource) => {
|
22
|
+
if (!resource.type.startsWith(constants_1.vaultCollateralParamsFilter))
|
23
|
+
return;
|
24
|
+
if (!resource.data)
|
25
|
+
return;
|
26
|
+
const vaultData = resource.data;
|
27
|
+
if (!vaultData)
|
28
|
+
return;
|
29
|
+
cache.setItem((0, aptos_1.getNestedType)(resource.type), (0, helpers_1.fp64ToFloat)(BigInt(vaultData.interest_annual_rate_ratio.v)), {
|
30
|
+
prefix: `${constants_1.platformId}-vaultsRates`,
|
31
|
+
});
|
32
|
+
});
|
33
|
+
});
|
34
|
+
const job = {
|
35
|
+
id: `${constants_1.platformId}-vaults-rates`,
|
36
|
+
executor,
|
37
|
+
};
|
38
|
+
exports.default = job;
|
39
|
+
//# sourceMappingURL=vaultsRatesJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"vaultsRatesJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/thala/vaultsRatesJob.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,2CAIqB;AACrB,iDAAqD;AAErD,uCAAwC;AACxC,6CAAuE;AAEvE,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,UAAU,GAAG,IAAA,wBAAc,GAAE,CAAC;IACpC,MAAM,UAAU,GAAG,MAAM,IAAA,2BAAmB,EAAC,UAAU,EAAE,8BAAkB,CAAC,CAAC;IAC7E,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,uCAA2B,CAAC;YAAE,OAAO;QACnE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAAE,OAAO;QAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAsC,CAAC;QAClE,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,KAAK,CAAC,OAAO,CACX,IAAA,qBAAa,EAAC,QAAQ,CAAC,IAAI,CAAC,EAC5B,IAAA,qBAAW,EAAC,MAAM,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,EAC3D;YACE,MAAM,EAAE,GAAG,sBAAU,cAAc;SACpC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,eAAe;IAChC,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
|
@@ -1,4 +1,5 @@
|
|
1
1
|
export declare const nIdsToFetch = 50;
|
2
|
+
export declare const platformId: string;
|
2
3
|
export declare const coingeckoCoinsListUrl = "https://api.coingecko.com/api/v3/coins/list";
|
3
4
|
export declare const coingeckoCoinsMarketsUrl = "https://api.coingecko.com/api/v3/coins/markets";
|
4
5
|
export declare const coingeckoCoinsPriceUrl = "https://api.coingecko.com/api/v3/simple/price";
|
@@ -1,7 +1,9 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.coingeckoCoinsPriceUrl = exports.coingeckoCoinsMarketsUrl = exports.coingeckoCoinsListUrl = exports.nIdsToFetch = void 0;
|
3
|
+
exports.coingeckoCoinsPriceUrl = exports.coingeckoCoinsMarketsUrl = exports.coingeckoCoinsListUrl = exports.platformId = exports.nIdsToFetch = void 0;
|
4
|
+
const platforms_1 = require("../../platforms");
|
4
5
|
exports.nIdsToFetch = 50;
|
6
|
+
exports.platformId = platforms_1.walletTokensPlatform.id;
|
5
7
|
// Coingecko URLs
|
6
8
|
exports.coingeckoCoinsListUrl = 'https://api.coingecko.com/api/v3/coins/list';
|
7
9
|
exports.coingeckoCoinsMarketsUrl = 'https://api.coingecko.com/api/v3/coins/markets';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wallet-tokens/constants.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wallet-tokens/constants.ts"],"names":[],"mappings":";;;AAAA,+CAAuD;AAE1C,QAAA,WAAW,GAAG,EAAE,CAAC;AAEjB,QAAA,UAAU,GAAG,gCAAoB,CAAC,EAAE,CAAC;AAClD,iBAAiB;AACJ,QAAA,qBAAqB,GAChC,6CAA6C,CAAC;AACnC,QAAA,wBAAwB,GACnC,gDAAgD,CAAC;AACtC,QAAA,sBAAsB,GACjC,+CAA+C,CAAC"}
|
@@ -0,0 +1,81 @@
|
|
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 aptos_1 = require("../../../utils/aptos");
|
20
|
+
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
21
|
+
var _a;
|
22
|
+
const client = (0, clients_1.getClientAptos)();
|
23
|
+
const resources = yield (0, aptos_1.getAccountResources)(client, owner);
|
24
|
+
if (!resources)
|
25
|
+
return [];
|
26
|
+
const assets = [];
|
27
|
+
for (let i = 0; i < resources.length; i++) {
|
28
|
+
const resource = resources[i];
|
29
|
+
const resourceType = resource.type;
|
30
|
+
if (!(0, aptos_1.isCoinStoreRessourceType)(resourceType))
|
31
|
+
continue;
|
32
|
+
const parseCoinType = (0, aptos_1.parseTypeString)(resource.type);
|
33
|
+
if (parseCoinType.root !== aptos_1.coinStore)
|
34
|
+
continue;
|
35
|
+
if (!parseCoinType.keys)
|
36
|
+
continue;
|
37
|
+
const coinType = (_a = parseCoinType.keys.at(0)) === null || _a === void 0 ? void 0 : _a.type;
|
38
|
+
if (coinType === undefined)
|
39
|
+
continue;
|
40
|
+
const tokenPrice = yield cache.getTokenPrice(coinType, portfolio_core_1.NetworkId.aptos);
|
41
|
+
if (!tokenPrice)
|
42
|
+
continue;
|
43
|
+
if (tokenPrice.platformId !== constants_1.platformId)
|
44
|
+
continue;
|
45
|
+
const coinStoreData = resource.data;
|
46
|
+
const amount = new bignumber_js_1.default(coinStoreData.coin.value)
|
47
|
+
.div(Math.pow(10, tokenPrice.decimals))
|
48
|
+
.toNumber();
|
49
|
+
if (amount === 0)
|
50
|
+
continue;
|
51
|
+
const price = (tokenPrice === null || tokenPrice === void 0 ? void 0 : tokenPrice.price) || null;
|
52
|
+
const value = price ? amount * price : null;
|
53
|
+
const asset = {
|
54
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
55
|
+
type: portfolio_core_1.PortfolioAssetType.token,
|
56
|
+
value,
|
57
|
+
data: { address: coinType, price, amount },
|
58
|
+
};
|
59
|
+
assets.push(asset);
|
60
|
+
}
|
61
|
+
if (assets.length === 0)
|
62
|
+
return [];
|
63
|
+
const element = {
|
64
|
+
type: portfolio_core_1.PortfolioElementType.multiple,
|
65
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
66
|
+
platformId: constants_1.platformId,
|
67
|
+
label: 'Wallet',
|
68
|
+
value: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
|
69
|
+
data: {
|
70
|
+
assets,
|
71
|
+
},
|
72
|
+
};
|
73
|
+
return [element];
|
74
|
+
});
|
75
|
+
const fetcher = {
|
76
|
+
id: `${constants_1.platformId}-aptos`,
|
77
|
+
networkId: portfolio_core_1.NetworkId.aptos,
|
78
|
+
executor,
|
79
|
+
};
|
80
|
+
exports.default = fetcher;
|
81
|
+
//# sourceMappingURL=aptos.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"aptos.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/wallet-tokens/fetchers/aptos.ts"],"names":[],"mappings":"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"}
|
@@ -37,7 +37,7 @@ function getCoingeckoSources(networkId, tokensData) {
|
|
37
37
|
const source = {
|
38
38
|
address: td.address,
|
39
39
|
networkId,
|
40
|
-
|
40
|
+
platformId: td.platformId,
|
41
41
|
decimals: td.decimals,
|
42
42
|
price,
|
43
43
|
timestamp: Date.now(),
|
@@ -93,7 +93,7 @@ function getTokensData(tokenList) {
|
|
93
93
|
address: ti.address,
|
94
94
|
coingeckoId,
|
95
95
|
decimals: ti.decimals,
|
96
|
-
|
96
|
+
platformId: constants_1.platformId,
|
97
97
|
};
|
98
98
|
cTokensData.push(tokenData);
|
99
99
|
return cTokensData;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wallet-tokens/helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA6C;AAM7C,
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wallet-tokens/helpers.ts"],"names":[],"mappings":"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"}
|
@@ -3,11 +3,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.jobs = void 0;
|
6
|
+
exports.fetchers = exports.jobs = void 0;
|
7
7
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
8
8
|
const platforms_1 = require("../../platforms");
|
9
9
|
const jobExecutorGenerator_1 = __importDefault(require("./jobExecutorGenerator"));
|
10
|
+
const aptos_1 = __importDefault(require("./fetchers/aptos"));
|
10
11
|
exports.jobs = [
|
12
|
+
{
|
13
|
+
id: `${platforms_1.walletTokensPlatform.id}-${portfolio_core_1.NetworkId.aptos}`,
|
14
|
+
executor: (0, jobExecutorGenerator_1.default)(portfolio_core_1.NetworkId.aptos),
|
15
|
+
},
|
11
16
|
{
|
12
17
|
id: `${platforms_1.walletTokensPlatform.id}-${portfolio_core_1.NetworkId.solana}`,
|
13
18
|
executor: (0, jobExecutorGenerator_1.default)(portfolio_core_1.NetworkId.solana),
|
@@ -20,13 +25,10 @@ exports.jobs = [
|
|
20
25
|
id: `${platforms_1.walletTokensPlatform.id}-${portfolio_core_1.NetworkId.avalanche}`,
|
21
26
|
executor: (0, jobExecutorGenerator_1.default)(portfolio_core_1.NetworkId.avalanche),
|
22
27
|
},
|
23
|
-
{
|
24
|
-
id: `${platforms_1.walletTokensPlatform.id}-${portfolio_core_1.NetworkId.aptos}`,
|
25
|
-
executor: (0, jobExecutorGenerator_1.default)(portfolio_core_1.NetworkId.aptos),
|
26
|
-
},
|
27
28
|
{
|
28
29
|
id: `${platforms_1.walletTokensPlatform.id}-${portfolio_core_1.NetworkId.sui}`,
|
29
30
|
executor: (0, jobExecutorGenerator_1.default)(portfolio_core_1.NetworkId.sui),
|
30
31
|
},
|
31
32
|
];
|
33
|
+
exports.fetchers = [aptos_1.default];
|
32
34
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wallet-tokens/index.ts"],"names":[],"mappings":";;;;;;AAAA,+
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/wallet-tokens/index.ts"],"names":[],"mappings":";;;;;;AAAA,+DAAqE;AACrE,+CAAuD;AACvD,kFAA0D;AAC1D,6DAA4C;AAE/B,QAAA,IAAI,GAAU;IACzB;QACE,EAAE,EAAE,GAAG,gCAAoB,CAAC,EAAE,IAAI,0BAAS,CAAC,KAAK,EAAE;QACnD,QAAQ,EAAE,IAAA,8BAAoB,EAAC,0BAAS,CAAC,KAAK,CAAC;KAChD;IACD;QACE,EAAE,EAAE,GAAG,gCAAoB,CAAC,EAAE,IAAI,0BAAS,CAAC,MAAM,EAAE;QACpD,QAAQ,EAAE,IAAA,8BAAoB,EAAC,0BAAS,CAAC,MAAM,CAAC;KACjD;IACD;QACE,EAAE,EAAE,GAAG,gCAAoB,CAAC,EAAE,IAAI,0BAAS,CAAC,QAAQ,EAAE;QACtD,QAAQ,EAAE,IAAA,8BAAoB,EAAC,0BAAS,CAAC,QAAQ,CAAC;KACnD;IACD;QACE,EAAE,EAAE,GAAG,gCAAoB,CAAC,EAAE,IAAI,0BAAS,CAAC,SAAS,EAAE;QACvD,QAAQ,EAAE,IAAA,8BAAoB,EAAC,0BAAS,CAAC,SAAS,CAAC;KACpD;IACD;QACE,EAAE,EAAE,GAAG,gCAAoB,CAAC,EAAE,IAAI,0BAAS,CAAC,GAAG,EAAE;QACjD,QAAQ,EAAE,IAAA,8BAAoB,EAAC,0BAAS,CAAC,GAAG,CAAC;KAC9C;CACF,CAAC;AAEW,QAAA,QAAQ,GAAc,CAAC,eAAY,CAAC,CAAC"}
|
@@ -38,15 +38,20 @@ function splitKeysString(keysString) {
|
|
38
38
|
if (depth === 0 && char === ',' && nextChar === ' ')
|
39
39
|
indexes.push(i);
|
40
40
|
}
|
41
|
+
if (indexes.length === 0)
|
42
|
+
return [keysString];
|
41
43
|
const typeStrings = [];
|
42
|
-
let cKeysString =
|
44
|
+
let cKeysString = keysString;
|
45
|
+
let sum = 0;
|
43
46
|
for (let i = 0; i < indexes.length; i++) {
|
44
|
-
|
47
|
+
let index = indexes[i];
|
48
|
+
index -= sum;
|
45
49
|
typeStrings.push(cKeysString.slice(0, index));
|
46
50
|
cKeysString = cKeysString.slice(index + 2);
|
47
51
|
if (i === indexes.length - 1) {
|
48
52
|
typeStrings.push(cKeysString);
|
49
53
|
}
|
54
|
+
sum += index + 2;
|
50
55
|
}
|
51
56
|
return typeStrings;
|
52
57
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"parseTypeString.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/aptos/parseTypeString.ts"],"names":[],"mappings":";;;AAEA,SAAS,eAAe,CAAC,UAAkB;IAIzC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,OAAO;QACL,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO;QACL,OAAO;QACP,MAAM;QACN,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,OAAO,GAAG,EAAE,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;QAC7B,IAAI,IAAI,KAAK,GAAG;YAAE,KAAK,IAAI,CAAC,CAAC;QAC7B,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,QAAQ,KAAK,GAAG;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACtE;IACD,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,IAAI,WAAW,GAAG,GAAG,
|
1
|
+
{"version":3,"file":"parseTypeString.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/aptos/parseTypeString.ts"],"names":[],"mappings":"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"}
|