草庐IT

智能合约学习笔记——solidity语法(一)

Solidity是一个面向合约开发的高级语言,借鉴了其他一些高级语言,例如Javascript和Python,的特性。它是一门静态类型语言,支持继承,支持各种库和用户自定义的类型。非常适合用来开发类似于投票,众筹,拍卖,多重签名钱包等各种功能。有一定的编程基础非常好入门测试可以直接在在线网址https://remix.ethereum.org上CryptoZombies是一个很有趣的学习网址注意solidity在后续版本0.5.0之后有较大变革,但下面学习内容依旧是根据0.4版本来进行的,是想先熟悉了再看改变了什么简单举例把一个数据保存到链上//SPDX-License-Identifier:

区块链之java调用智能合约(二)部署智能合约

前言上一节,已经说过,如何的创建一个合约,如何编译合约,然后在java中调用。但是呢,这些还远远不够。那么还差哪些呢?现在就是如何将创建的智能合约部署的对应的共链,私链,测试链中了。需要部署后,才能真正的使用。现在就讲讲如何部署智能合约准备工作小狐狸钱包:MetaMask。一个浏览器插件。需要安装对应的浏览器。(初步接触区块链的朋友,肯定有很多疑问,别急,一个个来解决。)这里有比较头疼的事就是。(针对初步接触区块链的朋友来说。)1.安装完钱包后,无法显示测试网络。2.安全钱包后,并没有测试币,导致合约无法部署(获取测试代币)首选,需要下载一个小狐狸钱包。这里呢,包含了测试链,共有链,(私有链需

如何向合约中质押bnb

在普遍智能合约中,质押的币一般是代币,这个非常容易处理。偶尔也会有质押bnb的情况,这种是如何处理的呢,下面我给个例子。functioninvest(addressfromad,addressirefer,uint256amount)publicpayable{require(fromad==msg.sender);require(msg.value>=amount);//添加amount必须是1,2,5//…//addrefer(fromad,irefer,amount.mul(15000).div(10));addalluser(fromad);addmyson(fromad,irefer

如何向合约中质押bnb

在普遍智能合约中,质押的币一般是代币,这个非常容易处理。偶尔也会有质押bnb的情况,这种是如何处理的呢,下面我给个例子。functioninvest(addressfromad,addressirefer,uint256amount)publicpayable{require(fromad==msg.sender);require(msg.value>=amount);//添加amount必须是1,2,5//…//addrefer(fromad,irefer,amount.mul(15000).div(10));addalluser(fromad);addmyson(fromad,irefer

公链新宠Move合约如何快速入手

目录引言什么是Move合约Move项目工程结构Move的源码结构Move的数据存储尝试一下Move的hello-world工具&环境准备合约编译&测试合约发布&调试Move的一些优质学习资源欢迎关注笔者twitter:@wallywxy沟通交流引言Move语言伴随着新公链Aptos和Sui迅速崛起,其设计理念“资源是一等公民”,非常适合进行资产的数字化编程。Move的白皮书中指出数字化资源应该不可以被复制,不能被隐式丢弃,只能在程序的存储地址之间进行移动,依据该理念Move为资产的稀缺性表达和访问控制提供了高于Solidity的表达能力。本文主要探求一下Move的基本概念,体验基本语法,感受在

公链新宠Move合约如何快速入手

目录引言什么是Move合约Move项目工程结构Move的源码结构Move的数据存储尝试一下Move的hello-world工具&环境准备合约编译&测试合约发布&调试Move的一些优质学习资源欢迎关注笔者twitter:@wallywxy沟通交流引言Move语言伴随着新公链Aptos和Sui迅速崛起,其设计理念“资源是一等公民”,非常适合进行资产的数字化编程。Move的白皮书中指出数字化资源应该不可以被复制,不能被隐式丢弃,只能在程序的存储地址之间进行移动,依据该理念Move为资产的稀缺性表达和访问控制提供了高于Solidity的表达能力。本文主要探求一下Move的基本概念,体验基本语法,感受在

使用solidity与web3创作一个在线小游戏之二:(proxy合约,solidity中的数组与mapping,状态变量的存储模型)

在上一章(solidity教程)使用solidity与web3创作一个在线小游戏之一:proxy合约,call,delegatecall与callcode_lixiaodog的博客-CSDN博客中,我们了解了可更新合约的基本原理,与solidity的三种函数调用方法,在本章中我们将完成一个基本的proxy,并写一个与之相配的可更新合约。在编写的过程中,我们还会接解到solidity的数组与mapping。请看下面代码:pragmasolidity>0.4.24;contractProxy{addresspublicowner;eventUpgraded(addressindexedimplem

使用solidity与web3创作一个在线小游戏之二:(proxy合约,solidity中的数组与mapping,状态变量的存储模型)

在上一章(solidity教程)使用solidity与web3创作一个在线小游戏之一:proxy合约,call,delegatecall与callcode_lixiaodog的博客-CSDN博客中,我们了解了可更新合约的基本原理,与solidity的三种函数调用方法,在本章中我们将完成一个基本的proxy,并写一个与之相配的可更新合约。在编写的过程中,我们还会接解到solidity的数组与mapping。请看下面代码:pragmasolidity>0.4.24;contractProxy{addresspublicowner;eventUpgraded(addressindexedimplem

北大肖臻老师《区块链技术与应用》系列课程学习笔记[25]以太坊-智能合约-5

智能合约-1智能合约-2智能合约-3智能合约-4解决重入攻击网上竞拍第二版:由投标者自己取回出价//使用withdraw模式//由投标者自己取回出价,返回是否成功functionwithdraw()publicreturns(bool){//拍卖已截止require(now>auctionEnd);//竞拍成功者需要把钱给受益人,不可取回出价,如果不是最高出价者require(msg.sender!=highestBidder);//当前地址有钱可取require(bids[msg.sender]>0);//账户余额是否为正uintamount=bids[msg.sender];//账户余额i

使用hardhat开发以太坊智能合约-测试合约

Web3工具网站【点我访问】现已上线,欢迎使用,如有好的意见和建议也欢迎反馈。 本系列课程:第一节:使用hardhat开发以太坊智能合约-搭建环境第二节:使用hardhat开发以太坊智能合约-测试合约第三节:使用hardhat开发以太坊智能合约-发布合约第四节:使用hardhat开发以太坊智能合约-验证合约上一章我们讲解了如何搭建基本的hardhat开发环境,这一章我们来讲一下如何测试、部署合约 特别提醒:本系列教程默认你已经掌握了solidity的开发技能,如果你对solidity还不能完全理解,请先移步solidity的相关教程1、编译合约 我们使用vscode打开项目,在菜单左侧,打开c