Skip to content

Commit 4632a64

Browse files
committed
Temp
1 parent afbc5b2 commit 4632a64

File tree

11 files changed

+230
-45
lines changed

11 files changed

+230
-45
lines changed

.dockerignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/target
2+
*.db
3+
*.DS_Store

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
/target
22
*.db
3-
*.key
4-
*.crt
53
*.DS_Store

Cargo.lock

Lines changed: 11 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ xchdev-db = { path = "crates/db" }
88
xchdev-parser = { path = "crates/parser" }
99
xchdev-types = { path = "crates/types" }
1010

11-
chia-wallet-sdk = { path = "../wallet-sdk" }
11+
chia-wallet-sdk = { git = "https://github.com/xch-dev/chia-wallet-sdk" }
1212
chia = "0.26.0"
1313
clvmr = "0.14.0"
1414

docker/api/Dockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM rust:1.88.0 AS builder
2+
WORKDIR /usr/src/xchdev-api
3+
RUN apt-get update && apt-get install -y libclang-dev
4+
COPY . .
5+
RUN cargo install --path crates/api
6+
7+
FROM debian:bookworm-slim
8+
RUN apt-get update && apt-get install -y libssl3 && rm -rf /var/lib/apt/lists/*
9+
COPY --from=builder /usr/local/cargo/bin/xchdev-api /usr/local/bin/xchdev-api
10+
CMD ["xchdev-api"]

explorer/src/App.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
Route,
55
RouterProvider,
66
} from 'react-router-dom';
7+
import { CoinsetProvider } from './contexts/CoinsetContext';
78
import { DarkModeProvider } from './contexts/DarkModeContext';
89
import { DexieProvider } from './contexts/DexieContext';
910
import { MintGardenProvider } from './contexts/MintGardenContext';
@@ -27,11 +28,13 @@ const router = createBrowserRouter(
2728
export default function App() {
2829
return (
2930
<DarkModeProvider>
30-
<DexieProvider>
31-
<MintGardenProvider>
32-
<RouterProvider router={router} />
33-
</MintGardenProvider>
34-
</DexieProvider>
31+
<CoinsetProvider>
32+
<DexieProvider>
33+
<MintGardenProvider>
34+
<RouterProvider router={router} />
35+
</MintGardenProvider>
36+
</DexieProvider>
37+
</CoinsetProvider>
3538
</DarkModeProvider>
3639
);
3740
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { CoinsetClient } from 'chia-wallet-sdk-wasm';
2+
import {
3+
createContext,
4+
useEffect,
5+
useMemo,
6+
useState,
7+
type ReactNode,
8+
} from 'react';
9+
10+
export interface CoinsetContextType {
11+
client: CoinsetClient;
12+
peak: number;
13+
}
14+
15+
// eslint-disable-next-line react-refresh/only-export-components
16+
export const CoinsetContext = createContext<CoinsetContextType | undefined>(
17+
undefined,
18+
);
19+
20+
export function CoinsetProvider({ children }: { children: ReactNode }) {
21+
const [peak, setPeak] = useState(0);
22+
23+
const client = useMemo(() => {
24+
return CoinsetClient.mainnet();
25+
}, []);
26+
27+
useEffect(() => {
28+
client.getBlockchainState().then((data) => {
29+
setPeak(data.blockchainState?.peak.height ?? 0);
30+
});
31+
}, [client]);
32+
33+
useEffect(() => {
34+
const websocket = new WebSocket('wss://api.coinset.org/ws');
35+
36+
websocket.onmessage = (event) => {
37+
const message = JSON.parse(event.data);
38+
switch (message.type) {
39+
case 'peak':
40+
setPeak(message.data.height);
41+
break;
42+
}
43+
};
44+
45+
return () => {
46+
websocket.close();
47+
};
48+
}, []);
49+
50+
return (
51+
<CoinsetContext.Provider value={{ client, peak }}>
52+
{children}
53+
</CoinsetContext.Provider>
54+
);
55+
}

explorer/src/hooks/useCoinset.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { CoinsetContext } from '@/contexts/CoinsetContext';
2+
import { useContext } from 'react';
3+
4+
export function useCoinset() {
5+
const context = useContext(CoinsetContext);
6+
7+
if (!context) {
8+
throw new Error('useCoinset must be used within a CoinsetProvider');
9+
}
10+
11+
return context;
12+
}

explorer/src/lib/parser/coinSpend.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export function parseCoinSpend(
5151
condition.parseAssertMyBirthHeight() ??
5252
condition.parseAssertMyBirthSeconds() ??
5353
condition.parseAssertEphemeral() ??
54-
condition.parseAggSigPuzzle() ??
54+
condition.parseAggSigMe() ??
5555
condition.parseAggSigParent() ??
5656
condition.parseAggSigParentAmount() ??
5757
condition.parseAggSigParentPuzzle() ??

0 commit comments

Comments
 (0)