Skip to content

chore(arduino): merge changes at #105 for Arduino.#106

Merged
faustbrian merged 31 commits intoArkEcosystemArchive:arduinofrom
sleepdefic1t:chore(arduino)/merge-changes-at-105
Jul 2, 2019
Merged

chore(arduino): merge changes at #105 for Arduino.#106
faustbrian merged 31 commits intoArkEcosystemArchive:arduinofrom
sleepdefic1t:chore(arduino)/merge-changes-at-105

Conversation

@sleepdefic1t
Copy link
Contributor

This PR merges all changes from #105 for release on the Arduino branch.

Specifically this PR does the following:

  • Creates a Configuration class.
  • Creates Fee and Network Manager bases for the Configuration class.
  • Allows passing a Configuration to Transaction Builder with a default value of Devnet & StaticFees (non-breaking).
  • Adds a FeePolicy-type.
  • Adds a Fee class (container for fee policies).
  • Reimplements Static Fees as a FeePolicy-type (breaking).
  • Adds a Networks class (base for preset networks).
  • Updates the TransactionTypes enum.
  • Reimplements and improves the Network and Networks classes (breaking).
  • Updates the Slot class to reflect changes (non-breaking).
  • Updates Transaction-related classes to reflect updates (non-breaking).
  • Adds tests for all changes.
  • Updates the Arduino IDE script.
  • Updates .ino Arduino sketches with Configuration examples.
  • Updates documentation with Configuration examples.
  • Updates the keywords.txt file to reflect changes.
  • Updates the changelog.
  • Updates version to v.0.6.0.

What kind of change does this PR introduce?

  • Other, please describe:

Does this PR introduce a breaking change?

  • Yes
  • No

Does this PR release a new version?

  • Yes
  • No

If yes, please describe the impact and migration path for existing applications:

There are two breaking changes in this PR.
(e.g. Devnet vs Devnet(), and Fees vs Fees::StaticFeePolicy)


The PR fulfills these requirements:

  • [n/a] It's submitted to the develop branch, not the master branch
  • All tests are passing
  • [n/a] New/updated tests are included

ciband and others added 21 commits February 19, 2019 05:29
Windows doesn't handle dynamic allocation well.

- transaction.cpp
  - explicitly define est. doc max size of 900.
  - No need for string since we're stating size.
- message.cpp
  - let string handle doc size allocation.
AUnit has stopped correctly building tests for the partially-supported ESP8266 platform.
It seems this may be a change in ESP8266 Core, so this PR disables ESP8266 tests in PlatformIO until support is worked out.
- Further decouple OS code from IoT code.
- Add missing ESP8266 functionality.
- Allow removal of lib/STL dependency.
  - STL lib is only included to provide a conv. method for IoT to use date.h
  - date.h is now only used by OS builds, which will have the STL by default.
- update changelog.
- add PIO filters for lib/date.
The Arduino IDE requires the use of a single true tab separator between the keyword name and identifier. When spaces are used rather than a true tab, the keyword is not highlighted.

Reference:
https://github.com/arduino/Arduino/wiki/Arduino-IDE-1.5:-Library-specification#keywords
Current tests are ran in different orders per platform.
This led to a modified global test custom_network being modified improperly.

This PR properly handles that order variation by creating a local object to be modified.

In future iterations, an AbstractNetwork will allow `const`.
Current implementation sometimes fails to properly serialize numbers in the `toJson()` method.
This is especially detrimental to some Linux builds and all Arduino IDE builds (Arduino IDE Library version (Cpp-Crypto-Arduino-v.0.3.0)).

Specifically, this PR does the following:
- moves `<cinttypes>` to `crypto_helpers.h` for non-IoT builds.
- forces type serialization for:
  - `amount` (llu/uint64_t).
  - `fee` (llu/uint64_t).
  - `network` (uint8_t/int).
  - `timestamp` (lu/uint32_t).
  - `type` (uint8_t/int).
  - `version` (uint8_t/int).
- updates the changelog.
The current implementation only allows use with Devnet unless values are manually changed in `/src`.

This PR enables network configuration via the public api.
(Devnet, Mainnet, Testnet, and Custom Networks (bridgechains).

Specifically this PR does the following:
- Creates a Configuration class.
- Creates Fee and Network Manager children for the Configuration class.
- Allows passing a `Configuration to` Transaction Builder with a default value of `Devnet` & `StaticFees` (non-breaking).
- Adds a FeePolicy-type.
- Adds a Fee class (container for fee policies).
- Adds a Networks class (container for preset networks).
- Updates the TransactionTypes enum.
- Improves the `Network` class and Network implementions.
- Updates the `Slot` class to reflect changes (non-breaking).
- Updates Transaction-related classes to reflect updates (non-breaking).
- Adds tests for all changes.
- Updates the Arduino IDE script.
- Updates `.ino` Arduino sketches with Configuration examples.
- Updates documentation with Configuration examples.
- Updates the `keywords.txt` file to reflect changes.
- Updates the changelog.
- Updates version to `v.0.6.0`.

Some small changes are technically breaking-changes.
(e.g. `Devnet` vs `Devnet()`, and `Fees` vs `Fees::StaticFeePolicy`)
@ghost ghost added Complexity: Undetermined Needs specialized, in-depth review. Type: Task The issue is a request to setup third-party integrations or any general non-code related tasks. Status: In Progress The issue or pull request is being worked on. labels Jul 1, 2019
@ghost
Copy link

ghost commented Jul 1, 2019

The ci/circleci: build-arduino-default job is failing as of 79d105708aa34d7cca186bcad41b6221cad1f266. Please review the logs for more information.

Once you've pushed the fixes, the build will automatically re-run. Thanks!

@ghost
Copy link

ghost commented Jul 1, 2019

The ci/circleci: build-arduino-default job is failing as of 3ea91efa20543666e6258d4f89a83cf4d95eb46c. Please review the logs for more information.

Once you've pushed the fixes, the build will automatically re-run. Thanks!

@sleepdefic1t sleepdefic1t marked this pull request as ready for review July 1, 2019 16:06
@faustbrian faustbrian merged commit 1a4eac3 into ArkEcosystemArchive:arduino Jul 2, 2019
@ghost ghost removed the Status: In Progress The issue or pull request is being worked on. label Jul 2, 2019
@sleepdefic1t sleepdefic1t deleted the chore(arduino)/merge-changes-at-105 branch July 3, 2019 01:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Complexity: Undetermined Needs specialized, in-depth review. Type: Task The issue is a request to setup third-party integrations or any general non-code related tasks.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants