259
259
260
260
]
261
261
262
+ real_cases : List [Tuple [Micheline , str ]] = [
263
+
264
+ ({"prim" : "pair" , 'args' : [
265
+ {"prim" : "pair" , "annots" : [":payload" ], 'args' : [
266
+ {"prim" : "nat" , "annots" : [":counter" ]},
267
+ {"prim" : "or" , "annots" : [":action" ], 'args' : [
268
+ {"prim" : "pair" , "annots" : [":transfer" ], 'args' : [
269
+ {"prim" : "mutez" , "annots" : [":amount" ]},
270
+ {"prim" : "contract" , "annots" : [":dest" ], 'args' : [{"prim" : "unit" }]}
271
+ ]},
272
+ {"prim" : "or" , 'args' : [
273
+ {"prim" : "option" , "annots" : [":delegate" ], 'args' : [{"prim" : "key_hash" }]},
274
+ {"prim" : "pair" , "annots" : [":change_keys" ], 'args' : [
275
+ {"prim" : "nat" , "annots" : [":threshold" ]},
276
+ {"prim" : "list" , "annots" : [":keys" ], 'args' : [{"prim" : "key" }]}
277
+ ]}
278
+ ]}
279
+ ]}
280
+ ]},
281
+ {"prim" : "list" , "annots" : [":sigs" ], 'args' : [{"prim" : "option" , 'args' : [{"prim" : "signature" }]}]}
282
+ ]}, "type" ),
283
+
284
+ ({"prim" : "Pair" , 'args' : [
285
+ {"prim" : "Pair" , 'args' : [
286
+ {"int" : 42 },
287
+ {"prim" : "Left" , 'args' : [
288
+ {"prim" : "Pair" , 'args' : [
289
+ {"int" : 123456789 },
290
+ {"string" : "tz1Ke2h7sDdakHJQh8WX4Z372du1KChsksyU" }
291
+ ]},
292
+ ]},
293
+ ]},
294
+ [
295
+ {"prim" : "Some" , 'args' : [
296
+ {"string" : "edsigtXomBKi5CTRf5cjATJWSyaRvhfYNHqSUGrn4SdbYRcGwQrUGjzEfQDTuqHhuA8b2d8NarZjz8TRf65WkpQmo423BtomS8Q" }
297
+ ]},
298
+ {"prim" : "None" }
299
+ ]
300
+ ]}, "data" ),
301
+
302
+ ([
303
+ {"prim" : "UNPAIR" }, {"prim" : "SWAP" }, {"prim" : "DUP" }, {"prim" : "DIP" , 'args' : [[{"prim" : "SWAP" }]]},
304
+ {"prim" : "DIP" , 'args' : [[
305
+ {"prim" : "UNPAIR" },
306
+ {"prim" : "DUP" }, {"prim" : "SELF" }, {"prim" : "ADDRESS" }, {"prim" : "CHAIN_ID" }, {"prim" : "PAIR" }, {"prim" : "PAIR" },
307
+ {"prim" : "PACK" },
308
+ {"prim" : "DIP" , 'args' : [[{"prim" : "UNPAIR" , "annots" : ["@counter" ]}, {"prim" : "DIP" , 'args' : [[{"prim" : "SWAP" }]]}]]}, {"prim" : "SWAP" },
309
+ ]]},
310
+ {"prim" : "UNPAIR" , "annots" : ["@stored_counter" ]}, {"prim" : "DIP" , 'args' : [[{"prim" : "SWAP" }]]},
311
+ {"prim" : "COMPARE" }, {"prim" : "EQ" }, {"prim" : "IF" , 'args' : [[], [{"prim" : "UNIT" }, {"prim" : "FAILWITH" }]]},
312
+ {"prim" : "DIP" , 'args' : [[{"prim" : "SWAP" }]]}, {"prim" : "UNPAIR" , "annots" : ["@threshold" , "@keys" ]},
313
+ {"prim" : "DIP" , 'args' : [[
314
+ {"prim" : "PUSH" , "annots" : ["@valid" ], 'args' : [{"prim" : "nat" }, {"int" : 0 }]}, {"prim" : "SWAP" },
315
+ {"prim" : "ITER" , 'args' : [[
316
+ {"prim" : "DIP" , 'args' : [[{"prim" : "SWAP" }]]}, {"prim" : "SWAP" },
317
+ {"prim" : "IF_CONS" , 'args' : [
318
+ [{"prim" : "IF_NONE" , 'args' : [
319
+ [{"prim" : "SWAP" }, {"prim" : "DROP" }],
320
+ [
321
+ {"prim" : "SWAP" },
322
+ {"prim" : "DIP" , 'args' : [[
323
+ {"prim" : "SWAP" }, {"prim" : "DIP" , 'args' : [[{"prim" : "DIP" , 'args' : [[{"prim" : "DUP" }]]}, {"prim" : "SWAP" }]]},
324
+ {"prim" : "CHECK_SIGNATURE" }, {"prim" : "IF" , 'args' : [[], [{"prim" : "UNIT" }, {"prim" : "FAILWITH" }]]},
325
+ {"prim" : "PUSH" , 'args' : [{"prim" : "nat" }, {"int" : 1 }]}, {"prim" : "ADD" , "annots" : ["@valid" ]},
326
+ ]]},
327
+ ],
328
+ ]}],
329
+ [{"prim" : "UNIT" }, {"prim" : "FAILWITH" }],
330
+ ]},
331
+ {"prim" : "SWAP" },
332
+ ]]},
333
+ ]]},
334
+ {"prim" : "COMPARE" }, {"prim" : "LE" }, {"prim" : "IF" , 'args' : [[], [{"prim" : "UNIT" }, {"prim" : "FAILWITH" }]]},
335
+ {"prim" : "DROP" }, {"prim" : "DROP" },
336
+ {"prim" : "DIP" , 'args' : [[{"prim" : "UNPAIR" }, {"prim" : "PUSH" , 'args' : [{"prim" : "nat" }, {"int" : 1 }]}, {"prim" : "ADD" , "annots" : ["@new_counter" ]}, {"prim" : "PAIR" }]]},
337
+ {"prim" : "NIL" , 'args' : [{"prim" : "operation" }]}, {"prim" : "SWAP" },
338
+ {"prim" : "IF_LEFT" , 'args' : [
339
+ [{"prim" : "UNPAIR" }, {"prim" : "UNIT" }, {"prim" : "TRANSFER_TOKENS" }, {"prim" : "CONS" }],
340
+ [{"prim" : "IF_LEFT" , 'args' : [
341
+ [{"prim" : "SET_DELEGATE" }, {"prim" : "CONS" }],
342
+ [{"prim" : "DIP" , 'args' : [[{"prim" : "SWAP" }, {"prim" : "CAR" }]]}, {"prim" : "SWAP" }, {"prim" : "PAIR" }, {"prim" : "SWAP" }],
343
+ ]}],
344
+ ]},
345
+ {"prim" : "PAIR" },
346
+ ], "code" ),
347
+
348
+ ]
349
+
262
350
263
351
def _param (micheline : Micheline , name : str , category : str ) -> ParameterSet :
264
352
return pytest .param (micheline , id = f'{ category } -{ name } ' )
@@ -279,6 +367,7 @@ def _all_params(cases: List[Tuple[List[Tuple[Micheline, str]], str]]) -> List[Pa
279
367
(bytes_cases , "bytes" ),
280
368
(string_cases , "string" ),
281
369
(prim_cases , "prim" ),
370
+ (real_cases , "real" ),
282
371
])
283
372
)
284
373
def test_sign_micheline (
0 commit comments