Skip to content

Commit

Permalink
feat: support multi msg for PrintEIP712MsgType flag
Browse files Browse the repository at this point in the history
  • Loading branch information
pythonberg1997 committed Oct 7, 2023
1 parent df82cce commit 5efcf0d
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 18 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Changelog

## v1.0.0
This release includes 1 new feature.
This release includes 2 new features.

* [#317](https://github.com/bnb-chain/greenfield-cosmos-sdk/pull/317) feat: add Nagqu fork to mainnet
* [#323](https://github.com/bnb-chain/greenfield-cosmos-sdk/pull/323) feat: support multi msg for `PrintEIP712MsgType` flag

## v0.2.6
This release caps the pagination limit for queries at 100 records if it exceeds the default pagination limit.
Expand Down
21 changes: 4 additions & 17 deletions client/tx/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -410,10 +410,6 @@ func (f Factory) PrintUnsignedTx(clientCtx client.Context, msgs ...sdk.Msg) erro
}

func (f Factory) PrintEIP712MsgType(clientCtx client.Context, msgs ...sdk.Msg) error {
if len(msgs) != 1 {
return errors.New("only one message is supported")
}

unsignedTx, err := f.BuildUnsignedTx(msgs...)
if err != nil {
return err
Expand Down Expand Up @@ -443,28 +439,19 @@ func (f Factory) PrintEIP712MsgType(clientCtx client.Context, msgs ...sdk.Msg) e
return fmt.Errorf("failed to wrap tx to typedData: %s", err)
}

eip712MsgTypes := typedData.Types
delete(eip712MsgTypes, "Tx")
delete(eip712MsgTypes, "Fee")
delete(eip712MsgTypes, "Coin")
delete(eip712MsgTypes, "EIP712Domain")

msgData := typedData.Message["msg1"].(map[string]interface{})
if msgData == nil {
return fmt.Errorf("failed to get msg data")
msgData := make(map[string]interface{})
for i := 1; i <= len(msgs); i++ {
msgData[fmt.Sprintf("msg%d", i)] = typedData.Message[fmt.Sprintf("msg%d", i)]
}
msgTypeUrl := msgData["type"].(string)

type EIP712TypedData struct {
MsgTypeUrl string `json:"MsgTypeUrl"`
EIP712MessageType apitypes.Types `json:"EIP712MessageType"`
MessageData map[string]interface{} `json:"MessageData"`
TxRawBytes string `json:"TxRawBytes"`
}

eip712TypedData := EIP712TypedData{
MsgTypeUrl: msgTypeUrl,
EIP712MessageType: eip712MsgTypes,
EIP712MessageType: typedData.Types,
MessageData: msgData,
TxRawBytes: txRawBytesHex,
}
Expand Down

0 comments on commit 5efcf0d

Please sign in to comment.