1.Ganche 简介
1.1.什么是 Ganache ?
Ganache 是DApp的测试网络,提供图形化界面,log日志等;智能合约部署时需要连接测试网络。
Ganache 是一个运行在本地测试的网络,通过结合cpolar内网穿透软件,即可比较简单实现远程或者不同局域网进行连接访问,下面简单概括设置和连接方法
1.2.环境要求和安装
进入官网:https://trufflesuite.com/ganache/,我们下载对应的电脑系统的版本,下载安装包后,直接安装即可
安装完成后,我们打开Ganache,即可看到默认为我们生成了许多测试的地址,这些地址都是虚假的,在顶部,我们可以看到RPC服务本地连接地址,端口为:7545
1.3.Truffle 部署
修改truffle-config.js:
部署合约: truffle migrate --network dev
Deploying 'TriplecMedal'
------------------------
> transaction hash: 0x54722fd58a4e4d0f2c1c768da8f1307f757f80c99e73374a5d8c7912713c6f4a
> Blocks: 0 Seconds: 0
> contract address: 0xE7C12f2ab7CEAED9E173943180E0e0EfDF6Bc5d4
> block number: 1
> block timestamp: 1706779598
> account: 0x5fA043293aAB29EC4bd3F40623fAF06E501d160c
> balance: 99.9845385175
> gas used: 4581180 (0x45e73c)
> gas price: 3.375 gwei
> value sent: 0 ETH
> total cost: 0.0154614825 ETH
1.4.Ganache查看部署的合约
1.5. 使用abigen生成go代码
生成完整合约代码:
truffle-flattener ./contracts/medal/TriplecMedalV3.sol --output ./deployment/TriplecMedalV3.full.sol
生成abi文件
solc --abi --bin -o ../build --overwrite TriplecMedalV3.full.sol
生成go代码
abigen --bin=../build/TriplecMedalV3.bin --abi=../build/TriplecMedalV3.abi --pkg=TriplecMedalV3 --out=../script/TriplecMedalV3/TriplecMedalV3.go
1.6. 使用go代码进行合约测试
package main
import (
"fmt"
"script/TriplecMedalV3"
"testing"
"github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/crypto"
"github.com/ethereum/go-ethereum/ethclient"
)
func TestInitialize(t *testing.T) {
client, err := ethclient.Dial(config.ServerAddress)
if err != nil {
panic(err)
}
privateKey, err := crypto.HexToECDSA(config.OwnerPrivateKey)
if err != nil {
panic(err)
}
auth, err := Author(privateKey, client, 500000, 0, 0)
if err != nil {
panic(err)
}
medal, err := TriplecMedalV3.NewTriplecMedalV3(common.HexToAddress(config.ContractAddress), client)
if err != nil {
panic(err)
}
tx, err := medal.Initialize(auth, common.HexToAddress(config.OwnerPublicKey))
if err != nil {
panic("error")
}
if tx == nil {
panic("error")
}
hash := tx.Hash().Hex()
fmt.Printf("setsigner 的hash:%v", hash)
}
标签:nil,err,私有,ganache,--,TriplecMedalV3,go,panic,节点
From: https://www.cnblogs.com/zhanchenjin/p/18003314