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;