@coinbase/agentkit 0.10.2 → 0.10.4
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 +89 -10
- package/dist/action-providers/across/acrossActionProvider.js +2 -4
- package/dist/action-providers/across/acrossActionProvider.test.js +10 -5
- package/dist/action-providers/baseAccount/baseAccountActionProvider.js +5 -7
- package/dist/action-providers/cdp/cdpApiActionProvider.js +7 -30
- package/dist/action-providers/cdp/cdpApiActionProvider.test.js +2 -8
- package/dist/action-providers/cdp/faucetUtils.d.ts +38 -0
- package/dist/action-providers/cdp/faucetUtils.js +81 -0
- package/dist/action-providers/clanker/schemas.d.ts +4 -4
- package/dist/action-providers/clanker/utils.d.ts +2 -1
- package/dist/action-providers/clanker/utils.js +2 -2
- package/dist/action-providers/enso/constants.d.ts +4 -0
- package/dist/action-providers/enso/constants.js +10 -0
- package/dist/action-providers/enso/ensoActionProvider.d.ts +34 -0
- package/dist/action-providers/enso/ensoActionProvider.js +125 -0
- package/dist/action-providers/enso/ensoActionProvider.test.d.ts +1 -0
- package/dist/action-providers/enso/ensoActionProvider.test.js +141 -0
- package/dist/action-providers/enso/index.d.ts +1 -0
- package/dist/action-providers/enso/index.js +17 -0
- package/dist/action-providers/enso/schemas.d.ts +23 -0
- package/dist/action-providers/enso/schemas.js +22 -0
- package/dist/action-providers/erc20/constants.d.ts +2 -0
- package/dist/action-providers/erc20/constants.js +2 -0
- package/dist/action-providers/erc20/erc20ActionProvider.d.ts +17 -1
- package/dist/action-providers/erc20/erc20ActionProvider.js +103 -1
- package/dist/action-providers/erc20/erc20ActionProvider.test.js +201 -0
- package/dist/action-providers/erc20/schemas.d.ts +29 -0
- package/dist/action-providers/erc20/schemas.js +34 -1
- package/dist/action-providers/index.d.ts +4 -1
- package/dist/action-providers/index.js +4 -1
- package/dist/action-providers/jupiter/jupiterActionProvider.js +2 -2
- package/dist/action-providers/spl/splActionProvider.js +12 -13
- package/dist/action-providers/superfluid/graphQueries/superfluidGraphQueries.js +2 -2
- package/dist/action-providers/sushi/constants.d.ts +35 -0
- package/dist/action-providers/sushi/constants.js +7 -0
- package/dist/action-providers/sushi/index.d.ts +4 -0
- package/dist/action-providers/sushi/index.js +20 -0
- package/dist/action-providers/sushi/sushiDataActionProvider.d.ts +32 -0
- package/dist/action-providers/sushi/sushiDataActionProvider.js +113 -0
- package/dist/action-providers/sushi/sushiDataSchemas.d.ts +11 -0
- package/dist/action-providers/sushi/sushiDataSchemas.js +16 -0
- package/dist/action-providers/sushi/sushiRouterActionProvider.d.ts +40 -0
- package/dist/action-providers/sushi/sushiRouterActionProvider.js +386 -0
- package/dist/action-providers/sushi/sushiRouterActionProvider.test.d.ts +1 -0
- package/dist/action-providers/sushi/sushiRouterActionProvider.test.js +392 -0
- package/dist/action-providers/sushi/sushiRouterSchemas.d.ts +36 -0
- package/dist/action-providers/sushi/sushiRouterSchemas.js +55 -0
- package/dist/action-providers/vaultsfyi/constants.d.ts +8 -12
- package/dist/action-providers/vaultsfyi/constants.js +47 -13
- package/dist/action-providers/vaultsfyi/schemas.d.ts +120 -65
- package/dist/action-providers/vaultsfyi/schemas.js +72 -38
- package/dist/action-providers/vaultsfyi/sdk.d.ts +8 -0
- package/dist/action-providers/vaultsfyi/sdk.js +15 -0
- package/dist/action-providers/vaultsfyi/utils.d.ts +151 -55
- package/dist/action-providers/vaultsfyi/utils.js +29 -75
- package/dist/action-providers/vaultsfyi/vaultsfyiActionProvider.d.ts +55 -16
- package/dist/action-providers/vaultsfyi/vaultsfyiActionProvider.js +413 -217
- package/dist/action-providers/vaultsfyi/vaultsfyiActionProvider.test.js +509 -316
- package/dist/action-providers/wallet/walletActionProvider.js +1 -1
- package/dist/action-providers/weth/constants.d.ts +0 -1
- package/dist/action-providers/weth/constants.js +1 -2
- package/dist/action-providers/weth/schemas.js +6 -2
- package/dist/action-providers/weth/wethActionProvider.d.ts +7 -0
- package/dist/action-providers/weth/wethActionProvider.js +57 -32
- package/dist/action-providers/weth/wethActionProvider.test.js +60 -11
- package/dist/action-providers/x402/constants.d.ts +67 -0
- package/dist/action-providers/x402/constants.js +37 -0
- package/dist/action-providers/x402/schemas.d.ts +45 -5
- package/dist/action-providers/x402/schemas.js +81 -11
- package/dist/action-providers/x402/utils.d.ts +89 -14
- package/dist/action-providers/x402/utils.js +335 -31
- package/dist/action-providers/x402/x402ActionProvider.d.ts +21 -7
- package/dist/action-providers/x402/x402ActionProvider.js +250 -184
- package/dist/action-providers/x402/x402ActionProvider.test.js +240 -236
- package/dist/action-providers/yelay/constants.d.ts +64 -0
- package/dist/action-providers/yelay/constants.js +137 -0
- package/dist/action-providers/yelay/index.d.ts +2 -0
- package/dist/action-providers/yelay/index.js +18 -0
- package/dist/action-providers/yelay/schemas.d.ts +47 -0
- package/dist/action-providers/yelay/schemas.js +59 -0
- package/dist/action-providers/yelay/types.d.ts +24 -0
- package/dist/action-providers/yelay/yelayActionProvider.d.ts +70 -0
- package/dist/action-providers/yelay/yelayActionProvider.js +329 -0
- package/dist/action-providers/yelay/yelayActionProvider.test.d.ts +1 -0
- package/dist/action-providers/yelay/yelayActionProvider.test.js +302 -0
- package/dist/action-providers/zora/zoraActionProvider.js +4 -5
- package/dist/wallet-providers/cdpSmartWalletProvider.js +1 -3
- package/dist/wallet-providers/cdpSolanaWalletProvider.d.ts +14 -0
- package/dist/wallet-providers/cdpSolanaWalletProvider.js +39 -3
- package/dist/wallet-providers/cdpSolanaWalletProvider.test.js +16 -0
- package/dist/wallet-providers/privySvmWalletProvider.d.ts +14 -0
- package/dist/wallet-providers/privySvmWalletProvider.js +17 -0
- package/dist/wallet-providers/privySvmWalletProvider.test.js +10 -0
- package/dist/wallet-providers/solanaKeypairWalletProvider.d.ts +14 -0
- package/dist/wallet-providers/solanaKeypairWalletProvider.js +17 -0
- package/dist/wallet-providers/svmWalletProvider.d.ts +34 -0
- package/dist/wallet-providers/svmWalletProvider.js +43 -0
- package/dist/wallet-providers/svmWalletProvider.test.js +10 -0
- package/package.json +11 -6
- package/dist/action-providers/vaultsfyi/api/actions.d.ts +0 -41
- package/dist/action-providers/vaultsfyi/api/actions.js +0 -28
- package/dist/action-providers/vaultsfyi/api/historicalData.d.ts +0 -31
- package/dist/action-providers/vaultsfyi/api/historicalData.js +0 -44
- package/dist/action-providers/vaultsfyi/api/types.d.ts +0 -34
- package/dist/action-providers/vaultsfyi/api/vaults.d.ts +0 -66
- package/dist/action-providers/vaultsfyi/api/vaults.js +0 -57
- /package/dist/action-providers/{vaultsfyi/api → yelay}/types.js +0 -0
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { EvmWalletProvider } from "../../wallet-providers";
|
|
2
|
-
import {
|
|
3
|
-
import { Actions } from "./api/actions";
|
|
2
|
+
import { VaultsSdk } from "@vaultsfyi/sdk";
|
|
4
3
|
/**
|
|
5
4
|
* Get the link to the vaults.fyi page for a vault
|
|
6
5
|
*
|
|
7
6
|
* @param vault - The vault
|
|
8
7
|
* @returns The link to the vaults.fyi page
|
|
9
8
|
*/
|
|
10
|
-
export declare function getVaultsLink(vault:
|
|
9
|
+
export declare function getVaultsLink(vault: Awaited<ReturnType<VaultsSdk["getVault"]>>): string;
|
|
11
10
|
/**
|
|
12
11
|
* Execute a list of actions
|
|
13
12
|
*
|
|
@@ -15,84 +14,181 @@ export declare function getVaultsLink(vault: ApiVault): string;
|
|
|
15
14
|
* @param actions - The list of actions to execute
|
|
16
15
|
* @returns nothing
|
|
17
16
|
*/
|
|
18
|
-
export declare function executeActions(wallet: EvmWalletProvider, actions:
|
|
17
|
+
export declare function executeActions(wallet: EvmWalletProvider, actions: Awaited<ReturnType<VaultsSdk["getActions"]>>): Promise<void>;
|
|
18
|
+
type Apy = {
|
|
19
|
+
base: number;
|
|
20
|
+
reward: number;
|
|
21
|
+
total: number;
|
|
22
|
+
};
|
|
23
|
+
type ApyObject = {
|
|
24
|
+
"1day": Apy;
|
|
25
|
+
"7day": Apy;
|
|
26
|
+
"30day": Apy;
|
|
27
|
+
"1hour"?: Apy;
|
|
28
|
+
};
|
|
19
29
|
/**
|
|
20
|
-
*
|
|
30
|
+
* Transform the apy object to a more readable format
|
|
21
31
|
*
|
|
22
|
-
* @param
|
|
23
|
-
* @returns The
|
|
32
|
+
* @param apy - The apy
|
|
33
|
+
* @returns The transformed apy
|
|
24
34
|
*/
|
|
25
|
-
export declare function
|
|
35
|
+
export declare function transformApyObject(apy: ApyObject): Record<string, {
|
|
36
|
+
base: string;
|
|
37
|
+
reward: string;
|
|
38
|
+
total: string;
|
|
39
|
+
}>;
|
|
26
40
|
/**
|
|
27
|
-
*
|
|
41
|
+
* Transform the apy to a more readable format
|
|
28
42
|
*
|
|
29
|
-
* @param
|
|
30
|
-
* @
|
|
31
|
-
* @param amount - The amount to parse
|
|
32
|
-
* @returns The parsed amount
|
|
43
|
+
* @param apy - The apy
|
|
44
|
+
* @returns The transformed apy
|
|
33
45
|
*/
|
|
34
|
-
export declare function
|
|
46
|
+
export declare function transformApy(apy: Apy): {
|
|
47
|
+
base: string;
|
|
48
|
+
reward: string;
|
|
49
|
+
total: string;
|
|
50
|
+
};
|
|
35
51
|
/**
|
|
36
|
-
* Transform
|
|
52
|
+
* Transform the vault to a more readable format
|
|
37
53
|
*
|
|
38
|
-
* @param vault - The vault
|
|
39
|
-
* @param apyRange - The APY range to use
|
|
54
|
+
* @param vault - The vault
|
|
40
55
|
* @returns The transformed vault
|
|
41
56
|
*/
|
|
42
|
-
export declare function transformVault(vault:
|
|
43
|
-
|
|
57
|
+
export declare function transformVault(vault: Awaited<ReturnType<VaultsSdk["getVault"]>>): {
|
|
58
|
+
apy: Record<string, {
|
|
59
|
+
base: string;
|
|
60
|
+
reward: string;
|
|
61
|
+
total: string;
|
|
62
|
+
}>;
|
|
63
|
+
link: string;
|
|
64
|
+
lastUpdateTimestamp: string;
|
|
44
65
|
address: string;
|
|
45
|
-
network:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
apy: {
|
|
50
|
-
base: number;
|
|
51
|
-
rewards: number | undefined;
|
|
52
|
-
total: number;
|
|
66
|
+
network: {
|
|
67
|
+
name: "mainnet" | "optimism" | "arbitrum" | "polygon" | "gnosis" | "base" | "unichain" | "swellchain" | "celo" | "worldchain" | "berachain" | "ink" | "bsc" | "hyperliquid" | "plasma" | "avalanche";
|
|
68
|
+
chainId: number;
|
|
69
|
+
networkCaip: string;
|
|
53
70
|
};
|
|
54
|
-
|
|
71
|
+
asset: {
|
|
55
72
|
address: string;
|
|
73
|
+
assetCaip: string;
|
|
56
74
|
name: string;
|
|
57
75
|
symbol: string;
|
|
76
|
+
decimals: number;
|
|
77
|
+
assetLogo?: string;
|
|
78
|
+
assetPriceInUsd?: string;
|
|
79
|
+
assetGroup: string;
|
|
80
|
+
};
|
|
81
|
+
isTransactional: boolean;
|
|
82
|
+
isAppFeatured: boolean;
|
|
83
|
+
name: string;
|
|
84
|
+
protocol: {
|
|
85
|
+
name: string;
|
|
86
|
+
product?: string;
|
|
87
|
+
version?: string;
|
|
88
|
+
protocolUrl?: string;
|
|
89
|
+
description?: string;
|
|
90
|
+
protocolLogo?: string;
|
|
91
|
+
};
|
|
92
|
+
lendUrl?: string;
|
|
93
|
+
description?: string;
|
|
94
|
+
protocolVaultUrl?: string;
|
|
95
|
+
tags: string[];
|
|
96
|
+
holdersData: {
|
|
97
|
+
totalCount?: number;
|
|
98
|
+
totalBalance?: string;
|
|
99
|
+
topHolders?: {
|
|
100
|
+
address: string;
|
|
101
|
+
lpTokenBalance: string;
|
|
102
|
+
}[];
|
|
103
|
+
};
|
|
104
|
+
tvl: {
|
|
105
|
+
usd: string;
|
|
106
|
+
native: string;
|
|
58
107
|
};
|
|
59
|
-
vaultsFyiScore: number;
|
|
60
|
-
link: string;
|
|
61
|
-
};
|
|
62
|
-
/**
|
|
63
|
-
* Transform a detailed vault from the API to a format that can be used by the agent
|
|
64
|
-
*
|
|
65
|
-
* @param vault - The vault to transform
|
|
66
|
-
* @param apyRange - The APY range to use
|
|
67
|
-
* @returns The transformed vault
|
|
68
|
-
*/
|
|
69
|
-
export declare function transformDetailedVault(vault: ApiVault, apyRange: "1day" | "7day" | "30day"): {
|
|
70
108
|
rewards: {
|
|
71
|
-
apy: number;
|
|
72
109
|
asset: {
|
|
73
110
|
address: string;
|
|
111
|
+
assetCaip: string;
|
|
74
112
|
name: string;
|
|
75
113
|
symbol: string;
|
|
114
|
+
decimals: number;
|
|
115
|
+
assetLogo?: string;
|
|
116
|
+
assetPriceInUsd?: string;
|
|
117
|
+
assetGroup: string;
|
|
118
|
+
};
|
|
119
|
+
apy: {
|
|
120
|
+
"1hour": number;
|
|
121
|
+
"1day": number;
|
|
122
|
+
"7day": number;
|
|
123
|
+
"30day": number;
|
|
76
124
|
};
|
|
77
125
|
}[];
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
numberOfHolders: number;
|
|
86
|
-
apy: {
|
|
87
|
-
base: number;
|
|
88
|
-
rewards: number | undefined;
|
|
89
|
-
total: number;
|
|
126
|
+
score?: {
|
|
127
|
+
vaultScore: number;
|
|
128
|
+
vaultTvlScore: number;
|
|
129
|
+
protocolTvlScore: number;
|
|
130
|
+
holderScore: number;
|
|
131
|
+
networkScore: number;
|
|
132
|
+
assetScore: number;
|
|
90
133
|
};
|
|
91
|
-
|
|
134
|
+
additionalIncentives?: string;
|
|
135
|
+
curator?: {
|
|
136
|
+
name: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
websiteUrl?: string;
|
|
139
|
+
};
|
|
140
|
+
lpToken?: {
|
|
92
141
|
address: string;
|
|
142
|
+
tokenCaip: string;
|
|
93
143
|
name: string;
|
|
94
144
|
symbol: string;
|
|
145
|
+
decimals: number;
|
|
95
146
|
};
|
|
96
|
-
|
|
97
|
-
|
|
147
|
+
childrenVaults?: {
|
|
148
|
+
address: string;
|
|
149
|
+
asset: {
|
|
150
|
+
address: string;
|
|
151
|
+
assetCaip: string;
|
|
152
|
+
name: string;
|
|
153
|
+
symbol: string;
|
|
154
|
+
decimals: number;
|
|
155
|
+
assetLogo?: string;
|
|
156
|
+
assetPriceInUsd?: string;
|
|
157
|
+
assetGroup: string;
|
|
158
|
+
};
|
|
159
|
+
lpToken?: {
|
|
160
|
+
address: string;
|
|
161
|
+
tokenCaip: string;
|
|
162
|
+
name: string;
|
|
163
|
+
symbol: string;
|
|
164
|
+
decimals: number;
|
|
165
|
+
};
|
|
166
|
+
additionalAssets?: {
|
|
167
|
+
address: string;
|
|
168
|
+
assetCaip: string;
|
|
169
|
+
name: string;
|
|
170
|
+
symbol: string;
|
|
171
|
+
decimals: number;
|
|
172
|
+
assetLogo?: string;
|
|
173
|
+
assetPriceInUsd?: string;
|
|
174
|
+
assetGroup: string;
|
|
175
|
+
}[];
|
|
176
|
+
}[];
|
|
177
|
+
additionalAssets?: {
|
|
178
|
+
address: string;
|
|
179
|
+
assetCaip: string;
|
|
180
|
+
name: string;
|
|
181
|
+
symbol: string;
|
|
182
|
+
decimals: number;
|
|
183
|
+
assetLogo?: string;
|
|
184
|
+
assetPriceInUsd?: string;
|
|
185
|
+
assetGroup: string;
|
|
186
|
+
}[];
|
|
187
|
+
transactionalProperties?: {
|
|
188
|
+
depositStepsType: "instant" | "complex";
|
|
189
|
+
redeemStepsType: "instant" | "complex";
|
|
190
|
+
rewardsSupported: boolean;
|
|
191
|
+
};
|
|
192
|
+
warnings: string[];
|
|
98
193
|
};
|
|
194
|
+
export {};
|
|
@@ -2,11 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getVaultsLink = getVaultsLink;
|
|
4
4
|
exports.executeActions = executeActions;
|
|
5
|
-
exports.
|
|
6
|
-
exports.
|
|
5
|
+
exports.transformApyObject = transformApyObject;
|
|
6
|
+
exports.transformApy = transformApy;
|
|
7
7
|
exports.transformVault = transformVault;
|
|
8
|
-
exports.transformDetailedVault = transformDetailedVault;
|
|
9
|
-
const viem_1 = require("viem");
|
|
10
8
|
/**
|
|
11
9
|
* Get the link to the vaults.fyi page for a vault
|
|
12
10
|
*
|
|
@@ -14,12 +12,7 @@ const viem_1 = require("viem");
|
|
|
14
12
|
* @returns The link to the vaults.fyi page
|
|
15
13
|
*/
|
|
16
14
|
function getVaultsLink(vault) {
|
|
17
|
-
|
|
18
|
-
return `https://app.vaults.fyi/opportunity/${vault.network}/${vault.address}`;
|
|
19
|
-
}
|
|
20
|
-
else {
|
|
21
|
-
return `https://analytics.vaults.fyi/vaults/${vault.network}/${vault.address}`;
|
|
22
|
-
}
|
|
15
|
+
return `https://app.vaults.fyi/opportunity/${vault.network.name}/${vault.address}`;
|
|
23
16
|
}
|
|
24
17
|
/**
|
|
25
18
|
* Execute a list of actions
|
|
@@ -32,91 +25,52 @@ async function executeActions(wallet, actions) {
|
|
|
32
25
|
for (let i = actions.currentActionIndex; i < actions.actions.length; i++) {
|
|
33
26
|
const action = actions.actions[i];
|
|
34
27
|
const txHash = await wallet.sendTransaction({
|
|
35
|
-
|
|
28
|
+
to: action.tx.to,
|
|
29
|
+
data: action.tx.data,
|
|
36
30
|
value: action.tx.value ? BigInt(action.tx.value) : undefined,
|
|
37
31
|
});
|
|
38
32
|
await wallet.waitForTransactionReceipt(txHash);
|
|
39
33
|
}
|
|
40
34
|
}
|
|
41
35
|
/**
|
|
42
|
-
*
|
|
36
|
+
* Transform the apy object to a more readable format
|
|
43
37
|
*
|
|
44
|
-
* @param
|
|
45
|
-
* @returns The
|
|
38
|
+
* @param apy - The apy
|
|
39
|
+
* @returns The transformed apy
|
|
46
40
|
*/
|
|
47
|
-
function
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
params.append(key, obj[key].toString());
|
|
41
|
+
function transformApyObject(apy) {
|
|
42
|
+
return ["1day", "7day", "30day", "1hour"].reduce((acc, curr) => {
|
|
43
|
+
if (!(curr in apy)) {
|
|
44
|
+
return acc;
|
|
52
45
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Parse an asset amount with decimals
|
|
58
|
-
*
|
|
59
|
-
* @param wallet - The wallet provider
|
|
60
|
-
* @param assetAddress - The address of the asset
|
|
61
|
-
* @param amount - The amount to parse
|
|
62
|
-
* @returns The parsed amount
|
|
63
|
-
*/
|
|
64
|
-
async function parseAssetAmount(wallet, assetAddress, amount) {
|
|
65
|
-
const decimals = await wallet.readContract({
|
|
66
|
-
address: assetAddress,
|
|
67
|
-
abi: viem_1.erc20Abi,
|
|
68
|
-
functionName: "decimals",
|
|
69
|
-
});
|
|
70
|
-
return Math.floor(amount * 10 ** decimals);
|
|
46
|
+
acc[curr] = transformApy(apy[curr]);
|
|
47
|
+
return acc;
|
|
48
|
+
}, {});
|
|
71
49
|
}
|
|
72
50
|
/**
|
|
73
|
-
* Transform
|
|
51
|
+
* Transform the apy to a more readable format
|
|
74
52
|
*
|
|
75
|
-
* @param
|
|
76
|
-
* @
|
|
77
|
-
* @returns The transformed vault
|
|
53
|
+
* @param apy - The apy
|
|
54
|
+
* @returns The transformed apy
|
|
78
55
|
*/
|
|
79
|
-
function
|
|
56
|
+
function transformApy(apy) {
|
|
80
57
|
return {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
protocol: vault.protocol,
|
|
85
|
-
tvlInUsd: Number(vault.tvlDetails.tvlUsd),
|
|
86
|
-
numberOfHolders: vault.numberOfHolders,
|
|
87
|
-
apy: {
|
|
88
|
-
base: vault.apy.base[apyRange] / 100,
|
|
89
|
-
rewards: vault.apy.rewards?.[apyRange] ? vault.apy.rewards[apyRange] / 100 : undefined,
|
|
90
|
-
total: vault.apy.total[apyRange] / 100,
|
|
91
|
-
},
|
|
92
|
-
token: {
|
|
93
|
-
address: vault.token.assetAddress,
|
|
94
|
-
name: vault.token.name,
|
|
95
|
-
symbol: vault.token.symbol,
|
|
96
|
-
},
|
|
97
|
-
vaultsFyiScore: vault.score.vaultScore,
|
|
98
|
-
link: getVaultsLink(vault),
|
|
58
|
+
base: `${(apy.base * 100).toFixed(2)}%`,
|
|
59
|
+
reward: `${(apy.reward * 100).toFixed(2)}%`,
|
|
60
|
+
total: `${(apy.total * 100).toFixed(2)}%`,
|
|
99
61
|
};
|
|
100
62
|
}
|
|
101
63
|
/**
|
|
102
|
-
* Transform
|
|
64
|
+
* Transform the vault to a more readable format
|
|
103
65
|
*
|
|
104
|
-
* @param vault - The vault
|
|
105
|
-
* @param apyRange - The APY range to use
|
|
66
|
+
* @param vault - The vault
|
|
106
67
|
* @returns The transformed vault
|
|
107
68
|
*/
|
|
108
|
-
function
|
|
69
|
+
function transformVault(vault) {
|
|
109
70
|
return {
|
|
110
|
-
...
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
address: reward.asset.assetAddress,
|
|
115
|
-
name: reward.asset.name,
|
|
116
|
-
symbol: reward.asset.symbol,
|
|
117
|
-
},
|
|
118
|
-
})),
|
|
119
|
-
description: vault.description,
|
|
120
|
-
additionalIncentives: vault.additionalIncentives,
|
|
71
|
+
...vault,
|
|
72
|
+
apy: transformApyObject(vault.apy),
|
|
73
|
+
link: getVaultsLink(vault),
|
|
74
|
+
lastUpdateTimestamp: new Date(vault.lastUpdateTimestamp * 1000).toISOString(),
|
|
121
75
|
};
|
|
122
76
|
}
|
|
@@ -10,9 +10,9 @@ import { z } from "zod";
|
|
|
10
10
|
import { ActionProvider } from "../actionProvider";
|
|
11
11
|
import { Network } from "../../network";
|
|
12
12
|
import { EvmWalletProvider } from "../../wallet-providers";
|
|
13
|
-
import {
|
|
13
|
+
import { executeStepActionSchema, transactionContextActionSchema, VaultDetailsActionSchema, VaultHistoricalDataActionSchema, VaultsActionSchema, claimRewardsActionSchema, benchmarkActionSchema, historicalBenchmarkActionSchema, totalVaultReturnsActionSchema, userEventsActionSchema } from "./schemas";
|
|
14
14
|
/**
|
|
15
|
-
* Configuration options for the
|
|
15
|
+
* Configuration options for the VaultsfyiActionProvider.
|
|
16
16
|
*/
|
|
17
17
|
export interface VaultsfyiActionProviderConfig {
|
|
18
18
|
/**
|
|
@@ -60,36 +60,28 @@ export declare class VaultsfyiActionProvider extends ActionProvider<EvmWalletPro
|
|
|
60
60
|
*/
|
|
61
61
|
vaultHistoricalData(wallet: EvmWalletProvider, args: z.infer<typeof VaultHistoricalDataActionSchema>): Promise<string>;
|
|
62
62
|
/**
|
|
63
|
-
*
|
|
63
|
+
* Transaction context action
|
|
64
64
|
*
|
|
65
65
|
* @param wallet - The wallet provider instance for blockchain interactions
|
|
66
66
|
* @param args - Input arguments
|
|
67
67
|
* @returns A result message
|
|
68
68
|
*/
|
|
69
|
-
|
|
69
|
+
transactionContext(wallet: EvmWalletProvider, args: z.infer<typeof transactionContextActionSchema>): Promise<string>;
|
|
70
70
|
/**
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* @param wallet - The wallet provider instance for blockchain interactions
|
|
74
|
-
* @param args - Input arguments
|
|
75
|
-
* @returns A result message
|
|
76
|
-
*/
|
|
77
|
-
redeem(wallet: EvmWalletProvider, args: z.infer<typeof redeemActionSchema>): Promise<string>;
|
|
78
|
-
/**
|
|
79
|
-
* Claim rewards action
|
|
71
|
+
* Deposit action
|
|
80
72
|
*
|
|
81
73
|
* @param wallet - The wallet provider instance for blockchain interactions
|
|
82
74
|
* @param args - Input arguments
|
|
83
75
|
* @returns A result message
|
|
84
76
|
*/
|
|
85
|
-
|
|
77
|
+
executeStep(wallet: EvmWalletProvider, args: z.infer<typeof executeStepActionSchema>): Promise<string>;
|
|
86
78
|
/**
|
|
87
79
|
* Returns the users wallet token balances.
|
|
88
80
|
*
|
|
89
81
|
* @param wallet - The wallet provider instance for blockchain interactions
|
|
90
82
|
* @returns A record of the users balances
|
|
91
83
|
*/
|
|
92
|
-
|
|
84
|
+
idleAssets(wallet: EvmWalletProvider): Promise<string>;
|
|
93
85
|
/**
|
|
94
86
|
* Returns the users positions.
|
|
95
87
|
*
|
|
@@ -97,6 +89,53 @@ export declare class VaultsfyiActionProvider extends ActionProvider<EvmWalletPro
|
|
|
97
89
|
* @returns A record of the users positions
|
|
98
90
|
*/
|
|
99
91
|
positions(wallet: EvmWalletProvider): Promise<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Rewards context action
|
|
94
|
+
*
|
|
95
|
+
* @param wallet - The wallet provider instance for blockchain interactions
|
|
96
|
+
* @returns A record of rewards that are available to the user each with a unique claim id
|
|
97
|
+
*/
|
|
98
|
+
rewardsContext(wallet: EvmWalletProvider): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* Claim rewards action
|
|
101
|
+
*
|
|
102
|
+
* @param wallet - The wallet provider instance for blockchain interactions
|
|
103
|
+
* @param args - Input arguments: claimIds
|
|
104
|
+
* @returns A message indicating the success of the claim
|
|
105
|
+
*/
|
|
106
|
+
claimRewards(wallet: EvmWalletProvider, args: z.infer<typeof claimRewardsActionSchema>): Promise<string>;
|
|
107
|
+
/**
|
|
108
|
+
* Benchmark APY action
|
|
109
|
+
*
|
|
110
|
+
* @param wallet - The wallet provider instance for blockchain interactions
|
|
111
|
+
* @param args - Input arguments: network, benchmarkCode
|
|
112
|
+
* @returns benchmark APY data
|
|
113
|
+
*/
|
|
114
|
+
benchmarkApy(wallet: EvmWalletProvider, args: z.infer<typeof benchmarkActionSchema>): Promise<string>;
|
|
115
|
+
/**
|
|
116
|
+
* Historical benchmark APY action
|
|
117
|
+
*
|
|
118
|
+
* @param wallet - The wallet provider instance for blockchain interactions
|
|
119
|
+
* @param args - Input arguments: network, benchmarkCode, fromDate, toDate, page, perPage
|
|
120
|
+
* @returns A list of historical benchmark APY data
|
|
121
|
+
*/
|
|
122
|
+
historicalBenchmarkApy(wallet: EvmWalletProvider, args: z.infer<typeof historicalBenchmarkActionSchema>): Promise<string>;
|
|
123
|
+
/**
|
|
124
|
+
* Total vault returns action
|
|
125
|
+
*
|
|
126
|
+
* @param wallet - The wallet provider instance for blockchain interactions
|
|
127
|
+
* @param args - Input arguments: vaultAddress, network, userAddress
|
|
128
|
+
* @returns An amount of the users total returns
|
|
129
|
+
*/
|
|
130
|
+
totalVaultReturns(wallet: EvmWalletProvider, args: z.infer<typeof totalVaultReturnsActionSchema>): Promise<string>;
|
|
131
|
+
/**
|
|
132
|
+
* User events action
|
|
133
|
+
*
|
|
134
|
+
* @param wallet - The wallet provider instance for blockchain interactions
|
|
135
|
+
* @param args - Input arguments: vaultAddress, network, userAddress
|
|
136
|
+
* @returns A list of the users actions on a vault
|
|
137
|
+
*/
|
|
138
|
+
userEvents(wallet: EvmWalletProvider, args: z.infer<typeof userEventsActionSchema>): Promise<string>;
|
|
100
139
|
/**
|
|
101
140
|
* Checks if this provider supports the given network.
|
|
102
141
|
*
|
|
@@ -111,4 +150,4 @@ export declare class VaultsfyiActionProvider extends ActionProvider<EvmWalletPro
|
|
|
111
150
|
* @param config - Configuration options for the provider
|
|
112
151
|
* @returns A new VaultsfyiActionProvider instance
|
|
113
152
|
*/
|
|
114
|
-
export declare const vaultsfyiActionProvider: (config
|
|
153
|
+
export declare const vaultsfyiActionProvider: (config?: VaultsfyiActionProviderConfig) => VaultsfyiActionProvider;
|