Skip to content

Commit

Permalink
Update Readme & Changelog for v1.0.0 Release
Browse files Browse the repository at this point in the history
  • Loading branch information
Sergei Voronezhskii authored and g9d committed Oct 27, 2020
1 parent 25f1fb9 commit c45ff90
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 3 deletions.
58 changes: 58 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,64 @@
# Release Notes
All notable changes to this project will be documented in this file.

## 1.0.0 Oct 27, 2020

### Differences between Core SDK v0 and v1

- All api functions are defined in mod.rs of appropriate modules
- Function names are the same as API function names: `module.function_name`
- Parameters naming:
- In snake case
- Base64 suffix is removed from parameter names. For example, `bocBase64` is changed to `boc`
- Parsed boc replaced with unparsed boc in all function input parameters
- All functions take byte arrays in a defined encoding:
- `base64` - encoding used for byte arrays of variable length: text, images, etc.
- `hex-lower-case` - encoding used to encode fixed length bit sequences: hashes, keys, salt, etc.
- `contracts` module is splitted into 5 modules:
- `tvm` - embedded TVM execution functions
- `boc` - raw cell and BOC manipulation functions
- `abi` - abi-compatible messages creation and parsing functions
- `processing` - blockchain interaction functions
- `utils` - has only `convert_address` ATM, later will be used for some useful stuff
- `query` module is renamed to `net`
- new `client` module with functions `version`, `api_reference`
- All the environment functions (fetch, websocket, spawn, now, etc.) were abstracted behind a separate environment layer crate `ClientEnv`. The standard core env layer implementation is in `std_client_env` . Later (in 1.1 release) `web_client_env` implementation for Web will be added.
- Error codes are distributed across the modules the following way: `client` - 0..99, `crypto` - 100..199, `boc` - 200..299, `abi` - 300..399, `tvm` - 400..499, `processing` - 500..599, `net` - 600..699
- Error descriptions related to a module are described in error.rs file in the module's folder
- `decode_message`, `process_message`, `wait_for_transaction`, `run_tvm`, `run_executor`, etc. (all the functions that return decoded messages) now returns int*/uint* data as a string which can be either decimal or 0x-prefixed hex string. Hex representation can be in any register and have any number of leading zeroes.

### Featured

- All the functions are asynchronous
- All the functions that can be called via JSON-api are public, so that they can be used directly without JSON-api.
- Inline documentation and api reference added.
- [breaking] **interops.rs**, **tonclient.h**. `create_context` now takes `config` parameter - context creation and setup happen at the same time. Config structure has been changed.
- [breaking] **crypto module.** default values for mnemonic-related functions have been changed:

dictionary is 1, for word count is 12, derivation path is 'm/44'/396'/0'/0/0

- [breaking] **crypto module.** removed `word_count` parameter from `words` function
- [breaking] **crypto module.** `compliant` parameter is removed from functions `mnemonic_derive_sign_keys`, `hdkey_xprv_derive_path`, `hdkey_xprv_derive`,
- [new] **boc module.** Functions `parse_block`, `parse_account`, `parse_message`, `parse_transaction` that parse bocs to JSONs are introduced.
- [breaking] **net module.** Functions `query` , `wait.for`, `subscribe` are renamed to `query_collection`, `wait_for_collection`, `subscribe_collection`

`table` parameter is renamed to `collection`. `filter` parameter is now optional and of `json` type (passed as json object instead of `string`)

- [breaking] **net module**. Function `get.next` is removed.
- [breaking] **net module.**`subscribe_collection` now uses callback to return data.
- [breaking] **abi module**. `decode_message` introduced instead of `decode_unknown_run`, `decode_run_output`
- [breaking] **abi module**. `encode_message` introduced instead of `encode_unsigned_deploy_message`, `encode_unsigned_run_message`, `run.encode_message`, `deploy.encode_message`
- [breaking] **abi module**. `signer: Signer` parameter used instead of `key_pair: KeyPair` , which can be of `None` (unsigned message will be produced), `External` (data to be signed +unsigned message), `Keys` (signed message will be produced), `SigningBox` (message will be signed using a provided interface - will be supported in coming releases)
- [breaking] **processing module.** `process_message` introduced instead of `deploy` and `run`**.** Parameter set was drastically changed.
- [breaking] **processing module.** `process_message` - now, if the contract was already deployed, deploy fails with an exception of double constructor call.
- [new] **processing module.** `process_message` - any function can be called at deploy, not only constructor, also there can be no function call.
- [new] **processing module.** `process_message` now can optionally use callback to monitor message processing (creation, sending, shard block fetching, transaction receiving).
- [fixed] **processing module.** `process_message` - deploy can be performed without a key pair
- [breaking] **tvm module.** `run_local` is divided into 2 functions `run_tvm` and `run_executor`.
- [new] **tvm module.** `run_tvm` function - performs contract code execution on tvm (part of compute phase). Helps to run contract methods without ACCEPT. Returns account state with updated data, list of external messages and (optional, for ABI contracts only) list of messages decoded data.
- [new] **tvm module.** `run_executor` function - performs full contract code execution on Transaction Executor (part of collator protocol that performs all phases and checks and - as a successful result - forms a transaction) Returns updated account state, parsed transaction, list of parsed messages with optional decoded message bodies.
- [breaking] **tvm module**. `run_get` does not download account boc from the network anymore, but takes account boc as a parameter.

## 0.26.0 Aug 15, 2020
### New
- `config.get_api_reference` api function (pre release).
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,13 @@ TON Labs SDK Binaries Store.
Platform | Major | Download links
-------- | ----- | --------------
Win32 | 0 | [`tonclient.lib`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_win32_lib.gz), [`tonclient.dll`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_win32_dll.gz), [`tonclient.node`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_nodejs_addon_win32.gz)
  | 1-rc | [`tonclient.lib`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_0_0-rc_win32_lib.gz), [`tonclient.dll`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_0_0-rc_win32_dll.gz)
  | 1 | [`tonclient.lib`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_win32_lib.gz), [`tonclient.dll`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_win32_dll.gz), [`tonclient.node`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_nodejs_addon_win32.gz)
macOS | 0 | [`libtonclient.dylib`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_darwin.gz), [`tonclient.node`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_nodejs_addon_darwin.gz), [`libtonclientnodejs.dylib`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_nodejs_dylib_darwin.gz)
  | 1-rc | [`libtonclient.dylib`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_0_0-rc_darwin.gz)
  | 1 | [`libtonclient.dylib`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_darwin.gz), [`tonclient.node`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_nodejs_addon_darwin.gz)
Linux | 0 | [`libtonclient.so`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_linux.gz), [`tonclient.node`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_nodejs_addon_linux.gz)
  | 1-rc | [`libtonclient.so`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_0_0-rc_linux.gz)
  | 1 | [`libtonclient.so`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_linux.gz), [`tonclient.node`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_nodejs_addon_linux.gz)
WASM | 0 | [`tonclient.wasm`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_wasm.gz), [`tonclient.js`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_wasm_js.gz)
  | 1 | [`tonclient.wasm`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_wasm.gz), [`tonclient.js`](http://sdkbinaries-ws.tonlabs.io/tonclient_1_wasm_js.gz)
iOS | 0 | [`libtonclient.a`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_react_native_ios.gz)
Android | 0 | [`armeabi-v7a/libtonclient.so`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_react_native_armv7-linux-androideabi.gz), [`arm64-v8a/libtonclient.so`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_react_native_aarch64-linux-android.gz), [`x86/libtonclient.so`](http://sdkbinaries-ws.tonlabs.io/tonclient_0_react_native_i686-linux-android.gz)

Expand Down

0 comments on commit c45ff90

Please sign in to comment.