mirror of
https://github.com/d0zingcat/solana-agent-kit.git
synced 2026-05-17 15:10:27 +00:00
feat: test added
This commit is contained in:
@@ -5,15 +5,18 @@
|
||||
"main": "dist/index.js",
|
||||
"types": "dist/index.d.ts",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "tsc",
|
||||
"docs": "typedoc src --out docs"
|
||||
"docs": "typedoc src --out docs",
|
||||
"test": "ts-node test/index.ts"
|
||||
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@bonfida/spl-name-service": "^3.0.7",
|
||||
"@langchain/core": "^0.3.18",
|
||||
"@langchain/openai": "^0.3.13",
|
||||
"@metaplex-foundation/js": "^0.20.1",
|
||||
"@metaplex-foundation/mpl-core": "^1.1.1",
|
||||
"@metaplex-foundation/mpl-token-metadata": "^3.3.0",
|
||||
|
||||
6
pnpm-lock.yaml
generated
6
pnpm-lock.yaml
generated
@@ -11,6 +11,12 @@ importers:
|
||||
'@bonfida/spl-name-service':
|
||||
specifier: ^3.0.7
|
||||
version: 3.0.7(@solana/web3.js@1.95.4(bufferutil@4.0.8)(utf-8-validate@5.0.10))(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
|
||||
'@langchain/core':
|
||||
specifier: ^0.3.18
|
||||
version: 0.3.18(openai@4.72.0(zod@3.23.8))
|
||||
'@langchain/openai':
|
||||
specifier: ^0.3.13
|
||||
version: 0.3.13(@langchain/core@0.3.18(openai@4.72.0(zod@3.23.8)))
|
||||
'@metaplex-foundation/js':
|
||||
specifier: ^0.20.1
|
||||
version: 0.20.1(arweave@1.15.5)(bufferutil@4.0.8)(fastestsmallesttextencoderdecoder@1.0.22)(typescript@5.6.3)(utf-8-validate@5.0.10)
|
||||
|
||||
@@ -166,6 +166,19 @@ export class SolanaRegisterDomainTool extends Tool {
|
||||
}
|
||||
}
|
||||
|
||||
export class SolanaGetWalletAddressTool extends Tool {
|
||||
name = "solana_get_wallet_address";
|
||||
description = "Get the wallet address of the agent";
|
||||
|
||||
constructor(private solanaKit: SolanaAgentKit) {
|
||||
super();
|
||||
}
|
||||
|
||||
async _call(_input: string): Promise<string> {
|
||||
return this.solanaKit.wallet_address.toString();
|
||||
}
|
||||
}
|
||||
|
||||
// Updated createSolanaTools function
|
||||
export function createSolanaTools(solanaKit: SolanaAgentKit) {
|
||||
return [
|
||||
@@ -177,5 +190,6 @@ export function createSolanaTools(solanaKit: SolanaAgentKit) {
|
||||
new SolanaTradeTool(solanaKit),
|
||||
new SolanaRequestFundsTool(solanaKit),
|
||||
new SolanaRegisterDomainTool(solanaKit),
|
||||
new SolanaGetWalletAddressTool(solanaKit),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
45
test/index.ts
Normal file
45
test/index.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import { SolanaAgentKit } from "../src";
|
||||
import { createSolanaTools } from "../src/langchain";
|
||||
import { OpenAI } from "@langchain/openai";
|
||||
import { AgentExecutor } from "langchain/agents";
|
||||
import { PromptTemplate } from "@langchain/core/prompts";
|
||||
import { pull } from "langchain/hub";
|
||||
import { createReactAgent } from "langchain/agents";
|
||||
|
||||
// Initialize SolanaAgentKit
|
||||
const solanaKit = new SolanaAgentKit(
|
||||
"2bsq2EHutvSvZenGiFSqg4AKMBCP2gB1LnkRiavS4SHKZs4FnDSkGy9c2quiTBuSoKTn9AKV82P1E5D8mkiHJuEW"
|
||||
);
|
||||
|
||||
// Create Solana-specific tools
|
||||
const tools = createSolanaTools(solanaKit);
|
||||
|
||||
|
||||
(async () => {
|
||||
// Define a Prompt Template for the Agent
|
||||
const prompt = await pull<PromptTemplate>("hwchase17/react");
|
||||
|
||||
// Create an LLM Chain
|
||||
const llm = new OpenAI({
|
||||
modelName: "gpt-4o-mini",
|
||||
temperature: 0,
|
||||
});
|
||||
|
||||
const agent = await createReactAgent({
|
||||
llm,
|
||||
tools,
|
||||
prompt,
|
||||
});
|
||||
|
||||
const agentExecutor = new AgentExecutor({
|
||||
agent,
|
||||
tools,
|
||||
});
|
||||
|
||||
const result = await agentExecutor.invoke({
|
||||
input:
|
||||
"What is your wallet address?",
|
||||
});
|
||||
|
||||
console.log(result);
|
||||
})();
|
||||
Reference in New Issue
Block a user