1.本地安装Remix
npm install -g @remix-project/remixd
2.建立Remix本地文件
remixd -s /path/to/local/dir --remix-ide http://remix.ethereum.org/
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AxBV7e0W-1642458791856)(C:\Users\86134\AppData\Roaming\Typora\typora-user-images\image-20220118061556780.png)]](https://img-blog.csdnimg.cn/0c97b528094a42399da439e6f1ff7679.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YGa5a6M5bCx552h6KeJ,size_20,color_FFFFFF,t_70,g_se,x_16)
3.进入IDE
浏览器打开http://remix.ethereum.org , workspace选择localhost
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8lznY5tC-1642458791857)(C:\Users\86134\AppData\Roaming\Typora\typora-user-images\image-20220118061842543.png)]](https://img-blog.csdnimg.cn/e7c61271b69e42c8a0463cc1adc49523.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YGa5a6M5bCx552h6KeJ,size_20,color_FFFFFF,t_70,g_se,x_16)
到这里已经可以看到remix链接至本地文件夹
4.Github上拉取OpenZeppelin合约库
这里因为我npm安装有问题,所以直接将Github上的contracts文件拉入第二步创建的本地文件夹,用相对路径调用OpenZeppelin合约。
只需要把contracts文件拉入第二步关联的本地文件夹即可。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h6qoxma3-1642458791857)(C:\Users\86134\AppData\Roaming\Typora\typora-user-images\image-20220118062440883.png)]](https://img-blog.csdnimg.cn/defc933f47ce44879f732d394e153eda.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YGa5a6M5bCx552h6KeJ,size_20,color_FFFFFF,t_70,g_se,x_16)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0BAKDE1T-1642458791858)(C:\Users\86134\AppData\Roaming\Typora\typora-user-images\image-20220118062522420.png)]](https://img-blog.csdnimg.cn/c235224bcd8f42b486843c46208dd6c1.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YGa5a6M5bCx552h6KeJ,size_20,color_FFFFFF,t_70,g_se,x_16)
接着打开remixIDE,可以看到目录下已经有该合约库了
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EkWYlkPR-1642458791859)(C:\Users\86134\AppData\Roaming\Typora\typora-user-images\image-20220118062635041.png)]](https://img-blog.csdnimg.cn/6b190c4732e74c81a0d0add53b327f45.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5YGa5a6M5bCx552h6KeJ,size_13,color_FFFFFF,t_70,g_se,x_16)
5.调用OpenZeppelin内的合约
使用相对路径引入合约,就可以使用了
pragma solidity ^0.8.7;
import "../zp/contracts/token/ERC721/ERC721.sol";
import "../zp/contracts/access/Ownable.sol";
contract OwnableContract is Ownable {
function restrictedFunction() public onlyOwner returns (uint) {
return 99;
}
function openFunction() public returns (uint) {
return 1;
}
}
另外附一下OpenZeppelin文档:
https://docs.openzeppelin.com/contracts/4.x/access-control
版权声明:本文为weixin_51914472原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。