• 智能合约实践—伟德国际官网网址
  • 发布时间:2019-06-21 15:40 | 作者:admin | 来源:网络整理 | 浏览:
  •         

            

            
            

            现任的,敝查看了霹雳连锁店或旅馆系列的事物诡计的智能合约IDE。,后退以太网的EVM和WASM虚拟机。
    现任的应用的是EVM和约,完全觉得还不错的,后退关键词心情,编辑、犯罪心情,布置等。,句法也很美。,但不如混音强。,不后退调试。
    查看地址:

            现任的在catalyst上写了第一伟德国际官网网址的智能合约,和约的总体思绪:
    正文计入题名和实质,用户可以公布和修正正文,管理员可以堵塞稍微计入敏感词的皮夹,用户可以阅读缠住未堵塞的笔记。

            和约是指加泰罗尼亚试图的可同意的批准和约。,可参加密码如次:

            pragma solidity >=0.4.22 <0.6.0;
    
    contract Ownable {
        address public owner;
    
        event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
        促净剂(地址 _owner) public {
            owner = _owner;
        }
    
        modifier onlyOwner() {
            require( == owner, "only owner operate");
            _;
        }
    
        function transferOwnership(address newOwner) public onlyOwner {
            require(newOwner != address(0), "new owner address should not be null");
            emit OwnershipTransferred(owner, newOwner);
            owner = newOwner;
        }
    
    }
    
    

            这样批准和约很复杂,宣布参加竞选了第一合约缠住者的owner大局地址与修正合约缠住者的transferOwnership方式。

            伟德国际官网网址主合约密码如次:

            pragma solidity >=0.4.22 <0.6.0;
    
    import "./";
    
    contract NoteWall is Ownable {
        //宣布参加竞选了第一便签结构体
        struct Note {
            string title; //题名
            string content; //实质
            address owner; //便签创建者地址
        }
        //便签数字组
        Note[] private notes;
        
        mapping(uint256 => bool) public closedNotes; 凡例ID由管理员堵塞
        
        和约无效吗?
        bool isopen;
        
        抑制和约能否翻开
        modifier onlyOpen() {
            需求(isopen == true, "The NoteWall is closed now!");
            _;
        }
        
        //安排作用,让和约管理员地址,翻开和约。
        促净剂(地址 initialAccount) Ownable(initialAccount) public {
            isopen = true;
        }
        
        修正计划的翻开或堵塞
        function changeOpen(bool openState) public onlyOwner 使恢复原状(bool) {
            需求(isopen != openState, "Please change the open 规定)
            isopen = openState;
            return true;
        }
        
        证实收台音长
        modifier checkTitleLength(string _title) {
            需求(八位位组(_题名).lengt > 0 && 八位位组(_title).length <= 60, "Title cannot be empty and less than 20 words");
            _;
        }
        
        //证实实质音长
        modifier checkContentLength(string _content) {
            require(八位位组(_content).length > 0 && 八位位组(_content).length <= 600, "Title cannot be empty and less than 200 words");
            _;
        }
        
        //添加新的便签
        function addNewNote(string _title, string _content) public 
    onlyOpen checkTitleLength(_title) checkContentLength(_content) returns(uint256) {
            uint noteid = notes.length++;
            notes[noteid] = Note({
                title : _title,
                content : _content,
                owner : 
                });
            return noteid;
        }
        
        //修正自己的便签
        function updateNote(uint256 noteid, string _title, string _content) public 
    onlyOpen checkTitleLength(_title) checkContentLength(_content) 使恢复原状(bool) {
            Note storage oneNote = notes[noteid];
            require(oneNote.owner == , "this is not your note");
            oneNote.title = _title;
            oneNote.content = _content;
            return true;
        }
        
        //使恢复原状便签的音长
        function getNoteLength() public view returns(uint256) {
            return notes.length;
        }
        
        //获取便签信息,这里之所以单独写了第一方式而不是把notes数字组设置成public,是要屏蔽查看被堵塞的便签
        function getNoteInfo(uint256 noteid) public view returns(string, string) {
            require(notes.length >= noteid && closedNotes[noteid] == false, "this note is 不可见)
            使恢复原状(notes[noteid].题名, 凡例[noteid].实质)
        }
        
        最适当的管理员才干采取军事行动,堵塞信纸。
        function closeOnedNote(uint256 noteid) public onlyOwner 使恢复原状(bool) {
            require(notes.length >= noteid && closedNotes[noteid] == false, "this note is 不可见)
            closedNotes[noteid] = true;
            return true;
        }
        
    }
    
    

            本和约中有一些知识点,需求留意它:
    1、 字母串典型是第一特别的静态数字组,缺乏音长属性,所以,为了计算字母串的音长,敝需求应用八位位组来替换i。
    2、映照典型closednotes variable,在key不存在的保持健康下使恢复原状0x0000000000000000000000000000000000000000000000000000000000000000

  • 收藏 | 打印
  • 相关内容