diff --git a/.docssite/build b/.docssite/build new file mode 100755 index 0000000..cedcf96 --- /dev/null +++ b/.docssite/build @@ -0,0 +1,16 @@ +#! /usr/bin/bash + +if mkdocs=$(command -v mkdocs) + then + echo "mkdocs found at $mkdocs" + else + echo "Could not find a mkdocs installation!" + echo "mkdocs must be installed and available in \$PATH to proceed." + exit 95 +fi + +rm docs/*.md +cp ../docs/*.md docs/ +cp ../CHANGELOG.md docs/ + +mkdocs build diff --git a/.docssite/docs/favicon.png b/.docssite/docs/favicon.png index e81502d..2cf5940 100644 Binary files a/.docssite/docs/favicon.png and b/.docssite/docs/favicon.png differ diff --git a/.docssite/hook.py b/.docssite/hook.py deleted file mode 100644 index cc7e359..0000000 --- a/.docssite/hook.py +++ /dev/null @@ -1,7 +0,0 @@ -import glob -import shutil - -def pre_build(**kwargs): - for file in glob.glob('../docs/*.md'): - shutil.copy(file, 'docs') - shutil.copy('../CHANGELOG.md', 'docs') diff --git a/.docssite/mkdocs.yml b/.docssite/mkdocs.yml index 592f4fb..b5ff1c0 100644 --- a/.docssite/mkdocs.yml +++ b/.docssite/mkdocs.yml @@ -1,10 +1,7 @@ -site_name: æternity Sophia Language +site_name: Sophia Language plugins: - search - - mkdocs-simple-hooks: - hooks: - on_pre_build: 'hook:pre_build' -repo_url: 'https://github.com/aeternity/aesophia' +repo_url: 'https://gitlab.com/ioecs/aesophia' edit_uri: '' extra: @@ -13,22 +10,23 @@ extra: theme: favicon: favicon.png - name: material +# name: material + name: mkdocs custom_dir: overrides language: en palette: - - scheme: default - primary: pink - accent: pink - toggle: - icon: material/weather-night - name: Switch to dark mode - - scheme: slate - primary: pink - accent: pink - toggle: - icon: material/weather-sunny - name: Switch to light mode +# - scheme: default + primary: green +# accent: green +# toggle: +# icon: material/weather-night +# name: Switch to dark mode +# - scheme: slate +# primary: green +# accent: green +# toggle: +# icon: material/weather-sunny +# name: Switch to light mode features: - content.tabs.link - search.highlight @@ -52,4 +50,7 @@ nav: - Features: sophia_features.md - Standard library: sophia_stdlib.md - Contract examples: sophia_examples.md + - ACI Module: aeso_aci.md + - Compiler Module: aeso_compiler.md + - Sophia: sophia.md - Changelog: CHANGELOG.md diff --git a/docs/sophia_stdlib.md b/docs/sophia_stdlib.md index 7b32b31..b323607 100644 --- a/docs/sophia_stdlib.md +++ b/docs/sophia_stdlib.md @@ -14,7 +14,6 @@ The out-of-the-box namespaces are: - [Address](#address) - [AENS](#aens) -- [AENSv2](#aensv2) - [Auth](#auth) - [Bits](#bits) - [Bytes](#bytes) @@ -31,7 +30,6 @@ The following ones need to be included as regular files with `.aes` suffix, for include "List.aes" ``` -- [AENSCompat](#aenscompat) - [Bitwise](#bitwise) - [BLS12_381](#bls12_381) - [Func](#func) @@ -88,27 +86,6 @@ Cast address to contract type C (where `C` is a contract) ### AENS -The old AENS namespace, kept in the compiler to be able to interact with -contracts from before Ceres, compiled using aesophia compiler version 7.x and -earlier. Used in [AENSCompat](#aenscompat) when converting between old and new -pointers. - -#### Types - -##### name -``` -datatype name = Name(address, Chain.ttl, map(string, AENS.pointee)) -``` - - -##### pointee - -``` -datatype pointee = AccountPt(address) | ContractPt(address) | ChannelPt(address) -``` - -### AENSv2 - Note: introduced in v8.0 The following functionality is available for interacting with the @@ -122,7 +99,7 @@ i.e. the signature material should be prefixed by the network id. ##### name ``` -datatype name = Name(address, Chain.ttl, map(string, AENSv2.pointee)) +datatype name = Name(address, Chain.ttl, map(string, AENS.pointee)) ``` @@ -139,7 +116,7 @@ Sophia itself does _not_ check for this. ##### resolve ``` -AENSv2.resolve(name : string, key : string) : option('a) +AENS.resolve(name : string, key : string) : option('a) ``` Name resolution. Here `name` should be a registered name and `key` one of the attributes @@ -150,29 +127,29 @@ type checked against this type at run time. ##### lookup ``` -AENSv2.lookup(name : string) : option(AENSv2.name) +AENS.lookup(name : string) : option(AENS.name) ``` -If `name` is an active name `AENSv2.lookup` returns a name object. +If `name` is an active name `AENS.lookup` returns a name object. The three arguments to `Name` are `owner`, `expiry` and a map of the `pointees` for the name. Note: the expiry of the name is always a fixed TTL. For example: ``` -let Some(AENSv2.Name(owner, FixedTTL(expiry), ptrs)) = AENSv2.lookup("example.chain") +let Some(AENS.Name(owner, FixedTTL(expiry), ptrs)) = AENS.lookup("example.chain") ``` -Note: Changed to produce `AENSv2.name` in v8.0 (Ceres protocol upgrade). +Note: Changed to produce `AENS.name` in v8.0 ##### preclaim ``` -AENSv2.preclaim(owner : address, commitment_hash : hash, ) : unit +AENS.preclaim(owner : address, commitment_hash : hash, ) : unit ``` The [signature](./sophia_features.md#delegation-signature) should be a serialized structure containing `network id`, `owner address`, and `Contract.address`. -From Ceres (i.e. FATE VM version 3) the +The [signature](./sophia_features.md#delegation-signature) can also be generic (allowing _all_, existing and future, names to be delegated with one signature), i.e. containing `network id`, `owner address`, `Contract.address`. @@ -180,14 +157,14 @@ signature), i.e. containing `network id`, `owner address`, `Contract.address`. ##### claim ``` -AENSv2.claim(owner : address, name : string, salt : int, name_fee : int, ) : unit +AENS.claim(owner : address, name : string, salt : int, name_fee : int, ) : unit ``` The [signature](./sophia_features.md#delegation-signature) should be a serialized structure containing `network id`, `owner address`, and `Contract.address`. Using the private key of `owner address` for signing. -From Ceres (i.e. FATE VM version 3) the +The [signature](./sophia_features.md#delegation-signature) can also be generic (allowing _all_, existing and future, names to be delegated with one signature), i.e. containing `network id`, `owner address`, `name_hash`, and @@ -196,7 +173,7 @@ signature), i.e. containing `network id`, `owner address`, `name_hash`, and ##### transfer ``` -AENSv2.transfer(owner : address, new_owner : address, name : string, ) : unit +AENS.transfer(owner : address, new_owner : address, name : string, ) : unit ``` Transfers name to the new owner. @@ -205,7 +182,7 @@ The [signature](./sophia_features.md#delegation-signature) should be a serialized structure containing `network id`, `owner address`, and `Contract.address`. Using the private key of `owner address` for signing. -From Ceres (i.e. FATE VM version 3) the +The [signature](./sophia_features.md#delegation-signature) can also be generic (allowing _all_, existing and future, names to be delegated with one signature), i.e. containing `network id`, `owner address`, `name_hash`, and @@ -214,7 +191,7 @@ signature), i.e. containing `network id`, `owner address`, `name_hash`, and ##### revoke ``` -AENSv2.revoke(owner : address, name : string, ) : unit +AENS.revoke(owner : address, name : string, ) : unit ``` Revokes the name to extend the ownership time. @@ -223,7 +200,7 @@ The [signature](./sophia_features.md#delegation-signature) should be a serialized structure containing `network id`, `owner address`, and `Contract.address`. Using the private key of `owner address` for signing. -From Ceres (i.e. FATE VM version 3) the +The [signature](./sophia_features.md#delegation-signature) can also be generic (allowing _all_, existing and future, names to be delegated with one signature), i.e. containing `network id`, `owner address`, `name_hash`, and @@ -232,21 +209,21 @@ signature), i.e. containing `network id`, `owner address`, `name_hash`, and ##### update ``` -AENSv2.update(owner : address, name : string, expiry : option(Chain.ttl), client_ttl : option(int), - new_ptrs : option(map(string, AENSv2.pointee)), ) : unit +AENS.update(owner : address, name : string, expiry : option(Chain.ttl), client_ttl : option(int), + new_ptrs : option(map(string, AENS.pointee)), ) : unit ``` Updates the name. If the optional parameters are set to `None` that parameter will not be updated, for example if `None` is passed as `expiry` the expiry block of the name is not changed. -Note: Changed to consume `AENSv2.pointee` in v8.0 (Ceres protocol upgrade). +Note: Changed to consume `AENS.pointee` in v8.0 The [signature](./sophia_features.md#delegation-signature) should be a serialized structure containing `network id`, `owner address`, and `Contract.address`. Using the private key of `owner address` for signing. -From Ceres (i.e. FATE VM version 3) the +The [signature](./sophia_features.md#delegation-signature) can also be generic (allowing _all_, existing and future, names to be delegated with one signature), i.e. containing `network id`, `owner address`, `name_hash`, and @@ -289,10 +266,7 @@ namespace Chain = Auth.tx_hash : option(hash) ``` -Gets the transaction hash during authentication. Note: `Auth.tx_hash` -computation differs between protocol versions (changed in Ceres!), see -[serialisation](https://gitlab.com/ioecs/protocol/-/blob/master/serializations.md) -specification for details. +Gets the transaction hash during authentication. ### Bits @@ -934,23 +908,6 @@ Turns a list of pairs of form `(key, value)` into a map These need to be explicitly included (with `.aes` suffix) -### AENSCompat - -#### pointee\_to\_V2 -``` -AENSCompat.pointee_to_V2(p : AENS.pointee) : AENSv2.pointee -``` - -Translate old pointee format to new, this is always possible. - -#### pointee\_from\_V2 -``` -AENSCompat.pointee_from_V2(p2 : AENSv2.pointee) : option(AENS.pointee) -``` - -Translate new pointee format to old, `DataPt` can't be translated, so `None` is returned in this case. - - ### BLS12\_381 #### Types