/ tests / expectations / compiler / structs / external_record.out
external_record.out
 1  program child.alpha;
 2  
 3  record A:
 4      owner as address.private;
 5      val as u32.private;
 6  
 7  function mint:
 8      input r0 as address.private;
 9      input r1 as u32.private;
10      cast r0 r1 into r2 as A.record;
11      output r2 as A.record;
12  // --- Next Program --- //
13  import child.alpha;
14  program parent.alpha;
15  
16  record B:
17      owner as address.private;
18      val as u32.private;
19  
20  function wrapper_mint:
21      input r0 as address.private;
22      input r1 as u32.private;
23      call child.alpha/mint self.caller 1u32 into r2;
24      cast self.signer r1 into r3 as B.record;
25      output r2 as child.alpha/A.record;
26      output r3 as B.record;
27  // --- Next Program --- //
28  import child.alpha;
29  import parent.alpha;
30  program grandparent.alpha;
31  
32  record C:
33      owner as address.private;
34      val as u32.private;
35  
36  function double_wrapper_mint:
37      input r0 as address.private;
38      input r1 as u32.private;
39      call parent.alpha/wrapper_mint r0 r1 into r2 r3;
40      cast r0 r1 into r4 as C.record;
41      output r2 as child.alpha/A.record;
42      output r3 as parent.alpha/B.record;
43      output r4 as C.record;