Proxy_ticket
Note: This module/namespace exists inside the Test module/namespace, to use functions from this module prefix it with Test. e.g.
Test.Proxy_ticket.init_transfer
Helper functions for working with tickets in the LIGO Testing framework.
type 'a proxy_address = (('a * nat) * address , unit) typed_address
type proxy_address<T> = typed_address<[[T, nat], address], unit>
Typed address of the proxy contract.
val init_transfer : ('a ticket -> 'param) -> 'a proxy_address
let init_transfer : <T, P>(mk_param: (t: ticket<T>) => P) => proxy_address<T>
Takes a function that given a ticket creates the parameter for calling/transferring
to a contract (param creator) and returns a typed address (proxy_address
) of the proxy contract.
This function originates a proxy contract, the actual transfer of the ticket needs to
go through this proxy contract (done via the transfer
function below).
val transfer : 'a proxy_address -> (('a * nat) * address) -> test_exec_result
let transfer : <T>(p: proxy_address<T>, ti: [[T, nat], address]) => test_exec_result
Takes the proxy_address
(typed address of the proxy contract), and the ticket
information along with the destination address (The contract to which the ticket needs to be transferred).
This function makes the actual transfer of the ticket to the destination contract/address.
val originate : ('a * nat) -> ('a ticket -> 'storage) -> ('param -> 'storage -> operation list * 'storage) -> address
let originate : <T, P, S>(ti: [T, nat], mk_storage: (t: ticket<T>) => S, c: (p: P, s: S) => [list<operation>, S]) => address
Takes ticket information along with a function that when takes a ticket and returns the storage of the contract to be originated and the actual contract to be originated and returns the address of the originated contract.
This function internally originated the contract via a proxy contract.
val originate_uncurried : ('a * nat) -> ('a ticket -> 'storage) -> ('param * 'storage -> operation list * 'storage) -> address
let originate_uncurried : <T, P, S>(ti: [T, nat], mk_storage: (t: ticket<T>) => S, c: (ps: [P, S]) => [list<operation>, S]) => address
Same as originate
described above, but works with un-curried contracts.