public String toJson() { Gson gson = new Gson(); JsonObject jsonObject = new JsonObject(); jsonObject.addProperty("id", id.toString()); jsonObject.addProperty("actorDestinationType", actorDestinationType.toString()); jsonObject.addProperty("actorSenderType", actorSenderType.toString()); jsonObject.addProperty("actorSenderPublicKey", actorSenderPublicKey); jsonObject.addProperty("actorDestinationPublicKey", actorDestinationPublicKey); jsonObject.addProperty("actorSenderAlias", actorSenderAlias); jsonObject.addProperty("actorSenderPhrase", actorSenderPhrase); jsonObject.addProperty( "actorSenderProfileImage", Base64.encodeToString(actorSenderProfileImage, Base64.DEFAULT)); jsonObject.addProperty("notificationDescriptor", notificationDescriptor.toString()); jsonObject.addProperty("sentDate", sentDate); jsonObject.addProperty("actorProtocolState", actorProtocolState.toString()); jsonObject.addProperty("flagReadead", flagReadead); jsonObject.addProperty("sentCount", sentCount); if (responseToNotificationId != null) jsonObject.addProperty("responseToNotificationId", responseToNotificationId.toString()); return gson.toJson(jsonObject); }
private OutgoingDraftTransactionWrapper convertToBT(DatabaseTableRecord record) throws InvalidParameterException { // boolean sameDevice = // Boolean.valueOf(record.getStringValue(OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_SAME_DEVICE_COLUMN_NAME)); String walletPublicKey = record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_WALLET_ID_TO_DEBIT_FROM_COLUMN_NAME); UUID transactionId = record.getUUIDValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TRANSACTION_ID_COLUMN_NAME); String transactionHash = record.getStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TRANSACTION_HASH_COLUMN_NAME); long amount = record.getLongValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_CRYPTO_AMOUNT_COLUMN_NAME); // String op_Return = // record.getStringValue(OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_OP_RETURN_COLUMN_NAME); com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.outgoing_draft.developer.bitdubai .version_1.enums.TransactionState state = com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.outgoing_draft.developer .bitdubai.version_1.enums.TransactionState.getByCode( record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_TRANSACTION_STATUS_COLUMN_NAME)); long timestamp = record.getLongValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TIMESTAMP_COLUMN_NAME); String memo = record.getStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_DESCRIPTION_COLUMN_NAME); // CryptoStatus cryptoStatus = // CryptoStatus.getByCode(record.getStringValue(OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_CRYPTO_STATUS_COLUMN_NAME)); Actors actorFromType = Actors.getByCode( record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_ACTOR_FROM_TYPE_COLUMN_NAME)); Actors actorToType = Actors.getByCode( record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_ACTOR_TO_TYPE_COLUMN_NAME)); String actorFromPublicKey = record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_ACTOR_FROM_PUBLIC_KEY_COLUMN_NAME); String actorToPublicKey = record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_ACTOR_TO_PUBLIC_KEY_COLUMN_NAME); ReferenceWallet referenceWallet = ReferenceWallet.getByCode( record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_WALLET_REFERENCE_TYPE_COLUMN_NAME)); String addressFrom = record.getStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ADDRESS_FROM_COLUMN_NAME); String addressTo = record.getStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ADDRESS_TO_COLUMN_NAME); // CryptoAddress cryptoAddressFrom = null; // if (addressFrom != null) { // cryptoAddressFrom = new CryptoAddress( // addressFrom, // // CryptoCurrency.getByCode(OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_CRYPTO_CURRENCY_COLUMN_NAME)); // } CryptoAddress cryptoAddressTo = null; if (addressFrom != null) { cryptoAddressTo = new CryptoAddress( addressTo, CryptoCurrency.getByCode( record.getStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_CRYPTO_CURRENCY_COLUMN_NAME))); } BlockchainNetworkType blockchainNetworkType = BlockchainNetworkType.getByCode( record.getStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_RUNNING_NETWORK_TYPE)); return new OutgoingDraftTransactionWrapper( transactionId, walletPublicKey, amount, cryptoAddressTo, referenceWallet, blockchainNetworkType, actorFromPublicKey, actorToPublicKey, actorFromType, actorToType, memo, timestamp, transactionHash); }
private void loadRecordAsNew( DatabaseTableRecord databaseTableRecord, UUID trxId, String txHash, String walletPublicKey, CryptoAddress destinationAddress, long cryptoAmount, String op_Return, String notes, String deliveredByActorPublicKey, Actors deliveredByActorType, String deliveredToActorPublicKey, Actors deliveredToActorType, ReferenceWallet referenceWallet, boolean sameDevice, BlockchainNetworkType blockchainNetworkType) { databaseTableRecord.setUUIDValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TRANSACTION_ID_COLUMN_NAME, trxId); // if(requestId != null) // // databaseTableRecord.setUUIDValue(OutgoingIntraActorTransactionDatabaseConstants.OUTGOING_DRAFT_REQUEST_ID_COLUMN_NAME, requestId); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants .OUTGOING_DRAFT_WALLET_ID_TO_DEBIT_FROM_COLUMN_NAME, walletPublicKey); // TODO: This will be completed when the vault gives it to us databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TRANSACTION_HASH_COLUMN_NAME, txHash); // TODO: This need to be completed in the future databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ADDRESS_FROM_COLUMN_NAME, "MY_ADDRESS"); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ADDRESS_TO_COLUMN_NAME, destinationAddress.getAddress()); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_CRYPTO_CURRENCY_COLUMN_NAME, destinationAddress.getCryptoCurrency().getCode()); databaseTableRecord.setLongValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_CRYPTO_AMOUNT_COLUMN_NAME, cryptoAmount); if (op_Return != null) databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_OP_RETURN_COLUMN_NAME, op_Return); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TRANSACTION_STATUS_COLUMN_NAME, com.bitdubai.fermat_ccp_plugin.layer.crypto_transaction.outgoing_draft.developer.bitdubai .version_1.enums.TransactionState.NEW.getCode()); // TODO: This have to be changed for the tinestamp when the network recognize the transaction // eze te saco la division para obtener el timestamp bien databaseTableRecord.setLongValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_TIMESTAMP_COLUMN_NAME, System.currentTimeMillis()); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_DESCRIPTION_COLUMN_NAME, notes); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_CRYPTO_STATUS_COLUMN_NAME, CryptoStatus.PENDING_SUBMIT.getCode()); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ACTOR_FROM_PUBLIC_KEY_COLUMN_NAME, deliveredByActorPublicKey); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ACTOR_FROM_TYPE_COLUMN_NAME, deliveredByActorType.getCode()); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ACTOR_TO_PUBLIC_KEY_COLUMN_NAME, deliveredToActorPublicKey); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_ACTOR_TO_TYPE_COLUMN_NAME, deliveredToActorType.getCode()); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_SAME_DEVICE_COLUMN_NAME, String.valueOf(sameDevice)); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_WALLET_REFERENCE_TYPE_COLUMN_NAME, referenceWallet.getCode()); databaseTableRecord.setStringValue( OutgoingDraftTransactionDatabaseConstants.OUTGOING_DRAFT_RUNNING_NETWORK_TYPE, blockchainNetworkType.getCode()); }
private ActorAssetNetworkServiceRecord buildAssetUserNetworkServiceRecord( DatabaseTableRecord record) throws InvalidParameterException { try { BlockchainNetworkType blockchainNetworkType; UUID notificationId = record.getUUIDValue( AssetUserNetworkServiceDatabaseConstants.INCOMING_NOTIFICATION_ID_COLUMN_NAME); String senderAlias = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_SENDER_ALIAS_COLUMN_NAME); String descriptor = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_DESCRIPTOR_COLUMN_NAME); String destinationType = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_RECEIVER_TYPE_COLUMN_NAME); String senderType = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_SENDER_TYPE_COLUMN_NAME); String senderPublicKey = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_SENDER_PUBLIC_KEY_COLUMN_NAME); String destinationPublicKey = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_RECEIVER_PUBLIC_KEY_COLUMN_NAME); long timestamp = record.getLongValue( AssetUserNetworkServiceDatabaseConstants.INCOMING_NOTIFICATION_TIMESTAMP_COLUMN_NAME); String protocolState = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_PROTOCOL_STATE_COLUMN_NAME); String flagRead = record.getStringValue( AssetUserNetworkServiceDatabaseConstants.INCOMING_NOTIFICATION_READ_MARK_COLUMN_NAME); String blockChainNetwork = record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_BLOCKCHAIN_NETWORK_TYPE_COLUMN_NAME); UUID responseToNotificationId = record.getUUIDValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_RESPONSE_TO_NOTIFICATION_ID_COLUMN_NAME); ActorAssetProtocolState actorAssetProtocolState = ActorAssetProtocolState.getByCode(protocolState); Boolean read = Boolean.valueOf(flagRead); AssetNotificationDescriptor assetNotificationDescriptor = AssetNotificationDescriptor.getByCode(descriptor); if (blockChainNetwork != null) blockchainNetworkType = BlockchainNetworkType.getByCode(blockChainNetwork); else blockchainNetworkType = BlockchainNetworkType.getDefaultBlockchainNetworkType(); Actors actorDestinationType = Actors.getByCode(destinationType); Actors actorSenderType = Actors.getByCode(senderType); byte[] profileImage; try { profileImage = getActorUserProfileImagePrivateKey( record.getStringValue( AssetUserNetworkServiceDatabaseConstants .INCOMING_NOTIFICATION_SENDER_PUBLIC_KEY_COLUMN_NAME)); } catch (FileNotFoundException e) { profileImage = new byte[0]; } return new ActorAssetNetworkServiceRecord( notificationId, senderAlias, // senderPhrase, profileImage, assetNotificationDescriptor, actorDestinationType, actorSenderType, senderPublicKey, destinationPublicKey, timestamp, actorAssetProtocolState, read, 0, blockchainNetworkType, responseToNotificationId, null); } catch (Exception e) { throw new InvalidParameterException(); } }