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
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,4 @@ gimli = "=0.25.0"
object = "=0.26.2"
addr2line = "=0.16.0"
miniz_oxide = "=0.4.4"
unicode_width = "=0.2.1"
35 changes: 34 additions & 1 deletion deterministic-build-wrappers/rustc
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,15 @@
args=("$@")
IS_LIGHTNING=false
SKIP_EMBED_BITCODE=false
MAY_NEED_COMPILER_BUILTINS=false
DEP_PATH=""
for ((i=0; i<"${#args[@]}"; ++i)); do
case ${args[i]} in
--crate-name)
if [ "${args[i+1]}" = "lightning" -o "${args[i+1]}" = "lightning_types" -o "${args[i+1]}" = "lightning_background_processor" -o "${args[i+1]}" = "lightning_invoice" -o "${args[i+1]}" = "lightning_persister" -o "${args[i+1]}" = "lightning_rapid_gossip_sync" -o "${args[i+1]}" = "lightning_liquidity" -o "${args[i+1]}" = "lightning_transaction_sync" -o "${args[i+1]}" = "ldk" ]; then
IS_LIGHTNING=true
elif [ "${args[i+1]}" = "memchr" -o "${args[i+1]}" = "rustc_demangle" -o "${args[i+1]}" = "unwind" ]; then
MAY_NEED_COMPILER_BUILTINS=true
fi
;;
--crate-type)
Expand All @@ -22,6 +26,10 @@ for ((i=0; i<"${#args[@]}"; ++i)); do
SKIP_EMBED_BITCODE=true
fi
;;
--extern)
IFS="=" PAIR=(${args[i+1]})
DEP_PATH="$(dirname ${PAIR[1]})"
;;
esac
done
for ((i=0; i<"${#args[@]}"; ++i)); do
Expand All @@ -44,4 +52,29 @@ for ((i=0; i<"${#args[@]}"; ++i)); do
;;
esac
done
$LDK_RUSTC_PATH "${args[@]}"

# For some reason, sometimes when building with build-std cargo forgets to give crates a path to
# their `compiler_builtin` dependencies. This obviously shouldn't happen but we fix it here.
EXTRA_ARGS=()
if [ "$MAY_NEED_COMPILER_BUILTINS" = "true" ]; then
if [ -z "$DEP_PATH" ]; then
echo "WARNING: Need at least one other dependency to know where to look, build may to fail if cargo is buggy" > /dev/stderr
else
COUNT=0
CB_PATH="$(echo "$DEP_PATH"/libcompiler_builtins-*.rmeta)"
while [ ! -f "$CB_PATH" ]; do
# Wait until compiler_builtins finishes building...
sleep 1
COUNT="$(( $COUNT + 1 ))"
if [ "$COUNT" -gt 120 ]; then
echo "Took too long to get compiler_builtins built" > /dev/stderr
exit 1
fi
CB_PATH="$(echo "$DEP_PATH"/libcompiler_builtins-*.rmeta)"
done
sleep 1
EXTRA_ARGS=("--extern" compiler_builtins="$CB_PATH")
fi
fi

$LDK_RUSTC_PATH "${args[@]}" "${EXTRA_ARGS[@]}"
2 changes: 1 addition & 1 deletion lightning-c-bindings/demo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ int main() {
LDKThirtyTwoBytes chain_tip;
memset(&chain_tip, 0, sizeof(chain_tip)); // channel_open_header's prev_blockhash is all-0s

LDKNetwork network = LDKNetwork_Testnet;
LDKNetwork network = LDKNetwork_Testnet3;

// Trait implementations:
LDKBroadcasterInterface broadcast {
Expand Down
6 changes: 5 additions & 1 deletion lightning-c-bindings/include/lightning.h
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,11 @@ typedef enum LDKNetwork {
/**
* The testnet3 blockchain.
*/
LDKNetwork_Testnet,
LDKNetwork_Testnet3,
/**
* The testnet4 blockchain.
*/
LDKNetwork_Testnet4,
/**
* A local test blockchain.
*/
Expand Down
10 changes: 7 additions & 3 deletions lightning-c-bindings/src/bitcoin/network.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ pub enum Network {
/// The main Bitcoin blockchain.
Bitcoin,
/// The testnet3 blockchain.
Testnet,
Testnet3,
/// The testnet4 blockchain.
Testnet4,
/// A local test blockchain.
Regtest,
/// A blockchain on which blocks are signed instead of mined.
Expand All @@ -19,15 +21,17 @@ impl Network {
pub(crate) fn into_bitcoin(&self) -> BitcoinNetwork {
match self {
Network::Bitcoin => BitcoinNetwork::Bitcoin,
Network::Testnet => BitcoinNetwork::Testnet,
Network::Testnet3 => BitcoinNetwork::Testnet,
Network::Testnet4 => BitcoinNetwork::Testnet4,
Network::Regtest => BitcoinNetwork::Regtest,
Network::Signet => BitcoinNetwork::Signet,
}
}
pub(crate) fn from_bitcoin(net: &BitcoinNetwork) -> Self {
match net {
BitcoinNetwork::Bitcoin => Network::Bitcoin,
BitcoinNetwork::Testnet => Network::Testnet,
BitcoinNetwork::Testnet => Network::Testnet3,
BitcoinNetwork::Testnet4 => Network::Testnet4,
BitcoinNetwork::Regtest => Network::Regtest,
BitcoinNetwork::Signet => Network::Signet,
_ => unreachable!(),
Expand Down
Loading