Solidity源码与智能合约笔记
- Solidity源码->智能合约的步骤:
- 首先使用编译器将Solidity编写的源代码编译为字节码,编译过程中同时会产生智能合约的二进制接口规范(Appliciation Binary Interface,简称为ABI)
- 通过交易的方式将字节码部署到以太坊网络,部署成功会产生一个新的智能合约账户
- 使用JavaScript编写的DApp通常以web3.js+ABI调用智能合约中的函数来实现数据的读取与修改
- Solcjs
是Solidity源码库构建的目标之一,是Solidity的命令行编译器
使用npm可以便捷地安装Solidity编译器solcjs
npm install -g solc (注:npm和node安装过程参考 帖子
- Solidity源码与智能合约工作流程图
- 一个简单的智能合约(存数取数合约,返回多个值)
pragma solidity >0.4.22;
contract SimpleStorage{
uint myData;
function setData(uint newData) public{
myData = newData;
}
function getData() public view returns(uint){
return myData;
}
function pureAdd(uint a, uint b) public pure returns(uint sum, uint origin_a){
return (a+b, a);
}
}
- 简答的智能合约02
pragma solidity >0.4.22;
contract Car{
string brand;
uint public price; ///定义一个public变量,相当于定义一个get函数
constructor(string initBrand, uint initPrice) public{
brand = initBrand;
price = initPrice;
}
function setBrand(string newBrand) public{
brand = newBrand;
}
function getBrand() public view returns(string){
return brand;
}
function setPrice(uint newPrice) public{
price = newPrice;
}
/**function price() public view returns(uint){
return price;
}*/
}
文档信息
- 本文作者:Atomyzd
- 本文链接:https://atomyzd.github.io/2020/08/21/Solidity%E7%AC%94%E8%AE%B0/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)