代码拉取完成,页面将自动刷新
package main
import (
"flag"
"fmt"
"gitee.com/thubcc/blockchain/accounts"
"gitee.com/thubcc/blockchain/ethclient"
"github.com/ethereum/go-ethereum/common"
)
var (
argUrl = flag.String("url", "http://localhost:8545", "rpc raw path")
argDataDir = flag.String("dir", ".ethereum/chain", "ethereum data dir")
argKeyPass = flag.String("p", "931", "message's encryption password")
argPrefix = flag.String("u", "931", "account prefix")
argName = flag.String("name", "范闲", "Name")
argAddr = flag.String("addr", "0x69B47aD51691905D4ae1B3b61B27164C1776D08B", "contract address")
argNonce = flag.Int("n", 0, "nonce")
)
func main() {
flag.Parse()
keyConfig := accounts.NewConfig(*argDataDir,true,0)
prk,err := keyConfig.FindKey(*argPrefix,*argKeyPass)
if err != nil {
fmt.Println(err)
return
}
config := ethclient.NewConfig(nil,931,*argUrl)
ext,err := config.NewExt(prk)
if err != nil {
fmt.Println(err)
return
}
if err != nil {
fmt.Println(err)
return
}
contract, err := ext.NewContract([]byte(abi),common.HexToAddress(*argAddr))
if err != nil {
fmt.Println(err)
return
}
myname := *argName
result, err := contract.CallEx(uint64(*argNonce),"set", myname)
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Transfer",result.Hex())
}
var(
abi = `[
{
"constant": true,
"inputs": [
{
"name": "",
"type": "address"
}
],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_value",
"type": "string"
}
],
"name": "set",
"outputs": [
{
"name": "success",
"type": "bool"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "get",
"outputs": [
{
"name": "val",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
]
`
)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。