aqua-lib/builtin.aqua

159 lines
4.6 KiB
Plaintext
Raw Normal View History

-- Default public interface of Fluence nodes
2021-04-29 12:22:39 +00:00
alias Field : []string
alias Argument : []string
alias Bytes : []u8
alias PeerId : string
data Service:
id: string
blueprint_id: string
owner_id: string
data FunctionSignature:
arguments: []Argument
name: string
output_types: []string
data RecordType:
fields: []Field
id: u64
name: string
data Interface:
function_signatures: []FunctionSignature
record_types: []RecordType
data ServiceInfo:
blueprint_id: string
service_id: string
interface: Interface
data Info:
external_addresses: []string
data ModuleConfig:
name: string
data Module:
name: string
hash: string
config: ModuleConfig
data AddBlueprint:
name: string
dependencies: []string
data Blueprint:
id: string
name: string
dependencies: []string
data ScriptInfo:
id: string
src: string
failures: u32
interval: string
owner: string
data Contact:
peer_id: string
addresses: []string
service Op("op"):
2021-05-27 13:12:11 +00:00
identity()
string_to_b58(s: string) -> string
string_from_b58(b: string) -> string
bytes_to_b58(bs: []u8) -> string
bytes_from_b58(b: string) -> []u8
2021-04-29 12:22:39 +00:00
service Peer("peer"):
-- Checks if there is a direct connection to the peer identified by a given PeerId
-- Argument: PeerId id of the peer to check if there's a connection with
-- Returns: bool - true if connected to the peer, false otherwise
is_connected(peer: PeerId) -> bool
2021-04-29 12:22:39 +00:00
-- Initiates a connection to the specified peer
-- Arguments:
-- PeerId id of the target peer
-- [Multiaddr] an array of target peer's addresses
-- Returns: bool - true if connection was successful
connect(id: PeerId, multiaddrs: []string) -> bool
2021-04-29 12:22:39 +00:00
-- Resolves the contact of a peer via Kademlia
-- Argument: PeerId id of the target peer
-- Returns: Contact - true if connection was successful
get_contact(peer: PeerId) -> Contact
2021-04-29 12:22:39 +00:00
-- Get information about the peer
identify() -> Info
2021-04-29 12:22:39 +00:00
-- Get Unix timestamp in milliseconds
timestamp_ms() -> u64
2021-04-29 12:22:39 +00:00
-- Get Unix timestamp in seconds
timestamp_sec() -> u64
2021-04-29 12:22:39 +00:00
service Kademlia("kad"):
-- Instructs node to return the locally-known nodes
-- in the Kademlia neighborhood for a given key
2021-05-27 13:12:11 +00:00
neighborhood(key: PeerId, already_hashed: bool) -> []PeerId
2021-04-29 12:22:39 +00:00
service Srv("srv"):
-- Used to create a service on a certain node
-- Arguments:
-- blueprint_id ID of the blueprint that has been added to the node specified in the service call by the dist add_blueprint service.
-- Returns: service_id the service ID of the created service.
create(blueprint_id: string) -> string
2021-04-29 12:22:39 +00:00
2021-04-29 15:01:10 +00:00
-- Used to remove a service from a certain node
-- Arguments:
-- service_id ID of the service to remove
remove(service_id: string)
2021-04-29 15:01:10 +00:00
2021-04-29 12:22:39 +00:00
-- Returns a list of services running on a peer
list() -> []Service
2021-04-29 12:22:39 +00:00
-- Adds an alias on service, so, service could be called
-- not only by service_id but by alias as well.
-- Argument:
-- alias - settable service name
-- service_id ID of the service whose interface you want to name.
add_alias(alias: string, service_id: string)
2021-04-29 12:22:39 +00:00
-- Retrieves the functional interface of a service running
-- on the node specified in the service call
-- Argument: service_id ID of the service whose interface you want to retrieve.
get_interface(service_id: string) -> ServiceInfo
2021-04-29 12:22:39 +00:00
service Dist("dist"):
-- Used to add modules to the node specified in the service call
-- Arguments:
-- bytes a base64 string containing the .wasm module to add.
-- config module info
-- Returns: blake3 hash of the module
add_module(wasm_b56_content: Bytes, conf: ModuleConfig) -> string
2021-04-29 12:22:39 +00:00
-- Get a list of modules available on the node
list_modules() -> []Module
2021-04-29 12:22:39 +00:00
-- Get the interface of a module
get_interface(module_id: string) -> Interface
2021-04-29 12:22:39 +00:00
-- Used to add a blueprint to the node specified in the service call
add_blueprint(blueprint: AddBlueprint) -> string
2021-04-29 12:22:39 +00:00
-- Used to get the blueprints available on the node specified in the service call.
-- A blueprint is an object of the following structure
list_blueprints() -> []Blueprint
2021-04-29 12:22:39 +00:00
service Script("script"):
-- Adds the given script to a node
add(air_content: string, run_every: string) -> string
2021-04-29 12:22:39 +00:00
-- Removes recurring script from a node. Only a creator of the script can delete it
remove(script_id: string) -> bool
2021-04-29 12:22:39 +00:00
-- Returns a list of existing scripts on the node.
-- Each object in the list is of the following structure
list() -> ScriptInfo