From e5dad39bb55ab744b29c69921d283c88e2548a0e Mon Sep 17 00:00:00 2001 From: Geoff Stuart Date: Wed, 1 Feb 2023 11:27:46 -0500 Subject: [PATCH] Allow f4 address to send to all address types if ID address exists on chain --- cli/send.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cli/send.go b/cli/send.go index 3e390584d7c..0b4b210eff5 100644 --- a/cli/send.go +++ b/cli/send.go @@ -85,7 +85,7 @@ var sendCmd = &cli.Command{ ctx := ReqContext(cctx) var params SendParams - params.To, err = address.NewFromString(cctx.Args().Get(0)) + toAddr, err := address.NewFromString(cctx.Args().Get(0)) if err != nil { return ShowHelp(cctx, fmt.Errorf("failed to parse target address: %w", err)) } @@ -117,6 +117,17 @@ var sendCmd = &cli.Command{ params.From = faddr } + if params.From.Protocol() == address.Delegated { + if !(params.To.Protocol() == address.ID || params.To.Protocol() == address.Delegated) { + api := srv.FullNodeAPI() + // Resolve id addr if possible. + params.To, err = api.StateLookupID(ctx, toAddr, types.EmptyTSK) + if err != nil { + return xerrors.Errorf("f4 addresses can only send to other f4 or id addresses. could not find id address for %s", toAddr.String()) + } + } + } + if cctx.IsSet("gas-premium") { gp, err := types.BigFromString(cctx.String("gas-premium")) if err != nil {