Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Channel and payment integration tests #10

Merged
merged 44 commits into from
Jul 3, 2020

Conversation

joemphilips
Copy link
Owner

No description provided.

* LSAT Authentication has its own use, so I have separated into
  indepdendent repository.
* Struct must have getter and setter for each field
  to serialize into json.
  Before this, it was impossible override config when
  opening channel. By defining getter/setter to UserConfig
  struct, we can not pass it as json correctly.
* Add mock service for unit test.
* When we run as a server in Integration test, MVC fails to bind
  TheirNodeId in OpenChannelRequest, the reason is unknown, (it does
  not occur in unit test) but changing the order of JsonConverter
  registration in startup solved the issue.
* FeeEstimator should receive FFIConfirmationTarget from rl
  but it was trying to receive `ref FFITransaction` which is
  obviously a bug. So fixed.
* Stop calling bitcoin-core directly.
  The feature we want to use (fee estimation, broadcasting) can
  all be done through NBXplorer. So simplify by not using bitocin
  core rpc in NRustLightning.
* Fix bug in "--regtest", "--testnet" command line options.
  before this commit it wasn't specifying the type signature for
  `Option` so it ended up in empty value.
* Read NBX options when loading configuration.
* Move GetWalletInfo endpoint from InfoController to WalletController.
  Since it makes more sense.
* Add Try-catch block when getting feerate from nbxplorer.
  querying to nbxplorer is not always safe, I have added a cache
  for the feerate and fallback to using the cache if the request fails.
* It is not fully finished, we must bump nbx version for `GetBalance`
  operation. But before that, we must bump NBitcoin version.
* Move some logic from RustLightningEventReactor to WalletService.
  To mock the side effect to NBXplorer, I wanted to
  aggregate all call to nbxplorer into WalletService.
* Make Interface IWalletService
  So that We can have `StubWalletService` to mock side effect
  to nbx.
* Make interface INBXplorerClientProvider.
  We usually want to check the connection against NBX at startup.
  But this will cause test failes even when we don't want to use actual nbx.
  So we prepared StubNBXplorerClientProvider to not run test on startup.
* Fix bug in DerivationStrategy json serialization.
* Bump NBXplorer version to latest.
* Support accessing `BlockNotifier` from C#
* Run RustLightningEventReactors as hosted service.
* Remove unused bitcoind proxies
  Since we can use RPCPRoxy feature in NBXplorer.
Fix bug that EventReactor did not consume bytes from
EventNotify.
Remove all hardcoding of cryptocode.
* Now EventReactor properly broadcast funding tx
  But the endian is reversed.
Before this, interfaces were defining its methods
with property returning `ref delegate` by defining as
delegate without ref, the implementation will be bit easy.
And it opens possibility to be inherited by abstract class.
So that users don't have to see the ffi-specific types at all.
* `Script` is consensus encoded, but deserialization
  was assuming the length is not prefixed.
  Fix by using BitcoinStream in `FFIScript.ToScript`
* Return UIntPtr instead of bool in `ChainWatchInterface.ReEntered`
* Bump rust-lightning
* Remove all logic for ChainWatchInterface interop from Server.
* Add BroadcastAsync method to ChannelService
And confirm channel opens correctly.
* By dirty hack for waiting channel opens.
* Make sure we use right port for lnd in docker-compose
* UserConfig is represented as struct so that it can pass
  FFI Boundary easily, but the struct sometimes causes a problem
  If it is used as configuration object. Specifially, it fails to
  bind from `IConfiguration` So we prepare class which holds the same
  value with it so that user can use as a facade.
* Prepare UserConfigProvider for easy binding against option.
* Add OffchainBalanceSatoshis to WalletInfo.
@joemphilips joemphilips force-pushed the channel_and_payment_integration_tests branch from df9fabe to e431145 Compare July 3, 2020 09:46
@joemphilips joemphilips merged commit 3c108d0 into master Jul 3, 2020
@joemphilips joemphilips deleted the channel_and_payment_integration_tests branch July 4, 2020 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant