@augustdigital/sdk 4.1.0-alpha → 4.1.0
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/README.md +189 -11
- package/lib/abis/Multicall3.js.map +1 -1
- package/lib/abis/PoolAdapter.d.ts +36 -76
- package/lib/abis/PoolAdapter.js +18 -379
- package/lib/abis/PoolAdapter.js.map +1 -1
- package/lib/abis/WrapperAdapter.d.ts +71 -60
- package/lib/abis/WrapperAdapter.js +41 -114
- package/lib/abis/WrapperAdapter.js.map +1 -1
- package/lib/abis/index.d.ts +3 -0
- package/lib/abis/index.js +3 -0
- package/lib/abis/index.js.map +1 -1
- package/lib/adapters/evm/getters.d.ts +1 -1
- package/lib/adapters/evm/getters.js +26 -37
- package/lib/adapters/evm/getters.js.map +1 -1
- package/lib/adapters/evm/index.d.ts +8 -6
- package/lib/adapters/evm/index.js +27 -21
- package/lib/adapters/evm/index.js.map +1 -1
- package/lib/adapters/evm/utils.d.ts +2 -28
- package/lib/adapters/evm/utils.js +29 -322
- package/lib/adapters/evm/utils.js.map +1 -1
- package/lib/adapters/solana/getters.js +35 -28
- package/lib/adapters/solana/getters.js.map +1 -1
- package/lib/adapters/solana/index.d.ts +27 -2
- package/lib/adapters/solana/utils.d.ts +15 -2
- package/lib/adapters/solana/utils.js +96 -21
- package/lib/adapters/solana/utils.js.map +1 -1
- package/lib/adapters/solana/vault.actions.js +11 -2
- package/lib/adapters/solana/vault.actions.js.map +1 -1
- package/lib/adapters/sui/constants.d.ts +13 -0
- package/lib/adapters/sui/constants.js +17 -0
- package/lib/adapters/sui/constants.js.map +1 -0
- package/lib/adapters/sui/getters.d.ts +3 -0
- package/lib/adapters/sui/getters.js +53 -0
- package/lib/adapters/sui/getters.js.map +1 -0
- package/lib/adapters/sui/index.d.ts +30 -0
- package/lib/adapters/sui/index.js +83 -0
- package/lib/adapters/sui/index.js.map +1 -1
- package/lib/adapters/sui/transformer.d.ts +4 -0
- package/lib/adapters/sui/transformer.js +87 -0
- package/lib/adapters/sui/transformer.js.map +1 -0
- package/lib/adapters/sui/types.d.ts +62 -0
- package/lib/{services/solana → adapters/sui}/types.js.map +1 -1
- package/lib/adapters/sui/utils.d.ts +4 -0
- package/lib/adapters/sui/utils.js +27 -0
- package/lib/adapters/sui/utils.js.map +1 -0
- package/lib/core/auth/verify.js +2 -2
- package/lib/core/auth/verify.js.map +1 -1
- package/lib/core/base.class.d.ts +1 -2
- package/lib/core/base.class.js +11 -6
- package/lib/core/base.class.js.map +1 -1
- package/lib/core/constants.adapters.d.ts +89 -0
- package/lib/core/constants.adapters.js +160 -0
- package/lib/core/constants.adapters.js.map +1 -0
- package/lib/{utils/constants/august.d.ts → core/constants.core.d.ts} +10 -1
- package/lib/{utils/constants/august.js → core/constants.core.js} +11 -2
- package/lib/core/constants.core.js.map +1 -0
- package/lib/core/constants.vaults.d.ts +19 -0
- package/lib/{utils/vaults.js → core/constants.vaults.js} +56 -75
- package/lib/core/constants.vaults.js.map +1 -0
- package/lib/{utils/constants/web3.d.ts → core/constants.web3.d.ts} +4 -6
- package/lib/{utils/constants/web3.js → core/constants.web3.js} +21 -27
- package/lib/core/constants.web3.js.map +1 -0
- package/lib/core/fetcher.d.ts +1 -1
- package/lib/core/fetcher.js +177 -64
- package/lib/core/fetcher.js.map +1 -1
- package/lib/core/helpers.adapters.d.ts +4 -0
- package/lib/core/helpers.adapters.js +28 -0
- package/lib/core/helpers.adapters.js.map +1 -0
- package/lib/core/helpers.core.d.ts +1 -1
- package/lib/core/helpers.core.js +6 -6
- package/lib/core/helpers.core.js.map +1 -1
- package/lib/core/helpers.signer.d.ts +5 -0
- package/lib/core/helpers.signer.js +54 -0
- package/lib/core/helpers.signer.js.map +1 -0
- package/lib/core/helpers.vaults.d.ts +15 -0
- package/lib/core/helpers.vaults.js +123 -0
- package/lib/core/helpers.vaults.js.map +1 -0
- package/lib/core/helpers.web3.d.ts +5 -2
- package/lib/core/helpers.web3.js +84 -26
- package/lib/core/helpers.web3.js.map +1 -1
- package/lib/core/index.d.ts +9 -5
- package/lib/core/index.js +9 -5
- package/lib/core/index.js.map +1 -1
- package/lib/core/logger/index.d.ts +9 -0
- package/lib/core/logger/index.js +29 -0
- package/lib/core/logger/index.js.map +1 -1
- package/lib/core/logger/slack.js +3 -3
- package/lib/index.d.ts +6 -6
- package/lib/index.js +14 -7
- package/lib/index.js.map +1 -1
- package/lib/main.d.ts +90 -14
- package/lib/main.js +56 -17
- package/lib/main.js.map +1 -1
- package/lib/modules/vaults/adapter.helpers.d.ts +46 -0
- package/lib/modules/vaults/adapter.helpers.js +149 -0
- package/lib/modules/vaults/adapter.helpers.js.map +1 -0
- package/lib/{vaults/utils.d.ts → modules/vaults/fetcher.d.ts} +0 -20
- package/lib/{vaults/utils.js → modules/vaults/fetcher.js} +19 -176
- package/lib/modules/vaults/fetcher.js.map +1 -0
- package/lib/modules/vaults/getters.d.ts +32 -3
- package/lib/modules/vaults/getters.js +367 -71
- package/lib/modules/vaults/getters.js.map +1 -1
- package/lib/modules/vaults/index.d.ts +2 -83
- package/lib/modules/vaults/index.js +2 -480
- package/lib/modules/vaults/index.js.map +1 -1
- package/lib/modules/vaults/main.d.ts +29 -47
- package/lib/modules/vaults/main.js +142 -201
- package/lib/modules/vaults/main.js.map +1 -1
- package/lib/modules/vaults/read.actions.d.ts +3 -0
- package/lib/{adapters/evm → modules/vaults}/read.actions.js +12 -12
- package/lib/modules/vaults/read.actions.js.map +1 -0
- package/lib/modules/vaults/utils.d.ts +2 -106
- package/lib/modules/vaults/utils.js +139 -337
- package/lib/modules/vaults/utils.js.map +1 -1
- package/lib/modules/vaults/{vault.actions.d.ts → write.actions.d.ts} +11 -1
- package/lib/modules/vaults/write.actions.js +301 -0
- package/lib/modules/vaults/write.actions.js.map +1 -0
- package/lib/services/debank/utils.js +4 -4
- package/lib/services/subgraph/fetcher.js +3 -2
- package/lib/services/subgraph/fetcher.js.map +1 -1
- package/lib/services/subgraph/vaults.js +25 -27
- package/lib/services/subgraph/vaults.js.map +1 -1
- package/lib/types/pools.d.ts +1 -1
- package/lib/types/vaults.d.ts +21 -1
- package/lib/types/webserver.d.ts +15 -1
- package/package.json +24 -10
- package/lib/adapters/evm/core.actions.d.ts +0 -9
- package/lib/adapters/evm/core.actions.js +0 -51
- package/lib/adapters/evm/core.actions.js.map +0 -1
- package/lib/adapters/evm/read.actions.d.ts +0 -3
- package/lib/adapters/evm/read.actions.js.map +0 -1
- package/lib/adapters/evm/vaults.actions.d.ts +0 -10
- package/lib/adapters/evm/vaults.actions.js +0 -97
- package/lib/adapters/evm/vaults.actions.js.map +0 -1
- package/lib/adapters/solana/actions.d.ts +0 -20
- package/lib/adapters/solana/actions.js +0 -225
- package/lib/adapters/solana/actions.js.map +0 -1
- package/lib/adapters/solana/class.d.ts +0 -45
- package/lib/adapters/solana/class.js +0 -135
- package/lib/adapters/solana/class.js.map +0 -1
- package/lib/adapters/solana/vault-idl.d.ts +0 -338
- package/lib/adapters/solana/vault-idl.js +0 -1075
- package/lib/adapters/solana/vault-idl.js.map +0 -1
- package/lib/core/base-class.d.ts +0 -34
- package/lib/core/base-class.js +0 -55
- package/lib/core/base-class.js.map +0 -1
- package/lib/core/constants.d.ts +0 -86
- package/lib/core/constants.js +0 -146
- package/lib/core/constants.js.map +0 -1
- package/lib/core/core.helpers.d.ts +0 -23
- package/lib/core/core.helpers.js +0 -210
- package/lib/core/core.helpers.js.map +0 -1
- package/lib/core/helpers.d.ts +0 -23
- package/lib/core/helpers.js +0 -210
- package/lib/core/helpers.js.map +0 -1
- package/lib/core/read.actions.d.ts +0 -3
- package/lib/core/read.actions.js +0 -39
- package/lib/core/read.actions.js.map +0 -1
- package/lib/core/web3.helpers.d.ts +0 -28
- package/lib/core/web3.helpers.js +0 -336
- package/lib/core/web3.helpers.js.map +0 -1
- package/lib/core/write.actions.d.ts +0 -9
- package/lib/core/write.actions.js +0 -51
- package/lib/core/write.actions.js.map +0 -1
- package/lib/modules/vaults/admin-actions.d.ts +0 -0
- package/lib/modules/vaults/admin-actions.js +0 -1
- package/lib/modules/vaults/admin-actions.js.map +0 -1
- package/lib/modules/vaults/constants.d.ts +0 -63
- package/lib/modules/vaults/constants.js +0 -190
- package/lib/modules/vaults/constants.js.map +0 -1
- package/lib/modules/vaults/user-actions.d.ts +0 -19
- package/lib/modules/vaults/user-actions.js +0 -172
- package/lib/modules/vaults/user-actions.js.map +0 -1
- package/lib/modules/vaults/user.actions.d.ts +0 -10
- package/lib/modules/vaults/user.actions.js +0 -95
- package/lib/modules/vaults/user.actions.js.map +0 -1
- package/lib/modules/vaults/vault.actions.js +0 -95
- package/lib/modules/vaults/vault.actions.js.map +0 -1
- package/lib/services/auth/index.d.ts +0 -1
- package/lib/services/auth/index.js +0 -18
- package/lib/services/auth/index.js.map +0 -1
- package/lib/services/auth/verify.d.ts +0 -2
- package/lib/services/auth/verify.js +0 -20
- package/lib/services/auth/verify.js.map +0 -1
- package/lib/services/index.d.ts +0 -4
- package/lib/services/index.js +0 -21
- package/lib/services/index.js.map +0 -1
- package/lib/services/logger/index.d.ts +0 -12
- package/lib/services/logger/index.js +0 -51
- package/lib/services/logger/index.js.map +0 -1
- package/lib/services/logger/slack.d.ts +0 -12
- package/lib/services/logger/slack.js +0 -48
- package/lib/services/logger/slack.js.map +0 -1
- package/lib/services/solana/actions.d.ts +0 -20
- package/lib/services/solana/actions.js +0 -225
- package/lib/services/solana/actions.js.map +0 -1
- package/lib/services/solana/class.d.ts +0 -45
- package/lib/services/solana/class.js +0 -135
- package/lib/services/solana/class.js.map +0 -1
- package/lib/services/solana/constants.d.ts +0 -25
- package/lib/services/solana/constants.js +0 -32
- package/lib/services/solana/constants.js.map +0 -1
- package/lib/services/solana/index.d.ts +0 -84
- package/lib/services/solana/index.js +0 -50
- package/lib/services/solana/index.js.map +0 -1
- package/lib/services/solana/types.d.ts +0 -58
- package/lib/services/solana/utils.d.ts +0 -96
- package/lib/services/solana/utils.js +0 -355
- package/lib/services/solana/utils.js.map +0 -1
- package/lib/services/solana/vault-idl.d.ts +0 -338
- package/lib/services/solana/vault-idl.js +0 -1075
- package/lib/services/solana/vault-idl.js.map +0 -1
- package/lib/utils/base-class.d.ts +0 -34
- package/lib/utils/base-class.js +0 -55
- package/lib/utils/base-class.js.map +0 -1
- package/lib/utils/constants/august.js.map +0 -1
- package/lib/utils/constants/fallbacks.d.ts +0 -3
- package/lib/utils/constants/fallbacks.js +0 -26
- package/lib/utils/constants/fallbacks.js.map +0 -1
- package/lib/utils/constants/index.d.ts +0 -3
- package/lib/utils/constants/index.js +0 -20
- package/lib/utils/constants/index.js.map +0 -1
- package/lib/utils/constants/web3.js.map +0 -1
- package/lib/utils/fetcher.d.ts +0 -25
- package/lib/utils/fetcher.js +0 -334
- package/lib/utils/fetcher.js.map +0 -1
- package/lib/utils/helpers/array.d.ts +0 -6
- package/lib/utils/helpers/array.js +0 -40
- package/lib/utils/helpers/array.js.map +0 -1
- package/lib/utils/helpers/datetime.d.ts +0 -5
- package/lib/utils/helpers/datetime.js +0 -32
- package/lib/utils/helpers/datetime.js.map +0 -1
- package/lib/utils/helpers/formatters.d.ts +0 -8
- package/lib/utils/helpers/formatters.js +0 -113
- package/lib/utils/helpers/formatters.js.map +0 -1
- package/lib/utils/helpers/index.d.ts +0 -6
- package/lib/utils/helpers/index.js +0 -23
- package/lib/utils/helpers/index.js.map +0 -1
- package/lib/utils/helpers/responses.d.ts +0 -32
- package/lib/utils/helpers/responses.js +0 -229
- package/lib/utils/helpers/responses.js.map +0 -1
- package/lib/utils/helpers/verify-keys.d.ts +0 -2
- package/lib/utils/helpers/verify-keys.js +0 -21
- package/lib/utils/helpers/verify-keys.js.map +0 -1
- package/lib/utils/helpers/web3.d.ts +0 -27
- package/lib/utils/helpers/web3.js +0 -339
- package/lib/utils/helpers/web3.js.map +0 -1
- package/lib/utils/index.d.ts +0 -5
- package/lib/utils/index.js +0 -22
- package/lib/utils/index.js.map +0 -1
- package/lib/utils/vaults.d.ts +0 -53
- package/lib/utils/vaults.js.map +0 -1
- package/lib/vaults/admin-actions.d.ts +0 -0
- package/lib/vaults/admin-actions.js +0 -1
- package/lib/vaults/admin-actions.js.map +0 -1
- package/lib/vaults/getters.d.ts +0 -38
- package/lib/vaults/getters.js +0 -760
- package/lib/vaults/getters.js.map +0 -1
- package/lib/vaults/index.d.ts +0 -4
- package/lib/vaults/index.js +0 -21
- package/lib/vaults/index.js.map +0 -1
- package/lib/vaults/main.d.ts +0 -118
- package/lib/vaults/main.js +0 -591
- package/lib/vaults/main.js.map +0 -1
- package/lib/vaults/rpc-config.d.ts +0 -4
- package/lib/vaults/rpc-config.js +0 -27
- package/lib/vaults/rpc-config.js.map +0 -1
- package/lib/vaults/subgraph.d.ts +0 -10
- package/lib/vaults/subgraph.js +0 -470
- package/lib/vaults/subgraph.js.map +0 -1
- package/lib/vaults/user-actions.d.ts +0 -19
- package/lib/vaults/user-actions.js +0 -172
- package/lib/vaults/user-actions.js.map +0 -1
- package/lib/vaults/utils.js.map +0 -1
- package/lib/verify.d.ts +0 -2
- package/lib/verify.js +0 -20
- package/lib/verify.js.map +0 -1
- /package/lib/{services/solana → adapters/sui}/types.js +0 -0
|
@@ -1,28 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
2
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
20
|
exports.AugustVaults = void 0;
|
|
4
|
-
|
|
21
|
+
__exportStar(require("./getters"), exports);
|
|
22
|
+
const fetcher_1 = require("./fetcher");
|
|
5
23
|
const ethers_1 = require("ethers");
|
|
6
24
|
const getters_1 = require("./getters");
|
|
7
25
|
const vaults_1 = require("../../services/subgraph/vaults");
|
|
8
26
|
const core_1 = require("../../core");
|
|
9
27
|
const solana_1 = require("../../adapters/solana");
|
|
10
|
-
const
|
|
28
|
+
const sui_1 = __importDefault(require("../../adapters/sui"));
|
|
11
29
|
class AugustVaults extends core_1.AugustBase {
|
|
12
|
-
constructor(baseConfig, solana) {
|
|
30
|
+
constructor(baseConfig, solana, sui) {
|
|
13
31
|
super(baseConfig);
|
|
32
|
+
this.headers = null;
|
|
14
33
|
this.solanaService = solana;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined, {
|
|
34
|
+
this.suiService = sui || new sui_1.default();
|
|
35
|
+
this.headers = {
|
|
18
36
|
'x-environment': this.monitoring?.['x-environment'],
|
|
19
37
|
'x-user-id': this.monitoring?.['x-user-id'],
|
|
20
|
-
}
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
async getVaults(options) {
|
|
41
|
+
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined, this.headers);
|
|
21
42
|
const vaultsPerAvailableProviders = allVaults.filter((v) => !!this.providers?.[v?.chain] ? true : false);
|
|
22
43
|
const vaultsPerChainId = options?.chainIds
|
|
23
44
|
? vaultsPerAvailableProviders.filter((v) => options.chainIds.includes(v.chain))
|
|
24
45
|
: vaultsPerAvailableProviders;
|
|
25
|
-
const
|
|
46
|
+
const emberVaults = await this.suiService.getEmberVaults({
|
|
47
|
+
status: 'active',
|
|
48
|
+
});
|
|
49
|
+
const activeEmberVaults = Array.isArray(emberVaults)
|
|
50
|
+
? emberVaults.filter((v) => v?.status === 'active')
|
|
51
|
+
: [];
|
|
52
|
+
const transformedVaults = this.suiService.transformEmberVaultsToIVaults(activeEmberVaults);
|
|
53
|
+
const vaultFetchResult = await (0, fetcher_1.fetchVaultsComprehensive)(vaultsPerChainId, async (vault) => {
|
|
26
54
|
const rpcUrl = vault.fallbackRpc || this.providers?.[vault.chain];
|
|
27
55
|
const shouldFetchLoans = !vault.minimal &&
|
|
28
56
|
(typeof options?.loans !== 'undefined' ? options?.loans : true);
|
|
@@ -33,7 +61,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
33
61
|
const isSolana = solana_1.Solana.utils.isSolanaAddress(vault.address)
|
|
34
62
|
? true
|
|
35
63
|
: false;
|
|
36
|
-
const v = (0, getters_1.getVault)({
|
|
64
|
+
const v = await (0, getters_1.getVault)({
|
|
37
65
|
vault: vault.address,
|
|
38
66
|
loans: isSolana ? false : shouldFetchLoans,
|
|
39
67
|
allocations: isSolana ? false : shouldFetchAllocations,
|
|
@@ -63,13 +91,12 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
63
91
|
137: (0, core_1.getFallbackRpcUrls)(137),
|
|
64
92
|
},
|
|
65
93
|
});
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
console.log(`- Success rate: ${vaultFetchResult.successRate.toFixed(2)}%`);
|
|
94
|
+
core_1.Logger.log.info('getVaults', `Total: ${vaultFetchResult.coverageReport.totalVaults}, ` +
|
|
95
|
+
`Success: ${vaultFetchResult.coverageReport.successfulVaults}, ` +
|
|
96
|
+
`Failed: ${vaultFetchResult.coverageReport.failedVaults}, ` +
|
|
97
|
+
`Rate: ${vaultFetchResult.successRate.toFixed(2)}%`);
|
|
71
98
|
if (vaultFetchResult.coverageReport.failedVaults > 0) {
|
|
72
|
-
|
|
99
|
+
core_1.Logger.log.warn('getVaults:failed', vaultFetchResult.failed.map((f) => ({
|
|
73
100
|
address: f.address,
|
|
74
101
|
chain: f.chain,
|
|
75
102
|
error: f.error.message,
|
|
@@ -79,20 +106,15 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
79
106
|
const vaultResponses = vaultFetchResult.successful
|
|
80
107
|
.sort((a, b) => a.index - b.index)
|
|
81
108
|
.map((item) => item.data);
|
|
82
|
-
const filteredResults = (0,
|
|
109
|
+
const filteredResults = (0, fetcher_1.filterVaultsIntelligently)(vaultResponses, {
|
|
83
110
|
includeClosed: true,
|
|
84
111
|
includeInvisible: true,
|
|
85
112
|
minStatus: ['active', 'closed'],
|
|
86
113
|
});
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
console.log(`- Invisible vaults: ${filteredResults.summary.invisible}`);
|
|
92
|
-
console.log(`- Filtered out: ${filteredResults.summary.failed}`);
|
|
93
|
-
console.log(`- Overall success rate: ${filteredResults.summary.successRate.toFixed(2)}%`);
|
|
94
|
-
}
|
|
95
|
-
const filteredResponses = filteredResults.active;
|
|
114
|
+
const filteredResponses = [
|
|
115
|
+
...filteredResults.active,
|
|
116
|
+
...filteredResults.invisible,
|
|
117
|
+
];
|
|
96
118
|
if ((options.wallet && (0, ethers_1.isAddress)(options.wallet)) ||
|
|
97
119
|
(options.solanaWallet &&
|
|
98
120
|
solana_1.Solana.utils.isSolanaAddress(options.solanaWallet))) {
|
|
@@ -116,16 +138,19 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
116
138
|
position: positions?.find((pos) => pos.vault?.toLowerCase() === r.address?.toLowerCase()) || null,
|
|
117
139
|
}));
|
|
118
140
|
}
|
|
119
|
-
if (!!options.wallet && !(0, ethers_1.isAddress)(options.wallet))
|
|
120
|
-
|
|
121
|
-
|
|
141
|
+
if (!!options.wallet && !(0, ethers_1.isAddress)(options.wallet)) {
|
|
142
|
+
core_1.Logger.log.warn('getVaults:invalid_wallet', options.wallet);
|
|
143
|
+
}
|
|
144
|
+
return [...filteredResponses, ...transformedVaults];
|
|
122
145
|
}
|
|
123
146
|
async getVault({ vault, chainId, options, }) {
|
|
124
147
|
if (!vault)
|
|
125
148
|
throw new Error('Vault input parameter is undefined.');
|
|
126
149
|
if (typeof chainId !== 'undefined') {
|
|
127
|
-
if (!this.providers?.[chainId])
|
|
128
|
-
|
|
150
|
+
if (!this.providers?.[chainId]) {
|
|
151
|
+
const error = new Error(`Missing RPC URL for chainId ${chainId}`);
|
|
152
|
+
core_1.Logger.log.error('getVault:missing_provider', error, { chainId });
|
|
153
|
+
}
|
|
129
154
|
}
|
|
130
155
|
const vaultResponse = await (0, getters_1.getVault)({
|
|
131
156
|
vault: vault,
|
|
@@ -139,20 +164,17 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
139
164
|
env: this.monitoring?.env,
|
|
140
165
|
augustKey: this.keys?.august,
|
|
141
166
|
subgraphKey: this.keys?.graph,
|
|
142
|
-
headers:
|
|
143
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
144
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
145
|
-
},
|
|
167
|
+
headers: this.headers,
|
|
146
168
|
},
|
|
147
169
|
});
|
|
148
170
|
if ((0, ethers_1.isAddress)(vault) &&
|
|
149
|
-
((options
|
|
150
|
-
(options
|
|
151
|
-
solana_1.Solana.utils.isSolanaAddress(options
|
|
171
|
+
((options?.wallet && (0, ethers_1.isAddress)(options?.wallet)) ||
|
|
172
|
+
(options?.solanaWallet &&
|
|
173
|
+
solana_1.Solana.utils.isSolanaAddress(options?.solanaWallet)))) {
|
|
152
174
|
const vaultResponses = await (0, getters_1.getVaultPositions)({
|
|
153
175
|
vault: vault,
|
|
154
|
-
solanaWallet: options
|
|
155
|
-
wallet: options
|
|
176
|
+
solanaWallet: options?.solanaWallet,
|
|
177
|
+
wallet: options?.wallet,
|
|
156
178
|
options: {
|
|
157
179
|
rpcUrl: chainId
|
|
158
180
|
? this.providers?.[chainId]
|
|
@@ -161,10 +183,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
161
183
|
env: this.monitoring?.env,
|
|
162
184
|
augustKey: this.keys?.august,
|
|
163
185
|
subgraphKey: this.keys?.graph,
|
|
164
|
-
headers:
|
|
165
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
166
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
167
|
-
},
|
|
186
|
+
headers: this.headers,
|
|
168
187
|
},
|
|
169
188
|
});
|
|
170
189
|
const positions = vaultResponses.filter((v) => v.status !== 'PENDING');
|
|
@@ -173,8 +192,9 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
173
192
|
position: positions?.find((pos) => pos.vault?.toLowerCase() === vault?.toLowerCase()) || null,
|
|
174
193
|
};
|
|
175
194
|
}
|
|
176
|
-
if (!!options
|
|
177
|
-
|
|
195
|
+
if (!!options?.wallet && !(0, ethers_1.isAddress)(options?.wallet)) {
|
|
196
|
+
core_1.Logger.log.warn('getVault:invalid_wallet', options?.wallet);
|
|
197
|
+
}
|
|
178
198
|
return vaultResponse;
|
|
179
199
|
}
|
|
180
200
|
async getVaultLoans({ vault, chainId, }) {
|
|
@@ -183,8 +203,10 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
183
203
|
if (!(0, ethers_1.isAddress)(vault))
|
|
184
204
|
throw new Error(`Vault input parameter is not an address: ${String(vault)}`);
|
|
185
205
|
if (typeof chainId !== 'undefined') {
|
|
186
|
-
if (!this.providers?.[chainId])
|
|
187
|
-
|
|
206
|
+
if (!this.providers?.[chainId]) {
|
|
207
|
+
const error = new Error(`Missing RPC URL for chainId ${chainId}`);
|
|
208
|
+
core_1.Logger.log.error('getVaultLoans:missing_provider', error, { chainId });
|
|
209
|
+
}
|
|
188
210
|
}
|
|
189
211
|
const vaultResponse = await (0, getters_1.getVaultLoans)(vault, {
|
|
190
212
|
rpcUrl: chainId ? this.providers?.[chainId] : this.activeNetwork.rpcUrl,
|
|
@@ -193,10 +215,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
193
215
|
subgraphKey: this.keys?.graph,
|
|
194
216
|
chainId: chainId,
|
|
195
217
|
solanaService: this.solanaService,
|
|
196
|
-
headers:
|
|
197
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
198
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
199
|
-
},
|
|
218
|
+
headers: this.headers,
|
|
200
219
|
});
|
|
201
220
|
return vaultResponse;
|
|
202
221
|
}
|
|
@@ -206,8 +225,12 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
206
225
|
if (!(0, ethers_1.isAddress)(vault))
|
|
207
226
|
throw new Error(`Vault input parameter is not an address: ${String(vault)}`);
|
|
208
227
|
if (typeof chainId !== 'undefined') {
|
|
209
|
-
if (!this.providers?.[chainId])
|
|
210
|
-
|
|
228
|
+
if (!this.providers?.[chainId]) {
|
|
229
|
+
const error = new Error(`Missing RPC URL for chainId ${chainId}`);
|
|
230
|
+
core_1.Logger.log.error('getVaultAllocations:missing_provider', error, {
|
|
231
|
+
chainId,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
211
234
|
}
|
|
212
235
|
try {
|
|
213
236
|
const vaultResponse = await (0, getters_1.getVaultAllocations)(vault, {
|
|
@@ -216,10 +239,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
216
239
|
env: this.monitoring?.env,
|
|
217
240
|
augustKey: this.keys?.august,
|
|
218
241
|
subgraphKey: this.keys?.graph,
|
|
219
|
-
headers:
|
|
220
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
221
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
222
|
-
},
|
|
242
|
+
headers: this.headers,
|
|
223
243
|
});
|
|
224
244
|
return vaultResponse;
|
|
225
245
|
}
|
|
@@ -237,24 +257,22 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
237
257
|
};
|
|
238
258
|
}
|
|
239
259
|
}
|
|
240
|
-
async getVaultApy(vault) {
|
|
260
|
+
async getVaultApy({ vault, historical, }) {
|
|
241
261
|
if (!vault)
|
|
242
262
|
throw new Error('Vault input parameter is undefined.');
|
|
243
263
|
if (!(0, ethers_1.isAddress)(vault))
|
|
244
264
|
throw new Error(`Vault input parameter is not an address: ${String(vault)}`);
|
|
245
265
|
return await (0, getters_1.getVaultApy)({
|
|
246
266
|
vault,
|
|
267
|
+
historical,
|
|
247
268
|
options: {
|
|
248
269
|
rpcUrl: this.activeNetwork.rpcUrl,
|
|
249
270
|
subgraphKey: this.keys?.graph,
|
|
250
|
-
headers:
|
|
251
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
252
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
253
|
-
},
|
|
271
|
+
headers: this.headers,
|
|
254
272
|
},
|
|
255
273
|
});
|
|
256
274
|
}
|
|
257
|
-
async
|
|
275
|
+
async getVaultAvailableRedemptions({ vault, chainId, wallet, }) {
|
|
258
276
|
if (!this.authorized)
|
|
259
277
|
throw new Error('Not authorized.');
|
|
260
278
|
if (!vault)
|
|
@@ -270,16 +288,13 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
270
288
|
env: this.monitoring?.env,
|
|
271
289
|
augustKey: this.keys?.august,
|
|
272
290
|
subgraphKey: this.keys?.graph,
|
|
273
|
-
headers:
|
|
274
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
275
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
276
|
-
},
|
|
291
|
+
headers: this.headers,
|
|
277
292
|
},
|
|
278
293
|
});
|
|
279
294
|
}
|
|
280
|
-
async
|
|
281
|
-
if (
|
|
282
|
-
throw new Error('
|
|
295
|
+
async getVaultPositions({ vault, wallet, chainId, showAllVaults, solanaWallet, options, }) {
|
|
296
|
+
if (solanaWallet && !solana_1.Solana.utils.isSolanaAddress(solanaWallet)) {
|
|
297
|
+
throw new Error('Solana wallet parameter must be provided and be a valid Solana address');
|
|
283
298
|
}
|
|
284
299
|
if (wallet && !(0, ethers_1.isAddress)(wallet)) {
|
|
285
300
|
throw new Error(`Wallet parameter is not a valid address: ${String(wallet)}`);
|
|
@@ -297,17 +312,11 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
297
312
|
env: this.monitoring?.env,
|
|
298
313
|
augustKey: this.keys?.august,
|
|
299
314
|
subgraphKey: this.keys?.graph,
|
|
300
|
-
headers:
|
|
301
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
302
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
303
|
-
},
|
|
315
|
+
headers: this.headers,
|
|
304
316
|
},
|
|
305
317
|
});
|
|
306
318
|
}
|
|
307
|
-
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined,
|
|
308
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
309
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
310
|
-
});
|
|
319
|
+
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined, this.headers);
|
|
311
320
|
if (chainId) {
|
|
312
321
|
const vaultsPerChain = allVaults.filter((v) => v.chain === chainId);
|
|
313
322
|
const vaultResponses = await Promise.all(vaultsPerChain.map((v) => (0, getters_1.getVaultPositions)({
|
|
@@ -320,10 +329,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
320
329
|
env: this.monitoring?.env,
|
|
321
330
|
augustKey: this.keys?.august,
|
|
322
331
|
subgraphKey: this.keys?.graph,
|
|
323
|
-
headers:
|
|
324
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
325
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
326
|
-
},
|
|
332
|
+
headers: this.headers,
|
|
327
333
|
},
|
|
328
334
|
})));
|
|
329
335
|
const flattened = vaultResponses.flat();
|
|
@@ -332,6 +338,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
332
338
|
final = flattened;
|
|
333
339
|
else
|
|
334
340
|
final = flattened.filter((v) => v?.status !== 'PENDING');
|
|
341
|
+
core_1.Logger.log.info(`getPositions::${chainId || 'all'}:`, final.map((v) => v.vault));
|
|
335
342
|
return final;
|
|
336
343
|
}
|
|
337
344
|
const vaultsPerAvailableProviders = allVaults.filter((v) => !!this.providers?.[v?.chain] ? true : false);
|
|
@@ -345,10 +352,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
345
352
|
env: this.monitoring?.env,
|
|
346
353
|
augustKey: this.keys?.august,
|
|
347
354
|
subgraphKey: this.keys?.graph,
|
|
348
|
-
headers:
|
|
349
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
350
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
351
|
-
},
|
|
355
|
+
headers: this.headers,
|
|
352
356
|
},
|
|
353
357
|
})));
|
|
354
358
|
const flattened = vaultResponses.flat();
|
|
@@ -359,7 +363,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
359
363
|
final = flattened.filter((v) => v?.status !== 'PENDING');
|
|
360
364
|
return final;
|
|
361
365
|
}
|
|
362
|
-
async getUserHistory({ wallet, chainId, vault,
|
|
366
|
+
async getUserHistory({ wallet, chainId, vault, }) {
|
|
363
367
|
if (!(0, ethers_1.isAddress)(wallet))
|
|
364
368
|
throw new Error(`Wallet parameter is not an address: ${String(wallet)}`);
|
|
365
369
|
const _chainId = chainId || this.activeNetwork.chainId;
|
|
@@ -381,10 +385,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
381
385
|
finalArray = formatHistory(userHistory);
|
|
382
386
|
}
|
|
383
387
|
else {
|
|
384
|
-
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined,
|
|
385
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
386
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
387
|
-
});
|
|
388
|
+
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined, this.headers);
|
|
388
389
|
if (chainId) {
|
|
389
390
|
const vaultsPerChain = allVaults.filter((v) => v.chain === chainId);
|
|
390
391
|
const vaultResponses = await Promise.all(vaultsPerChain.map(async (v) => {
|
|
@@ -406,8 +407,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
406
407
|
finalArray = flattened;
|
|
407
408
|
}
|
|
408
409
|
}
|
|
409
|
-
|
|
410
|
-
console.log(`#getUserHistory:`, finalArray.slice(0, 1));
|
|
410
|
+
core_1.Logger.log.info('getUserHistory', `${wallet}::${finalArray.length}`);
|
|
411
411
|
return finalArray;
|
|
412
412
|
}
|
|
413
413
|
async getUserTransfers({ wallet, chainId, vault, options, }) {
|
|
@@ -432,10 +432,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
432
432
|
finalArray = formatTransfers(userHistory);
|
|
433
433
|
}
|
|
434
434
|
else {
|
|
435
|
-
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined,
|
|
436
|
-
'x-environment': this.monitoring?.['x-environment'],
|
|
437
|
-
'x-user-id': this.monitoring?.['x-user-id'],
|
|
438
|
-
});
|
|
435
|
+
const allVaults = await (0, core_1.fetchTokenizedVaults)(undefined, this.headers);
|
|
439
436
|
if (chainId) {
|
|
440
437
|
const vaultsPerChain = allVaults.filter((v) => v.chain === chainId);
|
|
441
438
|
const vaultResponses = await Promise.all(vaultsPerChain.map(async (v) => {
|
|
@@ -457,8 +454,7 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
457
454
|
finalArray = formatTransfers(flattened);
|
|
458
455
|
}
|
|
459
456
|
}
|
|
460
|
-
|
|
461
|
-
console.log(`#getUserTransfers:`, finalArray.slice(0, 1));
|
|
457
|
+
core_1.Logger.log.info('getUserTransfers', `${wallet}::${finalArray.length}`);
|
|
462
458
|
return finalArray;
|
|
463
459
|
}
|
|
464
460
|
async getStakingPositions(wallet, chainId) {
|
|
@@ -479,112 +475,57 @@ class AugustVaults extends core_1.AugustBase {
|
|
|
479
475
|
}));
|
|
480
476
|
return positions.flat();
|
|
481
477
|
}
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
if (token?.symbol &&
|
|
504
|
-
!token.is_suspicious &&
|
|
505
|
-
!token.is_scam &&
|
|
506
|
-
token?.is_core) {
|
|
507
|
-
borrowing_exposure.push({
|
|
508
|
-
symbol: token.symbol,
|
|
509
|
-
chain: token.chain,
|
|
510
|
-
amount: token.amount * token.price,
|
|
511
|
-
});
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
for (const token of supplyTokens) {
|
|
515
|
-
if (token?.symbol &&
|
|
516
|
-
!token.is_suspicious &&
|
|
517
|
-
!token.is_scam &&
|
|
518
|
-
token?.is_core) {
|
|
519
|
-
supplying_exposure.push({
|
|
520
|
-
symbol: token.symbol,
|
|
521
|
-
chain: token.chain,
|
|
522
|
-
amount: token.amount * token.price,
|
|
523
|
-
});
|
|
524
|
-
}
|
|
525
|
-
}
|
|
526
|
-
}
|
|
527
|
-
}
|
|
528
|
-
return { borrowing_exposure, supplying_exposure, wallet_exposure };
|
|
529
|
-
}
|
|
530
|
-
async allowance(pool, signer) {
|
|
531
|
-
if (!(0, ethers_1.isAddress)(pool))
|
|
532
|
-
return;
|
|
533
|
-
const wallet = (await signer.getAddress());
|
|
534
|
-
return await (0, core_1.allowance)(signer, { target: pool, wallet, wait: true });
|
|
535
|
-
}
|
|
536
|
-
async approve(pool, signer, inputParams) {
|
|
537
|
-
if (!(0, ethers_1.isAddress)(pool))
|
|
538
|
-
return;
|
|
539
|
-
const wallet = (await signer.getAddress());
|
|
540
|
-
return await (0, core_1.approve)(signer, {
|
|
541
|
-
target: pool,
|
|
542
|
-
wallet,
|
|
543
|
-
wait: true,
|
|
544
|
-
amount: inputParams.amount,
|
|
545
|
-
});
|
|
546
|
-
}
|
|
547
|
-
async deposit(pool, signer, inputParams, solana) {
|
|
548
|
-
if (solana_1.Solana.utils.isSolanaAddress(pool)) {
|
|
549
|
-
const vaultState = await this.solanaService.getVaultStateReadOnly(pool, solana_1.Solana.constants.vaultIdl);
|
|
550
|
-
const solanaTx = await this.solanaService.handleDeposit(pool, solana_1.Solana.constants.vaultIdl, signer, Number(inputParams.amount), vaultState.vaultState.depositMint, solana?.sendTransaction);
|
|
551
|
-
return solanaTx;
|
|
552
|
-
}
|
|
553
|
-
if (typeof signer === 'string')
|
|
554
|
-
return;
|
|
555
|
-
const wallet = (await signer.getAddress());
|
|
556
|
-
return await (0, user_actions_1.vaultDeposit)(signer, {
|
|
557
|
-
amount: inputParams.amount,
|
|
558
|
-
wallet,
|
|
559
|
-
target: pool,
|
|
560
|
-
wait: true,
|
|
478
|
+
async getVaultTvl({ vault, chainId, historical, }) {
|
|
479
|
+
if (!this.authorized)
|
|
480
|
+
throw new Error('Not authorized.');
|
|
481
|
+
if (!vault)
|
|
482
|
+
throw new Error('Pool input parameter is undefined.');
|
|
483
|
+
if (!(0, ethers_1.isAddress)(vault))
|
|
484
|
+
throw new Error(`Pool input parameter is not an address: ${String(vault)}`);
|
|
485
|
+
const rpcUrl = chainId
|
|
486
|
+
? this.providers?.[chainId]
|
|
487
|
+
: this.activeNetwork.rpcUrl;
|
|
488
|
+
return await (0, getters_1.getVaultTvl)({
|
|
489
|
+
vault,
|
|
490
|
+
options: {
|
|
491
|
+
rpcUrl: rpcUrl,
|
|
492
|
+
solanaService: this.solanaService,
|
|
493
|
+
env: this.monitoring?.env,
|
|
494
|
+
augustKey: this.keys?.august,
|
|
495
|
+
subgraphKey: this.keys?.graph,
|
|
496
|
+
headers: this.headers,
|
|
497
|
+
},
|
|
498
|
+
historical: historical,
|
|
561
499
|
});
|
|
562
500
|
}
|
|
563
|
-
async
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
501
|
+
async getVaultBorrowerHealthFactor(chainId) {
|
|
502
|
+
if (chainId) {
|
|
503
|
+
const health_factors = await (0, getters_1.getHealthFactorOfBorrowersByVault)({
|
|
504
|
+
options: {
|
|
505
|
+
rpcUrl: this.providers?.[chainId] || this.activeNetwork.rpcUrl,
|
|
506
|
+
env: this.monitoring?.env,
|
|
507
|
+
augustKey: this.keys?.august,
|
|
508
|
+
},
|
|
509
|
+
});
|
|
510
|
+
return health_factors;
|
|
572
511
|
}
|
|
573
|
-
|
|
574
|
-
return
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
});
|
|
512
|
+
const health_factors = await Promise.all(Object.values(this.providers).map((rpcUrl) => {
|
|
513
|
+
return (0, getters_1.getHealthFactorOfBorrowersByVault)({
|
|
514
|
+
options: {
|
|
515
|
+
rpcUrl: chainId
|
|
516
|
+
? this.providers?.[chainId]
|
|
517
|
+
: rpcUrl || this.activeNetwork.rpcUrl,
|
|
518
|
+
solanaService: this.solanaService,
|
|
519
|
+
env: this.monitoring?.env,
|
|
520
|
+
augustKey: this.keys?.august,
|
|
521
|
+
subgraphKey: this.keys?.graph,
|
|
522
|
+
headers: this.headers,
|
|
523
|
+
},
|
|
524
|
+
});
|
|
525
|
+
}));
|
|
526
|
+
return health_factors.flat();
|
|
587
527
|
}
|
|
588
528
|
}
|
|
589
529
|
exports.AugustVaults = AugustVaults;
|
|
530
|
+
exports.default = AugustVaults;
|
|
590
531
|
//# sourceMappingURL=main.js.map
|