github.com/Finschia/finschia-sdk@v0.49.1/x/auth/tx/mode_handler.go (about) 1 package tx 2 3 import ( 4 "fmt" 5 6 signingtypes "github.com/Finschia/finschia-sdk/types/tx/signing" 7 "github.com/Finschia/finschia-sdk/x/auth/signing" 8 ) 9 10 // DefaultSignModes are the default sign modes enabled for protobuf transactions. 11 var DefaultSignModes = []signingtypes.SignMode{ 12 signingtypes.SignMode_SIGN_MODE_DIRECT, 13 signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON, 14 } 15 16 // makeSignModeHandler returns the default protobuf SignModeHandler supporting 17 // SIGN_MODE_DIRECT and SIGN_MODE_LEGACY_AMINO_JSON. 18 func makeSignModeHandler(modes []signingtypes.SignMode) signing.SignModeHandler { 19 if len(modes) < 1 { 20 panic(fmt.Errorf("no sign modes enabled")) 21 } 22 23 handlers := make([]signing.SignModeHandler, len(modes)) 24 25 for i, mode := range modes { 26 switch mode { 27 case signingtypes.SignMode_SIGN_MODE_DIRECT: 28 handlers[i] = signModeDirectHandler{} 29 case signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON: 30 handlers[i] = signModeLegacyAminoJSONHandler{} 31 default: 32 panic(fmt.Errorf("unsupported sign mode %+v", mode)) 33 } 34 } 35 36 return signing.NewSignModeHandlerMap( 37 modes[0], 38 handlers, 39 ) 40 }