type proxy_address<v> = typed_address<[[v, nat], address], unit>
let init_transfer: <vt, whole_p>(_: (_: ticket<vt>) => whole_p) => proxy_address<vt>
let transfer: <vt>(_: proxy_address<vt>) => (_: [[vt, nat], address]) => test_exec_result
let originate: <vt, whole_s, vp>(_: [vt, nat]) => (_: (_: ticket<vt>) => whole_s) => ( _: (_: vp) => (_: whole_s) => [list<operation>, whole_s] ) => typed_address<vp, whole_s>
let get_storage: <p, s, s2>(_: typed_address<p, s>) => s2