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

feat: store source event data as idx_transfer #467

Merged
merged 1 commit into from
Jan 18, 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
4 changes: 2 additions & 2 deletions app/model/db/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@
)
from .idx_transfer import (
IDXTransfer,
IDXTransfersSortItem,
IDXTransferBlockNumber
IDXTransferBlockNumber,
IDXTransferSourceEventType
)
from .idx_transfer_approval import (
IDXTransferApproval,
Expand Down
20 changes: 12 additions & 8 deletions app/model/db/idx_transfer.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,19 @@
Column,
BigInteger,
String,
DateTime
DateTime,
JSON
)

from .base import Base


class IDXTransferSourceEventType(str, Enum):
"""Transfer source event type"""
TRANSFER = "Transfer"
UNLOCK = "Unlock"


class IDXTransfer(Base):
"""INDEX Transfer"""
__tablename__ = "idx_transfer"
Expand All @@ -43,17 +50,14 @@ class IDXTransfer(Base):
to_address = Column(String(42), index=True)
# transfer amount
amount = Column(BigInteger)
# Source Event (IDXTransferSourceEventType)
source_event = Column(String(50), nullable=False)
# Data
data = Column(JSON)
# block timestamp
block_timestamp = Column(DateTime)


class IDXTransfersSortItem(str, Enum):
BLOCK_TIMESTAMP = "block_timestamp"
FROM_ADDRESS = "from_address"
TO_ADDRESS = "to_address"
AMOUNT = "amount"


class IDXTransferBlockNumber(Base):
"""Synchronized blockNumber of IDXTransfer"""
__tablename__ = "idx_transfer_block_number"
Expand Down
25 changes: 25 additions & 0 deletions app/model/schema/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,63 +17,78 @@
SPDX-License-Identifier: Apache-2.0
"""
from .account import (
# Request
AccountCreateKeyRequest,
AccountGenerateRsaKeyRequest,
AccountChangeEOAPasswordRequest,
AccountChangeRSAPassphraseRequest,
AccountAuthTokenRequest,
# Response
AccountResponse,
AccountAuthTokenResponse
)
from .batch_issue_redeem import (
# Response
BatchIssueRedeemUploadIdResponse,
GetBatchIssueRedeemResponse,
GetBatchIssueRedeemResult,
ListBatchIssueRedeemUploadResponse
)
from .bc_explorer import (
# Request
ListBlockDataQuery,
ListTxDataQuery,
# Response
BlockDataResponse,
BlockDataListResponse,
TxDataResponse,
TxDataListResponse
)
from .bulk_transfer import (
# Response
BulkTransferUploadIdResponse,
BulkTransferUploadResponse,
BulkTransferResponse
)
from .e2e_messaging import (
# Request
E2EMessagingAccountCreateRequest,
E2EMessagingAccountUpdateRsaKeyRequest,
E2EMessagingAccountChangeEOAPasswordRequest,
E2EMessagingAccountChangeRSAPassphraseRequest,
# Response
E2EMessagingAccountResponse,
E2EMessagingResponse,
ListAllE2EMessagingResponse
)
from .file import (
# Request
UploadFileRequest,
# Response
FileResponse,
ListAllFilesResponse,
DownloadFileResponse
)
from .holder import (
# Response
HolderResponse,
HolderCountResponse
)
from .index import (
# Response
E2EEResponse,
BlockNumberResponse
)
from .issue_redeem import (
# Response
IssueRedeemEvent,
IssueRedeemHistoryResponse
)
from .ledger import (
# Request
CreateUpdateLedgerTemplateRequest,
CreateUpdateLedgerDetailsDataRequest,
# Response
ListAllLedgerHistoryResponse,
RetrieveLedgerHistoryResponse,
LedgerTemplateResponse,
Expand All @@ -83,8 +98,10 @@
)
from .notification import ListAllNotificationsResponse
from .personal_info import (
# Request
ModifyPersonalInfoRequest,
RegisterPersonalInfoRequest,
# Response
BatchRegisterPersonalInfoUploadResponse,
ListBatchRegisterPersonalInfoUploadResponse,
GetBatchRegisterPersonalInfoResponse,
Expand All @@ -103,8 +120,10 @@
ListAllLockEventsResponse
)
from .scheduled_events import (
# Request
IbetStraightBondScheduledUpdate,
IbetShareScheduledUpdate,
# Response
ScheduledEventIdResponse,
ScheduledEventResponse
)
Expand All @@ -126,14 +145,20 @@
IbetShareResponse
)
from .token_holders import (
# Request
CreateTokenHoldersListRequest,
# Response
CreateTokenHoldersListResponse,
RetrieveTokenHoldersListResponse,
ListAllTokenHolderCollectionsResponse
)
from .transfer import (
# Request
UpdateTransferApprovalRequest,
UpdateTransferApprovalOperationType,
ListTransferHistorySortItem,
ListTransferHistoryQuery,
# Response
TransferResponse,
TransferHistoryResponse,
TransferApprovalsResponse,
Expand Down
36 changes: 35 additions & 1 deletion app/model/schema/transfer.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,50 @@
List,
Optional
)
from fastapi import Query
from pydantic import (
BaseModel,
Field
Field,
NonNegativeInt
)
from pydantic.dataclasses import dataclass

from .types import ResultSet


############################
# COMMON
############################

class TransferSourceEventType(str, Enum):
Transfer = "Transfer"
Unlock = "Unlock"


############################
# REQUEST
############################

class ListTransferHistorySortItem(str, Enum):
BLOCK_TIMESTAMP = "block_timestamp"
FROM_ADDRESS = "from_address"
TO_ADDRESS = "to_address"
AMOUNT = "amount"


@dataclass
class ListTransferHistoryQuery:
source_event: Optional[TransferSourceEventType] = Query(default=None, description="source event of transfer")
data: Optional[str] = Query(default=None, description="source event data")

sort_item: ListTransferHistorySortItem = Query(
default=ListTransferHistorySortItem.BLOCK_TIMESTAMP, description="sort item"
)
sort_order: int = Query(default=1, ge=0, le=1, description="0:asc, 1:desc")
offset: Optional[NonNegativeInt] = Query(default=None, description="start position")
limit: Optional[NonNegativeInt] = Query(default=None, description="number of set")


class UpdateTransferApprovalOperationType(str, Enum):
APPROVE = "approve"
CANCEL = "cancel"
Expand All @@ -54,6 +86,8 @@ class TransferResponse(BaseModel):
from_address: str
to_address: str
amount: int
source_event: TransferSourceEventType = Field(description="Source Event")
data: dict | None = Field(description="Event data")
block_timestamp: str


Expand Down
Loading