Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
057046f
feat(swift-sdk): add BLAST address sync for iOS (#3079)
QuantumExplorer Mar 17, 2026
a04b890
chore: cargo fmt
QuantumExplorer Mar 17, 2026
eb41d36
merge: resolve conflict with v3.1-dev in CoreWalletManager
QuantumExplorer Mar 17, 2026
e33556c
fix: address CodeRabbit review feedback
QuantumExplorer Mar 17, 2026
04aedca
fix(swift-sdk): validate Core addresses via Rust FFI before parsing
QuantumExplorer Mar 17, 2026
fb93ef8
fix(sdk): fix clippy warning for compacted loop condition
QuantumExplorer Mar 17, 2026
a32e3df
fix: outKeyLen capacity bug and restore compacted catch-up
QuantumExplorer Mar 18, 2026
a97e642
merge: resolve v3.1-dev conflicts and fix optional API changes
QuantumExplorer Mar 18, 2026
bc1720d
fix(rs-sdk-ffi): use Network::Mainnet instead of Network::Dash
QuantumExplorer Mar 18, 2026
6e8cf0c
fix(rs-sdk-ffi): fix clippy needless_range_loop warnings
QuantumExplorer Mar 18, 2026
fc1e8fb
feat(sdk): rewrite incremental catch-up and document sync flow
QuantumExplorer Mar 18, 2026
28c256b
test(drive-abci): add BLAST sync full flow strategy test
QuantumExplorer Mar 18, 2026
f78fef7
fix(test): fix BLAST sync strategy test signer issue
QuantumExplorer Mar 18, 2026
3c4698e
feat(sdk): skip compacted queries via key_exists_as_boundary
QuantumExplorer Mar 18, 2026
5c6052b
fix(swift-sdk): wrap ShieldedPoolClient handle in Sendable wrapper
QuantumExplorer Mar 18, 2026
b282f5a
docs(sdk): add full BLAST sync flowchart to book
QuantumExplorer Mar 18, 2026
73f6bf5
docs(sdk): replace ASCII flowchart with Mermaid diagram
QuantumExplorer Mar 18, 2026
675e53b
ci: add book preview deployment for PRs
QuantumExplorer Mar 18, 2026
c4b10b9
ci: auto-cleanup book preview on PR close/merge
QuantumExplorer Mar 18, 2026
3d5d73c
fix(ci): use artifacts instead of Pages for book PR previews
QuantumExplorer Mar 18, 2026
7c1847f
docs(sdk): improve BLAST sync book with mermaid, privacy, performance
QuantumExplorer Mar 18, 2026
429a8c9
fix(ci): remove nonisolated deinit and add SDK test coverage
QuantumExplorer Mar 18, 2026
ea9f3e3
feat(sdk): implement RangeAfter-based compaction detection
QuantumExplorer Mar 18, 2026
a69150a
fix(swift-sdk): replace Timer with async Task loop for periodic sync
QuantumExplorer Mar 18, 2026
ad080ae
fix(swift-sdk): add Last Recent Block to sync UI for debugging
QuantumExplorer Mar 18, 2026
ccaf832
fix(sdk): revert last_known_recent_block fallback to metadata tip
QuantumExplorer Mar 18, 2026
eda02b1
feat(sdk): add entry count metrics for recent/compacted queries
QuantumExplorer Mar 18, 2026
3510e5c
feat(sdk): skip compacted when recent tree is empty, fix sync loop
QuantumExplorer Mar 18, 2026
934972a
fix(sdk): simplify compacted skip logic
QuantumExplorer Mar 18, 2026
cef977f
docs(sdk): update BLAST sync flowchart and docs for RangeAfter
QuantumExplorer Mar 18, 2026
49fbbb1
fix(swift-sdk): always show Last Recent Block field in sync UI
QuantumExplorer Mar 18, 2026
717e58e
feat(sdk): return GroveDB proof bytes from address sync
QuantumExplorer Mar 18, 2026
5ec3a81
fix(swift-sdk): use onTapGesture for proof detail instead of Navigati…
QuantumExplorer Mar 18, 2026
584a5c2
feat(sdk): add formatted GroveDB proof viewer
QuantumExplorer Mar 18, 2026
1aaaf36
merge: resolve v3.1-dev conflict in CoreContentView
QuantumExplorer Mar 18, 2026
95c0810
feat(sdk): use boundaries() for smarter compaction detection
QuantumExplorer Mar 18, 2026
8dc1714
feat(sdk): simplify compaction detection using boundaries()
QuantumExplorer Mar 18, 2026
778aeb4
feat(sdk): persist platform balances across app launches and reduce s…
QuantumExplorer Mar 20, 2026
7b93f7e
fix(sdk): fix broken compaction tests and add compaction detection co…
QuantumExplorer Mar 20, 2026
f9f9c57
fix(ffi): address review feedback — catch_unwind, expect, checked_mul…
QuantumExplorer Mar 20, 2026
a1fec8b
fix(ffi): use unwrap_or_default for catch_unwind bool result (clippy)
QuantumExplorer Mar 20, 2026
50a201b
test(sdk): improve BLAST address sync test coverage across drive and sdk
QuantumExplorer Mar 20, 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
85 changes: 85 additions & 0 deletions .github/workflows/book-preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Book Preview (PR)

on:
pull_request:
types: [opened, synchronize, reopened]
paths:
- 'book/**'
- '.github/workflows/book-preview.yml'

permissions:
contents: read
pull-requests: write

concurrency:
group: book-preview-${{ github.event.pull_request.number }}
cancel-in-progress: true

jobs:
preview:
name: Build book preview
runs-on: ubuntu-24.04
steps:
- name: Checkout PR
uses: actions/checkout@v4

- name: Install mdBook
run: |
mkdir -p "$HOME/.local/bin"
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.40/mdbook-v0.4.40-x86_64-unknown-linux-gnu.tar.gz \
| tar -xz -C "$HOME/.local/bin"
echo "$HOME/.local/bin" >> "$GITHUB_PATH"

- name: Build book
run: mdbook build book

- name: Upload preview artifact
id: upload
uses: actions/upload-artifact@v4
with:
name: book-preview-pr-${{ github.event.pull_request.number }}
path: book/book
retention-days: 30

- name: Post preview link
uses: actions/github-script@v7
with:
script: |
const prNumber = context.payload.pull_request.number;
const runId = context.runId;
const repoUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}`;
const artifactUrl = `${repoUrl}/actions/runs/${runId}`;

const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
});

const marker = '<!-- book-preview -->';
const existing = comments.find(c => c.body.includes(marker));
const body = [
marker,
`📖 **Book Preview** built successfully.`,
``,
`Download the preview from the [workflow artifacts](${artifactUrl}).`,
`To view locally: download the artifact, unzip, and open \`index.html\`.`,
``,
`_Updated at ${new Date().toISOString()}_`,
].join('\n');

if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: prNumber,
body,
});
}
2 changes: 2 additions & 0 deletions book/book.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,5 @@ build-dir = "book"
default-theme = "navy"
preferred-dark-theme = "navy"
git-repository-url = "https://github.com/dashpay/platform"
additional-js = ["mermaid.min.js", "mermaid-init.js"]

43 changes: 43 additions & 0 deletions book/mermaid-init.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
// Mermaid initialization for mdBook (without preprocessor)
// Converts ```mermaid code blocks into rendered diagrams.
(() => {
const darkThemes = ['ayu', 'navy', 'coal'];
const lightThemes = ['light', 'rust'];

const classList = document.getElementsByTagName('html')[0].classList;

let lastThemeWasLight = true;
for (const cssClass of classList) {
if (darkThemes.includes(cssClass)) {
lastThemeWasLight = false;
break;
}
}

const theme = lastThemeWasLight ? 'default' : 'dark';

// Convert code blocks with language-mermaid into mermaid divs
document.querySelectorAll('pre code.language-mermaid').forEach((codeBlock) => {
const pre = codeBlock.parentElement;
const div = document.createElement('div');
div.className = 'mermaid';
div.textContent = codeBlock.textContent;
pre.parentElement.replaceChild(div, pre);
});

mermaid.initialize({ startOnLoad: true, theme });

// Re-render on theme switch
for (const darkTheme of darkThemes) {
const el = document.getElementById(darkTheme);
if (el) el.addEventListener('click', () => {
if (lastThemeWasLight) window.location.reload();
});
}
for (const lightTheme of lightThemes) {
const el = document.getElementById(lightTheme);
if (el) el.addEventListener('click', () => {
if (!lastThemeWasLight) window.location.reload();
});
}
})();
2,609 changes: 2,609 additions & 0 deletions book/mermaid.min.js

Large diffs are not rendered by default.

Loading
Loading