首页 > 其他分享 >go-ethereum设置signer

go-ethereum设置signer

时间:2023-10-02 21:55:57浏览次数:38  
标签:hash err CONTRACT signer BETA ethereum go

设置代码:

package main

// 签名用的公钥私钥也是采用的owner的公钥私钥

import (
	"fmt"

	"set_signer/triplec"

	"github.com/ethereum/go-ethereum/common"
	"github.com/ethereum/go-ethereum/crypto"
	"github.com/ethereum/go-ethereum/ethclient"
)

const (
	BETA_SERVER_ADDRESS             = "https://data-seed-prebsc-1-s1.bnbchain.org:8545"
	BETA_CONTRACT_ADDRESS           = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
	BETA_CONTRACT_OWNER_PUBLIC_KEY  = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
	BETA_CONTRACT_OWNER_PRIVATE_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

func GetConfig() (string, string, string, string) {
	// 默认返回 beta 配置
	return BETA_SERVER_ADDRESS, BETA_CONTRACT_ADDRESS, BETA_CONTRACT_OWNER_PUBLIC_KEY, BETA_CONTRACT_OWNER_PRIVATE_KEY
}

func main() {
	serverAddress, contractAddress, ownerPublicKey, ownerPrivateKey := GetConfig()

	client, _ := ethclient.Dial(serverAddress)
	privateKey, err := crypto.HexToECDSA(ownerPrivateKey)
	if err != nil {
		panic(err)
	}
	auth, err := Author(privateKey, client, 500000, 0)
	medal, err := triplec.NewTriplec(common.HexToAddress(contractAddress), client)

	// 设置signer,为signPrev对应的公钥
	tx, err := medal.SetSinger(auth, common.HexToAddress(ownerPublicKey))
	if err != nil {
		panic("error")
	}
	if tx == nil {
		panic("error")
	}
	hash := tx.Hash().Hex()
	fmt.Printf("setsigner 的hash:%v", hash)
}

结果:

成功与否说明:

有了hash不表示就一定是设置成功了!

设置成功的标志是对应网络的scan能够正常查询到该hash

bsc测试网络:https://data-seed-prebsc-1-s1.bnbchain.org:8545对应的scan是https://testnet.bscscan.com/

标签:hash,err,CONTRACT,signer,BETA,ethereum,go
From: https://www.cnblogs.com/zhanchenjin/p/17740483.html

相关文章

  • 点云配准算法-旋转矩阵估计-Kabsch-Umeyama algorithm
    Kabsch-Umeyamaalgorithm参考文献:https://www.wikiwand.com/en/Kabsch_algorithm面向点云配准,最小化两点集均方根误差(RMSD,rootmeansquareddeviation)来计算最佳旋转矩阵。注:该算法只能计算旋转矩阵,做点云配准还需要计算平移向量。当平移和旋转都正确计算出,该算法有......
  • javascript: Sorting Algorithms
     //SortingAlgorithmsintJavaScripthttps://www.geeksforgeeks.org/sorting-algorithms//***fileSort.js*1.BubbleSort冒泡排序法*@paramarry*@paramnszie*/functionBubbleSort(arry,nszie){vari,j,temp;varswapped;for(i=0;i......
  • 10 Rules of Good and Bad Studying 学习的10条好与坏规则
    10RulesofGoodStudying良好学习的10条法则Userecall.Afteryoureadapage,lookawayandrecallthemainideas.Highlightverylittle,andneverhighlightanythingyouhaven’tputinyourmindfirstbyrecalling.Tryrecallingmainideaswhenyouare......
  • 5.go语言函数提纲
    1本篇前瞻前端时间的繁忙,未曾更新go语言系列。由于函数非常重要,为此将本篇往前提一提,另外补充一些有关go新版本前面遗漏的部分。需要恭喜你的事情是本篇学完,go语言中基础部分已经学完一半,这意味着你可以使用go语言去解决大部分的Leetcode的题,为此后面的1篇,将带领大家去巩固go语......
  • MongoDB使用教程
    一、基本概念一)数据库(database)数据库是一个仓库,在仓库中可以存放集合二)集合(collection)集合类似于数组,在集合中可以存放文档三)文档(document)文档是数据库中的最小单位,存储和操作的内容都是文档在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或......
  • MongoDB搭建
    一、Docker-composeversion:'3'services:mongodb:image:mongocontainer_name:mongodbrestart:alwaysports:-27017:27017volumes:-/var/docker/server/mongodb/database:/data/dbenvironment:-MONGO_......
  • Go结构体深度探索:从基础到应用
    在Go语言中,结构体是核心的数据组织工具,提供了灵活的手段来处理复杂数据。本文深入探讨了结构体的定义、类型、字面量表示和使用方法,旨在为读者呈现Go结构体的全面视角。通过结构体,开发者可以实现更加模块化、高效的代码设计。这篇文章旨在为您提供关于结构体的深入理解,助您更好地......
  • GO语言实战之接口实现与方法集
    写在前面嗯,学习GO,所以有了这篇文章博文内容为《GO语言实战》读书笔记之一主要涉及知识接口是什么方法集(值接收和指针接收)多态傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比......
  • mongodb 导入导出数据
    导入数据C:\mongodb\bin>mongoimport--dbchapterenglish--collectionuserTable--filec:\userTable.jsonC:\mongodb\bin>mongoimport--dbjunxin--collectionproduct--jsonArray/jsit/junxin/junxinData.json 导出数据C:\mongodb\bin>mongoexport-hlo......
  • Go每日一库之166:go-version(语义化版本)
    今天给大家推荐的是一个版本比较工具。该工具基于语义化标准的版本号进行比较、约束以及校验。以下是go-version的基本情况:安装通过goget进行安装:gogetgithub.com/hashicorp/go-version解析和比较版本号v1,err:=version.NewVersion("1.2")给版本号增加约束并校验v1......