Active transactions

some initial logic for supporting active transactions
This commit is contained in:
Kevin Gorham 2019-02-03 00:45:51 -05:00 committed by Kevin Gorham
parent 12c7c162f2
commit ecf69cb338
4 changed files with 15 additions and 22 deletions

View File

@ -54,6 +54,13 @@ internal object SynchronizerModule {
return Wallet(converter, application.getDatabasePath(DATA_DB_NAME).absolutePath, "${application.cacheDir.absolutePath}/params", seedProvider = SEED_PROVIDER, logger = twigger)
}
@JvmStatic
@Provides
@Singleton
fun provideManager(): ActiveTransactionManager {
return ActiveTransactionManager()
}
@JvmStatic
@Provides
@Singleton
@ -66,10 +73,11 @@ internal object SynchronizerModule {
downloader: CompactBlockStream,
processor: CompactBlockProcessor,
repository: TransactionRepository,
manager: ActiveTransactionManager,
wallet: Wallet,
twigger: Twig
): Synchronizer {
return Synchronizer(downloader, processor, repository, wallet, logger = twigger)
return Synchronizer(downloader, processor, repository, manager, wallet, logger = twigger)
}
}

View File

@ -1,7 +1,6 @@
package cash.z.android.wallet.ui.presenter
import android.util.Log
import cash.z.android.wallet.extention.Toaster
import cash.z.android.wallet.ui.presenter.Presenter.PresenterView
import cash.z.wallet.sdk.data.Synchronizer
import cash.z.wallet.sdk.vo.Transaction
@ -44,28 +43,10 @@ class SendPresenter(
}
fun sendToAddress(value: Double, toAddress: String) {
//TODO: pull this logic into SDK
view.launch {
val zatoshi = Math.round(value * 1e8)
val transactionId: Long = synchronizer.wallet.sendToAddress(zatoshi, toAddress)
val transactionRaw: ByteArray? = findTransaction(transactionId)?.raw
if (transactionRaw != null) {
try {
Log.e("@TWIG", "attempting to submit transaction $transactionId")
synchronizer.downloader.connection.submitTransaction(transactionRaw)
Log.e("@TWIG", "successfully submitted")
Toaster.short("Successfully sent $value ZEC")
// view.onSendSuccess() -- use CompleteableDeferred here, instead
} catch (t: Throwable) {
Log.e("@TWIG", "submit failed due to $t")
try{synchronizer.repository.deleteTransactionById(transactionId)}catch(t:Throwable){}
// view.onSendFailure() -- use CompleteableDeferred here, instead
}
} else {
Log.e("@TWIG", "calling send did not seem to result in a transaction being created")
try{synchronizer.repository.deleteTransactionById(transactionId)}catch(t:Throwable){}
// view.onSendFailure() -- use CompleteableDeferred here, instead
}
synchronizer.sendToAddress(zatoshi, toAddress)
// TOOD: already be subscribed to active transactions channel!
}
}

View File

@ -9,6 +9,10 @@
<changeTransform/>
<changeClipBounds/>
<changeImageTransform/>
<slide
android:slideEdge="left"
android:duration="200"
android:interpolator="@android:interpolator/linear_out_slow_in"/>
<!--<changeBounds android:interpolator="@android:interpolator/fast_out_slow_in">-->
<!--<targets>-->
<!--<target android:targetName="@string/transition_active_transaction" />-->