added-test

This commit is contained in:
bhavik 2021-12-02 01:34:08 +05:30
parent 0192090d09
commit 0ab105a9ab
9 changed files with 107 additions and 15 deletions

View File

@ -112,7 +112,7 @@ describe('Detect Instadapp Connector Contract Event', () => {
description: `Instadapp ADDED Connector Event is detected.`,
alertId: 'INSTADAPP-16',
protocol: 'INSTADAPP',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])
@ -137,7 +137,7 @@ describe('Detect Instadapp Connector Contract Event', () => {
description: `Instadapp UPDATED Connector Event is detected.`,
alertId: 'INSTADAPP-16',
protocol: 'INSTADAPP',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])
@ -162,7 +162,7 @@ describe('Detect Instadapp Connector Contract Event', () => {
description: `Instadapp REMOVED Connector Event is detected.`,
alertId: 'INSTADAPP-16',
protocol: 'INSTADAPP',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])

View File

@ -44,7 +44,7 @@ const handleTransaction: HandleTransaction = async (
description: `Instadapp ${sig} Connector Event is detected.`,
alertId: 'INSTADAPP-16',
protocol: 'INSTADAPP',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
})
)

View File

@ -110,7 +110,7 @@ describe('Detect Instadapp Governance Event', () => {
description: `Instadapp QUEUE Proposal Event is detected.`,
alertId: 'Instadapp-12',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])
@ -135,7 +135,7 @@ describe('Detect Instadapp Governance Event', () => {
description: `Instadapp EXECUTE Proposal Event is detected.`,
alertId: 'Instadapp-12',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])
@ -160,7 +160,7 @@ describe('Detect Instadapp Governance Event', () => {
description: `Instadapp CANCEL Proposal Event is detected.`,
alertId: 'Instadapp-12',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])

View File

@ -37,7 +37,7 @@ const handleTransaction: HandleTransaction = async (
description: `Instadapp ${sig} Proposal Event is detected.`,
alertId: 'Instadapp-12',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
})
)

View File

@ -26,7 +26,7 @@ function provideHandleTransaction(amountThreshold) {
InstTransfer.args.value.toString()
).dividedBy(10 ** INST_DECIMALS)
if (amount.isLessThan(amountThreshold)) return;
if (amount.isLessThan(amountThreshold)) return findings;
const formattedAmount = amount.toFixed(2);
findings.push(

View File

@ -110,7 +110,7 @@ describe('Detect Instadapp Implementation Contract Event', () => {
description: `Instadapp SETDEFAULT Implementation Event is detected.`,
alertId: 'Instadapp-14',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])
@ -135,7 +135,7 @@ describe('Detect Instadapp Implementation Contract Event', () => {
description: `Instadapp ADD Implementation Event is detected.`,
alertId: 'Instadapp-14',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])
@ -160,7 +160,7 @@ describe('Detect Instadapp Implementation Contract Event', () => {
description: `Instadapp REMOVE Implementation Event is detected.`,
alertId: 'Instadapp-14',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
}),
])

View File

@ -37,7 +37,7 @@ const handleTransaction: HandleTransaction = async (
description: `Instadapp ${sig} Implementation Event is detected.`,
alertId: 'Instadapp-14',
protocol: 'Instadapp',
type: FindingType.Unknown,
type: FindingType.Info,
severity: FindingSeverity.Info,
})
)

View File

@ -0,0 +1,92 @@
const BigNumber = require("bignumber.js");
const { Finding, FindingSeverity, FindingType } = require("forta-agent");
const { provideHandleTransaction } = require("./agent");
const {
DAI_ADDRESS,
TRANSFER_EVENT,
DAI_DECIMALS,
USDC_ADDRESS,
USDC_DECIMALS
} = require("./constants");
describe("large transfer event agent", () => {
let handleTransaction;
const mockAmountThreshold = "1000";
const mockTxEvent = {
filterLog: jest.fn(),
};
beforeAll(() => {
handleTransaction = provideHandleTransaction(mockAmountThreshold);
});
beforeEach(() => {
mockTxEvent.filterLog.mockReset();
});
it("returns empty findings if there are no transfer events", async () => {
mockTxEvent.filterLog.mockReturnValue([]);
const findings = await handleTransaction(mockTxEvent);
// console.log("findings", findings)
expect(findings).toStrictEqual([]);
});
it("returns empty findings if there are large token transfer events but no dsa address is involved", async () => {
const amount = new BigNumber("1001");
const formattedAmount = amount.toFixed(2);
const mockDaiTransferEvent = {
args: {
from: "0x80f36f504c63b7663cebcdecb2ae7620a1fcb6e1",
to: "0x6b175474e89094c44da98b954eedeac495271d0f",
value: amount.multipliedBy(10 ** DAI_DECIMALS),
},
};
mockTxEvent.filterLog.mockReturnValueOnce([mockDaiTransferEvent]);
mockTxEvent.filterLog.mockReturnValueOnce([]);
const findings = await handleTransaction(mockTxEvent);
expect(findings).toStrictEqual([]);
});
it("returns findings if there are large token transfer events involving dsa address", async () => {
const amount = new BigNumber("1001");
const formattedAmount = amount.toFixed(2);
const mockDaiTransferEvent = {
args: {
from: "0xf151ed2caedbda83c17ae39d6990d92909fcf529", // dsa
to: "0x4f58985b75eec8f14c536878a19eadf4a1960d6c",
value: amount.multipliedBy(10 ** DAI_DECIMALS),
},
};
mockTxEvent.filterLog.mockReturnValueOnce([mockDaiTransferEvent]);
mockTxEvent.filterLog.mockReturnValueOnce([]);
const findings = await handleTransaction(mockTxEvent);
expect(findings).toStrictEqual([
Finding.fromObject({
name: "Large DAI Transfer",
description: `${formattedAmount} DAI Transferred`,
alertId: "INST-41",
severity: FindingSeverity.Info,
type: FindingType.Info,
metadata: {
from: mockDaiTransferEvent.args.from,
to: mockDaiTransferEvent.args.to,
amount: formattedAmount,
},
}),
]);
});
});

View File

@ -19,8 +19,8 @@ function token(name, address, decimals) {
}
var tokens = [
new token("USDC", USDC_ADDRESS, USDC_DECIMALS),
new token("DAI", DAI_ADDRESS, DAI_DECIMALS)
new token("DAI", DAI_ADDRESS, DAI_DECIMALS),
new token("USDC", USDC_ADDRESS, USDC_DECIMALS)
]