@zama-fhe/sdk 3.7.1 → 3.7.2
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/cjs/query/index.cjs +1 -1
- package/dist/cjs/query/index.cjs.map +1 -1
- package/dist/cjs/telemetry.cjs +1 -1
- package/dist/esm/cleartext/index.js +1 -1
- package/dist/esm/{cleartext-DBZq4E1O.js → cleartext-Ck0gNKy1.js} +2 -2
- package/dist/esm/{cleartext-DBZq4E1O.js.map → cleartext-Ck0gNKy1.js.map} +1 -1
- package/dist/esm/{fhevm-relayer-BEQ31nmT.js → fhevm-relayer-DnAUqf3b.js} +2 -2
- package/dist/esm/{fhevm-relayer-BEQ31nmT.js.map → fhevm-relayer-DnAUqf3b.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/node/index.js +1 -1
- package/dist/esm/query/index.d.ts +1 -1
- package/dist/esm/query/index.js +1 -1
- package/dist/esm/query/index.js.map +1 -1
- package/dist/esm/{telemetry-CBSzrmab.js → telemetry-IaHYnoo4.js} +2 -2
- package/dist/esm/{telemetry-CBSzrmab.js.map → telemetry-IaHYnoo4.js.map} +1 -1
- package/dist/esm/vaults/index.js +1 -1
- package/dist/esm/web/index.js +1 -1
- package/package.json +1 -1
package/dist/cjs/query/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../relayer.cjs"),t=require("../erc165.cjs"),n=require("../token.cjs"),r=require("../wrappers-registry.cjs"),i=require("../invalidation.cjs");let a=require("viem");function o(e,n,r){let a=i.f.tokenMetadata.token(n);return{...i.p(r?.query??{}),queryKey:a,queryFn:async n=>{let[,{tokenAddress:r}]=n.queryKey,[i,a,o]=await Promise.all([e.provider.readContract(t.p(r)),e.provider.readContract(t.m(r)),e.provider.readContract(t.d(r))]);return{name:i,symbol:a,decimals:o}},staleTime:1/0,enabled:r?.query?.enabled!==!1}}function s(n,r,a){let o=i.f.isConfidential.token(r);return{...i.p(a?.query??{}),queryKey:o,queryFn:async r=>{let[,{tokenAddress:i}]=r.queryKey;try{return await n.provider.readContract(t.i(i))}catch(t){if(e.f(t))return!1;throw t}},staleTime:1/0,enabled:a?.query?.enabled!==!1}}function c(n,r,a){let o=i.f.isWrapper.token(r);return{...i.p(a?.query??{}),queryKey:o,queryFn:async r=>{let[,{tokenAddress:i}]=r.queryKey;try{return await n.provider.readContract(t.a(i))}catch(t){if(e.f(t))return!1;throw t}},staleTime:1/0,enabled:a?.query?.enabled!==!1}}function l(e,n,r){let a=i.f.totalSupply.token(n);return{...i.p(r?.query??{}),queryKey:a,queryFn:async n=>{let[,{tokenAddress:r}]=n.queryKey;return e.provider.readContract(t.S(r))},staleTime:3e4,enabled:r?.query?.enabled!==!1}}function u(e,n){let r=i.f.wrapperDiscovery.token(n.tokenAddress,n.erc20Address,n.registryAddress);return{...i.p(n.query??{}),queryKey:r,queryFn:async n=>{let[,{erc20Address:r}]=n.queryKey;t.P(r,`wrapperDiscoveryQueryOptions: erc20Address`);let i=await e.getConfidentialToken(r);return i?i.confidentialTokenAddress:null},staleTime:1/0,enabled:!!(n.tokenAddress&&n.erc20Address&&n.registryAddress)&&n.query?.enabled!==!1}}function d(e,n,r){let a=r.owner,o=r.query?.enabled!==!1,s=i.f.underlyingAllowance.scope(n,a);return{...i.p(r.query??{}),queryKey:s,queryFn:async n=>{let[,{tokenAddress:r,owner:i}]=n.queryKey;t.P(i,`underlyingAllowanceQueryOptions: owner`);let a=await e.provider.readContract(t.E(r));return e.provider.readContract(t.c(a,i,r))},staleTime:3e4,enabled:!!a&&o}}function f(e,t,n){let r=i.f.pendingUnshield.token(t);return{...i.p(n?.query??{}),queryKey:r,queryFn:async t=>{let[,{tokenAddress:n}]=t.queryKey;return e.createWrappedToken(n).getPendingUnshield()},staleTime:0,enabled:n?.query?.enabled!==!1}}function p(e,n,r){let a=r.holder,o=r.spender,s=r.query?.enabled!==!1,c=i.f.confidentialIsOperator.scope(n,a,o);return{...i.p(r.query??{}),queryKey:c,queryFn:async n=>{let[,{tokenAddress:r,holder:i,spender:a}]=n.queryKey;return t.P(r,`confidentialIsOperatorQueryOptions: tokenAddress`),t.P(i,`confidentialIsOperatorQueryOptions: holder`),t.P(a,`confidentialIsOperatorQueryOptions: spender`),e.provider.readContract(t.C(r,i,a))},staleTime:3e4,enabled:!!(n&&a&&o)&&s}}function m(e,n,r={}){let a=n.query??{};return{...i.p(a),queryKey:i.f.confidentialBalance.owner(n.tokenAddress,n.account,r.walletAccount),queryFn:async n=>{let[,{owner:r}]=n.queryKey;return t.P(r,`confidentialBalanceQueryOptions: owner`),e.balanceOf(r)},enabled:!!n.account&&r.walletAccount!==void 0&&a?.enabled!==!1}}function h(e,r,a={}){let o=r?.account,s=a.walletAccount,c=r?.query??{},l=e.map(e=>e.address);return{...i.p(c),queryKey:i.f.confidentialBalances.tokens(l,o,s),queryFn:async r=>{let[,{owner:i}]=r.queryKey;return t.P(i,`confidentialBalancesQueryOptions: owner`),n.t.batchBalancesOf(e,i)},enabled:!!o&&e.length>0&&s!==void 0&&c?.enabled!==!1}}function g(e,t){let n=!!t.registryAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPairs(t.registryAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n}]=t.queryKey;return e.provider.readContract(r.i(n))},staleTime:e.registry.ttlMs,enabled:n}}function _(e,t){let n=!!t.registryAddress&&!!t.tokenAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.confidentialTokenAddress(t.registryAddress??a.zeroAddress,t.tokenAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,tokenAddress:i}]=t.queryKey;return e.provider.readContract(r.t(n,i))},staleTime:e.registry.ttlMs,enabled:n}}function v(e,t){let n=!!t.registryAddress&&!!t.confidentialTokenAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenAddress(t.registryAddress??a.zeroAddress,t.confidentialTokenAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,confidentialTokenAddress:i}]=t.queryKey;return e.provider.readContract(r.n(n,i))},staleTime:e.registry.ttlMs,enabled:n}}function y(e,t){let n=!!t.registryAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPairsLength(t.registryAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n}]=t.queryKey;return e.provider.readContract(r.a(n))},staleTime:e.registry.ttlMs,enabled:n}}function b(e,t){let n=!!t.registryAddress&&t.fromIndex!==void 0&&t.toIndex!==void 0&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPairsSlice(t.registryAddress??a.zeroAddress,String(t.fromIndex??0n),String(t.toIndex??0n));return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,fromIndex:i,toIndex:a}]=t.queryKey;return e.provider.readContract(r.o(n,BigInt(i),BigInt(a)))},staleTime:e.registry.ttlMs,enabled:n}}function x(e,t){let n=!!t.registryAddress&&t.index!==void 0&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPair(t.registryAddress??a.zeroAddress,String(t.index??0n));return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,index:i}]=t.queryKey;return e.provider.readContract(r.r(n,BigInt(i)))},staleTime:e.registry.ttlMs,enabled:n}}function S(e,t){let n=!!t.registryAddress&&!!t.confidentialTokenAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.isConfidentialTokenValid(t.registryAddress??a.zeroAddress,t.confidentialTokenAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,confidentialTokenAddress:i}]=t.queryKey;return e.provider.readContract(r.s(n,i))},staleTime:e.registry.ttlMs,enabled:n}}function C(e,t){let n=!!t.registryAddress&&t.query?.enabled!==!1,r=i.f.wrappersRegistry.listPairs(t.registryAddress??a.zeroAddress,t.page??1,t.pageSize??100,t.metadata??!1);return{...i.p(t.query??{}),queryKey:r,queryFn:async t=>{let[,{page:n,pageSize:r,metadata:i}]=t.queryKey;return e.listPairs({page:n,pageSize:r,metadata:i})},staleTime:e.ttlMs,enabled:n}}function w(e){return{mutationKey:[`zama.shield`,e.address],mutationFn:async({amount:t,...n})=>e.shield(t,n)}}function T(e){return{mutationKey:[`zama.confidentialTransfer`,e.address],mutationFn:async({to:t,amount:n,...r})=>e.confidentialTransfer(t,n,r)}}function E(e){return{mutationKey:[`zama.confidentialTransferAndCall`,e.address],mutationFn:async({to:t,amount:n,data:r,...i})=>e.confidentialTransferAndCall(t,n,r,i)}}function D(e){return{mutationKey:[`zama.confidentialTransferFrom`,e.address],mutationFn:async({from:t,to:n,amount:r,callbacks:i})=>e.confidentialTransferFrom(t,n,r,i)}}function O(e){return{mutationKey:[`zama.confidentialTransferFromAndCall`,e.address],mutationFn:async({from:t,to:n,amount:r,data:i,callbacks:a})=>e.confidentialTransferFromAndCall(t,n,r,i,a)}}function k(e){return{mutationKey:[`zama.confidentialSetOperator`,e.address],mutationFn:async({operator:t,until:n})=>e.setOperator(t,n)}}function A(e){return{mutationKey:[`zama.approveUnderlying`,e.address],mutationFn:async({amount:t})=>e.approveUnderlying(t)}}function ee(e){return{mutationKey:[`zama.unshield`,e.address],mutationFn:async({amount:t,...n})=>e.unshield(t,n)}}function j(e){return{mutationKey:[`zama.unshieldAll`,e.address],mutationFn:async t=>e.unshieldAll(t||void 0)}}function M(e){return{mutationKey:[`zama.resumeUnshield`,e.address],mutationFn:async({unwrapTxHash:t,...n})=>e.resumeUnshield(t,n)}}function N(e){return{mutationKey:[`zama.unwrap`,e.address],mutationFn:async({amount:t})=>e.unwrap(t)}}function P(e){return{mutationKey:[`zama.wrap`,e.address],mutationFn:async({amount:t,...n})=>e.wrap(t,n)}}function F(e){return{mutationKey:[`zama.unwrapAll`,e.address],mutationFn:async()=>e.unwrapAll()}}function I(e){return{mutationKey:[`zama.finalizeUnwrap`,e.address],mutationFn:async({unwrapRequestId:t})=>e.finalizeUnwrap(t)}}function L(e){return{mutationKey:[`zama.encrypt`],mutationFn:async t=>e.encrypt(t)}}function R(e){return{mutationKey:[`zama.delegatedDecryptValues`],mutationFn:async t=>e.decryption.delegatedDecryptValues(t.encryptedInputs,t.delegatorAddress)}}function z(e){return{mutationKey:[`zama.decryptPublicValues`],mutationFn:async t=>e.decryption.decryptPublicValues(t),onSuccess:(e,t,n,r)=>{for(let[t,n]of Object.entries(e.clearValues))r.client.setQueryData(i.f.decryption.encryptedValue(t),n)}}}function B(e){return{mutationKey:[`zama.grantPermit`],mutationFn:t=>e.permits.grantPermit(t)}}function V(e){return{mutationKey:[`zama.preparePermit`],mutationFn:t=>e.offline.preparePermit(t)}}function H(e){return{mutationKey:[`zama.batchPreparePermits`],mutationFn:t=>e.offline.batchPreparePermits(t)}}function U(e){return{mutationKey:[`zama.registerPermit`],mutationFn:({prepared:t,signature:n})=>e.permits.registerPermit(t,n)}}function W(e){return{mutationKey:[`zama.batchRegisterPermits`],mutationFn:t=>e.permits.batchRegisterPermits(t)}}function G(e,t,n={}){let r=t.query?.enabled!==!1;return{...i.p(t?.query??{}),queryKey:i.f.hasPermit.scope(t.contractAddresses,n.walletAccount),queryFn:t=>{let[,{contractAddresses:n}]=t.queryKey;return e.permits.hasPermit(n)},staleTime:0,gcTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1,enabled:r&&n.walletAccount!==void 0&&t.contractAddresses.length>0}}function K(e){return{mutationKey:[`zama.revokePermits`],mutationFn:t=>t===void 0?e.permits.revokePermits():e.permits.revokePermits(t)}}function q(e){return{mutationKey:[`zama.clearCredentials`],mutationFn:()=>e.permits.clear()}}function J(e,t){return{mutationKey:[`zama.delegateDecryption`,t],mutationFn:async({delegateAddress:n,expirationDate:r})=>e.delegations.delegateDecryption({contractAddress:t,delegateAddress:n,expirationDate:r})}}function Y(e,t,n={}){return{queryKey:i.f.decryption.encryptedInputs(t,n.walletAccount),queryFn:t=>{let[,{encryptedInputs:n}]=t.queryKey;return e.decryption.decryptValues(n)},staleTime:1/0,enabled:t.length>0&&n.walletAccount!==void 0}}function X(e){return{mutationKey:[`zama.decryptBalanceAs`,e.address],mutationFn:async({delegatorAddress:t,accountAddress:n})=>e.decryptBalanceAs({delegatorAddress:t,accountAddress:n})}}function Z(e){return{mutationKey:[`zama.batchDecryptBalancesAs`,...e.map(e=>e.address)],mutationFn:async t=>n.t.batchDecryptBalancesAs(e,t)}}function Q(e,t){return{mutationKey:[`zama.revokeDelegation`,t],mutationFn:async({delegateAddress:n})=>e.delegations.revokeDelegation({contractAddress:t,delegateAddress:n})}}function $(e,n){return{...i.p(n.query??{}),queryKey:i.f.delegationStatus.scope(n.contractAddress,n.delegatorAddress,n.delegateAddress),queryFn:async n=>{let[,{contractAddress:r,delegatorAddress:i,delegateAddress:a}]=n.queryKey;return t.P(r,`delegationStatusQueryOptions: contractAddress`),t.P(i,`delegationStatusQueryOptions: delegatorAddress`),t.P(a,`delegationStatusQueryOptions: delegateAddress`),e.delegations.getStatus({contractAddress:r,delegatorAddress:i,delegateAddress:a})},enabled:!!(n.contractAddress&&n.delegatorAddress&&n.delegateAddress)&&n.query?.enabled!==!1}}exports.ZamaSDKEvents=t.F,exports.approveUnderlyingMutationOptions=A,exports.batchDecryptBalancesAsMutationOptions=Z,exports.batchPreparePermitsMutationOptions=H,exports.batchRegisterPermitsMutationOptions=W,exports.clearCredentialsMutationOptions=q,exports.confidentialBalanceQueryOptions=m,exports.confidentialBalancesQueryOptions=h,exports.confidentialIsOperatorQueryOptions=p,exports.confidentialSetOperatorMutationOptions=k,exports.confidentialTokenAddressQueryOptions=_,exports.confidentialTransferAndCallMutationOptions=E,exports.confidentialTransferFromAndCallMutationOptions=O,exports.confidentialTransferFromMutationOptions=D,exports.confidentialTransferMutationOptions=T,exports.decryptBalanceAsMutationOptions=X,exports.decryptPublicValuesMutationOptions=z,exports.decryptValuesQueryOptions=Y,exports.delegateDecryptionMutationOptions=J,exports.delegatedDecryptValuesMutationOptions=R,exports.delegationStatusQueryOptions=$,exports.encryptMutationOptions=L,exports.filterQueryOptions=i.p,exports.finalizeUnwrapMutationOptions=I,exports.grantPermitMutationOptions=B,exports.hasPermitQueryOptions=G,exports.hashFn=i.m,exports.invalidateAfterApproveUnderlying=i.t,exports.invalidateAfterSetOperator=i.n,exports.invalidateAfterShield=i.r,exports.invalidateAfterTransfer=i.i,exports.invalidateAfterUnshield=i.a,exports.invalidateAfterUnshieldSettled=i.o,exports.invalidateAfterUnwrap=i.s,exports.invalidateAfterWrap=i.c,exports.invalidateBalanceQueries=i.l,exports.invalidateWagmiBalanceQueries=i.u,exports.invalidateWalletLifecycleQueries=i.d,exports.isConfidentialQueryOptions=s,exports.isConfidentialTokenValidQueryOptions=S,exports.isWrapperQueryOptions=c,exports.listPairsQueryOptions=C,exports.pendingUnshieldQueryOptions=f,exports.preparePermitMutationOptions=V,exports.registerPermitMutationOptions=U,exports.resumeUnshieldMutationOptions=M,exports.revokeDelegationMutationOptions=Q,exports.revokePermitsMutationOptions=K,exports.shieldMutationOptions=w,exports.tokenAddressQueryOptions=v,exports.tokenMetadataQueryOptions=o,exports.tokenPairQueryOptions=x,exports.tokenPairsLengthQueryOptions=y,exports.tokenPairsQueryOptions=g,exports.tokenPairsSliceQueryOptions=b,exports.totalSupplyQueryOptions=l,exports.underlyingAllowanceQueryOptions=d,exports.unshieldAllMutationOptions=j,exports.unshieldMutationOptions=ee,exports.unwrapAllMutationOptions=F,exports.unwrapMutationOptions=N,exports.wrapMutationOptions=P,exports.wrapperDiscoveryQueryOptions=u,exports.zamaQueryKeys=i.f;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../relayer.cjs"),t=require("../erc165.cjs"),n=require("../token.cjs"),r=require("../wrappers-registry.cjs"),i=require("../invalidation.cjs");let a=require("viem");function o(e,n,r){let a=i.f.tokenMetadata.token(n);return{...i.p(r?.query??{}),queryKey:a,queryFn:async n=>{let[,{tokenAddress:r}]=n.queryKey,[i,a,o]=await Promise.all([e.provider.readContract(t.p(r)),e.provider.readContract(t.m(r)),e.provider.readContract(t.d(r))]);return{name:i,symbol:a,decimals:o}},staleTime:1/0,enabled:r?.query?.enabled!==!1}}function s(n,r,a){let o=i.f.isConfidential.token(r);return{...i.p(a?.query??{}),queryKey:o,queryFn:async r=>{let[,{tokenAddress:i}]=r.queryKey;try{return await n.provider.readContract(t.i(i))}catch(t){if(e.f(t))return!1;throw t}},staleTime:1/0,enabled:a?.query?.enabled!==!1}}function c(n,r,a){let o=i.f.isWrapper.token(r);return{...i.p(a?.query??{}),queryKey:o,queryFn:async r=>{let[,{tokenAddress:i}]=r.queryKey;try{return await n.provider.readContract(t.a(i))}catch(t){if(e.f(t))return!1;throw t}},staleTime:1/0,enabled:a?.query?.enabled!==!1}}function l(e,n,r){let a=i.f.totalSupply.token(n);return{...i.p(r?.query??{}),queryKey:a,queryFn:async n=>{let[,{tokenAddress:r}]=n.queryKey;return e.provider.readContract(t.S(r))},staleTime:3e4,enabled:r?.query?.enabled!==!1}}function u(e,n){let r=i.f.wrapperDiscovery.token(n.tokenAddress,n.erc20Address,n.registryAddress);return{...i.p(n.query??{}),queryKey:r,queryFn:async n=>{let[,{erc20Address:r}]=n.queryKey;t.P(r,`wrapperDiscoveryQueryOptions: erc20Address`);let i=await e.getConfidentialToken(r);return i?.isValid?i.confidentialTokenAddress:null},staleTime:e.ttlMs,enabled:!!(n.tokenAddress&&n.erc20Address&&n.registryAddress)&&n.query?.enabled!==!1}}function d(e,n,r){let a=r.owner,o=r.query?.enabled!==!1,s=i.f.underlyingAllowance.scope(n,a);return{...i.p(r.query??{}),queryKey:s,queryFn:async n=>{let[,{tokenAddress:r,owner:i}]=n.queryKey;t.P(i,`underlyingAllowanceQueryOptions: owner`);let a=await e.provider.readContract(t.E(r));return e.provider.readContract(t.c(a,i,r))},staleTime:3e4,enabled:!!a&&o}}function f(e,t,n){let r=i.f.pendingUnshield.token(t);return{...i.p(n?.query??{}),queryKey:r,queryFn:async t=>{let[,{tokenAddress:n}]=t.queryKey;return e.createWrappedToken(n).getPendingUnshield()},staleTime:0,enabled:n?.query?.enabled!==!1}}function p(e,n,r){let a=r.holder,o=r.spender,s=r.query?.enabled!==!1,c=i.f.confidentialIsOperator.scope(n,a,o);return{...i.p(r.query??{}),queryKey:c,queryFn:async n=>{let[,{tokenAddress:r,holder:i,spender:a}]=n.queryKey;return t.P(r,`confidentialIsOperatorQueryOptions: tokenAddress`),t.P(i,`confidentialIsOperatorQueryOptions: holder`),t.P(a,`confidentialIsOperatorQueryOptions: spender`),e.provider.readContract(t.C(r,i,a))},staleTime:3e4,enabled:!!(n&&a&&o)&&s}}function m(e,n,r={}){let a=n.query??{};return{...i.p(a),queryKey:i.f.confidentialBalance.owner(n.tokenAddress,n.account,r.walletAccount),queryFn:async n=>{let[,{owner:r}]=n.queryKey;return t.P(r,`confidentialBalanceQueryOptions: owner`),e.balanceOf(r)},enabled:!!n.account&&r.walletAccount!==void 0&&a?.enabled!==!1}}function h(e,r,a={}){let o=r?.account,s=a.walletAccount,c=r?.query??{},l=e.map(e=>e.address);return{...i.p(c),queryKey:i.f.confidentialBalances.tokens(l,o,s),queryFn:async r=>{let[,{owner:i}]=r.queryKey;return t.P(i,`confidentialBalancesQueryOptions: owner`),n.t.batchBalancesOf(e,i)},enabled:!!o&&e.length>0&&s!==void 0&&c?.enabled!==!1}}function g(e,t){let n=!!t.registryAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPairs(t.registryAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n}]=t.queryKey;return e.provider.readContract(r.i(n))},staleTime:e.registry.ttlMs,enabled:n}}function _(e,t){let n=!!t.registryAddress&&!!t.tokenAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.confidentialTokenAddress(t.registryAddress??a.zeroAddress,t.tokenAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,tokenAddress:i}]=t.queryKey;return e.provider.readContract(r.t(n,i))},staleTime:e.registry.ttlMs,enabled:n}}function v(e,t){let n=!!t.registryAddress&&!!t.confidentialTokenAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenAddress(t.registryAddress??a.zeroAddress,t.confidentialTokenAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,confidentialTokenAddress:i}]=t.queryKey;return e.provider.readContract(r.n(n,i))},staleTime:e.registry.ttlMs,enabled:n}}function y(e,t){let n=!!t.registryAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPairsLength(t.registryAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n}]=t.queryKey;return e.provider.readContract(r.a(n))},staleTime:e.registry.ttlMs,enabled:n}}function b(e,t){let n=!!t.registryAddress&&t.fromIndex!==void 0&&t.toIndex!==void 0&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPairsSlice(t.registryAddress??a.zeroAddress,String(t.fromIndex??0n),String(t.toIndex??0n));return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,fromIndex:i,toIndex:a}]=t.queryKey;return e.provider.readContract(r.o(n,BigInt(i),BigInt(a)))},staleTime:e.registry.ttlMs,enabled:n}}function x(e,t){let n=!!t.registryAddress&&t.index!==void 0&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.tokenPair(t.registryAddress??a.zeroAddress,String(t.index??0n));return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,index:i}]=t.queryKey;return e.provider.readContract(r.r(n,BigInt(i)))},staleTime:e.registry.ttlMs,enabled:n}}function S(e,t){let n=!!t.registryAddress&&!!t.confidentialTokenAddress&&t.query?.enabled!==!1,o=i.f.wrappersRegistry.isConfidentialTokenValid(t.registryAddress??a.zeroAddress,t.confidentialTokenAddress??a.zeroAddress);return{...i.p(t.query??{}),queryKey:o,queryFn:async t=>{let[,{registryAddress:n,confidentialTokenAddress:i}]=t.queryKey;return e.provider.readContract(r.s(n,i))},staleTime:e.registry.ttlMs,enabled:n}}function C(e,t){let n=!!t.registryAddress&&t.query?.enabled!==!1,r=i.f.wrappersRegistry.listPairs(t.registryAddress??a.zeroAddress,t.page??1,t.pageSize??100,t.metadata??!1);return{...i.p(t.query??{}),queryKey:r,queryFn:async t=>{let[,{page:n,pageSize:r,metadata:i}]=t.queryKey;return e.listPairs({page:n,pageSize:r,metadata:i})},staleTime:e.ttlMs,enabled:n}}function w(e){return{mutationKey:[`zama.shield`,e.address],mutationFn:async({amount:t,...n})=>e.shield(t,n)}}function T(e){return{mutationKey:[`zama.confidentialTransfer`,e.address],mutationFn:async({to:t,amount:n,...r})=>e.confidentialTransfer(t,n,r)}}function E(e){return{mutationKey:[`zama.confidentialTransferAndCall`,e.address],mutationFn:async({to:t,amount:n,data:r,...i})=>e.confidentialTransferAndCall(t,n,r,i)}}function D(e){return{mutationKey:[`zama.confidentialTransferFrom`,e.address],mutationFn:async({from:t,to:n,amount:r,callbacks:i})=>e.confidentialTransferFrom(t,n,r,i)}}function O(e){return{mutationKey:[`zama.confidentialTransferFromAndCall`,e.address],mutationFn:async({from:t,to:n,amount:r,data:i,callbacks:a})=>e.confidentialTransferFromAndCall(t,n,r,i,a)}}function k(e){return{mutationKey:[`zama.confidentialSetOperator`,e.address],mutationFn:async({operator:t,until:n})=>e.setOperator(t,n)}}function A(e){return{mutationKey:[`zama.approveUnderlying`,e.address],mutationFn:async({amount:t})=>e.approveUnderlying(t)}}function ee(e){return{mutationKey:[`zama.unshield`,e.address],mutationFn:async({amount:t,...n})=>e.unshield(t,n)}}function j(e){return{mutationKey:[`zama.unshieldAll`,e.address],mutationFn:async t=>e.unshieldAll(t||void 0)}}function M(e){return{mutationKey:[`zama.resumeUnshield`,e.address],mutationFn:async({unwrapTxHash:t,...n})=>e.resumeUnshield(t,n)}}function N(e){return{mutationKey:[`zama.unwrap`,e.address],mutationFn:async({amount:t})=>e.unwrap(t)}}function P(e){return{mutationKey:[`zama.wrap`,e.address],mutationFn:async({amount:t,...n})=>e.wrap(t,n)}}function F(e){return{mutationKey:[`zama.unwrapAll`,e.address],mutationFn:async()=>e.unwrapAll()}}function I(e){return{mutationKey:[`zama.finalizeUnwrap`,e.address],mutationFn:async({unwrapRequestId:t})=>e.finalizeUnwrap(t)}}function L(e){return{mutationKey:[`zama.encrypt`],mutationFn:async t=>e.encrypt(t)}}function R(e){return{mutationKey:[`zama.delegatedDecryptValues`],mutationFn:async t=>e.decryption.delegatedDecryptValues(t.encryptedInputs,t.delegatorAddress)}}function z(e){return{mutationKey:[`zama.decryptPublicValues`],mutationFn:async t=>e.decryption.decryptPublicValues(t),onSuccess:(e,t,n,r)=>{for(let[t,n]of Object.entries(e.clearValues))r.client.setQueryData(i.f.decryption.encryptedValue(t),n)}}}function B(e){return{mutationKey:[`zama.grantPermit`],mutationFn:t=>e.permits.grantPermit(t)}}function V(e){return{mutationKey:[`zama.preparePermit`],mutationFn:t=>e.offline.preparePermit(t)}}function H(e){return{mutationKey:[`zama.batchPreparePermits`],mutationFn:t=>e.offline.batchPreparePermits(t)}}function U(e){return{mutationKey:[`zama.registerPermit`],mutationFn:({prepared:t,signature:n})=>e.permits.registerPermit(t,n)}}function W(e){return{mutationKey:[`zama.batchRegisterPermits`],mutationFn:t=>e.permits.batchRegisterPermits(t)}}function G(e,t,n={}){let r=t.query?.enabled!==!1;return{...i.p(t?.query??{}),queryKey:i.f.hasPermit.scope(t.contractAddresses,n.walletAccount),queryFn:t=>{let[,{contractAddresses:n}]=t.queryKey;return e.permits.hasPermit(n)},staleTime:0,gcTime:0,refetchOnMount:`always`,refetchOnWindowFocus:!1,enabled:r&&n.walletAccount!==void 0&&t.contractAddresses.length>0}}function K(e){return{mutationKey:[`zama.revokePermits`],mutationFn:t=>t===void 0?e.permits.revokePermits():e.permits.revokePermits(t)}}function q(e){return{mutationKey:[`zama.clearCredentials`],mutationFn:()=>e.permits.clear()}}function J(e,t){return{mutationKey:[`zama.delegateDecryption`,t],mutationFn:async({delegateAddress:n,expirationDate:r})=>e.delegations.delegateDecryption({contractAddress:t,delegateAddress:n,expirationDate:r})}}function Y(e,t,n={}){return{queryKey:i.f.decryption.encryptedInputs(t,n.walletAccount),queryFn:t=>{let[,{encryptedInputs:n}]=t.queryKey;return e.decryption.decryptValues(n)},staleTime:1/0,enabled:t.length>0&&n.walletAccount!==void 0}}function X(e){return{mutationKey:[`zama.decryptBalanceAs`,e.address],mutationFn:async({delegatorAddress:t,accountAddress:n})=>e.decryptBalanceAs({delegatorAddress:t,accountAddress:n})}}function Z(e){return{mutationKey:[`zama.batchDecryptBalancesAs`,...e.map(e=>e.address)],mutationFn:async t=>n.t.batchDecryptBalancesAs(e,t)}}function Q(e,t){return{mutationKey:[`zama.revokeDelegation`,t],mutationFn:async({delegateAddress:n})=>e.delegations.revokeDelegation({contractAddress:t,delegateAddress:n})}}function $(e,n){return{...i.p(n.query??{}),queryKey:i.f.delegationStatus.scope(n.contractAddress,n.delegatorAddress,n.delegateAddress),queryFn:async n=>{let[,{contractAddress:r,delegatorAddress:i,delegateAddress:a}]=n.queryKey;return t.P(r,`delegationStatusQueryOptions: contractAddress`),t.P(i,`delegationStatusQueryOptions: delegatorAddress`),t.P(a,`delegationStatusQueryOptions: delegateAddress`),e.delegations.getStatus({contractAddress:r,delegatorAddress:i,delegateAddress:a})},enabled:!!(n.contractAddress&&n.delegatorAddress&&n.delegateAddress)&&n.query?.enabled!==!1}}exports.ZamaSDKEvents=t.F,exports.approveUnderlyingMutationOptions=A,exports.batchDecryptBalancesAsMutationOptions=Z,exports.batchPreparePermitsMutationOptions=H,exports.batchRegisterPermitsMutationOptions=W,exports.clearCredentialsMutationOptions=q,exports.confidentialBalanceQueryOptions=m,exports.confidentialBalancesQueryOptions=h,exports.confidentialIsOperatorQueryOptions=p,exports.confidentialSetOperatorMutationOptions=k,exports.confidentialTokenAddressQueryOptions=_,exports.confidentialTransferAndCallMutationOptions=E,exports.confidentialTransferFromAndCallMutationOptions=O,exports.confidentialTransferFromMutationOptions=D,exports.confidentialTransferMutationOptions=T,exports.decryptBalanceAsMutationOptions=X,exports.decryptPublicValuesMutationOptions=z,exports.decryptValuesQueryOptions=Y,exports.delegateDecryptionMutationOptions=J,exports.delegatedDecryptValuesMutationOptions=R,exports.delegationStatusQueryOptions=$,exports.encryptMutationOptions=L,exports.filterQueryOptions=i.p,exports.finalizeUnwrapMutationOptions=I,exports.grantPermitMutationOptions=B,exports.hasPermitQueryOptions=G,exports.hashFn=i.m,exports.invalidateAfterApproveUnderlying=i.t,exports.invalidateAfterSetOperator=i.n,exports.invalidateAfterShield=i.r,exports.invalidateAfterTransfer=i.i,exports.invalidateAfterUnshield=i.a,exports.invalidateAfterUnshieldSettled=i.o,exports.invalidateAfterUnwrap=i.s,exports.invalidateAfterWrap=i.c,exports.invalidateBalanceQueries=i.l,exports.invalidateWagmiBalanceQueries=i.u,exports.invalidateWalletLifecycleQueries=i.d,exports.isConfidentialQueryOptions=s,exports.isConfidentialTokenValidQueryOptions=S,exports.isWrapperQueryOptions=c,exports.listPairsQueryOptions=C,exports.pendingUnshieldQueryOptions=f,exports.preparePermitMutationOptions=V,exports.registerPermitMutationOptions=U,exports.resumeUnshieldMutationOptions=M,exports.revokeDelegationMutationOptions=Q,exports.revokePermitsMutationOptions=K,exports.shieldMutationOptions=w,exports.tokenAddressQueryOptions=v,exports.tokenMetadataQueryOptions=o,exports.tokenPairQueryOptions=x,exports.tokenPairsLengthQueryOptions=y,exports.tokenPairsQueryOptions=g,exports.tokenPairsSliceQueryOptions=b,exports.totalSupplyQueryOptions=l,exports.underlyingAllowanceQueryOptions=d,exports.unshieldAllMutationOptions=j,exports.unshieldMutationOptions=ee,exports.unwrapAllMutationOptions=F,exports.unwrapMutationOptions=N,exports.wrapMutationOptions=P,exports.wrapperDiscoveryQueryOptions=u,exports.zamaQueryKeys=i.f;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["zamaQueryKeys","filterQueryOptions","nameContract","symbolContract","decimalsContract","zamaQueryKeys","filterQueryOptions","isConfidentialTokenContract","isContractCallError","isConfidentialWrapperContract","zamaQueryKeys","filterQueryOptions","inferredTotalSupplyContract","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","filterQueryOptions","underlyingContract","allowanceContract","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","filterQueryOptions","isOperatorContract","filterQueryOptions","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","Token","zamaQueryKeys","zeroAddress","filterQueryOptions","getTokenPairsContract","getConfidentialTokenAddressContract","getTokenAddressContract","getTokenPairsLengthContract","getTokenPairsSliceContract","getTokenPairContract","isConfidentialTokenValidContract","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","zamaQueryKeys","Token","filterQueryOptions","zamaQueryKeys"],"sources":["../../../src/query/token-metadata.ts","../../../src/query/is-confidential.ts","../../../src/query/total-supply.ts","../../../src/query/wrapper-discovery.ts","../../../src/query/underlying-allowance.ts","../../../src/query/pending-unshield.ts","../../../src/query/confidential-is-operator.ts","../../../src/query/confidential-balance.ts","../../../src/query/confidential-balances.ts","../../../src/query/wrappers-registry.ts","../../../src/query/shield.ts","../../../src/query/transfer.ts","../../../src/query/transfer-and-call.ts","../../../src/query/transfer-from.ts","../../../src/query/transfer-from-and-call.ts","../../../src/query/set-operator.ts","../../../src/query/approve-underlying.ts","../../../src/query/unshield.ts","../../../src/query/unshield-all.ts","../../../src/query/resume-unshield.ts","../../../src/query/unwrap.ts","../../../src/query/wrap.ts","../../../src/query/unwrap-all.ts","../../../src/query/finalize-unwrap.ts","../../../src/query/encrypt.ts","../../../src/query/delegated-decrypt.ts","../../../src/query/public-decrypt.ts","../../../src/query/grant-permit.ts","../../../src/query/prepare-permit.ts","../../../src/query/batch-prepare-permits.ts","../../../src/query/register-permit.ts","../../../src/query/batch-register-permits.ts","../../../src/query/has-permit.ts","../../../src/query/revoke-permits.ts","../../../src/query/clear-credentials.ts","../../../src/query/delegate-decryption.ts","../../../src/query/user-decrypt.ts","../../../src/query/decrypt-balance-as.ts","../../../src/query/batch-decrypt-balances-as.ts","../../../src/query/revoke-delegation.ts","../../../src/query/delegation-status.ts"],"sourcesContent":["import { decimalsContract, nameContract, symbolContract } from \"../contracts\";\n\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** ERC-20 token metadata returned by {@link tokenMetadataQueryOptions}. */\nexport interface TokenMetadata {\n /** Human-readable token name. */\n name: string;\n /** Token ticker symbol. */\n symbol: string;\n /** Number of decimals the token uses. */\n decimals: number;\n}\n\n/** Configuration for {@link tokenMetadataQueryOptions}. */\nexport interface TokenMetadataQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading an ERC-20 token's name, symbol, and decimals. */\nexport function tokenMetadataQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: TokenMetadataQueryConfig,\n): QueryFactoryOptions<\n TokenMetadata,\n Error,\n TokenMetadata,\n ReturnType<typeof zamaQueryKeys.tokenMetadata.token>\n> {\n const queryKey = zamaQueryKeys.tokenMetadata.token(tokenAddress);\n\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n const [name, symbol, decimals] = await Promise.all([\n sdk.provider.readContract(nameContract(keyTokenAddress)),\n sdk.provider.readContract(symbolContract(keyTokenAddress)),\n sdk.provider.readContract(decimalsContract(keyTokenAddress)),\n ]);\n return { name, symbol, decimals };\n },\n staleTime: Infinity,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import { isConfidentialTokenContract, isConfidentialWrapperContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport { isContractCallError } from \"../utils\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link isConfidentialQueryOptions} and {@link isWrapperQueryOptions}. */\nexport interface IsConfidentialQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading whether a token address implements the confidential (ERC-7984) token interface. */\nexport function isConfidentialQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: IsConfidentialQueryConfig,\n): QueryFactoryOptions<\n boolean,\n Error,\n boolean,\n ReturnType<typeof zamaQueryKeys.isConfidential.token>\n> {\n const queryKey = zamaQueryKeys.isConfidential.token(tokenAddress);\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n try {\n return await sdk.provider.readContract(isConfidentialTokenContract(keyTokenAddress));\n } catch (err) {\n // Only suppress contract execution reverts (non-ERC-165 contracts).\n // Re-throw network/transport errors so TanStack Query's retry logic applies.\n if (isContractCallError(err)) {\n return false;\n }\n throw err;\n }\n },\n staleTime: Infinity,\n enabled: config?.query?.enabled !== false,\n };\n}\n\n/** Builds TanStack Query options for reading whether a token address is a confidential wrapper (ERC-7984 wrapper) contract. */\nexport function isWrapperQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: IsConfidentialQueryConfig,\n): QueryFactoryOptions<boolean, Error, boolean, ReturnType<typeof zamaQueryKeys.isWrapper.token>> {\n const queryKey = zamaQueryKeys.isWrapper.token(tokenAddress);\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n try {\n return await sdk.provider.readContract(isConfidentialWrapperContract(keyTokenAddress));\n } catch (err) {\n // Only suppress contract execution reverts (non-ERC-165 contracts).\n // Re-throw network/transport errors so TanStack Query's retry logic applies.\n if (isContractCallError(err)) {\n return false;\n }\n throw err;\n }\n },\n staleTime: Infinity,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import { inferredTotalSupplyContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link totalSupplyQueryOptions}. */\nexport interface TotalSupplyQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading a token's total supply. */\nexport function totalSupplyQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: TotalSupplyQueryConfig,\n): QueryFactoryOptions<bigint, Error, bigint, ReturnType<typeof zamaQueryKeys.totalSupply.token>> {\n const queryKey = zamaQueryKeys.totalSupply.token(tokenAddress);\n\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n return sdk.provider.readContract(inferredTotalSupplyContract(keyTokenAddress));\n },\n staleTime: 30_000,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import type { Address } from \"viem\";\nimport type { WrappersRegistry } from \"../wrappers-registry\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link wrapperDiscoveryQueryOptions}. */\nexport interface WrapperDiscoveryQueryConfig {\n /**\n * Address of any confidential token you control.\n * Used to scope the query cache key and to gate whether the query\n * is enabled — it does not affect which wrapper the registry returns.\n */\n tokenAddress?: Address;\n /**\n * The ERC-20 token address to discover the confidential wrapper for.\n * The registry is resolved automatically from chain config.\n */\n erc20Address?: Address;\n /**\n * The resolved registry contract address for the current chain.\n * Included in the query key so that switching chains invalidates\n * stale cached results. Pass `undefined` when the chain ID is not\n * yet known — the query will be disabled.\n */\n registryAddress?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for discovering the confidential wrapper address for a given ERC-20 token (resolves to `null` when none is registered). */\nexport function wrapperDiscoveryQueryOptions(\n registry: WrappersRegistry,\n config: WrapperDiscoveryQueryConfig,\n): QueryFactoryOptions<\n Address | null,\n Error,\n Address | null,\n ReturnType<typeof zamaQueryKeys.wrapperDiscovery.token>\n> {\n const queryKey = zamaQueryKeys.wrapperDiscovery.token(\n config.tokenAddress,\n config.erc20Address,\n config.registryAddress,\n );\n\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { erc20Address }] = context.queryKey;\n assertNonNullable(erc20Address, \"wrapperDiscoveryQueryOptions: erc20Address\");\n const result = await registry.getConfidentialToken(erc20Address);\n return result ? result.confidentialTokenAddress : null;\n },\n staleTime: Infinity,\n enabled:\n Boolean(config.tokenAddress && config.erc20Address && config.registryAddress) &&\n config.query?.enabled !== false,\n };\n}\n","import { allowanceContract, underlyingContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link underlyingAllowanceQueryOptions}. */\nexport interface UnderlyingAllowanceQueryConfig {\n /** Owner whose underlying-token allowance to read; the query stays disabled until provided. */\n owner?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading the ERC-20 allowance the owner has granted a confidential wrapper on its underlying token. */\nexport function underlyingAllowanceQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config: UnderlyingAllowanceQueryConfig,\n): QueryFactoryOptions<\n bigint,\n Error,\n bigint,\n ReturnType<typeof zamaQueryKeys.underlyingAllowance.scope>\n> {\n const ownerKey = config.owner;\n const queryEnabled = config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.underlyingAllowance.scope(tokenAddress, ownerKey);\n\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress, owner: keyOwner }] = context.queryKey;\n assertNonNullable(keyOwner, \"underlyingAllowanceQueryOptions: owner\");\n const underlying = await sdk.provider.readContract(underlyingContract(keyTokenAddress));\n return sdk.provider.readContract(allowanceContract(underlying, keyOwner, keyTokenAddress));\n },\n staleTime: 30_000,\n enabled: Boolean(ownerKey) && queryEnabled,\n };\n}\n","import type { Address, Hex } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link pendingUnshieldQueryOptions}. */\nexport interface PendingUnshieldQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/**\n * Query options for reading the unwrap tx hash of an unshield that was\n * interrupted between its two phases (returns `null` if none is pending).\n *\n * Backed by {@link ZamaSDK} storage via `WrappedToken.getPendingUnshield()`.\n * `staleTime: 0` so the value reflects storage on mount; the unshield/unwrap\n * mutations also invalidate this key on success.\n */\nexport function pendingUnshieldQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: PendingUnshieldQueryConfig,\n): QueryFactoryOptions<\n Hex | null,\n Error,\n Hex | null,\n ReturnType<typeof zamaQueryKeys.pendingUnshield.token>\n> {\n const queryKey = zamaQueryKeys.pendingUnshield.token(tokenAddress);\n\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n return sdk.createWrappedToken(keyTokenAddress).getPendingUnshield();\n },\n staleTime: 0,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import { isOperatorContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { filterQueryOptions } from \"./utils\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link confidentialIsOperatorQueryOptions}. */\nexport interface ConfidentialIsOperatorQueryConfig {\n /** Token holder whose operator authorization to check; the query stays disabled until provided. */\n holder?: Address;\n /** Spender address to check for operator authorization; the query stays disabled until provided. */\n spender?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading whether a spender is an authorized operator of a holder on a confidential token. */\nexport function confidentialIsOperatorQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address | undefined,\n config: ConfidentialIsOperatorQueryConfig,\n): QueryFactoryOptions<\n boolean,\n Error,\n boolean,\n ReturnType<typeof zamaQueryKeys.confidentialIsOperator.scope>\n> {\n const holderKey = config.holder;\n const spenderKey = config.spender;\n const queryEnabled = config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.confidentialIsOperator.scope(tokenAddress, holderKey, spenderKey);\n\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress, holder: keyHolder, spender: keySpender }] =\n context.queryKey;\n assertNonNullable(keyTokenAddress, \"confidentialIsOperatorQueryOptions: tokenAddress\");\n assertNonNullable(keyHolder, \"confidentialIsOperatorQueryOptions: holder\");\n assertNonNullable(keySpender, \"confidentialIsOperatorQueryOptions: spender\");\n return sdk.provider.readContract(isOperatorContract(keyTokenAddress, keyHolder, keySpender));\n },\n staleTime: 30_000,\n enabled: Boolean(tokenAddress && holderKey && spenderKey) && queryEnabled,\n };\n}\n","import type { Address } from \"viem\";\nimport type { Token } from \"../token\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link confidentialBalanceQueryOptions}. */\nexport interface ConfidentialBalanceQueryConfig {\n /** Address of the confidential token to read the balance of. */\n tokenAddress: Address;\n /** Account whose confidential balance to read; the query stays disabled until provided. */\n account?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Query options for a single confidential token balance. Auto-gated on `account`. */\nexport function confidentialBalanceQueryOptions(\n token: Token,\n config: ConfidentialBalanceQueryConfig,\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<\n bigint,\n Error,\n bigint,\n ReturnType<typeof zamaQueryKeys.confidentialBalance.owner>\n> {\n const queryOpts = config.query ?? {};\n\n return {\n ...filterQueryOptions(queryOpts),\n queryKey: zamaQueryKeys.confidentialBalance.owner(\n config.tokenAddress,\n config.account,\n signerContext.walletAccount,\n ),\n queryFn: async (context) => {\n const [, { owner: keyOwner }] = context.queryKey;\n assertNonNullable(keyOwner, \"confidentialBalanceQueryOptions: owner\");\n return token.balanceOf(keyOwner);\n },\n enabled:\n Boolean(config.account) &&\n signerContext.walletAccount !== undefined &&\n queryOpts?.enabled !== false,\n };\n}\n","import type { Address } from \"viem\";\nimport { Token, type BatchBalancesResult } from \"../token/token\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link confidentialBalancesQueryOptions}. */\nexport interface ConfidentialBalancesQueryConfig {\n /** Account whose confidential balances to read; the query stays disabled until provided. */\n account?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading the confidential balances of several tokens for one account in a single batch. */\nexport function confidentialBalancesQueryOptions(\n tokens: Token[],\n config?: ConfidentialBalancesQueryConfig,\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<\n BatchBalancesResult,\n Error,\n BatchBalancesResult,\n ReturnType<typeof zamaQueryKeys.confidentialBalances.tokens>\n> {\n const accountKey = config?.account;\n const walletAccount = signerContext.walletAccount;\n const queryOpts = config?.query ?? {};\n const tokenAddresses = tokens.map((token) => token.address);\n\n return {\n ...filterQueryOptions(queryOpts),\n queryKey: zamaQueryKeys.confidentialBalances.tokens(tokenAddresses, accountKey, walletAccount),\n queryFn: async (signerContextQuery) => {\n const [, { owner: keyOwner }] = signerContextQuery.queryKey;\n assertNonNullable(keyOwner, \"confidentialBalancesQueryOptions: owner\");\n return Token.batchBalancesOf(tokens, keyOwner);\n },\n enabled:\n Boolean(accountKey) &&\n tokens.length > 0 &&\n walletAccount !== undefined &&\n queryOpts?.enabled !== false,\n };\n}\n","import { type Address, zeroAddress } from \"viem\";\nimport {\n getTokenPairsContract,\n getTokenPairsLengthContract,\n getTokenPairsSliceContract,\n getTokenPairContract,\n getConfidentialTokenAddressContract,\n getTokenAddressContract,\n isConfidentialTokenValidContract,\n} from \"../contracts\";\nimport type {\n TokenWrapperPair,\n TokenWrapperPairWithMetadata,\n PaginatedResult,\n} from \"../contracts/wrappers-registry\";\nimport type { WrappersRegistry } from \"../wrappers-registry\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Base configuration shared by the wrappers-registry query option factories. */\nexport interface WrappersRegistryQueryConfig {\n /** Registry contract address for the current chain; used as a query key discriminator. */\n registryAddress: Address | undefined;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading all token wrapper pairs registered in the wrappers registry. */\nexport function tokenPairsQueryOptions(\n sdk: ZamaSDK,\n config: WrappersRegistryQueryConfig,\n): QueryFactoryOptions<\n readonly TokenWrapperPair[],\n Error,\n readonly TokenWrapperPair[],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPairs>\n> {\n const enabled = Boolean(config.registryAddress) && config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPairs(config.registryAddress ?? zeroAddress);\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress }] = context.queryKey;\n return sdk.provider.readContract(getTokenPairsContract(registryAddress));\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link confidentialTokenAddressQueryOptions}. */\nexport interface ConfidentialTokenAddressQueryConfig extends WrappersRegistryQueryConfig {\n /** Underlying ERC-20 token address whose confidential counterpart to look up. */\n tokenAddress?: Address;\n}\n\n/** Builds TanStack Query options for reading the confidential token address registered for a given underlying ERC-20 token. */\nexport function confidentialTokenAddressQueryOptions(\n sdk: ZamaSDK,\n config: ConfidentialTokenAddressQueryConfig,\n): QueryFactoryOptions<\n readonly [boolean, Address],\n Error,\n readonly [boolean, Address],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.confidentialTokenAddress>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n Boolean(config.tokenAddress) &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.confidentialTokenAddress(\n config.registryAddress ?? zeroAddress,\n config.tokenAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, tokenAddress }] = context.queryKey;\n return sdk.provider.readContract(\n getConfidentialTokenAddressContract(registryAddress, tokenAddress),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link tokenAddressQueryOptions}. */\nexport interface TokenAddressQueryConfig extends WrappersRegistryQueryConfig {\n /** Confidential token address whose underlying ERC-20 counterpart to look up. */\n confidentialTokenAddress?: Address;\n}\n\n/** Builds TanStack Query options for reading the underlying ERC-20 token address registered for a given confidential token. */\nexport function tokenAddressQueryOptions(\n sdk: ZamaSDK,\n config: TokenAddressQueryConfig,\n): QueryFactoryOptions<\n readonly [boolean, Address],\n Error,\n readonly [boolean, Address],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenAddress>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n Boolean(config.confidentialTokenAddress) &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenAddress(\n config.registryAddress ?? zeroAddress,\n config.confidentialTokenAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, confidentialTokenAddress }] = context.queryKey;\n return sdk.provider.readContract(\n getTokenAddressContract(registryAddress, confidentialTokenAddress),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Builds TanStack Query options for reading the total number of token wrapper pairs in the registry. */\nexport function tokenPairsLengthQueryOptions(\n sdk: ZamaSDK,\n config: WrappersRegistryQueryConfig,\n): QueryFactoryOptions<\n bigint,\n Error,\n bigint,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPairsLength>\n> {\n const enabled = Boolean(config.registryAddress) && config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPairsLength(\n config.registryAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress }] = context.queryKey;\n return sdk.provider.readContract(getTokenPairsLengthContract(registryAddress));\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link tokenPairsSliceQueryOptions}. */\nexport interface TokenPairsSliceQueryConfig extends WrappersRegistryQueryConfig {\n /** Zero-based index of the first pair in the slice (inclusive). */\n fromIndex?: bigint;\n /** Index bounding the end of the slice. */\n toIndex?: bigint;\n}\n\n/** Builds TanStack Query options for reading a contiguous slice of the registry's token wrapper pairs. */\nexport function tokenPairsSliceQueryOptions(\n sdk: ZamaSDK,\n config: TokenPairsSliceQueryConfig,\n): QueryFactoryOptions<\n readonly TokenWrapperPair[],\n Error,\n readonly TokenWrapperPair[],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPairsSlice>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n config.fromIndex !== undefined &&\n config.toIndex !== undefined &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPairsSlice(\n config.registryAddress ?? zeroAddress,\n String(config.fromIndex ?? 0n),\n String(config.toIndex ?? 0n),\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, fromIndex, toIndex }] = context.queryKey;\n return sdk.provider.readContract(\n getTokenPairsSliceContract(registryAddress, BigInt(fromIndex), BigInt(toIndex)),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link tokenPairQueryOptions}. */\nexport interface TokenPairQueryConfig extends WrappersRegistryQueryConfig {\n /** Zero-based index of the token wrapper pair to read. */\n index?: bigint;\n}\n\n/** Builds TanStack Query options for reading a single token wrapper pair by its index in the registry. */\nexport function tokenPairQueryOptions(\n sdk: ZamaSDK,\n config: TokenPairQueryConfig,\n): QueryFactoryOptions<\n TokenWrapperPair,\n Error,\n TokenWrapperPair,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPair>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n config.index !== undefined &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPair(\n config.registryAddress ?? zeroAddress,\n String(config.index ?? 0n),\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, index }] = context.queryKey;\n return sdk.provider.readContract(getTokenPairContract(registryAddress, BigInt(index)));\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link isConfidentialTokenValidQueryOptions}. */\nexport interface IsConfidentialTokenValidQueryConfig extends WrappersRegistryQueryConfig {\n /** Confidential token address to validate against the registry. */\n confidentialTokenAddress?: Address;\n}\n\n/** Builds TanStack Query options for checking whether a confidential token is registered and valid in the registry. */\nexport function isConfidentialTokenValidQueryOptions(\n sdk: ZamaSDK,\n config: IsConfidentialTokenValidQueryConfig,\n): QueryFactoryOptions<\n boolean,\n Error,\n boolean,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.isConfidentialTokenValid>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n Boolean(config.confidentialTokenAddress) &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.isConfidentialTokenValid(\n config.registryAddress ?? zeroAddress,\n config.confidentialTokenAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, confidentialTokenAddress }] = context.queryKey;\n return sdk.provider.readContract(\n isConfidentialTokenValidContract(registryAddress, confidentialTokenAddress),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link listPairsQueryOptions}. */\nexport interface ListPairsQueryConfig {\n /**\n * The registry address for this chain — used as a query key discriminator.\n * The registry instance already knows how to resolve the address for the\n * current chain; this field just keeps the TanStack Query cache isolated\n * per registry contract.\n */\n registryAddress: Address | undefined;\n /** 1-based page number to fetch; defaults to `1`. */\n page?: number;\n /** Number of pairs per page; defaults to `100`. */\n pageSize?: number;\n /** When `true`, resolve each pair's on-chain metadata; defaults to `false`. */\n metadata?: boolean;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/**\n * Query options for paginated listing of token wrapper pairs.\n *\n * Accepts a {@link WrappersRegistry} instance rather than a raw provider so that the\n * class-level TTL cache is shared across multiple `queryFn` executions. Pass\n * `sdk.registry` (the ZamaSDK lazy singleton) to ensure a single shared cache.\n */\nexport function listPairsQueryOptions(\n registry: WrappersRegistry,\n config: ListPairsQueryConfig,\n): QueryFactoryOptions<\n PaginatedResult<TokenWrapperPair | TokenWrapperPairWithMetadata>,\n Error,\n PaginatedResult<TokenWrapperPair | TokenWrapperPairWithMetadata>,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.listPairs>\n> {\n const enabled = Boolean(config.registryAddress) && config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.listPairs(\n config.registryAddress ?? zeroAddress,\n config.page ?? 1,\n config.pageSize ?? 100,\n config.metadata ?? false,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { page, pageSize, metadata }] = context.queryKey;\n return registry.listPairs({ page, pageSize, metadata });\n },\n // Use the registry's own TTL so TanStack Query and the class-level cache\n // operate under the same freshness contract.\n staleTime: registry.ttlMs,\n enabled,\n };\n}\n","import type { Address } from \"viem\";\nimport type { WrappedToken } from \"../token/wrapped-token\";\nimport type { ShieldOptions, TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link shieldMutationOptions}. */\nexport interface ShieldParams extends ShieldOptions {\n /** Amount of the public ERC-20 to shield, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.shield | shielding} a public ERC-20 into its confidential form. @see {@link ShieldParams} */\nexport function shieldMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.shield\", Address], ShieldParams, TransactionResult> {\n return {\n mutationKey: [\"zama.shield\", token.address] as const,\n mutationFn: async ({ amount, ...rest }) => token.shield(amount, rest),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransactionResult, TransferOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link confidentialTransferMutationOptions}. */\nexport interface ConfidentialTransferParams extends TransferOptions {\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransfer | transferring} confidential tokens. @see {@link ConfidentialTransferParams} */\nexport function confidentialTransferMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransfer\", Address],\n ConfidentialTransferParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransfer\", token.address] as const,\n mutationFn: async ({ to, amount, ...options }) =>\n token.confidentialTransfer(to, amount, options),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransactionResult, TransferOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address, Hex } from \"viem\";\n\n/** Variables for {@link confidentialTransferAndCallMutationOptions}. */\nexport interface ConfidentialTransferAndCallParams extends TransferOptions {\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n /** Opaque bytes forwarded to the recipient's ERC-7984 receiver hook. */\n data: Hex;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransferAndCall | transferring} confidential tokens and invoking the recipient's receiver hook. @see {@link ConfidentialTransferAndCallParams} */\nexport function confidentialTransferAndCallMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransferAndCall\", Address],\n ConfidentialTransferAndCallParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransferAndCall\", token.address] as const,\n mutationFn: async ({ to, amount, data, ...options }) =>\n token.confidentialTransferAndCall(to, amount, data, options),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransferCallbacks, TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link confidentialTransferFromMutationOptions}. */\nexport interface ConfidentialTransferFromParams {\n /** Address to transfer from. */\n from: Address;\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n /** Optional progress callbacks for the multi-step transfer flow. */\n callbacks?: TransferCallbacks;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransferFrom | transferring} confidential tokens from another account (operator flow). @see {@link ConfidentialTransferFromParams} */\nexport function confidentialTransferFromMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransferFrom\", Address],\n ConfidentialTransferFromParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransferFrom\", token.address] as const,\n mutationFn: async ({ from, to, amount, callbacks }) =>\n token.confidentialTransferFrom(from, to, amount, callbacks),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransferCallbacks, TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address, Hex } from \"viem\";\n\n/** Variables for {@link confidentialTransferFromAndCallMutationOptions}. */\nexport interface ConfidentialTransferFromAndCallParams {\n /** Address to transfer from. */\n from: Address;\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n /** Opaque bytes forwarded to the recipient's ERC-7984 receiver hook. */\n data: Hex;\n /** Optional progress callbacks for the multi-step transfer flow. */\n callbacks?: TransferCallbacks;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransferFromAndCall | transferring} confidential tokens from another account and invoking the recipient's receiver hook. @see {@link ConfidentialTransferFromAndCallParams} */\nexport function confidentialTransferFromAndCallMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransferFromAndCall\", Address],\n ConfidentialTransferFromAndCallParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransferFromAndCall\", token.address] as const,\n mutationFn: async ({ from, to, amount, data, callbacks }) =>\n token.confidentialTransferFromAndCall(from, to, amount, data, callbacks),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link confidentialSetOperatorMutationOptions}. */\nexport interface ConfidentialSetOperatorParams {\n /** Operator address to authorize. */\n operator: Address;\n /** Unix timestamp (seconds) when the operator authorization expires; defaults to one hour from now. */\n until?: number;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.setOperator | authorizing} an operator on a confidential token. @see {@link ConfidentialSetOperatorParams} */\nexport function confidentialSetOperatorMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialSetOperator\", Address],\n ConfidentialSetOperatorParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialSetOperator\", token.address] as const,\n mutationFn: async ({ operator, until }) => token.setOperator(operator, until),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link approveUnderlyingMutationOptions}. */\nexport interface ApproveUnderlyingParams {\n /** Amount of the underlying ERC-20 to approve, in its base units; omit for a max approval. */\n amount?: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.approveUnderlying | approving} the wrapper to spend the underlying ERC-20. @see {@link ApproveUnderlyingParams} */\nexport function approveUnderlyingMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.approveUnderlying\", Address],\n ApproveUnderlyingParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.approveUnderlying\", token.address] as const,\n mutationFn: async ({ amount }) => token.approveUnderlying(amount),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, UnshieldOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link unshieldMutationOptions}. */\nexport interface UnshieldParams extends UnshieldOptions {\n /** Amount of tokens to unshield, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unshield | unshielding} a confidential token back into its public ERC-20. @see {@link UnshieldParams} */\nexport function unshieldMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.unshield\", Address], UnshieldParams, TransactionResult> {\n return {\n mutationKey: [\"zama.unshield\", token.address] as const,\n mutationFn: async ({ amount, ...options }) => token.unshield(amount, options),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, UnshieldCallbacks } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link unshieldAllMutationOptions}. */\nexport interface UnshieldAllParams extends UnshieldCallbacks {}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unshieldAll | unshielding} the entire confidential balance back into the public ERC-20. @see {@link UnshieldAllParams} */\nexport function unshieldAllMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.unshieldAll\", Address],\n UnshieldAllParams | void,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.unshieldAll\", token.address] as const,\n mutationFn: async (params) => token.unshieldAll(params || undefined),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, UnshieldCallbacks } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address, Hex } from \"viem\";\n\n/** Variables for {@link resumeUnshieldMutationOptions}. */\nexport interface ResumeUnshieldParams extends UnshieldCallbacks {\n /** Hash of the earlier unwrap request transaction to resume from. */\n unwrapTxHash: Hex;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.resumeUnshield | resuming} an interrupted unshield from its unwrap request transaction. @see {@link ResumeUnshieldParams} */\nexport function resumeUnshieldMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.resumeUnshield\", Address],\n ResumeUnshieldParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.resumeUnshield\", token.address] as const,\n mutationFn: async ({ unwrapTxHash, ...callbacks }) =>\n token.resumeUnshield(unwrapTxHash, callbacks),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { UnwrapResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link unwrapMutationOptions}. */\nexport interface UnwrapParams {\n /** Amount of tokens to unwrap, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unwrap | unwrapping} a confidential token (request phase of the two-phase unwrap). @see {@link UnwrapParams} */\nexport function unwrapMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.unwrap\", Address], UnwrapParams, UnwrapResult> {\n return {\n mutationKey: [\"zama.unwrap\", token.address] as const,\n mutationFn: async ({ amount }) => token.unwrap(amount),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, WrapOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link wrapMutationOptions}. */\nexport interface WrapParams extends WrapOptions {\n /** Amount of the public ERC-20 to wrap, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.wrap | wrapping} a public ERC-20 into its confidential form. @see {@link WrapParams} */\nexport function wrapMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.wrap\", Address], WrapParams, TransactionResult> {\n return {\n mutationKey: [\"zama.wrap\", token.address] as const,\n mutationFn: async ({ amount, ...rest }) => token.wrap(amount, rest),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { UnwrapResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unwrapAll | unwrapping} the entire confidential balance. */\nexport function unwrapAllMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.unwrapAll\", Address], void, UnwrapResult> {\n return {\n mutationKey: [\"zama.unwrapAll\", token.address] as const,\n mutationFn: async () => token.unwrapAll(),\n };\n}\n","import type { EncryptedValue } from \"../relayer/types\";\nimport type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n/** Variables for {@link finalizeUnwrapMutationOptions}. */\nexport type FinalizeUnwrapParams = {\n /** Identifier from an `UnwrapRequested` event. */\n unwrapRequestId: EncryptedValue;\n};\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.finalizeUnwrap | finalizing} a previously requested unwrap. @see {@link FinalizeUnwrapParams} */\nexport function finalizeUnwrapMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.finalizeUnwrap\", Address],\n FinalizeUnwrapParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.finalizeUnwrap\", token.address] as const,\n mutationFn: async ({ unwrapRequestId }) => token.finalizeUnwrap(unwrapRequestId),\n };\n}\n","import type { EncryptParams } from \"../node\";\nimport type { EncryptResult } from \"../relayer/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link ZamaSDK.encrypt | encrypting} plaintext inputs into an encrypted payload. */\nexport function encryptMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.encrypt\"], EncryptParams, EncryptResult> {\n return { mutationKey: [\"zama.encrypt\"], mutationFn: async (params) => sdk.encrypt(params) };\n}\n","import type { Address } from \"viem\";\nimport type { ClearValue, EncryptedValue } from \"../relayer/types\";\nimport type { EncryptedInput } from \"./user-decrypt\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link delegatedDecryptValuesMutationOptions}. */\nexport interface DelegatedDecryptValuesMutationParams {\n /** Encrypted values (with their contract addresses) to decrypt. */\n encryptedInputs: EncryptedInput[];\n /** Address of the account that delegated decryption rights to the connected wallet. */\n delegatorAddress: Address;\n}\n\n/** Builds TanStack Query mutation options for {@link Decryption.delegatedDecryptValues | decrypting} encrypted values via delegated decryption credentials. @see {@link DelegatedDecryptValuesMutationParams} */\nexport function delegatedDecryptValuesMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.delegatedDecryptValues\"],\n DelegatedDecryptValuesMutationParams,\n Readonly<Record<EncryptedValue, ClearValue>>\n> {\n return {\n mutationKey: [\"zama.delegatedDecryptValues\"],\n mutationFn: async (params) =>\n sdk.decryption.delegatedDecryptValues(params.encryptedInputs, params.delegatorAddress),\n };\n}\n","import type { ClearValue, EncryptedValue, DecryptPublicValuesResult } from \"../relayer/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\n\n/** Builds TanStack Query mutation options for {@link Decryption.decryptPublicValues | publicly decrypting} encrypted values, caching each clear result. */\nexport function decryptPublicValuesMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.decryptPublicValues\"],\n EncryptedValue[],\n DecryptPublicValuesResult\n> {\n return {\n mutationKey: [\"zama.decryptPublicValues\"],\n mutationFn: async (handles) => sdk.decryption.decryptPublicValues(handles),\n onSuccess: (data, _variables, _onMutateResult, context) => {\n for (const [handle, value] of Object.entries(data.clearValues) as [\n EncryptedValue,\n ClearValue,\n ][]) {\n context.client.setQueryData(zamaQueryKeys.decryption.encryptedValue(handle), value);\n }\n },\n };\n}\n","import type { Address } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Permits.grantPermit | granting} decryption permits for the given contract addresses. */\nexport function grantPermitMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.grantPermit\"], Address[], void> {\n return {\n mutationKey: [\"zama.grantPermit\"],\n mutationFn: (contractAddresses) => sdk.permits.grantPermit(contractAddresses),\n };\n}\n","import type { PreparedPermit, PreparePermitRequest } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Offline.preparePermit | preparing} an offline decryption permit. */\nexport function preparePermitMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.preparePermit\"], PreparePermitRequest, PreparedPermit> {\n return {\n mutationKey: [\"zama.preparePermit\"],\n mutationFn: (request) => sdk.offline.preparePermit(request),\n };\n}\n","import type { PreparedPermit, PreparePermitRequest } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Offline.batchPreparePermits | preparing} a batch of offline decryption permits. */\nexport function batchPreparePermitsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.batchPreparePermits\"],\n PreparePermitRequest,\n PreparedPermit[]\n> {\n return {\n mutationKey: [\"zama.batchPreparePermits\"],\n mutationFn: (request) => sdk.offline.batchPreparePermits(request),\n };\n}\n","import type { SignedPreparedPermit } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Parameters for {@link registerPermitMutationOptions}. */\nexport type RegisterPermitParams = SignedPreparedPermit;\n\n/** Builds TanStack Query mutation options for {@link Permits.registerPermit | registering} a signed offline permit. */\nexport function registerPermitMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.registerPermit\"], RegisterPermitParams, void> {\n return {\n mutationKey: [\"zama.registerPermit\"],\n mutationFn: ({ prepared, signature }) => sdk.permits.registerPermit(prepared, signature),\n };\n}\n","import type { SignedPreparedPermit } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Permits.batchRegisterPermits | registering} a list of signed offline permits. */\nexport function batchRegisterPermitsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.batchRegisterPermits\"],\n readonly SignedPreparedPermit[],\n void\n> {\n return {\n mutationKey: [\"zama.batchRegisterPermits\"],\n mutationFn: (permits) => sdk.permits.batchRegisterPermits(permits),\n };\n}\n","import type { Address } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link hasPermitQueryOptions}. */\nexport interface HasPermitQueryConfig {\n /** Contract addresses to check credentials against. */\n contractAddresses: Address[];\n /**\n * Standard TanStack query options. `hasPermit` intentionally overrides cache\n * timing because permit state is wallet-local, not server state: every fetch\n * should read the SDK credential service directly.\n */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading whether the connected wallet holds a valid decryption permit for the given contracts. */\nexport function hasPermitQueryOptions(\n sdk: ZamaSDK,\n config: HasPermitQueryConfig,\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<boolean, Error, boolean, ReturnType<typeof zamaQueryKeys.hasPermit.scope>> {\n const callerEnabled = config.query?.enabled !== false;\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey: zamaQueryKeys.hasPermit.scope(config.contractAddresses, signerContext.walletAccount),\n queryFn: (context) => {\n const [, { contractAddresses }] = context.queryKey;\n return sdk.permits.hasPermit(contractAddresses as Address[]);\n },\n staleTime: 0,\n gcTime: 0,\n refetchOnMount: \"always\",\n refetchOnWindowFocus: false,\n enabled:\n callerEnabled &&\n signerContext.walletAccount !== undefined &&\n config.contractAddresses.length > 0,\n } as const;\n}\n","import type { Address } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** TanStack Query mutation factory for {@link Permits.revokePermits}. */\nexport function revokePermitsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.revokePermits\"], Address[] | void, void> {\n return {\n mutationKey: [\"zama.revokePermits\"],\n mutationFn: (contracts: Address[] | void) =>\n contracts === undefined ? sdk.permits.revokePermits() : sdk.permits.revokePermits(contracts),\n };\n}\n","import type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** TanStack Query mutation factory for {@link Permits.clear}. */\nexport function clearCredentialsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.clearCredentials\"], void, void> {\n return { mutationKey: [\"zama.clearCredentials\"], mutationFn: () => sdk.permits.clear() };\n}\n","import type { Address } from \"viem\";\nimport type { TransactionResult } from \"../types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link delegateDecryptionMutationOptions}. */\nexport interface DelegateDecryptionParams {\n /** Address to grant delegated decryption rights to. */\n delegateAddress: Address;\n /** When the delegation expires; omit for no expiry. */\n expirationDate?: Date;\n}\n\n/** Builds TanStack Query mutation options for {@link Delegations.delegateDecryption | granting} delegated decryption rights on a contract. @see {@link DelegateDecryptionParams} */\nexport function delegateDecryptionMutationOptions(\n sdk: ZamaSDK,\n contractAddress: Address,\n): MutationFactoryOptions<\n readonly [\"zama.delegateDecryption\", Address],\n DelegateDecryptionParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.delegateDecryption\", contractAddress] as const,\n mutationFn: async ({ delegateAddress, expirationDate }) =>\n sdk.delegations.delegateDecryption({ contractAddress, delegateAddress, expirationDate }),\n };\n}\n","import type { Address } from \"viem\";\nimport type { ClearValue, EncryptedValue } from \"../relayer/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\n\n/** A single encrypted value to decrypt, paired with the contract that owns it. */\nexport interface EncryptedInput {\n /** Encrypted handle to decrypt. */\n encryptedValue: EncryptedValue;\n /** Address of the contract the encrypted value belongs to. */\n contractAddress: Address;\n}\n\n/** Decrypted clear values keyed by encrypted handle. */\nexport type DecryptResult = Readonly<Record<EncryptedValue, ClearValue>>;\n\n/** Builds TanStack Query options for decrypting a batch of encrypted handles into their clear values. */\nexport function decryptValuesQueryOptions(\n sdk: ZamaSDK,\n encryptedInputs: EncryptedInput[],\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<\n DecryptResult,\n Error,\n DecryptResult,\n ReturnType<typeof zamaQueryKeys.decryption.encryptedInputs>\n> {\n return {\n queryKey: zamaQueryKeys.decryption.encryptedInputs(\n encryptedInputs,\n signerContext.walletAccount,\n ),\n queryFn: (context) => {\n const [, { encryptedInputs: keyedInputs }] = context.queryKey;\n return sdk.decryption.decryptValues(keyedInputs);\n },\n staleTime: Infinity,\n enabled: encryptedInputs.length > 0 && signerContext.walletAccount !== undefined,\n };\n}\n","import type { Address } from \"viem\";\nimport type { Token } from \"../token/token\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link decryptBalanceAsMutationOptions}. */\nexport interface DecryptBalanceAsParams {\n /** Address of the account that delegated decryption rights to the connected wallet. */\n delegatorAddress: Address;\n /** Account whose on-chain balance to read; defaults to the delegator address. */\n accountAddress?: Address;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.decryptBalanceAs | decrypting} a balance via delegated decryption credentials. @see {@link DecryptBalanceAsParams} */\nexport function decryptBalanceAsMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.decryptBalanceAs\", Address],\n DecryptBalanceAsParams,\n bigint\n> {\n return {\n mutationKey: [\"zama.decryptBalanceAs\", token.address] as const,\n mutationFn: async ({ delegatorAddress, accountAddress }) =>\n token.decryptBalanceAs({ delegatorAddress, accountAddress }),\n };\n}\n","import { Token, type BatchDecryptAsOptions } from \"../token/token\";\nimport type { Address } from \"viem\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link batchDecryptBalancesAsMutationOptions}. */\nexport type BatchDecryptBalancesAsParams = BatchDecryptAsOptions;\n\n/** Builds TanStack Query mutation options for {@link Token.batchDecryptBalancesAs | decrypting} multiple token balances via delegated decryption credentials. @see {@link BatchDecryptBalancesAsParams} */\nexport function batchDecryptBalancesAsMutationOptions(\n tokens: Token[],\n): MutationFactoryOptions<\n readonly [\"zama.batchDecryptBalancesAs\", ...Address[]],\n BatchDecryptBalancesAsParams,\n Map<Address, bigint>\n> {\n return {\n mutationKey: [\"zama.batchDecryptBalancesAs\", ...tokens.map((t) => t.address)] as const,\n mutationFn: async (params) => Token.batchDecryptBalancesAs(tokens, params),\n };\n}\n","import type { Address } from \"viem\";\nimport type { TransactionResult } from \"../types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link revokeDelegationMutationOptions}. */\nexport interface RevokeDelegationParams {\n /** Address whose delegated decryption rights to revoke. */\n delegateAddress: Address;\n}\n\n/** Builds TanStack Query mutation options for {@link Delegations.revokeDelegation | revoking} delegated decryption rights on a contract. @see {@link RevokeDelegationParams} */\nexport function revokeDelegationMutationOptions(\n sdk: ZamaSDK,\n contractAddress: Address,\n): MutationFactoryOptions<\n readonly [\"zama.revokeDelegation\", Address],\n RevokeDelegationParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.revokeDelegation\", contractAddress] as const,\n mutationFn: async ({ delegateAddress }) =>\n sdk.delegations.revokeDelegation({ contractAddress, delegateAddress }),\n };\n}\n","import type { Address } from \"viem\";\nimport type { DelegationStatus } from \"../services/delegation-service\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { filterQueryOptions } from \"./utils\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { assertNonNullable } from \"../utils\";\n\nexport type { DelegationStatus } from \"../services/delegation-service\";\n\n/** Configuration for {@link delegationStatusQueryOptions}. */\nexport interface DelegationStatusQueryConfig {\n /** Contract the delegation applies to; pass `undefined` to keep the query disabled. */\n contractAddress: Address | undefined;\n /** Address granting the delegated decryption rights; the query stays disabled until provided. */\n delegatorAddress?: Address;\n /** Address receiving the delegated decryption rights; the query stays disabled until provided. */\n delegateAddress?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading the decryption-delegation status between a delegator and a delegate on a contract. */\nexport function delegationStatusQueryOptions(\n sdk: ZamaSDK,\n config: DelegationStatusQueryConfig,\n): QueryFactoryOptions<\n DelegationStatus,\n Error,\n DelegationStatus,\n ReturnType<typeof zamaQueryKeys.delegationStatus.scope>\n> {\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey: zamaQueryKeys.delegationStatus.scope(\n config.contractAddress,\n config.delegatorAddress,\n config.delegateAddress,\n ),\n queryFn: async (context) => {\n const [, { contractAddress, delegatorAddress, delegateAddress }] = context.queryKey;\n assertNonNullable(contractAddress, \"delegationStatusQueryOptions: contractAddress\");\n assertNonNullable(delegatorAddress, \"delegationStatusQueryOptions: delegatorAddress\");\n assertNonNullable(delegateAddress, \"delegationStatusQueryOptions: delegateAddress\");\n return sdk.delegations.getStatus({ contractAddress, delegatorAddress, delegateAddress });\n },\n enabled:\n Boolean(config.contractAddress && config.delegatorAddress && config.delegateAddress) &&\n config.query?.enabled !== false,\n } as const;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["zamaQueryKeys","filterQueryOptions","nameContract","symbolContract","decimalsContract","zamaQueryKeys","filterQueryOptions","isConfidentialTokenContract","isContractCallError","isConfidentialWrapperContract","zamaQueryKeys","filterQueryOptions","inferredTotalSupplyContract","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","filterQueryOptions","underlyingContract","allowanceContract","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","filterQueryOptions","isOperatorContract","filterQueryOptions","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","Token","zamaQueryKeys","zeroAddress","filterQueryOptions","getTokenPairsContract","getConfidentialTokenAddressContract","getTokenAddressContract","getTokenPairsLengthContract","getTokenPairsSliceContract","getTokenPairContract","isConfidentialTokenValidContract","zamaQueryKeys","filterQueryOptions","zamaQueryKeys","zamaQueryKeys","Token","filterQueryOptions","zamaQueryKeys"],"sources":["../../../src/query/token-metadata.ts","../../../src/query/is-confidential.ts","../../../src/query/total-supply.ts","../../../src/query/wrapper-discovery.ts","../../../src/query/underlying-allowance.ts","../../../src/query/pending-unshield.ts","../../../src/query/confidential-is-operator.ts","../../../src/query/confidential-balance.ts","../../../src/query/confidential-balances.ts","../../../src/query/wrappers-registry.ts","../../../src/query/shield.ts","../../../src/query/transfer.ts","../../../src/query/transfer-and-call.ts","../../../src/query/transfer-from.ts","../../../src/query/transfer-from-and-call.ts","../../../src/query/set-operator.ts","../../../src/query/approve-underlying.ts","../../../src/query/unshield.ts","../../../src/query/unshield-all.ts","../../../src/query/resume-unshield.ts","../../../src/query/unwrap.ts","../../../src/query/wrap.ts","../../../src/query/unwrap-all.ts","../../../src/query/finalize-unwrap.ts","../../../src/query/encrypt.ts","../../../src/query/delegated-decrypt.ts","../../../src/query/public-decrypt.ts","../../../src/query/grant-permit.ts","../../../src/query/prepare-permit.ts","../../../src/query/batch-prepare-permits.ts","../../../src/query/register-permit.ts","../../../src/query/batch-register-permits.ts","../../../src/query/has-permit.ts","../../../src/query/revoke-permits.ts","../../../src/query/clear-credentials.ts","../../../src/query/delegate-decryption.ts","../../../src/query/user-decrypt.ts","../../../src/query/decrypt-balance-as.ts","../../../src/query/batch-decrypt-balances-as.ts","../../../src/query/revoke-delegation.ts","../../../src/query/delegation-status.ts"],"sourcesContent":["import { decimalsContract, nameContract, symbolContract } from \"../contracts\";\n\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** ERC-20 token metadata returned by {@link tokenMetadataQueryOptions}. */\nexport interface TokenMetadata {\n /** Human-readable token name. */\n name: string;\n /** Token ticker symbol. */\n symbol: string;\n /** Number of decimals the token uses. */\n decimals: number;\n}\n\n/** Configuration for {@link tokenMetadataQueryOptions}. */\nexport interface TokenMetadataQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading an ERC-20 token's name, symbol, and decimals. */\nexport function tokenMetadataQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: TokenMetadataQueryConfig,\n): QueryFactoryOptions<\n TokenMetadata,\n Error,\n TokenMetadata,\n ReturnType<typeof zamaQueryKeys.tokenMetadata.token>\n> {\n const queryKey = zamaQueryKeys.tokenMetadata.token(tokenAddress);\n\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n const [name, symbol, decimals] = await Promise.all([\n sdk.provider.readContract(nameContract(keyTokenAddress)),\n sdk.provider.readContract(symbolContract(keyTokenAddress)),\n sdk.provider.readContract(decimalsContract(keyTokenAddress)),\n ]);\n return { name, symbol, decimals };\n },\n staleTime: Infinity,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import { isConfidentialTokenContract, isConfidentialWrapperContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport { isContractCallError } from \"../utils\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link isConfidentialQueryOptions} and {@link isWrapperQueryOptions}. */\nexport interface IsConfidentialQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading whether a token address implements the confidential (ERC-7984) token interface. */\nexport function isConfidentialQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: IsConfidentialQueryConfig,\n): QueryFactoryOptions<\n boolean,\n Error,\n boolean,\n ReturnType<typeof zamaQueryKeys.isConfidential.token>\n> {\n const queryKey = zamaQueryKeys.isConfidential.token(tokenAddress);\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n try {\n return await sdk.provider.readContract(isConfidentialTokenContract(keyTokenAddress));\n } catch (err) {\n // Only suppress contract execution reverts (non-ERC-165 contracts).\n // Re-throw network/transport errors so TanStack Query's retry logic applies.\n if (isContractCallError(err)) {\n return false;\n }\n throw err;\n }\n },\n staleTime: Infinity,\n enabled: config?.query?.enabled !== false,\n };\n}\n\n/** Builds TanStack Query options for reading whether a token address is a confidential wrapper (ERC-7984 wrapper) contract. */\nexport function isWrapperQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: IsConfidentialQueryConfig,\n): QueryFactoryOptions<boolean, Error, boolean, ReturnType<typeof zamaQueryKeys.isWrapper.token>> {\n const queryKey = zamaQueryKeys.isWrapper.token(tokenAddress);\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n try {\n return await sdk.provider.readContract(isConfidentialWrapperContract(keyTokenAddress));\n } catch (err) {\n // Only suppress contract execution reverts (non-ERC-165 contracts).\n // Re-throw network/transport errors so TanStack Query's retry logic applies.\n if (isContractCallError(err)) {\n return false;\n }\n throw err;\n }\n },\n staleTime: Infinity,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import { inferredTotalSupplyContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link totalSupplyQueryOptions}. */\nexport interface TotalSupplyQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading a token's total supply. */\nexport function totalSupplyQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: TotalSupplyQueryConfig,\n): QueryFactoryOptions<bigint, Error, bigint, ReturnType<typeof zamaQueryKeys.totalSupply.token>> {\n const queryKey = zamaQueryKeys.totalSupply.token(tokenAddress);\n\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n return sdk.provider.readContract(inferredTotalSupplyContract(keyTokenAddress));\n },\n staleTime: 30_000,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import type { Address } from \"viem\";\nimport type { WrappersRegistry } from \"../wrappers-registry\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link wrapperDiscoveryQueryOptions}. */\nexport interface WrapperDiscoveryQueryConfig {\n /**\n * Address of any confidential token you control.\n * Used to scope the query cache key and to gate whether the query\n * is enabled — it does not affect which wrapper the registry returns.\n */\n tokenAddress?: Address;\n /**\n * The ERC-20 token address to discover the confidential wrapper for.\n * The registry is resolved automatically from chain config.\n */\n erc20Address?: Address;\n /**\n * The resolved registry contract address for the current chain.\n * Included in the query key so that switching chains invalidates\n * stale cached results. Pass `undefined` when the chain ID is not\n * yet known — the query will be disabled.\n */\n registryAddress?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for discovering the confidential wrapper address for a given ERC-20 token (resolves to `null` when none is registered or the registered wrapper has been revoked). */\nexport function wrapperDiscoveryQueryOptions(\n registry: WrappersRegistry,\n config: WrapperDiscoveryQueryConfig,\n): QueryFactoryOptions<\n Address | null,\n Error,\n Address | null,\n ReturnType<typeof zamaQueryKeys.wrapperDiscovery.token>\n> {\n const queryKey = zamaQueryKeys.wrapperDiscovery.token(\n config.tokenAddress,\n config.erc20Address,\n config.registryAddress,\n );\n\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { erc20Address }] = context.queryKey;\n assertNonNullable(erc20Address, \"wrapperDiscoveryQueryOptions: erc20Address\");\n const result = await registry.getConfidentialToken(erc20Address);\n // A revoked pair keeps its non-zero wrapper address with `isValid: false`.\n return result?.isValid ? result.confidentialTokenAddress : null;\n },\n staleTime: registry.ttlMs,\n enabled:\n Boolean(config.tokenAddress && config.erc20Address && config.registryAddress) &&\n config.query?.enabled !== false,\n };\n}\n","import { allowanceContract, underlyingContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link underlyingAllowanceQueryOptions}. */\nexport interface UnderlyingAllowanceQueryConfig {\n /** Owner whose underlying-token allowance to read; the query stays disabled until provided. */\n owner?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading the ERC-20 allowance the owner has granted a confidential wrapper on its underlying token. */\nexport function underlyingAllowanceQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config: UnderlyingAllowanceQueryConfig,\n): QueryFactoryOptions<\n bigint,\n Error,\n bigint,\n ReturnType<typeof zamaQueryKeys.underlyingAllowance.scope>\n> {\n const ownerKey = config.owner;\n const queryEnabled = config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.underlyingAllowance.scope(tokenAddress, ownerKey);\n\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress, owner: keyOwner }] = context.queryKey;\n assertNonNullable(keyOwner, \"underlyingAllowanceQueryOptions: owner\");\n const underlying = await sdk.provider.readContract(underlyingContract(keyTokenAddress));\n return sdk.provider.readContract(allowanceContract(underlying, keyOwner, keyTokenAddress));\n },\n staleTime: 30_000,\n enabled: Boolean(ownerKey) && queryEnabled,\n };\n}\n","import type { Address, Hex } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link pendingUnshieldQueryOptions}. */\nexport interface PendingUnshieldQueryConfig {\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/**\n * Query options for reading the unwrap tx hash of an unshield that was\n * interrupted between its two phases (returns `null` if none is pending).\n *\n * Backed by {@link ZamaSDK} storage via `WrappedToken.getPendingUnshield()`.\n * `staleTime: 0` so the value reflects storage on mount; the unshield/unwrap\n * mutations also invalidate this key on success.\n */\nexport function pendingUnshieldQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address,\n config?: PendingUnshieldQueryConfig,\n): QueryFactoryOptions<\n Hex | null,\n Error,\n Hex | null,\n ReturnType<typeof zamaQueryKeys.pendingUnshield.token>\n> {\n const queryKey = zamaQueryKeys.pendingUnshield.token(tokenAddress);\n\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress }] = context.queryKey;\n return sdk.createWrappedToken(keyTokenAddress).getPendingUnshield();\n },\n staleTime: 0,\n enabled: config?.query?.enabled !== false,\n };\n}\n","import { isOperatorContract } from \"../contracts\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { filterQueryOptions } from \"./utils\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { Address } from \"viem\";\n\n/** Configuration for {@link confidentialIsOperatorQueryOptions}. */\nexport interface ConfidentialIsOperatorQueryConfig {\n /** Token holder whose operator authorization to check; the query stays disabled until provided. */\n holder?: Address;\n /** Spender address to check for operator authorization; the query stays disabled until provided. */\n spender?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading whether a spender is an authorized operator of a holder on a confidential token. */\nexport function confidentialIsOperatorQueryOptions(\n sdk: ZamaSDK,\n tokenAddress: Address | undefined,\n config: ConfidentialIsOperatorQueryConfig,\n): QueryFactoryOptions<\n boolean,\n Error,\n boolean,\n ReturnType<typeof zamaQueryKeys.confidentialIsOperator.scope>\n> {\n const holderKey = config.holder;\n const spenderKey = config.spender;\n const queryEnabled = config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.confidentialIsOperator.scope(tokenAddress, holderKey, spenderKey);\n\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { tokenAddress: keyTokenAddress, holder: keyHolder, spender: keySpender }] =\n context.queryKey;\n assertNonNullable(keyTokenAddress, \"confidentialIsOperatorQueryOptions: tokenAddress\");\n assertNonNullable(keyHolder, \"confidentialIsOperatorQueryOptions: holder\");\n assertNonNullable(keySpender, \"confidentialIsOperatorQueryOptions: spender\");\n return sdk.provider.readContract(isOperatorContract(keyTokenAddress, keyHolder, keySpender));\n },\n staleTime: 30_000,\n enabled: Boolean(tokenAddress && holderKey && spenderKey) && queryEnabled,\n };\n}\n","import type { Address } from \"viem\";\nimport type { Token } from \"../token\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link confidentialBalanceQueryOptions}. */\nexport interface ConfidentialBalanceQueryConfig {\n /** Address of the confidential token to read the balance of. */\n tokenAddress: Address;\n /** Account whose confidential balance to read; the query stays disabled until provided. */\n account?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Query options for a single confidential token balance. Auto-gated on `account`. */\nexport function confidentialBalanceQueryOptions(\n token: Token,\n config: ConfidentialBalanceQueryConfig,\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<\n bigint,\n Error,\n bigint,\n ReturnType<typeof zamaQueryKeys.confidentialBalance.owner>\n> {\n const queryOpts = config.query ?? {};\n\n return {\n ...filterQueryOptions(queryOpts),\n queryKey: zamaQueryKeys.confidentialBalance.owner(\n config.tokenAddress,\n config.account,\n signerContext.walletAccount,\n ),\n queryFn: async (context) => {\n const [, { owner: keyOwner }] = context.queryKey;\n assertNonNullable(keyOwner, \"confidentialBalanceQueryOptions: owner\");\n return token.balanceOf(keyOwner);\n },\n enabled:\n Boolean(config.account) &&\n signerContext.walletAccount !== undefined &&\n queryOpts?.enabled !== false,\n };\n}\n","import type { Address } from \"viem\";\nimport { Token, type BatchBalancesResult } from \"../token/token\";\nimport { assertNonNullable } from \"../utils/assertions\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link confidentialBalancesQueryOptions}. */\nexport interface ConfidentialBalancesQueryConfig {\n /** Account whose confidential balances to read; the query stays disabled until provided. */\n account?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading the confidential balances of several tokens for one account in a single batch. */\nexport function confidentialBalancesQueryOptions(\n tokens: Token[],\n config?: ConfidentialBalancesQueryConfig,\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<\n BatchBalancesResult,\n Error,\n BatchBalancesResult,\n ReturnType<typeof zamaQueryKeys.confidentialBalances.tokens>\n> {\n const accountKey = config?.account;\n const walletAccount = signerContext.walletAccount;\n const queryOpts = config?.query ?? {};\n const tokenAddresses = tokens.map((token) => token.address);\n\n return {\n ...filterQueryOptions(queryOpts),\n queryKey: zamaQueryKeys.confidentialBalances.tokens(tokenAddresses, accountKey, walletAccount),\n queryFn: async (signerContextQuery) => {\n const [, { owner: keyOwner }] = signerContextQuery.queryKey;\n assertNonNullable(keyOwner, \"confidentialBalancesQueryOptions: owner\");\n return Token.batchBalancesOf(tokens, keyOwner);\n },\n enabled:\n Boolean(accountKey) &&\n tokens.length > 0 &&\n walletAccount !== undefined &&\n queryOpts?.enabled !== false,\n };\n}\n","import { type Address, zeroAddress } from \"viem\";\nimport {\n getTokenPairsContract,\n getTokenPairsLengthContract,\n getTokenPairsSliceContract,\n getTokenPairContract,\n getConfidentialTokenAddressContract,\n getTokenAddressContract,\n isConfidentialTokenValidContract,\n} from \"../contracts\";\nimport type {\n TokenWrapperPair,\n TokenWrapperPairWithMetadata,\n PaginatedResult,\n} from \"../contracts/wrappers-registry\";\nimport type { WrappersRegistry } from \"../wrappers-registry\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Base configuration shared by the wrappers-registry query option factories. */\nexport interface WrappersRegistryQueryConfig {\n /** Registry contract address for the current chain; used as a query key discriminator. */\n registryAddress: Address | undefined;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading all token wrapper pairs registered in the wrappers registry. */\nexport function tokenPairsQueryOptions(\n sdk: ZamaSDK,\n config: WrappersRegistryQueryConfig,\n): QueryFactoryOptions<\n readonly TokenWrapperPair[],\n Error,\n readonly TokenWrapperPair[],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPairs>\n> {\n const enabled = Boolean(config.registryAddress) && config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPairs(config.registryAddress ?? zeroAddress);\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress }] = context.queryKey;\n return sdk.provider.readContract(getTokenPairsContract(registryAddress));\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link confidentialTokenAddressQueryOptions}. */\nexport interface ConfidentialTokenAddressQueryConfig extends WrappersRegistryQueryConfig {\n /** Underlying ERC-20 token address whose confidential counterpart to look up. */\n tokenAddress?: Address;\n}\n\n/** Builds TanStack Query options for reading the confidential token address registered for a given underlying ERC-20 token. */\nexport function confidentialTokenAddressQueryOptions(\n sdk: ZamaSDK,\n config: ConfidentialTokenAddressQueryConfig,\n): QueryFactoryOptions<\n readonly [boolean, Address],\n Error,\n readonly [boolean, Address],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.confidentialTokenAddress>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n Boolean(config.tokenAddress) &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.confidentialTokenAddress(\n config.registryAddress ?? zeroAddress,\n config.tokenAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, tokenAddress }] = context.queryKey;\n return sdk.provider.readContract(\n getConfidentialTokenAddressContract(registryAddress, tokenAddress),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link tokenAddressQueryOptions}. */\nexport interface TokenAddressQueryConfig extends WrappersRegistryQueryConfig {\n /** Confidential token address whose underlying ERC-20 counterpart to look up. */\n confidentialTokenAddress?: Address;\n}\n\n/** Builds TanStack Query options for reading the underlying ERC-20 token address registered for a given confidential token. */\nexport function tokenAddressQueryOptions(\n sdk: ZamaSDK,\n config: TokenAddressQueryConfig,\n): QueryFactoryOptions<\n readonly [boolean, Address],\n Error,\n readonly [boolean, Address],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenAddress>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n Boolean(config.confidentialTokenAddress) &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenAddress(\n config.registryAddress ?? zeroAddress,\n config.confidentialTokenAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, confidentialTokenAddress }] = context.queryKey;\n return sdk.provider.readContract(\n getTokenAddressContract(registryAddress, confidentialTokenAddress),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Builds TanStack Query options for reading the total number of token wrapper pairs in the registry. */\nexport function tokenPairsLengthQueryOptions(\n sdk: ZamaSDK,\n config: WrappersRegistryQueryConfig,\n): QueryFactoryOptions<\n bigint,\n Error,\n bigint,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPairsLength>\n> {\n const enabled = Boolean(config.registryAddress) && config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPairsLength(\n config.registryAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress }] = context.queryKey;\n return sdk.provider.readContract(getTokenPairsLengthContract(registryAddress));\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link tokenPairsSliceQueryOptions}. */\nexport interface TokenPairsSliceQueryConfig extends WrappersRegistryQueryConfig {\n /** Zero-based index of the first pair in the slice (inclusive). */\n fromIndex?: bigint;\n /** Index bounding the end of the slice. */\n toIndex?: bigint;\n}\n\n/** Builds TanStack Query options for reading a contiguous slice of the registry's token wrapper pairs. */\nexport function tokenPairsSliceQueryOptions(\n sdk: ZamaSDK,\n config: TokenPairsSliceQueryConfig,\n): QueryFactoryOptions<\n readonly TokenWrapperPair[],\n Error,\n readonly TokenWrapperPair[],\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPairsSlice>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n config.fromIndex !== undefined &&\n config.toIndex !== undefined &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPairsSlice(\n config.registryAddress ?? zeroAddress,\n String(config.fromIndex ?? 0n),\n String(config.toIndex ?? 0n),\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, fromIndex, toIndex }] = context.queryKey;\n return sdk.provider.readContract(\n getTokenPairsSliceContract(registryAddress, BigInt(fromIndex), BigInt(toIndex)),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link tokenPairQueryOptions}. */\nexport interface TokenPairQueryConfig extends WrappersRegistryQueryConfig {\n /** Zero-based index of the token wrapper pair to read. */\n index?: bigint;\n}\n\n/** Builds TanStack Query options for reading a single token wrapper pair by its index in the registry. */\nexport function tokenPairQueryOptions(\n sdk: ZamaSDK,\n config: TokenPairQueryConfig,\n): QueryFactoryOptions<\n TokenWrapperPair,\n Error,\n TokenWrapperPair,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.tokenPair>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n config.index !== undefined &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.tokenPair(\n config.registryAddress ?? zeroAddress,\n String(config.index ?? 0n),\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, index }] = context.queryKey;\n return sdk.provider.readContract(getTokenPairContract(registryAddress, BigInt(index)));\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link isConfidentialTokenValidQueryOptions}. */\nexport interface IsConfidentialTokenValidQueryConfig extends WrappersRegistryQueryConfig {\n /** Confidential token address to validate against the registry. */\n confidentialTokenAddress?: Address;\n}\n\n/** Builds TanStack Query options for checking whether a confidential token is registered and valid in the registry. */\nexport function isConfidentialTokenValidQueryOptions(\n sdk: ZamaSDK,\n config: IsConfidentialTokenValidQueryConfig,\n): QueryFactoryOptions<\n boolean,\n Error,\n boolean,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.isConfidentialTokenValid>\n> {\n const enabled =\n Boolean(config.registryAddress) &&\n Boolean(config.confidentialTokenAddress) &&\n config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.isConfidentialTokenValid(\n config.registryAddress ?? zeroAddress,\n config.confidentialTokenAddress ?? zeroAddress,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { registryAddress, confidentialTokenAddress }] = context.queryKey;\n return sdk.provider.readContract(\n isConfidentialTokenValidContract(registryAddress, confidentialTokenAddress),\n );\n },\n staleTime: sdk.registry.ttlMs,\n enabled,\n };\n}\n\n/** Configuration for {@link listPairsQueryOptions}. */\nexport interface ListPairsQueryConfig {\n /**\n * The registry address for this chain — used as a query key discriminator.\n * The registry instance already knows how to resolve the address for the\n * current chain; this field just keeps the TanStack Query cache isolated\n * per registry contract.\n */\n registryAddress: Address | undefined;\n /** 1-based page number to fetch; defaults to `1`. */\n page?: number;\n /** Number of pairs per page; defaults to `100`. */\n pageSize?: number;\n /** When `true`, resolve each pair's on-chain metadata; defaults to `false`. */\n metadata?: boolean;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/**\n * Query options for paginated listing of token wrapper pairs.\n *\n * Accepts a {@link WrappersRegistry} instance rather than a raw provider so that the\n * class-level TTL cache is shared across multiple `queryFn` executions. Pass\n * `sdk.registry` (the ZamaSDK lazy singleton) to ensure a single shared cache.\n */\nexport function listPairsQueryOptions(\n registry: WrappersRegistry,\n config: ListPairsQueryConfig,\n): QueryFactoryOptions<\n PaginatedResult<TokenWrapperPair | TokenWrapperPairWithMetadata>,\n Error,\n PaginatedResult<TokenWrapperPair | TokenWrapperPairWithMetadata>,\n ReturnType<typeof zamaQueryKeys.wrappersRegistry.listPairs>\n> {\n const enabled = Boolean(config.registryAddress) && config.query?.enabled !== false;\n const queryKey = zamaQueryKeys.wrappersRegistry.listPairs(\n config.registryAddress ?? zeroAddress,\n config.page ?? 1,\n config.pageSize ?? 100,\n config.metadata ?? false,\n );\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey,\n queryFn: async (context) => {\n const [, { page, pageSize, metadata }] = context.queryKey;\n return registry.listPairs({ page, pageSize, metadata });\n },\n // Use the registry's own TTL so TanStack Query and the class-level cache\n // operate under the same freshness contract.\n staleTime: registry.ttlMs,\n enabled,\n };\n}\n","import type { Address } from \"viem\";\nimport type { WrappedToken } from \"../token/wrapped-token\";\nimport type { ShieldOptions, TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link shieldMutationOptions}. */\nexport interface ShieldParams extends ShieldOptions {\n /** Amount of the public ERC-20 to shield, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.shield | shielding} a public ERC-20 into its confidential form. @see {@link ShieldParams} */\nexport function shieldMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.shield\", Address], ShieldParams, TransactionResult> {\n return {\n mutationKey: [\"zama.shield\", token.address] as const,\n mutationFn: async ({ amount, ...rest }) => token.shield(amount, rest),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransactionResult, TransferOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link confidentialTransferMutationOptions}. */\nexport interface ConfidentialTransferParams extends TransferOptions {\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransfer | transferring} confidential tokens. @see {@link ConfidentialTransferParams} */\nexport function confidentialTransferMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransfer\", Address],\n ConfidentialTransferParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransfer\", token.address] as const,\n mutationFn: async ({ to, amount, ...options }) =>\n token.confidentialTransfer(to, amount, options),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransactionResult, TransferOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address, Hex } from \"viem\";\n\n/** Variables for {@link confidentialTransferAndCallMutationOptions}. */\nexport interface ConfidentialTransferAndCallParams extends TransferOptions {\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n /** Opaque bytes forwarded to the recipient's ERC-7984 receiver hook. */\n data: Hex;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransferAndCall | transferring} confidential tokens and invoking the recipient's receiver hook. @see {@link ConfidentialTransferAndCallParams} */\nexport function confidentialTransferAndCallMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransferAndCall\", Address],\n ConfidentialTransferAndCallParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransferAndCall\", token.address] as const,\n mutationFn: async ({ to, amount, data, ...options }) =>\n token.confidentialTransferAndCall(to, amount, data, options),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransferCallbacks, TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link confidentialTransferFromMutationOptions}. */\nexport interface ConfidentialTransferFromParams {\n /** Address to transfer from. */\n from: Address;\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n /** Optional progress callbacks for the multi-step transfer flow. */\n callbacks?: TransferCallbacks;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransferFrom | transferring} confidential tokens from another account (operator flow). @see {@link ConfidentialTransferFromParams} */\nexport function confidentialTransferFromMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransferFrom\", Address],\n ConfidentialTransferFromParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransferFrom\", token.address] as const,\n mutationFn: async ({ from, to, amount, callbacks }) =>\n token.confidentialTransferFrom(from, to, amount, callbacks),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransferCallbacks, TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address, Hex } from \"viem\";\n\n/** Variables for {@link confidentialTransferFromAndCallMutationOptions}. */\nexport interface ConfidentialTransferFromAndCallParams {\n /** Address to transfer from. */\n from: Address;\n /** Recipient address. */\n to: Address;\n /** Amount of tokens to transfer, in the token's base units. */\n amount: bigint;\n /** Opaque bytes forwarded to the recipient's ERC-7984 receiver hook. */\n data: Hex;\n /** Optional progress callbacks for the multi-step transfer flow. */\n callbacks?: TransferCallbacks;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.confidentialTransferFromAndCall | transferring} confidential tokens from another account and invoking the recipient's receiver hook. @see {@link ConfidentialTransferFromAndCallParams} */\nexport function confidentialTransferFromAndCallMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialTransferFromAndCall\", Address],\n ConfidentialTransferFromAndCallParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialTransferFromAndCall\", token.address] as const,\n mutationFn: async ({ from, to, amount, data, callbacks }) =>\n token.confidentialTransferFromAndCall(from, to, amount, data, callbacks),\n };\n}\n","import type { Token } from \"../token/token\";\nimport type { TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link confidentialSetOperatorMutationOptions}. */\nexport interface ConfidentialSetOperatorParams {\n /** Operator address to authorize. */\n operator: Address;\n /** Unix timestamp (seconds) when the operator authorization expires; defaults to one hour from now. */\n until?: number;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.setOperator | authorizing} an operator on a confidential token. @see {@link ConfidentialSetOperatorParams} */\nexport function confidentialSetOperatorMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.confidentialSetOperator\", Address],\n ConfidentialSetOperatorParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.confidentialSetOperator\", token.address] as const,\n mutationFn: async ({ operator, until }) => token.setOperator(operator, until),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link approveUnderlyingMutationOptions}. */\nexport interface ApproveUnderlyingParams {\n /** Amount of the underlying ERC-20 to approve, in its base units; omit for a max approval. */\n amount?: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.approveUnderlying | approving} the wrapper to spend the underlying ERC-20. @see {@link ApproveUnderlyingParams} */\nexport function approveUnderlyingMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.approveUnderlying\", Address],\n ApproveUnderlyingParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.approveUnderlying\", token.address] as const,\n mutationFn: async ({ amount }) => token.approveUnderlying(amount),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, UnshieldOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link unshieldMutationOptions}. */\nexport interface UnshieldParams extends UnshieldOptions {\n /** Amount of tokens to unshield, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unshield | unshielding} a confidential token back into its public ERC-20. @see {@link UnshieldParams} */\nexport function unshieldMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.unshield\", Address], UnshieldParams, TransactionResult> {\n return {\n mutationKey: [\"zama.unshield\", token.address] as const,\n mutationFn: async ({ amount, ...options }) => token.unshield(amount, options),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, UnshieldCallbacks } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link unshieldAllMutationOptions}. */\nexport interface UnshieldAllParams extends UnshieldCallbacks {}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unshieldAll | unshielding} the entire confidential balance back into the public ERC-20. @see {@link UnshieldAllParams} */\nexport function unshieldAllMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.unshieldAll\", Address],\n UnshieldAllParams | void,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.unshieldAll\", token.address] as const,\n mutationFn: async (params) => token.unshieldAll(params || undefined),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, UnshieldCallbacks } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address, Hex } from \"viem\";\n\n/** Variables for {@link resumeUnshieldMutationOptions}. */\nexport interface ResumeUnshieldParams extends UnshieldCallbacks {\n /** Hash of the earlier unwrap request transaction to resume from. */\n unwrapTxHash: Hex;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.resumeUnshield | resuming} an interrupted unshield from its unwrap request transaction. @see {@link ResumeUnshieldParams} */\nexport function resumeUnshieldMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.resumeUnshield\", Address],\n ResumeUnshieldParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.resumeUnshield\", token.address] as const,\n mutationFn: async ({ unwrapTxHash, ...callbacks }) =>\n token.resumeUnshield(unwrapTxHash, callbacks),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { UnwrapResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link unwrapMutationOptions}. */\nexport interface UnwrapParams {\n /** Amount of tokens to unwrap, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unwrap | unwrapping} a confidential token (request phase of the two-phase unwrap). @see {@link UnwrapParams} */\nexport function unwrapMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.unwrap\", Address], UnwrapParams, UnwrapResult> {\n return {\n mutationKey: [\"zama.unwrap\", token.address] as const,\n mutationFn: async ({ amount }) => token.unwrap(amount),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult, WrapOptions } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Variables for {@link wrapMutationOptions}. */\nexport interface WrapParams extends WrapOptions {\n /** Amount of the public ERC-20 to wrap, in the token's base units. */\n amount: bigint;\n}\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.wrap | wrapping} a public ERC-20 into its confidential form. @see {@link WrapParams} */\nexport function wrapMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.wrap\", Address], WrapParams, TransactionResult> {\n return {\n mutationKey: [\"zama.wrap\", token.address] as const,\n mutationFn: async ({ amount, ...rest }) => token.wrap(amount, rest),\n };\n}\n","import type { WrappedToken } from \"../token/wrapped-token\";\nimport type { UnwrapResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.unwrapAll | unwrapping} the entire confidential balance. */\nexport function unwrapAllMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<readonly [\"zama.unwrapAll\", Address], void, UnwrapResult> {\n return {\n mutationKey: [\"zama.unwrapAll\", token.address] as const,\n mutationFn: async () => token.unwrapAll(),\n };\n}\n","import type { EncryptedValue } from \"../relayer/types\";\nimport type { WrappedToken } from \"../token/wrapped-token\";\nimport type { TransactionResult } from \"../types\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport type { Address } from \"viem\";\n/** Variables for {@link finalizeUnwrapMutationOptions}. */\nexport type FinalizeUnwrapParams = {\n /** Identifier from an `UnwrapRequested` event. */\n unwrapRequestId: EncryptedValue;\n};\n\n/** Builds TanStack Query mutation options for {@link WrappedToken.finalizeUnwrap | finalizing} a previously requested unwrap. @see {@link FinalizeUnwrapParams} */\nexport function finalizeUnwrapMutationOptions(\n token: WrappedToken,\n): MutationFactoryOptions<\n readonly [\"zama.finalizeUnwrap\", Address],\n FinalizeUnwrapParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.finalizeUnwrap\", token.address] as const,\n mutationFn: async ({ unwrapRequestId }) => token.finalizeUnwrap(unwrapRequestId),\n };\n}\n","import type { EncryptParams } from \"../node\";\nimport type { EncryptResult } from \"../relayer/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link ZamaSDK.encrypt | encrypting} plaintext inputs into an encrypted payload. */\nexport function encryptMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.encrypt\"], EncryptParams, EncryptResult> {\n return { mutationKey: [\"zama.encrypt\"], mutationFn: async (params) => sdk.encrypt(params) };\n}\n","import type { Address } from \"viem\";\nimport type { ClearValue, EncryptedValue } from \"../relayer/types\";\nimport type { EncryptedInput } from \"./user-decrypt\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link delegatedDecryptValuesMutationOptions}. */\nexport interface DelegatedDecryptValuesMutationParams {\n /** Encrypted values (with their contract addresses) to decrypt. */\n encryptedInputs: EncryptedInput[];\n /** Address of the account that delegated decryption rights to the connected wallet. */\n delegatorAddress: Address;\n}\n\n/** Builds TanStack Query mutation options for {@link Decryption.delegatedDecryptValues | decrypting} encrypted values via delegated decryption credentials. @see {@link DelegatedDecryptValuesMutationParams} */\nexport function delegatedDecryptValuesMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.delegatedDecryptValues\"],\n DelegatedDecryptValuesMutationParams,\n Readonly<Record<EncryptedValue, ClearValue>>\n> {\n return {\n mutationKey: [\"zama.delegatedDecryptValues\"],\n mutationFn: async (params) =>\n sdk.decryption.delegatedDecryptValues(params.encryptedInputs, params.delegatorAddress),\n };\n}\n","import type { ClearValue, EncryptedValue, DecryptPublicValuesResult } from \"../relayer/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\n\n/** Builds TanStack Query mutation options for {@link Decryption.decryptPublicValues | publicly decrypting} encrypted values, caching each clear result. */\nexport function decryptPublicValuesMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.decryptPublicValues\"],\n EncryptedValue[],\n DecryptPublicValuesResult\n> {\n return {\n mutationKey: [\"zama.decryptPublicValues\"],\n mutationFn: async (handles) => sdk.decryption.decryptPublicValues(handles),\n onSuccess: (data, _variables, _onMutateResult, context) => {\n for (const [handle, value] of Object.entries(data.clearValues) as [\n EncryptedValue,\n ClearValue,\n ][]) {\n context.client.setQueryData(zamaQueryKeys.decryption.encryptedValue(handle), value);\n }\n },\n };\n}\n","import type { Address } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Permits.grantPermit | granting} decryption permits for the given contract addresses. */\nexport function grantPermitMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.grantPermit\"], Address[], void> {\n return {\n mutationKey: [\"zama.grantPermit\"],\n mutationFn: (contractAddresses) => sdk.permits.grantPermit(contractAddresses),\n };\n}\n","import type { PreparedPermit, PreparePermitRequest } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Offline.preparePermit | preparing} an offline decryption permit. */\nexport function preparePermitMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.preparePermit\"], PreparePermitRequest, PreparedPermit> {\n return {\n mutationKey: [\"zama.preparePermit\"],\n mutationFn: (request) => sdk.offline.preparePermit(request),\n };\n}\n","import type { PreparedPermit, PreparePermitRequest } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Offline.batchPreparePermits | preparing} a batch of offline decryption permits. */\nexport function batchPreparePermitsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.batchPreparePermits\"],\n PreparePermitRequest,\n PreparedPermit[]\n> {\n return {\n mutationKey: [\"zama.batchPreparePermits\"],\n mutationFn: (request) => sdk.offline.batchPreparePermits(request),\n };\n}\n","import type { SignedPreparedPermit } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Parameters for {@link registerPermitMutationOptions}. */\nexport type RegisterPermitParams = SignedPreparedPermit;\n\n/** Builds TanStack Query mutation options for {@link Permits.registerPermit | registering} a signed offline permit. */\nexport function registerPermitMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.registerPermit\"], RegisterPermitParams, void> {\n return {\n mutationKey: [\"zama.registerPermit\"],\n mutationFn: ({ prepared, signature }) => sdk.permits.registerPermit(prepared, signature),\n };\n}\n","import type { SignedPreparedPermit } from \"../credentials/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Builds TanStack Query mutation options for {@link Permits.batchRegisterPermits | registering} a list of signed offline permits. */\nexport function batchRegisterPermitsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<\n readonly [\"zama.batchRegisterPermits\"],\n readonly SignedPreparedPermit[],\n void\n> {\n return {\n mutationKey: [\"zama.batchRegisterPermits\"],\n mutationFn: (permits) => sdk.permits.batchRegisterPermits(permits),\n };\n}\n","import type { Address } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\nimport { filterQueryOptions } from \"./utils\";\n\n/** Configuration for {@link hasPermitQueryOptions}. */\nexport interface HasPermitQueryConfig {\n /** Contract addresses to check credentials against. */\n contractAddresses: Address[];\n /**\n * Standard TanStack query options. `hasPermit` intentionally overrides cache\n * timing because permit state is wallet-local, not server state: every fetch\n * should read the SDK credential service directly.\n */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading whether the connected wallet holds a valid decryption permit for the given contracts. */\nexport function hasPermitQueryOptions(\n sdk: ZamaSDK,\n config: HasPermitQueryConfig,\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<boolean, Error, boolean, ReturnType<typeof zamaQueryKeys.hasPermit.scope>> {\n const callerEnabled = config.query?.enabled !== false;\n return {\n ...filterQueryOptions(config?.query ?? {}),\n queryKey: zamaQueryKeys.hasPermit.scope(config.contractAddresses, signerContext.walletAccount),\n queryFn: (context) => {\n const [, { contractAddresses }] = context.queryKey;\n return sdk.permits.hasPermit(contractAddresses as Address[]);\n },\n staleTime: 0,\n gcTime: 0,\n refetchOnMount: \"always\",\n refetchOnWindowFocus: false,\n enabled:\n callerEnabled &&\n signerContext.walletAccount !== undefined &&\n config.contractAddresses.length > 0,\n } as const;\n}\n","import type { Address } from \"viem\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** TanStack Query mutation factory for {@link Permits.revokePermits}. */\nexport function revokePermitsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.revokePermits\"], Address[] | void, void> {\n return {\n mutationKey: [\"zama.revokePermits\"],\n mutationFn: (contracts: Address[] | void) =>\n contracts === undefined ? sdk.permits.revokePermits() : sdk.permits.revokePermits(contracts),\n };\n}\n","import type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** TanStack Query mutation factory for {@link Permits.clear}. */\nexport function clearCredentialsMutationOptions(\n sdk: ZamaSDK,\n): MutationFactoryOptions<readonly [\"zama.clearCredentials\"], void, void> {\n return { mutationKey: [\"zama.clearCredentials\"], mutationFn: () => sdk.permits.clear() };\n}\n","import type { Address } from \"viem\";\nimport type { TransactionResult } from \"../types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link delegateDecryptionMutationOptions}. */\nexport interface DelegateDecryptionParams {\n /** Address to grant delegated decryption rights to. */\n delegateAddress: Address;\n /** When the delegation expires; omit for no expiry. */\n expirationDate?: Date;\n}\n\n/** Builds TanStack Query mutation options for {@link Delegations.delegateDecryption | granting} delegated decryption rights on a contract. @see {@link DelegateDecryptionParams} */\nexport function delegateDecryptionMutationOptions(\n sdk: ZamaSDK,\n contractAddress: Address,\n): MutationFactoryOptions<\n readonly [\"zama.delegateDecryption\", Address],\n DelegateDecryptionParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.delegateDecryption\", contractAddress] as const,\n mutationFn: async ({ delegateAddress, expirationDate }) =>\n sdk.delegations.delegateDecryption({ contractAddress, delegateAddress, expirationDate }),\n };\n}\n","import type { Address } from \"viem\";\nimport type { ClearValue, EncryptedValue } from \"../relayer/types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport type { SignerQueryContext } from \"./signer-query-context\";\n\n/** A single encrypted value to decrypt, paired with the contract that owns it. */\nexport interface EncryptedInput {\n /** Encrypted handle to decrypt. */\n encryptedValue: EncryptedValue;\n /** Address of the contract the encrypted value belongs to. */\n contractAddress: Address;\n}\n\n/** Decrypted clear values keyed by encrypted handle. */\nexport type DecryptResult = Readonly<Record<EncryptedValue, ClearValue>>;\n\n/** Builds TanStack Query options for decrypting a batch of encrypted handles into their clear values. */\nexport function decryptValuesQueryOptions(\n sdk: ZamaSDK,\n encryptedInputs: EncryptedInput[],\n signerContext: SignerQueryContext = {},\n): QueryFactoryOptions<\n DecryptResult,\n Error,\n DecryptResult,\n ReturnType<typeof zamaQueryKeys.decryption.encryptedInputs>\n> {\n return {\n queryKey: zamaQueryKeys.decryption.encryptedInputs(\n encryptedInputs,\n signerContext.walletAccount,\n ),\n queryFn: (context) => {\n const [, { encryptedInputs: keyedInputs }] = context.queryKey;\n return sdk.decryption.decryptValues(keyedInputs);\n },\n staleTime: Infinity,\n enabled: encryptedInputs.length > 0 && signerContext.walletAccount !== undefined,\n };\n}\n","import type { Address } from \"viem\";\nimport type { Token } from \"../token/token\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link decryptBalanceAsMutationOptions}. */\nexport interface DecryptBalanceAsParams {\n /** Address of the account that delegated decryption rights to the connected wallet. */\n delegatorAddress: Address;\n /** Account whose on-chain balance to read; defaults to the delegator address. */\n accountAddress?: Address;\n}\n\n/** Builds TanStack Query mutation options for {@link Token.decryptBalanceAs | decrypting} a balance via delegated decryption credentials. @see {@link DecryptBalanceAsParams} */\nexport function decryptBalanceAsMutationOptions(\n token: Token,\n): MutationFactoryOptions<\n readonly [\"zama.decryptBalanceAs\", Address],\n DecryptBalanceAsParams,\n bigint\n> {\n return {\n mutationKey: [\"zama.decryptBalanceAs\", token.address] as const,\n mutationFn: async ({ delegatorAddress, accountAddress }) =>\n token.decryptBalanceAs({ delegatorAddress, accountAddress }),\n };\n}\n","import { Token, type BatchDecryptAsOptions } from \"../token/token\";\nimport type { Address } from \"viem\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link batchDecryptBalancesAsMutationOptions}. */\nexport type BatchDecryptBalancesAsParams = BatchDecryptAsOptions;\n\n/** Builds TanStack Query mutation options for {@link Token.batchDecryptBalancesAs | decrypting} multiple token balances via delegated decryption credentials. @see {@link BatchDecryptBalancesAsParams} */\nexport function batchDecryptBalancesAsMutationOptions(\n tokens: Token[],\n): MutationFactoryOptions<\n readonly [\"zama.batchDecryptBalancesAs\", ...Address[]],\n BatchDecryptBalancesAsParams,\n Map<Address, bigint>\n> {\n return {\n mutationKey: [\"zama.batchDecryptBalancesAs\", ...tokens.map((t) => t.address)] as const,\n mutationFn: async (params) => Token.batchDecryptBalancesAs(tokens, params),\n };\n}\n","import type { Address } from \"viem\";\nimport type { TransactionResult } from \"../types\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { MutationFactoryOptions } from \"./factory-types\";\n\n/** Variables for {@link revokeDelegationMutationOptions}. */\nexport interface RevokeDelegationParams {\n /** Address whose delegated decryption rights to revoke. */\n delegateAddress: Address;\n}\n\n/** Builds TanStack Query mutation options for {@link Delegations.revokeDelegation | revoking} delegated decryption rights on a contract. @see {@link RevokeDelegationParams} */\nexport function revokeDelegationMutationOptions(\n sdk: ZamaSDK,\n contractAddress: Address,\n): MutationFactoryOptions<\n readonly [\"zama.revokeDelegation\", Address],\n RevokeDelegationParams,\n TransactionResult\n> {\n return {\n mutationKey: [\"zama.revokeDelegation\", contractAddress] as const,\n mutationFn: async ({ delegateAddress }) =>\n sdk.delegations.revokeDelegation({ contractAddress, delegateAddress }),\n };\n}\n","import type { Address } from \"viem\";\nimport type { DelegationStatus } from \"../services/delegation-service\";\nimport type { ZamaSDK } from \"../zama-sdk\";\nimport type { QueryFactoryOptions } from \"./factory-types\";\nimport { filterQueryOptions } from \"./utils\";\nimport { zamaQueryKeys } from \"./query-keys\";\nimport { assertNonNullable } from \"../utils\";\n\nexport type { DelegationStatus } from \"../services/delegation-service\";\n\n/** Configuration for {@link delegationStatusQueryOptions}. */\nexport interface DelegationStatusQueryConfig {\n /** Contract the delegation applies to; pass `undefined` to keep the query disabled. */\n contractAddress: Address | undefined;\n /** Address granting the delegated decryption rights; the query stays disabled until provided. */\n delegatorAddress?: Address;\n /** Address receiving the delegated decryption rights; the query stays disabled until provided. */\n delegateAddress?: Address;\n /** Additional TanStack Query options merged into the generated query (e.g. `staleTime`, `enabled`). */\n query?: Record<string, unknown>;\n}\n\n/** Builds TanStack Query options for reading the decryption-delegation status between a delegator and a delegate on a contract. */\nexport function delegationStatusQueryOptions(\n sdk: ZamaSDK,\n config: DelegationStatusQueryConfig,\n): QueryFactoryOptions<\n DelegationStatus,\n Error,\n DelegationStatus,\n ReturnType<typeof zamaQueryKeys.delegationStatus.scope>\n> {\n return {\n ...filterQueryOptions(config.query ?? {}),\n queryKey: zamaQueryKeys.delegationStatus.scope(\n config.contractAddress,\n config.delegatorAddress,\n config.delegateAddress,\n ),\n queryFn: async (context) => {\n const [, { contractAddress, delegatorAddress, delegateAddress }] = context.queryKey;\n assertNonNullable(contractAddress, \"delegationStatusQueryOptions: contractAddress\");\n assertNonNullable(delegatorAddress, \"delegationStatusQueryOptions: delegatorAddress\");\n assertNonNullable(delegateAddress, \"delegationStatusQueryOptions: delegateAddress\");\n return sdk.delegations.getStatus({ contractAddress, delegatorAddress, delegateAddress });\n },\n enabled:\n Boolean(config.contractAddress && config.delegatorAddress && config.delegateAddress) &&\n config.query?.enabled !== false,\n } as const;\n}\n"],"mappings":"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"}
|
package/dist/cjs/telemetry.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t){return{"x-zama-sdk-version":`3.7.
|
|
1
|
+
function e(e,t){return{"x-zama-sdk-version":`3.7.2`,"x-zama-sdk-layer":e.state.layer,"x-zama-sdk-runtime":e.runtime,...t!==void 0&&{"x-zama-sdk-operation":t}}}function t(e,t){return Object.assign({},e,{operation:e?.operation??t})}function n(e){let t=e.ZAMA_SDK_TELEMETRY?.trim().toLowerCase();return t===`0`||t===`false`}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}});
|
|
2
2
|
//# sourceMappingURL=telemetry.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"../cleartext-
|
|
1
|
+
import{t as e}from"../cleartext-Ck0gNKy1.js";export{e as cleartext};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./relayer-C3jVhqSK.js";import{t}from"./fhevm-relayer-
|
|
2
|
-
//# sourceMappingURL=cleartext-
|
|
1
|
+
import{t as e}from"./relayer-C3jVhqSK.js";import{t}from"./fhevm-relayer-DnAUqf3b.js";function n(n){return{type:`cleartext`,createRelayer:(r,i)=>{if(!r.executorAddress)throw new e(`Cleartext relayer requires an executorAddress. Either use a chain preset that includes it (e.g. hardhat, hoodi) or set it on the chain definition.`);return new t({chain:r,options:n,cleartext:!0,logger:i})}}}export{n as t};
|
|
2
|
+
//# sourceMappingURL=cleartext-Ck0gNKy1.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cleartext-
|
|
1
|
+
{"version":3,"file":"cleartext-Ck0gNKy1.js","names":[],"sources":["../../src/config/cleartext.ts"],"sourcesContent":["import { ConfigurationError } from \"../errors\";\nimport { FhevmRelayer } from \"../relayer/fhevm-relayer\";\nimport type { RelayerOptions } from \"../relayer/types\";\nimport type { CleartextRelayerConfig } from \"./types\";\n\n/**\n * Cleartext relayer — drives the FHE backend in cleartext mode (no FHE infrastructure).\n *\n * When `executorAddress` is set on the chain definition (e.g. `hardhat`, `hoodi`),\n * it is picked up automatically.\n *\n * @example\n * ```ts\n * // executorAddress comes from the chain preset:\n * relayers: { [hardhat.id]: cleartext({ batchRpcCalls: true }) }\n * ```\n */\nexport function cleartext(options?: RelayerOptions): CleartextRelayerConfig {\n return {\n type: \"cleartext\",\n createRelayer: (chain, logger) => {\n if (!chain.executorAddress) {\n throw new ConfigurationError(\n `Cleartext relayer requires an executorAddress. ` +\n `Either use a chain preset that includes it (e.g. hardhat, hoodi) ` +\n `or set it on the chain definition.`,\n );\n }\n return new FhevmRelayer({ chain, options, cleartext: true, logger });\n },\n };\n}\n"],"mappings":"qFAiBA,SAAgB,EAAU,EAAkD,CAC1E,MAAO,CACL,KAAM,YACN,eAAgB,EAAO,IAAW,CAChC,GAAI,CAAC,EAAM,gBACT,MAAM,IAAI,EACR,oJAGF,EAEF,OAAO,IAAI,EAAa,CAAE,QAAO,UAAS,UAAW,GAAM,QAAO,CAAC,CACrE,CACF,CACF"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import{t as e,x as t,y as n}from"./relayer-C3jVhqSK.js";import{n as r}from"./encryption-6AVd-82z.js";import{n as i,t as a}from"./applied-runtime-3fzqBC2V.js";import{n as o}from"./telemetry-
|
|
1
|
+
import{t as e,x as t,y as n}from"./relayer-C3jVhqSK.js";import{n as r}from"./encryption-6AVd-82z.js";import{n as i,t as a}from"./applied-runtime-3fzqBC2V.js";import{n as o}from"./telemetry-IaHYnoo4.js";import{createPublicClient as s,custom as c,http as l}from"viem";import{createUnsignedLegacyDecryptionPermitEip712 as u}from"@fhevm/sdk/actions/base";import{createFhevmBaseClient as ee,createFhevmDecryptClient as te,createFhevmEncryptClient as d,hasFhevmRuntimeConfig as f}from"@fhevm/sdk/viem";import{createFhevmCleartextBaseClient as ne,createFhevmCleartextDecryptClient as re,createFhevmCleartextEncryptClient as p}from"@fhevm/sdk/viem/cleartext";function m(e){return{id:e.id,fhevm:{contracts:{acl:{address:e.aclContractAddress},inputVerifier:{address:e.inputVerifierContractAddress},kmsVerifier:{address:e.kmsContractAddress},protocolConfig:void 0},relayerUrl:e.relayerUrl,gateway:{id:e.gatewayChainId,contracts:{decryption:{address:e.verifyingContractAddressDecryption},inputVerification:{address:e.verifyingContractAddressInputVerification}}}}}}
|
|
2
2
|
/**
|
|
3
3
|
* @license
|
|
4
4
|
* Copyright 2019 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
7
|
const h=Symbol(`Comlink.proxy`),g=Symbol(`Comlink.endpoint`),_=Symbol(`Comlink.releaseProxy`),v=Symbol(`Comlink.finalizer`),y=Symbol(`Comlink.thrown`),b=e=>typeof e==`object`&&!!e||typeof e==`function`,x=new Map([[`proxy`,{canHandle:e=>b(e)&&e[h],serialize(e){let{port1:t,port2:n}=new MessageChannel;return C(e,t),[n,[n]]},deserialize(e){return e.start(),T(e)}}],[`throw`,{canHandle:e=>b(e)&&y in e,serialize({value:e}){let t;return t=e instanceof Error?{isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:{isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(Error(e.value.message),e.value):e.value}}]]);function S(e,t){for(let n of e)if(t===n||n===`*`||n instanceof RegExp&&n.test(t))return!0;return!1}function C(e,t=globalThis,n=[`*`]){t.addEventListener(`message`,function r(i){if(!i||!i.data)return;if(!S(n,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}let{id:a,type:o,path:s}=Object.assign({path:[]},i.data),c=(i.data.argumentList||[]).map(R),l;try{let t=s.slice(0,-1).reduce((e,t)=>e[t],e),n=s.reduce((e,t)=>e[t],e);switch(o){case`GET`:l=n;break;case`SET`:t[s.slice(-1)[0]]=R(i.data.value),l=!0;break;case`APPLY`:l=n.apply(t,c);break;case`CONSTRUCT`:l=I(new n(...c));break;case`ENDPOINT`:{let{port1:t,port2:n}=new MessageChannel;C(e,n),l=F(t,[t])}break;case`RELEASE`:l=void 0;break;default:return}}catch(e){l={value:e,[y]:0}}Promise.resolve(l).catch(e=>({value:e,[y]:0})).then(n=>{let[i,s]=L(n);t.postMessage(Object.assign(Object.assign({},i),{id:a}),s),o===`RELEASE`&&(t.removeEventListener(`message`,r),w(t),v in e&&typeof e[v]==`function`&&e[v]())}).catch(e=>{let[n,r]=L({value:TypeError(`Unserializable return value`),[y]:0});t.postMessage(Object.assign(Object.assign({},n),{id:a}),r)})}),t.start&&t.start()}function ie(e){return e.constructor.name===`MessagePort`}function w(e){ie(e)&&e.close()}function T(e,t){let n=new Map;return e.addEventListener(`message`,function(e){let{data:t}=e;if(!t||!t.id)return;let r=n.get(t.id);if(r)try{r(t)}finally{n.delete(t.id)}}),M(e,n,[],t)}function E(e){if(e)throw Error(`Proxy has been released and is not useable`)}function D(e){return z(e,new Map,{type:`RELEASE`}).then(()=>{w(e)})}const O=new WeakMap,k=`FinalizationRegistry`in globalThis&&new FinalizationRegistry(e=>{let t=(O.get(e)||0)-1;O.set(e,t),t===0&&D(e)});function A(e,t){let n=(O.get(t)||0)+1;O.set(t,n),k&&k.register(e,t,e)}function j(e){k&&k.unregister(e)}function M(e,t,n=[],r=function(){}){let i=!1,a=new Proxy(r,{get(r,o){if(E(i),o===_)return()=>{j(a),D(e),t.clear(),i=!0};if(o===`then`){if(n.length===0)return{then:()=>a};let r=z(e,t,{type:`GET`,path:n.map(e=>e.toString())}).then(R);return r.then.bind(r)}return M(e,t,[...n,o])},set(r,a,o){E(i);let[s,c]=L(o);return z(e,t,{type:`SET`,path:[...n,a].map(e=>e.toString()),value:s},c).then(R)},apply(r,a,o){E(i);let s=n[n.length-1];if(s===g)return z(e,t,{type:`ENDPOINT`}).then(R);if(s===`bind`)return M(e,t,n.slice(0,-1));let[c,l]=N(o);return z(e,t,{type:`APPLY`,path:n.map(e=>e.toString()),argumentList:c},l).then(R)},construct(r,a){E(i);let[o,s]=N(a);return z(e,t,{type:`CONSTRUCT`,path:n.map(e=>e.toString()),argumentList:o},s).then(R)}});return A(a,e),a}function ae(e){return Array.prototype.concat.apply([],e)}function N(e){let t=e.map(L);return[t.map(e=>e[0]),ae(t.map(e=>e[1]))]}const P=new WeakMap;function F(e,t){return P.set(e,t),e}function I(e){return Object.assign(e,{[h]:!0})}function L(e){for(let[t,n]of x)if(n.canHandle(e)){let[r,i]=n.serialize(e);return[{type:`HANDLER`,name:t,value:r},i]}return[{type:`RAW`,value:e},P.get(e)||[]]}function R(e){switch(e.type){case`HANDLER`:return x.get(e.name).deserialize(e.value);case`RAW`:return e.value}}function z(e,t,n,r){return new Promise(i=>{let a=B();t.set(a,i),e.start&&e.start(),e.postMessage(Object.assign({id:a},n),r)})}function B(){return[,,,,].fill(0).map(()=>Math.floor(Math.random()*(2**53-1)).toString(16)).join(`-`)}function V(e){return typeof e==`object`&&!!e&&e.wireError===!0}const H=[`statusCode`,`status`,`retryAfter`,`timeoutMs`,`relayerApiError`,`code`,`data`,`shortMessage`,`details`,`error`,`info`];function U(e){try{return structuredClone(e),!0}catch{return!1}}function W(e){let n=e.response;return t(n?.headers)}function G(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function K(e){let t={};for(let n of H){let r=e[n];r!==void 0&&U(r)&&(t[n]=r)}if(!n(t.retryAfter)){let n=W(e);n!==void 0&&(t.retryAfter=n)}return t}function q(e,t=6){if(V(e))return e;let n=e=>t>0&&e!==void 0?q(e,t-1):void 0;if(e instanceof Error)return{wireError:!0,name:e.name,message:e.message,stack:e.stack,props:K(e),cause:n(e.cause)};if(typeof e==`object`&&e){let{message:t,cause:r}=e;return{wireError:!0,name:`Error`,message:typeof t==`string`?t:G(e),stack:void 0,props:K(e),cause:n(r)}}return{wireError:!0,name:`Error`,message:typeof e==`string`?e:G(e),stack:void 0,props:{},cause:void 0}}function J(e){let t=Error(e.message,e.cause?{cause:J(e.cause)}:{});return t.name=e.name,e.stack!==void 0&&(t.stack=e.stack),Object.assign(t,e.props),t}function oe(){return new Worker(new URL(`./encrypt.worker.js`,import.meta.url),{type:`module`,name:`zama-fhe-encrypt`})}const Y={spawn:1e4,init:3e5},X=new WeakSet;var Z=class extends Error{crashed;constructor(e,t){super(e,t),this.name=`WorkerUnavailableError`,this.crashed=t?.crashed??!1}};function se(e){if(typeof e!=`object`||!e)return!1;let{name:t,message:n}=e;return t===`DataCloneError`||t===`TypeError`&&typeof n==`string`&&n.includes(`Unserializable return value`)}function Q(e){if(e?.aborted)throw e.reason??new DOMException(`The operation was aborted.`,`AbortError`)}const $={count:0,last:void 0,warnedFor:-1};function ce(e){if(e===void 0)return{key:e,transfers:[]};let t=e.publicKeyBytes.bytes,n=e.crsBytes.bytes;if(!(t instanceof Uint8Array)||!(n instanceof Uint8Array))return{key:e,transfers:[]};let r=t.slice(),i=n.slice();return{key:{...e,publicKeyBytes:{...e.publicKeyBytes,bytes:r},crsBytes:{...e.crsBytes,bytes:i}},transfers:[r.buffer,i.buffer]}}function le(){let e,t=new Promise((t,n)=>{e=n});return t.catch(()=>{}),{initPromise:void 0,worker:void 0,api:void 0,doomed:t,doom:e}}var ue=class{#e;#t;#n=!1;#r=$;#i=0;#a=new Map;#o;#s=0;#c=!1;constructor(e){this.#e=e}init=()=>{let e=this.#t??=le();if(e.initPromise===void 0){let t=this.#f(()=>this.#u(e)).catch(n=>{throw e.initPromise===t&&(e.initPromise=void 0),n});e.initPromise=t}return e.initPromise};encryptValue=e=>this.#f(()=>this.#l(t=>t.encryptValue(e),(t,n,r)=>t.encryptValue(n,{...e,options:r}),e.options));encryptValues=e=>this.#f(()=>this.#l(t=>t.encryptValues(e),(t,n,r)=>t.encryptValues(n,{...e,options:r}),e.options));dispose(){this.#c=!0,this.#p()}async#l(e,t,n){let{signal:r,onProgress:i,...a}=n??{};Q(r),await this.init(),Q(r);let o=this.#t,s=o?.api;if(this.#o!==void 0&&(this.#n||s===void 0))return e(await this.#o);if(o===void 0||s===void 0)return e(await this.#b(o,this.#r.last??new Z(`Encrypt worker not running.`)));let c=this.#i++,l=()=>void s.abort(c).catch(()=>{});r?.addEventListener(`abort`,l,{once:!0}),i&&this.#a.set(c,i);try{let e=await this.#v(o,t(s,c,a));return this.#r=$,e}catch(t){if(t instanceof Z)return e(await this.#b(o,t));throw t}finally{this.#a.delete(c),r?.removeEventListener(`abort`,l)}}async#u(e){if(this.#n)return;let t=this.#e.blockedReason;if(t!==void 0){await this.#b(e,new Z(t));return}let n=await this.#e.prefetchKey();try{let t=await this.#h(e),r=this.#e.network,i=typeof r==`string`?null:I(async e=>{try{return await r.request(e)}catch(e){throw q(e)}}),a=I((e,t)=>{try{this.#e.logger[e](t)}catch(e){this.#d(`logger`,e)}}),o=I((e,t)=>{try{this.#a.get(e)?.(t)}catch(e){this.#d(`onProgress`,e)}}),s=ce(n);await this.#v(e,t.init(F({...this.#e.initPayload,clientOptions:{...this.#e.initPayload.clientOptions,fheEncryptionKey:s.key},rpcUrl:typeof r==`string`?r:void 0},s.transfers),i,a,o),{ms:this.#e.timeouts.init,operation:`init`}),e.api=t,this.#r={...this.#r,last:void 0}}catch(t){if(!(t instanceof Z))throw this.#y(e,new Z(`Encrypt worker init failed.`)),t;await this.#b(e,t)}}#d(e,t){let n=t instanceof Error?t.message:String(t);try{this.#e.logger.warn(`Encrypt offload ${e} callback threw: ${n}`)}catch{}}async#f(e){this.#s++;try{return await e()}finally{this.#s--,this.#p()}}#p(){!this.#c||this.#s>0||(this.#c=!1,this.#t?.worker?.terminate(),this.#t=void 0,this.#o=void 0,this.#n=!1,this.#r=$)}#m(){let e=this.#e.workerSource;if(e===void 0)return oe();if(typeof e==`function`){let t=e();return X.has(t)&&this.#e.logger.warnAlways(`The offloadWorker factory returned a worker it already handed out; each call must construct a fresh Worker.`),X.add(t),t}return new Worker(e,{type:`module`,name:`zama-fhe-encrypt`})}async#h(e){let t;try{t=this.#m()}catch(e){throw new Z(e instanceof Error?e.message:String(e),{cause:e})}e.worker=t;let n=await this.#g(e,t);return this.#_(e,t),n}#g(e,t){return new Promise((n,r)=>{let i=()=>{clearTimeout(a),t.removeEventListener(`message`,o),t.removeEventListener(`error`,s)},a=setTimeout(()=>{i(),r(new Z(`Encrypt worker did not start within ${this.#e.timeouts.spawn}ms.`))},this.#e.timeouts.spawn),o=e=>{e.data===`zama-encrypt-worker-ready`&&(i(),n(T(t)))},s=t=>{i();let n=t.message||`Encrypt worker error.`;r(new Z(n)),this.#y(e,new Z(n))};t.addEventListener(`message`,o),t.addEventListener(`error`,s)})}#_(e,t){t.addEventListener(`error`,t=>{if(this.#t!==e)return;let n=new Z(t.message||`Encrypt worker error.`,{crashed:!0});this.#r={...this.#r,count:this.#r.count+1,last:n},this.#y(e,n)})}async#v(e,t,n){let r=n===void 0?void 0:setTimeout(()=>{this.#y(e,new Z(`Encrypt worker ${n.operation} timed out after ${n.ms}ms.`))},n.ms);try{return await Promise.race([t.catch(e=>{let t=V(e)?J(e):e;throw se(t)?new Z(t.message,{cause:t}):t}),e.doomed])}finally{r!==void 0&&clearTimeout(r)}}#y(e,t){e!==void 0&&(this.#t===e&&(this.#t=void 0),e.worker?.terminate(),e.worker=void 0,e.api=void 0,e.initPromise=void 0,e.doom(t))}async#b(e,t){let n=t instanceof Error?t.message:String(t);if(this.#e.strict)throw this.#y(e,new Z(`Encrypt worker unavailable.`)),new r(`Encrypt offload required (offloadEncrypt: true) but unavailable: ${n}`,{cause:t});let{transient:i,pinning:a}=this.#x(t);if(this.#n||=!i,this.#y(e,new Z(`Encrypt worker degraded to inline.`)),this.#S(n,i,a),this.#o===void 0){let e=(async()=>{let e=this.#e.createInlineClient();return await e.init(),e})().catch(t=>{throw this.#o===e&&(this.#o=void 0),this.#e.logger.warnAlways(`Encrypt inline fallback failed to initialize: ${t instanceof Error?t.message:String(t)}`),t});this.#o=e}return this.#o}#x(e){let t=e instanceof Z&&e.crashed&&this.#r.count<2;return{transient:t,pinning:!t&&!this.#n}}#S(e,t,n){if(!n&&this.#r.warnedFor===this.#r.count)return;this.#r={...this.#r,warnedFor:this.#r.count};let r=t?`in-flight encryption falls back`:`encryption falls back`;this.#e.logger.warnAlways(`Encrypt offload unavailable, ${r} to the calling thread: ${e}`)}},de=class{#e;#t;#n;#r;#i;#a;#o;constructor(e){this.#e=e.chain;let{timeout:t,debug:n,batchRpcCalls:r,moduleVersions:i,fheEncryptionKey:a}=e.options??{},o=this.#e.auth?me(this.#e.auth):void 0,u={publicClient:s({transport:typeof this.#e.network==`string`?l(this.#e.network):c(this.#e.network)}),chain:m(this.#e),options:{batchRpcCalls:r,moduleVersions:i,fheEncryptionKey:a}};this.#i={...o!==void 0&&{auth:o},...t!==void 0&&{timeout:t},...n!==void 0&&{debug:n}},this.#a=e.telemetry;let f=()=>this.#t.fetchFheEncryptionKeyBytes({options:this.#c(void 0)}),h=e=>({init:async()=>{await f(),await e.init()},encryptValue:t=>e.encryptValue(t),encryptValues:t=>e.encryptValues(t),fetchFheEncryptionKeyBytes:t=>e.fetchFheEncryptionKeyBytes(t)});e.cleartext?(this.#t=ne(u),this.#n=re(u),this.#r=h(p(u))):(this.#t=ee(u),this.#n=te(u),this.#r=this.#s(e,u,{prefetchKey:f,createInlineClient:()=>h(d(u))}))}#s(e,t,n){let r=e.offloadEncrypt??!1,i=r===!0,o=typeof Worker==`function`&&(e.offloadWorker!==void 0||!0);if(r===!1||!(i||o))return n.createInlineClient();let s=a(),c=pe(s);if(c!==void 0&&!i)return e.logger.warnAlways(`Encryption runs on the calling thread: ${c}.`),n.createInlineClient();let l=new ue({initPayload:{chain:t.chain,clientOptions:t.options,runtime:s??{}},network:this.#e.network,prefetchKey:n.prefetchKey,createInlineClient:n.createInlineClient,logger:e.logger,timeouts:e.offloadTimeouts??Y,workerSource:e.offloadWorker,blockedReason:c,strict:i});return{init:()=>l.init(),encryptValue:e=>l.encryptValue(e),encryptValues:e=>l.encryptValues(e),fetchFheEncryptionKeyBytes:e=>this.#t.fetchFheEncryptionKeyBytes(e),dispose:()=>l.dispose()}}get chain(){return this.#e}#c(e){let{operation:t,...n}={...this.#i,...e};return this.#a===void 0?n:{...n,headers:{...n.headers,...o(this.#a,t)}}}#l=()=>(this.#o??=this.#r.init().catch(e=>{throw this.#o=void 0,e}),this.#o);dispose=()=>{this.#o=void 0,this.#r.dispose?.()};decryptPublicValue=async e=>(await this.#t.init(),this.#t.decryptPublicValue({...e,options:this.#c(e.options)}));decryptPublicValues=async e=>(await this.#t.init(),this.#t.decryptPublicValues({...e,options:this.#c(e.options)}));decryptPublicValuesWithSignatures=async e=>(await this.#t.init(),this.#t.decryptPublicValuesWithSignatures({...e,options:this.#c(e.options)}));encryptValue=async e=>(await this.#l(),this.#r.encryptValue({...e,options:this.#c(e.options)}));encryptValues=async e=>(await this.#l(),this.#r.encryptValues({...e,options:this.#c(e.options)}));decryptValue=async e=>(await this.#n.init(),this.#n.decryptValue({...e,options:this.#c(e.options)}));decryptValues=async e=>(await this.#n.init(),this.#n.decryptValues({...e,options:this.#c(e.options)}));decryptValuesFromPairs=async e=>(await this.#n.init(),this.#n.decryptValuesFromPairs({...e,options:this.#c(e.options)}));fetchFheEncryptionKeyBytes=async e=>(await this.#t.init(),this.#t.fetchFheEncryptionKeyBytes({...e,options:this.#c(e?.options)}));signDecryptionPermit=async e=>(await this.#t.init(),this.#t.signDecryptionPermit(e));createUnsignedLegacyDecryptionPermitEip712=e=>u(this.#t,e);serializeTransportKeyPair=e=>this.#n.serializeTransportKeyPair(e);serializeSignedDecryptionPermit=e=>this.#t.serializeSignedDecryptionPermit(e);parseTransportKeyPair=async e=>(await this.#n.init(),this.#n.parseTransportKeyPair(e));parseSignedDecryptionPermit=async e=>{await this.#t.init();let{serializedPermit:t}=e;return this.#t.parseSignedDecryptionPermit({...e,serializedPermit:{...t,signature:fe(t.signature)}})};generateTransportKeyPair=async()=>(await this.#n.init(),this.#n.generateTransportKeyPair())};function fe(e){if(e.length!==132)return e;let t=parseInt(e.slice(130),16);return t!==0&&t!==1?e:`${e.slice(0,130)}${t===0?`1b`:`1c`}`}function pe(e){if(i())return`a runtime locateFile cannot cross the encrypt worker boundary`;if(e===void 0&&f())return`a runtime config set outside createConfig cannot be replicated in the encrypt worker realm`}function me(t){let n=t.__type;switch(n){case`ApiKeyHeader`:return{type:n,value:t.value,header:t.header};case`ApiKeyCookie`:return{type:n,value:t.value,cookie:t.cookie};case`BearerToken`:return{type:n,token:t.token};default:throw new e(`Unknown auth type: ${String(n)}`)}}export{Y as n,de as t};
|
|
8
|
-
//# sourceMappingURL=fhevm-relayer-
|
|
8
|
+
//# sourceMappingURL=fhevm-relayer-DnAUqf3b.js.map
|