@latticexyz/entrykit 2.2.22-ab837ceb49fa77cc29487bb9df0c487975b37afe → 2.2.22-d621dc7c427a59eb74f4d379862646355a149338
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.
|
@@ -554,7 +554,7 @@ var minGasBalance = parseEther2("0.01");
|
|
|
554
554
|
|
|
555
555
|
// src/onboarding/quarry/useAllowance.ts
|
|
556
556
|
import { useClient } from "wagmi";
|
|
557
|
-
import { queryOptions, useQuery as useQuery2 } from "@tanstack/react-query";
|
|
557
|
+
import { queryOptions, skipToken, useQuery as useQuery2 } from "@tanstack/react-query";
|
|
558
558
|
|
|
559
559
|
// src/quarry/getAllowance.ts
|
|
560
560
|
import { numberToHex as numberToHex2 } from "viem";
|
|
@@ -684,13 +684,10 @@ function getAllowanceQueryOptions({
|
|
|
684
684
|
client,
|
|
685
685
|
userAddress
|
|
686
686
|
}) {
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
client && userAddress ? {
|
|
690
|
-
|
|
691
|
-
queryFn: () => getAllowance({ client, userAddress })
|
|
692
|
-
} : { queryKey, enabled: false }
|
|
693
|
-
);
|
|
687
|
+
return queryOptions({
|
|
688
|
+
queryKey: ["getAllowance", client?.uid, userAddress],
|
|
689
|
+
queryFn: client && userAddress ? () => getAllowance({ client, userAddress }) : skipToken
|
|
690
|
+
});
|
|
694
691
|
}
|
|
695
692
|
function useAllowance(userAddress) {
|
|
696
693
|
const { chainId } = useEntryKitConfig();
|
|
@@ -700,7 +697,7 @@ function useAllowance(userAddress) {
|
|
|
700
697
|
|
|
701
698
|
// src/onboarding/quarry/useSpender.ts
|
|
702
699
|
import { useClient as useClient2 } from "wagmi";
|
|
703
|
-
import { queryOptions as queryOptions2, useQuery as useQuery3 } from "@tanstack/react-query";
|
|
700
|
+
import { queryOptions as queryOptions2, skipToken as skipToken2, useQuery as useQuery3 } from "@tanstack/react-query";
|
|
704
701
|
|
|
705
702
|
// src/onboarding/quarry/getSpender.ts
|
|
706
703
|
import { getRecord as getRecord2 } from "@latticexyz/store/internal";
|
|
@@ -722,18 +719,15 @@ function getSpenderQueryOptions({
|
|
|
722
719
|
userAddress,
|
|
723
720
|
sessionAddress
|
|
724
721
|
}) {
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
client && userAddress && sessionAddress ? {
|
|
728
|
-
|
|
729
|
-
queryFn: () => getSpender({ client, userAddress, sessionAddress })
|
|
730
|
-
} : { queryKey, enabled: false }
|
|
731
|
-
);
|
|
722
|
+
return queryOptions2({
|
|
723
|
+
queryKey: ["getSpender", client?.uid, userAddress, sessionAddress],
|
|
724
|
+
queryFn: client && userAddress && sessionAddress ? () => getSpender({ client, userAddress, sessionAddress }) : skipToken2
|
|
725
|
+
});
|
|
732
726
|
}
|
|
733
727
|
|
|
734
728
|
// src/onboarding/useDelegation.ts
|
|
735
729
|
import { useClient as useClient3 } from "wagmi";
|
|
736
|
-
import { queryOptions as queryOptions3, useQuery as useQuery4 } from "@tanstack/react-query";
|
|
730
|
+
import { queryOptions as queryOptions3, skipToken as skipToken3, useQuery as useQuery4 } from "@tanstack/react-query";
|
|
737
731
|
|
|
738
732
|
// src/onboarding/getDelegation.ts
|
|
739
733
|
import { getRecord as getRecord3 } from "@latticexyz/store/internal";
|
|
@@ -776,22 +770,19 @@ function getDelegationQueryOptions({
|
|
|
776
770
|
userAddress,
|
|
777
771
|
sessionAddress
|
|
778
772
|
}) {
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
client && userAddress && sessionAddress ? {
|
|
782
|
-
|
|
783
|
-
queryFn: () => getDelegation({ client, worldAddress, userAddress, sessionAddress })
|
|
784
|
-
} : { queryKey, enabled: false }
|
|
785
|
-
);
|
|
773
|
+
return queryOptions3({
|
|
774
|
+
queryKey: ["getDelegation", client?.uid, worldAddress, userAddress, sessionAddress],
|
|
775
|
+
queryFn: client && userAddress && sessionAddress ? () => getDelegation({ client, worldAddress, userAddress, sessionAddress }) : skipToken3
|
|
776
|
+
});
|
|
786
777
|
}
|
|
787
778
|
|
|
788
779
|
// src/onboarding/usePrerequisites.ts
|
|
789
|
-
import { queryOptions as queryOptions5, useQuery as useQuery6, useQueryClient } from "@tanstack/react-query";
|
|
780
|
+
import { queryOptions as queryOptions5, skipToken as skipToken5, useQuery as useQuery6, useQueryClient } from "@tanstack/react-query";
|
|
790
781
|
import { useClient as useClient5, useConfig } from "wagmi";
|
|
791
782
|
|
|
792
783
|
// src/useSessionAccount.ts
|
|
793
784
|
import { useClient as useClient4 } from "wagmi";
|
|
794
|
-
import { queryOptions as queryOptions4, useQuery as useQuery5 } from "@tanstack/react-query";
|
|
785
|
+
import { queryOptions as queryOptions4, skipToken as skipToken4, useQuery as useQuery5 } from "@tanstack/react-query";
|
|
795
786
|
|
|
796
787
|
// src/getSessionAccount.ts
|
|
797
788
|
import { toSimpleSmartAccount } from "permissionless/accounts";
|
|
@@ -855,16 +846,13 @@ function getSessionAccountQueryOptions({
|
|
|
855
846
|
client,
|
|
856
847
|
userAddress
|
|
857
848
|
}) {
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
client && userAddress ? {
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
retry: false
|
|
866
|
-
} : { queryKey, enabled: false }
|
|
867
|
-
);
|
|
849
|
+
return queryOptions4({
|
|
850
|
+
queryKey: ["getSessionAccount", client?.uid, userAddress],
|
|
851
|
+
queryFn: client && userAddress ? () => getSessionAccount({ client, userAddress }) : skipToken4,
|
|
852
|
+
staleTime: Infinity,
|
|
853
|
+
// TODO: replace with function to retry only connection errors
|
|
854
|
+
retry: false
|
|
855
|
+
});
|
|
868
856
|
}
|
|
869
857
|
|
|
870
858
|
// src/onboarding/usePrerequisites.ts
|
|
@@ -876,39 +864,36 @@ function getPrequisitesQueryOptions({
|
|
|
876
864
|
userAddress,
|
|
877
865
|
worldAddress
|
|
878
866
|
}) {
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
client && userAddress ? {
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
retry: false
|
|
910
|
-
} : { queryKey, enabled: false }
|
|
911
|
-
);
|
|
867
|
+
return queryOptions5({
|
|
868
|
+
queryKey: ["getPrerequisites", client?.uid, userAddress],
|
|
869
|
+
queryFn: client && userAddress ? async () => {
|
|
870
|
+
const paymaster = getPaymaster(client.chain);
|
|
871
|
+
const {
|
|
872
|
+
account: { address: sessionAddress }
|
|
873
|
+
} = await queryClient.fetchQuery(getSessionAccountQueryOptions({ client, userAddress }));
|
|
874
|
+
const [sessionBalance, allowance, spender, hasDelegation] = await Promise.all([
|
|
875
|
+
!paymaster ? queryClient.fetchQuery(
|
|
876
|
+
getBalanceQueryOptions(config, { chainId: client.chain.id, address: sessionAddress })
|
|
877
|
+
) : null,
|
|
878
|
+
paymaster?.type === "quarry" ? queryClient.fetchQuery(getAllowanceQueryOptions({ client, userAddress })) : null,
|
|
879
|
+
paymaster?.type === "quarry" ? queryClient.fetchQuery(getSpenderQueryOptions({ client, userAddress, sessionAddress })) : null,
|
|
880
|
+
queryClient.fetchQuery(getDelegationQueryOptions({ client, worldAddress, userAddress, sessionAddress }))
|
|
881
|
+
]);
|
|
882
|
+
const hasAllowance = allowance == null || allowance >= minGasBalance;
|
|
883
|
+
const isSpender = spender == null ? true : spender;
|
|
884
|
+
const hasGasBalance = sessionBalance == null || sessionBalance.value >= minGasBalance;
|
|
885
|
+
return {
|
|
886
|
+
sessionAddress,
|
|
887
|
+
hasAllowance,
|
|
888
|
+
isSpender,
|
|
889
|
+
hasGasBalance,
|
|
890
|
+
hasDelegation,
|
|
891
|
+
// we intentionally don't enforce an allowance/gas balance here
|
|
892
|
+
complete: isSpender && hasDelegation
|
|
893
|
+
};
|
|
894
|
+
} : skipToken5,
|
|
895
|
+
retry: false
|
|
896
|
+
});
|
|
912
897
|
}
|
|
913
898
|
function usePrerequisites(userAddress) {
|
|
914
899
|
const queryClient = useQueryClient();
|
|
@@ -1403,13 +1388,14 @@ import { useEffect as useEffect7 } from "react";
|
|
|
1403
1388
|
import { useClient as useClient8 } from "wagmi";
|
|
1404
1389
|
import {
|
|
1405
1390
|
queryOptions as queryOptions6,
|
|
1391
|
+
skipToken as skipToken6,
|
|
1406
1392
|
useQuery as useQuery8,
|
|
1407
1393
|
useQueryClient as useQueryClient4
|
|
1408
1394
|
} from "@tanstack/react-query";
|
|
1409
1395
|
|
|
1410
1396
|
// src/getSessionClient.ts
|
|
1411
1397
|
import { smartAccountActions } from "permissionless";
|
|
1412
|
-
import { callFrom } from "@latticexyz/world/internal";
|
|
1398
|
+
import { callFrom, sendUserOperationFrom } from "@latticexyz/world/internal";
|
|
1413
1399
|
|
|
1414
1400
|
// src/createBundlerClient.ts
|
|
1415
1401
|
import {
|
|
@@ -1468,6 +1454,12 @@ async function getSessionClient({
|
|
|
1468
1454
|
delegatorAddress: userAddress,
|
|
1469
1455
|
publicClient: client
|
|
1470
1456
|
})
|
|
1457
|
+
).extend(
|
|
1458
|
+
sendUserOperationFrom({
|
|
1459
|
+
worldAddress,
|
|
1460
|
+
delegatorAddress: userAddress,
|
|
1461
|
+
publicClient: client
|
|
1462
|
+
})
|
|
1471
1463
|
).extend(() => ({ userAddress, worldAddress, internal_signer: sessionSigner }));
|
|
1472
1464
|
return sessionClient;
|
|
1473
1465
|
}
|
|
@@ -1482,26 +1474,23 @@ function getSessionClientQueryOptions({
|
|
|
1482
1474
|
userAddress,
|
|
1483
1475
|
worldAddress
|
|
1484
1476
|
}) {
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
userAddress ? {
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
retry: false
|
|
1503
|
-
} : { queryKey, enabled: false }
|
|
1504
|
-
);
|
|
1477
|
+
return queryOptions6({
|
|
1478
|
+
queryKey: ["getSessionClient", client?.uid, userAddress, worldAddress],
|
|
1479
|
+
queryFn: userAddress ? async () => {
|
|
1480
|
+
const { account: sessionAccount, signer: sessionSigner } = await queryClient.fetchQuery(
|
|
1481
|
+
getSessionAccountQueryOptions({ client, userAddress })
|
|
1482
|
+
);
|
|
1483
|
+
return await getSessionClient({
|
|
1484
|
+
sessionAccount,
|
|
1485
|
+
sessionSigner,
|
|
1486
|
+
userAddress,
|
|
1487
|
+
worldAddress
|
|
1488
|
+
});
|
|
1489
|
+
} : skipToken6,
|
|
1490
|
+
staleTime: Infinity,
|
|
1491
|
+
// TODO: replace with function to retry only connection errors
|
|
1492
|
+
retry: false
|
|
1493
|
+
});
|
|
1505
1494
|
}
|
|
1506
1495
|
function useSessionClient(userAddress) {
|
|
1507
1496
|
const queryClient = useQueryClient4();
|