From 2eafbbbd6833d315f8c86e2ece53664b766c621e Mon Sep 17 00:00:00 2001 From: michielderoos Date: Thu, 15 Sep 2022 14:35:19 -0300 Subject: [PATCH] Detect mints --- app/migrations/versions/efb8537855a8_.py | 28 ++++++++++++++++++++++++ app/server/api/credit_transfer_api.py | 5 ++++- app/server/utils/transfer_enums.py | 1 + app/server/utils/transfer_filter.py | 2 +- 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 app/migrations/versions/efb8537855a8_.py diff --git a/app/migrations/versions/efb8537855a8_.py b/app/migrations/versions/efb8537855a8_.py new file mode 100644 index 000000000..eae3746a5 --- /dev/null +++ b/app/migrations/versions/efb8537855a8_.py @@ -0,0 +1,28 @@ +"""Add mint enum + +Revision ID: efb8537855a8 +Revises: 50fa8260cee7 +Create Date: 2022-09-15 14:21:37.580109 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'efb8537855a8' +down_revision = '50fa8260cee7' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.execute("ALTER TYPE transfertypeenum ADD VALUE 'MINT'") + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + return + # ### end Alembic commands ### diff --git a/app/server/api/credit_transfer_api.py b/app/server/api/credit_transfer_api.py index acd5b7400..9fd0b9e7a 100644 --- a/app/server/api/credit_transfer_api.py +++ b/app/server/api/credit_transfer_api.py @@ -539,12 +539,15 @@ def post(self): else: send_transfer_account = create_transfer_account_if_required(sender_blockchain_address, token, TransferAccountType.EXTERNAL) receive_transfer_account = create_transfer_account_if_required(recipient_blockchain_address, token, TransferAccountType.EXTERNAL) + transfer_type = TransferTypeEnum.PAYMENT + if sender_blockchain_address == '0x0000000000000000000000000000000000000000': + transfer_type = TransferTypeEnum.MINT transfer = CreditTransfer( transfer_amount, token=token, sender_transfer_account=send_transfer_account, recipient_transfer_account=receive_transfer_account, - transfer_type=TransferTypeEnum.PAYMENT, + transfer_type=transfer_type, sender_user=maybe_sender_user, recipient_user=maybe_recipient_user, require_sufficient_balance=False, diff --git a/app/server/utils/transfer_enums.py b/app/server/utils/transfer_enums.py index 9a1ff81ab..d6714b32d 100644 --- a/app/server/utils/transfer_enums.py +++ b/app/server/utils/transfer_enums.py @@ -7,6 +7,7 @@ class TransferTypeEnum(enum.Enum): WITHDRAWAL = "WITHDRAWAL" EXCHANGE = "EXCHANGE" FEE = "FEE" + MINT = "MINT" class TransferSubTypeEnum(enum.Enum): diff --git a/app/server/utils/transfer_filter.py b/app/server/utils/transfer_filter.py index 7f4142bf3..f779ee906 100644 --- a/app/server/utils/transfer_filter.py +++ b/app/server/utils/transfer_filter.py @@ -77,7 +77,7 @@ def transfer_filters(self): 'name': "Transfer Type", 'table': CreditTransfer.__tablename__, 'type': TransferFilterEnum.DISCRETE, - 'values': ['PAYMENT', 'DEPOSIT', 'WITHDRAWAL', 'EXCHANGE', 'FEE', 'DISBURSEMENT', 'RECLAMATION', 'AGENT_IN', 'AGENT_OUT', 'INCENTIVE'] + 'values': ['PAYMENT', 'DEPOSIT', 'WITHDRAWAL', 'EXCHANGE', 'FEE', 'DISBURSEMENT', 'RECLAMATION', 'AGENT_IN', 'AGENT_OUT', 'INCENTIVE', 'MINT'] }, }