Active transactions
some initial logic for supporting active transactions
This commit is contained in:
parent
12c7c162f2
commit
ecf69cb338
Binary file not shown.
|
@ -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)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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!
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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" />-->
|
||||
|
|
Loading…
Reference in New Issue