# entangled
## Links
* [iotaledger/entangled](https://github.com/iotaledger/entangled)
* [refer to DLTlab issue #73](https://github.com/DLTcollab/general/issues/73)
* [iota.lib.cpp Note](https://hackmd.io/uylmeR9QR_mMMapGCINkoQ)
* [IOTA API Note](https://hackmd.io/s/r1EHxmWLQ#)
## To run/build entangled tests
using [bazel](https://bazel.build/)
`$ bazel test //[directory]/...`
* `...` means to run all test under [directory]
`bazel test //...`
* run all test in all sub-directory in the repository
## git hook installation
### install modules
```
$ cd entangled
$ ./hooks/autohook.sh install
```
### install buildifier
`buildifier` would be used before doing git commit, this tool will check for bazel BUILD file, we need to install on our own
We can install with `go` or `bazel`
#### install with go
if you have go installed
1. cd to $GOPATH
* for linux, default path is `$HOME/go`
2. download and install with go,
`$ go get github.com/bazelbuild/buildtools/buildifier`
* after the command, an executable `buildifier` is now in `$HOME/go/bin`
3. make soft link for global usage
`sudo ln -s $HOME/go/bin/buildifier /usr/bin/buildifier`
#### Install with bazel
1. clone bazelbuild repository
`$ git clone https://github.com/bazelbuild/buildtools.git`
2. cd to `buildtools`
3. build `buildifier` with command,
`$ bazel build //buildifier`
* an executable buildifier is now in `bazelbuild/bazel-bin/buildifier/linux_amd64_stripped/buildifier`
4. make soft link
## cclient
### develop status:
- [x] core API
- [ ] extended API: wait for [cclient: added extended API header file.](https://github.com/iotaledger/entangled/pull/270) to merge
### test iota_api_xxx
==get_node_info== source code [link](https://github.com/jkrvivian/entangled/tree/test_cclient/cclient/test_api)
TODO:
* [init_iota_http_service](https://github.com/iotaledger/entangled/blob/3d13c38093225647d64a06153fc54011a11dbfcf/cclient/service.h#L29)
* support https request
## Pull requests
### contributors
* HowJMay
* weichen
* jkrvivian
### in progress
### merged
* [#57](https://github.com/iotaledger/entangled/pull/57): Fix typo
* [#73](https://github.com/iotaledger/entangled/pull/73): style tweak
* [#126](https://github.com/iotaledger/entangled/pull/126): cppclient: add unit test of getNodeInfo()
* [#146](https://github.com/iotaledger/entangled/pull/146): Initialize TCP/UDP receiver services with ports from configuration variables
* [#151](https://github.com/iotaledger/entangled/pull/151): Fix typos in common/trinary
* [#168](https://github.com/iotaledger/entangled/pull/168): Fix typos in commmon/model
* [#209](https://github.com/iotaledger/entangled/pull/209): Correctly protect the freed variables from access again
* [#215](https://github.com/iotaledger/entangled/pull/215): Git hook tools installation guide
* [#216](https://github.com/iotaledger/entangled/commit/0d1b9cc51f2b59e2ed01eda4842d3ee2f66b15f8): cclient: Implement get_balances
* [#220](https://github.com/iotaledger/entangled/pull/220): cclient: implement iota_api_store_transactions
* [#225](https://github.com/iotaledger/entangled/pull/225): cclient: Implement iota_api_get_transactions_to_approve
* [#221](https://github.com/iotaledger/entangled/pull/221): cclient: implement iota_api_get_inclusion_states
* [#219](https://github.com/iotaledger/entangled/pull/219): cclient: implement iota_api_broadcast_transactions
* ~~[#227](https://github.com/iotaledger/entangled/pull/227): cclient: implement were_addresses_spent_from~~