# Wiki
Tested with
- Acer 314 Chromebook (x86_64)
- Linux penguin 5.15.108-18910-gab0e1cb584e1 #1 SMP PREEMPT Wed Jun 21 23:24:20 PDT 2023 x86_64 GNU/Linux Virtual machine
- rustc 1.70.0 (90c541806 2023-05-31)
## Getting started with Rust
Link: https://wiki.iota.org/next/iota-sdk/getting-started/rust/
- Add `pkg-config` to the dependencies
### Build from source
Link: https://wiki.iota.org/next/iota-sdk/getting-started/rust/#build-the-sdk-from-source
- It took 1 hour to compile on the Chromebook with this command `cargo build --verbose --jobs 1`
### Client example
Link: https://wiki.iota.org/next/iota-sdk/getting-started/rust/#client
Ran the example with `cargo run --release --all-features clienttest.rs`
### How-to guides
Link: https://wiki.iota.org/next/iota-sdk/getting-started/rust/#how-to-guides
- `installed the IOTA SDK` is a recursive link:
Link: https://wiki.iota.org/next/iota-sdk/getting-started/rust/#how-to-guides
![](https://hackmd.io/_uploads/rk9-19tOh.png)
- `how-to guides` links to https://wiki.iota.org/next/iota-sdk/how-tos/accounts-and-addresses/create-mnemonic/ this page leaves a lot of open questions:
- What is a mnemonic?
- Why do I need it?
- What does it have to do with IOTA-SDK?
![](https://hackmd.io/_uploads/rks0JqKuh.png)
**Suggestion**: Create a short introduction to the how-to guides, which explains what is going to happen, with one flow that starts from creating a mnemonic to send the first tokens and then proceeds to try other things
# Python [README](https://github.com/iotaledger/iota-sdk/blob/develop/bindings/python/README.md)
## Readme.md
### Small typo
Link: https://github.com/iotaledger/iota-sdk/blob/develop/bindings/python/README.md#install-the-iota-sdk
```
(optional) Create a virtual environment and use it. On Linux and macOS, you can run the following commands:
'''bash python3 -m venv iota_sdk_venv source iota_sdk_venv/bin/activate '''
```
### Use of VENV
Link: https://github.com/iotaledger/iota-sdk/blob/develop/bindings/python/README.md#install-the-iota-sdk
In case of `venv` being a best practise in Python, make that part of the instructions and reduce confusion with *optional* parts in the guide
### First wallet example is wrong
#### SyntaxError in L11: positional argument follows keyword argument
Link: https://github.com/iotaledger/iota-sdk/blob/develop/bindings/python/README.md#wallet-usage
```python
from iota_sdk import Wallet, StrongholdSecretManager, CoinType
# This example creates a new database and account
wallet_options = {
'nodes': ['https://api.testnet.shimmer.network'],
}
secret_manager = StrongholdSecretManager("wallet.stronghold", "some_hopefully_secure_password")
wallet = Wallet('./alice-database', wallet_options, coin_type=CoinType.SHIMMER, secret_manager)
# Store the mnemonic in the Stronghold snapshot. This only needs to be done once
account = wallet.store_mnemonic("flame fever pig forward exact dash body idea link scrub tennis minute " +
"surge unaware prosper over waste kitten ceiling human knife arch situate civil")
account = wallet.create_account('Alice')
print(account)
```
Error
```python
File "/home/antonio/dev/iota-sdk/bindings/python/examples/wallet_example.py", line 11
wallet = Wallet('./alice-database', wallet_options, coin_type=CoinType.SHIMMER, secret_manager)
^
SyntaxError: positional argument follows keyword argument
```
![](https://hackmd.io/_uploads/BkVKC3K_2.png)
### Arguments order matters and coin_type is giving issues
I tried to change the order of the arguments in L11 to
`wallet = Wallet('./alice-database', wallet_options, secret_manager, coin_type=CoinType.SHIMMER)`
The order of the arguments is strict and giving errors if arguments are moved:
```python
Traceback (most recent call last):
File "/home/antonio/dev/iota-sdk/bindings/python/examples/wallet_example.py", line 11, in <module>
wallet = Wallet('./alice-database', wallet_options, secret_manager, coin_type=CoinType.SHIMMER)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Wallet.__init__() got multiple values for argument 'coin_type'
```
![](https://hackmd.io/_uploads/H1znThtuh.png)
### Fix for Line 11:
`wallet = Wallet('./alice-database', wallet_options, coin_type=CoinType.SHIMMER, secret_manager=secret_manager)`
### Example shown in the README.md is wrong
`python3 examples/client/00_get_info.py` will not work because the file `00_get_info.py` does not exist
## Examples
### Example names are confusing
*Personal note: It is clear that most examples have been taken from the previous libraries, a structure can help to walk through people, on the other hand the name should explain what it does, this is a challenge*
Example files have random names, sometimes they start with a number, sometimes not:
https://github.com/iotaledger/iota-sdk/tree/develop/bindings/python/examples/client
![](https://hackmd.io/_uploads/SkwK2FK_h.png)
## Directory structure
In `https://github.com/iotaledger/iota-sdk/tree/develop/bindings/python/examples` there are **two** `client` directories, which is confusing and unclear
- https://github.com/iotaledger/iota-sdk/tree/develop/bindings/python/examples/**client**
- https://github.com/iotaledger/iota-sdk/tree/develop/bindings/python/examples/how_tos/**client**