Skip to content

Commit

Permalink
fix: send notifications to test channel
Browse files Browse the repository at this point in the history
  • Loading branch information
Namaskar-1F64F committed Aug 7, 2024
1 parent 34aea42 commit fba3756
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 26 deletions.
10 changes: 6 additions & 4 deletions src/actions/artifact.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Context, Event, TransactionEvent } from "@tenderly/actions";
import { Context, Event, Network, TransactionEvent } from "@tenderly/actions";
import { emitter } from "./emitter";
import { getHardwareRentedEvent } from "./logParsing";
import { HardwareRented } from "./types";
Expand All @@ -8,7 +8,8 @@ import { formatEther } from "ethers/lib/utils";

const handleHardwareRentedEvent = async (
transactionEvent: TransactionEvent,
hardwareRentedEvent: HardwareRented
hardwareRentedEvent: HardwareRented,
network?: Network
) => {
const { user, nodeID, hardwareProviderName, duration, payment } =
hardwareRentedEvent;
Expand All @@ -31,16 +32,17 @@ const handleHardwareRentedEvent = async (
duration: duration.toString(),
payment: payment.toString(),
};
await emitter.emit(undefined, workflowData);
await emitter.emit(undefined, workflowData, undefined, network);
};

export const hardwareRented = async (context: Context, event: Event) => {
await initServices(context);
const transactionEvent = event as TransactionEvent;
const network = context.metadata.getNetwork()

const hardwareRentedEvent = await getHardwareRentedEvent(transactionEvent);
if (hardwareRentedEvent) {
await handleHardwareRentedEvent(transactionEvent, hardwareRentedEvent);
await handleHardwareRentedEvent(transactionEvent, hardwareRentedEvent, network);
} else {
throw new Error("No Withdraw or Deposit event found");
}
Expand Down
7 changes: 4 additions & 3 deletions src/actions/emitter.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import { Network } from "@tenderly/actions";
import { WebhookMessageCreateOptions } from "discord.js";

export abstract class Client {
abstract sendMessage(message?: WebhookMessageCreateOptions, workflowData?: any, body?: any): Promise<void>;
abstract sendMessage(message?: WebhookMessageCreateOptions, workflowData?: any, body?: any, network?: Network): Promise<void>;
abstract clientId: string; // This should be a unique id to identify the client
}

Expand All @@ -19,9 +20,9 @@ export class Emitter {
this._clients.set(client.clientId, client);
}

async emit(message?: WebhookMessageCreateOptions, workflowData?: any, body?: any) {
async emit(message?: WebhookMessageCreateOptions, workflowData?: any, body?: any, network?: Network) {
const messagePromises = Array.from(this._clients.values()).map((client) =>
client.sendMessage(message, workflowData, body)
client.sendMessage(message, workflowData, body, network)
);
await Promise.all(messagePromises);
}
Expand Down
33 changes: 22 additions & 11 deletions src/actions/knock.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { Client } from "./emitter";
import { Knock } from "@knocklabs/node";
import { Network } from "@tenderly/actions";
import { WebhookMessageCreateOptions } from "discord.js";

export class KnockClient extends Client {
Expand All @@ -20,7 +21,12 @@ export class KnockClient extends Client {
return this._knockClient;
}

async sendMessage(_message: WebhookMessageCreateOptions, workflowData?: any) {
async sendMessage(
_message: WebhookMessageCreateOptions,
workflowData?: any,
body?: any,
network?: Network
) {
if (!workflowData) {
console.log("workflowData is undefined");
return;
Expand All @@ -29,17 +35,22 @@ export class KnockClient extends Client {
throw new Error("Knock client not initialized");
} else if (workflowData) {
console.log("Sending message to knock");
await this._knockClient.workflows.trigger("new-oneclick-minipool", {
recipients: [
{
collection: "webhook-users",
id: "tenderly",
await this._knockClient.workflows.trigger(
network === Network.FUJI
? "new-oneclick-minipool-fuji"
: "new-oneclick-minipool",
{
recipients: [
{
collection: "webhook-users",
id: "tenderly",
},
],
data: {
...workflowData,
},
],
data: {
...workflowData,
},
});
}
);
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions src/actions/minipoolLaunch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ const HARDWARE_PROVIDERS: Record<string, string> = {
const handleMinipoolLaunchedEvent = async (
context: Context,
transactionEvent: TransactionEvent,
minipoolLaunchedEvent: MinipoolLaunched
minipoolLaunchedEvent: MinipoolLaunched,
) => {
const { nodeID, hardwareProvider } = minipoolLaunchedEvent;
const hardwareProviderName = HARDWARE_PROVIDERS[hardwareProvider.toLowerCase()];
Expand All @@ -35,7 +35,7 @@ const handleMinipoolLaunchedEvent = async (
nodeIDHex: nodeID.toString(),
hardwareProviderName,
};
await emitter.emit(undefined, workflowData);
await emitter.emit(undefined, workflowData, undefined, network);
};

export const minipoolLaunched = async (context: Context, event: Event) => {
Expand Down
12 changes: 6 additions & 6 deletions src/actions/templates.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1135,9 +1135,9 @@ export const SLACK_HARDWARE_RENTED_TEMPLATE = async ({
payment: string;
}) => {
const headerText =
network === Network.MAINNET
? ":computer: Hardware Rented"
: ":female-construction-worker::computer: Hardware Rented (Testnet)";
network === Network.FUJI
? ":female-construction-worker::computer: Hardware Rented (Testnet)"
: ":computer: Hardware Rented";
const displayDuration = Math.floor(parseInt(duration) / 86400);
return {
blocks: [
Expand Down Expand Up @@ -1222,9 +1222,9 @@ export const SLACK_MINIPOOL_LAUNCHED_TEMPLATE = async ({
hardwareProviderName: string;
}) => {
const headerText =
network === Network.MAINNET
? ":rocket: Minipool Launched"
: ":female-construction-worker: :rocket: Minipool Launched (Testnet)";
network === Network.FUJI
? ":female-construction-worker: :rocket: Minipool Launched (Testnet)"
: ":rocket: Minipool Launched";
return {
blocks: [
{
Expand Down

0 comments on commit fba3756

Please sign in to comment.