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.
- 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.
- 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.
owner: endereço do proprietário do contrato.totalFees: total acumulado das taxas cobradas.
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.
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.
splitter.sendPayments{value: 1 ether}(
address(0), // endereço zero para BNB
payable(recipient),
0, // ignorado para BNB
3 // taxa de 3%
);splitter.sendPayments(
tokenAddress,
payable(recipient),
100 * 10**18, // valor com decimais
5 // taxa de 5%
);- 🔑 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.
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para detalhes.
Desenvolvido por Leonardo Toledo 📧 leotoledo010@gmail.com 🔗 github.com/leonardotoledo0