github.com/Finschia/finschia-sdk@v0.49.1/x/authz/simulation/decoder.go (about) 1 package simulation 2 3 import ( 4 "bytes" 5 "fmt" 6 7 "github.com/Finschia/finschia-sdk/codec" 8 "github.com/Finschia/finschia-sdk/types/kv" 9 "github.com/Finschia/finschia-sdk/x/authz" 10 "github.com/Finschia/finschia-sdk/x/authz/keeper" 11 ) 12 13 // NewDecodeStore returns a decoder function closure that umarshals the KVPair's 14 // Value to the corresponding authz type. 15 func NewDecodeStore(cdc codec.Codec) func(kvA, kvB kv.Pair) string { 16 return func(kvA, kvB kv.Pair) string { 17 switch { 18 case bytes.Equal(kvA.Key[:1], keeper.GrantKey): 19 var grantA, grantB authz.Grant 20 cdc.MustUnmarshal(kvA.Value, &grantA) 21 cdc.MustUnmarshal(kvB.Value, &grantB) 22 return fmt.Sprintf("%v\n%v", grantA, grantB) 23 default: 24 panic(fmt.Sprintf("invalid authz key %X", kvA.Key)) 25 } 26 } 27 }