zoukankan      html  css  js  c++  java
  • 140孤荷凌寒自学第0226天_区块链第140天完成了自己的第一个NFT智能合约与前端

    笔记合集在github上:

     https://github.com/lhghroom/Self-learning-blockchain-from-scratch

     

    【主要内容】

    今天继续修改完善智能合约代码,共耗时38分钟。尝试部署合约,没有完成。

    (此外整理作笔记花费了约14分钟)

    详细学习过程见文末学习过程屏幕录像。

     

    因为发现了多个错误,重新修改了自己的库文件:

    ```

    pragma solidity ^0.4.18;

     

    library ghlhsuintarraylib{

        //下面的函数来自于:https://learnblockchain.cn/2019/02/22/delete-item/

        //作了修改

        function uintarrayremovebyindex(uint256[] storage array,int256 index) internal {

            if (uint256(index) < array.length){

                for (int256 i = index; uint256(i)<array.length-1; i++){

                    array[uint256(i)] = array[uint256(i)+1];

                }

                delete array[array.length-1];

                array.length--;

            }

     

        }

     

        //这个函数是自己添加的,by孤荷凌寒QQ:578652607

        function uintarraygetindexbyvalue(uint256[] array,uint256 value) internal pure returns(int256) {

            if(array.length < 1){return -1;}

            uint256 intlen=array.length;

            int256 intindex=-1;

            for (uint256 i=0;i<intlen;i++){

                if(array[i]==value){

                    intindex=int256(i);

                    break;

                }

            }

            return intindex;

        }   

     

        //这个函数是自己添加的,by孤荷凌寒qq:578652607

        function uintarrayremovebyvalue(uint256[] storage array,uint256 value) internal {

            int256 intindex=uintarraygetindexbyvalue(array,value);

            if(intindex >=0 ){

                uintarrayremovebyindex(array,intindex);

            }

        }    

     

    }

    ```

     

    今天也还是没有很清晰 的弄清楚:

    memory

    storage

    值类型

    函数类型

    引用类型

    的复杂关系

     

    不过今天发现了在solidity中的uint256类型与int256类型的很多关系

    1,不能直接用=号赋值

    必须强制转换(使用类型名称转换)

    2,不能直接进行比较运算,需要先强制转换为同一种类型变量后才能比较。

    3.强制转换还不保证一定能得到想要的结果 特别是把负数的int256转换为uint256时,多就是错误的结果。

     

    github: https://github.com/lhghroom/Self-learning-blockchain-from-scratch

     

    【欢迎大家加入[就是要学]社群】

    如今,这个世界的变化与科技的发展就像一个机器猛兽,它跑得越来越快,跑得越来越快,在我们身后追赶着我们。

    很多人很早就放弃了成长,也就放弃了继续奔跑,多数人保持终身不变的样子,原地不动,成为那猛兽的肚中餐——当然那也不错,在猛兽的逼迫下,机械的重复着自我感觉还良好地稳定工作与生活——而且多半感觉不到这有什么不正常的地方,因为在猛兽肚子里的是大多数人,就好像大多数人都在一个大坑里,也就感觉不出来这是一个大坑了,反而坑外的世界显得有些不大正常。

    为什么我们不要做坑里的大多数人?

    因为真正的人生,应当有百万种可能 ;因为真正的一生可以有好多辈子组成,每一辈子都可以做自己喜欢的事情;因为真正的人生,应当有无数种可以选择的权利,而不是总觉得自己别无选择。因为我们要成为一九法则中为数不多的那个一;因为我们要成为自己人生的导演而不是被迫成为别人安排的戏目中的演员。

    【请注意】

    就是要学社群并不会告诉你怎样一夜暴富!也不会告诉你怎样不经努力就实现梦想!

    【请注意】

    就是要学社群并没有任何可以应付未来一切变化的独门绝技,也没有值得吹嘘的所谓价值连城的成功学方法论!

    【请注意】

    社群只会互相帮助,让每个人都看清自己在哪儿,自己是怎样的,重新看见心中的梦想,唤醒各自内心中的那个英雄,然后勇往直前,成为自己想要成为的样子!

    期待与你并肩奔赴未来!

     

    QQ群:646854445 (【就是要学】终身成长)

     

     

    【原文地址】

    https://www.941xue.com/content.aspx?k=941XUEZXBHCH15066020550355546865

    【同步语音笔记】

    https://www.ximalaya.com/keji/19103006/365218958

     

    【学习过程屏幕录屏】

    https://www.bilibili.com/video/BV1ET4y1F7tu/

     

    欢迎大家添加我为好友: QQ: 578652607
  • 相关阅读:
    vbscript 语言通过序列和ADODB实现取号不重复
    arcgisserver成功发布服务后,浏览服务,无地图显示
    GUID的获取
    EasyUi 表格自适应宽度
    接口隔离原则
    依赖倒置原则
    开放封闭原则
    单一职责原则
    python-函数基础
    python -流程控制
  • 原文地址:https://www.cnblogs.com/lhghroom/p/14599809.html
Copyright © 2011-2022 走看看