@coinbase/agentkit 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +338 -5
- 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/basename/basenameActionProvider.d.ts +1 -1
- package/dist/action-providers/cdp/cdpApiActionProvider.js +7 -1
- package/dist/action-providers/erc20/erc20ActionProvider.d.ts +1 -1
- package/dist/action-providers/erc20/schemas.d.ts +2 -2
- package/dist/action-providers/erc721/erc721ActionProvider.d.ts +1 -1
- package/dist/action-providers/index.d.ts +8 -5
- package/dist/action-providers/index.js +8 -5
- 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/morphoActionProvider.d.ts +1 -1
- package/dist/action-providers/morpho/schemas.d.ts +4 -4
- 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/spl/index.d.ts +1 -0
- package/dist/action-providers/spl/index.js +17 -0
- package/dist/action-providers/spl/schemas.d.ts +17 -0
- package/dist/action-providers/spl/schemas.js +14 -0
- package/dist/action-providers/spl/splActionProvider.d.ts +37 -0
- package/dist/action-providers/spl/splActionProvider.js +112 -0
- package/dist/action-providers/spl/splActionProvider.test.d.ts +1 -0
- package/dist/action-providers/spl/splActionProvider.test.js +206 -0
- package/dist/action-providers/wallet/walletActionProvider.d.ts +1 -1
- package/dist/action-providers/wallet/walletActionProvider.js +31 -18
- package/dist/action-providers/wallet/walletActionProvider.test.js +101 -23
- package/dist/action-providers/weth/wethActionProvider.d.ts +1 -1
- package/dist/action-providers/wow/wowActionProvider.d.ts +1 -1
- package/dist/network/index.d.ts +2 -1
- package/dist/network/index.js +2 -1
- package/dist/network/network.d.ts +7 -0
- package/dist/network/network.js +46 -1
- package/dist/network/svm.d.ts +14 -0
- package/dist/network/svm.js +33 -0
- package/dist/utils.d.ts +11 -0
- package/dist/utils.js +14 -0
- package/dist/wallet-providers/cdpWalletProvider.d.ts +13 -0
- package/dist/wallet-providers/cdpWalletProvider.js +31 -8
- package/dist/wallet-providers/index.d.ts +3 -0
- package/dist/wallet-providers/index.js +3 -0
- package/dist/wallet-providers/privyWalletProvider.d.ts +70 -0
- package/dist/wallet-providers/privyWalletProvider.js +139 -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 +24 -0
- package/dist/wallet-providers/svmWalletProvider.d.ts +56 -0
- package/dist/wallet-providers/svmWalletProvider.js +13 -0
- package/dist/wallet-providers/viemWalletProvider.d.ts +15 -1
- package/dist/wallet-providers/viemWalletProvider.js +23 -4
- package/dist/wallet-providers/walletProvider.d.ts +1 -1
- package/package.json +4 -1
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { WalletClient as ViemWalletClient, TransactionRequest, ReadContractParameters, ReadContractReturnType } from "viem";
|
|
2
2
|
import { EvmWalletProvider } from "./evmWalletProvider";
|
|
3
3
|
import { Network } from "../network";
|
|
4
|
+
/**
|
|
5
|
+
* Configuration for gas multipliers.
|
|
6
|
+
*/
|
|
7
|
+
export interface ViemWalletProviderGasConfig {
|
|
8
|
+
/**
|
|
9
|
+
* An internal multiplier on gas limit estimation.
|
|
10
|
+
*/
|
|
11
|
+
gasLimitMultiplier?: number;
|
|
12
|
+
/**
|
|
13
|
+
* An internal multiplier on fee per gas estimation.
|
|
14
|
+
*/
|
|
15
|
+
feePerGasMultiplier?: number;
|
|
16
|
+
}
|
|
4
17
|
/**
|
|
5
18
|
* A wallet provider that uses the Viem library.
|
|
6
19
|
*/
|
|
@@ -10,8 +23,9 @@ export declare class ViemWalletProvider extends EvmWalletProvider {
|
|
|
10
23
|
* Constructs a new ViemWalletProvider.
|
|
11
24
|
*
|
|
12
25
|
* @param walletClient - The wallet client.
|
|
26
|
+
* @param gasConfig - Configuration for gas multipliers.
|
|
13
27
|
*/
|
|
14
|
-
constructor(walletClient: ViemWalletClient);
|
|
28
|
+
constructor(walletClient: ViemWalletClient, gasConfig?: ViemWalletProviderGasConfig);
|
|
15
29
|
/**
|
|
16
30
|
* Signs a message.
|
|
17
31
|
*
|
|
@@ -12,12 +12,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
12
12
|
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");
|
|
13
13
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
14
14
|
};
|
|
15
|
-
var _ViemWalletProvider_walletClient, _ViemWalletProvider_publicClient;
|
|
15
|
+
var _ViemWalletProvider_walletClient, _ViemWalletProvider_publicClient, _ViemWalletProvider_gasLimitMultiplier, _ViemWalletProvider_feePerGasMultiplier;
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.ViemWalletProvider = void 0;
|
|
18
18
|
const viem_1 = require("viem");
|
|
19
19
|
const evmWalletProvider_1 = require("./evmWalletProvider");
|
|
20
20
|
const network_1 = require("../network/network");
|
|
21
|
+
const utils_1 = require("../utils");
|
|
21
22
|
/**
|
|
22
23
|
* A wallet provider that uses the Viem library.
|
|
23
24
|
*/
|
|
@@ -26,16 +27,21 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
26
27
|
* Constructs a new ViemWalletProvider.
|
|
27
28
|
*
|
|
28
29
|
* @param walletClient - The wallet client.
|
|
30
|
+
* @param gasConfig - Configuration for gas multipliers.
|
|
29
31
|
*/
|
|
30
|
-
constructor(walletClient) {
|
|
32
|
+
constructor(walletClient, gasConfig) {
|
|
31
33
|
super();
|
|
32
34
|
_ViemWalletProvider_walletClient.set(this, void 0);
|
|
33
35
|
_ViemWalletProvider_publicClient.set(this, void 0);
|
|
36
|
+
_ViemWalletProvider_gasLimitMultiplier.set(this, void 0);
|
|
37
|
+
_ViemWalletProvider_feePerGasMultiplier.set(this, void 0);
|
|
34
38
|
__classPrivateFieldSet(this, _ViemWalletProvider_walletClient, walletClient, "f");
|
|
35
39
|
__classPrivateFieldSet(this, _ViemWalletProvider_publicClient, (0, viem_1.createPublicClient)({
|
|
36
40
|
chain: walletClient.chain,
|
|
37
41
|
transport: (0, viem_1.http)(),
|
|
38
42
|
}), "f");
|
|
43
|
+
__classPrivateFieldSet(this, _ViemWalletProvider_gasLimitMultiplier, Math.max(gasConfig?.gasLimitMultiplier ?? 1.2, 1), "f");
|
|
44
|
+
__classPrivateFieldSet(this, _ViemWalletProvider_feePerGasMultiplier, Math.max(gasConfig?.feePerGasMultiplier ?? 1, 1), "f");
|
|
39
45
|
}
|
|
40
46
|
/**
|
|
41
47
|
* Signs a message.
|
|
@@ -96,12 +102,25 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
96
102
|
if (!chain) {
|
|
97
103
|
throw new Error("Chain not found");
|
|
98
104
|
}
|
|
105
|
+
const feeData = await __classPrivateFieldGet(this, _ViemWalletProvider_publicClient, "f").estimateFeesPerGas();
|
|
106
|
+
const maxFeePerGas = (0, utils_1.applyGasMultiplier)(feeData.maxFeePerGas, __classPrivateFieldGet(this, _ViemWalletProvider_feePerGasMultiplier, "f"));
|
|
107
|
+
const maxPriorityFeePerGas = (0, utils_1.applyGasMultiplier)(feeData.maxPriorityFeePerGas, __classPrivateFieldGet(this, _ViemWalletProvider_feePerGasMultiplier, "f"));
|
|
108
|
+
const gasLimit = await __classPrivateFieldGet(this, _ViemWalletProvider_publicClient, "f").estimateGas({
|
|
109
|
+
account,
|
|
110
|
+
to: transaction.to,
|
|
111
|
+
value: transaction.value,
|
|
112
|
+
data: transaction.data,
|
|
113
|
+
});
|
|
114
|
+
const gas = BigInt(Math.round(Number(gasLimit) * __classPrivateFieldGet(this, _ViemWalletProvider_gasLimitMultiplier, "f")));
|
|
99
115
|
const txParams = {
|
|
100
116
|
account: account,
|
|
101
117
|
chain: chain,
|
|
102
118
|
data: transaction.data,
|
|
103
119
|
to: transaction.to,
|
|
104
120
|
value: transaction.value,
|
|
121
|
+
gas,
|
|
122
|
+
maxFeePerGas,
|
|
123
|
+
maxPriorityFeePerGas,
|
|
105
124
|
};
|
|
106
125
|
return __classPrivateFieldGet(this, _ViemWalletProvider_walletClient, "f").sendTransaction(txParams);
|
|
107
126
|
}
|
|
@@ -121,7 +140,7 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
121
140
|
getNetwork() {
|
|
122
141
|
return {
|
|
123
142
|
protocolFamily: "evm",
|
|
124
|
-
chainId: __classPrivateFieldGet(this, _ViemWalletProvider_walletClient, "f").chain.id,
|
|
143
|
+
chainId: String(__classPrivateFieldGet(this, _ViemWalletProvider_walletClient, "f").chain.id),
|
|
125
144
|
networkId: network_1.CHAIN_ID_TO_NETWORK_ID[__classPrivateFieldGet(this, _ViemWalletProvider_walletClient, "f").chain.id],
|
|
126
145
|
};
|
|
127
146
|
}
|
|
@@ -184,4 +203,4 @@ class ViemWalletProvider extends evmWalletProvider_1.EvmWalletProvider {
|
|
|
184
203
|
}
|
|
185
204
|
}
|
|
186
205
|
exports.ViemWalletProvider = ViemWalletProvider;
|
|
187
|
-
_ViemWalletProvider_walletClient = new WeakMap(), _ViemWalletProvider_publicClient = new WeakMap();
|
|
206
|
+
_ViemWalletProvider_walletClient = new WeakMap(), _ViemWalletProvider_publicClient = new WeakMap(), _ViemWalletProvider_gasLimitMultiplier = new WeakMap(), _ViemWalletProvider_feePerGasMultiplier = new WeakMap();
|
|
@@ -44,5 +44,5 @@ export declare abstract class WalletProvider {
|
|
|
44
44
|
* @param value - The amount to transfer in whole units (e.g. ETH)
|
|
45
45
|
* @returns The transaction hash.
|
|
46
46
|
*/
|
|
47
|
-
abstract nativeTransfer(to:
|
|
47
|
+
abstract nativeTransfer(to: string, value: string): Promise<string>;
|
|
48
48
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@coinbase/agentkit",
|
|
3
3
|
"description": "Coinbase AgentKit core primitives",
|
|
4
4
|
"repository": "https://github.com/coinbase/agentkit",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.2.0",
|
|
6
6
|
"author": "Coinbase Inc.",
|
|
7
7
|
"license": "Apache-2.0",
|
|
8
8
|
"main": "dist/index.js",
|
|
@@ -40,6 +40,9 @@
|
|
|
40
40
|
],
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@coinbase/coinbase-sdk": "^0.17.0",
|
|
43
|
+
"@privy-io/server-auth": "^1.18.4",
|
|
44
|
+
"@solana/spl-token": "^0.4.12",
|
|
45
|
+
"@solana/web3.js": "^1.98.0",
|
|
43
46
|
"md5": "^2.3.0",
|
|
44
47
|
"reflect-metadata": "^0.2.2",
|
|
45
48
|
"twitter-api-v2": "^1.18.2",
|