25 lines
895 B
Plaintext
25 lines
895 B
Plaintext
contract Rubicon =
|
|
// record rbx =
|
|
// {ip : string,
|
|
// port : int,
|
|
// protocol : string, // "tcp", "udp", "sctp", etc
|
|
// noise : string, // Noise_Foo_Bar_Baz_Quux
|
|
// pubkey : address, // responder static pubkey (noise: rs field)
|
|
// prologue : bytes} // noise prologue (empty = no prologue)
|
|
|
|
// (ip, port, protocol, noise, pubkey, prologue)
|
|
type rbx_tuple = string * int * string * string * address * bytes
|
|
type state = list(rbx_tuple)
|
|
|
|
entrypoint init(tuples: list(rbx_tuple)): state =
|
|
tuples
|
|
|
|
stateful entrypoint set(tuples: list(rbx_tuple)): unit =
|
|
// this would be nice
|
|
// but unfortunately nobody knows how to do this
|
|
// require(Call.caller == Contract.creator, "Not allowed")
|
|
put(tuples)
|
|
|
|
entrypoint lookup(): list(rbx_tuple) =
|
|
state
|