99 "os"
1010 "strings"
1111
12+ "github.com/33cn/plugin/plugin/dapp/cross2eth/ebrelayer/utils"
13+
1214 erc20 "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/erc20/generated"
1315 gnosis "github.com/33cn/plugin/plugin/dapp/cross2eth/contracts/gnosis/generated"
1416 ebTypes "github.com/33cn/plugin/plugin/dapp/cross2eth/ebrelayer/types"
@@ -63,7 +65,7 @@ func addPrepareCreateMultisignTransferTxFlags(cmd *cobra.Command) {
6365 _ = cmd .MarkFlagRequired ("contract" )
6466 cmd .Flags ().StringP ("receiver" , "r" , "" , "receive address" )
6567 _ = cmd .MarkFlagRequired ("receiver" )
66- cmd .Flags ().Float64P ("amount" , "a" , 0 , "amount to transfer" )
68+ cmd .Flags ().StringP ("amount" , "a" , "0" , "amount to transfer" )
6769 _ = cmd .MarkFlagRequired ("amount" )
6870 cmd .Flags ().StringP ("token" , "t" , "" , "erc20 address,not need to set for ETH(optional)" )
6971}
@@ -72,7 +74,7 @@ func prepareCreateMultisignTransferTx(cmd *cobra.Command, _ []string) {
7274 url , _ := cmd .Flags ().GetString ("rpc_laddr_ethereum" )
7375 receiver , _ := cmd .Flags ().GetString ("receiver" )
7476 tokenAddr , _ := cmd .Flags ().GetString ("token" )
75- amount , _ := cmd .Flags ().GetFloat64 ("amount" )
77+ amount , _ := cmd .Flags ().GetString ("amount" )
7678 sendAddr , _ := cmd .Flags ().GetString ("sendAddr" )
7779 multiSignAddrstr , _ := cmd .Flags ().GetString ("contract" )
7880
@@ -107,14 +109,17 @@ func prepareCreateMultisignTransferTx(cmd *cobra.Command, _ []string) {
107109 return
108110 }
109111
110- gasPrice , err := client .SuggestGasPrice (context .Background ())
111- if err != nil {
112- fmt .Println ("SuggestGasPrice Err:" , err )
113- return
114- }
112+ gasPrice := big .NewInt (0 )
113+ //gasPrice, err := client.SuggestGasPrice(context.Background())
114+ //if err != nil {
115+ // fmt.Println("SuggestGasPrice Err:", err)
116+ // return
117+ //}
115118
119+ bn := big .NewInt (1 )
120+ bn , _ = bn .SetString (utils .TrimZeroAndDot (amount ), 10 )
116121 if tokenAddr == "" {
117- value .Mul (big . NewInt ( int64 ( amount )) , big .NewInt (int64 (1e18 )))
122+ value .Mul (bn , big .NewInt (int64 (1e18 )))
118123 } else {
119124 toAddr = common .HexToAddress (tokenAddr )
120125 erc20Abi , err := abi .JSON (strings .NewReader (erc20 .ERC20ABI ))
@@ -133,13 +138,14 @@ func prepareCreateMultisignTransferTx(cmd *cobra.Command, _ []string) {
133138 fmt .Println ("Decimals Err:" , err )
134139 return
135140 }
141+
136142 dec , ok := ebTypes .DecimalsPrefix [decimals ]
137143 if ! ok {
138144 fmt .Println ("dec Err:" )
139145 return
140146 }
141147
142- value .Mul (big . NewInt ( int64 ( amount )) , big .NewInt (dec ))
148+ value .Mul (bn , big .NewInt (dec ))
143149
144150 sendData , err = erc20Abi .Pack ("transfer" , common .HexToAddress (receiver ), value )
145151 if err != nil {
@@ -348,12 +354,6 @@ func SendMultisignTransferTx(cmd *cobra.Command, _ []string) {
348354 return
349355 }
350356
351- gasPrice , err := client .SuggestGasPrice (context .Background ())
352- if err != nil {
353- fmt .Println ("SuggestGasPrice Err:" , err )
354- return
355- }
356-
357357 gnoAbi , err := abi .JSON (strings .NewReader (gnosis .GnosisSafeABI ))
358358 if err != nil {
359359 fmt .Println ("JSON Err:" , err )
@@ -363,7 +363,7 @@ func SendMultisignTransferTx(cmd *cobra.Command, _ []string) {
363363 safeTxGas := big .NewInt (10 * 10000 )
364364
365365 gnoData , err := gnoAbi .Pack ("execTransaction" , txinfo .To , txinfo .Value , txinfo .TransferData , uint8 (0 ),
366- safeTxGas , big .NewInt (0 ), gasPrice , zeroAddr , zeroAddr , txinfo .Content )
366+ safeTxGas , big .NewInt (0 ), big . NewInt ( 0 ) , zeroAddr , zeroAddr , txinfo .Content )
367367 if err != nil {
368368 fmt .Println ("Pack execTransaction Err:" , err )
369369 return
0 commit comments