mirror of
https://github.com/bitromortac/lndmanage.git
synced 2026-08-13 12:33:37 +02:00
Merge pull request #151 from bitromortac/2312-build-fix
dependency updates and grpc for lnd v0.16.4
This commit is contained in:
commit
2db287029d
10 changed files with 1298 additions and 3739 deletions
70
README.md
70
README.md
|
|
@ -401,7 +401,7 @@ If you are running an older version of lnd checkout the according
|
|||
[tag](https://github.com/bitromortac/lndmanage/releases).
|
||||
|
||||
### Requirements
|
||||
Installation of lndmanage requires `>=python3.8`, `lnd v0.14.x`, `python3-venv`.
|
||||
Installation of lndmanage requires `>=python3.8`, `lnd v0.15.x`, `python3-venv`.
|
||||
|
||||
#### Optional Requirements
|
||||
Depending on if you want to install from source dependency packages you may
|
||||
|
|
@ -419,26 +419,49 @@ make sure to copy `/path/to/.lnd/data/chain/bitcoin/mainnet/admin.macaroon`
|
|||
and `/path/to/.lnd/tls.cert` to your local machine, which you need for later
|
||||
configuration.
|
||||
|
||||
#### Signature verification
|
||||
Commits and releases are signed with key `1965 063F C13B EBE2` available via
|
||||
|
||||
`$ curl https://keybase.io/bitromortac/pgp_keys.asc | gpg --import`
|
||||
|
||||
or
|
||||
|
||||
`$ curl https://github.com/bitromortac.gpg | gpg --import`
|
||||
|
||||
### Linux
|
||||
|
||||
You can install lndmanage via two methods:
|
||||
You can install lndmanage via three methods:
|
||||
|
||||
1\. Install with pip (recommended):
|
||||
1\. Install from repository:
|
||||
```
|
||||
$ git clone https://github.com/bitromortac/lndmanage && cd lndmanage
|
||||
$ git checkout v0.15.0
|
||||
$ python3 -m venv venv
|
||||
$ git verify-commit HEAD
|
||||
$ source venv/bin/activate
|
||||
$ pip install --upgrade pip setuptools wheel
|
||||
$ pip install .
|
||||
```
|
||||
|
||||
2\. Via released assets:
|
||||
* Go to the release page https://github.com/bitromortac/lndmanage/releases
|
||||
* Download `.whl` and `.whl.asc` files
|
||||
* Verify signature and install:
|
||||
```
|
||||
$ gpg --verify lndmanage-0.15.0-py3-none-any.whl.asc lndmanage-0.15.0-py3-none-any.whl
|
||||
$ python3 -m venv venv
|
||||
$ source venv/bin/activate
|
||||
$ pip install --upgrade pip setuptools wheel
|
||||
$ pip install lndmanage-0.15.0-py3-none-any.whl
|
||||
```
|
||||
|
||||
3\. Install with pip (deprecated):
|
||||
```
|
||||
$ python3 -m venv venv
|
||||
$ source venv/bin/activate
|
||||
$ pip install --upgrade pip setuptools wheel
|
||||
$ python3 -m pip install lndmanage
|
||||
```
|
||||
2\. Install from source:
|
||||
```
|
||||
$ git clone https://github.com/bitromortac/lndmanage
|
||||
$ cd lndmanage
|
||||
$ python3 -m venv venv
|
||||
$ source venv/bin/activate
|
||||
$ pip install --upgrade pip setuptools wheel
|
||||
$ pip install .
|
||||
```
|
||||
|
||||
### Windows (powershell)
|
||||
Install [python3](https://www.python.org/downloads/release/python-374/),
|
||||
|
|
@ -448,7 +471,19 @@ Install [python3](https://www.python.org/downloads/release/python-374/),
|
|||
You need to set the environment variable `PYTHONIOENCODING` for proper encoding to:
|
||||
`$env:PYTHONIOENCODING="UTF-8"`
|
||||
|
||||
1\. Install with pip (recommended):
|
||||
1\. Install from source:
|
||||
```
|
||||
$ git clone https://github.com/bitromortac/lndmanage
|
||||
$ cd lndmanage
|
||||
$ git checkout v0.15.0
|
||||
$ git verify-commit HEAD
|
||||
$ py -m venv venv
|
||||
$ .\venv\Scripts\activate
|
||||
$ pip install --upgrade pip setuptools wheel
|
||||
$ pip install .
|
||||
```
|
||||
|
||||
2\. Install with pip (deprecated):
|
||||
```
|
||||
$ py -m venv venv
|
||||
$ .\venv\Scripts\activate
|
||||
|
|
@ -456,15 +491,6 @@ $ pip install --upgrade pip setuptools wheel
|
|||
$ python -m pip install lndmanage
|
||||
```
|
||||
|
||||
2\. Install from source:
|
||||
```
|
||||
$ git clone https://github.com/bitromortac/lndmanage
|
||||
$ cd lndmanage
|
||||
$ py -m venv venv
|
||||
$ .\venv\Scripts\activate
|
||||
$ pip install --upgrade pip setuptools wheel
|
||||
$ pip install .
|
||||
```
|
||||
### Configuration
|
||||
|
||||
When starting lndmanage for the first time, it will create a runtime folder
|
||||
|
|
|
|||
|
|
@ -1,11 +1,12 @@
|
|||
#!/bin/bash
|
||||
git clone https://github.com/googleapis/googleapis.git
|
||||
git clone --depth=1 https://github.com/googleapis/googleapis.git
|
||||
rm -rf temp
|
||||
python -m venv temp
|
||||
source temp/bin/activate
|
||||
pip install --upgrade pip
|
||||
pip install grpcio==1.51.3 grpcio-tools==1.48.2 googleapis-common-protos==1.58.0 protobuf==3.20.3
|
||||
pip install grpcio==1.60.0 grpcio-tools==1.60.0 protobuf==4.25.1
|
||||
|
||||
tag="v0.15.5-beta"
|
||||
tag="v0.16.4-beta"
|
||||
|
||||
wget "https://raw.githubusercontent.com/lightningnetwork/lnd/${tag}/lnrpc/lightning.proto" -O lightning.proto
|
||||
wget "https://raw.githubusercontent.com/lightningnetwork/lnd/${tag}/lnrpc/routerrpc/router.proto" -O router.proto
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -362,6 +362,11 @@ class LightningStub(object):
|
|||
request_serializer=lightning__pb2.ListAliasesRequest.SerializeToString,
|
||||
response_deserializer=lightning__pb2.ListAliasesResponse.FromString,
|
||||
)
|
||||
self.LookupHtlcResolution = channel.unary_unary(
|
||||
'/lnrpc.Lightning/LookupHtlcResolution',
|
||||
request_serializer=lightning__pb2.LookupHtlcResolutionRequest.SerializeToString,
|
||||
response_deserializer=lightning__pb2.LookupHtlcResolutionResponse.FromString,
|
||||
)
|
||||
|
||||
|
||||
class LightningServicer(object):
|
||||
|
|
@ -1097,6 +1102,10 @@ class LightningServicer(object):
|
|||
"""lncli: `subscribecustom`
|
||||
SubscribeCustomMessages subscribes to a stream of incoming custom peer
|
||||
messages.
|
||||
|
||||
To include messages with type outside of the custom range (>= 32768) lnd
|
||||
needs to be compiled with the `dev` build tag, and the message type to
|
||||
override should be specified in lnd's experimental protocol configuration.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
|
|
@ -1112,6 +1121,16 @@ class LightningServicer(object):
|
|||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def LookupHtlcResolution(self, request, context):
|
||||
"""
|
||||
LookupHtlcResolution retrieves a final htlc resolution from the database.
|
||||
If the htlc has no final resolution yet, a NotFound grpc status code is
|
||||
returned.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
|
||||
def add_LightningServicer_to_server(servicer, server):
|
||||
rpc_method_handlers = {
|
||||
|
|
@ -1445,6 +1464,11 @@ def add_LightningServicer_to_server(servicer, server):
|
|||
request_deserializer=lightning__pb2.ListAliasesRequest.FromString,
|
||||
response_serializer=lightning__pb2.ListAliasesResponse.SerializeToString,
|
||||
),
|
||||
'LookupHtlcResolution': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.LookupHtlcResolution,
|
||||
request_deserializer=lightning__pb2.LookupHtlcResolutionRequest.FromString,
|
||||
response_serializer=lightning__pb2.LookupHtlcResolutionResponse.SerializeToString,
|
||||
),
|
||||
}
|
||||
generic_handler = grpc.method_handlers_generic_handler(
|
||||
'lnrpc.Lightning', rpc_method_handlers)
|
||||
|
|
@ -2594,3 +2618,20 @@ class Lightning(object):
|
|||
lightning__pb2.ListAliasesResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def LookupHtlcResolution(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/lnrpc.Lightning/LookupHtlcResolution',
|
||||
lightning__pb2.LookupHtlcResolutionRequest.SerializeToString,
|
||||
lightning__pb2.LookupHtlcResolutionResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -27,6 +27,11 @@ class RouterStub(object):
|
|||
request_serializer=router__pb2.TrackPaymentRequest.SerializeToString,
|
||||
response_deserializer=lightning__pb2.Payment.FromString,
|
||||
)
|
||||
self.TrackPayments = channel.unary_stream(
|
||||
'/routerrpc.Router/TrackPayments',
|
||||
request_serializer=router__pb2.TrackPaymentsRequest.SerializeToString,
|
||||
response_deserializer=lightning__pb2.Payment.FromString,
|
||||
)
|
||||
self.EstimateRouteFee = channel.unary_unary(
|
||||
'/routerrpc.Router/EstimateRouteFee',
|
||||
request_serializer=router__pb2.RouteFeeRequest.SerializeToString,
|
||||
|
|
@ -128,6 +133,19 @@ class RouterServicer(object):
|
|||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def TrackPayments(self, request, context):
|
||||
"""
|
||||
TrackPayments returns an update stream for every payment that is not in a
|
||||
terminal state. Note that if payments are in-flight while starting a new
|
||||
subscription, the start of the payment stream could produce out-of-order
|
||||
and/or duplicate events. In order to get updates for every in-flight
|
||||
payment attempt make sure to subscribe to this method before initiating any
|
||||
payments.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def EstimateRouteFee(self, request, context):
|
||||
"""
|
||||
EstimateRouteFee allows callers to obtain a lower bound w.r.t how much it
|
||||
|
|
@ -208,8 +226,10 @@ class RouterServicer(object):
|
|||
|
||||
def QueryProbability(self, request, context):
|
||||
"""
|
||||
QueryProbability returns the current success probability estimate for a
|
||||
given node pair and amount.
|
||||
Deprecated. QueryProbability returns the current success probability
|
||||
estimate for a given node pair and amount. The call returns a zero success
|
||||
probability if no channel is available or if the amount violates min/max
|
||||
HTLC constraints.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
|
|
@ -289,6 +309,11 @@ def add_RouterServicer_to_server(servicer, server):
|
|||
request_deserializer=router__pb2.TrackPaymentRequest.FromString,
|
||||
response_serializer=lightning__pb2.Payment.SerializeToString,
|
||||
),
|
||||
'TrackPayments': grpc.unary_stream_rpc_method_handler(
|
||||
servicer.TrackPayments,
|
||||
request_deserializer=router__pb2.TrackPaymentsRequest.FromString,
|
||||
response_serializer=lightning__pb2.Payment.SerializeToString,
|
||||
),
|
||||
'EstimateRouteFee': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.EstimateRouteFee,
|
||||
request_deserializer=router__pb2.RouteFeeRequest.FromString,
|
||||
|
|
@ -410,6 +435,23 @@ class Router(object):
|
|||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def TrackPayments(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_stream(request, target, '/routerrpc.Router/TrackPayments',
|
||||
router__pb2.TrackPaymentsRequest.SerializeToString,
|
||||
lightning__pb2.Payment.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def EstimateRouteFee(request,
|
||||
target,
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -62,6 +62,21 @@ class WalletKitStub(object):
|
|||
request_serializer=walletkit__pb2.RequiredReserveRequest.SerializeToString,
|
||||
response_deserializer=walletkit__pb2.RequiredReserveResponse.FromString,
|
||||
)
|
||||
self.ListAddresses = channel.unary_unary(
|
||||
'/walletrpc.WalletKit/ListAddresses',
|
||||
request_serializer=walletkit__pb2.ListAddressesRequest.SerializeToString,
|
||||
response_deserializer=walletkit__pb2.ListAddressesResponse.FromString,
|
||||
)
|
||||
self.SignMessageWithAddr = channel.unary_unary(
|
||||
'/walletrpc.WalletKit/SignMessageWithAddr',
|
||||
request_serializer=walletkit__pb2.SignMessageWithAddrRequest.SerializeToString,
|
||||
response_deserializer=walletkit__pb2.SignMessageWithAddrResponse.FromString,
|
||||
)
|
||||
self.VerifyMessageWithAddr = channel.unary_unary(
|
||||
'/walletrpc.WalletKit/VerifyMessageWithAddr',
|
||||
request_serializer=walletkit__pb2.VerifyMessageWithAddrRequest.SerializeToString,
|
||||
response_deserializer=walletkit__pb2.VerifyMessageWithAddrResponse.FromString,
|
||||
)
|
||||
self.ImportAccount = channel.unary_unary(
|
||||
'/walletrpc.WalletKit/ImportAccount',
|
||||
request_serializer=walletkit__pb2.ImportAccountRequest.SerializeToString,
|
||||
|
|
@ -72,6 +87,11 @@ class WalletKitStub(object):
|
|||
request_serializer=walletkit__pb2.ImportPublicKeyRequest.SerializeToString,
|
||||
response_deserializer=walletkit__pb2.ImportPublicKeyResponse.FromString,
|
||||
)
|
||||
self.ImportTapscript = channel.unary_unary(
|
||||
'/walletrpc.WalletKit/ImportTapscript',
|
||||
request_serializer=walletkit__pb2.ImportTapscriptRequest.SerializeToString,
|
||||
response_deserializer=walletkit__pb2.ImportTapscriptResponse.FromString,
|
||||
)
|
||||
self.PublishTransaction = channel.unary_unary(
|
||||
'/walletrpc.WalletKit/PublishTransaction',
|
||||
request_serializer=walletkit__pb2.Transaction.SerializeToString,
|
||||
|
|
@ -217,6 +237,61 @@ class WalletKitServicer(object):
|
|||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ListAddresses(self, request, context):
|
||||
"""
|
||||
ListAddresses retrieves all the addresses along with their balance. An
|
||||
account name filter can be provided to filter through all of the
|
||||
wallet accounts and return the addresses of only those matching.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def SignMessageWithAddr(self, request, context):
|
||||
"""
|
||||
SignMessageWithAddr returns the compact signature (base64 encoded) created
|
||||
with the private key of the provided address. This requires the address
|
||||
to be solely based on a public key lock (no scripts). Obviously the internal
|
||||
lnd wallet has to possess the private key of the address otherwise
|
||||
an error is returned.
|
||||
|
||||
This method aims to provide full compatibility with the bitcoin-core and
|
||||
btcd implementation. Bitcoin-core's algorithm is not specified in a
|
||||
BIP and only applicable for legacy addresses. This method enhances the
|
||||
signing for additional address types: P2WKH, NP2WKH, P2TR.
|
||||
For P2TR addresses this represents a special case. ECDSA is used to create
|
||||
a compact signature which makes the public key of the signature recoverable.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def VerifyMessageWithAddr(self, request, context):
|
||||
"""
|
||||
VerifyMessageWithAddr returns the validity and the recovered public key of
|
||||
the provided compact signature (base64 encoded). The verification is
|
||||
twofold. First the validity of the signature itself is checked and then
|
||||
it is verified that the recovered public key of the signature equals
|
||||
the public key of the provided address. There is no dependence on the
|
||||
private key of the address therefore also external addresses are allowed
|
||||
to verify signatures.
|
||||
Supported address types are P2PKH, P2WKH, NP2WKH, P2TR.
|
||||
|
||||
This method is the counterpart of the related signing method
|
||||
(SignMessageWithAddr) and aims to provide full compatibility to
|
||||
bitcoin-core's implementation. Although bitcoin-core/btcd only provide
|
||||
this functionality for legacy addresses this function enhances it to
|
||||
the address types: P2PKH, P2WKH, NP2WKH, P2TR.
|
||||
|
||||
The verification for P2TR addresses is a special case and requires the
|
||||
ECDSA compact signature to compare the reovered public key to the internal
|
||||
taproot key. The compact ECDSA signature format was used because there
|
||||
are still no known compact signature schemes for schnorr signatures.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ImportAccount(self, request, context):
|
||||
"""
|
||||
ImportAccount imports an account backed by an account extended public key.
|
||||
|
|
@ -249,7 +324,11 @@ class WalletKitServicer(object):
|
|||
|
||||
def ImportPublicKey(self, request, context):
|
||||
"""
|
||||
ImportPublicKey imports a public key as watch-only into the wallet.
|
||||
ImportPublicKey imports a public key as watch-only into the wallet. The
|
||||
public key is converted into a simple address of the given type and that
|
||||
address script is watched on chain. For Taproot keys, this will only watch
|
||||
the BIP-0086 style output script. Use ImportTapscript for more advanced key
|
||||
spend or script spend outputs.
|
||||
|
||||
NOTE: Events (deposits/spends) for a key will only be detected by lnd if
|
||||
they happen after the import. Rescans to detect past events will be
|
||||
|
|
@ -259,6 +338,24 @@ class WalletKitServicer(object):
|
|||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def ImportTapscript(self, request, context):
|
||||
"""
|
||||
ImportTapscript imports a Taproot script and internal key and adds the
|
||||
resulting Taproot output key as a watch-only output script into the wallet.
|
||||
For BIP-0086 style Taproot keys (no root hash commitment and no script spend
|
||||
path) use ImportPublicKey.
|
||||
|
||||
NOTE: Events (deposits/spends) for a key will only be detected by lnd if
|
||||
they happen after the import. Rescans to detect past events will be
|
||||
supported later on.
|
||||
|
||||
NOTE: Taproot keys imported through this RPC currently _cannot_ be used for
|
||||
funding PSBTs. Only tracking the balance and UTXOs is currently supported.
|
||||
"""
|
||||
context.set_code(grpc.StatusCode.UNIMPLEMENTED)
|
||||
context.set_details('Method not implemented!')
|
||||
raise NotImplementedError('Method not implemented!')
|
||||
|
||||
def PublishTransaction(self, request, context):
|
||||
"""
|
||||
PublishTransaction attempts to publish the passed transaction to the
|
||||
|
|
@ -467,6 +564,21 @@ def add_WalletKitServicer_to_server(servicer, server):
|
|||
request_deserializer=walletkit__pb2.RequiredReserveRequest.FromString,
|
||||
response_serializer=walletkit__pb2.RequiredReserveResponse.SerializeToString,
|
||||
),
|
||||
'ListAddresses': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ListAddresses,
|
||||
request_deserializer=walletkit__pb2.ListAddressesRequest.FromString,
|
||||
response_serializer=walletkit__pb2.ListAddressesResponse.SerializeToString,
|
||||
),
|
||||
'SignMessageWithAddr': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.SignMessageWithAddr,
|
||||
request_deserializer=walletkit__pb2.SignMessageWithAddrRequest.FromString,
|
||||
response_serializer=walletkit__pb2.SignMessageWithAddrResponse.SerializeToString,
|
||||
),
|
||||
'VerifyMessageWithAddr': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.VerifyMessageWithAddr,
|
||||
request_deserializer=walletkit__pb2.VerifyMessageWithAddrRequest.FromString,
|
||||
response_serializer=walletkit__pb2.VerifyMessageWithAddrResponse.SerializeToString,
|
||||
),
|
||||
'ImportAccount': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ImportAccount,
|
||||
request_deserializer=walletkit__pb2.ImportAccountRequest.FromString,
|
||||
|
|
@ -477,6 +589,11 @@ def add_WalletKitServicer_to_server(servicer, server):
|
|||
request_deserializer=walletkit__pb2.ImportPublicKeyRequest.FromString,
|
||||
response_serializer=walletkit__pb2.ImportPublicKeyResponse.SerializeToString,
|
||||
),
|
||||
'ImportTapscript': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.ImportTapscript,
|
||||
request_deserializer=walletkit__pb2.ImportTapscriptRequest.FromString,
|
||||
response_serializer=walletkit__pb2.ImportTapscriptResponse.SerializeToString,
|
||||
),
|
||||
'PublishTransaction': grpc.unary_unary_rpc_method_handler(
|
||||
servicer.PublishTransaction,
|
||||
request_deserializer=walletkit__pb2.Transaction.FromString,
|
||||
|
|
@ -692,6 +809,57 @@ class WalletKit(object):
|
|||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def ListAddresses(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/walletrpc.WalletKit/ListAddresses',
|
||||
walletkit__pb2.ListAddressesRequest.SerializeToString,
|
||||
walletkit__pb2.ListAddressesResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def SignMessageWithAddr(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/walletrpc.WalletKit/SignMessageWithAddr',
|
||||
walletkit__pb2.SignMessageWithAddrRequest.SerializeToString,
|
||||
walletkit__pb2.SignMessageWithAddrResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def VerifyMessageWithAddr(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/walletrpc.WalletKit/VerifyMessageWithAddr',
|
||||
walletkit__pb2.VerifyMessageWithAddrRequest.SerializeToString,
|
||||
walletkit__pb2.VerifyMessageWithAddrResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def ImportAccount(request,
|
||||
target,
|
||||
|
|
@ -726,6 +894,23 @@ class WalletKit(object):
|
|||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def ImportTapscript(request,
|
||||
target,
|
||||
options=(),
|
||||
channel_credentials=None,
|
||||
call_credentials=None,
|
||||
insecure=False,
|
||||
compression=None,
|
||||
wait_for_ready=None,
|
||||
timeout=None,
|
||||
metadata=None):
|
||||
return grpc.experimental.unary_unary(request, target, '/walletrpc.WalletKit/ImportTapscript',
|
||||
walletkit__pb2.ImportTapscriptRequest.SerializeToString,
|
||||
walletkit__pb2.ImportTapscriptResponse.FromString,
|
||||
options, channel_credentials,
|
||||
insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
|
||||
|
||||
@staticmethod
|
||||
def PublishTransaction(request,
|
||||
target,
|
||||
|
|
|
|||
8
setup.py
8
setup.py
|
|
@ -30,13 +30,11 @@ setuptools.setup(
|
|||
packages=setuptools.find_packages(),
|
||||
python_requires='>=3.9.0',
|
||||
install_requires=[
|
||||
"googleapis-common-protos==1.58.0",
|
||||
"grpcio==1.51.3",
|
||||
"grpcio-tools==1.48.2",
|
||||
"googleapis-common-protos==1.62.0",
|
||||
"grpcio==1.60.0",
|
||||
"networkx==3.0",
|
||||
"numpy==1.24.2",
|
||||
"protobuf==3.20.3",
|
||||
"Pygments==2.14.0",
|
||||
"Pygments==2.17.2",
|
||||
],
|
||||
extras_require={
|
||||
"test": [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue