Title: Estudando algumas sorces, entendendo reflections Post by: moinho on April 28, 2021, 08:51:32 PM Sou bem novo no mundo de solidity, estudei o necessário para entender as sintaxes mas para me aprofundar, comecei a ler as sources das criptomoedas. E me deparei com esse tal de reflections que tem pra todo canto, tem muito o que eu entender então esse será meu primeiro de muitos topicos aqui.
https://prnt.sc/127tg78 por que geralmente todos os contratos usam isso? Não poderia ser mais fácil, por exemplo: mapping (address => uint256) public balanceOf; return balanceOf[msg.address] Se alguém poder explicar o motivo de usar uma logica mais complexa, e também qual a logica por trás, ficarei muito grato. Não precisa ser tudo em detalhes, apenas um empurrãozinho já vai me ajudar muito. Title: Re: Estudando algumas sorces, entendendo reflections Post by: TryNinja on April 29, 2021, 05:17:31 AM Esses tokens de reflection não calculam os saldos da mesma forma (simples) de um token qualquer.
Exemplo de um token genérico: - ABC tem 10 tokens e XYZ tem 5 tokens. - O estado do array addresses é: [ABC: 5, XYZ: 10] - ABC envia 10 tokens para XYZ. - É realizado as operações: addresses[ABC] = addresses[ABC] - 10 e addresses[XYZ] = addresses[XYZ] + 10 No caso de um token de reflection, todos os saldos devem ser dinâmicos, já que ao contrário de um token comum onde cada transação só afeta quem envia e quem recebe (ABC e XYZ), cada transação afeta todos os endereços com tokens através do tal "imposto" das transações (e.g cada transação cobra 2% e envia para o restante dos hodlers). Dessa forma, o endereço ABC enviaria 10 tokens para XYZ, porém XYZ apenas receberia 8 tokens, sendo que os 2 restantes seriam distribuídos para todos os outros endereços, proporcionalmente ao balanço de cada. No seu screenshot, a função balanceOf chama tokenFromReflection, que deriva o saldo do endereço baseado no rate atual da rede, digamos, 25 tokens a cada 1 token de "share" do total da rede. Após a transação de ABC -> XYZ, os 2 tokens taxados são somados ao rate da rede, fazendo com que cada token de share agora equivale a 25.2 tokens. Claro que tem toda uma matemática por trás para derivar esses valores, mas estou explicando tudo da forma mais simples possível para você entender a logíca por trás disso. :D |