开发IDE: 我一般就直接用idea了,有solidity插件,但是以太坊有一个官方的IDE: remix
如果是使用hardhat
,那么就不用单独安装了,它会安装指定的版本的solc
的
1 | brew update |
可见性修饰符(只能其中一种)
函数修饰符
函数入参修饰符
变量分类,注意每个变量在声明时都会有一个对应其类型的默认值(address -> address(0), boolean -> false, enum -> 第一个元素),没有空值null的概念
内置全局变量
1 | pragma solidity ^0.8.4; |
非同质化代币(NFT)
每个NFT在链上其实就是一个uint256的token id,而metadata信息则是存储中心化的外部的,比如自己建的服务器或者S3这种图片服务存储中心,通过配置合约的_baseURI
可以设置其url前缀,然后后面加上token id就是tokenURI
了
标准方法:
标准事件
Transfer: 当NFT的所有权改变时触发该事件
Approval:当更改或确认NFT的授权地址时触发
truffle
的语法来写测试的,如果用的是hardtest
来运行测试用例,需要安装hardhat-truffle5
插件,详情见使用hardhat部署智能合约@openzeppelin/contracts/token/ERC20/ERC20.sol
npm install @openzeppelin/contracts
后可以直接在solidity中进行引入1 | //SPDX-License-Identifier: Unlicense |
balances["0x..."]
改为了balances[0x...]
就可以了 web3.utils.toWei(String(123), 'ether')