Commit 82ca30f8 authored by QM's avatar QM

delete ImportEthValidatorPrivateKey MakeNewProphecyClaim

parent 1b8b3721
...@@ -14,14 +14,11 @@ CLIC="./ebcli_C" ...@@ -14,14 +14,11 @@ CLIC="./ebcli_C"
CLID="./ebcli_D" CLID="./ebcli_D"
chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
#chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
# validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"] # validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"]
ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e" ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400" ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400"
ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e" ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e"
ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b" ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b"
# 新增地址 chain33 需要导入地址 转入 10 bty当收费费 # 新增地址 chain33 需要导入地址 转入 10 bty当收费费
chain33Validator1="1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV" chain33Validator1="1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV"
chain33Validator2="155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6" chain33Validator2="155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6"
...@@ -31,11 +28,11 @@ chain33ValidatorKey1="0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f ...@@ -31,11 +28,11 @@ chain33ValidatorKey1="0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f
chain33ValidatorKey2="0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66" chain33ValidatorKey2="0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66"
chain33ValidatorKey3="0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be" chain33ValidatorKey3="0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be"
chain33ValidatorKey4="0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5" chain33ValidatorKey4="0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5"
ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635" ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71" ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf" ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08" ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
maturityDegree=10 maturityDegree=10
tokenAddrBty="" tokenAddrBty=""
...@@ -183,15 +180,6 @@ function EthImportKey() { ...@@ -183,15 +180,6 @@ function EthImportKey() {
result=$(${CLID} relayer ethereum import_chain33privatekey -k "${chain33ValidatorKey4}") result=$(${CLID} relayer ethereum import_chain33privatekey -k "${chain33ValidatorKey4}")
cli_ret "${result}" "import_chain33privatekey" cli_ret "${result}" "import_chain33privatekey"
result=$(${CLIA} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "import_ethprivatekey"
result=$(${CLIB} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyB}")
cli_ret "${result}" "import_ethprivatekeyB"
result=$(${CLIC} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyC}")
cli_ret "${result}" "import_ethprivatekeyC"
result=$(${CLID} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyD}")
cli_ret "${result}" "import_ethprivatekeyD"
result=$(${CLIA} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyA}") result=$(${CLIA} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "A relayer chain33 import_privatekey" cli_ret "${result}" "A relayer chain33 import_privatekey"
result=$(${CLIB} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyB}") result=$(${CLIB} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyB}")
......
...@@ -11,21 +11,16 @@ CLIB="./ebcli_B" ...@@ -11,21 +11,16 @@ CLIB="./ebcli_B"
CLIC="./ebcli_C" CLIC="./ebcli_C"
CLID="./ebcli_D" CLID="./ebcli_D"
#docker_chain33_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' build_chain33_1)
#Chain33Cli="$GOPATH/src/github.com/33cn/plugin/build/chain33-cli --rpc_laddr http://${docker_chain33_ip}:8801"
docker_chain33_ip="" docker_chain33_ip=""
Chain33Cli="" Chain33Cli=""
Chain33Cli="docker exec ${NODE3} /root/chain33-cli" Chain33Cli="docker exec ${NODE3} /root/chain33-cli"
chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
#chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
# validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"] # validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"]
ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e" ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400" ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400"
ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e" ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e"
ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b" ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b"
# 新增地址 chain33 需要导入地址 转入 10 bty当收费费 # 新增地址 chain33 需要导入地址 转入 10 bty当收费费
chain33Validator1="1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV" chain33Validator1="1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV"
chain33Validator2="155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6" chain33Validator2="155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6"
...@@ -35,11 +30,11 @@ chain33ValidatorKey1="0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f ...@@ -35,11 +30,11 @@ chain33ValidatorKey1="0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f
chain33ValidatorKey2="0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66" chain33ValidatorKey2="0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66"
chain33ValidatorKey3="0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be" chain33ValidatorKey3="0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be"
chain33ValidatorKey4="0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5" chain33ValidatorKey4="0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5"
ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635" ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71" ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf" ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08" ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
maturityDegree=10 maturityDegree=10
tokenAddrBty="" tokenAddrBty=""
tokenAddr="" tokenAddr=""
...@@ -103,15 +98,6 @@ function EthImportKey() { ...@@ -103,15 +98,6 @@ function EthImportKey() {
result=$(${CLID} relayer ethereum import_chain33privatekey -k "${chain33ValidatorKey4}") result=$(${CLID} relayer ethereum import_chain33privatekey -k "${chain33ValidatorKey4}")
cli_ret "${result}" "import_chain33privatekey" cli_ret "${result}" "import_chain33privatekey"
result=$(${CLIA} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "import_ethprivatekey"
result=$(${CLIB} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyB}")
cli_ret "${result}" "import_ethprivatekeyB"
result=$(${CLIC} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyC}")
cli_ret "${result}" "import_ethprivatekeyC"
result=$(${CLID} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyD}")
cli_ret "${result}" "import_ethprivatekeyD"
result=$(${CLIA} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyA}") result=$(${CLIA} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "A relayer chain33 import_privatekey" cli_ret "${result}" "A relayer chain33 import_privatekey"
result=$(${CLIB} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyB}") result=$(${CLIB} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyB}")
......
...@@ -12,8 +12,6 @@ Chain33_CLI="" ...@@ -12,8 +12,6 @@ Chain33_CLI=""
Ethsender="0xa4ea64a583f6e51c3799335b28a8f0529570a635" Ethsender="0xa4ea64a583f6e51c3799335b28a8f0529570a635"
#ethSender0PrivateKey="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
privateKeys[0]="8656d2bc732a8a816a461ba5e2d8aac7c7f85c26a813df30d5327210465eb230" privateKeys[0]="8656d2bc732a8a816a461ba5e2d8aac7c7f85c26a813df30d5327210465eb230"
privateKeys[1]="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e" privateKeys[1]="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
privateKeys[2]="1385016736f7379884763f4a39811d1391fa156a7ca017be6afffa52bb327695" privateKeys[2]="1385016736f7379884763f4a39811d1391fa156a7ca017be6afffa52bb327695"
......
...@@ -23,7 +23,6 @@ func EthereumRelayerCmd() *cobra.Command { ...@@ -23,7 +23,6 @@ func EthereumRelayerCmd() *cobra.Command {
cmd.AddCommand( cmd.AddCommand(
ImportChain33PrivateKeyCmd(), ImportChain33PrivateKeyCmd(),
ImportEthValidatorPrivateKeyCmd(),
GenEthPrivateKeyCmd(), GenEthPrivateKeyCmd(),
ShowValidatorsAddrCmd(), ShowValidatorsAddrCmd(),
ShowChain33TxsHashCmd(), ShowChain33TxsHashCmd(),
...@@ -35,7 +34,6 @@ func EthereumRelayerCmd() *cobra.Command { ...@@ -35,7 +34,6 @@ func EthereumRelayerCmd() *cobra.Command {
//////auxiliary/////// //////auxiliary///////
CreateBridgeTokenCmd(), CreateBridgeTokenCmd(),
CreateEthereumTokenCmd(), CreateEthereumTokenCmd(),
MakeNewProphecyClaimCmd(),
GetBalanceCmd(), GetBalanceCmd(),
IsProphecyPendingCmd(), IsProphecyPendingCmd(),
MintErc20Cmd(), MintErc20Cmd(),
...@@ -79,26 +77,6 @@ func importChain33Privatekey(cmd *cobra.Command, args []string) { ...@@ -79,26 +77,6 @@ func importChain33Privatekey(cmd *cobra.Command, args []string) {
ctx.Run() ctx.Run()
} }
func ImportEthValidatorPrivateKeyCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "import_ethprivatekey",
Short: "import ethereum's validator private key ",
Run: importEthValidtorPrivatekey,
}
addImportPrivateKeyFlags(cmd)
return cmd
}
func importEthValidtorPrivatekey(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
privateKey, _ := cmd.Flags().GetString("key")
params := privateKey
var res rpctypes.Reply
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Manager.ImportEthValidatorPrivateKey", params, &res)
ctx.Run()
}
func GenEthPrivateKeyCmd() *cobra.Command { func GenEthPrivateKeyCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "create_eth_key", Use: "create_eth_key",
...@@ -589,70 +567,6 @@ func ShowBridgeRegistryAddr(cmd *cobra.Command, args []string) { ...@@ -589,70 +567,6 @@ func ShowBridgeRegistryAddr(cmd *cobra.Command, args []string) {
ctx.Run() ctx.Run()
} }
func MakeNewProphecyClaimCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "prophecy",
Short: "Make New Prophecy Claim",
Run: MakeNewProphecyClaim,
}
MakeNewProphecyClaimFlags(cmd)
return cmd
}
func MakeNewProphecyClaimFlags(cmd *cobra.Command) {
cmd.Flags().Uint32P("claim", "c", uint32(1), "claim type, 1 denote burn, and 2 denotes lock")
_ = cmd.MarkFlagRequired("claim")
cmd.Flags().StringP("chain33Sender", "a", "", "Chain33Sender")
_ = cmd.MarkFlagRequired("chain33Sender")
cmd.Flags().StringP("token", "t", "", "token address,optional, nil for ETH")
cmd.Flags().StringP("symbol", "s", "", "token symbol")
_ = cmd.MarkFlagRequired("symbol")
cmd.Flags().StringP("ethReceiver", "r", "", "eth Receiver")
_ = cmd.MarkFlagRequired("ethReceiver")
cmd.Flags().Float64P("amount", "m", 0, "amount")
_ = cmd.MarkFlagRequired("amount")
cmd.Flags().StringP("hash", "i", "", "chain33 tx hash")
_ = cmd.MarkFlagRequired("hash")
}
func MakeNewProphecyClaim(cmd *cobra.Command, args []string) {
rpcLaddr, _ := cmd.Flags().GetString("rpc_laddr")
claimType, _ := cmd.Flags().GetUint32("claim")
if claimType != uint32(1) && claimType != uint32(2) {
fmt.Println("Wrong claim type")
return
}
chain33Sender, _ := cmd.Flags().GetString("chain33Sender")
tokenAddr, _ := cmd.Flags().GetString("token")
symbol, _ := cmd.Flags().GetString("symbol")
ethReceiver, _ := cmd.Flags().GetString("ethReceiver")
amount, _ := cmd.Flags().GetFloat64("amount")
txhash, _ := cmd.Flags().GetString("hash")
nodeAddr, _ := cmd.Flags().GetString("node_addr")
d, err := utils.GetDecimalsFromNode(tokenAddr, nodeAddr)
if err != nil {
fmt.Println("get decimals error")
return
}
realAmount := types.ToWei(amount, d)
para := ebTypes.NewProphecyClaim{
ClaimType: claimType,
Chain33Sender: chain33Sender,
TokenAddr: tokenAddr,
Symbol: symbol,
EthReceiver: ethReceiver,
Amount: realAmount.String(),
TxHash: txhash,
}
var res rpctypes.Reply
ctx := jsonclient.NewRPCCtx(rpcLaddr, "Manager.MakeNewProphecyClaim", para, &res)
ctx.Run()
}
func GetBalanceCmd() *cobra.Command { func GetBalanceCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "balance", Use: "balance",
......
...@@ -2,7 +2,6 @@ package ethtxs ...@@ -2,7 +2,6 @@ package ethtxs
import ( import (
"context" "context"
"crypto/ecdsa"
"errors" "errors"
"math/big" "math/big"
...@@ -442,42 +441,3 @@ func LockEthErc20AssetAsync(ownerPrivateKeyStr, tokenAddrStr, chain33Receiver st ...@@ -442,42 +441,3 @@ func LockEthErc20AssetAsync(ownerPrivateKeyStr, tokenAddrStr, chain33Receiver st
} }
return tx.Hash().String(), nil return tx.Hash().String(), nil
} }
/////////////////NewProphecyClaim////////////////
func MakeNewProphecyClaim(newProphecyClaimPara *NewProphecyClaimPara, backend bind.ContractBackend, privateKey *ecdsa.PrivateKey, transactor common.Address, x2EthContracts *X2EthContracts) (string, error) {
var prepareDone bool
authVali, err := PrepareAuth(backend, privateKey, transactor)
if nil != err {
return "", err
}
prepareDone = true
defer func() {
if err != nil && prepareDone {
_, _ = revokeNonce(transactor)
}
}()
amount := newProphecyClaimPara.Amount
ethReceiver := newProphecyClaimPara.EthReceiver
// Generate rawHash using ProphecyClaim data
claimID := crypto.Keccak256Hash(newProphecyClaimPara.Txhash, newProphecyClaimPara.Chain33Sender, newProphecyClaimPara.EthReceiver.Bytes(), newProphecyClaimPara.TokenAddr.Bytes(), amount.Bytes())
// Sign the hash using the active validator's private key
signature, err := SignClaim4Eth(claimID, privateKey)
if nil != err {
return "", err
}
tx, err := x2EthContracts.Oracle.NewOracleClaim(authVali, newProphecyClaimPara.ClaimType, newProphecyClaimPara.Chain33Sender, ethReceiver, newProphecyClaimPara.TokenAddr, newProphecyClaimPara.Symbol, amount, claimID, signature)
if nil != err {
return "", err
}
err = waitEthTxFinished(backend.(*ethclient.Client), tx.Hash(), "MakeNewProphecyClaim")
if nil != err {
return "", err
}
return tx.Hash().String(), nil
}
...@@ -8,7 +8,6 @@ import ( ...@@ -8,7 +8,6 @@ import (
"sync" "sync"
"time" "time"
ebrelayerTypes "github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/types"
"github.com/ethereum/go-ethereum" "github.com/ethereum/go-ethereum"
"github.com/ethereum/go-ethereum/accounts/abi/bind" "github.com/ethereum/go-ethereum/accounts/abi/bind"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
...@@ -65,19 +64,6 @@ func prefixMessage(message common.Hash, key *ecdsa.PrivateKey) ([]byte, []byte) ...@@ -65,19 +64,6 @@ func prefixMessage(message common.Hash, key *ecdsa.PrivateKey) ([]byte, []byte)
return sig, prefixed return sig, prefixed
} }
// LoadSender : uses the validator's private key to load the validator's address
func LoadSender(privateKey *ecdsa.PrivateKey) (address common.Address, err error) {
// Parse public key
publicKey := privateKey.Public()
publicKeyECDSA, ok := publicKey.(*ecdsa.PublicKey)
if !ok {
return common.Address{}, ebrelayerTypes.ErrPublicKeyType
}
fromAddress := crypto.PubkeyToAddress(*publicKeyECDSA)
return fromAddress, nil
}
func getNonce(sender common.Address, backend bind.ContractBackend) (*big.Int, error) { func getNonce(sender common.Address, backend bind.ContractBackend) (*big.Int, error) {
if nonceMutex, exist := addr2Nonce[sender]; exist { if nonceMutex, exist := addr2Nonce[sender]; exist {
nonceMutex.rw.Lock() nonceMutex.rw.Lock()
......
...@@ -23,7 +23,6 @@ import ( ...@@ -23,7 +23,6 @@ import (
) )
var ( var (
ethAccountKey = []byte("EthAccount4EthRelayer")
chain33AccountKey = []byte("Chain33Account4EthRelayer") chain33AccountKey = []byte("Chain33Account4EthRelayer")
start = int(1) start = int(1)
) )
...@@ -38,42 +37,31 @@ type Key struct { ...@@ -38,42 +37,31 @@ type Key struct {
} }
func (ethRelayer *Relayer4Ethereum) NewAccount(passphrase string) (privateKeystr, addr string, err error) { func (ethRelayer *Relayer4Ethereum) NewAccount(passphrase string) (privateKeystr, addr string, err error) {
var privateKey *ecdsa.PrivateKey _, privateKeystr, addr, err = newKeyAndStore(ethRelayer.db, crand.Reader, passphrase)
privateKey, privateKeystr, addr, err = newKeyAndStore(ethRelayer.db, crand.Reader, passphrase)
if err != nil { if err != nil {
return "", "", err return "", "", err
} }
ethRelayer.SetPrivateKey4Ethereum(privateKey)
return return
} }
func (ethRelayer *Relayer4Ethereum) GetAccount(passphrase string) (privateKey, addr string, err error) { func (ethRelayer *Relayer4Ethereum) GetAccount(passphrase string) (privateKey, addr string, err error) {
accountInfo, err := ethRelayer.db.Get(ethAccountKey) accountInfo, err := ethRelayer.db.Get(chain33AccountKey)
if nil != err { if nil != err {
return "", "", err return "", "", err
} }
ethAccount := &x2ethTypes.Account4Relayer{} Chain33Account := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil != err { if err := chain33Types.Decode(accountInfo, Chain33Account); nil != err {
return "", "", err return "", "", err
} }
decryptered := wcom.CBCDecrypterPrivkey([]byte(passphrase), ethAccount.Privkey) decryptered := wcom.CBCDecrypterPrivkey([]byte(passphrase), Chain33Account.Privkey)
privateKey = chain33Common.ToHex(decryptered) privateKey = chain33Common.ToHex(decryptered)
addr = ethAccount.Addr addr = Chain33Account.Addr
return return
} }
func (ethRelayer *Relayer4Ethereum) GetValidatorAddr() (validators x2ethTypes.ValidatorAddr4EthRelayer, err error) { func (ethRelayer *Relayer4Ethereum) GetValidatorAddr() (validators x2ethTypes.ValidatorAddr4EthRelayer, err error) {
var ethAccountAddr string
var chain33AccountAddr string var chain33AccountAddr string
accountInfo, err := ethRelayer.db.Get(ethAccountKey) accountInfo, err := ethRelayer.db.Get(chain33AccountKey)
if nil == err {
ethAccount := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil == err {
ethAccountAddr = ethAccount.Addr
}
}
accountInfo, err = ethRelayer.db.Get(chain33AccountKey)
if nil == err { if nil == err {
ethAccount := &x2ethTypes.Account4Relayer{} ethAccount := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil == err { if err := chain33Types.Decode(accountInfo, ethAccount); nil == err {
...@@ -81,40 +69,22 @@ func (ethRelayer *Relayer4Ethereum) GetValidatorAddr() (validators x2ethTypes.Va ...@@ -81,40 +69,22 @@ func (ethRelayer *Relayer4Ethereum) GetValidatorAddr() (validators x2ethTypes.Va
} }
} }
if 0 == len(chain33AccountAddr) && 0 == len(ethAccountAddr) { if 0 == len(chain33AccountAddr) {
return x2ethTypes.ValidatorAddr4EthRelayer{}, x2ethTypes.ErrNoValidatorConfigured return x2ethTypes.ValidatorAddr4EthRelayer{}, x2ethTypes.ErrNoValidatorConfigured
} }
validators = x2ethTypes.ValidatorAddr4EthRelayer{ validators = x2ethTypes.ValidatorAddr4EthRelayer{
EthValidator: ethAccountAddr,
Chain33Validator: chain33AccountAddr, Chain33Validator: chain33AccountAddr,
} }
return return
} }
func (ethRelayer *Relayer4Ethereum) RestorePrivateKeys(passPhase string) (err error) { func (ethRelayer *Relayer4Ethereum) RestorePrivateKeys(passPhase string) (err error) {
accountInfo, err := ethRelayer.db.Get(ethAccountKey) accountInfo, err := ethRelayer.db.Get(chain33AccountKey)
if nil == err {
ethAccount := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil == err {
decryptered := wcom.CBCDecrypterPrivkey([]byte(passPhase), ethAccount.Privkey)
privateKey, err := crypto.ToECDSA(decryptered)
if nil != err {
errInfo := fmt.Sprintf("Failed to ToECDSA due to:%s", err.Error())
relayerLog.Info("RestorePrivateKeys", "Failed to ToECDSA:", err.Error())
return errors.New(errInfo)
}
ethRelayer.rwLock.Lock()
ethRelayer.privateKey4Ethereum = privateKey
ethRelayer.rwLock.Unlock()
}
}
accountInfo, err = ethRelayer.db.Get(chain33AccountKey)
if nil == err { if nil == err {
ethAccount := &x2ethTypes.Account4Relayer{} Chain33Account := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil == err { if err := chain33Types.Decode(accountInfo, Chain33Account); nil == err {
decryptered := wcom.CBCDecrypterPrivkey([]byte(passPhase), ethAccount.Privkey) decryptered := wcom.CBCDecrypterPrivkey([]byte(passPhase), Chain33Account.Privkey)
var driver secp256k1.Driver var driver secp256k1.Driver
priKey, err := driver.PrivKeyFromBytes(decryptered) priKey, err := driver.PrivKeyFromBytes(decryptered)
if nil != err { if nil != err {
...@@ -128,7 +98,7 @@ func (ethRelayer *Relayer4Ethereum) RestorePrivateKeys(passPhase string) (err er ...@@ -128,7 +98,7 @@ func (ethRelayer *Relayer4Ethereum) RestorePrivateKeys(passPhase string) (err er
} }
} }
if ethRelayer.privateKey4Ethereum != nil && nil != ethRelayer.privateKey4Chain33 { if nil != ethRelayer.privateKey4Chain33 {
ethRelayer.unlockchan <- start ethRelayer.unlockchan <- start
} }
...@@ -136,20 +106,20 @@ func (ethRelayer *Relayer4Ethereum) RestorePrivateKeys(passPhase string) (err er ...@@ -136,20 +106,20 @@ func (ethRelayer *Relayer4Ethereum) RestorePrivateKeys(passPhase string) (err er
} }
func (ethRelayer *Relayer4Ethereum) StoreAccountWithNewPassphase(newPassphrase, oldPassphrase string) error { func (ethRelayer *Relayer4Ethereum) StoreAccountWithNewPassphase(newPassphrase, oldPassphrase string) error {
accountInfo, err := ethRelayer.db.Get(ethAccountKey) accountInfo, err := ethRelayer.db.Get(chain33AccountKey)
if nil != err { if nil != err {
relayerLog.Info("StoreAccountWithNewPassphase", "pls check account is created already, err", err) relayerLog.Info("StoreAccountWithNewPassphase", "pls check account is created already, err", err)
return err return err
} }
ethAccount := &x2ethTypes.Account4Relayer{} Chain33Account := &x2ethTypes.Account4Relayer{}
if err := chain33Types.Decode(accountInfo, ethAccount); nil != err { if err := chain33Types.Decode(accountInfo, Chain33Account); nil != err {
return err return err
} }
decryptered := wcom.CBCDecrypterPrivkey([]byte(oldPassphrase), ethAccount.Privkey) decryptered := wcom.CBCDecrypterPrivkey([]byte(oldPassphrase), Chain33Account.Privkey)
encryptered := wcom.CBCEncrypterPrivkey([]byte(newPassphrase), decryptered) encryptered := wcom.CBCEncrypterPrivkey([]byte(newPassphrase), decryptered)
ethAccount.Privkey = encryptered Chain33Account.Privkey = encryptered
encodedInfo := chain33Types.Encode(ethAccount) encodedInfo := chain33Types.Encode(Chain33Account)
return ethRelayer.db.SetSync(ethAccountKey, encodedInfo) return ethRelayer.db.SetSync(chain33AccountKey, encodedInfo)
} }
func (ethRelayer *Relayer4Ethereum) ImportChain33PrivateKey(passphrase, privateKeyStr string) error { func (ethRelayer *Relayer4Ethereum) ImportChain33PrivateKey(passphrase, privateKeyStr string) error {
...@@ -164,9 +134,7 @@ func (ethRelayer *Relayer4Ethereum) ImportChain33PrivateKey(passphrase, privateK ...@@ -164,9 +134,7 @@ func (ethRelayer *Relayer4Ethereum) ImportChain33PrivateKey(passphrase, privateK
} }
ethRelayer.privateKey4Chain33 = priKey ethRelayer.privateKey4Chain33 = priKey
if nil != ethRelayer.privateKey4Ethereum {
ethRelayer.unlockchan <- start ethRelayer.unlockchan <- start
}
addr, err := pubKeyToAddress4Bty(priKey.PubKey().Bytes()) addr, err := pubKeyToAddress4Bty(priKey.PubKey().Bytes())
if nil != err { if nil != err {
return err return err
...@@ -181,33 +149,6 @@ func (ethRelayer *Relayer4Ethereum) ImportChain33PrivateKey(passphrase, privateK ...@@ -181,33 +149,6 @@ func (ethRelayer *Relayer4Ethereum) ImportChain33PrivateKey(passphrase, privateK
return ethRelayer.db.SetSync(chain33AccountKey, encodedInfo) return ethRelayer.db.SetSync(chain33AccountKey, encodedInfo)
} }
func (ethRelayer *Relayer4Ethereum) ImportEthValidatorPrivateKey(passphrase, privateKeyStr string) error {
privateKeySli, err := chain33Common.FromHex(privateKeyStr)
if nil != err {
return err
}
privateKeyECDSA, err := crypto.ToECDSA(privateKeySli)
if nil != err {
errInfo := fmt.Sprintf("Failed to ToECDSA due to:%s", err.Error())
relayerLog.Info("RestorePrivateKeys", "Failed to ToECDSA:", err.Error())
return errors.New(errInfo)
}
ethRelayer.rwLock.Lock()
ethRelayer.privateKey4Ethereum = privateKeyECDSA
ethRelayer.rwLock.Unlock()
if nil != ethRelayer.privateKey4Chain33 {
ethRelayer.unlockchan <- start
}
Encryptered := wcom.CBCEncrypterPrivkey([]byte(passphrase), privateKeySli)
ethAccount := &x2ethTypes.Account4Relayer{
Privkey: Encryptered,
Addr: crypto.PubkeyToAddress(privateKeyECDSA.PublicKey).String(),
}
encodedInfo := chain33Types.Encode(ethAccount)
return ethRelayer.db.SetSync(ethAccountKey, encodedInfo)
}
//checksum: first four bytes of double-SHA256. //checksum: first four bytes of double-SHA256.
func checksum(input []byte) (cksum [4]byte) { func checksum(input []byte) (cksum [4]byte) {
h := sha256.New() h := sha256.New()
...@@ -266,8 +207,7 @@ func newKeyAndStore(db dbm.DB, rand io.Reader, passphrase string) (privateKey *e ...@@ -266,8 +207,7 @@ func newKeyAndStore(db dbm.DB, rand io.Reader, passphrase string) (privateKey *e
Privkey: Encryptered, Privkey: Encryptered,
Addr: key.Address.Hex(), Addr: key.Address.Hex(),
} }
encodedInfo := chain33Types.Encode(ethAccount) _ = db
_ = db.SetSync(ethAccountKey, encodedInfo)
privateKeyStr = chain33Common.ToHex(privateKeyBytes) privateKeyStr = chain33Common.ToHex(privateKeyBytes)
addr = ethAccount.Addr addr = ethAccount.Addr
......
...@@ -42,12 +42,9 @@ type Relayer4Ethereum struct { ...@@ -42,12 +42,9 @@ type Relayer4Ethereum struct {
provider string provider string
clientChainID *big.Int clientChainID *big.Int
bridgeRegistryAddr common.Address bridgeRegistryAddr common.Address
//validatorName string
db dbm.DB db dbm.DB
//passphase string
rwLock sync.RWMutex rwLock sync.RWMutex
privateKey4Chain33 chain33Crypto.PrivKey privateKey4Chain33 chain33Crypto.PrivKey
privateKey4Ethereum *ecdsa.PrivateKey
ethValidator common.Address ethValidator common.Address
totalTx4Eth2Chain33 int64 totalTx4Eth2Chain33 int64
totalTx4Chain33ToEth int64 totalTx4Chain33ToEth int64
...@@ -110,15 +107,6 @@ func StartEthereumRelayer(rpcURL2Chain33 string, db dbm.DB, provider, registryAd ...@@ -110,15 +107,6 @@ func StartEthereumRelayer(rpcURL2Chain33 string, db dbm.DB, provider, registryAd
return relayer return relayer
} }
func (ethRelayer *Relayer4Ethereum) SetPrivateKey4Ethereum(privateKey4Ethereum *ecdsa.PrivateKey) {
ethRelayer.rwLock.Lock()
defer ethRelayer.rwLock.Unlock()
ethRelayer.privateKey4Ethereum = privateKey4Ethereum
if ethRelayer.privateKey4Chain33 != nil {
ethRelayer.unlockchan <- start
}
}
func (ethRelayer *Relayer4Ethereum) recoverDeployPara() (err error) { func (ethRelayer *Relayer4Ethereum) recoverDeployPara() (err error) {
if nil == ethRelayer.deployInfo { if nil == ethRelayer.deployInfo {
return nil return nil
...@@ -141,24 +129,24 @@ func (ethRelayer *Relayer4Ethereum) recoverDeployPara() (err error) { ...@@ -141,24 +129,24 @@ func (ethRelayer *Relayer4Ethereum) recoverDeployPara() (err error) {
func (ethRelayer *Relayer4Ethereum) DeployContrcts() (bridgeRegistry string, err error) { func (ethRelayer *Relayer4Ethereum) DeployContrcts() (bridgeRegistry string, err error) {
bridgeRegistry = "" bridgeRegistry = ""
if nil == ethRelayer.deployInfo { if nil == ethRelayer.deployInfo {
return bridgeRegistry, errors.New("No deploy info configured yet") return bridgeRegistry, errors.New("no deploy info configured yet")
} }
deployPrivateKey, err := crypto.ToECDSA(common.FromHex(ethRelayer.deployInfo.DeployerPrivateKey)) deployPrivateKey, err := crypto.ToECDSA(common.FromHex(ethRelayer.deployInfo.DeployerPrivateKey))
if nil != err { if nil != err {
return bridgeRegistry, err return bridgeRegistry, err
} }
if len(ethRelayer.deployInfo.ValidatorsAddr) != len(ethRelayer.deployInfo.InitPowers) { if len(ethRelayer.deployInfo.ValidatorsAddr) != len(ethRelayer.deployInfo.InitPowers) {
return bridgeRegistry, errors.New("Not same number for validator address and power") return bridgeRegistry, errors.New("not same number for validator address and power")
} }
if len(ethRelayer.deployInfo.ValidatorsAddr) < 3 { if len(ethRelayer.deployInfo.ValidatorsAddr) < 3 {
return bridgeRegistry, errors.New("The number of validator must be not less than 3") return bridgeRegistry, errors.New("the number of validator must be not less than 3")
} }
nilAddr := common.Address{} nilAddr := common.Address{}
//已经设置了注册合约地址,说明已经部署了相关的合约,不再重复部署 //已经设置了注册合约地址,说明已经部署了相关的合约,不再重复部署
if ethRelayer.bridgeRegistryAddr != nilAddr { if ethRelayer.bridgeRegistryAddr != nilAddr {
return bridgeRegistry, errors.New("Contract deployed already") return bridgeRegistry, errors.New("contract deployed already")
} }
var validators []common.Address var validators []common.Address
...@@ -211,7 +199,7 @@ func (ethRelayer *Relayer4Ethereum) GetBalance(tokenAddr, owner string) (string, ...@@ -211,7 +199,7 @@ func (ethRelayer *Relayer4Ethereum) GetBalance(tokenAddr, owner string) (string,
func (ethRelayer *Relayer4Ethereum) ShowBridgeBankAddr() (string, error) { func (ethRelayer *Relayer4Ethereum) ShowBridgeBankAddr() (string, error) {
if nil == ethRelayer.x2EthDeployInfo { if nil == ethRelayer.x2EthDeployInfo {
return "", errors.New("The relayer is not started yes") return "", errors.New("the relayer is not started yes")
} }
return ethRelayer.x2EthDeployInfo.BridgeBank.Address.String(), nil return ethRelayer.x2EthDeployInfo.BridgeBank.Address.String(), nil
...@@ -219,7 +207,7 @@ func (ethRelayer *Relayer4Ethereum) ShowBridgeBankAddr() (string, error) { ...@@ -219,7 +207,7 @@ func (ethRelayer *Relayer4Ethereum) ShowBridgeBankAddr() (string, error) {
func (ethRelayer *Relayer4Ethereum) ShowBridgeRegistryAddr() (string, error) { func (ethRelayer *Relayer4Ethereum) ShowBridgeRegistryAddr() (string, error) {
if nil == ethRelayer.x2EthDeployInfo { if nil == ethRelayer.x2EthDeployInfo {
return "", errors.New("The relayer is not started yes") return "", errors.New("the relayer is not started yes")
} }
return ethRelayer.x2EthDeployInfo.BridgeRegistry.Address.String(), nil return ethRelayer.x2EthDeployInfo.BridgeRegistry.Address.String(), nil
...@@ -241,10 +229,6 @@ func (ethRelayer *Relayer4Ethereum) IsProphecyPending(claimID [32]byte) (bool, e ...@@ -241,10 +229,6 @@ func (ethRelayer *Relayer4Ethereum) IsProphecyPending(claimID [32]byte) (bool, e
return ethtxs.IsProphecyPending(claimID, ethRelayer.ethValidator, ethRelayer.x2EthContracts.Chain33Bridge) return ethtxs.IsProphecyPending(claimID, ethRelayer.ethValidator, ethRelayer.x2EthContracts.Chain33Bridge)
} }
func (ethRelayer *Relayer4Ethereum) MakeNewProphecyClaim(newProphecyClaimPara *ethtxs.NewProphecyClaimPara) (string, error) {
return ethtxs.MakeNewProphecyClaim(newProphecyClaimPara, ethRelayer.backend, ethRelayer.privateKey4Ethereum, ethRelayer.ethValidator, ethRelayer.x2EthContracts)
}
func (ethRelayer *Relayer4Ethereum) CreateBridgeToken(symbol string) (string, error) { func (ethRelayer *Relayer4Ethereum) CreateBridgeToken(symbol string) (string, error) {
return ethtxs.CreateBridgeToken(symbol, ethRelayer.backend, ethRelayer.operatorInfo, ethRelayer.x2EthDeployInfo, ethRelayer.x2EthContracts) return ethtxs.CreateBridgeToken(symbol, ethRelayer.backend, ethRelayer.operatorInfo, ethRelayer.x2EthDeployInfo, ethRelayer.x2EthContracts)
} }
...@@ -349,12 +333,7 @@ func (ethRelayer *Relayer4Ethereum) proc() { ...@@ -349,12 +333,7 @@ func (ethRelayer *Relayer4Ethereum) proc() {
continueFailCount := int32(0) continueFailCount := int32(0)
for range ethRelayer.unlockchan { for range ethRelayer.unlockchan {
relayerLog.Info("Received ethRelayer.unlockchan") relayerLog.Info("Received ethRelayer.unlockchan")
if nil != ethRelayer.privateKey4Ethereum && nil != ethRelayer.privateKey4Chain33 && nilAddr != ethRelayer.bridgeRegistryAddr { if nil != ethRelayer.privateKey4Chain33 && nilAddr != ethRelayer.bridgeRegistryAddr {
ethRelayer.ethValidator, err = ethtxs.LoadSender(ethRelayer.privateKey4Ethereum)
if nil != err {
errinfo := fmt.Sprintf("Failed to load validator for ethereum due to:%s", err.Error())
panic(errinfo)
}
relayerLog.Info("Ethereum relayer starts to run...") relayerLog.Info("Ethereum relayer starts to run...")
ethRelayer.prePareSubscribeEvent() ethRelayer.prePareSubscribeEvent()
//向bridgeBank订阅事件 //向bridgeBank订阅事件
...@@ -571,14 +550,14 @@ func (ethRelayer *Relayer4Ethereum) filterLogEventsProc(logchan chan<- types.Log ...@@ -571,14 +550,14 @@ func (ethRelayer *Relayer4Ethereum) filterLogEventsProc(logchan chan<- types.Log
relayerLog.Info(title, "received logs with number", len(logs), relayerLog.Info(title, "received logs with number", len(logs),
"start height", query.FromBlock.String(), "stop height", query.ToBlock.String()) "start height", query.FromBlock.String(), "stop height", query.ToBlock.String())
for _, log := range logs { for _, logv := range logs {
relayerLog.Info(title, "received log with topics", log.Topics[0].Hex(), "BlockNumber", log.BlockNumber) relayerLog.Info(title, "received log with topics", logv.Topics[0].Hex(), "BlockNumber", logv.BlockNumber)
if _, exist := eventSig[log.Topics[0].Hex()]; !exist { if _, exist := eventSig[logv.Topics[0].Hex()]; !exist {
continue continue
} }
logchan <- log logchan <- logv
relayerLog.Info(title, "get unprocessed log with topic:", log.Topics[0].String(), relayerLog.Info(title, "get unprocessed log with topic:", logv.Topics[0].String(),
"BlockNumber", log.BlockNumber) "BlockNumber", logv.BlockNumber)
} }
if query.ToBlock.Int64() == curHeight { if query.ToBlock.Int64() == curHeight {
......
...@@ -3,7 +3,6 @@ package relayer ...@@ -3,7 +3,6 @@ package relayer
import ( import (
"errors" "errors"
"fmt" "fmt"
"math/big"
"strconv" "strconv"
"sync" "sync"
"sync/atomic" "sync/atomic"
...@@ -12,13 +11,11 @@ import ( ...@@ -12,13 +11,11 @@ import (
"github.com/33cn/chain33/common/log/log15" "github.com/33cn/chain33/common/log/log15"
rpctypes "github.com/33cn/chain33/rpc/types" rpctypes "github.com/33cn/chain33/rpc/types"
chain33Types "github.com/33cn/chain33/types" chain33Types "github.com/33cn/chain33/types"
"github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/ethtxs"
"github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/relayer/chain33" "github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/relayer/chain33"
"github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/relayer/ethereum" "github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/relayer/ethereum"
relayerTypes "github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/types" relayerTypes "github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/types"
"github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/utils" "github.com/33cn/plugin/plugin/dapp/x2Ethereum/ebrelayer/utils"
"github.com/33cn/plugin/plugin/dapp/x2Ethereum/types" "github.com/33cn/plugin/plugin/dapp/x2Ethereum/types"
"github.com/ethereum/go-ethereum/common"
lru "github.com/hashicorp/golang-lru" lru "github.com/hashicorp/golang-lru"
) )
...@@ -109,6 +106,9 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res ...@@ -109,6 +106,9 @@ func (manager *Manager) SetPassphase(setPasswdReq relayerTypes.ReqSetPasswd, res
func (manager *Manager) ChangePassphase(setPasswdReq relayerTypes.ReqChangePasswd, result *interface{}) error { func (manager *Manager) ChangePassphase(setPasswdReq relayerTypes.ReqChangePasswd, result *interface{}) error {
manager.mtx.Lock() manager.mtx.Lock()
defer manager.mtx.Unlock() defer manager.mtx.Unlock()
if setPasswdReq.OldPassphase == setPasswdReq.NewPassphase {
return errors.New("the old password is the same as the new one")
}
// 新密码合法性校验 // 新密码合法性校验
if !utils.IsValidPassWord(setPasswdReq.NewPassphase) { if !utils.IsValidPassWord(setPasswdReq.NewPassphase) {
return chain33Types.ErrInvalidPassWord return chain33Types.ErrInvalidPassWord
...@@ -282,23 +282,6 @@ func (manager *Manager) ImportChain33PrivateKey4EthRelayer(privateKey string, re ...@@ -282,23 +282,6 @@ func (manager *Manager) ImportChain33PrivateKey4EthRelayer(privateKey string, re
return nil return nil
} }
//为ethrelayer导入chain33私钥,为向chain33发送交易时进行签名使用
func (manager *Manager) ImportEthValidatorPrivateKey(privateKey string, result *interface{}) error {
manager.mtx.Lock()
defer manager.mtx.Unlock()
if err := manager.checkPermission(); nil != err {
return err
}
if err := manager.ethRelayer.ImportEthValidatorPrivateKey(manager.passphase, privateKey); nil != err {
return err
}
*result = rpctypes.Reply{
IsOk: true,
Msg: "Succeed to import ethereum private key for validator",
}
return nil
}
//显示在chain33中以验证人validator身份进行登录的地址 //显示在chain33中以验证人validator身份进行登录的地址
func (manager *Manager) ShowChain33RelayerValidator(param interface{}, result *interface{}) error { func (manager *Manager) ShowChain33RelayerValidator(param interface{}, result *interface{}) error {
manager.mtx.Lock() manager.mtx.Lock()
...@@ -502,38 +485,6 @@ func (manager *Manager) LockEthErc20Asset(lockEthErc20Asset relayerTypes.LockEth ...@@ -502,38 +485,6 @@ func (manager *Manager) LockEthErc20Asset(lockEthErc20Asset relayerTypes.LockEth
return nil return nil
} }
func (manager *Manager) MakeNewProphecyClaim(newProphecyClaim relayerTypes.NewProphecyClaim, result *interface{}) error {
manager.mtx.Lock()
defer manager.mtx.Unlock()
if err := manager.checkPermission(); nil != err {
return err
}
var tokenAddress common.Address
if "" != newProphecyClaim.TokenAddr {
tokenAddress = common.HexToAddress(newProphecyClaim.TokenAddr)
}
bn := big.NewInt(1)
bn, _ = bn.SetString(types.TrimZeroAndDot(newProphecyClaim.Amount), 10)
newProphecyClaimPara := &ethtxs.NewProphecyClaimPara{
ClaimType: uint8(newProphecyClaim.ClaimType),
Chain33Sender: []byte(newProphecyClaim.Chain33Sender),
TokenAddr: tokenAddress,
EthReceiver: common.HexToAddress(newProphecyClaim.EthReceiver),
Symbol: newProphecyClaim.Symbol,
Amount: bn,
Txhash: common.FromHex(newProphecyClaim.TxHash),
}
txhash, err := manager.ethRelayer.MakeNewProphecyClaim(newProphecyClaimPara)
if nil != err {
return err
}
*result = rpctypes.Reply{
IsOk: true,
Msg: fmt.Sprintf("Tx:%s", txhash),
}
return nil
}
func (manager *Manager) IsProphecyPending(claimID [32]byte, result *interface{}) error { func (manager *Manager) IsProphecyPending(claimID [32]byte, result *interface{}) error {
manager.mtx.Lock() manager.mtx.Lock()
defer manager.mtx.Unlock() defer manager.mtx.Unlock()
......
...@@ -11,8 +11,7 @@ message Account4Relayer { ...@@ -11,8 +11,7 @@ message Account4Relayer {
} }
message ValidatorAddr4EthRelayer { message ValidatorAddr4EthRelayer {
string ethValidator = 1; string chain33Validator = 1;
string chain33Validator = 2;
} }
message Txhashes { message Txhashes {
......
...@@ -22,8 +22,7 @@ func (m *Account4Relayer) String() string { return proto.CompactTextString(m) } ...@@ -22,8 +22,7 @@ func (m *Account4Relayer) String() string { return proto.CompactTextString(m) }
func (*Account4Relayer) ProtoMessage() {} func (*Account4Relayer) ProtoMessage() {}
type ValidatorAddr4EthRelayer struct { type ValidatorAddr4EthRelayer struct {
EthValidator string `protobuf:"bytes,1,opt,name=ethValidator" json:"ethValidator,omitempty"` Chain33Validator string `protobuf:"bytes,1,opt,name=chain33Validator" json:"chain33Validator,omitempty"`
Chain33Validator string `protobuf:"bytes,2,opt,name=chain33Validator" json:"chain33Validator,omitempty"`
} }
func (m *ValidatorAddr4EthRelayer) Reset() { *m = ValidatorAddr4EthRelayer{} } func (m *ValidatorAddr4EthRelayer) Reset() { *m = ValidatorAddr4EthRelayer{} }
......
...@@ -17,14 +17,11 @@ docker_chain33_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPA ...@@ -17,14 +17,11 @@ docker_chain33_ip=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPA
Chain33Cli="$GOPATH/src/github.com/33cn/plugin/build/chain33-cli --rpc_laddr http://${docker_chain33_ip}:8801" Chain33Cli="$GOPATH/src/github.com/33cn/plugin/build/chain33-cli --rpc_laddr http://${docker_chain33_ip}:8801"
chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
#chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
# validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"] # validatorsAddr=["0x92c8b16afd6d423652559c6e266cbe1c29bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"]
ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e" ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400" ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400"
ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e" ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e"
ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b" ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b"
# 新增地址 chain33 需要导入地址 转入 10 bty当收费费 # 新增地址 chain33 需要导入地址 转入 10 bty当收费费
chain33Validator1="1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV" chain33Validator1="1GTxrmuWiXavhcvsaH5w9whgVxUrWsUMdV"
chain33Validator2="155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6" chain33Validator2="155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6"
...@@ -34,11 +31,11 @@ chain33ValidatorKey1="0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f ...@@ -34,11 +31,11 @@ chain33ValidatorKey1="0xd627968e445f2a41c92173225791bae1ba42126ae96c32f28f97ff8f
chain33ValidatorKey2="0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66" chain33ValidatorKey2="0x9d539bc5fd084eb7fe86ad631dba9aa086dba38418725c38d9751459f567da66"
chain33ValidatorKey3="0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be" chain33ValidatorKey3="0x0a6671f101e30a2cc2d79d77436b62cdf2664ed33eb631a9c9e3f3dd348a23be"
chain33ValidatorKey4="0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5" chain33ValidatorKey4="0x3818b257b05ee75b6e43ee0e3cfc2d8502342cf67caed533e3756966690b62a5"
ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635" ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71" ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf" ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08" ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
maturityDegree=10 maturityDegree=10
function InitAndDeploy() { function InitAndDeploy() {
...@@ -80,15 +77,6 @@ function EthImportKey() { ...@@ -80,15 +77,6 @@ function EthImportKey() {
result=$(${CLID} relayer ethereum import_chain33privatekey -k "${chain33ValidatorKey4}") result=$(${CLID} relayer ethereum import_chain33privatekey -k "${chain33ValidatorKey4}")
cli_ret "${result}" "import_chain33privatekey" cli_ret "${result}" "import_chain33privatekey"
result=$(${CLIA} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "import_ethprivatekey"
result=$(${CLIB} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyB}")
cli_ret "${result}" "import_ethprivatekeyB"
result=$(${CLIC} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyC}")
cli_ret "${result}" "import_ethprivatekeyC"
result=$(${CLID} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyD}")
cli_ret "${result}" "import_ethprivatekeyD"
result=$(${CLIA} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyA}") result=$(${CLIA} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "A relayer chain33 import_privatekey" cli_ret "${result}" "A relayer chain33 import_privatekey"
result=$(${CLIB} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyB}") result=$(${CLIB} relayer chain33 import_privatekey -k "${ethValidatorAddrKeyB}")
......
...@@ -11,18 +11,11 @@ CLI="../build/ebcli_A" ...@@ -11,18 +11,11 @@ CLI="../build/ebcli_A"
chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944" chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
# 0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f
ethValidatorAddrKey="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635" ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71" ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf" ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08" ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
ethReceiverAddr3="0x1919203bA8b325278d28Fb8fFeac49F2CD881A4e" ethReceiverAddr3="0x1919203bA8b325278d28Fb8fFeac49F2CD881A4e"
#ethReceiverAddrKey3="62ca4122aac0e6f35bed02fc15c7ddbdaa07f2f2a1821c8b8210b891051e3ee9"
prophecyTx0="0x112260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde" prophecyTx0="0x112260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
prophecyTx1="0x222260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde" prophecyTx1="0x222260c98aec81b3e235af47c355db720f60e751cce100fed6f334e1b1530bde"
...@@ -47,9 +40,6 @@ InitAndDeploy() { ...@@ -47,9 +40,6 @@ InitAndDeploy() {
result=$(${CLI} relayer ethereum import_chain33privatekey -k "${chain33SenderAddrKey}") result=$(${CLI} relayer ethereum import_chain33privatekey -k "${chain33SenderAddrKey}")
cli_ret "${result}" "import_chain33privatekey" cli_ret "${result}" "import_chain33privatekey"
result=$(${CLI} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKey}")
cli_ret "${result}" "import_ethprivatekey"
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} }
......
...@@ -8,9 +8,6 @@ set -x ...@@ -8,9 +8,6 @@ set -x
source "./publicTest.sh" source "./publicTest.sh"
CLIA="../build/ebcli_A" CLIA="../build/ebcli_A"
CLIB="../build/ebcli_B"
CLIC="../build/ebcli_C"
CLID="../build/ebcli_D"
tokenAddr="" tokenAddr=""
chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
...@@ -72,11 +69,6 @@ function InitConfigFile() { ...@@ -72,11 +69,6 @@ function InitConfigFile() {
# 启动 B C D 的 ebrelayer 服务,导入私钥 # 启动 B C D 的 ebrelayer 服务,导入私钥
function ImportCBDKey() { function ImportCBDKey() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
local ethValidatorAddrKeyA="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
local ethValidatorAddrKeyB="a5f3063552f4483cfc20ac4f40f45b798791379862219de9e915c64722c1d400"
local ethValidatorAddrKeyC="bbf5e65539e9af0eb0cfac30bad475111054b09c11d668fc0731d54ea777471e"
local ethValidatorAddrKeyD="c9fa31d7984edf81b8ef3b40c761f1847f6fcd5711ab2462da97dc458f1f896b"
for name in B C D; do for name in B C D; do
start_ebrelayer "./../build/$name/ebrelayer" "./../build/$name/ebrelayer.log" start_ebrelayer "./../build/$name/ebrelayer" "./../build/$name/ebrelayer.log"
...@@ -95,18 +87,6 @@ function ImportCBDKey() { ...@@ -95,18 +87,6 @@ function ImportCBDKey() {
result=$(${CLIA} relayer ethereum import_chain33privatekey -k "${chain33SenderAddrKey}") result=$(${CLIA} relayer ethereum import_chain33privatekey -k "${chain33SenderAddrKey}")
cli_ret "${result}" "import_chain33privatekey" cli_ret "${result}" "import_chain33privatekey"
result=$(${CLIA} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyA}")
cli_ret "${result}" "import_ethprivatekey"
result=$(${CLIB} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyB}")
cli_ret "${result}" "import_ethprivatekeyB"
result=$(${CLIC} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyC}")
cli_ret "${result}" "import_ethprivatekeyC"
result=$(${CLID} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKeyD}")
cli_ret "${result}" "import_ethprivatekeyD"
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} }
......
...@@ -16,21 +16,15 @@ tokenAddr="" ...@@ -16,21 +16,15 @@ tokenAddr=""
BridgeRegistry="" BridgeRegistry=""
chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33SenderAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944" chain33SenderAddrKey="CC38546E9E659D15E6B4893F0AB32A06D103931A8230B0BDE71459D2B27D6944"
ethValidatorAddrKey="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e" ethValidatorAddrKey="3fa21584ae2e4fd74db9b58e2386f5481607dfa4d7ba0617aaa7858e5025dc1e"
ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635" ethReceiverAddr1="0xa4ea64a583f6e51c3799335b28a8f0529570a635"
ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71" ethReceiverAddrKey1="355b876d7cbcb930d5dfab767f66336ce327e082cbaa1877210c1bae89b1df71"
ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf" ethReceiverAddr2="0x0c05ba5c230fdaa503b53702af1962e08d0c60bf"
ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08" ethReceiverAddrKey2="9dc6df3a8ab139a54d8a984f54958ae0661f880229bf3bdbb886b87d58b56a08"
#ethReceiverAddr3="0x1919203bA8b325278d28Fb8fFeac49F2CD881A4e"
#ethReceiverAddrKey3="62ca4122aac0e6f35bed02fc15c7ddbdaa07f2f2a1821c8b8210b891051e3ee9"
chain33Validator1="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" chain33Validator1="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
chain33Validator2="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" #0x4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01 chain33Validator2="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" #0x4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01
chain33Validator3="1BqP2vHkYNjSgdnTqm7pGbnphLhtEhuJFi" chain33Validator3="1BqP2vHkYNjSgdnTqm7pGbnphLhtEhuJFi"
#BtyReceiever="1BqP2vHkYNjSgdnTqm7pGbnphLhtEhuJFi"
#ETHContractAddr="0x0000000000000000000000000000000000000000"
maturityDegree=10 maturityDegree=10
function InitAndDeploy() { function InitAndDeploy() {
...@@ -56,9 +50,6 @@ function EthImportKey() { ...@@ -56,9 +50,6 @@ function EthImportKey() {
result=$(${CLI} relayer ethereum import_chain33privatekey -k "${chain33SenderAddrKey}") result=$(${CLI} relayer ethereum import_chain33privatekey -k "${chain33SenderAddrKey}")
cli_ret "${result}" "import_chain33privatekey" cli_ret "${result}" "import_chain33privatekey"
result=$(${CLI} relayer ethereum import_ethprivatekey -k "${ethValidatorAddrKey}")
cli_ret "${result}" "import_ethprivatekey"
result=$(${CLI} relayer chain33 import_privatekey -k "${ethValidatorAddrKey}") result=$(${CLI} relayer chain33 import_privatekey -k "${ethValidatorAddrKey}")
cli_ret "${result}" "import_ethprivatekey" cli_ret "${result}" "import_ethprivatekey"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment