@zama-fhe/sdk 3.7.0 → 3.8.0-beta.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/base-signer.cjs +1 -1
- package/dist/cjs/base-signer.cjs.map +1 -1
- package/dist/cjs/chains/index.cjs +1 -1
- package/dist/cjs/chains.cjs +1 -1
- package/dist/cjs/chains.cjs.map +1 -1
- package/dist/cjs/erc165.cjs +1 -1
- package/dist/cjs/erc165.cjs.map +1 -1
- package/dist/cjs/fatal-batch.cjs +2 -0
- package/dist/cjs/fatal-batch.cjs.map +1 -0
- package/dist/cjs/fhevm-relayer.cjs +1 -1
- package/dist/cjs/fhevm-relayer.cjs.map +1 -1
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/internal/index.cjs +2 -0
- package/dist/cjs/internal/index.cjs.map +1 -0
- package/dist/cjs/node/index.cjs +1 -1
- package/dist/cjs/signing.cjs +2 -0
- package/dist/cjs/signing.cjs.map +1 -0
- package/dist/cjs/telemetry.cjs +1 -1
- package/dist/cjs/telemetry.cjs.map +1 -1
- package/dist/cjs/token.cjs +1 -1
- package/dist/cjs/token.cjs.map +1 -1
- package/dist/cjs/vaults/index.cjs +1 -1
- package/dist/cjs/web/index.cjs +1 -1
- package/dist/cjs/wrapped-token.cjs +1 -1
- package/dist/esm/base-signer-BoBsvn5Q.js +2 -0
- package/dist/esm/base-signer-BoBsvn5Q.js.map +1 -0
- package/dist/esm/{base-signer-46j6PRq-.d.ts → base-signer-BxIDBDTF.d.ts} +2 -2
- package/dist/esm/chains/index.d.ts +2 -2
- package/dist/esm/chains/index.js +1 -1
- package/dist/esm/{chains-iPpnjXql.js → chains-BwlDI944.js} +2 -2
- package/dist/esm/chains-BwlDI944.js.map +1 -0
- package/dist/esm/cleartext/index.d.ts +2 -2
- package/dist/esm/cleartext/index.js +1 -1
- package/dist/esm/{cleartext-DInZ0vz-.d.ts → cleartext-BnTAN4-g.d.ts} +2 -2
- package/dist/esm/{cleartext-CiE1gO7Y.js → cleartext-CvCakQal.js} +2 -2
- package/dist/esm/{cleartext-CiE1gO7Y.js.map → cleartext-CvCakQal.js.map} +1 -1
- package/dist/esm/{index-CpQK8U4F.d.ts → decryption-B0mY2M8N.d.ts} +7 -3
- package/dist/esm/encrypt-worker-client-BW88njEe.d.ts +19 -0
- package/dist/esm/erc165-B8gx2luK.js +2 -0
- package/dist/esm/erc165-B8gx2luK.js.map +1 -0
- package/dist/esm/ethers/index.d.ts +4 -4
- package/dist/esm/ethers/index.js +1 -1
- package/dist/esm/fatal-batch-BiiS7KdS.js +2 -0
- package/dist/esm/fatal-batch-BiiS7KdS.js.map +1 -0
- package/dist/esm/fhevm-relayer-CGvejcdJ.js +8 -0
- package/dist/esm/{fhevm-relayer-DXLb4mIw.js.map → fhevm-relayer-CGvejcdJ.js.map} +1 -1
- package/dist/esm/{index-Cdbp_93f.d.ts → index-D1Wtji3m.d.ts} +4 -26
- package/dist/esm/{index-BKMce5ya.d.ts → index-DXCcwJ77.d.ts} +7 -7
- package/dist/esm/index-DkN4q5Cm.d.ts +1 -0
- package/dist/esm/{index-C1clixw5.d.ts → index-fsWBYM8S.d.ts} +4 -4
- package/dist/esm/index.d.ts +10 -9
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/index.d.ts +26 -0
- package/dist/esm/internal/index.js +2 -0
- package/dist/esm/internal/index.js.map +1 -0
- package/dist/esm/node/index.d.ts +5 -5
- package/dist/esm/node/index.js +1 -1
- package/dist/esm/node/index.js.map +1 -1
- package/dist/esm/query/index.d.ts +6 -5
- package/dist/esm/query/index.js +1 -1
- package/dist/esm/signing-C6nbPCyd.js +2 -0
- package/dist/esm/signing-C6nbPCyd.js.map +1 -0
- package/dist/esm/telemetry-BDnhC-vh.js +2 -0
- package/dist/esm/{telemetry-Dll0Swdj.js.map → telemetry-BDnhC-vh.js.map} +1 -1
- package/dist/esm/token-g6sinwTx.js +2 -0
- package/dist/esm/token-g6sinwTx.js.map +1 -0
- package/dist/esm/{types-Bz42Emet.d.ts → types-C2ccCjoA.d.ts} +3 -3
- package/dist/esm/{types-BIgPY1yI.d.ts → types-CHepK8MK.d.ts} +2 -2
- package/dist/esm/{types-I9lJwH20.d.ts → types-Dc1fpXWt.d.ts} +3 -3
- package/dist/esm/vaults/index.d.ts +3 -2
- package/dist/esm/vaults/index.js +1 -1
- package/dist/esm/viem/index.d.ts +4 -4
- package/dist/esm/viem/index.js +1 -1
- package/dist/esm/web/index.d.ts +2 -17
- package/dist/esm/web/index.js +1 -1
- package/dist/esm/wrapped-token-3usJd0oi.js +2 -0
- package/dist/esm/{wrapped-token-IDUEFpZx.js.map → wrapped-token-3usJd0oi.js.map} +1 -1
- package/package.json +15 -1
- package/dist/esm/base-signer-b1ff2VPI.js +0 -2
- package/dist/esm/base-signer-b1ff2VPI.js.map +0 -1
- package/dist/esm/chains-iPpnjXql.js.map +0 -1
- package/dist/esm/erc165-BAd2z3ay.js +0 -2
- package/dist/esm/erc165-BAd2z3ay.js.map +0 -1
- package/dist/esm/fhevm-relayer-DXLb4mIw.js +0 -8
- package/dist/esm/telemetry-Dll0Swdj.js +0 -2
- package/dist/esm/token-CTvEGQmH.js +0 -2
- package/dist/esm/token-CTvEGQmH.js.map +0 -1
- package/dist/esm/wrapped-token-IDUEFpZx.js +0 -2
package/dist/esm/vaults/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"../relayer-C3jVhqSK.js";import{H as t,L as n,M as r,P as i}from"../erc165-BAd2z3ay.js";import{r as a,t as o}from"../encryption-6AVd-82z.js";import{a as s,i as c,l,n as u,o as d,t as f}from"../token-CTvEGQmH.js";import{S as p,b as m,t as h,x as g}from"../wrapped-token-IDUEFpZx.js";import{r as _}from"../telemetry-Dll0Swdj.js";import{l as v,p as y}from"../invalidation-BgFjmXeQ.js";import{getAddress as b}from"viem";const x=[{type:`function`,name:`batchCallbackDeadline`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchCreatedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchDispatchedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchMaxSlippageBps`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`batchMinBatchAge`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`}],stateMutability:`view`},{type:`function`,name:`callbackDeadline`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`claim`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`currentBatchId`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`deposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`dispatchBatch`,inputs:[],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`exchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint64`,internalType:`uint64`}],stateMutability:`view`},{type:`function`,name:`exchangeRateDecimals`,inputs:[],outputs:[{name:``,type:`uint8`,internalType:`uint8`}],stateMutability:`pure`},{type:`function`,name:`fromToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`join`,inputs:[{name:`beneficiary`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`joined`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`maxSlippageBps`,inputs:[],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`minBatchAge`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`paused`,inputs:[],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`quit`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`recover`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:`refunded`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`toToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`totalDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`unwrapRequestId`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`vault`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC4626`}],stateMutability:`view`},{type:`event`,name:`BatchCanceled`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchDispatched`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchFinalized`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`Claimed`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Joined`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Quit`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`error`,name:`BatchNonexistent`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchTooYoung`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`elapsed`,type:`uint256`,internalType:`uint256`},{name:`required`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchUnexpectedState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`current`,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`},{name:`expectedStates`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`DuplicateUnderlyingTokens`,inputs:[]},{type:`error`,name:`EnforcedPause`,inputs:[]},{type:`error`,name:`ExpectedPause`,inputs:[]},{type:`error`,name:`IntermediateStepToTokenBalanceChanged`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`InvalidBeneficiary`,inputs:[]},{type:`error`,name:`InvalidCallbackDeadline`,inputs:[]},{type:`error`,name:`InvalidExchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`totalDeposits`,type:`uint256`,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,internalType:`uint64`}]},{type:`error`,name:`InvalidKMSSignatures`,inputs:[]},{type:`error`,name:`InvalidMaxSlippageBps`,inputs:[]},{type:`error`,name:`InvalidMinBatchAge`,inputs:[]},{type:`error`,name:`InvalidTokenRate`,inputs:[]},{type:`error`,name:`InvalidWrapperToken`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableInvalidOwner`,inputs:[{name:`owner`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableUnauthorizedAccount`,inputs:[{name:`account`,type:`address`,internalType:`address`}]},{type:`error`,name:`ReentrancyGuardReentrantCall`,inputs:[]},{type:`error`,name:`RouteAssetMismatch`,inputs:[{name:`actualAsset`,type:`address`,internalType:`address`},{name:`expectedAsset`,type:`address`,internalType:`address`}]},{type:`error`,name:`RouteShareMismatch`,inputs:[{name:`actualShare`,type:`address`,internalType:`address`},{name:`expectedShare`,type:`address`,internalType:`address`}]},{type:`error`,name:`SafeCastOverflowedUintDowncast`,inputs:[{name:`bits`,type:`uint8`,internalType:`uint8`},{name:`value`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`SafeERC20FailedOperation`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`SenderNotAllowedToUseHandle`,inputs:[{name:`handle`,type:`bytes32`,internalType:`bytes32`},{name:`sender`,type:`address`,internalType:`address`}]},{type:`error`,name:`SlippageExceeded`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`actual`,type:`uint256`,internalType:`uint256`},{name:`minimum`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`Unauthorized`,inputs:[]},{type:`error`,name:`ZamaProtocolUnsupported`,inputs:[]},{type:`error`,name:`ZeroDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}]}];function S(e,t,n,r){return{address:e,abi:x,functionName:`join`,args:[t,n,r]}}function C(e,t,n){return{address:e,abi:x,functionName:`claim`,args:[t,n]}}function w(e,t){return{address:e,abi:x,functionName:`quit`,args:[t]}}function T(e,t,n){return{address:e,abi:x,functionName:`recover`,args:[t,n]}}function E(e){return{address:e,abi:x,functionName:`dispatchBatch`,args:[]}}function D(e){return{address:e,abi:x,functionName:`currentBatchId`,args:[]}}function O(e,t){return{address:e,abi:x,functionName:`batchState`,args:[t]}}function k(e,t){return{address:e,abi:x,functionName:`totalDeposits`,args:[t]}}function A(e,t,n){return{address:e,abi:x,functionName:`deposits`,args:[t,n]}}function j(e){return{address:e,abi:x,functionName:`vault`,args:[]}}function M(e){return{address:e,abi:x,functionName:`fromToken`,args:[]}}function N(e){return{address:e,abi:x,functionName:`toToken`,args:[]}}function P(e){return{address:e,abi:x,functionName:`minBatchAge`,args:[]}}function F(e,t){return{address:e,abi:x,functionName:`batchMinBatchAge`,args:[t]}}function I(e){return{address:e,abi:x,functionName:`callbackDeadline`,args:[]}}function L(e,t){return{address:e,abi:x,functionName:`batchCallbackDeadline`,args:[t]}}function R(e,t){return{address:e,abi:x,functionName:`batchCreatedAt`,args:[t]}}function z(e,t){return{address:e,abi:x,functionName:`batchDispatchedAt`,args:[t]}}function B(e,t){return{address:e,abi:x,functionName:`exchangeRate`,args:[t]}}function V(e){return{address:e,abi:x,functionName:`exchangeRateDecimals`,args:[]}}function H(e){return{address:e,abi:x,functionName:`paused`,args:[]}}const U={Joined:m(`Joined(uint256,address,bytes32)`)};function W(e){let[t,n,r]=e.topics;return t!==U.Joined||n===void 0||r===void 0?null:{batchId:BigInt(n),account:g(r),confidentialAmount:p(e.data,0)}}function G(e,t,n){let r=n?b(n):void 0;for(let n of e){if(n.address!==void 0&&b(n.address)!==t)continue;let e=W(n);if(e&&(r===void 0||e.account===r))return e}return null}const K={Pending:0,Dispatched:1,Finalized:2,Canceled:3};function q(e){let t,n=null;return()=>t===void 0?(n||=e().then(e=>(t=e,n=null,e)).catch(e=>{throw n=null,e}),n):Promise.resolve(t)}var J=class{sdk;address;#e;#t;#n;#r=null;constructor(e,t){this.sdk=e,this.address=b(t),this.#e=q(()=>e.provider.readContract(j(this.address))),this.#t=q(()=>e.provider.readContract(M(this.address))),this.#n=q(()=>e.provider.readContract(N(this.address)))}async vault(){return this.#e()}async fromToken(){return this.#t()}async toToken(){return this.#n()}async currentBatchId(){return this.sdk.provider.readContract(D(this.address))}async batchState(e){return await this.sdk.provider.readContract(O(this.address,e))}async paused(){return this.sdk.provider.readContract(H(this.address))}async minBatchAge(){return this.sdk.provider.readContract(P(this.address))}async batchMinBatchAge(e){return this.sdk.provider.readContract(F(this.address,e))}async callbackDeadline(){return this.sdk.provider.readContract(I(this.address))}async batchCallbackDeadline(e){return this.sdk.provider.readContract(L(this.address,e))}async batchCreatedAt(e){return this.sdk.provider.readContract(R(this.address,e))}async batchDispatchedAt(e){return this.sdk.provider.readContract(z(this.address,e))}async exchangeRate(e){return this.sdk.provider.readContract(B(this.address,e))}async exchangeRateDecimals(){return this.sdk.provider.readContract(V(this.address))}async timeUntilDispatchable(e){let[t,n,r,i]=await Promise.all([this.batchState(e),this.batchCreatedAt(e),this.batchMinBatchAge(e),this.sdk.provider.getBlockTimestamp()]);if(t!==K.Pending)return null;let a=n+r;return a>i?a-i:0n}async confidentialTotalDeposits(e){return this.sdk.provider.readContract(k(this.address,e))}async confidentialDepositOf(e,t){return this.sdk.provider.readContract(A(this.address,e,b(t)))}async depositOf(e,t){let n=b(t),i=await this.confidentialDepositOf(e,n);if(l(i))return 0n;let a=(await this.sdk.decryption.decryptValues([{encryptedValue:i,contractAddress:this.address}],{operation:`vault-deposit-of`}))[i];if(a===void 0)throw new o(`Decryption returned no value for ${i}`);return r(a,`depositOf: result[encryptedValue]`),a}async join(e,n,r){let{operation:i}=_(r,`vault-join`);this.#i(`join`);let o=b((await s(`join`,this.sdk.signer,this.sdk.provider)).address),c=n?b(n):o;r?.skipBalanceCheck||await this.#o(e,i);let{encryptedValues:l,inputProof:u}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:o},{operation:i}),d=l[0];if(!d)throw new a(`Encryption returned no encrypted values`);let f=await this.#c(`vault:join`,S(this.address,c,d,u)),p=G(f.receipt.logs,this.address,c);if(!p)throw new t(`No Joined event for ${c} from batcher ${this.address} found in the join receipt`);return{...f,batchId:p.batchId,beneficiary:p.account,confidentialJoinedAmount:p.confidentialAmount}}async quit(e){return this.#i(`quit`),await d(`quit`,this.sdk.signer,this.sdk.provider),this.#c(`vault:quit`,w(this.address,e))}async recover(e,t){let n=await this.#s(`recover`,t);return this.#c(`vault:recover`,T(this.address,e,n))}async claim(e,t){let n=await this.#s(`claim`,t);return this.#c(`vault:claim`,C(this.address,e,n))}async dispatchBatch(){return this.#i(`dispatchBatch`),await d(`dispatchBatch`,this.sdk.signer,this.sdk.provider),this.#c(`vault:dispatchBatch`,E(this.address))}#i(e){if(!this.sdk.signer)throw new n(e);return this.sdk.signer}async#a(){return this.#r??=this.fromToken().then(e=>new f(this.sdk,e)).catch(e=>{throw this.#r=null,e}),this.#r}async#o(e,t){let n=await this.#a();return c({operation:`join`,tokenAddress:n.address,amount:e,signer:this.sdk.signer,provider:this.sdk.provider,readBalance:e=>n.decryptBalance(e,t)})}async#s(e,t){return this.#i(e),t?(await d(e,this.sdk.signer,this.sdk.provider),b(t)):b((await s(e,this.sdk.signer,this.sdk.provider)).address)}async#c(e,t){return u({operation:e,signer:this.#i(e),provider:this.sdk.provider,config:t,emit:e=>this.sdk.emitEvent(e,this.address),logger:this.sdk.logger})}};function Y(e,t){return new J(e,t)}var X=class{sdk;depositBatcher;redeemBatcher;#e=null;#t=null;#n=null;#r;constructor(e,t){this.sdk=e,this.#r=t.vault?b(t.vault):void 0,this.depositBatcher=new J(e,t.depositBatcher),this.redeemBatcher=new J(e,t.redeemBatcher)}async vaultAddress(){return this.#e??=this.#i().catch(e=>{throw this.#e=null,e}),this.#e}async cAsset(){return this.#t??=this.depositBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#t=null,e}),this.#t}async cShare(){return this.#n??=this.redeemBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#n=null,e}),this.#n}async deposit(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cAsset()]);return await this.#a(`deposit`,n,this.depositBatcher.address,t?.operatorUntil),this.depositBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-deposit`})}async redeem(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cShare()]);return await this.#a(`redeem`,n,this.redeemBatcher.address,t?.operatorUntil),this.redeemBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-redeem`})}async#i(){let[t,n]=await Promise.all([this.depositBatcher.vault(),this.redeemBatcher.vault()]);if(b(t)!==b(n))throw new e(`Vault batchers point at different ERC-4626 vaults: deposit batcher ${this.depositBatcher.address} reports ${t}, redeem batcher ${this.redeemBatcher.address} reports ${n}`);let r=b(t);if(this.#r!==void 0&&this.#r!==r)throw new e(`Configured vault address ${this.#r} does not match the ${r} both batchers report`);return r}async#a(e,t,r,i){if(!this.sdk.signer)throw new n(e);let a=this.sdk.signer.requireWalletAccount(e);await t.isOperator(a.address,r)||await t.setOperator(r,i)}};function Z(e,t){return new X(e,t)}const Q={currentBatchId:{batcher:e=>[`zama.vault.currentBatchId`,{batcherAddress:b(e)}]},batchState:{batcher:e=>[`zama.vault.batchState`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.batchState`,{batcherAddress:b(e),batchId:t}]},timeUntilDispatchable:{batcher:e=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e),batchId:t}]}};function $(e,t){e.invalidateQueries({queryKey:Q.currentBatchId.batcher(t)}),e.invalidateQueries({queryKey:Q.batchState.batcher(t)}),e.invalidateQueries({queryKey:Q.timeUntilDispatchable.batcher(t)})}function ee(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function te(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function ne(e,t){v(e,t.toToken)}function re(e,t){$(e,t)}function ie(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.currentBatchId.batcher(e.address),queryFn:async()=>e.currentBatchId(),enabled:n.enabled!==!1}}function ae(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.batchState.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return i(n,`batchStateQueryOptions: batchId`),e.batchState(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function oe(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.timeUntilDispatchable.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return i(n,`timeUntilDispatchableQueryOptions: batchId`),e.timeUntilDispatchable(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function se(e){return{mutationKey:[`zama.vault.deposit`,e.depositBatcher.address],mutationFn:async({amount:t,...n})=>e.deposit(t,n)}}function ce(e){return{mutationKey:[`zama.vault.redeem`,e.redeemBatcher.address],mutationFn:async({amount:t,...n})=>e.redeem(t,n)}}function le(e){return{mutationKey:[`zama.vault.join`,e.address],mutationFn:async({amount:t,beneficiary:n,...r})=>e.join(t,n,r)}}function ue(e){return{mutationKey:[`zama.vault.claim`,e.address],mutationFn:async({batchId:t,account:n})=>e.claim(t,n)}}function de(e){return{mutationKey:[`zama.vault.quit`,e.address],mutationFn:async({batchId:t})=>e.quit(t)}}function fe(e){return{mutationKey:[`zama.vault.recover`,e.address],mutationFn:async({batchId:t,account:n})=>e.recover(t,n)}}function pe(e){return{mutationKey:[`zama.vault.dispatchBatch`,e.address],mutationFn:async()=>e.dispatchBatch()}}export{K as BatchState,X as Vault,J as VaultBatcher,U as VaultTopics,L as batchCallbackDeadlineContract,R as batchCreatedAtContract,z as batchDispatchedAtContract,F as batchMinBatchAgeContract,O as batchStateContract,ae as batchStateQueryOptions,I as callbackDeadlineContract,C as claimContract,ue as claimMutationOptions,Z as createVault,Y as createVaultBatcher,D as currentBatchIdContract,ie as currentBatchIdQueryOptions,W as decodeJoined,se as depositMutationOptions,A as depositsContract,E as dispatchBatchContract,pe as dispatchBatchMutationOptions,B as exchangeRateContract,V as exchangeRateDecimalsContract,G as findJoined,M as fromTokenContract,ne as invalidateAfterClaim,re as invalidateAfterDispatchBatch,ee as invalidateAfterJoin,te as invalidateAfterQuit,$ as invalidateBatchQueries,S as joinContract,le as joinMutationOptions,P as minBatchAgeContract,H as pausedContract,w as quitContract,de as quitMutationOptions,T as recoverContract,fe as recoverMutationOptions,ce as redeemMutationOptions,oe as timeUntilDispatchableQueryOptions,N as toTokenContract,k as totalDepositsContract,j as vaultContract,Q as vaultQueryKeys};
|
|
1
|
+
import{t as e}from"../relayer-C3jVhqSK.js";import{r as t,t as n}from"../encryption-6AVd-82z.js";import{H as r,L as i,M as a,P as o}from"../erc165-B8gx2luK.js";import{a as s,i as c,l,n as u,o as d,t as f}from"../token-g6sinwTx.js";import{S as p,b as m,t as h,x as g}from"../wrapped-token-3usJd0oi.js";import{r as _}from"../telemetry-BDnhC-vh.js";import{l as v,p as y}from"../invalidation-BgFjmXeQ.js";import{getAddress as b}from"viem";const x=[{type:`function`,name:`batchCallbackDeadline`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchCreatedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchDispatchedAt`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchMaxSlippageBps`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`batchMinBatchAge`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`batchState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`}],stateMutability:`view`},{type:`function`,name:`callbackDeadline`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`claim`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`currentBatchId`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`deposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`dispatchBatch`,inputs:[],outputs:[],stateMutability:`nonpayable`},{type:`function`,name:`exchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`uint64`,internalType:`uint64`}],stateMutability:`view`},{type:`function`,name:`exchangeRateDecimals`,inputs:[],outputs:[{name:``,type:`uint8`,internalType:`uint8`}],stateMutability:`pure`},{type:`function`,name:`fromToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`join`,inputs:[{name:`beneficiary`,type:`address`,internalType:`address`},{name:`encryptedAmount`,type:`bytes32`,internalType:`externalEuint64`},{name:`inputProof`,type:`bytes`,internalType:`bytes`}],outputs:[{name:`joined`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`maxSlippageBps`,inputs:[],outputs:[{name:``,type:`uint16`,internalType:`uint16`}],stateMutability:`view`},{type:`function`,name:`minBatchAge`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`paused`,inputs:[],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`quit`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`recover`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:`refunded`,type:`bytes32`,internalType:`euint64`}],stateMutability:`nonpayable`},{type:`function`,name:`toToken`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC7984ERC20Wrapper`}],stateMutability:`view`},{type:`function`,name:`totalDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`euint64`}],stateMutability:`view`},{type:`function`,name:`unwrapRequestId`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bytes32`,internalType:`bytes32`}],stateMutability:`view`},{type:`function`,name:`vault`,inputs:[],outputs:[{name:``,type:`address`,internalType:`contract IERC4626`}],stateMutability:`view`},{type:`event`,name:`BatchCanceled`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchDispatched`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`BatchFinalized`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,indexed:!1,internalType:`uint64`}],anonymous:!1},{type:`event`,name:`Claimed`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Joined`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`event`,name:`Quit`,inputs:[{name:`batchId`,type:`uint256`,indexed:!0,internalType:`uint256`},{name:`account`,type:`address`,indexed:!0,internalType:`address`},{name:`amount`,type:`bytes32`,indexed:!1,internalType:`euint64`}],anonymous:!1},{type:`error`,name:`BatchNonexistent`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchTooYoung`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`elapsed`,type:`uint256`,internalType:`uint256`},{name:`required`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`BatchUnexpectedState`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`current`,type:`uint8`,internalType:`enum BatcherConfidential.BatchState`},{name:`expectedStates`,type:`bytes32`,internalType:`bytes32`}]},{type:`error`,name:`DuplicateUnderlyingTokens`,inputs:[]},{type:`error`,name:`EnforcedPause`,inputs:[]},{type:`error`,name:`ExpectedPause`,inputs:[]},{type:`error`,name:`IntermediateStepToTokenBalanceChanged`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`InvalidBeneficiary`,inputs:[]},{type:`error`,name:`InvalidCallbackDeadline`,inputs:[]},{type:`error`,name:`InvalidExchangeRate`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`totalDeposits`,type:`uint256`,internalType:`uint256`},{name:`exchangeRate`,type:`uint64`,internalType:`uint64`}]},{type:`error`,name:`InvalidKMSSignatures`,inputs:[]},{type:`error`,name:`InvalidMaxSlippageBps`,inputs:[]},{type:`error`,name:`InvalidMinBatchAge`,inputs:[]},{type:`error`,name:`InvalidTokenRate`,inputs:[]},{type:`error`,name:`InvalidWrapperToken`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableInvalidOwner`,inputs:[{name:`owner`,type:`address`,internalType:`address`}]},{type:`error`,name:`OwnableUnauthorizedAccount`,inputs:[{name:`account`,type:`address`,internalType:`address`}]},{type:`error`,name:`ReentrancyGuardReentrantCall`,inputs:[]},{type:`error`,name:`RouteAssetMismatch`,inputs:[{name:`actualAsset`,type:`address`,internalType:`address`},{name:`expectedAsset`,type:`address`,internalType:`address`}]},{type:`error`,name:`RouteShareMismatch`,inputs:[{name:`actualShare`,type:`address`,internalType:`address`},{name:`expectedShare`,type:`address`,internalType:`address`}]},{type:`error`,name:`SafeCastOverflowedUintDowncast`,inputs:[{name:`bits`,type:`uint8`,internalType:`uint8`},{name:`value`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`SafeERC20FailedOperation`,inputs:[{name:`token`,type:`address`,internalType:`address`}]},{type:`error`,name:`SenderNotAllowedToUseHandle`,inputs:[{name:`handle`,type:`bytes32`,internalType:`bytes32`},{name:`sender`,type:`address`,internalType:`address`}]},{type:`error`,name:`SlippageExceeded`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`actual`,type:`uint256`,internalType:`uint256`},{name:`minimum`,type:`uint256`,internalType:`uint256`}]},{type:`error`,name:`Unauthorized`,inputs:[]},{type:`error`,name:`ZamaProtocolUnsupported`,inputs:[]},{type:`error`,name:`ZeroDeposits`,inputs:[{name:`batchId`,type:`uint256`,internalType:`uint256`},{name:`account`,type:`address`,internalType:`address`}]}];function S(e,t,n,r){return{address:e,abi:x,functionName:`join`,args:[t,n,r]}}function C(e,t,n){return{address:e,abi:x,functionName:`claim`,args:[t,n]}}function w(e,t){return{address:e,abi:x,functionName:`quit`,args:[t]}}function T(e,t,n){return{address:e,abi:x,functionName:`recover`,args:[t,n]}}function E(e){return{address:e,abi:x,functionName:`dispatchBatch`,args:[]}}function D(e){return{address:e,abi:x,functionName:`currentBatchId`,args:[]}}function O(e,t){return{address:e,abi:x,functionName:`batchState`,args:[t]}}function k(e,t){return{address:e,abi:x,functionName:`totalDeposits`,args:[t]}}function A(e,t,n){return{address:e,abi:x,functionName:`deposits`,args:[t,n]}}function j(e){return{address:e,abi:x,functionName:`vault`,args:[]}}function M(e){return{address:e,abi:x,functionName:`fromToken`,args:[]}}function N(e){return{address:e,abi:x,functionName:`toToken`,args:[]}}function P(e){return{address:e,abi:x,functionName:`minBatchAge`,args:[]}}function F(e,t){return{address:e,abi:x,functionName:`batchMinBatchAge`,args:[t]}}function I(e){return{address:e,abi:x,functionName:`callbackDeadline`,args:[]}}function L(e,t){return{address:e,abi:x,functionName:`batchCallbackDeadline`,args:[t]}}function R(e,t){return{address:e,abi:x,functionName:`batchCreatedAt`,args:[t]}}function z(e,t){return{address:e,abi:x,functionName:`batchDispatchedAt`,args:[t]}}function B(e,t){return{address:e,abi:x,functionName:`exchangeRate`,args:[t]}}function V(e){return{address:e,abi:x,functionName:`exchangeRateDecimals`,args:[]}}function H(e){return{address:e,abi:x,functionName:`paused`,args:[]}}const U={Joined:m(`Joined(uint256,address,bytes32)`)};function W(e){let[t,n,r]=e.topics;return t!==U.Joined||n===void 0||r===void 0?null:{batchId:BigInt(n),account:g(r),confidentialAmount:p(e.data,0)}}function G(e,t,n){let r=n?b(n):void 0;for(let n of e){if(n.address!==void 0&&b(n.address)!==t)continue;let e=W(n);if(e&&(r===void 0||e.account===r))return e}return null}const K={Pending:0,Dispatched:1,Finalized:2,Canceled:3};function q(e){let t,n=null;return()=>t===void 0?(n||=e().then(e=>(t=e,n=null,e)).catch(e=>{throw n=null,e}),n):Promise.resolve(t)}var J=class{sdk;address;#e;#t;#n;#r=null;constructor(e,t){this.sdk=e,this.address=b(t),this.#e=q(()=>e.provider.readContract(j(this.address))),this.#t=q(()=>e.provider.readContract(M(this.address))),this.#n=q(()=>e.provider.readContract(N(this.address)))}async vault(){return this.#e()}async fromToken(){return this.#t()}async toToken(){return this.#n()}async currentBatchId(){return this.sdk.provider.readContract(D(this.address))}async batchState(e){return await this.sdk.provider.readContract(O(this.address,e))}async paused(){return this.sdk.provider.readContract(H(this.address))}async minBatchAge(){return this.sdk.provider.readContract(P(this.address))}async batchMinBatchAge(e){return this.sdk.provider.readContract(F(this.address,e))}async callbackDeadline(){return this.sdk.provider.readContract(I(this.address))}async batchCallbackDeadline(e){return this.sdk.provider.readContract(L(this.address,e))}async batchCreatedAt(e){return this.sdk.provider.readContract(R(this.address,e))}async batchDispatchedAt(e){return this.sdk.provider.readContract(z(this.address,e))}async exchangeRate(e){return this.sdk.provider.readContract(B(this.address,e))}async exchangeRateDecimals(){return this.sdk.provider.readContract(V(this.address))}async timeUntilDispatchable(e){let[t,n,r,i]=await Promise.all([this.batchState(e),this.batchCreatedAt(e),this.batchMinBatchAge(e),this.sdk.provider.getBlockTimestamp()]);if(t!==K.Pending)return null;let a=n+r;return a>i?a-i:0n}async confidentialTotalDeposits(e){return this.sdk.provider.readContract(k(this.address,e))}async confidentialDepositOf(e,t){return this.sdk.provider.readContract(A(this.address,e,b(t)))}async depositOf(e,t){let r=b(t),i=await this.confidentialDepositOf(e,r);if(l(i))return 0n;let o=(await this.sdk.decryption.decryptValues([{encryptedValue:i,contractAddress:this.address}],{operation:`vault-deposit-of`}))[i];if(o===void 0)throw new n(`Decryption returned no value for ${i}`);return a(o,`depositOf: result[encryptedValue]`),o}async join(e,n,i){let{operation:a}=_(i,`vault-join`);this.#i(`join`);let o=b((await s(`join`,this.sdk.signer,this.sdk.provider)).address),c=n?b(n):o;i?.skipBalanceCheck||await this.#o(e,a);let{encryptedValues:l,inputProof:u}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:o},{operation:a}),d=l[0];if(!d)throw new t(`Encryption returned no encrypted values`);let f=await this.#c(`vault:join`,S(this.address,c,d,u)),p=G(f.receipt.logs,this.address,c);if(!p)throw new r(`No Joined event for ${c} from batcher ${this.address} found in the join receipt`);return{...f,batchId:p.batchId,beneficiary:p.account,confidentialJoinedAmount:p.confidentialAmount}}async quit(e){return this.#i(`quit`),await d(`quit`,this.sdk.signer,this.sdk.provider),this.#c(`vault:quit`,w(this.address,e))}async recover(e,t){let n=await this.#s(`recover`,t);return this.#c(`vault:recover`,T(this.address,e,n))}async claim(e,t){let n=await this.#s(`claim`,t);return this.#c(`vault:claim`,C(this.address,e,n))}async dispatchBatch(){return this.#i(`dispatchBatch`),await d(`dispatchBatch`,this.sdk.signer,this.sdk.provider),this.#c(`vault:dispatchBatch`,E(this.address))}#i(e){if(!this.sdk.signer)throw new i(e);return this.sdk.signer}async#a(){return this.#r??=this.fromToken().then(e=>new f(this.sdk,e)).catch(e=>{throw this.#r=null,e}),this.#r}async#o(e,t){let n=await this.#a();return c({operation:`join`,tokenAddress:n.address,amount:e,signer:this.sdk.signer,provider:this.sdk.provider,readBalance:e=>n.decryptBalance(e,t)})}async#s(e,t){return this.#i(e),t?(await d(e,this.sdk.signer,this.sdk.provider),b(t)):b((await s(e,this.sdk.signer,this.sdk.provider)).address)}async#c(e,t){return u({operation:e,signer:this.#i(e),provider:this.sdk.provider,config:t,emit:e=>this.sdk.emitEvent(e,this.address),logger:this.sdk.logger})}};function Y(e,t){return new J(e,t)}var X=class{sdk;depositBatcher;redeemBatcher;#e=null;#t=null;#n=null;#r;constructor(e,t){this.sdk=e,this.#r=t.vault?b(t.vault):void 0,this.depositBatcher=new J(e,t.depositBatcher),this.redeemBatcher=new J(e,t.redeemBatcher)}async vaultAddress(){return this.#e??=this.#i().catch(e=>{throw this.#e=null,e}),this.#e}async cAsset(){return this.#t??=this.depositBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#t=null,e}),this.#t}async cShare(){return this.#n??=this.redeemBatcher.fromToken().then(e=>new h(this.sdk,e)).catch(e=>{throw this.#n=null,e}),this.#n}async deposit(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cAsset()]);return await this.#a(`deposit`,n,this.depositBatcher.address,t?.operatorUntil),this.depositBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-deposit`})}async redeem(e,t){let[,n]=await Promise.all([this.vaultAddress(),this.cShare()]);return await this.#a(`redeem`,n,this.redeemBatcher.address,t?.operatorUntil),this.redeemBatcher.join(e,t?.beneficiary,{skipBalanceCheck:t?.skipBalanceCheck,operation:`vault-redeem`})}async#i(){let[t,n]=await Promise.all([this.depositBatcher.vault(),this.redeemBatcher.vault()]);if(b(t)!==b(n))throw new e(`Vault batchers point at different ERC-4626 vaults: deposit batcher ${this.depositBatcher.address} reports ${t}, redeem batcher ${this.redeemBatcher.address} reports ${n}`);let r=b(t);if(this.#r!==void 0&&this.#r!==r)throw new e(`Configured vault address ${this.#r} does not match the ${r} both batchers report`);return r}async#a(e,t,n,r){if(!this.sdk.signer)throw new i(e);let a=this.sdk.signer.requireWalletAccount(e);await t.isOperator(a.address,n)||await t.setOperator(n,r)}};function Z(e,t){return new X(e,t)}const Q={currentBatchId:{batcher:e=>[`zama.vault.currentBatchId`,{batcherAddress:b(e)}]},batchState:{batcher:e=>[`zama.vault.batchState`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.batchState`,{batcherAddress:b(e),batchId:t}]},timeUntilDispatchable:{batcher:e=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e)}],batch:(e,t)=>[`zama.vault.timeUntilDispatchable`,{batcherAddress:b(e),batchId:t}]}};function $(e,t){e.invalidateQueries({queryKey:Q.currentBatchId.batcher(t)}),e.invalidateQueries({queryKey:Q.batchState.batcher(t)}),e.invalidateQueries({queryKey:Q.timeUntilDispatchable.batcher(t)})}function ee(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function te(e,t){v(e,t.fromToken),$(e,t.batcherAddress)}function ne(e,t){v(e,t.toToken)}function re(e,t){$(e,t)}function ie(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.currentBatchId.batcher(e.address),queryFn:async()=>e.currentBatchId(),enabled:n.enabled!==!1}}function ae(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.batchState.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return o(n,`batchStateQueryOptions: batchId`),e.batchState(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function oe(e,t={}){let n=t.query??{};return{...y(n),queryKey:Q.timeUntilDispatchable.batch(e.address,t.batchId),queryFn:async t=>{let[,{batchId:n}]=t.queryKey;return o(n,`timeUntilDispatchableQueryOptions: batchId`),e.timeUntilDispatchable(n)},enabled:t.batchId!==void 0&&n.enabled!==!1}}function se(e){return{mutationKey:[`zama.vault.deposit`,e.depositBatcher.address],mutationFn:async({amount:t,...n})=>e.deposit(t,n)}}function ce(e){return{mutationKey:[`zama.vault.redeem`,e.redeemBatcher.address],mutationFn:async({amount:t,...n})=>e.redeem(t,n)}}function le(e){return{mutationKey:[`zama.vault.join`,e.address],mutationFn:async({amount:t,beneficiary:n,...r})=>e.join(t,n,r)}}function ue(e){return{mutationKey:[`zama.vault.claim`,e.address],mutationFn:async({batchId:t,account:n})=>e.claim(t,n)}}function de(e){return{mutationKey:[`zama.vault.quit`,e.address],mutationFn:async({batchId:t})=>e.quit(t)}}function fe(e){return{mutationKey:[`zama.vault.recover`,e.address],mutationFn:async({batchId:t,account:n})=>e.recover(t,n)}}function pe(e){return{mutationKey:[`zama.vault.dispatchBatch`,e.address],mutationFn:async()=>e.dispatchBatch()}}export{K as BatchState,X as Vault,J as VaultBatcher,U as VaultTopics,L as batchCallbackDeadlineContract,R as batchCreatedAtContract,z as batchDispatchedAtContract,F as batchMinBatchAgeContract,O as batchStateContract,ae as batchStateQueryOptions,I as callbackDeadlineContract,C as claimContract,ue as claimMutationOptions,Z as createVault,Y as createVaultBatcher,D as currentBatchIdContract,ie as currentBatchIdQueryOptions,W as decodeJoined,se as depositMutationOptions,A as depositsContract,E as dispatchBatchContract,pe as dispatchBatchMutationOptions,B as exchangeRateContract,V as exchangeRateDecimalsContract,G as findJoined,M as fromTokenContract,ne as invalidateAfterClaim,re as invalidateAfterDispatchBatch,ee as invalidateAfterJoin,te as invalidateAfterQuit,$ as invalidateBatchQueries,S as joinContract,le as joinMutationOptions,P as minBatchAgeContract,H as pausedContract,w as quitContract,de as quitMutationOptions,T as recoverContract,fe as recoverMutationOptions,ce as redeemMutationOptions,oe as timeUntilDispatchableQueryOptions,N as toTokenContract,k as totalDepositsContract,j as vaultContract,Q as vaultQueryKeys};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/viem/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { $ as SetOperatorSubmittedEvent, $t as TransactionReceipt, A as WalletAccountListener, B as ApproveUnderlyingSubmittedEvent, D as GenericSigner, F as ReadContractReturnType, G as DelegationSubmittedEvent, H as DecryptEndEvent, I as ReadFunctionName, J as EncryptStartEvent, K as EncryptEndEvent, L as WriteContractArgs, M as ContractAbi, N as ReadContractArgs, O as WalletAccount, P as ReadContractConfig, Q as RevokeDelegationSubmittedEvent, Qt as RawLog, R as WriteContractConfig, U as DecryptErrorEvent, V as BaseEvent, W as DecryptStartEvent, X as PermitErrorEvent, Y as FinalizeUnwrapSubmittedEvent, Z as PermitOperation, a as ZamaConfigBase, at as UnshieldPhase1SubmittedEvent, c as GenericStorage, cn as EncryptedValue, ct as UnwrapSubmittedEvent, dt as WrapSubmittedEvent, et as ShieldSubmittedEvent, fn as FhevmRuntimeConfig, ft as ZamaSDKEvent, ht as ZamaSDKEvents, i as ZamaConfig, in as EIP712TypedData, it as TransferSubmittedEvent, j as WalletAccountStore, k as WalletAccountChange, l as GenericProvider, mt as ZamaSDKEventType, n as RelayerConfig, nt as TransactionOperation, ot as UnshieldPhase2StartedEvent, pt as ZamaSDKEventListener, q as EncryptErrorEvent, rt as TransferFromSubmittedEvent, s as GenericLogger, st as UnshieldPhase2SubmittedEvent, tn as ClearValue, tt as TransactionErrorEvent, vt as ShieldPath, z as WriteFunctionName } from "../types-
|
|
3
|
-
import { n as MutableWalletAccountStore, t as BaseSigner } from "../base-signer-
|
|
4
|
-
import { t as ZamaConfigViem } from "../types-
|
|
1
|
+
import { d as AtLeastOneChain, f as FheChain, p as FheChainAuth } from "../index-D1Wtji3m.js";
|
|
2
|
+
import { $ as SetOperatorSubmittedEvent, $t as TransactionReceipt, A as WalletAccountListener, B as ApproveUnderlyingSubmittedEvent, D as GenericSigner, F as ReadContractReturnType, G as DelegationSubmittedEvent, H as DecryptEndEvent, I as ReadFunctionName, J as EncryptStartEvent, K as EncryptEndEvent, L as WriteContractArgs, M as ContractAbi, N as ReadContractArgs, O as WalletAccount, P as ReadContractConfig, Q as RevokeDelegationSubmittedEvent, Qt as RawLog, R as WriteContractConfig, U as DecryptErrorEvent, V as BaseEvent, W as DecryptStartEvent, X as PermitErrorEvent, Y as FinalizeUnwrapSubmittedEvent, Z as PermitOperation, a as ZamaConfigBase, at as UnshieldPhase1SubmittedEvent, c as GenericStorage, cn as EncryptedValue, ct as UnwrapSubmittedEvent, dt as WrapSubmittedEvent, et as ShieldSubmittedEvent, fn as FhevmRuntimeConfig, ft as ZamaSDKEvent, ht as ZamaSDKEvents, i as ZamaConfig, in as EIP712TypedData, it as TransferSubmittedEvent, j as WalletAccountStore, k as WalletAccountChange, l as GenericProvider, mt as ZamaSDKEventType, n as RelayerConfig, nt as TransactionOperation, ot as UnshieldPhase2StartedEvent, pt as ZamaSDKEventListener, q as EncryptErrorEvent, rt as TransferFromSubmittedEvent, s as GenericLogger, st as UnshieldPhase2SubmittedEvent, tn as ClearValue, tt as TransactionErrorEvent, vt as ShieldPath, z as WriteFunctionName } from "../types-CHepK8MK.js";
|
|
3
|
+
import { n as MutableWalletAccountStore, t as BaseSigner } from "../base-signer-BxIDBDTF.js";
|
|
4
|
+
import { t as ZamaConfigViem } from "../types-Dc1fpXWt.js";
|
|
5
5
|
import { Abi, Address, ContractFunctionArgs, ContractFunctionName, ContractFunctionReturnType, EIP1193Provider, Hex, Hex as Hex$1, PublicClient, WalletClient } from "viem";
|
|
6
6
|
//#region src/viem/config.d.ts
|
|
7
7
|
/** Create a {@link ZamaConfig} from viem clients. */
|
package/dist/esm/viem/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{A as e,B as t,D as n,E as r,F as i,H as a,O as o,T as s,h as c,s as l,v as u,x as d}from"../erc165-
|
|
1
|
+
import{A as e,B as t,D as n,E as r,F as i,H as a,O as o,T as s,h as c,s as l,v as u,x as d}from"../erc165-B8gx2luK.js";import{i as f,t as p}from"../base-signer-BoBsvn5Q.js";import{a as m,i as h,n as g,o as _,r as v,s as y,t as b}from"../wrappers-registry-Cm3JJeqx.js";import{t as x}from"../eip1193-subscribe-CNxVHW6y.js";import{encodeFunctionData as S,getAddress as C,serializeTransaction as w}from"viem";var T=class{#e;constructor(e){this.#e=e.publicClient}async getChainId(){return this.#e.getChainId()}async readContract(e){return this.#e.readContract(e)}async waitForTransactionReceipt(e){return this.#e.waitForTransactionReceipt({hash:e})}async getBlockTimestamp(){return(await this.#e.getBlock()).timestamp}async prepareTransaction(e){let{from:t,calldata:n}=e,r=S({abi:n.abi,functionName:n.functionName,args:n.args}),i=this.#e.getChainId(),o=e.nonce===void 0?this.#e.getTransactionCount({address:t,blockTag:`pending`}):Promise.resolve(e.nonce),s=e.gasLimit===void 0?n.gas??this.#e.estimateGas({account:t,to:n.address,data:r,value:n.value??0n}).catch(e=>{throw new a(`ViemProvider.prepareTransaction: gas estimation reverted for ${n.functionName} on ${n.address}`,{cause:e})}):Promise.resolve(e.gasLimit),c=e.fees??this.#e.estimateFeesPerGas(),[l,u,d,f]=await Promise.all([i,o,s,c]);return w({type:`eip1559`,chainId:l,nonce:u,to:n.address,data:r,value:n.value??0n,gas:d,maxFeePerGas:f.maxFeePerGas,maxPriorityFeePerGas:f.maxPriorityFeePerGas})}};function E(e){let t=(e.primaryType?e.types[e.primaryType]:void 0)??[],n={...e.message};for(let{name:e,type:r}of t)/^uint\d*$/.test(r)&&(n[e]=BigInt(n[e]));return n}function D(e){if(!(!e.account||!e.chain))return{address:C(e.account.address),chainId:e.chain.id}}var O=class extends p{#e;#t;#n;constructor(e){super(D(e.walletClient)),this.#e=e.walletClient,this.#t=e.ethereum,this.#n=this.#i()}#r(e){if(!this.#e.account)throw new t(e);return{walletClient:this.#e,account:this.#e.account}}async signTypedData(e){let{walletClient:t,account:n}=this.#r(`signTypedData`),{EIP712Domain:r,...i}=e.types;return t.signTypedData({account:n,primaryType:e.primaryType,types:i,domain:e.domain,message:E(e)})}async writeContract(e){let{walletClient:t,account:n}=this.#r(`writeContract`);return t.writeContract({chain:t.chain,account:n,...e})}#i(){return this.#t?x({provider:this.#t,getInitialWalletAccount:()=>D(this.#e),onWalletAccountChange:({next:e})=>{this.walletAccount.setSnapshot(e)}}):()=>{}}onDispose(){this.#n()}};function k(e){return f(new O({walletClient:e.walletClient,ethereum:e.ethereum}),new T({publicClient:e.publicClient}),e)}function A(e){if(!e.account)throw TypeError(`WalletClient has no account`);return e.account}function j(e,t,n){return e.readContract(c(t,n))}function M(e,t){return e.readContract(r(t))}function N(e,t,n){return e.readContract(l(t,n))}function P(e,t,n,r,i){return e.writeContract({chain:e.chain,account:A(e),...u(t,n,r,i)})}function F(e,t,r,i,a,o){return e.writeContract({chain:e.chain,account:A(e),...n(t,r,i,a,o)})}function I(e,t,n,r,i){return e.writeContract({chain:e.chain,account:A(e),...o(t,n,r,i)})}function L(e,t,n,r,i){return e.writeContract({chain:e.chain,account:A(e),...d(t,n,r,i)})}function R(e,t,n,r){return e.writeContract({chain:e.chain,account:A(e),...s(t,n,r)})}function z(t,n,r,i){return t.writeContract({chain:t.chain,account:A(t),...e(n,r,i)})}function B(e,t){return e.readContract(h(t))}function V(e,t){return e.readContract(m(t))}function H(e,t,n,r){return e.readContract(_(t,n,r))}function U(e,t,n){return e.readContract(v(t,n))}function W(e,t,n){return e.readContract(b(t,n))}function G(e,t,n){return e.readContract(g(t,n))}function K(e,t,n){return e.readContract(y(t,n))}export{p as BaseSigner,T as ViemProvider,O as ViemSigner,i as ZamaSDKEvents,k as createConfig,j as readConfidentialBalanceOfContract,W as readConfidentialTokenAddressContract,K as readIsConfidentialTokenValidContract,N as readSupportsInterfaceContract,G as readTokenAddressContract,U as readTokenPairContract,B as readTokenPairsContract,V as readTokenPairsLengthContract,H as readTokenPairsSliceContract,M as readUnderlyingTokenContract,P as writeConfidentialTransferContract,L as writeFinalizeUnwrapContract,R as writeSetOperatorContract,F as writeUnwrapContract,I as writeUnwrapFromBalanceContract,z as writeWrapContract};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/web/index.d.ts
CHANGED
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
import { dn as FhevmRelayerOptions, fn as FhevmRuntimeConfig, n as RelayerConfig, pn as RelayerOptions, r as WebRelayerConfig, un as FhevmClientOptions } from "../types-
|
|
2
|
-
import {
|
|
3
|
-
import "@fhevm/sdk/chains";
|
|
4
|
-
//#region src/worker/encrypt-worker-client.d.ts
|
|
5
|
-
/**
|
|
6
|
-
* Watchdog deadlines, in milliseconds, for worker lifecycle steps: each is a
|
|
7
|
-
* ceiling on "the worker never answered", not on legitimate slow work. Encrypt
|
|
8
|
-
* operations themselves are not watched: nothing bounds local WASM compute, so
|
|
9
|
-
* a proof may run for as long as it needs.
|
|
10
|
-
*/
|
|
11
|
-
type EncryptWorkerTimeouts = {
|
|
12
|
-
/** Worker startup + module-graph load; a bundler that mishandled the worker URL fails here. */
|
|
13
|
-
readonly spawn: number;
|
|
14
|
-
/** Client init inside the worker realm: chain reads and WASM compilation. */
|
|
15
|
-
readonly init: number;
|
|
16
|
-
};
|
|
17
|
-
//#endregion
|
|
1
|
+
import { dn as FhevmRelayerOptions, fn as FhevmRuntimeConfig, n as RelayerConfig, pn as RelayerOptions, r as WebRelayerConfig, un as FhevmClientOptions } from "../types-CHepK8MK.js";
|
|
2
|
+
import { t as EncryptWorkerTimeouts } from "../encrypt-worker-client-BW88njEe.js";
|
|
18
3
|
//#region src/config/web.d.ts
|
|
19
4
|
/** {@link RelayerOptions} plus the web-only encryption offload switches. */
|
|
20
5
|
interface WebRelayerOptions extends RelayerOptions {
|
package/dist/esm/web/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{r as e,t}from"../fhevm-relayer-CGvejcdJ.js";import{t as n}from"../validation-ClSvPh6P.js";import{z as r}from"zod/mini";const i=e=>r._default(r.number().check(r.positive()),e),a=r.custom(e=>typeof e==`function`),o=r.object({offloadEncrypt:r._default(r.union([r.literal(`auto`),r.boolean()]),`auto`),offloadTimeouts:r.optional(r.object({spawn:i(e.spawn),init:i(e.init)})),offloadWorker:r.optional(r.union([r.string().check(r.minLength(1)),r.instanceof(URL),a]))});function s(e){let{offloadEncrypt:r,offloadTimeouts:i,offloadWorker:a,...s}=e??{},c=n(o,{offloadEncrypt:r,offloadTimeouts:i,offloadWorker:a});return{type:`web`,createRelayer:(e,n,r)=>new t({chain:e,options:s,telemetry:r&&{state:r,runtime:`web`},offloadEncrypt:c.offloadEncrypt,offloadTimeouts:c.offloadTimeouts,offloadWorker:c.offloadWorker,logger:n})}}export{s as web};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{S as e,i as t,r as n}from"./relayer-C3jVhqSK.js";import{r,t as i}from"./encryption-6AVd-82z.js";import{A as a,D as o,E as s,F as c,H as l,L as u,M as ee,O as te,P as d,c as f,j as p,k as ne,l as m,o as re,u as h,x as g}from"./erc165-B8gx2luK.js";import{a as _,d as v,f as ie,l as ae,m as y,o as b,t as oe}from"./token-g6sinwTx.js";import{r as x,t as se}from"./primitives-Cym-3HKa.js";import{getAddress as S,keccak256 as C,toBytes as w,zeroAddress as ce}from"viem";import{z as T}from"zod/mini";function E(e){if(!(e instanceof Error))return null;let t=e.cause;if(typeof t!=`object`||!t||!(`data`in t))return null;let{data:n}=t;return typeof n!=`object`||!n||!(`errorName`in n)?null:typeof n.errorName==`string`?n.errorName:null}var D=class extends n{unwrapTxHash;unwrapRequestId;constructor(e,n,r){super(t.UnshieldAlreadyFinalized,e,r),this.name=`UnshieldAlreadyFinalizedError`,this.unwrapTxHash=n.unwrapTxHash,this.unwrapRequestId=n.unwrapRequestId}};const O=`InvalidUnwrapRequest`,k=C(w(`${O}(bytes32)`)).slice(0,10);function A(e){for(let t=e;t instanceof Error;t=t.cause)if(E(t)===O||t.message.includes(O)||t.message.includes(k))return!0;return!1}const j=[{type:`function`,name:`allowance`,inputs:[{name:`owner`,type:`address`,internalType:`address`},{name:`spender`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`approve`,inputs:[{name:`spender`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`approveAndCall`,inputs:[{name:`spender`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`approveAndCall`,inputs:[{name:`spender`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`balanceOf`,inputs:[{name:`account`,type:`address`,internalType:`address`}],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`supportsInterface`,inputs:[{name:`interfaceId`,type:`bytes4`,internalType:`bytes4`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`view`},{type:`function`,name:`totalSupply`,inputs:[],outputs:[{name:``,type:`uint256`,internalType:`uint256`}],stateMutability:`view`},{type:`function`,name:`transfer`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`transferAndCall`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`transferAndCall`,inputs:[{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`transferFrom`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`transferFromAndCall`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`},{name:`data`,type:`bytes`,internalType:`bytes`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`function`,name:`transferFromAndCall`,inputs:[{name:`from`,type:`address`,internalType:`address`},{name:`to`,type:`address`,internalType:`address`},{name:`value`,type:`uint256`,internalType:`uint256`}],outputs:[{name:``,type:`bool`,internalType:`bool`}],stateMutability:`nonpayable`},{type:`event`,name:`Approval`,inputs:[{name:`owner`,type:`address`,indexed:!0,internalType:`address`},{name:`spender`,type:`address`,indexed:!0,internalType:`address`},{name:`value`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1},{type:`event`,name:`Transfer`,inputs:[{name:`from`,type:`address`,indexed:!0,internalType:`address`},{name:`to`,type:`address`,indexed:!0,internalType:`address`},{name:`value`,type:`uint256`,indexed:!1,internalType:`uint256`}],anonymous:!1}];function M(e,t,n,r=`0x`){return{address:e,abi:j,functionName:`transferAndCall`,args:[t,n,r]}}function N(e){return e.startsWith(`0x`)?e:`0x${e}`}function P(e){return C(w(e))}function F(e){return S(N(e.slice(-40)))}function I(e){return e}function L(e,t){let n=2+t*64,r=e.slice(n,n+64);return r.length===64?r:r.padEnd(64,`0`)}function R(e,t){return S(N(L(e,t).slice(-40)))}function z(e,t){return BigInt(`0x`+L(e,t))}function B(e,t){return N(L(e,t))}const V={ConfidentialTransfer:P(`ConfidentialTransfer(address,address,bytes32)`),Wrap:P(`Wrap(address,uint256,bytes32)`),UnwrapRequested:P(`UnwrapRequested(address,bytes32,bytes32)`),UnwrapFinalized:P(`UnwrapFinalized(address,bytes32,bytes32,uint64)`)};function H(e){return e.topics[0]!==V.ConfidentialTransfer||e.topics.length<4?null:{eventName:`ConfidentialTransfer`,from:F(e.topics[1]),to:F(e.topics[2]),encryptedAmount:I(e.topics[3])}}function U(e){return e.topics[0]!==V.Wrap||e.topics.length<2?null:{eventName:`Wrap`,to:F(e.topics[1]),roundedAmount:z(e.data,0),encryptedWrappedAmount:B(e.data,1)}}function W(e){return e.topics[0]!==V.UnwrapRequested||e.topics.length<3?null:{eventName:`UnwrapRequested`,receiver:F(e.topics[1]),unwrapRequestId:I(e.topics[2]),encryptedAmount:B(e.data,0)}}function G(e){return e.topics[0]!==V.UnwrapFinalized||e.topics.length<3?null:{eventName:`UnwrapFinalized`,receiver:F(e.topics[1]),unwrapRequestId:I(e.topics[2]),encryptedAmount:B(e.data,0),cleartextAmount:z(e.data,1)}}function K(e){return H(e)??U(e)??W(e)??G(e)}function le(e){let t=[];for(let n of e){let e=K(n);e&&t.push(e)}return t}function q(e){for(let t of e){let e=W(t);if(e)return e}return null}function ue(e){for(let t of e){let e=U(t);if(e)return e}return null}const de=[V.ConfidentialTransfer,V.Wrap,V.UnwrapRequested,V.UnwrapFinalized],J={DelegatedForUserDecryption:P(`DelegatedForUserDecryption(address,address,address,uint64,uint64,uint64)`),RevokedDelegationForUserDecryption:P(`RevokedDelegationForUserDecryption(address,address,address,uint64,uint64)`)};function Y(e){return e.topics[0]!==J.DelegatedForUserDecryption||e.topics.length<3?null:{eventName:`DelegatedForUserDecryption`,delegator:F(e.topics[1]),delegate:F(e.topics[2]),contractAddress:R(e.data,0),delegationCounter:z(e.data,1),oldExpirationDate:z(e.data,2),newExpirationDate:z(e.data,3)}}function X(e){return e.topics[0]!==J.RevokedDelegationForUserDecryption||e.topics.length<3?null:{eventName:`RevokedDelegationForUserDecryption`,delegator:F(e.topics[1]),delegate:F(e.topics[2]),contractAddress:R(e.data,0),delegationCounter:z(e.data,1),oldExpirationDate:z(e.data,2)}}function Z(e){return Y(e)??X(e)}function fe(e){let t=[];for(let n of e){let e=Z(n);e&&t.push(e)}return t}function pe(e){for(let t of e){let e=Y(t);if(e)return e}return null}function Q(e){for(let t of e){let e=X(t);if(e)return e}return null}const me=[J.DelegatedForUserDecryption,J.RevokedDelegationForUserDecryption];function $(e){return`zama:pending-unshield:${se(e)}`}const he=T.union([T.pipe(x,T.transform(e=>({unwrapTxHash:e}))),T.pipe(T.object({version:T.literal(1),unwrapTxHash:x,unwrapRequestId:T.optional(x)}),T.transform(({unwrapTxHash:e,unwrapRequestId:t})=>({unwrapTxHash:e,unwrapRequestId:t})))]);async function ge(e,t,n,r){if(r===void 0){await e.set($(t),n);return}await e.set($(t),{version:1,unwrapTxHash:n,unwrapRequestId:r})}async function _e(e,t){let n=$(t),r=await e.get(n);if(r==null)return null;let i=he.safeParse(r);return i.success?i.data:(await e.delete(n),null)}async function ve(e,t){await e.delete($(t))}var ye=class extends oe{#e;#t=null;#n=null;#r(e){try{return d(this.sdk.signer,`WrappedToken.sdk.signer`),this.sdk.signer}catch(t){throw new u(e,{cause:t})}}async underlying(){return this.#f()}async isPayable(){if(this.#n!==null)return this.#n;try{let e=await this.#f();this.#n=await this.sdk.provider.readContract(re(e))}catch{this.#n=!1}return this.#n}async allowance(e){let t=await this.#f();return this.sdk.provider.readContract(f(t,S(e),this.address))}async shield(t,r){let i=await _(`shield`,this.sdk.signer,this.sdk.provider),a=await this.isPayable(),o=await this.#f(),s=S(i.address),c;try{c=await this.sdk.provider.readContract(h(o,s))}catch(t){throw t instanceof n?t:new v(`Could not read ERC-20 balance for shield validation (token: ${o})`,{cause:e(t)})}if(c<t)throw new y(`Insufficient ERC-20 balance: requested ${t}, available ${c} (token: ${o})`,{requested:t,available:c,token:o});return a?this.#i(t,o,s,r):this.#a(t,s,r)}async#i(e,t,n,r){this.#r(`shield`);let i=r?.to?S(r.to):n,a=i===n?`0x`:i;return this.submitTransaction({operation:`shield:transferAndCall`,config:M(t,this.address,e,a),onSubmitted:r?.onShieldSubmitted})}async wrap(t,r){this.#r(`wrap`);let i=await _(`wrap`,this.sdk.signer,this.sdk.provider),o=await this.#f(),s=S(i.address),c;try{c=await this.sdk.provider.readContract(h(o,s))}catch(t){throw t instanceof n?t:new v(`Could not read ERC-20 balance for wrap validation (token: ${o})`,{cause:e(t)})}if(c<t)throw new y(`Insufficient ERC-20 balance: requested ${t}, available ${c} (token: ${o})`,{requested:t,available:c,token:o});let l;try{l=await this.sdk.provider.readContract(f(o,s,this.address))}catch(t){throw t instanceof n?t:new v(`Could not read ERC-20 allowance for wrap validation (token: ${o})`,{cause:e(t)})}if(l<t)throw new ie(`Insufficient allowance for wrap: requested ${t}, approved ${l}. Call approveUnderlying() first (token: ${o}).`,{requested:t,available:l,token:o});let u=r?.to?S(r.to):s;return this.submitTransaction({operation:`wrap`,config:a(this.address,u,t),onSubmitted:r?.onWrapSubmitted})}async#a(e,t,n){this.#r(`shield`);let r=n?.approvalStrategy??`exact`;r!==`skip`&&await this.#m(e,r===`max`,n);let i=n?.to?S(n.to):t;return this.submitTransaction({operation:`shield:approveAndWrap`,config:a(this.address,i,e),onSubmitted:n?.onShieldSubmitted})}async approveUnderlying(e){this.#r(`approveUnderlying`);let t=await _(`approveUnderlying`,this.sdk.signer,this.sdk.provider),n=await this.#f(),r=S(t.address),i=e??2n**256n-1n;return i>0n&&await this.sdk.provider.readContract(f(n,r,this.address))>0n&&await this.submitTransaction({operation:`approveUnderlying:reset`,config:m(n,this.address,0n)}),this.submitTransaction({operation:`approveUnderlying`,config:m(n,this.address,i)})}async unshield(e,t){let{skipBalanceCheck:n=!1,onUnwrapSubmitted:r,onFinalizing:i,onFinalizeSubmitted:a}=t??{};n||await this.assertConfidentialBalance(e,`unshield`);let o={onFinalizing:i,onFinalizeSubmitted:a},s=crypto.randomUUID(),c=await this.#o(e,`unshield`);return p(`unshield: onUnwrapSubmitted`,()=>r?.(c.txHash),this.sdk.logger),this.#p(c.unwrapRequestId,c.txHash,s,o,`unshield`)}async unshieldAll(e){let t=crypto.randomUUID(),n=await this.unwrapAll();return p(`unshieldAll: onUnwrapSubmitted`,()=>e?.onUnwrapSubmitted?.(n.txHash),this.sdk.logger),this.#p(n.unwrapRequestId,n.txHash,t,e,`unshield-all`)}async resumeUnshield(e,t){let r;try{r=await this.sdk.provider.waitForTransactionReceipt(e)}catch(e){throw e instanceof n?e:new l(`Failed to get unwrap receipt`,{cause:e})}let i=this.#c(r.logs);if(await this.#l(i))throw await this.#d(`resumeUnshield`),new D(`Nothing to resume: the unwrap request was already finalized on-chain and the funds were delivered.`,{unwrapTxHash:e,unwrapRequestId:i});return this.#p(i,e,crypto.randomUUID(),t,`resume-unshield`)}async getPendingUnshield(){let e=await _e(this.sdk.storage,this.address);return e?await this.#u(e)?(await this.#d(`getPendingUnshield`),null):e.unwrapTxHash:null}async unwrap(e){return this.#o(e,`unwrap`)}async#o(e,t){this.#r(`unwrap`);let n=S((await _(`unwrap`,this.sdk.signer,this.sdk.provider)).address),{encryptedValues:i,inputProof:a}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:n},{operation:t}),[s]=i;if(!s)throw new r(`Encryption returned no encrypted values`);let c=await this.submitTransaction({operation:`unwrap`,config:o(this.address,n,n,s,a)});return{...c,unwrapRequestId:this.#c(c.receipt.logs)}}async unwrapAll(){this.#r(`unwrapAll`);let e=S((await _(`unwrapAll`,this.sdk.signer,this.sdk.provider)).address),t=await this.readConfidentialBalanceOf(e);if(ae(t))throw new i(`Cannot unshield: balance is zero`);let n=await this.submitTransaction({operation:`unwrapAll`,config:te(this.address,e,e,t)});return{...n,unwrapRequestId:this.#c(n.receipt.logs)}}async finalizeUnwrap(e){return this.#s(e,`finalize-unwrap`)}async#s(e,t){this.#r(`finalizeUnwrap`),await b(`finalizeUnwrap`,this.sdk.signer,this.sdk.provider);let n=await this.sdk.decryption.decryptPublicValues([e],{operation:t}),r=n.clearValues[e];return ee(r,`finalizeUnwrap: clearValue`),this.submitTransaction({operation:`finalizeUnwrap`,config:g(this.address,e,r,n.decryptionProof)})}#c(e){let t=q(e.filter(e=>e.address===void 0||S(e.address)===this.address));if(!t)throw new l(`No UnwrapRequested event from this wrapper found in the unwrap receipt`);return t.unwrapRequestId}async#l(e){try{return await this.sdk.provider.readContract(ne(this.address,e))===ce}catch{return!1}}async#u(e){let t=e.unwrapRequestId;if(t===void 0)try{let n=await this.sdk.provider.waitForTransactionReceipt(e.unwrapTxHash);t=this.#c(n.logs)}catch{return!1}return this.#l(t)}async#d(e){await p(`${e}: clearPendingUnshield`,()=>ve(this.sdk.storage,this.address),this.sdk.logger)}async#f(){return this.#e===void 0?(this.#t||=this.sdk.provider.readContract(s(this.address)).then(e=>(this.#e=e,this.#t=null,e)).catch(e=>{throw this.#t=null,e}),this.#t):this.#e}async#p(e,t,n,r,i){this.emit({type:c.UnshieldPhase1Submitted,txHash:t,operationId:n}),await p(`unshield: savePendingUnshield`,()=>ge(this.sdk.storage,this.address,t,e),this.sdk.logger),this.emit({type:c.UnshieldPhase2Started,operationId:n}),p(`unshield: onFinalizing`,()=>r?.onFinalizing?.(),this.sdk.logger);let a;try{a=await this.#s(e,i)}catch(n){throw A(n)?(await this.#d(`unshield`),new D(`The unwrap request was finalized concurrently — the funds were already delivered.`,{unwrapTxHash:t,unwrapRequestId:e},{cause:n})):n}return this.emit({type:c.UnshieldPhase2Submitted,txHash:a.txHash,operationId:n}),p(`unshield: onFinalizeSubmitted`,()=>r?.onFinalizeSubmitted?.(a.txHash),this.sdk.logger),await this.#d(`unshield`),a}async#m(e,t,n){this.#r(`approveUnderlying`);let r=await this.#f(),i=S((await _(`approveUnderlying`,this.sdk.signer,this.sdk.provider)).address),a=await this.sdk.provider.readContract(f(r,i,this.address));if(a>=e)return;a>0n&&await this.submitTransaction({operation:`approveUnderlying:reset`,config:m(r,this.address,0n)});let o=t?2n**256n-1n:e;await this.submitTransaction({operation:`approveUnderlying`,config:m(r,this.address,o),onSubmitted:n?.onApprovalSubmitted})}};export{M as C,B as S,E as T,Q as _,V as a,P as b,H as c,le as d,X as f,pe as g,U as h,de as i,Y as l,W as m,me as n,Z as o,G as p,J as r,fe as s,ye as t,K as u,q as v,D as w,F as x,ue as y};
|
|
2
|
+
//# sourceMappingURL=wrapped-token-3usJd0oi.js.map
|