使用ethersjs监听网络|监听交易所USDT流入流出
前言之前web3js监听过网络,发现其实还是挺复杂的,这次使用ethersjs来监听网络,应该会简单很多,也容易理解很多。本案例使用ethers发现和监听USDT合约。
目标
学会查看合约事件
编写ethersjs监听网络
监听USDT的转账事件
ethersethers入门的话可以看 GitHub - WTFAcademy/WTFEthers官方文档:Documentation如何通过ethers实现监听呢?在ethersjs中,我们可以通过合约对象来实现监听。合约对象有一个contract.on的监听方法。
Contract 合约对象合约是已部署到区块链上的代码的抽象。一个合约可以被发送交易,这将触发其代码在交易数据的输入下运行。
创建合约对象创建合约对象需要三个参数
address :合约的地址
abi:合约的abi
provider:ethers的provider1new ethers.Contract( address , abi , signerOrProvider )
合约类的事件合约类有很多事件,具体的可以自己直接看文档:Contract - event ...
solidity本地开发环境搭建 --- ganache 介绍
前言有的时候想要实现合约的测试,或者一些合约开发,你需要去测试网领取eth,有时候faucet又没有eth可以领取,这个时候,其实你可以选择自己在本地fork一个网络,想要多少eth都可以直接生成。原理是fork一个主网的网络,并跑在你的本地。
fork主网还有一个好处,你可以直接mock现在主网上的所有环境,比如dex交易所的代币余额等,你知道合约地址,可以直接进行测试和交换使用等。
目标
安装 ganache
本地启动 ganache
web3js/ethersjs 链接 ganache
remix链接本地ganache
安装 ganacheganache 有2中模式
一种是客户端界面
一种是命令行模式
方法一:命令行安装(推荐)安装命令行ganache完整包的说明ganache - npm
1npm install ganache --global
启动GANACHE1ganache
fork主网启动以下命令会自动生成10个eth账号,每个账号带有100eth的数量。
1ganache -f https://eth-mainnet.alchemyapi.io/ ...
用代码实现取消eth主网pending状态的交易
前言最近在主网测试一些交易的时候,想用更低的gas去打包交易,但是会发现如果你gas过于低,会导致你的交易迟迟不能上链,并且一直处于pending的状态。这种状态会导致你下一笔交易无法实现。
有的pending可以长达一天甚至2天。所以要么就去加速,要么就去取消
目标
使用代码取消链上交易
实现取消链上交易取消操作比较简单,就是找到原有的交易,然后将其转账金额设置为0,然后转账的数据设置为“0x”即可
先根据你的交易hash,从etherscan获得整个交易信息
获得 from 和 to
获得noce,因为需要你是需要去覆盖他的noce,所以下面的noce是需要填一样的数据的。
然后获取对应的Gas fees, 转账一般需要最低gas是 21000
然后gasPrice去下面的网站查找,找到之后可以给高一点
Ethereum Gas Tracker
去查看当前的GAS是多少
根据上面的数据组装一下参数
12345678910let tx = { from: "0xd6cc8a078ef9081ad86210cca052923437f260c5" ...
使用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 ...