diff --git a/src/GWallet.Backend.Tests/App.config b/src/GWallet.Backend.Tests/App.config
new file mode 100644
index 000000000..93f7a1cdf
--- /dev/null
+++ b/src/GWallet.Backend.Tests/App.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/GWallet.Backend.Tests/Deserialization.fs b/src/GWallet.Backend.Tests/Deserialization.fs
index a7b7866e6..47fe7ad93 100644
--- a/src/GWallet.Backend.Tests/Deserialization.fs
+++ b/src/GWallet.Backend.Tests/Deserialization.fs
@@ -96,83 +96,71 @@ type Deserialization() =
[]
member __.``signed btc transaction import``() =
- let deserializedSignedTrans: SignedTransaction =
+ let deserializedSignedTrans: SignedTransaction =
Account.ImportSignedTransactionFromJson
MarshallingData.SignedBtcTransactionExampleInJson
+ // Validate deserialized SignedTranasction
Assert.That(deserializedSignedTrans, Is.Not.Null)
+ Assert.That(deserializedSignedTrans.Currency, Is.EqualTo Currency.BTC)
+ Assert.That(deserializedSignedTrans.FeeCurrency, Is.EqualTo Currency.BTC)
Assert.That(deserializedSignedTrans.RawTransaction,
- Is.EqualTo "0200000000010111b6e0460bb810b05744f8d38262f95fbab02b168b070598a6f31fad438fced4000000001716001427c106013c0042da165c082b3870c31fb3ab4683feffffff0200ca9a3b0000000017a914d8b6fcc85a383261df05423ddf068a8987bf0287873067a3fa0100000017a914d5df0b9ca6c0e1ba60a9ff29359d2600d9c6659d870247304402203b85cb05b43cc68df72e2e54c6cb508aa324a5de0c53f1bbfe997cbd7509774d022041e1b1823bdaddcd6581d7cde6e6a4c4dbef483e42e59e04dbacbaf537c3e3e8012103fbbdb3b3fc3abbbd983b20a557445fb041d6f21cc5977d2121971cb1ce5298978c000000")
-
- Assert.That(deserializedSignedTrans.TransactionInfo, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Metadata, Is.Not.Null)
-
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.ValueToSend,
- Is.EqualTo(10.01m))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.BalanceAtTheMomentOfSending,
- Is.EqualTo 12.02m)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.Currency,
- Is.EqualTo(Currency.BTC))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.DestinationAddress,
- Is.EqualTo("13jxHQDxGto46QhjFiMb78dZdys9ZD8vW5"))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.OriginAddress,
- Is.EqualTo("16pKBjGGZkUXo1afyBNf5ttFvV9hauS1kR"))
-
- let btcTxMetadata = deserializedSignedTrans.TransactionInfo.Metadata :?> UtxoCoin.TransactionMetadata
- Assert.That(btcTxMetadata.Fee.EstimatedFeeInSatoshis, Is.EqualTo 10)
- Assert.That(btcTxMetadata.Inputs.Length, Is.EqualTo 1)
- Assert.That(deserializedSignedTrans.TransactionInfo.Metadata.FeeEstimationTime,
- Is.EqualTo MarshallingData.SomeDate)
-
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache.Balances.Count,
- Is.EqualTo 5)
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache.UsdPrice.Count,
- Is.EqualTo 5)
-
+ Is.EqualTo "01000000000102cd9e4c06746721fe5d0ecdeabe29a0f05cc22bd7013ff76132efe476d9346bdc0000000017160014618869483590d6c1afe51160f244982e055d213ffdffffffef2763e4690975dc9415d36c06361ddee8393e6d9d86edd748ca21f10788fbc30100000017160014618869483590d6c1afe51160f244982e055d213ffdffffff01ba89000000000000220020574712746ca1942b8f0e3d52e4c1fd9406c3e1b602b328a2a77a57c233fed4640247304402206e9359074007c597a8243d4e5bbfb18ccfd83c0206fcbd1fafc02eb4946852f90220566e0d719b48d11f193d5d6d80eccbaaf44ee1771bf9ea7fd3810d41c5cb429f012102b7326aff8f2e56a341c31fbf50d0ce1a641859d837daffd7bf03f1f80a8c5eaa0247304402202fdbb2ea123c1150b26835ecd54cd59a22bca6a47f32167b35f355fbfcc12d22022011b8314e51b229d6d5a5ee216c9e038b5e05d1b5123485b935a1f823f2bf2279012102b7326aff8f2e56a341c31fbf50d0ce1a641859d837daffd7bf03f1f80a8c5eaa00000000")
+
+ // Can't validate proposal because of "unknown origin account" error
+
+ let btcTxMetadata =
+ Account.GetTransactionMetadata deserializedSignedTrans
+ |> Async.RunSynchronously
+ :?> UtxoCoin.TransactionMetadata
+
+ Assert.That(btcTxMetadata.Fee.EstimatedFeeInSatoshis, Is.EqualTo 980)
+ Assert.That(btcTxMetadata.Inputs.Length, Is.EqualTo 2)
+
[]
member __.``signed ether transaction import``() =
- let deserializedSignedTrans: SignedTransaction =
+ let deserializedSignedTrans: SignedTransaction =
Account.ImportSignedTransactionFromJson
MarshallingData.SignedEtherTransactionExampleInJson
+ // Validate deserialized SignedTransaction
Assert.That(deserializedSignedTrans, Is.Not.Null)
Assert.That(deserializedSignedTrans.RawTransaction,
- Is.EqualTo("doijfsoifjdosisdjfomirmjosmi"))
-
- Assert.That(deserializedSignedTrans.TransactionInfo, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Metadata, Is.Not.Null)
+ Is.EqualTo("f86b0185019d334a3482520894d2fdfa29d5ccbb8168ba248d59ded7a25396f84e87022a8ad81f98768026a06bb7c1f8f2b40ed2bc3a3b572cdde7fddb42a8d43c561c60580183b0ed8c2d9fa035183359feab8789642135a253371f80781f4a870f0cae8a7368c5d7e102a688"))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.ValueToSend,
- Is.EqualTo(10.01m))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.BalanceAtTheMomentOfSending,
- Is.EqualTo 12.02m)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.Currency,
- Is.EqualTo(Currency.ETC))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.DestinationAddress,
- Is.EqualTo("0xf3j4m0rjxdddud9403j"))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.OriginAddress,
- Is.EqualTo("0xf3j4m0rjx94sushh03j"))
+ Assert.That(deserializedSignedTrans.Currency,
+ Is.EqualTo(Currency.ETH))
+
+ Assert.That(deserializedSignedTrans.FeeCurrency,
+ Is.EqualTo(Currency.ETH))
- let etherTxMetadata = deserializedSignedTrans.TransactionInfo.Metadata :?> Ether.TransactionMetadata
- Assert.That(etherTxMetadata.TransactionCount, Is.EqualTo(69))
+
+ // Validate generated proposal
+ let proposal = Account.GetTransactionProposal deserializedSignedTrans
+
+ Assert.That(proposal.Amount.ValueToSend,
+ Is.EqualTo(0.000609725773224054m))
+ Assert.That(proposal.Amount.Currency,
+ Is.EqualTo(Currency.ETH))
+ Assert.That(proposal.DestinationAddress,
+ Is.EqualTo("0xd2FDFA29D5ccbb8168Ba248D59dED7a25396f84E"))
+ Assert.That(proposal.OriginAddress,
+ Is.EqualTo("0xc295DDB9B89AFb7B0b23cFb76cb34ce33bc854D5"))
+
+ // Validate generated metadata
+ let etherTxMetadata =
+ Account.GetTransactionMetadata deserializedSignedTrans
+ |> Async.RunSynchronously
+ :?> Ether.TransactionMetadata
+
+ Assert.That(etherTxMetadata.TransactionCount, Is.EqualTo(1))
Assert.That(etherTxMetadata.Fee.Currency,
- Is.EqualTo(Currency.ETC))
+ Is.EqualTo(Currency.ETH))
Assert.That(etherTxMetadata.Fee.GasPriceInWei,
- Is.EqualTo(6969))
- Assert.That(deserializedSignedTrans.TransactionInfo.Metadata.FeeEstimationTime,
- Is.EqualTo MarshallingData.SomeDate)
-
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache.Balances.Count,
- Is.EqualTo(2))
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache.UsdPrice.Count,
- Is.EqualTo(2))
+ Is.EqualTo(6932351540UL))
[]
member __.``unsigned SAI transaction import``() =
@@ -205,46 +193,48 @@ type Deserialization() =
Assert.That(deserializedUnsignedTrans.Cache.UsdPrice.Count, Is.EqualTo(5))
[]
- member __.``signed SAI transaction import``() =
+ member __.``signed DAI transaction import``() =
- let deserializedSignedTrans: SignedTransaction =
+ let deserializedSignedTrans: SignedTransaction =
Account.ImportSignedTransactionFromJson
- MarshallingData.SignedSaiTransactionExampleInJson
+ MarshallingData.SignedDaiTransactionExampleInJson
+ // Validate deserialized SignedTransaction
Assert.That(deserializedSignedTrans, Is.Not.Null)
Assert.That(deserializedSignedTrans.RawTransaction,
- Is.EqualTo("f8a80784c74d93708291b29489d24a6b4ccb1b6faa2625fe562bdd9a2326035980b844a9059cbb000000000000000000000000db0381b1a380d8db2724a9ca2d33e0c6c044be3b0000000000000000000000000000000000000000000000000de0b6b3a764000026a072cdeb03affd5977c76366efbc1405fbb4fa997ce72c1e4554ba9ec5ef772ddca069d522ea304efebd2537330870bc1ca9e9a6fe3eb5f8d8f66c1b82d9fc27a4bf"))
+ Is.EqualTo("f8a90185016c653675828792946b175474e89094c44da98b954eedeac495271d0f80b844a9059cbb000000000000000000000000d2fdfa29d5ccbb8168ba248d59ded7a25396f84e0000000000000000000000000000000000000000000000000de0b6b3a764000026a0d5c49133f38f3b60aa41747a4b7cc300a6dac87803b82ba23af9a97fd5994c3ea03122864fd6b294a3da2f3827e70fa861838a168f6533e03587358a6bdc594235"))
- Assert.That(deserializedSignedTrans.TransactionInfo, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache, Is.Not.Null)
- Assert.That(deserializedSignedTrans.TransactionInfo.Metadata, Is.Not.Null)
-
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.ValueToSend,
- Is.EqualTo(1m))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.BalanceAtTheMomentOfSending,
- Is.EqualTo 7.08m)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.Amount.Currency,
- Is.EqualTo Currency.SAI)
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.DestinationAddress,
- Is.EqualTo("0xDb0381B1a380d8db2724A9Ca2d33E0C6C044bE3b"))
- Assert.That(deserializedSignedTrans.TransactionInfo.Proposal.OriginAddress,
- Is.EqualTo("0xba766d6d13E2Cc921Bf6e896319D32502af9e37E"))
-
- let etherTxMetadata = deserializedSignedTrans.TransactionInfo.Metadata :?> Ether.TransactionMetadata
- Assert.That(etherTxMetadata.TransactionCount, Is.EqualTo(7))
+ Assert.That(deserializedSignedTrans.Currency,
+ Is.EqualTo Currency.DAI)
+
+ Assert.That(deserializedSignedTrans.FeeCurrency,
+ Is.EqualTo(Currency.ETH))
+
+ // Validate generated proposal
+ let proposal = Account.GetTransactionProposal deserializedSignedTrans
+
+ Assert.That(proposal.Amount.ValueToSend,
+ Is.EqualTo(1.0m))
+ Assert.That(proposal.Amount.Currency,
+ Is.EqualTo(Currency.DAI))
+ Assert.That(proposal.DestinationAddress,
+ Is.EqualTo("0xd2FDFA29D5ccbb8168Ba248D59dED7a25396f84E"))
+ Assert.That(proposal.OriginAddress,
+ Is.EqualTo("0xc295DDB9B89AFb7B0b23cFb76cb34ce33bc854D5"))
+
+ // Validate generated metadata
+ let etherTxMetadata =
+ Account.GetTransactionMetadata deserializedSignedTrans
+ |> Async.RunSynchronously
+ :?> Ether.TransactionMetadata
+
+ Assert.That(etherTxMetadata.TransactionCount, Is.EqualTo(1))
Assert.That(etherTxMetadata.Fee.Currency,
Is.EqualTo(Currency.ETH))
Assert.That(etherTxMetadata.Fee.GasPriceInWei,
- Is.EqualTo(3343750000L))
- Assert.That(deserializedSignedTrans.TransactionInfo.Metadata.FeeEstimationTime,
- Is.EqualTo MarshallingData.SomeDate)
+ Is.EqualTo(6113539701UL))
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache.Balances.Count,
- Is.EqualTo 5)
- Assert.That(deserializedSignedTrans.TransactionInfo.Cache.UsdPrice.Count,
- Is.EqualTo(5))
[]
member __.``can roundtrip currency``() =
diff --git a/src/GWallet.Backend.Tests/ElectrumIntegrationTests.fs b/src/GWallet.Backend.Tests/ElectrumIntegrationTests.fs
index 696f2a5b5..732325934 100644
--- a/src/GWallet.Backend.Tests/ElectrumIntegrationTests.fs
+++ b/src/GWallet.Backend.Tests/ElectrumIntegrationTests.fs
@@ -4,6 +4,7 @@ open System
open System.Linq
open NUnit.Framework
+open ElectrumSharp
open GWallet.Backend
open GWallet.Backend.UtxoCoin
@@ -50,7 +51,7 @@ type ElectrumIntegrationTests() =
let CheckServerIsReachable (electrumServer: ServerDetails)
(currency: Currency)
- (query: Async->Async<'T>)
+ (query: Async->Async<'T>)
(assertion: 'T->unit)
(maybeFilter: Option bool>)
: Async