# 12/13 ## News * [AjMaChInE](https://github.com/ajblane), [Wayne](https://github.com/wusyong) will join tangle-accelerator implementation! ## Progress ### Fix building errors: Compatible with Bazel 0.2.0 [Bazel](https://en.wikipedia.org/wiki/Bazel_(software)) is a build system developed by Google. Building errors occur after updating Bazel to 0.2.0: ``` Deprecated. load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") for a drop-in replacement. ``` ### Complete JSON Serialization test Use [Unity](http://www.throwtheswitch.org/unity/) for unit test [source code](https://github.com/jkrvivian/tangle-accelerator/blob/master/serializer/test/test_serializer.c) * `test_deserialize_ta_get_tips` * `test_serialize_ta_get_tips` * `test_serialize_ta_generate_address` * `test_deserialize_ta_send_transfer` * `test_serialize_ta_send_transfer` ### Implement `insert_to_trytes` and test insert trytes into transaction raw trytes, see [transaction raw trytes](#Transaction-raw-trytes) and [transaction tryte offset](#IOTA-transaction-tryte-offset) ### [WIP] Implement `send_transfer` Flow [source code](https://github.com/jkrvivian/entangled/blob/test_cclient/cclient/test_api/send_transfer_test.c) * [x] Generate new address * [x] Make transaction * [x] Set address * [x] Set tag * [x] Set message * [x] Set value * [ ] Make bundle * [x] Add transaction * [ ] Finalize * [x] calculate bundle hash * [ ] Fill bundle hash through txs * pyota will fill in bundle hash in `finalize` * ==use `transfer`, not `bundle`== * [ ] ==TODO==:signature * [x] getTransactionToApprove * [x] get transaction trytes * `transaction_sesrialize_to_flex_trits` * [x] Fill in trunk, branch in each transaction * [x] Fill in timestamp in each transaction * [ ] PoW with dcurl * [ ] fill in nonce * [ ] broadcast transaction ### IOTA transaction tryte offset offset is defined in [iotaledger/iri](https://github.com/iotaledger/iri) | offset|start|len| |:--|:--|:--| |ADDRESS_TRINARY_OFFSET|6561|243| |VALUE_TRINARY_OFFSET|6804|81| |OBSOLETE_TAG_TRINARY_OFFSET|6885|81| |TIMESTAMP_TRINARY_OFFSET|6966|27| |CURRENT_INDEX_TRINARY_OFFSET|6993|27| |LAST_INDEX_TRINARY_OFFSET|7020|27| |BUNDLE_TRINARY_OFFSET|7047|243| |TRUNK_TRANSACTION_TRINARY_OFFSET|7290 (2430 tryte)|243| |BRANCH_TRANSACTION_TRINARY_OFFSET|7533 (2511 tryte)|243| |TAG_TRINARY_OFFSET|7776|81| |ATTACHMENT_TIMESTAMP_<br>TRINARY_OFFSET|7857 (2619 tryte)|27| |ATTACHMENT_TIMESTAMP_<br>LOWER_BOUND_TRINARY_OFFSET|7884|27| |ATTACHMENT_TIMESTAMP_<br>UPPER_BOUND_TRINARY_OFFSET|7911 (2637 tryte)|27| |NONCE_TRINARY_OFFSET|7938 (2646 tryte)|81| ### Transaction raw trytes transaction raw trytes is a trytes string of all information of a transaction #### pyota: ```python def as_tryte_string(self): # type: () -> TransactionTrytes """ Returns a TryteString representation of the transaction. """ return TransactionTrytes( self.signature_message_fragment + self.address.address + self.value_as_trytes + self.legacy_tag + self.timestamp_as_trytes + self.current_index_as_trytes + self.last_index_as_trytes + self.bundle_hash + self.trunk_transaction_hash + self.branch_transaction_hash + self.tag + self.attachment_timestamp_as_trytes + self.attachment_timestamp_lower_bound_as_trytes + self.attachment_timestamp_upper_bound_as_trytes + self.nonce ) ``` ## TODO * Implement `send_transfer` * [dcurl](https://github.com/DLTcollab/dcurl) * signature * reference: [AjMaChInE/IOTA_SEED_RELATED_API](https://github.com/ajblane/IOTA_SEED_RELATED_API) * Write building instructions and develop guide in README * List TODO or enhancement items for