Adapted the existed Docker test framework to allow running a self contained "regtest-like" blockchain network including instant block mining, a custom developer subsidy address and v1/v2 activation time frames.
See sia_docker_tests.rs. Currently uses docker.io/alrighttt/walletd-komodo which utilizes my custom fork of walletd, https://github.com/Alrighttt/walletd/tree/Komodo-persistent-testnet.
Refactor http_client moedule and Add http_endpoints Module
Refactors the SiaApiClient significantly for better developer ease of use. Introduces the dispatcher method for SiaApiClient. This method is likely to be the main way a developer can interact with the Sia walletd API. See unit tests in sia_docker_tests.rs for example usage.
Moves the individual endpoint implementations into a seperate http_endpoints module.
Add specifier Module
Adds a small module to initialize the equivalent of Sia Go's "Identifier" encoding. These identifiers are used extensively in the Sia's transaction and block encoding.
See specifier.rs.
Add transaction module
Begin work on transaction encoding and decoding. This module will ultimately implement both Sia v1 and v2 consensus. Adds many unit tests.
Changelog
Add Docker Test Framework
Adapted the existed Docker test framework to allow running a self contained "regtest-like" blockchain network including instant block mining, a custom developer subsidy address and v1/v2 activation time frames.
See
sia_docker_tests.rs
. Currently usesdocker.io/alrighttt/walletd-komodo
which utilizes my custom fork of walletd,https://github.com/Alrighttt/walletd/tree/Komodo-persistent-testnet
.Refactor
http_client
moedule and Addhttp_endpoints
ModuleRefactors the
SiaApiClient
significantly for better developer ease of use. Introduces thedispatcher
method for SiaApiClient. This method is likely to be the main way a developer can interact with the Sia walletd API. See unit tests insia_docker_tests.rs
for example usage.Moves the individual endpoint implementations into a seperate
http_endpoints
module.Add
specifier
ModuleAdds a small module to initialize the equivalent of Sia Go's "Identifier" encoding. These identifiers are used extensively in the Sia's transaction and block encoding.
See
specifier.rs
.Add
transaction
moduleBegin work on transaction encoding and decoding. This module will ultimately implement both Sia v1 and v2 consensus. Adds many unit tests.
See
transaction.rs
. See https://github.com/Alrighttt/core/blob/rust-port-unit-tests/types/rust_port_test.go .Add
Encodable
traitAdds the
Encodable
trait to allow better mimicking the code patterns of Sia's Go developers.See
encoding.rs
. Seetransaction.rs
unit tests for usage.Extend Api Client Error Handling
Refactors the
fetch_and_parse
function of the API client to begin implementing more graceful handling of error messages orTodo
Remove or finalize developer comments
Add inline docs.rs documentation
Handle unexpected HTTP responses. Eg, HTTP 200 but unexpected data structure
Update Go port unit tests
Better organization of the Go/Rust equivalent unit tests. Ie,
rust_port_test.go