Closed gustavo111119 closed 1 year ago
pragma solidity ^0.8.7;
contract DEXV3 {
mapping (address => uint256) public balances;
// Lista de todos os tokens suportados
string[50] public tokensList;
// Taxas aplicadas ao DEX
uint256 public makerFee;
uint256 public takerFee;
// Limites máximos de transferência
uint256 public maxTransfer;
// Limites de quantidade de tokens e endereços
uint256 public maxTokens;
uint256 public maxAddresses;
// Configurações de segurança
uint256 public securityLevel;
// Eventos
event Transfer(address from, address to, uint256 amount);
event Approve(address from, address to, uint256 amount);
event TokenAdded(address from, string token);
event TokenRemoved(address from, string token);
/**
* Função de transferência de fundos entre endereços.
*
* @param _to Endereço para o qual os fundos serão transferidos.
* @param _value Quantidade de fundos a serem transferidos.
* @return true se a transferência foi bem-sucedida, false caso contrário.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
// Verifica se o valor a ser transferido é válido
require(_value <= balances[msg.sender] && _value > 0);
// Atualiza os saldos
balances[msg.sender] -= _value;
balances[_to] += _value;
// Dispara o evento de transferência
emit Transfer(msg.sender, _to, _value);
return true;
}
/**
* Função de aprovação de tokens.
*
* @param _spender Endereço que poderá transferir os tokens aprovados.
* @param _value Quantidade de tokens a serem aprovados.
* @return true se a aprovação foi bem-sucedida, false caso contrário.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
// Verifica se o valor a ser aprovado é válido
require(_value <= balances[msg.sender] && _value > 0);
// Dispara o evento de aprovação
emit Approve(msg.sender, _spender, _value);
return true;
}
/**
* Função para adicionar tokens à lista de tokens suportados.
*
* @param _tokenIdentifier Identificador do token a ser adicionado.
*/
function addToken(string _tokenIdentifier) public {
// Verifica se a lista não está cheia
require(tokensList.length < maxTokens);
// Adiciona o token à lista
tokensList.push(_tokenIdentifier);
// Dispara o evento de adição de token
emit TokenAdded(msg.sender, _tokenIdentifier);
}
/**
* Função para remover tokens da lista de tokens suportados.
*
* @param _tokenIdentifier Identificador do token a ser removido.
*/
function removeToken(string _tokenIdentifier) public {
// Encontra o Ãndice do token a ser removido
uint256 tokenIndex;
for (uint256 i = 0; i < tokensList.length; i++) {
if (tokensList[i] == _tokenIdentifier) {
tokenIndex = i;
break;
}
}
// Remove o token da lista
tokensList[tokenIndex] = tokensList[tokensList.length - 1];
tokensList.length--;
// Dispara o evento de remoção de token
emit TokenRemoved(msg.sender, _tokenIdentifier);
}
}
pragma solidity ^0.8.7;
// Interface para o serviço de Dex interface DexService { function getPrice(address token) external view returns (uint256); function buyToken(address token, uint256 amount) external payable; function sellToken(address token, uint256 amount) external; }
// Contrato que usa o serviço de Dex contract MyContract { DexService dex;
constructor (DexService _dex) public { dex = _dex; }
// Função para comprar tokens function buyTokens(address token, uint256 amount) public payable { // Obter o preço do token uint256 price = dex.getPrice(token);
// Pagar ao serviço de Dex
dex.buyToken(token, amount);
// Enviar tokens ao usuário
token.transferFrom(address(this), msg.sender, amount);
}
// Função para vender tokens function sellTokens(address token, uint256 amount) public { // Obter o preço do token uint256 price = dex.getPrice(token);
// Transferir tokens ao contrato
token.transferFrom(msg.sender, address(this), amount);
// Vender tokens ao serviço de Dex
dex.sellToken(token, amount);
} }
pragma solidity ^0.8.7;
contract DexBugBounty { address private owner; mapping (address => uint256) private bounties; mapping (address => bool) private paidOut;
constructor () public {
owner = msg.sender;
}
function createBounty(address _recipient, uint256 _amount) public onlyOwner {
bounties[_recipient] = _amount;
}
function payOutBounty(address _recipient) public {
require(bounties[_recipient] > 0, "Error: No bounty for this address");
require(!paidOut[_recipient], "Error: Bounty already paid out");
_recipient.transfer(bounties[_recipient]);
paidOut[_recipient] = true;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function getBounty(address _recipient) public view returns (uint256) {
return bounties[_recipient];
}
}
pragma solidity 0.8.7;
contract v3PeripheryGlobalDex {
/*
Estrutura de dados para armazenar os usuários registrados
*/
struct User {
address adress;
bool isRegistered;
}
// Armazena todos os usuários registrados
User[] public users;
// Utilizado para verificar se o usuário já foi registrado
mapping (address => bool) public registered;
/*
Função para adicionar um usuário ao contrato
*/
function registerUser(address _userAddress) public {
// Verifica se o usuário já foi registrado
require(!registered[_userAddress]);
// Cria um novo usuário
User memory newUser = User(_userAddress, true);
// Adiciona o novo usuário ao contrato
users.push(newUser);
// Atualiza o mapeamento de usuários registrados
registered[_userAddress] = true;
}
}
pragma solidity ^0.8.7;
//Contract for Generalized Price Chaining without Querying Poolsglobal Dex
contract Dex { //Data structure to store prices in different exchanges struct Exchange { uint id; uint price; }
//Mapping to store prices in different exchanges
mapping (uint => Exchange) public exchanges;
//Function to update the prices
function updatePrice(uint _exchangeId, uint _price) public {
exchanges[_exchangeId].id = _exchangeId;
exchanges[_exchangeId].price = _price;
}
//Function to get the price in the desired exchange
function getPrice(uint _exchangeId) public view returns (uint) {
return exchanges[_exchangeId].price;
}
//Function to get the price difference between two exchanges
function getPriceDifference(uint _exchange1, uint _exchange2) public view returns (uint) {
uint price1 = getPrice(_exchange1);
uint price2 = getPrice(_exchange2);
return (price1 > price2) ? (price1 - price2) : (price2 - price1);
}
}
pragma solidity ^0.8.7;
contract GlobalDex { //Variáveis de estado uint public snapshots;
//Evento disparado quando o snapshot é removido
event RemovedSnapshot(address indexed sender, uint snapshot);
//Função para remover o snapshot
function removeSnapshot(uint snapshot) public {
//Verifica se o snapshot existe
require(snapshots > snapshot);
//Remove o snapshot
snapshots -= snapshot;
//Dispara o evento
emit RemovedSnapshot(msg.sender, snapshot);
}
}
pragma solidity ^0.8.7;
contract GlobalDexConfig { address public arbitrumVerifier; address public optimismVerifier;
constructor() public {
arbitrumVerifier = 0x0000000000000000000000000000000000000000;
optimismVerifier = 0x0000000000000000000000000000000000000000;
}
function setArbitrumVerifier(address _arbitrumVerifier) public onlyOwner {
arbitrumVerifier = _arbitrumVerifier;
}
function setOptimismVerifier(address _optimismVerifier) public onlyOwner {
optimismVerifier = _optimismVerifier;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
}
pragma solidity ^0.8.7;
// Este contrato globalDexV3 é responsável por gerenciar trocas entre tokens ERC20
contract globalDexV3 { // Estrutura para armazenar os detalhes da troca struct Exchange { address maker; // Endereço do criador da troca uint256 amount; // Quantidade de tokens a serem negociados uint256 price; // Preço do token em relação ao outro uint256 filled; // Quantidade de tokens que já foram negociados }
// Coleção de trocas
mapping(bytes32 => Exchange) private exchanges;
// Utilizado para gerar IDs diferentes para cada troca
bytes32 public exchangeCounter;
// Cria uma nova troca
function createExchange(address maker, uint256 amount, uint256 price) public {
// Incrementa o contador de trocas
exchangeCounter++;
// Cria uma nova troca
Exchange storage exchange = exchanges[exchangeCounter];
exchange.maker = maker;
exchange.amount = amount;
exchange.price = price;
exchange.filled = 0;
}
// Encerra uma troca existente
function cancelExchange(bytes32 exchangeId) public {
// Recupera a troca
Exchange storage exchange = exchanges[exchangeId];
// Verifica se o criador da troca está tentando cancelar
require(exchange.maker == msg.sender, "Not authorized to cancel");
// Remove a troca
delete exchanges[exchangeId];
}
// Preenche uma troca existente
function fillExchange(bytes32 exchangeId, uint256 amount) public {
// Recupera a troca
Exchange storage exchange = exchanges[exchangeId];
// Verifica se a quantidade a ser preenchida não ultrapassa a quantidade total
require(amount <= exchange.amount - exchange.filled, "Insufficient amount");
// Atualiza a quantidade preenchida
exchange.filled += amount;
}
}
pragma solidity ^0.8.7;
// Este é um contrato inteligente para global dexLabs Interface.
contract globalDexLabsInterface {
// variáveis globais
address public admin;
uint public totalSupply;
mapping(address => uint) public balances;
mapping(address => mapping (address => uint)) public allowed;
string public name;
string public symbol;
uint public decimals;
uint public rate;
address public wallet;
constructor() public {
admin = msg.sender;
totalSupply = 1000000;
name = "Global DexLabs Token";
symbol = "GDL";
decimals = 18;
wallet = 0x0123456789;
}
// função para transferir tokens
function transfer(address _to, uint _value) public {
require(balances[msg.sender] >= _value && _value > 0);
balances[msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(msg.sender, _to, _value);
}
// função para aprovar transferências
function approve(address _spender, uint _value) public {
require(balances[msg.sender] >= _value && _value > 0);
allowed[msg.sender][_spender] = _value;
emit Approval(msg.sender, _spender, _value);
}
// função para transferir tokens a partir de uma conta autorizada
function transferFrom(address _from, address _to, uint _value) public {
require(balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0);
balances[_from] -= _value;
allowed[_from][msg.sender] -= _value;
balances[_to] += _value;
emit Transfer(_from, _to, _value);
}
// função para definir a taxa
function setRate(uint _rate) public onlyAdmin {
rate = _rate;
}
// função para comprar tokens
function buyTokens() public payable {
require(msg.value > 0);
uint tokens = msg.value * rate;
require(tokens > 0);
balances[msg.sender] += tokens;
totalSupply += tokens;
wallet.transfer(msg.value);
emit Buy(msg.sender, tokens);
}
// função para vender tokens
function sellTokens(uint _tokens) public {
require(_tokens > 0 && balances[msg.sender] >= _tokens);
totalSupply -= _tokens;
balances[msg.sender] -= _tokens;
uint eth = _tokens / rate;
wallet.transfer(eth);
msg.sender.transfer(eth);
emit Sell(msg.sender, _tokens);
}
// restringe o acesso ao admin
modifier onlyAdmin() {
require(msg.sender == admin);
_;
}
// eventos
event Transfer(address indexed _from, address indexed _to, uint _value);
event Approval(address indexed _owner, address indexed _spender, uint _value);
event Buy(address indexed _buyer, uint _value);
event Sell(address indexed _seller, uint _value);
}
pragma solidity ^0.8.7;
contract SwapOnGlobalDEX {
uint256 public exchangeRate;
address public owner;
address public sender;
address public recipient;
uint256 public amountIn;
uint256 public amountOut;
constructor() public {
owner = msg.sender;
}
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
function setExchangeRate(uint256 _exchangeRate) public onlyOwner {
exchangeRate = _exchangeRate;
}
function initiateSwap(address _sender, address _recipient, uint256 _amountIn) public onlyOwner {
sender = _sender;
recipient = _recipient;
amountIn = _amountIn;
amountOut = amountIn * exchangeRate;
}
function executeSwap() public onlyOwner {
require(sender.transfer(amountOut));
recipient.transfer(amountIn);
}
}
pragma solidity ^0.8.7;
// Global DexView V2 Liquidity Pool Contract
contract GlobalDVV2LiqPool {
// Variables
address payable owner;
mapping (address => uint256) public balances;
mapping (address => bool) public whitelist;
// Events
event Deposit(address indexed _from, uint256 _value);
event Withdraw(address indexed _to, uint256 _value);
// Constructor
constructor() public {
owner = msg.sender;
}
// Deposit
function deposit() public payable {
if (!whitelist[msg.sender]) revert();
balances[msg.sender] += msg.value;
emit Deposit(msg.sender, msg.value);
}
// Withdraw
function withdraw(uint256 _value) public {
require(balances[msg.sender] >= _value);
balances[msg.sender] -= _value;
msg.sender.transfer(_value);
emit Withdraw(msg.sender, _value);
}
}
pragma solidity ^0.8.7;
contract DexMigrateV2toV3 {
uint public currentTime;
uint public migrationDeadline;
function DexMigrateV2toV3( uint _migrationDeadline) public {
migrationDeadline = _migrationDeadline;
}
function updateCurrentTime() public {
currentTime = now;
}
function migrate() public {
require( currentTime <= migrationDeadline );
// Migrate V2 liquidity to V3
}
}
pragma solidity ^0.8.7;
contract Globaldex {
// Variáveis address public owner; uint public totalSupply; mapping (address => uint) public balanceOf; mapping (address => mapping (address => uint)) public allowance; address[] public sellers; address[] public buyers; struct Product { string name; uint price; address owner; bool isDigital; } mapping (uint => Product) public products;
// Eventos event SellProduct(address indexed buyer, uint productId); event BuyProduct(address indexed seller, uint productId);
// Construtor constructor() public { owner = msg.sender; totalSupply = 0; }
// Funções function registerSeller(address seller) public { require(msg.sender == owner, "Only owner can register seller"); sellers.push(seller); }
function registerBuyer(address buyer) public { require(msg.sender == owner, "Only owner can register buyer"); buyers.push(buyer); }
function addProduct(string memory name, uint price, bool isDigital) public { require(msg.sender == owner, "Only owner can add product"); products[totalSupply] = Product(name, price, msg.sender, isDigital); totalSupply++; }
function buyProduct(uint productId) public { require(buyers.indexOf(msg.sender) >= 0, "You must be a registered buyer to buy a product"); require(products[productId].owner != msg.sender, "You cannot buy your own product"); require(products[productId].price <= balanceOf[msg.sender], "You don't have enough funds to buy this product");
Product storage product = products[productId];
balanceOf[msg.sender] -= product.price;
balanceOf[product.owner] += product.price;
emit BuyProduct(product.owner, productId);
}
function sellProduct(uint productId) public { require(sellers.indexOf(msg.sender) >= 0, "You must be a registered seller to sell a product"); require(products[productId].owner == msg.sender, "You can only sell your own product");
Product storage product = products[productId];
balanceOf[msg.sender] += product.price;
balanceOf[product.owner] -= product.price;
emit SellProduct(product.owner, productId);
}
function transfer(address to, uint amount) public { require(balanceOf[msg.sender] >= amount, "You don't have enough funds to transfer"); balanceOf[to] += amount; balanceOf[msg.sender] -= amount; }
function approve(address spender, uint amount) public { allowance[msg.sender][spender] = amount; }
function transferFrom(address from, address to, uint amount) public { require(balanceOf[from] >= amount, "You don't have enough funds to transfer"); require(allowance[from][msg.sender] >= amount, "You don't have enough allowance to transfer"); balanceOf[to] += amount; balanceOf[from] -= amount; allowance[from][msg.sender] -= amount; }
}
pragma solidity ^0.8.7;
// Global Dex Wiki Contract
contract GlobalDexWiki {
address public owner;
uint256 public totalSupply;
mapping(address => uint256) public userSupply;
mapping(uint256 => string) public entries;
constructor() public {
owner = msg.sender;
totalSupply = 0;
}
function submitEntry(string memory entry) public {
require(msg.sender == owner);
entries[totalSupply] = entry;
totalSupply++;
}
pragma solidity 0.8.7;
contract DexMessage { //Variáveis globais address owner; string message;
//Construtor
constructor() public {
owner = msg.sender;
}
//Função para receber mensagem
function receiveMessage(string memory _message) public {
message = _message;
}
//Função para obter mensagem
function getMessage() public view returns (string memory) {
return message;
}
}
pragma solidity ^0.8.7;
contract globalDexIntelligence { // Dados do clima struct WeatherData { uint256 temperature; uint256 humidity; uint256 windSpeed; }
// Estado atual das previsões
struct ForecastState {
uint256 timestamp;
WeatherData currentWeather;
WeatherData forecastWeather;
}
// Armazena o estado atual das previsões
ForecastState private _forecastState;
// Evento disparado quando as previsões são atualizadas
event ForecastUpdated(uint256 timestamp, WeatherData currentWeather, WeatherData forecastWeather);
// Inicializa o contrato
constructor() public {
// Recupera os dados climáticos atuais
WeatherData memory currentWeather = getCurrentWeather();
// Recupera os dados climáticos das previsões
WeatherData memory forecastWeather = getForecastWeather();
// Atualiza os dados climáticos
updateForecastState(currentWeather, forecastWeather);
}
// Atualiza os dados climáticos
function updateForecastState(WeatherData memory currentWeather, WeatherData memory forecastWeather) internal {
// Atualiza o estado da previsão
_forecastState.timestamp = now;
_forecastState.currentWeather = currentWeather;
_forecastState.forecastWeather = forecastWeather;
// Dispara o evento de previsão atualizada
emit ForecastUpdated(now, currentWeather, forecastWeather);
}
// Recupera os dados climáticos atuais
function getCurrentWeather() internal view returns (WeatherData memory) {
// Implementação aqui...
}
// Recupera os dados climáticos das previsões
function getForecastWeather() internal view returns (WeatherData memory) {
// Implementação aqui...
}
}
pragma solidity 0.8.7;
contract GlobalDexVideos {
// Variáveis
address public owner;
mapping(address => bool) public isRegistered;
// Eventos
event VideoEngagement(address indexed user, uint engagement);
// Inicialização
constructor() public {
owner = msg.sender;
}
// Funções
function registerUser(address user) public {
require(!isRegistered[user], "Usuário já registrado!");
isRegistered[user] = true;
}
function increaseEngagement(uint engagement) public {
require(isRegistered[msg.sender], "Usuário não registrado!");
emit VideoEngagement(msg.sender, engagement);
}
}
artificial.
pragma solidity ^0.8.7;
contract GlobalDex { // Armazenar os dados do paciente struct Paciente { string nome; string endereço; string cpf; string dataDeNascimento; string telefone; string historicoDeDoenças; string medicamentos; string anamnese; string exames; }
// Registro dos pacientes
mapping (uint256 => Paciente) public pacientes;
// Função para adicionar um novo paciente
function adicionarPaciente (
string memory _nome,
string memory _endereço,
string memory _cpf,
string memory _dataDeNascimento,
string memory _telefone,
string memory _historicoDeDoenças,
string memory _medicamentos,
string memory _anamnese,
string memory _exames
) public {
uint256 idPaciente = pacientes.length++; // Aumenta o contador de pacientes
// Armazena os dados do paciente
pacientes[idPaciente] = Paciente (_nome, _endereço, _cpf, _dataDeNascimento, _telefone, _historicoDeDoenças, _medicamentos, _anamnese, _exames);
}
// Função para ler os dados do paciente
function lerPaciente (uint256 _idPaciente) public view returns (
string memory,
string memory,
string memory,
string memory,
string memory,
string memory,
string memory,
string memory,
string memory
) {
return (
pacientes[_idPaciente].nome,
pacientes[_idPaciente].endereço,
pacientes[_idPaciente].cpf,
pacientes[_idPaciente].dataDeNascimento,
pacientes[_idPaciente].telefone,
pacientes[_idPaciente].historicoDeDoenças,
pacientes[_idPaciente].medicamentos,
pacientes[_idPaciente].anamnese,
pacientes[_idPaciente].exames
);
}
// Função para atualizar os dados do paciente
function atualizarPaciente (
uint256 _idPaciente,
string memory _nome,
string memory _endereço,
string memory _cpf,
string memory _dataDeNascimento,
string memory _telefone,
string memory _historicoDeDoenças,
string memory _medicamentos,
string memory _anamnese,
string memory _exames
) public {
// Atualiza os dados do paciente
pacientes[_idPaciente].nome = _nome;
pacientes[_idPaciente].endereço = _endereço;
pacientes[_idPaciente].cpf = _cpf;
pacientes[_idPaciente].dataDeNascimento = _dataDeNascimento;
pacientes[_idPaciente].telefone = _telefone;
pacientes[_idPaciente].historicoDeDoenças = _historicoDeDoenças;
pacientes[_idPaciente].medicamentos = _medicamentos;
pacientes[_idPaciente].anamnese = _anamnese;
pacientes[_idPaciente].exames = _exames;
}
// Função para remover um paciente
function removerPaciente (uint256 _idPaciente) public {
// Remove o paciente do registro
delete pacientes[_idPaciente];
}
}
// Corretora Descentralizada Global DEX
// Contrato Token de Governançapragma solidity ^0.8.7;
contract GLOBAL DEX {
}