@@ -10,15 +10,13 @@ import {
10
10
import { postTweet } from "@elizaos/plugin-twitter" ;
11
11
import express from "express" ;
12
12
import { WebhookEvent } from "./types" ;
13
- import { EventEmitter } from "events" ;
14
13
15
- export class CoinbaseClient extends EventEmitter {
14
+ export class CoinbaseClient implements Client {
16
15
private runtime : IAgentRuntime ;
17
16
private server : express . Application ;
18
17
private port : number ;
19
18
20
19
constructor ( runtime : IAgentRuntime ) {
21
- super ( ) ;
22
20
23
21
this . runtime = runtime ;
24
22
this . server = express ( ) ;
@@ -81,19 +79,21 @@ export class CoinbaseClient extends EventEmitter {
81
79
await this . runtime . ensureRoomExists ( roomId ) ;
82
80
await this . runtime . ensureParticipantInRoom ( this . runtime . agentId , roomId ) ;
83
81
82
+ const amount = this . runtime . getSetting ( 'COINBASE_TRADING_AMOUNT' ) ?? 1 ;
84
83
const memory : Memory = {
85
84
id : stringToUuid ( `coinbase-${ event . timestamp } ` ) ,
86
85
userId : this . runtime . agentId ,
87
86
agentId : this . runtime . agentId ,
88
87
roomId,
89
88
content : {
90
- text : `Received ${ event . event } signal for ${ event . ticker } at price ${ event . price } ` ,
89
+ text : `Place an advanced market order to ${ event . event . toLowerCase ( ) } $ ${ amount } worth of ${ event . ticker } ` ,
91
90
action : "EXECUTE_ADVANCED_TRADE" ,
92
91
source : "coinbase" ,
93
92
metadata : {
94
93
ticker : event . ticker ,
95
94
side : event . event . toUpperCase ( ) ,
96
95
price : event . price ,
96
+ amount : amount ,
97
97
timestamp : event . timestamp
98
98
}
99
99
} ,
@@ -111,12 +111,12 @@ export class CoinbaseClient extends EventEmitter {
111
111
await this . runtime . processActions ( memory , [ memory ] , state , callback ) ;
112
112
113
113
// Generate tweet content
114
- const tweetContent = `🚀 I just bought ${ event . event . toUpperCase ( ) } for ${ event . ticker } ! Current price: $${ event . price } . #Coinbase #Crypto ` ;
114
+ const tweetContent = `🚀 ${ event . event . toUpperCase ( ) } for ${ event . ticker } ! Amount: $ ${ amount } . Current price: $${ event . price } . ` ;
115
115
116
- // Call postTweet
117
116
try {
118
- await postTweet ( tweetContent ) ;
119
- elizaLogger . info ( "Tweet posted successfully:" , tweetContent ) ;
117
+ elizaLogger . info ( "Tweet content:" , tweetContent ) ;
118
+ const response = await postTweet ( tweetContent ) ;
119
+ elizaLogger . info ( "Tweet response:" , response ) ;
120
120
} catch ( error ) {
121
121
elizaLogger . error ( "Failed to post tweet:" , error ) ;
122
122
}
0 commit comments