11import { SigningType } from "@airgap/beacon-wallet" ;
22
3- import { decodeBeaconPayload } from "./decodeBeaconPayload" ;
3+ import { decodeBeaconPayload , getSigningTypeFromPayload } from "./decodeBeaconPayload" ;
44
55describe ( "decodeBeaconPayload" , ( ) => {
66 it ( "returns an error message if the payload is not a valid utf8" , ( ) => {
77 const payload =
88 "05010000004354657a6f73205369676e6564204d6573736167653a20496e76616c696420555446383a20c380c2afc3bfc3bec3bd3b204e6f6e7072696e7461626c653a20000115073b" ;
99
10+ expect ( getSigningTypeFromPayload ( payload ) ) . toEqual ( SigningType . MICHELINE ) ;
1011 expect ( decodeBeaconPayload ( payload , SigningType . MICHELINE ) ) . toEqual ( {
1112 result : payload ,
1213 error : "Cannot parse Beacon payload" ,
@@ -18,6 +19,7 @@ describe("decodeBeaconPayload", () => {
1819 "05010000004254657a6f73205369676e6564204d6573736167653a206d79646170702e636f6d20323032312d30312d31345431353a31363a30345a2048656c6c6f20776f726c6421" ;
1920 const expected = "Tezos Signed Message: mydapp.com 2021-01-14T15:16:04Z Hello world!" ;
2021
22+ expect ( getSigningTypeFromPayload ( payload ) ) . toEqual ( SigningType . MICHELINE ) ;
2123 expect ( decodeBeaconPayload ( payload , SigningType . MICHELINE ) ) . toEqual ( { result : expected } ) ;
2224 } ) ;
2325
@@ -41,6 +43,7 @@ describe("decodeBeaconPayload", () => {
4143 const expected = {
4244 result : "Tezos Signed Message: mydapp.com 2021-01-14T15:16:04Z Hello world!" ,
4345 } ;
46+ expect ( getSigningTypeFromPayload ( payload ) ) . toEqual ( SigningType . RAW ) ;
4447 expect ( decodeBeaconPayload ( payload , SigningType . RAW ) ) . toEqual ( expected ) ;
4548 } ) ;
4649
@@ -63,6 +66,7 @@ describe("decodeBeaconPayload", () => {
6366 ] ,
6467 } ) ;
6568
69+ expect ( getSigningTypeFromPayload ( raw ) ) . toEqual ( SigningType . RAW ) ;
6670 expect ( decodeBeaconPayload ( raw , SigningType . RAW ) ) . toEqual ( { result } ) ;
6771 } ) ;
6872
@@ -83,16 +87,26 @@ describe("decodeBeaconPayload", () => {
8387
8488 it ( "handles an empty payload" , ( ) => {
8589 const emptyPayload = "" ;
90+ expect ( getSigningTypeFromPayload ( emptyPayload ) ) . toEqual ( SigningType . RAW ) ;
8691 expect ( decodeBeaconPayload ( emptyPayload , SigningType . RAW ) ) . toEqual ( {
87- result : "" ,
92+ result : emptyPayload ,
8893 } ) ;
8994 } ) ;
9095
9196 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 ( {
94100 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 : "" ,
96110 } ) ;
97111 } ) ;
98112} ) ;
0 commit comments