BCSkill (Block chain skill )
区块链中文技术社区

只讨论区块链底层技术
遵守一切相关法律政策!

undefined: secp256k1.RecoverPubkey

在使用 gotron-sdk 开发过程中,跨平台打包编译的时候,遇到了这个问题

# github.com/fbsobreira/gotron-sdk/pkg/keystore
vendor\github.com\fbsobreira\gotron-sdk\pkg\keystore\recover.go:17:33: undefined: secp256k1.RecoverPubkey

在 mod 添加以下代码即可

replace github.com/fbsobreira/gotron-sdk v0.0.0-20230907131216-1e824406fe8c => github.com/sunbankio/gotron-sdk v0.0.0-20231003155243-a269b0d040c3

参考:https://github.com/fbsobreira/gotron-sdk/pull/107

用于解码项目内的 EVM ABI 编码调用数据的 CLI 工具

功能

  • 查找选择器的签名。
  • 解码 ABI 编码的calldata。
  • 解码 ABI 编码的自定义错误。
  • 解码支持的库的错误日志。

https://github.com/golden-expiriensu/sel2sig

Experiment with Go + HTMX and Ethereum authentication

介绍

一个非常简单的 HTMX 与 Web3 示例:

  • 转到 HTML 模板引擎。
  • 用于 SSR 的 HTMX 解决方案。
  • 以太坊作为验证者。
  • (所有请求都采取+CSRF保护措施)。
  • SQLite3 与 sqlc 和 golang-migrate。

Github: https://github.com/Darkness4/auth-web3-htmx
Demo: https://auth-web3-htmx.mnguyen.fr/

Fast RLP encoder/decoder

https://github.com/umbracle/fastrlp

FastRlp 不使用反射来避免瓶颈。它提供可以编码或解码为任何特定类型的单值原语
编码:

a := &fastrlp.Arena{}

// Encode a uint
v := a.NewUint(300)
buf := v.MarshalTo(nil)

// Encode an array
v = a.NewArray()
v.Set(a.NewUint(300))
buf = v.MarshalTo(nil)

您可以在此处找到更多示例。

解码:

p := &fastrlp.Parser{}
v, err := p.Parse([]byte{0x01})
if err != nil {
    panic(err)
}

num, err := v.GetUint64()
if err != nil {
    panic(err)
}
fmt.Println(num)