ligo/src/test/contracts/replaceable_id.ligo
Christian Rinderknecht 93682629b4 Updating contracts.
2020-02-27 17:51:29 +01:00

36 lines
1.0 KiB
Plaintext

// storage type
type storage_t is address
// entry points parameter types
type change_addr_pt is address
type message_t is list (operation)
type pass_message_pt is unit -> message_t
type contract_return_t is list (operation) * storage_t
type entry_point_t is
Change_address of change_addr_pt
| Pass_message of pass_message_pt
function change_address (const param : change_addr_pt;
const s : storage_t) : contract_return_t is
block {
if sender =/= s then failwith ("Unauthorized sender")
else skip
} with ((nil : list (operation)), param)
function pass_message (const param: pass_message_pt;
const s : storage_t ) : contract_return_t is
block {
if sender =/= s then failwith("Unauthorized sender") else skip;
var message : pass_message_pt := param
} with (param (unit), s)
function main (const param : entry_point_t; const s : storage_t) :
contract_return_t is
case param of
Change_address (p) -> change_address (p,s)
| Pass_message (p) -> pass_message (p,s)
end