* Minimal curl post example
* Make sure request is null-terminated
* Python notification server receives HTTP
* Drop old notifications, write HTTP to given address
* Set appropriate content type
* Start using curl_multi
* Properly poll for curl multi responses, +cleanup
* Add Content-Type header
* Re-enable notifications test
* Minor TODOs
* Document curl dependency
* Install correct dev library for libcurl
* find_package(CURL)
* Create env table from C++, not lua
* Register LOG macros to be accessible from lua
* Lua log macros can take a list of args, like io.write
* Auto fill lua error codes
* Remove manual error codes
* Fix luageneric_test
* Add Lua LOG_TRACE, tests of pre-populated env bits
* Add app errors to lua logging
* Document pre-populated env fields
* Set things up in the right order
* Fall back to adl lookup
* Basic test of custom schema with ADL
* Flip json/json_schema dependency, to support user types
* Remove default namespace setup
* Remove test structs from ccf namespace
* Move schema code out of CCF namespace
* Refactor macros for generality
* Updated macros in json_bench
* General rename to new macros
* Add _WITH_BASE, condense, remove dead macros
* Fix _WITH_BASE only, add test
* Further renames
* Add support for generating map schema
* Correct namespace
* If you only have optional fields, still need REQUIRED macro
* Add updated comment, with examples
* Remove unneeded old macro variant
* FILL_SCHEMA from macro, not terror template tuple
* Remove unused magic template tuples
* Manual schema to match manual conversion
* Another comment update
* GetCommit::In has optional fields
* Updated schema
* Add test for doc examplse
* Remove unused
* Support different names for JSON and C++ fields
* Test schema with differing fields names
* Add comment on WITH_RENAMES
* clang-format
* Sketch CurveImpl enum, replace macro definitions with templates
* Replace use of MD_TYPE and HASH macros with templates
* Replace HASH macro
* WIP
* Remove remaining compile-disabled code from keypair.h
* Expose CurveImpl, correct 256k1_bitcoin params
* Test all supported curves
* Add test that wrong curve fails to validate
* verify(vector, vector) should delegate, not reimplement
* Corrupt more, to ensure we affect content not padding
* Rename CURVE_CHOICE options to be LEDGER_CURVE_CHOICE
* LEDGER_CURVE_CHOICE determines default_curve_choice
* Proof-of-concept - factories for virtual implementation
* Virtualise PublicKey
* Re-enable other tests
* Remove templated CurveParameters
* Add labels, test for wrong curve, wrong impl
* Correct comment
* Delegate sign(CBuffer), reducing code duplication
* Remove TODO enum
* tls_bench compares curves for signing
* Extract make_contents
* tls_bench does comparison of all supported curves
* Tidy
* Temporary verbose logging of ecp group ID
* Produce standard (non-recoverable) signatures by default, for compatibility
* Fix curve logging, add tests of key transfer across implementations
* Verify with non-recoverable sigs too
* Log inconsistent failing cases
* Correct implementation substitutability test
* Normalize secp256k1 signatures - they may have come from mbedtls
* Re-order picobench results for readability
* Add some secp256k1 link dependencies
* Unprotect constructors - there are legitimate uses for direct construction
* Verifier curve type is parsed from cert
* history_bench builds
* Reminder TODO comment
* frontend_test builds and passes
* Clients compile
* genesisgenerator compiles
* membervoting_test builds
* Fix sign_hash, sign/verify ack data normally
* Remove unneeded CurveParams entirely
Detect PublicKey type
Simplify construction to minimum
* Correct test with new API
* verify_hash via publickey, test sign_hash and verify_hash
* Include tests
* Update to latest signature
* Ditto
* Update function signatures for people with raw data
* Fix history calls
* When constructing from explicit key, don't pass curve too
* API updates
* Fix nodestate
* inline
* EVERYTHING BUILDS
* Tidy cmake link args
* Remove unnecessary direct use of mbedtls_ecdsa_*
* Remove uint8_t restriction in sig_size
* tls_bench actually compares relevant hash operations
* bitcoin preference doesn't need to be a macro
* Standardise use of use_bitcoin_impl
* clang-format
* Test now uses distinct manual hash operation
CHECK rather than REQUIRE
* Rename LEDGER_curve to SERVICE_IDENTITY_curve
* use fmtlib
* Let mbedtls determine message digest size/function
* Add details to all thrown errors
* Remove parameter packs, document use_bitcoin_impl
* Name magic constant, extract parse_secp256k_bc
* Proof of concept
* Replace tests of __default handlers, fix formatting
* Clarify names
* Obsessive formatting
* Remove lua's DEFAULT_HANDLER and references to it
* Add tests we'd like to pass
* Avoid copies in push_raw args
* Add stub push_raw for RequestArgs
* Implement push_raw for RequestArgs
* Lua nil should become json null
* A passing test
* All tests take args table
* Don't hide logging_client errors, check_returncode
* Update logging.lua to new API
* Obsessive formatting
* Whitespace
* Whitespace
* Update docs
* Typo
* No success without an argument
* Make it clear that JoinNetwork gets an async response
* return json::success(true);
* Expect truth
* luA luI
* Make logging.lua consistent with logging.cpp
* KO OK
* Fetch schema from each frontend, report schema-less methods
* Non-forwardability should not be coerced to a schema
* clang-format
* Add placeholder schema types for management frontend
* Add support for enums in auto-schema-generation
* Add schema for GetSignedIndex
* Use GetSignedIndex types
* Report schema for pairs
* Standardise types/schema for GetQuotes
* Fix typo
* Simplify GetQuotes response
* Schema for setRecoveryNodes
* Add generated schema for management frontend
* Don't repeat unschema'd methods
* Refactor schema generation to better support arbitrary types
* Add some schema to memberfrontend
* Fix install overloads again
* Empty schemas should still be objects, not nulls
* Schemas for remaining member frontend methods
* Dump of current schemas
* Fix json_schema test
* Update docs with new schemas
* Add section links
* Add a getApi method, listing all installed RPC method names
* Sketch RecordParams struct
* WIP
* Broken WIP
* Partial macro
* Basic examples working
* Partial file separation
* Move, rename, and fix FOR macro
* Use json get
* Build to_json from RequiredJsonFields too
* Remove unneeded pair specialisation
* Add comments, collide required and optional
* REformat
* Use new macros everywhere
* Remove unused template
* Rename getApi to listMethods
* Move frontend-specific calltypes to /rpc
* Specify GetTxHist return type
* Pretty-print client responses by default
* Add a GetSchema RPC
* Other tools demand ugly formatting by default
* mins and maxes for numerics, map of schemas
* Support _FOR_JSON_0
* Fix support for std::optional optional fields
* Test std optionals
* Define schemas for GetCommit
* More definitions for existing RPCs
* Tidy schema generation, including for vectors
* Add proper unit test
* Initial test of schema generation
* Fix failing tests
* Formatting
* Add (currently failing) test of nested structs
* Add misleadingly passing test
* Set correct expected pointers, test currently fails
* Oops - deexpand
* Correctly build pointer path for erroneous array elements
* Demonstrate invalid, not just missing, valeus
* Skeleton of json_bench
* Fix typo
* WIP
* Compare manual json parsers vs macro-defined
* mumble mumble
* Add valijson, +basic test
* Add benchmark of valijson validation
* Benchmark simple and complex structs
* Additional broken schema test
* Include pointer to parse errors
* Restore old basic translator macro
* Restore simpler macro for translators that don't need schema
* Add auto schema for private logging methods
* Add manual schema + validation for PUBLIC logging RPCs
* Match RPC format
* More RPC format fixes
* Correct scenario test target
* Add documentation entry on API schema
* Initial schema retrieval test
* Correct URLs in generated schema
* Send schema to a flat folder
* Remove unnecessary size_t max restriction
* Report non-matching schema
* Add current schemas
* Tidying
* clang-format
* Remove schema generation e2e test
* fmtlib, remove $id from schema
* Fix pointer paths
* Storing signed vote requests in a new table (votinghistory)
* Adding a script that can read the ledger
* Verifying signed votes
* Enforcing vote signature requirement
* Added documentation