普及一下:3M互助合約丨MMM互助智慧合約模式系統開發原始碼搭建

Lyr96246466發表於2023-04-01

MMMBSC是一種基於以太坊區塊鏈技術的互助智慧合約,開發+18I鏈上合約-259l開發系統3365-/旨在為使用者提供一個安全、

透明、去中心化的互助平臺。MMMBSC是一種互助智慧合約,旨在為使用者提供一個安全、透明、去中心化的互助平臺。MMM

BSC的智慧合約是一個完全去中心化的系統,沒有中心化的管理機構。使用者的財產資訊和交易記錄都會被記錄在以太坊區塊鏈

上,保證了交易的安全性和透明度。


MMMDapp是一個去中心化智慧合約系統,程式碼就是法律,運用技術,資料無法被篡改,安全且公平。


  MMMBSC公開透明,每一筆資金都可以溯源,任何人都可以在檢視資金流入流出以及餘額情況,資訊共享,無資訊差,

人人平等。


  你的資金轉賬到撮合地址,撮合地址將資金轉進合約。在點選確認,確認命令發出,區塊連什麼時候處理這個命令,就會

在什麼時候查詢到收到資金。MMMBSC去中心化智慧合約是以程式碼形式將傳統合約條款寫入*。參與者觸發合同的某些條款後

合同程式碼將自動執行,完全不受任何人的控制。

//SPDX-License-Identifier: SimPL-2.0

pragma solidity >=0.7.0 <0.8.9;


contract zhongchou{

    //投資者投資記錄:投資目標,投資金額

    struct toMoney{

        address payable addressReceiptor;

        uint money;

    }

    //投資者基本資訊:地址,是否被啟用,總投資金額,投資次數,對映記錄投資記錄

    struct funder{

        address payable addressfunder;

        bool isActive;

        uint totalMoney;

        uint numberGive;

        mapping(uint=>toMoney)expMap;

    }

    //眾籌合約:合約建立者,是否被啟用,金額總需求,已投資金額,投資人數量,對映記錄投資人

    struct needMoneyContract{

        address payable addressNeeder;

        // payable address addressContract;

        bool isActive;

        uint totalMoney;

        uint giveMoney;

        uint amountFunder;

        mapping (uint=>funder)mapFunder;

    }

    //眾籌發起者:地址,啟用狀態,需求總金額,已經被投資的金額,發起的眾籌的數量,對映記錄投資合約

    struct needer{

        address addressNeeder;

        bool isActive;

        uint amountMoneyNeed;

        uint amountHasFunded;

        uint numberContract;

        mapping(uint=>needMoneyContract)expMap;

    }

    //記錄眾籌合約總數,合約地址(資金池地址)

    uint amountContract;

    address payable public addressFinance; 

    //三方陣列

    mapping(address=>funder)funderMap;

    mapping(uint=>needMoneyContract)contractMap;

    mapping(address=>needer)neederMap;

    

    constructor(){

        addressFinance=payable(msg.sender);

    }

    //建立一個眾籌發起者

    function createNeeder()public returns(bool){

        //需要判定是否已經被啟用

        if(neederMap[msg.sender].isActive){

            return false;

        }

        else{

            address _addressNeeder=msg.sender;

            //0.8.0後不允許直接建立一個包含對映的結構體。需要透過引用的方式,先建立一個storage型別的結構體(與目標是

引用關係),再對新變數進行操作即可。

            needer storage tmp1=neederMap[_addressNeeder];

            tmp1.addressNeeder=_addressNeeder;

            tmp1.isActive=true;

            tmp1.amountMoneyNeed=0;

            tmp1.amountHasFunded=0;

            tmp1.numberContract=0;

            return true;

        }

    }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70012429/viewspace-2943294/,如需轉載,請註明出處,否則將追究法律責任。

相關文章