Desenvolvimento de sistema de matriz de Forsage | Construção de matriz de contrato inteligente Forsage

O contrato inteligente é uma nova tecnologia que só pode ser realizada por meio do blockchain. Os contratos comuns e padrão cobrem os termos do acordo entre as partes e geralmente são impostos por lei; os contratos inteligentes são digitais, armazenados no blockchain e usam códigos criptografados para fazer cumprir o acordo.
Em outras palavras, os contratos inteligentes são apenas programas de software e, como todos os programas, são executados exatamente como o programador pretendia. Contratos inteligentes são como aplicativos de programação: “Assim que eles aparecerem, execute-os.”
Forsage é um esquema de criptografia MLM popular que permite aos usuários ganhar dinheiro Ethereum das seguintes maneiras com 2 estruturas de recomendação de matriz. Forragem é um ecossistema descentralizado baseado em contratos inteligentes. Torne as configurações técnicas totalmente disponíveis e automatizadas, para que sejam seguras e estáveis.
O programa Forsage usa um esquema de presentes com uma estrutura de matriz binária. Existem 2 tipos de matriz X3 e X4. Você pode escolher andar de bicicleta com qualquer pessoa. Para começar a usar qualquer loop de matriz, você deve pagar uma taxa de 0,05ETH (taxa de inscrição) e, em seguida, iniciar as indicações através do seu link de indicação.
O tamanho da matriz usado no ciclador Forsage é 3 × 1 e 2 × 2. A matriz 3 × 1 é muito simples por natureza e só precisa preencher três posições. A matriz 2 × 2 começa em duas posições na primeira camada e depois se expande para quatro posições na segunda camada. Os cargos são preenchidos por meio de recrutamento direto e indireto de membros do Forsage. Assim que todas as posições da matriz forem preenchidas, a comissão recorrente é ativada. Uma nova matriz do mesmo tamanho também será inserida na posição da matriz.
Este contrato inteligente também é conhecido como projeto de matriz de blockchain da Ethereum e deve fornecer a qualquer participante "a capacidade de conduzir transações pessoais e comerciais diretamente". O próprio site é (no máximo) vago, tentando atrair outras pessoas para o campo da criptomoeda com os termos conhecidos desse ativo digital e da tecnologia blockchain. Mais ou menos, parece ser mais bem compreendido do que implica o uso desses termos.
O contrato inteligente do projeto de matriz compartilhada global distribuída é público e sempre pode ser visualizado no blockchain Ethereum.
Análise das vantagens dos contratos inteligentes DAPP
1. Não pode ser adulterado
Forsage implantou um contrato inteligente autoexecutável no blockchain Ethereum. O contrato existe para sempre e nunca pode ser modificado por ninguém. O acesso indefinido é uma característica inerente da programação em contratos inteligentes para permitir a participação contínua em projetos matriciais.
2. O pagamento ponto a ponto descentralizado em cadeia
é um portal de pagamento de contrato inteligente que pode facilitar os pagamentos de comissão ponto a ponto entre os participantes de seu plano e 100% diretamente nas carteiras descentralizadas dos participantes.
3. Autonomia
Um projeto de matriz descentralizada de crowdfunding, projetado especificamente para estimular o reposicionamento global do criptoecossistema, fornecendo uma introdução transparente aos recém-chegados, permitindo que a Ethereum obtenha mais consenso. (Sem organização hierárquica)
4. Transparência e anonimato Os
dados do projeto são transparentes e abertos, as estatísticas e o histórico de transações de seus parceiros podem ser consultados publicamente no blockchain Ethereum. Carteiras descentralizadas podem participar anonimamente. (Transparência de dados, anonimato de riqueza)
5. Garantia de transação Os
nós de rede registram irrevogavelmente e armazenam extensivamente o histórico de transações de todos os parceiros da rede Forsage no blockchain Ethereum

solidez do pragma> = 0,4,23 <0,6,0;

contract SmartMatrixForsage {

struct User {
    uint id;
    address referrer;
    uint partnersCount;
    
    mapping(uint8 => bool) activeX3Levels;
    mapping(uint8 => bool) activeX6Levels;
    
    mapping(uint8 => X3) x3Matrix;
    mapping(uint8 => X6) x6Matrix;
}

struct X3 {
    address currentReferrer;
    address[] referrals;
    bool blocked;
    uint reinvestCount;
}

struct X6 {
    address currentReferrer;
    address[] firstLevelReferrals;
    address[] secondLevelReferrals;
    bool blocked;
    uint reinvestCount;

    address closedPart;
}

uint8 public constant LAST_LEVEL = 12;

mapping(address => User) public users;
mapping(uint => address) public idToAddress;
mapping(uint => address) public userIds;
mapping(address => uint) public balances; 

uint public lastUserId = 2;
address public owner;

mapping(uint8 => uint) public levelPrice;

event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId);
event Reinvest(address indexed user, address indexed currentReferrer, address indexed caller, uint8 matrix, uint8 level);
event Upgrade(address indexed user, address indexed referrer, uint8 matrix, uint8 level);
event NewUserPlace(address indexed user, address indexed referrer, uint8 matrix, uint8 level, uint8 place);
event MissedEthReceive(address indexed receiver, address indexed from, uint8 matrix, uint8 level);
event SentExtraEthDividends(address indexed from, address indexed receiver, uint8 matrix, uint8 level);


constructor(address ownerAddress) public {
    levelPrice[1] = 0.025 ether;
    for (uint8 i = 2; i <= LAST_LEVEL; i++) {
        levelPrice[i] = levelPrice[i-1] * 2;
    }
    
    owner = ownerAddress;
    
    User memory user = User({
        id: 1,
        referrer: address(0),
        partnersCount: uint(0)
    });
    
    users[ownerAddress] = user;
    idToAddress[1] = ownerAddress;
    
    for (uint8 i = 1; i <= LAST_LEVEL; i++) {
        users[ownerAddress].activeX3Levels[i] = true;
        users[ownerAddress].activeX6Levels[i] = true;
    }
    
    userIds[1] = ownerAddress;
}

function() external payable {
    if(msg.data.length == 0) {
        return registration(msg.sender, owner);
    }
    
    registration(msg.sender, bytesToAddress(msg.data));
}

function registrationExt(address referrerAddress) external payable {
    registration(msg.sender, referrerAddress);
}

Acho que você gosta

Origin blog.csdn.net/T13242772558/article/details/109286983
Recomendado
Clasificación