Skip to content

Commit

Permalink
updates for the backend
Browse files Browse the repository at this point in the history
Signed-off-by: MarcoMandar <malicemandar@gmail.com>
  • Loading branch information
MarcoMandar committed Nov 25, 2024
1 parent e240a18 commit 6d6296e
Show file tree
Hide file tree
Showing 3 changed files with 59 additions and 15 deletions.
30 changes: 16 additions & 14 deletions packages/plugin-solana/src/providers/simulationSellingService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,8 @@ export class simulationSellingService {
const process = await this.startProcessInTheSonarBackend(
tokenAddress,
balance,
sell_recommender_id
sell_recommender_id,
tokenPerformance.initial_mc
);
if (process) {
this.runningProcesses.add(tokenAddress);
Expand All @@ -223,21 +224,23 @@ export class simulationSellingService {
private async startProcessInTheSonarBackend(
tokenAddress: string,
balance: number,
sell_recommender_id: string
isSimulation: boolean,
initial_mc: number
) {
try {
const message = JSON.stringify({
tokenAddress,
balance,
sell_recommender_id,
isSimulation,
initial_mc,
});
const response = await fetch(
`${this.sonarBe}/api/simulation/sell`,
`${this.sonarBe}/ai16z-sol/startProcess`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${this.sonarBeToken}`,
"x-api-key": `${this.sonarBeToken}`,
},
body: message,
}
Expand Down Expand Up @@ -266,15 +269,14 @@ export class simulationSellingService {

private stopProcessInTheSonarBackend(tokenAddress: string) {
try {
return fetch(
`${this.sonarBe}/api/simulation/sell/${tokenAddress}`,
{
method: "GET",
headers: {
Authorization: `Bearer ${this.sonarBeToken}`,
},
}
);
return fetch(`${this.sonarBe}/ai16z-sol/stopProcess`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": `${this.sonarBeToken}`,
},
body: JSON.stringify({ tokenAddress }),
});
} catch (error) {
console.error(
`Error stopping process for token ${tokenAddress}:`,
Expand Down
24 changes: 23 additions & 1 deletion packages/plugin-solana/src/providers/trustScoreProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -399,9 +399,31 @@ export class TrustScoreManager {
processedData.dexScreenerData.pairs[0]?.liquidity || 0,
initialPrice: processedData.tradeData.price,
};

this.trustScoreDb.addTokenRecommendation(tokenRecommendation);

this.trustScoreDb.upsertTokenPerformance({
tokenAddress: tokenAddress,
priceChange24h: processedData.tradeData.price_change_24h_percent,
volumeChange24h: processedData.tradeData.volume_24h,
trade_24h_change: processedData.tradeData.trade_24h_change_percent,
liquidity:
processedData.dexScreenerData.pairs[0]?.liquidity.usd || 0,
liquidityChange24h: 0,
holderChange24h:
processedData.tradeData.unique_wallet_24h_change_percent,
rugPull: false,
isScam: false,
marketCapChange24h: 0,
sustainedGrowth: false,
rapidDump: false,
suspiciousVolume: false,
validationTrust: 0,
balance: tokensBalance,
initialMarketCap:
processedData.dexScreenerData.pairs[0]?.marketCap || 0,
lastUpdated: new Date(),
});

if (data.is_simulation) {
// If the trade is a simulation update the balance
this.trustScoreDb.updateTokenBalance(tokenAddress, tokensBalance);
Expand Down
20 changes: 20 additions & 0 deletions packages/plugin-trustdb/src/adapters/trustScoreDatabase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ export interface TokenPerformance {
suspiciousVolume: boolean;
validationTrust: number;
balance: number;
initialMarketCap: number;
lastUpdated: Date;
}

Expand Down Expand Up @@ -122,6 +123,7 @@ interface TokenPerformanceRow {
suspicious_volume: number;
validation_trust: number;
balance: number;
initial_market_cap: number;
last_updated: string;
}

Expand Down Expand Up @@ -205,6 +207,7 @@ export class TrustScoreDatabase {
suspicious_volume BOOLEAN DEFAULT FALSE,
validation_trust REAL DEFAULT 0,
balance REAL DEFAULT 0,
initial_market_cap REAL DEFAULT 0,
last_updated DATETIME DEFAULT CURRENT_TIMESTAMP
);
`);
Expand Down Expand Up @@ -731,6 +734,8 @@ export class TrustScoreDatabase {
rapid_dump,
suspicious_volume,
validation_trust,
balance,
initial_market_cap,
last_updated
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, CURRENT_TIMESTAMP)
ON CONFLICT(token_address) DO UPDATE SET
Expand All @@ -747,6 +752,8 @@ export class TrustScoreDatabase {
rapid_dump = excluded.rapid_dump,
suspicious_volume = excluded.suspicious_volume,
validation_trust = excluded.validation_trust,
balance = excluded.balance,
initial_market_cap = excluded.initial_market_cap,
last_updated = CURRENT_TIMESTAMP;
`;
try {
Expand All @@ -764,6 +771,8 @@ export class TrustScoreDatabase {
performance.sustainedGrowth ? 1 : 0,
performance.rapidDump ? 1 : 0,
performance.suspiciousVolume ? 1 : 0,
performance.balance,
performance.initialMarketCap,
validationTrust
);
console.log(
Expand Down Expand Up @@ -823,10 +832,20 @@ export class TrustScoreDatabase {
suspiciousVolume: row.suspicious_volume === 1,
validationTrust: row.validation_trust,
balance: row.balance,
initialMarketCap: row.initial_market_cap,
lastUpdated: new Date(row.last_updated),
};
}

//getTokenBalance
getTokenBalance(tokenAddress: string): number {
const sql = `SELECT balance FROM token_performance WHERE token_address = ?;`;
const row = this.db.prepare(sql).get(tokenAddress) as {
balance: number;
};
return row.balance;
}

getAllTokenPerformancesWithBalance(): TokenPerformance[] {
const sql = `SELECT * FROM token_performance WHERE balance > 0;`;
const rows = this.db.prepare(sql).all() as TokenPerformanceRow[];
Expand All @@ -847,6 +866,7 @@ export class TrustScoreDatabase {
suspiciousVolume: row.suspicious_volume === 1,
validationTrust: row.validation_trust,
balance: row.balance,
initialMarketCap: row.initial_market_cap,
lastUpdated: new Date(row.last_updated),
}));
}
Expand Down

0 comments on commit 6d6296e

Please sign in to comment.