Solidity 提供了常用的加密函数。以下是一些重要函数:
keccak256(bytes memory) returns (bytes32)
计算输入的Keccak-256散列。sha256(bytes memory) returns (bytes32)
计算输入的SHA-256散列。ripemd160(bytes memory) returns (bytes20)
计算输入的RIPEMD-160散列。ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) returns (address)
从椭圆曲线签名中恢复与公钥相关的地址,或在出错时返回零。函数参数对应于签名的ECDSA值: r – 签名的前32字节; s: 签名的第二个32字节; v: 签名的最后一个字节。这个方法返回一个地址。
下面的例子说明了加密函数的用法。
示例
1 | pragma solidity ^0.5.0; |
附言
基础学习资料
- Solidity中文文档:https://learnblockchain.cn/docs/solidity/introduction-to-smart-contracts.html#
- ERC20:https://learnblockchain.cn/2018/01/12/create_token/
- ERC721:https://learnblockchain.cn/2018/03/23/token-erc721/
- cryptozombies游戏:https://cryptozombies.io/zh
- 学习列表:https://github.com/yippee-ki-yay/eth-dev-reading-list
- 语法基础:https://www.tryblockchain.org/solidity-libraries-%E5%BA%93.html
- https://www.qikegu.com/docs/4991
与智能合约交互
- ethers.js:https://learnblockchain.cn/docs/ethers.js/
- web3js:
源码
示例项目
- https://solidity-by-example.org/
- https://github.com/raineorshine/solidity-by-example
- https://github.com/cyrusadkisson/solidity-baby-steps
- https://github.com/flashbots/simple-arbitrage