|
| 1 | +#!/usr/bin/env python |
| 2 | +# -*- coding: utf-8 -*- |
| 3 | +# @Time 2024/9/23 18:37 |
| 4 | +# @Author will |
| 5 | +# @File eigen_layer_abi.py |
| 6 | +# @Brief |
| 7 | +import json |
| 8 | +from typing import cast |
| 9 | + |
| 10 | +from web3.types import ABIEvent, ABIFunction |
| 11 | + |
| 12 | +from indexer.utils.abi import event_log_abi_to_topic, function_abi_to_4byte_selector_str |
| 13 | + |
| 14 | +DEPOSIT_EVENT = cast( |
| 15 | + ABIEvent, |
| 16 | + json.loads( |
| 17 | + """{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"contract IERC20","name":"token","type":"address"},{"indexed":false,"internalType":"contract IStrategy","name":"strategy","type":"address"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"} |
| 18 | +""" |
| 19 | + ), |
| 20 | +) |
| 21 | +DEPOSIT_EVENT_SIG = event_log_abi_to_topic(DEPOSIT_EVENT) |
| 22 | + |
| 23 | +WITHDRAWAL_QUEUED_EVENT = cast( |
| 24 | + ABIEvent, |
| 25 | + json.loads( |
| 26 | + """ |
| 27 | + {"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"withdrawalRoot","type":"bytes32"},{"components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"delegatedTo","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32","name":"startBlock","type":"uint32"},{"internalType":"contract IStrategy[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}],"indexed":false,"internalType":"struct Withdrawal","name":"withdrawal","type":"tuple"}],"name":"WithdrawalQueued","type":"event"} |
| 28 | +""" |
| 29 | + ), |
| 30 | +) |
| 31 | +WITHDRAWAL_QUEUED_EVENT_SIG = event_log_abi_to_topic(WITHDRAWAL_QUEUED_EVENT) |
| 32 | + |
| 33 | +WITHDRAWAL_QUEUED_EVENT_2 = cast( |
| 34 | + ABIEvent, |
| 35 | + json.loads( |
| 36 | + """{"type":"event","name":"WithdrawalQueued","inputs":[{"type":"address","name":"depositor","indexed":false},{"type":"uint96","name":"nonce","indexed":false},{"type":"address","name":"withdrawer","indexed":false},{"type":"address","name":"delegatedAddress","indexed":false},{"type":"bytes32","name":"withdrawalRoot","indexed":false}],"anonymous":false} |
| 37 | +""" |
| 38 | + ), |
| 39 | +) |
| 40 | + |
| 41 | +SHARE_WITHDRAW_QUEUED = cast( |
| 42 | + ABIEvent, |
| 43 | + json.loads( |
| 44 | + """{"anonymous":false,"inputs":[{"indexed":false,"name":"depositor","type":"address"},{"indexed":false,"name":"nonce","type":"uint96"},{"indexed":false,"name":"strategy","type":"address"},{"indexed":false,"name":"shares","type":"uint256"}],"name":"ShareWithdrawalQueued","type":"event"}""" |
| 45 | + ), |
| 46 | +) |
| 47 | + |
| 48 | +WITHDRAWAL_COMPLETED_EVENT = cast( |
| 49 | + ABIEvent, |
| 50 | + json.loads( |
| 51 | + """{"type":"event","name":"WithdrawalCompleted","inputs":[{"type":"bytes32","name":"withdrawalRoot","indexed":false}],"anonymous":false} |
| 52 | + """ |
| 53 | + ), |
| 54 | +) |
| 55 | +WITHDRAWAL_COMPLETED_EVENT_SIG = event_log_abi_to_topic(WITHDRAWAL_COMPLETED_EVENT) |
| 56 | + |
| 57 | + |
| 58 | +FINISH_WITHDRAWAL_FUNCTION = cast( |
| 59 | + ABIFunction, |
| 60 | + json.loads( |
| 61 | + """{"inputs":[{"components":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"delegatedTo","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32","name":"startBlock","type":"uint32"},{"internalType":"address[]","name":"strategies","type":"address[]"},{"internalType":"uint256[]","name":"shares","type":"uint256[]"}],"internalType":"struct Withdrawal[]","name":"withdrawals","type":"tuple[]"},{"internalType":"address[][]","name":"tokens","type":"address[][]"},{"internalType":"uint256[]","name":"middlewareTimesIndexes","type":"uint256[]"},{"internalType":"bool[]","name":"receiveAsTokens","type":"bool[]"}],"name":"completeQueuedWithdrawals","outputs":[],"stateMutability":"nonpayable","type":"function"}""" |
| 62 | + ), |
| 63 | +) |
| 64 | +FINISH_WITHDRAWAL_FUNCTION_4SIG = function_abi_to_4byte_selector_str(FINISH_WITHDRAWAL_FUNCTION) |
0 commit comments