diff --git a/batch/indexer_Position_Bond.py b/batch/indexer_Position_Bond.py index 46f9828c0..63478b54a 100644 --- a/batch/indexer_Position_Bond.py +++ b/batch/indexer_Position_Bond.py @@ -1857,7 +1857,7 @@ async def __sink_on_position( position.exchange_commitment = exchange_commitment await db_session.merge(position) elif any( - value is not None and value > 0 + value is not None for value in [ balance, pending_transfer, diff --git a/batch/indexer_Position_Coupon.py b/batch/indexer_Position_Coupon.py index b4b6b0521..36240d07f 100644 --- a/batch/indexer_Position_Coupon.py +++ b/batch/indexer_Position_Coupon.py @@ -944,7 +944,7 @@ async def __sink_on_position( position.exchange_commitment = exchange_commitment await db_session.merge(position) elif any( - value is not None and value > 0 + value is not None for value in [balance, exchange_balance, exchange_commitment] ): LOG.debug( diff --git a/batch/indexer_Position_Membership.py b/batch/indexer_Position_Membership.py index 1213ce319..f72304130 100644 --- a/batch/indexer_Position_Membership.py +++ b/batch/indexer_Position_Membership.py @@ -908,7 +908,7 @@ async def __sink_on_position( position.exchange_commitment = exchange_commitment await db_session.merge(position) elif any( - value is not None and value > 0 + value is not None for value in [balance, exchange_balance, exchange_commitment] ): LOG.debug( diff --git a/batch/indexer_Position_Share.py b/batch/indexer_Position_Share.py index a011c6160..4cb838ee3 100644 --- a/batch/indexer_Position_Share.py +++ b/batch/indexer_Position_Share.py @@ -1857,7 +1857,7 @@ async def __sink_on_position( position.exchange_commitment = exchange_commitment await db_session.merge(position) elif any( - value is not None and value > 0 + value is not None for value in [ balance, pending_transfer, diff --git a/docs/ibet_wallet_api.yaml b/docs/ibet_wallet_api.yaml index b1b940ca7..ab04a8c69 100644 --- a/docs/ibet_wallet_api.yaml +++ b/docs/ibet_wallet_api.yaml @@ -9416,6 +9416,8 @@ components: - CancelTransfer - ForceLock - ForceUnlock + - ChangeToRedeemed + - ChangeToCanceled title: NotificationType NotificationUpdateResponse: properties: diff --git a/tests/batch/indexer_Position_Bond_test.py b/tests/batch/indexer_Position_Bond_test.py index b7ba56312..fa31ff68c 100644 --- a/tests/batch/indexer_Position_Bond_test.py +++ b/tests/batch/indexer_Position_Bond_test.py @@ -637,10 +637,29 @@ async def test_normal_4_2(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 3000 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 0 + assert _position_issuer.exchange_commitment == 0 + + _position_trader: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.trader["account_address"]) + .limit(1) + ).first() + assert _position_trader.token_address == token["address"] + assert _position_trader.account_address == self.trader["account_address"] + assert _position_trader.balance == 0 + assert _position_trader.pending_transfer == 0 + assert _position_trader.exchange_balance == 0 + assert _position_trader.exchange_commitment == 0 _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( select(IDXPositionBondBlockNumber) @@ -649,14 +668,6 @@ async def test_normal_4_2(self, processor, shared_contract, session): ).first() assert _idx_position_bond_block_number.latest_block_number == block_number - _position = _position_list[0] - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 3000 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 0 - assert _position.exchange_commitment == 0 - _locked_list: Sequence[IDXLockedPosition] = session.scalars( select(IDXLockedPosition).order_by(IDXLockedPosition.created) ).all() @@ -934,8 +945,6 @@ async def test_normal_5_2(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer - # - Lock # - ForceChangeLockedAccount async def test_normal_5_3(self, processor, shared_contract, session): # Issue Token @@ -983,34 +992,63 @@ async def test_normal_5_3(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 - - _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( - select(IDXPositionBondBlockNumber) - .where(IDXPositionBondBlockNumber.token_address == token["address"]) + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where( + and_( + IDXPosition.token_address == token["address"], + IDXPosition.account_address == self.issuer["account_address"], + ) + ) .limit(1) ).first() - assert _idx_position_bond_block_number.latest_block_number == block_number - - _position: IDXPosition = session.scalars( + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 3000 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 0 + assert _position_issuer.exchange_commitment == 0 + + _position_trader_1: IDXPosition = session.scalars( select(IDXPosition) .where( and_( IDXPosition.token_address == token["address"], - IDXPosition.account_address == self.issuer["account_address"], + IDXPosition.account_address == self.trader["account_address"], ) ) .limit(1) ).first() - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 3000 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 0 - assert _position.exchange_commitment == 0 + assert _position_trader_1.token_address == token["address"] + assert _position_trader_1.account_address == self.trader["account_address"] + assert _position_trader_1.balance == 0 + assert _position_trader_1.pending_transfer == 0 + assert _position_trader_1.exchange_balance == 0 + assert _position_trader_1.exchange_commitment == 0 + + _position_trader_2: IDXPosition = session.scalars( + select(IDXPosition) + .where( + and_( + IDXPosition.token_address == token["address"], + IDXPosition.account_address == self.trader2["account_address"], + ) + ) + .limit(1) + ).first() + assert _position_trader_2.token_address == token["address"] + assert _position_trader_2.account_address == self.trader2["account_address"] + assert _position_trader_2.balance == 0 + assert _position_trader_2.pending_transfer == 0 + assert _position_trader_2.exchange_balance == 0 + assert _position_trader_2.exchange_commitment == 0 + + _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( + select(IDXPositionBondBlockNumber) + .where(IDXPositionBondBlockNumber.token_address == token["address"]) + .limit(1) + ).first() + assert _idx_position_bond_block_number.latest_block_number == block_number _locked_list: Sequence[IDXLockedPosition] = session.scalars( select(IDXLockedPosition).order_by(IDXLockedPosition.created) @@ -1159,7 +1197,6 @@ async def test_normal_7(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer # - Apply For Transfer async def test_normal_8(self, processor, shared_contract, session): # Issue Token @@ -1253,9 +1290,7 @@ async def test_normal_8(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer - # - Apply For Transfer - # - Approve + # - Approve Transfer async def test_normal_9(self, processor, shared_contract, session): # Issue Token token_list_contract = shared_contract["TokenList"] @@ -1370,9 +1405,7 @@ async def test_normal_9(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer - # - Apply For Transfer - # - Cancel + # - Cancel Transfer async def test_normal_10(self, processor, shared_contract, session): # Issue Token token_list_contract = shared_contract["TokenList"] @@ -1608,17 +1641,17 @@ async def test_normal_12(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 - _position: IDXPosition = _position_list[0] - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 111 + 222 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 111 - 222 - 333 - assert _position.exchange_commitment == 333 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + 111 + 222 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 111 - 222 - 333 + assert _position_issuer.exchange_commitment == 333 _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( select(IDXPositionBondBlockNumber) @@ -1679,17 +1712,17 @@ async def test_normal_13(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 - _position: IDXPosition = _position_list[0] - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 55 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 55 - 66 - assert _position.exchange_commitment == 66 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + 55 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 55 - 66 + assert _position_issuer.exchange_commitment == 66 _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( select(IDXPositionBondBlockNumber) @@ -1770,19 +1803,7 @@ async def test_normal_14(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 2 - - _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( - select(IDXPositionBondBlockNumber) - .where(IDXPositionBondBlockNumber.token_address == token["address"]) - .limit(1) - ).first() - assert _idx_position_bond_block_number.latest_block_number == block_number - - _position: IDXPosition = session.scalars( + _position_issuer: IDXPosition = session.scalars( select(IDXPosition) .where( and_( @@ -1792,14 +1813,14 @@ async def test_normal_14(self, processor, shared_contract, session): ) .limit(1) ).first() - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 200 - assert _position.exchange_commitment == 0 - - _position: IDXPosition = session.scalars( + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 200 + assert _position_issuer.exchange_commitment == 0 + + _position_trader: IDXPosition = session.scalars( select(IDXPosition) .where( and_( @@ -1809,12 +1830,19 @@ async def test_normal_14(self, processor, shared_contract, session): ) .limit(1) ).first() - assert _position.token_address == token["address"] - assert _position.account_address == self.trader["account_address"] - assert _position.balance == 0 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 200 - assert _position.exchange_commitment == 0 + assert _position_trader.token_address == token["address"] + assert _position_trader.account_address == self.trader["account_address"] + assert _position_trader.balance == 0 + assert _position_trader.pending_transfer == 0 + assert _position_trader.exchange_balance == 200 + assert _position_trader.exchange_commitment == 0 + + _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( + select(IDXPositionBondBlockNumber) + .where(IDXPositionBondBlockNumber.token_address == token["address"]) + .limit(1) + ).first() + assert _idx_position_bond_block_number.latest_block_number == block_number # # No event logs @@ -2113,17 +2141,17 @@ async def test_normal_19(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 - _position: IDXPosition = _position_list[0] - assert _position.token_address == token1["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 55 - 100 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 55 - 66 - assert _position.exchange_commitment == 66 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token1["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + 55 - 100 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 55 - 66 + assert _position_issuer.exchange_commitment == 66 _idx_position_bond_block_number: IDXPositionBondBlockNumber = session.scalars( select(IDXPositionBondBlockNumber) @@ -2142,11 +2170,6 @@ async def test_normal_19(self, processor, shared_contract, session): session.rollback() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 2 - _idx_position_bond_block_number1: IDXPositionBondBlockNumber = session.scalars( select(IDXPositionBondBlockNumber) .where(IDXPositionBondBlockNumber.token_address == token1["address"]) diff --git a/tests/batch/indexer_Position_Coupon_test.py b/tests/batch/indexer_Position_Coupon_test.py index 3f97909ec..f94d6518b 100644 --- a/tests/batch/indexer_Position_Coupon_test.py +++ b/tests/batch/indexer_Position_Coupon_test.py @@ -898,10 +898,16 @@ async def test_normal_11(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position.token_address == token1["address"] + assert _position.account_address == self.issuer["account_address"] + assert _position.balance == 1000000 - 10000 + 55 - 100 + assert _position.exchange_balance == 10000 - 55 - 66 + assert _position.exchange_commitment == 66 _idx_position_coupon_block_number: IDXPositionCouponBlockNumber = ( session.scalars( @@ -912,13 +918,6 @@ async def test_normal_11(self, processor, shared_contract, session): ) assert _idx_position_coupon_block_number.latest_block_number == block_number1 - _position: IDXPosition = _position_list[0] - assert _position.token_address == token1["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 55 - 100 - assert _position.exchange_balance == 10000 - 55 - 66 - assert _position.exchange_commitment == 66 - # Token2 Listing self.listing_token(token2["address"], session) @@ -932,10 +931,6 @@ async def test_normal_11(self, processor, shared_contract, session): session.rollback() assert eth_getCode_mock.call_count == 0 - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 2 _idx_position_coupon_block_number1: IDXPositionCouponBlockNumber = ( session.scalars( diff --git a/tests/batch/indexer_Position_Membership_test.py b/tests/batch/indexer_Position_Membership_test.py index fe41f2b23..c1b3e540e 100644 --- a/tests/batch/indexer_Position_Membership_test.py +++ b/tests/batch/indexer_Position_Membership_test.py @@ -852,10 +852,16 @@ async def test_normal_10(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position.token_address == token1["address"] + assert _position.account_address == self.issuer["account_address"] + assert _position.balance == 1000000 - 10000 + 55 + assert _position.exchange_balance == 10000 - 55 - 66 + assert _position.exchange_commitment == 66 _idx_position_coupon_block_number: IDXPositionMembershipBlockNumber = ( session.scalars( @@ -868,13 +874,6 @@ async def test_normal_10(self, processor, shared_contract, session): ) assert _idx_position_coupon_block_number.latest_block_number == block_number1 - _position: IDXPosition = _position_list[0] - assert _position.token_address == token1["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 55 - assert _position.exchange_balance == 10000 - 55 - 66 - assert _position.exchange_commitment == 66 - # Token2 Listing self.listing_token(token2["address"], session) @@ -883,11 +882,8 @@ async def test_normal_10(self, processor, shared_contract, session): await processor.sync_new_logs() session.rollback() - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 2 + # Assertion _idx_position_coupon_block_number1: IDXPositionMembershipBlockNumber = ( session.scalars( select(IDXPositionMembershipBlockNumber) diff --git a/tests/batch/indexer_Position_Share_test.py b/tests/batch/indexer_Position_Share_test.py index f18d0df4e..9a0b1b037 100644 --- a/tests/batch/indexer_Position_Share_test.py +++ b/tests/batch/indexer_Position_Share_test.py @@ -616,10 +616,29 @@ async def test_normal_4_2(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 3000 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 0 + assert _position_issuer.exchange_commitment == 0 + + _position_trader: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.trader["account_address"]) + .limit(1) + ).first() + assert _position_trader.token_address == token["address"] + assert _position_trader.account_address == self.trader["account_address"] + assert _position_trader.balance == 0 + assert _position_trader.pending_transfer == 0 + assert _position_trader.exchange_balance == 0 + assert _position_trader.exchange_commitment == 0 _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( select(IDXPositionShareBlockNumber) @@ -628,14 +647,6 @@ async def test_normal_4_2(self, processor, shared_contract, session): ).first() assert _idx_position_share_block_number.latest_block_number == block_number - _position = _position_list[0] - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 3000 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 0 - assert _position.exchange_commitment == 0 - _locked_list: Sequence[IDXLockedPosition] = session.scalars( select(IDXLockedPosition).order_by(IDXLockedPosition.created) ).all() @@ -905,8 +916,6 @@ async def test_normal_5_2(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer - # - Lock # - ForceChangeLockedAccount async def test_normal_5_3(self, processor, shared_contract, session): # Issue Token @@ -953,34 +962,63 @@ async def test_normal_5_3(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 - - _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( - select(IDXPositionShareBlockNumber) - .where(IDXPositionShareBlockNumber.token_address == token["address"]) + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where( + and_( + IDXPosition.token_address == token["address"], + IDXPosition.account_address == self.issuer["account_address"], + ) + ) .limit(1) ).first() - assert _idx_position_share_block_number.latest_block_number == block_number - - _position: IDXPosition = session.scalars( + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 3000 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 0 + assert _position_issuer.exchange_commitment == 0 + + _position_trader_1: IDXPosition = session.scalars( select(IDXPosition) .where( and_( IDXPosition.token_address == token["address"], - IDXPosition.account_address == self.issuer["account_address"], + IDXPosition.account_address == self.trader["account_address"], ) ) .limit(1) ).first() - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 3000 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 0 - assert _position.exchange_commitment == 0 + assert _position_trader_1.token_address == token["address"] + assert _position_trader_1.account_address == self.trader["account_address"] + assert _position_trader_1.balance == 0 + assert _position_trader_1.pending_transfer == 0 + assert _position_trader_1.exchange_balance == 0 + assert _position_trader_1.exchange_commitment == 0 + + _position_trader_2: IDXPosition = session.scalars( + select(IDXPosition) + .where( + and_( + IDXPosition.token_address == token["address"], + IDXPosition.account_address == self.trader2["account_address"], + ) + ) + .limit(1) + ).first() + assert _position_trader_2.token_address == token["address"] + assert _position_trader_2.account_address == self.trader2["account_address"] + assert _position_trader_2.balance == 0 + assert _position_trader_2.pending_transfer == 0 + assert _position_trader_2.exchange_balance == 0 + assert _position_trader_2.exchange_commitment == 0 + + _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( + select(IDXPositionShareBlockNumber) + .where(IDXPositionShareBlockNumber.token_address == token["address"]) + .limit(1) + ).first() + assert _idx_position_share_block_number.latest_block_number == block_number _locked_list = session.scalars( select(IDXLockedPosition).order_by(IDXLockedPosition.created) @@ -1126,7 +1164,6 @@ async def test_normal_7(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer # - Apply For Transfer async def test_normal_8(self, processor, shared_contract, session): # Issue Token @@ -1221,9 +1258,7 @@ async def test_normal_8(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer - # - Apply For Transfer - # - Approve + # - Approve Transfer async def test_normal_9(self, processor, shared_contract, session): # Issue Token token_list_contract = shared_contract["TokenList"] @@ -1338,9 +1373,7 @@ async def test_normal_9(self, processor, shared_contract, session): # # Single Token # Single event logs - # - Transfer - # - Apply For Transfer - # - Cancel + # - Cancel Transfer async def test_normal_10(self, processor, shared_contract, session): # Issue Token token_list_contract = shared_contract["TokenList"] @@ -1576,10 +1609,17 @@ async def test_normal_12(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + 111 + 222 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 111 - 222 - 333 + assert _position_issuer.exchange_commitment == 333 _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( select(IDXPositionShareBlockNumber) @@ -1588,14 +1628,6 @@ async def test_normal_12(self, processor, shared_contract, session): ).first() assert _idx_position_share_block_number.latest_block_number == block_number - _position: IDXPosition = _position_list[0] - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 111 + 222 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 111 - 222 - 333 - assert _position.exchange_commitment == 333 - # # Single Token # Multi event with IbetExchange logs @@ -1648,10 +1680,17 @@ async def test_normal_13(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + 55 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 55 - 66 + assert _position_issuer.exchange_commitment == 66 _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( select(IDXPositionShareBlockNumber) @@ -1660,14 +1699,6 @@ async def test_normal_13(self, processor, shared_contract, session): ).first() assert _idx_position_share_block_number.latest_block_number == block_number - _position: IDXPosition = _position_list[0] - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 55 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 55 - 66 - assert _position.exchange_commitment == 66 - # # Single Token # Multi event with DVP logs @@ -1740,19 +1771,7 @@ async def test_normal_14(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 2 - - _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( - select(IDXPositionShareBlockNumber) - .where(IDXPositionShareBlockNumber.token_address == token["address"]) - .limit(1) - ).first() - assert _idx_position_share_block_number.latest_block_number == block_number - - _position: IDXPosition = session.scalars( + _position_issuer: IDXPosition = session.scalars( select(IDXPosition) .where( and_( @@ -1762,14 +1781,14 @@ async def test_normal_14(self, processor, shared_contract, session): ) .limit(1) ).first() - assert _position.token_address == token["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 200 - assert _position.exchange_commitment == 0 - - _position: IDXPosition = session.scalars( + assert _position_issuer.token_address == token["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 200 + assert _position_issuer.exchange_commitment == 0 + + _position_trader: IDXPosition = session.scalars( select(IDXPosition) .where( and_( @@ -1779,12 +1798,19 @@ async def test_normal_14(self, processor, shared_contract, session): ) .limit(1) ).first() - assert _position.token_address == token["address"] - assert _position.account_address == self.trader["account_address"] - assert _position.balance == 0 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 200 - assert _position.exchange_commitment == 0 + assert _position_trader.token_address == token["address"] + assert _position_trader.account_address == self.trader["account_address"] + assert _position_trader.balance == 0 + assert _position_trader.pending_transfer == 0 + assert _position_trader.exchange_balance == 200 + assert _position_trader.exchange_commitment == 0 + + _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( + select(IDXPositionShareBlockNumber) + .where(IDXPositionShareBlockNumber.token_address == token["address"]) + .limit(1) + ).first() + assert _idx_position_share_block_number.latest_block_number == block_number # # No event logs @@ -2084,10 +2110,17 @@ async def test_normal_19(self, processor, shared_contract, session): await processor.sync_new_logs() # Assertion - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 1 + _position_issuer: IDXPosition = session.scalars( + select(IDXPosition) + .where(IDXPosition.account_address == self.issuer["account_address"]) + .limit(1) + ).first() + assert _position_issuer.token_address == token1["address"] + assert _position_issuer.account_address == self.issuer["account_address"] + assert _position_issuer.balance == 1000000 - 10000 + 55 - 100 + assert _position_issuer.pending_transfer == 0 + assert _position_issuer.exchange_balance == 10000 - 55 - 66 + assert _position_issuer.exchange_commitment == 66 _idx_position_share_block_number: IDXPositionShareBlockNumber = session.scalars( select(IDXPositionShareBlockNumber) @@ -2096,14 +2129,6 @@ async def test_normal_19(self, processor, shared_contract, session): ).first() assert _idx_position_share_block_number.latest_block_number == block_number1 - _position: IDXPosition = _position_list[0] - assert _position.token_address == token1["address"] - assert _position.account_address == self.issuer["account_address"] - assert _position.balance == 1000000 - 10000 + 55 - 100 - assert _position.pending_transfer == 0 - assert _position.exchange_balance == 10000 - 55 - 66 - assert _position.exchange_commitment == 66 - # Token2 Listing self.listing_token(token2["address"], session) @@ -2112,11 +2137,8 @@ async def test_normal_19(self, processor, shared_contract, session): await processor.sync_new_logs() session.rollback() - _position_list: Sequence[IDXPosition] = session.scalars( - select(IDXPosition).order_by(IDXPosition.created) - ).all() - assert len(_position_list) == 2 + # Assertion _idx_position_share_block_number1: IDXPositionShareBlockNumber = ( session.scalars( select(IDXPositionShareBlockNumber)