Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
1c0f53d
chore: migrate rust/basic_bitcoin to icp-cli
marc0olo Jun 16, 2026
ccdf499
chore(rust/basic_bitcoin): test.sh over Makefile, bump CI image to 1.0.1
marc0olo Jun 17, 2026
67462c9
fix(rust/basic_bitcoin): update deps, add Makefile, fix README
marc0olo Jul 7, 2026
ddeeeae
chore: add ic env + build-image.sh to rust/basic_bitcoin
marc0olo Jul 8, 2026
d8b3dc3
fix: add export_candid!() and bump ic-cdk to 0.20.2 in rust/basic_bit…
marc0olo Jul 8, 2026
191952f
fix: import missing types in lib.rs for export_candid!()
marc0olo Jul 8, 2026
fb1fff7
chore: remove Makefile, document topup command in README
marc0olo Jul 8, 2026
570c2e8
fix: expose bitcoind RPC port and align passwords for ord
marc0olo Jul 8, 2026
407d187
docs: rewrite receiving/sending sections as a step-by-step walkthrough
marc0olo Jul 8, 2026
e42a54e
docs: fix expected balance comment (101 blocks × 50 BTC = 505 BTC)
marc0olo Jul 8, 2026
697bddf
docs: point to /inscriptions instead of homepage for ord explorer
marc0olo Jul 8, 2026
bde22c6
docs: use env variables in ordinals/runes/brc-20 walkthroughs
marc0olo Jul 8, 2026
a87f62d
docs: add direct rune URL hint in Etch a Rune section
marc0olo Jul 8, 2026
8dc2338
fix: use turbo: true in etch_rune to bypass name unlock schedule
marc0olo Jul 8, 2026
b37986c
feat(rust/basic_bitcoin): add rune transfer, BRC-20 mint/transfer and…
marc0olo Jul 8, 2026
5c55af4
docs(rust/basic_bitcoin): fix macOS LLVM prerequisite to include PATH…
marc0olo Jul 8, 2026
71a8bdf
docs(rust/basic_bitcoin): restructure Runes into single section with …
marc0olo Jul 8, 2026
6edb7f5
docs(rust/basic_bitcoin): fix rune ID extraction from ord JSON response
marc0olo Jul 8, 2026
1c818a8
fix(rust/basic_bitcoin): use 12-char rune name to avoid unlock height…
marc0olo Jul 8, 2026
40fb631
fix(rust/basic_bitcoin): correct BRC-20 content type and rune name le…
marc0olo Jul 8, 2026
38f55cf
fix(rust/basic_bitcoin): store ord index in project directory
marc0olo Jul 8, 2026
2927358
fix(rust/basic_bitcoin): use ord-db/ as named data directory
marc0olo Jul 8, 2026
b30c7a6
fix(rust/basic_bitcoin): correct rune name BASICBITCOINSS→BASICBITCOINS
marc0olo Jul 8, 2026
d1536ff
feat(rust/basic_bitcoin): add Ordinals/Runes/BRC-20 asset protocol su…
marc0olo Jul 9, 2026
b9d7f4e
fix(rust/basic_bitcoin): final review corrections
marc0olo Jul 9, 2026
ba2683d
fix(rust/basic_bitcoin): address Copilot review feedback
marc0olo Jul 9, 2026
f5d0b51
fix(rust/basic_bitcoin): fix IC sync polling in test.sh
marc0olo Jul 9, 2026
849bd1e
fix(rust/basic_bitcoin): poll get_utxos for IC sync detection
marc0olo Jul 9, 2026
8467e87
fix(rust/basic_bitcoin): use test_key_1 for regtest instead of dfx_te…
marc0olo Jul 9, 2026
d5746d1
chore(rust/basic_bitcoin): drop Bitcoin asset protocols
marc0olo Jul 10, 2026
930c4f3
chore(rust/basic_bitcoin): restore SelectUtxosMode and select_one_utxo
marc0olo Jul 10, 2026
292e35a
test(rust/basic_bitcoin): add unit tests for UTXO selection modes
marc0olo Jul 10, 2026
e990939
chore: merge master into chore/migrate-rust-basic-bitcoin-to-icp-cli
marc0olo Jul 10, 2026
35b5401
docs(basic_bitcoin): remove Ordinals reference from SelectUtxosMode::…
marc0olo Jul 10, 2026
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
36 changes: 36 additions & 0 deletions .github/workflows/basic_bitcoin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
pull_request:
paths:
- motoko/basic_bitcoin/**
- rust/basic_bitcoin/**
- .github/workflows/basic_bitcoin.yml

concurrency:
Expand Down Expand Up @@ -41,3 +42,38 @@ jobs:
icp network start -d
icp deploy --cycles 30t
bash test.sh

rust-basic_bitcoin:
# Run directly on the host (no container:) so that icp-cli can bind-mount
# the status directory into our custom Docker image. When icp-cli runs inside
# a container, the tmpdir it creates is invisible to the host Docker daemon.
runs-on: ubuntu-24.04
env:
ICP_CLI_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Install icp-cli and ic-wasm
run: npm install -g @icp-sdk/icp-cli @icp-sdk/ic-wasm
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown
- name: Install candid-extractor
run: cargo install --locked candid-extractor
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
- name: Build network launcher image
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
with:
context: rust/basic_bitcoin
push: false
load: true
tags: icp-cli-network-launcher-bitcoin:latest
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Deploy and test
working-directory: rust/basic_bitcoin
run: |
icp network start -d
icp deploy --cycles 30t
bash test.sh
3 changes: 3 additions & 0 deletions rust/basic_bitcoin/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,7 @@ target/
# bitcoin
bitcoin_data

# ord
ord-db/

canister_ids.json
36 changes: 17 additions & 19 deletions rust/basic_bitcoin/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 3 additions & 20 deletions rust/basic_bitcoin/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,20 +1,3 @@
[package]
name = "basic_bitcoin"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[lib]
crate-type = ["cdylib"]

[dependencies]
hex = "0.4.3"
bitcoin = "0.32.7"
candid = "0.10.19"
ic-cdk = "0.20.0"
ic-cdk-bitcoin-canister = "0.2"
ic-cdk-management-canister = "0.1"
serde = "1.0.132"
serde_bytes = "0.11.15"
leb128 = "0.2.5"
[workspace]
members = ["backend"]
resolver = "2"
32 changes: 32 additions & 0 deletions rust/basic_bitcoin/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Always use the latest network launcher image
# Before building we must pull to pick up new releases
# For real world usage, consider pinning the version instead of using :latest
FROM ghcr.io/dfinity/icp-cli-network-launcher:latest

ARG TARGETARCH
ARG BITCOIN_VERSION=27.2

RUN apt-get update && apt-get install -y --no-install-recommends curl && \
case "${TARGETARCH}" in \
"amd64") \
BITCOIN_TARBALL="bitcoin-${BITCOIN_VERSION}-x86_64-linux-gnu.tar.gz" ; \
BITCOIN_SHA256="acc223af46c178064c132b235392476f66d486453ddbd6bca6f1f8411547da78" ;; \
"arm64") \
BITCOIN_TARBALL="bitcoin-${BITCOIN_VERSION}-aarch64-linux-gnu.tar.gz" ; \
BITCOIN_SHA256="154c9b9e6e17136edc8f20fda5d252fb339e727e4a85ef49e7d8facb9085f2d3" ;; \
*) echo "Unsupported architecture: ${TARGETARCH}" && exit 1 ;; \
esac && \
curl -fsSL "https://bitcoincore.org/bin/bitcoin-core-${BITCOIN_VERSION}/${BITCOIN_TARBALL}" \
-o /tmp/bitcoin.tar.gz && \
echo "${BITCOIN_SHA256} /tmp/bitcoin.tar.gz" | sha256sum -c && \
tar xzf /tmp/bitcoin.tar.gz --strip-components=2 \
-C /usr/local/bin \
"bitcoin-${BITCOIN_VERSION}/bin/bitcoind" \
"bitcoin-${BITCOIN_VERSION}/bin/bitcoin-cli" && \
rm /tmp/bitcoin.tar.gz && \
apt-get purge -y curl && apt-get autoremove -y && rm -rf /var/lib/apt/lists/*

COPY docker/start.sh /app/start.sh
RUN chmod +x /app/start.sh

ENTRYPOINT ["/app/start.sh"]
42 changes: 0 additions & 42 deletions rust/basic_bitcoin/Makefile

This file was deleted.

Loading
Loading