Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
f7a27fa1
Commit
f7a27fa1
authored
Dec 16, 2021
by
QM
Committed by
vipwzw
Dec 20, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete relayer set symbol
parent
e7a941d0
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
683 additions
and
991 deletions
+683
-991
dockerRelayerTestEvm.sh
plugin/dapp/bridgevmxgo/cmd/build/dockerRelayerTestEvm.sh
+44
-119
deployCrossX2Eth.go
...app/cross2eth/boss4x/ethereum/offline/deployCrossX2Eth.go
+50
-18
offline.go
plugin/dapp/cross2eth/boss4x/ethereum/offline/offline.go
+2
-1
mainPubilcRelayerTest.sh
.../dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
+223
-245
offlinePublic.sh
plugin/dapp/cross2eth/cmd/build/public/offlinePublic.sh
+3
-3
config.proto
plugin/dapp/cross2eth/ebrelayer/proto/config.proto
+0
-1
relayer.toml
plugin/dapp/cross2eth/ebrelayer/relayer.toml
+0
-10
config.pb.go
plugin/dapp/cross2eth/ebrelayer/types/config.pb.go
+361
-594
relayer.pb.go
plugin/dapp/cross2eth/ebrelayer/types/relayer.pb.go
+0
-0
No files found.
plugin/dapp/bridgevmxgo/cmd/build/dockerRelayerTestEvm.sh
View file @
f7a27fa1
...
@@ -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
}
}
...
...
plugin/dapp/cross2eth/boss4x/ethereum/offline/deployCrossX2Eth.go
View file @
f7a27fa1
...
@@ -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 a
nd sign all the offline cross to ethereum contracts(inclue valset,ethereumBridge,bridgeBank,oracle,bridgeRegistry,mulSign)
"
,
Short
:
"create a
ll 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
...
...
plugin/dapp/cross2eth/boss4x/ethereum/offline/offline.go
View file @
f7a27fa1
...
@@ -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
)
{
...
...
plugin/dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
View file @
f7a27fa1
...
@@ -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
}
}
plugin/dapp/cross2eth/cmd/build/public/offlinePublic.sh
View file @
f7a27fa1
...
@@ -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
...
...
plugin/dapp/cross2eth/ebrelayer/proto/config.proto
View file @
f7a27fa1
...
@@ -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
{
...
...
plugin/dapp/cross2eth/ebrelayer/relayer.toml
View file @
f7a27fa1
...
@@ -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"
]
#验证人权重
#验证人权重
...
...
plugin/dapp/cross2eth/ebrelayer/types/config.pb.go
View file @
f7a27fa1
// 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
}
}
plugin/dapp/cross2eth/ebrelayer/types/relayer.pb.go
View file @
f7a27fa1
This source diff could not be displayed because it is too large. You can
view the blob
instead.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment