Unidades de Éter de Solidez

Neste artigo, exploraremos as unidades Solidity Ether em profundidade e explicaremos como elas são usadas no desenvolvimento de contratos inteligentes na blockchain Ethereum.

Na criptomoeda blockchain, uma unidade é uma denominação, em vez de uma escala métrica.

Uma unidade ether é uma denominação usada para comprar processos computacionais em EVM.

As unidades na programação do Solidity representam valores ou tempos envolvidos na execução do código.

Existem dois tipos de unidades que existem na programação de solidity:

  1. Solidez Éter.
  2. Tempo Solidário.


Éter de Solidez

O sufixo wei, finney, szabo ou éter em solidity pode ser adicionado a um literal para converter entre denominações baseadas em éter. A menor unidade é wei e 1e12 significa 1 x 10^12.

Unidades Valores Wei Wei
bem 1 wei 1
Kwei (babá) 1e3 wei 1.000
Mwei (Lovelace) 1e6 wei 1.000.000
Gwei (shannon) 1e9 wei 1.000.000.000
microéter (szabo) 1e12 wei 1.000.000.000.000
miliéter (finney) 1e15 wei 1.000.000.000.000.000
éter 1e18 wei 1.000.000.000.000.000.000

O código a seguir fornece um bom conceito de conversões de ether:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest {
function convert_Amount_to_Wei(uint Amount) public pure returns (uint256) {
return Amount * 1 wei;
}
function convert_Amount_To_Ether(uint Amount) public pure returns (uint256) {
return Amount * 1 ether;
}
function convert_Amount_To_Gwei(uint Amount) public pure returns (uint256) {
return Amount * 1 gwei;
}
function convert_Amount_From_Wei_To_Ether(uint Amount) public pure returns (uint256) {
return Amount * 1 wei / 1 ether;
}
function convert_Amount_From_Ether_To_Wei(uint Amount) public pure returns (uint256) {
return Amount * 1 ether / 1 wei;
}
function convert_Amount_From_Ether_To_Gwei(uint Amount) public pure returns (uint256) {
return Amount * 1 ether / 1 gwei;
}
function convert_Amount_From_Gwei_To_Ether(uint Amount) public pure returns (uint256) {
return Amount * 1 gwei / 1 ether;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Exemplo de Explicação

No exemplo acima, aplicamos um contrato inteligente chamado SolidityTest  que contém várias funções para converter um valor de entrada entre diferentes unidades Ether.

Especificamente, as funções são:

Funções Visão geral
convert_Amount_to_Wei Converte uma Quantia de entrada para Wei.
convert_Amount_To_Ether Converte um Valor de entrada em Ether.
convert_Amount_To_Gwei Converte uma Quantia de entrada em Gwei.
convert_Amount_From_Wei_To_Ether Converte uma quantidade de entrada de Wei para Ether.
convert_Amount_From_Ether_To_Wei Converte uma quantidade de entrada de Ether para Wei.
convert_Amount_From_Ether_To_Gwei Converte uma quantidade de entrada de Ether para Gwei.
convert_Amount_From_Gwei_To_Ether Converte uma quantidade de entrada de Gwei para Ether.

Todas as funções são definidas como public e pure , o que significa que podem ser chamadas de fora do contrato e não modificam o estado do contrato. Cada função recebe um valor de entrada e retorna o valor convertido na unidade desejada.


tempo de solidez

Em contraste, as unidades de tempo são usadas para medir a duração de certos eventos no blockchain, como quanto tempo leva para uma ação ocorrer.

Você pode usar várias unidades de tempo em seu código com Solidity, incluindo:

  • segundos (s).
  • minutos (min).
  • horas (h).
  • dias (dias).
  • semanas (semanas).

O seguinte programa mostra todos os tipos de conversões de tempo:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// SPDX-License-Identifier: 3.0
pragma solidity ^0.8.0;
contract SolidityTest {
function convert_seconds_To_mins(uint _seconds) public pure returns(uint){
return _seconds / 60;
}
function convert_seconds_To_Hours(uint _seconds) public pure returns(uint){
return _seconds / 3600;
}
function convert_Mins_To_Seconds(uint _mins) public pure returns (uint256) {
return _mins * 60;
}
function convert_Mins_To_Hours(uint _mins) public pure returns (uint256) {
return _mins / 60;
}
function convert_Hours_To_Seconds(uint _hrs) public pure returns (uint256) {
return _hrs * 3600;
}
function convert_Hours_To_Mins(uint _hrs) public pure returns (uint256) {
return _hrs * 60;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<div class="spinner-border" role="status"><span class="sr-only">Loading...</span></div>

Exemplo de Explicação

No exemplo acima, o contrato inteligente chamado SolidityTest  inclui várias funções para conversão de tempo entre segundos, minutos e horas.

As funções são:

 

Funções Visão geral
convert_seconds_To_mins Esta função recebe um valor de entrada em segundos _segundos e retorna o valor equivalente em minutos dividindo _segundos por 60.
convert_seconds_To_Hours Esta função recebe um valor de entrada em segundos _segundos e retorna o valor equivalente em horas dividindo _segundos por 3600.
convert_Mins_To_Seconds Esta função recebe um valor de entrada em minutos _mins e retorna o valor equivalente em segundos multiplicando _mins por 60.
convert_Mins_To_Hours Esta função recebe um valor de entrada em minutos _mins e retorna o valor equivalente em horas dividindo _mins por 60.
convert_Hours_To_Seconds Esta função recebe um valor de entrada em horas _hrs e retorna o valor equivalente em segundos multiplicando _hrs por 3600.
convert_Hours_To_Mins Esta função recebe um valor de entrada em horas _hrs e retorna o valor equivalente em minutos multiplicando _hrs por 60.

 

Todas as funções são definidas como públicas e puras, o que significa que podem ser chamadas de fora do contrato e não modificam o estado do contrato.


Conclusão

A compreensão das unidades de éter de solidity e a capacidade de converter entre elas é uma parte essencial do processo de desenvolvimento do Solidity para realizar suas tarefas.

Como a unidade fundamental de moeda no Solidity, o ether é usado para uma ampla gama de funções, incluindo pagamento de transações , implantação de contratos e execução de código de contrato inteligente.

O uso de quantidades de ether em contratos inteligentes exige que as quantidades de ether possam ser convertidas entre diferentes unidades de ether, como wei, gwei e ether. Isso é crucial para calcular as quantidades de éter com precisão e eficiência.

Você pode garantir que seus contratos manipulem os valores de ether corretamente usando os códigos de conversão fornecidos no Solidity. Isso evitará que possíveis bugs e erros sejam introduzidos em seus contratos.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone