github.com/ChainSafe/chainbridge-core@v1.4.2/chains/evm/cli/bridge/query-resource.go (about) 1 package bridge 2 3 import ( 4 "fmt" 5 6 "github.com/ChainSafe/chainbridge-core/chains/evm/cli/flags" 7 "github.com/ChainSafe/chainbridge-core/chains/evm/cli/logger" 8 "github.com/ChainSafe/chainbridge-core/util" 9 "github.com/ethereum/go-ethereum/common" 10 "github.com/rs/zerolog/log" 11 "github.com/spf13/cobra" 12 ) 13 14 var queryResourceCmd = &cobra.Command{ 15 Use: "query-resource", 16 Short: "Query the resource ID for a handler contract", 17 Long: "The query-resource subcommand queries the contract address with the provided resource ID for a specific handler contract", 18 PreRun: func(cmd *cobra.Command, args []string) { 19 logger.LoggerMetadata(cmd.Name(), cmd.Flags()) 20 }, 21 PersistentPreRunE: func(cmd *cobra.Command, args []string) error { 22 return util.CallPersistentPreRun(cmd, args) 23 }, 24 RunE: queryResource, 25 Args: func(cmd *cobra.Command, args []string) error { 26 err := ValidateQueryResourceFlags(cmd, args) 27 if err != nil { 28 return err 29 } 30 return nil 31 }, 32 } 33 34 func BindQueryResourceFlags(cmd *cobra.Command) { 35 cmd.Flags().StringVar(&Handler, "handler", "", "Handler contract address") 36 cmd.Flags().StringVar(&ResourceID, "resource", "", "Resource ID to query") 37 flags.MarkFlagsAsRequired(cmd, "handler", "resource") 38 } 39 40 func init() { 41 BindQueryResourceFlags(queryResourceCmd) 42 } 43 44 func ValidateQueryResourceFlags(cmd *cobra.Command, args []string) error { 45 if !common.IsHexAddress(Handler) { 46 return fmt.Errorf("invalid handler address: %s", Handler) 47 } 48 return nil 49 } 50 51 func queryResource(cmd *cobra.Command, args []string) error { 52 log.Debug().Msgf(` 53 Querying resource 54 Handler address: %s 55 Resource ID: %s`, Handler, ResourceID) 56 return nil 57 } 58 59 /* 60 func queryResource(cctx *cli.Context) error { 61 url := cctx.String("url") 62 gasLimit := cctx.Uint64("gasLimit") 63 gasPrice := cctx.Uint64("gasPrice") 64 sender, err := cliutils.DefineSender(cctx) 65 if err != nil { 66 return err 67 } 68 handlerS := cctx.String("handler") 69 if !common.IsHexAddress(handlerS) { 70 return errors.New("provided handler address is not valid") 71 } 72 handlerAddr := common.HexToAddress(handlerS) 73 resourceIDs := cctx.String("resourceId") 74 resourceID := utils.SliceTo32Bytes(common.Hex2Bytes(resourceIDs)) 75 ethClient, err := client.NewClient(url, false, sender, big.NewInt(0).SetUint64(gasLimit), big.NewInt(0).SetUint64(gasPrice), big.NewFloat(1)) 76 if err != nil { 77 return err 78 } 79 res, err := utils.QueryResource(ethClient, handlerAddr, resourceID) 80 if err != nil { 81 return err 82 } 83 log.Info().Msgf("Resource address that associated with ID %s is %s", common.Bytes2Hex(resourceID[:]), res.String()) 84 return nil 85 } 86 */