@permissionless/wagmi 0.0.4 → 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.
- package/CHANGELOG.md +6 -0
- package/_cjs/context.js +14 -0
- package/_cjs/context.js.map +1 -0
- package/_cjs/hooks/useAvailableCapabilities.js +37 -0
- package/_cjs/hooks/useAvailableCapabilities.js.map +1 -0
- package/_cjs/hooks/useSendTransaction.js +42 -0
- package/_cjs/hooks/useSendTransaction.js.map +1 -0
- package/_cjs/hooks/useWaitForTransactionReceipt.js +168 -0
- package/_cjs/hooks/useWaitForTransactionReceipt.js.map +1 -0
- package/_cjs/index.js +7 -11
- package/_cjs/index.js.map +1 -1
- package/_cjs/utils/observe.js +43 -0
- package/_cjs/utils/observe.js.map +1 -0
- package/_esm/context.js +10 -0
- package/_esm/context.js.map +1 -0
- package/_esm/hooks/useAvailableCapabilities.js +33 -0
- package/_esm/hooks/useAvailableCapabilities.js.map +1 -0
- package/_esm/hooks/useSendTransaction.js +38 -0
- package/_esm/hooks/useSendTransaction.js.map +1 -0
- package/_esm/hooks/useWaitForTransactionReceipt.js +175 -0
- package/_esm/hooks/useWaitForTransactionReceipt.js.map +1 -0
- package/_esm/index.js +3 -6
- package/_esm/index.js.map +1 -1
- package/_esm/utils/observe.js +46 -0
- package/_esm/utils/observe.js.map +1 -0
- package/_types/context.d.ts +12 -0
- package/_types/context.d.ts.map +1 -0
- package/_types/hooks/useAvailableCapabilities.d.ts +5 -0
- package/_types/hooks/useAvailableCapabilities.d.ts.map +1 -0
- package/_types/hooks/useSendTransaction.d.ts +34 -0
- package/_types/hooks/useSendTransaction.d.ts.map +1 -0
- package/_types/hooks/useWaitForTransactionReceipt.d.ts +92 -0
- package/_types/hooks/useWaitForTransactionReceipt.d.ts.map +1 -0
- package/_types/index.d.ts +3 -6
- package/_types/index.d.ts.map +1 -1
- package/_types/utils/observe.d.ts +23 -0
- package/_types/utils/observe.d.ts.map +1 -0
- package/context.ts +22 -0
- package/hooks/useAvailableCapabilities.ts +43 -0
- package/hooks/useSendTransaction.ts +148 -0
- package/hooks/useWaitForTransactionReceipt.ts +431 -0
- package/index.ts +6 -31
- package/package.json +3 -11
- package/utils/observe.ts +76 -0
- package/_cjs/connectors/biconomySmartAccount.js +0 -18
- package/_cjs/connectors/biconomySmartAccount.js.map +0 -1
- package/_cjs/connectors/kernelSmartAccount.js +0 -18
- package/_cjs/connectors/kernelSmartAccount.js.map +0 -1
- package/_cjs/connectors/safeSmartAccount.js +0 -18
- package/_cjs/connectors/safeSmartAccount.js.map +0 -1
- package/_cjs/connectors/simpleSmartAccount.js +0 -30
- package/_cjs/connectors/simpleSmartAccount.js.map +0 -1
- package/_cjs/connectors/smartAccount.js +0 -51
- package/_cjs/connectors/smartAccount.js.map +0 -1
- package/_esm/connectors/biconomySmartAccount.js +0 -14
- package/_esm/connectors/biconomySmartAccount.js.map +0 -1
- package/_esm/connectors/kernelSmartAccount.js +0 -14
- package/_esm/connectors/kernelSmartAccount.js.map +0 -1
- package/_esm/connectors/safeSmartAccount.js +0 -14
- package/_esm/connectors/safeSmartAccount.js.map +0 -1
- package/_esm/connectors/simpleSmartAccount.js +0 -26
- package/_esm/connectors/simpleSmartAccount.js.map +0 -1
- package/_esm/connectors/smartAccount.js +0 -53
- package/_esm/connectors/smartAccount.js.map +0 -1
- package/_types/connectors/biconomySmartAccount.d.ts +0 -317
- package/_types/connectors/biconomySmartAccount.d.ts.map +0 -1
- package/_types/connectors/kernelSmartAccount.d.ts +0 -317
- package/_types/connectors/kernelSmartAccount.d.ts.map +0 -1
- package/_types/connectors/safeSmartAccount.d.ts +0 -317
- package/_types/connectors/safeSmartAccount.d.ts.map +0 -1
- package/_types/connectors/simpleSmartAccount.d.ts +0 -635
- package/_types/connectors/simpleSmartAccount.d.ts.map +0 -1
- package/_types/connectors/smartAccount.d.ts +0 -294
- package/_types/connectors/smartAccount.d.ts.map +0 -1
- package/connectors/biconomySmartAccount.ts +0 -53
- package/connectors/kernelSmartAccount.ts +0 -53
- package/connectors/safeSmartAccount.ts +0 -50
- package/connectors/simpleSmartAccount.ts +0 -90
- package/connectors/smartAccount.ts +0 -72
package/CHANGELOG.md
CHANGED
package/_cjs/context.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PermissionlessProvider = exports.PermissionlessContext = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
exports.PermissionlessContext = (0, react_1.createContext)({
|
|
6
|
+
capabilities: {}
|
|
7
|
+
});
|
|
8
|
+
const PermissionlessProvider = (parameters) => {
|
|
9
|
+
const { capabilities, children } = parameters;
|
|
10
|
+
const props = { value: { capabilities } };
|
|
11
|
+
return (0, react_1.createElement)(exports.PermissionlessContext.Provider, props, children);
|
|
12
|
+
};
|
|
13
|
+
exports.PermissionlessProvider = PermissionlessProvider;
|
|
14
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../context.ts"],"names":[],"mappings":";;;AAAA,iCAAoD;AAGvC,QAAA,qBAAqB,GAAG,IAAA,qBAAa,EAE/C;IACC,YAAY,EAAE,EAAE;CACnB,CAAC,CAAA;AAMK,MAAM,sBAAsB,GAAG,CAClC,UAAgE,EAClE,EAAE;IACA,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;IAE7C,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,CAAA;IAEzC,OAAO,IAAA,qBAAa,EAAC,6BAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AACzE,CAAC,CAAA;AARY,QAAA,sBAAsB,0BAQlC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useAvailableCapabilities = void 0;
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const wagmi_1 = require("wagmi");
|
|
7
|
+
const experimental_1 = require("wagmi/experimental");
|
|
8
|
+
const context_1 = require("../context.js");
|
|
9
|
+
const useAvailableCapabilities = () => {
|
|
10
|
+
const { capabilities: capabilitiesConfigured } = (0, react_1.useContext)(context_1.PermissionlessContext);
|
|
11
|
+
const account = (0, wagmi_1.useAccount)();
|
|
12
|
+
const { data: availableCapabilities } = (0, experimental_1.useCapabilities)({
|
|
13
|
+
account: account.address
|
|
14
|
+
});
|
|
15
|
+
const memoisedCapabilities = (0, react_1.useMemo)(() => {
|
|
16
|
+
if (!availableCapabilities || !account.chainId)
|
|
17
|
+
return undefined;
|
|
18
|
+
const capabilitiesForChain = availableCapabilities[account.chainId];
|
|
19
|
+
if (capabilitiesConfigured === undefined)
|
|
20
|
+
return undefined;
|
|
21
|
+
let capabilities = undefined;
|
|
22
|
+
for (const capabilityConfigured in capabilitiesConfigured) {
|
|
23
|
+
if (capabilitiesForChain[capabilityConfigured]?.supported) {
|
|
24
|
+
if (!capabilities) {
|
|
25
|
+
capabilities = {};
|
|
26
|
+
}
|
|
27
|
+
capabilities[capabilityConfigured] = {
|
|
28
|
+
...capabilitiesConfigured[capabilityConfigured]
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return capabilities;
|
|
33
|
+
}, [availableCapabilities, account.chainId, capabilitiesConfigured]);
|
|
34
|
+
return { capabilities: memoisedCapabilities };
|
|
35
|
+
};
|
|
36
|
+
exports.useAvailableCapabilities = useAvailableCapabilities;
|
|
37
|
+
//# sourceMappingURL=useAvailableCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAvailableCapabilities.js","sourceRoot":"","sources":["../../hooks/useAvailableCapabilities.ts"],"names":[],"mappings":";AAAA,YAAY,CAAA;;;AAEZ,iCAA2C;AAE3C,iCAAkC;AAClC,qDAAoD;AACpD,wCAAkD;AAE3C,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACzC,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,IAAA,kBAAU,EACvD,+BAAqB,CACxB,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,kBAAU,GAAE,CAAA;IAE5B,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,IAAA,8BAAe,EAAC;QACpD,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACtC,IAAI,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAA;QAChE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACnE,IAAI,sBAAsB,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAE1D,IAAI,YAAY,GACZ,SAAS,CAAA;QAEb,KAAK,MAAM,oBAAoB,IAAI,sBAAsB,EAAE,CAAC;YACxD,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,YAAY,GAAG,EAAE,CAAA;gBACrB,CAAC;gBACD,YAAY,CAAC,oBAAoB,CAAC,GAAG;oBACjC,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;iBAClD,CAAA;YACL,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAA;IACvB,CAAC,EAAE,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAEpE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAA;AACjD,CAAC,CAAA;AAlCY,QAAA,wBAAwB,4BAkCpC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useSendTransaction = void 0;
|
|
4
|
+
const react_query_1 = require("@tanstack/react-query");
|
|
5
|
+
const core_1 = require("@wagmi/core");
|
|
6
|
+
const experimental_1 = require("@wagmi/core/experimental");
|
|
7
|
+
const wagmi_1 = require("wagmi");
|
|
8
|
+
const useAvailableCapabilities_1 = require("./useAvailableCapabilities.js");
|
|
9
|
+
const sendTransactionMutationOptions = (config, parameters = {}) => {
|
|
10
|
+
return {
|
|
11
|
+
mutationFn(variables) {
|
|
12
|
+
if (parameters.capabilities) {
|
|
13
|
+
return (0, experimental_1.sendCalls)(config, {
|
|
14
|
+
calls: [variables],
|
|
15
|
+
capabilities: parameters.capabilities
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
return (0, core_1.sendTransaction)(config, variables);
|
|
19
|
+
},
|
|
20
|
+
mutationKey: ["sendTransaction"]
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
const useSendTransaction = (parameters = {}) => {
|
|
24
|
+
const { mutation } = parameters;
|
|
25
|
+
const { capabilities } = (0, useAvailableCapabilities_1.useAvailableCapabilities)();
|
|
26
|
+
const config = (0, wagmi_1.useConfig)(parameters);
|
|
27
|
+
const mutationOptions = sendTransactionMutationOptions(config, {
|
|
28
|
+
...parameters,
|
|
29
|
+
capabilities
|
|
30
|
+
});
|
|
31
|
+
const { mutate, mutateAsync, ...result } = (0, react_query_1.useMutation)({
|
|
32
|
+
...mutation,
|
|
33
|
+
...mutationOptions
|
|
34
|
+
});
|
|
35
|
+
return {
|
|
36
|
+
...result,
|
|
37
|
+
sendTransaction: mutate,
|
|
38
|
+
sendTransactionAsync: mutateAsync
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
exports.useSendTransaction = useSendTransaction;
|
|
42
|
+
//# sourceMappingURL=useSendTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../hooks/useSendTransaction.ts"],"names":[],"mappings":";;;AAAA,uDAI8B;AAC9B,sCAA6C;AAC7C,2DAAoD;AAQpD,iCAAqE;AAMrE,yEAAqE;AAErE,MAAM,8BAA8B,GAAG,CACnC,MAAc,EACd,aAEI,EAAE,EACR,EAAE;IACA,OAAO;QACH,UAAU,CAAC,SAAS;YAChB,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO,IAAA,wBAAS,EAAC,MAAM,EAAE;oBACrB,KAAK,EAAE,CAAC,SAAS,CAAC;oBAClB,YAAY,EAAE,UAAU,CAAC,YAAY;iBACxC,CAAC,CAAA;YACN,CAAC;YAED,OAAO,IAAA,sBAAe,EAAC,MAAM,EAAE,SAAS,CAAoB,CAAA;QAChE,CAAC;QACD,WAAW,EAAE,CAAC,iBAAiB,CAAC;KAKnC,CAAA;AACL,CAAC,CAAA;AA2EM,MAAM,kBAAkB,GAAG,CAI9B,aAA4D,EAAE,EACjB,EAAE;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;IAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,mDAAwB,GAAE,CAAA;IAEnD,MAAM,MAAM,GAAG,IAAA,iBAAS,EAAC,UAAU,CAAC,CAAA;IAEpC,MAAM,eAAe,GAAG,8BAA8B,CAAC,MAAM,EAAE;QAC3D,GAAG,UAAU;QACb,YAAY;KACf,CAAC,CAAA;IAEF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,IAAA,yBAAW,EAAC;QACnD,GAAG,QAAQ;QACX,GAAG,eAAe;KACrB,CAAC,CAAA;IAGF,OAAO;QACH,GAAG,MAAM;QACT,eAAe,EAAE,MAAmC;QACpD,oBAAoB,EAAE,WAA6C;KACtE,CAAA;AACL,CAAC,CAAA;AA3BY,QAAA,kBAAkB,sBA2B9B"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.useWaitForTransactionReceipt = exports.waitForTransactionReceiptQueryOptions = exports.waitForCallsStatus = exports.getCallsStatusQueryKey = exports.filterQueryOptions = exports.waitForTransactionReceiptQueryKey = void 0;
|
|
5
|
+
const core_1 = require("@wagmi/core");
|
|
6
|
+
const core_2 = require("@wagmi/core");
|
|
7
|
+
const viem_1 = require("viem");
|
|
8
|
+
const actions_1 = require("viem/actions");
|
|
9
|
+
const experimental_1 = require("viem/experimental");
|
|
10
|
+
const utils_1 = require("viem/utils");
|
|
11
|
+
const wagmi_1 = require("wagmi");
|
|
12
|
+
const query_1 = require("wagmi/query");
|
|
13
|
+
const observe_1 = require("../utils/observe.js");
|
|
14
|
+
const useAvailableCapabilities_1 = require("./useAvailableCapabilities.js");
|
|
15
|
+
function waitForTransactionReceiptQueryKey(options = {}) {
|
|
16
|
+
const { ...rest } = options;
|
|
17
|
+
return ["waitForTransactionReceipt", filterQueryOptions(rest)];
|
|
18
|
+
}
|
|
19
|
+
exports.waitForTransactionReceiptQueryKey = waitForTransactionReceiptQueryKey;
|
|
20
|
+
function filterQueryOptions(options) {
|
|
21
|
+
const { _defaulted, behavior, gcTime, initialData, initialDataUpdatedAt, maxPages, meta, networkMode, queryFn, queryHash, queryKey, queryKeyHashFn, retry, retryDelay, structuralSharing, getPreviousPageParam, getNextPageParam, initialPageParam, _optimisticResults, enabled, notifyOnChangeProps, placeholderData, refetchInterval, refetchIntervalInBackground, refetchOnMount, refetchOnReconnect, refetchOnWindowFocus, retryOnMount, select, staleTime, suspense, throwOnError, config, connector, query, ...rest } = options;
|
|
22
|
+
return rest;
|
|
23
|
+
}
|
|
24
|
+
exports.filterQueryOptions = filterQueryOptions;
|
|
25
|
+
function getCallsStatusQueryKey(options) {
|
|
26
|
+
return ["callsStatus", filterQueryOptions(options)];
|
|
27
|
+
}
|
|
28
|
+
exports.getCallsStatusQueryKey = getCallsStatusQueryKey;
|
|
29
|
+
async function waitForCallsStatus(config, parameters) {
|
|
30
|
+
const { timeout = 0, id, pollingInterval, retryCount = 6, confirmations = 1 } = parameters;
|
|
31
|
+
const client = await (0, core_1.getConnectorClient)(config, {});
|
|
32
|
+
const observerId = (0, viem_1.stringify)(["waitForTransactionReceipt", client.uid, id]);
|
|
33
|
+
let count = 0;
|
|
34
|
+
let receipt;
|
|
35
|
+
return new Promise((resolve, reject) => {
|
|
36
|
+
if (timeout)
|
|
37
|
+
setTimeout(() => reject(new viem_1.WaitForTransactionReceiptTimeoutError({
|
|
38
|
+
hash: id
|
|
39
|
+
})), timeout);
|
|
40
|
+
const _unobserve = (0, observe_1.observe)(observerId, { resolve, reject }, (emit) => {
|
|
41
|
+
const _unwatch = (0, utils_1.getAction)(client, actions_1.watchBlockNumber, "watchBlockNumber")({
|
|
42
|
+
emitMissed: true,
|
|
43
|
+
emitOnBegin: true,
|
|
44
|
+
poll: true,
|
|
45
|
+
pollingInterval,
|
|
46
|
+
async onBlockNumber(blockNumber) {
|
|
47
|
+
const done = (fn) => {
|
|
48
|
+
_unwatch();
|
|
49
|
+
fn();
|
|
50
|
+
_unobserve();
|
|
51
|
+
};
|
|
52
|
+
if (count > retryCount)
|
|
53
|
+
done(() => emit.reject(new viem_1.WaitForTransactionReceiptTimeoutError({
|
|
54
|
+
hash: id
|
|
55
|
+
})));
|
|
56
|
+
try {
|
|
57
|
+
if (receipt) {
|
|
58
|
+
if (confirmations > 1 &&
|
|
59
|
+
(!receipt.receipts?.[0]?.blockNumber ||
|
|
60
|
+
blockNumber -
|
|
61
|
+
receipt.receipts?.[0]?.blockNumber +
|
|
62
|
+
1n <
|
|
63
|
+
confirmations))
|
|
64
|
+
return;
|
|
65
|
+
if (receipt.status === "PENDING") {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (receipt.receipts?.length === 0) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const finalReceipt = receipt.receipts;
|
|
72
|
+
if (!finalReceipt) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const transactionReceipt = await (0, utils_1.getAction)(client, actions_1.getTransactionReceipt, "getTransactionReceipt")({ hash: finalReceipt[0].transactionHash });
|
|
76
|
+
done(() => emit.resolve({
|
|
77
|
+
...transactionReceipt,
|
|
78
|
+
chainId: client.chain.id
|
|
79
|
+
}));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
receipt = await (0, utils_1.getAction)(client, experimental_1.getCallsStatus, "getCallsStatus")({ id });
|
|
83
|
+
if (receipt.status === "PENDING") {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
if (confirmations > 1 &&
|
|
87
|
+
(!receipt.receipts?.[0]?.blockNumber ||
|
|
88
|
+
blockNumber -
|
|
89
|
+
receipt.receipts?.[0]?.blockNumber +
|
|
90
|
+
1n <
|
|
91
|
+
confirmations))
|
|
92
|
+
return;
|
|
93
|
+
if (receipt.receipts?.length === 0) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
const finalReceipt = receipt.receipts;
|
|
97
|
+
if (!finalReceipt) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
const transactionReceipt = await (0, utils_1.getAction)(client, actions_1.getTransactionReceipt, "getTransactionReceipt")({ hash: finalReceipt[0].transactionHash });
|
|
101
|
+
done(() => emit.resolve({
|
|
102
|
+
...transactionReceipt,
|
|
103
|
+
chainId: client.chain.id
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
catch (err) {
|
|
107
|
+
done(() => emit.reject(err));
|
|
108
|
+
}
|
|
109
|
+
finally {
|
|
110
|
+
count++;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
exports.waitForCallsStatus = waitForCallsStatus;
|
|
118
|
+
function waitForTransactionReceiptQueryOptions(config, options) {
|
|
119
|
+
return {
|
|
120
|
+
async queryFn({ queryKey }) {
|
|
121
|
+
const { scopeKey: _, id, ...parameters } = queryKey[1];
|
|
122
|
+
if (!id)
|
|
123
|
+
throw new Error("id is required");
|
|
124
|
+
if (!options.capabilities && !(0, viem_1.isHash)(id)) {
|
|
125
|
+
throw new Error("capabilities or hash is required");
|
|
126
|
+
}
|
|
127
|
+
if (options.capabilities) {
|
|
128
|
+
const status = await waitForCallsStatus(config, {
|
|
129
|
+
id,
|
|
130
|
+
...parameters
|
|
131
|
+
});
|
|
132
|
+
return status;
|
|
133
|
+
}
|
|
134
|
+
const status = await (0, core_1.waitForTransactionReceipt)(config, {
|
|
135
|
+
hash: id,
|
|
136
|
+
...options,
|
|
137
|
+
...parameters
|
|
138
|
+
});
|
|
139
|
+
return status;
|
|
140
|
+
},
|
|
141
|
+
queryKey: waitForTransactionReceiptQueryKey(options),
|
|
142
|
+
retry(failureCount, error) {
|
|
143
|
+
if (error instanceof core_2.ConnectorNotConnectedError)
|
|
144
|
+
return false;
|
|
145
|
+
return failureCount < 3;
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
exports.waitForTransactionReceiptQueryOptions = waitForTransactionReceiptQueryOptions;
|
|
150
|
+
function useWaitForTransactionReceipt(parameters = {}) {
|
|
151
|
+
const { query = {} } = parameters;
|
|
152
|
+
const { capabilities } = (0, useAvailableCapabilities_1.useAvailableCapabilities)();
|
|
153
|
+
const config = (0, wagmi_1.useConfig)(parameters);
|
|
154
|
+
const chainId = (0, wagmi_1.useChainId)({ config });
|
|
155
|
+
const enabled = Boolean(parameters.id && (query.enabled ?? true));
|
|
156
|
+
const options = waitForTransactionReceiptQueryOptions(config, {
|
|
157
|
+
...parameters,
|
|
158
|
+
chainId: parameters.chainId ?? chainId,
|
|
159
|
+
capabilities
|
|
160
|
+
});
|
|
161
|
+
return (0, query_1.useQuery)({
|
|
162
|
+
...query,
|
|
163
|
+
...options,
|
|
164
|
+
enabled
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
exports.useWaitForTransactionReceipt = useWaitForTransactionReceipt;
|
|
168
|
+
//# sourceMappingURL=useWaitForTransactionReceipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useWaitForTransactionReceipt.js","sourceRoot":"","sources":["../../hooks/useWaitForTransactionReceipt.ts"],"names":[],"mappings":"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"}
|
package/_cjs/index.js
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "
|
|
8
|
-
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
const biconomySmartAccount_1 = require("./connectors/biconomySmartAccount.js");
|
|
11
|
-
Object.defineProperty(exports, "biconomySmartAccount", { enumerable: true, get: function () { return biconomySmartAccount_1.biconomySmartAccount; } });
|
|
12
|
-
const kernelSmartAccount_1 = require("./connectors/kernelSmartAccount.js");
|
|
13
|
-
Object.defineProperty(exports, "kernelSmartAccount", { enumerable: true, get: function () { return kernelSmartAccount_1.kernelSmartAccount; } });
|
|
3
|
+
exports.useWaitForTransactionReceipt = exports.useSendTransaction = exports.PermissionlessProvider = void 0;
|
|
4
|
+
var context_1 = require("./context.js");
|
|
5
|
+
Object.defineProperty(exports, "PermissionlessProvider", { enumerable: true, get: function () { return context_1.PermissionlessProvider; } });
|
|
6
|
+
var useSendTransaction_1 = require("./hooks/useSendTransaction.js");
|
|
7
|
+
Object.defineProperty(exports, "useSendTransaction", { enumerable: true, get: function () { return useSendTransaction_1.useSendTransaction; } });
|
|
8
|
+
var useWaitForTransactionReceipt_1 = require("./hooks/useWaitForTransactionReceipt.js");
|
|
9
|
+
Object.defineProperty(exports, "useWaitForTransactionReceipt", { enumerable: true, get: function () { return useWaitForTransactionReceipt_1.useWaitForTransactionReceipt; } });
|
|
14
10
|
//# sourceMappingURL=index.js.map
|
package/_cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,qCAGkB;AAFd,iHAAA,sBAAsB,OAAA;AAI1B,iEAA+D;AAAtD,wHAAA,kBAAkB,OAAA;AAC3B,qFAAmF;AAA1E,4IAAA,4BAA4B,OAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.observe = exports.cleanupCache = exports.listenersCache = void 0;
|
|
4
|
+
exports.listenersCache = new Map();
|
|
5
|
+
exports.cleanupCache = new Map();
|
|
6
|
+
let callbackCount = 0;
|
|
7
|
+
function observe(observerId, callbacks, fn) {
|
|
8
|
+
const callbackId = ++callbackCount;
|
|
9
|
+
const getListeners = () => exports.listenersCache.get(observerId) || [];
|
|
10
|
+
const unsubscribe = () => {
|
|
11
|
+
const listeners = getListeners();
|
|
12
|
+
exports.listenersCache.set(observerId, listeners.filter((cb) => cb.id !== callbackId));
|
|
13
|
+
};
|
|
14
|
+
const unwatch = () => {
|
|
15
|
+
const cleanup = exports.cleanupCache.get(observerId);
|
|
16
|
+
if (getListeners().length === 1 && cleanup)
|
|
17
|
+
cleanup();
|
|
18
|
+
unsubscribe();
|
|
19
|
+
};
|
|
20
|
+
const listeners = getListeners();
|
|
21
|
+
exports.listenersCache.set(observerId, [
|
|
22
|
+
...listeners,
|
|
23
|
+
{ id: callbackId, fns: callbacks }
|
|
24
|
+
]);
|
|
25
|
+
if (listeners && listeners.length > 0)
|
|
26
|
+
return unwatch;
|
|
27
|
+
const emit = {};
|
|
28
|
+
for (const key in callbacks) {
|
|
29
|
+
emit[key] = ((...args) => {
|
|
30
|
+
const listeners = getListeners();
|
|
31
|
+
if (listeners.length === 0)
|
|
32
|
+
return;
|
|
33
|
+
for (const listener of listeners)
|
|
34
|
+
listener.fns[key]?.(...args);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const cleanup = fn(emit);
|
|
38
|
+
if (typeof cleanup === "function")
|
|
39
|
+
exports.cleanupCache.set(observerId, cleanup);
|
|
40
|
+
return unwatch;
|
|
41
|
+
}
|
|
42
|
+
exports.observe = observe;
|
|
43
|
+
//# sourceMappingURL=observe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observe.js","sourceRoot":"","sources":["../../utils/observe.ts"],"names":[],"mappings":";;;AAUa,QAAA,cAAc,GAAiB,IAAI,GAAG,EAGhD,CAAA;AAEU,QAAA,YAAY,GAAiB,IAAI,GAAG,EAAsB,CAAA;AAOvE,IAAI,aAAa,GAAG,CAAC,CAAA;AAOrB,SAAgB,OAAO,CACnB,UAAkB,EAClB,SAAoB,EACpB,EAA2B;IAE3B,MAAM,UAAU,GAAG,EAAE,aAAa,CAAA;IAElC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,sBAAc,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAA;IAE/D,MAAM,WAAW,GAAG,GAAG,EAAE;QACrB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;QAChC,sBAAc,CAAC,GAAG,CACd,UAAU,EACV,SAAS,CAAC,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CACtD,CAAA;IACL,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,MAAM,OAAO,GAAG,oBAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QAC5C,IAAI,YAAY,EAAE,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO;YAAE,OAAO,EAAE,CAAA;QACrD,WAAW,EAAE,CAAA;IACjB,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;IAChC,sBAAc,CAAC,GAAG,CAAC,UAAU,EAAE;QAC3B,GAAG,SAAS;QACZ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE;KACrC,CAAC,CAAA;IAEF,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAA;IAErD,MAAM,IAAI,GAAc,EAAe,CAAA;IACvC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CACT,GAAG,IAAyD,EAC9D,EAAE;YACA,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;YAChC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAM;YAClC,KAAK,MAAM,QAAQ,IAAI,SAAS;gBAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;QAClE,CAAC,CAAgD,CAAA;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACxB,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,oBAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAExE,OAAO,OAAO,CAAA;AAClB,CAAC;AA9CD,0BA8CC"}
|
package/_esm/context.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createContext, createElement } from "react";
|
|
2
|
+
export const PermissionlessContext = createContext({
|
|
3
|
+
capabilities: {}
|
|
4
|
+
});
|
|
5
|
+
export const PermissionlessProvider = (parameters) => {
|
|
6
|
+
const { capabilities, children } = parameters;
|
|
7
|
+
const props = { value: { capabilities } };
|
|
8
|
+
return createElement(PermissionlessContext.Provider, props, children);
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAGpD,MAAM,CAAC,MAAM,qBAAqB,GAAG,aAAa,CAE/C;IACC,YAAY,EAAE,EAAE;CACnB,CAAC,CAAA;AAMF,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAClC,UAAgE,EAClE,EAAE;IACA,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;IAE7C,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,CAAA;IAEzC,OAAO,aAAa,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AACzE,CAAC,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useContext, useMemo } from "react";
|
|
3
|
+
import { useAccount } from "wagmi";
|
|
4
|
+
import { useCapabilities } from "wagmi/experimental";
|
|
5
|
+
import { PermissionlessContext } from "../context.js";
|
|
6
|
+
export const useAvailableCapabilities = () => {
|
|
7
|
+
const { capabilities: capabilitiesConfigured } = useContext(PermissionlessContext);
|
|
8
|
+
const account = useAccount();
|
|
9
|
+
const { data: availableCapabilities } = useCapabilities({
|
|
10
|
+
account: account.address
|
|
11
|
+
});
|
|
12
|
+
const memoisedCapabilities = useMemo(() => {
|
|
13
|
+
if (!availableCapabilities || !account.chainId)
|
|
14
|
+
return undefined;
|
|
15
|
+
const capabilitiesForChain = availableCapabilities[account.chainId];
|
|
16
|
+
if (capabilitiesConfigured === undefined)
|
|
17
|
+
return undefined;
|
|
18
|
+
let capabilities = undefined;
|
|
19
|
+
for (const capabilityConfigured in capabilitiesConfigured) {
|
|
20
|
+
if (capabilitiesForChain[capabilityConfigured]?.supported) {
|
|
21
|
+
if (!capabilities) {
|
|
22
|
+
capabilities = {};
|
|
23
|
+
}
|
|
24
|
+
capabilities[capabilityConfigured] = {
|
|
25
|
+
...capabilitiesConfigured[capabilityConfigured]
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return capabilities;
|
|
30
|
+
}, [availableCapabilities, account.chainId, capabilitiesConfigured]);
|
|
31
|
+
return { capabilities: memoisedCapabilities };
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=useAvailableCapabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAvailableCapabilities.js","sourceRoot":"","sources":["../../hooks/useAvailableCapabilities.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAElD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACzC,MAAM,EAAE,YAAY,EAAE,sBAAsB,EAAE,GAAG,UAAU,CACvD,qBAAqB,CACxB,CAAA;IAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAE5B,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,GAAG,eAAe,CAAC;QACpD,OAAO,EAAE,OAAO,CAAC,OAAO;KAC3B,CAAC,CAAA;IAEF,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,CAAC,qBAAqB,IAAI,CAAC,OAAO,CAAC,OAAO;YAAE,OAAO,SAAS,CAAA;QAChE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;QACnE,IAAI,sBAAsB,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAE1D,IAAI,YAAY,GACZ,SAAS,CAAA;QAEb,KAAK,MAAM,oBAAoB,IAAI,sBAAsB,EAAE,CAAC;YACxD,IAAI,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,SAAS,EAAE,CAAC;gBACxD,IAAI,CAAC,YAAY,EAAE,CAAC;oBAChB,YAAY,GAAG,EAAE,CAAA;gBACrB,CAAC;gBACD,YAAY,CAAC,oBAAoB,CAAC,GAAG;oBACjC,GAAG,sBAAsB,CAAC,oBAAoB,CAAC;iBAClD,CAAA;YACL,CAAC;QACL,CAAC;QAED,OAAO,YAAY,CAAA;IACvB,CAAC,EAAE,CAAC,qBAAqB,EAAE,OAAO,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAA;IAEpE,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,CAAA;AACjD,CAAC,CAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { useMutation } from "@tanstack/react-query";
|
|
2
|
+
import { sendTransaction } from "@wagmi/core";
|
|
3
|
+
import { sendCalls } from "@wagmi/core/experimental";
|
|
4
|
+
import { useConfig } from "wagmi";
|
|
5
|
+
import { useAvailableCapabilities } from "./useAvailableCapabilities.js";
|
|
6
|
+
const sendTransactionMutationOptions = (config, parameters = {}) => {
|
|
7
|
+
return {
|
|
8
|
+
mutationFn(variables) {
|
|
9
|
+
if (parameters.capabilities) {
|
|
10
|
+
return sendCalls(config, {
|
|
11
|
+
calls: [variables],
|
|
12
|
+
capabilities: parameters.capabilities
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return sendTransaction(config, variables);
|
|
16
|
+
},
|
|
17
|
+
mutationKey: ["sendTransaction"]
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export const useSendTransaction = (parameters = {}) => {
|
|
21
|
+
const { mutation } = parameters;
|
|
22
|
+
const { capabilities } = useAvailableCapabilities();
|
|
23
|
+
const config = useConfig(parameters);
|
|
24
|
+
const mutationOptions = sendTransactionMutationOptions(config, {
|
|
25
|
+
...parameters,
|
|
26
|
+
capabilities
|
|
27
|
+
});
|
|
28
|
+
const { mutate, mutateAsync, ...result } = useMutation({
|
|
29
|
+
...mutation,
|
|
30
|
+
...mutationOptions
|
|
31
|
+
});
|
|
32
|
+
return {
|
|
33
|
+
...result,
|
|
34
|
+
sendTransaction: mutate,
|
|
35
|
+
sendTransactionAsync: mutateAsync
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=useSendTransaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSendTransaction.js","sourceRoot":"","sources":["../../hooks/useSendTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,WAAW,EACd,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAQpD,OAAO,EAAsC,SAAS,EAAE,MAAM,OAAO,CAAA;AAMrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAA;AAErE,MAAM,8BAA8B,GAAG,CACnC,MAAc,EACd,aAEI,EAAE,EACR,EAAE;IACA,OAAO;QACH,UAAU,CAAC,SAAS;YAChB,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;gBAC1B,OAAO,SAAS,CAAC,MAAM,EAAE;oBACrB,KAAK,EAAE,CAAC,SAAS,CAAC;oBAClB,YAAY,EAAE,UAAU,CAAC,YAAY;iBACxC,CAAC,CAAA;YACN,CAAC;YAED,OAAO,eAAe,CAAC,MAAM,EAAE,SAAS,CAAoB,CAAA;QAChE,CAAC;QACD,WAAW,EAAE,CAAC,iBAAiB,CAAC;KAKnC,CAAA;AACL,CAAC,CAAA;AA2ED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAI9B,aAA4D,EAAE,EACjB,EAAE;IAC/C,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;IAC/B,MAAM,EAAE,YAAY,EAAE,GAAG,wBAAwB,EAAE,CAAA;IAEnD,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAA;IAEpC,MAAM,eAAe,GAAG,8BAA8B,CAAC,MAAM,EAAE;QAC3D,GAAG,UAAU;QACb,YAAY;KACf,CAAC,CAAA;IAEF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC;QACnD,GAAG,QAAQ;QACX,GAAG,eAAe;KACrB,CAAC,CAAA;IAGF,OAAO;QACH,GAAG,MAAM;QACT,eAAe,EAAE,MAAmC;QACpD,oBAAoB,EAAE,WAA6C;KACtE,CAAA;AACL,CAAC,CAAA"}
|