Logo do Denarius

Denarius - Token de Jogos Números Aleatórios na Blockchain

Introdução

O Denarius é um token ERC 20 construído na blockchain que oferece uma plataforma para a criação e participação em jogos de números aleatórios. Este white paper descreve a funcionalidade do Denarius, os problemas que visa resolver e como os usuários podem interagir com a plataforma.

Problema

Os jogos de sorteios tradicionais muitas vezes carecem de transparência e confiança. A falta de auditoria pública pode levar à manipulação e desconfiança por parte dos participantes. Além disso, a dificuldade de garantir a aleatoriedade dos resultados é um desafio em muitos sistemas de sorteios centralizados.

Solução

O Denarius oferece uma solução transparente e confiável para jogos de números aleatórios na blockchain. Através de contratos inteligentes, os jogos são executados de forma transparente e os resultados são facilmente auditáveis. Os participantes podem criar e participar de jogos com intervalos de números personalizados, garantindo uma experiência justa e imparcial para todos.

Funcionalidades Principais

Benefícios

Conclusão

O Denarius oferece uma solução inovadora para gerar jogos de números aleatórios na blockchain, trazendo transparência e confiança para um espaço tradicionalmente opaco. Com sua funcionalidade robusta o Denarius está posicionado para se tornar a escolha preferida para jogos de sorteios na blockchain.

Exemplo de Interação com Contrato Denarius

Aqui está um exemplo de como interagir com o contrato Denarius na blockchain:

Passo 1: Importar a biblioteca Web3.js

<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/web3.min.js"></script>

Passo 2: Criar uma instância do provedor Web3

const web3 = new Web3('https://bsc-dataseed1.binance.org');

Passo 3: Definir o endereço do contrato Denarius e o ABI do contrato

const contractAddress = '0xB39D60769679260EA60700EF1C141f5fa324E16d';
const abi = [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"gameId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"string","name":"additionalInformation","type":"string"}],"name":"eventCreateGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"gameId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"blockId","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"drawnNumber","type":"uint256[]"}],"name":"eventGenerateNumberGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"gameId","type":"bytes32"},{"indexed":false,"internalType":"uint256[]","name":"drawnNumber","type":"uint256[]"}],"name":"eventGetGameInformation","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"smallestNumber","type":"uint256"},{"internalType":"uint256","name":"biggerNumber","type":"uint256"},{"internalType":"uint256","name":"totalNumbers","type":"uint256"},{"internalType":"string","name":"additionalInformation","type":"string"}],"name":"createGame","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gameIdCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"gameId","type":"bytes32"}],"name":"gameInformation","outputs":[{"components":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"uint256","name":"blockId","type":"uint256"},{"internalType":"bool","name":"generated","type":"bool"},{"internalType":"uint256","name":"smallestNumber","type":"uint256"},{"internalType":"uint256","name":"biggerNumber","type":"uint256"},{"internalType":"uint256","name":"totalNumbers","type":"uint256"},{"internalType":"string","name":"additionalInformation","type":"string"},{"internalType":"uint256[]","name":"drawnNumber","type":"uint256[]"}],"internalType":"struct Denarius.Game","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"games","outputs":[{"internalType":"bytes32","name":"gameId","type":"bytes32"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"uint256","name":"blockId","type":"uint256"},{"internalType":"bool","name":"generated","type":"bool"},{"internalType":"uint256","name":"smallestNumber","type":"uint256"},{"internalType":"uint256","name":"biggerNumber","type":"uint256"},{"internalType":"uint256","name":"totalNumbers","type":"uint256"},{"internalType":"string","name":"additionalInformation","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"gameId","type":"bytes32"}],"name":"generateNumberGame","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"_success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}];

Passo 4: Criar uma instância do contrato Denarius

const denariusContract = new web3.eth.Contract(abi, contractAddress);

Passo 5: Interagir com o contrato Denarius

// Exemplo de criar um jogo
async function createGame() {
    try {
        const accounts = await web3.eth.getAccounts();
        const result = await denariusContract.methods.createGame(1, 60, 6, 'Exemplo de jogo Mega Sena').send({ from: accounts[0] });
        console.log('Game created:', result.events.eventCreateGame.returnValues.gameId);
    } catch (error) {
        console.error('Error creating game:', error);
    }
}