@@ -3,17 +3,24 @@ import { TrustScoreManager } from "@ai16z/plugin-solana/src/providers/trustScore
3
3
import { TokenProvider } from "@ai16z/plugin-solana/src/providers/token.ts" ;
4
4
import { WalletProvider } from "@ai16z/plugin-solana/src/providers/wallet.ts" ;
5
5
import { TrustScoreDatabase } from "@ai16z/plugin-solana/src/adapters/trustScoreDatabase.ts" ;
6
+ import { Connection , PublicKey } from "@solana/web3.js" ;
6
7
7
8
export class AutoClient {
8
9
interval : NodeJS . Timeout ;
9
10
runtime : IAgentRuntime ;
10
11
trustScoreProvider : TrustScoreManager ;
12
+ walletProvider : WalletProvider ;
11
13
12
14
constructor ( runtime : IAgentRuntime ) {
13
15
this . runtime = runtime ;
14
16
15
17
const trustScoreDb = new TrustScoreDatabase ( runtime . databaseAdapter . db ) ;
16
18
this . trustScoreProvider = new TrustScoreManager ( null , trustScoreDb ) ;
19
+ this . walletProvider = new WalletProvider (
20
+ new Connection ( runtime . getSetting ( "RPC_URL" ) ) ,
21
+ new PublicKey ( runtime . getSetting ( "WALLET_PUBLIC_KEY" ) )
22
+ ) ;
23
+
17
24
// start a loop that runs every x seconds
18
25
this . interval = setInterval (
19
26
async ( ) => {
@@ -41,6 +48,18 @@ export class AutoClient {
41
48
) ;
42
49
43
50
// get information for all tokens which were recommended
51
+ const tokenInfos = highTrustRecommendations . map (
52
+ async ( highTrustRecommendation ) => {
53
+ const tokenProvider = new TokenProvider (
54
+ highTrustRecommendation . tokenAddress ,
55
+ this . walletProvider
56
+ ) ;
57
+ const tokenInfo = await tokenProvider . getProcessedTokenData ( ) ;
58
+ const shouldTrade = await tokenProvider . shouldTradeToken ( ) ;
59
+ return { tokenInfo, shouldTrade } ;
60
+ }
61
+ ) ;
62
+
44
63
// get any additional information we might need
45
64
// make sure we're looking at the right tokens and data
46
65
0 commit comments