wasm-ql
+----------+ +------------+ +---------------+ +-------------------+
| database | | database | | wasm-ql | | web browser |
| filler | | | | ------------- | | --------------- |
| | => | PostgreSQL | => | Server WASM A | <=> | Client WASM A |
| | | or | | Server WASM B | <=> | Client WASM B |
| | | RocksDB | | ... | | |
| | | | | Legacy WASM | <=> | js using /v1/ RPC |
+----------+ +------------+ +---------------+ +-------------------+
wasm-ql listens on an http port and answers the following:
- POST binary data to
http://host:port/wasmql/v1/query- The binary data includes a set of queries directed to particular server WASMs
- wasm-ql passes each query to the appropriate WASM
- wasm-ql collects the query replies and produces a binary response containing the replies
- POST JSON query to
http://host:port/v1/*- The legacy server WASM handles these requests
- The WASM produces a JSON response
- wasm-ql forwards the response to the client
Client WASMs provide these functions to js clients:
create_query_request(): Convert a JSON request to the binary format the server WASM expectsdecode_query_response(): Convert a binary response from the server WASM to JSONdescribe_query_request(): Describes the JSON request format to clients using JSON Schemadescribe_query_response(): Describes the JSON response format to clients using JSON Schema
These legacy API functions are available to clients:
/v1/chain/get_abi: Retrieves the ABI of an account, if any./v1/chain/get_account: Retrieves account information, including code and abi but not including quotas, weights, or permissions./v1/chain/get_block: Retrieves block information. Does not include producer signature or transactions./v1/chain/get_code: Retrieves the WASM of an account, if any./v1/chain/get_currency_balance: Retrieves currency balance in the specified token for the given account accounted for with the given token account./v1/chain/get_producer_schedule: Retrieves up to 21 producers sorted by most votes./v1/chain/get_table_rows: Retrieves rows from arbitrary tables created by contracts./v1/history/get_transaction: Retrieves a transaction by transaction id./v1/history/get_actions: Retrieves transaction actions affecting the given receipt receiver.