Use Rate to represent transfer rates (RIPD-201, RIPD-983):

The Ripple protocol represent transfer rates and trust line
qualities as fractions of one billion. For example, a transfer
rate of 1% is represented as 1010000000.

Previously, such rates where represented either as std::uint32_t
or std::uint64_t. Other, nominally related types, also used an
integral representation and could be unintentionally substituted.

The new Rate class addresses this by providing a simple, type
safe alternative which also helps make the code self-documenting
since arithmetic operations now can be clearly understood to
involve the scaling of an amount by a rate.
This commit is contained in:
Nik Bougalis
2016-06-08 03:07:19 -07:00
committed by Miguel Portilla
parent f060820f3b
commit a698104c55
34 changed files with 579 additions and 433 deletions

View File

@@ -1001,6 +1001,12 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\..\src\ripple\app\paths\cursor\EffectiveRate.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\paths\cursor\EffectiveRate.h">
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\paths\cursor\ForwardLiquidity.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='debug|x64'">True</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='release|x64'">True</ExcludedFromBuild>

View File

@@ -1482,6 +1482,12 @@
<ClCompile Include="..\..\src\ripple\app\paths\cursor\DeliverNodeReverse.cpp">
<Filter>ripple\app\paths\cursor</Filter>
</ClCompile>
<ClCompile Include="..\..\src\ripple\app\paths\cursor\EffectiveRate.cpp">
<Filter>ripple\app\paths\cursor</Filter>
</ClCompile>
<ClInclude Include="..\..\src\ripple\app\paths\cursor\EffectiveRate.h">
<Filter>ripple\app\paths\cursor</Filter>
</ClInclude>
<ClCompile Include="..\..\src\ripple\app\paths\cursor\ForwardLiquidity.cpp">
<Filter>ripple\app\paths\cursor</Filter>
</ClCompile>