Skip to content

LeonardoToledo0/-bnb-token-fee-splitter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

🔥 FixedFeePaymentSplitter

📋 Descrição

  • FixedFeePaymentSplitter é um contrato inteligente desenvolvido em Solidity para a Binance Smart Chain (BSC).
  • Facilita pagamentos com uma taxa fixa percentual dinâmica.
  • Suporta pagamentos tanto em BNB (moeda nativa da BSC) quanto em tokens BEP-20.
  • Calcula uma taxa sobre o valor enviado e acumula essa taxa para retirada pelo proprietário.

🛠️ Tecnologias Utilizadas

  • Solidity 0.8.x: Linguagem para contratos inteligentes na EVM (Ethereum Virtual Machine).
  • Binance Smart Chain (BSC): Blockchain compatível com EVM, com taxas menores e maior velocidade que Ethereum.
  • BEP-20: Padrão de tokens na Binance Smart Chain, similar ao ERC-20.
  • Interface IBEP20: Interação com tokens BEP-20 para transferências seguras.
  • Eventos Ethereum: Para registro e rastreamento das ações do contrato.

🚀 Funcionalidades Principais

  • Suporta pagamentos em moeda nativa (BNB) e tokens BEP-20.
  • Taxa percentual dinâmica definida em cada pagamento.
  • Acumula as taxas no contrato para posterior retirada pelo proprietário.
  • Permite transferência da propriedade do contrato.
  • Emite eventos para pagamentos, transferências de propriedade e retiradas de taxas.

🏗️ Estrutura do Contrato

🧾 Variáveis de Estado

  • owner: endereço do proprietário do contrato.
  • totalFees: total acumulado das taxas cobradas.

📢 Eventos

  • PaymentSent(address indexed recipient, uint256 amount): Evento disparado quando um pagamento é enviado.
  • OwnershipTransferred(address indexed previousOwner, address indexed newOwner): Evento disparado quando a propriedade é transferida.
  • FeesWithdrawn(address indexed owner, uint256 amount): Evento disparado quando as taxas são retiradas.

⚙️ Funções

  • constructor(address payable _owner): Define o proprietário inicial.
  • transferOwnership(address payable newOwner): Transfere a propriedade para outro endereço.
  • sendPayments(address tokenAddress, address payable recipient, uint256 amount, uint256 fee): Envia pagamento com taxa percentual dinâmica.
  • withdrawFees(): Permite que o proprietário retire taxas acumuladas.

💡 Como Usar

💰 Pagamento em BNB (Moeda Nativa)

splitter.sendPayments{value: 1 ether}(
    address(0),           // endereço zero para BNB
    payable(recipient),
    0,                    // ignorado para BNB
    3                     // taxa de 3%
);

💰 Pagamento em Token BEP-20

splitter.sendPayments(
    tokenAddress,
    payable(recipient),
    100 * 10**18,         // valor com decimais
    5                     // taxa de 5%


);

🔒 Segurança

  • 🔑 Somente o proprietário pode sacar taxas e transferir propriedade.
  • ⚠️ A taxa deve ser informada corretamente para evitar erros.
  • 📥 Destinatários devem aceitar BNB ou tokens, conforme o pagamento.
  • 🛡️ Para tokens, o remetente deve aprovar o contrato para gastar os tokens.

📄 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para detalhes.


✍️ Autor

Desenvolvido por Leonardo Toledo 📧 leotoledo010@gmail.com 🔗 github.com/leonardotoledo0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published