Skip to content

Commit

Permalink
cli: Add contracts dump-code command
Browse files Browse the repository at this point in the history
  • Loading branch information
matevz committed Jun 30, 2022
1 parent a52c609 commit 435e987
Showing 1 changed file with 31 additions and 1 deletion.
32 changes: 31 additions & 1 deletion cli/cmd/contracts.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ var (

contractsShowCmd = &cobra.Command{
Use: "show <instance-id>",
Short: "Show information about a deployed contract",
Short: "Show information about an instantiated contract",
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
cfg := cliConfig.Global()
Expand Down Expand Up @@ -94,6 +94,34 @@ var (
},
}

contractsDumpCodeCmd = &cobra.Command{
Use: "dump-code <code-id>",
Short: "Dumps the contract code in Base64 format",
Args: cobra.ExactArgs(1),
Run: func(cmd *cobra.Command, args []string) {
cfg := cliConfig.Global()
npa := common.GetNPASelection(cfg)
strCodeID := args[0]

if npa.ParaTime == nil {
cobra.CheckErr("no paratimes configured")
}

codeID, err := strconv.ParseUint(strCodeID, 10, 64)
cobra.CheckErr(err)

ctx := context.Background()
conn, err := connection.Connect(ctx, npa.Network)
cobra.CheckErr(err)

// Fetch WASM contract code, if supported.
codeStorage, err := conn.Runtime(npa.ParaTime).Contracts.CodeStorage(ctx, client.RoundLatest, contracts.CodeID(codeID))
cobra.CheckErr(err)

os.Stdout.Write(codeStorage.Code)
},
}

contractsUploadCmd = &cobra.Command{
Use: "upload <contract.wasm> [--instantiate-policy POLICY]",
Short: "Upload WebAssembly smart contract",
Expand Down Expand Up @@ -340,6 +368,7 @@ func init() {
contractsShowCmd.Flags().AddFlagSet(common.SelectorFlags)

contractsShowCodeCmd.Flags().AddFlagSet(common.SelectorFlags)
contractsDumpCodeCmd.Flags().AddFlagSet(common.SelectorFlags)

contractsUploadFlags := flag.NewFlagSet("", flag.ContinueOnError)
contractsUploadFlags.StringVar(&contractsInstantiatePolicy, "instantiate-policy", "everyone", "contract instantiation policy")
Expand All @@ -365,6 +394,7 @@ func init() {

contractsCmd.AddCommand(contractsShowCmd)
contractsCmd.AddCommand(contractsShowCodeCmd)
contractsCmd.AddCommand(contractsDumpCodeCmd)
contractsCmd.AddCommand(contractsUploadCmd)
contractsCmd.AddCommand(contractsInstantiateCmd)
contractsCmd.AddCommand(contractsCallCmd)
Expand Down

0 comments on commit 435e987

Please sign in to comment.