@lombard.finance/sdk-agentkit 0.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.
@@ -0,0 +1,44 @@
1
+ import "reflect-metadata";
2
+ import { ActionProvider, EvmWalletProvider, type Network } from "@coinbase/agentkit";
3
+ import { z } from "zod";
4
+ import { ClaimDepositSchema, DeployToDefiSchema, GetBtcbBalanceSchema, GetDepositStatusSchema, GetLbtcBalanceSchema, GetLbtcExchangeRateSchema, GetUnstakeStatusSchema, RedeemLbtcToBtcbSchema, StakeBtcbToLbtcSchema, UnstakeLbtcSchema } from "./schemas";
5
+ /**
6
+ * LombardActionProvider exposes Lombard protocol operations
7
+ * (stake, unstake, redeem, deploy, claim) as Coinbase AgentKit actions.
8
+ *
9
+ * SECURITY: This provider executes real transactions. Configure your wallet
10
+ * provider with appropriate spending limits. All amounts are validated to be
11
+ * positive numeric strings under 1000 BTC equivalent.
12
+ *
13
+ * Usage:
14
+ * ```ts
15
+ * import { lombardActionProvider } from '@lombard.finance/sdk-agentkit';
16
+ *
17
+ * const agentkit = await AgentKit.from({
18
+ * walletProvider,
19
+ * actionProviders: [lombardActionProvider()],
20
+ * });
21
+ * ```
22
+ */
23
+ export declare class LombardActionProvider extends ActionProvider<EvmWalletProvider> {
24
+ constructor();
25
+ supportsNetwork: (network: Network) => boolean;
26
+ stakeBtcbToLbtc(walletProvider: EvmWalletProvider, args: z.infer<typeof StakeBtcbToLbtcSchema>): Promise<string>;
27
+ unstakeLbtc(walletProvider: EvmWalletProvider, args: z.infer<typeof UnstakeLbtcSchema>): Promise<string>;
28
+ redeemLbtcToBtcb(walletProvider: EvmWalletProvider, args: z.infer<typeof RedeemLbtcToBtcbSchema>): Promise<string>;
29
+ deployToDefi(walletProvider: EvmWalletProvider, args: z.infer<typeof DeployToDefiSchema>): Promise<string>;
30
+ claimDeposit(walletProvider: EvmWalletProvider, args: z.infer<typeof ClaimDepositSchema>): Promise<string>;
31
+ getLbtcBalance(walletProvider: EvmWalletProvider, args: z.infer<typeof GetLbtcBalanceSchema>): Promise<string>;
32
+ getBtcbBalance(walletProvider: EvmWalletProvider, args: z.infer<typeof GetBtcbBalanceSchema>): Promise<string>;
33
+ getLbtcExchangeRate(_walletProvider: EvmWalletProvider, _args: z.infer<typeof GetLbtcExchangeRateSchema>): Promise<string>;
34
+ getDepositStatusAction(walletProvider: EvmWalletProvider, args: z.infer<typeof GetDepositStatusSchema>): Promise<string>;
35
+ getUnstakeStatus(walletProvider: EvmWalletProvider, args: z.infer<typeof GetUnstakeStatusSchema>): Promise<string>;
36
+ /**
37
+ * Ensures fee authorization is in place for chains that require it.
38
+ * On Ethereum and Sepolia, staking/unstaking requires an EIP-712 fee
39
+ * signature stored with the backend before the transaction can proceed.
40
+ */
41
+ private ensureFeeAuthorization;
42
+ }
43
+ export declare const lombardActionProvider: () => LombardActionProvider;
44
+ //# sourceMappingURL=lombardActionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lombardActionProvider.d.ts","sourceRoot":"","sources":["../src/lombardActionProvider.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EAEd,iBAAiB,EACjB,KAAK,OAAO,EACb,MAAM,oBAAoB,CAAC;AA0B5B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,WAAW,CAAC;AAQnB;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,qBAAsB,SAAQ,cAAc,CAAC,iBAAiB,CAAC;;IAK1E,eAAe,GAAI,SAAS,OAAO,KAAG,OAAO,CAE3C;IAYI,eAAe,CACnB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,GAC1C,OAAO,CAAC,MAAM,CAAC;IA+EZ,WAAW,CACf,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC;IAiFZ,gBAAgB,CACpB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC;IAmDZ,YAAY,CAChB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACvC,OAAO,CAAC,MAAM,CAAC;IA2CZ,YAAY,CAChB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,GACvC,OAAO,CAAC,MAAM,CAAC;IAmEZ,cAAc,CAClB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC;IAsCZ,cAAc,CAClB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC;IAuCZ,mBAAmB,CACvB,eAAe,EAAE,iBAAiB,EAClC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,GAC/C,OAAO,CAAC,MAAM,CAAC;IA8BZ,sBAAsB,CAC1B,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC;IAuDZ,gBAAgB,CACpB,cAAc,EAAE,iBAAiB,EACjC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC;IA2ClB;;;;OAIG;YACW,sBAAsB;CA4CrC;AAED,eAAO,MAAM,qBAAqB,6BAAoC,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { Network } from "@coinbase/agentkit";
2
+ import { ChainId } from "@lombard.finance/sdk";
3
+ import { Env } from "@lombard.finance/sdk-common";
4
+ import type { Chain } from "viem";
5
+ /**
6
+ * Maps AgentKit network IDs to Lombard SDK ChainId values.
7
+ *
8
+ * Only includes networks where Lombard contracts are deployed.
9
+ */
10
+ declare const NETWORK_ID_TO_LOMBARD_CHAIN: Record<string, ChainId>;
11
+ /**
12
+ * Maps AgentKit network IDs to Lombard SDK Env values.
13
+ */
14
+ declare const NETWORK_ID_TO_ENV: Record<string, Env>;
15
+ /**
16
+ * Maps AgentKit network IDs to viem `Chain` objects, for callers that need
17
+ * to construct a wallet/public client outside of the action provider.
18
+ */
19
+ export declare const NETWORK_ID_TO_VIEM_CHAIN: Record<string, Chain>;
20
+ export interface ResolvedNetwork {
21
+ chainId: ChainId;
22
+ env: Env;
23
+ networkId: string;
24
+ }
25
+ /**
26
+ * Resolves an AgentKit Network to Lombard SDK chain parameters.
27
+ *
28
+ * @returns ResolvedNetwork or null if the network is not supported
29
+ */
30
+ export declare function resolveNetwork(network: Network): ResolvedNetwork | null;
31
+ /**
32
+ * Resolves a user-supplied chain name string to Lombard SDK chain parameters.
33
+ *
34
+ * Accepts both AgentKit network IDs (e.g., "ethereum-mainnet") and
35
+ * friendly names (e.g., "ethereum", "base-sepolia").
36
+ */
37
+ export declare function resolveChainName(chainName: string): ResolvedNetwork | null;
38
+ /**
39
+ * Checks if a given AgentKit Network is supported by the Lombard provider.
40
+ */
41
+ export declare function isLombardSupportedNetwork(network: Network): boolean;
42
+ export { NETWORK_ID_TO_ENV, NETWORK_ID_TO_LOMBARD_CHAIN };
43
+ //# sourceMappingURL=networks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAGlC;;;;GAIG;AACH,QAAA,MAAM,2BAA2B,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAKxD,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAK1C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAK1D,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,GAAG,CAAC;IACT,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAUvE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAgC1E;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED,OAAO,EAAE,iBAAiB,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { z } from "zod";
2
+ export declare const StakeBtcbToLbtcSchema: z.ZodObject<{
3
+ amount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
4
+ }, "strip", z.ZodTypeAny, {
5
+ amount: string;
6
+ }, {
7
+ amount: string;
8
+ }>;
9
+ export declare const UnstakeLbtcSchema: z.ZodObject<{
10
+ amount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
11
+ recipient: z.ZodEffects<z.ZodString, string, string>;
12
+ outputAsset: z.ZodEnum<["BTC", "BTCb"]>;
13
+ }, "strip", z.ZodTypeAny, {
14
+ recipient: string;
15
+ amount: string;
16
+ outputAsset: "BTC" | "BTCb";
17
+ }, {
18
+ recipient: string;
19
+ amount: string;
20
+ outputAsset: "BTC" | "BTCb";
21
+ }>;
22
+ export declare const RedeemLbtcToBtcbSchema: z.ZodObject<{
23
+ amount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ amount: string;
26
+ }, {
27
+ amount: string;
28
+ }>;
29
+ export declare const DeployToDefiSchema: z.ZodObject<{
30
+ amount: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ amount: string;
33
+ }, {
34
+ amount: string;
35
+ }>;
36
+ export declare const ClaimDepositSchema: z.ZodObject<{
37
+ depositTxHash: z.ZodString;
38
+ }, "strip", z.ZodTypeAny, {
39
+ depositTxHash: string;
40
+ }, {
41
+ depositTxHash: string;
42
+ }>;
43
+ export declare const GetLbtcBalanceSchema: z.ZodObject<{
44
+ address: z.ZodOptional<z.ZodString>;
45
+ }, "strip", z.ZodTypeAny, {
46
+ address?: string | undefined;
47
+ }, {
48
+ address?: string | undefined;
49
+ }>;
50
+ export declare const GetBtcbBalanceSchema: z.ZodObject<{
51
+ address: z.ZodOptional<z.ZodString>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ address?: string | undefined;
54
+ }, {
55
+ address?: string | undefined;
56
+ }>;
57
+ export declare const GetLbtcExchangeRateSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
58
+ export declare const GetDepositStatusSchema: z.ZodObject<{
59
+ address: z.ZodOptional<z.ZodString>;
60
+ }, "strip", z.ZodTypeAny, {
61
+ address?: string | undefined;
62
+ }, {
63
+ address?: string | undefined;
64
+ }>;
65
+ export declare const GetUnstakeStatusSchema: z.ZodObject<{
66
+ address: z.ZodOptional<z.ZodString>;
67
+ }, "strip", z.ZodTypeAny, {
68
+ address?: string | undefined;
69
+ }, {
70
+ address?: string | undefined;
71
+ }>;
72
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;;;;EAShC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAyB5B,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EASjC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAO7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;EAM7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;EAQ/B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;EAQ/B,CAAC;AAEH,eAAO,MAAM,yBAAyB,gDAAe,CAAC;AAEtD,eAAO,MAAM,sBAAsB;;;;;;EAQjC,CAAC;AAEH,eAAO,MAAM,sBAAsB;;;;;;EAQjC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { EvmWalletProvider } from "@coinbase/agentkit";
2
+ import type { ChainId } from "@lombard.finance/sdk";
3
+ import { Token } from "@lombard.finance/sdk";
4
+ import type { Env } from "@lombard.finance/sdk-common";
5
+ import type { Address, EIP1193Provider } from "viem";
6
+ /**
7
+ * Adapts a Coinbase AgentKit EvmWalletProvider into a viem-compatible
8
+ * EIP1193Provider that the Lombard SDK contract functions expect.
9
+ *
10
+ * The adapter implements the `request` method by delegating to the
11
+ * appropriate EvmWalletProvider method for each JSON-RPC call.
12
+ */
13
+ export declare function toEIP1193Provider(walletProvider: EvmWalletProvider, chainId: ChainId): EIP1193Provider;
14
+ /**
15
+ * Reads an ERC20 token balance using the AgentKit wallet provider's
16
+ * readContract method directly (avoids needing EIP1193 adapter for reads).
17
+ */
18
+ export declare function getTokenBalance(walletProvider: EvmWalletProvider, token: Token, chainId: ChainId, address: Address, env?: Env): Promise<{
19
+ balance: bigint;
20
+ formatted: string;
21
+ decimals: number;
22
+ }>;
23
+ /**
24
+ * Format a result string for AgentKit action responses.
25
+ */
26
+ export declare function formatSuccess(action: string, details: Record<string, unknown>): string;
27
+ export declare function formatError(action: string, error: unknown): string;
28
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAIL,KAAK,EACN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAO,MAAM,MAAM,CAAC;AAG1D;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,iBAAiB,EACjC,OAAO,EAAE,OAAO,GACf,eAAe,CAkEjB;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,iBAAiB,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA0BnE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,MAAM,CAER;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,MAAM,CAWlE"}
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "@lombard.finance/sdk-agentkit",
3
+ "version": "0.1.0",
4
+ "description": "Lombard Action Provider for Coinbase AgentKit - stake BTC, mint LBTC, and interact with DeFi via AI agents",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/index.d.ts",
8
+ "import": "./dist/index.js",
9
+ "require": "./dist/index.cjs"
10
+ }
11
+ },
12
+ "license": "MIT",
13
+ "type": "module",
14
+ "types": "./dist/index.d.ts",
15
+ "files": [
16
+ "dist",
17
+ "LICENSE"
18
+ ],
19
+ "engines": {
20
+ "node": ">= 18.0.0"
21
+ },
22
+ "scripts": {
23
+ "types": "tsc --noEmit",
24
+ "build": "yarn types && vite build && tsc -p tsconfig.build.json",
25
+ "lint": "eslint . --ext .js,.jsx,.ts,.tsx --max-warnings=0",
26
+ "format": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"",
27
+ "format:check": "prettier --check \"src/**/*.{js,jsx,ts,tsx}\"",
28
+ "test": "vitest run",
29
+ "test:watch": "vitest watch",
30
+ "test:unit": "vitest run"
31
+ },
32
+ "repository": {
33
+ "type": "git",
34
+ "url": "https://github.com/lombard-finance/sdk.git",
35
+ "directory": "packages/sdk-agentkit"
36
+ },
37
+ "homepage": "https://docs.lombard.finance",
38
+ "bugs": {
39
+ "url": "https://github.com/lombard-finance/sdk/issues"
40
+ },
41
+ "keywords": [
42
+ "lombard",
43
+ "sdk",
44
+ "agentkit",
45
+ "coinbase",
46
+ "bitcoin",
47
+ "lbtc",
48
+ "ai",
49
+ "agent"
50
+ ],
51
+ "publishConfig": {
52
+ "access": "public"
53
+ },
54
+ "peerDependencies": {
55
+ "@coinbase/agentkit": ">=0.2.0",
56
+ "viem": "^2.21.0",
57
+ "zod": "^3.22.0"
58
+ },
59
+ "dependencies": {
60
+ "@lombard.finance/sdk": "5.0.4",
61
+ "@lombard.finance/sdk-common": "4.0.0",
62
+ "reflect-metadata": "^0.2.2"
63
+ },
64
+ "devDependencies": {
65
+ "@coinbase/agentkit": "^0.2.0",
66
+ "@swc/core": "^1.15.18",
67
+ "typescript": "^5.4.5",
68
+ "unplugin-swc": "^1.5.9",
69
+ "viem": "^2.21.0",
70
+ "vite": "^6.3.5",
71
+ "vitest": "^3.2.4",
72
+ "zod": "^3.22.0"
73
+ }
74
+ }