@compass-labs/api-sdk 0.5.47 → 0.5.49
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/FUNCTIONS.md +3 -3
- package/README.md +13 -6
- package/bin/mcp-server.js +1003 -553
- package/bin/mcp-server.js.map +21 -12
- package/dist/commonjs/funcs/aaveV3AaveSupportedTokens.d.ts +25 -0
- package/dist/commonjs/funcs/aaveV3AaveSupportedTokens.d.ts.map +1 -0
- package/dist/commonjs/funcs/aaveV3AaveSupportedTokens.js +129 -0
- package/dist/commonjs/funcs/aaveV3AaveSupportedTokens.js.map +1 -0
- package/dist/commonjs/funcs/swapOdos.d.ts +25 -0
- package/dist/commonjs/funcs/swapOdos.d.ts.map +1 -0
- package/dist/commonjs/funcs/swapOdos.js +125 -0
- package/dist/commonjs/funcs/swapOdos.js.map +1 -0
- package/dist/commonjs/lib/config.d.ts +3 -3
- package/dist/commonjs/lib/config.js +3 -3
- package/dist/commonjs/mcp-server/mcp-server.js +1 -1
- package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
- package/dist/commonjs/mcp-server/server.js +5 -1
- package/dist/commonjs/mcp-server/server.js.map +1 -1
- package/dist/commonjs/mcp-server/tools/aaveV3AaveSupportedTokens.d.ts +8 -0
- package/dist/commonjs/mcp-server/tools/aaveV3AaveSupportedTokens.d.ts.map +1 -0
- package/dist/commonjs/mcp-server/tools/aaveV3AaveSupportedTokens.js +70 -0
- package/dist/commonjs/mcp-server/tools/aaveV3AaveSupportedTokens.js.map +1 -0
- package/dist/commonjs/mcp-server/tools/swapOdos.d.ts +8 -0
- package/dist/commonjs/mcp-server/tools/swapOdos.d.ts.map +1 -0
- package/dist/commonjs/mcp-server/tools/swapOdos.js +72 -0
- package/dist/commonjs/mcp-server/tools/swapOdos.js.map +1 -0
- package/dist/commonjs/models/components/aavesupportedtokenmetadata.d.ts +47 -0
- package/dist/commonjs/models/components/aavesupportedtokenmetadata.d.ts.map +1 -0
- package/dist/commonjs/models/components/aavesupportedtokenmetadata.js +86 -0
- package/dist/commonjs/models/components/aavesupportedtokenmetadata.js.map +1 -0
- package/dist/commonjs/models/components/aavesupportedtokensresponse.d.ts +33 -0
- package/dist/commonjs/models/components/aavesupportedtokensresponse.d.ts.map +1 -0
- package/dist/commonjs/models/components/aavesupportedtokensresponse.js +70 -0
- package/dist/commonjs/models/components/aavesupportedtokensresponse.js.map +1 -0
- package/dist/commonjs/models/components/index.d.ts +4 -0
- package/dist/commonjs/models/components/index.d.ts.map +1 -1
- package/dist/commonjs/models/components/index.js +4 -0
- package/dist/commonjs/models/components/index.js.map +1 -1
- package/dist/commonjs/models/components/odosswapparams.d.ts +122 -0
- package/dist/commonjs/models/components/odosswapparams.d.ts.map +1 -0
- package/dist/commonjs/models/components/odosswapparams.js +162 -0
- package/dist/commonjs/models/components/odosswapparams.js.map +1 -0
- package/dist/commonjs/models/components/odosswaprequest.d.ts +133 -0
- package/dist/commonjs/models/components/odosswaprequest.d.ts.map +1 -0
- package/dist/commonjs/models/components/odosswaprequest.js +167 -0
- package/dist/commonjs/models/components/odosswaprequest.js.map +1 -0
- package/dist/commonjs/models/components/setallowanceparams.d.ts +3 -0
- package/dist/commonjs/models/components/setallowanceparams.d.ts.map +1 -1
- package/dist/commonjs/models/components/setallowanceparams.js +1 -0
- package/dist/commonjs/models/components/setallowanceparams.js.map +1 -1
- package/dist/commonjs/models/components/setallowancerequest.d.ts +3 -0
- package/dist/commonjs/models/components/setallowancerequest.d.ts.map +1 -1
- package/dist/commonjs/models/components/setallowancerequest.js +1 -0
- package/dist/commonjs/models/components/setallowancerequest.js.map +1 -1
- package/dist/commonjs/models/components/useroperation.d.ts +9 -0
- package/dist/commonjs/models/components/useroperation.d.ts.map +1 -1
- package/dist/commonjs/models/components/useroperation.js +13 -0
- package/dist/commonjs/models/components/useroperation.js.map +1 -1
- package/dist/commonjs/models/operations/aaveaavesupportedtokens.d.ts +72 -0
- package/dist/commonjs/models/operations/aaveaavesupportedtokens.d.ts.map +1 -0
- package/dist/commonjs/models/operations/aaveaavesupportedtokens.js +94 -0
- package/dist/commonjs/models/operations/aaveaavesupportedtokens.js.map +1 -0
- package/dist/commonjs/models/operations/genericallowance.d.ts +3 -0
- package/dist/commonjs/models/operations/genericallowance.d.ts.map +1 -1
- package/dist/commonjs/models/operations/genericallowance.js +1 -0
- package/dist/commonjs/models/operations/genericallowance.js.map +1 -1
- package/dist/commonjs/models/operations/index.d.ts +1 -0
- package/dist/commonjs/models/operations/index.d.ts.map +1 -1
- package/dist/commonjs/models/operations/index.js +1 -0
- package/dist/commonjs/models/operations/index.js.map +1 -1
- package/dist/commonjs/sdk/aavev3.d.ts +13 -0
- package/dist/commonjs/sdk/aavev3.d.ts.map +1 -1
- package/dist/commonjs/sdk/aavev3.js +16 -0
- package/dist/commonjs/sdk/aavev3.js.map +1 -1
- package/dist/commonjs/sdk/sdk.d.ts +3 -0
- package/dist/commonjs/sdk/sdk.d.ts.map +1 -1
- package/dist/commonjs/sdk/sdk.js +4 -0
- package/dist/commonjs/sdk/sdk.js.map +1 -1
- package/dist/commonjs/sdk/swap.d.ts +19 -0
- package/dist/commonjs/sdk/swap.d.ts.map +1 -0
- package/dist/commonjs/sdk/swap.js +29 -0
- package/dist/commonjs/sdk/swap.js.map +1 -0
- package/dist/esm/funcs/aaveV3AaveSupportedTokens.d.ts +25 -0
- package/dist/esm/funcs/aaveV3AaveSupportedTokens.d.ts.map +1 -0
- package/dist/esm/funcs/aaveV3AaveSupportedTokens.js +93 -0
- package/dist/esm/funcs/aaveV3AaveSupportedTokens.js.map +1 -0
- package/dist/esm/funcs/swapOdos.d.ts +25 -0
- package/dist/esm/funcs/swapOdos.d.ts.map +1 -0
- package/dist/esm/funcs/swapOdos.js +89 -0
- package/dist/esm/funcs/swapOdos.js.map +1 -0
- package/dist/esm/lib/config.d.ts +3 -3
- package/dist/esm/lib/config.js +3 -3
- package/dist/esm/mcp-server/mcp-server.js +1 -1
- package/dist/esm/mcp-server/server.d.ts.map +1 -1
- package/dist/esm/mcp-server/server.js +5 -1
- package/dist/esm/mcp-server/server.js.map +1 -1
- package/dist/esm/mcp-server/tools/aaveV3AaveSupportedTokens.d.ts +8 -0
- package/dist/esm/mcp-server/tools/aaveV3AaveSupportedTokens.d.ts.map +1 -0
- package/dist/esm/mcp-server/tools/aaveV3AaveSupportedTokens.js +34 -0
- package/dist/esm/mcp-server/tools/aaveV3AaveSupportedTokens.js.map +1 -0
- package/dist/esm/mcp-server/tools/swapOdos.d.ts +8 -0
- package/dist/esm/mcp-server/tools/swapOdos.d.ts.map +1 -0
- package/dist/esm/mcp-server/tools/swapOdos.js +36 -0
- package/dist/esm/mcp-server/tools/swapOdos.js.map +1 -0
- package/dist/esm/models/components/aavesupportedtokenmetadata.d.ts +47 -0
- package/dist/esm/models/components/aavesupportedtokenmetadata.d.ts.map +1 -0
- package/dist/esm/models/components/aavesupportedtokenmetadata.js +48 -0
- package/dist/esm/models/components/aavesupportedtokenmetadata.js.map +1 -0
- package/dist/esm/models/components/aavesupportedtokensresponse.d.ts +33 -0
- package/dist/esm/models/components/aavesupportedtokensresponse.d.ts.map +1 -0
- package/dist/esm/models/components/aavesupportedtokensresponse.js +32 -0
- package/dist/esm/models/components/aavesupportedtokensresponse.js.map +1 -0
- package/dist/esm/models/components/index.d.ts +4 -0
- package/dist/esm/models/components/index.d.ts.map +1 -1
- package/dist/esm/models/components/index.js +4 -0
- package/dist/esm/models/components/index.js.map +1 -1
- package/dist/esm/models/components/odosswapparams.d.ts +122 -0
- package/dist/esm/models/components/odosswapparams.d.ts.map +1 -0
- package/dist/esm/models/components/odosswapparams.js +118 -0
- package/dist/esm/models/components/odosswapparams.js.map +1 -0
- package/dist/esm/models/components/odosswaprequest.d.ts +133 -0
- package/dist/esm/models/components/odosswaprequest.d.ts.map +1 -0
- package/dist/esm/models/components/odosswaprequest.js +123 -0
- package/dist/esm/models/components/odosswaprequest.js.map +1 -0
- package/dist/esm/models/components/setallowanceparams.d.ts +3 -0
- package/dist/esm/models/components/setallowanceparams.d.ts.map +1 -1
- package/dist/esm/models/components/setallowanceparams.js +1 -0
- package/dist/esm/models/components/setallowanceparams.js.map +1 -1
- package/dist/esm/models/components/setallowancerequest.d.ts +3 -0
- package/dist/esm/models/components/setallowancerequest.d.ts.map +1 -1
- package/dist/esm/models/components/setallowancerequest.js +1 -0
- package/dist/esm/models/components/setallowancerequest.js.map +1 -1
- package/dist/esm/models/components/useroperation.d.ts +9 -0
- package/dist/esm/models/components/useroperation.d.ts.map +1 -1
- package/dist/esm/models/components/useroperation.js +13 -0
- package/dist/esm/models/components/useroperation.js.map +1 -1
- package/dist/esm/models/operations/aaveaavesupportedtokens.d.ts +72 -0
- package/dist/esm/models/operations/aaveaavesupportedtokens.d.ts.map +1 -0
- package/dist/esm/models/operations/aaveaavesupportedtokens.js +56 -0
- package/dist/esm/models/operations/aaveaavesupportedtokens.js.map +1 -0
- package/dist/esm/models/operations/genericallowance.d.ts +3 -0
- package/dist/esm/models/operations/genericallowance.d.ts.map +1 -1
- package/dist/esm/models/operations/genericallowance.js +1 -0
- package/dist/esm/models/operations/genericallowance.js.map +1 -1
- package/dist/esm/models/operations/index.d.ts +1 -0
- package/dist/esm/models/operations/index.d.ts.map +1 -1
- package/dist/esm/models/operations/index.js +1 -0
- package/dist/esm/models/operations/index.js.map +1 -1
- package/dist/esm/sdk/aavev3.d.ts +13 -0
- package/dist/esm/sdk/aavev3.d.ts.map +1 -1
- package/dist/esm/sdk/aavev3.js +16 -0
- package/dist/esm/sdk/aavev3.js.map +1 -1
- package/dist/esm/sdk/sdk.d.ts +3 -0
- package/dist/esm/sdk/sdk.d.ts.map +1 -1
- package/dist/esm/sdk/sdk.js +4 -0
- package/dist/esm/sdk/sdk.js.map +1 -1
- package/dist/esm/sdk/swap.d.ts +19 -0
- package/dist/esm/sdk/swap.d.ts.map +1 -0
- package/dist/esm/sdk/swap.js +25 -0
- package/dist/esm/sdk/swap.js.map +1 -0
- package/docs/sdks/aavev3/README.md +76 -0
- package/docs/sdks/swap/README.md +99 -0
- package/examples/{aaveV3Rate.example.ts → aaveV3AaveSupportedTokens.example.ts} +2 -2
- package/jsr.json +1 -1
- package/package.json +1 -1
- package/src/funcs/aaveV3AaveSupportedTokens.ts +182 -0
- package/src/funcs/swapOdos.ts +176 -0
- package/src/lib/config.ts +3 -3
- package/src/mcp-server/mcp-server.ts +1 -1
- package/src/mcp-server/server.ts +5 -1
- package/src/mcp-server/tools/aaveV3AaveSupportedTokens.ts +43 -0
- package/src/mcp-server/tools/swapOdos.ts +45 -0
- package/src/models/components/aavesupportedtokenmetadata.ts +101 -0
- package/src/models/components/aavesupportedtokensresponse.ts +77 -0
- package/src/models/components/index.ts +4 -0
- package/src/models/components/odosswapparams.ts +269 -0
- package/src/models/components/odosswaprequest.ts +286 -0
- package/src/models/components/setallowanceparams.ts +1 -0
- package/src/models/components/setallowancerequest.ts +1 -0
- package/src/models/components/useroperation.ts +30 -0
- package/src/models/operations/aaveaavesupportedtokens.ts +117 -0
- package/src/models/operations/genericallowance.ts +1 -0
- package/src/models/operations/index.ts +1 -0
- package/src/sdk/aavev3.ts +24 -0
- package/src/sdk/sdk.ts +6 -0
- package/src/sdk/swap.ts +34 -0
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# Swap
|
|
2
|
+
(*swap*)
|
|
3
|
+
|
|
4
|
+
## Overview
|
|
5
|
+
|
|
6
|
+
### Available Operations
|
|
7
|
+
|
|
8
|
+
* [odos](#odos) - Odos Swap
|
|
9
|
+
|
|
10
|
+
## odos
|
|
11
|
+
|
|
12
|
+
Swap between two tokens using Odos Smart Order Routing.
|
|
13
|
+
<Info>
|
|
14
|
+
**Required Allowances**
|
|
15
|
+
|
|
16
|
+
In order to make this transaction, token allowances need to be set on the following contracts.
|
|
17
|
+
|
|
18
|
+
- `OdosRouter`
|
|
19
|
+
</Info>
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Example Usage
|
|
23
|
+
|
|
24
|
+
```typescript
|
|
25
|
+
import { CompassApiSDK } from "@compass-labs/api-sdk";
|
|
26
|
+
|
|
27
|
+
const compassApiSDK = new CompassApiSDK({
|
|
28
|
+
apiKeyAuth: "<YOUR_API_KEY_HERE>",
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
async function run() {
|
|
32
|
+
const result = await compassApiSDK.swap.odos({
|
|
33
|
+
tokenIn: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
34
|
+
tokenOut: "0xdac17f958d2ee523a2206206994597c13d831ec7",
|
|
35
|
+
amount: 1.5,
|
|
36
|
+
maxSlippagePercent: 0.5,
|
|
37
|
+
chain: "ethereum:mainnet",
|
|
38
|
+
sender: "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B",
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
console.log(result);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
run();
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Standalone function
|
|
48
|
+
|
|
49
|
+
The standalone function version of this method:
|
|
50
|
+
|
|
51
|
+
```typescript
|
|
52
|
+
import { CompassApiSDKCore } from "@compass-labs/api-sdk/core.js";
|
|
53
|
+
import { swapOdos } from "@compass-labs/api-sdk/funcs/swapOdos.js";
|
|
54
|
+
|
|
55
|
+
// Use `CompassApiSDKCore` for best tree-shaking performance.
|
|
56
|
+
// You can create one instance of it to use across an application.
|
|
57
|
+
const compassApiSDK = new CompassApiSDKCore({
|
|
58
|
+
apiKeyAuth: "<YOUR_API_KEY_HERE>",
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
async function run() {
|
|
62
|
+
const res = await swapOdos(compassApiSDK, {
|
|
63
|
+
tokenIn: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
|
|
64
|
+
tokenOut: "0xdac17f958d2ee523a2206206994597c13d831ec7",
|
|
65
|
+
amount: 1.5,
|
|
66
|
+
maxSlippagePercent: 0.5,
|
|
67
|
+
chain: "ethereum:mainnet",
|
|
68
|
+
sender: "0x29F20a192328eF1aD35e1564aBFf4Be9C5ce5f7B",
|
|
69
|
+
});
|
|
70
|
+
if (res.ok) {
|
|
71
|
+
const { value: result } = res;
|
|
72
|
+
console.log(result);
|
|
73
|
+
} else {
|
|
74
|
+
console.log("swapOdos failed:", res.error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
run();
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Parameters
|
|
82
|
+
|
|
83
|
+
| Parameter | Type | Required | Description |
|
|
84
|
+
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
85
|
+
| `request` | [components.OdosSwapRequest](../../models/components/odosswaprequest.md) | :heavy_check_mark: | The request object to use for the request. |
|
|
86
|
+
| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. |
|
|
87
|
+
| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. |
|
|
88
|
+
| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. |
|
|
89
|
+
|
|
90
|
+
### Response
|
|
91
|
+
|
|
92
|
+
**Promise\<[components.TxResponse](../../models/components/txresponse.md)\>**
|
|
93
|
+
|
|
94
|
+
### Errors
|
|
95
|
+
|
|
96
|
+
| Error Type | Status Code | Content Type |
|
|
97
|
+
| -------------------------- | -------------------------- | -------------------------- |
|
|
98
|
+
| errors.HTTPValidationError | 422 | application/json |
|
|
99
|
+
| errors.APIError | 4XX, 5XX | \*/\* |
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* Example usage of the @compass-labs/api-sdk SDK
|
|
7
7
|
*
|
|
8
8
|
* To run this example from the examples directory:
|
|
9
|
-
* npm run build && npx tsx
|
|
9
|
+
* npm run build && npx tsx aaveV3AaveSupportedTokens.ts
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
import { CompassApiSDK } from "@compass-labs/api-sdk";
|
|
@@ -16,7 +16,7 @@ const compassApiSDK = new CompassApiSDK({
|
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
async function main() {
|
|
19
|
-
const result = await compassApiSDK.
|
|
19
|
+
const result = await compassApiSDK.aaveSupportedTokens({});
|
|
20
20
|
|
|
21
21
|
console.log(result);
|
|
22
22
|
}
|
package/jsr.json
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { CompassApiSDKCore } from "../core.js";
|
|
6
|
+
import { encodeFormQuery } from "../lib/encodings.js";
|
|
7
|
+
import * as M from "../lib/matchers.js";
|
|
8
|
+
import { compactMap } from "../lib/primitives.js";
|
|
9
|
+
import { safeParse } from "../lib/schemas.js";
|
|
10
|
+
import { RequestOptions } from "../lib/sdks.js";
|
|
11
|
+
import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
|
|
12
|
+
import { pathToFunc } from "../lib/url.js";
|
|
13
|
+
import * as components from "../models/components/index.js";
|
|
14
|
+
import { CompassAPISDKError } from "../models/errors/compassapisdkerror.js";
|
|
15
|
+
import {
|
|
16
|
+
ConnectionError,
|
|
17
|
+
InvalidRequestError,
|
|
18
|
+
RequestAbortedError,
|
|
19
|
+
RequestTimeoutError,
|
|
20
|
+
UnexpectedClientError,
|
|
21
|
+
} from "../models/errors/httpclienterrors.js";
|
|
22
|
+
import * as errors from "../models/errors/index.js";
|
|
23
|
+
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
|
|
24
|
+
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
25
|
+
import * as operations from "../models/operations/index.js";
|
|
26
|
+
import { APICall, APIPromise } from "../types/async.js";
|
|
27
|
+
import { Result } from "../types/fp.js";
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Aave Supported Tokens
|
|
31
|
+
*
|
|
32
|
+
* @remarks
|
|
33
|
+
* Returns the list of supported tokens on Aave for the specified network, along
|
|
34
|
+
* with key metadata.
|
|
35
|
+
*
|
|
36
|
+
* For each token, the response includes:
|
|
37
|
+
* - The symbol and contract address.
|
|
38
|
+
* - Whether the token is currently enabled for supplying (depositing).
|
|
39
|
+
* - Whether it is enabled for borrowing.
|
|
40
|
+
*/
|
|
41
|
+
export function aaveV3AaveSupportedTokens(
|
|
42
|
+
client: CompassApiSDKCore,
|
|
43
|
+
request: operations.AaveAaveSupportedTokensRequest,
|
|
44
|
+
options?: RequestOptions,
|
|
45
|
+
): APIPromise<
|
|
46
|
+
Result<
|
|
47
|
+
components.AaveSupportedTokensResponse,
|
|
48
|
+
| errors.HTTPValidationError
|
|
49
|
+
| CompassAPISDKError
|
|
50
|
+
| ResponseValidationError
|
|
51
|
+
| ConnectionError
|
|
52
|
+
| RequestAbortedError
|
|
53
|
+
| RequestTimeoutError
|
|
54
|
+
| InvalidRequestError
|
|
55
|
+
| UnexpectedClientError
|
|
56
|
+
| SDKValidationError
|
|
57
|
+
>
|
|
58
|
+
> {
|
|
59
|
+
return new APIPromise($do(
|
|
60
|
+
client,
|
|
61
|
+
request,
|
|
62
|
+
options,
|
|
63
|
+
));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async function $do(
|
|
67
|
+
client: CompassApiSDKCore,
|
|
68
|
+
request: operations.AaveAaveSupportedTokensRequest,
|
|
69
|
+
options?: RequestOptions,
|
|
70
|
+
): Promise<
|
|
71
|
+
[
|
|
72
|
+
Result<
|
|
73
|
+
components.AaveSupportedTokensResponse,
|
|
74
|
+
| errors.HTTPValidationError
|
|
75
|
+
| CompassAPISDKError
|
|
76
|
+
| ResponseValidationError
|
|
77
|
+
| ConnectionError
|
|
78
|
+
| RequestAbortedError
|
|
79
|
+
| RequestTimeoutError
|
|
80
|
+
| InvalidRequestError
|
|
81
|
+
| UnexpectedClientError
|
|
82
|
+
| SDKValidationError
|
|
83
|
+
>,
|
|
84
|
+
APICall,
|
|
85
|
+
]
|
|
86
|
+
> {
|
|
87
|
+
const parsed = safeParse(
|
|
88
|
+
request,
|
|
89
|
+
(value) =>
|
|
90
|
+
operations.AaveAaveSupportedTokensRequest$outboundSchema.parse(value),
|
|
91
|
+
"Input validation failed",
|
|
92
|
+
);
|
|
93
|
+
if (!parsed.ok) {
|
|
94
|
+
return [parsed, { status: "invalid" }];
|
|
95
|
+
}
|
|
96
|
+
const payload = parsed.value;
|
|
97
|
+
const body = null;
|
|
98
|
+
|
|
99
|
+
const path = pathToFunc("/v0/aave/aave_supported_tokens/get")();
|
|
100
|
+
|
|
101
|
+
const query = encodeFormQuery({
|
|
102
|
+
"block": payload.block,
|
|
103
|
+
"chain": payload.chain,
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
const headers = new Headers(compactMap({
|
|
107
|
+
Accept: "application/json",
|
|
108
|
+
}));
|
|
109
|
+
|
|
110
|
+
const secConfig = await extractSecurity(client._options.apiKeyAuth);
|
|
111
|
+
const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
|
|
112
|
+
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
113
|
+
|
|
114
|
+
const context = {
|
|
115
|
+
options: client._options,
|
|
116
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
117
|
+
operationID: "aave_aave_supported_tokens",
|
|
118
|
+
oAuth2Scopes: [],
|
|
119
|
+
|
|
120
|
+
resolvedSecurity: requestSecurity,
|
|
121
|
+
|
|
122
|
+
securitySource: client._options.apiKeyAuth,
|
|
123
|
+
retryConfig: options?.retries
|
|
124
|
+
|| client._options.retryConfig
|
|
125
|
+
|| { strategy: "none" },
|
|
126
|
+
retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
const requestRes = client._createRequest(context, {
|
|
130
|
+
security: requestSecurity,
|
|
131
|
+
method: "GET",
|
|
132
|
+
baseURL: options?.serverURL,
|
|
133
|
+
path: path,
|
|
134
|
+
headers: headers,
|
|
135
|
+
query: query,
|
|
136
|
+
body: body,
|
|
137
|
+
userAgent: client._options.userAgent,
|
|
138
|
+
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
139
|
+
}, options);
|
|
140
|
+
if (!requestRes.ok) {
|
|
141
|
+
return [requestRes, { status: "invalid" }];
|
|
142
|
+
}
|
|
143
|
+
const req = requestRes.value;
|
|
144
|
+
|
|
145
|
+
const doResult = await client._do(req, {
|
|
146
|
+
context,
|
|
147
|
+
errorCodes: ["422", "4XX", "5XX"],
|
|
148
|
+
retryConfig: context.retryConfig,
|
|
149
|
+
retryCodes: context.retryCodes,
|
|
150
|
+
});
|
|
151
|
+
if (!doResult.ok) {
|
|
152
|
+
return [doResult, { status: "request-error", request: req }];
|
|
153
|
+
}
|
|
154
|
+
const response = doResult.value;
|
|
155
|
+
|
|
156
|
+
const responseFields = {
|
|
157
|
+
HttpMeta: { Response: response, Request: req },
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const [result] = await M.match<
|
|
161
|
+
components.AaveSupportedTokensResponse,
|
|
162
|
+
| errors.HTTPValidationError
|
|
163
|
+
| CompassAPISDKError
|
|
164
|
+
| ResponseValidationError
|
|
165
|
+
| ConnectionError
|
|
166
|
+
| RequestAbortedError
|
|
167
|
+
| RequestTimeoutError
|
|
168
|
+
| InvalidRequestError
|
|
169
|
+
| UnexpectedClientError
|
|
170
|
+
| SDKValidationError
|
|
171
|
+
>(
|
|
172
|
+
M.json(200, components.AaveSupportedTokensResponse$inboundSchema),
|
|
173
|
+
M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
|
|
174
|
+
M.fail("4XX"),
|
|
175
|
+
M.fail("5XX"),
|
|
176
|
+
)(response, req, { extraFields: responseFields });
|
|
177
|
+
if (!result.ok) {
|
|
178
|
+
return [result, { status: "complete", request: req, response }];
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return [result, { status: "complete", request: req, response }];
|
|
182
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { CompassApiSDKCore } from "../core.js";
|
|
6
|
+
import { encodeJSON } from "../lib/encodings.js";
|
|
7
|
+
import * as M from "../lib/matchers.js";
|
|
8
|
+
import { compactMap } from "../lib/primitives.js";
|
|
9
|
+
import { safeParse } from "../lib/schemas.js";
|
|
10
|
+
import { RequestOptions } from "../lib/sdks.js";
|
|
11
|
+
import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
|
|
12
|
+
import { pathToFunc } from "../lib/url.js";
|
|
13
|
+
import * as components from "../models/components/index.js";
|
|
14
|
+
import { CompassAPISDKError } from "../models/errors/compassapisdkerror.js";
|
|
15
|
+
import {
|
|
16
|
+
ConnectionError,
|
|
17
|
+
InvalidRequestError,
|
|
18
|
+
RequestAbortedError,
|
|
19
|
+
RequestTimeoutError,
|
|
20
|
+
UnexpectedClientError,
|
|
21
|
+
} from "../models/errors/httpclienterrors.js";
|
|
22
|
+
import * as errors from "../models/errors/index.js";
|
|
23
|
+
import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
|
|
24
|
+
import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
|
|
25
|
+
import { APICall, APIPromise } from "../types/async.js";
|
|
26
|
+
import { Result } from "../types/fp.js";
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Odos Swap
|
|
30
|
+
*
|
|
31
|
+
* @remarks
|
|
32
|
+
* Swap between two tokens using Odos Smart Order Routing.
|
|
33
|
+
* <Info>
|
|
34
|
+
* **Required Allowances**
|
|
35
|
+
*
|
|
36
|
+
* In order to make this transaction, token allowances need to be set on the following contracts.
|
|
37
|
+
*
|
|
38
|
+
* - `OdosRouter`
|
|
39
|
+
* </Info>
|
|
40
|
+
*/
|
|
41
|
+
export function swapOdos(
|
|
42
|
+
client: CompassApiSDKCore,
|
|
43
|
+
request: components.OdosSwapRequest,
|
|
44
|
+
options?: RequestOptions,
|
|
45
|
+
): APIPromise<
|
|
46
|
+
Result<
|
|
47
|
+
components.TxResponse,
|
|
48
|
+
| errors.HTTPValidationError
|
|
49
|
+
| CompassAPISDKError
|
|
50
|
+
| ResponseValidationError
|
|
51
|
+
| ConnectionError
|
|
52
|
+
| RequestAbortedError
|
|
53
|
+
| RequestTimeoutError
|
|
54
|
+
| InvalidRequestError
|
|
55
|
+
| UnexpectedClientError
|
|
56
|
+
| SDKValidationError
|
|
57
|
+
>
|
|
58
|
+
> {
|
|
59
|
+
return new APIPromise($do(
|
|
60
|
+
client,
|
|
61
|
+
request,
|
|
62
|
+
options,
|
|
63
|
+
));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async function $do(
|
|
67
|
+
client: CompassApiSDKCore,
|
|
68
|
+
request: components.OdosSwapRequest,
|
|
69
|
+
options?: RequestOptions,
|
|
70
|
+
): Promise<
|
|
71
|
+
[
|
|
72
|
+
Result<
|
|
73
|
+
components.TxResponse,
|
|
74
|
+
| errors.HTTPValidationError
|
|
75
|
+
| CompassAPISDKError
|
|
76
|
+
| ResponseValidationError
|
|
77
|
+
| ConnectionError
|
|
78
|
+
| RequestAbortedError
|
|
79
|
+
| RequestTimeoutError
|
|
80
|
+
| InvalidRequestError
|
|
81
|
+
| UnexpectedClientError
|
|
82
|
+
| SDKValidationError
|
|
83
|
+
>,
|
|
84
|
+
APICall,
|
|
85
|
+
]
|
|
86
|
+
> {
|
|
87
|
+
const parsed = safeParse(
|
|
88
|
+
request,
|
|
89
|
+
(value) => components.OdosSwapRequest$outboundSchema.parse(value),
|
|
90
|
+
"Input validation failed",
|
|
91
|
+
);
|
|
92
|
+
if (!parsed.ok) {
|
|
93
|
+
return [parsed, { status: "invalid" }];
|
|
94
|
+
}
|
|
95
|
+
const payload = parsed.value;
|
|
96
|
+
const body = encodeJSON("body", payload, { explode: true });
|
|
97
|
+
|
|
98
|
+
const path = pathToFunc("/v0/swap/odos")();
|
|
99
|
+
|
|
100
|
+
const headers = new Headers(compactMap({
|
|
101
|
+
"Content-Type": "application/json",
|
|
102
|
+
Accept: "application/json",
|
|
103
|
+
}));
|
|
104
|
+
|
|
105
|
+
const secConfig = await extractSecurity(client._options.apiKeyAuth);
|
|
106
|
+
const securityInput = secConfig == null ? {} : { apiKeyAuth: secConfig };
|
|
107
|
+
const requestSecurity = resolveGlobalSecurity(securityInput);
|
|
108
|
+
|
|
109
|
+
const context = {
|
|
110
|
+
options: client._options,
|
|
111
|
+
baseURL: options?.serverURL ?? client._baseURL ?? "",
|
|
112
|
+
operationID: "swap_odos",
|
|
113
|
+
oAuth2Scopes: [],
|
|
114
|
+
|
|
115
|
+
resolvedSecurity: requestSecurity,
|
|
116
|
+
|
|
117
|
+
securitySource: client._options.apiKeyAuth,
|
|
118
|
+
retryConfig: options?.retries
|
|
119
|
+
|| client._options.retryConfig
|
|
120
|
+
|| { strategy: "none" },
|
|
121
|
+
retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const requestRes = client._createRequest(context, {
|
|
125
|
+
security: requestSecurity,
|
|
126
|
+
method: "POST",
|
|
127
|
+
baseURL: options?.serverURL,
|
|
128
|
+
path: path,
|
|
129
|
+
headers: headers,
|
|
130
|
+
body: body,
|
|
131
|
+
userAgent: client._options.userAgent,
|
|
132
|
+
timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
|
|
133
|
+
}, options);
|
|
134
|
+
if (!requestRes.ok) {
|
|
135
|
+
return [requestRes, { status: "invalid" }];
|
|
136
|
+
}
|
|
137
|
+
const req = requestRes.value;
|
|
138
|
+
|
|
139
|
+
const doResult = await client._do(req, {
|
|
140
|
+
context,
|
|
141
|
+
errorCodes: ["422", "4XX", "5XX"],
|
|
142
|
+
retryConfig: context.retryConfig,
|
|
143
|
+
retryCodes: context.retryCodes,
|
|
144
|
+
});
|
|
145
|
+
if (!doResult.ok) {
|
|
146
|
+
return [doResult, { status: "request-error", request: req }];
|
|
147
|
+
}
|
|
148
|
+
const response = doResult.value;
|
|
149
|
+
|
|
150
|
+
const responseFields = {
|
|
151
|
+
HttpMeta: { Response: response, Request: req },
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
const [result] = await M.match<
|
|
155
|
+
components.TxResponse,
|
|
156
|
+
| errors.HTTPValidationError
|
|
157
|
+
| CompassAPISDKError
|
|
158
|
+
| ResponseValidationError
|
|
159
|
+
| ConnectionError
|
|
160
|
+
| RequestAbortedError
|
|
161
|
+
| RequestTimeoutError
|
|
162
|
+
| InvalidRequestError
|
|
163
|
+
| UnexpectedClientError
|
|
164
|
+
| SDKValidationError
|
|
165
|
+
>(
|
|
166
|
+
M.json(200, components.TxResponse$inboundSchema),
|
|
167
|
+
M.jsonErr(422, errors.HTTPValidationError$inboundSchema),
|
|
168
|
+
M.fail("4XX"),
|
|
169
|
+
M.fail("5XX"),
|
|
170
|
+
)(response, req, { extraFields: responseFields });
|
|
171
|
+
if (!result.ok) {
|
|
172
|
+
return [result, { status: "complete", request: req, response }];
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return [result, { status: "complete", request: req, response }];
|
|
176
|
+
}
|
package/src/lib/config.ts
CHANGED
|
@@ -61,8 +61,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
|
|
|
61
61
|
export const SDK_METADATA = {
|
|
62
62
|
language: "typescript",
|
|
63
63
|
openapiDocVersion: "0.0.1",
|
|
64
|
-
sdkVersion: "0.5.
|
|
65
|
-
genVersion: "2.
|
|
64
|
+
sdkVersion: "0.5.49",
|
|
65
|
+
genVersion: "2.657.1",
|
|
66
66
|
userAgent:
|
|
67
|
-
"speakeasy-sdk/typescript 0.5.
|
|
67
|
+
"speakeasy-sdk/typescript 0.5.49 2.657.1 0.0.1 @compass-labs/api-sdk",
|
|
68
68
|
} as const;
|
package/src/mcp-server/server.ts
CHANGED
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from "./resources.js";
|
|
14
14
|
import { MCPScope } from "./scopes.js";
|
|
15
15
|
import { createRegisterTool } from "./tools.js";
|
|
16
|
+
import { tool$aaveV3AaveSupportedTokens } from "./tools/aaveV3AaveSupportedTokens.js";
|
|
16
17
|
import { tool$aaveV3AvgRate } from "./tools/aaveV3AvgRate.js";
|
|
17
18
|
import { tool$aaveV3Borrow } from "./tools/aaveV3Borrow.js";
|
|
18
19
|
import { tool$aaveV3HistoricalTransactions } from "./tools/aaveV3HistoricalTransactions.js";
|
|
@@ -65,6 +66,7 @@ import { tool$skyPosition } from "./tools/skyPosition.js";
|
|
|
65
66
|
import { tool$skySell } from "./tools/skySell.js";
|
|
66
67
|
import { tool$skyWithdraw } from "./tools/skyWithdraw.js";
|
|
67
68
|
import { tool$smartAccountAccountBatchedUserOperations } from "./tools/smartAccountAccountBatchedUserOperations.js";
|
|
69
|
+
import { tool$swapOdos } from "./tools/swapOdos.js";
|
|
68
70
|
import { tool$tokenAddress } from "./tools/tokenAddress.js";
|
|
69
71
|
import { tool$tokenBalance } from "./tools/tokenBalance.js";
|
|
70
72
|
import { tool$tokenPrice } from "./tools/tokenPrice.js";
|
|
@@ -101,7 +103,7 @@ export function createMCPServer(deps: {
|
|
|
101
103
|
}) {
|
|
102
104
|
const server = new McpServer({
|
|
103
105
|
name: "CompassApiSDK",
|
|
104
|
-
version: "0.5.
|
|
106
|
+
version: "0.5.49",
|
|
105
107
|
});
|
|
106
108
|
|
|
107
109
|
const client = new CompassApiSDKCore({
|
|
@@ -131,6 +133,7 @@ export function createMCPServer(deps: {
|
|
|
131
133
|
const register = { tool, resource, resourceTemplate, prompt };
|
|
132
134
|
void register; // suppress unused warnings
|
|
133
135
|
|
|
136
|
+
tool(tool$aaveV3AaveSupportedTokens);
|
|
134
137
|
tool(tool$aaveV3Rate);
|
|
135
138
|
tool(tool$aaveV3AvgRate);
|
|
136
139
|
tool(tool$aaveV3StdRate);
|
|
@@ -201,6 +204,7 @@ export function createMCPServer(deps: {
|
|
|
201
204
|
tool(tool$pendleRedeemYield);
|
|
202
205
|
tool(tool$pendleAddLiquidity);
|
|
203
206
|
tool(tool$pendleRemoveLiquidity);
|
|
207
|
+
tool(tool$swapOdos);
|
|
204
208
|
tool(tool$transactionBundlerBundlerAuthorization);
|
|
205
209
|
tool(tool$transactionBundlerBundlerExecute);
|
|
206
210
|
tool(tool$transactionBundlerBundlerAaveLoop);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { aaveV3AaveSupportedTokens } from "../../funcs/aaveV3AaveSupportedTokens.js";
|
|
6
|
+
import * as operations from "../../models/operations/index.js";
|
|
7
|
+
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
+
|
|
9
|
+
const args = {
|
|
10
|
+
request: operations.AaveAaveSupportedTokensRequest$inboundSchema,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const tool$aaveV3AaveSupportedTokens: ToolDefinition<typeof args> = {
|
|
14
|
+
name: "aave-v3-aave-supported-tokens",
|
|
15
|
+
description: `Aave Supported Tokens
|
|
16
|
+
|
|
17
|
+
Returns the list of supported tokens on Aave for the specified network, along
|
|
18
|
+
with key metadata.
|
|
19
|
+
|
|
20
|
+
For each token, the response includes:
|
|
21
|
+
- The symbol and contract address.
|
|
22
|
+
- Whether the token is currently enabled for supplying (depositing).
|
|
23
|
+
- Whether it is enabled for borrowing.`,
|
|
24
|
+
args,
|
|
25
|
+
tool: async (client, args, ctx) => {
|
|
26
|
+
const [result, apiCall] = await aaveV3AaveSupportedTokens(
|
|
27
|
+
client,
|
|
28
|
+
args.request,
|
|
29
|
+
{ fetchOptions: { signal: ctx.signal } },
|
|
30
|
+
).$inspect();
|
|
31
|
+
|
|
32
|
+
if (!result.ok) {
|
|
33
|
+
return {
|
|
34
|
+
content: [{ type: "text", text: result.error.message }],
|
|
35
|
+
isError: true,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const value = result.value;
|
|
40
|
+
|
|
41
|
+
return formatResult(value, apiCall);
|
|
42
|
+
},
|
|
43
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { swapOdos } from "../../funcs/swapOdos.js";
|
|
6
|
+
import * as components from "../../models/components/index.js";
|
|
7
|
+
import { formatResult, ToolDefinition } from "../tools.js";
|
|
8
|
+
|
|
9
|
+
const args = {
|
|
10
|
+
request: components.OdosSwapRequest$inboundSchema,
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const tool$swapOdos: ToolDefinition<typeof args> = {
|
|
14
|
+
name: "swap-odos",
|
|
15
|
+
description: `Odos Swap
|
|
16
|
+
|
|
17
|
+
Swap between two tokens using Odos Smart Order Routing.
|
|
18
|
+
<Info>
|
|
19
|
+
**Required Allowances**
|
|
20
|
+
|
|
21
|
+
In order to make this transaction, token allowances need to be set on the following contracts.
|
|
22
|
+
|
|
23
|
+
- \`OdosRouter\`
|
|
24
|
+
</Info>
|
|
25
|
+
`,
|
|
26
|
+
args,
|
|
27
|
+
tool: async (client, args, ctx) => {
|
|
28
|
+
const [result, apiCall] = await swapOdos(
|
|
29
|
+
client,
|
|
30
|
+
args.request,
|
|
31
|
+
{ fetchOptions: { signal: ctx.signal } },
|
|
32
|
+
).$inspect();
|
|
33
|
+
|
|
34
|
+
if (!result.ok) {
|
|
35
|
+
return {
|
|
36
|
+
content: [{ type: "text", text: result.error.message }],
|
|
37
|
+
isError: true,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
const value = result.value;
|
|
42
|
+
|
|
43
|
+
return formatResult(value, apiCall);
|
|
44
|
+
},
|
|
45
|
+
};
|