From 9f6091ce0911a1ea992c5bad129739e7aabbd527 Mon Sep 17 00:00:00 2001 From: philipliu Date: Mon, 10 Jul 2023 15:45:27 -0400 Subject: [PATCH] Add migration file --- .../anchor/sep24/Sep24Transaction.java | 1 - .../stellar/anchor/sep6/Sep6Transaction.java | 11 +++++- .../platform/data/JdbcSep24Transaction.java | 1 - .../platform/data/JdbcSep6Transaction.java | 27 ++++++++++++-- .../data/JdbcSep6TransactionStore.java | 12 +++--- .../db/migration/V7__sep6_transactions.sql | 37 +++++++++++++++++++ 6 files changed, 74 insertions(+), 15 deletions(-) diff --git a/core/src/main/java/org/stellar/anchor/sep24/Sep24Transaction.java b/core/src/main/java/org/stellar/anchor/sep24/Sep24Transaction.java index 8257b11b26..b6294436b4 100644 --- a/core/src/main/java/org/stellar/anchor/sep24/Sep24Transaction.java +++ b/core/src/main/java/org/stellar/anchor/sep24/Sep24Transaction.java @@ -282,7 +282,6 @@ public interface Sep24Transaction { void setRefundMemoType(String refundMemoType); - // TODO: do something about these types enum Kind { DEPOSIT("deposit"), WITHDRAWAL("withdrawal"), diff --git a/core/src/main/java/org/stellar/anchor/sep6/Sep6Transaction.java b/core/src/main/java/org/stellar/anchor/sep6/Sep6Transaction.java index a4911e2b35..0409e9b659 100644 --- a/core/src/main/java/org/stellar/anchor/sep6/Sep6Transaction.java +++ b/core/src/main/java/org/stellar/anchor/sep6/Sep6Transaction.java @@ -1,6 +1,7 @@ package org.stellar.anchor.sep6; import java.time.Instant; +import java.util.Map; public interface Sep6Transaction { @@ -60,7 +61,6 @@ public interface Sep6Transaction { void setWithdrawAnchorAccount(String withdrawAnchorAccount); - // TODO: are these even needed? String getFromAccount(); void setFromAccount(String fromAccount); @@ -105,6 +105,14 @@ public interface Sep6Transaction { void setAmountFeeAsset(String amountFeeAsset); + Map getFields(); + + void setFields(Map fields); + + String getQuoteId(); + + void setQuoteId(String quoteId); + Boolean getRefunded(); void setRefunded(Boolean refunded); @@ -125,7 +133,6 @@ enum Kind { DEPOSIT("deposit"), WITHDRAWAL("withdrawal"), - // TODO: This is how it is represented in Polaris DEPOSIT_EXCHANGE("deposit-exchange"), WITHDRAWAL_EXCHANGE("withdrawal-exchange"); diff --git a/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep24Transaction.java b/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep24Transaction.java index c7132bd733..ab8658c6e0 100644 --- a/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep24Transaction.java +++ b/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep24Transaction.java @@ -125,7 +125,6 @@ public String getRequestAssetName() { /** The SEP10 account memo used for authentication. */ @SerializedName("sep10_account_memo") - // TODO: why @Column(name = "sep10account_memo") String sep10AccountMemo; diff --git a/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6Transaction.java b/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6Transaction.java index c71c2e7499..8f80e9a812 100644 --- a/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6Transaction.java +++ b/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6Transaction.java @@ -1,11 +1,10 @@ package org.stellar.anchor.platform.data; import com.google.gson.annotations.SerializedName; +import com.google.gson.reflect.TypeToken; import com.vladmihalcea.hibernate.type.json.JsonType; -import javax.persistence.Access; -import javax.persistence.AccessType; -import javax.persistence.Column; -import javax.persistence.Entity; +import java.util.Map; +import javax.persistence.*; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; @@ -77,6 +76,26 @@ public String getProtocol() { @Column(name = "claimable_balance_supported") Boolean claimableBalanceSupported; + @SerializedName("fields") + @Transient + Map fields; + + @Access(AccessType.PROPERTY) + @Column(name = "fields") + public String getFieldsJson() { + return gson.toJson(this.fields); + } + + public void setFieldsJson(String fieldsJson) { + if (fieldsJson != null) { + this.fields = gson.fromJson(fieldsJson, new TypeToken>() {}.getType()); + } + } + + @SerializedName("quote_id") + @Column(name = "quote_id") + String quoteId; + @SerializedName("refunded") @Column(name = "refunded") Boolean refunded; diff --git a/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6TransactionStore.java b/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6TransactionStore.java index f6da688a79..cebf060bc8 100644 --- a/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6TransactionStore.java +++ b/platform/src/main/java/org/stellar/anchor/platform/data/JdbcSep6TransactionStore.java @@ -28,26 +28,24 @@ public Sep6RefundPayment newRefundPayment() { } @Override - public Sep6Transaction findByTransactionId(String transactionId) throws SepException { + public Sep6Transaction findByTransactionId(String transactionId) { return transactionRepo.findOneByTransactionId(transactionId); } @Override - public Sep6Transaction findByStellarTransactionId(String stellarTransactionId) - throws SepException { + public Sep6Transaction findByStellarTransactionId(String stellarTransactionId) { return transactionRepo.findOneByStellarTransactionId(stellarTransactionId); } @Override - public Sep6Transaction findByExternalTransactionId(String externalTransactionId) - throws SepException { + public Sep6Transaction findByExternalTransactionId(String externalTransactionId) { return transactionRepo.findOneByExternalTransactionId(externalTransactionId); } @Override public List findTransactions( - String accountId, String accountMemo, GetTransactionsRequest request) throws SepException { - // TODO: implement + String accountId, String accountMemo, GetTransactionsRequest request) { + // TODO: implement with GET /transactions endpoint return null; } diff --git a/platform/src/main/resources/db/migration/V7__sep6_transactions.sql b/platform/src/main/resources/db/migration/V7__sep6_transactions.sql index e69de29bb2..fc17b095e1 100644 --- a/platform/src/main/resources/db/migration/V7__sep6_transactions.sql +++ b/platform/src/main/resources/db/migration/V7__sep6_transactions.sql @@ -0,0 +1,37 @@ +CREATE TABLE sep6_transaction ( + id VARCHAR(255) NOT NULL, + transaction_id VARCHAR(255), + stellar_transaction_id VARCHAR(255), + external_transaction_id VARCHAR(255), + stellar_transactions JSON, + status VARCHAR(255), + kind VARCHAR(255), + updated_at TIMESTAMP WITHOUT TIME ZONE, + started_at TIMESTAMP WITHOUT TIME ZONE, + completed_at TIMESTAMP WITHOUT TIME ZONE, + transfer_received_at TIMESTAMP WITHOUT TIME ZONE, + request_asset_code VARCHAR(255), + request_asset_issuer VARCHAR(255), + amount_in VARCHAR(255), + amount_in_asset VARCHAR(255), + amount_out VARCHAR(255), + amount_out_asset VARCHAR(255), + amount_fee VARCHAR(255), + amount_fee_asset VARCHAR(255), + amount_expected VARCHAR(255), + sep10_account VARCHAR(255), + sep10_account_memo VARCHAR(255), + withdraw_anchor_account VARCHAR(255), + from_account VARCHAR(255), + to_account VARCHAR(255), + memo VARCHAR(255), + memo_type VARCHAR(255), + claimable_balance_supported BOOLEAN, + quote_id VARCHAR(255), + fields VARCHAR(255), + refunded BOOLEAN, + refunds JSON, + refund_memo VARCHAR(255), + refund_memo_type VARCHAR(255), + CONSTRAINT pk_sep6_transaction PRIMARY KEY (id) +) \ No newline at end of file