1
1
import { SigningType } from "@airgap/beacon-wallet" ;
2
2
3
- import { decodeBeaconPayload } from "./decodeBeaconPayload" ;
3
+ import { decodeBeaconPayload , getSigningTypeFromPayload } from "./decodeBeaconPayload" ;
4
4
5
5
describe ( "decodeBeaconPayload" , ( ) => {
6
6
it ( "returns an error message if the payload is not a valid utf8" , ( ) => {
7
7
const payload =
8
8
"05010000004354657a6f73205369676e6564204d6573736167653a20496e76616c696420555446383a20c380c2afc3bfc3bec3bd3b204e6f6e7072696e7461626c653a20000115073b" ;
9
9
10
+ expect ( getSigningTypeFromPayload ( payload ) ) . toEqual ( SigningType . MICHELINE ) ;
10
11
expect ( decodeBeaconPayload ( payload , SigningType . MICHELINE ) ) . toEqual ( {
11
12
result : payload ,
12
13
error : "Cannot parse Beacon payload" ,
@@ -18,6 +19,7 @@ describe("decodeBeaconPayload", () => {
18
19
"05010000004254657a6f73205369676e6564204d6573736167653a206d79646170702e636f6d20323032312d30312d31345431353a31363a30345a2048656c6c6f20776f726c6421" ;
19
20
const expected = "Tezos Signed Message: mydapp.com 2021-01-14T15:16:04Z Hello world!" ;
20
21
22
+ expect ( getSigningTypeFromPayload ( payload ) ) . toEqual ( SigningType . MICHELINE ) ;
21
23
expect ( decodeBeaconPayload ( payload , SigningType . MICHELINE ) ) . toEqual ( { result : expected } ) ;
22
24
} ) ;
23
25
@@ -41,6 +43,7 @@ describe("decodeBeaconPayload", () => {
41
43
const expected = {
42
44
result : "Tezos Signed Message: mydapp.com 2021-01-14T15:16:04Z Hello world!" ,
43
45
} ;
46
+ expect ( getSigningTypeFromPayload ( payload ) ) . toEqual ( SigningType . RAW ) ;
44
47
expect ( decodeBeaconPayload ( payload , SigningType . RAW ) ) . toEqual ( expected ) ;
45
48
} ) ;
46
49
@@ -63,6 +66,7 @@ describe("decodeBeaconPayload", () => {
63
66
] ,
64
67
} ) ;
65
68
69
+ expect ( getSigningTypeFromPayload ( raw ) ) . toEqual ( SigningType . RAW ) ;
66
70
expect ( decodeBeaconPayload ( raw , SigningType . RAW ) ) . toEqual ( { result } ) ;
67
71
} ) ;
68
72
@@ -83,16 +87,26 @@ describe("decodeBeaconPayload", () => {
83
87
84
88
it ( "handles an empty payload" , ( ) => {
85
89
const emptyPayload = "" ;
90
+ expect ( getSigningTypeFromPayload ( emptyPayload ) ) . toEqual ( SigningType . RAW ) ;
86
91
expect ( decodeBeaconPayload ( emptyPayload , SigningType . RAW ) ) . toEqual ( {
87
- result : "" ,
92
+ result : emptyPayload ,
88
93
} ) ;
89
94
} ) ;
90
95
91
96
it ( "handles a payload with non-hex characters" , ( ) => {
92
- const nonHexPayload = "0501ZZZZ" ;
93
- expect ( decodeBeaconPayload ( nonHexPayload , SigningType . RAW ) ) . toEqual ( {
97
+ const nonHexPayload = "0301ZZZZ" ;
98
+ expect ( getSigningTypeFromPayload ( nonHexPayload ) ) . toEqual ( SigningType . OPERATION ) ;
99
+ expect ( decodeBeaconPayload ( nonHexPayload , SigningType . OPERATION ) ) . toEqual ( {
94
100
error : "Cannot parse Beacon payload" ,
95
- result : "0501ZZZZ" ,
101
+ result : nonHexPayload ,
102
+ } ) ;
103
+ } ) ;
104
+
105
+ it ( "handles OPERATION payload" , ( ) => {
106
+ const emptyPayload = "" ;
107
+ expect ( getSigningTypeFromPayload ( emptyPayload ) ) . toEqual ( SigningType . RAW ) ;
108
+ expect ( decodeBeaconPayload ( emptyPayload , SigningType . RAW ) ) . toEqual ( {
109
+ result : "" ,
96
110
} ) ;
97
111
} ) ;
98
112
} ) ;
0 commit comments