Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
255 changes: 154 additions & 101 deletions Cargo.lock

Large diffs are not rendered by default.

26 changes: 13 additions & 13 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,21 @@ lto = "thin"

[workspace]
resolver = "2"
members = [
"examples/rust",
"libs/gl-client",
"libs/gl-client-py",
"libs/gl-plugin",
"libs/gl-signerproxy",
"libs/gl-cli",
members = [
"examples/rust",
"libs/gl-client",
"libs/gl-client-py",
"libs/gl-plugin",
"libs/gl-signerproxy",
"libs/gl-cli",
]

[workspace.dependencies]
anyhow = "1"
env_logger = "0.10"
cln-grpc = "=0.1.8"
cln-rpc = "0.1.8"
cln-plugin = "0.1.8"
cln-grpc = "0.4"
cln-rpc = "0.4"
cln-plugin = "0.4"

vls-core = "^0.12"
vls-persist = "^0.12"
Expand All @@ -43,9 +43,9 @@ ci = ["github"]
installers = []
# Target platforms to build apps for (Rust target-triple syntax)
targets = [
"x86_64-unknown-linux-gnu",
"aarch64-apple-darwin",
"x86_64-apple-darwin",
"x86_64-unknown-linux-gnu",
"aarch64-apple-darwin",
"x86_64-apple-darwin",
]
# Publish jobs to run in CI
pr-run-mode = "upload"
Expand Down
5 changes: 5 additions & 0 deletions libs/gl-cli/src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -316,6 +316,7 @@ async fn invoice_handler<P: AsRef<Path>>(
let mut node: gl_client::node::ClnClient = scheduler.node().await.map_err(Error::custom)?;
let res = node
.invoice(cln::InvoiceRequest {
exposeprivatechannels: vec![],
amount_msat: amount_msat.map(|v| v.into()),
description,
label,
Expand Down Expand Up @@ -387,6 +388,9 @@ async fn listpays_handler<P: AsRef<Path>>(
let mut node: gl_client::node::ClnClient = scheduler.node().await.map_err(Error::custom)?;
let res = node
.list_pays(cln::ListpaysRequest {
index: None,
start: None,
limit: None,
bolt11,
payment_hash,
status,
Expand Down Expand Up @@ -443,6 +447,7 @@ async fn pay_handler<P: AsRef<Path>>(
exclude: exclude.unwrap_or_default(),
maxfee: maxfee.map(|msat| cln::Amount { msat }),
description,
partial_msat: None,
})
.await
.map_err(|e| Error::custom(e.message()))?
Expand Down
19 changes: 11 additions & 8 deletions libs/gl-client-py/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
name = "gl-client-py"
version = "0.3.0"
edition = "2018"
authors = [
"Christian Decker",
"The Greenlight Team"
]
authors = ["Christian Decker", "The Greenlight Team"]
description = "Python bindings for the Greenlight client library."
repository = "https://github.com/Blockstream/greenlight"
license = "MIT"
Expand All @@ -18,15 +15,21 @@ crate-type = ["cdylib"]
anyhow = { workspace = true }
bytes = "1.6"
env_logger = { workspace = true }
gl-client = { path = "../gl-client", default-features = false, features = [ "export" ] }
gl-client = { path = "../gl-client", default-features = false, features = [
"export",
] }
hex = "*"
log = "*"
once_cell = "*"
prost = "0.11"
pyo3 = {version = "0.18", features = ["extension-module", "serde", "abi3-py37"]}
prost = "0.12"
pyo3 = { version = "0.18", features = [
"extension-module",
"serde",
"abi3-py37",
] }
runeauth = "0.1"
tokio = { version = "1", features = ["full"] }
tonic = { version = "^0.8", features = ["tls", "transport"] }
tonic = { version = "0.11", features = ["tls", "transport"] }
serde_json = "^1.0"
thiserror = "1"

Expand Down
14 changes: 7 additions & 7 deletions libs/gl-client/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "gl-client"
version = "0.3.0"
edition = "2018"
edition = "2021"
authors = ["Christian Decker", "The Greenlight Team"]
description = "Client library for Greenlight, and basis for language bindings."
repository = "https://github.com/Blockstream/greenlight"
Expand All @@ -27,19 +27,19 @@ picky = "6.3"
picky-asn1-x509 = "0.12"
picky-asn1-der = "0.4"
pin-project = "1.1.5"
prost = "0.11"
prost-derive = "0.11"
prost = "0.12"
prost-derive = "0.12"
reqwest = { version = "^0.11", features = [
"json",
"rustls-tls-native-roots",
"json",
"rustls-tls-native-roots",
], default-features = false }
ring = "~0.16.20"
runeauth = "0.1"
rustls-pemfile = "1.0.4"
sha256 = "1.5.0"
tokio = { version = "1", features = ["full"] }
tokio-stream = "0.1"
tonic = { version = "^0.8", features = ["tls", "transport"] }
tonic = { version = "0.11", features = ["tls", "transport"] }
tower = { version = "0.4" }
tempfile = "3.10.1"
url = "2.5.0"
Expand All @@ -63,5 +63,5 @@ time = { version = "0.3", features = ["macros"] }
x509-certificate = "0.23.1"

[build-dependencies]
tonic-build = "^0.8"
tonic-build = "0.11"
serde = { version = "1", features = ["derive"] }
1 change: 0 additions & 1 deletion libs/gl-client/rustfmt.toml

This file was deleted.

112 changes: 59 additions & 53 deletions libs/gl-client/src/signer/model/cln.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,64 +3,70 @@
// Do not edit this file.
//

use super::Request;
pub use crate::pb::cln::*;
use anyhow::anyhow;
use prost::Message;
pub use crate::pb::cln::*;
use super::Request;

pub fn decode_request(uri: &str, p: &[u8]) -> anyhow::Result<Request> {
Ok(match uri {
"/cln.Node/Getinfo" => Request::Getinfo(GetinfoRequest::decode(p)?),
"/cln.Node/ListPeers" => Request::ListPeers(ListpeersRequest::decode(p)?),
"/cln.Node/ListFunds" => Request::ListFunds(ListfundsRequest::decode(p)?),
"/cln.Node/SendPay" => Request::SendPay(SendpayRequest::decode(p)?),
"/cln.Node/ListChannels" => Request::ListChannels(ListchannelsRequest::decode(p)?),
"/cln.Node/AddGossip" => Request::AddGossip(AddgossipRequest::decode(p)?),
"/cln.Node/AutoCleanInvoice" => Request::AutoCleanInvoice(AutocleaninvoiceRequest::decode(p)?),
"/cln.Node/CheckMessage" => Request::CheckMessage(CheckmessageRequest::decode(p)?),
"/cln.Node/Close" => Request::Close(CloseRequest::decode(p)?),
"/cln.Node/ConnectPeer" => Request::Connect(ConnectRequest::decode(p)?),
"/cln.Node/CreateInvoice" => Request::CreateInvoice(CreateinvoiceRequest::decode(p)?),
"/cln.Node/Datastore" => Request::Datastore(DatastoreRequest::decode(p)?),
"/cln.Node/CreateOnion" => Request::CreateOnion(CreateonionRequest::decode(p)?),
"/cln.Node/DelDatastore" => Request::DelDatastore(DeldatastoreRequest::decode(p)?),
"/cln.Node/DelExpiredInvoice" => Request::DelExpiredInvoice(DelinvoiceRequest::decode(p)?),
"/cln.Node/DelInvoice" => Request::DelInvoice(DelinvoiceRequest::decode(p)?),
"/cln.Node/Invoice" => Request::Invoice(InvoiceRequest::decode(p)?),
"/cln.Node/ListDatastore" => Request::ListDatastore(ListdatastoreRequest::decode(p)?),
"/cln.Node/ListInvoices" => Request::ListInvoices(ListinvoicesRequest::decode(p)?),
"/cln.Node/SendOnion" => Request::SendOnion(SendonionRequest::decode(p)?),
"/cln.Node/ListSendPays" => Request::ListSendPays(ListsendpaysRequest::decode(p)?),
"/cln.Node/ListTransactions" => Request::ListTransactions(ListtransactionsRequest::decode(p)?),
"/cln.Node/Pay" => Request::Pay(PayRequest::decode(p)?),
"/cln.Node/ListNodes" => Request::ListNodes(ListnodesRequest::decode(p)?),
"/cln.Node/WaitAnyInvoice" => Request::WaitAnyInvoice(WaitanyinvoiceRequest::decode(p)?),
"/cln.Node/WaitInvoice" => Request::WaitInvoice(WaitinvoiceRequest::decode(p)?),
"/cln.Node/WaitSendPay" => Request::WaitSendPay(WaitsendpayRequest::decode(p)?),
"/cln.Node/NewAddr" => Request::NewAddr(NewaddrRequest::decode(p)?),
"/cln.Node/Withdraw" => Request::Withdraw(WithdrawRequest::decode(p)?),
"/cln.Node/KeySend" => Request::KeySend(KeysendRequest::decode(p)?),
"/cln.Node/FundPsbt" => Request::FundPsbt(FundpsbtRequest::decode(p)?),
"/cln.Node/SendPsbt" => Request::SendPsbt(SendpsbtRequest::decode(p)?),
"/cln.Node/SignPsbt" => Request::SignPsbt(SignpsbtRequest::decode(p)?),
"/cln.Node/UtxoPsbt" => Request::UtxoPsbt(UtxopsbtRequest::decode(p)?),
"/cln.Node/TxDiscard" => Request::TxDiscard(TxdiscardRequest::decode(p)?),
"/cln.Node/TxPrepare" => Request::TxPrepare(TxprepareRequest::decode(p)?),
"/cln.Node/TxSend" => Request::TxSend(TxsendRequest::decode(p)?),
"/cln.Node/Disconnect" => Request::Disconnect(DisconnectRequest::decode(p)?),
"/cln.Node/Feerates" => Request::Feerates(FeeratesRequest::decode(p)?),
"/cln.Node/FundChannel" => Request::FundChannel(FundchannelRequest::decode(p)?),
"/cln.Node/GetRoute" => Request::GetRoute(GetrouteRequest::decode(p)?),
"/cln.Node/ListForwards" => Request::ListForwards(ListforwardsRequest::decode(p)?),
"/cln.Node/ListPays" => Request::ListPays(ListpaysRequest::decode(p)?),
"/cln.Node/Ping" => Request::Ping(PingRequest::decode(p)?),
"/cln.Node/SetChannel" => Request::SetChannel(SetchannelRequest::decode(p)?),
"/cln.Node/SignMessage" => Request::SignMessage(SignmessageRequest::decode(p)?),
"/cln.Node/FetchInvoice" => Request::FetchInvoice(FetchinvoiceRequest::decode(p)?),
"/cln.Node/Stop" => Request::Stop(StopRequest::decode(p)?),
"/cln.Node/ListClosedChannels" => Request::ListClosedChannels(ListclosedchannelsRequest::decode(p)?),
"/cln.Node/StaticBackup" => Request::StaticBackup(StaticbackupRequest::decode(p)?),
"/cln.Node/PreApproveInvoice" => Request::PreApproveInvoice(PreapproveinvoiceRequest::decode(p)?),
"/cln.Node/Getinfo" => Request::Getinfo(GetinfoRequest::decode(p)?),
"/cln.Node/ListPeers" => Request::ListPeers(ListpeersRequest::decode(p)?),
"/cln.Node/ListFunds" => Request::ListFunds(ListfundsRequest::decode(p)?),
"/cln.Node/SendPay" => Request::SendPay(SendpayRequest::decode(p)?),
"/cln.Node/ListChannels" => Request::ListChannels(ListchannelsRequest::decode(p)?),
"/cln.Node/AddGossip" => Request::AddGossip(AddgossipRequest::decode(p)?),
"/cln.Nonde/AutoCleanOnce" => Request::AutoCleanOnce(AutocleanonceRequest::decode(p)?),
"/cln.Node/CheckMessage" => Request::CheckMessage(CheckmessageRequest::decode(p)?),
"/cln.Node/Close" => Request::Close(CloseRequest::decode(p)?),
"/cln.Node/ConnectPeer" => Request::Connect(ConnectRequest::decode(p)?),
"/cln.Node/CreateInvoice" => Request::CreateInvoice(CreateinvoiceRequest::decode(p)?),
"/cln.Node/Datastore" => Request::Datastore(DatastoreRequest::decode(p)?),
"/cln.Node/CreateOnion" => Request::CreateOnion(CreateonionRequest::decode(p)?),
"/cln.Node/DelDatastore" => Request::DelDatastore(DeldatastoreRequest::decode(p)?),
"/cln.Node/DelExpiredInvoice" => Request::DelExpiredInvoice(DelinvoiceRequest::decode(p)?),
"/cln.Node/DelInvoice" => Request::DelInvoice(DelinvoiceRequest::decode(p)?),
"/cln.Node/Invoice" => Request::Invoice(InvoiceRequest::decode(p)?),
"/cln.Node/ListDatastore" => Request::ListDatastore(ListdatastoreRequest::decode(p)?),
"/cln.Node/ListInvoices" => Request::ListInvoices(ListinvoicesRequest::decode(p)?),
"/cln.Node/SendOnion" => Request::SendOnion(SendonionRequest::decode(p)?),
"/cln.Node/ListSendPays" => Request::ListSendPays(ListsendpaysRequest::decode(p)?),
"/cln.Node/ListTransactions" => {
Request::ListTransactions(ListtransactionsRequest::decode(p)?)
}
"/cln.Node/Pay" => Request::Pay(PayRequest::decode(p)?),
"/cln.Node/ListNodes" => Request::ListNodes(ListnodesRequest::decode(p)?),
"/cln.Node/WaitAnyInvoice" => Request::WaitAnyInvoice(WaitanyinvoiceRequest::decode(p)?),
"/cln.Node/WaitInvoice" => Request::WaitInvoice(WaitinvoiceRequest::decode(p)?),
"/cln.Node/WaitSendPay" => Request::WaitSendPay(WaitsendpayRequest::decode(p)?),
"/cln.Node/NewAddr" => Request::NewAddr(NewaddrRequest::decode(p)?),
"/cln.Node/Withdraw" => Request::Withdraw(WithdrawRequest::decode(p)?),
"/cln.Node/KeySend" => Request::KeySend(KeysendRequest::decode(p)?),
"/cln.Node/FundPsbt" => Request::FundPsbt(FundpsbtRequest::decode(p)?),
"/cln.Node/SendPsbt" => Request::SendPsbt(SendpsbtRequest::decode(p)?),
"/cln.Node/SignPsbt" => Request::SignPsbt(SignpsbtRequest::decode(p)?),
"/cln.Node/UtxoPsbt" => Request::UtxoPsbt(UtxopsbtRequest::decode(p)?),
"/cln.Node/TxDiscard" => Request::TxDiscard(TxdiscardRequest::decode(p)?),
"/cln.Node/TxPrepare" => Request::TxPrepare(TxprepareRequest::decode(p)?),
"/cln.Node/TxSend" => Request::TxSend(TxsendRequest::decode(p)?),
"/cln.Node/Disconnect" => Request::Disconnect(DisconnectRequest::decode(p)?),
"/cln.Node/Feerates" => Request::Feerates(FeeratesRequest::decode(p)?),
"/cln.Node/FundChannel" => Request::FundChannel(FundchannelRequest::decode(p)?),
"/cln.Node/GetRoute" => Request::GetRoute(GetrouteRequest::decode(p)?),
"/cln.Node/ListForwards" => Request::ListForwards(ListforwardsRequest::decode(p)?),
"/cln.Node/ListPays" => Request::ListPays(ListpaysRequest::decode(p)?),
"/cln.Node/Ping" => Request::Ping(PingRequest::decode(p)?),
"/cln.Node/SetChannel" => Request::SetChannel(SetchannelRequest::decode(p)?),
"/cln.Node/SignMessage" => Request::SignMessage(SignmessageRequest::decode(p)?),
"/cln.Node/FetchInvoice" => Request::FetchInvoice(FetchinvoiceRequest::decode(p)?),
"/cln.Node/Stop" => Request::Stop(StopRequest::decode(p)?),
"/cln.Node/ListClosedChannels" => {
Request::ListClosedChannels(ListclosedchannelsRequest::decode(p)?)
}
"/cln.Node/StaticBackup" => Request::StaticBackup(StaticbackupRequest::decode(p)?),
"/cln.Node/PreApproveInvoice" => {
Request::PreApproveInvoice(PreapproveinvoiceRequest::decode(p)?)
}
uri => return Err(anyhow!("Unknown URI {}, can't decode payload", uri)),
})
}
2 changes: 1 addition & 1 deletion libs/gl-client/src/signer/model/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ pub enum Request {
SendPay(cln::SendpayRequest),
ListChannels(cln::ListchannelsRequest),
AddGossip(cln::AddgossipRequest),
AutoCleanInvoice(cln::AutocleaninvoiceRequest),
AutoCleanOnce(cln::AutocleanonceRequest),
CheckMessage(cln::CheckmessageRequest),
Close(cln::CloseRequest),
Connect(cln::ConnectRequest),
Expand Down
2 changes: 1 addition & 1 deletion libs/gl-client/src/signer/resolve.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ impl Resolver {
// Manually calling preapproveinvoice should
// always be allowed. The bolt11 string have to
// match.
l.invstring.0 == r.bolt11().as_bytes()
l.invstring.0 == r.bolt11.as_bytes()
}
(Message::PreapproveInvoice(l), Request::TrampolinePay(r)) => {
l.invstring.0 == r.bolt11.as_bytes()
Expand Down
11 changes: 4 additions & 7 deletions libs/gl-plugin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@
name = "gl-plugin"
version = "0.3.0"
edition = "2021"
authors = [
"Christian Decker",
"The Greenlight Team"
]
authors = ["Christian Decker", "The Greenlight Team"]
description = "Python bindings for the Greenlight client library."
repository = "https://github.com/Blockstream/greenlight"
license = "MIT"
Expand Down Expand Up @@ -33,17 +30,17 @@ lazy_static = "^1.4.0"
linemux = "0.2"
log = "0.4"
nix = "^0"
prost = "0.11"
prost = "0.12"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1"
sled = "0.34"
thiserror = "1"
tokio = { version = "1", features = ["full"] }
tokio-stream = { version = "0.1", features = ["net"] }
tokio-util = { version = "0.7", features = ["codec"] }
tonic = { version = "^0.8", features = ["tls", "transport"] }
tonic = { version = "0.11", features = ["tls", "transport"] }
tower = { version = "0.4" }
vls-protocol = { workspace = true }

[build-dependencies]
tonic-build = "^0.8"
tonic-build = "0.11"
Loading
Loading