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
343a51e3
Commit
343a51e3
authored
Dec 17, 2021
by
QM
Committed by
vipwzw
Dec 20, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add boss4x offline create_file
parent
bc3473ec
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
137 additions
and
47 deletions
+137
-47
build.sh
plugin/dapp/bridgevmxgo/cmd/build.sh
+2
-0
dockerRelayerTestEvm.sh
plugin/dapp/bridgevmxgo/cmd/build/dockerRelayerTestEvm.sh
+1
-1
deploy_chain33.toml
plugin/dapp/cross2eth/boss4x/chain33/deploy_chain33.toml
+7
-0
deployCrossX2Chain33.go
.../cross2eth/boss4x/chain33/offline/deployCrossX2Chain33.go
+107
-36
offline.go
plugin/dapp/cross2eth/boss4x/chain33/offline/offline.go
+13
-3
deploy.go
plugin/dapp/cross2eth/boss4x/ethereum/deploy.go
+0
-1
deploy_ethereum.toml
plugin/dapp/cross2eth/boss4x/ethereum/deploy_ethereum.toml
+1
-1
deployCrossX2Eth.go
...app/cross2eth/boss4x/ethereum/offline/deployCrossX2Eth.go
+1
-1
deploy_ethereum.md
.../cross2eth/boss4x/ethereum/offline/doc/deploy_ethereum.md
+2
-2
build.sh
plugin/dapp/cross2eth/cmd/build.sh
+2
-0
mainPubilcRelayerTest.sh
.../dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
+1
-1
relayerPublic.sh
plugin/dapp/cross2eth/cmd/build/public/relayerPublic.sh
+0
-1
No files found.
plugin/dapp/bridgevmxgo/cmd/build.sh
View file @
343a51e3
...
...
@@ -34,6 +34,8 @@ cp ./build/* "${OUT_DIR}"
cp
./build/abi/
*
"
${
OUT_DIR
}
"
cp
../../cross2eth/cmd/build/public/
*
"
${
OUT_DIR
}
"
cp
../../cross2eth/cmd/build/abi/
*
"
${
OUT_DIR
}
"
cp
../../cross2eth/boss4x/chain33/deploy_chain33.toml
"
${
OUT_DIR
}
"
cp
../../cross2eth/boss4x/ethereum/deploy_ethereum.toml
"
${
OUT_DIR
}
"
OUT_TESTDIR
=
"
${
1
}
/dapptest/
$strapp
"
mkdir
-p
"
${
OUT_TESTDIR
}
"
...
...
plugin/dapp/bridgevmxgo/cmd/build/dockerRelayerTestEvm.sh
View file @
343a51e3
...
...
@@ -230,7 +230,7 @@ function get_evm_cli() {
CLID
=
"docker exec
${
dockerNamePrefix
}
_ebrelayerd_1 /root/ebcli_A"
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. --chainID
${
chain33ID
}
--chainEthId
0
"
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
}
--chainEthId
1337
"
EvmxgoBoss4xCLI
=
"./evmxgoboss4x --rpc_laddr http://
${
docker_chain33_ip
}
:8901 --paraName user.p.para. --chainID
${
chain33ID
}
"
}
}
...
...
plugin/dapp/cross2eth/boss4x/chain33/deploy_chain33.toml
0 → 100644
View file @
343a51e3
# 验证人地址,至少配置3个以上,即大于等于3个
validatorsAddr
=[
"1N6HstkyLFS8QCeVfdvYxx1xoryXoJtvvZ"
,
"155ooMPBTF8QQsGAknkK7ei5D78rwDEFe6"
,
"13zBdQwuyDh7cKN79oT2odkxYuDbgQiXFv"
,
"113ZzVamKfAtGt9dq45fX1mNsEoDiN95HG"
]
# 验证人权重
initPowers
=[
25
,
25
,
25
,
25
]
# 离线多签地址
multisignAddrs
=[
"168Sn1DXnLrZHTcAM9stD6t2P49fNuJfJ9"
,
"13KTf57aCkVVJYNJBXBBveiA5V811SrLcT"
,
"1JQwQWsShTHC4zxHzbUfYQK4kRBriUQdEe"
,
"1NHuKqoKe3hyv52PF8XBAyaTmJWAqA2Jbb"
]
\ No newline at end of file
plugin/dapp/cross2eth/boss4x/chain33/offline/deployCrossX2Chain33.go
View file @
343a51e3
...
...
@@ -2,14 +2,14 @@ package offline
import
(
"fmt"
"strconv"
"strings"
"time"
ebTypes
"github.com/33cn/plugin/plugin/dapp/cross2eth/ebrelayer/types"
"github.com/33cn/chain33/common/address"
"github.com/33cn/chain33/system/crypto/secp256k1"
"github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/contracts4chain33/generated"
ebTypes
"github.com/33cn/plugin/plugin/dapp/cross2eth/ebrelayer/types"
"github.com/33cn/plugin/plugin/dapp/dex/utils"
evmAbi
"github.com/33cn/plugin/plugin/dapp/evm/executor/abi"
"github.com/33cn/plugin/plugin/dapp/evm/executor/vm/common"
...
...
@@ -21,6 +21,71 @@ import (
./boss4x chain33 offline send -f deployCrossX2Chain33.txt
*/
type
DeployChain33ConfigInfo
struct
{
ValidatorsAddr
[]
string
`toml:"validatorsAddr"`
InitPowers
[]
int64
`toml:"initPowers"`
Symbol
string
`toml:"symbol"`
MultisignAddrs
[]
string
`toml:"multisignAddrs"`
}
func
CreateContractsWithFileCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"create_file"
,
Short
:
"create and sign all the offline cross to ethereum contracts(inclue valset,ethereumBridge,bridgeBank,oracle,bridgeRegistry,mulSign)"
,
Run
:
createContractsWithFile
,
}
addCreateContractsWithFileFlags
(
cmd
)
return
cmd
}
func
addCreateContractsWithFileFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"key"
,
"k"
,
""
,
"the deployer private key"
)
_
=
cmd
.
MarkFlagRequired
(
"key"
)
cmd
.
Flags
()
.
StringP
(
"note"
,
"n"
,
""
,
"transaction note info (optional)"
)
cmd
.
Flags
()
.
Float64P
(
"fee"
,
"f"
,
0
,
"contract gas fee (optional)"
)
cmd
.
Flags
()
.
StringP
(
"conf"
,
"f"
,
""
,
"config file"
)
_
=
cmd
.
MarkFlagRequired
(
"conf"
)
}
func
createContractsWithFile
(
cmd
*
cobra
.
Command
,
_
[]
string
)
{
cfgpath
,
_
:=
cmd
.
Flags
()
.
GetString
(
"conf"
)
var
deployCfg
DeployChain33ConfigInfo
InitCfg
(
cfgpath
,
&
deployCfg
)
if
len
(
deployCfg
.
InitPowers
)
!=
len
(
deployCfg
.
ValidatorsAddr
)
{
panic
(
"not same number for validator address and power"
)
}
if
len
(
deployCfg
.
ValidatorsAddr
)
<
3
{
panic
(
"the number of validator must be not less than 3"
)
}
validators
:=
strings
.
Join
(
deployCfg
.
ValidatorsAddr
,
","
)
var
stringPowers
[]
string
for
_
,
v
:=
range
deployCfg
.
InitPowers
{
stringPowers
=
append
(
stringPowers
,
strconv
.
FormatInt
(
v
,
10
))
}
initPowers
:=
strings
.
Join
(
stringPowers
,
","
)
privateKeyStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"key"
)
var
driver
secp256k1
.
Driver
privateKeySli
:=
common
.
FromHex
(
privateKeyStr
)
privateKey
,
err
:=
driver
.
PrivKeyFromBytes
(
privateKeySli
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to do PrivKeyFromBytes"
)
return
}
fromAddr
:=
address
.
PubKeyToAddress
(
privateKey
.
PubKey
()
.
Bytes
())
from
:=
common
.
Address
{
Addr
:
fromAddr
,
}
valsetParameter
:=
fromAddr
.
String
()
+
",["
+
validators
+
"],["
+
initPowers
+
"]"
multisignAddrs
:=
strings
.
Join
(
deployCfg
.
MultisignAddrs
,
","
)
txCreateInfo
:=
getTxInfo
(
cmd
)
createChain33DeployTxs
(
txCreateInfo
,
valsetParameter
,
multisignAddrs
,
from
)
}
func
CreateCrossBridgeCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"create"
,
...
...
@@ -44,8 +109,9 @@ func addCreateCrossBridgeFlags(cmd *cobra.Command) {
func
createCrossBridge
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
_
=
args
var
txs
[]
*
utils
.
Chain33OfflineTx
privateKeyStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"key"
)
multisignAddrs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"multisignAddrs"
)
valsetParameter
,
_
:=
cmd
.
Flags
()
.
GetString
(
"valset"
)
var
driver
secp256k1
.
Driver
privateKeySli
:=
common
.
FromHex
(
privateKeyStr
)
privateKey
,
err
:=
driver
.
PrivKeyFromBytes
(
privateKeySli
)
...
...
@@ -58,11 +124,18 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
Addr
:
fromAddr
,
}
txCreateInfo
:=
getTxInfo
(
cmd
)
createChain33DeployTxs
(
txCreateInfo
,
valsetParameter
,
multisignAddrs
,
from
)
}
func
createChain33DeployTxs
(
txCreateInfo
*
utils
.
TxCreateInfo
,
valsetParameter
,
multisignAddrs
string
,
from
common
.
Address
)
{
var
txs
[]
*
utils
.
Chain33OfflineTx
i
:=
1
fmt
.
Printf
(
"%d: Going to create Valset
\n
"
,
i
)
i
+=
1
// 0
valsetTx
,
err
:=
createValsetTxAndSign
(
cmd
,
from
)
valsetTx
,
err
:=
createValsetTxAndSign
(
txCreateInfo
,
valsetParameter
,
from
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createValsetTxAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -72,7 +145,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create EthereumBridge
\n
"
,
i
)
i
+=
1
// 1
ethereumBridgeTx
,
err
:=
createEthereumBridgeAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
)
ethereumBridgeTx
,
err
:=
createEthereumBridgeAndSign
(
txCreateInfo
,
from
,
valsetTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createEthereumBridgeAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -82,7 +155,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create Oracle
\n
"
,
i
)
i
+=
1
// 2
oracleTx
,
err
:=
createOracleTxAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
oracleTx
,
err
:=
createOracleTxAndSign
(
txCreateInfo
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createOracleTxAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -92,7 +165,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create BridgeBank
\n
"
,
i
)
i
+=
1
// 3
bridgeBankTx
,
err
:=
createBridgeBankTxAndSign
(
cmd
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
bridgeBankTx
,
err
:=
createBridgeBankTxAndSign
(
txCreateInfo
,
from
,
valsetTx
.
ContractAddr
,
ethereumBridgeTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createBridgeBankTxAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -102,7 +175,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to set BridgeBank to EthBridge
\n
"
,
i
)
i
+=
1
// 4
setBridgeBank2EthBridgeTx
,
err
:=
setBridgeBank2EthBridgeTxAndSign
(
cmd
,
ethereumBridgeTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
setBridgeBank2EthBridgeTx
,
err
:=
setBridgeBank2EthBridgeTxAndSign
(
txCreateInfo
,
ethereumBridgeTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to setBridgeBank2EthBridgeTxAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -112,7 +185,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to set Oracle to EthBridge
\n
"
,
i
)
i
+=
1
// 5
setOracle2EthBridgeTx
,
err
:=
setOracle2EthBridgeTxAndSign
(
cmd
,
ethereumBridgeTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
setOracle2EthBridgeTx
,
err
:=
setOracle2EthBridgeTxAndSign
(
txCreateInfo
,
ethereumBridgeTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to setOracle2EthBridgeTxAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -122,7 +195,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create BridgeRegistry
\n
"
,
i
)
i
+=
1
// 6
createBridgeRegistryTx
,
err
:=
createBridgeRegistryTxAndSign
(
cmd
,
from
,
ethereumBridgeTx
.
ContractAddr
,
valsetTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
createBridgeRegistryTx
,
err
:=
createBridgeRegistryTxAndSign
(
txCreateInfo
,
from
,
ethereumBridgeTx
.
ContractAddr
,
valsetTx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
,
oracleTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createBridgeRegistryTxAndSign due to cause:"
,
err
.
Error
())
return
...
...
@@ -132,7 +205,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to create MulSign2chain33
\n
"
,
i
)
i
+=
1
// 7
createMulSign2chain33Tx
,
err
:=
createMulSignAndSign
(
cmd
,
from
)
createMulSign2chain33Tx
,
err
:=
createMulSignAndSign
(
txCreateInfo
,
from
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to createMulSign2chain33Tx due to cause:"
,
err
.
Error
())
return
...
...
@@ -142,7 +215,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to save multisign contract config offline account
\n
"
,
i
)
i
+=
1
// 8
configMultisignOfflineSaveAccountTx
,
err
:=
configMultisignOfflineSaveAccount
(
cmd
,
createMulSign2chain33Tx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
configMultisignOfflineSaveAccountTx
,
err
:=
configMultisignOfflineSaveAccount
(
txCreateInfo
,
createMulSign2chain33Tx
.
ContractAddr
,
bridgeBankTx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to configMultisignOfflineSaveAccountTx due to cause:"
,
err
.
Error
())
return
...
...
@@ -152,7 +225,7 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
fmt
.
Printf
(
"%d: Going to Setup multisignAddrs to contract
\n
"
,
i
)
i
+=
1
// 9
multisignSetupTx
,
err
:=
multisignSetup
(
cmd
,
createMulSign2chain33Tx
.
ContractAddr
)
multisignSetupTx
,
err
:=
multisignSetup
(
txCreateInfo
,
multisignAddrs
,
createMulSign2chain33Tx
.
ContractAddr
)
if
nil
!=
err
{
fmt
.
Println
(
"Failed to configMultisignOfflineSaveAccountTx due to cause:"
,
err
.
Error
())
return
...
...
@@ -163,9 +236,9 @@ func createCrossBridge(cmd *cobra.Command, args []string) {
utils
.
WriteToFileInJson
(
crossXfileName
,
txs
)
}
func
createBridgeRegistryTxAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
,
ethereumBridge
,
valset
,
bridgeBank
,
oracle
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
createBridgeRegistryTxAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
from
common
.
Address
,
ethereumBridge
,
valset
,
bridgeBank
,
oracle
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
createPara
:=
fmt
.
Sprintf
(
"%s,%s,%s,%s"
,
ethereumBridge
,
bridgeBank
,
oracle
,
valset
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
getTxInfo
(
cmd
)
,
generated
.
BridgeRegistryBin
,
generated
.
BridgeRegistryABI
,
createPara
,
"BridgeRegistry"
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
txCreateInfo
,
generated
.
BridgeRegistryBin
,
generated
.
BridgeRegistryABI
,
createPara
,
"BridgeRegistry"
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -181,7 +254,7 @@ func createBridgeRegistryTxAndSign(cmd *cobra.Command, from common.Address, ethe
return
bridgeRegistryTx
,
nil
}
func
setOracle2EthBridgeTxAndSign
(
cmd
*
cobra
.
Command
,
ethbridge
,
oracle
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
setOracle2EthBridgeTxAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
ethbridge
,
oracle
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
parameter
:=
fmt
.
Sprintf
(
"setOracle(%s)"
,
oracle
)
_
,
packData
,
err
:=
evmAbi
.
Pack
(
parameter
,
generated
.
EthereumBridgeABI
,
false
)
if
nil
!=
err
{
...
...
@@ -189,23 +262,23 @@ func setOracle2EthBridgeTxAndSign(cmd *cobra.Command, ethbridge, oracle string)
return
nil
,
err
}
return
createOfflineTx
(
cmd
,
packData
,
ethbridge
,
"setOracle2EthBridge"
,
time
.
Second
*
5
)
return
createOfflineTx
(
txCreateInfo
,
packData
,
ethbridge
,
"setOracle2EthBridge"
,
time
.
Second
*
5
)
}
func
setBridgeBank2EthBridgeTxAndSign
(
cmd
*
cobra
.
Command
,
ethbridge
,
bridgebank
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
setBridgeBank2EthBridgeTxAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
ethbridge
,
bridgebank
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
parameter
:=
fmt
.
Sprintf
(
"setBridgeBank(%s)"
,
bridgebank
)
_
,
packData
,
err
:=
evmAbi
.
Pack
(
parameter
,
generated
.
EthereumBridgeABI
,
false
)
if
nil
!=
err
{
fmt
.
Println
(
"setBridgeBank2EthBridge"
,
"Failed to do abi.Pack due to:"
,
err
.
Error
())
return
nil
,
err
}
return
createOfflineTx
(
cmd
,
packData
,
ethbridge
,
"setBridgeBank2EthBridge"
,
time
.
Second
*
5
)
return
createOfflineTx
(
txCreateInfo
,
packData
,
ethbridge
,
"setBridgeBank2EthBridge"
,
time
.
Second
*
5
)
}
func
createBridgeBankTxAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
,
oracle
,
ethereumBridge
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
createBridgeBankTxAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
from
common
.
Address
,
oracle
,
ethereumBridge
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
operator
:=
from
.
String
()
createPara
:=
fmt
.
Sprintf
(
"%s,%s,%s"
,
operator
,
oracle
,
ethereumBridge
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
getTxInfo
(
cmd
)
,
generated
.
BridgeBankBin
,
generated
.
BridgeBankABI
,
createPara
,
"bridgeBank"
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
txCreateInfo
,
generated
.
BridgeBankBin
,
generated
.
BridgeBankABI
,
createPara
,
"bridgeBank"
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -221,10 +294,10 @@ func createBridgeBankTxAndSign(cmd *cobra.Command, from common.Address, oracle,
return
bridgeBankTx
,
nil
}
func
createOracleTxAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
,
valset
,
ethereumBridge
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
createOracleTxAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
from
common
.
Address
,
valset
,
ethereumBridge
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
operator
:=
from
.
String
()
createPara
:=
fmt
.
Sprintf
(
"%s,%s,%s"
,
operator
,
valset
,
ethereumBridge
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
getTxInfo
(
cmd
)
,
generated
.
OracleBin
,
generated
.
OracleABI
,
createPara
,
"oralce"
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
txCreateInfo
,
generated
.
OracleBin
,
generated
.
OracleABI
,
createPara
,
"oralce"
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -240,10 +313,9 @@ func createOracleTxAndSign(cmd *cobra.Command, from common.Address, valset, ethe
return
oracleTx
,
nil
}
func
createValsetTxAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
contructParameter
,
_
:=
cmd
.
Flags
()
.
GetString
(
"valset"
)
createPara
:=
contructParameter
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
getTxInfo
(
cmd
),
generated
.
ValsetBin
,
generated
.
ValsetABI
,
createPara
,
"valset"
)
func
createValsetTxAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
valsetParameter
string
,
from
common
.
Address
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
createPara
:=
valsetParameter
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
txCreateInfo
,
generated
.
ValsetBin
,
generated
.
ValsetABI
,
createPara
,
"valset"
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -259,10 +331,10 @@ func createValsetTxAndSign(cmd *cobra.Command, from common.Address) (*utils.Chai
return
valsetTx
,
nil
}
func
createEthereumBridgeAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
,
valset
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
createEthereumBridgeAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
from
common
.
Address
,
valset
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
operator
:=
from
.
String
()
createPara
:=
fmt
.
Sprintf
(
"%s,%s"
,
operator
,
valset
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
getTxInfo
(
cmd
)
,
generated
.
EthereumBridgeBin
,
generated
.
EthereumBridgeABI
,
createPara
,
"EthereumBridge"
)
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
txCreateInfo
,
generated
.
EthereumBridgeBin
,
generated
.
EthereumBridgeABI
,
createPara
,
"EthereumBridge"
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -278,8 +350,8 @@ func createEthereumBridgeAndSign(cmd *cobra.Command, from common.Address, valset
return
ethereumBridgeTx
,
nil
}
func
createMulSignAndSign
(
cmd
*
cobra
.
Command
,
from
common
.
Address
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
getTxInfo
(
cmd
)
,
generated
.
GnosisSafeBin
,
generated
.
GnosisSafeABI
,
""
,
"mulSign2chain33"
)
func
createMulSignAndSign
(
txCreateInfo
*
utils
.
TxCreateInfo
,
from
common
.
Address
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
content
,
txHash
,
err
:=
utils
.
CreateContractAndSign
(
txCreateInfo
,
generated
.
GnosisSafeBin
,
generated
.
GnosisSafeABI
,
""
,
"mulSign2chain33"
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -295,18 +367,17 @@ func createMulSignAndSign(cmd *cobra.Command, from common.Address) (*utils.Chain
return
mulSign2chain33Tx
,
nil
}
func
configMultisignOfflineSaveAccount
(
cmd
*
cobra
.
Command
,
multisignContract
,
bridgebank
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
configMultisignOfflineSaveAccount
(
txCreateInfo
*
utils
.
TxCreateInfo
,
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
)
return
createOfflineTx
(
txCreateInfo
,
packData
,
bridgebank
,
"configOfflineSaveAccount"
,
time
.
Second
*
5
)
}
func
multisignSetup
(
cmd
*
cobra
.
Command
,
multisignContract
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
multisignAddrs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"multisignAddrs"
)
func
multisignSetup
(
txCreateInfo
*
utils
.
TxCreateInfo
,
multisignAddrs
string
,
multisignContract
string
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
owners
:=
strings
.
Split
(
multisignAddrs
,
","
)
BTYAddrChain33
:=
ebTypes
.
BTYAddrChain33
...
...
@@ -323,5 +394,5 @@ func multisignSetup(cmd *cobra.Command, multisignContract string) (*utils.Chain3
return
nil
,
err
}
return
createOfflineTx
(
cmd
,
packData
,
multisignContract
,
"multisign_setup"
,
time
.
Second
*
5
)
return
createOfflineTx
(
txCreateInfo
,
packData
,
multisignContract
,
"multisign_setup"
,
time
.
Second
*
5
)
}
plugin/dapp/cross2eth/boss4x/chain33/offline/offline.go
View file @
343a51e3
...
...
@@ -3,6 +3,7 @@ package offline
import
(
"encoding/json"
"fmt"
tml
"github.com/BurntSushi/toml"
"io/ioutil"
"os"
"time"
...
...
@@ -22,6 +23,7 @@ func Boss4xOfflineCmd() *cobra.Command {
}
cmd
.
AddCommand
(
CreateCrossBridgeCmd
(),
CreateContractsWithFileCmd
(),
SendSignTxs2Chain33Cmd
(),
CreateERC20Cmd
(),
ApproveErc20Cmd
(),
...
...
@@ -107,9 +109,9 @@ func paraseFile(file string, result interface{}) error {
return
json
.
Unmarshal
(
b
,
result
)
}
func
createOfflineTx
(
cmd
*
cobra
.
Command
,
para
[]
byte
,
contractAddr
,
name
string
,
interval
time
.
Duration
)
(
*
utils
.
Chain33OfflineTx
,
error
)
{
func
createOfflineTx
(
txCreateInfo
*
utils
.
TxCreateInfo
,
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
}
content
,
txHash
,
err
:=
utils
.
CallContractAndSign
(
getTxInfo
(
cmd
)
,
action
,
contractAddr
)
content
,
txHash
,
err
:=
utils
.
CallContractAndSign
(
txCreateInfo
,
action
,
contractAddr
)
if
nil
!=
err
{
return
nil
,
err
}
...
...
@@ -126,7 +128,7 @@ func createOfflineTx(cmd *cobra.Command, para []byte, contractAddr, name string,
}
func
callContractAndSignWrite
(
cmd
*
cobra
.
Command
,
para
[]
byte
,
contractAddr
,
name
string
)
{
Tx
,
err
:=
createOfflineTx
(
cmd
,
para
,
contractAddr
,
name
,
0
)
Tx
,
err
:=
createOfflineTx
(
getTxInfo
(
cmd
)
,
para
,
contractAddr
,
name
,
0
)
if
nil
!=
err
{
fmt
.
Println
(
"CallContractAndSign"
,
"Failed"
,
err
.
Error
(),
"name"
,
name
)
return
...
...
@@ -145,3 +147,11 @@ func callContractAndSignWrite(cmd *cobra.Command, para []byte, contractAddr, nam
fmt
.
Printf
(
"Write all the txs to file: %s
\n
"
,
fileName
)
utils
.
WriteToFileInJson
(
fileName
,
txs
)
}
func
InitCfg
(
filepath
string
,
cfg
interface
{})
{
if
_
,
err
:=
tml
.
DecodeFile
(
filepath
,
cfg
);
err
!=
nil
{
fmt
.
Println
(
err
)
os
.
Exit
(
-
1
)
}
return
}
plugin/dapp/cross2eth/boss4x/ethereum/deploy.go
View file @
343a51e3
...
...
@@ -108,7 +108,6 @@ func DeployContrcts(cmd *cobra.Command, args []string) {
}
func
InitCfg
(
filepath
string
,
cfg
interface
{})
{
if
_
,
err
:=
tml
.
DecodeFile
(
filepath
,
cfg
);
err
!=
nil
{
fmt
.
Println
(
err
)
os
.
Exit
(
-
1
)
...
...
plugin/dapp/cross2eth/boss4x/ethereum/deploy.toml
→
plugin/dapp/cross2eth/boss4x/ethereum/deploy
_ethereum
.toml
View file @
343a51e3
...
...
@@ -3,7 +3,7 @@ operatorAddr="0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a"
# 验证人地址,至少配置3个以上,即大于等于3个
validatorsAddr
=[
"0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a"
,
"0x0df9a824699bc5878232c9e612fe1a5346a5a368"
,
"0xcb074cb21cdddf3ce9c3c0a7ac4497d633c9d9f1"
,
"0xd9dab021e74ecf475788ed7b61356056b2095830"
]
# 验证人权重
initPowers
=[
96
,
1
,
1
,
1
]
initPowers
=[
25
,
25
,
25
,
25
]
# 主链symbol
symbol
=
"ETH"
# 离线多签地址
...
...
plugin/dapp/cross2eth/boss4x/ethereum/offline/deployCrossX2Eth.go
View file @
343a51e3
...
...
@@ -505,7 +505,7 @@ func CreateWithFileCmd() *cobra.Command {
}
func
addCreateWithFileFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"conf"
,
"
c
"
,
""
,
"config file"
)
cmd
.
Flags
()
.
StringP
(
"conf"
,
"
f
"
,
""
,
"config file"
)
_
=
cmd
.
MarkFlagRequired
(
"conf"
)
}
...
...
plugin/dapp/cross2eth/boss4x/ethereum/offline/doc/deploy_ethereum.md
View file @
343a51e3
...
...
@@ -50,7 +50,7 @@ tx is written to file: deploytxs.txt
把交易信息写入文件中
```
##### 文件部署
把要部署需要的数据写入 deploy.toml 配置文件
把要部署需要的数据写入 deploy
_ethereum
.toml 配置文件
```
toml
# 合约部署人
operatorAddr
=
"0x8afdadfc88a1087c9a1d6c0f5dd04634b87f303a"
...
...
@@ -65,7 +65,7 @@ multisignAddrs=["0x4c85848a7E2985B76f06a7Ed338FCB3aF94a7DCf", "0x6F163E6daf0090D
```
命令:
```
shell
./boss4x ethereum offline create_file
-c
deploy.toml
./boss4x ethereum offline create_file
-c
deploy
_ethereum
.toml
```
*
离线签名交易
...
...
plugin/dapp/cross2eth/cmd/build.sh
View file @
343a51e3
...
...
@@ -30,6 +30,8 @@ cp ../ebrelayer/relayer.toml "${OUT_DIR}/relayer.toml"
cp
./build/
*
"
${
OUT_DIR
}
"
cp
./build/abi/
*
"
${
OUT_DIR
}
"
cp
./build/public/
*
"
${
OUT_DIR
}
"
cp
../../cross2eth/boss4x/chain33/deploy_chain33.toml
"
${
OUT_DIR
}
"
cp
../../cross2eth/boss4x/ethereum/deploy_ethereum.toml
"
${
OUT_DIR
}
"
OUT_TESTDIR
=
"
${
1
}
/dapptest/
$strapp
"
mkdir
-p
"
${
OUT_TESTDIR
}
"
...
...
plugin/dapp/cross2eth/cmd/build/public/mainPubilcRelayerTest.sh
View file @
343a51e3
...
...
@@ -854,7 +854,7 @@ function get_cli() {
CLID
=
"docker exec
${
dockerNamePrefix
}
_ebrelayerd_1 /root/ebcli_A"
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. --chainID
${
chain33ID
}
--chainEthId
0
"
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
}
--chainEthId
1337
"
}
}
...
...
plugin/dapp/cross2eth/cmd/build/public/relayerPublic.sh
View file @
343a51e3
...
...
@@ -53,7 +53,6 @@ CLIA="./ebcli_A"
CLIB
=
"./ebcli_B"
CLIC
=
"./ebcli_C"
CLID
=
"./ebcli_D"
chain33ID
=
0
function
kill_ebrelayerC
()
{
kill_ebrelayer ./relayer_C/ebrelayer
...
...
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