.. _ChainSecurity: https://chainsecurity.com/ .. _VerX: http://verx.ch/ Client =================== VerX provides a client which can be used to submit verification jobs to VerX. Installation ------------ The VerX client can be downloaded from `here `_ **Dependencies** To use the VerX client, you need to install the following dependencies: - `requests `_ - `aiohttp `_ Usage ----- The VerX client is used as follows: :: usage: client.py [-h] -f FLATFILE -d DEPLOYER -s SPEC [SPEC ...] -o OUTPUT [-p PARALLEL] The following three inputs are required: - ``FLATFILE`` is a Solidity flat file (no import statements) that contains the contracts to be verified. - ``DEPLOYER`` is a deployment script, defining how the contracts are deployed and initialized, as defined in :doc:`Quick Start `. - ``SPEC`` is a file that defines a property to be verified. The property must follow the syntax defined in the :doc:`Specification Language `. When done, the client returns the VerX response formated in JSON, as defined in the :doc:`VerX API `. Authorization ------------- To use the client you need to provide your username and password. The VerX_ verification server uses `JWT tokens `_ for the authentication. The client asks the username/password when it is first ran, and creates `access_token` file in the `CWD` of the script. The client may ask you to re-enter the password if the token needs to be refreshed or cannot be found in the `CWD`.