使用hardhat发行一个NFT
前言熟悉hardhat,并发行一个NFT
目标
了解hardhat
了解solidity
使用harhat发行nft
使用ipfs存储你的nft
hardhat是什么Hardhat是一个便于在以太坊上进行构建的开发环境。它帮助开发人员管理和自动化构建智能合约和dApp的过程中固有的重复任务,以及轻松地围绕此工作流程引入更多功能,并且内置了开发专用以太坊网络,这意味着从根本上进行编译和测试。
前期准备初始化工程12345678910mkdir nft-publiccd nft-publicnpm initnpm install --save-dev hardhatnpx hardhat
运行成功之后会生成如下的文件夹
1234567891011.├── README.md├── contracts //存放职能合约的目录│ └── Greeter.sol├── hardhat.config.js // hardhar的配置目录,例如solidity的版本等├── package.json├── scripts ...
web3js与ethers的区别
前言使用 truffle部署合约,并练习ethers库。之前一直是使用web3js,今天看到一个源码使用了ethers,看了之后感觉比web3js方便很多。
web3js 与 ethers对比连接到以太坊1234// web3 var Web3 = require('web3'); var web3 = new Web3('http://localhost:8545'); // ethers var ethers = require('ethers'); const url = "http://127.0.0.1:8545"; const provider = new ethers.providers.JsonRpcProvider(url);
签名对象在ethers中,签名者是以太坊账户的抽象。它可用于对消息和交易进行签名,并将签名的交易发送到以太坊网络。在 web3 中,可以使用一个帐户来签署消息和交易。
123456// web3 const account = web3.eth.accounts. ...
vue3 setup和pinia的使用总结
前言最近使用vue3重新写了项目,发现人家都配置好了,使用setup语句可以非常方便的运行各种组件和状态的管理,跟react越来越像了。最开始参考 Vue3 setup语法糖使用简易教程(上) - 掘金 的使用说明,结合setup的语法糖,熟悉之后各种组件之间的状态同步等,都变得非常的丝滑。以下文章都是以setup语法糖来做说明
123<script setup>....</script>
数据相关refstring、array、num等对象的情况下可以直接使用ref如果不使用 ref会导致UI模板的template不能渲染
1234567<template> <div>{{num}}</div></template><script setup>import { ref } from "vue";let num=ref(1)</script>
ref赋值ref 赋值需要复制给他的 data.value
12 ...
【01-backtrader学习笔记】-初识Backtrader|了解基本概念|实现最简单的回测
Backtrader是一款纯Python的回测+实盘框架。从软件工程的角度,这个项目非常值得学习。这个框架的代码风格非常Pythonic,也值得借鉴和学习。作者是一个很严谨的德国人,从他的代码审查和社区管理可见一斑。
backtrader允许您专注于编写可重复使用的交易策略,指标和分析器,而不必花时间构建基础架构。
backtrader的思路是通过历史回顾每个bar来进行回测追溯,可能会更简单理解一点。
论坛有采生之前写过的帖子,大家也可以去学习一波,我是学习完之后,总结了一下这篇笔记。
最终会生成图表,有助于我们进行分析,可以清晰的看到开关仓点位,以及盈利情况等。
基本概念在学习backtrader之前需要大概先了解他的几个核心组件,如果你不想了解也没事,直接看代码就好啦。看到不懂的回来参考一下即可。
Cerebro:BackTrader的基石,所有的操作都是基于Cerebro的。
Feed:将运行策略所需的基础数据加载到Cerebro中,一般为K线数据。
Indicator:BackTader自带的指标,并集成了talib中的指标。我们也可以选择继承一个Indicator ...
【智能合约笔记-01】入门智能合约|使用智能合约实现发币、转账、查询等功能
01-入门智能合约前言之前使用web3js调用了很多合约进行交互,那么如果想深入了解的话,还是需要学习一下合约相关的知识,这是一篇入门笔记,能让我们对合约有个大概的认知。
通过这篇文章你能了解到:
如何存储数据上以太坊链
如何发行一个自己的Token(币)
实现代币的增发
实现代币余额的查询
实现代币的转账
准备工作可以使用remix编辑器和solidity文档
remix
solidity智能合约文档
solidity英文版本(建议看此版本,比较新)
简单的智能合约存储链上数据目标:
能在EVM(以太坊虚拟机)存储一个数据
能查询该数据
12345678910111213pragma solidity ^0.4.0;contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { r ...
Messari年度报告笔记与思考
Messari是一家总部位于美国纽约的区块链数据库创企,Messari公司利用开源工具构建了一套区块链数据库,其中存储的数据信息包括各个区块链项目的资金、开发历史、管理架构、以及供应计划等。
他的年度报告会包含很多数字货币的分析和趋势判断。
以下是我摘录的部分报告节选以及自己的理解,可能理解有偏差,不构成任何投资建议。
作为一个初入区块链的小白,我感觉这份报告是一份很好的读物,可以了解区块链的过去以及未来,有时间的老板可以去读一下原版。也可以参考我这个精简版本。
中文版本
英文版本
桥、NFTs以及DAOs“Web3 “可以说是包罗万象,它涵盖了加密货币(数字黄金和稳定币)、智能合约(L1&L2),去中心化的硬件基础设施(视频、存储、传感器等),非同质化代币NFT(数字化ID和产权),DeFi(交换和抵押web3资产的金融服务),Metaverse(在类似游戏的环境中打造数字化用地),以及社区治理 (DAO,去中心化自治组织)。
我预计整个Web3的增长将涉及各个领域,但有三个领域特别不发达:*NFT基础设施、DAO相关的建设以及跨链桥。
以太坊在今年的达到了容量上限,因此其他 ...
2021年的MAC利器
看了下之前还是2017年写的好用软件,那么也总结下自己的2021年
关于开发开发环境本地的用的比较多的语言
python: 直接用 conda 来管理了
node: nvm来管理
golang:brew安装的,用的比较少
其他环境基本上全面转向了docker
mongo
mysql
数据库操作
sequel pro mysql
Robo3T mongo
Terminal工具
iTerm2 搭配 zsh 使用,非常的方便
iTerm2
fig 可以理解为Iterm2的增强插件
分屏软件
使用它配合快捷键能够快速的分屏,非常的方便
spectacle
tmux 支持terminal下的窗口分屏
思维导图
之前一直用xmind的,后来ios 上限免的时候下载了mindnode之后,就彻底不回去了。由俭入奢易,由奢入俭难,谁用谁知道。
我一般用思维导图来确定项目需求,并撰写流程
Mindnode
编辑器
vscode:搭配copilot直接封神了。
markdown 编辑器: Typora
picgo 搭配 typora无缝存储图片
个人数据中心: notio ...
【区块链学习笔记-06】BSC网络编码实现代币的兑换与赎回:BNB->USDCUSDC->BNB(附源码)
本文目标实现测试网络下面
BNB编码实现兑换USDC
USDC TOKEN 编码实现兑换 BNB
为后续批量操作打下一定的基础,能够快速批量起号以及交互项目操作做一个前期的实践。
例如pancakeswap IFO中需要批量存入价值100U的cake,那么通过这次实践,再举一反三。我们就可以快速将BNB或者BUSD等兑换cake,并动态存入指定的账号等。同时也是为了熟悉一下BSC链条的操作和使用。
以上都是在测试网络下进行的,跟真实网络差异应该不太。测试网络编码练习主要是不要钱。
添加BSC测试网络因为正式版测试需要消耗BNB,练手的话直接去测试网络体验吧。
打开区块链浏览器地址:https://testnet.bscscan.com/
点击网页底部添加测试网络到metamask:
查看成功添加到BSC-TESTNETWORK
网络名称:Binance Smart Chain Testnet
PRC URL:https://data-seed-prebsc-1-s1.binance.org:8545/
链ID:97
Currency Symbol:tBNB
区块浏览器:https ...
【区块链学习笔记-05】无代码调用智能合约|以及编码实现pancakeSwap的功能
有朋友跟我说,代码基础较差, 但是也想调用智能合约,通过这几天的学习,发现直接通过区块链浏览器也可以实现这个目标。
实现目标
无代码调用智能合约方法,将代币进行兑换
案例1:无代码实现——将ETH兑换成WETH
案例2:编码实现——调用uniswap方法,兑换代币,实现pancakeswap方法
实现过程
调用WETH的合约方法Deposit 方法进行兑换
准备资料WETH 合约地址 :https://rinkeby.etherscan.io/address/0xc778417e063141139fce010982780140aa0cd5ab
0xc778417e063141139fce010982780140aa0cd5ab
找到兑换方法:Deposit
案例一:尝试测试网络实现兑换不了解测试网络的老板,可以参考一下我上一篇文章
先兑换WETH,再由WETH兑换其他代币。但是你在使用uniswap合约代码的时候,合约代码会帮你操作这一步。这里我们先手动尝试下利用区块链浏览器进行合约代码的调用。
为什么要兑换WETHWETH就是“包装过的ETH”(”wrapped ETH” ...
【区块链学习笔记-04】编码实现:批量生成账号、密钥|批量转账|合约代码调用
ETH网络有正式版和测试版,正式版就是我们现在大家所熟知的ETH主网,那么我们使用的时候就会花真的money了,对于新手想开发合约来说,太贵了。还是用测试版吧,基本上就是免费的。
Ropsten(区块链浏览器)
Kovan(区块链浏览器)
Rinkeby(区块链浏览器)
Görli(区块链浏览器)
更多可以查看 https://learnblockchain.cn/books/geth/part1/config.html#chainid
我查了下说,现在用的比较多的就是Rinkeby,那么我们就以Rinkeby来开始我们的在线开发吧。点击后面的区块浏览器,可以通过区块浏览器查询链上的信息
配置小狐狸metamask先在配置里面打开显示测试网络
之后你就会看到这几个测试网络,选择Rinkeby测试网络,在Rinkeby链上利用小狐狸,创建一个eth的账号
申请ETH做测试我们有了自己的账号,但是没有eth该怎么办呢?,这些测试网络都有Faucet,可以去免费申请测试的eth。
例如在Rinkeby的测试网络环境下,我们可以找到类似的水龙头
https://faucet.rinke ...