v5.0.0
v0.46.7-regen-2
Update regen-ledger's go.mod:
--- a/go.mod
+++ b/go.mod
@@ -170,7 +170,7 @@ require (
replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alpha.regen.1
-replace github.com/cosmos/cosmos-sdk => github.com/regen-network/cosmos-sdk v0.46.7-regen-2
+replace github.com/cosmos/cosmos-sdk => ../cosmos-sdk
// Fix upstream GHSA-h395-qcrw-5vmq vulnerability.
// TODO Remove it: https://github.com/cosmos/cosmos-sdk/issues/10409
Add the following PrintLn's in cosmos-sdk:
--- a/client/tx/tx.go
+++ b/client/tx/tx.go
@@ -3,6 +3,7 @@ package tx
import (
"bufio"
"context"
+ b64 "encoding/base64"
"encoding/json"
"errors"
"fmt"
@@ -297,7 +298,12 @@ func Sign(txf Factory, name string, txBuilder client.TxBuilder, overwriteSig boo
}
// Generate the bytes to be signed.
+ fmt.Println("Signing transaction...")
+ fmt.Printf(" Sign Mode: %s\n", signMode.String())
+ fmt.Printf(" Signer Data: %s\n", signerData)
bytesToSign, err := txf.txConfig.SignModeHandler().GetSignBytes(signMode, signerData, txBuilder.GetTx())
+ fmt.Printf(" Sign Bytes (str): %s\n", bytesToSign)
+ fmt.Printf(" Sign Bytes (base64): %s\n", b64.StdEncoding.EncodeToString(bytesToSign))
if err != nil {
return err
--- a/x/auth/client/cli/tx_multisign.go
+++ b/x/auth/client/cli/tx_multisign.go
@@ -137,6 +137,9 @@ func makeMultiSignCmd() func(cmd *cobra.Command, args []string) (err error) {
PubKey: sig.PubKey,
}
+ fmt.Println("Verifying signature...")
+ fmt.Printf(" Sign Mode: %s\n", sig.Data.(*signingtypes.SingleSignatureData).SignMode.String())
+ fmt.Printf(" Signer Data: %s\n", signingData)
err = signing.VerifySignature(sig.PubKey, signingData, sig.Data
, txCfg.SignModeHandler(), txBuilder.GetTx())
if err != nil {
addr, _ := sdk.AccAddressFromHexUnsafe(sig.PubKey.Addre
ss().String())
--- a/x/auth/signing/verify.go
+++ b/x/auth/signing/verify.go
@@ -3,6 +3,7 @@ package signing
import (
"fmt"
+ b64 "encoding/base64"
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
"github.com/cosmos/cosmos-sdk/crypto/types/multisig"
sdk "github.com/cosmos/cosmos-sdk/types"
@@ -15,6 +16,8 @@ func VerifySignature(pubKey cryptotypes.PubKey, signerData SignerData, sigData s
switch data := sigData.(type) {
case *signing.SingleSignatureData:
signBytes, err := handler.GetSignBytes(data.SignMode, signerData, tx)
+ fmt.Printf("Sign Bytes (str): %s\n", signBytes)
+ fmt.Printf("Sign Bytes (base64): %s\n", b64.StdEncoding.EncodeToString(signBytes))
if err != nil {
return err
}
Verify that the contents of "Sign Mode", "Signer Data", and "Sign Bytes" in stdout are the same when the two commands are run:
Transaction signing:
regen tx sign ...
Signature aggregation:
regen tx multisign ...