forked from ethereum/go-ethereum
-
Notifications
You must be signed in to change notification settings - Fork 58
/
main.go
52 lines (42 loc) · 1.45 KB
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package main
import (
"context"
"fmt"
"github.com/XinFinOrg/XDPoSChain/contracts/XDCx/simulation"
"math/big"
"os"
"strconv"
"time"
"github.com/XinFinOrg/XDPoSChain/accounts/abi/bind"
"github.com/XinFinOrg/XDPoSChain/common"
"github.com/XinFinOrg/XDPoSChain/contracts/XDCx"
"github.com/XinFinOrg/XDPoSChain/crypto"
"github.com/XinFinOrg/XDPoSChain/ethclient"
)
func main() {
client, err := ethclient.Dial(simulation.RpcEndpoint)
if err != nil {
fmt.Println(err, client)
}
MainKey, _ := crypto.HexToECDSA(os.Getenv("OWNER_KEY"))
MainAddr := crypto.PubkeyToAddress(MainKey.PublicKey)
coinbase := common.HexToAddress(os.Getenv("RELAYER_COINBASE"))
fee, _ := strconv.Atoi(os.Getenv("FEE"))
nonce, _ := client.NonceAt(context.Background(), MainAddr, nil)
auth := bind.NewKeyedTransactor(MainKey)
auth.Value = big.NewInt(0) // in wei
auth.GasLimit = uint64(4000000) // in units
auth.GasPrice = big.NewInt(250000000000000)
auth.Nonce = big.NewInt(int64(nonce))
registrationContract, _ := XDCx.NewRelayerRegistration(auth, common.HexToAddress("0x0342d186212b04E69eA682b3bed8e232b6b3361a"), client)
tx, err := registrationContract.UpdateFee(coinbase, uint16(fee))
if err != nil {
fmt.Println("UpdateFee: failed!", err)
}
time.Sleep(5 * time.Second)
r, err := client.TransactionReceipt(context.Background(), tx.Hash())
if err != nil {
fmt.Println("UpdateFee: Get receipt failed", err)
}
fmt.Println("UpdateFee: Done receipt status", r.Status)
}