For the complete documentation index, see llms.txt. This page is also available as Markdown.

FCT_Ext_TokensSafeMath

Smart contract that adds the ability to do basic math on values within FCT execution

The values ins and value out supports decimals, making it easy to support various ERC20 tokens.

For example is possible to add 2 USDC and 2 DAI although they use different decimals. The result of the calculation can be in any chosen decimals (one of the inputs or a different one).

MainFunctions

add

function add(
        uint256 amount1,
        uint256 decimals1,
        uint256 amount2,
        uint256 decimals2,
        uint256 decimalsOut
 )

Returns (amount1/10decimals1+amount2/10decimals2)∗10decimalsOut(amount1/10^{decimals1} + amount2/10^{decimals2}) * 10^{decimalsOut}

sub

function sub(
        uint256 amount1,
        uint256 decimals1,
        uint256 amount2,
        uint256 decimals2,
        uint256 decimalsOut
 )

Returns (amount1/10decimals1−amount2/10decimals2)∗10decimalsOut(amount1/10^{decimals1} - amount2/10^{decimals2}) * 10^{decimalsOut}

mul

Returns (amount1/10decimals1∗amount2/10decimals2)∗10decimalsOut(amount1/10^{decimals1} *amount2/10^{decimals2}) * 10^{decimalsOut}

div

Returns ((amount1/10decimals1)/(amount2/10decimals2))∗10decimalsOut((amount1/10^{decimals1}) /(amount2/10^{decimals2})) * 10^{decimalsOut}

mulAndDiv

Returns ((amount1/10decimals1)∗(amount2/10decimals2)/(amount3/10decimals3))∗10decimalsOut((amount1/10^{decimals1}) *(amount2/10^{decimals2})/(amount3/10^{decimals3})) * 10^{decimalsOut}

Because the blockchain support only whole numbers, use mulAndDiv when there is a need to multiple a value by a fraction. For example: 1000 * 2.3 can be done by calculating 1000 * 23 / 10

Last updated