diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000..11bc6969f
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,17 @@
+# Generated by Cargo
+# will have compiled files and executables
+debug/
+target/
+
+# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
+# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
+Cargo.lock
+
+# These are backup files generated by rustfmt
+**/*.rs.bk
+
+# MSVC Windows builds of rustc generate these, which store debugging information
+*.pdb
+
+## any pem Key
+*.pem
diff --git a/Cargo.toml b/Cargo.toml
new file mode 100644
index 000000000..119c4d067
--- /dev/null
+++ b/Cargo.toml
@@ -0,0 +1,61 @@
+[package]
+name = "casper-rust-wasm-sdk"
+version = "0.1.0"
+edition = "2021"
+description = "Casper Rust Wasm Web SDK"
+repository = "https://github.com/casper-ecosystem/rustSDK"
+license = "Apache-2.0"
+readme = "README.md"
+homepage = "https://casperlabs.io"
+categories = ["development-tools", "wasm", "web-programming"]
+keywords = ["casper", "sdk", "rust", "wasm"]
+exclude = [
+ ".*",
+ "docs/api-wasm",
+ "docs/images",
+ "examples",
+ "pkg",
+ "pkg-nodejs",
+ "tests/**",
+]
+
+
+[dependencies]
+casper-hashing = { version = "2.0.0", git = "https://github.com/casper-network/casper-node.git", branch = "rustSDK-1.6", default-features = false }
+casper-types = { version = "3.0.0", git = "https://github.com/casper-network/casper-node.git", branch = "rustSDK-1.6", default-features = false }
+casper-client = { version = "2.0.0", git = "https://github.com/casper-ecosystem/casper-client-rs", branch = "rustSDK-1.6", default-features = false, features = [
+ "sdk",
+] }
+rand = { version = "0.8.5", default-features = false }
+wee_alloc = { version = "*", default-features = false, optional = true }
+wasm-bindgen = "*"
+wasm-bindgen-test = "*"
+wasm-bindgen-futures = "*"
+js-sys = "*"
+gloo-utils = { version = "0.2", default-features = false, features = ["serde"] }
+serde = { version = "1.0", default-features = false, features = ["derive"] }
+serde_json = "1.0"
+once_cell = { version = "1.18.0", default-features = false }
+chrono = "0.4"
+num-traits = "0.2"
+humantime = "2"
+thiserror = "=1.0.34"
+base16 = "0.2.1"
+hex = { version = "0.4.3", default-features = false }
+rust_decimal = "1.10"
+
+[lib]
+crate-type = ["cdylib", "rlib"]
+name = "casper_rust_wasm_sdk"
+path = "src/lib.rs"
+
+[[bin]]
+name = "casper_rust_wasm_sdk"
+path = "src/main.rs"
+doc = false
+
+[profile.release]
+lto = true
+
+[dev-dependencies]
+sdk-tests = { path = "tests/integration/rust" }
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 000000000..a93d96287
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2022 CasperLabs Holdings AG
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/Makefile b/Makefile
new file mode 100644
index 000000000..6327e54dd
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,32 @@
+prepare:
+ rustup target add wasm32-unknown-unknown
+
+CURRENT_DIR = .
+
+# Specify the output directories for web and Node.js targets.
+WEB_OUT_DIR = pkg
+NODEJS_OUT_DIR = pkg-nodejs
+
+.PHONY: all web nodejs clean build doc
+
+pack: web nodejs
+
+web:
+ wasm-pack build --target web --release --out-dir $(WEB_OUT_DIR) $(CURRENT_DIR)
+
+nodejs:
+ wasm-pack build --target nodejs --release --out-dir $(NODEJS_OUT_DIR) $(CURRENT_DIR)
+
+clean:
+ rm -rf $(WEB_OUT_DIR) $(NODEJS_OUT_DIR)
+
+doc:
+ cargo doc --package casper-rust-wasm-sdk --no-deps
+ cp -r target/doc/* docs/api-rust/
+ typedoc --out docs/api-wasm pkg/casper_rust_wasm_sdk.d.ts
+
+build: pack doc
+ cd examples/frontend/angular/ && npm run build && cd .
+ cd examples/frontend/react/ && npm run build && cd .
+ cd examples/desktop/node/ && npx tsc index.ts && cd .
+ cd examples/desktop/electron && npm run build && cd .
diff --git a/README.md b/README.md
deleted file mode 100644
index 954bf5890..000000000
--- a/README.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# rustSDK
-Casper Labs Rust SDK
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 000000000..a3c9c2bc3
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,1297 @@
+# Casper Rust/Wasm SDK
+
+The Rust/Wasm SDK allows developers and users to interact with the Casper Blockchain using Rust or TypeScript. It provides a way to embed the [casper-client-rs](https://github.com/casper-ecosystem/casper-client-rs) into another application without the CLI interface. The SDK exposes a list of types and methods from a subset of the Casper client.
+
+You can use the Casper Rust/Wasm SDK in two ways:
+
+- In a Rust application by importing the SDK crate.
+- In a Typescript application by importing the SDK Wasm file and the Typescript interfaces.
+
+This page covers different examples of using the SDK.
+
+## Install
+
+
+ Rust Project
+
+## Rust Project
+
+Add the SDK as a dependency of your project:
+
+> Cargo.toml
+
+```toml
+casper-rust-wasm-sdk = { version = "0.1.0", git = "https://github.com/casper-ecosystem/rustSDK.git" }
+```
+
+## Usage
+
+> main.rs
+
+```rust
+use casper_rust_wasm_sdk::{types::verbosity::Verbosity, SDK};
+
+let sdk = SDK::new(
+ Some("https://rpc.testnet.casperlabs.io".to_string()),
+ Some(Verbosity::High)
+);
+```
+
+
+
+
+ Typescript Project
+
+## Typescript Project
+
+You can directly use the content of the [pkg folder](pkg/) for a browser project or [pkg-nodejs](pkg-nodejs/) for a Node project.
+
+Or you can use the [TODO][npm package](https://todo)
+
+#### Build package with Wasm pack
+
+If you want to compile the Wasm package from Rust you may need to install `wasm-pack` for ease of use.
+
+```shell
+curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
+```
+
+```shell
+$ make prepare
+$ make pack
+```
+
+This will create a `pkg` and `pkg-nodejs` containing the Typescript interfaces. You can find more details about building the SDK for Javascript with `wasm-pack` in the [wasm-pack documention](https://rustwasm.github.io/docs/wasm-pack/commands/build.html).
+
+This folder contains a Wasm binary, a JS wrapper file, Typescript types definitions, and a package.json file that you can load in your project.
+
+```shell
+$ tree pkg
+pkg
+├── casper_rust_wasm_sdk_bg.wasm
+├── casper_rust_wasm_sdk_bg.wasm.d.ts
+├── casper_rust_wasm_sdk.d.ts
+├── casper_rust_wasm_sdk.js
+├── LICENSE
+├── package.json
+└── README.md
+```
+
+## Usage
+
+
+ React
+
+## Web React
+
+> package.json
+
+```json
+{
+ "name": "my-react-app",
+ "dependencies": {
+ // This path is relative
+ "casper-sdk": "file:pkg", // [TODO] Npm package
+ ...
+}
+```
+
+The React app needs to load the Wasm file through a dedicated `init()` method as per this example:
+
+> App.tsx
+
+```ts
+import init, {
+ SDK,
+ Verbosity,
+} from 'casper-sdk';
+
+const node_address = 'https://rpc.testnet.casperlabs.io';
+const verbosity = Verbosity.High;
+
+function App() {
+ const [wasm, setWasm] = useState(false);
+ const fetchWasm = async () => {
+ await init();
+ setWasm(true);
+ };
+
+ useEffect(() => {
+ initApp(); // take care here to initiate app only once and not on every effect
+ }, []);
+
+ const initApp = async () => {
+ if (!wasm) {
+ await fetchWasm();
+ };
+
+ const sdk = new SDK(node_address, verbosity);
+ console.log(sdk);
+ ...
+}
+```
+
+#### Frontend React example
+
+You can look at a very basic example of usage in the [React example app](examples/frontend/react/src/App.tsx).
+
+```shell
+$ cd ./examples/frontend/react
+$ npm install
+$ npm start
+```
+
+
+
+ Angular
+
+## Web Angular
+
+> package.json
+
+```json
+{
+ "name": "my-angular-app",
+ "dependencies": {
+ // This path is relative
+ "casper-sdk": "file:pkg", // [TODO] Npm package
+ ...
+}
+```
+
+The Angular app needs to load the Wasm file through a dedicated `init()` method as per this example. You can import it into a component through a service but it is advised to import it through a factory with the injection token [APP_INITIALIZER](https://angular.io/api/core/APP_INITIALIZER).
+
+> wasm.factory.ts
+
+```js
+import init, { SDK, Verbosity } from 'casper-sdk';
+
+export const SDK_TOKEN = new InjectionToken() < SDK > 'SDK';
+export const WASM_ASSET_PATH =
+ new InjectionToken() < string > 'wasm_asset_path';
+export const NODE_ADDRESS = new InjectionToken() < string > 'node_address';
+export const VERBOSITY = new InjectionToken() < Verbosity > 'verbosity';
+
+type Params = {
+ wasm_asset_path: string,
+ node_address: string,
+ verbosity: Verbosity,
+};
+
+export const fetchWasmFactory = async (params: Params): Promise => {
+ const wasm = await init(params.wasm_asset_path);
+ return new SDK(params.node_address, params.verbosity);
+};
+```
+
+> wasm.module.ts
+
+```ts
+import { NgModule } from '@angular/core';
+import { CommonModule } from '@angular/common';
+import { SDK_TOKEN, fetchWasmFactory, provideSafeAsync } from './wasm.factory';
+
+const providers = provideSafeAsync(SDK_TOKEN, fetchWasmFactory);
+
+@NgModule({
+ imports: [CommonModule],
+ providers,
+})
+export class WasmModule {}
+```
+
+You can look at a basic example of factory usage in the [Angular example app](examples/frontend/angular/libs/util/services/wasm/src/lib/wasm.factory.ts).
+
+Add the SDK Wasm file to the assets of your project with the path parameter being ` wasm_asset_path:'assets/casper_rust_wasm_sdk_bg.wasm'`, Angular will then copy the file from `pkg` in `assets` on build making it available for the fetch Wasm factory.
+
+> project.json
+
+```json
+"assets": [
+ ...,
+ {
+ "input": "pkg",
+ "glob": "casper_rust_wasm_sdk_bg.wasm",
+ "output": "assets"
+ }
+]
+```
+
+#### Frontend Angular example
+
+You can look at a more advanced example of usage in the [Angular example app](examples/frontend/angular/src/app/app.component.ts).
+
+```shell
+$ cd ./examples/frontend/angular
+$ npm install
+$ npm start
+$ npm build
+```
+
+
+
+
+ Node
+
+## Desktop Node
+
+> package.json
+
+```json
+{
+ "name": "my-node-app",
+ "dependencies": {
+ // This path is relative
+ "casper-sdk": "file:pkg-nodejs", // [TODO] Npm package
+ ...
+}
+```
+
+The Node app loads the SDK with `require()`. You can find more details about building the SDK for [Node with wasm-pack](https://rustwasm.github.io/docs/wasm-bindgen/reference/deployment.html#nodejs).
+Note that this method requires a version of Node.js with WebAssembly support, which is currently Node 8 and above.
+
+> index.ts
+
+```ts
+// with require
+const casper_sdk = require('casper-sdk');
+const { SDK } = casper_sdk;
+
+// or with import
+import { SDK } from 'casper-sdk';
+
+const node_address = 'https://rpc.integration.casperlabs.io';
+const sdk = new SDK(node_address);
+console.log(sdk);
+```
+
+#### Desktop Node example
+
+You can look at a very basic example of usage in the [Node example app](examples/desktop/node/index.ts).
+
+```shell
+$ cd ./examples/desktop/node
+$ npm install
+$ npm start
+```
+
+
+
+
+
+## Usage
+
+### RPC call examples
+
+
+ Rust
+
+You can find all RPC methods on the [RPC doc](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/rpcs/). Below are several examples of RPC methods intended for use on Testnet.
+
+#### Get deploy by deploy hash
+
+```rust
+use casper_rust_wasm_sdk::types::deploy_hash::DeployHash;
+
+let deploy_hash =
+ DeployHash::new("a8778b2e4bd1ad02c168329a1f6f3674513f4d350da1b5f078e058a3422ad0b9")
+ .unwrap();
+
+let finalized_approvals = true;
+let get_deploy = sdk
+ .get_deploy(deploy_hash, Some(finalized_approvals), None, None)
+ .await;
+
+let deploy = get_deploy.unwrap().result.deploy;
+let deploy_header = deploy.header();
+let timestamp = deploy_header.timestamp();
+println!("{timestamp}");
+```
+
+#### Get auction state information
+
+```rust
+let get_auction_info = sdk.get_auction_info(None, None, None).await;
+
+let auction_state = get_auction_info.unwrap().result.auction_state;
+let state_root_hash = auction_state.state_root_hash();
+println!("{:?}", state_root_hash);
+let block_height = auction_state.block_height();
+println!("{block_height}");
+```
+
+#### Get peers from the network
+
+```rust
+let get_peers = sdk.get_peers(None, None).await;
+
+let peers = get_peers.unwrap().result.peers;
+for peer in &peers {
+ println!("{:?}", peer)
+}
+```
+
+#### Get the latest block information
+
+```rust
+let get_block = sdk.get_block(None, None, None).await;
+
+let get_block = sdk.get_block(None, None, None).await;
+
+let block = get_block.unwrap().result.block.unwrap();
+let block_hash = block.hash();
+println!("{:?}", block_hash);
+```
+
+You can find more examples by reading [Rust integration tests](./tests/integration/rust/).
+
+
+
+
+ Typescript
+
+You can find all RPC methods on the [RPC doc](https://casper-ecosystem.github.io/rustSDK/api-wasm/classes/SDK.html). Below are several examples of RPC methods intended for use on Testnet.
+
+#### Get deploy by deploy hash
+
+```ts
+import { Deploy } from 'casper-sdk';
+
+const deploy_hash_as_string =
+ 'a8778b2e4bd1ad02c168329a1f6f3674513f4d350da1b5f078e058a3422ad0b9';
+const finalized_approvals = true;
+
+const get_deploy_options = sdk.get_deploy_options({
+ deploy_hash_as_string,
+ finalized_approvals,
+});
+
+const deploy_result = await sdk.get_deploy(get_deploy_options);
+
+const deploy: Deploy = deploy_result.deploy;
+const timestamp = deploy.timestamp();
+const header = deploy.toJson().header; // DeployHeader type not being exposed right now by the SDK you can convert every type to JSON
+console.log(timestamp, header);
+```
+
+#### Get auction state information
+
+```ts
+const get_auction_info = await sdk.get_auction_info();
+
+const auction_state = get_auction_info.auction_state;
+const state_root_hash = auction_state.state_root_hash.toString();
+const block_height = auction_state.block_height.toString();
+console.log(state_root_hash, block_height);
+```
+
+#### Get peers from the network
+
+```ts
+const get_peers = await sdk.get_peers();
+
+const peers = get_peers.peers;
+peers.forEach((peer) => {
+ console.log(peer);
+});
+```
+
+#### Get the latest block information
+
+```ts
+const get_block = await sdk.get_block();
+
+let block = get_block.block;
+let block_hash = block.hash;
+console.log(block_hash);
+```
+
+You can find more examples in the [Angular example app](examples/frontend/angular/src/app/app.component.ts) or in the [React example app](examples/frontend/react/src/App.tsx) or by reading [Puppeteer e2e tests](./tests/e2e/).
+
+
+
+### More examples
+
+
+ Deploys and Transfers
+
+
+ Making a Transfer
+
+#### Rust
+
+```rust
+use casper_rust_wasm_sdk::types::deploy_params::{
+ deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams,
+};
+
+pub const CHAIN_NAME: &str = "integration-test";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PAYMENT_AMOUNT: &str = "100000000";
+pub const TRANSFER_AMOUNT: &str = "2500000000";
+pub const TTL: &str = "1h";
+pub const TARGET_ACCOUNT: &str =
+ "018f2875776bc73e416daf1cf0df270efbb52becf1fc6af6d364d29d61ae23fe44";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY, // sender account
+ None, // optional secret key to sign transfer deploy
+ None, // optional timestamp
+ Some(TTL.to_string()), // optional TTL
+);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+
+let make_transfer = sdk
+ .make_transfer(
+ TRANSFER_AMOUNT,
+ TARGET_ACCOUNT, // target account
+ None, // optional transfer_id
+ deploy_params,
+ payment_params,
+ )
+ .unwrap();
+println!("{:?}", make_transfer.header().timestamp());
+```
+
+#### Typescript
+
+```ts
+import { DeployStrParams, PaymentStrParams, getTimestamp } from 'casper-sdk';
+
+const chain_name = 'integration-test';
+const public_key =
+ '0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129';
+const private_key = undefined;
+const timestamp = getTimestamp(); // or Date.now().toString(); // or undefined
+const ttl = '1h'; // or undefined
+const payment_amount = '100000000';
+const transfer_amount = '2500000000';
+const target_account =
+ '0187adb3e0f60a983ecc2ddb48d32b3deaa09388ad3bc41e14aeb19959ecc60b54';
+
+const deploy_params = new DeployStrParams(
+ chain_name,
+ public_key,
+ private_key,
+ timestamp,
+ ttl
+);
+
+const payment_params = new PaymentStrParams(payment_amount);
+
+const transfer_deploy = sdk.make_transfer(
+ transfer_amount,
+ target_account,
+ undefined, // transfer_id
+ deploy_params,
+ payment_params
+);
+const transfer_deploy_as_json = transfer_deploy.toJson();
+console.log(transfer_deploy_as_json);
+```
+
+
+
+
+ Transfer
+
+Sends a [`Transfer Deploy`] to the network for execution. (Alias for make_transfer + put_deploy)
+
+#### Rust
+
+```rust
+use casper_rust_wasm_sdk::types::deploy_params::{
+ deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams,
+};
+
+pub const CHAIN_NAME: &str = "integration-test";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PRIVATE_KEY: &str = r#"-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----"#;
+pub const PAYMENT_AMOUNT: &str = "100000000";
+pub const TRANSFER_AMOUNT: &str = "2500000000";
+pub const TTL: &str = "1h";
+pub const TARGET_ACCOUNT: &str =
+ "018f2875776bc73e416daf1cf0df270efbb52becf1fc6af6d364d29d61ae23fe44";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY, // sender account
+ Some(PRIVATE_KEY.to_string()),
+ None, // optional timestamp
+ Some(TTL.to_string()), // optional TTL
+);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+
+let transfer = sdk
+ .transfer(
+ TRANSFER_AMOUNT,
+ TARGET_ACCOUNT,
+ None, // optional transfer_id
+ deploy_params,
+ payment_params,
+ None,
+ None,
+ )
+ .await;
+println!("{:?}", transfer.as_ref().unwrap().result.deploy_hash);
+```
+
+#### Typescript
+
+```ts
+import { DeployStrParams, PaymentStrParams, getTimestamp } from 'casper-sdk';
+
+const chain_name = 'casper-net-1';
+const public_key =
+ '0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129';
+const private_key = `-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----`;
+const timestamp = getTimestamp(); // or Date.now().toString(); // or undefined
+const ttl = '1h'; // or undefined
+const payment_amount = '100000000';
+const transfer_amount = '2500000000';
+const target_account =
+ '0187adb3e0f60a983ecc2ddb48d32b3deaa09388ad3bc41e14aeb19959ecc60b54';
+
+const deploy_params = new DeployStrParams(
+ chain_name,
+ public_key,
+ private_key,
+ timestamp,
+ ttl
+);
+
+const payment_params = new PaymentStrParams(payment_amount);
+
+const transfer_result = await sdk.transfer(
+ transfer_amount,
+ target_account,
+ undefined, // transfer_id
+ deploy_params,
+ payment_params
+);
+const transfer_result_as_json = transfer_result.toJson();
+console.log(transfer_result_as_json);
+```
+
+
+
+
+ Making a Deploy
+
+#### Rust
+
+```rust
+use casper_rust_wasm_sdk::types::deploy_params::{
+ deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams,
+ session_str_params::SessionStrParams,
+};
+
+pub const CHAIN_NAME: &str = "integration-test";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PAYMENT_AMOUNT: &str = "5000000000";
+pub const CONTRACT_HASH: &str =
+ "hash-5be5b0ef09a7016e11292848d77f539e55791cb07a7012fbc336b1f92a4fe743";
+pub const ENTRY_POINT: &str = "set_variables";
+pub const TTL: &str = "1h";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY, // sender account
+ None, // optional secret key to sign deploy
+ None, // optional timestamp
+ Some(TTL.to_string()), // optional TTL
+);
+
+let session_params = SessionStrParams::default();
+session_params.set_session_hash(CONTRACT_HASH);
+session_params.set_session_entry_point(ENTRY_POINT);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+
+let deploy = awaitsdk
+ .make_deploy(deploy_params, session_params, payment_params)
+ .unwrap();
+println!("{:?}", deploy.header().timestamp());
+```
+
+#### Typescript
+
+```ts
+import {
+ DeployStrParams,
+ PaymentStrParams,
+ SessionStrParams,
+ getTimestamp,
+} from 'casper-sdk';
+
+const chain_name = 'integration-test';
+const public_key =
+ '0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129';
+const payment_amount = '5000000000';
+const contract_hash =
+ 'hash-5be5b0ef09a7016e11292848d77f539e55791cb07a7012fbc336b1f92a4fe743';
+
+const deploy_params = new DeployStrParams(chain_name, public_key);
+
+const session_params = new SessionStrParams();
+session_params.session_hash = contract_hash;
+session_params.session_entry_point = 'set_variables';
+
+const payment_params = new PaymentStrParams(payment_amount);
+
+const deploy = sdk.make_deploy(deploy_params, session_params, payment_params);
+const deploy_as_json = deploy.toJson();
+console.log(deploy_as_json);
+```
+
+
+
+
+ Deploy
+
+Sends a [`Deploy`] to the network for execution. (Alias for make_deploy + put_deploy)
+
+#### Rust
+
+```rust
+let sdk = SDK::new(
+ Some("http://127.0.0.1:11101".to_string()),
+ Some(Verbosity::High),
+);
+
+use casper_rust_wasm_sdk::types::deploy_params::{
+ deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams,
+ session_str_params::SessionStrParams,
+};
+
+pub const CHAIN_NAME: &str = "casper-net-1";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PRIVATE_KEY: &str = r#"-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----"#;
+pub const PAYMENT_AMOUNT: &str = "5000000000";
+pub const CONTRACT_HASH: &str =
+ "hash-6646c99b3327954b47035bbc31343d9d96a833a9fc9c8c6d809b29f2482b0abf";
+pub const ENTRY_POINT: &str = "set_variables";
+pub const TTL: &str = "1h";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY, // sender account
+ Some(PRIVATE_KEY.to_string()),
+ None, // optional timestamp
+ Some(TTL.to_string()), // optional TTL
+);
+
+let session_params = SessionStrParams::default();
+session_params.set_session_hash(CONTRACT_HASH);
+session_params.set_session_entry_point(ENTRY_POINT);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+
+let deploy = sdk
+ .deploy(deploy_params, session_params, payment_params, None, None)
+ .await;
+println!("{:?}", deploy.as_ref().unwrap().result.deploy_hash);
+```
+
+#### Typescript
+
+```ts
+import {
+ DeployStrParams,
+ PaymentStrParams,
+ SessionStrParams,
+ getTimestamp,
+} from 'casper-sdk';
+
+const chain_name = 'casper-net-1';
+const public_key =
+ '0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129';
+const private_key = `-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----`;
+const payment_amount = '5000000000';
+const contract_hash =
+ 'hash-5be5b0ef09a7016e11292848d77f539e55791cb07a7012fbc336b1f92a4fe743';
+
+const deploy_params = new DeployStrParams(chain_name, public_key, private_key);
+
+const session_params = new SessionStrParams();
+session_params.session_hash = contract_hash;
+session_params.session_entry_point = 'set_variables';
+
+const payment_params = new PaymentStrParams(payment_amount);
+
+const deploy_result = await sdk.deploy(
+ deploy_params,
+ session_params,
+ payment_params
+);
+const deploy_result_as_json = deploy_result.toJson();
+console.log(deploy_result_as_json);
+```
+
+
+
+
+ Put Deploy
+
+#### Rust
+
+Puts a [`Deploy`] to the network for execution.
+
+```rust
+use casper_rust_wasm_sdk::types::{
+ deploy::Deploy,
+ deploy_params::{
+ deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams,
+ session_str_params::SessionStrParams,
+ },
+};
+
+pub const CHAIN_NAME: &str = "casper-net-1";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PRIVATE_KEY: &str = r#"-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----"#;
+pub const PAYMENT_AMOUNT: &str = "5000000000";
+pub const CONTRACT_HASH: &str =
+ "hash-6646c99b3327954b47035bbc31343d9d96a833a9fc9c8c6d809b29f2482b0abf";
+pub const ENTRY_POINT: &str = "set_variables";
+pub const TTL: &str = "1h";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY, // sender account
+ Some(PRIVATE_KEY.to_string()),
+ None, // optional timestamp
+ Some(TTL.to_string()), // optional TTL
+);
+
+let session_params = SessionStrParams::default();
+session_params.set_session_hash(CONTRACT_HASH);
+session_params.set_session_entry_point(ENTRY_POINT);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+
+let deploy =
+ Deploy::with_payment_and_session(deploy_params, session_params, payment_params).unwrap();
+
+let put_deploy = sdk.put_deploy(deploy, None, None).await;
+println!("{:?}", put_deploy.as_ref().unwrap().result.deploy_hash);
+```
+
+Puts a [`Transfer Deploy`] to the network for execution.
+
+```rust
+use casper_rust_wasm_sdk::types::{
+ deploy::Deploy,
+ deploy_params::{deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams},
+};
+
+pub const CHAIN_NAME: &str = "casper-net-1";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PRIVATE_KEY: &str = r#"-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----"#;
+pub const PAYMENT_AMOUNT: &str = "100000000";
+pub const TRANSFER_AMOUNT: &str = "2500000000";
+pub const TARGET_ACCOUNT: &str =
+ "018f2875776bc73e416daf1cf0df270efbb52becf1fc6af6d364d29d61ae23fe44";
+pub const TTL: &str = "1h";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY, // sender account
+ Some(PRIVATE_KEY.to_string()),
+ None, // optional timestamp
+ Some(TTL.to_string()), // optional TTL
+);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+
+let transfer_deploy = Deploy::with_transfer(
+ TRANSFER_AMOUNT,
+ TARGET_ACCOUNT,
+ None,
+ deploy_params,
+ payment_params,
+)
+.unwrap();
+
+let put_deploy = sdk.put_deploy(transfer_deploy, None, None).await;
+println!("{:?}", put_deploy.as_ref().unwrap().result.deploy_hash);
+```
+
+#### Typescript
+
+Puts a [`Deploy`] to the network for execution.
+
+```ts
+import {
+ Deploy,
+ DeployStrParams,
+ PaymentStrParams,
+ SessionStrParams,
+ getTimestamp,
+} from 'casper-sdk';
+
+const chain_name = 'casper-net-1';
+const public_key =
+ '0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129';
+const private_key = `-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----`;
+const payment_amount = '5000000000';
+const contract_hash =
+ 'hash-5be5b0ef09a7016e11292848d77f539e55791cb07a7012fbc336b1f92a4fe743';
+const entry_point = 'set_variables';
+
+const deploy_params = new DeployStrParams(chain_name, public_key, private_key);
+
+const session_params = new SessionStrParams();
+session_params.session_hash = contract_hash;
+session_params.session_entry_point = entry_point;
+
+const payment_params = new PaymentStrParams(payment_amount);
+
+const deploy = Deploy.withPaymentAndSession(
+ deploy_params,
+ session_params,
+ payment_params
+);
+
+const put_deploy_result = await sdk.put_deploy(deploy);
+const put_deploy_result_as_json = put_deploy_result.toJson();
+console.log(put_deploy_result_as_json);
+```
+
+Puts a [`Transfer Deploy`] to the network for execution.
+
+```ts
+import {
+ Deploy,
+ DeployStrParams,
+ PaymentStrParams,
+ SessionStrParams,
+ getTimestamp,
+} from 'casper-sdk';
+
+const chain_name = 'casper-net-1';
+const public_key =
+ '0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129';
+const private_key = `-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----`;
+const payment_amount = '100000000';
+const transfer_amount = '2500000000';
+const target_account =
+ '0187adb3e0f60a983ecc2ddb48d32b3deaa09388ad3bc41e14aeb19959ecc60b54';
+
+const deploy_params = new DeployStrParams(chain_name, public_key, private_key);
+
+const payment_params = new PaymentStrParams(payment_amount);
+
+const transfer_deploy = Deploy.withTransfer(
+ transfer_amount,
+ target_account,
+ undefined, // transfer_id
+ deploy_params,
+ payment_params
+);
+
+const put_deploy_result = await sdk.put_deploy(transfer_deploy);
+const put_deploy_result_as_json = put_deploy_result.toJson();
+console.log(put_deploy_result_as_json);
+```
+
+
+
+
+ Sign Deploy
+
+#### Rust
+
+```rust
+pub const PRIVATE_KEY: &str = "";
+... // same code as 'Making a Deploy' example
+let unsigned_deploy = sdk.make_deploy(deploy_params, session_params, payment_params).unwrap();
+let signed_deploy = sdk.sign_deploy(unsigned_deploy, PRIVATE_KEY);
+```
+
+#### Typescript
+
+```ts
+const private_key = '';
+... // same code as 'Making a Deploy' example
+const unsigned_deploy = sdk.make_deploy(deploy_params, session_params, payment_params);
+const signed_deploy = unsigned_deploy.sign(private_key);
+```
+
+
+
+
+
+
+ CEP-78
+
+#### Install
+
+- Rust
+
+```rust
+use casper_rust_wasm_sdk::{
+ helpers::json_pretty_print,
+ types::{
+ deploy_hash::DeployHash,
+ deploy_params::{
+ deploy_str_params::DeployStrParams, payment_str_params::PaymentStrParams,
+ session_str_params::SessionStrParams,
+ },
+ },
+};
+
+pub const CHAIN_NAME: &str = "casper-net-1";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PRIVATE_KEY: &str = r#"-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----"#;
+pub const ARGS_JSON: &str = r#"[
+{"name": "collection_name", "type": "String", "value": "enhanced-nft-1"},
+{"name": "collection_symbol", "type": "String", "value": "ENFT-1"},
+{"name": "total_token_supply", "type": "U64", "value": 10},
+{"name": "ownership_mode", "type": "U8", "value": 0},
+{"name": "nft_kind", "type": "U8", "value": 1},
+{"name": "allow_minting", "type": "Bool", "value": true},
+{"name": "owner_reverse_lookup_mode", "type": "U8", "value": 0},
+{"name": "nft_metadata_kind", "type": "U8", "value": 2},
+{"name": "identifier_mode", "type": "U8", "value": 0},
+{"name": "metadata_mutability", "type": "U8", "value": 0},
+{"name": "events_mode", "type": "U8", "value": 1}
+]"#;
+pub const PAYMENT_AMOUNT_CONTRACT_CEP78: &str = "300000000000";
+pub const CEP78_CONTRACT: &str = "cep78.wasm";
+pub const DEPLOY_TIME: Duration = time::Duration::from_millis(45000);
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY,
+ Some(PRIVATE_KEY.to_string()),
+ None,
+ None,
+);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT_CONTRACT_CEP78);
+
+let session_params = SessionStrParams::default();
+session_params.set_session_args_json(ARGS_JSON);
+
+let file_path = CEP78_CONTRACT;
+let module_bytes = match read_wasm_file(file_path) {
+ Ok(module_bytes) => module_bytes,
+ Err(err) => {
+ return Err(format!("Error reading file {}: {:?}", file_path, err));
+ }
+};
+
+session_params.set_session_bytes(module_bytes.into());
+
+let install = sdk
+ .install(deploy_params, session_params, payment_params, None)
+ .await;
+
+let deploy_hash_result = install.as_ref().unwrap().result.deploy_hash;
+println!("{:?}", deploy_hash_result);
+
+println!("wait {:?}", DEPLOY_TIME);
+thread::sleep(DEPLOY_TIME); // Let's wait for deployment
+
+let finalized_approvals = true;
+let deploy_hash = DeployHash::from(deploy_hash_result);
+let get_deploy = sdk
+ .get_deploy(deploy_hash, Some(finalized_approvals), None, None)
+ .await;
+let get_deploy = get_deploy.unwrap();
+let result = &get_deploy.result.execution_results.get(0).unwrap().result;
+println!("{}", json_pretty_print(result, Some(Verbosity::High)));
+```
+
+with
+
+```rust
+fn read_wasm_file(file_path: &str) -> Result, io::Error> {
+ let root_path = Path::new("./wasm/");
+ let path = root_path.join(file_path);
+ let mut file = File::open(path)?;
+ let mut buffer = Vec::new();
+ file.read_to_end(&mut buffer)?;
+ Ok(buffer)
+}
+```
+
+- Typescript
+
+```ts
+import {
+ ...
+ DeployStrParams,
+ SessionStrParams,
+ PaymentStrParams,
+ privateToPublicKey,
+ Bytes,
+} from 'casper-sdk';
+
+const chain_name = 'casper-net-1';
+ const private_key = `-----BEGIN PRIVATE KEY-----
+-----END PRIVATE KEY-----`;
+const public_key = privateToPublicKey(private_key);
+const deploy_params = new DeployStrParams(chain_name, public_key, private_key);
+
+const session_params = new SessionStrParams();
+session_params.session_args_json = JSON.stringify([
+ {"name": "collection_name", "type": "String", "value": "enhanced-nft-1"},
+ {"name": "collection_symbol", "type": "String", "value": "ENFT-1"},
+ {"name": "total_token_supply", "type": "U64", "value": 10},
+ {"name": "ownership_mode", "type": "U8", "value": 0},
+ {"name": "nft_kind", "type": "U8", "value": 1},
+ {"name": "allow_minting", "type": "Bool", "value": true},
+ {"name": "owner_reverse_lookup_mode", "type": "U8", "value": 0},
+ {"name": "nft_metadata_kind", "type": "U8", "value": 2},
+ {"name": "identifier_mode", "type": "U8", "value": 0},
+ {"name": "metadata_mutability", "type": "U8", "value": 0},
+ {"name": "events_mode", "type": "U8", "value": 1}
+]);
+const payment_amount = '300000000000';
+
+const buffer = await loadFile();
+const wasm = buffer && new Uint8Array(buffer);
+const wasmBuffer = wasm?.buffer;
+if (!wasmBuffer) {
+ console.error('Failed to read wasm file.');
+ return;
+}
+
+session_params.session_bytes = Bytes.fromUint8Array(wasm);
+
+const install_result = await sdk.install(
+ deploy_params,
+ session_params,
+ payment_amount
+);
+const install_result_as_json = install_result.toJson();
+console.log(install_result_as_json.deploy_hash);
+```
+
+with
+
+```ts
+async function loadFile() {
+ try {
+ const fileBuffer = await fs.readFile('cep78.wasm');
+ return fileBuffer.buffer; // Returns an ArrayBuffer
+ } catch (error) {
+ throw new Error('Error reading file: ' + error.message);
+ }
+}
+```
+
+#### Mint
+
+- Rust
+
+```rust
+pub const CHAIN_NAME: &str = "casper-net-1";
+pub const PUBLIC_KEY: &str =
+ "0169d8d607f3ba04c578140398ceb1bd5296c653f965256bd7097982b9026c5129";
+pub const PRIVATE_KEY: &str = r#"-----BEGIN PRIVATE KEY-----
+ -----END PRIVATE KEY-----"#;
+pub const CONTRACT_HASH: &str =
+ "hash-c12808431d490e2c463c2f968d0a4eaa0f9d57842508d9041aa42e2bd21eb96c";
+pub const ENTRYPOINT_MINT: &str = "mint";
+pub const TOKEN_OWNER: &str =
+ "account-hash-878985c8c07064e09e67cc349dd21219b8e41942a0adc4bfa378cf0eace32611";
+pub const PAYMENT_AMOUNT: &str = "5000000000";
+
+let deploy_params = DeployStrParams::new(
+ CHAIN_NAME,
+ PUBLIC_KEY,
+ Some(PRIVATE_KEY.to_string()),
+ None,
+ None,
+);
+let mut session_params = SessionStrParams::default();
+session_params.set_session_hash(CONTRACT_HASH);
+session_params.set_session_entry_point(ENTRYPOINT_MINT);
+
+let args = Vec::from([
+ "token_meta_data:String='test_meta_data'".to_string(),
+ format!("token_owner:Key='{TOKEN_OWNER}'").to_string(),
+]);
+session_params.set_session_args(args);
+
+let payment_params = PaymentStrParams::default();
+payment_params.set_payment_amount(PAYMENT_AMOUNT);
+let call_entrypoint = sdk
+ .call_entrypoint(deploy_params, session_params, payment_params, None)
+ .await;
+let deploy_hash_result = call_entrypoint.as_ref().unwrap().result.deploy_hash;
+println!("{:?}", deploy_hash_result);
+```
+
+- Typescript
+
+```ts
+import {
+ ...
+ DeployStrParams,
+ SessionStrParams,
+ PaymentStrParams,
+ privateToPublicKey,
+ Bytes,
+} from 'casper-sdk';
+
+const chain_name = 'casper-net-1';
+const private_key = '';
+const public_key = privateToPublicKey(private_key);
+const contract_hash =
+ 'hash-5be5b0ef09a7016e11292848d77f539e55791cb07a7012fbc336b1f92a4fe743';
+const entry_point = 'mint';
+const token_owner = 'account-hash-878985c8c07064e09e67cc349dd21219b8e41942a0adc4bfa378cf0eace32611';
+
+const deploy_params = new DeployStrParams(chain_name, public_key, private_key);
+
+const session_params = new SessionStrParams();
+session_params.session_hash = contract_hash;
+session_params.session_entry_point = entry_point;
+session_params.session_args_simple = ["token_meta_data:String='test_meta_data'", `token_owner:Key='${token_owner}'`];
+
+const call_entrypoint_result = await sdk.call_entrypoint(
+ deploy_params,
+ session_params,
+ payment_amount
+);
+const call_entrypoint_result_as_json = call_entrypoint_result.toJson();
+console.log(call_entrypoint_result_as_json.deploy_hash);
+```
+
+
+
+### Desktop Electron demo app
+
+
+ Example of usage of the SDK in a Desktop application
+
+
+
+![Casper Electron App](docs/images/get_status-electron.png)
+
+The Electron based demo app loads the Angular example build. You can use this app on your computer to test every action the SDK can take.
+
+```shell
+$ cd ./examples/desktop/electron
+$ npm install
+$ npm start
+$ npm build
+```
+
+You can download an alpha version of the app illustrating the SDK here:
+
+- [Microsoft Windows](examples/desktop/electron/release/Casper%20Setup%201.0.0.exe)
+- [GNU/Linux AppImage](examples/desktop/electron/release/Casper-1.0.0.AppImage)
+- [GNU/Linux Snap](examples/desktop/electron/release/casper_1.0.0_amd64.snap)
+- [Mac][TODO]
+
+
+
+---
+
+
+
+## Rust API
+
+- [Modules and Structs](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/)
+
+- [Full item list](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/all.html)
+
+### SDK
+
+- [SDK Struct and methods](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/struct.SDK.html)
+
+### RPC
+
+- [RPC List](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/rpcs/index.html)
+
+### Deploy Params
+
+- [Params and Args simple](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/types/deploy_params/index.html)
+
+### Deploy
+
+- [Deploy Type and static builder](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/types/deploy/struct.Deploy.html)
+
+### Types
+
+- [Current exposed types](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/types/index.html)
+
+### Helpers functions
+
+- [Rust helpers](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/helpers/index.html)
+
+## Typescript API
+
+- [Full item list](https://casper-ecosystem.github.io/rustSDK/api-wasm/index.html)
+
+### SDK
+
+- [SDK Struct and methods](https://casper-ecosystem.github.io/rustSDK/api-wasm/classes/SDK.html)
+
+### RPC Methods
+
+- [RPC List](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/rpcs/index.html)
+
+### Deploy Params
+
+- [Params and Args simple](https://casper-ecosystem.github.io/rustSDK/api-rust/casper_rust_wasm_sdk/types/deploy_params/index.html)
+
+### Deploy
+
+- [Deploy Type and static builder](https://casper-ecosystem.github.io/rustSDK/api-wasm/classes/Deploy.html)
+
+### Types
+
+- [Current exposed types](https://casper-ecosystem.github.io/rustSDK/api-wasm/modules.html)
+
+### Helpers functions
+
+- [TS helpers](https://casper-ecosystem.github.io/rustSDK/api-wasm/modules.html)
+
+## Testing
+
+Tests are run against NCTL by default or the network configured in corresponding configurations. Tests assume a `secret_key.pem` is either at the root of tests or in `./NCTL/casper-node/utils/nctl/assets/net-1/users/user-1/` from the root (several levels higher than the test). This path can be changed in configuration.
+`./NCTL/casper-node/utils/nctl/assets/net-1/users/user-1/` from the root (so levels higher than the test). This path can be changed in configuration.
+
+- [Rust Integration tests](tests/integration/rust/) can be run with `cargo test -- --test-threads=1 --nocapture` [configured in config](tests/integration/rust/src/config.rs)
+
+- [Jest/Puppeteer E2E tests](tests/e2e/) can be run with `npm test` [configured with .env](tests/e2e/.env) or [puppeteer config](tests/e2e/puppeteer/config.ts)
+
+- Unit tests [TODO]
+
+## Todo
+
+- Expose more CL Types and Casper Client result Types
+- EventStream
+- Keygen
+- Wallet connect
diff --git a/docs/api-rust/casper_rust_wasm_sdk/all.html b/docs/api-rust/casper_rust_wasm_sdk/all.html
new file mode 100644
index 000000000..379742cdf
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/all.html
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/call_entrypoint/index.html b/docs/api-rust/casper_rust_wasm_sdk/call_entrypoint/index.html
new file mode 100644
index 000000000..4f3d855a5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/call_entrypoint/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::call_entrypoint - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/call_entrypoint/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/call_entrypoint/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/call_entrypoint/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/deploy/index.html b/docs/api-rust/casper_rust_wasm_sdk/deploy/index.html
new file mode 100644
index 000000000..6db54fc8a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/deploy/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::deploy - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/deploy/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/deploy/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/deploy/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.cl_value_to_json.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.cl_value_to_json.html
new file mode 100644
index 000000000..f72aa623a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.cl_value_to_json.html
@@ -0,0 +1,8 @@
+cl_value_to_json in casper_rust_wasm_sdk::helpers - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_current_timestamp.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_current_timestamp.html
new file mode 100644
index 000000000..3130e9b5d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_current_timestamp.html
@@ -0,0 +1,8 @@
+get_current_timestamp in casper_rust_wasm_sdk::helpers - Rust
A string containing the current timestamp in RFC3339 format.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_gas_price_or_default.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_gas_price_or_default.html
new file mode 100644
index 000000000..eac7a601a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_gas_price_or_default.html
@@ -0,0 +1,8 @@
+get_gas_price_or_default in casper_rust_wasm_sdk::helpers - Rust
The gas price or the default gas price if not provided.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_ttl_or_default.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_ttl_or_default.html
new file mode 100644
index 000000000..fb25092e7
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.get_ttl_or_default.html
@@ -0,0 +1,8 @@
+get_ttl_or_default in casper_rust_wasm_sdk::helpers - Rust
A string containing the TTL value or the default TTL if not provided.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.hex_to_string.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.hex_to_string.html
new file mode 100644
index 000000000..efe221126
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.hex_to_string.html
@@ -0,0 +1,8 @@
+hex_to_string in casper_rust_wasm_sdk::helpers - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.hex_to_uint8_vec.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.hex_to_uint8_vec.html
new file mode 100644
index 000000000..62003b6d4
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.hex_to_uint8_vec.html
@@ -0,0 +1,8 @@
+hex_to_uint8_vec in casper_rust_wasm_sdk::helpers - Rust
A vector of unsigned 8-bit integers (Uint8Array) containing the converted value.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.insert_js_value_arg.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.insert_js_value_arg.html
new file mode 100644
index 000000000..46e58b38b
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.insert_js_value_arg.html
@@ -0,0 +1,12 @@
+insert_js_value_arg in casper_rust_wasm_sdk::helpers - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.json_pretty_print.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.json_pretty_print.html
new file mode 100644
index 000000000..f5b2ece5c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.json_pretty_print.html
@@ -0,0 +1,10 @@
+json_pretty_print in casper_rust_wasm_sdk::helpers - Rust
A JSON string representing the pretty printed value.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.motes_to_cspr.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.motes_to_cspr.html
new file mode 100644
index 000000000..329f4a65d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.motes_to_cspr.html
@@ -0,0 +1,8 @@
+motes_to_cspr in casper_rust_wasm_sdk::helpers - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.parse_timestamp.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.parse_timestamp.html
new file mode 100644
index 000000000..39fab415e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.parse_timestamp.html
@@ -0,0 +1,8 @@
+parse_timestamp in casper_rust_wasm_sdk::helpers - Rust
A Result containing the parsed Timestamp or an error if parsing fails.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.parse_ttl.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.parse_ttl.html
new file mode 100644
index 000000000..c576b5648
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.parse_ttl.html
@@ -0,0 +1,8 @@
+parse_ttl in casper_rust_wasm_sdk::helpers - Rust
A Result containing the parsed TimeDiff or an error if parsing fails.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.public_key_from_private_key.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.public_key_from_private_key.html
new file mode 100644
index 000000000..ce90ab37b
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.public_key_from_private_key.html
@@ -0,0 +1,8 @@
+public_key_from_private_key in casper_rust_wasm_sdk::helpers - Rust
A Result containing the public key as a string or an error if the conversion fails.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.secret_key_from_pem.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.secret_key_from_pem.html
new file mode 100644
index 000000000..0f847be2d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/fn.secret_key_from_pem.html
@@ -0,0 +1,8 @@
+secret_key_from_pem in casper_rust_wasm_sdk::helpers - Rust
A Result containing the parsed SecretKey or an error if parsing fails.
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/index.html b/docs/api-rust/casper_rust_wasm_sdk/helpers/index.html
new file mode 100644
index 000000000..34bd62c4e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::helpers - Rust
Parses a secret key in PEM format into a SecretKey object.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/helpers/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/helpers/sidebar-items.js
new file mode 100644
index 000000000..6fa1c9ecf
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/helpers/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"fn":["cl_value_to_json","get_current_timestamp","get_gas_price_or_default","get_ttl_or_default","hex_to_string","hex_to_uint8_vec","insert_js_value_arg","json_pretty_print","motes_to_cspr","parse_timestamp","parse_ttl","public_key_from_private_key","secret_key_from_pem"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/index.html b/docs/api-rust/casper_rust_wasm_sdk/index.html
new file mode 100644
index 000000000..2b550967c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/install/index.html b/docs/api-rust/casper_rust_wasm_sdk/install/index.html
new file mode 100644
index 000000000..4bad7c5ad
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/install/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::install - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/query_contract_dict/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/query_contract_dict/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/query_contract_dict/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/query_contract_key/index.html b/docs/api-rust/casper_rust_wasm_sdk/query_contract_key/index.html
new file mode 100644
index 000000000..41d93c041
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/query_contract_key/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::query_contract_key - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/query_contract_key/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/query_contract_key/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/query_contract_key/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_account/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_account/index.html
new file mode 100644
index 000000000..af798297a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_account/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_account - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_account/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_account/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_account/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_auction_info/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_auction_info/index.html
new file mode 100644
index 000000000..95ab3b35d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_auction_info/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_auction_info - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_auction_info/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_auction_info/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_auction_info/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/enum.GetBalanceInput.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/enum.GetBalanceInput.html
new file mode 100644
index 000000000..3df6ad3b5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/enum.GetBalanceInput.html
@@ -0,0 +1,23 @@
+GetBalanceInput in casper_rust_wasm_sdk::rpcs::get_balance - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/index.html
new file mode 100644
index 000000000..b2cb79d1e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_balance - Rust
Enum representing different ways to specify the purse uref.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/sidebar-items.js
new file mode 100644
index 000000000..f745c550e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_balance/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"enum":["GetBalanceInput"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block/index.html
new file mode 100644
index 000000000..54d6e710e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_block - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block_transfers/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block_transfers/index.html
new file mode 100644
index 000000000..fa45e14d9
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block_transfers/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_block_transfers - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block_transfers/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block_transfers/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_block_transfers/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_chainspec/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_chainspec/index.html
new file mode 100644
index 000000000..ddc5d7115
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_chainspec/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_chainspec - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_chainspec/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_chainspec/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_chainspec/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_deploy/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_deploy/index.html
new file mode 100644
index 000000000..1dc5ccc45
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_deploy/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_deploy - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_deploy/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_deploy/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_deploy/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/enum.DictionaryItemInput.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/enum.DictionaryItemInput.html
new file mode 100644
index 000000000..c3bd59f0a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/enum.DictionaryItemInput.html
@@ -0,0 +1,20 @@
+DictionaryItemInput in casper_rust_wasm_sdk::rpcs::get_dictionary_item - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/index.html
new file mode 100644
index 000000000..544385fad
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_dictionary_item - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/sidebar-items.js
new file mode 100644
index 000000000..e0ba12987
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_dictionary_item/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"enum":["DictionaryItemInput"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_info/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_info/index.html
new file mode 100644
index 000000000..3645322c5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_info/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_era_info - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_info/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_info/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_info/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_summary/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_summary/index.html
new file mode 100644
index 000000000..9a072b360
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_summary/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_era_summary - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_summary/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_summary/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_era_summary/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_node_status/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_node_status/index.html
new file mode 100644
index 000000000..01ab83f4e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_node_status/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_node_status - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_node_status/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_node_status/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_node_status/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_peers/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_peers/index.html
new file mode 100644
index 000000000..37e943244
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_peers/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_peers - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_peers/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_peers/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_peers/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_state_root_hash/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_state_root_hash/index.html
new file mode 100644
index 000000000..4597b224c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_state_root_hash/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_state_root_hash - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_state_root_hash/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_state_root_hash/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_state_root_hash/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_validator_changes/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_validator_changes/index.html
new file mode 100644
index 000000000..21938f783
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_validator_changes/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::get_validator_changes - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_validator_changes/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_validator_changes/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/get_validator_changes/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/index.html
new file mode 100644
index 000000000..9ab3939a6
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/list_rpcs/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/list_rpcs/index.html
new file mode 100644
index 000000000..abd7d0ca4
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/list_rpcs/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::list_rpcs - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/list_rpcs/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/list_rpcs/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/list_rpcs/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/put_deploy/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/put_deploy/index.html
new file mode 100644
index 000000000..3c4fc901e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/put_deploy/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::put_deploy - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/put_deploy/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/put_deploy/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/put_deploy/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_balance/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_balance/index.html
new file mode 100644
index 000000000..9096d49a0
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_balance/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::query_balance - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_balance/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_balance/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_balance/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/enum.KeyIdentifierInput.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/enum.KeyIdentifierInput.html
new file mode 100644
index 000000000..bb7fba523
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/enum.KeyIdentifierInput.html
@@ -0,0 +1,23 @@
+KeyIdentifierInput in casper_rust_wasm_sdk::rpcs::query_global_state - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/enum.PathIdentifierInput.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/enum.PathIdentifierInput.html
new file mode 100644
index 000000000..aceea831c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/enum.PathIdentifierInput.html
@@ -0,0 +1,23 @@
+PathIdentifierInput in casper_rust_wasm_sdk::rpcs::query_global_state - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/index.html
new file mode 100644
index 000000000..f89d57b60
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::query_global_state - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/sidebar-items.js
new file mode 100644
index 000000000..ee64a805b
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"enum":["KeyIdentifierInput","PathIdentifierInput"],"struct":["QueryGlobalStateOptions","QueryGlobalStateParams","QueryGlobalStateResult"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateOptions.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateOptions.html
new file mode 100644
index 000000000..c1de7d23d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateOptions.html
@@ -0,0 +1,45 @@
+QueryGlobalStateOptions in casper_rust_wasm_sdk::rpcs::query_global_state - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateParams.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateParams.html
new file mode 100644
index 000000000..10f3951c3
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateParams.html
@@ -0,0 +1,26 @@
+QueryGlobalStateParams in casper_rust_wasm_sdk::rpcs::query_global_state - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateResult.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateResult.html
new file mode 100644
index 000000000..3988321a1
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/query_global_state/struct.QueryGlobalStateResult.html
@@ -0,0 +1,33 @@
+QueryGlobalStateResult in casper_rust_wasm_sdk::rpcs::query_global_state - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/rpcs/sidebar-items.js
new file mode 100644
index 000000000..cabf862ac
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"mod":["get_account","get_auction_info","get_balance","get_block","get_block_transfers","get_chainspec","get_deploy","get_dictionary_item","get_era_info","get_era_summary","get_node_status","get_peers","get_state_root_hash","get_validator_changes","list_rpcs","put_deploy","query_balance","query_global_state","speculative_exec"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/rpcs/speculative_exec/index.html b/docs/api-rust/casper_rust_wasm_sdk/rpcs/speculative_exec/index.html
new file mode 100644
index 000000000..5d1abe01b
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/rpcs/speculative_exec/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::rpcs::speculative_exec - Rust
+
+
+
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/sidebar-items.js
new file mode 100644
index 000000000..bd92e9a46
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"mod":["call_entrypoint","debug","deploy","helpers","install","query_contract_dict","query_contract_key","rpcs","speculative_deploy","speculative_transfer","transfer","types"],"struct":["SDK"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/speculative_deploy/index.html b/docs/api-rust/casper_rust_wasm_sdk/speculative_deploy/index.html
new file mode 100644
index 000000000..610e0b741
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/speculative_deploy/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::speculative_deploy - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/speculative_deploy/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/speculative_deploy/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/speculative_deploy/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/speculative_transfer/index.html b/docs/api-rust/casper_rust_wasm_sdk/speculative_transfer/index.html
new file mode 100644
index 000000000..35042be6a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/speculative_transfer/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::speculative_transfer - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/speculative_transfer/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/speculative_transfer/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/speculative_transfer/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/struct.SDK.html b/docs/api-rust/casper_rust_wasm_sdk/struct.SDK.html
new file mode 100644
index 000000000..e84e2ff95
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/struct.SDK.html
@@ -0,0 +1,522 @@
+SDK in casper_rust_wasm_sdk - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/transfer/index.html b/docs/api-rust/casper_rust_wasm_sdk/transfer/index.html
new file mode 100644
index 000000000..eb351cd75
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/transfer/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::transfer - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/transfer/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/transfer/sidebar-items.js
new file mode 100644
index 000000000..5244ce01c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/transfer/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/index.html
new file mode 100644
index 000000000..837504578
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::access_rights - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/sidebar-items.js
new file mode 100644
index 000000000..6b422dd10
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["AccessRights"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/struct.AccessRights.html b/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/struct.AccessRights.html
new file mode 100644
index 000000000..3b2395ffb
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/access_rights/struct.AccessRights.html
@@ -0,0 +1,28 @@
+AccessRights in casper_rust_wasm_sdk::types::access_rights - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/index.html
new file mode 100644
index 000000000..83f1edc10
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::account_hash - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/sidebar-items.js
new file mode 100644
index 000000000..4e0a7f8ae
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["AccountHash"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/struct.AccountHash.html b/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/struct.AccountHash.html
new file mode 100644
index 000000000..67b383027
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/account_hash/struct.AccountHash.html
@@ -0,0 +1,36 @@
+AccountHash in casper_rust_wasm_sdk::types::account_hash - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
Returns the length of the Vec<u8> which would be returned from a successful call to
+to_bytes() or into_bytes(). The data is not actually serialized, so this call is
+relatively cheap.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/index.html
new file mode 100644
index 000000000..7d093c33e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::account_identifier - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/sidebar-items.js
new file mode 100644
index 000000000..9c3cff9a8
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["AccountIdentifier"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/struct.AccountIdentifier.html b/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/struct.AccountIdentifier.html
new file mode 100644
index 000000000..86fdd0f53
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/account_identifier/struct.AccountIdentifier.html
@@ -0,0 +1,35 @@
+AccountIdentifier in casper_rust_wasm_sdk::types::account_identifier - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/index.html
new file mode 100644
index 000000000..b3f6a0979
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::addr::dictionary_addr - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/sidebar-items.js
new file mode 100644
index 000000000..f403ca697
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["DictionaryAddr"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/struct.DictionaryAddr.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/struct.DictionaryAddr.html
new file mode 100644
index 000000000..c8a2bcc63
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/dictionary_addr/struct.DictionaryAddr.html
@@ -0,0 +1,28 @@
+DictionaryAddr in casper_rust_wasm_sdk::types::addr::dictionary_addr - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/index.html
new file mode 100644
index 000000000..6031b7101
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::addr::hash_addr - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/sidebar-items.js
new file mode 100644
index 000000000..d38d1c2e3
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["HashAddr"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/struct.HashAddr.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/struct.HashAddr.html
new file mode 100644
index 000000000..b4f28408f
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/hash_addr/struct.HashAddr.html
@@ -0,0 +1,28 @@
+HashAddr in casper_rust_wasm_sdk::types::addr::hash_addr - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/index.html
new file mode 100644
index 000000000..9f5d22f45
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::addr - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/addr/sidebar-items.js
new file mode 100644
index 000000000..d703e1917
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"mod":["dictionary_addr","hash_addr","transfer_addr","uref_addr"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/fn.from_transfer.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/fn.from_transfer.html
new file mode 100644
index 000000000..7c770a0cf
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/fn.from_transfer.html
@@ -0,0 +1 @@
+from_transfer in casper_rust_wasm_sdk::types::addr::transfer_addr - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/index.html
new file mode 100644
index 000000000..b75cf2542
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::addr::transfer_addr - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/sidebar-items.js
new file mode 100644
index 000000000..274462a75
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"fn":["from_transfer"],"struct":["TransferAddr"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/struct.TransferAddr.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/struct.TransferAddr.html
new file mode 100644
index 000000000..f9337eff8
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/transfer_addr/struct.TransferAddr.html
@@ -0,0 +1,28 @@
+TransferAddr in casper_rust_wasm_sdk::types::addr::transfer_addr - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/index.html
new file mode 100644
index 000000000..04d1b8aba
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::addr::uref_addr - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/sidebar-items.js
new file mode 100644
index 000000000..5ea929085
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["URefAddr"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/struct.URefAddr.html b/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/struct.URefAddr.html
new file mode 100644
index 000000000..093856888
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/addr/uref_addr/struct.URefAddr.html
@@ -0,0 +1,28 @@
+URefAddr in casper_rust_wasm_sdk::types::addr::uref_addr - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/index.html
new file mode 100644
index 000000000..d792255d5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::block_hash - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/sidebar-items.js
new file mode 100644
index 000000000..5db49f882
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["BlockHash"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/struct.BlockHash.html b/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/struct.BlockHash.html
new file mode 100644
index 000000000..9009dd5c9
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_hash/struct.BlockHash.html
@@ -0,0 +1,33 @@
+BlockHash in casper_rust_wasm_sdk::types::block_hash - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/enum.BlockIdentifierInput.html b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/enum.BlockIdentifierInput.html
new file mode 100644
index 000000000..14cde7366
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/enum.BlockIdentifierInput.html
@@ -0,0 +1,22 @@
+BlockIdentifierInput in casper_rust_wasm_sdk::types::block_identifier - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/index.html
new file mode 100644
index 000000000..3439e82ce
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::block_identifier - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/sidebar-items.js
new file mode 100644
index 000000000..e0893244f
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"enum":["BlockIdentifierInput"],"struct":["BlockIdentifier"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/struct.BlockIdentifier.html b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/struct.BlockIdentifier.html
new file mode 100644
index 000000000..150c669d1
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/block_identifier/struct.BlockIdentifier.html
@@ -0,0 +1,33 @@
+BlockIdentifier in casper_rust_wasm_sdk::types::block_identifier - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/index.html
new file mode 100644
index 000000000..0f2d9c0f6
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::cl::bytes - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/sidebar-items.js
new file mode 100644
index 000000000..08885c580
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["Bytes"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/struct.Bytes.html b/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/struct.Bytes.html
new file mode 100644
index 000000000..ed0e8aab5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/cl/bytes/struct.Bytes.html
@@ -0,0 +1,1110 @@
+Bytes in casper_rust_wasm_sdk::types::cl::bytes - Rust
The caller must ensure that the slice outlives the pointer this
+function returns, or else it will end up pointing to garbage.
+
The caller must also ensure that the memory the pointer (non-transitively) points to
+is never written to (except inside an UnsafeCell) using this pointer or any pointer
+derived from it. If you need to mutate the contents of the slice, use as_mut_ptr.
+
Modifying the container referenced by this slice may cause its buffer
+to be reallocated, which would also make any pointers to it invalid.
The returned range is half-open, which means that the end pointer
+points one past the last element of the slice. This way, an empty
+slice is represented by two equal pointers, and the difference between
+the two pointers represents the size of the slice.
+
See as_ptr for warnings on using these pointers. The end pointer
+requires extra caution, as it does not point to a valid element in the
+slice.
+
This function is useful for interacting with foreign interfaces which
+use two pointers to refer to a range of elements in memory, as is
+common in C++.
+
It can also be useful to check if a pointer to an element refers to an
+element of this slice:
+
+
let a = [1, 2, 3];
+let x = &a[1] as *const _;
+let y = &5 as *const _;
+
+assert!(a.as_ptr_range().contains(&x));
+assert!(!a.as_ptr_range().contains(&y));
Returns an iterator over all contiguous windows of length
+size. The windows overlap. If the slice is shorter than
+size, the iterator returns no values.
let slice = ['f', 'o', 'o'];
+let mut iter = slice.windows(4);
+assert!(iter.next().is_none());
+
There’s no windows_mut, as that existing would let safe code violate the
+“only one &mut at a time to the same thing” rule. However, you can sometimes
+use Cell::as_slice_of_cells in
+conjunction with windows to accomplish something similar:
Returns an iterator over chunk_size elements of the slice at a time, starting at the
+beginning of the slice.
+
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
+slice, then the last chunk will not have length chunk_size.
+
See chunks_exact for a variant of this iterator that returns chunks of always exactly
+chunk_size elements, and rchunks for the same iterator but starting at the end of the
+slice.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
+beginning of the slice.
+
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
+slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
+from the remainder function of the iterator.
+
Due to each chunk having exactly chunk_size elements, the compiler can often optimize the
+resulting code better than in the case of chunks.
+
See chunks for a variant of this iterator that also returns the remainder as a smaller
+chunk, and rchunks_exact for the same iterator but starting at the end of the slice.
🔬This is a nightly-only experimental API. (array_chunks)
Returns an iterator over N elements of the slice at a time, starting at the
+beginning of the slice.
+
The chunks are array references and do not overlap. If N does not divide the
+length of the slice, then the last up to N-1 elements will be omitted and can be
+retrieved from the remainder function of the iterator.
+
This method is the const generic equivalent of chunks_exact.
Returns an iterator over chunk_size elements of the slice at a time, starting at the end
+of the slice.
+
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
+slice, then the last chunk will not have length chunk_size.
+
See rchunks_exact for a variant of this iterator that returns chunks of always exactly
+chunk_size elements, and chunks for the same iterator but starting at the beginning
+of the slice.
Returns an iterator over chunk_size elements of the slice at a time, starting at the
+end of the slice.
+
The chunks are slices and do not overlap. If chunk_size does not divide the length of the
+slice, then the last up to chunk_size-1 elements will be omitted and can be retrieved
+from the remainder function of the iterator.
+
Due to each chunk having exactly chunk_size elements, the compiler can often optimize the
+resulting code better than in the case of rchunks.
+
See rchunks for a variant of this iterator that also returns the remainder as a smaller
+chunk, and chunks_exact for the same iterator but starting at the beginning of the
+slice.
🔬This is a nightly-only experimental API. (slice_group_by)
Returns an iterator over the slice producing non-overlapping runs
+of elements using the predicate to separate them.
+
The predicate is called on two elements following themselves,
+it means the predicate is called on slice[0] and slice[1]
+then on slice[1] and slice[2] and so on.
The first will contain all indices from [0, mid) (excluding
+the index mid itself) and the second will contain all
+indices from [mid, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (slice_split_at_unchecked)
Divides one slice into two at an index, without doing bounds checking.
+
The first will contain all indices from [0, mid) (excluding
+the index mid itself) and the second will contain all
+indices from [mid, len) (excluding the index len itself).
Calling this method with an out-of-bounds index is undefined behavior
+even if the resulting reference is not used. The caller has to ensure that
+0 <= mid <= self.len().
🔬This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index.
+
The array will contain all indices from [0, N) (excluding
+the index N itself) and the slice will contain all
+indices from [N, len) (excluding the index len itself).
🔬This is a nightly-only experimental API. (split_array)
Divides one slice into an array and a remainder slice at an index from
+the end.
+
The slice will contain all indices from [0, len - N) (excluding
+the index len - N itself) and the array will contain all
+indices from [len - N, len) (excluding the index len itself).
let slice = [10, 40, 33, 20];
+let mut iter = slice.split(|num| num % 3 == 0);
+
+assert_eq!(iter.next().unwrap(), &[10, 40]);
+assert_eq!(iter.next().unwrap(), &[20]);
+assert!(iter.next().is_none());
+
If the first element is matched, an empty slice will be the first item
+returned by the iterator. Similarly, if the last element in the slice
+is matched, an empty slice will be the last item returned by the
+iterator:
+
+
let slice = [10, 40, 33];
+let mut iter = slice.split(|num| num % 3 == 0);
+
+assert_eq!(iter.next().unwrap(), &[10, 40]);
+assert_eq!(iter.next().unwrap(), &[]);
+assert!(iter.next().is_none());
+
If two matched elements are directly adjacent, an empty slice will be
+present between them:
+
+
let slice = [10, 6, 33, 20];
+let mut iter = slice.split(|num| num % 3 == 0);
+
+assert_eq!(iter.next().unwrap(), &[10]);
+assert_eq!(iter.next().unwrap(), &[]);
+assert_eq!(iter.next().unwrap(), &[20]);
+assert!(iter.next().is_none());
Returns an iterator over subslices separated by elements that match
+pred. The matched element is contained in the end of the previous
+subslice as a terminator.
let slice = [10, 40, 33, 20];
+let mut iter = slice.split_inclusive(|num| num % 3 == 0);
+
+assert_eq!(iter.next().unwrap(), &[10, 40, 33]);
+assert_eq!(iter.next().unwrap(), &[20]);
+assert!(iter.next().is_none());
+
If the last element of the slice is matched,
+that element will be considered the terminator of the preceding slice.
+That slice will be the last item returned by the iterator.
+
+
let slice = [3, 10, 40, 33];
+let mut iter = slice.split_inclusive(|num| num % 3 == 0);
+
+assert_eq!(iter.next().unwrap(), &[3]);
+assert_eq!(iter.next().unwrap(), &[10, 40, 33]);
+assert!(iter.next().is_none());
Returns an iterator over subslices separated by elements that match
+pred, starting at the end of the slice and working backwards.
+The matched element is not contained in the subslices.
Returns an iterator over subslices separated by elements that match
+pred, limited to returning at most n items. The matched element is
+not contained in the subslices.
+
The last element returned, if any, will contain the remainder of the
+slice.
Returns an iterator over subslices separated by elements that match
+pred limited to returning at most n items. This starts at the end of
+the slice and works backwards. The matched element is not contained in
+the subslices.
+
The last element returned, if any, will contain the remainder of the
+slice.
let v = [10, 40, 30];
+assert!(v.contains(&30));
+assert!(!v.contains(&50));
+
If you do not have a &T, but some other value that you can compare
+with one (for example, String implements PartialEq<str>), you can
+use iter().any:
+
+
let v = [String::from("hello"), String::from("world")]; // slice of `String`
+assert!(v.iter().any(|e| e == "hello")); // search with `&str`
+assert!(!v.iter().any(|e| e == "hi"));
Binary searches this slice for a given element.
+If the slice is not sorted, the returned result is unspecified and
+meaningless.
+
If the value is found then Result::Ok is returned, containing the
+index of the matching element. If there are multiple matches, then any
+one of the matches could be returned. The index is chosen
+deterministically, but is subject to change in future versions of Rust.
+If the value is not found then Result::Err is returned, containing
+the index where a matching element could be inserted while maintaining
+sorted order.
Looks up a series of four elements. The first is found, with a
+uniquely determined position; the second and third are not
+found; the fourth could match any position in [1, 4].
+
+
let s = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55];
+
+assert_eq!(s.binary_search(&13), Ok(9));
+assert_eq!(s.binary_search(&4), Err(7));
+assert_eq!(s.binary_search(&100), Err(13));
+let r = s.binary_search(&1);
+assert!(match r { Ok(1..=4) => true, _ => false, });
+
If you want to find that whole range of matching items, rather than
+an arbitrary matching one, that can be done using partition_point:
+
+
let s = [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55];
+
+let low = s.partition_point(|x| x < &1);
+assert_eq!(low, 1);
+let high = s.partition_point(|x| x <= &1);
+assert_eq!(high, 5);
+let r = s.binary_search(&1);
+assert!((low..high).contains(&r.unwrap()));
+
+assert!(s[..low].iter().all(|&x| x < 1));
+assert!(s[low..high].iter().all(|&x| x == 1));
+assert!(s[high..].iter().all(|&x| x > 1));
+
+// For something not found, the "range" of equal items is empty
+assert_eq!(s.partition_point(|x| x < &11), 9);
+assert_eq!(s.partition_point(|x| x <= &11), 9);
+assert_eq!(s.binary_search(&11), Err(9));
+
If you want to insert an item to a sorted vector, while maintaining
+sort order, consider using partition_point:
+
+
let mut s = vec![0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55];
+let num = 42;
+let idx = s.partition_point(|&x| x < num);
+// The above is equivalent to `let idx = s.binary_search(&num).unwrap_or_else(|x| x);`
+s.insert(idx, num);
+assert_eq!(s, [0, 1, 1, 1, 1, 2, 3, 5, 8, 13, 21, 34, 42, 55]);
Binary searches this slice with a comparator function.
+
The comparator function should return an order code that indicates
+whether its argument is Less, Equal or Greater the desired
+target.
+If the slice is not sorted or if the comparator function does not
+implement an order consistent with the sort order of the underlying
+slice, the returned result is unspecified and meaningless.
+
If the value is found then Result::Ok is returned, containing the
+index of the matching element. If there are multiple matches, then any
+one of the matches could be returned. The index is chosen
+deterministically, but is subject to change in future versions of Rust.
+If the value is not found then Result::Err is returned, containing
+the index where a matching element could be inserted while maintaining
+sorted order.
Looks up a series of four elements. The first is found, with a
+uniquely determined position; the second and third are not
+found; the fourth could match any position in [1, 4].
Binary searches this slice with a key extraction function.
+
Assumes that the slice is sorted by the key, for instance with
+sort_by_key using the same key extraction function.
+If the slice is not sorted by the key, the returned result is
+unspecified and meaningless.
+
If the value is found then Result::Ok is returned, containing the
+index of the matching element. If there are multiple matches, then any
+one of the matches could be returned. The index is chosen
+deterministically, but is subject to change in future versions of Rust.
+If the value is not found then Result::Err is returned, containing
+the index where a matching element could be inserted while maintaining
+sorted order.
Looks up a series of four elements in a slice of pairs sorted by
+their second elements. The first is found, with a uniquely
+determined position; the second and third are not found; the
+fourth could match any position in [1, 4].
Transmute the slice to a slice of another type, ensuring alignment of the types is
+maintained.
+
This method splits the slice into three distinct slices: prefix, correctly aligned middle
+slice of a new type, and the suffix slice. How exactly the slice is split up is not
+specified; the middle part may be smaller than necessary. However, if this fails to return a
+maximal middle part, that is because code is running in a context where performance does not
+matter, such as a sanitizer attempting to find alignment bugs. Regular code running
+in a default (debug or release) execution will return a maximal middle part.
+
This method has no purpose when either input element T or output element U are
+zero-sized and will return the original slice without splitting anything.
This method is essentially a transmute with respect to the elements in the returned
+middle slice, so all the usual caveats pertaining to transmute::<T, U> also apply here.
🔬This is a nightly-only experimental API. (portable_simd)
Split a slice into a prefix, a middle of aligned SIMD types, and a suffix.
+
This is a safe wrapper around slice::align_to, so has the same weak
+postconditions as that method. You’re only assured that
+self.len() == prefix.len() + middle.len() * LANES + suffix.len().
This will panic if the size of the SIMD type is different from
+LANES times that of the scalar.
+
At the time of writing, the trait restrictions on Simd<T, LANES> keeps
+that from ever happening, as only power-of-two numbers of lanes are
+supported. It’s possible that, in the future, those restrictions might
+be lifted in a way that would make it possible to see panics from this
+method for something like LANES == 3.
#![feature(portable_simd)]
+use core::simd::SimdFloat;
+
+let short = &[1, 2, 3];
+let (prefix, middle, suffix) = short.as_simd::<4>();
+assert_eq!(middle, []); // Not enough elements for anything in the middle
+
+// They might be split in any possible way between prefix and suffix
+let it = prefix.iter().chain(suffix).copied();
+assert_eq!(it.collect::<Vec<_>>(), vec![1, 2, 3]);
+
+fn basic_simd_sum(x: &[f32]) -> f32 {
+ use std::ops::Add;
+ use std::simd::f32x4;
+ let (prefix, middle, suffix) = x.as_simd();
+ let sums = f32x4::from_array([
+ prefix.iter().copied().sum(),
+ 0.0,
+ 0.0,
+ suffix.iter().copied().sum(),
+ ]);
+ let sums = middle.iter().copied().fold(sums, f32x4::add);
+ sums.reduce_sum()
+}
+
+let numbers: Vec<f32> = (1..101).map(|x| x as _).collect();
+assert_eq!(basic_simd_sum(&numbers[1..99]), 4949.0);
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted.
+
That is, for each element a and its following element b, a <= b must hold. If the
+slice yields exactly zero or one element, true is returned.
+
Note that if Self::Item is only PartialOrd, but not Ord, the above definition
+implies that this function returns false if any two consecutive items are not
+comparable.
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given comparator function.
+
Instead of using PartialOrd::partial_cmp, this function uses the given compare
+function to determine the ordering of two elements. Apart from that, it’s equivalent to
+is_sorted; see its documentation for more information.
🔬This is a nightly-only experimental API. (is_sorted)
Checks if the elements of this slice are sorted using the given key extraction function.
+
Instead of comparing the slice’s elements directly, this function compares the keys of the
+elements, as determined by f. Apart from that, it’s equivalent to is_sorted; see its
+documentation for more information.
Returns the index of the partition point according to the given predicate
+(the index of the first element of the second partition).
+
The slice is assumed to be partitioned according to the given predicate.
+This means that all elements for which the predicate returns true are at the start of the slice
+and all elements for which the predicate returns false are at the end.
+For example, [7, 15, 3, 5, 4, 12, 6] is partitioned under the predicate x % 2 != 0
+(all odd numbers are at the start, all even at the end).
+
If this slice is not partitioned, the returned result is unspecified and meaningless,
+as this method performs a kind of binary search.
This panics if the length of the resulting slice would overflow a usize.
+
This is only possible when flattening a slice of arrays of zero-sized
+types, and thus tends to be irrelevant in practice. If
+size_of::<T>() > 0, this will never panic.
#![feature(allocator_api)]
+
+use std::alloc::System;
+
+let s = [10, 40, 30];
+let x = s.to_vec_in(System);
+// Here, `s` and `x` can be modified independently.
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/cl/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/cl/index.html
new file mode 100644
index 000000000..aa6cc4187
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/cl/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::cl - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/cl/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/cl/sidebar-items.js
new file mode 100644
index 000000000..9c1582321
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/cl/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"mod":["bytes"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/index.html
new file mode 100644
index 000000000..8ab88ae56
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::contract_hash - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/sidebar-items.js
new file mode 100644
index 000000000..a047960c6
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["ContractHash"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/struct.ContractHash.html b/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/struct.ContractHash.html
new file mode 100644
index 000000000..d1ef4139d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/contract_hash/struct.ContractHash.html
@@ -0,0 +1,31 @@
+ContractHash in casper_rust_wasm_sdk::types::contract_hash - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
Returns the length of the Vec<u8> which would be returned from a successful call to
+to_bytes() or into_bytes(). The data is not actually serialized, so this call is
+relatively cheap.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/index.html
new file mode 100644
index 000000000..fe781fef4
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::contract_package_hash - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/sidebar-items.js
new file mode 100644
index 000000000..893d983f3
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["ContractPackageHash"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/struct.ContractPackageHash.html b/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/struct.ContractPackageHash.html
new file mode 100644
index 000000000..feea07fc2
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/contract_package_hash/struct.ContractPackageHash.html
@@ -0,0 +1,31 @@
+ContractPackageHash in casper_rust_wasm_sdk::types::contract_package_hash - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
Returns the length of the Vec<u8> which would be returned from a successful call to
+to_bytes() or into_bytes(). The data is not actually serialized, so this call is
+relatively cheap.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy/index.html
new file mode 100644
index 000000000..ac81a33ea
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy/sidebar-items.js
new file mode 100644
index 000000000..151b9b2fa
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["Deploy"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy/struct.Deploy.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy/struct.Deploy.html
new file mode 100644
index 000000000..9c895dd31
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy/struct.Deploy.html
@@ -0,0 +1,79 @@
+Deploy in casper_rust_wasm_sdk::types::deploy - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/index.html
new file mode 100644
index 000000000..21d438801
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_hash - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/sidebar-items.js
new file mode 100644
index 000000000..b4a55619d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["DeployHash"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/struct.DeployHash.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/struct.DeployHash.html
new file mode 100644
index 000000000..4c311cf62
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_hash/struct.DeployHash.html
@@ -0,0 +1,33 @@
+DeployHash in casper_rust_wasm_sdk::types::deploy_hash - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/index.html
new file mode 100644
index 000000000..8901fb817
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_params::args_simple - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/sidebar-items.js
new file mode 100644
index 000000000..f90cbcb64
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["ArgsSimple"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/struct.ArgsSimple.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/struct.ArgsSimple.html
new file mode 100644
index 000000000..52189419e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/args_simple/struct.ArgsSimple.html
@@ -0,0 +1,30 @@
+ArgsSimple in casper_rust_wasm_sdk::types::deploy_params::args_simple - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/fn.deploy_str_params_to_casper_client.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/fn.deploy_str_params_to_casper_client.html
new file mode 100644
index 000000000..dc777e1b7
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/fn.deploy_str_params_to_casper_client.html
@@ -0,0 +1,3 @@
+deploy_str_params_to_casper_client in casper_rust_wasm_sdk::types::deploy_params::deploy_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/index.html
new file mode 100644
index 000000000..6965d8841
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_params::deploy_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/sidebar-items.js
new file mode 100644
index 000000000..1326e24b8
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"fn":["deploy_str_params_to_casper_client"],"struct":["DeployStrParams"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/struct.DeployStrParams.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/struct.DeployStrParams.html
new file mode 100644
index 000000000..87fe2a693
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params/struct.DeployStrParams.html
@@ -0,0 +1,36 @@
+DeployStrParams in casper_rust_wasm_sdk::types::deploy_params::deploy_str_params - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/fn.dictionary_item_str_params_to_casper_client.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/fn.dictionary_item_str_params_to_casper_client.html
new file mode 100644
index 000000000..7f454456d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/fn.dictionary_item_str_params_to_casper_client.html
@@ -0,0 +1,3 @@
+dictionary_item_str_params_to_casper_client in casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/index.html
new file mode 100644
index 000000000..3bfc3dfc3
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/sidebar-items.js
new file mode 100644
index 000000000..834d521f4
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"fn":["dictionary_item_str_params_to_casper_client"],"struct":["AccountNamedKey","ContractNamedKey","DictionaryItemStrParams","DictionaryVariant","URefVariant"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.AccountNamedKey.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.AccountNamedKey.html
new file mode 100644
index 000000000..983c96337
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.AccountNamedKey.html
@@ -0,0 +1,22 @@
+AccountNamedKey in casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.ContractNamedKey.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.ContractNamedKey.html
new file mode 100644
index 000000000..c0f56ab4d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.ContractNamedKey.html
@@ -0,0 +1,22 @@
+ContractNamedKey in casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.DictionaryItemStrParams.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.DictionaryItemStrParams.html
new file mode 100644
index 000000000..57fb459cb
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.DictionaryItemStrParams.html
@@ -0,0 +1,43 @@
+DictionaryItemStrParams in casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.DictionaryVariant.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.DictionaryVariant.html
new file mode 100644
index 000000000..cfdb219fc
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.DictionaryVariant.html
@@ -0,0 +1,22 @@
+DictionaryVariant in casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.URefVariant.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.URefVariant.html
new file mode 100644
index 000000000..df481c512
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params/struct.URefVariant.html
@@ -0,0 +1,22 @@
+URefVariant in casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/index.html
new file mode 100644
index 000000000..5f17048ff
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/fn.payment_str_params_to_casper_client.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/fn.payment_str_params_to_casper_client.html
new file mode 100644
index 000000000..1d86aa3aa
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/fn.payment_str_params_to_casper_client.html
@@ -0,0 +1,3 @@
+payment_str_params_to_casper_client in casper_rust_wasm_sdk::types::deploy_params::payment_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/index.html
new file mode 100644
index 000000000..588570d37
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_params::payment_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/sidebar-items.js
new file mode 100644
index 000000000..5eeb9f32e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"fn":["payment_str_params_to_casper_client"],"struct":["PaymentStrParams"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/struct.PaymentStrParams.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/struct.PaymentStrParams.html
new file mode 100644
index 000000000..952d9148b
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/payment_str_params/struct.PaymentStrParams.html
@@ -0,0 +1,42 @@
+PaymentStrParams in casper_rust_wasm_sdk::types::deploy_params::payment_str_params - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/fn.session_str_params_to_casper_client.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/fn.session_str_params_to_casper_client.html
new file mode 100644
index 000000000..9d21c3c76
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/fn.session_str_params_to_casper_client.html
@@ -0,0 +1,3 @@
+session_str_params_to_casper_client in casper_rust_wasm_sdk::types::deploy_params::session_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/index.html
new file mode 100644
index 000000000..aeabda0a5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::deploy_params::session_str_params - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/sidebar-items.js
new file mode 100644
index 000000000..674f309a9
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"fn":["session_str_params_to_casper_client"],"struct":["SessionStrParams"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/struct.SessionStrParams.html b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/struct.SessionStrParams.html
new file mode 100644
index 000000000..d4168f466
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/session_str_params/struct.SessionStrParams.html
@@ -0,0 +1,43 @@
+SessionStrParams in casper_rust_wasm_sdk::types::deploy_params::session_str_params - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/sidebar-items.js
new file mode 100644
index 000000000..20294101a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/deploy_params/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"mod":["args_simple","deploy_str_params","dictionary_item_str_params","payment_str_params","session_str_params"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/index.html
new file mode 100644
index 000000000..2840146e6
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::dictionary_item_identifier - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/sidebar-items.js
new file mode 100644
index 000000000..d54b63555
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["DictionaryItemIdentifier"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/struct.DictionaryItemIdentifier.html b/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/struct.DictionaryItemIdentifier.html
new file mode 100644
index 000000000..0d7705699
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/dictionary_item_identifier/struct.DictionaryItemIdentifier.html
@@ -0,0 +1,46 @@
+DictionaryItemIdentifier in casper_rust_wasm_sdk::types::dictionary_item_identifier - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/digest/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/digest/index.html
new file mode 100644
index 000000000..28e7b9608
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/digest/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::digest - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/digest/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/digest/sidebar-items.js
new file mode 100644
index 000000000..9e67f4c7c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/digest/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["Digest"],"trait":["ToDigest"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/digest/struct.Digest.html b/docs/api-rust/casper_rust_wasm_sdk/types/digest/struct.Digest.html
new file mode 100644
index 000000000..aff48c4f0
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/digest/struct.Digest.html
@@ -0,0 +1,41 @@
+Digest in casper_rust_wasm_sdk::types::digest - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
Returns the length of the Vec<u8> which would be returned from a successful call to
+to_bytes() or into_bytes(). The data is not actually serialized, so this call is
+relatively cheap.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/digest/trait.ToDigest.html b/docs/api-rust/casper_rust_wasm_sdk/types/digest/trait.ToDigest.html
new file mode 100644
index 000000000..bc5c85b0a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/digest/trait.ToDigest.html
@@ -0,0 +1,5 @@
+ToDigest in casper_rust_wasm_sdk::types::digest - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/era_id/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/era_id/index.html
new file mode 100644
index 000000000..537104b00
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/era_id/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::era_id - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/era_id/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/era_id/sidebar-items.js
new file mode 100644
index 000000000..3069160a5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/era_id/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["EraId"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/era_id/struct.EraId.html b/docs/api-rust/casper_rust_wasm_sdk/types/era_id/struct.EraId.html
new file mode 100644
index 000000000..339da266f
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/era_id/struct.EraId.html
@@ -0,0 +1,45 @@
+EraId in casper_rust_wasm_sdk::types::era_id - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/index.html
new file mode 100644
index 000000000..380ff9858
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::global_state_identifier - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/sidebar-items.js
new file mode 100644
index 000000000..d5571eb63
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["GlobalStateIdentifier"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/struct.GlobalStateIdentifier.html b/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/struct.GlobalStateIdentifier.html
new file mode 100644
index 000000000..04a65bc89
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/global_state_identifier/struct.GlobalStateIdentifier.html
@@ -0,0 +1,35 @@
+GlobalStateIdentifier in casper_rust_wasm_sdk::types::global_state_identifier - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/index.html
new file mode 100644
index 000000000..c75649f12
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/key/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/key/index.html
new file mode 100644
index 000000000..2abb49046
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/key/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::key - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/key/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/key/sidebar-items.js
new file mode 100644
index 000000000..2d34bfa38
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/key/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["Key"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/key/struct.Key.html b/docs/api-rust/casper_rust_wasm_sdk/types/key/struct.Key.html
new file mode 100644
index 000000000..fc53bc44f
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/key/struct.Key.html
@@ -0,0 +1,33 @@
+Key in casper_rust_wasm_sdk::types::key - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/path/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/path/index.html
new file mode 100644
index 000000000..2b9be4e6f
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/path/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::path - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/path/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/path/sidebar-items.js
new file mode 100644
index 000000000..63fce977a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/path/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["Path"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/path/struct.Path.html b/docs/api-rust/casper_rust_wasm_sdk/types/path/struct.Path.html
new file mode 100644
index 000000000..b203c90a3
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/path/struct.Path.html
@@ -0,0 +1,34 @@
+Path in casper_rust_wasm_sdk::types::path - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/index.html
new file mode 100644
index 000000000..5042ef3da
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::peer_entry - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/sidebar-items.js
new file mode 100644
index 000000000..901db2cf5
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["PeerEntry"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/struct.PeerEntry.html b/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/struct.PeerEntry.html
new file mode 100644
index 000000000..cdf2308cc
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/peer_entry/struct.PeerEntry.html
@@ -0,0 +1,33 @@
+PeerEntry in casper_rust_wasm_sdk::types::peer_entry - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/public_key/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/public_key/index.html
new file mode 100644
index 000000000..f73e84d38
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/public_key/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::public_key - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/public_key/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/public_key/sidebar-items.js
new file mode 100644
index 000000000..32f9945db
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/public_key/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["PublicKey"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/public_key/struct.PublicKey.html b/docs/api-rust/casper_rust_wasm_sdk/types/public_key/struct.PublicKey.html
new file mode 100644
index 000000000..dd0095d71
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/public_key/struct.PublicKey.html
@@ -0,0 +1,52 @@
+PublicKey in casper_rust_wasm_sdk::types::public_key - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
Returns the length of the Vec<u8> which would be returned from a successful call to
+to_bytes() or into_bytes(). The data is not actually serialized, so this call is
+relatively cheap.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/index.html
new file mode 100644
index 000000000..384bd5c7e
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::purse_identifier - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/sidebar-items.js
new file mode 100644
index 000000000..cd0b4c86d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["PurseIdentifier"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/struct.PurseIdentifier.html b/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/struct.PurseIdentifier.html
new file mode 100644
index 000000000..c1393b73c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/purse_identifier/struct.PurseIdentifier.html
@@ -0,0 +1,33 @@
+PurseIdentifier in casper_rust_wasm_sdk::types::purse_identifier - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/enum.SdkError.html b/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/enum.SdkError.html
new file mode 100644
index 000000000..cb47bc7d3
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/enum.SdkError.html
@@ -0,0 +1,70 @@
+SdkError in casper_rust_wasm_sdk::types::sdk_error - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/index.html
new file mode 100644
index 000000000..d36e5b5da
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::sdk_error - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/sidebar-items.js
new file mode 100644
index 000000000..aaa3bb1fb
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/sdk_error/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"enum":["SdkError"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/sidebar-items.js
new file mode 100644
index 000000000..15055b205
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"mod":["access_rights","account_hash","account_identifier","addr","block_hash","block_identifier","cl","contract_hash","contract_package_hash","deploy","deploy_hash","deploy_params","dictionary_item_identifier","digest","era_id","global_state_identifier","key","path","peer_entry","public_key","purse_identifier","sdk_error","uref","verbosity"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/uref/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/uref/index.html
new file mode 100644
index 000000000..83da45b2c
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/uref/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::uref - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/uref/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/uref/sidebar-items.js
new file mode 100644
index 000000000..99929528d
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/uref/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"struct":["URef"]};
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/uref/struct.URef.html b/docs/api-rust/casper_rust_wasm_sdk/types/uref/struct.URef.html
new file mode 100644
index 000000000..377b671ec
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/uref/struct.URef.html
@@ -0,0 +1,33 @@
+URef in casper_rust_wasm_sdk::types::uref - Rust
The type that holds the reference to Self for the duration of the
+invocation of the function that has an &Self parameter. This is
+required to ensure that the lifetimes don’t persist beyond one function
+call, and so that they remain anonymous.
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/enum.Verbosity.html b/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/enum.Verbosity.html
new file mode 100644
index 000000000..b010946a4
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/enum.Verbosity.html
@@ -0,0 +1,36 @@
+Verbosity in casper_rust_wasm_sdk::types::verbosity - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/index.html b/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/index.html
new file mode 100644
index 000000000..407346661
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/index.html
@@ -0,0 +1 @@
+casper_rust_wasm_sdk::types::verbosity - Rust
\ No newline at end of file
diff --git a/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/sidebar-items.js b/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/sidebar-items.js
new file mode 100644
index 000000000..c2ca8f27a
--- /dev/null
+++ b/docs/api-rust/casper_rust_wasm_sdk/types/verbosity/sidebar-items.js
@@ -0,0 +1 @@
+window.SIDEBAR_ITEMS = {"enum":["Verbosity"]};
\ No newline at end of file
diff --git a/docs/api-rust/crates.js b/docs/api-rust/crates.js
new file mode 100644
index 000000000..94c4ece9e
--- /dev/null
+++ b/docs/api-rust/crates.js
@@ -0,0 +1 @@
+window.ALL_CRATES = ["casper_rust_wasm_sdk"];
\ No newline at end of file
diff --git a/docs/api-rust/help.html b/docs/api-rust/help.html
new file mode 100644
index 000000000..b2cc82363
--- /dev/null
+++ b/docs/api-rust/help.html
@@ -0,0 +1 @@
+Rustdoc help
\ No newline at end of file
diff --git a/docs/api-rust/implementors/alloc/string/trait.ToString.js b/docs/api-rust/implementors/alloc/string/trait.ToString.js
new file mode 100644
index 000000000..4fe580e88
--- /dev/null
+++ b/docs/api-rust/implementors/alloc/string/trait.ToString.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl ToString for Digest"],["impl ToString for AccountIdentifier"],["impl ToString for DeployHash"],["impl ToString for PurseIdentifier"],["impl ToString for BlockHash"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/casper_rust_wasm_sdk/types/digest/trait.ToDigest.js b/docs/api-rust/implementors/casper_rust_wasm_sdk/types/digest/trait.ToDigest.js
new file mode 100644
index 000000000..2c7a12e11
--- /dev/null
+++ b/docs/api-rust/implementors/casper_rust_wasm_sdk/types/digest/trait.ToDigest.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/casper_types/bytesrepr/trait.FromBytes.js b/docs/api-rust/implementors/casper_types/bytesrepr/trait.FromBytes.js
new file mode 100644
index 000000000..13a752021
--- /dev/null
+++ b/docs/api-rust/implementors/casper_types/bytesrepr/trait.FromBytes.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl FromBytes for ContractHash"],["impl FromBytes for Digest"],["impl FromBytes for PublicKey"],["impl FromBytes for AccountHash"],["impl FromBytes for ContractPackageHash"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/casper_types/bytesrepr/trait.ToBytes.js b/docs/api-rust/implementors/casper_types/bytesrepr/trait.ToBytes.js
new file mode 100644
index 000000000..8e8ef787b
--- /dev/null
+++ b/docs/api-rust/implementors/casper_types/bytesrepr/trait.ToBytes.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl ToBytes for PublicKey"],["impl ToBytes for Digest"],["impl ToBytes for ContractPackageHash"],["impl ToBytes for AccountHash"],["impl ToBytes for ContractHash"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/casper_types/cl_type/trait.CLTyped.js b/docs/api-rust/implementors/casper_types/cl_type/trait.CLTyped.js
new file mode 100644
index 000000000..3f1dc978e
--- /dev/null
+++ b/docs/api-rust/implementors/casper_types/cl_type/trait.CLTyped.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl CLTyped for Bytes"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/clone/trait.Clone.js b/docs/api-rust/implementors/core/clone/trait.Clone.js
new file mode 100644
index 000000000..3f2756758
--- /dev/null
+++ b/docs/api-rust/implementors/core/clone/trait.Clone.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Clone for SessionStrParams"],["impl Clone for QueryGlobalStateOptions"],["impl Clone for AccountHash"],["impl Clone for ContractNamedKey"],["impl Clone for Bytes"],["impl Clone for GlobalStateIdentifier"],["impl Clone for QueryGlobalStateResult"],["impl Clone for DictionaryVariant"],["impl Clone for Verbosity"],["impl Clone for DeployHash"],["impl Clone for DictionaryItemIdentifier"],["impl Clone for AccountIdentifier"],["impl Clone for PublicKey"],["impl Clone for URefVariant"],["impl Clone for DictionaryItemStrParams"],["impl Clone for BlockIdentifier"],["impl Clone for PurseIdentifier"],["impl Clone for PathIdentifierInput"],["impl Clone for GetBalanceInput"],["impl Clone for URef"],["impl Clone for DeployStrParams"],["impl Clone for PaymentStrParams"],["impl Clone for ArgsSimple"],["impl Clone for EraId"],["impl Clone for BlockIdentifierInput"],["impl Clone for Digest"],["impl Clone for PeerEntry"],["impl Clone for Deploy"],["impl Clone for AccountNamedKey"],["impl Clone for Key"],["impl Clone for Path"],["impl Clone for BlockHash"],["impl Clone for KeyIdentifierInput"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/cmp/trait.Eq.js b/docs/api-rust/implementors/core/cmp/trait.Eq.js
new file mode 100644
index 000000000..a242ad715
--- /dev/null
+++ b/docs/api-rust/implementors/core/cmp/trait.Eq.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Eq for Bytes"],["impl Eq for EraId"],["impl Eq for PublicKey"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/cmp/trait.Ord.js b/docs/api-rust/implementors/core/cmp/trait.Ord.js
new file mode 100644
index 000000000..327a35197
--- /dev/null
+++ b/docs/api-rust/implementors/core/cmp/trait.Ord.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Ord for EraId"],["impl Ord for PublicKey"],["impl Ord for Bytes"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/cmp/trait.PartialEq.js b/docs/api-rust/implementors/core/cmp/trait.PartialEq.js
new file mode 100644
index 000000000..75e5bfad0
--- /dev/null
+++ b/docs/api-rust/implementors/core/cmp/trait.PartialEq.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl PartialEq<PublicKey> for PublicKey"],["impl PartialEq<Verbosity> for Verbosity"],["impl PartialEq<Bytes> for Bytes"],["impl PartialEq<EraId> for EraId"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/cmp/trait.PartialOrd.js b/docs/api-rust/implementors/core/cmp/trait.PartialOrd.js
new file mode 100644
index 000000000..7d3266401
--- /dev/null
+++ b/docs/api-rust/implementors/core/cmp/trait.PartialOrd.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl PartialOrd<PublicKey> for PublicKey"],["impl PartialOrd<EraId> for EraId"],["impl PartialOrd<Bytes> for Bytes"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/convert/trait.AsRef.js b/docs/api-rust/implementors/core/convert/trait.AsRef.js
new file mode 100644
index 000000000..4ec14195a
--- /dev/null
+++ b/docs/api-rust/implementors/core/convert/trait.AsRef.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl AsRef<[u8]> for Digest"],["impl AsRef<[u8]> for Bytes"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/convert/trait.From.js b/docs/api-rust/implementors/core/convert/trait.From.js
new file mode 100644
index 000000000..aeb0d621f
--- /dev/null
+++ b/docs/api-rust/implementors/core/convert/trait.From.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl From<DeployHash> for DeployHash"],["impl From<Path> for Vec<String>"],["impl From<QueryGlobalStateResult> for JsValue"],["impl From<Digest> for Digest"],["impl From<AccountHash> for PurseIdentifier"],["impl From<ContractHash> for ContractHash"],["impl From<PublicKey> for PublicKey"],["impl From<AccountHash> for JsValue"],["impl From<[u8; 32]> for DictionaryAddr"],["impl From<Error> for SdkError"],["impl From<AccountIdentifier> for AccountHash"],["impl From<DictionaryItemIdentifier> for JsValue"],["impl From<EraId> for EraId"],["impl From<PurseIdentifier> for PublicKey"],["impl From<BlockIdentifier> for JsValue"],["impl From<PublicKey> for JsValue"],["impl From<PeerEntry> for PeerEntry"],["impl From<Vec<u8, Global>> for TransferAddr"],["impl From<URef> for URef"],["impl From<AccessRights> for AccessRights"],["impl From<Digest> for DeployHash"],["impl From<AccountHash> for AccountHash"],["impl From<AccountHash> for AccountIdentifier"],["impl From<BlockIdentifier> for BlockIdentifier"],["impl From<HashAddr> for JsValue"],["impl From<AccountHash> for AccountHash"],["impl From<PeerEntry> for JsValue"],["impl From<Digest> for BlockHash"],["impl From<DeployHash> for JsValue"],["impl From<PublicKey> for PublicKey"],["impl From<PublicKey> for PurseIdentifier"],["impl From<String> for Verbosity"],["impl From<DictionaryItemIdentifier> for DictionaryItemIdentifier"],["impl From<Bytes> for JsValue"],["impl From<Verbosity> for Verbosity"],["impl From<EraId> for EraId"],["impl From<BlockHash> for BlockHash"],["impl From<PurseIdentifier> for JsValue"],["impl From<DeployHash> for DeployHash"],["impl From<HashAddr> for HashAddr"],["impl From<DeployStrParams> for JsValue"],["impl From<URefAddr> for JsValue"],["impl From<SDK> for JsValue"],["impl From<Deploy> for JsValue"],["impl From<BlockHash> for BlockHash"],["impl From<BlockIdentifier> for BlockIdentifier"],["impl From<Vec<String, Global>> for ArgsSimple"],["impl From<Vec<u8, Global>> for Bytes"],["impl From<&[u8]> for Bytes"],["impl From<Path> for JsValue"],["impl From<URef> for JsValue"],["impl From<AccountIdentifier> for JsValue"],["impl From<String> for Path"],["impl From<ContractHash> for ContractHash"],["impl From<BlockHash> for JsValue"],["impl From<TransferAddr> for JsValue"],["impl From<DictionaryItemStrParams> for JsValue"],["impl From<&str> for Digest"],["impl From<[u8; 32]> for HashAddr"],["impl From<Key> for Key"],["impl From<Deploy> for Deploy"],["impl From<ArgsSimple> for Vec<String>"],["impl From<u64> for Verbosity"],["impl From<EraId> for JsValue"],["impl From<Bytes> for Vec<u8>"],["impl From<CliError> for SdkError"],["impl From<CLValueError> for SdkError"],["impl From<QueryGlobalStateResult> for QueryGlobalStateResult"],["impl From<Verbosity> for Verbosity"],["impl From<PublicKey> for AccountIdentifier"],["impl From<[u8; 32]> for Digest"],["impl From<Deploy> for Deploy"],["impl From<ContractPackageHash> for ContractPackageHash"],["impl From<Bytes> for Bytes"],["impl From<DictionaryAddr> for JsValue"],["impl From<ContractPackageHash> for JsValue"],["impl From<Vec<String, Global>> for Path"],["impl From<Verbosity> for u64"],["impl From<AccountIdentifier> for AccountIdentifier"],["impl From<Error> for SdkError"],["impl From<URefAddr> for URefAddr"],["impl From<PeerEntry> for PeerEntry"],["impl From<AccountIdentifier> for PublicKey"],["impl From<URef> for PurseIdentifier"],["impl From<SessionStrParams> for JsValue"],["impl From<QueryGlobalStateOptions> for JsValue"],["impl From<Error> for SdkError"],["impl From<DeployHash> for DeployHash"],["impl From<[u8; 32]> for URefAddr"],["impl From<DeployHash> for DeployHash"],["impl From<Key> for Key"],["impl From<URef> for URef"],["impl From<GlobalStateIdentifier> for GlobalStateIdentifier"],["impl From<GlobalStateIdentifier> for JsValue"],["impl From<PurseIdentifier> for PurseIdentifier"],["impl From<Bytes> for Bytes"],["impl From<PurseIdentifier> for URef"],["impl From<PurseIdentifier> for PurseIdentifier"],["impl From<ContractPackageHash> for ContractPackageHash"],["impl From<DictionaryItemIdentifier> for DictionaryItemIdentifier"],["impl From<Digest> for JsValue"],["impl From<DictionaryAddr> for DictionaryAddr"],["impl From<PaymentStrParams> for JsValue"],["impl From<QueryGlobalStateResult> for QueryGlobalStateResult"],["impl From<GlobalStateIdentifier> for GlobalStateIdentifier"],["impl From<&str> for Verbosity"],["impl From<PurseIdentifier> for AccountHash"],["impl From<AccessRights> for JsValue"],["impl From<Digest> for Digest"],["impl From<AccountIdentifier> for AccountIdentifier"],["impl From<ArgsSimple> for JsValue"],["impl From<Key> for JsValue"],["impl From<AccessRights> for AccessRights"],["impl From<ContractHash> for JsValue"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/default/trait.Default.js b/docs/api-rust/implementors/core/default/trait.Default.js
new file mode 100644
index 000000000..f6a4100d9
--- /dev/null
+++ b/docs/api-rust/implementors/core/default/trait.Default.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Default for SDK"],["impl Default for AccessRights"],["impl Default for Path"],["impl Default for Bytes"],["impl Default for DeployStrParams"],["impl Default for DictionaryItemStrParams"],["impl Default for EraId"],["impl Default for PaymentStrParams"],["impl Default for SessionStrParams"],["impl Default for ArgsSimple"],["impl Default for QueryGlobalStateOptions"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/error/trait.Error.js b/docs/api-rust/implementors/core/error/trait.Error.js
new file mode 100644
index 000000000..39b141da2
--- /dev/null
+++ b/docs/api-rust/implementors/core/error/trait.Error.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Error for SdkError"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/fmt/trait.Debug.js b/docs/api-rust/implementors/core/fmt/trait.Debug.js
new file mode 100644
index 000000000..0c82729dd
--- /dev/null
+++ b/docs/api-rust/implementors/core/fmt/trait.Debug.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Debug for AccountHash"],["impl Debug for GetBalanceInput"],["impl Debug for DeployStrParams"],["impl Debug for PaymentStrParams"],["impl Debug for Deploy"],["impl Debug for PurseIdentifier"],["impl Debug for AccountNamedKey"],["impl Debug for GlobalStateIdentifier"],["impl Debug for PublicKey"],["impl Debug for DictionaryItemIdentifier"],["impl Debug for DeployHash"],["impl Debug for DictionaryItemStrParams"],["impl Debug for ContractHash"],["impl Debug for BlockIdentifierInput"],["impl Debug for DictionaryVariant"],["impl Debug for SessionStrParams"],["impl Debug for ContractNamedKey"],["impl Debug for ArgsSimple"],["impl Debug for KeyIdentifierInput"],["impl Debug for QueryGlobalStateResult"],["impl Debug for URef"],["impl Debug for AccessRights"],["impl Debug for Path"],["impl Debug for PathIdentifierInput"],["impl Debug for ContractPackageHash"],["impl Debug for EraId"],["impl Debug for SdkError"],["impl Debug for AccountIdentifier"],["impl Debug for Verbosity"],["impl Debug for QueryGlobalStateParams"],["impl Debug for Bytes"],["impl Debug for URefVariant"],["impl Debug for Digest"],["impl Debug for Key"],["impl Debug for QueryGlobalStateOptions"],["impl Debug for BlockIdentifier"],["impl Debug for PeerEntry"],["impl Debug for BlockHash"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/fmt/trait.Display.js b/docs/api-rust/implementors/core/fmt/trait.Display.js
new file mode 100644
index 000000000..5d79db31d
--- /dev/null
+++ b/docs/api-rust/implementors/core/fmt/trait.Display.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Display for SdkError"],["impl Display for Path"],["impl Display for PublicKey"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/hash/trait.Hash.js b/docs/api-rust/implementors/core/hash/trait.Hash.js
new file mode 100644
index 000000000..0ac3711dc
--- /dev/null
+++ b/docs/api-rust/implementors/core/hash/trait.Hash.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Hash for Bytes"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/iter/traits/collect/trait.FromIterator.js b/docs/api-rust/implementors/core/iter/traits/collect/trait.FromIterator.js
new file mode 100644
index 000000000..1c8e2fbd4
--- /dev/null
+++ b/docs/api-rust/implementors/core/iter/traits/collect/trait.FromIterator.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl FromIterator<JsValue> for ArgsSimple"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.Copy.js b/docs/api-rust/implementors/core/marker/trait.Copy.js
new file mode 100644
index 000000000..3327a7fb2
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.Copy.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Copy for EraId"],["impl Copy for Verbosity"],["impl Copy for BlockIdentifier"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.Freeze.js b/docs/api-rust/implementors/core/marker/trait.Freeze.js
new file mode 100644
index 000000000..329aa6b1d
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.Freeze.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Freeze for AccessRights",1,["casper_rust_wasm_sdk::types::access_rights::AccessRights"]],["impl Freeze for AccountHash",1,["casper_rust_wasm_sdk::types::account_hash::AccountHash"]],["impl Freeze for AccountIdentifier",1,["casper_rust_wasm_sdk::types::account_identifier::AccountIdentifier"]],["impl Freeze for DictionaryAddr",1,["casper_rust_wasm_sdk::types::addr::dictionary_addr::DictionaryAddr"]],["impl Freeze for HashAddr",1,["casper_rust_wasm_sdk::types::addr::hash_addr::HashAddr"]],["impl Freeze for TransferAddr",1,["casper_rust_wasm_sdk::types::addr::transfer_addr::TransferAddr"]],["impl Freeze for URefAddr",1,["casper_rust_wasm_sdk::types::addr::uref_addr::URefAddr"]],["impl Freeze for BlockHash",1,["casper_rust_wasm_sdk::types::block_hash::BlockHash"]],["impl Freeze for BlockIdentifier",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifier"]],["impl Freeze for BlockIdentifierInput",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifierInput"]],["impl Freeze for Bytes",1,["casper_rust_wasm_sdk::types::cl::bytes::Bytes"]],["impl Freeze for ContractHash",1,["casper_rust_wasm_sdk::types::contract_hash::ContractHash"]],["impl Freeze for ContractPackageHash",1,["casper_rust_wasm_sdk::types::contract_package_hash::ContractPackageHash"]],["impl Freeze for Deploy",1,["casper_rust_wasm_sdk::types::deploy::Deploy"]],["impl Freeze for DeployHash",1,["casper_rust_wasm_sdk::types::deploy_hash::DeployHash"]],["impl Freeze for ArgsSimple",1,["casper_rust_wasm_sdk::types::deploy_params::args_simple::ArgsSimple"]],["impl !Freeze for DeployStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::deploy_str_params::DeployStrParams"]],["impl !Freeze for AccountNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::AccountNamedKey"]],["impl !Freeze for ContractNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::ContractNamedKey"]],["impl !Freeze for URefVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::URefVariant"]],["impl !Freeze for DictionaryVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryVariant"]],["impl !Freeze for DictionaryItemStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryItemStrParams"]],["impl !Freeze for PaymentStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::payment_str_params::PaymentStrParams"]],["impl !Freeze for SessionStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::session_str_params::SessionStrParams"]],["impl Freeze for DictionaryItemIdentifier",1,["casper_rust_wasm_sdk::types::dictionary_item_identifier::DictionaryItemIdentifier"]],["impl Freeze for Digest",1,["casper_rust_wasm_sdk::types::digest::Digest"]],["impl Freeze for EraId",1,["casper_rust_wasm_sdk::types::era_id::EraId"]],["impl Freeze for GlobalStateIdentifier",1,["casper_rust_wasm_sdk::types::global_state_identifier::GlobalStateIdentifier"]],["impl Freeze for Key",1,["casper_rust_wasm_sdk::types::key::Key"]],["impl Freeze for Path",1,["casper_rust_wasm_sdk::types::path::Path"]],["impl Freeze for PeerEntry",1,["casper_rust_wasm_sdk::types::peer_entry::PeerEntry"]],["impl Freeze for PublicKey",1,["casper_rust_wasm_sdk::types::public_key::PublicKey"]],["impl Freeze for PurseIdentifier",1,["casper_rust_wasm_sdk::types::purse_identifier::PurseIdentifier"]],["impl Freeze for SdkError",1,["casper_rust_wasm_sdk::types::sdk_error::SdkError"]],["impl Freeze for URef",1,["casper_rust_wasm_sdk::types::uref::URef"]],["impl Freeze for Verbosity",1,["casper_rust_wasm_sdk::types::verbosity::Verbosity"]],["impl Freeze for GetBalanceInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_balance::GetBalanceInput"]],["impl !Freeze for DictionaryItemInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_dictionary_item::DictionaryItemInput"]],["impl Freeze for QueryGlobalStateResult",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateResult"]],["impl Freeze for QueryGlobalStateOptions",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateOptions"]],["impl Freeze for KeyIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::KeyIdentifierInput"]],["impl Freeze for PathIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::PathIdentifierInput"]],["impl Freeze for QueryGlobalStateParams",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateParams"]],["impl Freeze for SDK",1,["casper_rust_wasm_sdk::sdk::SDK"]]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.Send.js b/docs/api-rust/implementors/core/marker/trait.Send.js
new file mode 100644
index 000000000..f4837f1cd
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.Send.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Send for AccessRights",1,["casper_rust_wasm_sdk::types::access_rights::AccessRights"]],["impl Send for AccountHash",1,["casper_rust_wasm_sdk::types::account_hash::AccountHash"]],["impl Send for AccountIdentifier",1,["casper_rust_wasm_sdk::types::account_identifier::AccountIdentifier"]],["impl Send for DictionaryAddr",1,["casper_rust_wasm_sdk::types::addr::dictionary_addr::DictionaryAddr"]],["impl Send for HashAddr",1,["casper_rust_wasm_sdk::types::addr::hash_addr::HashAddr"]],["impl Send for TransferAddr",1,["casper_rust_wasm_sdk::types::addr::transfer_addr::TransferAddr"]],["impl Send for URefAddr",1,["casper_rust_wasm_sdk::types::addr::uref_addr::URefAddr"]],["impl Send for BlockHash",1,["casper_rust_wasm_sdk::types::block_hash::BlockHash"]],["impl Send for BlockIdentifier",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifier"]],["impl Send for BlockIdentifierInput",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifierInput"]],["impl Send for Bytes",1,["casper_rust_wasm_sdk::types::cl::bytes::Bytes"]],["impl Send for ContractHash",1,["casper_rust_wasm_sdk::types::contract_hash::ContractHash"]],["impl Send for ContractPackageHash",1,["casper_rust_wasm_sdk::types::contract_package_hash::ContractPackageHash"]],["impl Send for Deploy",1,["casper_rust_wasm_sdk::types::deploy::Deploy"]],["impl Send for DeployHash",1,["casper_rust_wasm_sdk::types::deploy_hash::DeployHash"]],["impl Send for ArgsSimple",1,["casper_rust_wasm_sdk::types::deploy_params::args_simple::ArgsSimple"]],["impl Send for DeployStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::deploy_str_params::DeployStrParams"]],["impl Send for AccountNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::AccountNamedKey"]],["impl Send for ContractNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::ContractNamedKey"]],["impl Send for URefVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::URefVariant"]],["impl Send for DictionaryVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryVariant"]],["impl Send for DictionaryItemStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryItemStrParams"]],["impl Send for PaymentStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::payment_str_params::PaymentStrParams"]],["impl Send for SessionStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::session_str_params::SessionStrParams"]],["impl Send for DictionaryItemIdentifier",1,["casper_rust_wasm_sdk::types::dictionary_item_identifier::DictionaryItemIdentifier"]],["impl Send for Digest",1,["casper_rust_wasm_sdk::types::digest::Digest"]],["impl Send for EraId",1,["casper_rust_wasm_sdk::types::era_id::EraId"]],["impl Send for GlobalStateIdentifier",1,["casper_rust_wasm_sdk::types::global_state_identifier::GlobalStateIdentifier"]],["impl Send for Key",1,["casper_rust_wasm_sdk::types::key::Key"]],["impl Send for Path",1,["casper_rust_wasm_sdk::types::path::Path"]],["impl Send for PeerEntry",1,["casper_rust_wasm_sdk::types::peer_entry::PeerEntry"]],["impl Send for PublicKey",1,["casper_rust_wasm_sdk::types::public_key::PublicKey"]],["impl Send for PurseIdentifier",1,["casper_rust_wasm_sdk::types::purse_identifier::PurseIdentifier"]],["impl Send for SdkError",1,["casper_rust_wasm_sdk::types::sdk_error::SdkError"]],["impl Send for URef",1,["casper_rust_wasm_sdk::types::uref::URef"]],["impl Send for Verbosity",1,["casper_rust_wasm_sdk::types::verbosity::Verbosity"]],["impl Send for GetBalanceInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_balance::GetBalanceInput"]],["impl Send for DictionaryItemInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_dictionary_item::DictionaryItemInput"]],["impl Send for QueryGlobalStateResult",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateResult"]],["impl Send for QueryGlobalStateOptions",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateOptions"]],["impl Send for KeyIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::KeyIdentifierInput"]],["impl Send for PathIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::PathIdentifierInput"]],["impl Send for QueryGlobalStateParams",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateParams"]],["impl Send for SDK",1,["casper_rust_wasm_sdk::sdk::SDK"]]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.StructuralEq.js b/docs/api-rust/implementors/core/marker/trait.StructuralEq.js
new file mode 100644
index 000000000..07299326b
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.StructuralEq.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl StructuralEq for Bytes"],["impl StructuralEq for PublicKey"],["impl StructuralEq for EraId"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.StructuralPartialEq.js b/docs/api-rust/implementors/core/marker/trait.StructuralPartialEq.js
new file mode 100644
index 000000000..24ab1eb7b
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.StructuralPartialEq.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl StructuralPartialEq for Bytes"],["impl StructuralPartialEq for Verbosity"],["impl StructuralPartialEq for EraId"],["impl StructuralPartialEq for PublicKey"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.Sync.js b/docs/api-rust/implementors/core/marker/trait.Sync.js
new file mode 100644
index 000000000..902e97441
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.Sync.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Sync for AccessRights",1,["casper_rust_wasm_sdk::types::access_rights::AccessRights"]],["impl Sync for AccountHash",1,["casper_rust_wasm_sdk::types::account_hash::AccountHash"]],["impl Sync for AccountIdentifier",1,["casper_rust_wasm_sdk::types::account_identifier::AccountIdentifier"]],["impl Sync for DictionaryAddr",1,["casper_rust_wasm_sdk::types::addr::dictionary_addr::DictionaryAddr"]],["impl Sync for HashAddr",1,["casper_rust_wasm_sdk::types::addr::hash_addr::HashAddr"]],["impl Sync for TransferAddr",1,["casper_rust_wasm_sdk::types::addr::transfer_addr::TransferAddr"]],["impl Sync for URefAddr",1,["casper_rust_wasm_sdk::types::addr::uref_addr::URefAddr"]],["impl Sync for BlockHash",1,["casper_rust_wasm_sdk::types::block_hash::BlockHash"]],["impl Sync for BlockIdentifier",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifier"]],["impl Sync for BlockIdentifierInput",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifierInput"]],["impl Sync for Bytes",1,["casper_rust_wasm_sdk::types::cl::bytes::Bytes"]],["impl Sync for ContractHash",1,["casper_rust_wasm_sdk::types::contract_hash::ContractHash"]],["impl Sync for ContractPackageHash",1,["casper_rust_wasm_sdk::types::contract_package_hash::ContractPackageHash"]],["impl Sync for Deploy",1,["casper_rust_wasm_sdk::types::deploy::Deploy"]],["impl Sync for DeployHash",1,["casper_rust_wasm_sdk::types::deploy_hash::DeployHash"]],["impl Sync for ArgsSimple",1,["casper_rust_wasm_sdk::types::deploy_params::args_simple::ArgsSimple"]],["impl Sync for DeployStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::deploy_str_params::DeployStrParams"]],["impl Sync for AccountNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::AccountNamedKey"]],["impl Sync for ContractNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::ContractNamedKey"]],["impl Sync for URefVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::URefVariant"]],["impl Sync for DictionaryVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryVariant"]],["impl Sync for DictionaryItemStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryItemStrParams"]],["impl Sync for PaymentStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::payment_str_params::PaymentStrParams"]],["impl Sync for SessionStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::session_str_params::SessionStrParams"]],["impl Sync for DictionaryItemIdentifier",1,["casper_rust_wasm_sdk::types::dictionary_item_identifier::DictionaryItemIdentifier"]],["impl Sync for Digest",1,["casper_rust_wasm_sdk::types::digest::Digest"]],["impl Sync for EraId",1,["casper_rust_wasm_sdk::types::era_id::EraId"]],["impl Sync for GlobalStateIdentifier",1,["casper_rust_wasm_sdk::types::global_state_identifier::GlobalStateIdentifier"]],["impl Sync for Key",1,["casper_rust_wasm_sdk::types::key::Key"]],["impl Sync for Path",1,["casper_rust_wasm_sdk::types::path::Path"]],["impl Sync for PeerEntry",1,["casper_rust_wasm_sdk::types::peer_entry::PeerEntry"]],["impl Sync for PublicKey",1,["casper_rust_wasm_sdk::types::public_key::PublicKey"]],["impl Sync for PurseIdentifier",1,["casper_rust_wasm_sdk::types::purse_identifier::PurseIdentifier"]],["impl Sync for SdkError",1,["casper_rust_wasm_sdk::types::sdk_error::SdkError"]],["impl Sync for URef",1,["casper_rust_wasm_sdk::types::uref::URef"]],["impl Sync for Verbosity",1,["casper_rust_wasm_sdk::types::verbosity::Verbosity"]],["impl Sync for GetBalanceInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_balance::GetBalanceInput"]],["impl Sync for DictionaryItemInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_dictionary_item::DictionaryItemInput"]],["impl Sync for QueryGlobalStateResult",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateResult"]],["impl Sync for QueryGlobalStateOptions",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateOptions"]],["impl Sync for KeyIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::KeyIdentifierInput"]],["impl Sync for PathIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::PathIdentifierInput"]],["impl Sync for QueryGlobalStateParams",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateParams"]],["impl Sync for SDK",1,["casper_rust_wasm_sdk::sdk::SDK"]]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/marker/trait.Unpin.js b/docs/api-rust/implementors/core/marker/trait.Unpin.js
new file mode 100644
index 000000000..2c2b63ca6
--- /dev/null
+++ b/docs/api-rust/implementors/core/marker/trait.Unpin.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Unpin for AccessRights",1,["casper_rust_wasm_sdk::types::access_rights::AccessRights"]],["impl Unpin for AccountHash",1,["casper_rust_wasm_sdk::types::account_hash::AccountHash"]],["impl Unpin for AccountIdentifier",1,["casper_rust_wasm_sdk::types::account_identifier::AccountIdentifier"]],["impl Unpin for DictionaryAddr",1,["casper_rust_wasm_sdk::types::addr::dictionary_addr::DictionaryAddr"]],["impl Unpin for HashAddr",1,["casper_rust_wasm_sdk::types::addr::hash_addr::HashAddr"]],["impl Unpin for TransferAddr",1,["casper_rust_wasm_sdk::types::addr::transfer_addr::TransferAddr"]],["impl Unpin for URefAddr",1,["casper_rust_wasm_sdk::types::addr::uref_addr::URefAddr"]],["impl Unpin for BlockHash",1,["casper_rust_wasm_sdk::types::block_hash::BlockHash"]],["impl Unpin for BlockIdentifier",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifier"]],["impl Unpin for BlockIdentifierInput",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifierInput"]],["impl Unpin for Bytes",1,["casper_rust_wasm_sdk::types::cl::bytes::Bytes"]],["impl Unpin for ContractHash",1,["casper_rust_wasm_sdk::types::contract_hash::ContractHash"]],["impl Unpin for ContractPackageHash",1,["casper_rust_wasm_sdk::types::contract_package_hash::ContractPackageHash"]],["impl Unpin for Deploy",1,["casper_rust_wasm_sdk::types::deploy::Deploy"]],["impl Unpin for DeployHash",1,["casper_rust_wasm_sdk::types::deploy_hash::DeployHash"]],["impl Unpin for ArgsSimple",1,["casper_rust_wasm_sdk::types::deploy_params::args_simple::ArgsSimple"]],["impl Unpin for DeployStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::deploy_str_params::DeployStrParams"]],["impl Unpin for AccountNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::AccountNamedKey"]],["impl Unpin for ContractNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::ContractNamedKey"]],["impl Unpin for URefVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::URefVariant"]],["impl Unpin for DictionaryVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryVariant"]],["impl Unpin for DictionaryItemStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryItemStrParams"]],["impl Unpin for PaymentStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::payment_str_params::PaymentStrParams"]],["impl Unpin for SessionStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::session_str_params::SessionStrParams"]],["impl Unpin for DictionaryItemIdentifier",1,["casper_rust_wasm_sdk::types::dictionary_item_identifier::DictionaryItemIdentifier"]],["impl Unpin for Digest",1,["casper_rust_wasm_sdk::types::digest::Digest"]],["impl Unpin for EraId",1,["casper_rust_wasm_sdk::types::era_id::EraId"]],["impl Unpin for GlobalStateIdentifier",1,["casper_rust_wasm_sdk::types::global_state_identifier::GlobalStateIdentifier"]],["impl Unpin for Key",1,["casper_rust_wasm_sdk::types::key::Key"]],["impl Unpin for Path",1,["casper_rust_wasm_sdk::types::path::Path"]],["impl Unpin for PeerEntry",1,["casper_rust_wasm_sdk::types::peer_entry::PeerEntry"]],["impl Unpin for PublicKey",1,["casper_rust_wasm_sdk::types::public_key::PublicKey"]],["impl Unpin for PurseIdentifier",1,["casper_rust_wasm_sdk::types::purse_identifier::PurseIdentifier"]],["impl Unpin for SdkError",1,["casper_rust_wasm_sdk::types::sdk_error::SdkError"]],["impl Unpin for URef",1,["casper_rust_wasm_sdk::types::uref::URef"]],["impl Unpin for Verbosity",1,["casper_rust_wasm_sdk::types::verbosity::Verbosity"]],["impl Unpin for GetBalanceInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_balance::GetBalanceInput"]],["impl Unpin for DictionaryItemInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_dictionary_item::DictionaryItemInput"]],["impl Unpin for QueryGlobalStateResult",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateResult"]],["impl Unpin for QueryGlobalStateOptions",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateOptions"]],["impl Unpin for KeyIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::KeyIdentifierInput"]],["impl Unpin for PathIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::PathIdentifierInput"]],["impl Unpin for QueryGlobalStateParams",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateParams"]],["impl Unpin for SDK",1,["casper_rust_wasm_sdk::sdk::SDK"]]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/ops/deref/trait.Deref.js b/docs/api-rust/implementors/core/ops/deref/trait.Deref.js
new file mode 100644
index 000000000..7e5117465
--- /dev/null
+++ b/docs/api-rust/implementors/core/ops/deref/trait.Deref.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Deref for Bytes"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/docs/api-rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
new file mode 100644
index 000000000..b0a081ddd
--- /dev/null
+++ b/docs/api-rust/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl RefUnwindSafe for AccessRights",1,["casper_rust_wasm_sdk::types::access_rights::AccessRights"]],["impl RefUnwindSafe for AccountHash",1,["casper_rust_wasm_sdk::types::account_hash::AccountHash"]],["impl RefUnwindSafe for AccountIdentifier",1,["casper_rust_wasm_sdk::types::account_identifier::AccountIdentifier"]],["impl RefUnwindSafe for DictionaryAddr",1,["casper_rust_wasm_sdk::types::addr::dictionary_addr::DictionaryAddr"]],["impl RefUnwindSafe for HashAddr",1,["casper_rust_wasm_sdk::types::addr::hash_addr::HashAddr"]],["impl RefUnwindSafe for TransferAddr",1,["casper_rust_wasm_sdk::types::addr::transfer_addr::TransferAddr"]],["impl RefUnwindSafe for URefAddr",1,["casper_rust_wasm_sdk::types::addr::uref_addr::URefAddr"]],["impl RefUnwindSafe for BlockHash",1,["casper_rust_wasm_sdk::types::block_hash::BlockHash"]],["impl RefUnwindSafe for BlockIdentifier",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifier"]],["impl RefUnwindSafe for BlockIdentifierInput",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifierInput"]],["impl RefUnwindSafe for Bytes",1,["casper_rust_wasm_sdk::types::cl::bytes::Bytes"]],["impl RefUnwindSafe for ContractHash",1,["casper_rust_wasm_sdk::types::contract_hash::ContractHash"]],["impl RefUnwindSafe for ContractPackageHash",1,["casper_rust_wasm_sdk::types::contract_package_hash::ContractPackageHash"]],["impl RefUnwindSafe for Deploy",1,["casper_rust_wasm_sdk::types::deploy::Deploy"]],["impl RefUnwindSafe for DeployHash",1,["casper_rust_wasm_sdk::types::deploy_hash::DeployHash"]],["impl RefUnwindSafe for ArgsSimple",1,["casper_rust_wasm_sdk::types::deploy_params::args_simple::ArgsSimple"]],["impl RefUnwindSafe for DeployStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::deploy_str_params::DeployStrParams"]],["impl RefUnwindSafe for AccountNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::AccountNamedKey"]],["impl RefUnwindSafe for ContractNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::ContractNamedKey"]],["impl RefUnwindSafe for URefVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::URefVariant"]],["impl RefUnwindSafe for DictionaryVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryVariant"]],["impl RefUnwindSafe for DictionaryItemStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryItemStrParams"]],["impl RefUnwindSafe for PaymentStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::payment_str_params::PaymentStrParams"]],["impl RefUnwindSafe for SessionStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::session_str_params::SessionStrParams"]],["impl RefUnwindSafe for DictionaryItemIdentifier",1,["casper_rust_wasm_sdk::types::dictionary_item_identifier::DictionaryItemIdentifier"]],["impl RefUnwindSafe for Digest",1,["casper_rust_wasm_sdk::types::digest::Digest"]],["impl RefUnwindSafe for EraId",1,["casper_rust_wasm_sdk::types::era_id::EraId"]],["impl RefUnwindSafe for GlobalStateIdentifier",1,["casper_rust_wasm_sdk::types::global_state_identifier::GlobalStateIdentifier"]],["impl RefUnwindSafe for Key",1,["casper_rust_wasm_sdk::types::key::Key"]],["impl RefUnwindSafe for Path",1,["casper_rust_wasm_sdk::types::path::Path"]],["impl RefUnwindSafe for PeerEntry",1,["casper_rust_wasm_sdk::types::peer_entry::PeerEntry"]],["impl RefUnwindSafe for PublicKey",1,["casper_rust_wasm_sdk::types::public_key::PublicKey"]],["impl RefUnwindSafe for PurseIdentifier",1,["casper_rust_wasm_sdk::types::purse_identifier::PurseIdentifier"]],["impl !RefUnwindSafe for SdkError",1,["casper_rust_wasm_sdk::types::sdk_error::SdkError"]],["impl RefUnwindSafe for URef",1,["casper_rust_wasm_sdk::types::uref::URef"]],["impl RefUnwindSafe for Verbosity",1,["casper_rust_wasm_sdk::types::verbosity::Verbosity"]],["impl RefUnwindSafe for GetBalanceInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_balance::GetBalanceInput"]],["impl RefUnwindSafe for DictionaryItemInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_dictionary_item::DictionaryItemInput"]],["impl RefUnwindSafe for QueryGlobalStateResult",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateResult"]],["impl RefUnwindSafe for QueryGlobalStateOptions",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateOptions"]],["impl RefUnwindSafe for KeyIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::KeyIdentifierInput"]],["impl RefUnwindSafe for PathIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::PathIdentifierInput"]],["impl RefUnwindSafe for QueryGlobalStateParams",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateParams"]],["impl RefUnwindSafe for SDK",1,["casper_rust_wasm_sdk::sdk::SDK"]]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/docs/api-rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
new file mode 100644
index 000000000..e017c3d91
--- /dev/null
+++ b/docs/api-rust/implementors/core/panic/unwind_safe/trait.UnwindSafe.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl UnwindSafe for AccessRights",1,["casper_rust_wasm_sdk::types::access_rights::AccessRights"]],["impl UnwindSafe for AccountHash",1,["casper_rust_wasm_sdk::types::account_hash::AccountHash"]],["impl UnwindSafe for AccountIdentifier",1,["casper_rust_wasm_sdk::types::account_identifier::AccountIdentifier"]],["impl UnwindSafe for DictionaryAddr",1,["casper_rust_wasm_sdk::types::addr::dictionary_addr::DictionaryAddr"]],["impl UnwindSafe for HashAddr",1,["casper_rust_wasm_sdk::types::addr::hash_addr::HashAddr"]],["impl UnwindSafe for TransferAddr",1,["casper_rust_wasm_sdk::types::addr::transfer_addr::TransferAddr"]],["impl UnwindSafe for URefAddr",1,["casper_rust_wasm_sdk::types::addr::uref_addr::URefAddr"]],["impl UnwindSafe for BlockHash",1,["casper_rust_wasm_sdk::types::block_hash::BlockHash"]],["impl UnwindSafe for BlockIdentifier",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifier"]],["impl UnwindSafe for BlockIdentifierInput",1,["casper_rust_wasm_sdk::types::block_identifier::BlockIdentifierInput"]],["impl UnwindSafe for Bytes",1,["casper_rust_wasm_sdk::types::cl::bytes::Bytes"]],["impl UnwindSafe for ContractHash",1,["casper_rust_wasm_sdk::types::contract_hash::ContractHash"]],["impl UnwindSafe for ContractPackageHash",1,["casper_rust_wasm_sdk::types::contract_package_hash::ContractPackageHash"]],["impl UnwindSafe for Deploy",1,["casper_rust_wasm_sdk::types::deploy::Deploy"]],["impl UnwindSafe for DeployHash",1,["casper_rust_wasm_sdk::types::deploy_hash::DeployHash"]],["impl UnwindSafe for ArgsSimple",1,["casper_rust_wasm_sdk::types::deploy_params::args_simple::ArgsSimple"]],["impl UnwindSafe for DeployStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::deploy_str_params::DeployStrParams"]],["impl UnwindSafe for AccountNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::AccountNamedKey"]],["impl UnwindSafe for ContractNamedKey",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::ContractNamedKey"]],["impl UnwindSafe for URefVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::URefVariant"]],["impl UnwindSafe for DictionaryVariant",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryVariant"]],["impl UnwindSafe for DictionaryItemStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params::DictionaryItemStrParams"]],["impl UnwindSafe for PaymentStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::payment_str_params::PaymentStrParams"]],["impl UnwindSafe for SessionStrParams",1,["casper_rust_wasm_sdk::types::deploy_params::session_str_params::SessionStrParams"]],["impl UnwindSafe for DictionaryItemIdentifier",1,["casper_rust_wasm_sdk::types::dictionary_item_identifier::DictionaryItemIdentifier"]],["impl UnwindSafe for Digest",1,["casper_rust_wasm_sdk::types::digest::Digest"]],["impl UnwindSafe for EraId",1,["casper_rust_wasm_sdk::types::era_id::EraId"]],["impl UnwindSafe for GlobalStateIdentifier",1,["casper_rust_wasm_sdk::types::global_state_identifier::GlobalStateIdentifier"]],["impl UnwindSafe for Key",1,["casper_rust_wasm_sdk::types::key::Key"]],["impl UnwindSafe for Path",1,["casper_rust_wasm_sdk::types::path::Path"]],["impl UnwindSafe for PeerEntry",1,["casper_rust_wasm_sdk::types::peer_entry::PeerEntry"]],["impl UnwindSafe for PublicKey",1,["casper_rust_wasm_sdk::types::public_key::PublicKey"]],["impl UnwindSafe for PurseIdentifier",1,["casper_rust_wasm_sdk::types::purse_identifier::PurseIdentifier"]],["impl !UnwindSafe for SdkError",1,["casper_rust_wasm_sdk::types::sdk_error::SdkError"]],["impl UnwindSafe for URef",1,["casper_rust_wasm_sdk::types::uref::URef"]],["impl UnwindSafe for Verbosity",1,["casper_rust_wasm_sdk::types::verbosity::Verbosity"]],["impl UnwindSafe for GetBalanceInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_balance::GetBalanceInput"]],["impl UnwindSafe for DictionaryItemInput",1,["casper_rust_wasm_sdk::sdk::rpcs::get_dictionary_item::DictionaryItemInput"]],["impl UnwindSafe for QueryGlobalStateResult",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateResult"]],["impl UnwindSafe for QueryGlobalStateOptions",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateOptions"]],["impl UnwindSafe for KeyIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::KeyIdentifierInput"]],["impl UnwindSafe for PathIdentifierInput",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::PathIdentifierInput"]],["impl UnwindSafe for QueryGlobalStateParams",1,["casper_rust_wasm_sdk::sdk::rpcs::query_global_state::QueryGlobalStateParams"]],["impl UnwindSafe for SDK",1,["casper_rust_wasm_sdk::sdk::SDK"]]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/serde/de/trait.Deserialize.js b/docs/api-rust/implementors/serde/de/trait.Deserialize.js
new file mode 100644
index 000000000..c540af85e
--- /dev/null
+++ b/docs/api-rust/implementors/serde/de/trait.Deserialize.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl<'de> Deserialize<'de> for AccountNamedKey"],["impl<'de> Deserialize<'de> for DictionaryVariant"],["impl<'de> Deserialize<'de> for AccountHash"],["impl<'de> Deserialize<'de> for GlobalStateIdentifier"],["impl<'de> Deserialize<'de> for PublicKey"],["impl<'de> Deserialize<'de> for Path"],["impl<'de> Deserialize<'de> for DeployHash"],["impl<'de> Deserialize<'de> for Deploy"],["impl<'de> Deserialize<'de> for BlockIdentifier"],["impl<'de> Deserialize<'de> for Verbosity"],["impl<'de> Deserialize<'de> for QueryGlobalStateOptions"],["impl<'de> Deserialize<'de> for DictionaryItemIdentifier"],["impl<'de> Deserialize<'de> for PurseIdentifier"],["impl<'de> Deserialize<'de> for Key"],["impl<'de> Deserialize<'de> for URefVariant"],["impl<'de> Deserialize<'de> for BlockHash"],["impl<'de> Deserialize<'de> for PeerEntry"],["impl<'de> Deserialize<'de> for AccountIdentifier"],["impl<'de> Deserialize<'de> for URef"],["impl<'de> Deserialize<'de> for DictionaryItemStrParams"],["impl<'de> Deserialize<'de> for QueryGlobalStateResult"],["impl<'de> Deserialize<'de> for ContractNamedKey"],["impl<'de> Deserialize<'de> for Digest"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/serde/ser/trait.Serialize.js b/docs/api-rust/implementors/serde/ser/trait.Serialize.js
new file mode 100644
index 000000000..d971b5513
--- /dev/null
+++ b/docs/api-rust/implementors/serde/ser/trait.Serialize.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl Serialize for BlockHash"],["impl Serialize for DictionaryItemIdentifier"],["impl Serialize for Key"],["impl Serialize for DeployHash"],["impl Serialize for Verbosity"],["impl Serialize for Path"],["impl Serialize for BlockIdentifier"],["impl Serialize for URef"],["impl Serialize for DictionaryVariant"],["impl Serialize for URefVariant"],["impl Serialize for Deploy"],["impl Serialize for Digest"],["impl Serialize for GlobalStateIdentifier"],["impl Serialize for QueryGlobalStateOptions"],["impl Serialize for PeerEntry"],["impl Serialize for AccountIdentifier"],["impl Serialize for PublicKey"],["impl Serialize for PurseIdentifier"],["impl Serialize for AccountNamedKey"],["impl Serialize for QueryGlobalStateResult"],["impl Serialize for ContractNamedKey"],["impl Serialize for DictionaryItemStrParams"],["impl Serialize for AccountHash"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.FromWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.FromWasmAbi.js
new file mode 100644
index 000000000..4d9a190bc
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.FromWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl FromWasmAbi for DictionaryItemStrParams"],["impl FromWasmAbi for PeerEntry"],["impl FromWasmAbi for Digest"],["impl FromWasmAbi for PaymentStrParams"],["impl FromWasmAbi for DictionaryItemIdentifier"],["impl FromWasmAbi for AccountHash"],["impl FromWasmAbi for ContractHash"],["impl FromWasmAbi for AccountIdentifier"],["impl FromWasmAbi for AccessRights"],["impl FromWasmAbi for Deploy"],["impl FromWasmAbi for ContractPackageHash"],["impl FromWasmAbi for TransferAddr"],["impl FromWasmAbi for DictionaryAddr"],["impl FromWasmAbi for URef"],["impl FromWasmAbi for Key"],["impl FromWasmAbi for ArgsSimple"],["impl FromWasmAbi for Verbosity"],["impl FromWasmAbi for SDK"],["impl FromWasmAbi for QueryGlobalStateOptions"],["impl FromWasmAbi for PurseIdentifier"],["impl FromWasmAbi for GlobalStateIdentifier"],["impl FromWasmAbi for Path"],["impl FromWasmAbi for BlockHash"],["impl FromWasmAbi for Bytes"],["impl FromWasmAbi for PublicKey"],["impl FromWasmAbi for SessionStrParams"],["impl FromWasmAbi for HashAddr"],["impl FromWasmAbi for DeployStrParams"],["impl FromWasmAbi for URefAddr"],["impl FromWasmAbi for BlockIdentifier"],["impl FromWasmAbi for DeployHash"],["impl FromWasmAbi for QueryGlobalStateResult"],["impl FromWasmAbi for EraId"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.IntoWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.IntoWasmAbi.js
new file mode 100644
index 000000000..514fc89f2
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.IntoWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl IntoWasmAbi for QueryGlobalStateResult"],["impl IntoWasmAbi for PublicKey"],["impl IntoWasmAbi for AccountIdentifier"],["impl IntoWasmAbi for GlobalStateIdentifier"],["impl IntoWasmAbi for PaymentStrParams"],["impl IntoWasmAbi for Deploy"],["impl IntoWasmAbi for DeployHash"],["impl IntoWasmAbi for DictionaryItemIdentifier"],["impl IntoWasmAbi for AccountHash"],["impl IntoWasmAbi for BlockIdentifier"],["impl IntoWasmAbi for SessionStrParams"],["impl IntoWasmAbi for ContractPackageHash"],["impl IntoWasmAbi for ArgsSimple"],["impl IntoWasmAbi for Bytes"],["impl IntoWasmAbi for HashAddr"],["impl IntoWasmAbi for URefAddr"],["impl IntoWasmAbi for DictionaryItemStrParams"],["impl IntoWasmAbi for EraId"],["impl IntoWasmAbi for AccessRights"],["impl IntoWasmAbi for URef"],["impl IntoWasmAbi for Digest"],["impl IntoWasmAbi for DictionaryAddr"],["impl IntoWasmAbi for Verbosity"],["impl IntoWasmAbi for Path"],["impl IntoWasmAbi for PurseIdentifier"],["impl IntoWasmAbi for BlockHash"],["impl IntoWasmAbi for QueryGlobalStateOptions"],["impl IntoWasmAbi for Key"],["impl IntoWasmAbi for TransferAddr"],["impl IntoWasmAbi for PeerEntry"],["impl IntoWasmAbi for DeployStrParams"],["impl IntoWasmAbi for ContractHash"],["impl IntoWasmAbi for SDK"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.LongRefFromWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.LongRefFromWasmAbi.js
new file mode 100644
index 000000000..7897ba407
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.LongRefFromWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl LongRefFromWasmAbi for DictionaryItemStrParams"],["impl LongRefFromWasmAbi for DeployStrParams"],["impl LongRefFromWasmAbi for TransferAddr"],["impl LongRefFromWasmAbi for EraId"],["impl LongRefFromWasmAbi for PublicKey"],["impl LongRefFromWasmAbi for HashAddr"],["impl LongRefFromWasmAbi for BlockIdentifier"],["impl LongRefFromWasmAbi for BlockHash"],["impl LongRefFromWasmAbi for Path"],["impl LongRefFromWasmAbi for AccessRights"],["impl LongRefFromWasmAbi for DictionaryItemIdentifier"],["impl LongRefFromWasmAbi for ArgsSimple"],["impl LongRefFromWasmAbi for URef"],["impl LongRefFromWasmAbi for Deploy"],["impl LongRefFromWasmAbi for DictionaryAddr"],["impl LongRefFromWasmAbi for ContractPackageHash"],["impl LongRefFromWasmAbi for PurseIdentifier"],["impl LongRefFromWasmAbi for ContractHash"],["impl LongRefFromWasmAbi for PeerEntry"],["impl LongRefFromWasmAbi for QueryGlobalStateOptions"],["impl LongRefFromWasmAbi for AccountIdentifier"],["impl LongRefFromWasmAbi for Bytes"],["impl LongRefFromWasmAbi for QueryGlobalStateResult"],["impl LongRefFromWasmAbi for Digest"],["impl LongRefFromWasmAbi for Key"],["impl LongRefFromWasmAbi for DeployHash"],["impl LongRefFromWasmAbi for PaymentStrParams"],["impl LongRefFromWasmAbi for AccountHash"],["impl LongRefFromWasmAbi for SessionStrParams"],["impl LongRefFromWasmAbi for URefAddr"],["impl LongRefFromWasmAbi for SDK"],["impl LongRefFromWasmAbi for GlobalStateIdentifier"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.OptionFromWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.OptionFromWasmAbi.js
new file mode 100644
index 000000000..662e6c7c9
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.OptionFromWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl OptionFromWasmAbi for ContractHash"],["impl OptionFromWasmAbi for PaymentStrParams"],["impl OptionFromWasmAbi for DictionaryAddr"],["impl OptionFromWasmAbi for HashAddr"],["impl OptionFromWasmAbi for Path"],["impl OptionFromWasmAbi for AccountHash"],["impl OptionFromWasmAbi for Key"],["impl OptionFromWasmAbi for PeerEntry"],["impl OptionFromWasmAbi for DeployHash"],["impl OptionFromWasmAbi for AccessRights"],["impl OptionFromWasmAbi for Verbosity"],["impl OptionFromWasmAbi for AccountIdentifier"],["impl OptionFromWasmAbi for EraId"],["impl OptionFromWasmAbi for DictionaryItemIdentifier"],["impl OptionFromWasmAbi for SDK"],["impl OptionFromWasmAbi for GlobalStateIdentifier"],["impl OptionFromWasmAbi for PublicKey"],["impl OptionFromWasmAbi for BlockIdentifier"],["impl OptionFromWasmAbi for DeployStrParams"],["impl OptionFromWasmAbi for Digest"],["impl OptionFromWasmAbi for TransferAddr"],["impl OptionFromWasmAbi for DictionaryItemStrParams"],["impl OptionFromWasmAbi for URef"],["impl OptionFromWasmAbi for URefAddr"],["impl OptionFromWasmAbi for ArgsSimple"],["impl OptionFromWasmAbi for SessionStrParams"],["impl OptionFromWasmAbi for BlockHash"],["impl OptionFromWasmAbi for QueryGlobalStateOptions"],["impl OptionFromWasmAbi for Bytes"],["impl OptionFromWasmAbi for ContractPackageHash"],["impl OptionFromWasmAbi for QueryGlobalStateResult"],["impl OptionFromWasmAbi for Deploy"],["impl OptionFromWasmAbi for PurseIdentifier"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.OptionIntoWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.OptionIntoWasmAbi.js
new file mode 100644
index 000000000..16bf225c3
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.OptionIntoWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl OptionIntoWasmAbi for URef"],["impl OptionIntoWasmAbi for AccountIdentifier"],["impl OptionIntoWasmAbi for DictionaryAddr"],["impl OptionIntoWasmAbi for BlockIdentifier"],["impl OptionIntoWasmAbi for Deploy"],["impl OptionIntoWasmAbi for DictionaryItemStrParams"],["impl OptionIntoWasmAbi for PaymentStrParams"],["impl OptionIntoWasmAbi for TransferAddr"],["impl OptionIntoWasmAbi for DeployStrParams"],["impl OptionIntoWasmAbi for ContractHash"],["impl OptionIntoWasmAbi for PurseIdentifier"],["impl OptionIntoWasmAbi for PeerEntry"],["impl OptionIntoWasmAbi for URefAddr"],["impl OptionIntoWasmAbi for DeployHash"],["impl OptionIntoWasmAbi for SessionStrParams"],["impl OptionIntoWasmAbi for QueryGlobalStateResult"],["impl OptionIntoWasmAbi for Digest"],["impl OptionIntoWasmAbi for QueryGlobalStateOptions"],["impl OptionIntoWasmAbi for DictionaryItemIdentifier"],["impl OptionIntoWasmAbi for Key"],["impl OptionIntoWasmAbi for BlockHash"],["impl OptionIntoWasmAbi for ArgsSimple"],["impl OptionIntoWasmAbi for AccessRights"],["impl OptionIntoWasmAbi for Verbosity"],["impl OptionIntoWasmAbi for PublicKey"],["impl OptionIntoWasmAbi for Bytes"],["impl OptionIntoWasmAbi for EraId"],["impl OptionIntoWasmAbi for SDK"],["impl OptionIntoWasmAbi for GlobalStateIdentifier"],["impl OptionIntoWasmAbi for HashAddr"],["impl OptionIntoWasmAbi for AccountHash"],["impl OptionIntoWasmAbi for ContractPackageHash"],["impl OptionIntoWasmAbi for Path"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.RefFromWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.RefFromWasmAbi.js
new file mode 100644
index 000000000..f560be7f9
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.RefFromWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl RefFromWasmAbi for AccessRights"],["impl RefFromWasmAbi for AccountHash"],["impl RefFromWasmAbi for SessionStrParams"],["impl RefFromWasmAbi for Digest"],["impl RefFromWasmAbi for DeployHash"],["impl RefFromWasmAbi for AccountIdentifier"],["impl RefFromWasmAbi for DictionaryItemIdentifier"],["impl RefFromWasmAbi for DictionaryAddr"],["impl RefFromWasmAbi for PaymentStrParams"],["impl RefFromWasmAbi for ArgsSimple"],["impl RefFromWasmAbi for ContractPackageHash"],["impl RefFromWasmAbi for Key"],["impl RefFromWasmAbi for PurseIdentifier"],["impl RefFromWasmAbi for GlobalStateIdentifier"],["impl RefFromWasmAbi for BlockIdentifier"],["impl RefFromWasmAbi for Bytes"],["impl RefFromWasmAbi for DictionaryItemStrParams"],["impl RefFromWasmAbi for SDK"],["impl RefFromWasmAbi for URef"],["impl RefFromWasmAbi for URefAddr"],["impl RefFromWasmAbi for PublicKey"],["impl RefFromWasmAbi for Path"],["impl RefFromWasmAbi for QueryGlobalStateResult"],["impl RefFromWasmAbi for BlockHash"],["impl RefFromWasmAbi for DeployStrParams"],["impl RefFromWasmAbi for TransferAddr"],["impl RefFromWasmAbi for ContractHash"],["impl RefFromWasmAbi for Deploy"],["impl RefFromWasmAbi for PeerEntry"],["impl RefFromWasmAbi for QueryGlobalStateOptions"],["impl RefFromWasmAbi for HashAddr"],["impl RefFromWasmAbi for EraId"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.RefMutFromWasmAbi.js b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.RefMutFromWasmAbi.js
new file mode 100644
index 000000000..c6a9f2d6b
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/convert/traits/trait.RefMutFromWasmAbi.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl RefMutFromWasmAbi for ContractPackageHash"],["impl RefMutFromWasmAbi for PeerEntry"],["impl RefMutFromWasmAbi for URefAddr"],["impl RefMutFromWasmAbi for DeployHash"],["impl RefMutFromWasmAbi for SDK"],["impl RefMutFromWasmAbi for URef"],["impl RefMutFromWasmAbi for EraId"],["impl RefMutFromWasmAbi for QueryGlobalStateResult"],["impl RefMutFromWasmAbi for Key"],["impl RefMutFromWasmAbi for DictionaryItemIdentifier"],["impl RefMutFromWasmAbi for Deploy"],["impl RefMutFromWasmAbi for BlockIdentifier"],["impl RefMutFromWasmAbi for Bytes"],["impl RefMutFromWasmAbi for AccountHash"],["impl RefMutFromWasmAbi for PublicKey"],["impl RefMutFromWasmAbi for AccessRights"],["impl RefMutFromWasmAbi for QueryGlobalStateOptions"],["impl RefMutFromWasmAbi for PurseIdentifier"],["impl RefMutFromWasmAbi for Digest"],["impl RefMutFromWasmAbi for BlockHash"],["impl RefMutFromWasmAbi for DictionaryItemStrParams"],["impl RefMutFromWasmAbi for ContractHash"],["impl RefMutFromWasmAbi for ArgsSimple"],["impl RefMutFromWasmAbi for AccountIdentifier"],["impl RefMutFromWasmAbi for PaymentStrParams"],["impl RefMutFromWasmAbi for DictionaryAddr"],["impl RefMutFromWasmAbi for GlobalStateIdentifier"],["impl RefMutFromWasmAbi for Path"],["impl RefMutFromWasmAbi for HashAddr"],["impl RefMutFromWasmAbi for SessionStrParams"],["impl RefMutFromWasmAbi for DeployStrParams"],["impl RefMutFromWasmAbi for TransferAddr"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/implementors/wasm_bindgen/describe/trait.WasmDescribe.js b/docs/api-rust/implementors/wasm_bindgen/describe/trait.WasmDescribe.js
new file mode 100644
index 000000000..4261d2958
--- /dev/null
+++ b/docs/api-rust/implementors/wasm_bindgen/describe/trait.WasmDescribe.js
@@ -0,0 +1,3 @@
+(function() {var implementors = {
+"casper_rust_wasm_sdk":[["impl WasmDescribe for Digest"],["impl WasmDescribe for Path"],["impl WasmDescribe for URef"],["impl WasmDescribe for URefAddr"],["impl WasmDescribe for PaymentStrParams"],["impl WasmDescribe for ContractPackageHash"],["impl WasmDescribe for GlobalStateIdentifier"],["impl WasmDescribe for Key"],["impl WasmDescribe for AccountIdentifier"],["impl WasmDescribe for DeployHash"],["impl WasmDescribe for DictionaryItemStrParams"],["impl WasmDescribe for DictionaryAddr"],["impl WasmDescribe for Verbosity"],["impl WasmDescribe for ContractHash"],["impl WasmDescribe for QueryGlobalStateOptions"],["impl WasmDescribe for QueryGlobalStateResult"],["impl WasmDescribe for DeployStrParams"],["impl WasmDescribe for DictionaryItemIdentifier"],["impl WasmDescribe for AccessRights"],["impl WasmDescribe for SDK"],["impl WasmDescribe for BlockIdentifier"],["impl WasmDescribe for SessionStrParams"],["impl WasmDescribe for BlockHash"],["impl WasmDescribe for HashAddr"],["impl WasmDescribe for AccountHash"],["impl WasmDescribe for PurseIdentifier"],["impl WasmDescribe for PublicKey"],["impl WasmDescribe for PeerEntry"],["impl WasmDescribe for ArgsSimple"],["impl WasmDescribe for Bytes"],["impl WasmDescribe for Deploy"],["impl WasmDescribe for EraId"],["impl WasmDescribe for TransferAddr"]]
+};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/api-rust/search-index.js b/docs/api-rust/search-index.js
new file mode 100644
index 000000000..e296e48c4
--- /dev/null
+++ b/docs/api-rust/search-index.js
@@ -0,0 +1,5 @@
+var searchIndex = JSON.parse('{\
+"casper_rust_wasm_sdk":{"doc":"","t":"DLLALALALLLLLLLLLLLLLLLLLLLLAALLLLLLLLLLLLALALLLLLLALLLALLALALLLLALFFFFFFFFFFFFFAAAAAAAAAAAAAAAAAAAENNLLLLLLLLLLLLLENNLLLLLLLLNENEDDDNNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLLLLLLLLMMMLLMMMMMLLMMMLLLLLLLLMMMLLLLLLLLLLLLLLLLLLLMMLLLLLAAAAAAAAAAAAAAAAAAAAAAAADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAAAADLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLDLLLLLLFLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDNENLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLADLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLAAAAADLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDDDDDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLFLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDILLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLKLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNNNNNNNNNNNNNELLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLNNNELLLLLLLLLLLLLLLLLLLLLLLLLL","n":["SDK","borrow","borrow_mut","call_entrypoint","call_entrypoint","debug","default","deploy","deploy","describe","from","from_abi","get_account","get_auction_info","get_balance","get_block","get_block_transfers","get_chainspec","get_deploy","get_dictionary_item","get_era_info","get_era_summary","get_node_address","get_node_status","get_peers","get_state_root_hash","get_validator_changes","get_verbosity","helpers","install","install","into","into_abi","is_none","list_rpcs","long_ref_from_abi","make_deploy","make_transfer","new","none","put_deploy","query_balance","query_contract_dict","query_contract_dict","query_contract_key","query_contract_key","query_global_state","query_global_state_js_alias_params","ref_from_abi","ref_mut_from_abi","return_abi","rpcs","set_node_address","set_verbosity","sign_deploy","speculative_deploy","speculative_deploy","speculative_exec","speculative_transfer","speculative_transfer","transfer","transfer","try_from","try_into","type_id","types","vzip","cl_value_to_json","get_current_timestamp","get_gas_price_or_default","get_ttl_or_default","hex_to_string","hex_to_uint8_vec","insert_js_value_arg","json_pretty_print","motes_to_cspr","parse_timestamp","parse_ttl","public_key_from_private_key","secret_key_from_pem","get_account","get_auction_info","get_balance","get_block","get_block_transfers","get_chainspec","get_deploy","get_dictionary_item","get_era_info","get_era_summary","get_node_status","get_peers","get_state_root_hash","get_validator_changes","list_rpcs","put_deploy","query_balance","query_global_state","speculative_exec","GetBalanceInput","PurseUref","PurseUrefAsString","__clone_box","borrow","borrow_mut","clone","clone_into","fmt","from","into","to_owned","try_from","try_into","type_id","vzip","DictionaryItemInput","Identifier","Params","borrow","borrow_mut","from","into","try_from","try_into","type_id","vzip","Key","KeyIdentifierInput","Path","PathIdentifierInput","QueryGlobalStateOptions","QueryGlobalStateParams","QueryGlobalStateResult","String","String","__clone_box","__clone_box","__clone_box","__clone_box","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","default","describe","describe","deserialize","deserialize","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from_abi","from_abi","global_state_identifier","into","into","into","into","into","into_abi","into_abi","is_none","is_none","key","key","key_as_string","long_ref_from_abi","long_ref_from_abi","maybe_block_id","maybe_block_id_as_string","maybe_global_state_identifier","node_address","node_address","none","none","path","path","path_as_string","ref_from_abi","ref_from_abi","ref_mut_from_abi","ref_mut_from_abi","return_abi","return_abi","serialize","serialize","state_root_hash","state_root_hash","state_root_hash_as_string","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verbosity","verbosity","vzip","vzip","vzip","vzip","vzip","access_rights","account_hash","account_identifier","addr","block_hash","block_identifier","cl","contract_hash","contract_package_hash","deploy","deploy_hash","deploy_params","dictionary_item_identifier","digest","era_id","global_state_identifier","key","path","peer_entry","public_key","purse_identifier","sdk_error","uref","verbosity","AccessRights","add","add_write","borrow","borrow_mut","default","describe","fmt","from","from","from_abi","from_bits","into","into_abi","is_addable","is_none","is_none","is_readable","is_writeable","long_ref_from_abi","new","none","none","read","read_add","read_add_write","read_write","ref_from_abi","ref_mut_from_abi","return_abi","try_from","try_into","type_id","vzip","write","AccountHash","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from","from","from_abi","from_bytes","from_bytes","from_formatted_str","from_public_key","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","serialized_length","to_bytes","to_formatted_string","to_owned","try_from","try_into","type_id","vzip","write_bytes","AccountIdentifier","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from","from","from_abi","from_account_account_under_public_key","from_account_under_account_hash","from_formatted_str","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","dictionary_addr","hash_addr","transfer_addr","uref_addr","DictionaryAddr","borrow","borrow_mut","describe","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","try_from","try_into","type_id","vzip","HashAddr","borrow","borrow_mut","describe","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","try_from","try_into","type_id","vzip","TransferAddr","borrow","borrow_mut","describe","from","from","from_abi","from_transfer","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","try_from","try_into","type_id","vzip","URefAddr","borrow","borrow_mut","describe","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","try_from","try_into","type_id","vzip","BlockHash","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from","from_abi","from_digest","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","BlockIdentifier","BlockIdentifier","BlockIdentifierInput","String","__clone_box","__clone_box","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","describe","deserialize","fmt","fmt","from","from","from","from_abi","from_hash","from_height","into","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","bytes","Bytes","__clone_box","as_ref","borrow","borrow_mut","cl_type","clone","clone_into","cmp","compare","default","deref","describe","encode_hex","encode_hex_upper","eq","equivalent","equivalent","equivalent","equivalent","fmt","from","from","from","from","from_abi","from_uint8_array","hash","into","into_abi","is_none","long_ref_from_abi","new","none","partial_cmp","ref_from_abi","ref_mut_from_abi","return_abi","to_owned","try_from","try_into","type_id","vzip","ContractHash","borrow","borrow_mut","describe","fmt","from","from","from_abi","from_bytes","from_bytes","from_formatted_str","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialized_length","to_bytes","to_formatted_string","try_from","try_into","type_id","vzip","write_bytes","ContractPackageHash","borrow","borrow_mut","describe","fmt","from","from","from_abi","from_bytes","from_bytes","from_formatted_str","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialized_length","to_bytes","to_formatted_string","try_from","try_into","type_id","vzip","write_bytes","Deploy","__clone_box","account","add_arg","args","borrow","borrow_mut","chain_name","clone","clone_into","describe","deserialize","fmt","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","sign","timestamp","to_json_string","to_owned","try_from","try_into","ttl","type_id","validate_deploy_size","vzip","with_account","with_chain_name","with_entry_point_name","with_hash","with_module_bytes","with_package_hash","with_payment_and_session","with_secret_key","with_standard_payment","with_timestamp","with_transfer","with_ttl","DeployHash","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from","from","from_abi","from_digest","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","args_simple","deploy_str_params","dictionary_item_str_params","payment_str_params","session_str_params","ArgsSimple","__clone_box","args","borrow","borrow_mut","clone","clone_into","default","describe","fmt","from","from","from_abi","from_iter","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","to_owned","try_from","try_into","type_id","vzip","DeployStrParams","__clone_box","borrow","borrow_mut","chain_name","clone","clone_into","default","deploy_str_params_to_casper_client","describe","fmt","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","secret_key","session_account","set_chain_name","set_default_timestamp","set_default_ttl","set_secret_key","set_session_account","set_timestamp","set_ttl","timestamp","to_owned","try_from","try_into","ttl","type_id","vzip","AccountNamedKey","ContractNamedKey","DictionaryItemStrParams","DictionaryVariant","URefVariant","__clone_box","__clone_box","__clone_box","__clone_box","__clone_box","account_named_key","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","contract_named_key","default","describe","deserialize","deserialize","deserialize","deserialize","deserialize","dictionary","dictionary_item_str_params_to_casper_client","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from_abi","into","into","into","into","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","serialize","serialize","serialize","serialize","set_account_named_key","set_contract_named_key","set_dictionary","set_uref","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","uref","vzip","vzip","vzip","vzip","vzip","PaymentStrParams","__clone_box","borrow","borrow_mut","clone","clone_into","default","describe","fmt","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new","none","payment_amount","payment_args_complex","payment_args_json","payment_args_simple","payment_entry_point","payment_hash","payment_name","payment_package_hash","payment_package_name","payment_path","payment_str_params_to_casper_client","payment_version","ref_from_abi","ref_mut_from_abi","return_abi","set_payment_amount","set_payment_args_complex","set_payment_args_json","set_payment_args_simple","set_payment_entry_point","set_payment_hash","set_payment_name","set_payment_package_hash","set_payment_package_name","set_payment_path","set_payment_version","to_owned","try_from","try_into","type_id","vzip","SessionStrParams","__clone_box","borrow","borrow_mut","clone","clone_into","default","describe","fmt","from","from_abi","into","into_abi","is_none","is_session_transfer","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","session_args_complex","session_args_json","session_args_simple","session_bytes","session_entry_point","session_hash","session_name","session_package_hash","session_package_name","session_path","session_str_params_to_casper_client","session_version","set_is_session_transfer","set_session_args","set_session_args_complex","set_session_args_json","set_session_args_simple","set_session_bytes","set_session_entry_point","set_session_hash","set_session_name","set_session_package_hash","set_session_package_name","set_session_path","set_session_version","to_owned","try_from","try_into","type_id","vzip","DictionaryItemIdentifier","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new_from_account_info","new_from_contract_info","new_from_dictionary_key","new_from_seed_uref","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","try_from","try_into","type_id","vzip","Digest","ToDigest","__clone_box","as_ref","borrow","borrow_mut","clone","clone_into","describe","deserialize","encode_hex","encode_hex_upper","fmt","from","from","from","from","from_abi","from_bytes","from_digest","from_string","into","into_abi","is_empty","is_empty","is_none","long_ref_from_abi","new","new_js_alias","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","serialized_length","to_bytes","to_digest","to_digest","to_owned","to_string","try_from","try_into","type_id","vzip","write_bytes","EraId","__clone_box","borrow","borrow_mut","clone","clone_into","cmp","compare","default","describe","eq","equivalent","equivalent","equivalent","equivalent","fmt","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","new","none","partial_cmp","ref_from_abi","ref_mut_from_abi","return_abi","to_owned","try_from","try_into","type_id","value","vzip","GlobalStateIdentifier","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from_abi","from_block_hash","from_block_height","from_state_root_hash","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","try_from","try_into","type_id","vzip","Key","__clone_box","as_balance","as_dictionary","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from_abi","from_account","from_balance","from_bid","from_chainspec_registry","from_checksum_registry","from_deploy_info","from_dictionary_addr","from_dictionary_key","from_era_info","from_era_summary","from_formatted_str","from_formatted_str_js_alias","from_hash","from_system_contract_registry","from_transfer","from_unbond","from_uref","from_withdraw","into","into_abi","into_account","into_hash","into_uref","is_dictionary_key","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_formatted_string","to_owned","try_from","try_into","type_id","uref_to_hash","vzip","withdraw_to_unbond","Path","__clone_box","borrow","borrow_mut","clone","clone_into","default","describe","deserialize","fmt","fmt","from","from","from","from_abi","into","into_abi","is_empty","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","PeerEntry","__clone_box","address","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from_abi","into","into_abi","is_none","long_ref_from_abi","node_id","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","try_from","try_into","type_id","vzip","PublicKey","__clone_box","borrow","borrow_mut","clone","clone_into","cmp","compare","describe","deserialize","eq","equivalent","equivalent","equivalent","equivalent","fmt","fmt","from","from","from","from","from_abi","from_bytes","from_bytes","into","into_abi","is_none","long_ref_from_abi","new","none","partial_cmp","ref_from_abi","ref_mut_from_abi","return_abi","serialize","serialized_length","to_account_hash","to_bytes","to_owned","to_purse_uref","to_string","try_from","try_into","type_id","vzip","write_bytes","PurseIdentifier","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from","from","from","from_abi","from_main_purse_under_account_hash","from_main_purse_under_public_key","from_purse_uref","into","into_abi","is_none","long_ref_from_abi","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_owned","to_string","try_from","try_into","type_id","vzip","ConflictingArguments","Core","FailedToParseAccountHash","FailedToParseAccountIdentifier","FailedToParseDigest","FailedToParseInt","FailedToParseJsonArgs","FailedToParseKey","FailedToParsePublicKey","FailedToParsePurseIdentifier","FailedToParseStateIdentifier","FailedToParseTimeDiff","FailedToParseTimestamp","FailedToParseURef","FailedToParseUint","InvalidArgument","InvalidCLValue","JsonArgs","SdkError","borrow","borrow_mut","fmt","fmt","from","from","from","from","from","from","into","source","to_string","try_from","try_into","type_id","vzip","args","context","context","context","context","context","context","context","context","context","context","context","error","error","error","error","error","error","error","error","error","error","URef","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","fmt","from","from","from","from_abi","from_bytes","into","into_abi","is_none","long_ref_from_abi","new","none","ref_from_abi","ref_mut_from_abi","return_abi","serialize","to_formatted_string","to_owned","try_from","try_into","type_id","vzip","High","Low","Medium","Verbosity","__clone_box","borrow","borrow_mut","clone","clone_into","describe","deserialize","eq","fmt","from","from","from","from","from","from_abi","into","into_abi","is_none","none","return_abi","serialize","to_owned","try_from","try_into","type_id","vzip"],"q":[[0,"casper_rust_wasm_sdk"],[67,"casper_rust_wasm_sdk::helpers"],[80,"casper_rust_wasm_sdk::rpcs"],[99,"casper_rust_wasm_sdk::rpcs::get_balance"],[115,"casper_rust_wasm_sdk::rpcs::get_dictionary_item"],[126,"casper_rust_wasm_sdk::rpcs::query_global_state"],[237,"casper_rust_wasm_sdk::types"],[261,"casper_rust_wasm_sdk::types::access_rights"],[296,"casper_rust_wasm_sdk::types::account_hash"],[333,"casper_rust_wasm_sdk::types::account_identifier"],[366,"casper_rust_wasm_sdk::types::addr"],[370,"casper_rust_wasm_sdk::types::addr::dictionary_addr"],[390,"casper_rust_wasm_sdk::types::addr::hash_addr"],[410,"casper_rust_wasm_sdk::types::addr::transfer_addr"],[431,"casper_rust_wasm_sdk::types::addr::uref_addr"],[451,"casper_rust_wasm_sdk::types::block_hash"],[481,"casper_rust_wasm_sdk::types::block_identifier"],[526,"casper_rust_wasm_sdk::types::cl"],[527,"casper_rust_wasm_sdk::types::cl::bytes"],[570,"casper_rust_wasm_sdk::types::contract_hash"],[598,"casper_rust_wasm_sdk::types::contract_package_hash"],[626,"casper_rust_wasm_sdk::types::deploy"],[673,"casper_rust_wasm_sdk::types::deploy_hash"],[704,"casper_rust_wasm_sdk::types::deploy_params"],[709,"casper_rust_wasm_sdk::types::deploy_params::args_simple"],[737,"casper_rust_wasm_sdk::types::deploy_params::deploy_str_params"],[775,"casper_rust_wasm_sdk::types::deploy_params::dictionary_item_str_params"],[875,"casper_rust_wasm_sdk::types::deploy_params::payment_str_params"],[923,"casper_rust_wasm_sdk::types::deploy_params::session_str_params"],[974,"casper_rust_wasm_sdk::types::dictionary_item_identifier"],[1004,"casper_rust_wasm_sdk::types::digest"],[1049,"casper_rust_wasm_sdk::types::era_id"],[1084,"casper_rust_wasm_sdk::types::global_state_identifier"],[1114,"casper_rust_wasm_sdk::types::key"],[1168,"casper_rust_wasm_sdk::types::path"],[1200,"casper_rust_wasm_sdk::types::peer_entry"],[1228,"casper_rust_wasm_sdk::types::public_key"],[1274,"casper_rust_wasm_sdk::types::purse_identifier"],[1307,"casper_rust_wasm_sdk::types::sdk_error"],[1343,"casper_rust_wasm_sdk::types::sdk_error::SdkError"],[1365,"casper_rust_wasm_sdk::types::uref"],[1395,"casper_rust_wasm_sdk::types::verbosity"],[1425,"alloc::string"],[1426,"core::option"],[1427,"casper_client::rpcs::v1_4_5::put_deploy"],[1428,"casper_client::json_rpc::success_response"],[1429,"core::result"],[1430,"casper_client::rpcs::v1_6_0::get_account"],[1431,"casper_client::rpcs::v1_4_5::get_auction_info"],[1432,"casper_client::rpcs::v1_4_5::get_balance"],[1433,"casper_client::rpcs::v1_4_5::get_block"],[1434,"casper_client::rpcs::v1_4_5::get_block_transfers"],[1435,"casper_client::rpcs::v1_5_0::get_chainspec"],[1436,"casper_client::error"],[1437,"casper_client::rpcs::v1_5_0::get_deploy"],[1438,"casper_client::rpcs::v1_4_5::get_dictionary_item"],[1439,"casper_client::rpcs::v1_4_5::get_era_info"],[1440,"casper_client::rpcs::v1_5_0::get_era_summary"],[1441,"casper_client::rpcs::v1_5_0::get_node_status"],[1442,"casper_client::rpcs::v1_4_5::get_peers"],[1443,"casper_client::rpcs::v1_4_5::get_state_root_hash"],[1444,"casper_client::rpcs::v1_4_5::get_validator_changes"],[1445,"casper_client::rpcs::v1_4_5::list_rpcs"],[1446,"casper_client::types::deploy"],[1447,"casper_client::rpcs::v1_5_0::query_balance"],[1448,"casper_client::rpcs::v1_6_0::query_global_state"],[1449,"casper_client::rpcs::v1_5_0::speculative_exec"],[1450,"core::any"],[1451,"casper_types::cl_value"],[1452,"serde_json::value"],[1453,"alloc::vec"],[1454,"casper_types::runtime_args"],[1455,"wasm_bindgen"],[1456,"serde::ser"],[1457,"casper_client::types::timestamp"],[1458,"casper_client::types::time_diff"],[1459,"casper_types::crypto::error"],[1460,"casper_types::crypto::asymmetric_key"],[1461,"dyn_clone::sealed"],[1462,"core::fmt"],[1463,"core::fmt"],[1464,"serde::ser"],[1465,"casper_types::account::account_hash"],[1466,"casper_types::bytesrepr"],[1467,"casper_client::rpcs::v1_6_0::get_account"],[1468,"casper_types::key"],[1469,"casper_client::types::block"],[1470,"casper_client::rpcs::common"],[1471,"casper_types::cl_type"],[1472,"core::cmp"],[1473,"core::iter::traits::collect"],[1474,"casper_types::bytesrepr::bytes"],[1475,"js_sys"],[1476,"core::hash"],[1477,"casper_types::contracts"],[1478,"casper_types::contracts"],[1479,"core::iter::traits::collect"],[1480,"casper_client::cli::dictionary_item_str_params"],[1481,"js_sys"],[1482,"casper_client::cli::session_str_params"],[1483,"casper_client::rpcs::v1_4_5::get_dictionary_item"],[1484,"casper_types::era_id"],[1485,"casper_client::rpcs::common"],[1486,"casper_client::cli::error"],[1487,"casper_types::cl_value"],[1488,"core::error"],[1489,"casper_types::uref"]],"d":["","","","","Calls a smart contract entry point with the specified …","","","","Perform a deploy operation.","","Returns the argument unchanged.","","Retrieves account information based on the provided …","Retrieves auction information based on the provided …","Retrieves balance information based on the provided …","Retrieves block information using the provided options.","Retrieves block transfers information based on the …","Asynchronously retrieves the chainspec.","Retrieves deploy information based on the provided options.","Retrieves dictionary item information based on the …","","Retrieves era summary information based on the provided …","","Retrieves node status information based on the provided …","Retrieves peers.","Retrieves state root hash information based on the …","Retrieves validator changes based on the provided options.","","","","Installs a smart contract with the specified parameters …","Calls U::from(self).","","","Lists available RPCs based on the provided options.","","Creates a deploy using the provided parameters.","Creates a transfer deploy with the provided parameters.","","","Puts a deploy based on the provided options.","Retrieves balance information based on the provided …","","Query a contract dictionary item.","","Query a contract key.","Retrieves global state information based on the provided …","Builds parameters for querying global state based on the …","","","","","","","Signs a deploy using the provided secret key.","","This function allows executing a deploy speculatively.","Perform speculative execution.","","Perform a speculative transfer.","","Perform a transfer of funds.","","","","","","Converts a CLValue to a JSON Value.","Gets the current timestamp.","Gets the gas price or returns the default value if not …","Gets the time to live (TTL) value or returns the default …","Converts a hexadecimal string to a regular string.","Converts a hexadecimal string to a vector of unsigned …","Inserts a JavaScript value argument into a RuntimeArgs map.","Pretty prints a serializable value as a JSON string.","Converts motes to CSPR (Casper tokens).","Parses a timestamp string into a Timestamp object.","Parses a TTL (time to live) string into a TimeDiff object.","Converts a secret key in PEM format to its corresponding …","Parses a secret key in PEM format into a SecretKey object.","","","","","","","","","","","","","","","","","","","","Enum representing different ways to specify the purse uref.","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","Enum to represent input for KeyIdentifier.","","Enum to represent input for PathIdentifier.","Options for the query_global_state method.","Struct to store parameters for querying global state.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","",""],"i":[0,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,0,28,28,28,28,28,28,28,28,28,28,65,0,66,0,0,0,0,65,66,64,45,65,66,64,45,65,66,43,64,45,65,66,43,64,45,65,66,64,45,65,66,45,64,45,64,45,64,45,65,66,43,64,64,45,65,66,43,64,45,45,64,45,65,66,43,64,45,64,45,45,43,45,64,45,43,45,43,45,43,64,45,45,43,45,64,45,64,45,64,45,64,45,45,43,45,64,45,65,66,64,45,65,66,43,64,45,65,66,43,64,45,65,66,43,45,43,64,45,65,66,43,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,0,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,0,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,0,0,0,0,0,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,79,0,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,0,82,82,82,82,82,82,0,82,82,82,82,82,82,82,82,82,82,82,82,82,0,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,0,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,0,15,0,15,46,15,46,15,46,15,46,15,46,15,46,46,46,15,46,46,15,46,46,46,46,15,46,46,46,46,46,46,46,46,46,46,15,46,15,46,15,46,15,46,15,0,0,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,89,0,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,0,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,0,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,0,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,0,0,0,0,0,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,0,2,2,2,2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,107,108,109,110,106,106,107,108,109,110,106,107,108,109,110,106,107,108,109,110,106,107,108,109,110,106,106,106,106,107,108,109,110,106,106,0,107,108,109,110,106,107,108,109,110,106,106,107,108,109,110,106,106,106,106,106,106,106,106,106,107,108,109,110,106,106,106,106,106,107,108,109,110,106,107,108,109,110,106,107,108,109,110,106,107,108,109,110,106,106,107,108,109,110,106,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,0,0,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,20,86,86,86,86,86,86,86,86,86,86,86,86,20,86,86,86,86,86,86,86,86,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,0,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,122,0,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,125,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,137,138,139,140,141,142,143,144,145,146,137,147,138,139,140,141,142,143,144,145,146,147,0,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,11,11,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11],"f":[0,[-1,-2,[],[]],[-1,-2,[],[]],0,[[1,2,3,4,[6,[5]]],[[10,[[8,[7]],9]]]],0,[[],1],0,[[1,2,3,4,[6,[11]],[6,[5]]],[[10,[[8,[7]],9]]]],[[],12],[-1,-1,[]],[13,1],[[1,[6,[14]],[6,[5]],[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[16]],9]]]],[[1,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[17]],9]]]],[[1,-1,18,[6,[11]],[6,[5]]],[[10,[[8,[19]],9]]],20],[[1,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[21]],9]]]],[[1,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[22]],9]]]],[[1,[6,[11]],[6,[5]]],[[10,[[8,[23]],24]]]],[[1,25,[6,[26]],[6,[11]],[6,[5]]],[[10,[[8,[27]],24]]]],[[1,-1,28,[6,[11]],[6,[5]]],[[10,[[8,[29]],9]]],20],[[1,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[30]],9]]]],[[1,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[31]],9]]]],[[1,[6,[5]]],5],[[1,[6,[11]],[6,[5]]],[[10,[[8,[32]],24]]]],[[1,[6,[11]],[6,[5]]],[[10,[[8,[33]],24]]]],[[1,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[34]],9]]]],[[1,[6,[11]],[6,[5]]],[[10,[[8,[35]],24]]]],[[1,[6,[11]]],11],0,0,[[1,2,3,4,[6,[5]]],[[10,[[8,[7]],9]]]],[-1,-2,[],[]],[1,13],[[],26],[[1,[6,[11]],[6,[5]]],[[10,[[8,[36]],24]]]],[[]],[[1,2,3,4],[[10,[37,9]]]],[[1,38,38,[6,[5]],2,4],[[10,[37,9]]]],[[[6,[5]],[6,[11]]],1],[[]],[[1,39,[6,[11]],[6,[5]]],[[10,[[8,[7]],24]]]],[[1,[6,[40]],[6,[5]],[6,[41]],[6,[5]],[6,[5]],[6,[11]],[6,[5]]],[[10,[[8,[42]],9]]]],0,[[1,-1,28,[6,[11]],[6,[5]]],[[10,[[8,[29]],9]]],20],0,[[1,43],[[10,[[8,[44]],9]]]],[[1,43],[[10,[[8,[44]],9]]]],[[1,[6,[45]]],[[10,[43,9]]]],[[]],[[]],[-1,[],[]],0,[[1,[6,[5]]],[[10,[12,5]]]],[[1,[6,[11]]],[[10,[12,5]]]],[[1,37,38],39],0,[[1,2,3,4,[6,[46]],[6,[11]],[6,[5]]],[[10,[[8,[47]],9]]]],[[1,39,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[47]],9]]]],0,[[1,38,38,[6,[5]],2,4,[6,[15]],[6,[11]],[6,[5]]],[[10,[[8,[47]],9]]]],0,[[1,38,38,[6,[5]],2,4,[6,[11]],[6,[5]]],[[10,[[8,[7]],9]]]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],0,[-1,-2,[],[]],[49,[[6,[50]]]],[[[6,[5]]],5],[[[6,[51]]],51],[[[6,[38]]],5],[38,5],[38,[[53,[52]]]],[[54,55],54],[[-1,[6,[11]]],5,56],[38,5],[38,[[10,[57,9]]]],[38,[[10,[58,9]]]],[38,[[10,[5,59]]]],[38,[[10,[60,59]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[18,18],[[-1,-2],12,[],[]],[[18,62],63],[-1,-1,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-1,[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,[[-1,61],12,[]],[[-1,61],12,[]],[[-1,61],12,[]],[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[64,64],[45,45],[65,65],[66,66],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[],45],[[],12],[[],12],[-1,[[10,[64]]],67],[-1,[[10,[45]]],67],[[64,62],63],[[45,62],63],[[65,62],63],[[66,62],63],[[43,62],63],[-1,-1,[]],[44,64],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[13,64],[13,45],0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[64,13],[45,13],[[],26],[[],26],0,0,0,[[]],[[]],0,0,0,0,0,[[]],[[]],0,0,0,[[]],[[]],[[]],[[]],[-1,[],[]],[-1,[],[]],[[64,-1],10,68],[[45,-1],10,68],0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,48,[]],[-1,48,[]],[-1,48,[]],[-1,48,[]],0,0,[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],52],[[],52],[-1,-2,[],[]],[-1,-2,[],[]],[[],69],[[],12],[[69,62],63],[70,69],[-1,-1,[]],[13,69],[[26,26,26],69],[-1,-2,[],[]],[69,13],[69,26],[[],26],[69,26],[69,26],[69,26],[[]],[52,[[10,[69,55]]]],[[],52],[[]],[[],52],[[],52],[[],52],[[],52],[[]],[[]],[-1,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],[[],52],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[71,71],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[71]]],67],[[71,62],63],[-1,-1,[]],[41,71],[72,71],[14,71],[13,71],[[[53,[52]]],71],[[[73,[52]]],[[10,[[12,[71,[73,[52]]]],74]]]],[38,[[10,[71,55]]]],[75,71],[-1,-2,[],[]],[71,13],[[],26],[[]],[38,[[10,[71,55]]]],[[]],[[]],[[]],[-1,[],[]],[[71,-1],10,68],[71,76],[71,[[10,[[53,[52]],74]]]],[71,5],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],[[71,[53,[52]]],[[10,[12,74]]]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[14,14],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[14]]],67],[[14,62],63],[71,14],[-1,-1,[]],[77,14],[75,14],[13,14],[75,14],[71,14],[38,[[10,[14,55]]]],[-1,-2,[],[]],[14,13],[[],26],[[]],[38,[[10,[14,55]]]],[[]],[[]],[[]],[-1,[],[]],[[14,-1],10,68],[-1,-2,[],[]],[14,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[],12],[-1,-1,[]],[78,79],[13,79],[-1,-2,[],[]],[79,13],[[],26],[[]],[[[53,[52]]],[[10,[79,55]]]],[[]],[[]],[[]],[-1,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[],12],[80,81],[-1,-1,[]],[13,81],[-1,-2,[],[]],[81,13],[[],26],[[]],[[[53,[52]]],[[10,[81,55]]]],[[]],[[]],[[]],[-1,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[],12],[[[53,[52]]],82],[-1,-1,[]],[13,82],[[[53,[52]]],82],[-1,-2,[],[]],[82,13],[[],26],[[]],[[[53,[52]]],[[10,[82,55]]]],[[]],[[]],[[]],[-1,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[],12],[83,84],[-1,-1,[]],[13,84],[-1,-2,[],[]],[84,13],[[],26],[[]],[[[53,[52]]],[[10,[84,55]]]],[[]],[[]],[[]],[-1,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[85,85],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[85]]],67],[[85,62],63],[-1,-1,[]],[86,85],[87,85],[13,85],[86,[[10,[85,55]]]],[-1,-2,[],[]],[85,13],[[],26],[[]],[38,[[10,[85,55]]]],[[]],[[]],[[]],[-1,[],[]],[[85,-1],10,68],[-1,-2,[],[]],[85,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,[[-1,61],12,[]],[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[46,46],[15,15],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[46]]],67],[[46,62],63],[[15,62],63],[-1,-1,[]],[88,46],[-1,-1,[]],[13,46],[85,46],[51,46],[-1,-2,[],[]],[-1,-2,[],[]],[46,13],[[],26],[[]],[46,46],[[]],[[]],[[]],[-1,[],[]],[[46,-1],10,68],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,48,[]],[-1,-2,[],[]],[-1,-2,[],[]],0,0,[[-1,61],12,[]],[89,[[73,[52]]]],[-1,-2,[],[]],[-1,-2,[],[]],[[],90],[89,89],[[-1,-2],12,[],[]],[[89,89],91],[[-1,-2],91,[],[]],[[],89],[89],[[],12],[-1,-2,[],[[93,[92]]]],[-1,-2,[],[[93,[92]]]],[[89,89],26],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[89,62],63],[94,89],[[[53,[52]]],89],[-1,-1,[]],[[[73,[52]]],89],[13,89],[95,89],[[89,-1],12,96],[-1,-2,[],[]],[89,13],[[],26],[[]],[[],89],[[]],[[89,89],[[6,[91]]]],[[]],[[]],[-1,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[],12],[[97,62],63],[-1,-1,[]],[98,97],[13,97],[[[53,[52]]],97],[[[73,[52]]],[[10,[[12,[97,[73,[52]]]],74]]]],[38,[[10,[97,55]]]],[-1,-2,[],[]],[97,13],[[],26],[[]],[38,[[10,[97,55]]]],[[]],[[]],[[]],[-1,[],[]],[97,76],[97,[[10,[[53,[52]],74]]]],[97,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],[[97,[53,[52]]],[[10,[12,74]]]],0,[-1,-2,[],[]],[-1,-2,[],[]],[[],12],[[99,62],63],[-1,-1,[]],[100,99],[13,99],[[[73,[52]]],[[10,[[12,[99,[73,[52]]]],74]]]],[[[53,[52]]],99],[38,[[10,[99,55]]]],[-1,-2,[],[]],[99,13],[[],26],[[]],[38,[[10,[99,55]]]],[[]],[[]],[[]],[-1,[],[]],[99,76],[99,[[10,[[53,[52]],74]]]],[99,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],[[99,[53,[52]]],[[10,[12,74]]]],0,[[-1,61],12,[]],[39,5],[[39,5,[6,[5]]],39],[39,54],[-1,-2,[],[]],[-1,-2,[],[]],[39,5],[39,39],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[39]]],67],[[39,62],63],[37,39],[-1,-1,[]],[13,39],[-1,-2,[],[]],[39,13],[[],26],[[]],[[]],[[]],[[]],[-1,[],[]],[[39,-1],10,68],[[39,38],39],[39,5],[39,[[10,[5,5]]]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[39,5],[-1,48,[]],[39,26],[-1,-2,[],[]],[[39,75,[6,[5]]],39],[[39,38,[6,[5]]],39],[[39,38,[6,[5]]],39],[[39,97,[6,[5]]],39],[[39,89,[6,[5]]],39],[[39,99,[6,[5]]],39],[[2,3,4],[[10,[39,5]]]],[[39,[6,[5]]],39],[[39,38,[6,[5]]],39],[[39,38,[6,[5]]],39],[[38,38,[6,[5]],2,4],[[10,[39,5]]]],[[39,38,[6,[5]]],39],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[25,25],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[25]]],67],[[25,62],63],[101,25],[86,25],[102,25],[-1,-1,[]],[13,25],[86,[[10,[25,55]]]],[-1,-2,[],[]],[25,13],[[],26],[[]],[38,[[10,[25,55]]]],[[]],[[]],[[]],[-1,[],[]],[[25,-1],10,68],[-1,-2,[],[]],[25,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,0,0,[[-1,61],12,[]],[103,[[73,[5]]]],[-1,-2,[],[]],[-1,-2,[],[]],[103,103],[[-1,-2],12,[],[]],[[],103],[[],12],[[103,62],63],[[[53,[5]]],103],[-1,-1,[]],[13,103],[-1,103,104],[-1,-2,[],[]],[103,13],[[],26],[[]],[55,103],[[]],[[]],[[]],[-1,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[2,[[6,[5]]]],[2,2],[[-1,-2],12,[],[]],[[],2],[2,105],[[],12],[[2,62],63],[-1,-1,[]],[13,2],[-1,-2,[],[]],[2,13],[[],26],[[]],[[38,38,[6,[5]],[6,[5]],[6,[5]]],2],[[]],[[]],[[]],[-1,[],[]],[2,[[6,[5]]]],[2,[[6,[5]]]],[[2,38],12],[2,12],[2,12],[[2,38],12],[[2,38],12],[[2,[6,[5]]],12],[[2,[6,[5]]],12],[2,[[6,[5]]]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[2,[[6,[5]]]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,0,[[-1,61],12,[]],[[-1,61],12,[]],[[-1,61],12,[]],[[-1,61],12,[]],[[-1,61],12,[]],[106,[[6,[107]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[107,107],[108,108],[109,109],[110,110],[106,106],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[[-1,-2],12,[],[]],[106,[[6,[108]]]],[[],106],[[],12],[-1,[[10,[107]]],67],[-1,[[10,[108]]],67],[-1,[[10,[109]]],67],[-1,[[10,[110]]],67],[-1,[[10,[106]]],67],[106,[[6,[110]]]],[106,111],[[107,62],63],[[108,62],63],[[109,62],63],[[110,62],63],[[106,62],63],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[-1,-1,[]],[13,106],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[106,13],[[],26],[[]],[[],106],[[]],[[]],[[]],[-1,[],[]],[[107,-1],10,68],[[108,-1],10,68],[[109,-1],10,68],[[110,-1],10,68],[[106,-1],10,68],[[106,38,38,38],12],[[106,38,38,38],12],[[106,38],12],[[106,38,38],12],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,48,[]],[-1,48,[]],[-1,48,[]],[-1,48,[]],[106,[[6,[109]]]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[4,4],[[-1,-2],12,[],[]],[[],4],[[],12],[[4,62],63],[-1,-1,[]],[13,4],[-1,-2,[],[]],[4,13],[[],26],[[]],[[[6,[5]],[6,[5]],[6,[5]],[6,[5]],[6,[5]],[6,[5]],[6,[112]],[6,[5]],[6,[5]],[6,[5]],[6,[5]]],4],[[]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,[[6,[112]]]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,[[6,[5]]]],[4,113],[4,[[6,[5]]]],[[]],[[]],[-1,[],[]],[[4,38],12],[[4,38],12],[[4,38],12],[[4,112],12],[[4,38],12],[[4,38],12],[[4,38],12],[[4,38],12],[[4,38],12],[[4,38],12],[[4,38],12],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[3,3],[[-1,-2],12,[],[]],[[],3],[[],12],[[3,62],63],[-1,-1,[]],[13,3],[-1,-2,[],[]],[3,13],[[],26],[3,[[6,[26]]]],[[]],[[[6,[5]],[6,[5]],[6,[5]],[6,[5]],[6,[5]],[6,[89]],[6,[112]],[6,[5]],[6,[5]],[6,[5]],[6,[5]],[6,[26]]],3],[[]],[[]],[[]],[-1,[],[]],[3,[[6,[5]]]],[3,[[6,[5]]]],[3,[[6,[103]]]],[3,[[6,[89]]]],[3,[[6,[5]]]],[3,[[6,[5]]]],[3,[[6,[5]]]],[3,[[6,[5]]]],[3,[[6,[5]]]],[3,[[6,[5]]]],[3,114],[3,[[6,[5]]]],[[3,26],12],[[3,[53,[5]]],12],[[3,38],12],[[3,38],12],[[3,112],12],[[3,89],12],[[3,38],12],[[3,38],12],[[3,38],12],[[3,38],12],[[3,38],12],[[3,38],12],[[3,38],12],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[115,115],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[115]]],67],[[115,62],63],[-1,-1,[]],[116,115],[13,115],[-1,-2,[],[]],[115,13],[[],26],[[]],[[38,38,38],[[10,[115,55]]]],[[38,38,38],[[10,[115,55]]]],[38,[[10,[115,55]]]],[[38,38],[[10,[115,55]]]],[[]],[[]],[[]],[-1,[],[]],[[115,-1],10,68],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,[[-1,61],12,[]],[86,[[73,[52]]]],[-1,-2,[],[]],[-1,-2,[],[]],[86,86],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[86]]],67],[-1,-2,[],[[93,[92]]]],[-1,-2,[],[[93,[92]]]],[[86,62],63],[117,86],[38,86],[[[118,[52]]],86],[-1,-1,[]],[13,86],[[[73,[52]]],[[10,[[12,[86,[73,[52]]]],74]]]],[[[53,[52]]],[[10,[86,9]]]],[38,[[10,[86,55]]]],[-1,-2,[],[]],[86,13],[-1,26,[]],[86,26],[[],26],[[]],[38,[[10,[86,9]]]],[38,[[10,[86,55]]]],[[]],[[]],[[]],[-1,[],[]],[[86,-1],10,68],[86,76],[86,[[10,[[53,[52]],74]]]],[-1,86,[]],[86,86],[-1,-2,[],[]],[86,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],[[86,[53,[52]]],[[10,[12,74]]]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[119,119],[[-1,-2],12,[],[]],[[119,119],91],[[-1,-2],91,[],[]],[[],119],[[],12],[[119,119],26],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[119,62],63],[-1,-1,[]],[120,119],[13,119],[-1,-2,[],[]],[119,13],[[],26],[[]],[51,119],[[]],[[119,119],[[6,[91]]]],[[]],[[]],[-1,[],[]],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[119,51],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[40,40],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[40]]],67],[[40,62],63],[121,40],[-1,-1,[]],[13,40],[85,40],[51,40],[86,40],[-1,-2,[],[]],[40,13],[[],26],[[]],[40,40],[[]],[[]],[[]],[-1,[],[]],[[40,-1],10,68],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[122,[[6,[84]]]],[122,[[6,[79]]]],[-1,-2,[],[]],[-1,-2,[],[]],[122,122],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[122]]],67],[[122,62],63],[-1,-1,[]],[123,122],[13,122],[71,122],[84,122],[71,122],[[],122],[[],122],[25,122],[79,122],[[124,[73,[52]]],122],[119,122],[[],122],[38,[[10,[122,9]]]],[55,[[10,[122,55]]]],[81,122],[[],122],[[[53,[52]]],82],[71,122],[124,122],[71,122],[-1,-2,[],[]],[122,13],[122,[[6,[71]]]],[122,[[6,[81]]]],[122,[[6,[124]]]],[122,26],[[],26],[[]],[122,[[10,[122,55]]]],[[]],[[]],[[]],[-1,[],[]],[[122,-1],10,68],[122,5],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[122,[[6,[122]]]],[-1,-2,[],[]],[122,[[6,[122]]]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[125,125],[[-1,-2],12,[],[]],[[],125],[[],12],[-1,[[10,[125]]],67],[[125,62],63],[[125,62],63],[-1,-1,[]],[5,125],[[[53,[5]]],125],[13,125],[-1,-2,[],[]],[125,13],[125,26],[[],26],[[]],[55,125],[[]],[[]],[[]],[-1,[],[]],[[125,-1],10,68],[-1,-2,[],[]],[-1,5,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[126,5],[-1,-2,[],[]],[-1,-2,[],[]],[126,126],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[126]]],67],[[126,62],63],[127,126],[-1,-1,[]],[13,126],[-1,-2,[],[]],[126,13],[[],26],[[]],[126,5],[[]],[[]],[[]],[-1,[],[]],[[126,-1],10,68],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[75,75],[[-1,-2],12,[],[]],[[75,75],91],[[-1,-2],91,[],[]],[[],12],[-1,[[10,[75]]],67],[[75,75],26],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[-1,-2],26,[],[]],[[75,62],63],[[75,62],63],[-1,-1,[]],[41,75],[128,75],[14,75],[13,75],[[[73,[52]]],[[10,[[12,[75,[73,[52]]]],74]]]],[[[53,[52]]],75],[-1,-2,[],[]],[75,13],[[],26],[[]],[38,[[10,[75,55]]]],[[]],[[75,75],[[6,[91]]]],[[]],[[]],[-1,[],[]],[[75,-1],10,68],[75,76],[75,71],[75,[[10,[[53,[52]],74]]]],[-1,-2,[],[]],[75,124],[-1,5,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],[[75,[53,[52]]],[[10,[12,74]]]],0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[41,41],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[41]]],67],[[41,62],63],[124,41],[129,41],[71,41],[75,41],[-1,-1,[]],[13,41],[71,41],[75,41],[124,41],[-1,-2,[],[]],[41,13],[[],26],[[]],[[]],[[]],[[]],[-1,[],[]],[[41,-1],10,68],[-1,-2,[],[]],[41,5],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[-1,-2,[],[]],[-1,-2,[],[]],[[9,62],63],[[9,62],63],[130,9],[131,9],[-1,-1,[]],[132,9],[24,9],[133,9],[-1,-2,[],[]],[9,[[6,[134]]]],[-1,5,[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[124,124],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[124]]],67],[[124,62],63],[-1,-1,[]],[135,124],[41,124],[13,124],[[[53,[52]],52],124],[-1,-2,[],[]],[124,13],[[],26],[[]],[[38,52],[[10,[124,55]]]],[[]],[[]],[[]],[-1,[],[]],[[124,-1],10,68],[124,5],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]],0,0,0,0,[[-1,61],12,[]],[-1,-2,[],[]],[-1,-2,[],[]],[11,11],[[-1,-2],12,[],[]],[[],12],[-1,[[10,[11]]],67],[[11,11],26],[[11,62],63],[-1,-1,[]],[38,11],[5,11],[136,11],[51,11],[13,11],[-1,-2,[],[]],[11,13],[13,26],[[]],[-1,[],[]],[[11,-1],10,68],[-1,-2,[],[]],[-1,[[10,[-2]]],[],[]],[-1,[[10,[-2]]],[],[]],[-1,48,[]],[-1,-2,[],[]]],"c":[20],"p":[[3,"SDK",0],[3,"DeployStrParams",737],[3,"SessionStrParams",923],[3,"PaymentStrParams",875],[3,"String",1425],[4,"Option",1426],[3,"PutDeployResult",1427],[3,"SuccessResponse",1428],[4,"SdkError",1307],[4,"Result",1429],[4,"Verbosity",1395],[15,"tuple"],[15,"u32"],[3,"AccountIdentifier",333],[4,"BlockIdentifierInput",481],[3,"GetAccountResult",1430],[3,"GetAuctionInfoResult",1431],[4,"GetBalanceInput",99],[3,"GetBalanceResult",1432],[8,"ToDigest",1004],[3,"GetBlockResult",1433],[3,"GetBlockTransfersResult",1434],[3,"GetChainspecResult",1435],[4,"Error",1436],[3,"DeployHash",673],[15,"bool"],[3,"GetDeployResult",1437],[4,"DictionaryItemInput",115],[3,"GetDictionaryItemResult",1438],[3,"GetEraInfoResult",1439],[3,"GetEraSummaryResult",1440],[3,"GetNodeStatusResult",1441],[3,"GetPeersResult",1442],[3,"GetStateRootHashResult",1443],[3,"GetValidatorChangesResult",1444],[3,"ListRpcsResult",1445],[3,"Deploy",1446],[15,"str"],[3,"Deploy",626],[3,"GlobalStateIdentifier",1084],[3,"PurseIdentifier",1274],[3,"QueryBalanceResult",1447],[3,"QueryGlobalStateParams",126],[3,"QueryGlobalStateResult",1448],[3,"QueryGlobalStateOptions",126],[3,"BlockIdentifier",481],[3,"SpeculativeExecResult",1449],[3,"TypeId",1450],[3,"CLValue",1451],[4,"Value",1452],[15,"u64"],[15,"u8"],[3,"Vec",1453],[3,"RuntimeArgs",1454],[3,"JsValue",1455],[8,"Serialize",1456],[3,"Timestamp",1457],[3,"TimeDiff",1458],[4,"ErrorExt",1459],[4,"SecretKey",1460],[3,"Private",1461],[3,"Formatter",1462],[6,"Result",1462],[3,"QueryGlobalStateResult",126],[4,"KeyIdentifierInput",126],[4,"PathIdentifierInput",126],[8,"Deserializer",1463],[8,"Serializer",1456],[3,"AccessRights",261],[3,"AccessRights",1464],[3,"AccountHash",296],[3,"AccountHash",1465],[15,"slice"],[4,"Error",1466],[3,"PublicKey",1228],[15,"usize"],[4,"AccountIdentifier",1430],[6,"DictionaryAddr",1467],[3,"DictionaryAddr",370],[6,"HashAddr",1467],[3,"HashAddr",390],[3,"TransferAddr",410],[6,"URefAddr",1468],[3,"URefAddr",431],[3,"BlockHash",451],[3,"Digest",1004],[3,"BlockHash",1469],[4,"BlockIdentifier",1470],[3,"Bytes",527],[4,"CLType",1471],[4,"Ordering",1472],[15,"char"],[8,"FromIterator",1473],[3,"Bytes",1474],[3,"Uint8Array",1475],[8,"Hasher",1476],[3,"ContractHash",570],[3,"ContractHash",1477],[3,"ContractPackageHash",598],[3,"ContractPackageHash",1477],[3,"DeployHash",1446],[3,"DeployHash",1478],[3,"ArgsSimple",709],[8,"IntoIterator",1473],[3,"DeployStrParams",1479],[3,"DictionaryItemStrParams",775],[3,"AccountNamedKey",775],[3,"ContractNamedKey",775],[3,"URefVariant",775],[3,"DictionaryVariant",775],[4,"DictionaryItemStrParams",1480],[3,"Array",1475],[3,"PaymentStrParams",1481],[3,"SessionStrParams",1482],[3,"DictionaryItemIdentifier",974],[4,"DictionaryItemIdentifier",1438],[3,"Digest",1483],[15,"array"],[3,"EraId",1049],[3,"EraId",1484],[4,"GlobalStateIdentifier",1470],[3,"Key",1114],[4,"Key",1467],[3,"URef",1365],[3,"Path",1168],[3,"PeerEntry",1200],[3,"PeerEntry",1442],[4,"PublicKey",1460],[4,"PurseIdentifier",1447],[3,"Error",1485],[4,"CliError",1486],[4,"CLValueError",1451],[3,"Error",1487],[8,"Error",1488],[3,"URef",1468],[4,"Verbosity",1489],[13,"ConflictingArguments",1343],[13,"FailedToParseKey",1343],[13,"FailedToParsePublicKey",1343],[13,"FailedToParseAccountHash",1343],[13,"FailedToParseURef",1343],[13,"FailedToParseInt",1343],[13,"FailedToParseTimeDiff",1343],[13,"FailedToParseTimestamp",1343],[13,"FailedToParseUint",1343],[13,"FailedToParseDigest",1343],[13,"InvalidArgument",1343]]}\
+}');
+if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
+if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
diff --git a/docs/api-rust/settings.html b/docs/api-rust/settings.html
new file mode 100644
index 000000000..7ac7c1e27
--- /dev/null
+++ b/docs/api-rust/settings.html
@@ -0,0 +1 @@
+Rustdoc settings
use crate::debug::error;
+use crate::types::public_key::PublicKey;
+use crate::types::sdk_error::SdkError;
+use crate::types::verbosity::Verbosity;
+use casper_client::cli::JsonArg;
+use casper_client::types::{Deploy, TimeDiff, Timestamp};
+use casper_types::cl_value::cl_value_to_json as cl_value_to_json_from_casper_types;
+use casper_types::{CLValue, ErrorExt, PublicKey as CasperTypesPublicKey, SecretKey};
+use casper_types::{NamedArg, RuntimeArgs};
+use chrono::{DateTime, NaiveDateTime, SecondsFormat, Utc};
+use gloo_utils::format::JsValueSerdeExt;
+use rust_decimal::prelude::*;
+use serde::Serialize;
+use serde_json::Value;
+use std::str::FromStr;
+use wasm_bindgen::{JsCast, JsValue};
+
+/// Converts a CLValue to a JSON Value.
+///
+/// # Arguments
+///
+/// * `cl_value` - The CLValue to convert.
+///
+/// # Returns
+///
+/// A JSON Value representing the CLValue data.
+pub fn cl_value_to_json(cl_value: &CLValue) -> Option<Value> {
+ cl_value_to_json_from_casper_types(cl_value)
+}
+
+/// Gets the current timestamp.
+///
+/// # Arguments
+///
+/// * `timestamp` - An optional timestamp value in milliseconds since the Unix epoch.
+///
+/// # Returns
+///
+/// A string containing the current timestamp in RFC3339 format.
+pub fn get_current_timestamp(timestamp: Option<String>) -> String {
+ let parsed_timestamp = timestamp.as_ref().and_then(|ts| ts.parse::<i64>().ok());
+ let current_timestamp = parsed_timestamp
+ .map(|parsed_time| {
+ NaiveDateTime::from_timestamp_opt(parsed_time / 1000, 0)
+ .map(|naive_time| DateTime::<Utc>::from_utc(naive_time, Utc))
+ .unwrap_or_else(Utc::now)
+ })
+ .unwrap_or_else(Utc::now);
+ current_timestamp.to_rfc3339_opts(SecondsFormat::Secs, true)
+}
+
+/// Gets the time to live (TTL) value or returns the default value if not provided.
+///
+/// # Arguments
+///
+/// * `ttl` - An optional TTL value as a string.
+///
+/// # Returns
+///
+/// A string containing the TTL value or the default TTL if not provided.
+pub fn get_ttl_or_default(ttl: Option<&str>) -> String {
+ if let Some(ttl) = ttl {
+ ttl.to_string()
+ } else {
+ Deploy::DEFAULT_TTL.to_string()
+ }
+}
+
+/// Parses a timestamp string into a `Timestamp` object.
+///
+/// # Arguments
+///
+/// * `value` - The timestamp string to parse.
+///
+/// # Returns
+///
+/// A `Result` containing the parsed `Timestamp` or an error if parsing fails.
+pub fn parse_timestamp(value: &str) -> Result<Timestamp, SdkError> {
+ Timestamp::from_str(value).map_err(|error| SdkError::FailedToParseTimestamp {
+ context: "timestamp",
+ error,
+ })
+}
+
+/// Parses a TTL (time to live) string into a `TimeDiff` object.
+///
+/// # Arguments
+///
+/// * `value` - The TTL string to parse.
+///
+/// # Returns
+///
+/// A `Result` containing the parsed `TimeDiff` or an error if parsing fails.
+pub fn parse_ttl(value: &str) -> Result<TimeDiff, SdkError> {
+ TimeDiff::from_str(value).map_err(|error| SdkError::FailedToParseTimeDiff {
+ context: "ttl",
+ error,
+ })
+}
+
+/// Gets the gas price or returns the default value if not provided.
+///
+/// # Arguments
+///
+/// * `gas_price` - An optional gas price value.
+///
+/// # Returns
+///
+/// The gas price or the default gas price if not provided.
+pub fn get_gas_price_or_default(gas_price: Option<u64>) -> u64 {
+ gas_price.unwrap_or(Deploy::DEFAULT_GAS_PRICE)
+}
+
+/// Gets the value as a string or returns an empty string if not provided.
+///
+/// # Arguments
+///
+/// * `opt_str` - An optional string value.
+///
+/// # Returns
+///
+/// The string value or an empty string if not provided.
+pub(crate) fn get_str_or_default(opt_str: Option<&String>) -> &str {
+ opt_str.map(String::as_str).unwrap_or_default()
+}
+
+/// Parses a secret key in PEM format into a `SecretKey` object.
+///
+/// # Arguments
+///
+/// * `secret_key` - The secret key in PEM format.
+///
+/// # Returns
+///
+/// A `Result` containing the parsed `SecretKey` or an error if parsing fails.
+pub fn secret_key_from_pem(secret_key: &str) -> Result<SecretKey, ErrorExt> {
+ SecretKey::from_pem(secret_key)
+}
+
+/// Converts a secret key in PEM format to its corresponding public key as a string.
+///
+/// # Arguments
+///
+/// * `secret_key` - The secret key in PEM format.
+///
+/// # Returns
+///
+/// A `Result` containing the public key as a string or an error if the conversion fails.
+pub fn public_key_from_private_key(secret_key: &str) -> Result<String, ErrorExt> {
+ let secret_key_from_pem = secret_key_from_pem(secret_key);
+ let public_key = match secret_key_from_pem {
+ Ok(secret_key) => CasperTypesPublicKey::from(&secret_key),
+ Err(err) => {
+ error(&format!("Error in public_key_from_private_key: {:?}", err));
+ return Err(err);
+ }
+ };
+ let public_key_test: PublicKey = public_key.into();
+ Ok(public_key_test.to_string())
+}
+
+/// Converts a hexadecimal string to a vector of unsigned 8-bit integers (Uint8Array).
+///
+/// # Arguments
+///
+/// * `hex_string` - The hexadecimal string to convert.
+///
+/// # Returns
+///
+/// A vector of unsigned 8-bit integers (Uint8Array) containing the converted value.
+pub fn hex_to_uint8_vec(hex_string: &str) -> Vec<u8> {
+ let mut bytes = Vec::with_capacity(hex_string.len() / 2);
+ let mut hex_chars = hex_string.chars();
+ while let (Some(a), Some(b)) = (hex_chars.next(), hex_chars.next()) {
+ if let Ok(byte) = u8::from_str_radix(&format!("{}{}", a, b), 16) {
+ bytes.push(byte);
+ } else {
+ // If an invalid hex pair is encountered, return an empty vector.
+ return Vec::new();
+ }
+ }
+ bytes
+}
+
+/// Converts a hexadecimal string to a regular string.
+///
+/// # Arguments
+///
+/// * `hex_string` - The hexadecimal string to convert.
+///
+/// # Returns
+///
+/// A regular string containing the converted value.
+pub fn hex_to_string(hex_string: &str) -> String {
+ match hex::decode(hex_string) {
+ Ok(bytes) => String::from_utf8_lossy(&bytes).to_string(),
+ Err(_) => hex_string.to_string(),
+ }
+}
+
+/// Converts motes to CSPR (Casper tokens).
+///
+/// # Arguments
+///
+/// * `motes` - The motes value to convert.
+///
+/// # Returns
+///
+/// A string representing the CSPR amount.
+pub fn motes_to_cspr(motes: &str) -> String {
+ match Decimal::from_str(motes) {
+ Ok(motes_decimal) => {
+ let cspr_decimal = motes_decimal / Decimal::new(1_000_000_000, 0);
+ let formatted_cspr = cspr_decimal.to_string();
+ if formatted_cspr.ends_with(".00") {
+ formatted_cspr.replace(".00", "")
+ } else {
+ formatted_cspr
+ }
+ }
+ Err(_) => {
+ eprintln!("Failed to parse input as Decimal");
+ "Invalid input".to_string()
+ }
+ }
+}
+
+/// Pretty prints a serializable value as a JSON string.
+///
+/// # Arguments
+///
+/// * `value` - The serializable value to pretty print.
+/// * `verbosity` - An optional verbosity level for pretty printing.
+///
+/// # Returns
+///
+/// A JSON string representing the pretty printed value.
+pub fn json_pretty_print<T>(value: T, verbosity: Option<Verbosity>) -> String
+where
+ T: Serialize,
+{
+ if let Ok(deserialized) = serde_json::to_value(&value) {
+ let result = match verbosity {
+ Some(Verbosity::Low) | None => Ok(deserialized.to_string()),
+ Some(Verbosity::Medium) => casper_types::json_pretty_print(&deserialized),
+ Some(Verbosity::High) => serde_json::to_string_pretty(&deserialized),
+ }
+ .map_err(|err| error(&format!("Error in json_pretty_print: {}", err)));
+
+ match result {
+ Ok(result) => result,
+ Err(err) => {
+ error(&format!("Error in json_pretty_print: {:?}", err));
+ String::from("")
+ }
+ }
+ } else {
+ error("Deserialization error into_serde of json_pretty_print");
+ String::from("")
+ }
+}
+
+/// Inserts a JavaScript value argument into a RuntimeArgs map.
+///
+/// # Arguments
+///
+/// * `args` - The RuntimeArgs map to insert the argument into.
+/// * `js_value_arg` - The JavaScript value argument to insert.
+///
+/// # Returns
+///
+/// The modified `RuntimeArgs` map.
+pub fn insert_js_value_arg(args: &mut RuntimeArgs, js_value_arg: JsValue) -> &RuntimeArgs {
+ if js_sys::Object::instanceof(&js_value_arg) {
+ let json_arg: Result<JsonArg, serde_json::Error> = js_value_arg.into_serde();
+ let json_arg: Option<JsonArg> = match json_arg {
+ Ok(arg) => Some(arg),
+ Err(err) => {
+ error(&format!("Error converting to JsonArg: {:?}", err));
+ None
+ }
+ };
+ if let Some(json_arg) = json_arg {
+ let named_arg = NamedArg::try_from(json_arg);
+ let named_arg: Option<NamedArg> = match named_arg {
+ Ok(arg) => Some(arg),
+ Err(err) => {
+ error(&format!("Error converting to NamedArg: {:?}", err));
+ None
+ }
+ };
+ if let Some(named_arg) = named_arg {
+ args.insert_cl_value(named_arg.name(), named_arg.cl_value().clone());
+ }
+ }
+ } else if let Some(string_arg) = js_value_arg.as_string() {
+ let simple_arg = string_arg;
+ let _ = casper_client::cli::insert_arg(&simple_arg, args);
+ } else {
+ error("Error converting to JsonArg or Simple Arg");
+ }
+ args
+}
+
+/// Inserts an argument into a RuntimeArgs map.
+///
+/// # Arguments
+///
+/// * `args` - The RuntimeArgs map to insert the argument into.
+/// * `new_arg` - The argument as a string.
+///
+/// # Returns
+///
+/// The modified `RuntimeArgs` map.
+pub(crate) fn insert_arg(args: &mut RuntimeArgs, new_arg: String) -> &RuntimeArgs {
+ match serde_json::from_str::<JsonArg>(&new_arg) {
+ Ok(json_arg) => {
+ if let Ok(named_arg) = NamedArg::try_from(json_arg.clone()) {
+ // JSON args
+ args.insert_cl_value(named_arg.name(), named_arg.cl_value().clone());
+ }
+ }
+ Err(_) => {
+ // Simple args
+ let _ = casper_client::cli::insert_arg(&new_arg, args);
+ }
+ }
+ args
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/js/externs.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/js/externs.rs.html
new file mode 100644
index 000000000..b4e246847
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/js/externs.rs.html
@@ -0,0 +1,79 @@
+externs.rs - source
use wasm_bindgen::prelude::*;
+
+/// Logs a message, prefixing it with "log wasm" and sends it to the console in JavaScript when running in a WebAssembly environment.
+/// When running outside WebAssembly, it prints the message to the standard output.
+#[wasm_bindgen]
+extern "C" {
+ #[wasm_bindgen(js_namespace = console, js_name = log)]
+ fn log_with_prefix(s: &str);
+}
+
+/// Logs a message, prefixing it with "log wasm" and sends it to the console in JavaScript when running in a WebAssembly environment.
+/// When running outside WebAssembly, it prints the message to the standard output.
+#[allow(dead_code)]
+pub(crate) fn log(s: &str) {
+ let prefixed_s = format!("log wasm {}", s);
+ #[cfg(target_arch = "wasm32")]
+ log_with_prefix(&prefixed_s);
+ #[cfg(not(target_arch = "wasm32"))]
+ println!("{}", prefixed_s);
+}
+
+/// Logs an error message, prefixing it with "error wasm" and sends it to the console in JavaScript when running in a WebAssembly environment.
+/// When running outside WebAssembly, it prints the error message to the standard output.
+#[wasm_bindgen]
+extern "C" {
+ #[wasm_bindgen(js_namespace = console, js_name = error)]
+ fn error_with_prefix(s: &str);
+}
+
+/// Logs an error message, prefixing it with "error wasm" and sends it to the console in JavaScript when running in a WebAssembly environment.
+/// When running outside WebAssembly, it prints the error message to the standard output.
+#[allow(dead_code)]
+pub(crate) fn error(s: &str) {
+ let prefixed_s = format!("error wasm {}", s);
+ #[cfg(target_arch = "wasm32")]
+ error_with_prefix(&prefixed_s);
+ #[cfg(not(target_arch = "wasm32"))]
+ println!("{}", prefixed_s);
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/js/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/js/mod.rs.html
new file mode 100644
index 000000000..182f3113c
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/js/mod.rs.html
@@ -0,0 +1,7 @@
+mod.rs - source
pub mod externs;
+#[cfg(target_arch = "wasm32")]
+pub mod interns;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/lib.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/lib.rs.html
new file mode 100644
index 000000000..463c029c9
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/lib.rs.html
@@ -0,0 +1,17 @@
+lib.rs - source
pub mod helpers;
+pub mod types;
+
+pub(crate) mod sdk;
+pub use sdk::*;
+
+pub(crate) mod js;
+pub use js::externs as debug;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/call_entrypoint.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/call_entrypoint.rs.html
new file mode 100644
index 000000000..a55d9c066
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/call_entrypoint.rs.html
@@ -0,0 +1,209 @@
+call_entrypoint.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::deploy::deploy::PutDeployResult;
+use crate::types::deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ session_str_params::{session_str_params_to_casper_client, SessionStrParams},
+};
+use crate::{debug::error, types::sdk_error::SdkError, SDK};
+use casper_client::{
+ cli::make_deploy, rpcs::results::PutDeployResult as _PutDeployResult, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// A set of functions for working with smart contract entry points.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Calls a smart contract entry point with the specified parameters and returns the result.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - The deploy parameters.
+ /// * `session_params` - The session parameters.
+ /// * `payment_amount` - The payment amount as a string.
+ /// * `node_address` - An optional node address to send the request to.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `PutDeployResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the call.
+ #[wasm_bindgen(js_name = "call_entrypoint")]
+ pub async fn call_entrypoint_js_alias(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_amount: &str,
+ node_address: Option<String>,
+ ) -> Result<PutDeployResult, JsError> {
+ let payment_params = PaymentStrParams::default();
+ payment_params.set_payment_amount(payment_amount);
+
+ let result = self
+ .call_entrypoint(deploy_params, session_params, payment_params, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+/// A set of functions for working with smart contract entry points.
+impl SDK {
+ /// Calls a smart contract entry point with the specified parameters and returns the result.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - The deploy parameters.
+ /// * `session_params` - The session parameters.
+ /// * `payment_params` - The payment parameters.
+ /// * `node_address` - An optional node address to send the request to.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `PutDeployResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the call.
+ pub async fn call_entrypoint(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_PutDeployResult>, SdkError> {
+ //log("call_entrypoint!");
+ let deploy = make_deploy(
+ "",
+ deploy_str_params_to_casper_client(&deploy_params),
+ session_str_params_to_casper_client(&session_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ );
+
+ if let Err(err) = deploy {
+ let err_msg = format!("Error during install: {}", err);
+ error(&err_msg);
+ return Err(SdkError::from(err));
+ }
+
+ self.put_deploy(deploy.unwrap().into(), None, node_address)
+ .await
+ .map_err(SdkError::from)
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/install.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/install.rs.html
new file mode 100644
index 000000000..12e6c4a7b
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/install.rs.html
@@ -0,0 +1,203 @@
+install.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::deploy::deploy::PutDeployResult;
+use crate::types::deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ session_str_params::{session_str_params_to_casper_client, SessionStrParams},
+};
+use crate::{debug::error, types::sdk_error::SdkError, SDK};
+use casper_client::{
+ cli::make_deploy, rpcs::results::PutDeployResult as _PutDeployResult, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// A set of functions for installing smart contracts on the blockchain.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Installs a smart contract with the specified parameters and returns the result.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - The deploy parameters.
+ /// * `session_params` - The session parameters.
+ /// * `payment_amount` - The payment amount as a string.
+ /// * `node_address` - An optional node address to send the request to.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `PutDeployResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the installation.
+ #[wasm_bindgen(js_name = "install")]
+ pub async fn install_js_alias(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_amount: &str,
+ node_address: Option<String>,
+ ) -> Result<PutDeployResult, JsError> {
+ let payment_params = PaymentStrParams::default();
+ payment_params.set_payment_amount(payment_amount);
+ let result = self
+ .install(deploy_params, session_params, payment_params, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+/// A set of functions for installing smart contracts on the blockchain.
+impl SDK {
+ /// Installs a smart contract with the specified parameters and returns the result.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - The deploy parameters.
+ /// * `session_params` - The session parameters.
+ /// * `payment_params` - The payment parameters.
+ /// * `node_address` - An optional node address to send the request to.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `PutDeployResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the installation.
+ pub async fn install(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_PutDeployResult>, SdkError> {
+ //log("install!");
+ let deploy = make_deploy(
+ "",
+ deploy_str_params_to_casper_client(&deploy_params),
+ session_str_params_to_casper_client(&session_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ );
+ if let Err(err) = deploy {
+ let err_msg = format!("Error during install: {}", err);
+ error(&err_msg);
+ return Err(SdkError::from(err));
+ }
+ self.put_deploy(deploy.unwrap().into(), None, node_address)
+ .await
+ .map_err(SdkError::from)
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/mod.rs.html
new file mode 100644
index 000000000..34b3efa7a
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/mod.rs.html
@@ -0,0 +1,9 @@
+mod.rs - source
pub mod call_entrypoint;
+pub mod install;
+pub mod query_contract_dict;
+pub mod query_contract_key;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/query_contract_dict.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/query_contract_dict.rs.html
new file mode 100644
index 000000000..bb5fc3253
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/query_contract_dict.rs.html
@@ -0,0 +1,203 @@
+query_contract_dict.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/query_contract_key.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/query_contract_key.rs.html
new file mode 100644
index 000000000..69d1b064a
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/contract/query_contract_key.rs.html
@@ -0,0 +1,185 @@
+query_contract_key.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/deploy.rs.html
new file mode 100644
index 000000000..787ad6ba5
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/deploy.rs.html
@@ -0,0 +1,313 @@
+deploy.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/mod.rs.html
new file mode 100644
index 000000000..6bff28063
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/mod.rs.html
@@ -0,0 +1,11 @@
+mod.rs - source
#[allow(clippy::module_inception)]
+pub mod deploy;
+pub mod speculative_deploy;
+pub mod speculative_transfer;
+pub mod transfer;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/speculative_deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/speculative_deploy.rs.html
new file mode 100644
index 000000000..533451b06
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/speculative_deploy.rs.html
@@ -0,0 +1,247 @@
+speculative_deploy.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::rpcs::speculative_exec::SpeculativeExecResult;
+use crate::{
+ debug::error,
+ types::{
+ block_identifier::{BlockIdentifier, BlockIdentifierInput},
+ deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ session_str_params::{session_str_params_to_casper_client, SessionStrParams},
+ },
+ sdk_error::SdkError,
+ verbosity::Verbosity,
+ },
+ SDK,
+};
+use casper_client::{
+ cli::make_deploy, rpcs::results::SpeculativeExecResult as _SpeculativeExecResult,
+ SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// This function allows executing a deploy speculatively.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - Deployment parameters for the deploy.
+ /// * `session_params` - Session parameters for the deploy.
+ /// * `payment_params` - Payment parameters for the deploy.
+ /// * `maybe_block_identifier` - Optional block identifier.
+ /// * `verbosity` - Optional verbosity level.
+ /// * `node_address` - Optional node address.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `SpeculativeExecResult` or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "speculative_deploy")]
+ pub async fn speculative_deploy_js_alias(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+ maybe_block_identifier: Option<BlockIdentifier>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SpeculativeExecResult, JsError> {
+ let result = self
+ .speculative_deploy(
+ deploy_params,
+ session_params,
+ payment_params,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ )
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// This function allows executing a deploy speculatively.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - Deployment parameters for the deploy.
+ /// * `session_params` - Session parameters for the deploy.
+ /// * `payment_params` - Payment parameters for the deploy.
+ /// * `maybe_block_identifier` - Optional block identifier.
+ /// * `verbosity` - Optional verbosity level.
+ /// * `node_address` - Optional node address.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `SuccessResponse<SpeculativeExecResult>` or a `SdkError` in case of an error.
+ pub async fn speculative_deploy(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+ maybe_block_identifier: Option<BlockIdentifier>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_SpeculativeExecResult>, SdkError> {
+ // log("speculative_deploy!");
+ let deploy = make_deploy(
+ "",
+ deploy_str_params_to_casper_client(&deploy_params),
+ session_str_params_to_casper_client(&session_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ );
+
+ if let Err(err) = deploy {
+ let err_msg = format!("Error during speculative_deploy: {}", err);
+ error(&err_msg);
+ return Err(SdkError::from(err));
+ }
+
+ let maybe_block_identifier =
+ maybe_block_identifier.map(BlockIdentifierInput::BlockIdentifier);
+
+ self.speculative_exec(
+ deploy.unwrap().into(),
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/speculative_transfer.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/speculative_transfer.rs.html
new file mode 100644
index 000000000..04365a170
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/speculative_transfer.rs.html
@@ -0,0 +1,301 @@
+speculative_transfer.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::rpcs::speculative_exec::SpeculativeExecResult;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::{
+ debug::error,
+ types::{
+ block_identifier::BlockIdentifierInput,
+ deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ },
+ sdk_error::SdkError,
+ verbosity::Verbosity,
+ },
+ SDK,
+};
+use casper_client::{
+ cli::make_transfer, rpcs::results::SpeculativeExecResult as _SpeculativeExecResult,
+ SuccessResponse,
+};
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// JS Alias for speculative transfer.
+ ///
+ /// # Arguments
+ ///
+ /// * `amount` - The amount to transfer.
+ /// * `target_account` - The target account.
+ /// * `transfer_id` - An optional transfer ID (defaults to a random number).
+ /// * `deploy_params` - The deployment parameters.
+ /// * `payment_params` - The payment parameters.
+ /// * `maybe_block_id_as_string` - An optional block ID as a string.
+ /// * `maybe_block_identifier` - An optional block identifier.
+ /// * `verbosity` - The verbosity level for logging (optional).
+ /// * `node_address` - The address of the node to connect to (optional).
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the result of the speculative transfer or a `JsError` in case of an error.
+ #[allow(clippy::too_many_arguments)]
+ #[wasm_bindgen(js_name = "speculative_transfer")]
+ pub async fn speculative_transfer_js_alias(
+ &self,
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+ maybe_block_id_as_string: Option<String>,
+ maybe_block_identifier: Option<BlockIdentifier>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SpeculativeExecResult, JsError> {
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+ let result = self
+ .speculative_transfer(
+ amount,
+ target_account,
+ transfer_id,
+ deploy_params,
+ payment_params,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ )
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Perform a speculative transfer.
+ ///
+ /// # Arguments
+ ///
+ /// * `amount` - The amount to transfer.
+ /// * `target_account` - The target account.
+ /// * `transfer_id` - An optional transfer ID (defaults to a random number).
+ /// * `deploy_params` - The deployment parameters.
+ /// * `payment_params` - The payment parameters.
+ /// * `maybe_block_identifier` - An optional block identifier.
+ /// * `verbosity` - The verbosity level for logging (optional).
+ /// * `node_address` - The address of the node to connect to (optional).
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the result of the speculative transfer or a `SdkError` in case of an error.
+ #[allow(clippy::too_many_arguments)]
+ pub async fn speculative_transfer(
+ &self,
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_SpeculativeExecResult>, SdkError> {
+ // log("speculative_transfer!");
+ let transfer_id = if let Some(transfer_id) = transfer_id {
+ transfer_id
+ } else {
+ rand::thread_rng().gen::<u64>().to_string()
+ };
+ let deploy = make_transfer(
+ "",
+ amount,
+ target_account,
+ &transfer_id,
+ deploy_str_params_to_casper_client(&deploy_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ );
+
+ if let Err(err) = deploy {
+ let err_msg = format!("Error during speculative_transfer: {}", err);
+ error(&err_msg);
+ return Err(SdkError::from(err));
+ }
+
+ self.speculative_exec(
+ deploy.unwrap().into(),
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/transfer.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/transfer.rs.html
new file mode 100644
index 000000000..a0eb1c3c3
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy/transfer.rs.html
@@ -0,0 +1,255 @@
+transfer.rs - source
#[cfg(target_arch = "wasm32")]
+use super::deploy::PutDeployResult;
+use crate::{
+ debug::error,
+ types::{
+ deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ },
+ sdk_error::SdkError,
+ verbosity::Verbosity,
+ },
+ SDK,
+};
+use casper_client::{
+ cli::make_transfer, rpcs::results::PutDeployResult as _PutDeployResult, SuccessResponse,
+};
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// JS Alias for transferring funds.
+ ///
+ /// # Arguments
+ ///
+ /// * `amount` - The amount to transfer.
+ /// * `target_account` - The target account.
+ /// * `transfer_id` - An optional transfer ID (defaults to a random number).
+ /// * `deploy_params` - The deployment parameters.
+ /// * `payment_params` - The payment parameters.
+ /// * `verbosity` - The verbosity level for logging (optional).
+ /// * `node_address` - The address of the node to connect to (optional).
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the result of the transfer or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "transfer")]
+ #[allow(clippy::too_many_arguments)]
+ pub async fn transfer_js_alias(
+ &self,
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<PutDeployResult, JsError> {
+ let result = self
+ .transfer(
+ amount,
+ target_account,
+ transfer_id,
+ deploy_params,
+ payment_params,
+ verbosity,
+ node_address,
+ )
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Perform a transfer of funds.
+ ///
+ /// # Arguments
+ ///
+ /// * `amount` - The amount to transfer.
+ /// * `target_account` - The target account.
+ /// * `transfer_id` - An optional transfer ID (defaults to a random number).
+ /// * `deploy_params` - The deployment parameters.
+ /// * `payment_params` - The payment parameters.
+ /// * `verbosity` - The verbosity level for logging (optional).
+ /// * `node_address` - The address of the node to connect to (optional).
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the result of the transfer or a `SdkError` in case of an error.
+ #[allow(clippy::too_many_arguments)]
+ pub async fn transfer(
+ &self,
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_PutDeployResult>, SdkError> {
+ //log("transfer!");
+ let transfer_id = if let Some(transfer_id) = transfer_id {
+ transfer_id
+ } else {
+ rand::thread_rng().gen::<u64>().to_string()
+ };
+ let deploy = make_transfer(
+ "",
+ amount,
+ target_account,
+ &transfer_id,
+ deploy_str_params_to_casper_client(&deploy_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ );
+
+ if let Err(err) = deploy {
+ let err_msg = format!("Error during transfer: {}", err);
+ error(&err_msg);
+ return Err(SdkError::from(err));
+ }
+
+ self.put_deploy(deploy.unwrap().into(), verbosity, node_address)
+ .await
+ .map_err(SdkError::from)
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/make_deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/make_deploy.rs.html
new file mode 100644
index 000000000..8e8bad66c
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/make_deploy.rs.html
@@ -0,0 +1,185 @@
+make_deploy.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::deploy::Deploy;
+use crate::{
+ types::{
+ deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ session_str_params::{session_str_params_to_casper_client, SessionStrParams},
+ },
+ sdk_error::SdkError,
+ },
+ SDK,
+};
+use casper_client::cli::make_deploy as client_make_deploy;
+use casper_client::types::Deploy as _Deploy;
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Exposes the `make_deploy` function to JavaScript with an alias.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// JS Alias for `make_deploy`.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - The deploy parameters.
+ /// * `session_params` - The session parameters.
+ /// * `payment_params` - The payment parameters.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the created `Deploy` or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "make_deploy")]
+ pub fn make_deploy_js_alias(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+ ) -> Result<Deploy, JsError> {
+ let result = make_deploy(deploy_params, session_params, payment_params);
+ match result {
+ Ok(data) => Ok(data.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Creates a deploy using the provided parameters.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_params` - The deploy parameters.
+ /// * `session_params` - The session parameters.
+ /// * `payment_params` - The payment parameters.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the created `Deploy` or a `SdkError` in case of an error.
+ pub fn make_deploy(
+ &self,
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+ ) -> Result<_Deploy, SdkError> {
+ make_deploy(deploy_params, session_params, payment_params).map_err(SdkError::from)
+ }
+}
+
+/// Internal function to create a deploy.
+pub(crate) fn make_deploy(
+ deploy_params: DeployStrParams,
+ session_params: SessionStrParams,
+ payment_params: PaymentStrParams,
+) -> Result<_Deploy, SdkError> {
+ // log("make_deploy");
+ client_make_deploy(
+ "",
+ deploy_str_params_to_casper_client(&deploy_params),
+ session_str_params_to_casper_client(&session_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ )
+ .map_err(SdkError::from)
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/make_transfer.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/make_transfer.rs.html
new file mode 100644
index 000000000..8a84c7249
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/make_transfer.rs.html
@@ -0,0 +1,247 @@
+make_transfer.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::deploy::Deploy;
+use crate::{
+ types::{
+ deploy_params::{
+ deploy_str_params::{deploy_str_params_to_casper_client, DeployStrParams},
+ payment_str_params::{payment_str_params_to_casper_client, PaymentStrParams},
+ },
+ sdk_error::SdkError,
+ },
+ SDK,
+};
+use casper_client::cli::make_transfer as client_make_transfer;
+use casper_client::types::Deploy as _Deploy;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Exposes the `make_transfer` function to JavaScript with an alias.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// JS Alias for `make_transfer`.
+ ///
+ /// # Arguments
+ ///
+ /// * `amount` - The transfer amount.
+ /// * `target_account` - The target account.
+ /// * `transfer_id` - Optional transfer identifier.
+ /// * `deploy_params` - The deploy parameters.
+ /// * `payment_params` - The payment parameters.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the created `Deploy` or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "make_transfer")]
+ pub fn make_transfer_js_alias(
+ &self,
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+ ) -> Result<Deploy, JsError> {
+ // log("make_transfer");
+ let result = self.make_transfer(
+ amount,
+ target_account,
+ transfer_id,
+ deploy_params,
+ payment_params,
+ );
+ match result {
+ Ok(data) => Ok(data.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Creates a transfer deploy with the provided parameters.
+ ///
+ /// # Arguments
+ ///
+ /// * `amount` - The transfer amount.
+ /// * `target_account` - The target account.
+ /// * `transfer_id` - Optional transfer identifier.
+ /// * `deploy_params` - The deploy parameters.
+ /// * `payment_params` - The payment parameters.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the created `Deploy` or a `SdkError` in case of an error.
+ pub fn make_transfer(
+ &self,
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+ ) -> Result<_Deploy, SdkError> {
+ // log("make_transfer");
+ make_transfer(
+ amount,
+ target_account,
+ transfer_id,
+ deploy_params,
+ payment_params,
+ )
+ .map_err(SdkError::from)
+ }
+}
+
+/// Internal function to create a transfer deploy.
+pub(crate) fn make_transfer(
+ amount: &str,
+ target_account: &str,
+ transfer_id: Option<String>,
+ deploy_params: DeployStrParams,
+ payment_params: PaymentStrParams,
+) -> Result<_Deploy, SdkError> {
+ let transfer_id = if let Some(transfer_id) = transfer_id {
+ transfer_id
+ } else {
+ rand::thread_rng().gen::<u64>().to_string()
+ };
+ client_make_transfer(
+ "",
+ amount,
+ target_account,
+ &transfer_id,
+ deploy_str_params_to_casper_client(&deploy_params),
+ payment_str_params_to_casper_client(&payment_params),
+ false,
+ )
+ .map_err(SdkError::from)
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/mod.rs.html
new file mode 100644
index 000000000..d3bd0d15e
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/mod.rs.html
@@ -0,0 +1,15 @@
+mod.rs - source
pub(crate) mod make_deploy;
+pub(crate) use make_deploy::make_deploy;
+
+pub(crate) mod make_transfer;
+pub(crate) use make_transfer::make_transfer;
+
+pub(crate) mod sign_deploy;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/sign_deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/sign_deploy.rs.html
new file mode 100644
index 000000000..048a7bfc1
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/deploy_utils/sign_deploy.rs.html
@@ -0,0 +1,97 @@
+sign_deploy.rs - source
use crate::types::deploy::Deploy;
+use crate::SDK;
+use casper_client::types::Deploy as _Deploy;
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Exposes the `sign_deploy` function to JavaScript with an alias.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// JS Alias for `sign_deploy`.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy` - The deploy to sign.
+ /// * `secret_key` - The secret key for signing.
+ ///
+ /// # Returns
+ ///
+ /// The signed `Deploy`.
+ #[wasm_bindgen(js_name = "sign_deploy")]
+ pub fn sign_deploy_js_alias(&mut self, deploy: Deploy, secret_key: &str) -> Deploy {
+ sign_deploy(deploy.into(), secret_key)
+ }
+}
+
+impl SDK {
+ /// Signs a deploy using the provided secret key.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy` - The deploy to sign.
+ /// * `secret_key` - The secret key for signing.
+ ///
+ /// # Returns
+ ///
+ /// The signed `Deploy`.
+ pub fn sign_deploy(&mut self, deploy: _Deploy, secret_key: &str) -> Deploy {
+ sign_deploy(deploy, secret_key)
+ }
+}
+
+/// Internal function to sign a deploy.
+pub(crate) fn sign_deploy(deploy: _Deploy, secret_key: &str) -> Deploy {
+ // log("sign_deploy!");
+ let mut deploy: Deploy = deploy.into();
+ deploy.sign(secret_key)
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/mod.rs.html
new file mode 100644
index 000000000..1a752aaff
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/mod.rs.html
@@ -0,0 +1,127 @@
+mod.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_account.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_account.rs.html
new file mode 100644
index 000000000..39b7a3f4e
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_account.rs.html
@@ -0,0 +1,445 @@
+get_account.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::{
+ debug::error,
+ types::{
+ account_identifier::AccountIdentifier, block_identifier::BlockIdentifierInput,
+ sdk_error::SdkError, verbosity::Verbosity,
+ },
+ SDK,
+};
+use casper_client::cli::parse_account_identifier;
+use casper_client::{
+ cli::get_account as get_account_cli, get_account as get_account_lib,
+ rpcs::results::GetAccountResult as _GetAccountResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define the GetAccountResult struct to wrap the result from Casper Client RPC call
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetAccountResult(_GetAccountResult);
+
+// Implement conversions between GetAccountResult and _GetAccountResult
+#[cfg(target_arch = "wasm32")]
+impl From<GetAccountResult> for _GetAccountResult {
+ fn from(result: GetAccountResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetAccountResult> for GetAccountResult {
+ fn from(result: _GetAccountResult) -> Self {
+ GetAccountResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetAccountResult {
+ // Define getters for various fields of GetAccountResult
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ #[wasm_bindgen(getter)]
+ pub fn account(&self) -> JsValue {
+ JsValue::from_serde(&self.0.account).unwrap()
+ }
+
+ #[wasm_bindgen(getter)]
+ pub fn merkle_proof(&self) -> String {
+ self.0.merkle_proof.clone()
+ }
+
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+// Define options for the `get_account` function
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getAccountOptions", getter_with_clone)]
+pub struct GetAccountOptions {
+ pub account_identifier: Option<AccountIdentifier>,
+ pub account_identifier_as_string: Option<String>,
+ pub maybe_block_id_as_string: Option<String>,
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ // Deserialize options for `get_account` from a JavaScript object
+ #[wasm_bindgen(js_name = "get_account_options")]
+ pub fn get_account_options(&self, options: JsValue) -> GetAccountOptions {
+ let options_result = options.into_serde::<GetAccountOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetAccountOptions::default()
+ }
+ }
+ }
+
+ // JavaScript alias for `get_account` function
+ #[wasm_bindgen(js_name = "get_account")]
+ pub async fn get_account_js_alias(
+ &self,
+ options: Option<GetAccountOptions>,
+ ) -> Result<GetAccountResult, JsError> {
+ let GetAccountOptions {
+ account_identifier,
+ account_identifier_as_string,
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .get_account(
+ account_identifier,
+ account_identifier_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ )
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ // JavaScript alias for `get_account_js_alias`
+ #[wasm_bindgen(js_name = "state_get_account_info")]
+ pub async fn state_get_account_info_js_alias(
+ &self,
+ options: Option<GetAccountOptions>,
+ ) -> Result<GetAccountResult, JsError> {
+ self.get_account_js_alias(options).await
+ }
+}
+
+impl SDK {
+ /// Retrieves account information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `account_identifier` - An optional `AccountIdentifier` for specifying the account identifier.
+ /// * `account_identifier_as_string` - An optional string representing the account identifier.
+ /// * `maybe_block_identifier` - An optional `BlockIdentifierInput` for specifying a block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `SuccessResponse<_GetAccountResult>` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_account(
+ &self,
+ account_identifier: Option<AccountIdentifier>,
+ account_identifier_as_string: Option<String>,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetAccountResult>, SdkError> {
+ let account_identifier = if let Some(account_identifier) = account_identifier {
+ account_identifier
+ } else if let Some(account_identifier_as_string) = account_identifier_as_string.clone() {
+ match parse_account_identifier(&account_identifier_as_string) {
+ Ok(parsed) => parsed.into(),
+ Err(err) => {
+ error(&err.to_string());
+ return Err(SdkError::FailedToParseAccountIdentifier);
+ }
+ }
+ } else {
+ let err = "Error: Missing account identifier";
+ error(err);
+ return Err(SdkError::FailedToParseAccountIdentifier);
+ };
+ if let Some(BlockIdentifierInput::String(maybe_block_id)) = maybe_block_identifier {
+ get_account_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ &account_identifier.to_string(),
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ get_account_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ maybe_block_identifier.map(Into::into),
+ account_identifier.into(),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_auction_info.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_auction_info.rs.html
new file mode 100644
index 000000000..2b261ad68
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_auction_info.rs.html
@@ -0,0 +1,395 @@
+get_auction_info.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::{
+ types::{block_identifier::BlockIdentifierInput, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::get_auction_info as get_auction_info_cli, get_auction_info as get_auction_info_lib,
+ rpcs::results::GetAuctionInfoResult as _GetAuctionInfoResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the GetAuctionInfoResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetAuctionInfoResult(_GetAuctionInfoResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetAuctionInfoResult> for _GetAuctionInfoResult {
+ fn from(result: GetAuctionInfoResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetAuctionInfoResult> for GetAuctionInfoResult {
+ fn from(result: _GetAuctionInfoResult) -> Self {
+ GetAuctionInfoResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetAuctionInfoResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the auction state as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn auction_state(&self) -> JsValue {
+ JsValue::from_serde(&self.0.auction_state).unwrap()
+ }
+
+ /// Converts the GetAuctionInfoResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_auction_info` method.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getAuctionInfoOptions", getter_with_clone)]
+pub struct GetAuctionInfoOptions {
+ pub maybe_block_id_as_string: Option<String>,
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses auction info options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing auction info options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed auction info options as a `GetAuctionInfoOptions` struct.
+ #[wasm_bindgen(js_name = "get_auction_info_options")]
+ pub fn get_auction_info_options(&self, options: JsValue) -> GetAuctionInfoOptions {
+ let options_result = options.into_serde::<GetAuctionInfoOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetAuctionInfoOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves auction information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetAuctionInfoOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetAuctionInfoResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_auction_info")]
+ pub async fn get_auction_info_js_alias(
+ &self,
+ options: Option<GetAuctionInfoOptions>,
+ ) -> Result<GetAuctionInfoResult, JsError> {
+ let GetAuctionInfoOptions {
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .get_auction_info(maybe_block_identifier, verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves auction information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `maybe_block_identifier` - An optional `BlockIdentifierInput` for specifying a block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetAuctionInfoResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_auction_info(
+ &self,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetAuctionInfoResult>, SdkError> {
+ //log("get_auction_info!");
+
+ if let Some(BlockIdentifierInput::String(maybe_block_id)) = maybe_block_identifier {
+ get_auction_info_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ get_auction_info_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ maybe_block_identifier.map(Into::into),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_balance.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_balance.rs.html
new file mode 100644
index 000000000..45ed4832d
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_balance.rs.html
@@ -0,0 +1,503 @@
+get_balance.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::digest::Digest;
+use crate::{
+ types::{digest::ToDigest, sdk_error::SdkError, uref::URef, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::get_balance as get_balance_cli, get_balance as get_balance_lib,
+ rpcs::results::GetBalanceResult as _GetBalanceResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the GetBalanceResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetBalanceResult(_GetBalanceResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetBalanceResult> for _GetBalanceResult {
+ fn from(result: GetBalanceResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetBalanceResult> for GetBalanceResult {
+ fn from(result: _GetBalanceResult) -> Self {
+ GetBalanceResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetBalanceResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the balance value as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn balance_value(&self) -> JsValue {
+ JsValue::from_serde(&self.0.balance_value).unwrap()
+ }
+
+ /// Gets the Merkle proof as a string.
+ #[wasm_bindgen(getter)]
+ pub fn merkle_proof(&self) -> String {
+ self.0.merkle_proof.clone()
+ }
+
+ /// Converts the GetBalanceResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_balance` method.
+#[derive(Default, Debug, Deserialize, Clone, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getBalanceOptions", getter_with_clone)]
+pub struct GetBalanceOptions {
+ pub state_root_hash_as_string: Option<String>,
+ pub state_root_hash: Option<Digest>,
+ pub purse_uref_as_string: Option<String>,
+ pub purse_uref: Option<URef>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses balance options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing balance options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed balance options as a `GetBalanceOptions` struct.
+ #[wasm_bindgen(js_name = "get_balance_options")]
+ pub fn get_balance_options(&self, options: JsValue) -> GetBalanceOptions {
+ let options_result = options.into_serde::<GetBalanceOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetBalanceOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves balance information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetBalanceOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBalanceResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_balance")]
+ pub async fn get_balance_js_alias(
+ &self,
+ options: Option<GetBalanceOptions>,
+ ) -> Result<GetBalanceResult, JsError> {
+ let GetBalanceOptions {
+ state_root_hash_as_string,
+ state_root_hash,
+ purse_uref_as_string,
+ purse_uref,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let purse_uref = if let Some(purse_uref) = purse_uref {
+ GetBalanceInput::PurseUref(purse_uref)
+ } else if let Some(purse_uref_as_string) = purse_uref_as_string {
+ GetBalanceInput::PurseUrefAsString(purse_uref_as_string)
+ } else {
+ let err = "Error: Missing purse uref as string or purse uref";
+ error(err);
+ return Err(JsError::new(err));
+ };
+
+ let result = if let Some(hash) = state_root_hash {
+ self.get_balance(hash, purse_uref, verbosity, node_address)
+ .await
+ } else if let Some(hash) = state_root_hash_as_string.clone() {
+ // Todo check state root hash validity here _Digest::LENGTH
+ self.get_balance(hash.as_str(), purse_uref, verbosity, node_address)
+ .await
+ } else {
+ let err = "Error: Missing state_root_hash";
+ error(err);
+ return Err(JsError::new(err));
+ };
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ /// JS Alias for `get_balance_js_alias`.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetBalanceOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBalanceResult` or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "state_get_balance")]
+ pub async fn state_get_balance_js_alias(
+ &self,
+ options: Option<GetBalanceOptions>,
+ ) -> Result<GetBalanceResult, JsError> {
+ self.get_balance_js_alias(options).await
+ }
+}
+
+/// Enum representing different ways to specify the purse uref.
+#[derive(Debug, Clone)]
+pub enum GetBalanceInput {
+ PurseUref(URef),
+ PurseUrefAsString(String),
+}
+
+impl SDK {
+ /// Retrieves balance information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `state_root_hash` - The state root hash to query for balance information.
+ /// * `purse_uref` - The purse uref specifying the purse for which to retrieve the balance.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBalanceResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_balance(
+ &self,
+ state_root_hash: impl ToDigest,
+ purse_uref: GetBalanceInput,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetBalanceResult>, SdkError> {
+ //log("get_balance!");
+ let state_root_hash = if state_root_hash.is_empty() {
+ self.get_state_root_hash(
+ None,
+ None,
+ Some(self.get_node_address(node_address.clone())),
+ )
+ .await
+ .unwrap()
+ .result
+ .state_root_hash
+ .unwrap()
+ .into()
+ } else {
+ state_root_hash.to_digest()
+ };
+ match purse_uref {
+ GetBalanceInput::PurseUref(purse_uref) => get_balance_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ state_root_hash.into(),
+ purse_uref.into(),
+ )
+ .await
+ .map_err(SdkError::from),
+ GetBalanceInput::PurseUrefAsString(purse_uref) => get_balance_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &state_root_hash.to_string(),
+ &purse_uref,
+ )
+ .await
+ .map_err(SdkError::from),
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_block.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_block.rs.html
new file mode 100644
index 000000000..4661f4136
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_block.rs.html
@@ -0,0 +1,437 @@
+get_block.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::{
+ types::{block_identifier::BlockIdentifierInput, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::get_block as get_block_cli, get_block as get_block_lib,
+ rpcs::results::GetBlockResult as _GetBlockResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the GetBlockResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Serialize)]
+#[wasm_bindgen]
+pub struct GetBlockResult(_GetBlockResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetBlockResult> for _GetBlockResult {
+ fn from(result: GetBlockResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetBlockResult> for GetBlockResult {
+ fn from(result: _GetBlockResult) -> Self {
+ GetBlockResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetBlockResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the block information as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn block(&self) -> JsValue {
+ JsValue::from_serde(&self.0.block).unwrap()
+ }
+
+ /// Converts the GetBlockResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_block` method.
+#[derive(Debug, Deserialize, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getBlockOptions", getter_with_clone)]
+pub struct GetBlockOptions {
+ pub maybe_block_id_as_string: Option<String>,
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses block options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing block options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed block options as a `GetBlockOptions` struct.
+ #[wasm_bindgen(js_name = "get_block_options")]
+ pub fn get_block_options(&self, options: JsValue) -> GetBlockOptions {
+ let options_result = options.into_serde::<GetBlockOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetBlockOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves block information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetBlockOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBlockResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_block")]
+ pub async fn get_block_js_alias(
+ &self,
+ options: Option<GetBlockOptions>,
+ ) -> Result<GetBlockResult, JsError> {
+ let GetBlockOptions {
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .get_block(maybe_block_identifier, verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ /// JS Alias for the `get_block` method to maintain compatibility.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetBlockOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBlockResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "chain_get_block")]
+ pub async fn chain_get_block_js_alias(
+ &self,
+ options: Option<GetBlockOptions>,
+ ) -> Result<GetBlockResult, JsError> {
+ self.get_block_js_alias(options).await
+ }
+}
+
+impl SDK {
+ /// Retrieves block information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `maybe_block_identifier` - An optional `BlockIdentifierInput` specifying the block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for the retrieval.
+ /// * `node_address` - An optional node address to target for retrieval.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBlockResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_block(
+ &self,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetBlockResult>, SdkError> {
+ //log("get_block!");
+
+ if let Some(BlockIdentifierInput::String(maybe_block_id)) = maybe_block_identifier {
+ get_block_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ get_block_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ maybe_block_identifier.map(Into::into),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_block_transfers.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_block_transfers.rs.html
new file mode 100644
index 000000000..528e2ce59
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_block_transfers.rs.html
@@ -0,0 +1,413 @@
+get_block_transfers.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_hash::BlockHash;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::{
+ types::{block_identifier::BlockIdentifierInput, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::get_block_transfers as get_block_transfers_cli,
+ get_block_transfers as get_block_transfers_lib,
+ rpcs::results::GetBlockTransfersResult as _GetBlockTransfersResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the GetBlockTransfersResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetBlockTransfersResult(_GetBlockTransfersResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetBlockTransfersResult> for _GetBlockTransfersResult {
+ fn from(result: GetBlockTransfersResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetBlockTransfersResult> for GetBlockTransfersResult {
+ fn from(result: _GetBlockTransfersResult) -> Self {
+ GetBlockTransfersResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetBlockTransfersResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the block hash as an Option<BlockHash>.
+ #[wasm_bindgen(getter)]
+ pub fn block_hash(&self) -> Option<BlockHash> {
+ self.0.block_hash.map(Into::into)
+ }
+
+ /// Gets the transfers as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn transfers(&self) -> JsValue {
+ JsValue::from_serde(&self.0.transfers).unwrap()
+ }
+
+ /// Converts the GetBlockTransfersResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_block_transfers` method.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getBlockTransfersOptions", getter_with_clone)]
+pub struct GetBlockTransfersOptions {
+ pub maybe_block_id_as_string: Option<String>,
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+ pub verbosity: Option<Verbosity>,
+ pub node_address: Option<String>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses block transfers options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing block transfers options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed block transfers options as a `GetBlockTransfersOptions` struct.
+ #[wasm_bindgen(js_name = "get_block_transfers_options")]
+ pub fn get_block_transfers_options(&self, options: JsValue) -> GetBlockTransfersOptions {
+ let options_result = options.into_serde::<GetBlockTransfersOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetBlockTransfersOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves block transfers information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetBlockTransfersOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBlockTransfersResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_block_transfers")]
+ pub async fn get_block_transfers_js_alias(
+ &self,
+ options: Option<GetBlockTransfersOptions>,
+ ) -> Result<GetBlockTransfersResult, JsError> {
+ let GetBlockTransfersOptions {
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .get_block_transfers(maybe_block_identifier, verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves block transfers information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `maybe_block_identifier` - An optional `BlockIdentifierInput` specifying the block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetBlockTransfersResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_block_transfers(
+ &self,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetBlockTransfersResult>, SdkError> {
+ //log("get_block_transfers!");
+
+ if let Some(BlockIdentifierInput::String(maybe_block_id)) = maybe_block_identifier {
+ get_block_transfers_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ get_block_transfers_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ maybe_block_identifier.map(Into::into),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_chainspec.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_chainspec.rs.html
new file mode 100644
index 000000000..92634ee94
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_chainspec.rs.html
@@ -0,0 +1,233 @@
+get_chainspec.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ get_chainspec, rpcs::results::GetChainspecResult as _GetChainspecResult, Error, JsonRpcId,
+ SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// A struct representing the result of the `get_chainspec` function.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetChainspecResult(_GetChainspecResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetChainspecResult> for _GetChainspecResult {
+ fn from(result: GetChainspecResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetChainspecResult> for GetChainspecResult {
+ fn from(result: _GetChainspecResult) -> Self {
+ GetChainspecResult(result)
+ }
+}
+
+/// Implementations for the `GetChainspecResult` struct.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetChainspecResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the chainspec bytes as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn chainspec_bytes(&self) -> JsValue {
+ JsValue::from_serde(&self.0.chainspec_bytes).unwrap()
+ }
+
+ /// Converts the `GetChainspecResult` to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Implementations for the `SDK` struct.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Asynchronously retrieves the chainspec.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` parameter.
+ /// * `node_address` - An optional node address as a string.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetChainspecResult` or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "get_chainspec")]
+ pub async fn get_chainspec_js_alias(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<GetChainspecResult, JsError> {
+ let result = self.get_chainspec(verbosity, node_address).await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+/// Implementations for the `SDK` struct.
+impl SDK {
+ /// Asynchronously retrieves the chainspec.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` parameter.
+ /// * `node_address` - An optional node address as a string.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetChainspecResult` or a `SdkError` in case of an error.
+ pub async fn get_chainspec(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetChainspecResult>, Error> {
+ //log("get_chainspec!");
+ get_chainspec(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_deploy.rs.html
new file mode 100644
index 000000000..7ab459f85
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_deploy.rs.html
@@ -0,0 +1,411 @@
+get_deploy.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::types::deploy::Deploy;
+use crate::types::deploy_hash::DeployHash;
+#[cfg(target_arch = "wasm32")]
+use crate::{debug::error, types::digest::Digest};
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ get_deploy, rpcs::results::GetDeployResult as _GetDeployResult, Error, JsonRpcId,
+ SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the GetDeployResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetDeployResult(_GetDeployResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetDeployResult> for _GetDeployResult {
+ fn from(result: GetDeployResult) -> Self {
+ result.0
+ }
+}
+#[cfg(target_arch = "wasm32")]
+impl From<_GetDeployResult> for GetDeployResult {
+ fn from(result: _GetDeployResult) -> Self {
+ GetDeployResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetDeployResult {
+ #[wasm_bindgen(getter)]
+ /// Gets the API version as a JavaScript value.
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ #[wasm_bindgen(getter)]
+ /// Gets the deploy information.
+ pub fn deploy(&self) -> Deploy {
+ self.0.deploy.clone().into()
+ }
+
+ // #[wasm_bindgen(getter)]
+ // /// Gets the execution info as a JavaScript value.
+ // pub fn execution_info(&self) -> JsValue {
+ // JsValue::from_serde(&self.0.execution_info).unwrap()
+ // }
+
+ #[wasm_bindgen(js_name = "toJson")]
+ /// Converts the result to a JSON JavaScript value.
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_deploy` method.
+#[derive(Debug, Clone, Default, Deserialize, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getDeployOptions", getter_with_clone)]
+pub struct GetDeployOptions {
+ pub deploy_hash_as_string: Option<String>,
+ pub deploy_hash: Option<DeployHash>,
+ pub finalized_approvals: Option<bool>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses deploy options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing deploy options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed deploy options as a `GetDeployOptions` struct.
+ #[wasm_bindgen(js_name = "get_deploy_options")]
+ pub fn get_deploy_options(&self, options: JsValue) -> GetDeployOptions {
+ let options_result = options.into_serde::<GetDeployOptions>();
+ match options_result {
+ Ok(mut options) => {
+ if let Some(finalized_approvals) = options.finalized_approvals {
+ options.finalized_approvals =
+ Some(JsValue::from_bool(finalized_approvals) == JsValue::TRUE);
+ }
+ options
+ }
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetDeployOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves deploy information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetDeployOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetDeployResult` or an error.
+ #[wasm_bindgen(js_name = "get_deploy")]
+ pub async fn get_deploy_js_alias(
+ &self,
+ options: Option<GetDeployOptions>,
+ ) -> Result<GetDeployResult, JsError> {
+ let GetDeployOptions {
+ deploy_hash_as_string,
+ deploy_hash,
+ finalized_approvals,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let err_msg = "Error: Missing deploy hash as string or deploy hash".to_string();
+ let deploy_hash = if let Some(deploy_hash_as_string) = deploy_hash_as_string {
+ let hash = Digest::new(&deploy_hash_as_string);
+ if let Err(err) = hash {
+ let err_msg = format!("Failed to parse AccountHash from formatted string: {}", err);
+ error(&err_msg);
+ return Err(JsError::new(&err_msg));
+ }
+ let deploy_hash = DeployHash::from_digest(hash.unwrap());
+ if deploy_hash.is_err() {
+ error(&err_msg);
+ return Err(JsError::new(&err_msg));
+ }
+ deploy_hash.unwrap()
+ } else {
+ if deploy_hash.is_none() {
+ error(&err_msg);
+ return Err(JsError::new(&err_msg));
+ }
+ deploy_hash.unwrap()
+ };
+
+ let result = self
+ .get_deploy(deploy_hash, finalized_approvals, verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ /// Retrieves deploy information using the provided options, alias for `get_deploy_js_alias`.
+ #[wasm_bindgen(js_name = "info_get_deploy")]
+ pub async fn info_get_deploy_js_alias(
+ &self,
+ options: Option<GetDeployOptions>,
+ ) -> Result<GetDeployResult, JsError> {
+ self.get_deploy_js_alias(options).await
+ }
+}
+
+impl SDK {
+ /// Retrieves deploy information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy_hash` - The deploy hash.
+ /// * `finalized_approvals` - An optional boolean indicating finalized approvals.
+ /// * `verbosity` - An optional verbosity level.
+ /// * `node_address` - An optional node address.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetDeployResult` or an error.
+ pub async fn get_deploy(
+ &self,
+ deploy_hash: DeployHash,
+ finalized_approvals: Option<bool>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetDeployResult>, Error> {
+ //log("get_deploy!");
+ get_deploy(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ deploy_hash.into(),
+ finalized_approvals.unwrap_or_default(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_dictionary_item.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_dictionary_item.rs.html
new file mode 100644
index 000000000..9aac6acc8
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_dictionary_item.rs.html
@@ -0,0 +1,551 @@
+get_dictionary_item.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+use crate::types::digest::Digest;
+use crate::{
+ types::{
+ deploy_params::dictionary_item_str_params::{
+ dictionary_item_str_params_to_casper_client, DictionaryItemStrParams,
+ },
+ dictionary_item_identifier::DictionaryItemIdentifier,
+ digest::ToDigest,
+ sdk_error::SdkError,
+ verbosity::Verbosity,
+ },
+ SDK,
+};
+use casper_client::{
+ cli::get_dictionary_item as get_dictionary_item_cli,
+ get_dictionary_item as get_dictionary_item_lib,
+ rpcs::results::GetDictionaryItemResult as _GetDictionaryItemResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the GetDictionaryItemResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetDictionaryItemResult(_GetDictionaryItemResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetDictionaryItemResult> for _GetDictionaryItemResult {
+ fn from(result: GetDictionaryItemResult) -> Self {
+ result.0
+ }
+}
+#[cfg(target_arch = "wasm32")]
+impl From<_GetDictionaryItemResult> for GetDictionaryItemResult {
+ fn from(result: _GetDictionaryItemResult) -> Self {
+ GetDictionaryItemResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetDictionaryItemResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the dictionary key as a String.
+ #[wasm_bindgen(getter)]
+ pub fn dictionary_key(&self) -> String {
+ self.0.dictionary_key.clone()
+ }
+
+ /// Gets the stored value as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn stored_value(&self) -> JsValue {
+ JsValue::from_serde(&self.0.stored_value).unwrap()
+ }
+
+ /// Gets the merkle proof as a String.
+ #[wasm_bindgen(getter)]
+ pub fn merkle_proof(&self) -> String {
+ self.0.merkle_proof.clone()
+ }
+
+ /// Converts the GetDictionaryItemResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_dictionary_item` method.
+#[derive(Default, Debug, Deserialize, Clone, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getDictionaryItemOptions", getter_with_clone)]
+pub struct GetDictionaryItemOptions {
+ pub state_root_hash_as_string: Option<String>,
+ pub state_root_hash: Option<Digest>,
+ pub dictionary_item_params: Option<DictionaryItemStrParams>,
+ pub dictionary_item_identifier: Option<DictionaryItemIdentifier>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses dictionary item options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing dictionary item options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed dictionary item options as a `GetDictionaryItemOptions` struct.
+ #[wasm_bindgen(js_name = "get_dictionary_item_options")]
+ pub fn get_dictionary_item_options(&self, options: JsValue) -> GetDictionaryItemOptions {
+ let options_result = options.into_serde::<GetDictionaryItemOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetDictionaryItemOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves dictionary item information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetDictionaryItemOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetDictionaryItemResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_dictionary_item")]
+ pub async fn get_dictionary_item_js_alias(
+ &self,
+ options: Option<GetDictionaryItemOptions>,
+ ) -> Result<GetDictionaryItemResult, JsError> {
+ let GetDictionaryItemOptions {
+ state_root_hash_as_string,
+ state_root_hash,
+ dictionary_item_params,
+ dictionary_item_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let dictionary_item = if let Some(identifier) = dictionary_item_identifier {
+ DictionaryItemInput::Identifier(identifier)
+ } else if let Some(params) = dictionary_item_params {
+ DictionaryItemInput::Params(params)
+ } else {
+ let err = "Error: Missing dictionary item identifier or params";
+ error(err);
+ return Err(JsError::new(err));
+ };
+
+ let result = if let Some(hash) = state_root_hash {
+ self.get_dictionary_item(hash, dictionary_item, verbosity, node_address)
+ .await
+ } else if let Some(hash) = state_root_hash_as_string.clone() {
+ self.get_dictionary_item(hash.as_str(), dictionary_item, verbosity, node_address)
+ .await
+ } else {
+ let err = "Error: Missing state_root_hash";
+ error(err);
+ return Err(JsError::new(err));
+ };
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ /// JS Alias for `get_dictionary_item_js_alias`
+ #[wasm_bindgen(js_name = "state_get_dictionary_item")]
+ pub async fn state_get_dictionary_item_js_alias(
+ &self,
+ options: Option<GetDictionaryItemOptions>,
+ ) -> Result<GetDictionaryItemResult, JsError> {
+ self.get_dictionary_item_js_alias(options).await
+ }
+}
+
+pub enum DictionaryItemInput {
+ Identifier(DictionaryItemIdentifier),
+ Params(DictionaryItemStrParams),
+}
+
+impl SDK {
+ /// Retrieves dictionary item information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `state_root_hash` - A `ToDigest` implementation for specifying the state root hash.
+ /// * `dictionary_item` - A `DictionaryItemInput` enum specifying the dictionary item to retrieve.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetDictionaryItemResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_dictionary_item(
+ &self,
+ state_root_hash: impl ToDigest,
+ dictionary_item_input: DictionaryItemInput,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetDictionaryItemResult>, SdkError> {
+ // log("state_get_dictionary_item!");
+ match dictionary_item_input {
+ DictionaryItemInput::Params(dictionary_item_params) => {
+ let state_root_hash_as_string: String = if !state_root_hash.is_empty() {
+ state_root_hash.to_digest().to_string()
+ } else {
+ let state_root_hash: Digest = self
+ .get_state_root_hash(
+ None,
+ None,
+ Some(self.get_node_address(node_address.clone())),
+ )
+ .await
+ .unwrap()
+ .result
+ .state_root_hash
+ .unwrap()
+ .into();
+ state_root_hash.to_string()
+ };
+ get_dictionary_item_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &state_root_hash_as_string,
+ dictionary_item_str_params_to_casper_client(&dictionary_item_params),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ DictionaryItemInput::Identifier(dictionary_item_identifier) => {
+ let state_root_hash = if state_root_hash.is_empty() {
+ self.get_state_root_hash(
+ None,
+ None,
+ Some(self.get_node_address(node_address.clone())),
+ )
+ .await
+ .unwrap()
+ .result
+ .state_root_hash
+ .unwrap()
+ .into()
+ } else {
+ state_root_hash.to_digest()
+ };
+ get_dictionary_item_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ state_root_hash.into(),
+ dictionary_item_identifier.into(),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_era_info.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_era_info.rs.html
new file mode 100644
index 000000000..8f56b6dc4
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_era_info.rs.html
@@ -0,0 +1,307 @@
+get_era_info.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_era_summary.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_era_summary.rs.html
new file mode 100644
index 000000000..42b6af51b
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_era_summary.rs.html
@@ -0,0 +1,393 @@
+get_era_summary.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::{
+ types::{block_identifier::BlockIdentifierInput, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::get_era_summary as get_era_summary_cli, get_era_summary as get_era_summary_lib,
+ rpcs::results::GetEraSummaryResult as _GetEraSummaryResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Wrapper struct for the `GetEraSummaryResult` from casper_client.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetEraSummaryResult(_GetEraSummaryResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetEraSummaryResult> for _GetEraSummaryResult {
+ fn from(result: GetEraSummaryResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetEraSummaryResult> for GetEraSummaryResult {
+ fn from(result: _GetEraSummaryResult) -> Self {
+ GetEraSummaryResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetEraSummaryResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the era summary as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn era_summary(&self) -> JsValue {
+ JsValue::from_serde(&self.0.era_summary).unwrap()
+ }
+
+ /// Converts the GetEraSummaryResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_era_summary` method.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getEraSummaryOptions", getter_with_clone)]
+pub struct GetEraSummaryOptions {
+ pub maybe_block_id_as_string: Option<String>,
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses era summary options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing era summary options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed era summary options as a `GetEraSummaryOptions` struct.
+ #[wasm_bindgen(js_name = "get_era_summary_options")]
+ pub fn get_era_summary_options(&self, options: JsValue) -> GetEraSummaryOptions {
+ let options_result = options.into_serde::<GetEraSummaryOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetEraSummaryOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves era summary information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetEraSummaryOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetEraSummaryResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_era_summary")]
+ pub async fn get_era_summary_js_alias(
+ &self,
+ options: Option<GetEraSummaryOptions>,
+ ) -> Result<GetEraSummaryResult, JsError> {
+ let GetEraSummaryOptions {
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .get_era_summary(maybe_block_identifier, verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves era summary information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `maybe_block_identifier` - An optional `BlockIdentifierInput` for specifying a block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetEraSummaryResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_era_summary(
+ &self,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetEraSummaryResult>, SdkError> {
+ //log("get_era_summary!");
+ if let Some(BlockIdentifierInput::String(maybe_block_id)) = maybe_block_identifier {
+ get_era_summary_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ get_era_summary_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ maybe_block_identifier.map(Into::into),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_node_status.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_node_status.rs.html
new file mode 100644
index 000000000..ac7b5d21f
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_node_status.rs.html
@@ -0,0 +1,397 @@
+get_node_status.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::{
+ debug::error,
+ types::{digest::Digest, public_key::PublicKey},
+};
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ get_node_status, rpcs::results::GetNodeStatusResult as _GetNodeStatusResult, Error, JsonRpcId,
+ SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Wrapper struct for the `GetNodeStatusResult` from casper_client.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetNodeStatusResult(_GetNodeStatusResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetNodeStatusResult> for _GetNodeStatusResult {
+ fn from(result: GetNodeStatusResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetNodeStatusResult> for GetNodeStatusResult {
+ fn from(result: _GetNodeStatusResult) -> Self {
+ GetNodeStatusResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetNodeStatusResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the chainspec name as a String.
+ #[wasm_bindgen(getter)]
+ pub fn chainspec_name(&self) -> String {
+ self.0.chainspec_name.clone()
+ }
+
+ /// Gets the starting state root hash as a Digest.
+ #[allow(deprecated)]
+ #[wasm_bindgen(getter)]
+ pub fn starting_state_root_hash(&self) -> Digest {
+ self.0.starting_state_root_hash.into()
+ }
+
+ /// Gets the list of peers as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn peers(&self) -> JsValue {
+ JsValue::from_serde(&self.0.peers).unwrap()
+ }
+
+ /// Gets information about the last added block as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn last_added_block_info(&self) -> JsValue {
+ JsValue::from_serde(&self.0.last_added_block_info).unwrap()
+ }
+
+ /// Gets the public signing key as an Option<PublicKey>.
+ #[wasm_bindgen(getter)]
+ pub fn our_public_signing_key(&self) -> Option<PublicKey> {
+ self.0.our_public_signing_key.clone().map(Into::into)
+ }
+
+ /// Gets the round length as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn round_length(&self) -> JsValue {
+ JsValue::from_serde(&self.0.round_length).unwrap()
+ }
+
+ /// Gets information about the next upgrade as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn next_upgrade(&self) -> JsValue {
+ JsValue::from_serde(&self.0.next_upgrade).unwrap()
+ }
+
+ /// Gets the build version as a String.
+ #[wasm_bindgen(getter)]
+ pub fn build_version(&self) -> String {
+ self.0.build_version.clone()
+ }
+
+ /// Gets the uptime information as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn uptime(&self) -> JsValue {
+ JsValue::from_serde(&self.0.uptime).unwrap()
+ }
+
+ /// Gets the reactor state information as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn reactor_state(&self) -> JsValue {
+ JsValue::from_serde(&self.0.reactor_state).unwrap()
+ }
+
+ /// Gets the last progress information as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn last_progress(&self) -> JsValue {
+ JsValue::from_serde(&self.0.last_progress).unwrap()
+ }
+
+ /// Gets the available block range as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn available_block_range(&self) -> JsValue {
+ JsValue::from_serde(&self.0.available_block_range).unwrap()
+ }
+
+ /// Gets the block sync information as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn block_sync(&self) -> JsValue {
+ JsValue::from_serde(&self.0.block_sync).unwrap()
+ }
+
+ /// Converts the GetNodeStatusResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// SDK methods related to retrieving node status information.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Retrieves node status information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetNodeStatusResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_node_status")]
+ pub async fn get_node_status_js_alias(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<GetNodeStatusResult, JsError> {
+ let result = self.get_node_status(verbosity, node_address).await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves node status information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetNodeStatusResult` or an `Error` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns an `Error` if there is an error during the retrieval process.
+ pub async fn get_node_status(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetNodeStatusResult>, Error> {
+ //log("get_node_status!");
+ get_node_status(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_peers.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_peers.rs.html
new file mode 100644
index 000000000..fbdf3cc6c
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_peers.rs.html
@@ -0,0 +1,223 @@
+get_peers.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ get_peers, rpcs::results::GetPeersResult as _GetPeersResult, Error, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// A wrapper for the `GetPeersResult` type from the Casper client.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetPeersResult(_GetPeersResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetPeersResult> for _GetPeersResult {
+ fn from(result: GetPeersResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetPeersResult> for GetPeersResult {
+ fn from(result: _GetPeersResult) -> Self {
+ GetPeersResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetPeersResult {
+ /// Gets the API version as a JSON value.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the peers as a JSON value.
+ #[wasm_bindgen(getter)]
+ pub fn peers(&self) -> JsValue {
+ JsValue::from_serde(&self.0.peers).unwrap()
+ }
+
+ /// Converts the result to JSON format as a JavaScript value.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Retrieves peers asynchronously.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - Optional verbosity level.
+ /// * `node_address` - Optional node address.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing `GetPeersResult` or a `JsError` if an error occurs.
+ #[wasm_bindgen(js_name = "get_peers")]
+ pub async fn get_peers_js_alias(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<GetPeersResult, JsError> {
+ let result = self.get_peers(verbosity, node_address).await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves peers.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - Optional verbosity level.
+ /// * `node_address` - Optional node address.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing `SuccessResponse` with `_GetPeersResult` or an `Error` if an error occurs.
+ pub async fn get_peers(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetPeersResult>, Error> {
+ get_peers(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_state_root_hash.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_state_root_hash.rs.html
new file mode 100644
index 000000000..fde7e995a
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_state_root_hash.rs.html
@@ -0,0 +1,463 @@
+get_state_root_hash.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+#[cfg(target_arch = "wasm32")]
+use crate::types::digest::Digest;
+use crate::{
+ types::{block_identifier::BlockIdentifierInput, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::get_state_root_hash as get_state_root_hash_cli,
+ get_state_root_hash as get_state_root_hash_lib,
+ rpcs::results::GetStateRootHashResult as _GetStateRootHashResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Wrapper struct for the `GetStateRootHashResult` from casper_client.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetStateRootHashResult(_GetStateRootHashResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetStateRootHashResult> for _GetStateRootHashResult {
+ fn from(result: GetStateRootHashResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetStateRootHashResult> for GetStateRootHashResult {
+ fn from(result: _GetStateRootHashResult) -> Self {
+ GetStateRootHashResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetStateRootHashResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the state root hash as an Option<Digest>.
+ #[wasm_bindgen(getter)]
+ pub fn state_root_hash(&self) -> Option<Digest> {
+ self.0.state_root_hash.map(Into::into)
+ }
+
+ /// Gets the state root hash as a String.
+ #[wasm_bindgen(getter)]
+ pub fn state_root_hash_as_string(&self) -> String {
+ self.0
+ .state_root_hash
+ .map(Into::<Digest>::into)
+ .map(|digest| digest.to_string())
+ .unwrap_or_default()
+ }
+
+ /// Converts the GetStateRootHashResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `get_state_root_hash` method.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getStateRootHashOptions", getter_with_clone)]
+pub struct GetStateRootHashOptions {
+ pub maybe_block_id_as_string: Option<String>,
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses state root hash options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing state root hash options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed state root hash options as a `GetStateRootHashOptions` struct.
+ #[wasm_bindgen(js_name = "get_state_root_hash_options")]
+ pub fn get_state_root_hash_options(&self, options: JsValue) -> GetStateRootHashOptions {
+ let options_result = options.into_serde::<GetStateRootHashOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetStateRootHashOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves state root hash information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetStateRootHashOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetStateRootHashResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_state_root_hash")]
+ pub async fn get_state_root_hash_js_alias(
+ &self,
+ options: Option<GetStateRootHashOptions>,
+ ) -> Result<GetStateRootHashResult, JsError> {
+ let GetStateRootHashOptions {
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .get_state_root_hash(maybe_block_identifier, verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ /// Retrieves state root hash information using the provided options (alias for `get_state_root_hash_js_alias`).
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `GetStateRootHashOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetStateRootHashResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "chain_get_state_root_hash")]
+ pub async fn chain_get_state_root_hash_js_alias(
+ &self,
+ options: Option<GetStateRootHashOptions>,
+ ) -> Result<GetStateRootHashResult, JsError> {
+ self.get_state_root_hash_js_alias(options).await
+ }
+}
+
+impl SDK {
+ /// Retrieves state root hash information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `maybe_block_identifier` - An optional `BlockIdentifierInput` for specifying a block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetStateRootHashResult` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ pub async fn get_state_root_hash(
+ &self,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetStateRootHashResult>, SdkError> {
+ //log("get_state_root_hash!");
+
+ if let Some(BlockIdentifierInput::String(maybe_block_id)) = maybe_block_identifier {
+ get_state_root_hash_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ get_state_root_hash_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ maybe_block_identifier.map(Into::into),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_validator_changes.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_validator_changes.rs.html
new file mode 100644
index 000000000..80c72a9c5
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/get_validator_changes.rs.html
@@ -0,0 +1,245 @@
+get_validator_changes.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ get_validator_changes, rpcs::results::GetValidatorChangesResult as _GetValidatorChangesResult,
+ Error, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Wrapper struct for the `GetValidatorChangesResult` from casper_client.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct GetValidatorChangesResult(_GetValidatorChangesResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<GetValidatorChangesResult> for _GetValidatorChangesResult {
+ fn from(result: GetValidatorChangesResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_GetValidatorChangesResult> for GetValidatorChangesResult {
+ fn from(result: _GetValidatorChangesResult) -> Self {
+ GetValidatorChangesResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl GetValidatorChangesResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the validator changes as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn changes(&self) -> JsValue {
+ JsValue::from_serde(&self.0.changes).unwrap()
+ }
+
+ /// Converts the GetValidatorChangesResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// SDK methods for working with validator changes.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Retrieves validator changes using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetValidatorChangesResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "get_validator_changes")]
+ pub async fn get_validator_changes_js_alias(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<GetValidatorChangesResult, JsError> {
+ let result = self.get_validator_changes(verbosity, node_address).await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves validator changes based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `GetValidatorChangesResult` or an `Error` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns an `Error` if there is an error during the retrieval process.
+ pub async fn get_validator_changes(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_GetValidatorChangesResult>, Error> {
+ //log("get_validator_changes!");
+ get_validator_changes(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/list_rpcs.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/list_rpcs.rs.html
new file mode 100644
index 000000000..fee6e50ca
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/list_rpcs.rs.html
@@ -0,0 +1,255 @@
+list_rpcs.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ list_rpcs, rpcs::results::ListRpcsResult as _ListRpcsResult, Error, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// Wrapper struct for the `ListRpcsResult` from casper_client.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct ListRpcsResult(_ListRpcsResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<ListRpcsResult> for _ListRpcsResult {
+ fn from(result: ListRpcsResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_ListRpcsResult> for ListRpcsResult {
+ fn from(result: _ListRpcsResult) -> Self {
+ ListRpcsResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl ListRpcsResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the name of the RPC.
+ #[wasm_bindgen(getter)]
+ pub fn name(&self) -> String {
+ self.0.name.clone()
+ }
+
+ /// Gets the schema of the RPC as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn schema(&self) -> JsValue {
+ JsValue::from_serde(&self.0.schema).unwrap()
+ }
+
+ /// Converts the ListRpcsResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// SDK methods for listing available RPCs.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Lists available RPCs using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `ListRpcsResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the listing process.
+ #[wasm_bindgen(js_name = "list_rpcs")]
+ pub async fn list_rpcs_js_alias(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<ListRpcsResult, JsError> {
+ let result = self.list_rpcs(verbosity, node_address).await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Lists available RPCs based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `ListRpcsResult` or an `Error` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns an `Error` if there is an error during the listing process.
+ pub async fn list_rpcs(
+ &self,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_ListRpcsResult>, Error> {
+ //log("list_rpcs!");
+ list_rpcs(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/mod.rs.html
new file mode 100644
index 000000000..73daf5a3c
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/mod.rs.html
@@ -0,0 +1,39 @@
+mod.rs - source
pub mod get_account;
+pub mod get_auction_info;
+pub mod get_balance;
+pub mod get_block;
+pub mod get_block_transfers;
+pub mod get_chainspec;
+pub mod get_deploy;
+pub mod get_dictionary_item;
+pub mod get_era_info;
+pub mod get_era_summary;
+pub mod get_node_status;
+pub mod get_peers;
+pub mod get_state_root_hash;
+pub mod get_validator_changes;
+pub mod list_rpcs;
+pub mod put_deploy;
+pub mod query_balance;
+pub mod query_global_state;
+pub mod speculative_exec;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/put_deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/put_deploy.rs.html
new file mode 100644
index 000000000..580e062db
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/put_deploy.rs.html
@@ -0,0 +1,197 @@
+put_deploy.rs - source
use crate::types::deploy::Deploy;
+#[cfg(target_arch = "wasm32")]
+use crate::{debug::error, deploy::deploy::PutDeployResult};
+use crate::{types::verbosity::Verbosity, SDK};
+use casper_client::{
+ put_deploy, rpcs::results::PutDeployResult as _PutDeployResult, Error, JsonRpcId,
+ SuccessResponse,
+};
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+/// SDK methods for putting a deploy.
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Puts a deploy using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy` - The `Deploy` object to be sent.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `PutDeployResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the deploy process.
+ #[wasm_bindgen(js_name = "put_deploy")]
+ pub async fn put_deploy_js_alias(
+ &self,
+ deploy: Deploy,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<PutDeployResult, JsError> {
+ let result = self
+ .put_deploy(deploy.into(), verbosity, node_address)
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+
+ /// JS Alias for `put_deploy_js_alias`.
+ ///
+ /// This function provides an alternative name for `put_deploy_js_alias`.
+ #[wasm_bindgen(js_name = "account_put_deploy")]
+ pub async fn account_put_deploy_js_alias(
+ &self,
+ deploy: Deploy,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<PutDeployResult, JsError> {
+ self.put_deploy_js_alias(deploy, verbosity, node_address)
+ .await
+ }
+}
+
+impl SDK {
+ /// Puts a deploy based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy` - The `Deploy` object to be sent.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `PutDeployResult` or an `Error` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns an `Error` if there is an error during the deploy process.
+ pub async fn put_deploy(
+ &self,
+ deploy: Deploy,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_PutDeployResult>, Error> {
+ //log("account_put_deploy!");
+ put_deploy(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ deploy.into(),
+ )
+ .await
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/query_balance.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/query_balance.rs.html
new file mode 100644
index 000000000..b1e348f17
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/query_balance.rs.html
@@ -0,0 +1,567 @@
+query_balance.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::types::digest::Digest;
+use crate::types::{
+ global_state_identifier::GlobalStateIdentifier, purse_identifier::PurseIdentifier,
+};
+use crate::{
+ debug::error,
+ types::{sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::cli::parse_purse_identifier;
+use casper_client::{
+ cli::query_balance as query_balance_cli, query_balance as query_balance_lib,
+ rpcs::results::QueryBalanceResult as _QueryBalanceResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the QueryBalanceResult
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct QueryBalanceResult(_QueryBalanceResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<QueryBalanceResult> for _QueryBalanceResult {
+ fn from(result: QueryBalanceResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_QueryBalanceResult> for QueryBalanceResult {
+ fn from(result: _QueryBalanceResult) -> Self {
+ QueryBalanceResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl QueryBalanceResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the balance as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn balance(&self) -> JsValue {
+ JsValue::from_serde(&self.0.balance).unwrap()
+ }
+
+ /// Converts the QueryBalanceResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `query_balance` method.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "queryBalanceOptions", getter_with_clone)]
+pub struct QueryBalanceOptions {
+ pub purse_identifier_as_string: Option<String>,
+ pub purse_identifier: Option<PurseIdentifier>,
+ pub global_state_identifier: Option<GlobalStateIdentifier>,
+ pub state_root_hash_as_string: Option<String>,
+ pub state_root_hash: Option<Digest>,
+ pub maybe_block_id_as_string: Option<String>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses query balance options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing query balance options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed query balance options as a `QueryBalanceOptions` struct.
+ #[wasm_bindgen(js_name = "query_balance_options")]
+ pub fn query_balance_options(&self, options: JsValue) -> QueryBalanceOptions {
+ let options_result = options.into_serde::<QueryBalanceOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ QueryBalanceOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves balance information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `QueryBalanceOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `QueryBalanceResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "query_balance")]
+ pub async fn query_balance_js_alias(
+ &self,
+ options: Option<QueryBalanceOptions>,
+ ) -> Result<QueryBalanceResult, JsError> {
+ let QueryBalanceOptions {
+ global_state_identifier,
+ purse_identifier_as_string,
+ purse_identifier,
+ state_root_hash_as_string,
+ state_root_hash,
+ maybe_block_id_as_string,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let result = if let Some(hash) = state_root_hash {
+ self.query_balance(
+ global_state_identifier,
+ purse_identifier_as_string,
+ purse_identifier.into(),
+ Some(hash.to_string()),
+ None,
+ verbosity,
+ node_address,
+ )
+ .await
+ } else if let Some(hash) = state_root_hash_as_string {
+ self.query_balance(
+ global_state_identifier,
+ purse_identifier_as_string,
+ purse_identifier.into(),
+ Some(hash.to_string()),
+ None,
+ verbosity,
+ node_address,
+ )
+ .await
+ } else if let Some(maybe_block_id_as_string) = maybe_block_id_as_string {
+ self.query_balance(
+ global_state_identifier,
+ purse_identifier_as_string,
+ purse_identifier.into(),
+ None,
+ Some(maybe_block_id_as_string),
+ verbosity,
+ node_address,
+ )
+ .await
+ } else {
+ self.query_balance(
+ global_state_identifier,
+ purse_identifier_as_string,
+ purse_identifier.into(),
+ None,
+ None,
+ verbosity,
+ node_address,
+ )
+ .await
+ };
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Retrieves balance information based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `maybe_global_state_identifier` - An optional `GlobalStateIdentifier` for specifying global state.
+ /// * `purse_identifier_as_string` - An optional string representing a purse identifier.
+ /// * `purse_identifier` - An optional `PurseIdentifier`.
+ /// * `state_root_hash` - An optional string representing a state root hash.
+ /// * `maybe_block_id` - An optional string representing a block identifier.
+ /// * `verbosity` - An optional `Verbosity` level for controlling the output verbosity.
+ /// * `node_address` - An optional string specifying the node address to use for the request.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `SuccessResponse<_QueryBalanceResult>` or a `SdkError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `SdkError` if there is an error during the retrieval process.
+ #[allow(clippy::too_many_arguments)]
+ pub async fn query_balance(
+ &self,
+ maybe_global_state_identifier: Option<GlobalStateIdentifier>,
+ purse_identifier_as_string: Option<String>,
+ purse_identifier: Option<PurseIdentifier>,
+ state_root_hash: Option<String>,
+ maybe_block_id: Option<String>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_QueryBalanceResult>, SdkError> {
+ //log("query_balance!");
+
+ let purse_identifier: PurseIdentifier = if let Some(purse_identifier) = purse_identifier {
+ purse_identifier
+ } else if let Some(purse_id) = purse_identifier_as_string.clone() {
+ match parse_purse_identifier(&purse_id) {
+ Ok(parsed) => parsed.into(),
+ Err(err) => {
+ error(&err.to_string());
+ return Err(SdkError::FailedToParsePurseIdentifier);
+ }
+ }
+ } else {
+ let err = "Error: Missing purse identifier";
+ error(err);
+ return Err(SdkError::FailedToParsePurseIdentifier);
+ };
+
+ if let Some(maybe_global_state_identifier) = maybe_global_state_identifier {
+ query_balance_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ Some(maybe_global_state_identifier.into()),
+ purse_identifier.into(),
+ )
+ .await
+ .map_err(SdkError::from)
+ } else if maybe_global_state_identifier.is_none() {
+ query_balance_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ None,
+ purse_identifier.into(),
+ )
+ .await
+ .map_err(SdkError::from)
+ } else if let Some(state_root_hash) = state_root_hash {
+ query_balance_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ "",
+ &state_root_hash,
+ &purse_identifier.to_string(),
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ query_balance_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id.unwrap_or_default(),
+ "",
+ &purse_identifier.to_string(),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/query_global_state.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/query_global_state.rs.html
new file mode 100644
index 000000000..2a238ab8a
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/query_global_state.rs.html
@@ -0,0 +1,805 @@
+query_global_state.rs - source
use crate::debug::error;
+use crate::types::digest::Digest;
+use crate::types::global_state_identifier::GlobalStateIdentifier;
+use crate::{
+ types::{key::Key, path::Path, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ cli::query_global_state as query_global_state_cli,
+ query_global_state as query_global_state_lib,
+ rpcs::results::QueryGlobalStateResult as _QueryGlobalStateResult, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+use serde::{Deserialize, Serialize};
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the QueryGlobalStateResult
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct QueryGlobalStateResult(_QueryGlobalStateResult);
+
+impl From<QueryGlobalStateResult> for _QueryGlobalStateResult {
+ fn from(result: QueryGlobalStateResult) -> Self {
+ result.0
+ }
+}
+
+impl From<_QueryGlobalStateResult> for QueryGlobalStateResult {
+ fn from(result: _QueryGlobalStateResult) -> Self {
+ QueryGlobalStateResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl QueryGlobalStateResult {
+ /// Gets the API version as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Gets the block header as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn block_header(&self) -> JsValue {
+ JsValue::from_serde(&self.0.block_header).unwrap()
+ }
+
+ /// Gets the stored value as a JsValue.
+ #[wasm_bindgen(getter)]
+ pub fn stored_value(&self) -> JsValue {
+ JsValue::from_serde(&self.0.stored_value).unwrap()
+ }
+
+ /// Gets the Merkle proof as a string.
+ #[wasm_bindgen(getter)]
+ pub fn merkle_proof(&self) -> String {
+ self.0.merkle_proof.clone()
+ }
+
+ /// Converts the QueryGlobalStateResult to a JsValue.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for the `query_global_state` method.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[wasm_bindgen(js_name = "queryGlobalStateOptions", getter_with_clone)]
+pub struct QueryGlobalStateOptions {
+ pub global_state_identifier: Option<GlobalStateIdentifier>,
+ pub state_root_hash_as_string: Option<String>,
+ pub state_root_hash: Option<Digest>,
+ pub maybe_block_id_as_string: Option<String>,
+ pub key_as_string: Option<String>,
+ pub key: Option<Key>,
+ pub path_as_string: Option<String>,
+ pub path: Option<Path>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Parses query global state options from a JsValue.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - A JsValue containing query global state options to be parsed.
+ ///
+ /// # Returns
+ ///
+ /// Parsed query global state options as a `QueryGlobalStateOptions` struct.
+ #[wasm_bindgen(js_name = "query_global_state_options")]
+ pub fn query_global_state_options(&self, options: JsValue) -> QueryGlobalStateOptions {
+ let options_result = options.into_serde::<QueryGlobalStateOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ QueryGlobalStateOptions::default()
+ }
+ }
+ }
+
+ /// Retrieves global state information using the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `QueryGlobalStateOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `QueryGlobalStateResult` or a `JsError` in case of an error.
+ ///
+ /// # Errors
+ ///
+ /// Returns a `JsError` if there is an error during the retrieval process.
+ #[wasm_bindgen(js_name = "query_global_state")]
+ pub async fn query_global_state_js_alias(
+ &self,
+ options: Option<QueryGlobalStateOptions>,
+ ) -> Result<QueryGlobalStateResult, JsError> {
+ match self.query_global_state_js_alias_params(options) {
+ Ok(params) => {
+ let result = self.query_global_state(params).await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+ Err(err) => {
+ let err = &format!("Error building parameters: {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+/// Enum to represent input for KeyIdentifier.
+#[derive(Debug, Clone)]
+pub enum KeyIdentifierInput {
+ Key(Key),
+ String(String),
+}
+
+/// Enum to represent input for PathIdentifier.
+#[derive(Debug, Clone)]
+pub enum PathIdentifierInput {
+ Path(Path),
+ String(String),
+}
+
+/// Struct to store parameters for querying global state.
+#[derive(Debug)]
+pub struct QueryGlobalStateParams {
+ pub key: KeyIdentifierInput,
+ pub path: Option<PathIdentifierInput>,
+ pub maybe_global_state_identifier: Option<GlobalStateIdentifier>,
+ pub state_root_hash: Option<String>,
+ pub maybe_block_id: Option<String>,
+ pub node_address: Option<String>,
+ pub verbosity: Option<Verbosity>,
+}
+
+impl SDK {
+ /// Builds parameters for querying global state based on the provided options.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - An optional `QueryGlobalStateOptions` struct containing retrieval options.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `QueryGlobalStateParams` struct or a `SdkError` in case of an error.
+ pub fn query_global_state_js_alias_params(
+ &self,
+ options: Option<QueryGlobalStateOptions>,
+ ) -> Result<QueryGlobalStateParams, SdkError> {
+ let QueryGlobalStateOptions {
+ global_state_identifier,
+ state_root_hash_as_string,
+ state_root_hash,
+ maybe_block_id_as_string,
+ key_as_string,
+ key,
+ path_as_string,
+ path,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let key = if let Some(key) = key {
+ Some(KeyIdentifierInput::Key(key))
+ } else if let Some(key_as_string) = key_as_string {
+ Some(KeyIdentifierInput::String(key_as_string))
+ } else {
+ let err_msg = "Error: Missing Key as string or Key".to_string();
+ error(&err_msg);
+ return Err(SdkError::InvalidArgument {
+ context: "query_global_state",
+ error: err_msg,
+ });
+ };
+
+ let maybe_path = if let Some(path) = path {
+ Some(PathIdentifierInput::Path(path))
+ } else if let Some(path_str) = path_as_string {
+ if path_str.is_empty() {
+ None
+ } else {
+ Some(PathIdentifierInput::String(path_str))
+ }
+ } else {
+ None
+ };
+
+ let query_params = if let Some(hash) = state_root_hash {
+ let state_root_hash_str = hash.to_string();
+ QueryGlobalStateParams {
+ key: key.unwrap(),
+ path: maybe_path.clone(),
+ maybe_global_state_identifier: global_state_identifier.clone(),
+ state_root_hash: if state_root_hash_str.is_empty() {
+ None
+ } else {
+ Some(state_root_hash_str)
+ },
+ maybe_block_id: None,
+ verbosity,
+ node_address,
+ }
+ } else if let Some(hash) = state_root_hash_as_string {
+ let state_root_hash_str = hash.to_string();
+ QueryGlobalStateParams {
+ key: key.unwrap(),
+ path: maybe_path.clone(),
+ maybe_global_state_identifier: global_state_identifier.clone(),
+ state_root_hash: if state_root_hash_str.is_empty() {
+ None
+ } else {
+ Some(state_root_hash_str)
+ },
+ maybe_block_id: None,
+ verbosity,
+ node_address,
+ }
+ } else if let Some(maybe_block_id_as_string) = maybe_block_id_as_string {
+ QueryGlobalStateParams {
+ key: key.unwrap(),
+ path: maybe_path.clone(),
+ maybe_global_state_identifier: global_state_identifier.clone(),
+ state_root_hash: None,
+ maybe_block_id: Some(maybe_block_id_as_string),
+ verbosity,
+ node_address,
+ }
+ } else {
+ QueryGlobalStateParams {
+ key: key.unwrap(),
+ path: maybe_path.clone(),
+ maybe_global_state_identifier: global_state_identifier.clone(),
+ state_root_hash: None,
+ maybe_block_id: None,
+ verbosity,
+ node_address,
+ }
+ };
+ Ok(query_params)
+ }
+
+ /// Retrieves global state information based on the provided parameters.
+ ///
+ /// # Arguments
+ ///
+ /// * `query_params` - A `QueryGlobalStateParams` struct containing query parameters.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing either a `SuccessResponse<_QueryGlobalStateResult>` or a `SdkError` in case of an error.
+ pub async fn query_global_state(
+ &self,
+ query_params: QueryGlobalStateParams,
+ ) -> Result<SuccessResponse<_QueryGlobalStateResult>, SdkError> {
+ //log("query_global_state!");
+
+ let QueryGlobalStateParams {
+ key,
+ path,
+ maybe_global_state_identifier,
+ state_root_hash,
+ maybe_block_id,
+ verbosity,
+ node_address,
+ } = query_params;
+
+ let key = match key {
+ KeyIdentifierInput::Key(key) => Some(key),
+ KeyIdentifierInput::String(key_string) => match Key::from_formatted_str(&key_string) {
+ Ok(key) => Some(key),
+ Err(_) => None,
+ },
+ };
+
+ if key.is_none() {
+ let err = "Error: Missing key from formatted string".to_string();
+ error(&err);
+ return Err(SdkError::InvalidArgument {
+ context: "query_global_state",
+ error: err,
+ });
+ }
+
+ let path = if let Some(path) = path {
+ let path = match path {
+ PathIdentifierInput::Path(path) => path,
+ PathIdentifierInput::String(path_string) => Path::from(path_string),
+ };
+ Some(path)
+ } else {
+ None
+ };
+
+ let path_str: String = match path.clone() {
+ Some(p) => p.to_string(),
+ None => String::new(),
+ };
+ if let Some(maybe_global_state_identifier) = maybe_global_state_identifier {
+ query_global_state_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ Some(maybe_global_state_identifier.into()),
+ key.unwrap().into(),
+ match path {
+ Some(path) if path.is_empty() => Vec::new(),
+ Some(path) => path.into(),
+ None => Vec::new(),
+ },
+ )
+ .await
+ .map_err(SdkError::from)
+ } else if let Some(state_root_hash) = state_root_hash {
+ query_global_state_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ "",
+ &state_root_hash,
+ &key.unwrap().to_formatted_string(),
+ &path_str,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else if let Some(maybe_block_id) = maybe_block_id {
+ query_global_state_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ &maybe_block_id,
+ "",
+ &key.unwrap().to_formatted_string(),
+ &path_str,
+ )
+ .await
+ .map_err(SdkError::from)
+ } else {
+ let state_root_hash: Digest = self
+ .get_state_root_hash(
+ None,
+ None,
+ Some(self.get_node_address(node_address.clone())),
+ )
+ .await
+ .unwrap()
+ .result
+ .state_root_hash
+ .unwrap()
+ .into();
+ query_global_state_cli(
+ &rand::thread_rng().gen::<i64>().to_string(),
+ &self.get_node_address(node_address),
+ self.get_verbosity(verbosity).into(),
+ "",
+ &state_root_hash.to_string(),
+ &key.unwrap().to_formatted_string(),
+ &path_str,
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/speculative_exec.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/speculative_exec.rs.html
new file mode 100644
index 000000000..0ff62e89d
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/sdk/rpcs/speculative_exec.rs.html
@@ -0,0 +1,425 @@
+speculative_exec.rs - source
#[cfg(target_arch = "wasm32")]
+use crate::debug::error;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_hash::BlockHash;
+#[cfg(target_arch = "wasm32")]
+use crate::types::block_identifier::BlockIdentifier;
+use crate::types::deploy::Deploy;
+use crate::{
+ types::{block_identifier::BlockIdentifierInput, sdk_error::SdkError, verbosity::Verbosity},
+ SDK,
+};
+use casper_client::{
+ rpcs::results::SpeculativeExecResult as _SpeculativeExecResult,
+ speculative_exec as speculative_exec_lib, JsonRpcId, SuccessResponse,
+};
+#[cfg(target_arch = "wasm32")]
+use gloo_utils::format::JsValueSerdeExt;
+use rand::Rng;
+#[cfg(target_arch = "wasm32")]
+use serde::{Deserialize, Serialize};
+#[cfg(target_arch = "wasm32")]
+use wasm_bindgen::prelude::*;
+
+// Define a struct to wrap the result of a speculative execution.
+#[cfg(target_arch = "wasm32")]
+#[derive(Debug, Deserialize, Clone, Serialize)]
+#[wasm_bindgen]
+pub struct SpeculativeExecResult(_SpeculativeExecResult);
+
+#[cfg(target_arch = "wasm32")]
+impl From<SpeculativeExecResult> for _SpeculativeExecResult {
+ fn from(result: SpeculativeExecResult) -> Self {
+ result.0
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+impl From<_SpeculativeExecResult> for SpeculativeExecResult {
+ fn from(result: _SpeculativeExecResult) -> Self {
+ SpeculativeExecResult(result)
+ }
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SpeculativeExecResult {
+ /// Get the API version of the result.
+ #[wasm_bindgen(getter)]
+ pub fn api_version(&self) -> JsValue {
+ JsValue::from_serde(&self.0.api_version).unwrap()
+ }
+
+ /// Get the block hash.
+ #[wasm_bindgen(getter)]
+ pub fn block_hash(&self) -> BlockHash {
+ self.0.block_hash.into()
+ }
+
+ /// Get the execution result.
+ #[wasm_bindgen(getter)]
+ pub fn execution_result(&self) -> JsValue {
+ JsValue::from_serde(&self.0.execution_result).unwrap()
+ }
+
+ /// Convert the result to JSON format.
+ #[wasm_bindgen(js_name = "toJson")]
+ pub fn to_json(&self) -> JsValue {
+ JsValue::from_serde(&self.0).unwrap_or(JsValue::null())
+ }
+}
+
+/// Options for speculative execution.
+#[derive(Debug, Deserialize, Clone, Default, Serialize)]
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen(js_name = "getSpeculativeExecOptions", getter_with_clone)]
+pub struct GetSpeculativeExecOptions {
+ /// The deploy as a JSON string.
+ pub deploy_as_string: Option<String>,
+
+ /// The deploy to execute.
+ pub deploy: Option<Deploy>,
+
+ /// The block identifier as a string.
+ pub maybe_block_id_as_string: Option<String>,
+
+ /// The block identifier.
+ pub maybe_block_identifier: Option<BlockIdentifier>,
+
+ /// The node address.
+ pub node_address: Option<String>,
+
+ /// The verbosity level for logging.
+ pub verbosity: Option<Verbosity>,
+}
+
+#[cfg(target_arch = "wasm32")]
+#[wasm_bindgen]
+impl SDK {
+ /// Get options for speculative execution from a JavaScript value.
+ #[wasm_bindgen(js_name = "speculative_exec_options")]
+ pub fn get_speculative_exec_options(&self, options: JsValue) -> GetSpeculativeExecOptions {
+ let options_result = options.into_serde::<GetSpeculativeExecOptions>();
+ match options_result {
+ Ok(options) => options,
+ Err(err) => {
+ error(&format!("Error deserializing options: {:?}", err));
+ GetSpeculativeExecOptions::default()
+ }
+ }
+ }
+
+ /// JS Alias for speculative execution.
+ ///
+ /// # Arguments
+ ///
+ /// * `options` - The options for speculative execution.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the result of the speculative execution or a `JsError` in case of an error.
+ #[wasm_bindgen(js_name = "speculative_exec")]
+ pub async fn speculative_exec_js_alias(
+ &self,
+ options: Option<GetSpeculativeExecOptions>,
+ ) -> Result<SpeculativeExecResult, JsError> {
+ let GetSpeculativeExecOptions {
+ deploy_as_string,
+ deploy,
+ maybe_block_id_as_string,
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ } = options.unwrap_or_default();
+
+ let deploy = if let Some(deploy_as_string) = deploy_as_string {
+ Deploy::new(deploy_as_string.into())
+ } else if let Some(deploy) = deploy {
+ deploy
+ } else {
+ let err = &format!("Error: Missing deploy as json or deploy");
+ error(err);
+ return Err(JsError::new(err));
+ };
+
+ let maybe_block_identifier = if let Some(maybe_block_identifier) = maybe_block_identifier {
+ Some(BlockIdentifierInput::BlockIdentifier(
+ maybe_block_identifier,
+ ))
+ } else {
+ maybe_block_id_as_string.map(BlockIdentifierInput::String)
+ };
+
+ let result = self
+ .speculative_exec(
+ deploy.into(),
+ maybe_block_identifier,
+ verbosity,
+ node_address,
+ )
+ .await;
+ match result {
+ Ok(data) => Ok(data.result.into()),
+ Err(err) => {
+ let err = &format!("Error occurred with {:?}", err);
+ error(err);
+ Err(JsError::new(err))
+ }
+ }
+ }
+}
+
+impl SDK {
+ /// Perform speculative execution.
+ ///
+ /// # Arguments
+ ///
+ /// * `deploy` - The deploy to execute.
+ /// * `maybe_block_identifier` - The block identifier.
+ /// * `verbosity` - The verbosity level for logging.
+ /// * `node_address` - The address of the node to connect to.
+ ///
+ /// # Returns
+ ///
+ /// A `Result` containing the result of the speculative execution or a `SdkError` in case of an error.
+ pub async fn speculative_exec(
+ &self,
+ deploy: Deploy,
+ maybe_block_identifier: Option<BlockIdentifierInput>,
+ verbosity: Option<Verbosity>,
+ node_address: Option<String>,
+ ) -> Result<SuccessResponse<_SpeculativeExecResult>, SdkError> {
+ //log("speculative_exec!");
+
+ let maybe_block_identifier =
+ if let Some(BlockIdentifierInput::BlockIdentifier(maybe_block_identifier)) =
+ maybe_block_identifier
+ {
+ Some(maybe_block_identifier)
+ } else {
+ None
+ };
+ speculative_exec_lib(
+ JsonRpcId::from(rand::thread_rng().gen::<i64>().to_string()),
+ &self.get_node_address(node_address),
+ maybe_block_identifier.map(Into::into),
+ self.get_verbosity(verbosity).into(),
+ deploy.into(),
+ )
+ .await
+ .map_err(SdkError::from)
+ }
+}
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/access_rights.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/access_rights.rs.html
new file mode 100644
index 000000000..d59d5ea31
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/access_rights.rs.html
@@ -0,0 +1,227 @@
+access_rights.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/account_hash.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/account_hash.rs.html
new file mode 100644
index 000000000..939ea5e16
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/account_hash.rs.html
@@ -0,0 +1,203 @@
+account_hash.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/account_identifier.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/account_identifier.rs.html
new file mode 100644
index 000000000..a2ec16298
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/account_identifier.rs.html
@@ -0,0 +1,195 @@
+account_identifier.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/dictionary_addr.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/dictionary_addr.rs.html
new file mode 100644
index 000000000..a1e8a888c
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/dictionary_addr.rs.html
@@ -0,0 +1,65 @@
+dictionary_addr.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/hash_addr.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/hash_addr.rs.html
new file mode 100644
index 000000000..98a4103cf
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/hash_addr.rs.html
@@ -0,0 +1,65 @@
+hash_addr.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/mod.rs.html
new file mode 100644
index 000000000..f2e0db2d0
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/mod.rs.html
@@ -0,0 +1,9 @@
+mod.rs - source
pub mod dictionary_addr;
+pub mod hash_addr;
+pub mod transfer_addr;
+pub mod uref_addr;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/transfer_addr.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/transfer_addr.rs.html
new file mode 100644
index 000000000..94c3891ca
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/transfer_addr.rs.html
@@ -0,0 +1,87 @@
+transfer_addr.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/uref_addr.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/uref_addr.rs.html
new file mode 100644
index 000000000..1231b3c4c
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/addr/uref_addr.rs.html
@@ -0,0 +1,65 @@
+uref_addr.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/block_hash.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/block_hash.rs.html
new file mode 100644
index 000000000..727408524
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/block_hash.rs.html
@@ -0,0 +1,135 @@
+block_hash.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/block_identifier.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/block_identifier.rs.html
new file mode 100644
index 000000000..86b69c3fb
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/block_identifier.rs.html
@@ -0,0 +1,103 @@
+block_identifier.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/cl/bytes.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/cl/bytes.rs.html
new file mode 100644
index 000000000..25b4cc235
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/cl/bytes.rs.html
@@ -0,0 +1,153 @@
+bytes.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/cl/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/cl/mod.rs.html
new file mode 100644
index 000000000..5fa6789ec
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/cl/mod.rs.html
@@ -0,0 +1,9 @@
+mod.rs - source
pub mod bytes;
+// TODO see if we really need to re export cl values and types for result types coming from the client
+// pub mod cl_type;
+// pub mod cl_value;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/contract_hash.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/contract_hash.rs.html
new file mode 100644
index 000000000..21765b180
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/contract_hash.rs.html
@@ -0,0 +1,157 @@
+contract_hash.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/contract_package_hash.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/contract_package_hash.rs.html
new file mode 100644
index 000000000..c56f0ef43
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/contract_package_hash.rs.html
@@ -0,0 +1,159 @@
+contract_package_hash.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy.rs.html
new file mode 100644
index 000000000..6e6300df6
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy.rs.html
@@ -0,0 +1,1457 @@
+deploy.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_hash.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_hash.rs.html
new file mode 100644
index 000000000..52185191e
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_hash.rs.html
@@ -0,0 +1,187 @@
+deploy_hash.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/args_simple.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/args_simple.rs.html
new file mode 100644
index 000000000..287d5200d
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/args_simple.rs.html
@@ -0,0 +1,113 @@
+args_simple.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params.rs.html
new file mode 100644
index 000000000..8b4555d4d
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/deploy_str_params.rs.html
@@ -0,0 +1,293 @@
+deploy_str_params.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params.rs.html
new file mode 100644
index 000000000..a2e1800a1
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/dictionary_item_str_params.rs.html
@@ -0,0 +1,471 @@
+dictionary_item_str_params.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/mod.rs.html
new file mode 100644
index 000000000..17639b025
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/mod.rs.html
@@ -0,0 +1,11 @@
+mod.rs - source
pub mod args_simple;
+pub mod deploy_str_params;
+pub mod dictionary_item_str_params;
+pub mod payment_str_params;
+pub mod session_str_params;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/payment_str_params.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/payment_str_params.rs.html
new file mode 100644
index 000000000..a5daf01c2
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/payment_str_params.rs.html
@@ -0,0 +1,523 @@
+payment_str_params.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/session_str_params.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/session_str_params.rs.html
new file mode 100644
index 000000000..f1e56af3e
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/deploy_params/session_str_params.rs.html
@@ -0,0 +1,635 @@
+session_str_params.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/dictionary_item_identifier.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/dictionary_item_identifier.rs.html
new file mode 100644
index 000000000..bb8f160f9
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/dictionary_item_identifier.rs.html
@@ -0,0 +1,263 @@
+dictionary_item_identifier.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/digest.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/digest.rs.html
new file mode 100644
index 000000000..bfcb3f3c3
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/digest.rs.html
@@ -0,0 +1,331 @@
+digest.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/era_id.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/era_id.rs.html
new file mode 100644
index 000000000..240ce520f
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/era_id.rs.html
@@ -0,0 +1,63 @@
+era_id.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/global_state_identifier.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/global_state_identifier.rs.html
new file mode 100644
index 000000000..03ecbf43e
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/global_state_identifier.rs.html
@@ -0,0 +1,107 @@
+global_state_identifier.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/key.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/key.rs.html
new file mode 100644
index 000000000..f49aa8d24
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/key.rs.html
@@ -0,0 +1,439 @@
+key.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/mod.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/mod.rs.html
new file mode 100644
index 000000000..3aef0fd2b
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/mod.rs.html
@@ -0,0 +1,49 @@
+mod.rs - source
pub mod access_rights;
+pub mod account_hash;
+pub mod account_identifier;
+pub mod addr;
+pub mod block_hash;
+pub mod block_identifier;
+pub mod cl;
+pub mod contract_hash;
+pub mod contract_package_hash;
+pub mod deploy;
+pub mod deploy_hash;
+pub mod deploy_params;
+pub mod dictionary_item_identifier;
+pub mod digest;
+pub mod era_id;
+pub mod global_state_identifier;
+pub mod key;
+pub mod path;
+pub mod peer_entry;
+pub mod public_key;
+pub mod purse_identifier;
+pub mod sdk_error;
+pub mod uref;
+pub mod verbosity;
+
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/path.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/path.rs.html
new file mode 100644
index 000000000..47836b434
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/path.rs.html
@@ -0,0 +1,185 @@
+path.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/peer_entry.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/peer_entry.rs.html
new file mode 100644
index 000000000..54df68416
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/peer_entry.rs.html
@@ -0,0 +1,65 @@
+peer_entry.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/public_key.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/public_key.rs.html
new file mode 100644
index 000000000..00da5d7d6
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/public_key.rs.html
@@ -0,0 +1,193 @@
+public_key.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/purse_identifier.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/purse_identifier.rs.html
new file mode 100644
index 000000000..72bb7f8e4
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/purse_identifier.rs.html
@@ -0,0 +1,207 @@
+purse_identifier.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/sdk_error.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/sdk_error.rs.html
new file mode 100644
index 000000000..dffbbb364
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/sdk_error.rs.html
@@ -0,0 +1,307 @@
+sdk_error.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/uref.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/uref.rs.html
new file mode 100644
index 000000000..1f0a64c21
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/uref.rs.html
@@ -0,0 +1,141 @@
+uref.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/src/casper_rust_wasm_sdk/types/verbosity.rs.html b/docs/api-rust/src/casper_rust_wasm_sdk/types/verbosity.rs.html
new file mode 100644
index 000000000..05b73c2d0
--- /dev/null
+++ b/docs/api-rust/src/casper_rust_wasm_sdk/types/verbosity.rs.html
@@ -0,0 +1,191 @@
+verbosity.rs - source
\ No newline at end of file
diff --git a/docs/api-rust/static.files/COPYRIGHT-23e9bde6c69aea69.txt b/docs/api-rust/static.files/COPYRIGHT-23e9bde6c69aea69.txt
new file mode 100644
index 000000000..1447df792
--- /dev/null
+++ b/docs/api-rust/static.files/COPYRIGHT-23e9bde6c69aea69.txt
@@ -0,0 +1,50 @@
+# REUSE-IgnoreStart
+
+These documentation pages include resources by third parties. This copyright
+file applies only to those resources. The following third party resources are
+included, and carry their own copyright notices and license terms:
+
+* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2):
+
+ Copyright (c) 2014, Mozilla Foundation https://mozilla.org/
+ with Reserved Font Name Fira Sans.
+
+ Copyright (c) 2014, Telefonica S.A.
+
+ Licensed under the SIL Open Font License, Version 1.1.
+ See FiraSans-LICENSE.txt.
+
+* rustdoc.css, main.js, and playpen.js:
+
+ Copyright 2015 The Rust Developers.
+ Licensed under the Apache License, Version 2.0 (see LICENSE-APACHE.txt) or
+ the MIT license (LICENSE-MIT.txt) at your option.
+
+* normalize.css:
+
+ Copyright (c) Nicolas Gallagher and Jonathan Neal.
+ Licensed under the MIT license (see LICENSE-MIT.txt).
+
+* Source Code Pro (SourceCodePro-Regular.ttf.woff2,
+ SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2):
+
+ Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/),
+ with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark
+ of Adobe Systems Incorporated in the United States and/or other countries.
+
+ Licensed under the SIL Open Font License, Version 1.1.
+ See SourceCodePro-LICENSE.txt.
+
+* Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2,
+ SourceSerif4-It.ttf.woff2):
+
+ Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name
+ 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United
+ States and/or other countries.
+
+ Licensed under the SIL Open Font License, Version 1.1.
+ See SourceSerif4-LICENSE.md.
+
+This copyright file is intended to be distributed with rustdoc output.
+
+# REUSE-IgnoreEnd
diff --git a/docs/api-rust/static.files/FiraSans-LICENSE-db4b642586e02d97.txt b/docs/api-rust/static.files/FiraSans-LICENSE-db4b642586e02d97.txt
new file mode 100644
index 000000000..d7e9c149b
--- /dev/null
+++ b/docs/api-rust/static.files/FiraSans-LICENSE-db4b642586e02d97.txt
@@ -0,0 +1,98 @@
+// REUSE-IgnoreStart
+
+Digitized data copyright (c) 2012-2015, The Mozilla Foundation and Telefonica S.A.
+with Reserved Font Name < Fira >,
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+// REUSE-IgnoreEnd
diff --git a/docs/api-rust/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 b/docs/api-rust/static.files/FiraSans-Medium-8f9a781e4970d388.woff2
new file mode 100644
index 000000000..7a1e5fc54
Binary files /dev/null and b/docs/api-rust/static.files/FiraSans-Medium-8f9a781e4970d388.woff2 differ
diff --git a/docs/api-rust/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 b/docs/api-rust/static.files/FiraSans-Regular-018c141bf0843ffd.woff2
new file mode 100644
index 000000000..e766e06cc
Binary files /dev/null and b/docs/api-rust/static.files/FiraSans-Regular-018c141bf0843ffd.woff2 differ
diff --git a/docs/api-rust/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt b/docs/api-rust/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt
new file mode 100644
index 000000000..16fe87b06
--- /dev/null
+++ b/docs/api-rust/static.files/LICENSE-APACHE-b91fa81cba47b86a.txt
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/docs/api-rust/static.files/LICENSE-MIT-65090b722b3f6c56.txt b/docs/api-rust/static.files/LICENSE-MIT-65090b722b3f6c56.txt
new file mode 100644
index 000000000..31aa79387
--- /dev/null
+++ b/docs/api-rust/static.files/LICENSE-MIT-65090b722b3f6c56.txt
@@ -0,0 +1,23 @@
+Permission is hereby granted, free of charge, to any
+person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the
+Software without restriction, including without
+limitation the rights to use, copy, modify, merge,
+publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice
+shall be included in all copies or substantial portions
+of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
+ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
diff --git a/docs/api-rust/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 b/docs/api-rust/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2
new file mode 100644
index 000000000..1866ad4bc
Binary files /dev/null and b/docs/api-rust/static.files/NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt b/docs/api-rust/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt
new file mode 100644
index 000000000..4b3edc29e
--- /dev/null
+++ b/docs/api-rust/static.files/NanumBarunGothic-LICENSE-18c5adf4b52b4041.txt
@@ -0,0 +1,103 @@
+// REUSE-IgnoreStart
+
+Copyright (c) 2010, NAVER Corporation (https://www.navercorp.com/),
+
+with Reserved Font Name Nanum, Naver Nanum, NanumGothic, Naver NanumGothic,
+NanumMyeongjo, Naver NanumMyeongjo, NanumBrush, Naver NanumBrush, NanumPen,
+Naver NanumPen, Naver NanumGothicEco, NanumGothicEco, Naver NanumMyeongjoEco,
+NanumMyeongjoEco, Naver NanumGothicLight, NanumGothicLight, NanumBarunGothic,
+Naver NanumBarunGothic, NanumSquareRound, NanumBarunPen, MaruBuri
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+// REUSE-IgnoreEnd
diff --git a/docs/api-rust/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 b/docs/api-rust/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2
new file mode 100644
index 000000000..462c34efc
Binary files /dev/null and b/docs/api-rust/static.files/SourceCodePro-It-1cc31594bf4f1f79.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt b/docs/api-rust/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt
new file mode 100644
index 000000000..0d2941e14
--- /dev/null
+++ b/docs/api-rust/static.files/SourceCodePro-LICENSE-d180d465a756484a.txt
@@ -0,0 +1,97 @@
+// REUSE-IgnoreStart
+
+Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+// REUSE-IgnoreEnd
diff --git a/docs/api-rust/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 b/docs/api-rust/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2
new file mode 100644
index 000000000..10b558e0b
Binary files /dev/null and b/docs/api-rust/static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 b/docs/api-rust/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2
new file mode 100644
index 000000000..5ec64eef0
Binary files /dev/null and b/docs/api-rust/static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 b/docs/api-rust/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2
new file mode 100644
index 000000000..181a07f63
Binary files /dev/null and b/docs/api-rust/static.files/SourceSerif4-Bold-a2c9cd1067f8b328.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 b/docs/api-rust/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2
new file mode 100644
index 000000000..2ae08a7be
Binary files /dev/null and b/docs/api-rust/static.files/SourceSerif4-It-acdfaf1a8af734b1.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md b/docs/api-rust/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md
new file mode 100644
index 000000000..175fa4f47
--- /dev/null
+++ b/docs/api-rust/static.files/SourceSerif4-LICENSE-3bb119e13b1258b7.md
@@ -0,0 +1,98 @@
+
+
+Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
+Copyright 2014 - 2023 Adobe (http://www.adobe.com/), with Reserved Font Name ‘Source’. All Rights Reserved. Source is a trademark of Adobe in the United States and/or other countries.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+
+This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+
diff --git a/docs/api-rust/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 b/docs/api-rust/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2
new file mode 100644
index 000000000..0263fc304
Binary files /dev/null and b/docs/api-rust/static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2 differ
diff --git a/docs/api-rust/static.files/clipboard-7571035ce49a181d.svg b/docs/api-rust/static.files/clipboard-7571035ce49a181d.svg
new file mode 100644
index 000000000..8adbd9963
--- /dev/null
+++ b/docs/api-rust/static.files/clipboard-7571035ce49a181d.svg
@@ -0,0 +1 @@
+
diff --git a/docs/api-rust/static.files/favicon-16x16-8b506e7a72182f1c.png b/docs/api-rust/static.files/favicon-16x16-8b506e7a72182f1c.png
new file mode 100644
index 000000000..ea4b45cae
Binary files /dev/null and b/docs/api-rust/static.files/favicon-16x16-8b506e7a72182f1c.png differ
diff --git a/docs/api-rust/static.files/favicon-2c020d218678b618.svg b/docs/api-rust/static.files/favicon-2c020d218678b618.svg
new file mode 100644
index 000000000..8b34b5119
--- /dev/null
+++ b/docs/api-rust/static.files/favicon-2c020d218678b618.svg
@@ -0,0 +1,24 @@
+
diff --git a/docs/api-rust/static.files/favicon-32x32-422f7d1d52889060.png b/docs/api-rust/static.files/favicon-32x32-422f7d1d52889060.png
new file mode 100644
index 000000000..69b8613ce
Binary files /dev/null and b/docs/api-rust/static.files/favicon-32x32-422f7d1d52889060.png differ
diff --git a/docs/api-rust/static.files/main-c5bd66d33317d69f.js b/docs/api-rust/static.files/main-c5bd66d33317d69f.js
new file mode 100644
index 000000000..43133d66e
--- /dev/null
+++ b/docs/api-rust/static.files/main-c5bd66d33317d69f.js
@@ -0,0 +1,12 @@
+"use strict";window.RUSTDOC_TOOLTIP_HOVER_MS=300;window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS=450;function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}function elemIsInParent(elem,parent){while(elem&&elem!==document.body){if(elem===parent){return true}elem=elem.parentElement}return false}function blurHandler(event,parentElem,hideCallback){if(!elemIsInParent(document.activeElement,parentElem)&&!elemIsInParent(event.relatedTarget,parentElem)){hideCallback()}}window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");function setMobileTopbar(){const mobileTopbar=document.querySelector(".mobile-topbar");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileTopbar&&locationTitle){const mobileTitle=document.createElement("h2");mobileTitle.innerHTML=locationTitle.innerHTML;mobileTopbar.appendChild(mobileTitle)}}function getVirtualKey(ev){if("key"in ev&&typeof ev.key!=="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c===27){return"Escape"}return String.fromCharCode(c)}const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";const HELP_BUTTON_ID="help-button";function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getHelpButton(){return document.getElementById(HELP_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function preLoadCss(cssUrl){const link=document.createElement("link");link.href=cssUrl;link.rel="preload";link.as="style";document.getElementsByTagName("head")[0].appendChild(link)}(function(){const isHelpPage=window.location.pathname.endsWith("/help.html");function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{if(event.ctrlKey||event.altKey||event.metaKey){return}window.hideAllModals(false);addClass(getSettingsButton(),"rotate");event.preventDefault();loadScript(getVar("static-root-path")+getVar("settings-js"));setTimeout(()=>{const themes=getVar("themes").split(",");for(const theme of themes){if(theme!==""){preLoadCss(getVar("root-path")+theme+".css")}}},0)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},removeQueryParameters:()=>{document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.hash)}},hideResults:()=>{switchDisplayedElement(null);searchState.removeQueryParameters()},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(getVar("static-root-path")+getVar("search-js"));loadScript(resourcePath("search-index",".js"))}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){searchState.setLoadingSearch();loadSearch()}},setLoadingSearch:()=>{const search=searchState.outputElement();search.innerHTML="
"+searchState.loadingText+"
";searchState.showResults(search)},};const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}const pageId=window.location.hash.replace(/^#/,"");if(savedHash!==pageId){savedHash=pageId;if(pageId!==""){expandSection(pageId)}}}function onHashChange(ev){hideSidebar();handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function handleEscape(ev){searchState.clearInputTimeout();searchState.hideResults();ev.preventDefault();searchState.defocus();window.hideAllModals(true)}function handleShortcut(ev){const disableShortcuts=getSettingValue("disable-shortcuts")==="true";if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"&&document.activeElement.type!=="checkbox"&&document.activeElement.type!=="radio"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":ev.preventDefault();searchState.focus();break;case"+":ev.preventDefault();expandAllDocs();break;case"-":ev.preventDefault();collapseAllDocs();break;case"?":showHelp();break;default:break}}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);function addSidebarItems(){if(!window.SIDEBAR_ITEMS){return}const sidebar=document.getElementsByClassName("sidebar-elems")[0];function block(shortty,id,longty){const filtered=window.SIDEBAR_ITEMS[shortty];if(!filtered){return}const h3=document.createElement("h3");h3.innerHTML=`${longty}`;const ul=document.createElement("ul");ul.className="block "+shortty;for(const name of filtered){let path;if(shortty==="mod"){path=name+"/index.html"}else{path=shortty+"."+name+".html"}const current_page=document.location.href.split("/").pop();const link=document.createElement("a");link.href=path;if(path===current_page){link.className="current"}link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebar.appendChild(h3);sidebar.appendChild(ul)}if(sidebar){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("union","unions","Unions");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Aliases");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("traitalias","trait-aliases","Trait Aliases")}}window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();const TEXT_IDX=0;const SYNTHETIC_IDX=1;const TYPES_IDX=2;if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector(".main-heading h1 > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const script=document.querySelector("script[data-ignore-extern-crates]");const ignoreExternCrates=new Set((script?script.getAttribute("data-ignore-extern-crates"):"").split(","));for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.has(lib)){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct[SYNTHETIC_IDX]?synthetic_implementors:implementors;if(struct[SYNTHETIC_IDX]){for(const struct_type of struct[TYPES_IDX]){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct[TEXT_IDX];addClass(code,"code-header");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&!/^(?:[a-z+]+:)?\/\//.test(href)){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function addSidebarCrates(){if(!window.ALL_CRATES){return}const sidebarElems=document.getElementsByClassName("sidebar-elems")[0];if(!sidebarElems){return}const h3=document.createElement("h3");h3.innerHTML="Crates";const ul=document.createElement("ul");ul.className="block crate";for(const crate of window.ALL_CRATES){const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";if(window.rootPath!=="./"&&crate===window.currentCrate){link.className="current"}link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}sidebarElems.appendChild(h3);sidebarElems.appendChild(ul)}function expandAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hasClass(e,"type-contents-toggle")&&!hasClass(e,"more-examples-toggle")){e.open=true}});innerToggle.title="collapse all docs";innerToggle.children[0].innerText="\u2212"}function collapseAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});innerToggle.title="expand all docs";innerToggle.children[0].innerText="+"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}if(hasClass(innerToggle,"will-expand")){expandAllDocs()}else{collapseAllDocs()}}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}})}());window.rustdoc_add_line_numbers_to_examples=()=>{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");if(line_numbers.length>0){return}const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{onEachLazy(document.getElementsByClassName("rust-example-rendered"),x=>{const parent=x.parentNode;const line_numbers=parent.querySelectorAll(".example-line-numbers");for(const node of line_numbers){parent.removeChild(node)}})};if(getSettingValue("line-numbers")==="true"){window.rustdoc_add_line_numbers_to_examples()}function showSidebar(){window.hideAllModals(false);const sidebar=document.getElementsByClassName("sidebar")[0];addClass(sidebar,"shown")}function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}window.addEventListener("resize",()=>{if(window.CURRENT_TOOLTIP_ELEMENT){const base=window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE;const force_visible=base.TOOLTIP_FORCE_VISIBLE;hideTooltip(false);if(force_visible){showTooltip(base);base.TOOLTIP_FORCE_VISIBLE=true}}});const mainElem=document.getElementById(MAIN_ID);if(mainElem){mainElem.addEventListener("click",hideSidebar)}onEachLazy(document.querySelectorAll("a[href^='#']"),el=>{el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})});onEachLazy(document.querySelectorAll(".toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});function showTooltip(e){const notable_ty=e.getAttribute("data-notable-ty");if(!window.NOTABLE_TRAITS&¬able_ty){const data=document.getElementById("notable-traits-data");if(data){window.NOTABLE_TRAITS=JSON.parse(data.innerText)}else{throw new Error("showTooltip() called with notable without any notable traits!")}}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE===e){clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);return}window.hideAllModals(false);const wrapper=document.createElement("div");if(notable_ty){wrapper.innerHTML="
"+window.NOTABLE_TRAITS[notable_ty]+"
"}else{if(e.getAttribute("title")!==null){e.setAttribute("data-title",e.getAttribute("title"));e.removeAttribute("title")}if(e.getAttribute("data-title")!==null){const titleContent=document.createElement("div");titleContent.className="content";titleContent.appendChild(document.createTextNode(e.getAttribute("data-title")));wrapper.appendChild(titleContent)}}wrapper.className="tooltip popover";const focusCatcher=document.createElement("div");focusCatcher.setAttribute("tabindex","0");focusCatcher.onfocus=hideTooltip;wrapper.appendChild(focusCatcher);const pos=e.getBoundingClientRect();wrapper.style.top=(pos.top+window.scrollY+pos.height)+"px";wrapper.style.left=0;wrapper.style.right="auto";wrapper.style.visibility="hidden";const body=document.getElementsByTagName("body")[0];body.appendChild(wrapper);const wrapperPos=wrapper.getBoundingClientRect();const finalPos=pos.left+window.scrollX-wrapperPos.width+24;if(finalPos>0){wrapper.style.left=finalPos+"px"}else{wrapper.style.setProperty("--popover-arrow-offset",(wrapperPos.right-pos.right+4)+"px")}wrapper.style.visibility="";window.CURRENT_TOOLTIP_ELEMENT=wrapper;window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE=e;clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);wrapper.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}clearTooltipHoverTimeout(e)};wrapper.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,e)){setTooltipHoverTimeout(e,false);addClass(wrapper,"fade-out")}}}function setTooltipHoverTimeout(element,show){clearTooltipHoverTimeout(element);if(!show&&!window.CURRENT_TOOLTIP_ELEMENT){return}if(show&&window.CURRENT_TOOLTIP_ELEMENT){return}if(window.CURRENT_TOOLTIP_ELEMENT&&window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE!==element){return}element.TOOLTIP_HOVER_TIMEOUT=setTimeout(()=>{if(show){showTooltip(element)}else if(!element.TOOLTIP_FORCE_VISIBLE){hideTooltip(false)}},show?window.RUSTDOC_TOOLTIP_HOVER_MS:window.RUSTDOC_TOOLTIP_HOVER_EXIT_MS)}function clearTooltipHoverTimeout(element){if(element.TOOLTIP_HOVER_TIMEOUT!==undefined){removeClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out");clearTimeout(element.TOOLTIP_HOVER_TIMEOUT);delete element.TOOLTIP_HOVER_TIMEOUT}}function tooltipBlurHandler(event){if(window.CURRENT_TOOLTIP_ELEMENT&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)&&!elemIsInParent(document.activeElement,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)&&!elemIsInParent(event.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE)){setTimeout(()=>hideTooltip(false),0)}}function hideTooltip(focus){if(window.CURRENT_TOOLTIP_ELEMENT){if(window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE){if(focus){window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.focus()}window.CURRENT_TOOLTIP_ELEMENT.TOOLTIP_BASE.TOOLTIP_FORCE_VISIBLE=false}const body=document.getElementsByTagName("body")[0];body.removeChild(window.CURRENT_TOOLTIP_ELEMENT);clearTooltipHoverTimeout(window.CURRENT_TOOLTIP_ELEMENT);window.CURRENT_TOOLTIP_ELEMENT=null}}onEachLazy(document.getElementsByClassName("tooltip"),e=>{e.onclick=()=>{e.TOOLTIP_FORCE_VISIBLE=e.TOOLTIP_FORCE_VISIBLE?false:true;if(window.CURRENT_TOOLTIP_ELEMENT&&!e.TOOLTIP_FORCE_VISIBLE){hideTooltip(true)}else{showTooltip(e);window.CURRENT_TOOLTIP_ELEMENT.setAttribute("tabindex","0");window.CURRENT_TOOLTIP_ELEMENT.focus();window.CURRENT_TOOLTIP_ELEMENT.onblur=tooltipBlurHandler}return false};e.onpointerenter=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointermove=ev=>{if(ev.pointerType!=="mouse"){return}setTooltipHoverTimeout(e,true)};e.onpointerleave=ev=>{if(ev.pointerType!=="mouse"){return}if(!e.TOOLTIP_FORCE_VISIBLE&&!elemIsInParent(ev.relatedTarget,window.CURRENT_TOOLTIP_ELEMENT)){setTooltipHoverTimeout(e,false);addClass(window.CURRENT_TOOLTIP_ELEMENT,"fade-out")}}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){showSidebar()}else{hideSidebar()}})}function helpBlurHandler(event){blurHandler(event,getHelpButton(),window.hidePopoverMenus)}function buildHelpMenu(){const book_info=document.createElement("span");const channel=getVar("channel");book_info.className="top";book_info.innerHTML=`You can find more information in \
+the rustdoc book.`;const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
";const infos=[`For a full list of all search features, take a look here.`,"Prefix searches with a type followed by a colon (e.g., fn:) to \
+ restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \
+ enum, trait, type, macro, \
+ and const.","Search functions by type signature (e.g., vec -> usize or \
+ -> vec or String, enum:Cow -> bool)","You can look for items with an exact name by putting double quotes around \
+ your request: \"string\"","Look for functions that accept or return \
+ slices and \
+ arrays by writing \
+ square brackets (e.g., -> [u8] or [] -> Option)","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
`}}return output}function buildSettingsPage(){const theme_names=getVar("themes").split(",").filter(t=>t);theme_names.push("light","dark","ayu");const settings=[{"name":"Theme","js_name":"theme","default":"system preference","options":theme_names.concat("system preference"),},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":theme_names,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":theme_names,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const elementKind=isSettingsPage?"section":"div";const innerHTML=`
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/AccountHash.html b/docs/api-wasm/classes/AccountHash.html
new file mode 100644
index 000000000..ae7ffb428
--- /dev/null
+++ b/docs/api-wasm/classes/AccountHash.html
@@ -0,0 +1,185 @@
+AccountHash | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/AccountIdentifier.html b/docs/api-wasm/classes/AccountIdentifier.html
new file mode 100644
index 000000000..a60a7bbc1
--- /dev/null
+++ b/docs/api-wasm/classes/AccountIdentifier.html
@@ -0,0 +1,174 @@
+AccountIdentifier | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/ArgsSimple.html b/docs/api-wasm/classes/ArgsSimple.html
new file mode 100644
index 000000000..59a7c7313
--- /dev/null
+++ b/docs/api-wasm/classes/ArgsSimple.html
@@ -0,0 +1,103 @@
+ArgsSimple | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/BlockHash.html b/docs/api-wasm/classes/BlockHash.html
new file mode 100644
index 000000000..d04bb55bf
--- /dev/null
+++ b/docs/api-wasm/classes/BlockHash.html
@@ -0,0 +1,151 @@
+BlockHash | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/BlockIdentifier.html b/docs/api-wasm/classes/BlockIdentifier.html
new file mode 100644
index 000000000..9b89ccf49
--- /dev/null
+++ b/docs/api-wasm/classes/BlockIdentifier.html
@@ -0,0 +1,157 @@
+BlockIdentifier | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/Bytes.html b/docs/api-wasm/classes/Bytes.html
new file mode 100644
index 000000000..cc6e06d32
--- /dev/null
+++ b/docs/api-wasm/classes/Bytes.html
@@ -0,0 +1,123 @@
+Bytes | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/ContractHash.html b/docs/api-wasm/classes/ContractHash.html
new file mode 100644
index 000000000..c203d70c7
--- /dev/null
+++ b/docs/api-wasm/classes/ContractHash.html
@@ -0,0 +1,157 @@
+ContractHash | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/ContractPackageHash.html b/docs/api-wasm/classes/ContractPackageHash.html
new file mode 100644
index 000000000..ed5b17a2d
--- /dev/null
+++ b/docs/api-wasm/classes/ContractPackageHash.html
@@ -0,0 +1,157 @@
+ContractPackageHash | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/Deploy.html b/docs/api-wasm/classes/Deploy.html
new file mode 100644
index 000000000..d6f035621
--- /dev/null
+++ b/docs/api-wasm/classes/Deploy.html
@@ -0,0 +1,515 @@
+Deploy | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/DeployHash.html b/docs/api-wasm/classes/DeployHash.html
new file mode 100644
index 000000000..ebc2d21b9
--- /dev/null
+++ b/docs/api-wasm/classes/DeployHash.html
@@ -0,0 +1,151 @@
+DeployHash | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/DeployStrParams.html b/docs/api-wasm/classes/DeployStrParams.html
new file mode 100644
index 000000000..1921e68a5
--- /dev/null
+++ b/docs/api-wasm/classes/DeployStrParams.html
@@ -0,0 +1,191 @@
+DeployStrParams | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/DictionaryAddr.html b/docs/api-wasm/classes/DictionaryAddr.html
new file mode 100644
index 000000000..59e9869cb
--- /dev/null
+++ b/docs/api-wasm/classes/DictionaryAddr.html
@@ -0,0 +1,112 @@
+DictionaryAddr | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/DictionaryItemIdentifier.html b/docs/api-wasm/classes/DictionaryItemIdentifier.html
new file mode 100644
index 000000000..fdf0a8f9f
--- /dev/null
+++ b/docs/api-wasm/classes/DictionaryItemIdentifier.html
@@ -0,0 +1,197 @@
+DictionaryItemIdentifier | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/DictionaryItemStrParams.html b/docs/api-wasm/classes/DictionaryItemStrParams.html
new file mode 100644
index 000000000..c92bdf2ae
--- /dev/null
+++ b/docs/api-wasm/classes/DictionaryItemStrParams.html
@@ -0,0 +1,200 @@
+DictionaryItemStrParams | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/Digest.html b/docs/api-wasm/classes/Digest.html
new file mode 100644
index 000000000..70d5df3fe
--- /dev/null
+++ b/docs/api-wasm/classes/Digest.html
@@ -0,0 +1,168 @@
+Digest | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/EraId.html b/docs/api-wasm/classes/EraId.html
new file mode 100644
index 000000000..b5f99080e
--- /dev/null
+++ b/docs/api-wasm/classes/EraId.html
@@ -0,0 +1,123 @@
+EraId | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetAccountResult.html b/docs/api-wasm/classes/GetAccountResult.html
new file mode 100644
index 000000000..63970088b
--- /dev/null
+++ b/docs/api-wasm/classes/GetAccountResult.html
@@ -0,0 +1,143 @@
+GetAccountResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetAuctionInfoResult.html b/docs/api-wasm/classes/GetAuctionInfoResult.html
new file mode 100644
index 000000000..918324a32
--- /dev/null
+++ b/docs/api-wasm/classes/GetAuctionInfoResult.html
@@ -0,0 +1,141 @@
+GetAuctionInfoResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetBalanceResult.html b/docs/api-wasm/classes/GetBalanceResult.html
new file mode 100644
index 000000000..6dcdceb29
--- /dev/null
+++ b/docs/api-wasm/classes/GetBalanceResult.html
@@ -0,0 +1,151 @@
+GetBalanceResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetBlockResult.html b/docs/api-wasm/classes/GetBlockResult.html
new file mode 100644
index 000000000..7e76c9383
--- /dev/null
+++ b/docs/api-wasm/classes/GetBlockResult.html
@@ -0,0 +1,141 @@
+GetBlockResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetBlockTransfersResult.html b/docs/api-wasm/classes/GetBlockTransfersResult.html
new file mode 100644
index 000000000..05f07ca07
--- /dev/null
+++ b/docs/api-wasm/classes/GetBlockTransfersResult.html
@@ -0,0 +1,151 @@
+GetBlockTransfersResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetChainspecResult.html b/docs/api-wasm/classes/GetChainspecResult.html
new file mode 100644
index 000000000..fc92c66aa
--- /dev/null
+++ b/docs/api-wasm/classes/GetChainspecResult.html
@@ -0,0 +1,145 @@
+GetChainspecResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetDeployResult.html b/docs/api-wasm/classes/GetDeployResult.html
new file mode 100644
index 000000000..8c7bacd4c
--- /dev/null
+++ b/docs/api-wasm/classes/GetDeployResult.html
@@ -0,0 +1,141 @@
+GetDeployResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetDictionaryItemResult.html b/docs/api-wasm/classes/GetDictionaryItemResult.html
new file mode 100644
index 000000000..2dd232502
--- /dev/null
+++ b/docs/api-wasm/classes/GetDictionaryItemResult.html
@@ -0,0 +1,161 @@
+GetDictionaryItemResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetEraInfoResult.html b/docs/api-wasm/classes/GetEraInfoResult.html
new file mode 100644
index 000000000..eb6d1e5a7
--- /dev/null
+++ b/docs/api-wasm/classes/GetEraInfoResult.html
@@ -0,0 +1,135 @@
+GetEraInfoResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetEraSummaryResult.html b/docs/api-wasm/classes/GetEraSummaryResult.html
new file mode 100644
index 000000000..3452131ad
--- /dev/null
+++ b/docs/api-wasm/classes/GetEraSummaryResult.html
@@ -0,0 +1,145 @@
+GetEraSummaryResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetNodeStatusResult.html b/docs/api-wasm/classes/GetNodeStatusResult.html
new file mode 100644
index 000000000..6866319d0
--- /dev/null
+++ b/docs/api-wasm/classes/GetNodeStatusResult.html
@@ -0,0 +1,265 @@
+GetNodeStatusResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetPeersResult.html b/docs/api-wasm/classes/GetPeersResult.html
new file mode 100644
index 000000000..73e9459ab
--- /dev/null
+++ b/docs/api-wasm/classes/GetPeersResult.html
@@ -0,0 +1,145 @@
+GetPeersResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetStateRootHashResult.html b/docs/api-wasm/classes/GetStateRootHashResult.html
new file mode 100644
index 000000000..a23398d3a
--- /dev/null
+++ b/docs/api-wasm/classes/GetStateRootHashResult.html
@@ -0,0 +1,155 @@
+GetStateRootHashResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GetValidatorChangesResult.html b/docs/api-wasm/classes/GetValidatorChangesResult.html
new file mode 100644
index 000000000..9e71c493f
--- /dev/null
+++ b/docs/api-wasm/classes/GetValidatorChangesResult.html
@@ -0,0 +1,145 @@
+GetValidatorChangesResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/GlobalStateIdentifier.html b/docs/api-wasm/classes/GlobalStateIdentifier.html
new file mode 100644
index 000000000..45716935b
--- /dev/null
+++ b/docs/api-wasm/classes/GlobalStateIdentifier.html
@@ -0,0 +1,174 @@
+GlobalStateIdentifier | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/HashAddr.html b/docs/api-wasm/classes/HashAddr.html
new file mode 100644
index 000000000..cceffef8e
--- /dev/null
+++ b/docs/api-wasm/classes/HashAddr.html
@@ -0,0 +1,112 @@
+HashAddr | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/Key.html b/docs/api-wasm/classes/Key.html
new file mode 100644
index 000000000..2bc371f64
--- /dev/null
+++ b/docs/api-wasm/classes/Key.html
@@ -0,0 +1,490 @@
+Key | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/ListRpcsResult.html b/docs/api-wasm/classes/ListRpcsResult.html
new file mode 100644
index 000000000..0c0ba81ab
--- /dev/null
+++ b/docs/api-wasm/classes/ListRpcsResult.html
@@ -0,0 +1,155 @@
+ListRpcsResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/Path.html b/docs/api-wasm/classes/Path.html
new file mode 100644
index 000000000..c67b25a06
--- /dev/null
+++ b/docs/api-wasm/classes/Path.html
@@ -0,0 +1,162 @@
+Path | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/PaymentStrParams.html b/docs/api-wasm/classes/PaymentStrParams.html
new file mode 100644
index 000000000..48f21e3cb
--- /dev/null
+++ b/docs/api-wasm/classes/PaymentStrParams.html
@@ -0,0 +1,235 @@
+PaymentStrParams | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/PeerEntry.html b/docs/api-wasm/classes/PeerEntry.html
new file mode 100644
index 000000000..018afca45
--- /dev/null
+++ b/docs/api-wasm/classes/PeerEntry.html
@@ -0,0 +1,124 @@
+PeerEntry | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/PublicKey.html b/docs/api-wasm/classes/PublicKey.html
new file mode 100644
index 000000000..15d321160
--- /dev/null
+++ b/docs/api-wasm/classes/PublicKey.html
@@ -0,0 +1,162 @@
+PublicKey | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/PurseIdentifier.html b/docs/api-wasm/classes/PurseIdentifier.html
new file mode 100644
index 000000000..10a06da8a
--- /dev/null
+++ b/docs/api-wasm/classes/PurseIdentifier.html
@@ -0,0 +1,146 @@
+PurseIdentifier | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/PutDeployResult.html b/docs/api-wasm/classes/PutDeployResult.html
new file mode 100644
index 000000000..bddc5db96
--- /dev/null
+++ b/docs/api-wasm/classes/PutDeployResult.html
@@ -0,0 +1,141 @@
+PutDeployResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/QueryBalanceResult.html b/docs/api-wasm/classes/QueryBalanceResult.html
new file mode 100644
index 000000000..6ba7296eb
--- /dev/null
+++ b/docs/api-wasm/classes/QueryBalanceResult.html
@@ -0,0 +1,141 @@
+QueryBalanceResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/QueryGlobalStateResult.html b/docs/api-wasm/classes/QueryGlobalStateResult.html
new file mode 100644
index 000000000..096be9645
--- /dev/null
+++ b/docs/api-wasm/classes/QueryGlobalStateResult.html
@@ -0,0 +1,161 @@
+QueryGlobalStateResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/SDK.html b/docs/api-wasm/classes/SDK.html
new file mode 100644
index 000000000..7c65b58fb
--- /dev/null
+++ b/docs/api-wasm/classes/SDK.html
@@ -0,0 +1,1686 @@
+SDK | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/SessionStrParams.html b/docs/api-wasm/classes/SessionStrParams.html
new file mode 100644
index 000000000..36fb414dd
--- /dev/null
+++ b/docs/api-wasm/classes/SessionStrParams.html
@@ -0,0 +1,246 @@
+SessionStrParams | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/SpeculativeExecResult.html b/docs/api-wasm/classes/SpeculativeExecResult.html
new file mode 100644
index 000000000..2f76f99c9
--- /dev/null
+++ b/docs/api-wasm/classes/SpeculativeExecResult.html
@@ -0,0 +1,151 @@
+SpeculativeExecResult | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/TransferAddr.html b/docs/api-wasm/classes/TransferAddr.html
new file mode 100644
index 000000000..564a1bbf6
--- /dev/null
+++ b/docs/api-wasm/classes/TransferAddr.html
@@ -0,0 +1,112 @@
+TransferAddr | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/URef.html b/docs/api-wasm/classes/URef.html
new file mode 100644
index 000000000..925bcd5bd
--- /dev/null
+++ b/docs/api-wasm/classes/URef.html
@@ -0,0 +1,157 @@
+URef | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/URefAddr.html b/docs/api-wasm/classes/URefAddr.html
new file mode 100644
index 000000000..c77c84cae
--- /dev/null
+++ b/docs/api-wasm/classes/URefAddr.html
@@ -0,0 +1,112 @@
+URefAddr | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getAccountOptions.html b/docs/api-wasm/classes/getAccountOptions.html
new file mode 100644
index 000000000..e6d509b66
--- /dev/null
+++ b/docs/api-wasm/classes/getAccountOptions.html
@@ -0,0 +1,156 @@
+getAccountOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getAuctionInfoOptions.html b/docs/api-wasm/classes/getAuctionInfoOptions.html
new file mode 100644
index 000000000..784fb23a6
--- /dev/null
+++ b/docs/api-wasm/classes/getAuctionInfoOptions.html
@@ -0,0 +1,144 @@
+getAuctionInfoOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getBalanceOptions.html b/docs/api-wasm/classes/getBalanceOptions.html
new file mode 100644
index 000000000..41e780ff2
--- /dev/null
+++ b/docs/api-wasm/classes/getBalanceOptions.html
@@ -0,0 +1,160 @@
+getBalanceOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getBlockOptions.html b/docs/api-wasm/classes/getBlockOptions.html
new file mode 100644
index 000000000..3c8006e7e
--- /dev/null
+++ b/docs/api-wasm/classes/getBlockOptions.html
@@ -0,0 +1,144 @@
+getBlockOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getBlockTransfersOptions.html b/docs/api-wasm/classes/getBlockTransfersOptions.html
new file mode 100644
index 000000000..15d230a1b
--- /dev/null
+++ b/docs/api-wasm/classes/getBlockTransfersOptions.html
@@ -0,0 +1,144 @@
+getBlockTransfersOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getDeployOptions.html b/docs/api-wasm/classes/getDeployOptions.html
new file mode 100644
index 000000000..425366bfc
--- /dev/null
+++ b/docs/api-wasm/classes/getDeployOptions.html
@@ -0,0 +1,152 @@
+getDeployOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getDictionaryItemOptions.html b/docs/api-wasm/classes/getDictionaryItemOptions.html
new file mode 100644
index 000000000..20f831e4d
--- /dev/null
+++ b/docs/api-wasm/classes/getDictionaryItemOptions.html
@@ -0,0 +1,160 @@
+getDictionaryItemOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getEraInfoOptions.html b/docs/api-wasm/classes/getEraInfoOptions.html
new file mode 100644
index 000000000..b0953ec82
--- /dev/null
+++ b/docs/api-wasm/classes/getEraInfoOptions.html
@@ -0,0 +1,140 @@
+getEraInfoOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getEraSummaryOptions.html b/docs/api-wasm/classes/getEraSummaryOptions.html
new file mode 100644
index 000000000..dbc10883a
--- /dev/null
+++ b/docs/api-wasm/classes/getEraSummaryOptions.html
@@ -0,0 +1,144 @@
+getEraSummaryOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getSpeculativeExecOptions.html b/docs/api-wasm/classes/getSpeculativeExecOptions.html
new file mode 100644
index 000000000..80c84be38
--- /dev/null
+++ b/docs/api-wasm/classes/getSpeculativeExecOptions.html
@@ -0,0 +1,172 @@
+getSpeculativeExecOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/getStateRootHashOptions.html b/docs/api-wasm/classes/getStateRootHashOptions.html
new file mode 100644
index 000000000..44f7eecfb
--- /dev/null
+++ b/docs/api-wasm/classes/getStateRootHashOptions.html
@@ -0,0 +1,144 @@
+getStateRootHashOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/queryBalanceOptions.html b/docs/api-wasm/classes/queryBalanceOptions.html
new file mode 100644
index 000000000..bc7b53df6
--- /dev/null
+++ b/docs/api-wasm/classes/queryBalanceOptions.html
@@ -0,0 +1,176 @@
+queryBalanceOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/queryContractDictOptions.html b/docs/api-wasm/classes/queryContractDictOptions.html
new file mode 100644
index 000000000..547c7555a
--- /dev/null
+++ b/docs/api-wasm/classes/queryContractDictOptions.html
@@ -0,0 +1,156 @@
+queryContractDictOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/queryContractKeyOptions.html b/docs/api-wasm/classes/queryContractKeyOptions.html
new file mode 100644
index 000000000..b4d145beb
--- /dev/null
+++ b/docs/api-wasm/classes/queryContractKeyOptions.html
@@ -0,0 +1,188 @@
+queryContractKeyOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/classes/queryGlobalStateOptions.html b/docs/api-wasm/classes/queryGlobalStateOptions.html
new file mode 100644
index 000000000..2c2bc77ed
--- /dev/null
+++ b/docs/api-wasm/classes/queryGlobalStateOptions.html
@@ -0,0 +1,192 @@
+queryGlobalStateOptions | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/enums/Verbosity.html b/docs/api-wasm/enums/Verbosity.html
new file mode 100644
index 000000000..3eb787d11
--- /dev/null
+++ b/docs/api-wasm/enums/Verbosity.html
@@ -0,0 +1,97 @@
+Verbosity | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/default.html b/docs/api-wasm/functions/default.html
new file mode 100644
index 000000000..17f0c2141
--- /dev/null
+++ b/docs/api-wasm/functions/default.html
@@ -0,0 +1,77 @@
+default | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/fromTransfer.html b/docs/api-wasm/functions/fromTransfer.html
new file mode 100644
index 000000000..ea53c1633
--- /dev/null
+++ b/docs/api-wasm/functions/fromTransfer.html
@@ -0,0 +1,74 @@
+fromTransfer | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/getTimestamp.html b/docs/api-wasm/functions/getTimestamp.html
new file mode 100644
index 000000000..ce03de8ff
--- /dev/null
+++ b/docs/api-wasm/functions/getTimestamp.html
@@ -0,0 +1,78 @@
+getTimestamp | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/hexToString.html b/docs/api-wasm/functions/hexToString.html
new file mode 100644
index 000000000..875a0bfb9
--- /dev/null
+++ b/docs/api-wasm/functions/hexToString.html
@@ -0,0 +1,88 @@
+hexToString | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/hexToUint8Array.html b/docs/api-wasm/functions/hexToUint8Array.html
new file mode 100644
index 000000000..a209d2fdb
--- /dev/null
+++ b/docs/api-wasm/functions/hexToUint8Array.html
@@ -0,0 +1,88 @@
+hexToUint8Array | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/initSync.html b/docs/api-wasm/functions/initSync.html
new file mode 100644
index 000000000..58a73f5af
--- /dev/null
+++ b/docs/api-wasm/functions/initSync.html
@@ -0,0 +1,77 @@
+initSync | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/jsonPrettyPrint.html b/docs/api-wasm/functions/jsonPrettyPrint.html
new file mode 100644
index 000000000..e9f45a870
--- /dev/null
+++ b/docs/api-wasm/functions/jsonPrettyPrint.html
@@ -0,0 +1,92 @@
+jsonPrettyPrint | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/motesToCSPR.html b/docs/api-wasm/functions/motesToCSPR.html
new file mode 100644
index 000000000..4fdd35489
--- /dev/null
+++ b/docs/api-wasm/functions/motesToCSPR.html
@@ -0,0 +1,88 @@
+motesToCSPR | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/privateToPublicKey.html b/docs/api-wasm/functions/privateToPublicKey.html
new file mode 100644
index 000000000..673eb84f6
--- /dev/null
+++ b/docs/api-wasm/functions/privateToPublicKey.html
@@ -0,0 +1,89 @@
+privateToPublicKey | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/functions/uint8ArrayToBytes.html b/docs/api-wasm/functions/uint8ArrayToBytes.html
new file mode 100644
index 000000000..775879a77
--- /dev/null
+++ b/docs/api-wasm/functions/uint8ArrayToBytes.html
@@ -0,0 +1,88 @@
+uint8ArrayToBytes | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/index.html b/docs/api-wasm/index.html
new file mode 100644
index 000000000..929a1ecab
--- /dev/null
+++ b/docs/api-wasm/index.html
@@ -0,0 +1,58 @@
+casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/interfaces/InitOutput.html b/docs/api-wasm/interfaces/InitOutput.html
new file mode 100644
index 000000000..9aa4a17c4
--- /dev/null
+++ b/docs/api-wasm/interfaces/InitOutput.html
@@ -0,0 +1,13161 @@
+InitOutput | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/modules.html b/docs/api-wasm/modules.html
new file mode 100644
index 000000000..76ded03ab
--- /dev/null
+++ b/docs/api-wasm/modules.html
@@ -0,0 +1,153 @@
+casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/types/InitInput.html b/docs/api-wasm/types/InitInput.html
new file mode 100644
index 000000000..8fb027fcd
--- /dev/null
+++ b/docs/api-wasm/types/InitInput.html
@@ -0,0 +1,63 @@
+InitInput | casper-rust-wasm-sdk
+
+
\ No newline at end of file
diff --git a/docs/api-wasm/types/SyncInitInput.html b/docs/api-wasm/types/SyncInitInput.html
new file mode 100644
index 000000000..710c1e88e
--- /dev/null
+++ b/docs/api-wasm/types/SyncInitInput.html
@@ -0,0 +1,63 @@
+SyncInitInput | casper-rust-wasm-sdk
+
Gets the API version as a JsValue.
+