{"id":13696010,"url":"https://github.com/ark-iot/ark-cpp","last_synced_at":"2025-05-03T14:30:46.073Z","repository":{"id":129360072,"uuid":"119874876","full_name":"ARK-IoT/Ark-Cpp","owner":"ARK-IoT","description":"Ark: Cpp || a C++ Ark Ecosystem Wrapper for Machines ||","archived":true,"fork":false,"pushed_at":"2018-12-28T00:31:11.000Z","size":8454,"stargazers_count":5,"open_issues_count":5,"forks_count":4,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-11-12T23:36:26.216Z","etag":null,"topics":["arduino","ark","ark-blockchain","arkecosystem","blockchain","cpp","cryptocurrency","devnet","mcu"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ARK-IoT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2018-02-01T18:18:03.000Z","updated_at":"2023-01-28T19:24:55.000Z","dependencies_parsed_at":"2023-03-25T14:02:35.424Z","dependency_job_id":null,"html_url":"https://github.com/ARK-IoT/Ark-Cpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK-IoT%2FArk-Cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK-IoT%2FArk-Cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK-IoT%2FArk-Cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ARK-IoT%2FArk-Cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ARK-IoT","download_url":"https://codeload.github.com/ARK-IoT/Ark-Cpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252203145,"owners_count":21710897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","ark","ark-blockchain","arkecosystem","blockchain","cpp","cryptocurrency","devnet","mcu"],"created_at":"2024-08-02T18:00:35.517Z","updated_at":"2025-05-03T14:30:45.196Z","avatar_url":"https://github.com/ARK-IoT.png","language":"C++","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Ark-IoT/ark-cpp/blob/master/ark_cpp_logo.png\"/\u003e\n\u003c/p\u003e\n\n\n## THIS LIBRARY IS DEPRECATED AND IS NO LONGER MAINTAINED\n**This Repo is archived for historical reference**\n\n**You can find the current Ark Cpp SDK's at the following links:**  \nhttps://github.com/ArkEcosystem/cpp-client  \nhttps://github.com/ArkEcosystem/cpp-crypto\n\n# Ark for Machines v0.8 \n\n![language](https://img.shields.io/badge/language-Cpp/C++-blue.svg?style=flat) \n![version](https://img.shields.io/badge/version-v0.6.8-orange.svg?style=flat)\n![License: MIT](https://img.shields.io/badge/license-MIT-BE90D4.svg?style=flat)  \n![environment](https://img.shields.io/badge/environment-arduino-15909C.svg?style=flat)  \n![environment](https://img.shields.io/badge/environment-linux-FF7F50.svg?style=flat)  \n![environment](https://img.shields.io/badge/environment-macOS-blue.svg?style=flat)  \n![environment](https://img.shields.io/badge/environment-windows-blue.svg?style=flat)  \n\n[![Build Status](https://travis-ci.org/Ark-IoT/Ark-Cpp.svg?branch=master)](https://travis-ci.org/Ark-IoT/Ark-Cpp)  \n\n[![Build status](https://ci.appveyor.com/api/projects/status/dtbx7xmu6m8fpdb7?svg=true)](https://ci.appveyor.com/project/Ark-IoT/ark-cpp)\n\nNot production ready.  \n\n# Supported Boards\n- [X] ESP8266 https://www.adafruit.com/product/2821   // Development board\n- [X] ESP32 https://www.adafruit.com/product/3405\n\n\n#### What can this do?  \nGET information from the Ark Blockchain using Arduino boards.  \nCreate models of basic Ark \"types.\" (e.g. Accounts, Blocks, Delegates, Peers, etc)  \n\n#### What CAN'T this do (yet)?  \nGenerate Ark Addresses \u0026 Signatures.  \nCreate Signed transaction for broadcast to the Ark Ecosystem.  \n\n\n# How to use this\n\n1) Define the network  \n\u003e  ARK::Network devnet = ARK::Constants::Networks::Devnet::model;  \n\nor  \n\n\u003e ARK::Network devnet {  \n  \"578e820911f24e039733b45e4882b73e301f813a0d2c31330dafda84534ffa23\",  \n  \"DARK\",  \n  \"DѦ\",  \n  \"https://dexplorer.ark.io/\",  \n  30  \n};  \n\n\n\n2) Create the manager instance  \n\u003e ARK::API::Manager arkManager(devnet)  \n\n3) Use manager to get info from the Ark Blockchain  \n\u003e auto status = arkManager.loaderStatus()\n\u003e Serial.print(status) \n\u003e prints {  \n  \"success\":true,  \n  \"loaded\":false,  \n  \"now\":2348744,  \n  \"blocksCount\":0  \n}  \n\n\n\n## Examples\n\nGet VendorField of a given Transaction ID using the ESP8266\n```cpp\n/*\n* demo_sketch.ino\n*/\n\n#include \u003cESP8266WiFi.h\u003e\n\nconst char* ssid = \"yourSSID\";\nconst char* password = \"yourWiFiPassword\";\n\nvoid testVendorField()\n{\n  Network devnet = Constants::Networks::Model::Devnet;\n  ARK::API::Manager arkManager(devnet);\n\n  Hash txID = \"4e68a917d06382ce335656eef5560a537fc806ecadf3972c5221b86babecc63e\";\n\n  auto vendorField = arkManager.getVendorField(txID);\n    Serial.print(\"\\nvendorField: \");\n    Serial.println(vendorField);\n}\n\nvoid setup()\n{\n  Serial.begin(115200);\n  reportFreeHeap();\n  WiFi.mode(WIFI_STA);\n  WiFi.begin(ssid, password);\n  while (WiFi.status() != WL_CONNECTED)\n  {\n    delay(500);\n    Serial.print(\".\");\n  }\n  Serial.println();\n\n  testVendorField();\n}\n\nvoid loop(){}\n\n```\n\u003e vendorField: 1ARK-GOLang is saying whoop whooop  \n\n\n#\n\nGet Ark Account from a given Ark Address\n```cpp\n  Address darkAddress(\"DHQ4Fjsyiop3qBR4otAjAu6cBHkgRELqGA\");\n  auto account = arkManager.account(darkAddress);\n    Serial.print(\"\\naccount: \");\n    Serial.println(account);\n```\n\u003e account:  \n\u003e address: DHQ4Fjsyiop3qBR4otAjAu6cBHkgRELqGA  \n\u003e unconfirmedBalance: 106914.85341862  \n\u003e balance: 106914.85341862  \n\u003e publicKey: 0275776018638e5c40f1b922901e96cac2caa734585ef302b4a2801ee9a338a456  \n\u003e unconfirmedSignature: 1  \n\u003e secondSignature: 1  \n\u003e secondPublicKey: 03ad2a481719c80571061f0c941d57e91c928700d8dd132726edfc0bf9c4cb2869  \n\u003e multisignatures:  \n\u003e u_multisignatures:  \n\n\n## todo\n\n- [ ] API\n  - [x] add models \u0026 constants\n  - [x] add static endpoints\n  - [x] Network manager\n  - [X] Network Client\n  - [X] API Gets\n  - [ ] API Posts\n    - [ ] test api posts\n    - [ ] finish api posts\n  - [ ] Error Handling\n    - [X] test error handling\n    - [ ] finish error handling\n\n\n- [ ] Crypto\n  - [ ] Test Crypto\n    - [X] test sha256\n    - [X] test bigint\n    - [X] test secp256k1 ECDSA\n    - [X] test ripemd160\n    - [X] test base58\n    - [X] test Address generation\n    - [ ] test Signing/Signature Generation\n  - [ ] Add Crypto\n    - [X] add sha256\n    - [X] add bigint\n    - [X] add secp256k1 ECDSA\n    - [X] add ripemd160\n    - [X] add base58\n    - [X] add Address generation\n    - [ ] add Signing/Signature Generation\n\n\n- [ ] TODO\n  - [ ] Documentation \n  - [ ] Handle Large Callbacks \n\n","funding_links":[],"categories":["Libraries"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fark-iot%2Fark-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fark-iot%2Fark-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fark-iot%2Fark-cpp/lists"}