Commit f7a27fa1 authored by QM's avatar QM Committed by vipwzw

delete relayer set symbol

parent e7a941d0
...@@ -12,28 +12,13 @@ source "./mainPubilcRelayerTest.sh" ...@@ -12,28 +12,13 @@ source "./mainPubilcRelayerTest.sh"
{ {
chain33BridgeBank="" chain33BridgeBank=""
ethBridgeBank="" ethBridgeBank=""
chain33BtyERC20TokenAddr="1111111111111111111114oLvT2"
ethereumBtyBridgeTokenAddr=""
chain33EthBridgeTokenAddr=""
ethereumBycERC20TokenAddr=""
chain33BycBridgeTokenAddr=""
ethereumUSDTERC20TokenAddr=""
chain33USDTBridgeTokenAddr=""
chain33YccERC20TokenAddr=""
ethereumYccBridgeTokenAddr=""
chain33ZbcERC20TokenAddr=""
ethereumZbcBridgeTokenAddr=""
BridgeRegistryOnChain33="" BridgeRegistryOnChain33=""
BridgeRegistryOnEth="" BridgeRegistryOnEth=""
multisignChain33Addr="" multisignChain33Addr=""
multisignEthAddr="" multisignEthAddr=""
chain33EthBridgeTokenAddr=""
ethereumUSDTERC20TokenAddr=""
chain33USDTBridgeTokenAddr=""
chain33ID=0 chain33ID=0
maturityDegree=10 maturityDegree=10
...@@ -46,7 +31,6 @@ source "./mainPubilcRelayerTest.sh" ...@@ -46,7 +31,6 @@ source "./mainPubilcRelayerTest.sh"
chain33DeployAddr="1JxhYLYsrscjTaQfaMoVUrnSdrejP7XRQD" chain33DeployAddr="1JxhYLYsrscjTaQfaMoVUrnSdrejP7XRQD"
chain33DeployKey="0x9ef82623a5e9aac58d3a6b06392af66ec77289522b28896aed66abaaede66903" chain33DeployKey="0x9ef82623a5e9aac58d3a6b06392af66ec77289522b28896aed66abaaede66903"
# validatorsAddr=["0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"]# shellcheck disable=SC2034
# eth 验证者私钥 # eth 验证者私钥
ethValidatorAddra="0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f" ethValidatorAddra="0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f"
ethValidatorAddrb="0x0df9a824699bc5878232c9e612fe1a5346a5a368" ethValidatorAddrb="0x0df9a824699bc5878232c9e612fe1a5346a5a368"
...@@ -82,6 +66,9 @@ source "./mainPubilcRelayerTest.sh" ...@@ -82,6 +66,9 @@ source "./mainPubilcRelayerTest.sh"
chain33ReceiverAddr="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv" chain33ReceiverAddr="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv"
chain33ReceiverAddrKey="4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01" chain33ReceiverAddrKey="4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01"
paraMainAddr="12qyocayNF7Lv6C9qW4avxs2E7U41fKSfv"
paraMainAddrKey="4257d8692ef7fe13c68b65d6a52f03933db2fa5ce8faf210b5b8b80c721ced01"
} }
function chain33_offline_send_evm() { function chain33_offline_send_evm() {
...@@ -92,6 +79,34 @@ function chain33_offline_send_evm() { ...@@ -92,6 +79,34 @@ function chain33_offline_send_evm() {
check_tx "${Chain33Cli}" "${hash}" check_tx "${Chain33Cli}" "${hash}"
} }
# $1 symbol $2 bridgeTokenAddr
function updateConfig() {
local symbol=$1
local bridgeTokenAddr=$2
tx=$(curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.CreateTransaction","params":[{"execer":"manage","actionName":"Modify","payload":{"key":"evmxgo-mint-'"${symbol}"'","value":"{\"address\":\"'"${bridgeTokenAddr}"'\",\"precision\":8,\"introduction\":\"symbol:'"${symbol}"', bridgeTokenAddr:'"${bridgeTokenAddr}"'\"}","op":"add","addr":""}}]}' -H 'content-type:text/plain;' "http://${docker_chain33_ip}:8901" | jq -r ".result")
if [ "${tx}" == "" ]; then
echo -e "${RED}update config create tx 1${NOC}"
exit 1
fi
sign=$(${Chain33Cli} wallet sign -k "$paraMainAddrKey" -d "${tx}")
hash=$(${Chain33Cli} wallet send -d "${sign}")
check_tx "${Chain33Cli}" "${hash}"
}
function configbridgevmxgoAddr() {
local bridgevmxgoAddr=$1
tx=$(curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.CreateTransaction","params":[{"execer":"manage","actionName":"Modify","payload":{"key":"bridgevmxgo-contract-addr","value":"{\"address\":\"'"${bridgevmxgoAddr}"'\"}","op":"add","addr":""}}]}' -H 'content-type:text/plain;' "http://${docker_chain33_ip}:8901" | jq -r ".result")
if [ "${tx}" == "" ]; then
echo -e "${RED}update config create tx 1${NOC}"
exit 1
fi
sign=$(${Chain33Cli} wallet sign -k "$paraMainAddrKey" -d "${tx}")
hash=$(${Chain33Cli} wallet send -d "${sign}")
check_tx "${Chain33Cli}" "${hash}"
}
function DeployEvmxgo() { function DeployEvmxgo() {
# 在 chain33 上部署合约 # 在 chain33 上部署合约
# shellcheck disable=SC2154 # shellcheck disable=SC2154
...@@ -112,59 +127,32 @@ function DeployEvmxgo() { ...@@ -112,59 +127,32 @@ function DeployEvmxgo() {
${EvmxgoBoss4xCLI} chain33 offline create_add_lock_list -s ETH -t "${chain33EthBridgeTokenAddr}" -c "${XgoChain33BridgeBank}" -k "${chain33DeployKey}" -f 1 --chainID "${chain33ID}" ${EvmxgoBoss4xCLI} chain33 offline create_add_lock_list -s ETH -t "${chain33EthBridgeTokenAddr}" -c "${XgoChain33BridgeBank}" -k "${chain33DeployKey}" -f 1 --chainID "${chain33ID}"
chain33_offline_send_evm "create_add_lock_list.txt" chain33_offline_send_evm "create_add_lock_list.txt"
${EvmxgoBoss4xCLI} chain33 offline create_add_lock_list -s BYC -t "${chain33BycBridgeTokenAddr}" -c "${XgoChain33BridgeBank}" -k "${chain33DeployKey}" -f 1 --chainID "${chain33ID}"
chain33_offline_send_evm "create_add_lock_list.txt"
${EvmxgoBoss4xCLI} chain33 offline create_add_lock_list -s USDT -t "${chain33USDTBridgeTokenAddr}" -c "${XgoChain33BridgeBank}" -k "${chain33DeployKey}" -f 1 --chainID "${chain33ID}" ${EvmxgoBoss4xCLI} chain33 offline create_add_lock_list -s USDT -t "${chain33USDTBridgeTokenAddr}" -c "${XgoChain33BridgeBank}" -k "${chain33DeployKey}" -f 1 --chainID "${chain33ID}"
chain33_offline_send_evm "create_add_lock_list.txt" chain33_offline_send_evm "create_add_lock_list.txt"
updateConfig "ETH" "${chain33EthBridgeTokenAddr}"
updateConfig "USDT" "${chain33USDTBridgeTokenAddr}"
configbridgevmxgoAddr "${XgoChain33BridgeBank}"
# 重启,需要重新启动relayer,更新nonce # 重启,需要重新启动relayer,更新nonce
restart_ebrelayerA restart_ebrelayerA
} }
# $1 symbol $2 bridgeTokenAddr
function updateConfig() {
local symbol=$1
local bridgeTokenAddr=$2
tx=$(curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.CreateTransaction","params":[{"execer":"manage","actionName":"Modify","payload":{"key":"evmxgo-mint-'"${symbol}"'","value":"{\"address\":\"'"${bridgeTokenAddr}"'\",\"precision\":8,\"introduction\":\"symbol:'"${symbol}"', bridgeTokenAddr:'"${bridgeTokenAddr}"'\"}","op":"add","addr":""}}]}' -H 'content-type:text/plain;' "http://${docker_chain33_ip}:8901" | jq -r ".result")
if [ "${tx}" == "" ]; then
echo -e "${RED}update config create tx 1${NOC}"
exit 1
fi
sign=$(${Chain33Cli} wallet sign -k "$chain33ReceiverAddrKey" -d "${tx}")
hash=$(${Chain33Cli} wallet send -d "${sign}")
check_tx "${Chain33Cli}" "${hash}"
}
function configbridgevmxgoAddr() {
local bridgevmxgoAddr=$1
tx=$(curl -s --data-binary '{"jsonrpc":"2.0","id":2,"method":"Chain33.CreateTransaction","params":[{"execer":"manage","actionName":"Modify","payload":{"key":"bridgevmxgo-contract-addr","value":"{\"address\":\"'"${bridgevmxgoAddr}"'\"}","op":"add","addr":""}}]}' -H 'content-type:text/plain;' "http://${docker_chain33_ip}:8901" | jq -r ".result")
if [ "${tx}" == "" ]; then
echo -e "${RED}update config create tx 1${NOC}"
exit 1
fi
sign=$(${Chain33Cli} wallet sign -k "$chain33ReceiverAddrKey" -d "${tx}")
hash=$(${Chain33Cli} wallet send -d "${sign}")
check_tx "${Chain33Cli}" "${hash}"
}
function TestETH2EVMToChain33() { function TestETH2EVMToChain33() {
# 查询 ETH 这端 bridgeBank 地址原来是 0 # 查询 ETH 这端 bridgeBank 地址原来是 0
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}") result=$(${CLIA} ethereum balance -o "${ethBridgeBank}")
# cli_ret "${result}" "balance" ".balance" "16" cli_ret "${result}" "balance" ".balance" "0"
# ETH 这端 lock 11个 # ETH 这端 lock 11个
result=$(${CLIA} ethereum lock -m 11 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}") result=$(${CLIA} ethereum lock -m 11 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}")
# cli_ret "${result}" "lock" cli_ret "${result}" "lock"
# eth 等待 2 个区块 # eth 等待 2 个区块
sleep 4 sleep 4
# 查询 ETH 这端 bridgeBank 地址 11 原来16 # 查询 ETH 这端 bridgeBank 地址 11
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}") result=$(${CLIA} ethereum balance -o "${ethBridgeBank}")
# cli_ret "${result}" "balance" ".balance" "27" cli_ret "${result}" "balance" ".balance" "11"
sleep ${maturityDegree} sleep ${maturityDegree}
...@@ -173,9 +161,6 @@ function TestETH2EVMToChain33() { ...@@ -173,9 +161,6 @@ function TestETH2EVMToChain33() {
# 结果是 11 * le8 # 结果是 11 * le8
# is_equal "${result}" "4700000000" # is_equal "${result}" "4700000000"
updateConfig "ETH" "${chain33EthBridgeTokenAddr}"
configbridgevmxgoAddr "${XgoChain33BridgeBank}"
${EvmxgoBoss4xCLI} chain33 offline approve_erc20 -a 330000000000 -s "${XgoChain33BridgeBank}" -c "${chain33EthBridgeTokenAddr}" -k "${chain33ReceiverAddrKey}" -f 1 --chainID "${chain33ID}" ${EvmxgoBoss4xCLI} chain33 offline approve_erc20 -a 330000000000 -s "${XgoChain33BridgeBank}" -c "${chain33EthBridgeTokenAddr}" -k "${chain33ReceiverAddrKey}" -f 1 --chainID "${chain33ID}"
chain33_offline_send_evm "approve_erc20.txt" chain33_offline_send_evm "approve_erc20.txt"
...@@ -189,49 +174,10 @@ function TestETH2EVMToChain33() { ...@@ -189,49 +174,10 @@ function TestETH2EVMToChain33() {
# is_equal "${result}" "500000000" # is_equal "${result}" "500000000"
} }
function Testethereum2EVMToChain33_byc() {
# 查询 ETH 这端 bridgeBank 地址原来是
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}")
# cli_ret "${result}" "balance" ".balance" "0"
# ETH 这端 lock 7个
result=$(${CLIA} ethereum lock -m 7 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "lock"
# eth 等待 2 个区块
sleep 4
# 查询 ETH 这端 bridgeBank 地址 7
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}")
# cli_ret "${result}" "balance" ".balance" "7"
sleep ${maturityDegree}
# chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额
result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})")
# 结果是 7 * le8
# is_equal "${result}" "700000000"
updateConfig "BYC" "${chain33BycBridgeTokenAddr}"
configbridgevmxgoAddr "${XgoChain33BridgeBank}"
${EvmxgoBoss4xCLI} chain33 offline approve_erc20 -a 330000000000 -s "${XgoChain33BridgeBank}" -c "${chain33BycBridgeTokenAddr}" -k "${chain33ReceiverAddrKey}" -f 1 --chainID "${chain33ID}"
chain33_offline_send_evm "approve_erc20.txt"
hash=$(${Chain33Cli} send evm call -f 1 -k "${chain33ReceiverAddr}" -e "${XgoChain33BridgeBank}" -p "lock(${chain33TestAddr2}, ${chain33BycBridgeTokenAddr}, 500000000)" --chainID "${chain33ID}")
check_tx "${Chain33Cli}" "${hash}"
result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33DeployAddr}" -b "balanceOf(${chain33ReceiverAddr})")
# is_equal "${result}" "4200000000"
result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33DeployAddr}" -b "balanceOf(${XgoChain33BridgeBank})")
# is_equal "${result}" "500000000"
}
function Testethereum2EVMToChain33_usdt() { function Testethereum2EVMToChain33_usdt() {
# 查询 ETH 这端 bridgeBank 地址原来是 # 查询 ETH 这端 bridgeBank 地址原来是
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumUSDTERC20TokenAddr}") result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumUSDTERC20TokenAddr}")
# cli_ret "${result}" "balance" ".balance" "0" cli_ret "${result}" "balance" ".balance" "0"
# ETH 这端 lock 12个 # ETH 这端 lock 12个
result=$(${CLIA} ethereum lock -m 12 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumUSDTERC20TokenAddr}") result=$(${CLIA} ethereum lock -m 12 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumUSDTERC20TokenAddr}")
...@@ -242,18 +188,14 @@ function Testethereum2EVMToChain33_usdt() { ...@@ -242,18 +188,14 @@ function Testethereum2EVMToChain33_usdt() {
# 查询 ETH 这端 bridgeBank 地址 12 # 查询 ETH 这端 bridgeBank 地址 12
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumUSDTERC20TokenAddr}") result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumUSDTERC20TokenAddr}")
# cli_ret "${result}" "balance" ".balance" "12" cli_ret "${result}" "balance" ".balance" "12"
sleep ${maturityDegree} sleep ${maturityDegree}
# chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额 # chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额
result=$(${Chain33Cli} evm query -a "${chain33USDTBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})") result=$(${Chain33Cli} evm query -a "${chain33USDTBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})")
# 结果是 7 * le8
# is_equal "${result}" "700000000" # is_equal "${result}" "700000000"
updateConfig "USDT" "${chain33USDTBridgeTokenAddr}"
configbridgevmxgoAddr "${XgoChain33BridgeBank}"
${EvmxgoBoss4xCLI} chain33 offline approve_erc20 -a 330000000000 -s "${XgoChain33BridgeBank}" -c "${chain33USDTBridgeTokenAddr}" -k "${chain33ReceiverAddrKey}" -f 1 --chainID "${chain33ID}" ${EvmxgoBoss4xCLI} chain33 offline approve_erc20 -a 330000000000 -s "${XgoChain33BridgeBank}" -c "${chain33USDTBridgeTokenAddr}" -k "${chain33ReceiverAddrKey}" -f 1 --chainID "${chain33ID}"
chain33_offline_send_evm "approve_erc20.txt" chain33_offline_send_evm "approve_erc20.txt"
...@@ -292,27 +234,10 @@ function test_evm_all() { ...@@ -292,27 +234,10 @@ function test_evm_all() {
Chain33Cli=${Para8901Cli} Chain33Cli=${Para8901Cli}
TestChain33ToEthAssets TestChain33ToEthAssets
TestETH2Chain33Assets TestETH2Chain33Assets
TestChain33ToEthZBCAssets
TestETH2Chain33Byc
TestETH2Chain33USDT TestETH2Chain33USDT
Chain33Cli=${Para8901Cli}
lockBty
lockChain33Ycc
lockEth
lockEthByc
lockEthUSDT
# 离线多签地址转入阈值设大
offline_set_offline_token_Bty 100000000000000 10
offline_set_offline_token_Chain33Ycc 100000000000000 10
offline_set_offline_token_Eth 100000000000000 10
offline_set_offline_token_EthByc 100000000000000 10
offline_set_offline_token_EthUSDT 100000000000000 10
DeployEvmxgo DeployEvmxgo
TestETH2EVMToChain33 TestETH2EVMToChain33
Testethereum2EVMToChain33_byc
Testethereum2EVMToChain33_usdt Testethereum2EVMToChain33_usdt
} }
......
...@@ -125,7 +125,7 @@ func CreateEthBridgeBankRelated(cmd *cobra.Command, _ []string) { ...@@ -125,7 +125,7 @@ func CreateEthBridgeBankRelated(cmd *cobra.Command, _ []string) {
func CreateCmd() *cobra.Command { func CreateCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "create", //first step Use: "create", //first step
Short: "create and sign all the offline cross to ethereum contracts(inclue valset,ethereumBridge,bridgeBank,oracle,bridgeRegistry,mulSign)", Short: "create all the offline cross to ethereum contracts(inclue valset,ethereumBridge,bridgeBank,oracle,bridgeRegistry,mulSign), set symbol",
Run: createTx, //对要部署的factory合约进行签名 Run: createTx, //对要部署的factory合约进行签名
} }
addCreateFlags(cmd) addCreateFlags(cmd)
...@@ -139,6 +139,8 @@ func addCreateFlags(cmd *cobra.Command) { ...@@ -139,6 +139,8 @@ func addCreateFlags(cmd *cobra.Command) {
_ = cmd.MarkFlagRequired("initPowers") _ = cmd.MarkFlagRequired("initPowers")
cmd.Flags().StringP("owner", "o", "", "the deployer address") cmd.Flags().StringP("owner", "o", "", "the deployer address")
_ = cmd.MarkFlagRequired("owner") _ = cmd.MarkFlagRequired("owner")
cmd.Flags().StringP("symbol", "s", "", "symbol")
_ = cmd.MarkFlagRequired("symbol")
} }
func createTx(cmd *cobra.Command, _ []string) { func createTx(cmd *cobra.Command, _ []string) {
...@@ -149,6 +151,7 @@ func createTx(cmd *cobra.Command, _ []string) { ...@@ -149,6 +151,7 @@ func createTx(cmd *cobra.Command, _ []string) {
deployerAddr := common.HexToAddress(owner) deployerAddr := common.HexToAddress(owner)
validatorsAddrsArray := strings.Split(validatorsAddrs, ",") validatorsAddrsArray := strings.Split(validatorsAddrs, ",")
initPowersArray := strings.Split(initpowers, ",") initPowersArray := strings.Split(initpowers, ",")
symbol, _ := cmd.Flags().GetString("symbol")
if len(validatorsAddrsArray) != len(initPowersArray) { if len(validatorsAddrsArray) != len(initPowersArray) {
fmt.Println("input validatorsAddrs initPowers error!") fmt.Println("input validatorsAddrs initPowers error!")
...@@ -174,13 +177,13 @@ func createTx(cmd *cobra.Command, _ []string) { ...@@ -174,13 +177,13 @@ func createTx(cmd *cobra.Command, _ []string) {
initPowers = append(initPowers, big.NewInt(vint64)) initPowers = append(initPowers, big.NewInt(vint64))
} }
err := createDeployTxs(url, deployerAddr, validators, initPowers) err := createDeployTxs(url, deployerAddr, validators, initPowers, symbol)
if err != nil { if err != nil {
panic(err) panic(err)
} }
} }
func createDeployTxs(url string, deployerAddr common.Address, validators []common.Address, initPowers []*big.Int) error { func createDeployTxs(url string, deployerAddr common.Address, validators []common.Address, initPowers []*big.Int, symbol string) error {
client, err := ethclient.Dial(url) client, err := ethclient.Dial(url)
if err != nil { if err != nil {
return err return err
...@@ -200,57 +203,73 @@ func createDeployTxs(url string, deployerAddr common.Address, validators []commo ...@@ -200,57 +203,73 @@ func createDeployTxs(url string, deployerAddr common.Address, validators []commo
} }
valSetAddr := crypto.CreateAddress(deployerAddr, startNonce) valSetAddr := crypto.CreateAddress(deployerAddr, startNonce)
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: valSetAddr, Name: "valSet", Nonce: startNonce, To: nil}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: valSetAddr, Name: "valSet", Nonce: startNonce, To: nil})
startNonce += 1
//step2 chain33bridge //step2 chain33bridge
packData, err = deploychain33BridgePackData(deployerAddr, valSetAddr) packData, err = deploychain33BridgePackData(deployerAddr, valSetAddr)
if err != nil { if err != nil {
return err return err
} }
chain33BridgeAddr := crypto.CreateAddress(deployerAddr, startNonce+1) chain33BridgeAddr := crypto.CreateAddress(deployerAddr, startNonce)
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: chain33BridgeAddr, Name: "chain33Bridge", Nonce: startNonce + 1, To: nil}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: chain33BridgeAddr, Name: "chain33Bridge", Nonce: startNonce, To: nil})
startNonce += 1
//step3 oracle //step3 oracle
packData, err = deployOraclePackData(deployerAddr, valSetAddr, chain33BridgeAddr) packData, err = deployOraclePackData(deployerAddr, valSetAddr, chain33BridgeAddr)
if err != nil { if err != nil {
return err return err
} }
oracleAddr := crypto.CreateAddress(deployerAddr, startNonce+2) oracleAddr := crypto.CreateAddress(deployerAddr, startNonce)
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: oracleAddr, Name: "oracle", Nonce: startNonce + 2, To: nil}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: oracleAddr, Name: "oracle", Nonce: startNonce, To: nil})
startNonce += 1
//step4 bridgebank //step4 bridgebank
packData, err = deployBridgeBankPackData(deployerAddr, chain33BridgeAddr, oracleAddr) packData, err = deployBridgeBankPackData(deployerAddr, chain33BridgeAddr, oracleAddr)
if err != nil { if err != nil {
return err return err
} }
bridgeBankAddr := crypto.CreateAddress(deployerAddr, startNonce+3) bridgeBankAddr := crypto.CreateAddress(deployerAddr, startNonce)
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: bridgeBankAddr, Name: "bridgebank", Nonce: startNonce + 3, To: nil}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: bridgeBankAddr, Name: "bridgebank", Nonce: startNonce, To: nil})
startNonce += 1
//step5 //step5
packData, err = callSetBridgeBank(bridgeBankAddr) packData, err = callSetBridgeBank(bridgeBankAddr)
if err != nil { if err != nil {
return err return err
} }
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: common.Address{}, Name: "setbridgebank", Nonce: startNonce + 4, To: &chain33BridgeAddr}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: common.Address{}, Name: "setbridgebank", Nonce: startNonce, To: &chain33BridgeAddr})
startNonce += 1
//step6 //step6
packData, err = callSetOracal(oracleAddr) packData, err = callSetOracal(oracleAddr)
if err != nil { if err != nil {
return err return err
} }
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: common.Address{}, Name: "setoracle", Nonce: startNonce + 5, To: &chain33BridgeAddr}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: common.Address{}, Name: "setoracle", Nonce: startNonce, To: &chain33BridgeAddr})
startNonce += 1
//step7 bridgeRegistry //step7 set symbol
packData, err = deployBridgeRegistry(chain33BridgeAddr, bridgeBankAddr, oracleAddr, valSetAddr) packData, err = setSymbol(symbol)
if err != nil { if err != nil {
return err return err
} }
bridgeRegAddr := crypto.CreateAddress(deployerAddr, startNonce+6) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: common.Address{}, Name: "setsymbol", Nonce: startNonce, To: &bridgeBankAddr})
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: bridgeRegAddr, Name: "bridgeRegistry", Nonce: startNonce + 6, To: nil}) startNonce += 1
//step8 bridgeRegistry //step8 bridgeRegistry
packData, err = deployBridgeRegistry(chain33BridgeAddr, bridgeBankAddr, oracleAddr, valSetAddr)
if err != nil {
return err
}
bridgeRegAddr := crypto.CreateAddress(deployerAddr, startNonce)
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: bridgeRegAddr, Name: "bridgeRegistry", Nonce: startNonce, To: nil})
startNonce += 1
//step9 mulSign
packData = common.FromHex(gnosis.GnosisSafeBin) packData = common.FromHex(gnosis.GnosisSafeBin)
mulSignAddr := crypto.CreateAddress(deployerAddr, startNonce+7) mulSignAddr := crypto.CreateAddress(deployerAddr, startNonce)
infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: mulSignAddr, Name: "mulSignAddr", Nonce: startNonce + 7, To: nil}) infos = append(infos, &DeployInfo{PackData: packData, ContractorAddr: mulSignAddr, Name: "mulSignAddr", Nonce: startNonce, To: nil})
startNonce += 1
return NewTxWrite(infos, deployerAddr, url, "deploytxs.txt") return NewTxWrite(infos, deployerAddr, url, "deploytxs.txt")
} }
...@@ -407,6 +426,19 @@ func deployBridgeRegistry(chain33BridgeAddr, bridgeBankAddr, oracleAddr, valSetA ...@@ -407,6 +426,19 @@ func deployBridgeRegistry(chain33BridgeAddr, bridgeBankAddr, oracleAddr, valSetA
return append(bin, packData...), nil return append(bin, packData...), nil
} }
//step 8
func setSymbol(symbol string) ([]byte, error) {
bridgeAbi, err := abi.JSON(strings.NewReader(generated.BridgeBankABI))
if err != nil {
return nil, err
}
abiData, err := bridgeAbi.Pack("configplatformTokenSymbol", symbol)
if err != nil {
return nil, err
}
return abiData, nil
}
func CreateWithFileCmd() *cobra.Command { func CreateWithFileCmd() *cobra.Command {
cmd := &cobra.Command{ cmd := &cobra.Command{
Use: "create_file", //first step Use: "create_file", //first step
...@@ -449,7 +481,7 @@ func createWithFileTx(cmd *cobra.Command, _ []string) { ...@@ -449,7 +481,7 @@ func createWithFileTx(cmd *cobra.Command, _ []string) {
initPowers = append(initPowers, big.NewInt(deployCfg.InitPowers[i])) initPowers = append(initPowers, big.NewInt(deployCfg.InitPowers[i]))
} }
err = createDeployTxs(url, deployerAddr, validators, initPowers) err = createDeployTxs(url, deployerAddr, validators, initPowers, deployCfg.Symbol)
if err != nil { if err != nil {
fmt.Println("createDeployTxs Err:", err) fmt.Println("createDeployTxs Err:", err)
return return
......
...@@ -45,7 +45,7 @@ func DeployOfflineContractsCmd() *cobra.Command { ...@@ -45,7 +45,7 @@ func DeployOfflineContractsCmd() *cobra.Command {
CreateMultisignTransferTxCmd(), // 创建多签转帐交易 CreateMultisignTransferTxCmd(), // 创建多签转帐交易
SignCmd(), // 签名交易 sign deploy contract tx SignCmd(), // 签名交易 sign deploy contract tx
SendTxsCmd(), // 发送交易 send all kinds of tx SendTxsCmd(), // 发送交易 send all kinds of tx
ConfigplatformTokenSymbolCmd(), //ConfigplatformTokenSymbolCmd(),
CreateEthBridgeBankRelatedCmd(), //构造交易 CreateEthBridgeBankRelatedCmd(), //构造交易
) )
...@@ -67,6 +67,7 @@ type DeployConfigInfo struct { ...@@ -67,6 +67,7 @@ type DeployConfigInfo struct {
DeployerPrivateKey string `toml:"deployerPrivateKey"` DeployerPrivateKey string `toml:"deployerPrivateKey"`
ValidatorsAddr []string `toml:"validatorsAddr"` ValidatorsAddr []string `toml:"validatorsAddr"`
InitPowers []int64 `toml:"initPowers"` InitPowers []int64 `toml:"initPowers"`
Symbol string `toml:"symbol"`
} }
func CreateTxInfoAndWrite(abiData []byte, deployAddr, contract, name, url string) { func CreateTxInfoAndWrite(abiData []byte, deployAddr, contract, name, url string) {
......
...@@ -12,29 +12,17 @@ source "./offlinePublic.sh" ...@@ -12,29 +12,17 @@ source "./offlinePublic.sh"
{ {
chain33BridgeBank="" chain33BridgeBank=""
ethBridgeBank="" ethBridgeBank=""
BridgeRegistryOnChain33=""
BridgeRegistryOnEth=""
multisignChain33Addr=""
multisignEthAddr=""
chain33BtyERC20TokenAddr="1111111111111111111114oLvT2" chain33BtyERC20TokenAddr="1111111111111111111114oLvT2"
ethereumBtyBridgeTokenAddr="" ethereumBtyBridgeTokenAddr=""
chain33EthBridgeTokenAddr="" chain33EthBridgeTokenAddr=""
ethereumBycERC20TokenAddr=""
chain33BycBridgeTokenAddr=""
ethereumUSDTERC20TokenAddr="" ethereumUSDTERC20TokenAddr=""
chain33USDTBridgeTokenAddr="" chain33USDTBridgeTokenAddr=""
chain33YccERC20TokenAddr=""
ethereumYccBridgeTokenAddr=""
chain33ZbcERC20TokenAddr=""
ethereumZbcBridgeTokenAddr=""
BridgeRegistryOnChain33=""
BridgeRegistryOnEth=""
multisignChain33Addr=""
multisignEthAddr=""
chain33ID=0 chain33ID=0
maturityDegree=10 maturityDegree=10
...@@ -216,54 +204,55 @@ function TestChain33ToEthAssets() { ...@@ -216,54 +204,55 @@ function TestChain33ToEthAssets() {
} }
# chain33 lock ZBC, eth burn ZBC # chain33 lock ZBC, eth burn ZBC
function TestChain33ToEthZBCAssets() { #function TestChain33ToEthZBCAssets() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo -e "${GRE}=========== chain33 lock ZBC, eth burn ZBC ===========${NOC}" # echo -e "${GRE}=========== chain33 lock ZBC, eth burn ZBC ===========${NOC}"
result=$(${CLIA} ethereum balance -o "${ethTestAddr1}" -t "${ethereumZbcBridgeTokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethTestAddr1}" -t "${ethereumZbcBridgeTokenAddr}")
cli_ret "${result}" "balance" ".balance" "0" # cli_ret "${result}" "balance" ".balance" "0"
#
# 原来的地址金额 # # 原来的地址金额
result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33BridgeBank}" -b "balanceOf(${chain33BridgeBank})") # result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33BridgeBank}" -b "balanceOf(${chain33BridgeBank})")
is_equal "${result}" "0" # is_equal "${result}" "0"
#
# chain33 lock ZBC # # chain33 lock ZBC
hash=$(${Chain33Cli} send evm call -f 1 -k "${chain33TestAddr1}" -e "${chain33BridgeBank}" -p "lock(${ethTestAddr1}, ${chain33ZbcERC20TokenAddr}, 900000000)" --chainID "${chain33ID}") # hash=$(${Chain33Cli} send evm call -f 1 -k "${chain33TestAddr1}" -e "${chain33BridgeBank}" -p "lock(${ethTestAddr1}, ${chain33ZbcERC20TokenAddr}, 900000000)" --chainID "${chain33ID}")
check_tx "${Chain33Cli}" "${hash}" # check_tx "${Chain33Cli}" "${hash}"
#
# chain33BridgeBank 是否增加了 9 # # chain33BridgeBank 是否增加了 9
result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33BridgeBank}" -b "balanceOf(${chain33BridgeBank})") # result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33BridgeBank}" -b "balanceOf(${chain33BridgeBank})")
is_equal "${result}" "900000000" # is_equal "${result}" "900000000"
#
sleep 4 # sleep 4
#
# eth 这端 金额是否增加了 9 # # eth 这端 金额是否增加了 9
result=$(${CLIA} ethereum balance -o "${ethTestAddr1}" -t "${ethereumZbcBridgeTokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethTestAddr1}" -t "${ethereumZbcBridgeTokenAddr}")
cli_ret "${result}" "balance" ".balance" "9" # cli_ret "${result}" "balance" ".balance" "9"
#
# eth burn # # eth burn
result=$(${CLIA} ethereum burn -m 8 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumZbcBridgeTokenAddr}") #--node_addr https://ropsten.infura.io/v3/9e83f296716142ffbaeaafc05790f26c) # result=$(${CLIA} ethereum burn -m 8 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumZbcBridgeTokenAddr}") #--node_addr https://ropsten.infura.io/v3/9e83f296716142ffbaeaafc05790f26c)
cli_ret "${result}" "burn" # cli_ret "${result}" "burn"
#
sleep 4 # sleep 4
#
# eth 这端 金额是否减少了 1 # # eth 这端 金额是否减少了 1
result=$(${CLIA} ethereum balance -o "${ethTestAddr1}" -t "${ethereumZbcBridgeTokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethTestAddr1}" -t "${ethereumZbcBridgeTokenAddr}")
cli_ret "${result}" "balance" ".balance" "1" # cli_ret "${result}" "balance" ".balance" "1"
#
sleep ${maturityDegree} # sleep ${maturityDegree}
#
# 接收的地址金额 变成了 8 # # 接收的地址金额 变成了 8
result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33ReceiverAddr}" -b "balanceOf(${chain33ReceiverAddr})") # result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33ReceiverAddr}" -b "balanceOf(${chain33ReceiverAddr})")
is_equal "${result}" "800000000" # is_equal "${result}" "800000000"
#
# chain33BridgeBank 是否减少了 1 # # chain33BridgeBank 是否减少了 1
result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33BridgeBank}" -b "balanceOf(${chain33BridgeBank})") # result=$(${Chain33Cli} evm query -a "${chain33ZbcERC20TokenAddr}" -c "${chain33BridgeBank}" -b "balanceOf(${chain33BridgeBank})")
is_equal "${result}" "100000000" # is_equal "${result}" "100000000"
#
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
# eth to chain33 在以太坊上锁定 ETH 资产,然后在 chain33 上 burn # eth to chain33 在以太坊上锁定 ETH 资产,然后在 chain33 上 burn
function TestETH2Chain33Assets() { function TestETH2Chain33Assets() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo -e "${GRE}=========== eth to chain33 在以太坊上锁定 ETH 资产,然后在 chain33 上 burn ===========${NOC}" echo -e "${GRE}=========== eth to chain33 在以太坊上锁定 ETH 资产,然后在 chain33 上 burn ===========${NOC}"
...@@ -334,75 +323,75 @@ function TestETH2Chain33Assets() { ...@@ -334,75 +323,75 @@ function TestETH2Chain33Assets() {
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} }
function TestETH2Chain33Byc() { #function TestETH2Chain33Byc() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo -e "${GRE}=========== eth to chain33 在以太坊上锁定 byc 资产,然后在 chain33 上 burn ===========${NOC}" # echo -e "${GRE}=========== eth to chain33 在以太坊上锁定 byc 资产,然后在 chain33 上 burn ===========${NOC}"
# 查询 ETH 这端 bridgeBank 地址原来是 0 # # 查询 ETH 这端 bridgeBank 地址原来是 0
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "0" # cli_ret "${result}" "balance" ".balance" "0"
#
# ETH 这端 lock 7个 YCC # # ETH 这端 lock 7个 YCC
result=$(${CLIA} ethereum lock -m 7 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum lock -m 7 -k "${ethTestAddrKey1}" -r "${chain33ReceiverAddr}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "lock" # cli_ret "${result}" "lock"
#
# eth 等待 2 个区块 # # eth 等待 2 个区块
sleep 4 # sleep 4
#
# 查询 ETH 这端 bridgeBank 地址 7 YCC # # 查询 ETH 这端 bridgeBank 地址 7 YCC
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "7" # cli_ret "${result}" "balance" ".balance" "7"
#
sleep ${maturityDegree} # sleep ${maturityDegree}
#
# chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额 # # chain33 chain33EthBridgeTokenAddr(ETH合约中)查询 lock 金额
result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})") # result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})")
# 结果是 7 * le8 # # 结果是 7 * le8
is_equal "${result}" "700000000" # is_equal "${result}" "700000000"
#
# 原来的数额 0 # # 原来的数额 0
result=$(${CLIA} ethereum balance -o "${ethReceiverAddr1}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethReceiverAddr1}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "0" # cli_ret "${result}" "balance" ".balance" "0"
#
echo '#5.burn YCC from Chain33 YCC(Chain33)-----> Ethereum' # echo '#5.burn YCC from Chain33 YCC(Chain33)-----> Ethereum'
result=$(${CLIA} chain33 burn -m 5 -k "${chain33ReceiverAddrKey}" -r "${ethReceiverAddr1}" -t "${chain33BycBridgeTokenAddr}") # result=$(${CLIA} chain33 burn -m 5 -k "${chain33ReceiverAddrKey}" -r "${ethReceiverAddr1}" -t "${chain33BycBridgeTokenAddr}")
cli_ret "${result}" "burn" # cli_ret "${result}" "burn"
#
sleep ${maturityDegree} # sleep ${maturityDegree}
#
echo "check the balance on chain33" # echo "check the balance on chain33"
result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})") # result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})")
# 结果是 7-5 * le8 # # 结果是 7-5 * le8
is_equal "${result}" "200000000" # is_equal "${result}" "200000000"
#
# 查询 ETH 这端 bridgeBank 地址 2 # # 查询 ETH 这端 bridgeBank 地址 2
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "2" # cli_ret "${result}" "balance" ".balance" "2"
#
# 更新后的金额 5 # # 更新后的金额 5
result=$(${CLIA} ethereum balance -o "${ethReceiverAddr1}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethReceiverAddr1}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "5" # cli_ret "${result}" "balance" ".balance" "5"
#
echo '#5.burn YCC from Chain33 YCC(Chain33)-----> Ethereum' # echo '#5.burn YCC from Chain33 YCC(Chain33)-----> Ethereum'
result=$(${CLIA} chain33 burn -m 2 -k "${chain33ReceiverAddrKey}" -r "${ethReceiverAddr1}" -t "${chain33BycBridgeTokenAddr}") # result=$(${CLIA} chain33 burn -m 2 -k "${chain33ReceiverAddrKey}" -r "${ethReceiverAddr1}" -t "${chain33BycBridgeTokenAddr}")
cli_ret "${result}" "burn" # cli_ret "${result}" "burn"
#
sleep ${maturityDegree} # sleep ${maturityDegree}
#
echo "check the balance on chain33" # echo "check the balance on chain33"
result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})") # result=$(${Chain33Cli} evm query -a "${chain33BycBridgeTokenAddr}" -c "${chain33TestAddr1}" -b "balanceOf(${chain33ReceiverAddr})")
# 结果是 7-5 * le8 # # 结果是 7-5 * le8
is_equal "${result}" "0" # is_equal "${result}" "0"
#
# 查询 ETH 这端 bridgeBank 地址 0 # # 查询 ETH 这端 bridgeBank 地址 0
result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethBridgeBank}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "0" # cli_ret "${result}" "balance" ".balance" "0"
#
# 更新后的金额 5 # # 更新后的金额 5
result=$(${CLIA} ethereum balance -o "${ethReceiverAddr1}" -t "${ethereumBycERC20TokenAddr}") # result=$(${CLIA} ethereum balance -o "${ethReceiverAddr1}" -t "${ethereumBycERC20TokenAddr}")
cli_ret "${result}" "balance" ".balance" "7" # cli_ret "${result}" "balance" ".balance" "7"
#
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
function TestETH2Chain33USDT() { function TestETH2Chain33USDT() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
...@@ -492,22 +481,22 @@ function offline_set_offline_token_Bty() { ...@@ -492,22 +481,22 @@ function offline_set_offline_token_Bty() {
} }
# shellcheck disable=SC2120 # shellcheck disable=SC2120
function offline_set_offline_token_Chain33Ycc() { #function offline_set_offline_token_Chain33Ycc() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo -e "${GRE}===== chain33 端 configLockedTokenOfflineSave ERC20 YCC ======${NOC}" # echo -e "${GRE}===== chain33 端 configLockedTokenOfflineSave ERC20 YCC ======${NOC}"
# echo '2:#配置自动转离线钱包(YCC, 100, 60%)' # # echo '2:#配置自动转离线钱包(YCC, 100, 60%)'
local threshold=10000000000 # local threshold=10000000000
local percents=60 # local percents=60
if [[ $# -eq 2 ]]; then # if [[ $# -eq 2 ]]; then
threshold=$1 # threshold=$1
percents=$2 # percents=$2
fi # fi
# shellcheck disable=SC2086 # # shellcheck disable=SC2086
${Boss4xCLI} chain33 offline set_offline_token -c "${chain33BridgeBank}" -t "${chain33YccERC20TokenAddr}" -s YCC -m ${threshold} -p ${percents} -k "${chain33DeployKey}" --chainID "${chain33ID}" # ${Boss4xCLI} chain33 offline set_offline_token -c "${chain33BridgeBank}" -t "${chain33YccERC20TokenAddr}" -s YCC -m ${threshold} -p ${percents} -k "${chain33DeployKey}" --chainID "${chain33ID}"
chain33_offline_send "chain33_set_offline_token.txt" # chain33_offline_send "chain33_set_offline_token.txt"
#
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
# shellcheck disable=SC2120 # shellcheck disable=SC2120
function offline_set_offline_token_Eth() { function offline_set_offline_token_Eth() {
...@@ -526,22 +515,23 @@ function offline_set_offline_token_Eth() { ...@@ -526,22 +515,23 @@ function offline_set_offline_token_Eth() {
} }
# shellcheck disable=SC2120 # shellcheck disable=SC2120
function offline_set_offline_token_EthByc() { #function offline_set_offline_token_EthByc() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
local threshold=100 # local threshold=100
local percents=40 # local percents=40
if [[ $# -eq 2 ]]; then # if [[ $# -eq 2 ]]; then
threshold=$1 # threshold=$1
percents=$2 # percents=$2
fi # fi
# shellcheck disable=SC2086 # # shellcheck disable=SC2086
${Boss4xCLI} ethereum offline set_offline_token -s BYC -m ${threshold} -p ${percents} -t "${ethereumBycERC20TokenAddr}" -c "${ethBridgeBank}" -d "${ethDeployAddr}" # ${Boss4xCLI} ethereum offline set_offline_token -s BYC -m ${threshold} -p ${percents} -t "${ethereumBycERC20TokenAddr}" -c "${ethBridgeBank}" -d "${ethDeployAddr}"
ethereum_offline_sign_send "set_offline_token.txt" # ethereum_offline_sign_send "set_offline_token.txt"
#
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
# shellcheck disable=SC2120 # shellcheck disable=SC2120
function offline_set_offline_token_EthUSDT() { function offline_set_offline_token_EthUSDT() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
local threshold=100 local threshold=100
...@@ -557,32 +547,32 @@ function offline_set_offline_token_EthUSDT() { ...@@ -557,32 +547,32 @@ function offline_set_offline_token_EthUSDT() {
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} }
function offline_transfer_multisign_Bty_test() { #function offline_transfer_multisign_Bty_test() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
# transfer test # # transfer test
# shellcheck disable=SC2154 # # shellcheck disable=SC2154
${Boss4xCLI} chain33 offline create_multisign_transfer -a 50 -r "${chain33BridgeBank}" -m "${multisignChain33Addr}" # ${Boss4xCLI} chain33 offline create_multisign_transfer -a 50 -r "${chain33BridgeBank}" -m "${multisignChain33Addr}"
# shellcheck disable=SC2154 # # shellcheck disable=SC2154
${Boss4xCLI} chain33 offline multisign_transfer -k "${chain33DeployKey}" -s "${chain33MultisignKeyA},${chain33MultisignKeyB},${chain33MultisignKeyC},${chain33MultisignKeyD}" --chainID "${chain33ID}" # ${Boss4xCLI} chain33 offline multisign_transfer -k "${chain33DeployKey}" -s "${chain33MultisignKeyA},${chain33MultisignKeyB},${chain33MultisignKeyC},${chain33MultisignKeyD}" --chainID "${chain33ID}"
chain33_offline_send "multisign_transfer.txt" # chain33_offline_send "multisign_transfer.txt"
sleep 10 # sleep 10
result=$(${Chain33Cli} asset balance -a "${chain33BridgeBank}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance) # result=$(${Chain33Cli} asset balance -a "${chain33BridgeBank}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance)
is_equal "${result}" "103.2500" # is_equal "${result}" "103.2500"
result=$(${Chain33Cli} asset balance -a "${multisignChain33Addr}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance) # result=$(${Chain33Cli} asset balance -a "${multisignChain33Addr}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance)
is_equal "${result}" "59.7500" # is_equal "${result}" "59.7500"
#
# shellcheck disable=SC2154 # # shellcheck disable=SC2154
${Boss4xCLI} chain33 offline create_multisign_transfer -a 10 -r "${chain33MultisignA}" -m "${multisignChain33Addr}" # ${Boss4xCLI} chain33 offline create_multisign_transfer -a 10 -r "${chain33MultisignA}" -m "${multisignChain33Addr}"
# shellcheck disable=SC2154 # # shellcheck disable=SC2154
${Boss4xCLI} chain33 offline multisign_transfer -k "${chain33DeployKey}" -s "${chain33MultisignKeyA},${chain33MultisignKeyB},${chain33MultisignKeyC},${chain33MultisignKeyD}" --chainID "${chain33ID}" # ${Boss4xCLI} chain33 offline multisign_transfer -k "${chain33DeployKey}" -s "${chain33MultisignKeyA},${chain33MultisignKeyB},${chain33MultisignKeyC},${chain33MultisignKeyD}" --chainID "${chain33ID}"
chain33_offline_send "multisign_transfer.txt" # chain33_offline_send "multisign_transfer.txt"
sleep 10 # sleep 10
result=$(${Chain33Cli} asset balance -a "${chain33MultisignA}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance) # result=$(${Chain33Cli} asset balance -a "${chain33MultisignA}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance)
is_equal "${result}" "10.0000" # is_equal "${result}" "10.0000"
result=$(${Chain33Cli} asset balance -a "${multisignChain33Addr}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance) # result=$(${Chain33Cli} asset balance -a "${multisignChain33Addr}" --asset_exec paracross --asset_symbol coins.bty -e user.p.para.evm | jq -r .balance)
is_equal "${result}" "49.7500" # is_equal "${result}" "49.7500"
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
function coins_cross_transfer() { function coins_cross_transfer() {
local key="${1}" local key="${1}"
...@@ -660,21 +650,21 @@ function lockBty() { ...@@ -660,21 +650,21 @@ function lockBty() {
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} }
function lockChain33Ycc() { #function lockChain33Ycc() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo -e "${GRE}===== chain33 端 lock ERC20 YCC ======${NOC}" # echo -e "${GRE}===== chain33 端 lock ERC20 YCC ======${NOC}"
# echo '2:#配置自动转离线钱包(YCC, 100, 60%)' # # echo '2:#配置自动转离线钱包(YCC, 100, 60%)'
offline_set_offline_token_Chain33Ycc # offline_set_offline_token_Chain33Ycc
#
lock_chain33_ycc_multisign 30 30 0 # lock_chain33_ycc_multisign 30 30 0
lock_chain33_ycc_multisign 70 40 60 # lock_chain33_ycc_multisign 70 40 60
lock_chain33_ycc_multisign 260 120 240 # lock_chain33_ycc_multisign 260 120 240
lock_chain33_ycc_multisign 10 52 318 # lock_chain33_ycc_multisign 10 52 318
#
# transfer test # # transfer test
offline_transfer_multisign_Chain33Ycc_test # offline_transfer_multisign_Chain33Ycc_test
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
function lockEth() { function lockEth() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
...@@ -695,26 +685,26 @@ function lockEth() { ...@@ -695,26 +685,26 @@ function lockEth() {
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} }
function lockEthByc() { #function lockEthByc() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo -e "${GRE}===== ethereum 端 lock ERC20 Byc ======${NOC}" # echo -e "${GRE}===== ethereum 端 lock ERC20 Byc ======${NOC}"
# echo '2:#配置自动转离线钱包(ycc, 100, 40%)' # # echo '2:#配置自动转离线钱包(ycc, 100, 40%)'
offline_set_offline_token_EthByc # offline_set_offline_token_EthByc
# 重启 nonce 会不统一 要重启一下 # # 重启 nonce 会不统一 要重启一下
restart_ebrelayerA # restart_ebrelayerA
#
lock_ethereum_byc_multisign 70 70 0 # lock_ethereum_byc_multisign 70 70 0
lock_ethereum_byc_multisign 30 60 40 # lock_ethereum_byc_multisign 30 60 40
lock_ethereum_byc_multisign 60 72 88 # lock_ethereum_byc_multisign 60 72 88
#
# multisignEthAddr 要有手续费 # # multisignEthAddr 要有手续费
${CLIA} ethereum transfer -k "${ethDeployKey}" -m 10 -r "${multisignEthAddr}" # ${CLIA} ethereum transfer -k "${ethDeployKey}" -m 10 -r "${multisignEthAddr}"
sleep 10 # sleep 10
#
# transfer # # transfer
offline_transfer_multisign_EthByc # offline_transfer_multisign_EthByc
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}" # echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
} #}
function lockEthUSDT() { function lockEthUSDT() {
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}" echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
...@@ -790,8 +780,8 @@ function StartDockerRelayerDeploy() { ...@@ -790,8 +780,8 @@ function StartDockerRelayerDeploy() {
InitAndOfflineDeploy InitAndOfflineDeploy
# 设置 ethereum symbol # 设置 ethereum symbol
${Boss4xCLI} ethereum offline set_symbol -s "ETH" -c "${ethBridgeBank}" -d "${ethDeployAddr}" # ${Boss4xCLI} ethereum offline set_symbol -s "ETH" -c "${ethBridgeBank}" -d "${ethDeployAddr}"
ethereum_offline_sign_send "set_symbol.txt" # ethereum_offline_sign_send "set_symbol.txt"
# 设置离线多签数据 # 设置离线多签数据
Chain33Cli=${MainCli} Chain33Cli=${MainCli}
...@@ -821,12 +811,12 @@ function StartDockerRelayerDeploy() { ...@@ -821,12 +811,12 @@ function StartDockerRelayerDeploy() {
# InitTokenAddr # InitTokenAddr
offline_create_bridge_token_eth_BTY offline_create_bridge_token_eth_BTY
offline_create_bridge_token_chain33_ETH "ETH" offline_create_bridge_token_chain33_ETH "ETH"
offline_deploy_erc20_eth_BYC # offline_deploy_erc20_eth_BYC
offline_create_bridge_token_chain33_BYC # offline_create_bridge_token_chain33_BYC
offline_deploy_erc20_chain33_YCC # offline_deploy_erc20_chain33_YCC
offline_create_bridge_token_eth_YCC # offline_create_bridge_token_eth_YCC
offline_deploy_erc20_chain33_ZBC # offline_deploy_erc20_chain33_ZBC
offline_create_bridge_token_eth_ZBC # offline_create_bridge_token_eth_ZBC
# offline_deploy_erc20_eth_USDT # offline_deploy_erc20_eth_USDT
offline_deploy_erc20_create_tether_usdt_USDT offline_deploy_erc20_create_tether_usdt_USDT
offline_create_bridge_token_chain33_USDT offline_create_bridge_token_chain33_USDT
...@@ -834,10 +824,10 @@ function StartDockerRelayerDeploy() { ...@@ -834,10 +824,10 @@ function StartDockerRelayerDeploy() {
# shellcheck disable=SC2086 # shellcheck disable=SC2086
{ {
docker cp "${chain33EthBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33EthBridgeTokenAddr}.abi docker cp "${chain33EthBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33EthBridgeTokenAddr}.abi
docker cp "${chain33BycBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33BycBridgeTokenAddr}.abi # docker cp "${chain33BycBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33BycBridgeTokenAddr}.abi
docker cp "${chain33USDTBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33USDTBridgeTokenAddr}.abi docker cp "${chain33USDTBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33USDTBridgeTokenAddr}.abi
docker cp "${chain33YccERC20TokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33YccERC20TokenAddr}.abi # docker cp "${chain33YccERC20TokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${chain33YccERC20TokenAddr}.abi
docker cp "${ethereumYccBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${ethereumYccBridgeTokenAddr}.abi # docker cp "${ethereumYccBridgeTokenAddr}.abi" "${dockerNamePrefix}_ebrelayera_1":/root/${ethereumYccBridgeTokenAddr}.abi
} }
# 重启,因为relayerA的验证人地址和部署人的地址是一样的,所以需要重新启动relayer,更新nonce # 重启,因为relayerA的验证人地址和部署人的地址是一样的,所以需要重新启动relayer,更新nonce
...@@ -855,14 +845,8 @@ function echo_addrs() { ...@@ -855,14 +845,8 @@ function echo_addrs() {
echo -e "${GRE}chain33BtyERC20TokenAddr: ${chain33BtyERC20TokenAddr} ${NOC}" echo -e "${GRE}chain33BtyERC20TokenAddr: ${chain33BtyERC20TokenAddr} ${NOC}"
echo -e "${GRE}chain33EthBridgeTokenAddr: ${chain33EthBridgeTokenAddr} ${NOC}" echo -e "${GRE}chain33EthBridgeTokenAddr: ${chain33EthBridgeTokenAddr} ${NOC}"
echo -e "${GRE}ethereumBtyBridgeTokenAddr: ${ethereumBtyBridgeTokenAddr} ${NOC}" echo -e "${GRE}ethereumBtyBridgeTokenAddr: ${ethereumBtyBridgeTokenAddr} ${NOC}"
echo -e "${GRE}ethereumBycERC20TokenAddr: ${ethereumBycERC20TokenAddr} ${NOC}"
echo -e "${GRE}chain33BycBridgeTokenAddr: ${chain33BycBridgeTokenAddr} ${NOC}"
echo -e "${GRE}ethereumUSDTERC20TokenAddr: ${ethereumUSDTERC20TokenAddr} ${NOC}" echo -e "${GRE}ethereumUSDTERC20TokenAddr: ${ethereumUSDTERC20TokenAddr} ${NOC}"
echo -e "${GRE}chain33USDTBridgeTokenAddr: ${chain33USDTBridgeTokenAddr} ${NOC}" echo -e "${GRE}chain33USDTBridgeTokenAddr: ${chain33USDTBridgeTokenAddr} ${NOC}"
echo -e "${GRE}chain33YccERC20TokenAddr: ${chain33YccERC20TokenAddr} ${NOC}"
echo -e "${GRE}ethereumYccBridgeTokenAddr: ${ethereumYccBridgeTokenAddr} ${NOC}"
echo -e "${GRE}chain33ZbcERC20TokenAddr: ${chain33ZbcERC20TokenAddr} ${NOC}"
echo -e "${GRE}ethereumZbcBridgeTokenAddr: ${ethereumZbcBridgeTokenAddr} ${NOC}"
echo -e "${GRE}multisignChain33Addr: ${multisignChain33Addr} ${NOC}" echo -e "${GRE}multisignChain33Addr: ${multisignChain33Addr} ${NOC}"
echo -e "${GRE}multisignEthAddr: ${multisignEthAddr} ${NOC}" echo -e "${GRE}multisignEthAddr: ${multisignEthAddr} ${NOC}"
# shellcheck disable=SC2154 # shellcheck disable=SC2154
...@@ -913,21 +897,15 @@ function test_all() { ...@@ -913,21 +897,15 @@ function test_all() {
Chain33Cli=${Para8901Cli} Chain33Cli=${Para8901Cli}
TestChain33ToEthAssets TestChain33ToEthAssets
TestETH2Chain33Assets TestETH2Chain33Assets
TestChain33ToEthZBCAssets
TestETH2Chain33Byc
TestETH2Chain33USDT TestETH2Chain33USDT
Chain33Cli=${Para8901Cli} Chain33Cli=${Para8901Cli}
lockBty lockBty
lockChain33Ycc
lockEth lockEth
lockEthByc
lockEthUSDT lockEthUSDT
# 离线多签地址转入阈值设大 # 离线多签地址转入阈值设大
offline_set_offline_token_Bty 100000000000000 10 offline_set_offline_token_Bty 100000000000000 10
offline_set_offline_token_Chain33Ycc 100000000000000 10
offline_set_offline_token_Eth 100000000000000 10 offline_set_offline_token_Eth 100000000000000 10
offline_set_offline_token_EthByc 100000000000000 10
offline_set_offline_token_EthUSDT 100000000000000 10 offline_set_offline_token_EthUSDT 100000000000000 10
} }
...@@ -70,17 +70,17 @@ function InitAndOfflineDeploy() { ...@@ -70,17 +70,17 @@ function InitAndOfflineDeploy() {
# 在 Eth 上部署合约 # 在 Eth 上部署合约
# shellcheck disable=SC2154 # shellcheck disable=SC2154
${Boss4xCLI} ethereum offline create -p "25,25,25,25" -o "${ethDeployAddr}" -v "${ethValidatorAddra},${ethValidatorAddrb},${ethValidatorAddrc},${ethValidatorAddrd}" ${Boss4xCLI} ethereum offline create -s "ETH" -p "25,25,25,25" -o "${ethDeployAddr}" -v "${ethValidatorAddra},${ethValidatorAddrb},${ethValidatorAddrc},${ethValidatorAddrd}"
${Boss4xCLI} ethereum offline sign -k "${ethDeployKey}" ${Boss4xCLI} ethereum offline sign -k "${ethDeployKey}"
result=$(${Boss4xCLI} ethereum offline send -f "deploysigntxs.txt") result=$(${Boss4xCLI} ethereum offline send -f "deploysigntxs.txt")
for i in {0..7}; do for i in {0..7}; do
hash=$(echo "${result}" | jq -r ".[$i].TxHash") hash=$(echo "${result}" | jq -r ".[$i].TxHash")
check_eth_tx "${hash}" check_eth_tx "${hash}"
done done
BridgeRegistryOnEth=$(echo "${result}" | jq -r ".[6].ContractAddr")
ethBridgeBank=$(echo "${result}" | jq -r ".[3].ContractAddr") ethBridgeBank=$(echo "${result}" | jq -r ".[3].ContractAddr")
BridgeRegistryOnEth=$(echo "${result}" | jq -r ".[7].ContractAddr")
# shellcheck disable=SC2034 # shellcheck disable=SC2034
multisignEthAddr=$(echo "${result}" | jq -r ".[7].ContractAddr") multisignEthAddr=$(echo "${result}" | jq -r ".[8].ContractAddr")
${CLIA} ethereum multisign set_multiSign -a "${multisignEthAddr}" ${CLIA} ethereum multisign set_multiSign -a "${multisignEthAddr}"
# 拷贝 BridgeRegistry.abi 和 BridgeBank.abi # 拷贝 BridgeRegistry.abi 和 BridgeBank.abi
......
...@@ -16,7 +16,6 @@ message SyncTxConfig { ...@@ -16,7 +16,6 @@ message SyncTxConfig {
int64 startSyncHeight = 10; int64 startSyncHeight = 10;
int64 startSyncSequence = 11; int64 startSyncSequence = 11;
string startSyncHash = 12; string startSyncHash = 12;
repeated string contracts = 13;
} }
message Log { message Log {
......
...@@ -5,8 +5,6 @@ ChainName="" #链的名称,用来区分主链和平行链,如user.p.xxx.,必 ...@@ -5,8 +5,6 @@ ChainName="" #链的名称,用来区分主链和平行链,如user.p.xxx.,必
JrpcBindAddr="localhost:9901" JrpcBindAddr="localhost:9901"
EthProviderCli="http://127.0.0.1:7545" EthProviderCli="http://127.0.0.1:7545"
EthProvider="ws://127.0.0.1:7545/" EthProvider="ws://127.0.0.1:7545/"
#EthProvider="wss://rinkeby.infura.io/ws/v3/404eb4acc421426ebeb6e92c7ce9a270"
#EthProvider="wss://ropsten.infura.io/ws/v3/404eb4acc421426ebeb6e92c7ce9a270"
EthMaturityDegree=10 EthMaturityDegree=10
EthBlockFetchPeriod=5000 EthBlockFetchPeriod=5000
BridgeRegistryOnChain33="" BridgeRegistryOnChain33=""
...@@ -22,11 +20,7 @@ dbdriver="leveldb" ...@@ -22,11 +20,7 @@ dbdriver="leveldb"
dbPath="datadir" dbPath="datadir"
dbCache=64 dbCache=64
fetchHeightPeriodMs=5000 fetchHeightPeriodMs=5000
contracts=["165UZpSHske8hryahjM91kAWMJRW47Hn7E"]
#如果需要配置起始的块的信息,则为了保持一致性,三项缺一不可,或者都不配置 #如果需要配置起始的块的信息,则为了保持一致性,三项缺一不可,或者都不配置
#startSyncHeight=24531
#startSyncSequence=24531
#startSyncHash="0xb96168940ceebc12dcf4a4911ec8f509344f5c8591af37a49f4fb5f433093d2e"
startSyncHeight=0 startSyncHeight=0
startSyncSequence=0 startSyncSequence=0
startSyncHash="" startSyncHash=""
...@@ -34,8 +28,6 @@ startSyncHash="" ...@@ -34,8 +28,6 @@ startSyncHash=""
[deploy4chain33] [deploy4chain33]
#合约部署人员私钥,用于部署合约时签名使用 #合约部署人员私钥,用于部署合约时签名使用
operatorAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt" operatorAddr="14KEKbYtKKQm4wMthSK9J4La4nAiidGozt"
#合约部署人员私钥,用于部署合约时签名使用
deployerPrivateKey="0xcc38546e9e659d15e6b4893f0ab32a06d103931a8230b0bde71459d2b27d6944"
#验证人地址,至少配置3个以上,即大于等于3个 #验证人地址,至少配置3个以上,即大于等于3个
validatorsAddr=["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "13KTf57aCkVVJYNJBXBBveiA5V811SrLcT", "1JQwQWsShTHC4zxHzbUfYQK4kRBriUQdEe", "1NHuKqoKe3hyv52PF8XBAyaTmJWAqA2Jbb"] validatorsAddr=["14KEKbYtKKQm4wMthSK9J4La4nAiidGozt", "13KTf57aCkVVJYNJBXBBveiA5V811SrLcT", "1JQwQWsShTHC4zxHzbUfYQK4kRBriUQdEe", "1NHuKqoKe3hyv52PF8XBAyaTmJWAqA2Jbb"]
#验证人权重 #验证人权重
...@@ -44,8 +36,6 @@ initPowers=[96, 1, 1, 1] ...@@ -44,8 +36,6 @@ initPowers=[96, 1, 1, 1]
[deploy] [deploy]
#合约部署人员私钥,用于部署合约时签名使用 #合约部署人员私钥,用于部署合约时签名使用
operatorAddr="0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a" operatorAddr="0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a"
#合约部署人员私钥,用于部署合约时签名使用
deployerPrivateKey="8656d2bc732a8a816a461ba5e2d8aac7c7f85c26a813df30d5327210465eb230"
#验证人地址,至少配置3个以上,即大于等于3个 #验证人地址,至少配置3个以上,即大于等于3个
validatorsAddr=["0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"] validatorsAddr=["0x92C8b16aFD6d423652559C6E266cBE1c29Bfd84f", "0x0df9a824699bc5878232c9e612fe1a5346a5a368", "0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1", "0xd9dab021e74ecf475788ed7b61356056b2095830"]
#验证人权重 #验证人权重
......
// Code generated by protoc-gen-go. DO NOT EDIT. // Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.23.0
// protoc v3.9.1
// source: config.proto // source: config.proto
package types package types
import ( import (
reflect "reflect" fmt "fmt"
sync "sync"
proto "github.com/golang/protobuf/proto" proto "github.com/golang/protobuf/proto"
protoreflect "google.golang.org/protobuf/reflect/protoreflect" math "math"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
) )
const ( // Reference imports to suppress errors if they are not otherwise used.
// Verify that this generated code is sufficiently up-to-date. var _ = proto.Marshal
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) var _ = fmt.Errorf
// Verify that runtime/protoimpl is sufficiently up-to-date. var _ = math.Inf
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// This is a compile-time assertion that a sufficiently up-to-date version // This is a compile-time assertion to ensure that this generated file
// of the legacy proto package is being used. // is compatible with the proto package it is being compiled against.
const _ = proto.ProtoPackageIsVersion4 // A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type SyncTxConfig struct { type SyncTxConfig struct {
state protoimpl.MessageState Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"`
sizeCache protoimpl.SizeCache PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"`
unknownFields protoimpl.UnknownFields PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"`
Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"` MaturityDegree int32 `protobuf:"varint,5,opt,name=maturityDegree,proto3" json:"maturityDegree,omitempty"`
PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"` Dbdriver string `protobuf:"bytes,6,opt,name=dbdriver,proto3" json:"dbdriver,omitempty"`
PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"` DbPath string `protobuf:"bytes,7,opt,name=dbPath,proto3" json:"dbPath,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"` DbCache int32 `protobuf:"varint,8,opt,name=dbCache,proto3" json:"dbCache,omitempty"`
MaturityDegree int32 `protobuf:"varint,5,opt,name=maturityDegree,proto3" json:"maturityDegree,omitempty"` FetchHeightPeriodMs int64 `protobuf:"varint,9,opt,name=fetchHeightPeriodMs,proto3" json:"fetchHeightPeriodMs,omitempty"`
Dbdriver string `protobuf:"bytes,6,opt,name=dbdriver,proto3" json:"dbdriver,omitempty"` //数据库类型 StartSyncHeight int64 `protobuf:"varint,10,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"`
DbPath string `protobuf:"bytes,7,opt,name=dbPath,proto3" json:"dbPath,omitempty"` //数据库存储目录 StartSyncSequence int64 `protobuf:"varint,11,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"`
DbCache int32 `protobuf:"varint,8,opt,name=dbCache,proto3" json:"dbCache,omitempty"` //数据库缓存大小 StartSyncHash string `protobuf:"bytes,12,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"`
FetchHeightPeriodMs int64 `protobuf:"varint,9,opt,name=fetchHeightPeriodMs,proto3" json:"fetchHeightPeriodMs,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
StartSyncHeight int64 `protobuf:"varint,10,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"` XXX_unrecognized []byte `json:"-"`
StartSyncSequence int64 `protobuf:"varint,11,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"` XXX_sizecache int32 `json:"-"`
StartSyncHash string `protobuf:"bytes,12,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"` }
Contracts []string `protobuf:"bytes,13,rep,name=contracts,proto3" json:"contracts,omitempty"`
func (m *SyncTxConfig) Reset() { *m = SyncTxConfig{} }
func (m *SyncTxConfig) String() string { return proto.CompactTextString(m) }
func (*SyncTxConfig) ProtoMessage() {}
func (*SyncTxConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{0}
} }
func (x *SyncTxConfig) Reset() { func (m *SyncTxConfig) XXX_Unmarshal(b []byte) error {
*x = SyncTxConfig{} return xxx_messageInfo_SyncTxConfig.Unmarshal(m, b)
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
} }
func (m *SyncTxConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (x *SyncTxConfig) String() string { return xxx_messageInfo_SyncTxConfig.Marshal(b, m, deterministic)
return protoimpl.X.MessageStringOf(x)
} }
func (m *SyncTxConfig) XXX_Merge(src proto.Message) {
func (*SyncTxConfig) ProtoMessage() {} xxx_messageInfo_SyncTxConfig.Merge(m, src)
func (x *SyncTxConfig) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
} }
func (m *SyncTxConfig) XXX_Size() int {
// Deprecated: Use SyncTxConfig.ProtoReflect.Descriptor instead. return xxx_messageInfo_SyncTxConfig.Size(m)
func (*SyncTxConfig) Descriptor() ([]byte, []int) { }
return file_config_proto_rawDescGZIP(), []int{0} func (m *SyncTxConfig) XXX_DiscardUnknown() {
xxx_messageInfo_SyncTxConfig.DiscardUnknown(m)
} }
func (x *SyncTxConfig) GetChain33Host() string { var xxx_messageInfo_SyncTxConfig proto.InternalMessageInfo
if x != nil {
return x.Chain33Host func (m *SyncTxConfig) GetChain33Host() string {
if m != nil {
return m.Chain33Host
} }
return "" return ""
} }
func (x *SyncTxConfig) GetPushHost() string { func (m *SyncTxConfig) GetPushHost() string {
if x != nil { if m != nil {
return x.PushHost return m.PushHost
} }
return "" return ""
} }
func (x *SyncTxConfig) GetPushName() string { func (m *SyncTxConfig) GetPushName() string {
if x != nil { if m != nil {
return x.PushName return m.PushName
} }
return "" return ""
} }
func (x *SyncTxConfig) GetPushBind() string { func (m *SyncTxConfig) GetPushBind() string {
if x != nil { if m != nil {
return x.PushBind return m.PushBind
} }
return "" return ""
} }
func (x *SyncTxConfig) GetMaturityDegree() int32 { func (m *SyncTxConfig) GetMaturityDegree() int32 {
if x != nil { if m != nil {
return x.MaturityDegree return m.MaturityDegree
} }
return 0 return 0
} }
func (x *SyncTxConfig) GetDbdriver() string { func (m *SyncTxConfig) GetDbdriver() string {
if x != nil { if m != nil {
return x.Dbdriver return m.Dbdriver
} }
return "" return ""
} }
func (x *SyncTxConfig) GetDbPath() string { func (m *SyncTxConfig) GetDbPath() string {
if x != nil { if m != nil {
return x.DbPath return m.DbPath
} }
return "" return ""
} }
func (x *SyncTxConfig) GetDbCache() int32 { func (m *SyncTxConfig) GetDbCache() int32 {
if x != nil { if m != nil {
return x.DbCache return m.DbCache
} }
return 0 return 0
} }
func (x *SyncTxConfig) GetFetchHeightPeriodMs() int64 { func (m *SyncTxConfig) GetFetchHeightPeriodMs() int64 {
if x != nil { if m != nil {
return x.FetchHeightPeriodMs return m.FetchHeightPeriodMs
} }
return 0 return 0
} }
func (x *SyncTxConfig) GetStartSyncHeight() int64 { func (m *SyncTxConfig) GetStartSyncHeight() int64 {
if x != nil { if m != nil {
return x.StartSyncHeight return m.StartSyncHeight
} }
return 0 return 0
} }
func (x *SyncTxConfig) GetStartSyncSequence() int64 { func (m *SyncTxConfig) GetStartSyncSequence() int64 {
if x != nil { if m != nil {
return x.StartSyncSequence return m.StartSyncSequence
} }
return 0 return 0
} }
func (x *SyncTxConfig) GetStartSyncHash() string { func (m *SyncTxConfig) GetStartSyncHash() string {
if x != nil { if m != nil {
return x.StartSyncHash return m.StartSyncHash
} }
return "" return ""
} }
func (x *SyncTxConfig) GetContracts() []string {
if x != nil {
return x.Contracts
}
return nil
}
type Log struct { type Log struct {
state protoimpl.MessageState Loglevel string `protobuf:"bytes,1,opt,name=loglevel,proto3" json:"loglevel,omitempty"`
sizeCache protoimpl.SizeCache LogConsoleLevel string `protobuf:"bytes,2,opt,name=logConsoleLevel,proto3" json:"logConsoleLevel,omitempty"`
unknownFields protoimpl.UnknownFields LogFile string `protobuf:"bytes,3,opt,name=logFile,proto3" json:"logFile,omitempty"`
MaxFileSize uint32 `protobuf:"varint,4,opt,name=maxFileSize,proto3" json:"maxFileSize,omitempty"`
Loglevel string `protobuf:"bytes,1,opt,name=loglevel,proto3" json:"loglevel,omitempty"` MaxBackups uint32 `protobuf:"varint,5,opt,name=maxBackups,proto3" json:"maxBackups,omitempty"`
LogConsoleLevel string `protobuf:"bytes,2,opt,name=logConsoleLevel,proto3" json:"logConsoleLevel,omitempty"` MaxAge uint32 `protobuf:"varint,6,opt,name=maxAge,proto3" json:"maxAge,omitempty"`
LogFile string `protobuf:"bytes,3,opt,name=logFile,proto3" json:"logFile,omitempty"` LocalTime bool `protobuf:"varint,7,opt,name=localTime,proto3" json:"localTime,omitempty"`
MaxFileSize uint32 `protobuf:"varint,4,opt,name=maxFileSize,proto3" json:"maxFileSize,omitempty"` Compress bool `protobuf:"varint,8,opt,name=compress,proto3" json:"compress,omitempty"`
MaxBackups uint32 `protobuf:"varint,5,opt,name=maxBackups,proto3" json:"maxBackups,omitempty"` CallerFile bool `protobuf:"varint,9,opt,name=callerFile,proto3" json:"callerFile,omitempty"`
MaxAge uint32 `protobuf:"varint,6,opt,name=maxAge,proto3" json:"maxAge,omitempty"` CallerFunction bool `protobuf:"varint,10,opt,name=callerFunction,proto3" json:"callerFunction,omitempty"`
LocalTime bool `protobuf:"varint,7,opt,name=localTime,proto3" json:"localTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
Compress bool `protobuf:"varint,8,opt,name=compress,proto3" json:"compress,omitempty"` XXX_unrecognized []byte `json:"-"`
CallerFile bool `protobuf:"varint,9,opt,name=callerFile,proto3" json:"callerFile,omitempty"` XXX_sizecache int32 `json:"-"`
CallerFunction bool `protobuf:"varint,10,opt,name=callerFunction,proto3" json:"callerFunction,omitempty"` }
func (m *Log) Reset() { *m = Log{} }
func (m *Log) String() string { return proto.CompactTextString(m) }
func (*Log) ProtoMessage() {}
func (*Log) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{1}
} }
func (x *Log) Reset() { func (m *Log) XXX_Unmarshal(b []byte) error {
*x = Log{} return xxx_messageInfo_Log.Unmarshal(m, b)
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
} }
func (m *Log) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (x *Log) String() string { return xxx_messageInfo_Log.Marshal(b, m, deterministic)
return protoimpl.X.MessageStringOf(x)
} }
func (m *Log) XXX_Merge(src proto.Message) {
func (*Log) ProtoMessage() {} xxx_messageInfo_Log.Merge(m, src)
func (x *Log) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
} }
func (m *Log) XXX_Size() int {
// Deprecated: Use Log.ProtoReflect.Descriptor instead. return xxx_messageInfo_Log.Size(m)
func (*Log) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{1}
} }
func (m *Log) XXX_DiscardUnknown() {
xxx_messageInfo_Log.DiscardUnknown(m)
}
var xxx_messageInfo_Log proto.InternalMessageInfo
func (x *Log) GetLoglevel() string { func (m *Log) GetLoglevel() string {
if x != nil { if m != nil {
return x.Loglevel return m.Loglevel
} }
return "" return ""
} }
func (x *Log) GetLogConsoleLevel() string { func (m *Log) GetLogConsoleLevel() string {
if x != nil { if m != nil {
return x.LogConsoleLevel return m.LogConsoleLevel
} }
return "" return ""
} }
func (x *Log) GetLogFile() string { func (m *Log) GetLogFile() string {
if x != nil { if m != nil {
return x.LogFile return m.LogFile
} }
return "" return ""
} }
func (x *Log) GetMaxFileSize() uint32 { func (m *Log) GetMaxFileSize() uint32 {
if x != nil { if m != nil {
return x.MaxFileSize return m.MaxFileSize
} }
return 0 return 0
} }
func (x *Log) GetMaxBackups() uint32 { func (m *Log) GetMaxBackups() uint32 {
if x != nil { if m != nil {
return x.MaxBackups return m.MaxBackups
} }
return 0 return 0
} }
func (x *Log) GetMaxAge() uint32 { func (m *Log) GetMaxAge() uint32 {
if x != nil { if m != nil {
return x.MaxAge return m.MaxAge
} }
return 0 return 0
} }
func (x *Log) GetLocalTime() bool { func (m *Log) GetLocalTime() bool {
if x != nil { if m != nil {
return x.LocalTime return m.LocalTime
} }
return false return false
} }
func (x *Log) GetCompress() bool { func (m *Log) GetCompress() bool {
if x != nil { if m != nil {
return x.Compress return m.Compress
} }
return false return false
} }
func (x *Log) GetCallerFile() bool { func (m *Log) GetCallerFile() bool {
if x != nil { if m != nil {
return x.CallerFile return m.CallerFile
} }
return false return false
} }
func (x *Log) GetCallerFunction() bool { func (m *Log) GetCallerFunction() bool {
if x != nil { if m != nil {
return x.CallerFunction return m.CallerFunction
} }
return false return false
} }
type RelayerConfig struct { type RelayerConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
SyncTxConfig *SyncTxConfig `protobuf:"bytes,2,opt,name=syncTxConfig,proto3" json:"syncTxConfig,omitempty"` SyncTxConfig *SyncTxConfig `protobuf:"bytes,2,opt,name=syncTxConfig,proto3" json:"syncTxConfig,omitempty"`
Log *Log `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"` Log *Log `protobuf:"bytes,3,opt,name=log,proto3" json:"log,omitempty"`
JrpcBindAddr string `protobuf:"bytes,4,opt,name=jrpcBindAddr,proto3" json:"jrpcBindAddr,omitempty"` // Jrpc服务地址 JrpcBindAddr string `protobuf:"bytes,4,opt,name=jrpcBindAddr,proto3" json:"jrpcBindAddr,omitempty"`
EthProvider string `protobuf:"bytes,5,opt,name=ethProvider,proto3" json:"ethProvider,omitempty"` EthProvider string `protobuf:"bytes,5,opt,name=ethProvider,proto3" json:"ethProvider,omitempty"`
BridgeRegistry string `protobuf:"bytes,6,opt,name=bridgeRegistry,proto3" json:"bridgeRegistry,omitempty"` BridgeRegistry string `protobuf:"bytes,6,opt,name=bridgeRegistry,proto3" json:"bridgeRegistry,omitempty"`
Deploy *Deploy `protobuf:"bytes,7,opt,name=deploy,proto3" json:"deploy,omitempty"` Deploy *Deploy `protobuf:"bytes,7,opt,name=deploy,proto3" json:"deploy,omitempty"`
...@@ -307,246 +273,230 @@ type RelayerConfig struct { ...@@ -307,246 +273,230 @@ type RelayerConfig struct {
BridgeRegistryOnChain33 string `protobuf:"bytes,12,opt,name=bridgeRegistryOnChain33,proto3" json:"bridgeRegistryOnChain33,omitempty"` BridgeRegistryOnChain33 string `protobuf:"bytes,12,opt,name=bridgeRegistryOnChain33,proto3" json:"bridgeRegistryOnChain33,omitempty"`
ChainName string `protobuf:"bytes,13,opt,name=chainName,proto3" json:"chainName,omitempty"` ChainName string `protobuf:"bytes,13,opt,name=chainName,proto3" json:"chainName,omitempty"`
ChainID4Chain33 int32 `protobuf:"varint,14,opt,name=chainID4Chain33,proto3" json:"chainID4Chain33,omitempty"` ChainID4Chain33 int32 `protobuf:"varint,14,opt,name=chainID4Chain33,proto3" json:"chainID4Chain33,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (x *RelayerConfig) Reset() { func (m *RelayerConfig) Reset() { *m = RelayerConfig{} }
*x = RelayerConfig{} func (m *RelayerConfig) String() string { return proto.CompactTextString(m) }
if protoimpl.UnsafeEnabled { func (*RelayerConfig) ProtoMessage() {}
mi := &file_config_proto_msgTypes[2] func (*RelayerConfig) Descriptor() ([]byte, []int) {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) return fileDescriptor_3eaf2c85e69e9ea4, []int{2}
ms.StoreMessageInfo(mi)
}
} }
func (x *RelayerConfig) String() string { func (m *RelayerConfig) XXX_Unmarshal(b []byte) error {
return protoimpl.X.MessageStringOf(x) return xxx_messageInfo_RelayerConfig.Unmarshal(m, b)
} }
func (m *RelayerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (*RelayerConfig) ProtoMessage() {} return xxx_messageInfo_RelayerConfig.Marshal(b, m, deterministic)
func (x *RelayerConfig) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
} }
func (m *RelayerConfig) XXX_Merge(src proto.Message) {
// Deprecated: Use RelayerConfig.ProtoReflect.Descriptor instead. xxx_messageInfo_RelayerConfig.Merge(m, src)
func (*RelayerConfig) Descriptor() ([]byte, []int) { }
return file_config_proto_rawDescGZIP(), []int{2} func (m *RelayerConfig) XXX_Size() int {
return xxx_messageInfo_RelayerConfig.Size(m)
}
func (m *RelayerConfig) XXX_DiscardUnknown() {
xxx_messageInfo_RelayerConfig.DiscardUnknown(m)
} }
func (x *RelayerConfig) GetTitle() string { var xxx_messageInfo_RelayerConfig proto.InternalMessageInfo
if x != nil {
return x.Title func (m *RelayerConfig) GetTitle() string {
if m != nil {
return m.Title
} }
return "" return ""
} }
func (x *RelayerConfig) GetSyncTxConfig() *SyncTxConfig { func (m *RelayerConfig) GetSyncTxConfig() *SyncTxConfig {
if x != nil { if m != nil {
return x.SyncTxConfig return m.SyncTxConfig
} }
return nil return nil
} }
func (x *RelayerConfig) GetLog() *Log { func (m *RelayerConfig) GetLog() *Log {
if x != nil { if m != nil {
return x.Log return m.Log
} }
return nil return nil
} }
func (x *RelayerConfig) GetJrpcBindAddr() string { func (m *RelayerConfig) GetJrpcBindAddr() string {
if x != nil { if m != nil {
return x.JrpcBindAddr return m.JrpcBindAddr
} }
return "" return ""
} }
func (x *RelayerConfig) GetEthProvider() string { func (m *RelayerConfig) GetEthProvider() string {
if x != nil { if m != nil {
return x.EthProvider return m.EthProvider
} }
return "" return ""
} }
func (x *RelayerConfig) GetBridgeRegistry() string { func (m *RelayerConfig) GetBridgeRegistry() string {
if x != nil { if m != nil {
return x.BridgeRegistry return m.BridgeRegistry
} }
return "" return ""
} }
func (x *RelayerConfig) GetDeploy() *Deploy { func (m *RelayerConfig) GetDeploy() *Deploy {
if x != nil { if m != nil {
return x.Deploy return m.Deploy
} }
return nil return nil
} }
func (x *RelayerConfig) GetDeploy4Chain33() *Deploy { func (m *RelayerConfig) GetDeploy4Chain33() *Deploy {
if x != nil { if m != nil {
return x.Deploy4Chain33 return m.Deploy4Chain33
} }
return nil return nil
} }
func (x *RelayerConfig) GetEthMaturityDegree() int32 { func (m *RelayerConfig) GetEthMaturityDegree() int32 {
if x != nil { if m != nil {
return x.EthMaturityDegree return m.EthMaturityDegree
} }
return 0 return 0
} }
func (x *RelayerConfig) GetEthBlockFetchPeriod() int32 { func (m *RelayerConfig) GetEthBlockFetchPeriod() int32 {
if x != nil { if m != nil {
return x.EthBlockFetchPeriod return m.EthBlockFetchPeriod
} }
return 0 return 0
} }
func (x *RelayerConfig) GetEthProviderCli() string { func (m *RelayerConfig) GetEthProviderCli() string {
if x != nil { if m != nil {
return x.EthProviderCli return m.EthProviderCli
} }
return "" return ""
} }
func (x *RelayerConfig) GetBridgeRegistryOnChain33() string { func (m *RelayerConfig) GetBridgeRegistryOnChain33() string {
if x != nil { if m != nil {
return x.BridgeRegistryOnChain33 return m.BridgeRegistryOnChain33
} }
return "" return ""
} }
func (x *RelayerConfig) GetChainName() string { func (m *RelayerConfig) GetChainName() string {
if x != nil { if m != nil {
return x.ChainName return m.ChainName
} }
return "" return ""
} }
func (x *RelayerConfig) GetChainID4Chain33() int32 { func (m *RelayerConfig) GetChainID4Chain33() int32 {
if x != nil { if m != nil {
return x.ChainID4Chain33 return m.ChainID4Chain33
} }
return 0 return 0
} }
type SyncTxReceiptConfig struct { type SyncTxReceiptConfig struct {
state protoimpl.MessageState Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"`
sizeCache protoimpl.SizeCache PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"`
unknownFields protoimpl.UnknownFields PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"`
Chain33Host string `protobuf:"bytes,1,opt,name=chain33host,proto3" json:"chain33host,omitempty"` StartSyncHeight int64 `protobuf:"varint,5,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"`
PushHost string `protobuf:"bytes,2,opt,name=pushHost,proto3" json:"pushHost,omitempty"` StartSyncSequence int64 `protobuf:"varint,6,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"`
PushName string `protobuf:"bytes,3,opt,name=pushName,proto3" json:"pushName,omitempty"` StartSyncHash string `protobuf:"bytes,7,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"`
PushBind string `protobuf:"bytes,4,opt,name=pushBind,proto3" json:"pushBind,omitempty"` Contracts []string `protobuf:"bytes,8,rep,name=contracts,proto3" json:"contracts,omitempty"`
StartSyncHeight int64 `protobuf:"varint,5,opt,name=startSyncHeight,proto3" json:"startSyncHeight,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
StartSyncSequence int64 `protobuf:"varint,6,opt,name=startSyncSequence,proto3" json:"startSyncSequence,omitempty"` XXX_unrecognized []byte `json:"-"`
StartSyncHash string `protobuf:"bytes,7,opt,name=startSyncHash,proto3" json:"startSyncHash,omitempty"` XXX_sizecache int32 `json:"-"`
Contracts []string `protobuf:"bytes,8,rep,name=contracts,proto3" json:"contracts,omitempty"` }
func (m *SyncTxReceiptConfig) Reset() { *m = SyncTxReceiptConfig{} }
func (m *SyncTxReceiptConfig) String() string { return proto.CompactTextString(m) }
func (*SyncTxReceiptConfig) ProtoMessage() {}
func (*SyncTxReceiptConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_3eaf2c85e69e9ea4, []int{3}
} }
func (x *SyncTxReceiptConfig) Reset() { func (m *SyncTxReceiptConfig) XXX_Unmarshal(b []byte) error {
*x = SyncTxReceiptConfig{} return xxx_messageInfo_SyncTxReceiptConfig.Unmarshal(m, b)
if protoimpl.UnsafeEnabled {
mi := &file_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
} }
func (m *SyncTxReceiptConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (x *SyncTxReceiptConfig) String() string { return xxx_messageInfo_SyncTxReceiptConfig.Marshal(b, m, deterministic)
return protoimpl.X.MessageStringOf(x)
} }
func (m *SyncTxReceiptConfig) XXX_Merge(src proto.Message) {
func (*SyncTxReceiptConfig) ProtoMessage() {} xxx_messageInfo_SyncTxReceiptConfig.Merge(m, src)
func (x *SyncTxReceiptConfig) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
} }
func (m *SyncTxReceiptConfig) XXX_Size() int {
// Deprecated: Use SyncTxReceiptConfig.ProtoReflect.Descriptor instead. return xxx_messageInfo_SyncTxReceiptConfig.Size(m)
func (*SyncTxReceiptConfig) Descriptor() ([]byte, []int) {
return file_config_proto_rawDescGZIP(), []int{3}
} }
func (m *SyncTxReceiptConfig) XXX_DiscardUnknown() {
xxx_messageInfo_SyncTxReceiptConfig.DiscardUnknown(m)
}
var xxx_messageInfo_SyncTxReceiptConfig proto.InternalMessageInfo
func (x *SyncTxReceiptConfig) GetChain33Host() string { func (m *SyncTxReceiptConfig) GetChain33Host() string {
if x != nil { if m != nil {
return x.Chain33Host return m.Chain33Host
} }
return "" return ""
} }
func (x *SyncTxReceiptConfig) GetPushHost() string { func (m *SyncTxReceiptConfig) GetPushHost() string {
if x != nil { if m != nil {
return x.PushHost return m.PushHost
} }
return "" return ""
} }
func (x *SyncTxReceiptConfig) GetPushName() string { func (m *SyncTxReceiptConfig) GetPushName() string {
if x != nil { if m != nil {
return x.PushName return m.PushName
} }
return "" return ""
} }
func (x *SyncTxReceiptConfig) GetPushBind() string { func (m *SyncTxReceiptConfig) GetPushBind() string {
if x != nil { if m != nil {
return x.PushBind return m.PushBind
} }
return "" return ""
} }
func (x *SyncTxReceiptConfig) GetStartSyncHeight() int64 { func (m *SyncTxReceiptConfig) GetStartSyncHeight() int64 {
if x != nil { if m != nil {
return x.StartSyncHeight return m.StartSyncHeight
} }
return 0 return 0
} }
func (x *SyncTxReceiptConfig) GetStartSyncSequence() int64 { func (m *SyncTxReceiptConfig) GetStartSyncSequence() int64 {
if x != nil { if m != nil {
return x.StartSyncSequence return m.StartSyncSequence
} }
return 0 return 0
} }
func (x *SyncTxReceiptConfig) GetStartSyncHash() string { func (m *SyncTxReceiptConfig) GetStartSyncHash() string {
if x != nil { if m != nil {
return x.StartSyncHash return m.StartSyncHash
} }
return "" return ""
} }
func (x *SyncTxReceiptConfig) GetContracts() []string { func (m *SyncTxReceiptConfig) GetContracts() []string {
if x != nil { if m != nil {
return x.Contracts return m.Contracts
} }
return nil return nil
} }
type Deploy struct { type Deploy struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
//操作管理员地址 //操作管理员地址
OperatorAddr string `protobuf:"bytes,1,opt,name=operatorAddr,proto3" json:"operatorAddr,omitempty"` OperatorAddr string `protobuf:"bytes,1,opt,name=operatorAddr,proto3" json:"operatorAddr,omitempty"`
//合约部署人员私钥,用于部署合约时签名使用 //合约部署人员私钥,用于部署合约时签名使用
...@@ -554,307 +504,124 @@ type Deploy struct { ...@@ -554,307 +504,124 @@ type Deploy struct {
//验证人地址 //验证人地址
ValidatorsAddr []string `protobuf:"bytes,3,rep,name=validatorsAddr,proto3" json:"validatorsAddr,omitempty"` ValidatorsAddr []string `protobuf:"bytes,3,rep,name=validatorsAddr,proto3" json:"validatorsAddr,omitempty"`
//验证人权重 //验证人权重
InitPowers []int64 `protobuf:"varint,4,rep,packed,name=initPowers,proto3" json:"initPowers,omitempty"` InitPowers []int64 `protobuf:"varint,4,rep,packed,name=initPowers,proto3" json:"initPowers,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (x *Deploy) Reset() { func (m *Deploy) Reset() { *m = Deploy{} }
*x = Deploy{} func (m *Deploy) String() string { return proto.CompactTextString(m) }
if protoimpl.UnsafeEnabled { func (*Deploy) ProtoMessage() {}
mi := &file_config_proto_msgTypes[4] func (*Deploy) Descriptor() ([]byte, []int) {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) return fileDescriptor_3eaf2c85e69e9ea4, []int{4}
ms.StoreMessageInfo(mi)
}
} }
func (x *Deploy) String() string { func (m *Deploy) XXX_Unmarshal(b []byte) error {
return protoimpl.X.MessageStringOf(x) return xxx_messageInfo_Deploy.Unmarshal(m, b)
} }
func (m *Deploy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
func (*Deploy) ProtoMessage() {} return xxx_messageInfo_Deploy.Marshal(b, m, deterministic)
func (x *Deploy) ProtoReflect() protoreflect.Message {
mi := &file_config_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
} }
func (m *Deploy) XXX_Merge(src proto.Message) {
// Deprecated: Use Deploy.ProtoReflect.Descriptor instead. xxx_messageInfo_Deploy.Merge(m, src)
func (*Deploy) Descriptor() ([]byte, []int) { }
return file_config_proto_rawDescGZIP(), []int{4} func (m *Deploy) XXX_Size() int {
return xxx_messageInfo_Deploy.Size(m)
}
func (m *Deploy) XXX_DiscardUnknown() {
xxx_messageInfo_Deploy.DiscardUnknown(m)
} }
func (x *Deploy) GetOperatorAddr() string { var xxx_messageInfo_Deploy proto.InternalMessageInfo
if x != nil {
return x.OperatorAddr func (m *Deploy) GetOperatorAddr() string {
if m != nil {
return m.OperatorAddr
} }
return "" return ""
} }
func (x *Deploy) GetDeployerPrivateKey() string { func (m *Deploy) GetDeployerPrivateKey() string {
if x != nil { if m != nil {
return x.DeployerPrivateKey return m.DeployerPrivateKey
} }
return "" return ""
} }
func (x *Deploy) GetValidatorsAddr() []string { func (m *Deploy) GetValidatorsAddr() []string {
if x != nil { if m != nil {
return x.ValidatorsAddr return m.ValidatorsAddr
} }
return nil return nil
} }
func (x *Deploy) GetInitPowers() []int64 { func (m *Deploy) GetInitPowers() []int64 {
if x != nil { if m != nil {
return x.InitPowers return m.InitPowers
} }
return nil return nil
} }
var File_config_proto protoreflect.FileDescriptor func init() {
proto.RegisterType((*SyncTxConfig)(nil), "types.SyncTxConfig")
var file_config_proto_rawDesc = []byte{ proto.RegisterType((*Log)(nil), "types.Log")
0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, proto.RegisterType((*RelayerConfig)(nil), "types.RelayerConfig")
0x74, 0x79, 0x70, 0x65, 0x73, 0x22, 0xc8, 0x03, 0x0a, 0x0c, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x78, proto.RegisterType((*SyncTxReceiptConfig)(nil), "types.SyncTxReceiptConfig")
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, proto.RegisterType((*Deploy)(nil), "types.Deploy")
0x33, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, }
0x69, 0x6e, 0x33, 0x33, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68,
0x48, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, func init() { proto.RegisterFile("config.proto", fileDescriptor_3eaf2c85e69e9ea4) }
0x48, 0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, var fileDescriptor_3eaf2c85e69e9ea4 = []byte{
0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x42, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, // 772 bytes of a gzipped FileDescriptorProto
0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x55, 0xc1, 0x6e, 0xdb, 0x46,
0x6d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x18, 0x05, 0x10, 0x85, 0x4c, 0x4b, 0x96, 0x56, 0x92, 0x8b, 0xae, 0x8b, 0x96, 0x28, 0x8c, 0x42, 0x10, 0xda,
0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x42, 0x87, 0x42, 0x2d, 0x6c, 0x17, 0xc9, 0xd5, 0x92, 0x61, 0x38, 0x88, 0x9d, 0x08, 0x6b, 0x9f,
0x67, 0x72, 0x65, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x62, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0x72, 0x5b, 0x2d, 0xc7, 0xe4, 0xc6, 0x2b, 0x2e, 0xb3, 0x5c, 0x29, 0x52, 0xbe, 0x27, 0x40, 0x80,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x62, 0x64, 0x72, 0x69, 0x76, 0x65, 0x72, 0xfc, 0x45, 0x7e, 0x21, 0x5f, 0x14, 0xec, 0x90, 0x94, 0x28, 0x5a, 0x01, 0x92, 0x53, 0x6e, 0x9c,
0x12, 0x16, 0x0a, 0x06, 0x64, 0x62, 0x50, 0x61, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0xf7, 0x06, 0xa3, 0x9d, 0x37, 0xf3, 0x46, 0xa4, 0x23, 0x74, 0x7c, 0x2f, 0xc3, 0x61, 0x62, 0xb4,
0x52, 0x06, 0x64, 0x62, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x62, 0x43, 0x61, 0xd5, 0xb4, 0x6e, 0x57, 0x09, 0xa4, 0xfd, 0x8f, 0x1e, 0xe9, 0xdc, 0xae, 0x62, 0x71, 0xb7, 0x1c,
0x63, 0x68, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x64, 0x62, 0x43, 0x61, 0x63, 0x23, 0x4b, 0x7b, 0xa4, 0x2d, 0x22, 0x2e, 0xe3, 0xd3, 0xd3, 0x48, 0xa7, 0xd6, 0xaf, 0xf5, 0x6a,
0x68, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x48, 0x65, 0x69, 0x67, 0x68, 0x83, 0x16, 0x2b, 0x43, 0xf4, 0x77, 0xd2, 0x4c, 0xe6, 0x69, 0x74, 0xe5, 0xe8, 0x3d, 0xa4, 0xd7,
0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x4d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x71, 0xc1, 0xbd, 0xe0, 0x33, 0xf0, 0xbd, 0x0d, 0xe7, 0xe2, 0x82, 0x1b, 0xc9, 0x38, 0xf0, 0xf7,
0x13, 0x66, 0x65, 0x74, 0x63, 0x68, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x65, 0x72, 0x69, 0x37, 0x9c, 0x8b, 0xe9, 0xdf, 0xe4, 0x70, 0xc6, 0xed, 0xdc, 0x48, 0xbb, 0xba, 0x80, 0xd0, 0x00,
0x6f, 0x64, 0x4d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0xf8, 0xf5, 0x5e, 0x6d, 0x50, 0x67, 0x15, 0xd4, 0xd5, 0x08, 0xa6, 0x81, 0x91, 0x0b, 0x30, 0x7e,
0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x23, 0xab, 0x51, 0xc4, 0xf4, 0x57, 0xd2, 0x08, 0xa6, 0x13, 0x6e, 0x23, 0xff, 0x00, 0x99, 0x3c,
0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x2c, 0xa2, 0x3e, 0x39, 0x08, 0xa6, 0x63, 0x2e, 0x22, 0xf0, 0x9b, 0x58, 0xb4, 0x08, 0xe9, 0x7f, 0xe4,
0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65, 0xe8, 0x1e, 0xac, 0x88, 0xae, 0x40, 0x86, 0x91, 0x9d, 0x80, 0x91, 0x3a, 0xb8, 0x49, 0xfd, 0x56,
0x6e, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0xaf, 0x36, 0xf0, 0xd8, 0x2e, 0x8a, 0x0e, 0xc8, 0x4f, 0xa9, 0xe5, 0xc6, 0x3a, 0xc9, 0x32, 0xca,
0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x27, 0x98, 0x5d, 0x85, 0xe9, 0x3f, 0xe4, 0xe7, 0x35, 0x74, 0x0b, 0x6f, 0xe6, 0x10, 0x0b, 0xf0,
0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61, 0x73, 0x68, 0x18, 0x0c, 0x20, 0xdb, 0x98, 0xfb, 0x98, 0xa0, 0x7f, 0x92, 0xee, 0xa6, 0x00, 0x4f, 0x23, 0xbf, 0x83, 0x2d, 0x6c,
0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61, 0x83, 0xfd, 0x4f, 0x7b, 0xc4, 0xbb, 0xd6, 0xa1, 0x53, 0x41, 0xe9, 0x50, 0xc1, 0x02, 0x54, 0x3e,
0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x18, 0xa0, 0x75, 0xec, 0x5e, 0xa8, 0x74, 0x38, 0xd6, 0x71, 0xaa, 0x15, 0x5c, 0x63, 0x4a, 0x36, 0xa4,
0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x73, 0x2a, 0xec, 0x74, 0x51, 0x3a, 0xbc, 0x94, 0xaa, 0x18, 0x55, 0x11, 0xba, 0x1d, 0x98, 0xf1, 0xa5,
0x22, 0xc1, 0x02, 0x0a, 0x03, 0x4c, 0x6f, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6c, 0xfb, 0xbc, 0x95, 0xef, 0x00, 0x87, 0xd5, 0x65, 0x65, 0x88, 0xfe, 0x41, 0xc8, 0x8c, 0x2f, 0x47,
0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x67, 0x6c, 0x5c, 0x3c, 0xcc, 0x93, 0x14, 0x67, 0xd5, 0x65, 0x25, 0xc4, 0xcd, 0x62, 0xc6, 0x97, 0xe7, 0x21,
0x65, 0x76, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6c, 0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0xe0, 0x94, 0xba, 0x2c, 0x8f, 0xe8, 0x31, 0x69, 0x29, 0x2d, 0xb8, 0xba, 0x93, 0x33, 0xc0, 0x31,
0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x35, 0xd9, 0x06, 0x70, 0x7d, 0x09, 0x3d, 0x4b, 0x0c, 0xa4, 0x29, 0x8e, 0xaa, 0xc9, 0xd6, 0xb1,
0x6f, 0x67, 0x43, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x18, 0xfb, 0x45, 0xc1, 0x95, 0x02, 0x83, 0x0f, 0x6e, 0x21, 0x5b, 0x42, 0xdc, 0x06, 0xe5, 0xd1, 0x3c,
0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x16, 0x56, 0xea, 0x18, 0x07, 0xd3, 0x64, 0x15, 0xb4, 0xff, 0x79, 0x9f, 0x74, 0x19, 0x28, 0xbe,
0x07, 0x6c, 0x6f, 0x67, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x46, 0x02, 0x93, 0x6f, 0xfc, 0x2f, 0xa4, 0x6e, 0xa5, 0x55, 0x90, 0x4b, 0x99, 0x05, 0xf4, 0x09, 0xe9,
0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0xa4, 0x25, 0x5f, 0xa0, 0x88, 0xed, 0x93, 0xa3, 0x21, 0xda, 0x66, 0x58, 0xb6, 0x0c, 0xdb, 0x4a,
0x61, 0x78, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x61, 0xa4, 0xc7, 0xc4, 0x53, 0x3a, 0x44, 0x49, 0xdb, 0x27, 0x24, 0xcf, 0xbf, 0xd6, 0x21, 0x73, 0x30,
0x78, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0xed, 0x93, 0xce, 0x6b, 0x93, 0x08, 0xb7, 0xf4, 0xe7, 0x41, 0x60, 0x72, 0x23, 0x6c, 0x61, 0x4e,
0x6d, 0x61, 0x78, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x7e, 0xb0, 0xd1, 0xc4, 0xe8, 0x85, 0x0c, 0xc0, 0xa0, 0xba, 0x2d, 0x56, 0x86, 0x5c, 0xb3, 0x53,
0x78, 0x41, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x41, 0x23, 0x83, 0x10, 0x18, 0x84, 0x32, 0xb5, 0x66, 0x95, 0x9b, 0xa1, 0x82, 0xd2, 0xbf, 0x48, 0x23,
0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x80, 0x44, 0xe9, 0x15, 0x6a, 0xdd, 0x3e, 0xe9, 0xe6, 0xcf, 0xb9, 0x40, 0x90, 0xe5, 0x24, 0xfd,
0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x9f, 0x1c, 0x66, 0x5f, 0x67, 0xb9, 0xcf, 0x51, 0xfd, 0x47, 0xe9, 0x95, 0x24, 0xb7, 0xe2, 0x60,
0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0xa3, 0x9b, 0x6d, 0xdf, 0xb6, 0xd0, 0x62, 0x8f, 0x09, 0x67, 0x36, 0xb0, 0xd1, 0x48, 0x69, 0xf1,
0x28, 0x08, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0xe9, 0x9c, 0x95, 0x79, 0x0a, 0xa7, 0x54, 0x67, 0xbb, 0x28, 0xd7, 0x65, 0xa9, 0xe9, 0xb1,
0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x92, 0xe8, 0x9f, 0x16, 0xab, 0xa0, 0xf4, 0x29, 0xf9, 0x6d, 0xbb, 0xef, 0x97, 0xf1, 0x38, 0xef,
0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x23, 0xb3, 0xd1, 0xd7, 0x68, 0xb7, 0x8e, 0xd8, 0x0c, 0xde, 0xab, 0x2e, 0xe6, 0x6e, 0x00, 0x67,
0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x25, 0x0c, 0x9e, 0x5d, 0x9c, 0x15, 0xf5, 0x0e, 0xf1, 0xb5, 0x55, 0xb8, 0xff, 0x61, 0x8f, 0x1c,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x72, 0x46, 0x75, 0x6e, 0x63, 0x65, 0x2b, 0xc1, 0x40, 0x80, 0x4c, 0xec, 0x0f, 0x3d, 0xa6, 0x3b, 0x8e, 0x54, 0xfd, 0x3b, 0x8e,
0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd2, 0x04, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0xe3, 0x9b, 0x8f, 0xd4, 0xc1, 0x8e, 0x23, 0x85, 0x9a, 0xea, 0xd8, 0x1a, 0x2e, 0xac, 0x73,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xb1, 0x87, 0x9a, 0x16, 0x40, 0xff, 0x7d, 0x8d, 0x34, 0xb2, 0x75, 0x72, 0x56, 0xd0, 0x09, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6e, 0xb5, 0x41, 0x2b, 0x64, 0xea, 0x6c, 0x61, 0x74, 0x48, 0x68, 0xb6, 0x74, 0x60, 0x26, 0x46,
0x73, 0x79, 0x6e, 0x63, 0x54, 0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x2e, 0xb8, 0x85, 0xe7, 0xb0, 0xca, 0x85, 0xda, 0xc1, 0xb8, 0x95, 0x59, 0x70, 0x25, 0x03, 0x57,
0x28, 0x0b, 0x32, 0x13, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x20, 0xc5, 0xaa, 0x1e, 0xbe, 0xa0, 0x82, 0xba, 0x6b, 0x22, 0x63, 0x69, 0x27, 0xfa, 0x2d, 0x98,
0x78, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x78, 0x43, 0xd4, 0xdf, 0xef, 0x79, 0x03, 0x8f, 0x95, 0x90, 0x11, 0x79, 0xd5, 0x1c, 0x0e, 0xff, 0xc5, 0xed,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x03, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x9f, 0x36, 0xf0, 0x0f, 0xf3, 0xf4, 0x4b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x54, 0x92, 0x59, 0xbb,
0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x52, 0x03, 0x40, 0x07, 0x00, 0x00,
0x6c, 0x6f, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x72, 0x70, 0x63, 0x42, 0x69, 0x6e, 0x64, 0x41,
0x64, 0x64, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x72, 0x70, 0x63, 0x42,
0x69, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x74, 0x68, 0x50, 0x72,
0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x74,
0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x26, 0x0a, 0x0e, 0x62, 0x72, 0x69,
0x64, 0x67, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28,
0x09, 0x52, 0x0e, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72,
0x79, 0x12, 0x25, 0x0a, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79,
0x52, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x35, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c,
0x6f, 0x79, 0x34, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x0d, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52,
0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x34, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x12,
0x2c, 0x0a, 0x11, 0x65, 0x74, 0x68, 0x4d, 0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65,
0x67, 0x72, 0x65, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x65, 0x74, 0x68, 0x4d,
0x61, 0x74, 0x75, 0x72, 0x69, 0x74, 0x79, 0x44, 0x65, 0x67, 0x72, 0x65, 0x65, 0x12, 0x30, 0x0a,
0x13, 0x65, 0x74, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x65,
0x72, 0x69, 0x6f, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x65, 0x74, 0x68, 0x42,
0x6c, 0x6f, 0x63, 0x6b, 0x46, 0x65, 0x74, 0x63, 0x68, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12,
0x26, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c,
0x69, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x76,
0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x69, 0x12, 0x38, 0x0a, 0x17, 0x62, 0x72, 0x69, 0x64, 0x67,
0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e,
0x33, 0x33, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65,
0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x33,
0x33, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d,
0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12,
0x28, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49, 0x44, 0x34, 0x43, 0x68, 0x61, 0x69, 0x6e,
0x33, 0x33, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x49,
0x44, 0x34, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x22, 0xa7, 0x02, 0x0a, 0x13, 0x53, 0x79,
0x6e, 0x63, 0x54, 0x78, 0x52, 0x65, 0x63, 0x65, 0x69, 0x70, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x68, 0x6f, 0x73, 0x74,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x33, 0x33, 0x68,
0x6f, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x48, 0x6f, 0x73, 0x74, 0x18,
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x48, 0x6f, 0x73, 0x74, 0x12,
0x1a, 0x0a, 0x08, 0x70, 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
0x09, 0x52, 0x08, 0x70, 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
0x75, 0x73, 0x68, 0x42, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
0x75, 0x73, 0x68, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74,
0x53, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x65, 0x69, 0x67, 0x68,
0x74, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65,
0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x73, 0x74,
0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x12,
0x24, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e, 0x63, 0x48, 0x61, 0x73, 0x68,
0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x79, 0x6e,
0x63, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63,
0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61,
0x63, 0x74, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x06, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x22,
0x0a, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64,
0x64, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x50, 0x72,
0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12,
0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b,
0x65, 0x79, 0x12, 0x26, 0x0a, 0x0e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73,
0x41, 0x64, 0x64, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x76, 0x61, 0x6c, 0x69,
0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x41, 0x64, 0x64, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e,
0x69, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a,
0x69, 0x6e, 0x69, 0x74, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e,
0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_config_proto_rawDescOnce sync.Once
file_config_proto_rawDescData = file_config_proto_rawDesc
)
func file_config_proto_rawDescGZIP() []byte {
file_config_proto_rawDescOnce.Do(func() {
file_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_config_proto_rawDescData)
})
return file_config_proto_rawDescData
}
var file_config_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_config_proto_goTypes = []interface{}{
(*SyncTxConfig)(nil), // 0: types.SyncTxConfig
(*Log)(nil), // 1: types.Log
(*RelayerConfig)(nil), // 2: types.RelayerConfig
(*SyncTxReceiptConfig)(nil), // 3: types.SyncTxReceiptConfig
(*Deploy)(nil), // 4: types.Deploy
}
var file_config_proto_depIdxs = []int32{
0, // 0: types.RelayerConfig.syncTxConfig:type_name -> types.SyncTxConfig
1, // 1: types.RelayerConfig.log:type_name -> types.Log
4, // 2: types.RelayerConfig.deploy:type_name -> types.Deploy
4, // 3: types.RelayerConfig.deploy4chain33:type_name -> types.Deploy
4, // [4:4] is the sub-list for method output_type
4, // [4:4] is the sub-list for method input_type
4, // [4:4] is the sub-list for extension type_name
4, // [4:4] is the sub-list for extension extendee
0, // [0:4] is the sub-list for field type_name
}
func init() { file_config_proto_init() }
func file_config_proto_init() {
if File_config_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SyncTxConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Log); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*RelayerConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SyncTxReceiptConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Deploy); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_config_proto_rawDesc,
NumEnums: 0,
NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_config_proto_goTypes,
DependencyIndexes: file_config_proto_depIdxs,
MessageInfos: file_config_proto_msgTypes,
}.Build()
File_config_proto = out.File
file_config_proto_rawDesc = nil
file_config_proto_goTypes = nil
file_config_proto_depIdxs = nil
} }
This source diff could not be displayed because it is too large. You can view the blob instead.
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