Skip to content

Releases: B1ue1nWh1te/Poseidon

v2.0.0

31 Oct 05:37
Compare
Choose a tag to compare
  • 解决早期版本历史遗留问题
  • 使用 Poetry 进行包环境管理
  • 使用 bandit 和 gitroll 进行代码检查
  • 尽量实现 Python 包规范,使用 snake_case 风格重写
  • 代码逻辑全面优化,删除部分不常用或无关的功能函数
  • 优化测试样例与模板库
  • 完善签名相关的功能函数
  • 全面完善项目文档内容(使用 AI 自动生成)

Poseidon v1.2.0

24 Nov 07:41
Compare
Choose a tag to compare
  • 适配web3.py新版本
  • 返回值数据类封装优化
  • 合约编译、助记词导入功能完善
  • 添加了几个简单的单位转换工具
  • 其他一些问题和细节的优化

Poseidon v1.1.5

21 Apr 02:56
Compare
Choose a tag to compare
  • [修改] 将 Logo 修改为 Seaverse 的通用 Logo 图像
  • [修复] 修正了一部分代码以适配 web3py 的最新版本
  • [新增] 支持计算通过 CREATE 和 CREATE2 方式部署的合约的地址
  • [新增] 支持对某一执行合约调用的 InputData 进行解码,得出所调用的函数及其参数值
  • [新增] 添加了测试样例文件,覆盖了 Blockchain 模块中所有的函数
  • [优化] 在模块被导入时显示当前库版本号
  • [优化] 由于获取区块时隙比较耗时,在实例化 Chain 时默认不获取时隙值
  • [优化] 现在使用 BlockchainUtils.SwitchSolidityVersion 函数指定 Solidity 版本时会显示完整精确的版本号
  • [优化] 还优化了其他的一些代码细节,看起来更加美观优雅了

Poseidon v1.1.4

29 Mar 13:07
Compare
Choose a tag to compare
  • [新增] 使用 Github Action 持续集成,自动构建新版本库并上传至 PyPI
  • [调整] 将最低支持版本设为 Python 3.9

Poseidon v1.1.3

29 Mar 07:33
Compare
Choose a tag to compare
  • [调整] 根据 web3.py v6 版本的更新变化修改部分依赖函数调用名称以保证适配最新版本

Poseidon v1.1.2

26 Mar 14:48
Compare
Choose a tag to compare
  • [修复] 将 web3.py 依赖库的版本指定为 5.31.3 ,以解决 v6 版本中删除 Web3.isConnected() 导致报错的问题

Poseidon v1.1.1

24 Mar 10:11
Compare
Choose a tag to compare
  • [新增] 发送交易时支持指定 GasPrice 的值
  • [新增] Account 类中增加 RequestAuthorizationBeforeSendTransaction 函数,用于设置是否在发送每笔交易之前请求授权确认
  • [新增] BlockchainUtils 类中增加 GweiToWei 函数,便于 Gwei 和 wei 之间的单位转换
  • [新增] BlockchainUtils 类中增加 GetFunctionSelector 函数,用于获取四字节函数选择器
  • [优化] 在不影响功能的前提下进一步压缩代码行数
  • [其他] 再次在 Goerli 网络中对所有函数进行了测试且正常

Poseidon v1.1.0

13 Mar 07:46
Compare
Choose a tag to compare

Blockchain 模块中 EVM 网络的功能已经完善至极(至少我自己已经想不出任何需要添加的功能了),因此将版本提升至 1.1.0 作为里程碑,下一阶段大概会提供 Sui | Conflux | Solana 链的交互能力,这三条与以太坊具有本质不同的区块链是我个人比较看好的,具体的就要看行业的发展趋势了。

  • [新增] 新增 Blockchain.Chain.GetBlockInformation 函数,用于获取区块信息,以提供扫块的最基本功能
  • [新增] 在获取到的交易回执信息中新加入了 R、S、V 签名数据,思路来源于当同一账户的两笔交易的签名中的 R 值相同时存在私钥泄露的问题
  • [新增] 在 README.md 中添加了 PyPi 的月下载量统计数据标签
  • [优化] 使用 typing 标准库完善了函数参数和返回值类型的声明
  • [优化] 优化了日志输出内容和返回值内容的形式,以尽可能地贴近 python 原生变量类型
  • [优化] 使用 traceback.format_exc() 替代原先的 sys.exc_info() 用作异常信息输出,现在更容易定位 BUG 产生的位置及原因了
  • [优化] 进一步简化代码,让每一行代码都有其存在的必要
  • [调整] 将原先 Blockchain.Chain.Net 成员变量更名为 Node 并添加 Eth 成员变量,以便直观的理解
  • [调整] Blockchain.Account 中不再直接提供账户地址与私钥的存储和访问,改为使用 eth_account 的实例化账户对象 Account 进行操作
  • [修复] 修复了在 Linux 系统中执行脚本时生成的日志文件路径错误的问题
  • [注意] Blockchain 模块默认开启日志记录,其中仅有 BlockchainUtils 静态类中的 CreateNewAccount 和 MnemonicToAddressAndPrivateKey 会输出私钥信息,实例化 Account 对象时私钥是保密的,新建的账户的私钥保密需求不大因此输出到日志中方便直接复制使用,但 MnemonicToAddressAndPrivateKey 是通过外部早先生成的助记词转换为私钥,这可能错误地导致有价值的账户私钥被输出并保存至日志文件中,请牢记无论何时都要使用全新生成的账户进行操作

Poseidon v1.0.7

22 Feb 09:57
Compare
Choose a tag to compare
  • [建议] 此版本功能相对完善,请尽快更新至此版本
  • [优化] 对代码进行了逐行审计的细致优化
  • [优化] 对各个函数的简介描述进行了优化
  • [优化] 对各个函数的信息输出格式进行了优化
  • [优化] 每段输出信息都将添加下划线,以便于阅读
  • [优化] 使用 pwn.pwnlib.util.iters.mbruteforce 改写 CrackSelector ,提升爆破效率(理论上可用,但受制于 Python 语言自身缺陷依旧很慢,建议使用 Go 脚本单独爆破)
  • [调整] 所有主动发出的交易都将使用 GetTransactionInformationByHash 函数来解析交易回执
  • [测试] 对 Blockchain 模块中的每个函数在 Goerli 网络中再次进行了测试且功能正常
  • [新增] 添加自动日志功能,使用 Blockchain 模块时产生的所有输出信息都将自动保存至运行目录下的 logs\Poseidon_{time}.log 文件中
  • [新增] GetBasicInformation 函数中新增区块时隙(出块时间间隔)信息的展示
  • [新增] GetTransactionInformationByHash 函数得到充分完善,新增交易索引号、交易状态、交易类型、交易行为、 Gas 消耗量、状态日志等信息的展示
  • [新增] 新设 GetTransactionInformationByBlockIdAndIndex 函数,用于根据区块 ID 和交易在块中的索引来获取交易信息
  • [新增] 新设 SignatureToRSV 和 RSVToSignature 函数,用于消息签名与 (r,s,v) 之间的相互转换

Poseidon v1.0.6

19 Feb 12:55
Compare
Choose a tag to compare
  • 修复 #1 中提到的 BUG