Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Record token update operation caused by scheduled event as history #540

Merged
merged 1 commit into from
Sep 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 42 additions & 1 deletion batch/processor_scheduled_events.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
ScheduledEvents,
ScheduledEventType,
TokenType,
TokenUpdateOperationCategory,
TokenUpdateOperationLog,
)
from app.utils.e2ee_utils import E2EEUtils
from app.utils.web3_utils import Web3Wrapper
Expand Down Expand Up @@ -199,21 +201,42 @@ def __process(self, db_session: Session, events_list: List[ScheduledEvents]):
if _event.token_type == TokenType.IBET_SHARE.value:
# Update
if _event.event_type == ScheduledEventType.UPDATE.value:
token_contract = IbetShareContract(_event.token_address)
original_contents = token_contract.get().__dict__
_update_data = IbetShareUpdateParams(**_event.data)
IbetShareContract(_event.token_address).update(
token_contract.update(
data=_update_data,
tx_from=_event.issuer_address,
private_key=private_key,
)
self.__sink_on_token_update_operation_log(
db_session=db_session,
token_address=_event.token_address,
issuer_address=_event.issuer_address,
token_type=_event.token_type,
arguments=_update_data.model_dump(exclude_none=True),
original_contents=original_contents,
)

elif _event.token_type == TokenType.IBET_STRAIGHT_BOND.value:
# Update
if _event.event_type == ScheduledEventType.UPDATE.value:
token_contract = IbetStraightBondContract(_event.token_address)
original_contents = token_contract.get().__dict__
_update_data = IbetStraightBondUpdateParams(**_event.data)
IbetStraightBondContract(_event.token_address).update(
data=_update_data,
tx_from=_event.issuer_address,
private_key=private_key,
)
self.__sink_on_token_update_operation_log(
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed to record token update operation caused by scheduled event as history.

db_session=db_session,
token_address=_event.token_address,
issuer_address=_event.issuer_address,
token_type=_event.token_type,
arguments=_update_data.model_dump(exclude_none=True),
original_contents=original_contents,
)

self.__sink_on_finish_event_process(
db_session=db_session, record_id=_event.id, status=1
Expand Down Expand Up @@ -282,6 +305,24 @@ def __sink_on_error_notification(
}
db_session.add(notification)

@staticmethod
def __sink_on_token_update_operation_log(
db_session: Session,
token_address: str,
issuer_address: str,
token_type: str,
arguments: dict,
original_contents: dict,
):
operation_log = TokenUpdateOperationLog()
operation_log.token_address = token_address
operation_log.issuer_address = issuer_address
operation_log.type = token_type
operation_log.arguments = arguments
operation_log.original_contents = original_contents
operation_log.operation_category = TokenUpdateOperationCategory.UPDATE.value
db_session.add(operation_log)


class Worker:
def __init__(self, thread_num: int):
Expand Down
Loading
Loading