diff --git a/backend/src/apis/dltConnector/enum/DltTransactionType.ts b/backend/src/apis/dltConnector/enum/DltTransactionType.ts index 80e12daa5..ce1044a7a 100644 --- a/backend/src/apis/dltConnector/enum/DltTransactionType.ts +++ b/backend/src/apis/dltConnector/enum/DltTransactionType.ts @@ -1,4 +1,5 @@ export enum DltTransactionType { + UNKNOWN = 0, REGISTER_ADDRESS = 1, CREATION = 2, TRANSFER = 3, diff --git a/backend/src/apis/dltConnector/interaction/transactionToDlt/TransactionToDlt.role.ts b/backend/src/apis/dltConnector/interaction/transactionToDlt/TransactionToDlt.role.ts index eb6658835..de96d38cc 100644 --- a/backend/src/apis/dltConnector/interaction/transactionToDlt/TransactionToDlt.role.ts +++ b/backend/src/apis/dltConnector/interaction/transactionToDlt/TransactionToDlt.role.ts @@ -48,15 +48,6 @@ export class TransactionToDltRole extends AbstractTransactionToDltRole { await transactionToDlt(dltConnector) await InterruptiveSleepManager.getInstance().sleep( TRANSMIT_TO_IOTA_INTERRUPTIVE_SLEEP_KEY, - 1000, + // TODO: put sleep time into config, because it influence performance, + // transactionToDlt call 4 db queries to look for new transactions + CONFIG.PRODUCTION ? 100000 : 1000, ) } catch (e) { // couldn't connect to dlt-connector? We wait diff --git a/database/migrations/0088-merge_dlt_tables.ts b/database/migrations/0088-merge_dlt_tables.ts index ab3db11eb..70ee2d49e 100644 --- a/database/migrations/0088-merge_dlt_tables.ts +++ b/database/migrations/0088-merge_dlt_tables.ts @@ -7,7 +7,7 @@ export async function upgrade(queryFn: (query: string, values?: any[]) => Promis ALTER TABLE \`dlt_transactions\` CHANGE \`transaction_id\` \`transaction_id\` INT(10) UNSIGNED NULL DEFAULT NULL, ADD \`user_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`transaction_id\`, - ADD \`transaction_link_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`user_id\` + ADD \`transaction_link_id\` INT UNSIGNED NULL DEFAULT NULL AFTER \`user_id\`, ADD \`type_id\` INT UNSIGNED NOT NULL AFTER \`transaction_link_id\` ; `) diff --git a/dlt-connector/src/interactions/sendToIota/DeferredTransferTransaction.role.ts b/dlt-connector/src/interactions/sendToIota/DeferredTransferTransaction.role.ts index 19b4dc649..90783723e 100644 --- a/dlt-connector/src/interactions/sendToIota/DeferredTransferTransaction.role.ts +++ b/dlt-connector/src/interactions/sendToIota/DeferredTransferTransaction.role.ts @@ -1,5 +1,6 @@ import { AuthenticatedEncryption, + DurationSeconds, EncryptedMemo, GradidoTransactionBuilder, GradidoTransfer, @@ -74,11 +75,13 @@ export class DeferredTransferTransactionRole extends AbstractTransactionRole { new GradidoTransfer( new TransferAmount( senderKeyPair.getPublicKey(), - GradidoUnit.fromString(this.self.amount), + GradidoUnit.fromString(this.self.amount).calculateCompoundInterest( + this.self.timeoutDuration, + ), ), recipientKeyPair.getPublicKey(), ), - this.self.timeoutDuration, + new DurationSeconds(this.self.timeoutDuration), ) .sign(senderKeyPair) return builder diff --git a/dlt-connector/src/interactions/sendToIota/RedeemDeferredTransferTransaction.role.ts b/dlt-connector/src/interactions/sendToIota/RedeemDeferredTransferTransaction.role.ts index eb858c322..ae9115485 100644 --- a/dlt-connector/src/interactions/sendToIota/RedeemDeferredTransferTransaction.role.ts +++ b/dlt-connector/src/interactions/sendToIota/RedeemDeferredTransferTransaction.role.ts @@ -75,10 +75,8 @@ export class RedeemDeferredTransferTransactionRole extends AbstractTransactionRo } const recipientKeyPair = await KeyPairCalculation(new KeyPairIdentifier(this.linkedUser)) - // TODO: fix getMemos in gradido-blockchain-js to return correct data builder .setCreatedAt(new Date(this.self.createdAt)) - .addMemo(deferredTransferBody.getMemos()[0]) .setRedeemDeferredTransfer( deferredTransfer.getId(), new GradidoTransfer( @@ -89,6 +87,10 @@ export class RedeemDeferredTransferTransactionRole extends AbstractTransactionRo recipientKeyPair.getPublicKey(), ), ) + const memos = deferredTransferBody.getMemos() + for (let i = 0; i < memos.size(); i++) { + builder.addMemo(memos.get(i)) + } const senderCommunity = this.self.user.communityUuid const recipientCommunity = this.linkedUser.communityUuid if (senderCommunity !== recipientCommunity) {