litecoin-foundation / litewallet-android

Litewallet Android
MIT License
32 stars 12 forks source link

🦺[Tech Debt] Add On-Chain Commands for the LTCSuite #157

Open kcw-grunt opened 7 months ago

kcw-grunt commented 7 months ago

Background

Describe the work to be done

The library (loafwallet-core) is a C library that was written to bridge commands from the mobile clients (iOS and Android) to send and receive Litecoin. This library is using many legacy and outdated methods. It needs to be replaced to improve the user experience. LTCSuite is a modern library based on the Golang language that uses the latest methods with the best implementations. This library is a fork of the lightning labs Bitcoin library designed to allow codebases to open lightning channels and make second layer payments quicker and easier. ## Problem The LTCSuite also includes on-chain commands and our goal is to leverage the common on-chain calls like typical LitecoinQT cli. The LTCSuite cli command set is **incomplete**. That is the documentation has a list of presumed commands but the codebase has no version for CLI. ## Goal As we integrate these calls into the client and LTCSuite framework, we hope to have a comprehensive set so the latest version of Litewallet is greatly improved. ## Definition of Done - [ ] A developer with comfort of Golang and Kotlin/Java - [ ] Android and LTCSuite gomobile [Framework](https://github.com/ltcsuite/lnd/blob/58d2a91ccd1b75b807d8baa5f420e6c2b0482497/mobile/README.md?plain=1#L8) is integrated into the codebase - [] List of commands operating: ``` ChainKit Service $ lncli chain getblockheader --help $ lncli chain getblockhash --help $ lncli chain getbestblock --help NeutrinoKit Service rpc AddPeer (AddPeerRequest) returns (AddPeerResponse); rpc DisconnectPeer (DisconnectPeerRequest) returns (DisconnectPeerResponse); rpc GetBlockHeader (GetBlockHeaderRequest) returns (GetBlockHeaderResponse); rpc GetBlock (GetBlockRequest) returns (GetBlockResponse); rpc GetCFilter (GetCFilterRequest) returns (GetCFilterResponse); rpc IsBanned (IsBannedRequest) returns (IsBannedResponse); rpc Status (StatusRequest) returns (StatusResponse); WalletUnlocker Service $ lncli changepassword --help rpc GenSeed (GenSeedRequest) returns (GenSeedResponse); rpc InitWallet (InitWalletRequest) returns (InitWalletResponse); $ lncli unlock --help ```