Resposta do Desafio - Float Solidity
// Some code```remix-solidity
// SPDX-License-Identifier: GPL-3.0
// Declaração da versão do Solidity a ser usada
pragma solidity ^0.8.0;
// Declaração do contrato
contract Percentual {
uint256 private paymentAmount;
string private name;
/*
immutable
Variáveis imutáveis são como constantes.
Valores de variáveis imutáveis podem ser definidos dentro do construtor,
mas não podem ser modificados posteriormente.
*/
uint8 public immutable decimals;
/*
Constantes são variáveis que não podem ser modificadas.
O uso constante pode economizar custos de gás.
*/
uint8 public constant PRECISION = 10;
/* Sub-unidade
10−3 - Finney
10−6 - Szabo
10−9 - Shannon
10−12 - Babbage
10−18 - Lovelace
*/
/*
FUNÇÕES:
function nome_function(type1 var1, ...)
[public,external,private,internal]
[payable|pure|view] [returns (type var, type var ....)]
{ ... }
*/
/*
WEI precision 18 decimals
TESTES:
2 //2500000000000000000
1 ) _paymentAmount = 20500000000000000000 WEI = 20.5 * 4% = 0.82 = 820000000000000000 WEI
2 ) _paymentAmount = 50000000000000000 WEI = 0.05 * 4% = 0.002 = 2000000000000000 WEI
3 ) _paymentAmount = 84789000000000000 WEI = 0.084789 * 4% = 0.00339152 = 3391520000000000 WEI
0.084789 -> 3391560000000000
https://www.alchemy.com/gwei-calculator
*/
function calculatePercentage(uint256 _paymentAmount)
public
pure
returns (uint256)
{
uint256 percentageReturn = (_paymentAmount * 4) / 100;
return percentageReturn;
}
/*
PESQUISAR SOBRE OVERFLOW SOLIDITY
*/
function calculateOverflow(uint8 _paymentAmount)
public
pure
returns (uint256)
{
uint256 result = _paymentAmount * 5;
//paymentAmount = result;
return result;
}
function setName(string memory n) public {
name = n;
}
}
```
Last updated