* implement a logging proxy
The logging proxy:
- prevents the need to import chronicles (as well as export except toJson),
- prevents the need to override `writeValue` or use or import nim-json-seralization elsewhere in the codebase, allowing for sole use of utils/json for de/serialization,
- and handles json formatting correctly in chronicles json sinks
* Rename logging -> logutils to avoid ambiguity with common names
* clean up
* add setProperty for JsonRecord, remove nim-json-serialization conflict
* Allow specifying textlines and json format separately
Not specifying a LogFormat will apply the formatting to both textlines and json sinks.
Specifying a LogFormat will apply the formatting to only that sink.
* remove unneeded usages of std/json
We only need to import utils/json instead of std/json
* move serialization from rest/json to utils/json so it can be shared
* fix NoColors ambiguity
Was causing unit tests to fail on Windows.
* Remove nre usage to fix Windows error
Windows was erroring with `could not load: pcre64.dll`. Instead of fixing that error, remove the pcre usage :)
* Add logutils module doc
* Shorten logutils.formatIt for `NBytes`
Both json and textlines formatIt were not needed, and could be combined into one formatIt
* remove debug integration test config
debug output and logformat of json for integration test logs
* Use ## module doc to support docgen
* bump nim-poseidon2 to export fromBytes
Before the changes in this branch, fromBytes was likely being resolved by nim-stew, or other dependency. With the changes in this branch, that dependency was removed and fromBytes could no longer be resolved. By exporting fromBytes from nim-poseidon, the correct resolution is now happening.
* fixes to get compiling after rebasing master
* Add support for Result types being logged using formatIt
* implement a logging proxy
The logging proxy:
- prevents the need to import chronicles (as well as export except toJson),
- prevents the need to override `writeValue` or use or import nim-json-seralization elsewhere in the codebase, allowing for sole use of utils/json for de/serialization,
- and handles json formatting correctly in chronicles json sinks
* Rename logging -> logutils to avoid ambiguity with common names
* clean up
* add setProperty for JsonRecord, remove nim-json-serialization conflict
* Allow specifying textlines and json format separately
Not specifying a LogFormat will apply the formatting to both textlines and json sinks.
Specifying a LogFormat will apply the formatting to only that sink.
* remove unneeded usages of std/json
We only need to import utils/json instead of std/json
* move serialization from rest/json to utils/json so it can be shared
* fix NoColors ambiguity
Was causing unit tests to fail on Windows.
* Remove nre usage to fix Windows error
Windows was erroring with `could not load: pcre64.dll`. Instead of fixing that error, remove the pcre usage :)
* Add logutils module doc
* Shorten logutils.formatIt for `NBytes`
Both json and textlines formatIt were not needed, and could be combined into one formatIt
* remove debug integration test config
debug output and logformat of json for integration test logs
* Use ## module doc to support docgen
* Adds metrics to block exchange.
* Adds metrics to purchasing
* Adds metrics to upload and download API
* Adds metrics to the repo store
* Fixes exception in repostore start.
* Merge managed to mess up indentation.
* [state machine] Allow querying of state properties
* [purchasing] use new state machine
* [state machine] remove old state machine implementation
* [purchasing] remove duplication in error handling
* [purchasing] Simplify test
* [utils] Move StorageRequest.example up one level
* [purchasing] Load purchases from market
* [purchasing] load purchase states
* Implement myRequest() and getState() methods for OnChainMarket
* [proofs] Fix intermittently failing tests
Ensures that examples of proofs in tests are never of length 0;
these are considered invalid proofs by the smart contract logic.
* [contracts] Fix failing test
With the new solidity contracts update, a contract can only
be paid out after it started.
* [market] Add method to get request end time
* [purchasing] wait until purchase is finished
Purchase.wait() would previously wait until purchase
was started, now we wait until it is finished.
* [purchasing] Handle 'finished' and 'failed' states
* [marketplace] move to failed state once request fails
- Add support for subscribing to request failure events.
- Add supporting contract tests for subscribing to request failure events.
- Allow the PurchaseStarted state to move to PurchaseFailure once a request failure event is emitted
- Add supporting tests for moving from PurchaseStarted to PurchaseFailure
- Add state transition tests for PurchaseUnknown.
* [marketplace] Fix test with longer sleepAsync
* [integration] Add function to restart a codex node
* [purchasing] Set client address before requesting storage
To prevent the purchase id (which equals the request id)
from changing once it's been submitted.
* [contracts] Fix: OnChainMarket.getState()
Had the wrong method signature before
* [purchasing] Load purchases on node start
* [purchasing] Rename state 'PurchaseError' to 'PurchaseErrored'
Allows for an exception type called 'PurchaseError'
* [purchasing] Load purchases in background
No longer calls market.getRequest() for every purchase
on node start.
* [contracts] Add `$` for RequestId, SlotId and Nonce
To aid with debugging
* [purchasing] Add Purchasing.stop()
To ensure that all contract interactions have both a
start() and a stop() for
* [tests] Remove sleepAsync where possible
Use `eventually` loop instead, to make sure that we're
not waiting unnecessarily.
* [integration] Fix: handle non-json response in test
* [purchasing] Add purchase state to json
* [integration] Ensure that purchase is submitted before restart
Fixes test failure on slower CI
* [purchasing] re-implement `description` as method
Allows description to be set in the same module where the
state type is defined.
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
* [contracts] fix typo
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
* [market] Use more generic error type
Should we decide to change the provider type later
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>
Co-authored-by: Eric Mastro <eric.mastro@gmail.com>