@latticexyz/entrykit 2.2.21-f4db683f90214b03bb8d68635a3825cc9bf58263 → 2.2.22-03af917786370b8251542adb3d53099aa85e754f
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.
|
@@ -126,4 +126,15 @@ declare function getWallets(_config: {
|
|
|
126
126
|
readonly chainId: number;
|
|
127
127
|
}): WalletList;
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
/**
|
|
130
|
+
* @internal
|
|
131
|
+
*/
|
|
132
|
+
declare function internal_validateSigner({ client, worldAddress, userAddress, sessionAddress, signerAddress, }: {
|
|
133
|
+
client: Client;
|
|
134
|
+
worldAddress: Address$1;
|
|
135
|
+
userAddress: Address$1;
|
|
136
|
+
sessionAddress: Address$1;
|
|
137
|
+
signerAddress: Address$1;
|
|
138
|
+
}): Promise<void>;
|
|
139
|
+
|
|
140
|
+
export { AccountButton, type ConnectedClient, type CreateWagmiConfigOptions, type EntryKitConfig, type EntryKitConfigInput, EntryKitProvider, type SessionClient, createWagmiConfig, defineConfig, getConnectors, getWallets, internal_validateSigner, useAccountModal, useEntryKitConfig, useSessionClientReady as useSessionClient };
|
|
@@ -8,7 +8,14 @@ function defineConfig(input) {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
// src/ui/Modal.tsx
|
|
11
|
-
import {
|
|
11
|
+
import { useEffect as useEffect2 } from "react";
|
|
12
|
+
import {
|
|
13
|
+
Root as DialogRoot,
|
|
14
|
+
DialogPortal,
|
|
15
|
+
DialogContent,
|
|
16
|
+
DialogTitle,
|
|
17
|
+
DialogDescription
|
|
18
|
+
} from "@radix-ui/react-dialog";
|
|
12
19
|
|
|
13
20
|
// src/ui/Shadow.tsx
|
|
14
21
|
import { forwardRef, useEffect, useRef, useState } from "react";
|
|
@@ -300,6 +307,19 @@ var Shadow = forwardRef(function Shadow2({ mode, children }, forwardedRef) {
|
|
|
300
307
|
import { twMerge } from "tailwind-merge";
|
|
301
308
|
import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
302
309
|
function Modal({ open, onOpenChange, children }) {
|
|
310
|
+
useEffect2(() => {
|
|
311
|
+
function onKeyDown(event) {
|
|
312
|
+
if (event.defaultPrevented) return;
|
|
313
|
+
if (event.key === "Escape" && open) {
|
|
314
|
+
event.preventDefault();
|
|
315
|
+
onOpenChange?.(false);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
window.addEventListener("keydown", onKeyDown);
|
|
319
|
+
return () => {
|
|
320
|
+
window.removeEventListener("keydown", onKeyDown);
|
|
321
|
+
};
|
|
322
|
+
}, [onOpenChange, open]);
|
|
303
323
|
return /* @__PURE__ */ jsx4(DialogRoot, { open, onOpenChange, children: /* @__PURE__ */ jsx4(DialogPortal, { children: /* @__PURE__ */ jsxs2(Shadow, { mode: "modal", children: [
|
|
304
324
|
/* @__PURE__ */ jsx4("div", { className: twMerge("fixed inset-0", "bg-neutral-800/85", "animate-in animate-duration-300 fade-in") }),
|
|
305
325
|
/* @__PURE__ */ jsx4(
|
|
@@ -310,17 +330,11 @@ function Modal({ open, onOpenChange, children }) {
|
|
|
310
330
|
"grid items-end sm:items-center",
|
|
311
331
|
"animate-in animate-duration-300 fade-in slide-in-from-bottom-16"
|
|
312
332
|
),
|
|
313
|
-
children: /* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */
|
|
314
|
-
|
|
315
|
-
{
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
onOpenAutoFocus: (event) => {
|
|
319
|
-
event.preventDefault();
|
|
320
|
-
},
|
|
321
|
-
children
|
|
322
|
-
}
|
|
323
|
-
) })
|
|
333
|
+
children: /* @__PURE__ */ jsx4("div", { children: /* @__PURE__ */ jsxs2(DialogContent, { className: "outline-none w-full max-w-[26rem] mx-auto", children: [
|
|
334
|
+
/* @__PURE__ */ jsx4(DialogTitle, { className: "sr-only", children: "EntryKit" }),
|
|
335
|
+
/* @__PURE__ */ jsx4(DialogDescription, { className: "sr-only", children: "Sign in to this app" }),
|
|
336
|
+
children
|
|
337
|
+
] }) })
|
|
324
338
|
}
|
|
325
339
|
)
|
|
326
340
|
] }) }) });
|
|
@@ -495,13 +509,13 @@ function AppInfo() {
|
|
|
495
509
|
|
|
496
510
|
// src/ConnectWallet.tsx
|
|
497
511
|
import { twMerge as twMerge5 } from "tailwind-merge";
|
|
498
|
-
import { useEffect as
|
|
512
|
+
import { useEffect as useEffect3, useState as useState2 } from "react";
|
|
499
513
|
import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
500
514
|
function ConnectWallet() {
|
|
501
515
|
const userAccount = useAccount();
|
|
502
516
|
const { openConnectModal, connectModalOpen } = useConnectModal();
|
|
503
517
|
const [hasAutoOpened, setHasAutoOpened] = useState2(false);
|
|
504
|
-
|
|
518
|
+
useEffect3(() => {
|
|
505
519
|
if (!connectModalOpen && !hasAutoOpened) {
|
|
506
520
|
openConnectModal?.();
|
|
507
521
|
setHasAutoOpened(true);
|
|
@@ -531,7 +545,7 @@ function ConnectWallet() {
|
|
|
531
545
|
}
|
|
532
546
|
|
|
533
547
|
// src/onboarding/ConnectedSteps.tsx
|
|
534
|
-
import { useEffect as
|
|
548
|
+
import { useEffect as useEffect8, useMemo as useMemo2, useRef as useRef2, useState as useState3 } from "react";
|
|
535
549
|
import { twMerge as twMerge7 } from "tailwind-merge";
|
|
536
550
|
|
|
537
551
|
// src/onboarding/common.ts
|
|
@@ -738,12 +752,19 @@ var worldAbi = parseAbi2([
|
|
|
738
752
|
]);
|
|
739
753
|
|
|
740
754
|
// src/onboarding/getDelegation.ts
|
|
741
|
-
async function getDelegation({
|
|
755
|
+
async function getDelegation({
|
|
756
|
+
client,
|
|
757
|
+
worldAddress,
|
|
758
|
+
userAddress,
|
|
759
|
+
sessionAddress,
|
|
760
|
+
// TODO: move everything to latest instead of pending
|
|
761
|
+
blockTag = "pending"
|
|
762
|
+
}) {
|
|
742
763
|
const record = await getRecord3(client, {
|
|
743
764
|
address: worldAddress,
|
|
744
765
|
table: worldTables.UserDelegationControl,
|
|
745
766
|
key: { delegator: userAddress, delegatee: sessionAddress },
|
|
746
|
-
blockTag
|
|
767
|
+
blockTag
|
|
747
768
|
});
|
|
748
769
|
return record.delegationControlId === unlimitedDelegationControlId;
|
|
749
770
|
}
|
|
@@ -992,10 +1013,10 @@ function removeError(error2) {
|
|
|
992
1013
|
}
|
|
993
1014
|
|
|
994
1015
|
// src/errors/useShowMutationError.ts
|
|
995
|
-
import { useEffect as
|
|
1016
|
+
import { useEffect as useEffect4 } from "react";
|
|
996
1017
|
function useShowMutationError(result) {
|
|
997
1018
|
const { error: error2, reset } = result;
|
|
998
|
-
|
|
1019
|
+
useEffect4(() => {
|
|
999
1020
|
if (!error2) return;
|
|
1000
1021
|
return addError({ error: error2, dismiss: reset });
|
|
1001
1022
|
}, [error2, reset]);
|
|
@@ -1130,13 +1151,13 @@ function Balance({ wei }) {
|
|
|
1130
1151
|
}
|
|
1131
1152
|
|
|
1132
1153
|
// src/onboarding/quarry/Allowance.tsx
|
|
1133
|
-
import { useEffect as
|
|
1154
|
+
import { useEffect as useEffect6 } from "react";
|
|
1134
1155
|
|
|
1135
1156
|
// src/errors/useShowQueryError.ts
|
|
1136
|
-
import { useEffect as
|
|
1157
|
+
import { useEffect as useEffect5 } from "react";
|
|
1137
1158
|
function useShowQueryError(result) {
|
|
1138
1159
|
const { error: error2, refetch } = result;
|
|
1139
|
-
|
|
1160
|
+
useEffect5(() => {
|
|
1140
1161
|
if (!error2) return;
|
|
1141
1162
|
return addError({ error: error2, retry: refetch, dismiss: () => {
|
|
1142
1163
|
} });
|
|
@@ -1149,7 +1170,7 @@ import { jsx as jsx14, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
|
1149
1170
|
function Allowance({ isActive, isExpanded, userAddress }) {
|
|
1150
1171
|
const allowance = useShowQueryError(useAllowance(userAddress));
|
|
1151
1172
|
const claimGasPass2 = useShowMutationError(useClaimGasPass());
|
|
1152
|
-
|
|
1173
|
+
useEffect6(() => {
|
|
1153
1174
|
const timer = setTimeout(() => {
|
|
1154
1175
|
if (isActive && claimGasPass2.status === "idle" && allowance.isSuccess && allowance.data != null && allowance.data < minGasBalance) {
|
|
1155
1176
|
claimGasPass2.mutate(userAddress);
|
|
@@ -1376,7 +1397,7 @@ function useSetupSession({ userClient }) {
|
|
|
1376
1397
|
}
|
|
1377
1398
|
|
|
1378
1399
|
// src/onboarding/Session.tsx
|
|
1379
|
-
import { useEffect as
|
|
1400
|
+
import { useEffect as useEffect7 } from "react";
|
|
1380
1401
|
|
|
1381
1402
|
// src/useSessionClient.ts
|
|
1382
1403
|
import { useClient as useClient8 } from "wagmi";
|
|
@@ -1420,7 +1441,7 @@ function createFeeEstimator(client) {
|
|
|
1420
1441
|
if (client.chain.id === 31337) {
|
|
1421
1442
|
return async () => ({ maxFeePerGas: 100000n, maxPriorityFeePerGas: 0n });
|
|
1422
1443
|
}
|
|
1423
|
-
if ([690, 17069, 17420].includes(client.chain.id)) {
|
|
1444
|
+
if ([690, 17069, 17420, 695569].includes(client.chain.id)) {
|
|
1424
1445
|
return () => getAction5(client, estimateFeesPerGas, "estimateFeesPerGas")({ chain: client.chain });
|
|
1425
1446
|
}
|
|
1426
1447
|
}
|
|
@@ -1502,7 +1523,7 @@ function Session({ isActive, isExpanded, userClient, registerSpender, registerDe
|
|
|
1502
1523
|
const sessionClient = useShowQueryError(useSessionClient(userClient.account.address));
|
|
1503
1524
|
const setup = useShowMutationError(useSetupSession({ userClient }));
|
|
1504
1525
|
const hasSession = !registerDelegation && !registerDelegation;
|
|
1505
|
-
|
|
1526
|
+
useEffect7(() => {
|
|
1506
1527
|
const timer = setTimeout(() => {
|
|
1507
1528
|
if (isActive && setup.status === "idle" && sessionClient.data && !hasSession) {
|
|
1508
1529
|
setup.mutate({
|
|
@@ -1560,9 +1581,15 @@ var relayChains_default = {
|
|
|
1560
1581
|
"111": {
|
|
1561
1582
|
bridgeUrl: "https://testnets.relay.link/bridge/bob"
|
|
1562
1583
|
},
|
|
1584
|
+
"130": {
|
|
1585
|
+
bridgeUrl: "https://relay.link/bridge/unichain"
|
|
1586
|
+
},
|
|
1563
1587
|
"137": {
|
|
1564
1588
|
bridgeUrl: "https://relay.link/bridge/polygon"
|
|
1565
1589
|
},
|
|
1590
|
+
"146": {
|
|
1591
|
+
bridgeUrl: "https://relay.link/bridge/sonic"
|
|
1592
|
+
},
|
|
1566
1593
|
"185": {
|
|
1567
1594
|
bridgeUrl: "https://relay.link/bridge/mint"
|
|
1568
1595
|
},
|
|
@@ -1581,6 +1608,9 @@ var relayChains_default = {
|
|
|
1581
1608
|
"690": {
|
|
1582
1609
|
bridgeUrl: "https://relay.link/bridge/redstone"
|
|
1583
1610
|
},
|
|
1611
|
+
"747": {
|
|
1612
|
+
bridgeUrl: "https://relay.link/bridge/flow-evm"
|
|
1613
|
+
},
|
|
1584
1614
|
"919": {
|
|
1585
1615
|
bridgeUrl: "https://testnets.relay.link/bridge/mode-testnet"
|
|
1586
1616
|
},
|
|
@@ -1596,18 +1626,30 @@ var relayChains_default = {
|
|
|
1596
1626
|
"1329": {
|
|
1597
1627
|
bridgeUrl: "https://relay.link/bridge/sei"
|
|
1598
1628
|
},
|
|
1629
|
+
"1424": {
|
|
1630
|
+
bridgeUrl: "https://relay.link/bridge/perennial"
|
|
1631
|
+
},
|
|
1632
|
+
"1514": {
|
|
1633
|
+
bridgeUrl: "https://relay.link/bridge/story"
|
|
1634
|
+
},
|
|
1599
1635
|
"1625": {
|
|
1600
1636
|
bridgeUrl: "https://relay.link/bridge/gravity"
|
|
1601
1637
|
},
|
|
1602
1638
|
"1868": {
|
|
1603
1639
|
bridgeUrl: "https://relay.link/bridge/soneium"
|
|
1604
1640
|
},
|
|
1641
|
+
"1923": {
|
|
1642
|
+
bridgeUrl: "https://relay.link/bridge/swellchain"
|
|
1643
|
+
},
|
|
1605
1644
|
"1993": {
|
|
1606
1645
|
bridgeUrl: "https://testnets.relay.link/bridge/b3"
|
|
1607
1646
|
},
|
|
1608
1647
|
"1996": {
|
|
1609
1648
|
bridgeUrl: "https://relay.link/bridge/sanko"
|
|
1610
1649
|
},
|
|
1650
|
+
"2187": {
|
|
1651
|
+
bridgeUrl: "https://relay.link/bridge/game7"
|
|
1652
|
+
},
|
|
1611
1653
|
"2741": {
|
|
1612
1654
|
bridgeUrl: "https://relay.link/bridge/abstract"
|
|
1613
1655
|
},
|
|
@@ -1677,6 +1719,9 @@ var relayChains_default = {
|
|
|
1677
1719
|
"42170": {
|
|
1678
1720
|
bridgeUrl: "https://relay.link/bridge/arbitrum-nova"
|
|
1679
1721
|
},
|
|
1722
|
+
"42220": {
|
|
1723
|
+
bridgeUrl: "https://relay.link/bridge/celo"
|
|
1724
|
+
},
|
|
1680
1725
|
"43114": {
|
|
1681
1726
|
bridgeUrl: "https://relay.link/bridge/avalanche"
|
|
1682
1727
|
},
|
|
@@ -1707,12 +1752,18 @@ var relayChains_default = {
|
|
|
1707
1752
|
"80002": {
|
|
1708
1753
|
bridgeUrl: "https://testnets.relay.link/bridge/amoy"
|
|
1709
1754
|
},
|
|
1755
|
+
"80094": {
|
|
1756
|
+
bridgeUrl: "https://relay.link/bridge/berachain"
|
|
1757
|
+
},
|
|
1710
1758
|
"81457": {
|
|
1711
1759
|
bridgeUrl: "https://relay.link/bridge/blast"
|
|
1712
1760
|
},
|
|
1713
1761
|
"84532": {
|
|
1714
1762
|
bridgeUrl: "https://testnets.relay.link/bridge/base-sepolia"
|
|
1715
1763
|
},
|
|
1764
|
+
"167000": {
|
|
1765
|
+
bridgeUrl: "https://relay.link/bridge/taiko"
|
|
1766
|
+
},
|
|
1716
1767
|
"167009": {
|
|
1717
1768
|
bridgeUrl: "https://testnets.relay.link/bridge/hekla"
|
|
1718
1769
|
},
|
|
@@ -1728,6 +1779,9 @@ var relayChains_default = {
|
|
|
1728
1779
|
"660279": {
|
|
1729
1780
|
bridgeUrl: "https://relay.link/bridge/xai"
|
|
1730
1781
|
},
|
|
1782
|
+
"695569": {
|
|
1783
|
+
bridgeUrl: "https://testnets.relay.link/bridge/pyrope"
|
|
1784
|
+
},
|
|
1731
1785
|
"911867": {
|
|
1732
1786
|
bridgeUrl: "https://testnets.relay.link/bridge/odyssey"
|
|
1733
1787
|
},
|
|
@@ -1740,6 +1794,9 @@ var relayChains_default = {
|
|
|
1740
1794
|
"3397901": {
|
|
1741
1795
|
bridgeUrl: "https://testnets.relay.link/bridge/funki-testnet"
|
|
1742
1796
|
},
|
|
1797
|
+
"3441006": {
|
|
1798
|
+
bridgeUrl: "https://testnets.relay.link/bridge/manta-pacific-testnet"
|
|
1799
|
+
},
|
|
1743
1800
|
"4457845": {
|
|
1744
1801
|
bridgeUrl: "https://testnets.relay.link/bridge/zero-sepolia"
|
|
1745
1802
|
},
|
|
@@ -1767,6 +1824,9 @@ var relayChains_default = {
|
|
|
1767
1824
|
"792703809": {
|
|
1768
1825
|
bridgeUrl: "https://relay.link/bridge/solana"
|
|
1769
1826
|
},
|
|
1827
|
+
"845320008": {
|
|
1828
|
+
bridgeUrl: "https://testnets.relay.link/bridge/lordchain-testnet"
|
|
1829
|
+
},
|
|
1770
1830
|
"888888888": {
|
|
1771
1831
|
bridgeUrl: "https://relay.link/bridge/ancient8"
|
|
1772
1832
|
},
|
|
@@ -1878,7 +1938,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
1878
1938
|
const paymaster = getPaymaster(chain);
|
|
1879
1939
|
const userAddress = userClient.account.address;
|
|
1880
1940
|
const { data: prerequisites, error: prerequisitesError } = usePrerequisites(userAddress);
|
|
1881
|
-
|
|
1941
|
+
useEffect8(() => {
|
|
1882
1942
|
if (prerequisitesError) {
|
|
1883
1943
|
console.error("Could not get prerequisites", prerequisitesError);
|
|
1884
1944
|
}
|
|
@@ -1886,7 +1946,7 @@ function ConnectedSteps({ userClient, initialUserAddress }) {
|
|
|
1886
1946
|
const { closeAccountModal } = useAccountModal();
|
|
1887
1947
|
const isNewConnection = userAddress !== initialUserAddress;
|
|
1888
1948
|
const initialPrerequisites = useRef2(prerequisites);
|
|
1889
|
-
|
|
1949
|
+
useEffect8(() => {
|
|
1890
1950
|
if (prerequisites == null) return;
|
|
1891
1951
|
if (initialPrerequisites.current == null) {
|
|
1892
1952
|
initialPrerequisites.current = prerequisites;
|
|
@@ -1975,7 +2035,7 @@ function AccountModalContent() {
|
|
|
1975
2035
|
}
|
|
1976
2036
|
|
|
1977
2037
|
// src/AccountModal.tsx
|
|
1978
|
-
import { DialogClose
|
|
2038
|
+
import { DialogClose } from "@radix-ui/react-dialog";
|
|
1979
2039
|
|
|
1980
2040
|
// src/icons/IconSVG.tsx
|
|
1981
2041
|
import { twMerge as twMerge8 } from "tailwind-merge";
|
|
@@ -2015,11 +2075,11 @@ import { ErrorBoundary } from "react-error-boundary";
|
|
|
2015
2075
|
|
|
2016
2076
|
// src/errors/ErrorOverlay.tsx
|
|
2017
2077
|
import { wait } from "@latticexyz/common/utils";
|
|
2018
|
-
import { useEffect as
|
|
2078
|
+
import { useEffect as useEffect9 } from "react";
|
|
2019
2079
|
import { twMerge as twMerge9 } from "tailwind-merge";
|
|
2020
2080
|
import { Fragment as Fragment2, jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
2021
2081
|
function ErrorOverlay({ error: error2, retry, dismiss }) {
|
|
2022
|
-
|
|
2082
|
+
useEffect9(() => {
|
|
2023
2083
|
if (error2) {
|
|
2024
2084
|
console.error(error2);
|
|
2025
2085
|
}
|
|
@@ -2113,51 +2173,48 @@ function ErrorsOverlay() {
|
|
|
2113
2173
|
import { jsx as jsx24, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2114
2174
|
function AccountModal() {
|
|
2115
2175
|
const { accountModalOpen, toggleAccountModal } = useAccountModal();
|
|
2116
|
-
return /* @__PURE__ */
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2176
|
+
return /* @__PURE__ */ jsx24(Modal, { open: accountModalOpen, onOpenChange: toggleAccountModal, children: accountModalOpen ? /* @__PURE__ */ jsxs16(
|
|
2177
|
+
"div",
|
|
2178
|
+
{
|
|
2179
|
+
className: twMerge10(
|
|
2180
|
+
"relative py-2 ring-1",
|
|
2181
|
+
"bg-neutral-900 text-neutral-400 ring-neutral-700/50",
|
|
2182
|
+
"links:font-medium links:underline links:underline-offset-4",
|
|
2183
|
+
"links:text-white",
|
|
2184
|
+
"links:decoration-neutral-500 hover:links:decoration-orange-500"
|
|
2185
|
+
),
|
|
2186
|
+
children: [
|
|
2187
|
+
/* @__PURE__ */ jsxs16(ErrorBoundary, { FallbackComponent: ErrorFallback, children: [
|
|
2188
|
+
/* @__PURE__ */ jsx24(AccountModalContent, {}),
|
|
2189
|
+
/* @__PURE__ */ jsx24(ErrorsOverlay, {})
|
|
2190
|
+
] }),
|
|
2191
|
+
/* @__PURE__ */ jsxs16(
|
|
2192
|
+
"a",
|
|
2193
|
+
{
|
|
2194
|
+
href: "https://mud.dev",
|
|
2195
|
+
target: "_blank",
|
|
2196
|
+
rel: "noreferrer noopener",
|
|
2197
|
+
className: "group self-center p-3 flex items-center justify-center gap-2 links-unset text-sm font-mono transition text-neutral-400 hover:text-white",
|
|
2198
|
+
children: [
|
|
2199
|
+
/* @__PURE__ */ jsx24("span", { className: "block w-4 h-4", children: /* @__PURE__ */ jsx24(Logo, { className: "w-full h-full text-orange-500 group-hover:rotate-90 transition duration-300" }) }),
|
|
2200
|
+
/* @__PURE__ */ jsx24("span", { children: "Powered by MUD" })
|
|
2201
|
+
]
|
|
2202
|
+
}
|
|
2127
2203
|
),
|
|
2128
|
-
children:
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
/* @__PURE__ */ jsx24(ErrorsOverlay, {})
|
|
2143
|
-
] }),
|
|
2144
|
-
/* @__PURE__ */ jsxs16(
|
|
2145
|
-
"a",
|
|
2146
|
-
{
|
|
2147
|
-
href: "https://mud.dev",
|
|
2148
|
-
target: "_blank",
|
|
2149
|
-
rel: "noreferrer noopener",
|
|
2150
|
-
className: "group self-center p-3 flex items-center justify-center gap-2 links-unset text-sm font-mono transition text-neutral-400 hover:text-white",
|
|
2151
|
-
children: [
|
|
2152
|
-
/* @__PURE__ */ jsx24("span", { className: "block w-4 h-4", children: /* @__PURE__ */ jsx24(Logo, { className: "w-full h-full text-orange-500 group-hover:rotate-90 transition duration-300" }) }),
|
|
2153
|
-
/* @__PURE__ */ jsx24("span", { children: "Powered by MUD" })
|
|
2154
|
-
]
|
|
2155
|
-
}
|
|
2156
|
-
)
|
|
2157
|
-
]
|
|
2158
|
-
}
|
|
2159
|
-
) : null
|
|
2160
|
-
] });
|
|
2204
|
+
/* @__PURE__ */ jsx24("div", { className: "absolute top-0 right-0", children: /* @__PURE__ */ jsx24(
|
|
2205
|
+
DialogClose,
|
|
2206
|
+
{
|
|
2207
|
+
className: twMerge10(
|
|
2208
|
+
"pointer-events-auto leading-none p-2 transition",
|
|
2209
|
+
"text-white/20 hover:text-white/40"
|
|
2210
|
+
),
|
|
2211
|
+
title: "Close",
|
|
2212
|
+
children: /* @__PURE__ */ jsx24(CloseIcon, { className: "m-0" })
|
|
2213
|
+
}
|
|
2214
|
+
) })
|
|
2215
|
+
]
|
|
2216
|
+
}
|
|
2217
|
+
) : null });
|
|
2161
2218
|
}
|
|
2162
2219
|
|
|
2163
2220
|
// src/EntryKitProvider.tsx
|
|
@@ -2348,6 +2405,50 @@ function getConnectors({
|
|
|
2348
2405
|
projectId: config.walletConnectProjectId
|
|
2349
2406
|
});
|
|
2350
2407
|
}
|
|
2408
|
+
|
|
2409
|
+
// src/validateSigner.ts
|
|
2410
|
+
import { readContract } from "viem/actions";
|
|
2411
|
+
async function internal_validateSigner({
|
|
2412
|
+
client,
|
|
2413
|
+
worldAddress,
|
|
2414
|
+
userAddress,
|
|
2415
|
+
sessionAddress,
|
|
2416
|
+
signerAddress
|
|
2417
|
+
}) {
|
|
2418
|
+
const ownerAddress = await readContract(client, {
|
|
2419
|
+
address: sessionAddress,
|
|
2420
|
+
abi: simpleAccountAbi,
|
|
2421
|
+
functionName: "owner"
|
|
2422
|
+
});
|
|
2423
|
+
if (ownerAddress.toLowerCase() !== signerAddress.toLowerCase()) {
|
|
2424
|
+
throw new Error(`Session account owner (${ownerAddress}) does not match message signer (${signerAddress}).`);
|
|
2425
|
+
}
|
|
2426
|
+
const hasDelegation = await getDelegation({
|
|
2427
|
+
client,
|
|
2428
|
+
worldAddress,
|
|
2429
|
+
sessionAddress,
|
|
2430
|
+
userAddress,
|
|
2431
|
+
blockTag: "latest"
|
|
2432
|
+
});
|
|
2433
|
+
if (!hasDelegation) {
|
|
2434
|
+
throw new Error(`Session account (${sessionAddress}) does not have delegation for user account (${userAddress}).`);
|
|
2435
|
+
}
|
|
2436
|
+
}
|
|
2437
|
+
var simpleAccountAbi = [
|
|
2438
|
+
{
|
|
2439
|
+
inputs: [],
|
|
2440
|
+
name: "owner",
|
|
2441
|
+
outputs: [
|
|
2442
|
+
{
|
|
2443
|
+
internalType: "address",
|
|
2444
|
+
name: "",
|
|
2445
|
+
type: "address"
|
|
2446
|
+
}
|
|
2447
|
+
],
|
|
2448
|
+
stateMutability: "view",
|
|
2449
|
+
type: "function"
|
|
2450
|
+
}
|
|
2451
|
+
];
|
|
2351
2452
|
export {
|
|
2352
2453
|
AccountButton,
|
|
2353
2454
|
EntryKitProvider,
|
|
@@ -2355,6 +2456,7 @@ export {
|
|
|
2355
2456
|
defineConfig,
|
|
2356
2457
|
getConnectors,
|
|
2357
2458
|
getWallets,
|
|
2459
|
+
internal_validateSigner,
|
|
2358
2460
|
useAccountModal,
|
|
2359
2461
|
useEntryKitConfig,
|
|
2360
2462
|
useSessionClientReady as useSessionClient
|