@@ -14,6 +14,8 @@ import (
14
14
"github.com/pkg/errors"
15
15
)
16
16
17
+ const SKVSKey = "SKVS"
18
+
17
19
type SkvsStubInterface struct {
18
20
* FpcStubInterface
19
21
allDataOld map [string ][]byte
@@ -22,46 +24,50 @@ type SkvsStubInterface struct {
22
24
}
23
25
24
26
func NewSkvsStubInterface (stub shim.ChaincodeStubInterface , input * pb.ChaincodeInput , rwset * readWriteSet , sep StateEncryptionFunctions ) * SkvsStubInterface {
25
- logger .Warning ("==== Get New Skvs Interface =====" )
26
27
fpcStub := NewFpcStubInterface (stub , input , rwset , sep )
27
- skvsStub := SkvsStubInterface {fpcStub , map [string ][]byte {}, map [string ][]byte {}, "SKVS" }
28
- err := skvsStub .InitSKVS ()
28
+ skvsStub := & SkvsStubInterface {
29
+ FpcStubInterface : fpcStub ,
30
+ allDataOld : map [string ][]byte {},
31
+ allDataNew : map [string ][]byte {},
32
+ key : SKVSKey ,
33
+ }
34
+ err := skvsStub .initSKVS ()
29
35
if err != nil {
30
- logger . Warningf ( "Error!! Initializing SKVS failed" )
36
+ panic ( " Initializing SKVS failed" )
31
37
}
32
- return & skvsStub
38
+ return skvsStub
33
39
}
34
40
35
- func (s * SkvsStubInterface ) InitSKVS () error {
36
- logger .Warningf (" === Initializing SKVS === " )
41
+ func (s * SkvsStubInterface ) initSKVS () error {
37
42
38
43
// get current state, this will only operate once
39
44
encValue , err := s .GetPublicState (s .key )
40
45
if err != nil {
41
- return nil
46
+ return err
42
47
}
43
48
49
+ // return if the key initially does not exist
44
50
if len (encValue ) == 0 {
45
51
logger .Warningf ("SKVS is empty, Initiating." )
46
- } else {
47
- value , err := s .sep .DecryptState (encValue )
48
- if err != nil {
49
- return err
50
- }
51
- logger .Warningf ("SKVS has default value, loading current value." )
52
-
53
- err = json .Unmarshal (value , & s .allDataOld )
54
- if err != nil {
55
- logger .Errorf ("SKVS Json unmarshal error: %s" , err )
56
- return err
57
- }
58
- err = json .Unmarshal (value , & s .allDataNew )
59
- if err != nil {
60
- logger .Errorf ("SKVS Json unmarshal error: %s" , err )
61
- return err
62
- }
52
+ return nil
63
53
}
64
54
55
+ value , err := s .sep .DecryptState (encValue )
56
+ if err != nil {
57
+ return err
58
+ }
59
+ logger .Debug ("SKVS has default value, loading current value." )
60
+
61
+ err = json .Unmarshal (value , & s .allDataOld )
62
+ if err != nil {
63
+ logger .Errorf ("SKVS Json unmarshal error: %s" , err )
64
+ return err
65
+ }
66
+ err = json .Unmarshal (value , & s .allDataNew )
67
+ if err != nil {
68
+ logger .Errorf ("SKVS Json unmarshal error: %s" , err )
69
+ return err
70
+ }
65
71
return nil
66
72
}
67
73
0 commit comments