@meteraprotocol/minute-markets-sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,196 @@
1
+ export type MinuteMarketsThemeMode = 'dark' | 'light';
2
+ export interface MinuteMarketsTheme {
3
+ mode?: MinuteMarketsThemeMode;
4
+ primaryColor?: string;
5
+ accentColor?: string;
6
+ upColor?: string;
7
+ downColor?: string;
8
+ backgroundColor?: string;
9
+ surfaceColor?: string;
10
+ textColor?: string;
11
+ mutedTextColor?: string;
12
+ borderColor?: string;
13
+ borderRadius?: string;
14
+ fontFamily?: string;
15
+ maxWidth?: string;
16
+ controlHeight?: string;
17
+ logoUrl?: string;
18
+ assetIconUrl?: string;
19
+ density?: 'comfortable' | 'compact';
20
+ }
21
+ export type MinuteMarketsEvent = {
22
+ name: 'widget_loaded';
23
+ } | {
24
+ name: 'wallet_connected';
25
+ walletName: string;
26
+ networkId: number;
27
+ } | {
28
+ name: 'wallet_disconnected';
29
+ } | {
30
+ name: 'wallet_connection_failed';
31
+ message: string;
32
+ } | {
33
+ name: 'position_selected';
34
+ side: 'HIGHER' | 'LOWER';
35
+ marketId: number;
36
+ } | {
37
+ name: 'trade_submitted';
38
+ draftId: string;
39
+ txHash: string;
40
+ } | {
41
+ name: 'trade_confirmed';
42
+ draftId: string;
43
+ txHash: string;
44
+ } | {
45
+ name: 'trade_failed';
46
+ message: string;
47
+ } | {
48
+ name: 'eligibility_blocked';
49
+ reason: string;
50
+ };
51
+ export interface MinuteMarketsError {
52
+ code: string;
53
+ message: string;
54
+ }
55
+ export type MinuteMarketsMarketKey = 'ADA';
56
+ export type MinuteMarketsMarketAsset = 'ADA';
57
+ export interface MinuteMarketsMarketInfo {
58
+ key: MinuteMarketsMarketKey;
59
+ asset: MinuteMarketsMarketAsset;
60
+ pairLabel: string;
61
+ priceDecimals: number;
62
+ }
63
+ export interface MinuteMarketsBootstrap {
64
+ sdkApiVersion: string;
65
+ partner: {
66
+ partnerId: string;
67
+ displayName: string;
68
+ };
69
+ capabilities: {
70
+ markets: MinuteMarketsMarketKey[];
71
+ tradingEnabled: boolean;
72
+ tradingDisabledReason: string | null;
73
+ positionsEnabled: boolean;
74
+ cancellationEnabled: boolean;
75
+ };
76
+ market: MinuteMarketsMarketInfo & {
77
+ cycleMs: number;
78
+ minimumStakeLovelace: number;
79
+ };
80
+ network: 'preprod' | 'mainnet';
81
+ terms: {
82
+ version: string;
83
+ url: string;
84
+ };
85
+ branding: {
86
+ attributionRequired: true;
87
+ attributionLabel: string;
88
+ attributionUrl: string;
89
+ };
90
+ }
91
+ export interface MinuteMarketsPoolTotals {
92
+ totalStake: number;
93
+ totalUpStake: number;
94
+ totalDownStake: number;
95
+ }
96
+ export interface MinuteMarketsMarketSnapshot {
97
+ market: MinuteMarketsMarketInfo;
98
+ serverNow: number;
99
+ txTime: number;
100
+ price: {
101
+ value: number;
102
+ source: string;
103
+ timestamp: string;
104
+ };
105
+ open: MinuteMarketsPoolTotals & {
106
+ id: number;
107
+ state: 'OPEN';
108
+ pair: string;
109
+ currentPrice: number;
110
+ };
111
+ live: MinuteMarketsPoolTotals & {
112
+ id: number;
113
+ state: 'LIVE';
114
+ pair: string;
115
+ currentPrice: number;
116
+ lockPrice: number;
117
+ };
118
+ recent: Array<MinuteMarketsPoolTotals & {
119
+ id: number;
120
+ state: 'EXPIRED';
121
+ pair: string;
122
+ openPrice: number;
123
+ endPrice: number;
124
+ winner: 'UP' | 'DOWN' | 'HOUSE' | 'REFUND';
125
+ winnerOdds: number;
126
+ txTime: string;
127
+ }>;
128
+ }
129
+ export interface MinuteMarketsTradeOrder {
130
+ id: string;
131
+ market: MinuteMarketsMarketKey;
132
+ marketId: number;
133
+ position: 'UP' | 'DOWN';
134
+ amountLovelace: number;
135
+ status: 'DRAFTED' | 'SUBMITTED' | 'CONFIRMED' | 'FAILED' | 'EXPIRED';
136
+ txHash: string | null;
137
+ createdAt: string;
138
+ expiresAt: string;
139
+ submittedAt: string | null;
140
+ confirmedAt: string | null;
141
+ }
142
+ export interface DetectedCardanoWallet {
143
+ key: string;
144
+ name: string;
145
+ icon?: string;
146
+ }
147
+ /**
148
+ * Structural subset of Mesh's IWallet / CIP-30 BrowserWallet API.
149
+ * Hosts may pass an existing Mesh wallet without adding Mesh as an SDK dependency.
150
+ */
151
+ export interface MinuteMarketsWalletApi {
152
+ getNetworkId(): Promise<number>;
153
+ getChangeAddress(): Promise<string>;
154
+ getBalanceLovelace?(): Promise<number | null>;
155
+ getUtxos(): Promise<unknown[]>;
156
+ getCollateral?(): Promise<unknown[]>;
157
+ signMessage(message: string, address: string): Promise<{
158
+ key: string;
159
+ signature: string;
160
+ }>;
161
+ signTx(unsignedTx: string): Promise<string>;
162
+ submitTx(signedTx: string): Promise<string>;
163
+ signTxResultType?: 'full_tx' | 'witness_set';
164
+ }
165
+ export interface MinuteMarketsWalletAdapter {
166
+ name: string;
167
+ api: MinuteMarketsWalletApi;
168
+ disconnect?(): void | Promise<void>;
169
+ }
170
+ export interface MinuteMarketsWalletState {
171
+ availableWallets: DetectedCardanoWallet[];
172
+ connected: boolean;
173
+ walletName: string | null;
174
+ networkId: number | null;
175
+ balanceLovelace: number | null;
176
+ source: 'injected' | 'host' | null;
177
+ error: string | null;
178
+ }
179
+ export interface MinuteMarketsWidgetState {
180
+ bootstrap: MinuteMarketsBootstrap | null;
181
+ market: MinuteMarketsMarketSnapshot | null;
182
+ wallet: MinuteMarketsWalletState;
183
+ isLoading: boolean;
184
+ error: MinuteMarketsError | null;
185
+ trade: {
186
+ status: 'IDLE' | 'CHECKING_ELIGIBILITY' | 'ACCEPTING_TERMS' | 'DRAFTING' | 'SIGNING' | 'SUBMITTED' | 'CONFIRMED' | 'FAILED';
187
+ txHash: string | null;
188
+ message: string | null;
189
+ };
190
+ orders: {
191
+ items: MinuteMarketsTradeOrder[];
192
+ isLoading: boolean;
193
+ error: string | null;
194
+ };
195
+ }
196
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,35 @@
1
+ import type { MinuteMarketsWalletAdapter, MinuteMarketsWalletApi } from './types.js';
2
+ export declare const parseCip30BalanceLovelace: (valueCborHex: string | null | undefined) => number | null;
3
+ export interface MeshLikeWallet {
4
+ getNetworkId(): Promise<number>;
5
+ getChangeAddress(): Promise<string>;
6
+ getBalanceLovelace?(): Promise<number | null>;
7
+ getUtxos(): Promise<unknown[]>;
8
+ getCollateral?(): Promise<unknown[]>;
9
+ signData(message: string, address?: string): Promise<{
10
+ key: string;
11
+ signature: string;
12
+ }>;
13
+ signTx(unsignedTx: string): Promise<string>;
14
+ submitTx(signedTx: string): Promise<string>;
15
+ }
16
+ export declare const createMeshWalletAdapter: (name: string, wallet: MeshLikeWallet, disconnect?: () => void | Promise<void>) => MinuteMarketsWalletAdapter;
17
+ export declare const createBrowserWalletApi: (wallet: MeshLikeWallet) => MinuteMarketsWalletApi;
18
+ export interface Cip30WalletApi {
19
+ getNetworkId(): Promise<number>;
20
+ getChangeAddress(): Promise<string>;
21
+ getBalance?(): Promise<string | undefined>;
22
+ getUtxos(): Promise<string[] | undefined>;
23
+ getCollateral?(): Promise<string[] | undefined>;
24
+ experimental?: {
25
+ getCollateral?(): Promise<string[] | undefined>;
26
+ };
27
+ signData(address: string, payload: string): Promise<{
28
+ key: string;
29
+ signature: string;
30
+ }>;
31
+ signTx(unsignedTx: string, partialSign: boolean): Promise<string>;
32
+ submitTx(signedTx: string): Promise<string>;
33
+ }
34
+ export declare const createCip30WalletApi: (wallet: Cip30WalletApi) => MinuteMarketsWalletApi;
35
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAoCrF,eAAO,MAAM,yBAAyB,GAAI,cAAc,MAAM,GAAG,IAAI,GAAG,SAAS,kBAWhF,CAAC;AAiBF,MAAM,WAAW,cAAc;IAC7B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,kBAAkB,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9C,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC/B,aAAa,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzF,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,uBAAuB,GAClC,MAAM,MAAM,EACZ,QAAQ,cAAc,EACtB,aAAa,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KACtC,0BAiBD,CAAC;AAEH,eAAO,MAAM,sBAAsB,GAAI,QAAQ,cAAc,KAAG,sBACT,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,UAAU,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAC1C,aAAa,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE;QAAE,aAAa,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxF,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7C;AAED,eAAO,MAAM,oBAAoB,GAAI,QAAQ,cAAc,KAAG,sBAW5D,CAAC"}
package/dist/wallet.js ADDED
@@ -0,0 +1,86 @@
1
+ const utf8ToHex = (value) => Array.from(new TextEncoder().encode(value))
2
+ .map((byte) => byte.toString(16).padStart(2, '0'))
3
+ .join('');
4
+ const toSafeNumber = (value) => value <= BigInt(Number.MAX_SAFE_INTEGER) ? Number(value) : null;
5
+ const readCborByte = (hex, offset) => offset + 2 <= hex.length ? Number.parseInt(hex.slice(offset, offset + 2), 16) : null;
6
+ const readCborUintArgument = (hex, offset, additional) => {
7
+ if (additional < 24)
8
+ return { value: BigInt(additional), offset };
9
+ const byteLengthByAdditional = { 24: 1, 25: 2, 26: 4, 27: 8 };
10
+ const byteLength = byteLengthByAdditional[additional];
11
+ if (!byteLength || offset + byteLength * 2 > hex.length)
12
+ return null;
13
+ return {
14
+ value: BigInt(`0x${hex.slice(offset, offset + byteLength * 2)}`),
15
+ offset: offset + byteLength * 2,
16
+ };
17
+ };
18
+ const readCborUnsigned = (hex, offset) => {
19
+ const initial = readCborByte(hex, offset);
20
+ if (initial === null || initial >> 5 !== 0)
21
+ return null;
22
+ return readCborUintArgument(hex, offset + 2, initial & 0x1f);
23
+ };
24
+ const readCborArrayLength = (hex, offset) => {
25
+ const initial = readCborByte(hex, offset);
26
+ if (initial === null || initial >> 5 !== 4)
27
+ return null;
28
+ return readCborUintArgument(hex, offset + 2, initial & 0x1f);
29
+ };
30
+ export const parseCip30BalanceLovelace = (valueCborHex) => {
31
+ if (!valueCborHex || !/^[0-9a-f]+$/i.test(valueCborHex))
32
+ return null;
33
+ const directCoin = readCborUnsigned(valueCborHex, 0);
34
+ if (directCoin)
35
+ return toSafeNumber(directCoin.value);
36
+ const arrayLength = readCborArrayLength(valueCborHex, 0);
37
+ if (!arrayLength || arrayLength.value < 1n)
38
+ return null;
39
+ const coin = readCborUnsigned(valueCborHex, arrayLength.offset);
40
+ return coin ? toSafeNumber(coin.value) : null;
41
+ };
42
+ const getUtxoLovelace = (value) => {
43
+ const utxo = value;
44
+ const lovelace = utxo.output?.amount?.find((asset) => asset.unit === 'lovelace')?.quantity;
45
+ if (typeof lovelace === 'bigint')
46
+ return toSafeNumber(lovelace) ?? 0;
47
+ if (typeof lovelace === 'number')
48
+ return Number.isFinite(lovelace) ? lovelace : 0;
49
+ if (typeof lovelace === 'string') {
50
+ const parsed = Number(lovelace);
51
+ return Number.isFinite(parsed) ? parsed : 0;
52
+ }
53
+ return 0;
54
+ };
55
+ const sumUtxoLovelace = (utxos) => utxos.reduce((total, utxo) => total + getUtxoLovelace(utxo), 0);
56
+ export const createMeshWalletAdapter = (name, wallet, disconnect) => ({
57
+ name,
58
+ api: {
59
+ getNetworkId: () => wallet.getNetworkId(),
60
+ getChangeAddress: () => wallet.getChangeAddress(),
61
+ getBalanceLovelace: async () => {
62
+ const balance = await wallet.getBalanceLovelace?.();
63
+ return balance ?? sumUtxoLovelace(await wallet.getUtxos());
64
+ },
65
+ getUtxos: () => wallet.getUtxos(),
66
+ getCollateral: wallet.getCollateral ? () => wallet.getCollateral() : undefined,
67
+ signMessage: (message, address) => wallet.signData(message, address),
68
+ signTx: (unsignedTx) => wallet.signTx(unsignedTx),
69
+ submitTx: (signedTx) => wallet.submitTx(signedTx),
70
+ signTxResultType: 'full_tx',
71
+ },
72
+ disconnect,
73
+ });
74
+ export const createBrowserWalletApi = (wallet) => createMeshWalletAdapter('Browser wallet', wallet).api;
75
+ export const createCip30WalletApi = (wallet) => ({
76
+ getNetworkId: () => wallet.getNetworkId(),
77
+ getChangeAddress: () => wallet.getChangeAddress(),
78
+ getBalanceLovelace: async () => parseCip30BalanceLovelace(await wallet.getBalance?.()),
79
+ getUtxos: async () => await wallet.getUtxos() ?? [],
80
+ getCollateral: async () => await wallet.getCollateral?.() ?? await wallet.experimental?.getCollateral?.() ?? [],
81
+ signMessage: (message, address) => wallet.signData(address, utf8ToHex(message)),
82
+ signTx: (unsignedTx) => wallet.signTx(unsignedTx, false),
83
+ submitTx: (signedTx) => wallet.submitTx(signedTx),
84
+ signTxResultType: 'witness_set',
85
+ });
86
+ //# sourceMappingURL=wallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.js","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { MinuteMarketsMarketKey } from './types.js';
2
+ export interface MinuteMarketsTradeWidgetProps {
3
+ market?: MinuteMarketsMarketKey;
4
+ variant?: 'standard' | 'compact';
5
+ minAda?: number;
6
+ maxAda?: number;
7
+ stepAda?: number;
8
+ showOrders?: boolean;
9
+ className?: string;
10
+ }
11
+ export declare function MinuteMarketsTradeWidget({ market, variant, minAda, maxAda, stepAda, showOrders, className, }: MinuteMarketsTradeWidgetProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=widget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,sBAAsB,EAEvB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,6BAA6B;IAC5C,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,OAAO,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6GD,wBAAgB,wBAAwB,CAAC,EACvC,MAAc,EACd,OAAoB,EACpB,MAAM,EACN,MAAM,EACN,OAAW,EACX,UAAiB,EACjB,SAAc,GACf,EAAE,6BAA6B,2CA2T/B"}
package/dist/widget.js ADDED
@@ -0,0 +1,149 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useMemo, useState } from 'react';
3
+ import { useMinuteMarketsWidgetState } from './provider.js';
4
+ const formatAda = (lovelace) => `${(lovelace / 1_000_000).toFixed(2)} ADA`;
5
+ const formatUsd = (price, decimals) => typeof price === 'number' ? `$${price.toFixed(decimals)}` : '--';
6
+ const FALLBACK_MARKET_INFO = {
7
+ key: 'ADA',
8
+ asset: 'ADA',
9
+ pairLabel: 'ADA/USD',
10
+ priceDecimals: 4,
11
+ };
12
+ const FALLBACK_MINIMUM_STAKE_LOVELACE = 5_000_000;
13
+ const formatAdaLabel = (amount) => `${Number.isInteger(amount) ? amount : amount.toFixed(2)} ADA`;
14
+ const formatCountdown = (ms) => {
15
+ if (ms <= 0)
16
+ return '00:00';
17
+ const totalSeconds = Math.ceil(ms / 1000);
18
+ const minutes = Math.floor(totalSeconds / 60);
19
+ const seconds = totalSeconds % 60;
20
+ return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
21
+ };
22
+ const shortHash = (hash) => `${hash.slice(0, 8)}...${hash.slice(-6)}`;
23
+ const toUnixMs = (value) => {
24
+ if (typeof value === 'number' && Number.isFinite(value)) {
25
+ return value < 10_000_000_000 ? value * 1_000 : value;
26
+ }
27
+ if (typeof value === 'string') {
28
+ const numeric = Number(value);
29
+ if (Number.isFinite(numeric))
30
+ return numeric < 10_000_000_000 ? numeric * 1_000 : numeric;
31
+ const parsed = Date.parse(value);
32
+ if (Number.isFinite(parsed))
33
+ return parsed;
34
+ }
35
+ return null;
36
+ };
37
+ function useRoundCountdown(txTime, cycleMs, serverNow) {
38
+ const [timing, setTiming] = useState({
39
+ remainingMs: null,
40
+ isStateBehind: false,
41
+ });
42
+ useEffect(() => {
43
+ const roundStartedAt = toUnixMs(txTime);
44
+ const serverStartedAt = toUnixMs(serverNow) ?? Date.now();
45
+ if (!roundStartedAt || !cycleMs) {
46
+ setTiming({ remainingMs: null, isStateBehind: false });
47
+ return;
48
+ }
49
+ const clientStartedAt = Date.now();
50
+ const tick = () => {
51
+ const estimatedServerNow = serverStartedAt + (Date.now() - clientStartedAt);
52
+ const elapsedMs = estimatedServerNow - roundStartedAt;
53
+ if (elapsedMs < 0) {
54
+ setTiming({
55
+ remainingMs: Math.max(0, roundStartedAt + cycleMs - estimatedServerNow),
56
+ isStateBehind: false,
57
+ });
58
+ return;
59
+ }
60
+ const cycleElapsedMs = elapsedMs % cycleMs;
61
+ setTiming({
62
+ remainingMs: cycleElapsedMs === 0 && elapsedMs > 0 ? 0 : cycleMs - cycleElapsedMs,
63
+ isStateBehind: elapsedMs >= cycleMs,
64
+ });
65
+ };
66
+ tick();
67
+ const timer = window.setInterval(tick, 1_000);
68
+ return () => window.clearInterval(timer);
69
+ }, [cycleMs, serverNow, txTime]);
70
+ return timing;
71
+ }
72
+ function Metric({ label, children }) {
73
+ return (_jsxs("div", { className: "mm-sdk__metric", children: [_jsx("span", { children: label }), _jsx("strong", { children: children })] }));
74
+ }
75
+ function AdaMark() {
76
+ return (_jsx("span", { className: "mm-sdk__ada-mark", "aria-hidden": "true", children: "\u20B3" }));
77
+ }
78
+ function OrderRow({ order }) {
79
+ return (_jsxs("li", { className: "mm-sdk__order", children: [_jsxs("div", { children: [_jsx("strong", { children: order.position === 'UP' ? 'Higher' : 'Lower' }), _jsxs("span", { children: ["Round #", order.marketId, " \u00B7 ", formatAda(order.amountLovelace)] })] }), _jsxs("div", { className: "mm-sdk__order-meta", children: [_jsx("span", { className: `mm-sdk__status mm-sdk__status--${order.status.toLowerCase()}`, children: order.status }), order.txHash ? _jsx("small", { title: order.txHash, children: shortHash(order.txHash) }) : null] })] }));
80
+ }
81
+ export function MinuteMarketsTradeWidget({ market = 'ADA', variant = 'standard', minAda, maxAda, stepAda = 1, showOrders = true, className = '', }) {
82
+ const state = useMinuteMarketsWidgetState();
83
+ const snapshot = state.market;
84
+ const marketInfo = snapshot?.market ?? state.bootstrap?.market ?? FALLBACK_MARKET_INFO;
85
+ const activeMarketKey = state.bootstrap?.capabilities.markets.includes(market)
86
+ ? market
87
+ : marketInfo.key;
88
+ const pairLabel = marketInfo.pairLabel;
89
+ const assetLabel = marketInfo.asset;
90
+ const priceDecimals = marketInfo.priceDecimals;
91
+ const disabledReason = state.bootstrap?.capabilities.tradingDisabledReason;
92
+ const tradingNotice = !state.wallet.connected
93
+ ? 'Connect a wallet to choose Higher or Lower.'
94
+ : disabledReason === 'ELIGIBILITY_PROVIDER_NOT_CONFIGURED'
95
+ ? 'Trading is unavailable until eligibility checks are configured.'
96
+ : null;
97
+ const minimumAda = minAda ??
98
+ (state.bootstrap?.market.minimumStakeLovelace ?? FALLBACK_MINIMUM_STAKE_LOVELACE) / 1_000_000;
99
+ const walletBalanceAda = typeof state.wallet.balanceLovelace === 'number' ? state.wallet.balanceLovelace / 1_000_000 : null;
100
+ const sliderMaxAda = Math.max(0, maxAda ?? walletBalanceAda ?? minimumAda);
101
+ const [selectedSide, setSelectedSide] = useState(null);
102
+ const [amountAda, setAmountAda] = useState(String(minimumAda));
103
+ const [ordersOpen, setOrdersOpen] = useState(false);
104
+ const canSelectPosition = state.wallet.connected && !!snapshot;
105
+ const parsedAmountAda = Number(amountAda);
106
+ const safeAmountAda = Number.isFinite(parsedAmountAda) ? parsedAmountAda : minimumAda;
107
+ const sliderAmountAda = Math.min(Math.max(safeAmountAda, 0), sliderMaxAda);
108
+ const isTradeBusy = !['IDLE', 'FAILED', 'CONFIRMED'].includes(state.trade.status);
109
+ const { remainingMs: countdownMs, isStateBehind } = useRoundCountdown(snapshot?.txTime, state.bootstrap?.market.cycleMs, snapshot?.serverNow);
110
+ const activeOrders = useMemo(() => state.orders.items
111
+ .filter((order) => ['DRAFTED', 'SUBMITTED'].includes(order.status))
112
+ .slice(0, 3), [state.orders.items]);
113
+ const historyOrders = useMemo(() => state.orders.items
114
+ .filter((order) => !['DRAFTED', 'SUBMITTED'].includes(order.status))
115
+ .slice(0, 3), [state.orders.items]);
116
+ const canSubmit = !!selectedSide &&
117
+ state.wallet.connected &&
118
+ !!state.bootstrap?.capabilities.positionsEnabled &&
119
+ Number.isFinite(parsedAmountAda) &&
120
+ parsedAmountAda >= minimumAda &&
121
+ parsedAmountAda <= sliderMaxAda &&
122
+ !isTradeBusy;
123
+ useEffect(() => {
124
+ if (!Number.isFinite(parsedAmountAda))
125
+ return;
126
+ const clampedAmount = Math.min(Math.max(parsedAmountAda, 0), sliderMaxAda);
127
+ if (clampedAmount !== parsedAmountAda)
128
+ setAmountAda(String(clampedAmount));
129
+ }, [parsedAmountAda, sliderMaxAda]);
130
+ const selectPosition = (side) => {
131
+ if (!snapshot)
132
+ return;
133
+ setSelectedSide(side);
134
+ state.emitEvent({
135
+ name: 'position_selected',
136
+ side,
137
+ marketId: snapshot.open.id,
138
+ });
139
+ };
140
+ return (_jsxs("section", { className: `mm-sdk mm-sdk--${variant} ${className}`.trim(), style: state.themeStyle, "data-market": activeMarketKey, children: [_jsxs("header", { className: "mm-sdk__header", children: [_jsxs("div", { children: [_jsx("span", { className: "mm-sdk__eyebrow", children: "Minute Markets" }), _jsx("h2", { children: pairLabel })] }), _jsxs("div", { className: "mm-sdk__round-stack", children: [_jsxs("span", { className: "mm-sdk__round", children: ["Round #", snapshot?.open.id ?? '--'] }), _jsx("span", { className: `mm-sdk__countdown ${countdownMs !== null && countdownMs > 0 && countdownMs <= 30_000 ? 'mm-sdk__countdown--hot' : ''}`, children: countdownMs === null ? '--:--' : formatCountdown(countdownMs) }), isStateBehind ? _jsx("span", { className: "mm-sdk__syncing", children: "Syncing on-chain round" }) : null] })] }), state.isLoading ? _jsx("p", { className: "mm-sdk__notice", children: "Loading market..." }) : null, state.error ? (_jsx("p", { className: "mm-sdk__notice mm-sdk__notice--error", children: state.error.message })) : null, snapshot ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "mm-sdk__price", children: [_jsxs("span", { className: "mm-sdk__asset-line", children: [_jsx("span", { className: "mm-sdk__asset-icon", "aria-hidden": "true", children: assetLabel }), "Current ", pairLabel, " price"] }), _jsx("strong", { children: formatUsd(snapshot.price.value, priceDecimals) }), _jsxs("small", { children: ["Source: ", snapshot.price.source] })] }), _jsxs("div", { className: "mm-sdk__metrics", children: [_jsx(Metric, { label: "Pool", children: formatAda(snapshot.open.totalStake) }), _jsx(Metric, { label: "Higher", children: formatAda(snapshot.open.totalUpStake) }), _jsx(Metric, { label: "Lower", children: formatAda(snapshot.open.totalDownStake) })] })] })) : null, _jsxs("div", { className: "mm-sdk__actions", children: [_jsx("button", { type: "button", className: `mm-sdk__button mm-sdk__button--up ${selectedSide === 'HIGHER' ? 'mm-sdk__button--selected' : ''}`, disabled: !canSelectPosition, onClick: () => selectPosition('HIGHER'), children: "Higher" }), _jsx("button", { type: "button", className: `mm-sdk__button mm-sdk__button--down ${selectedSide === 'LOWER' ? 'mm-sdk__button--selected' : ''}`, disabled: !canSelectPosition, onClick: () => selectPosition('LOWER'), children: "Lower" })] }), tradingNotice ? _jsx("p", { className: "mm-sdk__notice", children: tradingNotice }) : null, selectedSide ? (_jsxs("div", { className: "mm-sdk__trade", children: [_jsxs("div", { className: "mm-sdk__trade-head", children: [_jsx("label", { htmlFor: "mm-sdk-stake", children: "Wager amount" }), _jsxs("strong", { children: [_jsx(AdaMark, {}), " ", formatAdaLabel(safeAmountAda)] })] }), _jsxs("div", { className: "mm-sdk__slider-wrap", children: [_jsx("input", { id: "mm-sdk-stake-slider", type: "range", min: 0, max: sliderMaxAda, step: stepAda, value: sliderAmountAda, onChange: (event) => setAmountAda(event.target.value), "aria-label": "Wager amount slider" }), _jsxs("div", { className: "mm-sdk__slider-labels", children: [_jsx("span", { children: "0 ADA" }), _jsx("span", { children: formatAdaLabel(sliderMaxAda) })] })] }), _jsxs("div", { className: "mm-sdk__stake-row", children: [_jsx(AdaMark, {}), _jsx("input", { id: "mm-sdk-stake", type: "number", min: 0, max: sliderMaxAda, step: stepAda, value: amountAda, onChange: (event) => setAmountAda(event.target.value), "aria-label": "Wager amount in ADA" }), _jsx("span", { children: "ADA" })] }), _jsx("button", { type: "button", className: "mm-sdk__place", disabled: !canSubmit, onClick: () => selectedSide && void state.placeWager(selectedSide, parsedAmountAda), children: isTradeBusy
141
+ ? 'Submitting...'
142
+ : `Place ${selectedSide === 'HIGHER' ? 'Higher' : 'Lower'} wager` }), parsedAmountAda < minimumAda ? (_jsxs("p", { className: "mm-sdk__notice mm-sdk__notice--error", children: ["Minimum wager is ", formatAdaLabel(minimumAda), "."] })) : null, parsedAmountAda > sliderMaxAda ? (_jsxs("p", { className: "mm-sdk__notice mm-sdk__notice--error", children: ["Maximum wager is ", formatAdaLabel(sliderMaxAda), "."] })) : null, state.trade.message ? (_jsxs("p", { className: `mm-sdk__notice ${state.trade.status === 'FAILED' ? 'mm-sdk__notice--error' : ''}`, children: [state.trade.message, state.trade.txHash ? (_jsx("small", { className: "mm-sdk__tx-hash", children: state.trade.txHash })) : null] })) : null] })) : null, showOrders && state.wallet.connected ? (_jsxs("section", { className: "mm-sdk__orders", "aria-label": "SDK order history", children: [_jsxs("div", { className: "mm-sdk__orders-head", children: [_jsxs("div", { children: [_jsx("span", { children: "Orders" }), _jsxs("strong", { children: [activeOrders.length, " active"] })] }), _jsx("button", { type: "button", onClick: () => {
143
+ const nextOpen = !ordersOpen;
144
+ setOrdersOpen(nextOpen);
145
+ if (nextOpen)
146
+ void state.refreshOrders();
147
+ }, "aria-expanded": ordersOpen, children: ordersOpen ? 'Hide' : 'View' })] }), ordersOpen ? (_jsxs("div", { className: "mm-sdk__orders-panel", children: [_jsx("button", { type: "button", onClick: () => void state.refreshOrders(), disabled: state.orders.isLoading, children: state.orders.isLoading ? 'Refreshing...' : 'Refresh orders' }), state.orders.error ? (_jsx("p", { className: "mm-sdk__notice mm-sdk__notice--error", children: state.orders.error })) : null, activeOrders.length > 0 ? (_jsx("ul", { className: "mm-sdk__order-list", children: activeOrders.map((order) => (_jsx(OrderRow, { order: order }, order.id))) })) : (_jsx("p", { className: "mm-sdk__notice", children: "No active SDK orders yet." })), historyOrders.length > 0 ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "mm-sdk__history-label", children: "Recent history" }), _jsx("ul", { className: "mm-sdk__order-list", children: historyOrders.map((order) => (_jsx(OrderRow, { order: order }, order.id))) })] })) : null] })) : null] })) : null, _jsx("div", { className: "mm-sdk__wallet", children: state.wallet.connected ? (_jsx("button", { type: "button", className: "mm-sdk__disconnect", onClick: () => void state.disconnectWallet(), "aria-label": `Disconnect ${state.wallet.walletName}`, "data-tooltip": `Disconnect ${state.wallet.walletName}`, children: _jsx("svg", { viewBox: "0 0 24 24", "aria-hidden": "true", children: _jsx("path", { d: "M10 17l5-5-5-5M15 12H3M21 19V5a2 2 0 0 0-2-2h-6" }) }) })) : state.wallet.availableWallets.length > 0 ? (state.wallet.availableWallets.map((wallet) => (_jsxs("button", { type: "button", className: "mm-sdk__wallet-button", onClick: () => void state.connectWallet(wallet.key), children: ["Connect ", wallet.name] }, wallet.key)))) : (_jsx("span", { children: "No Cardano browser wallet detected." })) }), _jsxs("footer", { className: "mm-sdk__footer", children: [_jsxs("a", { className: "mm-sdk__attribution", href: state.bootstrap?.branding.attributionUrl, target: "_blank", rel: "noreferrer", children: [_jsx("span", { className: "mm-sdk__brand-mark", "aria-hidden": "true", children: "MM" }), state.bootstrap?.branding.attributionLabel ?? 'Powered by Minute Markets'] }), _jsx("a", { href: state.bootstrap?.terms.url, target: "_blank", rel: "noreferrer", children: "Terms" })] })] }));
148
+ }
149
+ //# sourceMappingURL=widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "@meteraprotocol/minute-markets-sdk",
3
+ "version": "0.1.0",
4
+ "description": "React widget SDK for Metera Minute Markets partner integrations",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ },
13
+ "./styles.css": "./src/styles.css"
14
+ },
15
+ "files": [
16
+ "dist",
17
+ "src/styles.css",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "build": "tsc",
22
+ "prepack": "npm run build",
23
+ "test": "tsc --noEmit && vitest run"
24
+ },
25
+ "peerDependencies": {
26
+ "react": ">=18.0.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/react": "^19.0.0",
30
+ "react": "^19.0.0",
31
+ "typescript": "^5.0.0",
32
+ "vitest": "^4.0.18"
33
+ },
34
+ "license": "MIT"
35
+ }