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
fdc41a69
Commit
fdc41a69
authored
Dec 17, 2021
by
QM
Committed by
vipwzw
Dec 20, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
delete chain33 multisign_setup set_offline_addr
parent
5d77e6fb
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
177 additions
and
157 deletions
+177
-157
dockerRelayerTestEvm.sh
plugin/dapp/bridgevmxgo/cmd/build/dockerRelayerTestEvm.sh
+11
-11
deployCrossX2Chain33.go
.../cross2eth/boss4x/chain33/offline/deployCrossX2Chain33.go
+65
-28
deploy_chain33.md
...pp/cross2eth/boss4x/chain33/offline/doc/deploy_chain33.md
+19
-37
offline.go
plugin/dapp/cross2eth/boss4x/chain33/offline/offline.go
+16
-5
deploy_ethereum.md
.../cross2eth/boss4x/ethereum/offline/doc/deploy_ethereum.md
+1
-0
dockerRelayerTest.sh
plugin/dapp/cross2eth/cmd/build/dockerRelayerTest.sh
+3
-5
mainPubilcRelayerTest.sh
.../dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
+15
-30
offlinePublic.sh
plugin/dapp/cross2eth/cmd/build/public/offlinePublic.sh
+47
-41
No files found.
plugin/dapp/bridgevmxgo/cmd/build/dockerRelayerTestEvm.sh
View file @
fdc41a69
...
@@ -110,7 +110,7 @@ function configbridgevmxgoAddr() {
...
@@ -110,7 +110,7 @@ function configbridgevmxgoAddr() {
function
DeployEvmxgo
()
{
function
DeployEvmxgo
()
{
# 在 chain33 上部署合约
# 在 chain33 上部署合约
# shellcheck disable=SC2154
# shellcheck disable=SC2154
${
EvmxgoBoss4xCLI
}
chain33 offline create
-f
1
-k
"
${
chain33DeployKey
}
"
-n
"deploy crossx to chain33"
-r
"
${
chain33DeployAddr
}
, [
${
chain33Validatora
}
,
${
chain33Validatorb
}
,
${
chain33Validatorc
}
,
${
chain33Validatord
}
], [96, 1, 1, 1]"
--chainID
"
${
chain33ID
}
"
${
EvmxgoBoss4xCLI
}
chain33 offline create
-f
1
-k
"
${
chain33DeployKey
}
"
-n
"deploy crossx to chain33"
-r
"
${
chain33DeployAddr
}
, [
${
chain33Validatora
}
,
${
chain33Validatorb
}
,
${
chain33Validatorc
}
,
${
chain33Validatord
}
], [96, 1, 1, 1]"
result
=
$(${
EvmxgoBoss4xCLI
}
chain33 offline send
-f
"deployBridgevmxgo2Chain33.txt"
)
result
=
$(${
EvmxgoBoss4xCLI
}
chain33 offline send
-f
"deployBridgevmxgo2Chain33.txt"
)
for
i
in
{
0..6
}
;
do
for
i
in
{
0..6
}
;
do
...
@@ -124,10 +124,10 @@ function DeployEvmxgo() {
...
@@ -124,10 +124,10 @@ function DeployEvmxgo() {
XgoChain33BridgeBank
=
$(${
Chain33Cli
}
evm query
-c
"
${
chain33DeployAddr
}
"
-b
"bridgeBank()"
-a
"
${
XgoBridgeRegistryOnChain33
}
"
)
XgoChain33BridgeBank
=
$(${
Chain33Cli
}
evm query
-c
"
${
chain33DeployAddr
}
"
-b
"bridgeBank()"
-a
"
${
XgoBridgeRegistryOnChain33
}
"
)
cp
XgoChain33BridgeBank.abi
"
${
XgoChain33BridgeBank
}
.abi"
cp
XgoChain33BridgeBank.abi
"
${
XgoChain33BridgeBank
}
.abi"
${
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
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
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
chain33_offline_send_evm
"create_add_lock_list.txt"
chain33_offline_send_evm
"create_add_lock_list.txt"
updateConfig
"ETH"
"
${
chain33EthBridgeTokenAddr
}
"
updateConfig
"ETH"
"
${
chain33EthBridgeTokenAddr
}
"
...
@@ -161,10 +161,10 @@ function TestETH2EVMToChain33() {
...
@@ -161,10 +161,10 @@ function TestETH2EVMToChain33() {
# 结果是 11 * le8
# 结果是 11 * le8
# is_equal "${result}" "4700000000"
# is_equal "${result}" "4700000000"
${
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
chain33_offline_send_evm
"approve_erc20.txt"
chain33_offline_send_evm
"approve_erc20.txt"
hash
=
$(${
Chain33Cli
}
send evm call
-f
1
-k
"
${
chain33ReceiverAddr
}
"
-e
"
${
XgoChain33BridgeBank
}
"
-p
"lock(
${
chain33TestAddr2
}
,
${
chain33EthBridgeTokenAddr
}
, 500000000)"
--chainID
"
${
chain33ID
}
"
)
hash
=
$(${
Chain33Cli
}
send evm call
-f
1
-k
"
${
chain33ReceiverAddr
}
"
-e
"
${
XgoChain33BridgeBank
}
"
-p
"lock(
${
chain33TestAddr2
}
,
${
chain33EthBridgeTokenAddr
}
, 500000000)"
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33EthBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
...
@@ -196,10 +196,10 @@ function Testethereum2EVMToChain33_usdt() {
...
@@ -196,10 +196,10 @@ function Testethereum2EVMToChain33_usdt() {
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33USDTBridgeTokenAddr
}
"
-c
"
${
chain33TestAddr1
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33USDTBridgeTokenAddr
}
"
-c
"
${
chain33TestAddr1
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
# is_equal "${result}" "700000000"
# is_equal "${result}" "700000000"
${
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
chain33_offline_send_evm
"approve_erc20.txt"
chain33_offline_send_evm
"approve_erc20.txt"
hash
=
$(${
Chain33Cli
}
send evm call
-f
1
-k
"
${
chain33ReceiverAddr
}
"
-e
"
${
XgoChain33BridgeBank
}
"
-p
"lock(
${
chain33TestAddr2
}
,
${
chain33USDTBridgeTokenAddr
}
, 500000000)"
--chainID
"
${
chain33ID
}
"
)
hash
=
$(${
Chain33Cli
}
send evm call
-f
1
-k
"
${
chain33ReceiverAddr
}
"
-e
"
${
XgoChain33BridgeBank
}
"
-p
"lock(
${
chain33TestAddr2
}
,
${
chain33USDTBridgeTokenAddr
}
, 500000000)"
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33USDTBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
result
=
$(${
Chain33Cli
}
evm query
-a
"
${
chain33USDTBridgeTokenAddr
}
"
-c
"
${
chain33DeployAddr
}
"
-b
"balanceOf(
${
chain33ReceiverAddr
}
)"
)
...
@@ -224,8 +224,8 @@ function get_evm_cli() {
...
@@ -224,8 +224,8 @@ function get_evm_cli() {
CLID
=
"docker exec
${
dockerNamePrefix
}
_ebrelayerd_1 /root/ebcli_A"
CLID
=
"docker exec
${
dockerNamePrefix
}
_ebrelayerd_1 /root/ebcli_A"
docker_ganachetest_ip
=
$(
get_docker_addr
"
${
dockerNamePrefix
}
_ganachetest_1"
)
docker_ganachetest_ip
=
$(
get_docker_addr
"
${
dockerNamePrefix
}
_ganachetest_1"
)
Boss4xCLI
=
"docker exec
${
dockerNamePrefix
}
_ebrelayera_1 /root/boss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --rpc_laddr_ethereum http://
${
docker_ganachetest_ip
}
:8545 --paraName user.p.para."
Boss4xCLI
=
"docker exec
${
dockerNamePrefix
}
_ebrelayera_1 /root/boss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --rpc_laddr_ethereum http://
${
docker_ganachetest_ip
}
:8545 --paraName user.p.para.
--chainID
${
chain33ID
}
"
EvmxgoBoss4xCLI
=
"./evmxgoboss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --paraName user.p.para."
EvmxgoBoss4xCLI
=
"./evmxgoboss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --paraName user.p.para.
--chainID
${
chain33ID
}
"
}
}
}
}
...
@@ -245,8 +245,6 @@ function AllRelayerMainTest() {
...
@@ -245,8 +245,6 @@ function AllRelayerMainTest() {
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
set
+e
set
+e
get_evm_cli
if
[[
${
1
}
!=
""
]]
;
then
if
[[
${
1
}
!=
""
]]
;
then
maturityDegree
=
${
1
}
maturityDegree
=
${
1
}
echo
-e
"
${
GRE
}
maturityDegree is
${
maturityDegree
}
${
NOC
}
"
echo
-e
"
${
GRE
}
maturityDegree is
${
maturityDegree
}
${
NOC
}
"
...
@@ -257,6 +255,8 @@ function AllRelayerMainTest() {
...
@@ -257,6 +255,8 @@ function AllRelayerMainTest() {
chain33ID
=
"
${
2
}
"
chain33ID
=
"
${
2
}
"
fi
fi
get_evm_cli
# init
# init
Chain33Cli
=
${
MainCli
}
Chain33Cli
=
${
MainCli
}
InitChain33Validator
InitChain33Validator
...
...
plugin/dapp/cross2eth/boss4x/chain33/offline/deployCrossX2Chain33.go
View file @
fdc41a69
...
@@ -2,6 +2,8 @@ package offline
...
@@ -2,6 +2,8 @@ package offline
import
(
import
(
"fmt"
"fmt"
ebTypes
"github.com/33cn/plugin/plugin/dapp/cross2eth/ebrelayer/types"
"strings"
"time"
"time"
"github.com/33cn/chain33/common/address"
"github.com/33cn/chain33/common/address"
...
@@ -10,7 +12,6 @@ import (
...
@@ -10,7 +12,6 @@ import (
"github.com/33cn/plugin/plugin/dapp/dex/utils"
"github.com/33cn/plugin/plugin/dapp/dex/utils"
evmAbi
"github.com/33cn/plugin/plugin/dapp/evm/executor/abi"
evmAbi
"github.com/33cn/plugin/plugin/dapp/evm/executor/abi"
"github.com/33cn/plugin/plugin/dapp/evm/executor/vm/common"
"github.com/33cn/plugin/plugin/dapp/evm/executor/vm/common"
evmtypes
"github.com/33cn/plugin/plugin/dapp/evm/types"
"github.com/spf13/cobra"
"github.com/spf13/cobra"
)
)
...
@@ -36,6 +37,8 @@ func addCreateCrossBridgeFlags(cmd *cobra.Command) {
...
@@ -36,6 +37,8 @@ func addCreateCrossBridgeFlags(cmd *cobra.Command) {
cmd
.
Flags
()
.
Float64P
(
"fee"
,
"f"
,
0
,
"contract gas fee (optional)"
)
cmd
.
Flags
()
.
Float64P
(
"fee"
,
"f"
,
0
,
"contract gas fee (optional)"
)
cmd
.
Flags
()
.
StringP
(
"valset"
,
"r"
,
""
,
"contruct parameter for valset, as: 'addr, [addr, addr, addr, addr], [25, 25, 25, 25]'"
)
cmd
.
Flags
()
.
StringP
(
"valset"
,
"r"
,
""
,
"contruct parameter for valset, as: 'addr, [addr, addr, addr, addr], [25, 25, 25, 25]'"
)
_
=
cmd
.
MarkFlagRequired
(
"valset"
)
_
=
cmd
.
MarkFlagRequired
(
"valset"
)
cmd
.
Flags
()
.
StringP
(
"multisignAddrs"
,
"m"
,
""
,
"multisign address"
)
_
=
cmd
.
MarkFlagRequired
(
"multisignAddrs"
)
}
}
func
createCrossBridge
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
func
createCrossBridge
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
...
@@ -57,6 +60,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -57,6 +60,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
i
:=
1
i
:=
1
fmt
.
Printf
(
"%d: Going to create Valset
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to create Valset
\n
"
,
i
)
i
+=
1
i
+=
1
// 0
valsetTx
,
err
:=
createValsetTxAndSign
(
cmd
,
from
)
valsetTx
,
err
:=
createValsetTxAndSign
(
cmd
,
from
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createValsetTxAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to createValsetTxAndSign due to cause:"
,
err
.
Error
())
...
@@ -66,6 +70,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -66,6 +70,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create EthereumBridge
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to create EthereumBridge
\n
"
,
i
)
i
+=
1
i
+=
1
// 1
ethereumBridgeTx
,
err
:=
createEthereumBridgeAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
)
ethereumBridgeTx
,
err
:=
createEthereumBridgeAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createEthereumBridgeAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to createEthereumBridgeAndSign due to cause:"
,
err
.
Error
())
...
@@ -75,6 +80,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -75,6 +80,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create Oracle
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to create Oracle
\n
"
,
i
)
i
+=
1
i
+=
1
// 2
oracleTx
,
err
:=
createOracleTxAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
oracleTx
,
err
:=
createOracleTxAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createOracleTxAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to createOracleTxAndSign due to cause:"
,
err
.
Error
())
...
@@ -84,6 +90,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -84,6 +90,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create BridgeBank
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to create BridgeBank
\n
"
,
i
)
i
+=
1
i
+=
1
// 3
bridgeBankTx
,
err
:=
createBridgeBankTxAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
bridgeBankTx
,
err
:=
createBridgeBankTxAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createBridgeBankTxAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to createBridgeBankTxAndSign due to cause:"
,
err
.
Error
())
...
@@ -93,6 +100,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -93,6 +100,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to set BridgeBank to EthBridge
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to set BridgeBank to EthBridge
\n
"
,
i
)
i
+=
1
i
+=
1
// 4
setBridgeBank2EthBridgeTx
,
err
:=
setBridgeBank2EthBridgeTxAndSign
(
cmd
,
ethereumBridgeTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
setBridgeBank2EthBridgeTx
,
err
:=
setBridgeBank2EthBridgeTxAndSign
(
cmd
,
ethereumBridgeTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to setBridgeBank2EthBridgeTxAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to setBridgeBank2EthBridgeTxAndSign due to cause:"
,
err
.
Error
())
...
@@ -102,6 +110,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -102,6 +110,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to set Oracle to EthBridge
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to set Oracle to EthBridge
\n
"
,
i
)
i
+=
1
i
+=
1
// 5
setOracle2EthBridgeTx
,
err
:=
setOracle2EthBridgeTxAndSign
(
cmd
,
ethereumBridgeTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
setOracle2EthBridgeTx
,
err
:=
setOracle2EthBridgeTxAndSign
(
cmd
,
ethereumBridgeTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to setOracle2EthBridgeTxAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to setOracle2EthBridgeTxAndSign due to cause:"
,
err
.
Error
())
...
@@ -111,6 +120,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -111,6 +120,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create BridgeRegistry
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to create BridgeRegistry
\n
"
,
i
)
i
+=
1
i
+=
1
// 6
createBridgeRegistryTx
,
err
:=
createBridgeRegistryTxAndSign
(
cmd
,
from
,
ethereumBridgeTx
.
ContractAddr
,
valsetTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
createBridgeRegistryTx
,
err
:=
createBridgeRegistryTxAndSign
(
cmd
,
from
,
ethereumBridgeTx
.
ContractAddr
,
valsetTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createBridgeRegistryTxAndSign due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to createBridgeRegistryTxAndSign due to cause:"
,
err
.
Error
())
...
@@ -120,6 +130,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -120,6 +130,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create MulSign2chain33
\n
"
,
i
)
fmt
.
Printf
(
"%d: Going to create MulSign2chain33
\n
"
,
i
)
i
+=
1
i
+=
1
// 7
createMulSign2chain33Tx
,
err
:=
createMulSignAndSign
(
cmd
,
from
)
createMulSign2chain33Tx
,
err
:=
createMulSignAndSign
(
cmd
,
from
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createMulSign2chain33Tx due to cause:"
,
err
.
Error
())
fmt
.
Println
(
"Failed to createMulSign2chain33Tx due to cause:"
,
err
.
Error
())
...
@@ -127,6 +138,26 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
...
@@ -127,6 +138,26 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
}
}
txs
=
append
(
txs
,
createMulSign2chain33Tx
)
txs
=
append
(
txs
,
createMulSign2chain33Tx
)
fmt
.
Printf
(
"%d: Going to save multisign contract config offline account
\n
"
,
i
)
i
+=
1
// 8
configMultisignOfflineSaveAccountTx
,
err
:=
configMultisignOfflineSaveAccount
(
cmd
,
createMulSign2chain33Tx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to configMultisignOfflineSaveAccountTx due to cause:"
,
err
.
Error
())
return
}
txs
=
append
(
txs
,
configMultisignOfflineSaveAccountTx
)
fmt
.
Printf
(
"%d: Going to Setup multisignAddrs to contract
\n
"
,
i
)
i
+=
1
// 9
multisignSetupTx
,
err
:=
multisignSetup
(
cmd
,
createMulSign2chain33Tx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to configMultisignOfflineSaveAccountTx due to cause:"
,
err
.
Error
())
return
}
txs
=
append
(
txs
,
multisignSetupTx
)
fmt
.
Printf
(
"%d: Write all the txs to file: %s
\n
"
,
i
,
crossXfileName
)
fmt
.
Printf
(
"%d: Write all the txs to file: %s
\n
"
,
i
,
crossXfileName
)
utils
.
WriteToFileInJson
(
crossXfileName
,
txs
)
utils
.
WriteToFileInJson
(
crossXfileName
,
txs
)
}
}
...
@@ -156,20 +187,8 @@ func setOracle2EthBridgeTxAndSign(cmd *cobra.Command, ethbridge, oracle string)
...
@@ -156,20 +187,8 @@ func setOracle2EthBridgeTxAndSign(cmd *cobra.Command, ethbridge, oracle string)
fmt
.
Println
(
"setOracle2EthBridge"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
fmt
.
Println
(
"setOracle2EthBridge"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
return
nil
,
err
return
nil
,
err
}
}
action
:=
&
evmtypes
.
EVMContractAction
{
Amount
:
0
,
GasLimit
:
0
,
GasPrice
:
0
,
Note
:
"setOracle2EthBridge"
,
Para
:
packData
,
ContractAddr
:
ethbridge
}
content
,
txHash
,
err
:=
utils
.
CallContractAndSign
(
getTxInfo
(
cmd
),
action
,
ethbridge
)
if
nil
!=
err
{
return
nil
,
err
}
setOracle2EthBridgeTx
:=
&
utils
.
Chain33OfflineTx
{
return
createOfflineTx
(
cmd
,
packData
,
ethbridge
,
"setOracle2EthBridge"
,
time
.
Second
*
5
)
ContractAddr
:
ethbridge
,
TxHash
:
common
.
Bytes2Hex
(
txHash
),
SignedRawTx
:
content
,
OperationName
:
"setOracle2EthBridge"
,
Interval
:
time
.
Second
*
5
,
}
return
setOracle2EthBridgeTx
,
nil
}
}
func
setBridgeBank2EthBridgeTxAndSign
(
cmd
*
cobra
.
Command
,
ethbridge
,
bridgebank
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
setBridgeBank2EthBridgeTxAndSign
(
cmd
*
cobra
.
Command
,
ethbridge
,
bridgebank
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
...
@@ -179,20 +198,7 @@ func setBridgeBank2EthBridgeTxAndSign(cmd *cobra.Command, ethbridge, bridgebank
...
@@ -179,20 +198,7 @@ func setBridgeBank2EthBridgeTxAndSign(cmd *cobra.Command, ethbridge, bridgebank
fmt
.
Println
(
"setBridgeBank2EthBridge"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
fmt
.
Println
(
"setBridgeBank2EthBridge"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
return
nil
,
err
return
nil
,
err
}
}
action
:=
&
evmtypes
.
EVMContractAction
{
Amount
:
0
,
GasLimit
:
0
,
GasPrice
:
0
,
Note
:
"setBridgeBank2EthBridge"
,
Para
:
packData
,
ContractAddr
:
ethbridge
}
return
createOfflineTx
(
cmd
,
packData
,
ethbridge
,
"setBridgeBank2EthBridge"
,
time
.
Second
*
5
)
content
,
txHash
,
err
:=
utils
.
CallContractAndSign
(
getTxInfo
(
cmd
),
action
,
ethbridge
)
if
nil
!=
err
{
return
nil
,
err
}
setBridgeBank2EthBridgeTx
:=
&
utils
.
Chain33OfflineTx
{
ContractAddr
:
ethbridge
,
TxHash
:
common
.
Bytes2Hex
(
txHash
),
SignedRawTx
:
content
,
OperationName
:
"setBridgeBank2EthBridge"
,
Interval
:
time
.
Second
*
5
,
}
return
setBridgeBank2EthBridgeTx
,
nil
}
}
func
createBridgeBankTxAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
,
oracle
,
ethereumBridge
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
createBridgeBankTxAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
,
oracle
,
ethereumBridge
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
...
@@ -287,3 +293,34 @@ func createMulSignAndSign(cmd *cobra.Command, from common.Address) (*utils.Chain
...
@@ -287,3 +293,34 @@ func createMulSignAndSign(cmd *cobra.Command, from common.Address) (*utils.Chain
}
}
return
mulSign2chain33Tx
,
nil
return
mulSign2chain33Tx
,
nil
}
}
func
configMultisignOfflineSaveAccount
(
cmd
*
cobra
.
Command
,
multisignContract
,
bridgebank
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
parameter
:=
fmt
.
Sprintf
(
"configOfflineSaveAccount(%s)"
,
multisignContract
)
_
,
packData
,
err
:=
evmAbi
.
Pack
(
parameter
,
generated
.
BridgeBankABI
,
false
)
if
nil
!=
err
{
fmt
.
Println
(
"configOfflineSaveAccount"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
return
nil
,
err
}
return
createOfflineTx
(
cmd
,
packData
,
bridgebank
,
"configOfflineSaveAccount"
,
time
.
Second
*
5
)
}
func
multisignSetup
(
cmd
*
cobra
.
Command
,
multisignContract
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
multisignAddrs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"multisignAddrs"
)
owners
:=
strings
.
Split
(
multisignAddrs
,
","
)
BTYAddrChain33
:=
ebTypes
.
BTYAddrChain33
parameter
:=
"setup(["
parameter
+=
fmt
.
Sprintf
(
"%s"
,
owners
[
0
])
for
_
,
owner
:=
range
owners
[
1
:
]
{
parameter
+=
fmt
.
Sprintf
(
",%s"
,
owner
)
}
parameter
+=
"], "
parameter
+=
fmt
.
Sprintf
(
"%d, %s, 0102, %s, %s, 0, %s)"
,
len
(
owners
),
BTYAddrChain33
,
BTYAddrChain33
,
BTYAddrChain33
,
BTYAddrChain33
)
_
,
packData
,
err
:=
evmAbi
.
Pack
(
parameter
,
generated
.
GnosisSafeABI
,
false
)
if
nil
!=
err
{
fmt
.
Println
(
"multisign_setup"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
return
nil
,
err
}
return
createOfflineTx
(
cmd
,
packData
,
multisignContract
,
"multisign_setup"
,
time
.
Second
*
5
)
}
plugin/dapp/cross2eth/boss4x/chain33/offline/doc/deploy_chain33.md
View file @
fdc41a69
...
@@ -4,6 +4,16 @@
...
@@ -4,6 +4,16 @@
#### 基础步骤
#### 基础步骤
*
离线创建交易并签名
`./boss4x chain33 offline create ...`
*
离线创建交易并签名
`./boss4x chain33 offline create ...`
*
在线发送签名后文件
`./boss4x chain33 offline send -f XXX.txt`
*
在线发送签名后文件
`./boss4x chain33 offline send -f XXX.txt`
拼凑 boss4x 命令
./boss4x --rpc_laddr http://${chain33_ip}:8901 --rpc_laddr_ethereum --paraName user.p.para. --chainID 0
```
--chainID int32 chain id, default to 0
--expire string transaction expire time (optional) (default "120m")
--paraName string para chain name,Eg:user.p.fzm.
--rpc_laddr string http url (default "https://localhost:8801")
```
***
***
#### 离线部署 chain33 跨链合约
#### 离线部署 chain33 跨链合约
...
@@ -17,15 +27,18 @@
...
@@ -17,15 +27,18 @@
交易6: 在合约chain33Bridge中设置Oracle合约地址
交易6: 在合约chain33Bridge中设置Oracle合约地址
交易7: 部署合约: BridgeRegistry
交易7: 部署合约: BridgeRegistry
交易8: 部署合约: MulSign
交易8: 部署合约: MulSign
交易9: 设置 bridgebank 合约地址可以转到多签合约地址
交易10: 设置离线多签地址信息
命令:
命令:
./boss4x chain33 offline create -f 1 -k
0x027ca96466c71c7e7c5d73b7e1f43cb889b3bd65ebd2413eefd31c6709c262ae -n 'deploy crossx to chain33' -r '1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ, [1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ, 155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6, 13zBdQwuyDh7cKN79oT2odkxYuDbgQiXFv, 113ZzVamKfAtGt9dq45fX1mNsEoDiN95HG], [25, 25, 25, 25]' --chainID 33
./boss4x chain33 offline create -f 1 -k
"${chain33DeployKey}" -n "deploy crossx to chain33" -r "${chain33DeployAddr}, [${chain33Validatora}, ${chain33Validatorb}, ${chain33Validatorc}, ${chain33Validatord}], [25, 25, 25, 25]" -m "${chain33MultisignA},${chain33MultisignB},${chain33MultisignC},${chain33MultisignD}"
参数说明:
参数说明:
-f, --fee float 交易费设置,因为只是少量几笔交易,且部署交易消耗gas较多,直接设置1个代币即可
-f, --fee float 交易费设置,因为只是少量几笔交易,且部署交易消耗gas较多,直接设置1个代币即可
-k, --key string 部署人的私钥,用于对交易签名
-k, --key string 部署人的私钥,用于对交易签名
-n, --note string 备注信息
-m, --multisignAddrs string 离线多签地址, as: 'addr,addr,addr,addr'
-r, --valset string 构造函数参数,严格按照该格式输入'addr, [addr, addr, addr, addr], [25, 25, 25, 25]',其中第一个地址为部署人私钥对应地址,后面4个地址为不同验证人的地址,4个数字为不同验证人的权重
-n, --note string 备注信息
-r, --valset string 构造函数参数,严格按照该格式输入'addr, [addr, addr, addr, addr], [25, 25, 25, 25]',其中第一个地址为部署人私钥对应地址,后面4个地址为不同验证人的地址,4个数字为不同验证人的权重
--rpc_laddr string chain33 url 地址 (默认 "https://localhost:8801")
--rpc_laddr string chain33 url 地址 (默认 "https://localhost:8801")
--chainID int32 平行链的chainID, 默认: 0(代表主链)
--chainID int32 平行链的chainID, 默认: 0(代表主链)
...
@@ -39,6 +52,7 @@
...
@@ -39,6 +52,7 @@
./boss4x chain33 offline send -f deployCrossX2Chain33.txt
./boss4x chain33 offline send -f deployCrossX2Chain33.txt
```
```
***
***
#### 离线部署 ERC20 跨链合约
#### 离线部署 ERC20 跨链合约
*
离线创建交易
*
离线创建交易
```
```
...
@@ -120,38 +134,6 @@
...
@@ -120,38 +134,6 @@
***
***
#### 设置离线多签地址信息
*
离线创建交易
```
命令:
./boss4x chain33 offline multisign_setup -m 1GrhufvPtnBCtfxDrFGcCoihmYMHJafuPn -o 168Sn1DXnLrZHTcAM9stD6t2P49fNuJfJ9,13KTf57aCkVVJYNJBXBBveiA5V811SrLcT,1JQwQWsShTHC4zxHzbUfYQK4kRBriUQdEe,1NHuKqoKe3hyv52PF8XBAyaTmJWAqA2Jbb -k 0x027ca96466c71c7e7c5d73b7e1f43cb889b3bd65ebd2413eefd31c6709c262ae --chainID 33
参数说明:
-k, --key string 部署人私钥
-m, --multisign string 离线多签合约地址
-o, --owner string 多签的地址, 用','分隔
执行之后会将交易写入到文件:
multisign_setup.txt
```
***
#### 设置离线多签地址
*
离线创建交易
```
命令:
./boss4x chain33 offline set_offline_addr -a 16skyHQA4YPPnhrDSSpZnexDzasS8BNx1R -c 1QD5pHMKZ9QWiNb9AsH3G1aG3Hashye83o -k 0x027ca96466c71c7e7c5d73b7e1f43cb889b3bd65ebd2413eefd31c6709c262ae --chainID 33
参数说明:
-a, --address string 离线多签地址
-c, --contract string bridgebank 合约地址
-f, --fee float 交易费
-k, --key string 部署者私钥
-n, --note string 备注
执行之后会将交易写入到文件:
chain33_set_offline_addr.txt
```
***
***
#### 离线多签设置
#### 离线多签设置
...
...
plugin/dapp/cross2eth/boss4x/chain33/offline/offline.go
View file @
fdc41a69
...
@@ -5,6 +5,7 @@ import (
...
@@ -5,6 +5,7 @@ import (
"fmt"
"fmt"
"io/ioutil"
"io/ioutil"
"os"
"os"
"time"
"github.com/33cn/plugin/plugin/dapp/dex/utils"
"github.com/33cn/plugin/plugin/dapp/dex/utils"
evmtypes
"github.com/33cn/plugin/plugin/dapp/evm/types"
evmtypes
"github.com/33cn/plugin/plugin/dapp/evm/types"
...
@@ -26,8 +27,8 @@ func Boss4xOfflineCmd() *cobra.Command {
...
@@ -26,8 +27,8 @@ func Boss4xOfflineCmd() *cobra.Command {
ApproveErc20Cmd
(),
ApproveErc20Cmd
(),
AddToken2LockListCmd
(),
AddToken2LockListCmd
(),
CreateNewBridgeTokenCmd
(),
CreateNewBridgeTokenCmd
(),
SetupCmd
(),
//
SetupCmd(),
ConfigOfflineSaveAccountCmd
(),
//
ConfigOfflineSaveAccountCmd(),
ConfigLockedTokenOfflineSaveCmd
(),
ConfigLockedTokenOfflineSaveCmd
(),
CreateMultisignTransferCmd
(),
CreateMultisignTransferCmd
(),
MultisignTransferCmd
(),
MultisignTransferCmd
(),
...
@@ -106,12 +107,11 @@ func paraseFile(file string, result interface{}) error {
...
@@ -106,12 +107,11 @@ func paraseFile(file string, result interface{}) error {
return
json
.
Unmarshal
(
b
,
result
)
return
json
.
Unmarshal
(
b
,
result
)
}
}
func
c
allContractAndSignWrite
(
cmd
*
cobra
.
Command
,
para
[]
byte
,
contractAddr
,
name
string
)
{
func
c
reateOfflineTx
(
cmd
*
cobra
.
Command
,
para
[]
byte
,
contractAddr
,
name
string
,
interval
time
.
Duration
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
action
:=
&
evmtypes
.
EVMContractAction
{
Amount
:
0
,
GasLimit
:
0
,
GasPrice
:
0
,
Note
:
name
,
Para
:
para
,
ContractAddr
:
contractAddr
}
action
:=
&
evmtypes
.
EVMContractAction
{
Amount
:
0
,
GasLimit
:
0
,
GasPrice
:
0
,
Note
:
name
,
Para
:
para
,
ContractAddr
:
contractAddr
}
content
,
txHash
,
err
:=
utils
.
CallContractAndSign
(
getTxInfo
(
cmd
),
action
,
contractAddr
)
content
,
txHash
,
err
:=
utils
.
CallContractAndSign
(
getTxInfo
(
cmd
),
action
,
contractAddr
)
if
nil
!=
err
{
if
nil
!=
err
{
fmt
.
Println
(
"CallContractAndSign"
,
"Failed"
,
err
.
Error
())
return
nil
,
err
return
}
}
Tx
:=
&
utils
.
Chain33OfflineTx
{
Tx
:=
&
utils
.
Chain33OfflineTx
{
...
@@ -119,6 +119,17 @@ func callContractAndSignWrite(cmd *cobra.Command, para []byte, contractAddr, nam
...
@@ -119,6 +119,17 @@ func callContractAndSignWrite(cmd *cobra.Command, para []byte, contractAddr, nam
TxHash
:
common
.
Bytes2Hex
(
txHash
),
TxHash
:
common
.
Bytes2Hex
(
txHash
),
SignedRawTx
:
content
,
SignedRawTx
:
content
,
OperationName
:
name
,
OperationName
:
name
,
Interval
:
interval
,
}
return
Tx
,
nil
}
func
callContractAndSignWrite
(
cmd
*
cobra
.
Command
,
para
[]
byte
,
contractAddr
,
name
string
)
{
Tx
,
err
:=
createOfflineTx
(
cmd
,
para
,
contractAddr
,
name
,
0
)
if
nil
!=
err
{
fmt
.
Println
(
"CallContractAndSign"
,
"Failed"
,
err
.
Error
(),
"name"
,
name
)
return
}
}
_
,
err
=
json
.
MarshalIndent
(
Tx
,
""
,
" "
)
_
,
err
=
json
.
MarshalIndent
(
Tx
,
""
,
" "
)
...
...
plugin/dapp/cross2eth/boss4x/ethereum/offline/doc/deploy_ethereum.md
View file @
fdc41a69
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
*
在线发送签名后文件
`./boss4x ethereum offline send -f deploysigntxs.txt`
默认签名后的文件名称都是 deploysigntxs.txt
*
在线发送签名后文件
`./boss4x ethereum offline send -f deploysigntxs.txt`
默认签名后的文件名称都是 deploysigntxs.txt
拼凑 boss4x 命令
拼凑 boss4x 命令
./boss4x --rpc_laddr_ethereum http://139.9.219.183:8545 --chainEthId 1
./boss4x --rpc_laddr_ethereum http://139.9.219.183:8545 --chainEthId 1
```
```
--chainEthId int chainId, 如果是Bsc, chainId为56, 如果是ethereum, chainId为1, 查询链接:https://chainlist.org/
--chainEthId int chainId, 如果是Bsc, chainId为56, 如果是ethereum, chainId为1, 查询链接:https://chainlist.org/
...
...
plugin/dapp/cross2eth/cmd/build/dockerRelayerTest.sh
View file @
fdc41a69
...
@@ -12,8 +12,6 @@ function AllRelayerMainTest() {
...
@@ -12,8 +12,6 @@ function AllRelayerMainTest() {
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
set
+e
set
+e
get_cli
if
[[
${
1
}
!=
""
]]
;
then
if
[[
${
1
}
!=
""
]]
;
then
maturityDegree
=
${
1
}
maturityDegree
=
${
1
}
echo
-e
"
${
GRE
}
maturityDegree is
${
maturityDegree
}
${
NOC
}
"
echo
-e
"
${
GRE
}
maturityDegree is
${
maturityDegree
}
${
NOC
}
"
...
@@ -25,16 +23,16 @@ function AllRelayerMainTest() {
...
@@ -25,16 +23,16 @@ function AllRelayerMainTest() {
chain33ID
=
"
${
2
}
"
chain33ID
=
"
${
2
}
"
fi
fi
get_cli
# init
# init
# shellcheck disable=SC2154
# shellcheck disable=SC2154
# shellcheck disable=SC2034
Chain33Cli
=
${
MainCli
}
Chain33Cli
=
${
MainCli
}
InitChain33Validator
InitChain33Validator
# para add
# para add
initPara
initPara
# shellcheck disable=SC2154
# shellcheck disable=SC2034
Chain33Cli
=
${
Para8901Cli
}
StartDockerRelayerDeploy
StartDockerRelayerDeploy
test_all
test_all
...
...
plugin/dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
View file @
fdc41a69
...
@@ -766,41 +766,22 @@ function up_relayer_toml() {
...
@@ -766,41 +766,22 @@ function up_relayer_toml() {
function
StartDockerRelayerDeploy
()
{
function
StartDockerRelayerDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
# 修改 relayer.toml
up_relayer_toml
# 启动 ebrelayer
start_docker_ebrelayerA
# 部署合约 设置 bridgeRegistry 地址
# 部署合约 设置 bridgeRegistry 地址
InitAnd
OfflineDeploy
OfflineDeploy
#
设置离线多签数据
#
向离线多签地址打点手续费
Chain33Cli
=
${
MainCli
}
Chain33Cli
=
${
MainCli
}
initMultisignChain33Addr
initMultisignChain33Addr
Chain33Cli
=
${
Para8901Cli
}
offline_setupChain33Multisign
# offline_setupEthMultisign
Chain33Cli
=
${
MainCli
}
transferChain33MultisignFee
transferChain33MultisignFee
Chain33Cli
=
${
Para8901Cli
}
Chain33Cli
=
${
Para8901Cli
}
# shellcheck disable=SC2086
# 修改 relayer.toml
{
up_relayer_toml
docker
cp
"
${
BridgeRegistryOnChain33
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
BridgeRegistryOnChain33
}
.abi
# 启动 ebrelayer
docker
cp
"
${
chain33BridgeBank
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
chain33BridgeBank
}
.abi
start_docker_ebrelayerA
docker
cp
"
${
BridgeRegistryOnEth
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
BridgeRegistryOnEth
}
.abi
InitRelayerA
docker
cp
"
${
ethBridgeBank
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
ethBridgeBank
}
.abi
}
# 重启
restart_ebrelayerA
# start ebrelayer B C D
updata_toml_start_bcd
# 设置 token 地址
# 设置 token 地址
# 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_create_tether_usdt_USDT
offline_deploy_erc20_create_tether_usdt_USDT
...
@@ -808,12 +789,16 @@ function StartDockerRelayerDeploy() {
...
@@ -808,12 +789,16 @@ function StartDockerRelayerDeploy() {
# shellcheck disable=SC2086
# shellcheck disable=SC2086
{
{
docker
cp
"
${
BridgeRegistryOnChain33
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
BridgeRegistryOnChain33
}
.abi
docker
cp
"
${
chain33BridgeBank
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
chain33BridgeBank
}
.abi
docker
cp
"
${
BridgeRegistryOnEth
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
BridgeRegistryOnEth
}
.abi
docker
cp
"
${
ethBridgeBank
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
ethBridgeBank
}
.abi
docker
cp
"
${
chain33EthBridgeTokenAddr
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
chain33EthBridgeTokenAddr
}
.abi
docker
cp
"
${
chain33EthBridgeTokenAddr
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
chain33EthBridgeTokenAddr
}
.abi
docker
cp
"
${
chain33USDTBridgeTokenAddr
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
chain33USDTBridgeTokenAddr
}
.abi
docker
cp
"
${
chain33USDTBridgeTokenAddr
}
.abi"
"
${
dockerNamePrefix
}
_ebrelayera_1"
:/root/
${
chain33USDTBridgeTokenAddr
}
.abi
}
}
#
重启,因为relayerA的验证人地址和部署人的地址是一样的,所以需要重新启动relayer,更新nonce
#
start ebrelayer B C D
restart_ebrelayerA
updata_toml_start_bcd
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
}
...
@@ -869,8 +854,8 @@ function get_cli() {
...
@@ -869,8 +854,8 @@ function get_cli() {
CLID
=
"docker exec
${
dockerNamePrefix
}
_ebrelayerd_1 /root/ebcli_A"
CLID
=
"docker exec
${
dockerNamePrefix
}
_ebrelayerd_1 /root/ebcli_A"
docker_ganachetest_ip
=
$(
get_docker_addr
"
${
dockerNamePrefix
}
_ganachetest_1"
)
docker_ganachetest_ip
=
$(
get_docker_addr
"
${
dockerNamePrefix
}
_ganachetest_1"
)
Boss4xCLI
=
"docker exec
${
dockerNamePrefix
}
_ebrelayera_1 /root/boss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --rpc_laddr_ethereum http://
${
docker_ganachetest_ip
}
:8545 --paraName user.p.para."
Boss4xCLI
=
"docker exec
${
dockerNamePrefix
}
_ebrelayera_1 /root/boss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --rpc_laddr_ethereum http://
${
docker_ganachetest_ip
}
:8545 --paraName user.p.para.
--chainID
${
chain33ID
}
"
echo
"
${
Boss4xCLI
}
"
}
}
}
}
...
...
plugin/dapp/cross2eth/cmd/build/public/offlinePublic.sh
View file @
fdc41a69
...
@@ -31,42 +31,20 @@ function ethereum_offline_sign_send() {
...
@@ -31,42 +31,20 @@ function ethereum_offline_sign_send() {
check_eth_tx
"
${
hash
}
"
check_eth_tx
"
${
hash
}
"
}
}
# shellcheck disable=SC2120
function
OfflineDeploy
()
{
function
InitAndOfflineDeploy
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLIA
}
set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLIA
}
unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
# shellcheck disable=SC2154
result
=
$(${
CLIA
}
chain33 import_privatekey
-k
"
${
chain33ValidatorKeya
}
"
)
cli_ret
"
${
result
}
"
"chain33 import_privatekey"
# shellcheck disable=SC2154
result
=
$(${
CLIA
}
ethereum import_privatekey
-k
"
${
ethValidatorAddrKeya
}
"
)
cli_ret
"
${
result
}
"
"ethereum import_privatekey"
# 在 chain33 上部署合约
# 在 chain33 上部署合约
# shellcheck disable=SC2154
# shellcheck disable=SC2154
${
Boss4xCLI
}
chain33 offline create
-f
1
-k
"
${
chain33DeployKey
}
"
-n
"deploy crossx to chain33"
-r
"
${
chain33DeployAddr
}
, [
${
chain33Validatora
}
,
${
chain33Validatorb
}
,
${
chain33Validatorc
}
,
${
chain33Validatord
}
], [25, 25, 25, 25]"
--chainID
"
${
chain33ID
}
"
${
Boss4xCLI
}
chain33 offline create
-f
1
-k
"
${
chain33DeployKey
}
"
-n
"deploy crossx to chain33"
-r
"
${
chain33DeployAddr
}
, [
${
chain33Validatora
}
,
${
chain33Validatorb
}
,
${
chain33Validatorc
}
,
${
chain33Validatord
}
], [25, 25, 25, 25]"
-
m
"
${
chain33MultisignA
}
,
${
chain33MultisignB
}
,
${
chain33MultisignC
}
,
${
chain33MultisignD
}
"
-
-chainID
"
${
chain33ID
}
"
result
=
$(${
Boss4xCLI
}
chain33 offline send
-f
"deployCrossX2Chain33.txt"
)
result
=
$(${
Boss4xCLI
}
chain33 offline send
-f
"deployCrossX2Chain33.txt"
)
for
i
in
{
0..
7
}
;
do
for
i
in
{
0..
9
}
;
do
hash
=
$(
echo
"
${
result
}
"
| jq
-r
".[
$i
].TxHash"
)
hash
=
$(
echo
"
${
result
}
"
| jq
-r
".[
$i
].TxHash"
)
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
check_tx
"
${
Chain33Cli
}
"
"
${
hash
}
"
done
done
BridgeRegistryOnChain33
=
$(
echo
"
${
result
}
"
| jq
-r
".[6].ContractAddr"
)
BridgeRegistryOnChain33
=
$(
echo
"
${
result
}
"
| jq
-r
".[6].ContractAddr"
)
# shellcheck disable=SC2034
# shellcheck disable=SC2034
multisignChain33Addr
=
$(
echo
"
${
result
}
"
| jq
-r
".[7].ContractAddr"
)
multisignChain33Addr
=
$(
echo
"
${
result
}
"
| jq
-r
".[7].ContractAddr"
)
${
CLIA
}
chain33 multisign set_multiSign
-a
"
${
multisignChain33Addr
}
"
# 拷贝 BridgeRegistry.abi 和 BridgeBank.abi
cp
BridgeRegistry.abi
"
${
BridgeRegistryOnChain33
}
.abi"
chain33BridgeBank
=
$(${
Chain33Cli
}
evm query
-c
"
${
chain33DeployAddr
}
"
-b
"bridgeBank()"
-a
"
${
BridgeRegistryOnChain33
}
"
)
cp
Chain33BridgeBank.abi
"
${
chain33BridgeBank
}
.abi"
# 在 Eth 上部署合约
# 在 Eth 上部署合约
# shellcheck disable=SC2154
# shellcheck disable=SC2154
...
@@ -81,11 +59,6 @@ function InitAndOfflineDeploy() {
...
@@ -81,11 +59,6 @@ function InitAndOfflineDeploy() {
BridgeRegistryOnEth
=
$(
echo
"
${
result
}
"
| jq
-r
".[7].ContractAddr"
)
BridgeRegistryOnEth
=
$(
echo
"
${
result
}
"
| jq
-r
".[7].ContractAddr"
)
# shellcheck disable=SC2034
# shellcheck disable=SC2034
multisignEthAddr
=
$(
echo
"
${
result
}
"
| jq
-r
".[8].ContractAddr"
)
multisignEthAddr
=
$(
echo
"
${
result
}
"
| jq
-r
".[8].ContractAddr"
)
${
CLIA
}
ethereum multisign set_multiSign
-a
"
${
multisignEthAddr
}
"
# 拷贝 BridgeRegistry.abi 和 BridgeBank.abi
cp
BridgeRegistry.abi
"
${
BridgeRegistryOnEth
}
.abi"
cp
EthBridgeBank.abi
"
${
ethBridgeBank
}
.abi"
# 修改 relayer.toml 字段
# 修改 relayer.toml 字段
updata_relayer
"BridgeRegistryOnChain33"
"
${
BridgeRegistryOnChain33
}
"
"./relayer.toml"
updata_relayer
"BridgeRegistryOnChain33"
"
${
BridgeRegistryOnChain33
}
"
"./relayer.toml"
...
@@ -98,6 +71,39 @@ function InitAndOfflineDeploy() {
...
@@ -98,6 +71,39 @@ function InitAndOfflineDeploy() {
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
}
# shellcheck disable=SC2120
function
InitRelayerA
()
{
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
result
=
$(${
CLIA
}
set_pwd
-p
123456hzj
)
cli_ret
"
${
result
}
"
"set_pwd"
result
=
$(${
CLIA
}
unlock
-p
123456hzj
)
cli_ret
"
${
result
}
"
"unlock"
# shellcheck disable=SC2154
result
=
$(${
CLIA
}
chain33 import_privatekey
-k
"
${
chain33ValidatorKeya
}
"
)
cli_ret
"
${
result
}
"
"chain33 import_privatekey"
# shellcheck disable=SC2154
result
=
$(${
CLIA
}
ethereum import_privatekey
-k
"
${
ethValidatorAddrKeya
}
"
)
cli_ret
"
${
result
}
"
"ethereum import_privatekey"
${
CLIA
}
chain33 multisign set_multiSign
-a
"
${
multisignChain33Addr
}
"
# 拷贝 BridgeRegistry.abi 和 BridgeBank.abi
cp
BridgeRegistry.abi
"
${
BridgeRegistryOnChain33
}
.abi"
chain33BridgeBank
=
$(${
Chain33Cli
}
evm query
-c
"
${
chain33DeployAddr
}
"
-b
"bridgeBank()"
-a
"
${
BridgeRegistryOnChain33
}
"
)
cp
Chain33BridgeBank.abi
"
${
chain33BridgeBank
}
.abi"
${
CLIA
}
ethereum multisign set_multiSign
-a
"
${
multisignEthAddr
}
"
# 拷贝 BridgeRegistry.abi 和 BridgeBank.abi
cp
BridgeRegistry.abi
"
${
BridgeRegistryOnEth
}
.abi"
cp
EthBridgeBank.abi
"
${
ethBridgeBank
}
.abi"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
}
function
offline_deploy_erc20_eth_BYC
()
{
function
offline_deploy_erc20_eth_BYC
()
{
# eth 上 铸币 BYC
# eth 上 铸币 BYC
echo
-e
"
${
GRE
}
======= 在 ethereum 上创建 ERC20 BYC ======
${
NOC
}
"
echo
-e
"
${
GRE
}
======= 在 ethereum 上创建 ERC20 BYC ======
${
NOC
}
"
...
@@ -277,17 +283,17 @@ function offline_create_bridge_token_eth_ZBC() {
...
@@ -277,17 +283,17 @@ function offline_create_bridge_token_eth_ZBC() {
cp
BridgeToken.abi
"
${
ethereumZbcBridgeTokenAddr
}
.abi"
cp
BridgeToken.abi
"
${
ethereumZbcBridgeTokenAddr
}
.abi"
}
}
function
offline_setupChain33Multisign
()
{
#
function offline_setupChain33Multisign() {
echo
-e
"
${
GRE
}
===========
$FUNCNAME
begin ===========
${
NOC
}
"
#
echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
echo
-e
"
${
GRE
}
=========== 设置 chain33 离线钱包合约 ===========
${
NOC
}
"
#
echo -e "${GRE}=========== 设置 chain33 离线钱包合约 ===========${NOC}"
# shellcheck disable=SC2154
#
# shellcheck disable=SC2154
${
Boss4xCLI
}
chain33 offline multisign_setup
-m
"
${
multisignChain33Addr
}
"
-o
"
${
chain33MultisignA
}
,
${
chain33MultisignB
}
,
${
chain33MultisignC
}
,
${
chain33MultisignD
}
"
-k
"
${
chain33DeployKey
}
"
--chainID
"
${
chain33ID
}
"
#
${Boss4xCLI} chain33 offline multisign_setup -m "${multisignChain33Addr}" -o "${chain33MultisignA},${chain33MultisignB},${chain33MultisignC},${chain33MultisignD}" -k "${chain33DeployKey}" --chainID "${chain33ID}"
chain33_offline_send
"multisign_setup.txt"
#
chain33_offline_send "multisign_setup.txt"
#
${
Boss4xCLI
}
chain33 offline set_offline_addr
-a
"
${
multisignChain33Addr
}
"
-c
"
${
chain33BridgeBank
}
"
-k
"
${
chain33DeployKey
}
"
--chainID
"
${
chain33ID
}
"
#
${Boss4xCLI} chain33 offline set_offline_addr -a "${multisignChain33Addr}" -c "${chain33BridgeBank}" -k "${chain33DeployKey}" --chainID "${chain33ID}"
chain33_offline_send
"chain33_set_offline_addr.txt"
#
chain33_offline_send "chain33_set_offline_addr.txt"
echo
-e
"
${
GRE
}
===========
$FUNCNAME
end ===========
${
NOC
}
"
#
echo -e "${GRE}=========== $FUNCNAME end ===========${NOC}"
}
#
}
#function offline_setupEthMultisign() {
#function offline_setupEthMultisign() {
# echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
# echo -e "${GRE}=========== $FUNCNAME begin ===========${NOC}"
...
...
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