Skip to content

Commit

Permalink
feat: added tasks to list bridge txs (#755)
Browse files Browse the repository at this point in the history
Signed-off-by: Tomás Migone <tomas@edgeandnode.com>
  • Loading branch information
tmigone authored Nov 30, 2022
1 parent 3fe26fa commit d808888
Show file tree
Hide file tree
Showing 4 changed files with 126 additions and 0 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
"addresses.json"
],
"dependencies": {
"console-table-printer": "^2.11.1",
"ethers": "^5.6.0"
},
"devDependencies": {
Expand Down
59 changes: 59 additions & 0 deletions tasks/bridge/deposits.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { task } from 'hardhat/config'
import { cliOpts } from '../../cli/defaults'
import { ethers } from 'ethers'
import { Table } from 'console-table-printer'

export const TASK_BRIDGE_DEPOSITS = 'bridge:deposits'

task(TASK_BRIDGE_DEPOSITS, 'List deposits initiated on L1GraphTokenGateway')
.addOptionalParam('addressBook', cliOpts.addressBook.description)
.addOptionalParam(
'arbitrumAddressBook',
cliOpts.arbitrumAddressBook.description,
cliOpts.arbitrumAddressBook.default,
)
.addOptionalParam('l1GraphConfig', cliOpts.graphConfig.description)
.addOptionalParam('l2GraphConfig', cliOpts.graphConfig.description)
.addOptionalParam('startBlock', 'Start block for the search')
.addOptionalParam('endBlock', 'End block for the search')
.setAction(async (taskArgs, hre) => {
console.log('> L1GraphTokenGateway deposits')

const graph = hre.graph(taskArgs)
const gateway = graph.l1.contracts.L1GraphTokenGateway
console.log(`Tracking 'DepositInitiated' events on ${gateway.address}`)

const startBlock = taskArgs.startBlock ? parseInt(taskArgs.startBlock) : 0
const endBlock = taskArgs.endBlock ? parseInt(taskArgs.endBlock) : 'latest'
console.log(`Searching blocks from ${startBlock} to ${endBlock}`)

const events = (
await gateway.queryFilter(gateway.filters.DepositInitiated(), startBlock, endBlock)
).map((e) => ({
blockNumber: e.blockNumber,
transactionHash: e.transactionHash,
from: e.args.from,
to: e.args.to,
amount: ethers.utils.formatEther(e.args.amount),
}))

printEvents(events)
})

function printEvents(events: any[]) {
const tablePrinter = new Table({
columns: [
{ name: 'blockNumber', color: 'green' },
{
name: 'transactionHash',
color: 'green',
},
{ name: 'from', color: 'green' },
{ name: 'to', color: 'green' },
{ name: 'amount', color: 'green' },
],
})

events.map((e) => tablePrinter.addRow(e))
tablePrinter.printTable()
}
59 changes: 59 additions & 0 deletions tasks/bridge/withdrawals.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
import { task } from 'hardhat/config'
import { cliOpts } from '../../cli/defaults'
import { ethers } from 'ethers'
import { Table } from 'console-table-printer'

export const TASK_BRIDGE_WITHDRAWALS = 'bridge:withdrawals'

task(TASK_BRIDGE_WITHDRAWALS, 'List withdrawals initiated on L2GraphTokenGateway')
.addOptionalParam('addressBook', cliOpts.addressBook.description)
.addOptionalParam(
'arbitrumAddressBook',
cliOpts.arbitrumAddressBook.description,
cliOpts.arbitrumAddressBook.default,
)
.addOptionalParam('l1GraphConfig', cliOpts.graphConfig.description)
.addOptionalParam('l2GraphConfig', cliOpts.graphConfig.description)
.addOptionalParam('startBlock', 'Start block for the search')
.addOptionalParam('endBlock', 'End block for the search')
.setAction(async (taskArgs, hre) => {
console.log('> L2GraphTokenGateway withdrawals')

const graph = hre.graph(taskArgs)
const gateway = graph.l2.contracts.L2GraphTokenGateway
console.log(`Tracking 'WithdrawalInitiated' events on ${gateway.address}`)

const startBlock = taskArgs.startBlock ? parseInt(taskArgs.startBlock) : 0
const endBlock = taskArgs.endBlock ? parseInt(taskArgs.endBlock) : 'latest'
console.log(`Searching blocks from ${startBlock} to ${endBlock}`)

const events = (
await gateway.queryFilter(gateway.filters.WithdrawalInitiated(), startBlock, endBlock)
).map((e) => ({
blockNumber: e.blockNumber,
transactionHash: e.transactionHash,
from: e.args.from,
to: e.args.to,
amount: ethers.utils.formatEther(e.args.amount),
}))

printEvents(events)
})

function printEvents(events: any[]) {
const tablePrinter = new Table({
columns: [
{ name: 'blockNumber', color: 'green' },
{
name: 'transactionHash',
color: 'green',
},
{ name: 'from', color: 'green' },
{ name: 'to', color: 'green' },
{ name: 'amount', color: 'green' },
],
})

events.map((e) => tablePrinter.addRow(e))
tablePrinter.printTable()
}
7 changes: 7 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3544,6 +3544,13 @@ concat-stream@^1.5.1, concat-stream@^1.6.0, concat-stream@^1.6.2:
readable-stream "^2.2.2"
typedarray "^0.0.6"

console-table-printer@^2.11.1:
version "2.11.1"
resolved "https://registry.yarnpkg.com/console-table-printer/-/console-table-printer-2.11.1.tgz#c2dfe56e6343ea5bcfa3701a4be29fe912dbd9c7"
integrity sha512-8LfFpbF/BczoxPwo2oltto5bph8bJkGOATXsg3E9ddMJOGnWJciKHldx2zDj5XIBflaKzPfVCjOTl6tMh7lErg==
dependencies:
simple-wcswidth "^1.0.1"

console-table-printer@^2.9.0:
version "2.11.0"
resolved "https://registry.yarnpkg.com/console-table-printer/-/console-table-printer-2.11.0.tgz#704a74cb56d66267a2527f500fedcaa78ca76259"
Expand Down

0 comments on commit d808888

Please sign in to comment.