Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NOT TESTED] Backend,Frontend,Tests: rm txDetail from SignedTx #238

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 77 additions & 87 deletions src/GWallet.Backend.Tests/Deserialization.fs
Original file line number Diff line number Diff line change
Expand Up @@ -96,83 +96,71 @@ type Deserialization() =
[<Test>]
member __.``signed btc transaction import``() =

let deserializedSignedTrans: SignedTransaction<IBlockchainFeeInfo> =
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)

[<Test>]
member __.``signed ether transaction import``() =

let deserializedSignedTrans: SignedTransaction<IBlockchainFeeInfo> =
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))

[<Test>]
member __.``unsigned SAI transaction import``() =
Expand Down Expand Up @@ -205,46 +193,48 @@ type Deserialization() =
Assert.That(deserializedUnsignedTrans.Cache.UsdPrice.Count, Is.EqualTo(5))

[<Test>]
member __.``signed SAI transaction import``() =
member __.``signed DAI transaction import``() =

let deserializedSignedTrans: SignedTransaction<IBlockchainFeeInfo> =
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))

[<Test>]
member __.``can roundtrip currency``() =
Expand Down
14 changes: 12 additions & 2 deletions src/GWallet.Backend.Tests/GWallet.Backend.Tests-legacy.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
<Compile Include="StratumParsing.fs" />
<Content Include="packages.config" />
<EmbeddedResource Include="data\signedAndFormattedBtcTransaction.json" />
<EmbeddedResource Include="data\signedAndFormattedSaiTransaction.json" />
<EmbeddedResource Include="data\signedAndFormattedDaiTransaction.json" />
<EmbeddedResource Include="data\unsignedAndFormattedSaiTransaction.json" />
<EmbeddedResource Include="data\unsignedAndFormattedBtcTransaction.json" />
<EmbeddedResource Include="data\signedAndFormattedEtherTransaction.json" />
Expand Down Expand Up @@ -131,7 +131,7 @@
<HintPath>..\..\packages\NBitcoin.Altcoins.3.0.8\lib\net452\NBitcoin.Altcoins.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions">
<HintPath>..\..\packages\Microsoft.Extensions.Logging.Abstractions.1.0.2\lib\netstandard1.1\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
<HintPath>..\..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="NBitcoin">
<HintPath>..\..\packages\NBitcoin.6.0.17\lib\net461\NBitcoin.dll</HintPath>
Expand All @@ -153,10 +153,20 @@
<Reference Include="System.Runtime.Extensions">
<HintPath>..\..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Numerics.Vectors">
<HintPath>..\..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe">
<HintPath>..\..\packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Memory">
<HintPath>..\..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
</ItemGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="AfterBuild">
</Target>
-->
<Import Project="..\..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets" Condition="Exists('..\..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\build\Microsoft.Extensions.Logging.Abstractions.targets')" />
</Project>
2 changes: 1 addition & 1 deletion src/GWallet.Backend.Tests/GWallet.Backend.Tests.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
<EmbeddedResource Include="data\fullException_unixLegacy.json" />
<EmbeddedResource Include="data\fullException_windowsLegacy.json" />
<EmbeddedResource Include="data\signedAndFormattedBtcTransaction.json" />
<EmbeddedResource Include="data\signedAndFormattedSaiTransaction.json" />
<EmbeddedResource Include="data\signedAndFormattedDaiTransaction.json" />
<EmbeddedResource Include="data\innerException.json" />
</ItemGroup>
</Project>
21 changes: 12 additions & 9 deletions src/GWallet.Backend.Tests/MarshallingData.fs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ module MarshallingData =
let UnsignedSaiTransactionExampleInJson =
ReadEmbeddedResource "unsignedAndFormattedSaiTransaction.json"

let SignedSaiTransactionExampleInJson =
ReadEmbeddedResource "signedAndFormattedSaiTransaction.json"
let SignedDaiTransactionExampleInJson =
ReadEmbeddedResource "signedAndFormattedDaiTransaction.json"

let BasicExceptionExampleInJson =
ReadEmbeddedResource "basicException.json"
Expand Down Expand Up @@ -257,8 +257,9 @@ module MarshallingData =

let SignedBtcTransactionExample =
{
TransactionInfo = UnsignedBtcTransactionExample;
RawTransaction = "0200000000010111b6e0460bb810b05744f8d38262f95fbab02b168b070598a6f31fad438fced4000000001716001427c106013c0042da165c082b3870c31fb3ab4683feffffff0200ca9a3b0000000017a914d8b6fcc85a383261df05423ddf068a8987bf0287873067a3fa0100000017a914d5df0b9ca6c0e1ba60a9ff29359d2600d9c6659d870247304402203b85cb05b43cc68df72e2e54c6cb508aa324a5de0c53f1bbfe997cbd7509774d022041e1b1823bdaddcd6581d7cde6e6a4c4dbef483e42e59e04dbacbaf537c3e3e8012103fbbdb3b3fc3abbbd983b20a557445fb041d6f21cc5977d2121971cb1ce5298978c000000";
Currency = Currency.BTC
FeeCurrency = Currency.BTC
RawTransaction = "01000000000102cd9e4c06746721fe5d0ecdeabe29a0f05cc22bd7013ff76132efe476d9346bdc0000000017160014618869483590d6c1afe51160f244982e055d213ffdffffffef2763e4690975dc9415d36c06361ddee8393e6d9d86edd748ca21f10788fbc30100000017160014618869483590d6c1afe51160f244982e055d213ffdffffff01ba89000000000000220020574712746ca1942b8f0e3d52e4c1fd9406c3e1b602b328a2a77a57c233fed4640247304402206e9359074007c597a8243d4e5bbfb18ccfd83c0206fcbd1fafc02eb4946852f90220566e0d719b48d11f193d5d6d80eccbaaf44ee1771bf9ea7fd3810d41c5cb429f012102b7326aff8f2e56a341c31fbf50d0ce1a641859d837daffd7bf03f1f80a8c5eaa0247304402202fdbb2ea123c1150b26835ecd54cd59a22bca6a47f32167b35f355fbfcc12d22022011b8314e51b229d6d5a5ee216c9e038b5e05d1b5123485b935a1f823f2bf2279012102b7326aff8f2e56a341c31fbf50d0ce1a641859d837daffd7bf03f1f80a8c5eaa00000000";
}

let SignedBtcTransactionExampleInJson =
Expand Down Expand Up @@ -303,10 +304,11 @@ module MarshallingData =
Cache = realCachingDataExample;
Metadata = someSaiTxMetadata
}
let SignedSaiTransactionExample =
let SignedDaiTransactionExample =
{
TransactionInfo = someSaiTransactionInfo
RawTransaction = "f8a80784c74d93708291b29489d24a6b4ccb1b6faa2625fe562bdd9a2326035980b844a9059cbb000000000000000000000000db0381b1a380d8db2724a9ca2d33e0c6c044be3b0000000000000000000000000000000000000000000000000de0b6b3a764000026a072cdeb03affd5977c76366efbc1405fbb4fa997ce72c1e4554ba9ec5ef772ddca069d522ea304efebd2537330870bc1ca9e9a6fe3eb5f8d8f66c1b82d9fc27a4bf";
Currency = Currency.DAI
FeeCurrency = Currency.ETH
RawTransaction = "f8a90185016c653675828792946b175474e89094c44da98b954eedeac495271d0f80b844a9059cbb000000000000000000000000d2fdfa29d5ccbb8168ba248d59ded7a25396f84e0000000000000000000000000000000000000000000000000de0b6b3a764000026a0d5c49133f38f3b60aa41747a4b7cc300a6dac87803b82ba23af9a97fd5994c3ea03122864fd6b294a3da2f3827e70fa861838a168f6533e03587358a6bdc594235";
}

let someEtherTransactionInfo =
Expand All @@ -317,8 +319,9 @@ module MarshallingData =
}
let SignedEtherTransactionExample =
{
TransactionInfo = someEtherTransactionInfo;
RawTransaction = "doijfsoifjdosisdjfomirmjosmi";
Currency = Currency.ETH
FeeCurrency = Currency.ETH
RawTransaction = "f86b0185019d334a3482520894d2fdfa29d5ccbb8168ba248d59ded7a25396f84e87022a8ad81f98768026a06bb7c1f8f2b40ed2bc3a3b572cdde7fddb42a8d43c561c60580183b0ed8c2d9fa035183359feab8789642135a253371f80781f4a870f0cae8a7368c5d7e102a688";
}
let SignedEtherTransactionExampleInJson =
ReadEmbeddedResource "signedAndFormattedEtherTransaction.json"
Expand Down
Loading
Loading