-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprime-eth.ts
94 lines (93 loc) · 3.52 KB
/
prime-eth.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
import * as lrtDepositPoolAbi from '../abi/lrt-deposit-pool'
import { discordIconOrName } from '../notify/const'
import { renderDiscordEmbed } from '../notify/event/renderers/utils'
import { PRIME_ETH_ADDRESS, PRIME_ETH_LRT_DEPOSIT_POOL } from '../utils/addresses'
import { formatAmount } from '../utils/formatAmount'
import { transactionLink } from '../utils/links'
import { createEventProcessor } from './templates/event'
createEventProcessor({
name: 'primeETH LRT Deposit Pool',
topic: 'primeETH',
chainId: 1,
tracks: [
{
address: [PRIME_ETH_LRT_DEPOSIT_POOL],
events: lrtDepositPoolAbi.events,
renderers: {
AssetDeposit: ({ ctx, log, topic, severity }) => {
const { depositor, depositAmount, primeEthMintAmount, asset, referralId } =
lrtDepositPoolAbi.events.AssetDeposit.decode(log)
renderDiscordEmbed({
sortId: `${log.block.height}:${log.transactionIndex}:${log.logIndex}`,
topic,
severity,
title: 'Asset Deposit',
titleUrl: transactionLink(log.transactionHash, ctx.chain),
description: `[${depositor}](https://etherscan.io/address/${depositor})`,
fields: [
{
name: formatAmount(depositAmount),
value: `${discordIconOrName(asset)} Deposited`,
inline: true,
},
{
name: formatAmount(primeEthMintAmount),
value: `${discordIconOrName(PRIME_ETH_ADDRESS)} Received`,
inline: true,
},
{
name: referralId || '-',
value: 'Referral',
inline: true,
},
],
})
},
WithdrawalRequested: ({ ctx, log, topic, severity }) => {
severity = severity ?? 'low'
const { withdrawer, assetAmount, primeETHAmount, asset } =
lrtDepositPoolAbi.events.WithdrawalRequested.decode(log)
renderDiscordEmbed({
sortId: `${log.block.height}:${log.transactionIndex}:${log.logIndex}`,
topic,
severity,
title: 'Withdrawal Requested',
titleUrl: transactionLink(log.transactionHash, ctx.chain),
description: `[${withdrawer}](https://etherscan.io/address/${withdrawer})`,
fields: [
{
name: formatAmount(primeETHAmount),
value: `${discordIconOrName(PRIME_ETH_ADDRESS)} Burn`,
inline: true,
},
{
name: formatAmount(assetAmount),
value: `${discordIconOrName(asset)} Request`,
inline: true,
},
],
})
},
WithdrawalClaimed: ({ ctx, log, topic, severity }) => {
severity = severity ?? 'low'
const { withdrawer, asset, assets } = lrtDepositPoolAbi.events.WithdrawalClaimed.decode(log)
renderDiscordEmbed({
sortId: `${log.block.height}:${log.transactionIndex}:${log.logIndex}`,
topic,
severity,
title: 'Withdrawal Claimed',
titleUrl: transactionLink(log.transactionHash, ctx.chain),
description: `[${withdrawer}](https://etherscan.io/address/${withdrawer})`,
fields: [
{
name: formatAmount(assets),
value: `${discordIconOrName(asset)} Received`,
inline: true,
},
],
})
},
},
},
],
})