@sudobility/heavymath_ui 0.0.3
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.
- package/dist/components/dealer/DealerNFTList.d.ts +6 -0
- package/dist/components/dealer/DealerNFTList.d.ts.map +1 -0
- package/dist/components/dealer/DealerNFTList.js +46 -0
- package/dist/components/dealer/DealerNFTList.js.map +1 -0
- package/dist/components/dealer/DealerNFTSelector.d.ts +8 -0
- package/dist/components/dealer/DealerNFTSelector.d.ts.map +1 -0
- package/dist/components/dealer/DealerNFTSelector.js +10 -0
- package/dist/components/dealer/DealerNFTSelector.js.map +1 -0
- package/dist/components/dealer/UpcomingGamesWidget.d.ts +8 -0
- package/dist/components/dealer/UpcomingGamesWidget.d.ts.map +1 -0
- package/dist/components/dealer/UpcomingGamesWidget.js +68 -0
- package/dist/components/dealer/UpcomingGamesWidget.js.map +1 -0
- package/dist/components/icons/index.d.ts +2 -0
- package/dist/components/icons/index.d.ts.map +1 -0
- package/dist/components/icons/index.js +2 -0
- package/dist/components/icons/index.js.map +1 -0
- package/dist/components/market/GameMarketsSection.d.ts +16 -0
- package/dist/components/market/GameMarketsSection.d.ts.map +1 -0
- package/dist/components/market/GameMarketsSection.js +18 -0
- package/dist/components/market/GameMarketsSection.js.map +1 -0
- package/dist/components/market/InlineCreateMarketForm.d.ts +17 -0
- package/dist/components/market/InlineCreateMarketForm.d.ts.map +1 -0
- package/dist/components/market/InlineCreateMarketForm.js +274 -0
- package/dist/components/market/InlineCreateMarketForm.js.map +1 -0
- package/dist/components/market/LeagueMarketsSection.d.ts +16 -0
- package/dist/components/market/LeagueMarketsSection.d.ts.map +1 -0
- package/dist/components/market/LeagueMarketsSection.js +15 -0
- package/dist/components/market/LeagueMarketsSection.js.map +1 -0
- package/dist/components/market/MarketCard.d.ts +8 -0
- package/dist/components/market/MarketCard.d.ts.map +1 -0
- package/dist/components/market/MarketCard.js +30 -0
- package/dist/components/market/MarketCard.js.map +1 -0
- package/dist/components/market/MarketList.d.ts +9 -0
- package/dist/components/market/MarketList.d.ts.map +1 -0
- package/dist/components/market/MarketList.js +17 -0
- package/dist/components/market/MarketList.js.map +1 -0
- package/dist/components/market/MarketStatusBadge.d.ts +8 -0
- package/dist/components/market/MarketStatusBadge.d.ts.map +1 -0
- package/dist/components/market/MarketStatusBadge.js +31 -0
- package/dist/components/market/MarketStatusBadge.js.map +1 -0
- package/dist/components/market/PredictionSlider.d.ts +11 -0
- package/dist/components/market/PredictionSlider.d.ts.map +1 -0
- package/dist/components/market/PredictionSlider.js +55 -0
- package/dist/components/market/PredictionSlider.js.map +1 -0
- package/dist/components/market/SportPredictionCard.d.ts +15 -0
- package/dist/components/market/SportPredictionCard.d.ts.map +1 -0
- package/dist/components/market/SportPredictionCard.js +92 -0
- package/dist/components/market/SportPredictionCard.js.map +1 -0
- package/dist/components/market/TeamMarketsSection.d.ts +17 -0
- package/dist/components/market/TeamMarketsSection.d.ts.map +1 -0
- package/dist/components/market/TeamMarketsSection.js +8 -0
- package/dist/components/market/TeamMarketsSection.js.map +1 -0
- package/dist/components/market/TeamTournamentMarketForm.d.ts +19 -0
- package/dist/components/market/TeamTournamentMarketForm.d.ts.map +1 -0
- package/dist/components/market/TeamTournamentMarketForm.js +92 -0
- package/dist/components/market/TeamTournamentMarketForm.js.map +1 -0
- package/dist/components/market/TournamentMarketForm.d.ts +19 -0
- package/dist/components/market/TournamentMarketForm.d.ts.map +1 -0
- package/dist/components/market/TournamentMarketForm.js +86 -0
- package/dist/components/market/TournamentMarketForm.js.map +1 -0
- package/dist/components/market/index.d.ts +12 -0
- package/dist/components/market/index.d.ts.map +1 -0
- package/dist/components/market/index.js +12 -0
- package/dist/components/market/index.js.map +1 -0
- package/dist/components/sports/SeasonSelector.d.ts +10 -0
- package/dist/components/sports/SeasonSelector.d.ts.map +1 -0
- package/dist/components/sports/SeasonSelector.js +13 -0
- package/dist/components/sports/SeasonSelector.js.map +1 -0
- package/dist/components/ui/AnimatedCollapse.d.ts +9 -0
- package/dist/components/ui/AnimatedCollapse.d.ts.map +1 -0
- package/dist/components/ui/AnimatedCollapse.js +8 -0
- package/dist/components/ui/AnimatedCollapse.js.map +1 -0
- package/dist/components/ui/FavoriteStar.d.ts +13 -0
- package/dist/components/ui/FavoriteStar.d.ts.map +1 -0
- package/dist/components/ui/FavoriteStar.js +47 -0
- package/dist/components/ui/FavoriteStar.js.map +1 -0
- package/dist/components/wallet/ConnectedWalletMenu.d.ts +16 -0
- package/dist/components/wallet/ConnectedWalletMenu.d.ts.map +1 -0
- package/dist/components/wallet/ConnectedWalletMenu.js +131 -0
- package/dist/components/wallet/ConnectedWalletMenu.js.map +1 -0
- package/dist/components/wallet/DealerRoute.d.ts +6 -0
- package/dist/components/wallet/DealerRoute.d.ts.map +1 -0
- package/dist/components/wallet/DealerRoute.js +20 -0
- package/dist/components/wallet/DealerRoute.js.map +1 -0
- package/dist/components/wallet/ProtectedRoute.d.ts +8 -0
- package/dist/components/wallet/ProtectedRoute.d.ts.map +1 -0
- package/dist/components/wallet/ProtectedRoute.js +17 -0
- package/dist/components/wallet/ProtectedRoute.js.map +1 -0
- package/dist/components/wallet/WalletConnectionModal.d.ts +7 -0
- package/dist/components/wallet/WalletConnectionModal.d.ts.map +1 -0
- package/dist/components/wallet/WalletConnectionModal.js +334 -0
- package/dist/components/wallet/WalletConnectionModal.js.map +1 -0
- package/dist/config/app.d.ts +24 -0
- package/dist/config/app.d.ts.map +1 -0
- package/dist/config/app.js +18 -0
- package/dist/config/app.js.map +1 -0
- package/dist/config/chains.d.ts +1070 -0
- package/dist/config/chains.d.ts.map +1 -0
- package/dist/config/chains.js +28 -0
- package/dist/config/chains.js.map +1 -0
- package/dist/config/contracts.d.ts +15 -0
- package/dist/config/contracts.d.ts.map +1 -0
- package/dist/config/contracts.js +62 -0
- package/dist/config/contracts.js.map +1 -0
- package/dist/config/sportCodes.d.ts +58 -0
- package/dist/config/sportCodes.d.ts.map +1 -0
- package/dist/config/sportCodes.js +78 -0
- package/dist/config/sportCodes.js.map +1 -0
- package/dist/context/IndexerContext.d.ts +34 -0
- package/dist/context/IndexerContext.d.ts.map +1 -0
- package/dist/context/IndexerContext.js +40 -0
- package/dist/context/IndexerContext.js.map +1 -0
- package/dist/context/WalletAuthContext.d.ts +26 -0
- package/dist/context/WalletAuthContext.d.ts.map +1 -0
- package/dist/context/WalletAuthContext.js +148 -0
- package/dist/context/WalletAuthContext.js.map +1 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +13 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useContractWithToast.d.ts +1348 -0
- package/dist/hooks/useContractWithToast.d.ts.map +1 -0
- package/dist/hooks/useContractWithToast.js +395 -0
- package/dist/hooks/useContractWithToast.js.map +1 -0
- package/dist/hooks/useDealerNFT.d.ts +71 -0
- package/dist/hooks/useDealerNFT.d.ts.map +1 -0
- package/dist/hooks/useDealerNFT.js +127 -0
- package/dist/hooks/useDealerNFT.js.map +1 -0
- package/dist/hooks/useDealerPermission.d.ts +11 -0
- package/dist/hooks/useDealerPermission.d.ts.map +1 -0
- package/dist/hooks/useDealerPermission.js +48 -0
- package/dist/hooks/useDealerPermission.js.map +1 -0
- package/dist/hooks/useFilteredSportsData.d.ts +20 -0
- package/dist/hooks/useFilteredSportsData.d.ts.map +1 -0
- package/dist/hooks/useFilteredSportsData.js +52 -0
- package/dist/hooks/useFilteredSportsData.js.map +1 -0
- package/dist/hooks/useGameMarkets.d.ts +23 -0
- package/dist/hooks/useGameMarkets.d.ts.map +1 -0
- package/dist/hooks/useGameMarkets.js +50 -0
- package/dist/hooks/useGameMarkets.js.map +1 -0
- package/dist/hooks/useLeagueMarkets.d.ts +11 -0
- package/dist/hooks/useLeagueMarkets.d.ts.map +1 -0
- package/dist/hooks/useLeagueMarkets.js +38 -0
- package/dist/hooks/useLeagueMarkets.js.map +1 -0
- package/dist/hooks/useMarketContract.d.ts +219 -0
- package/dist/hooks/useMarketContract.d.ts.map +1 -0
- package/dist/hooks/useMarketContract.js +790 -0
- package/dist/hooks/useMarketContract.js.map +1 -0
- package/dist/hooks/useToastActions.d.ts +13 -0
- package/dist/hooks/useToastActions.d.ts.map +1 -0
- package/dist/hooks/useToastActions.js +40 -0
- package/dist/hooks/useToastActions.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/evmClient.d.ts +299 -0
- package/dist/lib/evmClient.d.ts.map +1 -0
- package/dist/lib/evmClient.js +691 -0
- package/dist/lib/evmClient.js.map +1 -0
- package/dist/types/auth.d.ts +44 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +17 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/dealer.d.ts +59 -0
- package/dist/types/dealer.d.ts.map +1 -0
- package/dist/types/dealer.js +31 -0
- package/dist/types/dealer.js.map +1 -0
- package/dist/types/market.d.ts +79 -0
- package/dist/types/market.d.ts.map +1 -0
- package/dist/types/market.js +47 -0
- package/dist/types/market.js.map +1 -0
- package/dist/utils/conditionData.d.ts +8 -0
- package/dist/utils/conditionData.d.ts.map +1 -0
- package/dist/utils/conditionData.js +7 -0
- package/dist/utils/conditionData.js.map +1 -0
- package/dist/utils/datetime.d.ts +3 -0
- package/dist/utils/datetime.d.ts.map +1 -0
- package/dist/utils/datetime.js +13 -0
- package/dist/utils/datetime.js.map +1 -0
- package/dist/utils/format.d.ts +79 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +144 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/marketDisplay.d.ts +28 -0
- package/dist/utils/marketDisplay.d.ts.map +1 -0
- package/dist/utils/marketDisplay.js +45 -0
- package/dist/utils/marketDisplay.js.map +1 -0
- package/dist/utils/marketId.d.ts +8 -0
- package/dist/utils/marketId.d.ts.map +1 -0
- package/dist/utils/marketId.js +12 -0
- package/dist/utils/marketId.js.map +1 -0
- package/dist/utils/oracleId.d.ts +33 -0
- package/dist/utils/oracleId.d.ts.map +1 -0
- package/dist/utils/oracleId.js +62 -0
- package/dist/utils/oracleId.js.map +1 -0
- package/dist/utils/sportsSeason.d.ts +10 -0
- package/dist/utils/sportsSeason.d.ts.map +1 -0
- package/dist/utils/sportsSeason.js +39 -0
- package/dist/utils/sportsSeason.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/config/chains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { mainnet, sepolia, polygon, arbitrum, optimism } from 'viem/chains';
|
|
2
|
+
// Supported chains for the prediction market
|
|
3
|
+
export const supportedChains = [
|
|
4
|
+
mainnet,
|
|
5
|
+
sepolia,
|
|
6
|
+
polygon,
|
|
7
|
+
arbitrum,
|
|
8
|
+
optimism,
|
|
9
|
+
];
|
|
10
|
+
// Default chain (Sepolia for testing)
|
|
11
|
+
export const defaultChain = sepolia;
|
|
12
|
+
// Chain IDs for quick reference
|
|
13
|
+
export const CHAIN_IDS = {
|
|
14
|
+
MAINNET: mainnet.id,
|
|
15
|
+
SEPOLIA: sepolia.id,
|
|
16
|
+
POLYGON: polygon.id,
|
|
17
|
+
ARBITRUM: arbitrum.id,
|
|
18
|
+
OPTIMISM: optimism.id,
|
|
19
|
+
};
|
|
20
|
+
// Get chain by ID
|
|
21
|
+
export function getChainById(chainId) {
|
|
22
|
+
return supportedChains.find(chain => chain.id === chainId);
|
|
23
|
+
}
|
|
24
|
+
// Check if chain is supported
|
|
25
|
+
export function isSupportedChain(chainId) {
|
|
26
|
+
return supportedChains.some(chain => chain.id === chainId);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=chains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/config/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5E,6CAA6C;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;CACA,CAAC;AAEX,sCAAsC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AAEpC,gCAAgC;AAChC,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC,EAAE;IACnB,OAAO,EAAE,OAAO,CAAC,EAAE;IACnB,OAAO,EAAE,OAAO,CAAC,EAAE;IACnB,QAAQ,EAAE,QAAQ,CAAC,EAAE;IACrB,QAAQ,EAAE,QAAQ,CAAC,EAAE;CACb,CAAC;AAEX,kBAAkB;AAClB,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
export interface ContractAddresses {
|
|
3
|
+
predictionMarket: Address;
|
|
4
|
+
dealerNFT: Address;
|
|
5
|
+
oracleResolver: Address;
|
|
6
|
+
usdc: Address;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Set contract address overrides. Called by consuming apps to configure
|
|
10
|
+
* contract addresses (typically from env vars).
|
|
11
|
+
*/
|
|
12
|
+
export declare function setContractAddresses(chainId: number, addresses: Partial<ContractAddresses>): void;
|
|
13
|
+
export declare function getContractAddresses(chainId: number): ContractAddresses | undefined;
|
|
14
|
+
export declare function getContractAddress(chainId: number, contract: keyof ContractAddresses): Address | undefined;
|
|
15
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAGpC,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,OAAO,CAAC;CACf;AAwCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACpC,IAAI,CAEN;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,GACd,iBAAiB,GAAG,SAAS,CAa/B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,iBAAiB,GAChC,OAAO,GAAG,SAAS,CAErB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { CHAIN_IDS } from './chains';
|
|
2
|
+
const ZERO = '0x0000000000000000000000000000000000000000';
|
|
3
|
+
// Default addresses per chain (well-known USDC addresses, zero for contracts)
|
|
4
|
+
const defaultAddresses = {
|
|
5
|
+
[CHAIN_IDS.SEPOLIA]: {
|
|
6
|
+
predictionMarket: ZERO,
|
|
7
|
+
dealerNFT: ZERO,
|
|
8
|
+
oracleResolver: ZERO,
|
|
9
|
+
usdc: ZERO,
|
|
10
|
+
},
|
|
11
|
+
[CHAIN_IDS.MAINNET]: {
|
|
12
|
+
predictionMarket: ZERO,
|
|
13
|
+
dealerNFT: ZERO,
|
|
14
|
+
oracleResolver: ZERO,
|
|
15
|
+
usdc: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
16
|
+
},
|
|
17
|
+
[CHAIN_IDS.POLYGON]: {
|
|
18
|
+
predictionMarket: ZERO,
|
|
19
|
+
dealerNFT: ZERO,
|
|
20
|
+
oracleResolver: ZERO,
|
|
21
|
+
usdc: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359',
|
|
22
|
+
},
|
|
23
|
+
[CHAIN_IDS.ARBITRUM]: {
|
|
24
|
+
predictionMarket: ZERO,
|
|
25
|
+
dealerNFT: ZERO,
|
|
26
|
+
oracleResolver: ZERO,
|
|
27
|
+
usdc: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
28
|
+
},
|
|
29
|
+
[CHAIN_IDS.OPTIMISM]: {
|
|
30
|
+
predictionMarket: ZERO,
|
|
31
|
+
dealerNFT: ZERO,
|
|
32
|
+
oracleResolver: ZERO,
|
|
33
|
+
usdc: '0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85',
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
const _overrides = {};
|
|
37
|
+
/**
|
|
38
|
+
* Set contract address overrides. Called by consuming apps to configure
|
|
39
|
+
* contract addresses (typically from env vars).
|
|
40
|
+
*/
|
|
41
|
+
export function setContractAddresses(chainId, addresses) {
|
|
42
|
+
_overrides[chainId] = { ..._overrides[chainId], ...addresses };
|
|
43
|
+
}
|
|
44
|
+
export function getContractAddresses(chainId) {
|
|
45
|
+
const defaults = defaultAddresses[chainId];
|
|
46
|
+
const overrides = _overrides[chainId];
|
|
47
|
+
if (!defaults && !overrides)
|
|
48
|
+
return undefined;
|
|
49
|
+
return {
|
|
50
|
+
...(defaults || {
|
|
51
|
+
predictionMarket: ZERO,
|
|
52
|
+
dealerNFT: ZERO,
|
|
53
|
+
oracleResolver: ZERO,
|
|
54
|
+
usdc: ZERO,
|
|
55
|
+
}),
|
|
56
|
+
...overrides,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export function getContractAddress(chainId, contract) {
|
|
60
|
+
return getContractAddresses(chainId)?.[contract];
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/config/contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AASrC,MAAM,IAAI,GAAY,4CAA4C,CAAC;AAEnE,8EAA8E;AAC9E,MAAM,gBAAgB,GAAsC;IAC1D,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnB,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI;QACpB,IAAI,EAAE,IAAI;KACX;IACD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnB,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI;QACpB,IAAI,EAAE,4CAAuD;KAC9D;IACD,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;QACnB,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI;QACpB,IAAI,EAAE,4CAAuD;KAC9D;IACD,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;QACpB,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI;QACpB,IAAI,EAAE,4CAAuD;KAC9D;IACD,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;QACpB,gBAAgB,EAAE,IAAI;QACtB,SAAS,EAAE,IAAI;QACf,cAAc,EAAE,IAAI;QACpB,IAAI,EAAE,4CAAuD;KAC9D;CACF,CAAC;AAEF,MAAM,UAAU,GAA+C,EAAE,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAe,EACf,SAAqC;IAErC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAe;IAEf,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO;QACL,GAAG,CAAC,QAAQ,IAAI;YACd,gBAAgB,EAAE,IAAI;YACtB,SAAS,EAAE,IAAI;YACf,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,IAAI;SACX,CAAC;QACF,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,QAAiC;IAEjC,OAAO,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Sport code constants and helpers
|
|
3
|
+
* @description Maps sport slugs to numeric codes used as market subCategory
|
|
4
|
+
* values and in oracleId encoding.
|
|
5
|
+
*/
|
|
6
|
+
/** Numeric sport codes matching market subCategory values for SPORTS category */
|
|
7
|
+
export declare const SPORT_CODES: {
|
|
8
|
+
readonly soccer: 1;
|
|
9
|
+
readonly basketball: 2;
|
|
10
|
+
readonly nfl: 3;
|
|
11
|
+
readonly baseball: 4;
|
|
12
|
+
readonly hockey: 5;
|
|
13
|
+
readonly rugby: 6;
|
|
14
|
+
readonly f1: 7;
|
|
15
|
+
readonly mma: 8;
|
|
16
|
+
readonly handball: 9;
|
|
17
|
+
readonly volleyball: 10;
|
|
18
|
+
};
|
|
19
|
+
/** Numeric sport code value */
|
|
20
|
+
export type SportCode = (typeof SPORT_CODES)[keyof typeof SPORT_CODES];
|
|
21
|
+
/** Sport URL slug */
|
|
22
|
+
export type SportSlug = keyof typeof SPORT_CODES;
|
|
23
|
+
/**
|
|
24
|
+
* Get the URL slug for a numeric sport code.
|
|
25
|
+
*
|
|
26
|
+
* @param code - Numeric sport code
|
|
27
|
+
* @returns The sport slug (e.g., 'soccer') or undefined if invalid
|
|
28
|
+
*/
|
|
29
|
+
export declare function getSportSlug(code: number): SportSlug | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* Get the numeric code for a sport slug.
|
|
32
|
+
*
|
|
33
|
+
* @param slug - Sport URL slug (e.g., 'soccer')
|
|
34
|
+
* @returns The numeric sport code or undefined if invalid
|
|
35
|
+
*/
|
|
36
|
+
export declare function getSportCode(slug: string): SportCode | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Type guard to check if a number is a valid sport code.
|
|
39
|
+
*
|
|
40
|
+
* @param value - Number to check
|
|
41
|
+
* @returns True if value is a valid SportCode
|
|
42
|
+
*/
|
|
43
|
+
export declare function isSportCode(value: number): value is SportCode;
|
|
44
|
+
/**
|
|
45
|
+
* Get the event page path segment for a sport.
|
|
46
|
+
* Soccer uses "matches", F1 uses "races", MMA uses "fights", others use "games".
|
|
47
|
+
*/
|
|
48
|
+
export declare function getSportEventPath(slug: SportSlug): string;
|
|
49
|
+
/**
|
|
50
|
+
* Build the full event page URL for a sport event.
|
|
51
|
+
*
|
|
52
|
+
* @param lang - Language prefix
|
|
53
|
+
* @param sportCode - Numeric sport code
|
|
54
|
+
* @param gameId - Game/fixture/race/fight ID
|
|
55
|
+
* @returns URL path like /en/sports/soccer/matches/123, or null if invalid sport
|
|
56
|
+
*/
|
|
57
|
+
export declare function getSportEventUrl(lang: string, sportCode: number, gameId: number): string | null;
|
|
58
|
+
//# sourceMappingURL=sportCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sportCodes.d.ts","sourceRoot":"","sources":["../../src/config/sportCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iFAAiF;AACjF,eAAO,MAAM,WAAW;;;;;;;;;;;CAWd,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAEvE,qBAAqB;AACrB,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AAMjD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEhE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAE7D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAWzD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,IAAI,CAKf"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Sport code constants and helpers
|
|
3
|
+
* @description Maps sport slugs to numeric codes used as market subCategory
|
|
4
|
+
* values and in oracleId encoding.
|
|
5
|
+
*/
|
|
6
|
+
/** Numeric sport codes matching market subCategory values for SPORTS category */
|
|
7
|
+
export const SPORT_CODES = {
|
|
8
|
+
soccer: 1,
|
|
9
|
+
basketball: 2,
|
|
10
|
+
nfl: 3,
|
|
11
|
+
baseball: 4,
|
|
12
|
+
hockey: 5,
|
|
13
|
+
rugby: 6,
|
|
14
|
+
f1: 7,
|
|
15
|
+
mma: 8,
|
|
16
|
+
handball: 9,
|
|
17
|
+
volleyball: 10,
|
|
18
|
+
};
|
|
19
|
+
const slugByCode = Object.fromEntries(Object.entries(SPORT_CODES).map(([slug, code]) => [code, slug]));
|
|
20
|
+
/**
|
|
21
|
+
* Get the URL slug for a numeric sport code.
|
|
22
|
+
*
|
|
23
|
+
* @param code - Numeric sport code
|
|
24
|
+
* @returns The sport slug (e.g., 'soccer') or undefined if invalid
|
|
25
|
+
*/
|
|
26
|
+
export function getSportSlug(code) {
|
|
27
|
+
return slugByCode[code];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get the numeric code for a sport slug.
|
|
31
|
+
*
|
|
32
|
+
* @param slug - Sport URL slug (e.g., 'soccer')
|
|
33
|
+
* @returns The numeric sport code or undefined if invalid
|
|
34
|
+
*/
|
|
35
|
+
export function getSportCode(slug) {
|
|
36
|
+
return SPORT_CODES[slug];
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Type guard to check if a number is a valid sport code.
|
|
40
|
+
*
|
|
41
|
+
* @param value - Number to check
|
|
42
|
+
* @returns True if value is a valid SportCode
|
|
43
|
+
*/
|
|
44
|
+
export function isSportCode(value) {
|
|
45
|
+
return value >= 1 && value <= 10 && Number.isInteger(value);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the event page path segment for a sport.
|
|
49
|
+
* Soccer uses "matches", F1 uses "races", MMA uses "fights", others use "games".
|
|
50
|
+
*/
|
|
51
|
+
export function getSportEventPath(slug) {
|
|
52
|
+
switch (slug) {
|
|
53
|
+
case 'soccer':
|
|
54
|
+
return 'matches';
|
|
55
|
+
case 'f1':
|
|
56
|
+
return 'races';
|
|
57
|
+
case 'mma':
|
|
58
|
+
return 'fights';
|
|
59
|
+
default:
|
|
60
|
+
return 'games';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Build the full event page URL for a sport event.
|
|
65
|
+
*
|
|
66
|
+
* @param lang - Language prefix
|
|
67
|
+
* @param sportCode - Numeric sport code
|
|
68
|
+
* @param gameId - Game/fixture/race/fight ID
|
|
69
|
+
* @returns URL path like /en/sports/soccer/matches/123, or null if invalid sport
|
|
70
|
+
*/
|
|
71
|
+
export function getSportEventUrl(lang, sportCode, gameId) {
|
|
72
|
+
const slug = getSportSlug(sportCode);
|
|
73
|
+
if (!slug)
|
|
74
|
+
return null;
|
|
75
|
+
const segment = getSportEventPath(slug);
|
|
76
|
+
return `/${lang}/sports/${slug}/${segment}/${gameId}`;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=sportCodes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sportCodes.js","sourceRoot":"","sources":["../../src/config/sportCodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,iFAAiF;AACjF,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,EAAE,CAAC;IACT,UAAU,EAAE,CAAC;IACb,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,EAAE,EAAE,CAAC;IACL,GAAG,EAAE,CAAC;IACN,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,EAAE;CACN,CAAC;AAQX,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACnC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAChC,CAAC;AAElC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC,IAAiB,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,WAAW,CAAC,IAAiB,CAAC,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,OAAO,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAe;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC;QACnB,KAAK,IAAI;YACP,OAAO,OAAO,CAAC;QACjB,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,OAAO,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,SAAiB,EACjB,MAAc;IAEd,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACxC,OAAO,IAAI,IAAI,WAAW,IAAI,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Indexer Context Provider
|
|
3
|
+
* @description Provides a singleton IndexerClient instance to the React component tree.
|
|
4
|
+
* Always use the `useIndexer()` hook to access the client rather than constructing one directly.
|
|
5
|
+
*/
|
|
6
|
+
import { type ReactNode } from 'react';
|
|
7
|
+
import { IndexerClient } from '@heavymath/indexer_client';
|
|
8
|
+
/** Shape of the IndexerContext value */
|
|
9
|
+
interface IndexerContextType {
|
|
10
|
+
/** The shared IndexerClient instance for API communication */
|
|
11
|
+
indexerClient: IndexerClient;
|
|
12
|
+
}
|
|
13
|
+
/** Props for the IndexerProvider component */
|
|
14
|
+
interface IndexerProviderProps {
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Provides a memoized IndexerClient instance to descendant components.
|
|
19
|
+
* Must be placed inside SudobilityApp (which provides the DI network client).
|
|
20
|
+
*
|
|
21
|
+
* @param props - Component props containing children
|
|
22
|
+
* @returns The provider wrapping children with IndexerClient access
|
|
23
|
+
*/
|
|
24
|
+
export declare function IndexerProvider({ children }: IndexerProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
/**
|
|
26
|
+
* Hook to access the IndexerClient from context.
|
|
27
|
+
* Must be used within an IndexerProvider.
|
|
28
|
+
*
|
|
29
|
+
* @returns Object containing the shared indexerClient instance
|
|
30
|
+
* @throws Error if used outside of IndexerProvider
|
|
31
|
+
*/
|
|
32
|
+
export declare function useIndexer(): IndexerContextType;
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=IndexerContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexerContext.d.ts","sourceRoot":"","sources":["../../src/context/IndexerContext.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAsC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,wCAAwC;AACxC,UAAU,kBAAkB;IAC1B,8DAA8D;IAC9D,aAAa,EAAE,aAAa,CAAC;CAC9B;AAID,8CAA8C;AAC9C,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,EAAE,oBAAoB,2CAajE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,uBAMzB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Indexer Context Provider
|
|
4
|
+
* @description Provides a singleton IndexerClient instance to the React component tree.
|
|
5
|
+
* Always use the `useIndexer()` hook to access the client rather than constructing one directly.
|
|
6
|
+
*/
|
|
7
|
+
import { createContext, useContext, useMemo } from 'react';
|
|
8
|
+
import { webNetworkClient } from '@sudobility/di';
|
|
9
|
+
import { IndexerClient } from '@heavymath/indexer_client';
|
|
10
|
+
import { getAppConfig } from '../config/app';
|
|
11
|
+
const IndexerContext = createContext(undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Provides a memoized IndexerClient instance to descendant components.
|
|
14
|
+
* Must be placed inside SudobilityApp (which provides the DI network client).
|
|
15
|
+
*
|
|
16
|
+
* @param props - Component props containing children
|
|
17
|
+
* @returns The provider wrapping children with IndexerClient access
|
|
18
|
+
*/
|
|
19
|
+
export function IndexerProvider({ children }) {
|
|
20
|
+
const indexerClient = useMemo(() => new IndexerClient(getAppConfig().indexerUrl, webNetworkClient), []);
|
|
21
|
+
const value = {
|
|
22
|
+
indexerClient,
|
|
23
|
+
};
|
|
24
|
+
return (_jsx(IndexerContext.Provider, { value: value, children: children }));
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Hook to access the IndexerClient from context.
|
|
28
|
+
* Must be used within an IndexerProvider.
|
|
29
|
+
*
|
|
30
|
+
* @returns Object containing the shared indexerClient instance
|
|
31
|
+
* @throws Error if used outside of IndexerProvider
|
|
32
|
+
*/
|
|
33
|
+
export function useIndexer() {
|
|
34
|
+
const context = useContext(IndexerContext);
|
|
35
|
+
if (context === undefined) {
|
|
36
|
+
throw new Error('useIndexer must be used within an IndexerProvider');
|
|
37
|
+
}
|
|
38
|
+
return context;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=IndexerContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexerContext.js","sourceRoot":"","sources":["../../src/context/IndexerContext.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAkB,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAQ7C,MAAM,cAAc,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC;AAOhF;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,EAAE,QAAQ,EAAwB;IAChE,MAAM,aAAa,GAAG,OAAO,CAC3B,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,EACpE,EAAE,CACH,CAAC;IAEF,MAAM,KAAK,GAAuB;QAChC,aAAa;KACd,CAAC;IAEF,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA2B,CAC5E,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { AuthStatus } from '../types/auth';
|
|
3
|
+
import type { Address } from 'viem';
|
|
4
|
+
interface AuthContextType {
|
|
5
|
+
address: Address | undefined;
|
|
6
|
+
chainId: number | undefined;
|
|
7
|
+
isConnected: boolean;
|
|
8
|
+
isConnecting: boolean;
|
|
9
|
+
isVerified: boolean;
|
|
10
|
+
status: AuthStatus;
|
|
11
|
+
isDealer: boolean;
|
|
12
|
+
dealerTokenIds: bigint[];
|
|
13
|
+
connect: () => void;
|
|
14
|
+
disconnect: () => void;
|
|
15
|
+
switchChain: (chainId: number) => void;
|
|
16
|
+
signVerificationMessage: () => Promise<boolean>;
|
|
17
|
+
}
|
|
18
|
+
interface AuthProviderProps {
|
|
19
|
+
children: ReactNode;
|
|
20
|
+
}
|
|
21
|
+
export declare function AuthProvider({ children }: AuthProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function useAuth(): AuthContextType;
|
|
23
|
+
/** Alias for useAuth — used by apps that have a separate Firebase AuthContext */
|
|
24
|
+
export declare const useWalletAuth: typeof useAuth;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=WalletAuthContext.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletAuthContext.d.ts","sourceRoot":"","sources":["../../src/context/WalletAuthContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAUf,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAmBpC,UAAU,eAAe;IAEvB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IAGnB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;IAGzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,uBAAuB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACjD;AAID,UAAU,iBAAiB;IACzB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAoI3D;AAED,wBAAgB,OAAO,oBAMtB;AAED,iFAAiF;AACjF,eAAO,MAAM,aAAa,gBAAU,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useContext, useMemo, useState, useCallback, } from 'react';
|
|
3
|
+
import { useAccount, useConnect, useDisconnect, useSwitchChain, useSignMessage, useReadContract, useReadContracts, } from 'wagmi';
|
|
4
|
+
import { AuthStatus } from '../types/auth';
|
|
5
|
+
import { erc721Abi } from 'viem';
|
|
6
|
+
import { getContractAddress } from '../config/contracts';
|
|
7
|
+
const STORAGE_KEY = 'heavymath_verified';
|
|
8
|
+
const tokenOfOwnerByIndexAbi = [
|
|
9
|
+
{
|
|
10
|
+
inputs: [
|
|
11
|
+
{ name: 'owner', type: 'address' },
|
|
12
|
+
{ name: 'index', type: 'uint256' },
|
|
13
|
+
],
|
|
14
|
+
name: 'tokenOfOwnerByIndex',
|
|
15
|
+
outputs: [{ name: '', type: 'uint256' }],
|
|
16
|
+
stateMutability: 'view',
|
|
17
|
+
type: 'function',
|
|
18
|
+
},
|
|
19
|
+
];
|
|
20
|
+
const AuthContext = createContext(undefined);
|
|
21
|
+
export function AuthProvider({ children }) {
|
|
22
|
+
const { address, chainId, isConnected, isConnecting, status: wagmiStatus, } = useAccount();
|
|
23
|
+
const { connect, connectors } = useConnect();
|
|
24
|
+
const { disconnect } = useDisconnect();
|
|
25
|
+
const { switchChain: wagmiSwitchChain } = useSwitchChain();
|
|
26
|
+
const { signMessageAsync } = useSignMessage();
|
|
27
|
+
// Version counter to trigger re-computation of isVerified after signing
|
|
28
|
+
const [verificationVersion, setVerificationVersion] = useState(0);
|
|
29
|
+
// Compute isVerified from localStorage (derived state, not effect-based)
|
|
30
|
+
const isVerified = useMemo(() => {
|
|
31
|
+
// verificationVersion is used to trigger re-computation after signing
|
|
32
|
+
void verificationVersion;
|
|
33
|
+
if (!address)
|
|
34
|
+
return false;
|
|
35
|
+
const storedAddress = localStorage.getItem(STORAGE_KEY);
|
|
36
|
+
return storedAddress === address;
|
|
37
|
+
}, [address, verificationVersion]);
|
|
38
|
+
// Map wagmi status to our AuthStatus
|
|
39
|
+
const status = useMemo(() => {
|
|
40
|
+
if (isConnecting)
|
|
41
|
+
return AuthStatus.Connecting;
|
|
42
|
+
if (isConnected && isVerified)
|
|
43
|
+
return AuthStatus.Verified;
|
|
44
|
+
if (isConnected)
|
|
45
|
+
return AuthStatus.Connected;
|
|
46
|
+
if (wagmiStatus === 'reconnecting')
|
|
47
|
+
return AuthStatus.Connecting;
|
|
48
|
+
return AuthStatus.Disconnected;
|
|
49
|
+
}, [isConnected, isConnecting, isVerified, wagmiStatus]);
|
|
50
|
+
// Connect handler - uses first available connector
|
|
51
|
+
const handleConnect = () => {
|
|
52
|
+
const connector = connectors[0];
|
|
53
|
+
if (connector) {
|
|
54
|
+
connect({ connector });
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
// Disconnect handler
|
|
58
|
+
const handleDisconnect = useCallback(() => {
|
|
59
|
+
disconnect();
|
|
60
|
+
localStorage.removeItem(STORAGE_KEY);
|
|
61
|
+
setVerificationVersion(v => v + 1);
|
|
62
|
+
}, [disconnect]);
|
|
63
|
+
// Sign verification message
|
|
64
|
+
const signVerificationMessage = useCallback(async () => {
|
|
65
|
+
if (!address)
|
|
66
|
+
return false;
|
|
67
|
+
try {
|
|
68
|
+
const message = `Welcome to HeavyMath!\n\nSign this message to verify your wallet ownership.\n\nWallet: ${address}\nTimestamp: ${Date.now()}`;
|
|
69
|
+
await signMessageAsync({ message });
|
|
70
|
+
// Store verified address and trigger re-computation
|
|
71
|
+
localStorage.setItem(STORAGE_KEY, address);
|
|
72
|
+
setVerificationVersion(v => v + 1);
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
console.error('Signing failed:', error);
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
}, [address, signMessageAsync]);
|
|
80
|
+
// Switch chain handler
|
|
81
|
+
const handleSwitchChain = (targetChainId) => {
|
|
82
|
+
wagmiSwitchChain({ chainId: targetChainId });
|
|
83
|
+
};
|
|
84
|
+
// Check dealer status on-chain via ERC721 balanceOf
|
|
85
|
+
const dealerNFTAddress = chainId
|
|
86
|
+
? getContractAddress(chainId, 'dealerNFT')
|
|
87
|
+
: undefined;
|
|
88
|
+
const { data: nftBalance } = useReadContract({
|
|
89
|
+
address: dealerNFTAddress,
|
|
90
|
+
abi: erc721Abi,
|
|
91
|
+
functionName: 'balanceOf',
|
|
92
|
+
args: address ? [address] : undefined,
|
|
93
|
+
query: {
|
|
94
|
+
enabled: !!address && !!dealerNFTAddress,
|
|
95
|
+
},
|
|
96
|
+
});
|
|
97
|
+
const isDealer = (nftBalance ?? 0n) > 0n;
|
|
98
|
+
// Enumerate dealer token IDs via ERC721Enumerable.tokenOfOwnerByIndex
|
|
99
|
+
const balanceCount = Number(nftBalance ?? 0n);
|
|
100
|
+
const tokenIdContracts = useMemo(() => {
|
|
101
|
+
if (!address || !dealerNFTAddress || balanceCount === 0)
|
|
102
|
+
return [];
|
|
103
|
+
return Array.from({ length: balanceCount }, (_, i) => ({
|
|
104
|
+
address: dealerNFTAddress,
|
|
105
|
+
abi: tokenOfOwnerByIndexAbi,
|
|
106
|
+
functionName: 'tokenOfOwnerByIndex',
|
|
107
|
+
args: [address, BigInt(i)],
|
|
108
|
+
}));
|
|
109
|
+
}, [address, dealerNFTAddress, balanceCount]);
|
|
110
|
+
const { data: tokenIdResults } = useReadContracts({
|
|
111
|
+
contracts: tokenIdContracts,
|
|
112
|
+
query: {
|
|
113
|
+
enabled: tokenIdContracts.length > 0,
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
const dealerTokenIds = useMemo(() => {
|
|
117
|
+
if (!tokenIdResults)
|
|
118
|
+
return [];
|
|
119
|
+
return tokenIdResults
|
|
120
|
+
.filter(r => r.status === 'success' && r.result !== undefined)
|
|
121
|
+
.map(r => r.result);
|
|
122
|
+
}, [tokenIdResults]);
|
|
123
|
+
const value = {
|
|
124
|
+
address,
|
|
125
|
+
chainId,
|
|
126
|
+
isConnected,
|
|
127
|
+
isConnecting,
|
|
128
|
+
isVerified,
|
|
129
|
+
status,
|
|
130
|
+
isDealer,
|
|
131
|
+
dealerTokenIds,
|
|
132
|
+
connect: handleConnect,
|
|
133
|
+
disconnect: handleDisconnect,
|
|
134
|
+
switchChain: handleSwitchChain,
|
|
135
|
+
signVerificationMessage,
|
|
136
|
+
};
|
|
137
|
+
return _jsx(AuthContext.Provider, { value: value, children: children });
|
|
138
|
+
}
|
|
139
|
+
export function useAuth() {
|
|
140
|
+
const context = useContext(AuthContext);
|
|
141
|
+
if (context === undefined) {
|
|
142
|
+
throw new Error('useAuth must be used within an AuthProvider');
|
|
143
|
+
}
|
|
144
|
+
return context;
|
|
145
|
+
}
|
|
146
|
+
/** Alias for useAuth — used by apps that have a separate Firebase AuthContext */
|
|
147
|
+
export const useWalletAuth = useAuth;
|
|
148
|
+
//# sourceMappingURL=WalletAuthContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WalletAuthContext.js","sourceRoot":"","sources":["../../src/context/WalletAuthContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Hooks barrel export
|
|
3
|
+
* @description Re-exports all contract interaction hooks for convenient importing.
|
|
4
|
+
* Base hooks interact directly with the smart contract. Toast-wrapped variants
|
|
5
|
+
* additionally provide user-facing notification feedback.
|
|
6
|
+
*/
|
|
7
|
+
/** Base contract interaction hooks (no UI feedback) */
|
|
8
|
+
export { useEVMClient, usePlacePrediction, useUpdatePrediction, useWithdrawPrediction, useClaimWinnings, useClaimRefund, useOnChainMarket, useOnChainPrediction, useCreateMarket, useResolveMarket, useResolveMarketWithOracle, useRequestOracleResolution, useCompleteOracleResolution, useLockMarket, useClaimLockRefund, useLockRefundAmount, useMarketSplit, useCancelMarket, useWithdrawDealerFees, useTestMode, useContractOwner, usePendingResolution, } from './useMarketContract';
|
|
9
|
+
/** Contract interaction hooks with toast notification feedback */
|
|
10
|
+
export { usePlacePredictionWithToast, useUpdatePredictionWithToast, useClaimWinningsWithToast, useClaimRefundWithToast, useCreateMarketWithToast, useResolveMarketWithToast, useResolveMarketWithOracleWithToast, useRequestOracleResolutionWithToast, useCompleteOracleResolutionWithToast, useLockMarketWithToast, useClaimLockRefundWithToast, useCancelMarketWithToast, useWithdrawDealerFeesWithToast, } from './useContractWithToast';
|
|
11
|
+
/** Dealer NFT hooks */
|
|
12
|
+
export { useMintDealerNFT, useMintDealerNFTWithToast } from './useDealerNFT';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uDAAuD;AACvD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,kEAAkE;AAClE,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mCAAmC,EACnC,mCAAmC,EACnC,oCAAoC,EACpC,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAEhC,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Hooks barrel export
|
|
3
|
+
* @description Re-exports all contract interaction hooks for convenient importing.
|
|
4
|
+
* Base hooks interact directly with the smart contract. Toast-wrapped variants
|
|
5
|
+
* additionally provide user-facing notification feedback.
|
|
6
|
+
*/
|
|
7
|
+
/** Base contract interaction hooks (no UI feedback) */
|
|
8
|
+
export { useEVMClient, usePlacePrediction, useUpdatePrediction, useWithdrawPrediction, useClaimWinnings, useClaimRefund, useOnChainMarket, useOnChainPrediction, useCreateMarket, useResolveMarket, useResolveMarketWithOracle, useRequestOracleResolution, useCompleteOracleResolution, useLockMarket, useClaimLockRefund, useLockRefundAmount, useMarketSplit, useCancelMarket, useWithdrawDealerFees, useTestMode, useContractOwner, usePendingResolution, } from './useMarketContract';
|
|
9
|
+
/** Contract interaction hooks with toast notification feedback */
|
|
10
|
+
export { usePlacePredictionWithToast, useUpdatePredictionWithToast, useClaimWinningsWithToast, useClaimRefundWithToast, useCreateMarketWithToast, useResolveMarketWithToast, useResolveMarketWithOracleWithToast, useRequestOracleResolutionWithToast, useCompleteOracleResolutionWithToast, useLockMarketWithToast, useClaimLockRefundWithToast, useCancelMarketWithToast, useWithdrawDealerFeesWithToast, } from './useContractWithToast';
|
|
11
|
+
/** Dealer NFT hooks */
|
|
12
|
+
export { useMintDealerNFT, useMintDealerNFTWithToast } from './useDealerNFT';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,uDAAuD;AACvD,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAE7B,kEAAkE;AAClE,OAAO,EACL,2BAA2B,EAC3B,4BAA4B,EAC5B,yBAAyB,EACzB,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,mCAAmC,EACnC,mCAAmC,EACnC,oCAAoC,EACpC,sBAAsB,EACtB,2BAA2B,EAC3B,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAEhC,uBAAuB;AACvB,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC"}
|