@coinbase/agentkit 0.0.0-nightly-20250328174338
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 +827 -0
- package/dist/action-providers/across/acrossActionProvider.d.ts +50 -0
- package/dist/action-providers/across/acrossActionProvider.js +333 -0
- package/dist/action-providers/across/acrossActionProvider.test.d.ts +1 -0
- package/dist/action-providers/across/acrossActionProvider.test.js +391 -0
- package/dist/action-providers/across/constants.d.ts +1 -0
- package/dist/action-providers/across/constants.js +2 -0
- package/dist/action-providers/across/index.d.ts +1 -0
- package/dist/action-providers/across/index.js +17 -0
- package/dist/action-providers/across/schemas.d.ts +36 -0
- package/dist/action-providers/across/schemas.js +46 -0
- package/dist/action-providers/across/utils.d.ts +7 -0
- package/dist/action-providers/across/utils.js +25 -0
- package/dist/action-providers/actionDecorator.d.ts +69 -0
- package/dist/action-providers/actionDecorator.js +96 -0
- package/dist/action-providers/actionProvider.d.ts +48 -0
- package/dist/action-providers/actionProvider.js +62 -0
- package/dist/action-providers/alchemy/alchemyTokenPricesActionProvider.d.ts +55 -0
- package/dist/action-providers/alchemy/alchemyTokenPricesActionProvider.js +173 -0
- package/dist/action-providers/alchemy/alchemyTokenPricesActionProvider.test.d.ts +1 -0
- package/dist/action-providers/alchemy/alchemyTokenPricesActionProvider.test.js +131 -0
- package/dist/action-providers/alchemy/index.d.ts +2 -0
- package/dist/action-providers/alchemy/index.js +18 -0
- package/dist/action-providers/alchemy/schemas.d.ts +41 -0
- package/dist/action-providers/alchemy/schemas.js +34 -0
- package/dist/action-providers/allora/alloraActionProvider.d.ts +44 -0
- package/dist/action-providers/allora/alloraActionProvider.js +195 -0
- package/dist/action-providers/allora/alloraActionProvider.test.d.ts +1 -0
- package/dist/action-providers/allora/alloraActionProvider.test.js +109 -0
- package/dist/action-providers/allora/index.d.ts +2 -0
- package/dist/action-providers/allora/index.js +18 -0
- package/dist/action-providers/allora/schemas.d.ts +28 -0
- package/dist/action-providers/allora/schemas.js +30 -0
- package/dist/action-providers/basename/basenameActionProvider.d.ts +30 -0
- package/dist/action-providers/basename/basenameActionProvider.js +109 -0
- package/dist/action-providers/basename/basenameActionProvider.test.d.ts +1 -0
- package/dist/action-providers/basename/basenameActionProvider.test.js +146 -0
- package/dist/action-providers/basename/constants.d.ts +52 -0
- package/dist/action-providers/basename/constants.js +81 -0
- package/dist/action-providers/basename/index.d.ts +2 -0
- package/dist/action-providers/basename/index.js +18 -0
- package/dist/action-providers/basename/schemas.d.ts +14 -0
- package/dist/action-providers/basename/schemas.js +14 -0
- package/dist/action-providers/cdp/cdpApiActionProvider.d.ts +43 -0
- package/dist/action-providers/cdp/cdpApiActionProvider.js +128 -0
- package/dist/action-providers/cdp/cdpApiActionProvider.test.d.ts +1 -0
- package/dist/action-providers/cdp/cdpApiActionProvider.test.js +146 -0
- package/dist/action-providers/cdp/cdpWalletActionProvider.d.ts +58 -0
- package/dist/action-providers/cdp/cdpWalletActionProvider.js +224 -0
- package/dist/action-providers/cdp/cdpWalletActionProvider.test.d.ts +1 -0
- package/dist/action-providers/cdp/cdpWalletActionProvider.test.js +267 -0
- package/dist/action-providers/cdp/constants.d.ts +31 -0
- package/dist/action-providers/cdp/constants.js +34 -0
- package/dist/action-providers/cdp/index.d.ts +3 -0
- package/dist/action-providers/cdp/index.js +19 -0
- package/dist/action-providers/cdp/schemas.d.ts +91 -0
- package/dist/action-providers/cdp/schemas.js +77 -0
- package/dist/action-providers/compound/compoundActionProvider.d.ts +67 -0
- package/dist/action-providers/compound/compoundActionProvider.js +365 -0
- package/dist/action-providers/compound/compoundActionProvider.test.d.ts +1 -0
- package/dist/action-providers/compound/compoundActionProvider.test.js +353 -0
- package/dist/action-providers/compound/constants.d.ts +180 -0
- package/dist/action-providers/compound/constants.js +129 -0
- package/dist/action-providers/compound/index.d.ts +1 -0
- package/dist/action-providers/compound/index.js +17 -0
- package/dist/action-providers/compound/schemas.d.ts +57 -0
- package/dist/action-providers/compound/schemas.js +58 -0
- package/dist/action-providers/compound/utils.d.ts +95 -0
- package/dist/action-providers/compound/utils.js +353 -0
- package/dist/action-providers/customActionProvider.d.ts +30 -0
- package/dist/action-providers/customActionProvider.js +66 -0
- package/dist/action-providers/defillama/constants.d.ts +8 -0
- package/dist/action-providers/defillama/constants.js +11 -0
- package/dist/action-providers/defillama/defillamaActionProvider.d.ts +54 -0
- package/dist/action-providers/defillama/defillamaActionProvider.js +180 -0
- package/dist/action-providers/defillama/defillamaActionProvider.test.d.ts +1 -0
- package/dist/action-providers/defillama/defillamaActionProvider.test.js +114 -0
- package/dist/action-providers/defillama/index.d.ts +1 -0
- package/dist/action-providers/defillama/index.js +17 -0
- package/dist/action-providers/defillama/schemas.d.ts +34 -0
- package/dist/action-providers/defillama/schemas.js +34 -0
- package/dist/action-providers/defillama/types.d.ts +73 -0
- package/dist/action-providers/defillama/types.js +2 -0
- package/dist/action-providers/defillama/utils.d.ts +10 -0
- package/dist/action-providers/defillama/utils.js +87 -0
- package/dist/action-providers/defillama/utils.test.d.ts +1 -0
- package/dist/action-providers/defillama/utils.test.js +124 -0
- package/dist/action-providers/erc20/constants.d.ts +137 -0
- package/dist/action-providers/erc20/constants.js +202 -0
- package/dist/action-providers/erc20/erc20ActionProvider.d.ts +38 -0
- package/dist/action-providers/erc20/erc20ActionProvider.js +142 -0
- package/dist/action-providers/erc20/erc20ActionProvider.test.d.ts +1 -0
- package/dist/action-providers/erc20/erc20ActionProvider.test.js +131 -0
- package/dist/action-providers/erc20/index.d.ts +1 -0
- package/dist/action-providers/erc20/index.js +17 -0
- package/dist/action-providers/erc20/schemas.d.ts +27 -0
- package/dist/action-providers/erc20/schemas.js +26 -0
- package/dist/action-providers/erc721/constants.d.ts +232 -0
- package/dist/action-providers/erc721/constants.js +298 -0
- package/dist/action-providers/erc721/erc721ActionProvider.d.ts +46 -0
- package/dist/action-providers/erc721/erc721ActionProvider.js +164 -0
- package/dist/action-providers/erc721/erc721ActionProvider.test.d.ts +1 -0
- package/dist/action-providers/erc721/erc721ActionProvider.test.js +137 -0
- package/dist/action-providers/erc721/index.d.ts +1 -0
- package/dist/action-providers/erc721/index.js +17 -0
- package/dist/action-providers/erc721/schemas.d.ts +46 -0
- package/dist/action-providers/erc721/schemas.js +44 -0
- package/dist/action-providers/farcaster/farcasterActionProvider.d.ts +57 -0
- package/dist/action-providers/farcaster/farcasterActionProvider.js +142 -0
- package/dist/action-providers/farcaster/farcasterActionProvider.test.d.ts +1 -0
- package/dist/action-providers/farcaster/farcasterActionProvider.test.js +151 -0
- package/dist/action-providers/farcaster/index.d.ts +2 -0
- package/dist/action-providers/farcaster/index.js +18 -0
- package/dist/action-providers/farcaster/schemas.d.ts +15 -0
- package/dist/action-providers/farcaster/schemas.js +20 -0
- package/dist/action-providers/index.d.ts +24 -0
- package/dist/action-providers/index.js +40 -0
- package/dist/action-providers/jupiter/index.d.ts +1 -0
- package/dist/action-providers/jupiter/index.js +17 -0
- package/dist/action-providers/jupiter/jupiterActionProvider.d.ts +36 -0
- package/dist/action-providers/jupiter/jupiterActionProvider.js +115 -0
- package/dist/action-providers/jupiter/jupiterActionProvider.test.d.ts +1 -0
- package/dist/action-providers/jupiter/jupiterActionProvider.test.js +146 -0
- package/dist/action-providers/jupiter/schemas.d.ts +20 -0
- package/dist/action-providers/jupiter/schemas.js +20 -0
- package/dist/action-providers/messari/constants.d.ts +17 -0
- package/dist/action-providers/messari/constants.js +20 -0
- package/dist/action-providers/messari/index.d.ts +5 -0
- package/dist/action-providers/messari/index.js +21 -0
- package/dist/action-providers/messari/messariActionProvider.d.ts +42 -0
- package/dist/action-providers/messari/messariActionProvider.js +128 -0
- package/dist/action-providers/messari/messariActionProvider.test.d.ts +1 -0
- package/dist/action-providers/messari/messariActionProvider.test.js +152 -0
- package/dist/action-providers/messari/schemas.d.ts +11 -0
- package/dist/action-providers/messari/schemas.js +16 -0
- package/dist/action-providers/messari/types.d.ts +40 -0
- package/dist/action-providers/messari/types.js +2 -0
- package/dist/action-providers/messari/utils.d.ts +22 -0
- package/dist/action-providers/messari/utils.js +65 -0
- package/dist/action-providers/moonwell/constants.d.ts +78 -0
- package/dist/action-providers/moonwell/constants.js +111 -0
- package/dist/action-providers/moonwell/index.d.ts +1 -0
- package/dist/action-providers/moonwell/index.js +5 -0
- package/dist/action-providers/moonwell/moonwellActionProvider.d.ts +39 -0
- package/dist/action-providers/moonwell/moonwellActionProvider.js +249 -0
- package/dist/action-providers/moonwell/moonwellActionProvider.test.d.ts +1 -0
- package/dist/action-providers/moonwell/moonwellActionProvider.test.js +455 -0
- package/dist/action-providers/moonwell/schemas.d.ts +30 -0
- package/dist/action-providers/moonwell/schemas.js +39 -0
- package/dist/action-providers/morpho/constants.d.ts +16 -0
- package/dist/action-providers/morpho/constants.js +27 -0
- package/dist/action-providers/morpho/index.d.ts +2 -0
- package/dist/action-providers/morpho/index.js +18 -0
- package/dist/action-providers/morpho/morphoActionProvider.d.ts +39 -0
- package/dist/action-providers/morpho/morphoActionProvider.js +154 -0
- package/dist/action-providers/morpho/morphoActionProvider.test.d.ts +1 -0
- package/dist/action-providers/morpho/morphoActionProvider.test.js +128 -0
- package/dist/action-providers/morpho/schemas.d.ts +36 -0
- package/dist/action-providers/morpho/schemas.js +47 -0
- package/dist/action-providers/opensea/index.d.ts +1 -0
- package/dist/action-providers/opensea/index.js +17 -0
- package/dist/action-providers/opensea/openseaActionProvider.d.ts +59 -0
- package/dist/action-providers/opensea/openseaActionProvider.js +146 -0
- package/dist/action-providers/opensea/openseaActionProvider.test.d.ts +1 -0
- package/dist/action-providers/opensea/openseaActionProvider.test.js +201 -0
- package/dist/action-providers/opensea/schemas.d.ts +30 -0
- package/dist/action-providers/opensea/schemas.js +33 -0
- package/dist/action-providers/opensea/utils.d.ts +12 -0
- package/dist/action-providers/opensea/utils.js +47 -0
- package/dist/action-providers/pyth/index.d.ts +2 -0
- package/dist/action-providers/pyth/index.js +18 -0
- package/dist/action-providers/pyth/pythActionProvider.d.ts +33 -0
- package/dist/action-providers/pyth/pythActionProvider.js +121 -0
- package/dist/action-providers/pyth/pythActionProvider.test.d.ts +1 -0
- package/dist/action-providers/pyth/pythActionProvider.test.js +113 -0
- package/dist/action-providers/pyth/schemas.d.ts +21 -0
- package/dist/action-providers/pyth/schemas.js +20 -0
- package/dist/action-providers/spl/index.d.ts +1 -0
- package/dist/action-providers/spl/index.js +17 -0
- package/dist/action-providers/spl/schemas.d.ts +30 -0
- package/dist/action-providers/spl/schemas.js +26 -0
- package/dist/action-providers/spl/splActionProvider.d.ts +45 -0
- package/dist/action-providers/spl/splActionProvider.js +173 -0
- package/dist/action-providers/spl/splActionProvider.test.d.ts +1 -0
- package/dist/action-providers/spl/splActionProvider.test.js +300 -0
- package/dist/action-providers/twitter/index.d.ts +2 -0
- package/dist/action-providers/twitter/index.js +18 -0
- package/dist/action-providers/twitter/schemas.d.ts +38 -0
- package/dist/action-providers/twitter/schemas.js +44 -0
- package/dist/action-providers/twitter/twitterActionProvider.d.ts +82 -0
- package/dist/action-providers/twitter/twitterActionProvider.js +204 -0
- package/dist/action-providers/twitter/twitterActionProvider.test.d.ts +1 -0
- package/dist/action-providers/twitter/twitterActionProvider.test.js +185 -0
- package/dist/action-providers/wallet/index.d.ts +1 -0
- package/dist/action-providers/wallet/index.js +17 -0
- package/dist/action-providers/wallet/schemas.d.ts +19 -0
- package/dist/action-providers/wallet/schemas.js +19 -0
- package/dist/action-providers/wallet/walletActionProvider.d.ts +44 -0
- package/dist/action-providers/wallet/walletActionProvider.js +140 -0
- package/dist/action-providers/wallet/walletActionProvider.test.d.ts +1 -0
- package/dist/action-providers/wallet/walletActionProvider.test.js +194 -0
- package/dist/action-providers/weth/constants.d.ts +19 -0
- package/dist/action-providers/weth/constants.js +29 -0
- package/dist/action-providers/weth/index.d.ts +1 -0
- package/dist/action-providers/weth/index.js +17 -0
- package/dist/action-providers/weth/schemas.d.ts +8 -0
- package/dist/action-providers/weth/schemas.js +10 -0
- package/dist/action-providers/weth/wethActionProvider.d.ts +30 -0
- package/dist/action-providers/weth/wethActionProvider.js +89 -0
- package/dist/action-providers/weth/wethActionProvider.test.d.ts +1 -0
- package/dist/action-providers/weth/wethActionProvider.test.js +92 -0
- package/dist/action-providers/wow/constants.d.ts +15 -0
- package/dist/action-providers/wow/constants.js +844 -0
- package/dist/action-providers/wow/index.d.ts +2 -0
- package/dist/action-providers/wow/index.js +18 -0
- package/dist/action-providers/wow/schemas.d.ts +43 -0
- package/dist/action-providers/wow/schemas.js +47 -0
- package/dist/action-providers/wow/uniswap/constants.d.ts +3 -0
- package/dist/action-providers/wow/uniswap/constants.js +100 -0
- package/dist/action-providers/wow/uniswap/utils.d.ts +82 -0
- package/dist/action-providers/wow/uniswap/utils.js +226 -0
- package/dist/action-providers/wow/utils.d.ts +27 -0
- package/dist/action-providers/wow/utils.js +63 -0
- package/dist/action-providers/wow/wowActionProvider.d.ts +46 -0
- package/dist/action-providers/wow/wowActionProvider.js +223 -0
- package/dist/action-providers/wow/wowActionProvider.test.d.ts +1 -0
- package/dist/action-providers/wow/wowActionProvider.test.js +291 -0
- package/dist/agentkit.d.ts +44 -0
- package/dist/agentkit.js +68 -0
- package/dist/analytics/index.d.ts +1 -0
- package/dist/analytics/index.js +17 -0
- package/dist/analytics/sendAnalyticsEvent.d.ts +31 -0
- package/dist/analytics/sendAnalyticsEvent.js +52 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +20 -0
- package/dist/network/index.d.ts +3 -0
- package/dist/network/index.js +19 -0
- package/dist/network/network.d.ts +20 -0
- package/dist/network/network.js +86 -0
- package/dist/network/svm.d.ts +15 -0
- package/dist/network/svm.js +38 -0
- package/dist/network/types.d.ts +17 -0
- package/dist/network/types.js +2 -0
- package/dist/utils.d.ts +22 -0
- package/dist/utils.js +57 -0
- package/dist/utils.test.d.ts +1 -0
- package/dist/utils.test.js +50 -0
- package/dist/wallet-providers/cdpWalletProvider.d.ts +246 -0
- package/dist/wallet-providers/cdpWalletProvider.js +421 -0
- package/dist/wallet-providers/cdpWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/cdpWalletProvider.test.js +701 -0
- package/dist/wallet-providers/evmWalletProvider.d.ts +51 -0
- package/dist/wallet-providers/evmWalletProvider.js +14 -0
- package/dist/wallet-providers/evmWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/evmWalletProvider.test.js +56 -0
- package/dist/wallet-providers/index.d.ts +10 -0
- package/dist/wallet-providers/index.js +26 -0
- package/dist/wallet-providers/privyEvmWalletProvider.d.ts +55 -0
- package/dist/wallet-providers/privyEvmWalletProvider.js +140 -0
- package/dist/wallet-providers/privyEvmWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/privyEvmWalletProvider.test.js +331 -0
- package/dist/wallet-providers/privyShared.d.ts +40 -0
- package/dist/wallet-providers/privyShared.js +49 -0
- package/dist/wallet-providers/privySvmWalletProvider.d.ts +128 -0
- package/dist/wallet-providers/privySvmWalletProvider.js +212 -0
- package/dist/wallet-providers/privySvmWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/privySvmWalletProvider.test.js +310 -0
- package/dist/wallet-providers/privyWalletProvider.d.ts +35 -0
- package/dist/wallet-providers/privyWalletProvider.js +39 -0
- package/dist/wallet-providers/privyWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/privyWalletProvider.test.js +124 -0
- package/dist/wallet-providers/smartWalletProvider.d.ts +177 -0
- package/dist/wallet-providers/smartWalletProvider.js +303 -0
- package/dist/wallet-providers/smartWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/smartWalletProvider.test.js +388 -0
- package/dist/wallet-providers/solanaKeypairWalletProvider.d.ts +143 -0
- package/dist/wallet-providers/solanaKeypairWalletProvider.js +280 -0
- package/dist/wallet-providers/solanaKeypairWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/solanaKeypairWalletProvider.test.js +218 -0
- package/dist/wallet-providers/svmWalletProvider.d.ts +56 -0
- package/dist/wallet-providers/svmWalletProvider.js +13 -0
- package/dist/wallet-providers/svmWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/svmWalletProvider.test.js +55 -0
- package/dist/wallet-providers/viemWalletProvider.d.ts +103 -0
- package/dist/wallet-providers/viemWalletProvider.js +206 -0
- package/dist/wallet-providers/viemWalletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/viemWalletProvider.test.js +338 -0
- package/dist/wallet-providers/walletProvider.d.ts +48 -0
- package/dist/wallet-providers/walletProvider.js +41 -0
- package/dist/wallet-providers/walletProvider.test.d.ts +1 -0
- package/dist/wallet-providers/walletProvider.test.js +103 -0
- package/package.json +83 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { WalletProvider } from "./walletProvider";
|
|
2
|
+
import { TransactionRequest, ReadContractParameters, ReadContractReturnType, ContractFunctionName, Abi, ContractFunctionArgs } from "viem";
|
|
3
|
+
/**
|
|
4
|
+
* EvmWalletProvider is the abstract base class for all EVM wallet providers.
|
|
5
|
+
*
|
|
6
|
+
* @abstract
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class EvmWalletProvider extends WalletProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Sign a message.
|
|
11
|
+
*
|
|
12
|
+
* @param message - The message to sign.
|
|
13
|
+
* @returns The signed message.
|
|
14
|
+
*/
|
|
15
|
+
abstract signMessage(message: string | Uint8Array): Promise<`0x${string}`>;
|
|
16
|
+
/**
|
|
17
|
+
* Sign a typed data.
|
|
18
|
+
*
|
|
19
|
+
* @param typedData - The typed data to sign.
|
|
20
|
+
* @returns The signed typed data.
|
|
21
|
+
*/
|
|
22
|
+
abstract signTypedData(typedData: any): Promise<`0x${string}`>;
|
|
23
|
+
/**
|
|
24
|
+
* Sign a transaction.
|
|
25
|
+
*
|
|
26
|
+
* @param transaction - The transaction to sign.
|
|
27
|
+
* @returns The signed transaction.
|
|
28
|
+
*/
|
|
29
|
+
abstract signTransaction(transaction: TransactionRequest): Promise<`0x${string}`>;
|
|
30
|
+
/**
|
|
31
|
+
* Send a transaction.
|
|
32
|
+
*
|
|
33
|
+
* @param transaction - The transaction to send.
|
|
34
|
+
* @returns The transaction hash.
|
|
35
|
+
*/
|
|
36
|
+
abstract sendTransaction(transaction: TransactionRequest): Promise<`0x${string}`>;
|
|
37
|
+
/**
|
|
38
|
+
* Wait for a transaction receipt.
|
|
39
|
+
*
|
|
40
|
+
* @param txHash - The transaction hash.
|
|
41
|
+
* @returns The transaction receipt.
|
|
42
|
+
*/
|
|
43
|
+
abstract waitForTransactionReceipt(txHash: `0x${string}`): Promise<any>;
|
|
44
|
+
/**
|
|
45
|
+
* Read a contract.
|
|
46
|
+
*
|
|
47
|
+
* @param params - The parameters to read the contract.
|
|
48
|
+
* @returns The response from the contract.
|
|
49
|
+
*/
|
|
50
|
+
abstract readContract<const abi extends Abi | readonly unknown[], functionName extends ContractFunctionName<abi, "pure" | "view">, const args extends ContractFunctionArgs<abi, "pure" | "view", functionName>>(params: ReadContractParameters<abi, functionName, args>): Promise<ReadContractReturnType<abi, functionName, args>>;
|
|
51
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// TODO: Improve type safety
|
|
3
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.EvmWalletProvider = void 0;
|
|
6
|
+
const walletProvider_1 = require("./walletProvider");
|
|
7
|
+
/**
|
|
8
|
+
* EvmWalletProvider is the abstract base class for all EVM wallet providers.
|
|
9
|
+
*
|
|
10
|
+
* @abstract
|
|
11
|
+
*/
|
|
12
|
+
class EvmWalletProvider extends walletProvider_1.WalletProvider {
|
|
13
|
+
}
|
|
14
|
+
exports.EvmWalletProvider = EvmWalletProvider;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const evmWalletProvider_1 = require("./evmWalletProvider");
|
|
4
|
+
global.fetch = jest.fn(() => Promise.resolve({
|
|
5
|
+
ok: true,
|
|
6
|
+
json: () => Promise.resolve({}),
|
|
7
|
+
}));
|
|
8
|
+
jest.mock("../analytics", () => ({
|
|
9
|
+
sendAnalyticsEvent: jest.fn().mockImplementation(() => Promise.resolve()),
|
|
10
|
+
}));
|
|
11
|
+
const EXPECTED_EVM_METHODS = [
|
|
12
|
+
"signMessage",
|
|
13
|
+
"signTypedData",
|
|
14
|
+
"signTransaction",
|
|
15
|
+
"sendTransaction",
|
|
16
|
+
"waitForTransactionReceipt",
|
|
17
|
+
"readContract",
|
|
18
|
+
];
|
|
19
|
+
const EXPECTED_BASE_METHODS = [
|
|
20
|
+
"getAddress",
|
|
21
|
+
"getNetwork",
|
|
22
|
+
"getName",
|
|
23
|
+
"getBalance",
|
|
24
|
+
"nativeTransfer",
|
|
25
|
+
];
|
|
26
|
+
describe("EvmWalletProvider", () => {
|
|
27
|
+
beforeEach(() => {
|
|
28
|
+
jest.clearAllMocks();
|
|
29
|
+
evmWalletProvider_1.EvmWalletProvider.prototype.signMessage = jest.fn();
|
|
30
|
+
evmWalletProvider_1.EvmWalletProvider.prototype.signTypedData = jest.fn();
|
|
31
|
+
evmWalletProvider_1.EvmWalletProvider.prototype.signTransaction = jest.fn();
|
|
32
|
+
evmWalletProvider_1.EvmWalletProvider.prototype.sendTransaction = jest.fn();
|
|
33
|
+
evmWalletProvider_1.EvmWalletProvider.prototype.waitForTransactionReceipt = jest.fn();
|
|
34
|
+
evmWalletProvider_1.EvmWalletProvider.prototype.readContract = jest.fn();
|
|
35
|
+
});
|
|
36
|
+
it("should define abstract methods (TypeScript only - not a runtime check)", () => {
|
|
37
|
+
const allExpectedMethods = [...EXPECTED_EVM_METHODS, ...EXPECTED_BASE_METHODS];
|
|
38
|
+
expect(Array.isArray(allExpectedMethods)).toBe(true);
|
|
39
|
+
});
|
|
40
|
+
it("should extend WalletProvider", () => {
|
|
41
|
+
const proto = Object.getPrototypeOf(evmWalletProvider_1.EvmWalletProvider);
|
|
42
|
+
const protoName = proto.name;
|
|
43
|
+
expect(protoName).toBe("WalletProvider");
|
|
44
|
+
});
|
|
45
|
+
it("should have consistent method signatures", () => {
|
|
46
|
+
const signMessageDescriptor = Object.getOwnPropertyDescriptor(evmWalletProvider_1.EvmWalletProvider.prototype, "signMessage");
|
|
47
|
+
expect(signMessageDescriptor).toBeDefined();
|
|
48
|
+
expect(typeof signMessageDescriptor.value).toBe("function");
|
|
49
|
+
const signTypedDataDescriptor = Object.getOwnPropertyDescriptor(evmWalletProvider_1.EvmWalletProvider.prototype, "signTypedData");
|
|
50
|
+
expect(signTypedDataDescriptor).toBeDefined();
|
|
51
|
+
expect(typeof signTypedDataDescriptor.value).toBe("function");
|
|
52
|
+
const readContractDescriptor = Object.getOwnPropertyDescriptor(evmWalletProvider_1.EvmWalletProvider.prototype, "readContract");
|
|
53
|
+
expect(readContractDescriptor).toBeDefined();
|
|
54
|
+
expect(typeof readContractDescriptor.value).toBe("function");
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./walletProvider";
|
|
2
|
+
export * from "./evmWalletProvider";
|
|
3
|
+
export * from "./viemWalletProvider";
|
|
4
|
+
export * from "./cdpWalletProvider";
|
|
5
|
+
export * from "./svmWalletProvider";
|
|
6
|
+
export * from "./smartWalletProvider";
|
|
7
|
+
export * from "./solanaKeypairWalletProvider";
|
|
8
|
+
export * from "./privyWalletProvider";
|
|
9
|
+
export * from "./privyEvmWalletProvider";
|
|
10
|
+
export * from "./privySvmWalletProvider";
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./walletProvider"), exports);
|
|
18
|
+
__exportStar(require("./evmWalletProvider"), exports);
|
|
19
|
+
__exportStar(require("./viemWalletProvider"), exports);
|
|
20
|
+
__exportStar(require("./cdpWalletProvider"), exports);
|
|
21
|
+
__exportStar(require("./svmWalletProvider"), exports);
|
|
22
|
+
__exportStar(require("./smartWalletProvider"), exports);
|
|
23
|
+
__exportStar(require("./solanaKeypairWalletProvider"), exports);
|
|
24
|
+
__exportStar(require("./privyWalletProvider"), exports);
|
|
25
|
+
__exportStar(require("./privyEvmWalletProvider"), exports);
|
|
26
|
+
__exportStar(require("./privySvmWalletProvider"), exports);
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { ViemWalletProvider } from "./viemWalletProvider";
|
|
2
|
+
import { PrivyWalletConfig, PrivyWalletExport } from "./privyShared";
|
|
3
|
+
/**
|
|
4
|
+
* Configuration options for the Privy wallet provider.
|
|
5
|
+
*
|
|
6
|
+
* @interface
|
|
7
|
+
*/
|
|
8
|
+
export interface PrivyEvmWalletConfig extends PrivyWalletConfig {
|
|
9
|
+
/** Optional chain ID to connect to */
|
|
10
|
+
chainId?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A wallet provider that uses Privy's server wallet API.
|
|
14
|
+
* This provider extends the ViemWalletProvider to provide Privy-specific wallet functionality
|
|
15
|
+
* while maintaining compatibility with the base wallet provider interface.
|
|
16
|
+
*/
|
|
17
|
+
export declare class PrivyEvmWalletProvider extends ViemWalletProvider {
|
|
18
|
+
#private;
|
|
19
|
+
/**
|
|
20
|
+
* Private constructor to enforce use of factory method.
|
|
21
|
+
*
|
|
22
|
+
* @param walletClient - The Viem wallet client instance
|
|
23
|
+
* @param config - The configuration options for the Privy wallet
|
|
24
|
+
*/
|
|
25
|
+
private constructor();
|
|
26
|
+
/**
|
|
27
|
+
* Creates and configures a new PrivyWalletProvider instance.
|
|
28
|
+
*
|
|
29
|
+
* @param config - The configuration options for the Privy wallet
|
|
30
|
+
* @returns A configured PrivyWalletProvider instance
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const provider = await PrivyWalletProvider.configureWithWallet({
|
|
35
|
+
* appId: "your-app-id",
|
|
36
|
+
* appSecret: "your-app-secret",
|
|
37
|
+
* walletId: "wallet-id",
|
|
38
|
+
* chainId: "84532"
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
static configureWithWallet(config: PrivyEvmWalletConfig): Promise<PrivyEvmWalletProvider>;
|
|
43
|
+
/**
|
|
44
|
+
* Gets the name of the wallet provider.
|
|
45
|
+
*
|
|
46
|
+
* @returns The string identifier for this wallet provider
|
|
47
|
+
*/
|
|
48
|
+
getName(): string;
|
|
49
|
+
/**
|
|
50
|
+
* Exports the wallet data.
|
|
51
|
+
*
|
|
52
|
+
* @returns The wallet data
|
|
53
|
+
*/
|
|
54
|
+
exportWallet(): PrivyWalletExport;
|
|
55
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _PrivyEvmWalletProvider_walletId, _PrivyEvmWalletProvider_authorizationPrivateKey;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PrivyEvmWalletProvider = void 0;
|
|
16
|
+
const server_auth_1 = require("@privy-io/server-auth");
|
|
17
|
+
const viem_1 = require("@privy-io/server-auth/viem");
|
|
18
|
+
const viemWalletProvider_1 = require("./viemWalletProvider");
|
|
19
|
+
const viem_2 = require("viem");
|
|
20
|
+
const network_1 = require("../network/network");
|
|
21
|
+
/**
|
|
22
|
+
* A wallet provider that uses Privy's server wallet API.
|
|
23
|
+
* This provider extends the ViemWalletProvider to provide Privy-specific wallet functionality
|
|
24
|
+
* while maintaining compatibility with the base wallet provider interface.
|
|
25
|
+
*/
|
|
26
|
+
class PrivyEvmWalletProvider extends viemWalletProvider_1.ViemWalletProvider {
|
|
27
|
+
/**
|
|
28
|
+
* Private constructor to enforce use of factory method.
|
|
29
|
+
*
|
|
30
|
+
* @param walletClient - The Viem wallet client instance
|
|
31
|
+
* @param config - The configuration options for the Privy wallet
|
|
32
|
+
*/
|
|
33
|
+
constructor(walletClient, config) {
|
|
34
|
+
super(walletClient);
|
|
35
|
+
_PrivyEvmWalletProvider_walletId.set(this, void 0);
|
|
36
|
+
_PrivyEvmWalletProvider_authorizationPrivateKey.set(this, void 0);
|
|
37
|
+
__classPrivateFieldSet(this, _PrivyEvmWalletProvider_walletId, config.walletId, "f"); // Now guaranteed to exist
|
|
38
|
+
__classPrivateFieldSet(this, _PrivyEvmWalletProvider_authorizationPrivateKey, config.authorizationPrivateKey, "f");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Creates and configures a new PrivyWalletProvider instance.
|
|
42
|
+
*
|
|
43
|
+
* @param config - The configuration options for the Privy wallet
|
|
44
|
+
* @returns A configured PrivyWalletProvider instance
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```typescript
|
|
48
|
+
* const provider = await PrivyWalletProvider.configureWithWallet({
|
|
49
|
+
* appId: "your-app-id",
|
|
50
|
+
* appSecret: "your-app-secret",
|
|
51
|
+
* walletId: "wallet-id",
|
|
52
|
+
* chainId: "84532"
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
static async configureWithWallet(config) {
|
|
57
|
+
const privy = new server_auth_1.PrivyClient(config.appId, config.appSecret, {
|
|
58
|
+
walletApi: config.authorizationPrivateKey
|
|
59
|
+
? {
|
|
60
|
+
authorizationPrivateKey: config.authorizationPrivateKey,
|
|
61
|
+
}
|
|
62
|
+
: undefined,
|
|
63
|
+
});
|
|
64
|
+
let walletId;
|
|
65
|
+
let address;
|
|
66
|
+
if (!config.walletId) {
|
|
67
|
+
if (config.authorizationPrivateKey && !config.authorizationKeyId) {
|
|
68
|
+
throw new Error("authorizationKeyId is required when creating a new wallet with an authorization key, this can be found in your Privy Dashboard");
|
|
69
|
+
}
|
|
70
|
+
if (config.authorizationKeyId && !config.authorizationPrivateKey) {
|
|
71
|
+
throw new Error("authorizationPrivateKey is required when creating a new wallet with an authorizationKeyId. " +
|
|
72
|
+
"If you don't have it, you can create a new one in your Privy Dashboard, or delete the authorization key.");
|
|
73
|
+
}
|
|
74
|
+
try {
|
|
75
|
+
const wallet = await privy.walletApi.create({
|
|
76
|
+
chainType: "ethereum",
|
|
77
|
+
authorizationKeyIds: config.authorizationKeyId ? [config.authorizationKeyId] : undefined,
|
|
78
|
+
});
|
|
79
|
+
walletId = wallet.id;
|
|
80
|
+
address = wallet.address;
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
console.error(error);
|
|
84
|
+
if (error instanceof Error &&
|
|
85
|
+
error.message.includes("Missing `privy-authorization-signature` header")) {
|
|
86
|
+
// Providing a more informative error message, see context: https://github.com/coinbase/agentkit/pull/242#discussion_r1956428617
|
|
87
|
+
throw new Error("Privy error: you have an authorization key on your account which can create and modify wallets, please delete this key or pass it to the PrivyWalletProvider to create a new wallet");
|
|
88
|
+
}
|
|
89
|
+
throw new Error("Failed to create wallet");
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
walletId = config.walletId;
|
|
94
|
+
const wallet = await privy.walletApi.getWallet({ id: walletId });
|
|
95
|
+
if (!wallet) {
|
|
96
|
+
throw new Error(`Wallet with ID ${walletId} not found`);
|
|
97
|
+
}
|
|
98
|
+
address = wallet.address;
|
|
99
|
+
}
|
|
100
|
+
const account = await (0, viem_1.createViemAccount)({
|
|
101
|
+
walletId,
|
|
102
|
+
address,
|
|
103
|
+
privy,
|
|
104
|
+
});
|
|
105
|
+
const chainId = config.chainId || "84532";
|
|
106
|
+
const chain = (0, network_1.getChain)(chainId);
|
|
107
|
+
if (!chain) {
|
|
108
|
+
throw new Error(`Chain with ID ${chainId} not found`);
|
|
109
|
+
}
|
|
110
|
+
const walletClient = (0, viem_2.createWalletClient)({
|
|
111
|
+
account,
|
|
112
|
+
chain,
|
|
113
|
+
transport: (0, viem_2.http)(),
|
|
114
|
+
});
|
|
115
|
+
return new PrivyEvmWalletProvider(walletClient, { ...config, walletId });
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Gets the name of the wallet provider.
|
|
119
|
+
*
|
|
120
|
+
* @returns The string identifier for this wallet provider
|
|
121
|
+
*/
|
|
122
|
+
getName() {
|
|
123
|
+
return "privy_evm_wallet_provider";
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Exports the wallet data.
|
|
127
|
+
*
|
|
128
|
+
* @returns The wallet data
|
|
129
|
+
*/
|
|
130
|
+
exportWallet() {
|
|
131
|
+
return {
|
|
132
|
+
walletId: __classPrivateFieldGet(this, _PrivyEvmWalletProvider_walletId, "f"),
|
|
133
|
+
authorizationPrivateKey: __classPrivateFieldGet(this, _PrivyEvmWalletProvider_authorizationPrivateKey, "f"),
|
|
134
|
+
chainId: this.getNetwork().chainId,
|
|
135
|
+
networkId: this.getNetwork().networkId,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.PrivyEvmWalletProvider = PrivyEvmWalletProvider;
|
|
140
|
+
_PrivyEvmWalletProvider_walletId = new WeakMap(), _PrivyEvmWalletProvider_authorizationPrivateKey = new WeakMap();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|