diff --git a/Cargo.lock b/Cargo.lock
index 6d6779d..c9ecfd6 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -571,9 +571,9 @@ checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
[[package]]
name = "hex-conservative"
-version = "0.1.1"
+version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ed443af458ccb6d81c1e7e661545f94d3176752fb1df2f543b902a1e0f51e2"
+checksum = "212ab92002354b4819390025006c897e8140934349e8635c9b077f47b4dcbd20"
[[package]]
name = "hex-conservative"
@@ -934,9 +934,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "miniscript"
-version = "12.2.0"
+version = "12.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "add2d4aee30e4291ce5cffa3a322e441ff4d4bc57b38c8d9bf0e94faa50ab626"
+checksum = "487906208f38448e186e3deb02f2b8ef046a9078b0de00bdb28bf4fb9b76951c"
dependencies = [
"bech32",
"bitcoin",
@@ -1547,12 +1547,12 @@ dependencies = [
[[package]]
name = "simfony"
version = "0.1.0"
-source = "git+https://github.com/uncomputable/simfony?rev=d5284014e9f67593e50b272f1f676ea8d09f6ec8#d5284014e9f67593e50b272f1f676ea8d09f6ec8"
+source = "git+https://github.com/BlockstreamResearch/simplicityhl?rev=d5284014e9f67593e50b272f1f676ea8d09f6ec8#d5284014e9f67593e50b272f1f676ea8d09f6ec8"
dependencies = [
"base64 0.21.7",
"either",
"getrandom",
- "hex-conservative 0.1.1",
+ "hex-conservative 0.1.2",
"itertools 0.13.0",
"miniscript",
"pest",
@@ -1570,7 +1570,7 @@ dependencies = [
"byteorder",
"elements",
"getrandom",
- "hex-conservative 0.1.1",
+ "hex-conservative 0.1.2",
"miniscript",
"santiago",
"simplicity-sys",
diff --git a/Cargo.toml b/Cargo.toml
index 0c1e8f9..3ea21ad 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,13 +14,18 @@ lib-profile-release = "wasm-release"
[dependencies]
itertools = "0.13.0"
-simfony = { git = "https://github.com/uncomputable/simfony", rev = "d5284014e9f67593e50b272f1f676ea8d09f6ec8" }
+#simplicityhl = "0.2.0"
+simplicityhl = { package = "simfony", git = "https://github.com/BlockstreamResearch/simplicityhl", rev = "d5284014e9f67593e50b272f1f676ea8d09f6ec8" }
leptos = { version = "0.6.14", features = ["csr"] }
leptos_router = { version = "0.6.15", features = ["csr"] }
console_error_panic_hook = "0.1.7"
hex-conservative = "0.2.1"
js-sys = "0.3.70"
-web-sys = { version = "0.3.70", features = ["Navigator", "Clipboard", "Storage"] }
+web-sys = { version = "0.3.70", features = [
+ "Navigator",
+ "Clipboard",
+ "Storage",
+] }
wasm-bindgen-futures = "0.4.43"
gloo-timers = { version = "0.3.0", features = ["futures"] }
gloo-net = "0.6.0"
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..a71c86e
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,53 @@
+# Stage 1: Builder
+# This stage installs all dependencies and builds the application.
+FROM debian:bookworm-slim AS builder
+
+# Install essential build tools, clang, and nodejs for sass
+RUN apt-get update && \
+ apt-get install -y --no-install-recommends \
+ build-essential \
+ clang-16 \
+ llvm-16 \
+ curl \
+ pkg-config \
+ libssl-dev \
+ ca-certificates \
+ nodejs \
+ npm && \
+ rm -rf /var/lib/apt/lists/*
+
+# Install Rust and the wasm32 target
+ENV RUSTUP_HOME=/usr/local/rustup \
+ CARGO_HOME=/usr/local/cargo \
+ PATH=/usr/local/cargo/bin:$PATH
+RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable && \
+ rustup target add wasm32-unknown-unknown
+
+# Install Trunk and Dart Sass
+RUN cargo install trunk && \
+ npm install -g sass
+
+# Set environment variables for the Wasm C compiler, mimicking the Nix setup.
+# This tells Rust's build scripts to use clang-16 when compiling C code for Wasm.
+ENV CC_wasm32_unknown_unknown=clang-16
+ENV AR_wasm32_unknown_unknown=llvm-ar-16
+ENV CFLAGS_wasm32_unknown_unknown="-I/usr/lib/clang/16/include"
+
+# Copy the application source code
+WORKDIR /app
+COPY . .
+
+# Build the application
+RUN trunk build --release && \
+ sh fix-links.sh
+
+# Stage 2: Final Image
+# This stage creates a minimal image to serve the built static files.
+FROM nginx:1.27-alpine-slim
+
+# Copy the built assets from the builder stage
+COPY --from=builder /app/dist /usr/share/nginx/html
+
+# Expose port 80 and start Nginx
+EXPOSE 80
+CMD ["nginx", "-g", "daemon off;"]
\ No newline at end of file
diff --git a/README.md b/README.md
index f1a769f..dc67bfa 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,26 @@
-# Simfony Web IDE
+# SimplicityHL Web IDE
-[Simfony](https://github.com/BlockstreamResearch/simfony) is a high-level language for writing Bitcoin smart contracts.
+[SimplicityHL](https://github.com/BlockstreamResearch/simplicityhl) is a high-level language for writing Bitcoin smart contracts.
-Simfony looks and feels like [Rust](https://www.rust-lang.org). Just how Rust compiles down to assembly language, Simfony compiles down to Simplicity bytecode. Developers write Simfony, full nodes execute Simplicity.
+SimplicityHL looks and feels like [Rust](https://www.rust-lang.org). Just how Rust compiles down to assembly language, SimplicityHL compiles down to Simplicity bytecode. Developers write SimplicityHL, full nodes execute Simplicity.
-[A live demo is running on GitHub pages](https://simfony.dev).
+[A live demo is running](https://ide.simplicity-lang.org).
## Develop the project
-### Install dependencies
+### Using Docker
+
+Build
+```
+docker build -t simplicity-webide .
+```
+
+Run and naviate to `http://localhost:8080` in your web browser.
+```
+docker run -p 8080:80 simplicity-webide
+```
+
+### Using Nix
First install nix.
diff --git a/doc/README.md b/doc/README.md
index 540ae9a..f9f5303 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -1,16 +1,16 @@
# How to make a transaction using the web IDE
-The Simfony web IDE can only make a restricted form of transaction: There is 1 transaction input, 1 transaction output and 1 fee output _(Liquid has explicit fee outputs)_. Confidential transactions or assets other than Bitcoin are not supported.
+The SimplicityHL web IDE can only make a restricted form of transaction: There is 1 transaction input, 1 transaction output and 1 fee output _(Liquid has explicit fee outputs)_. Confidential transactions or assets other than Bitcoin are not supported.
-
+
## Write the main function
-Open [the Simfony web IDE](https://simfony.dev/) and write the main function of your program.
+Open [the SimplicityHL web IDE](https://ide.simplicity-lang.org/) and write the main function of your program.
_You can leave the default main function as it is. Customize it if you want._
-
+
## Generate an address
@@ -18,27 +18,27 @@ Click the "Address" button to copy the address of your program to the clipboard.
Leave the web IDE tab open. You will need it later.
-
+
## Fund the address
Paste the address into [the Liquid testnet faucet](https://liquidtestnet.com/faucet) and press the "Send assets" button.
-
+
Copy the ID of the funding transaction to your clipboard.
-
+
## Look up the funding transaction
Paste the ID of the funding transaction into the [Blockstream Explorer for Liquid testnet](https://blockstream.info/liquidtestnet/).
-
+
-Scroll down and find the Simfony UTXO. The Liquid testnet faucet always sends 100000 tL-BTC. In our example, the Simfony UTXO is vout = 1.
+Scroll down and find the SimplicityHL UTXO. The Liquid testnet faucet always sends 100000 tL-BTC. In our example, the SimplicityHL UTXO is vout = 1.
-
+
## Enter UTXO data into the web IDE
@@ -46,31 +46,31 @@ Enter the ID of the funding transaction and the vout into the web IDE.
_You can leave the remaining fields as they are. Feel free to customize._
-
+
## Sign the spending transaction
-Click the "Sig 0" button to generate a signature for a transaction that spends the Simfony UTXO.
+Click the "Sig 0" button to generate a signature for a transaction that spends the SimplicityHL UTXO.
-
+
Paste the signature into the `mod witness {...}` section.
-
+
## Generate the spending transaction
Click the "Transaction" button to copy the spending transaction to your clipboard.
-
+
## Broadcast the spending transaction
Paste the spending transaction into the [Blockstream Liquid testnet explorer](https://blockstream.info/liquidtestnet/tx/push) and click the "Broadcast transaction" button.
-
+
-If everything worked, the explorer will open the broadcast transaction. In this case, congratulations, you made a Simfony transaction on Liquid testnet!!! You can also look up your transaction on [mempool.space](https://liquid.network/testnet).
+If everything worked, the explorer will open the broadcast transaction. In this case, congratulations, you made a SimplicityHL transaction on Liquid testnet!!! You can also look up your transaction on [mempool.space](https://liquid.network/testnet).
If you see an error message, take a look at the following "Troubleshooting" section.
@@ -126,7 +126,7 @@ The fee consumes the entire input value. Decrease the fee.
A Simplicity jet fails.
-Double-check the conditions that your Simfony program enforces. Update the witness data or transaction parameters.
+Double-check the conditions that your SimplicityHL program enforces. Update the witness data or transaction parameters.
Every time you change the transaction parameters, the signature hash of the transaction changes. In this case, you need to **regenerate signatures** using the "Key Store" tab.
diff --git a/src/components/footer.rs b/src/components/footer.rs
index 9164ef0..7136476 100644
--- a/src/components/footer.rs
+++ b/src/components/footer.rs
@@ -39,7 +39,7 @@ pub fn Footer() -> impl IntoView {
-
+
diff --git a/src/components/merkle.rs b/src/components/merkle.rs
index 44d61e4..ed4acb1 100644
--- a/src/components/merkle.rs
+++ b/src/components/merkle.rs
@@ -2,7 +2,7 @@ use std::sync::Arc;
use js_sys::{Array, Object};
use leptos::*;
-use simfony::simplicity;
+use simplicityhl::simplicity;
use simplicity::dag::DagLike;
use simplicity::dag::NoSharing;
use simplicity::node;
diff --git a/src/components/navigation.rs b/src/components/navigation.rs
index a4fe5cc..1ccccac 100644
--- a/src/components/navigation.rs
+++ b/src/components/navigation.rs
@@ -58,7 +58,7 @@ pub fn Navigation() -> impl IntoView {