@zama-fhe/sdk 3.3.0 → 3.3.1-alpha.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/README.md +0 -2
- package/dist/cjs/base-signer.cjs +1 -1
- package/dist/cjs/base-signer.cjs.map +1 -1
- package/dist/cjs/chains.cjs +1 -1
- package/dist/cjs/chains.cjs.map +1 -1
- package/dist/cjs/cleartext/index.cjs +1 -1
- package/dist/cjs/cleartext.cjs +2 -0
- package/dist/cjs/cleartext.cjs.map +1 -0
- package/dist/cjs/ethers/index.cjs.map +1 -1
- package/dist/cjs/fhevm-relayer.cjs +2 -0
- package/dist/cjs/fhevm-relayer.cjs.map +1 -0
- package/dist/cjs/index.cjs +1 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/node/index.cjs +2 -0
- package/dist/cjs/node/index.cjs.map +1 -0
- package/dist/cjs/query/index.cjs +1 -1
- package/dist/cjs/query/index.cjs.map +1 -1
- package/dist/cjs/relayer.cjs +1 -1
- package/dist/cjs/relayer.cjs.map +1 -1
- package/dist/cjs/token.cjs +1 -1
- package/dist/cjs/token.cjs.map +1 -1
- package/dist/cjs/viem/index.cjs +1 -1
- package/dist/cjs/viem/index.cjs.map +1 -1
- package/dist/cjs/web/index.cjs +1 -590
- package/dist/cjs/web/index.cjs.map +1 -1
- package/dist/cjs/wrappers-registry.cjs.map +1 -1
- package/dist/esm/base-signer-CI-FYai2.js +2 -0
- package/dist/esm/base-signer-CI-FYai2.js.map +1 -0
- package/dist/esm/{base-signer-C3Wc5oi9.d.ts → base-signer-Q2EJECrc.d.ts} +2 -2
- package/dist/esm/chains/index.d.ts +2 -3
- package/dist/esm/chains/index.js +1 -1
- package/dist/esm/chains-CLv9HEJ_.js +2 -0
- package/dist/esm/chains-CLv9HEJ_.js.map +1 -0
- package/dist/esm/cleartext/index.d.ts +3 -2
- package/dist/esm/cleartext/index.js +1 -1
- package/dist/esm/cleartext-BfXTVQu-.js +2 -0
- package/dist/esm/cleartext-BfXTVQu-.js.map +1 -0
- package/dist/esm/cleartext-U6sPs_Kd.d.ts +19 -0
- package/dist/esm/ethers/index.d.ts +4 -5
- package/dist/esm/ethers/index.js +1 -1
- package/dist/esm/ethers/index.js.map +1 -1
- package/dist/esm/fhevm-relayer-B-lEKfPQ.js +2 -0
- package/dist/esm/fhevm-relayer-B-lEKfPQ.js.map +1 -0
- package/dist/esm/index-BnIp_-Ak.d.ts +328 -0
- package/dist/esm/{index-CYBH0nyo.d.ts → index-D66eC3G7.d.ts} +60 -13
- package/dist/esm/index.d.ts +8 -11
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node/index.d.ts +5 -194
- package/dist/esm/node/index.js +1 -1
- package/dist/esm/node/index.js.map +1 -1
- package/dist/esm/query/index.d.ts +3 -380
- package/dist/esm/query/index.js +1 -1
- package/dist/esm/query/index.js.map +1 -1
- package/dist/esm/relayer-BYq9bLh8.js +2 -0
- package/dist/esm/relayer-BYq9bLh8.js.map +1 -0
- package/dist/esm/token-CmHTAAWW.js +2 -0
- package/dist/esm/token-CmHTAAWW.js.map +1 -0
- package/dist/esm/{types-piBsdTIP.d.ts → types-Bov8XY36.d.ts} +3 -3
- package/dist/esm/{types-OHIaPwCy.d.ts → types-BpvL50qX.d.ts} +3 -3
- package/dist/esm/types-C-WTLcHZ.d.ts +988 -0
- package/dist/esm/viem/index.d.ts +4 -5
- package/dist/esm/viem/index.js +1 -1
- package/dist/esm/viem/index.js.map +1 -1
- package/dist/esm/web/index.d.ts +6 -9
- package/dist/esm/web/index.js +1 -590
- package/dist/esm/web/index.js.map +1 -1
- package/dist/esm/{wrappers-registry-C1oK8Bi6.js → wrappers-registry-xZWzyAi4.js} +2 -2
- package/dist/esm/wrappers-registry-xZWzyAi4.js.map +1 -0
- package/dist/esm/{index-C1Mtc8Rw.d.ts → zama-sdk-q4_qt64Q.d.ts} +1471 -1102
- package/package.json +6 -2
- package/dist/cjs/assertions.cjs +0 -2
- package/dist/cjs/assertions.cjs.map +0 -1
- package/dist/cjs/encryption.cjs +0 -2
- package/dist/cjs/encryption.cjs.map +0 -1
- package/dist/cjs/relayer-cleartext.cjs +0 -2
- package/dist/cjs/relayer-cleartext.cjs.map +0 -1
- package/dist/cjs/relayer-sdk.worker.js +0 -589
- package/dist/cjs/timeout.cjs +0 -2
- package/dist/cjs/timeout.cjs.map +0 -1
- package/dist/cjs/validation.cjs +0 -2
- package/dist/cjs/validation.cjs.map +0 -1
- package/dist/esm/assertions-zYseN5Xz.js +0 -2
- package/dist/esm/assertions-zYseN5Xz.js.map +0 -1
- package/dist/esm/base-signer-DjytqPkd.js +0 -2
- package/dist/esm/base-signer-DjytqPkd.js.map +0 -1
- package/dist/esm/chains-CXcO1DBP.js +0 -2
- package/dist/esm/chains-CXcO1DBP.js.map +0 -1
- package/dist/esm/cleartext-DAkOTlrE.d.ts +0 -19
- package/dist/esm/cleartext-rTWFctyd.js +0 -2
- package/dist/esm/cleartext-rTWFctyd.js.map +0 -1
- package/dist/esm/encryption-x4Z_Icqk.js +0 -2
- package/dist/esm/encryption-x4Z_Icqk.js.map +0 -1
- package/dist/esm/hex-A72GrTf9.js +0 -2
- package/dist/esm/hex-A72GrTf9.js.map +0 -1
- package/dist/esm/indexeddb-storage-Mi-fCWN3.js +0 -2
- package/dist/esm/indexeddb-storage-Mi-fCWN3.js.map +0 -1
- package/dist/esm/memory-storage-fp9RY5BQ.js +0 -2
- package/dist/esm/memory-storage-fp9RY5BQ.js.map +0 -1
- package/dist/esm/node/relayer-sdk.node-worker.d.ts +0 -1
- package/dist/esm/node/relayer-sdk.node-worker.js +0 -2
- package/dist/esm/node/relayer-sdk.node-worker.js.map +0 -1
- package/dist/esm/relayer-cleartext-Bp6jtxDd.js +0 -2
- package/dist/esm/relayer-cleartext-Bp6jtxDd.js.map +0 -1
- package/dist/esm/relayer-cleartext-CSeMlmGO.d.ts +0 -844
- package/dist/esm/relayer-eavK5bfZ.js +0 -2
- package/dist/esm/relayer-eavK5bfZ.js.map +0 -1
- package/dist/esm/relayer-sdk.worker.js +0 -589
- package/dist/esm/timeout-CNVfiaJD.js +0 -2
- package/dist/esm/timeout-CNVfiaJD.js.map +0 -1
- package/dist/esm/token-Bt33g0zQ.js +0 -2
- package/dist/esm/token-Bt33g0zQ.js.map +0 -1
- package/dist/esm/types-BgczXqW2.d.ts +0 -49
- package/dist/esm/types-Gn5MeDsr.d.ts +0 -669
- package/dist/esm/validation-DLszOweh.js +0 -2
- package/dist/esm/validation-DLszOweh.js.map +0 -1
- package/dist/esm/worker.base-client-BVnT4yJa.js +0 -2
- package/dist/esm/worker.base-client-BVnT4yJa.js.map +0 -1
- package/dist/esm/wrappers-registry-C1oK8Bi6.js.map +0 -1
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{i as e,n as t,r as n,t as r}from"./relayer-eavK5bfZ.js";import{A as i,B as a,C as o,D as s,F as c,H as l,I as u,L as d,M as f,N as ee,O as te,P as ne,R as re,S as ie,T as ae,U as oe,V as se,W as ce,_ as le,a as ue,b as de,c as fe,d as pe,f as me,g as p,h as m,i as he,j as ge,k as _e,l as ve,m as ye,n as be,o as xe,p as Se,r as Ce,s as we,t as Te,u as Ee,v as De,x as Oe,z as ke}from"./wrappers-registry-C1oK8Bi6.js";import{n as h,t as g}from"./encryption-x4Z_Icqk.js";import{_ as Ae,a as je,b as _,c as Me,d as Ne,f as Pe,g as Fe,h as Ie,i as v,l as y,m as Le,n as Re,o as b,p as ze,r as Be,s as x,t as S,u as Ve,v as He,x as C,y as Ue}from"./token-Bt33g0zQ.js";import{n as w}from"./relayer-cleartext-Bp6jtxDd.js";import{n as We,t as Ge}from"./timeout-CNVfiaJD.js";import{_ as T,c as Ke,f as qe,h as Je,i as Ye,l as E,m as Xe,t as Ze,u as Qe}from"./assertions-zYseN5Xz.js";import{t as $e}from"./cleartext-rTWFctyd.js";import{a as et,c as tt,d as nt,f as D,i as rt,l as it,n as at,o as O,r as ot,s as st,t as ct,u as lt}from"./base-signer-DjytqPkd.js";import{n as ut,t as dt}from"./indexeddb-storage-Mi-fCWN3.js";import{n as ft,t as pt}from"./memory-storage-fp9RY5BQ.js";import{t as k}from"./hex-A72GrTf9.js";import{a as mt,c as ht,i as gt,n as _t,o as vt,r as yt,s as bt,t as xt}from"./chains-CXcO1DBP.js";import{getAddress as A,keccak256 as St,toBytes as Ct}from"viem";import{z as j}from"zod/mini";function wt(e,t){if(e instanceof n){let n=t[e.code];if(n)return n(e)}return t._?.(e)}var Tt=class extends n{constructor(t,n){super(e.TransportKeyPairExpired,t,n),this.name=`TransportKeyPairExpiredError`}},Et=class extends n{constructor(t,n){super(e.InvalidTransportKeyPair,t,n),this.name=`InvalidTransportKeyPairError`}},Dt=class extends n{constructor(t,n){super(e.NoCiphertext,t,n),this.name=`NoCiphertextError`}},M=class extends n{constructor(t,n){super(e.DelegationSelfNotAllowed,t,n),this.name=`DelegationSelfNotAllowedError`}},Ot=class extends n{constructor(t,n){super(e.DelegationCooldown,t,n),this.name=`DelegationCooldownError`}},N=class extends n{constructor(t,n){super(e.DelegationNotFound,t,n),this.name=`DelegationNotFoundError`}},P=class extends n{constructor(t,n){super(e.DelegationExpired,t,n),this.name=`DelegationExpiredError`}},F=class extends n{constructor(t,n){super(e.DelegationExpiryUnchanged,t,n),this.name=`DelegationExpiryUnchangedError`}},I=class extends n{constructor(t,n){super(e.DelegationDelegateEqualsContract,t,n),this.name=`DelegationDelegateEqualsContractError`}},kt=class extends n{constructor(t,n){super(e.DelegationContractIsSelf,t,n),this.name=`DelegationContractIsSelfError`}},At=class extends n{constructor(t,n){super(e.AclPaused,t,n),this.name=`AclPausedError`}},L=class extends n{constructor(t,n){super(e.DelegationExpirationTooSoon,t,n),this.name=`DelegationExpirationTooSoonError`}},R=class extends n{constructor(t,n){super(e.DelegationNotPropagated,t,n),this.name=`DelegationNotPropagatedError`}};function z(e,n,r={}){if(e instanceof g||e instanceof Dt||e instanceof t||e instanceof R||e instanceof ce||e instanceof oe||e instanceof w||e instanceof _||e instanceof We||e instanceof Ge)return e;let i=e instanceof Error?e.message:n;if(e instanceof Error&&qe(e.message))return r.isDelegated?new R(`Delegated decryption was denied by the on-chain ACL check. This is most commonly caused by the delegation not having propagated yet, or by the RPC node serving a stale block. Propagation usually completes within ~10 blocks (a few seconds) and the SDK retries across that window; seeing this means it did not sync in time. Retry shortly (and prefer a fresh, low-lag RPC endpoint). If it persists, the delegator may genuinely lack the on-chain ACL grant.`,{cause:e}):new w({encryptedValue:Je(e.message)??``,contractAddress:r.contractAddress??``,account:r.account??``},{cause:e});if(Qe(e))return new _(i,{cause:e,retryAfter:E(e)});let a=Ke(e);return a===void 0&&Xe(e)?new _(i,{cause:e,retryAfter:E(e)}):a===400?new Dt(e instanceof Error?e.message:`No ciphertext for this account`,{cause:e}):r.isDelegated&&a===500?new R(`Delegated decryption failed with a server error. This is most commonly caused by the delegation not having propagated to the gateway yet. Cross-chain sync usually completes within ~10 blocks (a few seconds) and the SDK retries across that window; seeing this means it did not sync in time — retry shortly. If the error persists, the gateway or relayer may be experiencing an unrelated issue.`,{cause:e}):a===void 0?new g(n,{cause:e}):new t(i,a,{cause:e,retryAfter:E(e)})}function jt(e,r){if(e instanceof n)return e;let i=Ke(e);return i===void 0?new h(r,{cause:e}):new t(e instanceof Error?e.message:r,i,{cause:e,retryAfter:E(e)})}const Mt=[{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 Nt(e,t,n,r=`0x`){return{address:e,abi:Mt,functionName:`transferAndCall`,args:[t,n,r]}}function Pt(e){return rt(e.signer,e.provider,e)}var Ft=class{#e;#t;#n;#r;constructor(e){this.#e=e.signer,this.#t=e.provider,this.#n=e.relayer,this.#r=e.decryptionService}#i(e){return l(this.#r,e)}async decryptValues(e){let t=this.#i(`decryptValues`),n=await x(`decryptValues`,this.#e,this.#t);return t.userDecrypt(e,n.address)}async delegatedDecryptValues(e,t,n=t,r){let i=this.#i(`delegatedDecryptValues`),a=await x(`delegatedDecryptValues`,this.#e,this.#t);return i.delegatedUserDecrypt(e,t,a.address,n,r)}async decryptPublicValues(e){if(e.length===0)return{clearValues:{},decryptionProof:`0x`,abiEncodedClearValues:`0x`};try{return await this.#n.publicDecrypt(e)}catch(e){throw z(e,`Public decryption failed`)}}async delegatedBatchDecryptValues({encryptedInputs:e,delegatorAddress:t,accountAddress:n=t,maxConcurrency:r,waitForPropagation:i}){let a=this.#i(`delegatedBatchDecryptValues`),o=await x(`delegatedBatchDecryptValues`,this.#e,this.#t);return a.delegatedBatchDecryptHandlesAs({encryptedInputs:e,delegatorAddress:t,delegateAddress:o.address,accountAddress:n,maxConcurrency:r,waitForPropagation:i})}},It=class{#e;#t;#n;constructor(e){this.#e=e.signer,this.#t=e.provider,this.#n=e.delegationService}#r(e){return l(this.#e,e)}async delegateDecryption({contractAddress:e,delegateAddress:t,expirationDate:n}){let r=this.#r(`delegateDecryption`),i=await x(`delegateDecryption`,this.#e,this.#t);return this.#n.delegateDecryption(r,{contractAddress:e,delegateAddress:t,delegatorAddress:i.address,expirationDate:n})}async revokeDelegation({contractAddress:e,delegateAddress:t}){let n=this.#r(`revokeDelegation`),r=await x(`revokeDelegation`,this.#e,this.#t);return this.#n.revokeDelegation(n,{contractAddress:e,delegateAddress:t,delegatorAddress:r.address})}async isActive(e){return this.#n.isDelegated(e)}async getExpiry(e){return this.#n.getDelegationExpiry(e)}},Lt=class{#e;#t;#n;#r;#i;constructor(e){this.#e=e.signer,this.#t=e.provider,this.#n=e.cachingService,this.#r=e.credentialService,this.#i=e.logger}#a(e){return l(this.#r,e)}async grantPermit(e){if(e.length===0)return;let t=this.#a(`grantPermit`);await Me(`grantPermit`,this.#e,this.#t),await t.grantPermit(e)}async grantDelegationPermit(e,t){if(t.length===0)return;let n=this.#a(`grantDelegationPermit`);await Me(`grantDelegationPermit`,this.#e,this.#t),await n.grantPermit(t,e)}async hasPermit(e){return this.#r?this.#r.hasPermit(e):!1}async hasDelegationPermit(e,t){return this.#r?this.#r.hasPermit(t,e):!1}async warmTransportKeyPair(){let e=this.#r;if(!e)return;let t=this.#e?.walletAccount.getSnapshot();t&&await e.warmTransportKeyPair(t.address)}async revokePermits(e){let t=this.#a(`revokePermits`),n=A((await x(`revokePermits`,this.#e,this.#t)).address);try{await t.revokePermits(e)}finally{await d(`clear decrypt cache`,()=>this.#n.clearForRequester(n),this.#i)}}async clear(){let e=this.#a(`clear`),t=A((await x(`clear`,this.#e,this.#t)).address);try{await e.clearCredentials()}finally{await d(`clear decrypt cache`,()=>this.#n.clearForRequester(t),this.#i)}}};const Rt=j.union([j.bigint(),j.boolean(),nt]),zt=j.array(j.string());var Bt=class{#e;#t;#n=`zama:decrypt`;#r=`${this.#n}:keys`;#i=Promise.resolve();constructor(e,t){this.#e=e,this.#t=t}async get(e,t,n){try{let r=this.#c(e,t,n),i=await this.#e.get(r);if(i===null)return null;let a=Rt.safeParse(i);return a.success?a.data:(await this.delete(e,t,n),null)}catch(e){return this.#t.warn(`CachingService.get failed`,{error:e}),null}}async set(e,t,n,r){try{let i=this.#c(e,t,n);await this.#e.set(i,r),this.#i=this.#i.then(()=>this.#u(i).catch(e=>{this.#t.warn(`CachingService index write failed`,{error:e})})),await this.#i}catch(e){this.#t.warn(`CachingService.set failed`,{error:e})}}async delete(e,t,n){let r=this.#c(e,t,n);this.#i=this.#i.then(()=>this.#a(r).catch(e=>{this.#t.warn(`CachingService.delete failed`,{error:e})})),await this.#i}async clearForRequester(e){this.#i=this.#i.then(()=>this.#o(e).catch(e=>{this.#t.warn(`CachingService.clearForRequester failed`,{error:e})})),await this.#i}async clearAll(){this.#i=this.#i.then(()=>this.#s().catch(e=>{this.#t.warn(`CachingService.clearAll failed`,{error:e})})),await this.#i}async#a(e){await this.#e.delete(e).catch(()=>{});let t=await this.#l(),n=t.filter(t=>t!==e);n.length!==t.length&&await this.#e.set(this.#r,n)}async#o(e){let t=A(e),n=`${this.#n}:${t}:`,r=await this.#l(),i=[],a=[];for(let e of r)e.startsWith(n)?i.push(e):a.push(e);await Promise.all(i.map(e=>this.#e.delete(e).catch(()=>{}))),await this.#e.set(this.#r,a)}async#s(){let e=await this.#l();await Promise.all(e.map(e=>this.#e.delete(e).catch(()=>{}))),await this.#e.delete(this.#r)}#c(e,t,n){return`${this.#n}:${A(e)}:${A(t)}:${n.toLowerCase()}`}async#l(){let e=await this.#e.get(this.#r);if(e===null)return[];let t=zt.safeParse(e);return t.success?t.data:(await this.#e.delete(this.#r).catch(()=>{}),[])}async#u(e){let t=await this.#l();t.includes(e)||(t.push(e),await this.#e.set(this.#r,t))}};function Vt(e,t){let n=Wt(e,t);if(!n)throw new g(`No permit covers contract ${t} after allow()`);return Ut(e,n)}function Ht(e,t){let n=Wt(e,t);if(!n)throw new g(`No delegated permit covers contract ${t} after allow()`);return{...Ut(e,n),delegatorAddress:n.delegatorAddress}}function Ut(e,t){return{signedContractAddresses:t.signedContractAddresses,privateKey:e.keypair.privateKey,publicKey:e.keypair.publicKey,signature:t.signature,startTimestamp:t.startTimestamp,durationDays:t.durationDays}}function Wt(e,t){let n=lt(t);return e.permits.find(e=>e.signedContractAddresses.includes(n))}const Gt=e=>new Promise(t=>setTimeout(t,e));var Kt=class{#e;#t;#n;#r;#i;constructor({cache:e,credentialService:t,delegationService:n,relayer:r,emitEvent:i}){this.#e=e,this.#t=t,this.#n=n,this.#r=r,this.#i=i}async userDecrypt(e,t){let n=A(t);return this.#o(e,{requesterAddress:n,aclActorAddress:n,resolveCredentials:e=>this.#t.grantPermit(e),decryptContract:async({credentials:e,contractAddress:t,encryptedValues:r})=>this.#r.userDecrypt({encryptedValues:r,contractAddress:t,...Vt(e,t),signerAddress:n}),errorMessage:`Failed to decrypt encrypted values`})}async delegatedUserDecrypt(e,t,n,r,i){let a=A(t),o=A(n);return this.#a(i?.waitForPropagation??!0,()=>this.#o(e,{requesterAddress:A(r),aclActorAddress:a,resolveCredentials:e=>this.#t.grantPermit(e,a),validate:e=>this.#d(e,{delegatorAddress:a,delegateAddress:o}),decryptContract:async({credentials:e,contractAddress:t,encryptedValues:n})=>this.#r.delegatedUserDecrypt({encryptedValues:n,contractAddress:t,...Ht(e,t),delegateAddress:o}),errorMessage:`Failed to decrypt delegated encrypted values`,delegated:!0}))}async#a(e,t){let n;for(let r=0;r<16;r++)try{return await t()}catch(t){if(n=t,!(r<15&&e&&t instanceof R))throw t;await Gt(2e3)}throw n}async delegatedBatchDecryptHandlesAs({encryptedInputs:e,delegatorAddress:t,delegateAddress:n,accountAddress:r,maxConcurrency:i=5,waitForPropagation:a=!0}){let o=e.map(e=>({encryptedValue:e.encryptedValue,contractAddress:A(e.contractAddress)}));if(o.length===0)return{items:o};let s=A(r);try{let e=await this.delegatedUserDecrypt(o.map(({encryptedValue:e,contractAddress:t})=>({encryptedValue:e,contractAddress:t})),t,n,s,{waitForPropagation:a});for(let t of o)this.#c(t,e);return{items:o}}catch(e){if(Le(e))throw e;if(o.length===1){let[n=this.#u()]=o;return n.error=this.#l(e,`Failed to decrypt delegated encrypted values`,{isDelegated:!0,contractAddress:n.contractAddress,account:A(t)}),{items:o}}}let c=!1;return await je(o.map(e=>async()=>{if(!c)try{let r=await this.delegatedUserDecrypt([{encryptedValue:e.encryptedValue,contractAddress:e.contractAddress}],t,n,s,{waitForPropagation:!1});this.#c(e,r)}catch(n){if(Le(n))throw c=!0,n;e.error=this.#l(n,`Failed to decrypt delegated encrypted values`,{isDelegated:!0,contractAddress:e.contractAddress,account:A(t)})}}),i),{items:o}}async#o(e,t){if(e.length===0)return{};let r=e.map(e=>({encryptedValue:e.encryptedValue,contractAddress:A(e.contractAddress)})),i={},a=[];for(let e of r)v(e.encryptedValue)?i[e.encryptedValue]=0n:a.push(e);if(a.length===0)return i;let o=Array.from(new Set(r.map(e=>e.contractAddress))),s=Array.from(new Set(a.map(e=>e.contractAddress)));if(t.validate)try{await t.validate(s)}catch(e){throw Xe(e)?this.#s(e,`the delegation pre-check`):e}let c=[];for(let e of a){let n=await this.#e.get(t.requesterAddress,e.contractAddress,e.encryptedValue);n===null?c.push(e):i[e.encryptedValue]=n}if(c.length===0)return i;let l=await t.resolveCredentials(o),u=new Map;for(let e of c){let t=u.get(e.contractAddress);t?t.push(e.encryptedValue):u.set(e.contractAddress,[e.encryptedValue])}let d=Date.now(),f=c.map(e=>e.encryptedValue);try{this.#i({type:b.DecryptStart,encryptedValues:f}),await je([...u.entries()].map(([e,n])=>async()=>{let r;try{r=await t.decryptContract({credentials:l,contractAddress:e,encryptedValues:n})}catch(n){throw z(n,t.errorMessage,{isDelegated:t.delegated,contractAddress:e,account:t.aclActorAddress})}for(let[n,a]of Object.entries(r))i[n]=a,await this.#e.set(t.requesterAddress,e,n,a)}),5);let e={};for(let t of f){let n=i[t];n!==void 0&&(e[t]=n)}return this.#i({type:b.DecryptEnd,durationMs:Date.now()-d,encryptedValues:f,result:e}),i}catch(e){let r=e instanceof n&&e.cause instanceof Error?e.cause:e;throw this.#i({type:b.DecryptError,error:T(r),durationMs:Date.now()-d,encryptedValues:f}),z(e,t.errorMessage,{isDelegated:t.delegated})}}#s(e,t){return new _(`RPC provider rate-limited ${t}; retry with backoff.`,{cause:e,retryAfter:E(e)})}#c(e,t){let n=t[e.encryptedValue];if(n===void 0){e.error=new g(`Batch delegated decryption returned no value for encrypted value ${e.encryptedValue} on contract ${e.contractAddress}`);return}e.value=n}#l(e,t,r){return e instanceof n?e:z(e,t,r)}#u(){throw new g(`Batch delegated decryption invariant failed: missing item`)}async#d(e,{delegatorAddress:t,delegateAddress:n}){let r=await this.#n.findInactiveDelegations(e,t,n);if(r.size!==0)for(let e of r.values())throw e}};function qt(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}const B={AlreadyDelegatedOrRevokedInSameBlock:e=>new Ot(`Only one delegate/revoke per (delegator, delegate, contract) per block. Wait for the next block before retrying.`,{cause:e}),SenderCannotBeContractAddress:e=>new kt(`The contract address cannot be the caller address.`,{cause:e}),EnforcedPause:e=>new At(`The ACL contract is paused. Delegation operations are temporarily disabled.`,{cause:e}),SenderCannotBeDelegate:e=>new M(`Cannot delegate to yourself (delegate === msg.sender).`,{cause:e}),DelegateCannotBeContractAddress:e=>new I(`Delegate address cannot be the same as the contract address.`,{cause:e}),ExpirationDateBeforeOneHour:e=>new L(`Expiration date must be at least 1 hour in the future.`,{cause:e}),ExpirationDateAlreadySetToSameValue:e=>new F(`The new expiration date is the same as the current one.`,{cause:e}),NotDelegatedYet:e=>new N(`Cannot revoke: no active delegation exists.`,{cause:e})};function Jt(e){return e in B}function Yt(e,t){let n=qt(e);if(n&&Jt(n))return B[n](t);let r=e instanceof Error?e.message:String(e);for(let[e,n]of Object.entries(B))if(r.includes(e))return n(t);return null}var Xt=class{#e;#t;#n;#r;constructor({provider:e,relayer:t,emitEvent:n=()=>{},logger:r}){this.#e=e,this.#t=t,this.#r=r,this.#n=n}async delegateDecryption(e,{contractAddress:t,delegateAddress:n,delegatorAddress:r,expirationDate:i}){if(i&&i.getTime()<Date.now()+36e5)throw new L(`Expiration date must be at least 1 hour in the future`);let a=A(t),o=A(n),s=A(r);if(o===s)throw new M(`Cannot delegate to yourself (delegate === msg.sender).`);if(o===a)throw new I(`Delegate address cannot be the same as the contract address (${a}).`);let c=await this.#t.getAclAddress(),l=i?BigInt(Math.floor(i.getTime()/1e3)):y,u;try{u=await this.getDelegationExpiry({contractAddress:a,delegatorAddress:s,delegateAddress:o})}catch(e){this.#r.warn(`delegateDecryption: pre-flight expiry check failed`,{error:e}),u=-1n}if(u===l)throw new F(`The new expiration date (${l}) is the same as the current one. No on-chain change needed.`);return this.#i({operation:`delegateDecryption`,signer:e,contractAddress:t,config:Ve(c,o,a,l)})}async revokeDelegation(e,{contractAddress:t,delegateAddress:n,delegatorAddress:r}){let i=A(t),a=A(n),o=A(r),s=await this.#t.getAclAddress(),c;try{c=await this.getDelegationExpiry({contractAddress:i,delegatorAddress:o,delegateAddress:a})}catch(e){this.#r.warn(`revokeDelegation: pre-flight expiry check failed`,{error:e}),c=1n}if(c===0n)throw new N(`No active delegation found for delegate ${a} on contract ${i}.`);return this.#i({operation:`revokeDelegation`,signer:e,contractAddress:t,config:ze(s,a,i)})}async isDelegated(e){let t=await this.getDelegationExpiry(e);return t===0n?!1:t===y?!0:t>await this.#e.getBlockTimestamp()}async getDelegationExpiry({contractAddress:e,delegatorAddress:t,delegateAddress:n}){let r=await this.#t.getAclAddress();return this.#e.readContract(Ne(r,A(t),A(n),A(e)))}async#i({operation:e,signer:t,contractAddress:n,config:r}){try{return await Re({operation:e,signer:t,provider:this.#e,config:r,emit:e=>this.#n(e,n),logger:this.#r})}catch(e){throw this.#a(e),e}}#a(e){if(!(e instanceof C))return;let t=Yt(e.cause??e,e);if(t)throw t}async findInactiveDelegations(e,t,n){let r=new Map;return await Promise.all(e.map(async e=>{try{await this.assertDelegationActive(e,t,n)}catch(t){if(t instanceof N||t instanceof P){let n=A(e);r.set(n,t);return}throw t}})),r}async assertDelegationActive(e,t,n){let r=A(e),i=A(t),a=A(n),o=await this.getDelegationExpiry({contractAddress:r,delegatorAddress:i,delegateAddress:a});if(o===0n)throw new N(`No active delegation from ${i} to ${a} for ${r}`);if(o!==y&&o<=await this.#e.getBlockTimestamp())throw new P(`Delegation from ${i} to ${a} for ${r} has expired`)}},Zt=class{#e;#t;constructor({relayer:e,emitEvent:t}){this.#e=e,this.#t=t}async encrypt(e){let t=Date.now();try{this.#t({type:b.EncryptStart},e.contractAddress);let n=await this.#e.encrypt(e);return this.#t({type:b.EncryptEnd,durationMs:Date.now()-t},e.contractAddress),n}catch(n){throw this.#t({type:b.EncryptError,error:T(n),durationMs:Date.now()-t},e.contractAddress),jt(n,`Encryption failed`)}}},Qt=class{#e;#t;#n;#r;#i;#a=new Set;#o;constructor(e){this.#e=e.signer,this.#t=e.relayer,this.#n=e.cachingService,this.#r=e.credentialService,this.#i=e.logger,this.#e&&(this.#o=this.#e.walletAccount.subscribe(e=>{this.#s(e).catch(e=>{this.#i.warn(`wallet account handler failed`,{error:e})})}))}onWalletAccountChange(e){return this.#a.add(e),()=>{this.#a.delete(e)}}dispose(){this.#o?.(),this.#o=void 0,this.#a.clear()}async#s(e){let t=e.previous,n=e.next,r=n?.chainId;r!==void 0&&await d(`switch relayer chain`,()=>this.#t.switchChain(r),this.#i);let i=this.#r;i&&await d(`credential wallet account change`,()=>i.handleWalletAccountChange(t,n),this.#i),t&&await d(`clear decrypt cache`,()=>this.#n.clearForRequester(t.address),this.#i),await Promise.all(Array.from(this.#a,t=>d(`wallet account listener`,()=>t(e),this.#i)))}};function V(e){return St(Ct(e))}const H={ConfidentialTransfer:V(`ConfidentialTransfer(address,address,bytes32)`),Wrap:V(`Wrap(address,uint256,bytes32)`),UnwrapRequested:V(`UnwrapRequested(address,bytes32,bytes32)`),UnwrapFinalized:V(`UnwrapFinalized(address,bytes32,bytes32,uint64)`)};function U(e){return A(k(e.slice(-40)))}function W(e){return e}function G(e,t){let n=2+t*64,r=e.slice(n,n+64);return r.length===64?r:r.padEnd(64,`0`)}function $t(e,t){return A(k(G(e,t).slice(-40)))}function K(e,t){return BigInt(`0x`+G(e,t))}function q(e,t){return k(G(e,t))}function en(e){return e.topics[0]!==H.ConfidentialTransfer||e.topics.length<4?null:{eventName:`ConfidentialTransfer`,from:U(e.topics[1]),to:U(e.topics[2]),encryptedAmount:W(e.topics[3])}}function J(e){return e.topics[0]!==H.Wrap||e.topics.length<2?null:{eventName:`Wrap`,to:U(e.topics[1]),roundedAmount:K(e.data,0),encryptedWrappedAmount:q(e.data,1)}}function Y(e){return e.topics[0]!==H.UnwrapRequested||e.topics.length<3?null:{eventName:`UnwrapRequested`,receiver:U(e.topics[1]),unwrapRequestId:W(e.topics[2]),encryptedAmount:q(e.data,0)}}function tn(e){return e.topics[0]!==H.UnwrapFinalized||e.topics.length<3?null:{eventName:`UnwrapFinalized`,receiver:U(e.topics[1]),unwrapRequestId:W(e.topics[2]),encryptedAmount:q(e.data,0),cleartextAmount:K(e.data,1)}}function nn(e){return en(e)??J(e)??Y(e)??tn(e)}function rn(e){let t=[];for(let n of e){let e=nn(n);e&&t.push(e)}return t}function an(e){for(let t of e){let e=Y(t);if(e)return e}return null}function on(e){for(let t of e){let e=J(t);if(e)return e}return null}const sn=[H.ConfidentialTransfer,H.Wrap,H.UnwrapRequested,H.UnwrapFinalized],X={DelegatedForUserDecryption:V(`DelegatedForUserDecryption(address,address,address,uint64,uint64,uint64)`),RevokedDelegationForUserDecryption:V(`RevokedDelegationForUserDecryption(address,address,address,uint64,uint64)`)};function Z(e){return e.topics[0]!==X.DelegatedForUserDecryption||e.topics.length<3?null:{eventName:`DelegatedForUserDecryption`,delegator:U(e.topics[1]),delegate:U(e.topics[2]),contractAddress:$t(e.data,0),delegationCounter:K(e.data,1),oldExpirationDate:K(e.data,2),newExpirationDate:K(e.data,3)}}function Q(e){return e.topics[0]!==X.RevokedDelegationForUserDecryption||e.topics.length<3?null:{eventName:`RevokedDelegationForUserDecryption`,delegator:U(e.topics[1]),delegate:U(e.topics[2]),contractAddress:$t(e.data,0),delegationCounter:K(e.data,1),oldExpirationDate:K(e.data,2)}}function cn(e){return Z(e)??Q(e)}function ln(e){let t=[];for(let n of e){let e=cn(n);e&&t.push(e)}return t}function un(e){for(let t of e){let e=Z(t);if(e)return e}return null}function dn(e){for(let t of e){let e=Q(t);if(e)return e}return null}const fn=[X.DelegatedForUserDecryption,X.RevokedDelegationForUserDecryption];function $(e){return`zama:pending-unshield:${lt(e)}`}const pn=j.union([j.pipe(D,j.transform(e=>({unwrapTxHash:e}))),j.pipe(j.object({version:j.literal(1),unwrapTxHash:D,unwrapRequestId:j.optional(D)}),j.transform(({unwrapTxHash:e,unwrapRequestId:t})=>({unwrapTxHash:e,unwrapRequestId:t})))]);async function mn(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 hn(e,t){return(await gn(e,t))?.unwrapTxHash??null}async function gn(e,t){let n=$(t),r=await e.get(n);if(r==null)return null;let i=pn.safeParse(r);return i.success?i.data:(await e.delete(n),null)}async function _n(e,t){await e.delete($(t))}var vn=class extends S{#e;#t=null;#n=null;#r(e){try{return Ye(this.sdk.signer,`WrappedToken.sdk.signer`),this.sdk.signer}catch(t){throw new re(e,{cause:t})}}async underlying(){return this.#o()}async isPayable(){if(this.#n!==null)return this.#n;try{let e=await this.#o();this.#n=await this.sdk.provider.readContract(Se(e))}catch{this.#n=!1}return this.#n}async allowance(e){let t=await this.#o();return this.sdk.provider.readContract(m(t,A(e),this.address))}async shield(e,t){let r=await x(`shield`,this.sdk.signer,this.sdk.provider),i=await this.isPayable(),a=await this.#o(),o=A(r.address),s;try{s=await this.sdk.provider.readContract(le(a,o))}catch(e){throw e instanceof n?e:new Fe(`Could not read ERC-20 balance for shield validation (token: ${a})`,{cause:T(e)})}if(s<e)throw new He(`Insufficient ERC-20 balance: requested ${e}, available ${s} (token: ${a})`,{requested:e,available:s,token:a});return i?this.#i(e,a,o,t):this.#a(e,o,t)}async#i(e,t,n,r){this.#r(`shield`);let i=r?.to?A(r.to):n,a=i===n?`0x`:i;return this.submitTransaction({operation:`shield:transferAndCall`,config:Nt(t,this.address,e,a),onSubmitted:r?.onShieldSubmitted})}async#a(e,t,n){this.#r(`shield`);let r=n?.approvalStrategy??`exact`;r!==`skip`&&await this.#c(e,r===`max`,n);let i=n?.to?A(n.to):t;return this.submitTransaction({operation:`shield:approveAndWrap`,config:u(this.address,i,e),onSubmitted:n?.onShieldSubmitted})}async approveUnderlying(e){this.#r(`approveUnderlying`);let t=await x(`approveUnderlying`,this.sdk.signer,this.sdk.provider),n=await this.#o(),r=A(t.address),i=e??2n**256n-1n;return i>0n&&await this.sdk.provider.readContract(m(n,r,this.address))>0n&&await this.submitTransaction({operation:`approveUnderlying:reset`,config:p(n,this.address,0n)}),this.submitTransaction({operation:`approveUnderlying`,config:p(n,this.address,i)})}async unshield(e,t){let{skipBalanceCheck:n=!1,onUnwrapSubmitted:r,onFinalizing:i,onFinalizeSubmitted:a}=t??{};n||await this.assertConfidentialBalance(e);let o={onFinalizing:i,onFinalizeSubmitted:a},s=crypto.randomUUID(),c=await this.unwrap(e);return d(`unshield: onUnwrapSubmitted`,()=>r?.(c.txHash),this.sdk.logger),this.#s(c.txHash,s,o)}async unshieldAll(e){let t=crypto.randomUUID(),n=await this.unwrapAll();return d(`unshieldAll: onUnwrapSubmitted`,()=>e?.onUnwrapSubmitted?.(n.txHash),this.sdk.logger),this.#s(n.txHash,t,e)}async resumeUnshield(e,t){return this.#s(e,crypto.randomUUID(),t)}async getPendingUnshield(){return hn(this.sdk.storage,this.address)}async unwrap(e){this.#r(`unwrap`);let t=A((await x(`unwrap`,this.sdk.signer,this.sdk.provider)).address),{encryptedValues:n,inputProof:r}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:t}),[i]=n;if(!i)throw new h(`Encryption returned no encrypted values`);return this.submitTransaction({operation:`unwrap`,config:ne(this.address,t,t,i,r)})}async unwrapAll(){this.#r(`unwrapAll`);let e=A((await x(`unwrapAll`,this.sdk.signer,this.sdk.provider)).address),t=await this.readConfidentialBalanceOf(e);if(v(t))throw new g(`Cannot unshield: balance is zero`);return this.submitTransaction({operation:`unwrapAll`,config:c(this.address,e,e,t)})}async finalizeUnwrap(e){this.#r(`finalizeUnwrap`),await Me(`finalizeUnwrap`,this.sdk.signer,this.sdk.provider);let t=await this.sdk.decryption.decryptPublicValues([e]),n=t.clearValues[e];return Ze(n,`finalizeUnwrap: clearValue`),this.submitTransaction({operation:`finalizeUnwrap`,config:te(this.address,e,n,t.decryptionProof)})}async#o(){return this.#e===void 0?(this.#t||=this.sdk.provider.readContract(ee(this.address)).then(e=>(this.#e=e,this.#t=null,e)).catch(e=>{throw this.#t=null,e}),this.#t):this.#e}async#s(e,t,r){this.emit({type:b.UnshieldPhase1Submitted,txHash:e,operationId:t}),await d(`unshield: savePendingUnshield`,()=>mn(this.sdk.storage,this.address,e),this.sdk.logger);let i;try{i=await this.sdk.provider.waitForTransactionReceipt(e)}catch(e){throw e instanceof n?e:new C(`Failed to get unshield receipt`,{cause:e})}let a=an(i.logs);if(!a)throw new C(`No UnwrapRequested event found in unshield receipt`);this.emit({type:b.UnshieldPhase2Started,operationId:t}),d(`unshield: onFinalizing`,()=>r?.onFinalizing?.(),this.sdk.logger);let o=await this.finalizeUnwrap(a.unwrapRequestId??a.encryptedAmount);return this.emit({type:b.UnshieldPhase2Submitted,txHash:o.txHash,operationId:t}),d(`unshield: onFinalizeSubmitted`,()=>r?.onFinalizeSubmitted?.(o.txHash),this.sdk.logger),await d(`unshield: clearPendingUnshield`,()=>_n(this.sdk.storage,this.address),this.sdk.logger),o}async#c(e,t,n){this.#r(`approveUnderlying`);let r=await this.#o(),i=A((await x(`approveUnderlying`,this.sdk.signer,this.sdk.provider)).address),a=await this.sdk.provider.readContract(m(r,i,this.address));if(a>=e)return;a>0n&&await this.submitTransaction({operation:`approveUnderlying:reset`,config:p(r,this.address,0n)});let o=t?2n**256n-1n:e;await this.submitTransaction({operation:`approveUnderlying`,config:p(r,this.address,o),onSubmitted:n?.onApprovalSubmitted})}},yn=class{relayer;provider;signer;storage;registry;permits;delegations;decryption;#e;#t;#n;#r;#i;#a;#o;#s;#c;#l;constructor(e){this.relayer=e.relayer,this.provider=e.provider,this.signer=e.signer,this.storage=e.storage,this.#n=e.onEvent??function(){},this.#r=e.logger,this.#i=new Bt(e.storage,this.#r),this.#l=new Xt({provider:this.provider,relayer:this.relayer,emitEvent:this.emitEvent.bind(this),logger:this.#r});let t={};for(let n of e.chains)n.registryAddress&&(t[n.id]=n.registryAddress);this.registry=new O({provider:this.provider,registryAddresses:t,registryTTL:e.registryTTL}),this.#t=t,this.#e=e.registryTTL,e.signer&&(this.#c=new it({relayer:this.relayer,signer:e.signer,transportKeyPairTTL:e.transportKeyPairTTL,permitTTL:e.permitTTL,storage:this.storage,permitStorage:e.permitStorage,logger:this.#r}),this.#s=new Kt({cache:this.#i,credentialService:this.#c,delegationService:this.#l,relayer:this.relayer,emitEvent:this.emitEvent.bind(this)})),this.#o=new Zt({relayer:this.relayer,emitEvent:this.emitEvent.bind(this)}),this.#a=new Qt({signer:e.signer,relayer:this.relayer,cachingService:this.#i,credentialService:this.#c,logger:this.#r}),this.permits=new Lt({signer:this.signer,provider:this.provider,cachingService:this.#i,credentialService:this.#c,logger:this.#r}),this.delegations=new It({signer:this.signer,provider:this.provider,delegationService:this.#l}),this.decryption=new Ft({signer:this.signer,provider:this.provider,relayer:this.relayer,decryptionService:this.#s})}onWalletAccountChange(e){return this.#a.onWalletAccountChange(e)}get logger(){return this.#r}emitEvent(e,t){try{this.#n({...e,tokenAddress:t,timestamp:Date.now()})}catch(t){this.#r.warn(`${e.type} event listener silently failed`,{error:t})}}createWrappersRegistry(e){return new O({provider:this.provider,registryAddresses:{...this.#t,...e},registryTTL:this.#e})}async encrypt(e){return this.#o.encrypt(e)}createToken(e){return new S(this,e)}createWrappedToken(e){return new vn(this,e)}dispose(){this.#a.dispose()}terminate(){this.dispose(),this.relayer.terminate(),this.signer?.dispose?.()}[Symbol.dispose](){this.terminate()}},bn=class{async get(e){return(await chrome.storage.session.get(e))[e]??null}async set(e,t){await chrome.storage.session.set({[e]:t})}async delete(e){await chrome.storage.session.remove(e)}};const xn=new bn;export{fn as ACL_TOPICS,At as AclPausedError,X as AclTopics,Ie as BalanceCheckUnavailableError,ct as BaseSigner,Ue as ChainMismatchError,bn as ChromeSessionStorage,r as ConfigurationError,Ft as Decryption,g as DecryptionFailedError,et as DefaultRegistryAddresses,kt as DelegationContractIsSelfError,Ot as DelegationCooldownError,I as DelegationDelegateEqualsContractError,L as DelegationExpirationTooSoonError,P as DelegationExpiredError,F as DelegationExpiryUnchangedError,N as DelegationNotFoundError,R as DelegationNotPropagatedError,M as DelegationSelfNotAllowedError,It as Delegations,fe as ERC1363_INTERFACE_ID,Fe as ERC20ReadFailedError,ve as ERC7984_INTERFACE_ID,Ee as ERC7984_WRAPPER_INTERFACE_ID,h as EncryptionFailedError,dt as IndexedDBStorage,Ae as InsufficientConfidentialBalanceError,He as InsufficientERC20BalanceError,Et as InvalidTransportKeyPairError,pt as MemoryStorage,at as MutableWalletAccountStore,Dt as NoCiphertextError,w as NotEntitledError,Lt as Permits,t as RelayerRequestFailedError,_ as RpcRateLimitError,re as SignerNotConfiguredError,ke as SignerRequiredError,oe as SigningFailedError,ce as SigningRejectedError,sn as TOKEN_TOPICS,S as Token,H as Topics,C as TransactionRevertedError,Tt as TransportKeyPairExpiredError,a as WalletAccountNotReadyError,se as WalletNotConnectedError,Ge as WorkerRecycledError,We as WorkerTimeoutError,vn as WrappedToken,O as WrappersRegistry,Be as ZERO_ENCRYPTED_VALUE,n as ZamaError,e as ZamaErrorCode,yn as ZamaSDK,b as ZamaSDKEvents,m as allowanceContract,xt as anvil,p as approveContract,le as balanceOfContract,_t as bscTestnet,yt as chains,xn as chromeSessionStorage,$e as cleartext,ie as confidentialBalanceOfContract,o as confidentialTotalSupplyContract,ae as confidentialTransferContract,s as confidentialTransferFromContract,Pt as createConfig,ot as createWalletAccountStore,De as decimalsContract,cn as decodeAclEvent,ln as decodeAclEvents,en as decodeConfidentialTransfer,Z as decodeDelegatedForUserDecryption,nn as decodeOnChainEvent,rn as decodeOnChainEvents,Q as decodeRevokedDelegationForUserDecryption,tn as decodeUnwrapFinalized,Y as decodeUnwrapRequested,J as decodeWrap,Ve as delegateForUserDecryptionContract,te as finalizeUnwrapContract,un as findDelegatedForUserDecryption,dn as findRevokedDelegationForUserDecryption,an as findUnwrapRequested,on as findWrap,Te as getConfidentialTokenAddressContract,Ne as getDelegationExpiryContract,be as getTokenAddressContract,Ce as getTokenPairContract,he as getTokenPairsContract,ue as getTokenPairsLengthContract,xe as getTokenPairsSliceContract,gt as hardhat,mt as hoodi,ut as indexedDBStorage,_e as inferredTotalSupplyContract,vt as ingenTestnet,pe as isConfidentialTokenContract,we as isConfidentialTokenValidContract,me as isConfidentialWrapperContract,v as isEncryptedValueZero,Pe as isHandleDelegatedContract,i as isOperatorContract,bt as mainnet,wt as matchZamaError,ft as memoryStorage,de as nameContract,ge as rateContract,st as resolveChainRelayers,tt as resolveStorage,ze as revokeDelegationContract,ht as sepolia,f as setOperatorContract,ye as supportsInterfaceContract,Oe as symbolContract,Nt as transferAndCallContract,ee as underlyingContract,ne as unwrapContract,c as unwrapFromBalanceContract,u as wrapContract};
|
|
1
|
+
import{i as e,n as t,r as n,t as r}from"./relayer-BYq9bLh8.js";import{A as i,B as a,C as o,D as s,F as c,H as l,I as u,L as d,M as f,N as p,O as ee,P as te,R as ne,S as re,T as ie,U as ae,V as oe,W as se,_ as ce,a as le,b as ue,c as de,d as fe,f as pe,g as m,h,i as me,j as he,k as ge,l as _e,m as ve,n as ye,o as be,p as xe,r as Se,s as Ce,t as we,u as Te,v as Ee,x as De,z as Oe}from"./wrappers-registry-xZWzyAi4.js";import{A as ke,C as Ae,D as je,E as g,F as _,M as v,N as y,O as Me,P as b,S as Ne,T as Pe,_ as Fe,a as Ie,c as Le,d as Re,f as ze,g as Be,h as Ve,i as x,j as He,k as Ue,l as S,m as We,n as Ge,o as C,p as Ke,r as qe,s as Je,t as w,u as T,v as E,w as Ye,x as Xe,y as Ze}from"./token-CmHTAAWW.js";import{t as Qe}from"./cleartext-BfXTVQu-.js";import{a as $e,c as et,d as tt,f as nt,g as rt,h as it,i as at,l as ot,m as st,n as ct,o as D,p as lt,r as ut,s as dt,t as ft,u as O}from"./base-signer-CI-FYai2.js";import{a as pt,c as mt,i as ht,n as gt,o as _t,r as vt,s as yt,t as bt}from"./chains-CLv9HEJ_.js";import{getAddress as k,keccak256 as xt,toBytes as St}from"viem";import{z as A}from"zod/mini";function Ct(e,t){if(e instanceof n){let n=t[e.code];if(n)return n(e)}return t._?.(e)}var wt=class extends n{constructor(t,n){super(e.TransportKeyPairExpired,t,n),this.name=`TransportKeyPairExpiredError`}},Tt=class extends n{constructor(t,n){super(e.InvalidTransportKeyPair,t,n),this.name=`InvalidTransportKeyPairError`}},j=class extends n{constructor(t,n){super(e.NoCiphertext,t,n),this.name=`NoCiphertextError`}},M=class extends n{encryptedValue;contractAddress;account;constructor(t,n){super(e.NotEntitled,`Account ${t.account} is not entitled to decrypt encrypted value ${t.encryptedValue} on contract ${t.contractAddress}. This is not a transient failure — the account needs an on-chain ACL grant before it can decrypt this encrypted value.`,n),this.name=`NotEntitledError`,this.encryptedValue=t.encryptedValue,this.contractAddress=t.contractAddress,this.account=t.account}},N=class extends n{constructor(t,n){super(e.DelegationSelfNotAllowed,t,n),this.name=`DelegationSelfNotAllowedError`}},Et=class extends n{constructor(t,n){super(e.DelegationCooldown,t,n),this.name=`DelegationCooldownError`}},P=class extends n{constructor(t,n){super(e.DelegationNotFound,t,n),this.name=`DelegationNotFoundError`}},F=class extends n{constructor(t,n){super(e.DelegationExpired,t,n),this.name=`DelegationExpiredError`}},I=class extends n{constructor(t,n){super(e.DelegationExpiryUnchanged,t,n),this.name=`DelegationExpiryUnchangedError`}},L=class extends n{constructor(t,n){super(e.DelegationDelegateEqualsContract,t,n),this.name=`DelegationDelegateEqualsContractError`}},Dt=class extends n{constructor(t,n){super(e.DelegationContractIsSelf,t,n),this.name=`DelegationContractIsSelfError`}},Ot=class extends n{constructor(t,n){super(e.AclPaused,t,n),this.name=`AclPausedError`}},R=class extends n{constructor(t,n){super(e.DelegationExpirationTooSoon,t,n),this.name=`DelegationExpirationTooSoonError`}},z=class extends n{constructor(t,n){super(e.DelegationNotPropagated,t,n),this.name=`DelegationNotPropagatedError`}};function B(e,n,r={}){if(e instanceof b||e instanceof j||e instanceof t||e instanceof z||e instanceof se||e instanceof ae||e instanceof M||e instanceof v)return e;let i=e instanceof Error?e.message:n;if(e instanceof Error&&Xe(e.message))return r.isDelegated?new z(`Delegated decryption was denied by the on-chain ACL check. This is most commonly caused by the delegation not having propagated yet, or by the RPC node serving a stale block. Propagation usually completes within ~10 blocks (a few seconds) and the SDK retries across that window; seeing this means it did not sync in time. Retry shortly (and prefer a fresh, low-lag RPC endpoint). If it persists, the delegator may genuinely lack the on-chain ACL grant.`,{cause:e}):new M({encryptedValue:Pe(e.message)??``,contractAddress:r.contractAddress??``,account:r.account??``},{cause:e});if(Ze(e))return new v(i,{cause:e,retryAfter:E(e)});let a=Fe(e);return a===void 0&&Ye(e)?new v(i,{cause:e,retryAfter:E(e)}):a===400?new j(e instanceof Error?e.message:`No ciphertext for this account`,{cause:e}):r.isDelegated&&a===500?new z(`Delegated decryption failed with a server error. This is most commonly caused by the delegation not having propagated to the gateway yet. Cross-chain sync usually completes within ~10 blocks (a few seconds) and the SDK retries across that window; seeing this means it did not sync in time — retry shortly. If the error persists, the gateway or relayer may be experiencing an unrelated issue.`,{cause:e}):Ne(e)||a!==void 0?new t(i,a,{cause:e,retryAfter:E(e),retryable:Ae(e)||void 0}):new b(n,{cause:e})}function kt(e,r){if(e instanceof n)return e;let i=Fe(e),a=Ae(e);return i!==void 0||Ne(e)?new t(e instanceof Error?e.message:r,i,{cause:e,retryAfter:E(e),retryable:a||void 0}):new _(r,{cause:e})}const At=[{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 jt(e,t,n,r=`0x`){return{address:e,abi:At,functionName:`transferAndCall`,args:[t,n,r]}}function Mt(e){return at(e.signer,e.provider,e)}function V(e){return e.startsWith(`0x`)?e:`0x${e}`}var Nt=class{#e;#t;#n;#r;constructor(e){this.#e=e.signer,this.#t=e.provider,this.#n=e.router,this.#r=e.decryptionService}#i(e){return l(this.#r,e)}async decryptValues(e,t){let n=this.#i(`decryptValues`),r=await S(`decryptValues`,this.#e,this.#t);return n.decryptValues(e,r.address,t)}async delegatedDecryptValues(e,t,n=t,r){let i=this.#i(`delegatedDecryptValues`),a=await S(`delegatedDecryptValues`,this.#e,this.#t);return i.delegatedDecryptValues(e,t,a.address,n,r)}async decryptPublicValues(e,t){if(e.length===0)return{clearValues:{},decryptionProof:`0x`,abiEncodedClearValues:`0x`};try{let n=await this.#n.relayer.decryptPublicValuesWithSignatures({encryptedValues:e,options:t}),r={};return n.checkSignaturesArgs.handlesList.forEach((e,t)=>{Le(n.clearValues[t],`result.clearValues[${t}]`),r[e]=n.clearValues[t].value}),{clearValues:r,abiEncodedClearValues:n.checkSignaturesArgs.abiEncodedCleartexts,decryptionProof:n.checkSignaturesArgs.decryptionProof}}catch(e){throw B(e,`Public decryption failed`)}}async delegatedBatchDecryptValues({encryptedInputs:e,delegatorAddress:t,accountAddress:n=t,maxConcurrency:r,waitForPropagation:i}){let a=this.#i(`delegatedBatchDecryptValues`),o=await S(`delegatedBatchDecryptValues`,this.#e,this.#t);return a.delegatedBatchDecryptHandlesAs({encryptedInputs:e,delegatorAddress:t,delegateAddress:o.address,accountAddress:n,maxConcurrency:r,waitForPropagation:i})}},Pt=class{#e;#t;#n;constructor(e){this.#e=e.signer,this.#t=e.provider,this.#n=e.delegationService}#r(e){return l(this.#e,e)}async delegateDecryption({contractAddress:e,delegateAddress:t,expirationDate:n}){let r=this.#r(`delegateDecryption`),i=await S(`delegateDecryption`,this.#e,this.#t);return this.#n.delegateDecryption(r,{contractAddress:e,delegateAddress:t,delegatorAddress:i.address,expirationDate:n})}async revokeDelegation({contractAddress:e,delegateAddress:t}){let n=this.#r(`revokeDelegation`),r=await S(`revokeDelegation`,this.#e,this.#t);return this.#n.revokeDelegation(n,{contractAddress:e,delegateAddress:t,delegatorAddress:r.address})}async isActive(e){return this.#n.isDelegated(e)}async getExpiry(e){return this.#n.getDelegationExpiry(e)}},Ft=class{#e;#t;#n;#r;#i;constructor(e){this.#e=e.signer,this.#t=e.provider,this.#n=e.cachingService,this.#r=e.credentialService,this.#i=e.logger}#a(e){return l(this.#r,e)}async grantPermit(e){if(e.length===0)return;let t=this.#a(`grantPermit`);await T(`grantPermit`,this.#e,this.#t),await t.grantPermit(e)}async grantDelegationPermit(e,t){if(t.length===0)return;let n=this.#a(`grantDelegationPermit`);await T(`grantDelegationPermit`,this.#e,this.#t),await n.grantPermit(t,e)}async hasPermit(e){return this.#r?this.#r.hasPermit(e):!1}async hasDelegationPermit(e,t){return this.#r?this.#r.hasPermit(t,e):!1}async warmTransportKeyPair(){let e=this.#r;if(!e)return;let t=this.#e?.walletAccount.getSnapshot();t&&await e.warmTransportKeyPair(t.address)}async revokePermits(e){let t=this.#a(`revokePermits`),n=k((await S(`revokePermits`,this.#e,this.#t)).address);try{await t.revokePermits(e)}finally{await d(`clear decrypt cache`,()=>this.#n.clearForRequester(n),this.#i)}}async clear(){let e=this.#a(`clear`),t=k((await S(`clear`,this.#e,this.#t)).address);try{await e.clearCredentials()}finally{await d(`clear decrypt cache`,()=>this.#n.clearForRequester(t),this.#i)}}};const It=A.union([A.bigint(),A.boolean(),ot]),Lt=A.array(A.string());var Rt=class{#e;#t;#n=`zama:decrypt`;#r=`${this.#n}:keys`;#i=Promise.resolve();constructor(e,t){this.#e=e,this.#t=t}async get(e,t,n){try{let r=this.#c(e,t,n),i=await this.#e.get(r);if(i===null)return null;let a=It.safeParse(i);return a.success?a.data:(await this.delete(e,t,n),null)}catch(e){return this.#t.warn(`CachingService.get failed`,{error:e}),null}}async set(e,t,n,r){try{let i=this.#c(e,t,n);await this.#e.set(i,r),this.#i=this.#i.then(()=>this.#u(i).catch(e=>{this.#t.warn(`CachingService index write failed`,{error:e})})),await this.#i}catch(e){this.#t.warn(`CachingService.set failed`,{error:e})}}async delete(e,t,n){let r=this.#c(e,t,n);this.#i=this.#i.then(()=>this.#a(r).catch(e=>{this.#t.warn(`CachingService.delete failed`,{error:e})})),await this.#i}async clearForRequester(e){this.#i=this.#i.then(()=>this.#o(e).catch(e=>{this.#t.warn(`CachingService.clearForRequester failed`,{error:e})})),await this.#i}async clearAll(){this.#i=this.#i.then(()=>this.#s().catch(e=>{this.#t.warn(`CachingService.clearAll failed`,{error:e})})),await this.#i}async#a(e){await this.#e.delete(e).catch(()=>{});let t=await this.#l(),n=t.filter(t=>t!==e);n.length!==t.length&&await this.#e.set(this.#r,n)}async#o(e){let t=k(e),n=`${this.#n}:${t}:`,r=await this.#l(),i=[],a=[];for(let e of r)e.startsWith(n)?i.push(e):a.push(e);await Promise.all(i.map(e=>this.#e.delete(e).catch(()=>{}))),await this.#e.set(this.#r,a)}async#s(){let e=await this.#l();await Promise.all(e.map(e=>this.#e.delete(e).catch(()=>{}))),await this.#e.delete(this.#r)}#c(e,t,n){return`${this.#n}:${k(e)}:${k(t)}:${n.toLowerCase()}`}async#l(){let e=await this.#e.get(this.#r);if(e===null)return[];let t=Lt.safeParse(e);return t.success?t.data:(await this.#e.delete(this.#r).catch(()=>{}),[])}async#u(e){let t=await this.#l();t.includes(e)||(t.push(e),await this.#e.set(this.#r,t))}};function zt(e,t){let n=Bt(e,t);if(!n)throw new b(`No permit covers contract ${t} after allow()`);return{privateKey:e.keypair.privateKey,publicKey:e.keypair.publicKey,serializedPermit:n.serializedPermit}}function Bt(e,t){let n=et(t);return e.permissions.find(e=>e.contractAddresses.includes(n))}const Vt=e=>new Promise(t=>setTimeout(t,e));var Ht=class{#e;#t;#n;#r;#i;constructor({cache:e,credentialService:t,delegationService:n,router:r,emitEvent:i}){this.#e=e,this.#t=t,this.#n=n,this.#r=r,this.#i=i}async decryptValues(e,t,n){let r=k(t);return this.#s(e,{requesterAddress:r,aclActorAddress:r,resolveCredentials:e=>this.#t.grantPermit(e),decryptContract:({credentials:e,contractAddress:t,encryptedValues:n,options:r})=>this.#o(e,t,n,r),errorMessage:`Failed to decrypt encrypted values`},n)}async delegatedDecryptValues(e,t,n,r,i){let a=k(t),o=k(n);return this.#a(i?.waitForPropagation??!0,()=>this.#s(e,{requesterAddress:k(r),aclActorAddress:a,resolveCredentials:e=>this.#t.grantPermit(e,a),validate:e=>this.#f(e,{delegatorAddress:a,delegateAddress:o}),decryptContract:({credentials:e,contractAddress:t,encryptedValues:n,options:r})=>this.#o(e,t,n,r),errorMessage:`Failed to decrypt delegated encrypted values`,delegated:!0}))}async#a(e,t){let n;for(let r=0;r<16;r++)try{return await t()}catch(t){if(n=t,!(r<15&&e&&t instanceof z))throw t;await Vt(2e3)}throw n}async delegatedBatchDecryptHandlesAs({encryptedInputs:e,delegatorAddress:t,delegateAddress:n,accountAddress:r,maxConcurrency:i=5,waitForPropagation:a=!0}){let o=e.map(e=>({encryptedValue:e.encryptedValue,contractAddress:k(e.contractAddress)}));if(o.length===0)return{items:o};let s=k(r);try{let e=await this.delegatedDecryptValues(o.map(({encryptedValue:e,contractAddress:t})=>({encryptedValue:e,contractAddress:t})),t,n,s,{waitForPropagation:a});for(let t of o)this.#l(t,e);return{items:o}}catch(e){if(Be(e))throw e;if(o.length===1){let[n=this.#d()]=o;return n.error=this.#u(e,`Failed to decrypt delegated encrypted values`,{isDelegated:!0,contractAddress:n.contractAddress,account:k(t)}),{items:o}}}let c=!1;return await Ie(o.map(e=>async()=>{if(!c)try{let r=await this.delegatedDecryptValues([{encryptedValue:e.encryptedValue,contractAddress:e.contractAddress}],t,n,s,{waitForPropagation:!1});this.#l(e,r)}catch(n){if(Be(n))throw c=!0,n;e.error=this.#u(n,`Failed to decrypt delegated encrypted values`,{isDelegated:!0,contractAddress:e.contractAddress,account:k(t)})}}),i),{items:o}}async#o(e,t,n,r){let i=zt(e,t),a=await this.#r.relayer.parseTransportKeyPair({publicKey:i.publicKey,privateKey:i.privateKey}),o=await this.#r.relayer.parseSignedDecryptionPermit({transportKeyPair:a,serializedPermit:i.serializedPermit});return this.#r.relayer.decryptValues({transportKeyPair:a,signedPermit:o,encryptedValues:n,contractAddress:t,options:r})}async#s(e,t,r){if(e.length===0)return{};let i=e.map(e=>({encryptedValue:e.encryptedValue,contractAddress:k(e.contractAddress)})),a={},o=[];for(let e of i)x(e.encryptedValue)?a[e.encryptedValue]=0n:o.push(e);if(o.length===0)return a;let s=Array.from(new Set(i.map(e=>e.contractAddress))),c=Array.from(new Set(o.map(e=>e.contractAddress)));if(t.validate)try{await t.validate(c)}catch(e){throw Ye(e)?this.#c(e,`the delegation pre-check`):e}let l=[];for(let e of o){let n=await this.#e.get(t.requesterAddress,e.contractAddress,e.encryptedValue);n===null?l.push(e):a[e.encryptedValue]=n}if(l.length===0)return a;let u=await t.resolveCredentials(s),d=new Map;for(let e of l){let t=d.get(e.contractAddress);t?t.push(e.encryptedValue):d.set(e.contractAddress,[e.encryptedValue])}let f=Date.now(),p=l.map(e=>e.encryptedValue);try{this.#i({type:C.DecryptStart,encryptedValues:p}),await Ie([...d.entries()].map(([e,n])=>async()=>{let i;try{i=await t.decryptContract({credentials:u,contractAddress:e,encryptedValues:n,options:r})}catch(n){throw B(n,t.errorMessage,{isDelegated:t.delegated,contractAddress:e,account:t.aclActorAddress})}for(let r=0;r<n.length;r++){let o=n[r],s=i[r]?.value;o===void 0||s===void 0||(a[o]=s,await this.#e.set(t.requesterAddress,e,o,s))}let o=n.filter(e=>a[e]===void 0);if(o.length>0)throw new b(`${t.errorMessage}: relayer returned no clear value for ${o.length} of ${n.length} handle(s) on ${e}`,{cause:AggregateError(o.map(t=>new b(`No clear value for handle ${t} on ${e}`)),`${o.length} handle(s) missing a clear value on ${e}`)})}),5);let e={};for(let t of p){let n=a[t];n!==void 0&&(e[t]=n)}return this.#i({type:C.DecryptEnd,durationMs:Date.now()-f,encryptedValues:p,result:e}),a}catch(e){let r=e instanceof n&&e.cause instanceof Error?e.cause:e;throw this.#i({type:C.DecryptError,error:g(r),durationMs:Date.now()-f,encryptedValues:p}),B(e,t.errorMessage,{isDelegated:t.delegated})}}#c(e,t){return new v(`RPC provider rate-limited ${t}; retry with backoff.`,{cause:e,retryAfter:E(e)})}#l(e,t){let n=t[e.encryptedValue];if(n===void 0){e.error=new b(`Batch delegated decryption returned no value for encrypted value ${e.encryptedValue} on contract ${e.contractAddress}`);return}e.value=n}#u(e,t,r){return e instanceof n?e:B(e,t,r)}#d(){throw new b(`Batch delegated decryption invariant failed: missing item`)}async#f(e,{delegatorAddress:t,delegateAddress:n}){let r=await this.#n.findInactiveDelegations(e,t,n);if(r.size!==0)for(let e of r.values())throw e}};function Ut(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}const H={AlreadyDelegatedOrRevokedInSameBlock:e=>new Et(`Only one delegate/revoke per (delegator, delegate, contract) per block. Wait for the next block before retrying.`,{cause:e}),SenderCannotBeContractAddress:e=>new Dt(`The contract address cannot be the caller address.`,{cause:e}),EnforcedPause:e=>new Ot(`The ACL contract is paused. Delegation operations are temporarily disabled.`,{cause:e}),SenderCannotBeDelegate:e=>new N(`Cannot delegate to yourself (delegate === msg.sender).`,{cause:e}),DelegateCannotBeContractAddress:e=>new L(`Delegate address cannot be the same as the contract address.`,{cause:e}),ExpirationDateBeforeOneHour:e=>new R(`Expiration date must be at least 1 hour in the future.`,{cause:e}),ExpirationDateAlreadySetToSameValue:e=>new I(`The new expiration date is the same as the current one.`,{cause:e}),NotDelegatedYet:e=>new P(`Cannot revoke: no active delegation exists.`,{cause:e})};function Wt(e){return e in H}function Gt(e,t){let n=Ut(e);if(n&&Wt(n))return H[n](t);let r=e instanceof Error?e.message:String(e);for(let[e,n]of Object.entries(H))if(r.includes(e))return n(t);return null}var Kt=class{#e;#t;#n;#r;constructor({provider:e,router:t,emitEvent:n=()=>{},logger:r}){this.#t=e,this.#e=t,this.#r=r,this.#n=n}async delegateDecryption(e,{contractAddress:t,delegateAddress:n,delegatorAddress:r,expirationDate:i}){if(i&&i.getTime()<Date.now()+36e5)throw new R(`Expiration date must be at least 1 hour in the future`);let a=k(t),o=k(n),s=k(r);if(o===s)throw new N(`Cannot delegate to yourself (delegate === msg.sender).`);if(o===a)throw new L(`Delegate address cannot be the same as the contract address (${a}).`);let c=this.#e.relayer.chain.aclContractAddress,l=i?BigInt(Math.floor(i.getTime()/1e3)):Re,u;try{u=await this.getDelegationExpiry({contractAddress:a,delegatorAddress:s,delegateAddress:o})}catch(e){this.#r.warn(`delegateDecryption: pre-flight expiry check failed`,{error:e}),u=-1n}if(u===l)throw new I(`The new expiration date (${l}) is the same as the current one. No on-chain change needed.`);return this.#i({operation:`delegateDecryption`,signer:e,contractAddress:t,config:ze(c,o,a,l)})}async revokeDelegation(e,{contractAddress:t,delegateAddress:n,delegatorAddress:r}){let i=k(t),a=k(n),o=k(r),s=this.#e.relayer.chain.aclContractAddress,c;try{c=await this.getDelegationExpiry({contractAddress:i,delegatorAddress:o,delegateAddress:a})}catch(e){this.#r.warn(`revokeDelegation: pre-flight expiry check failed`,{error:e}),c=1n}if(c===0n)throw new P(`No active delegation found for delegate ${a} on contract ${i}.`);return this.#i({operation:`revokeDelegation`,signer:e,contractAddress:t,config:Ve(s,a,i)})}async isDelegated(e){let t=await this.getDelegationExpiry(e);return t===0n?!1:t===Re?!0:t>await this.#t.getBlockTimestamp()}async getDelegationExpiry({contractAddress:e,delegatorAddress:t,delegateAddress:n}){let r=this.#e.relayer.chain.aclContractAddress;return this.#t.readContract(Ke(r,k(t),k(n),k(e)))}async#i({operation:e,signer:t,contractAddress:n,config:r}){try{return await Ge({operation:e,signer:t,provider:this.#t,config:r,emit:e=>this.#n(e,n),logger:this.#r})}catch(e){throw this.#a(e),e}}#a(e){if(!(e instanceof y))return;let t=Gt(e.cause??e,e);if(t)throw t}async findInactiveDelegations(e,t,n){let r=new Map;return await Promise.all(e.map(async e=>{try{await this.assertDelegationActive(e,t,n)}catch(t){if(t instanceof P||t instanceof F){let n=k(e);r.set(n,t);return}throw t}})),r}async assertDelegationActive(e,t,n){let r=k(e),i=k(t),a=k(n),o=await this.getDelegationExpiry({contractAddress:r,delegatorAddress:i,delegateAddress:a});if(o===0n)throw new P(`No active delegation from ${i} to ${a} for ${r}`);if(o!==Re&&o<=await this.#t.getBlockTimestamp())throw new F(`Delegation from ${i} to ${a} for ${r} has expired`)}},qt=class{#e;#t;constructor({router:e,emitEvent:t}){this.#e=e,this.#t=t}async encryptValues(e,t){let n=Date.now(),r=k(e.contractAddress);try{this.#t({type:C.EncryptStart},r);let i=await this.#e.relayer.encryptValues({...e,options:t});return this.#t({type:C.EncryptEnd,durationMs:Date.now()-n},r),i}catch(e){throw this.#t({type:C.EncryptError,error:g(e),durationMs:Date.now()-n},r),kt(e,`Encryption failed`)}}},Jt=class{#e;#t;#n;#r;#i;#a=new Set;#o;constructor(e){this.#e=e.signer,this.#t=e.router,this.#n=e.cachingService,this.#r=e.credentialService,this.#i=e.logger,this.#e&&(this.#o=this.#e.walletAccount.subscribe(e=>{this.#s(e).catch(e=>{this.#i.warn(`wallet account handler failed`,{error:e})})}))}onWalletAccountChange(e){return this.#a.add(e),()=>{this.#a.delete(e)}}dispose(){this.#o?.(),this.#o=void 0,this.#a.clear()}async#s(e){let t=e.previous,n=e.next,r=n?.chainId;r!==void 0&&await d(`switch relayer chain`,()=>this.#t.switchChain(r),this.#i);let i=this.#r;i&&await d(`credential wallet account change`,()=>i.handleWalletAccountChange(t,n),this.#i),t&&await d(`clear decrypt cache`,()=>this.#n.clearForRequester(t.address),this.#i),await Promise.all(Array.from(this.#a,t=>d(`wallet account listener`,()=>t(e),this.#i)))}};function U(e){return xt(St(e))}const W={ConfidentialTransfer:U(`ConfidentialTransfer(address,address,bytes32)`),Wrap:U(`Wrap(address,uint256,bytes32)`),UnwrapRequested:U(`UnwrapRequested(address,bytes32,bytes32)`),UnwrapFinalized:U(`UnwrapFinalized(address,bytes32,bytes32,uint64)`)};function G(e){return k(V(e.slice(-40)))}function K(e){return e}function q(e,t){let n=2+t*64,r=e.slice(n,n+64);return r.length===64?r:r.padEnd(64,`0`)}function Yt(e,t){return k(V(q(e,t).slice(-40)))}function J(e,t){return BigInt(`0x`+q(e,t))}function Y(e,t){return V(q(e,t))}function Xt(e){return e.topics[0]!==W.ConfidentialTransfer||e.topics.length<4?null:{eventName:`ConfidentialTransfer`,from:G(e.topics[1]),to:G(e.topics[2]),encryptedAmount:K(e.topics[3])}}function X(e){return e.topics[0]!==W.Wrap||e.topics.length<2?null:{eventName:`Wrap`,to:G(e.topics[1]),roundedAmount:J(e.data,0),encryptedWrappedAmount:Y(e.data,1)}}function Zt(e){return e.topics[0]!==W.UnwrapRequested||e.topics.length<3?null:{eventName:`UnwrapRequested`,receiver:G(e.topics[1]),unwrapRequestId:K(e.topics[2]),encryptedAmount:Y(e.data,0)}}function Qt(e){return e.topics[0]!==W.UnwrapFinalized||e.topics.length<3?null:{eventName:`UnwrapFinalized`,receiver:G(e.topics[1]),unwrapRequestId:K(e.topics[2]),encryptedAmount:Y(e.data,0),cleartextAmount:J(e.data,1)}}function $t(e){return Xt(e)??X(e)??Zt(e)??Qt(e)}function en(e){let t=[];for(let n of e){let e=$t(n);e&&t.push(e)}return t}function tn(e){for(let t of e){let e=Zt(t);if(e)return e}return null}function nn(e){for(let t of e){let e=X(t);if(e)return e}return null}const rn=[W.ConfidentialTransfer,W.Wrap,W.UnwrapRequested,W.UnwrapFinalized],Z={DelegatedForUserDecryption:U(`DelegatedForUserDecryption(address,address,address,uint64,uint64,uint64)`),RevokedDelegationForUserDecryption:U(`RevokedDelegationForUserDecryption(address,address,address,uint64,uint64)`)};function an(e){return e.topics[0]!==Z.DelegatedForUserDecryption||e.topics.length<3?null:{eventName:`DelegatedForUserDecryption`,delegator:G(e.topics[1]),delegate:G(e.topics[2]),contractAddress:Yt(e.data,0),delegationCounter:J(e.data,1),oldExpirationDate:J(e.data,2),newExpirationDate:J(e.data,3)}}function Q(e){return e.topics[0]!==Z.RevokedDelegationForUserDecryption||e.topics.length<3?null:{eventName:`RevokedDelegationForUserDecryption`,delegator:G(e.topics[1]),delegate:G(e.topics[2]),contractAddress:Yt(e.data,0),delegationCounter:J(e.data,1),oldExpirationDate:J(e.data,2)}}function on(e){return an(e)??Q(e)}function sn(e){let t=[];for(let n of e){let e=on(n);e&&t.push(e)}return t}function cn(e){for(let t of e){let e=an(t);if(e)return e}return null}function ln(e){for(let t of e){let e=Q(t);if(e)return e}return null}const un=[Z.DelegatedForUserDecryption,Z.RevokedDelegationForUserDecryption];function $(e){return`zama:pending-unshield:${et(e)}`}const dn=A.union([A.pipe(O,A.transform(e=>({unwrapTxHash:e}))),A.pipe(A.object({version:A.literal(1),unwrapTxHash:O,unwrapRequestId:A.optional(O)}),A.transform(({unwrapTxHash:e,unwrapRequestId:t})=>({unwrapTxHash:e,unwrapRequestId:t})))]);async function fn(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 pn(e,t){return(await mn(e,t))?.unwrapTxHash??null}async function mn(e,t){let n=$(t),r=await e.get(n);if(r==null)return null;let i=dn.safeParse(r);return i.success?i.data:(await e.delete(n),null)}async function hn(e,t){await e.delete($(t))}var gn=class extends w{#e;#t=null;#n=null;#r(e){try{return Le(this.sdk.signer,`WrappedToken.sdk.signer`),this.sdk.signer}catch(t){throw new ne(e,{cause:t})}}async underlying(){return this.#o()}async isPayable(){if(this.#n!==null)return this.#n;try{let e=await this.#o();this.#n=await this.sdk.provider.readContract(xe(e))}catch{this.#n=!1}return this.#n}async allowance(e){let t=await this.#o();return this.sdk.provider.readContract(h(t,k(e),this.address))}async shield(e,t){let r=await S(`shield`,this.sdk.signer,this.sdk.provider),i=await this.isPayable(),a=await this.#o(),o=k(r.address),s;try{s=await this.sdk.provider.readContract(ce(a,o))}catch(e){throw e instanceof n?e:new Me(`Could not read ERC-20 balance for shield validation (token: ${a})`,{cause:g(e)})}if(s<e)throw new ke(`Insufficient ERC-20 balance: requested ${e}, available ${s} (token: ${a})`,{requested:e,available:s,token:a});return i?this.#i(e,a,o,t):this.#a(e,o,t)}async#i(e,t,n,r){this.#r(`shield`);let i=r?.to?k(r.to):n,a=i===n?`0x`:i;return this.submitTransaction({operation:`shield:transferAndCall`,config:jt(t,this.address,e,a),onSubmitted:r?.onShieldSubmitted})}async#a(e,t,n){this.#r(`shield`);let r=n?.approvalStrategy??`exact`;r!==`skip`&&await this.#c(e,r===`max`,n);let i=n?.to?k(n.to):t;return this.submitTransaction({operation:`shield:approveAndWrap`,config:u(this.address,i,e),onSubmitted:n?.onShieldSubmitted})}async approveUnderlying(e){this.#r(`approveUnderlying`);let t=await S(`approveUnderlying`,this.sdk.signer,this.sdk.provider),n=await this.#o(),r=k(t.address),i=e??2n**256n-1n;return i>0n&&await this.sdk.provider.readContract(h(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);let o={onFinalizing:i,onFinalizeSubmitted:a},s=crypto.randomUUID(),c=await this.unwrap(e);return d(`unshield: onUnwrapSubmitted`,()=>r?.(c.txHash),this.sdk.logger),this.#s(c.txHash,s,o)}async unshieldAll(e){let t=crypto.randomUUID(),n=await this.unwrapAll();return d(`unshieldAll: onUnwrapSubmitted`,()=>e?.onUnwrapSubmitted?.(n.txHash),this.sdk.logger),this.#s(n.txHash,t,e)}async resumeUnshield(e,t){return this.#s(e,crypto.randomUUID(),t)}async getPendingUnshield(){return pn(this.sdk.storage,this.address)}async unwrap(e){this.#r(`unwrap`);let t=k((await S(`unwrap`,this.sdk.signer,this.sdk.provider)).address),{encryptedValues:n,inputProof:r}=await this.sdk.encrypt({values:[{value:e,type:`euint64`}],contractAddress:this.address,userAddress:t}),[i]=n;if(!i)throw new _(`Encryption returned no encrypted values`);return this.submitTransaction({operation:`unwrap`,config:te(this.address,t,t,i,r)})}async unwrapAll(){this.#r(`unwrapAll`);let e=k((await S(`unwrapAll`,this.sdk.signer,this.sdk.provider)).address),t=await this.readConfidentialBalanceOf(e);if(x(t))throw new b(`Cannot unshield: balance is zero`);return this.submitTransaction({operation:`unwrapAll`,config:c(this.address,e,e,t)})}async finalizeUnwrap(e){this.#r(`finalizeUnwrap`),await T(`finalizeUnwrap`,this.sdk.signer,this.sdk.provider);let t=await this.sdk.decryption.decryptPublicValues([e]),n=t.clearValues[e];return Je(n,`finalizeUnwrap: clearValue`),this.submitTransaction({operation:`finalizeUnwrap`,config:ee(this.address,e,n,t.decryptionProof)})}async#o(){return this.#e===void 0?(this.#t||=this.sdk.provider.readContract(p(this.address)).then(e=>(this.#e=e,this.#t=null,e)).catch(e=>{throw this.#t=null,e}),this.#t):this.#e}async#s(e,t,r){this.emit({type:C.UnshieldPhase1Submitted,txHash:e,operationId:t}),await d(`unshield: savePendingUnshield`,()=>fn(this.sdk.storage,this.address,e),this.sdk.logger);let i;try{i=await this.sdk.provider.waitForTransactionReceipt(e)}catch(e){throw e instanceof n?e:new y(`Failed to get unshield receipt`,{cause:e})}let a=tn(i.logs);if(!a)throw new y(`No UnwrapRequested event found in unshield receipt`);this.emit({type:C.UnshieldPhase2Started,operationId:t}),d(`unshield: onFinalizing`,()=>r?.onFinalizing?.(),this.sdk.logger);let o=await this.finalizeUnwrap(a.unwrapRequestId??a.encryptedAmount);return this.emit({type:C.UnshieldPhase2Submitted,txHash:o.txHash,operationId:t}),d(`unshield: onFinalizeSubmitted`,()=>r?.onFinalizeSubmitted?.(o.txHash),this.sdk.logger),await d(`unshield: clearPendingUnshield`,()=>hn(this.sdk.storage,this.address),this.sdk.logger),o}async#c(e,t,n){this.#r(`approveUnderlying`);let r=await this.#o(),i=k((await S(`approveUnderlying`,this.sdk.signer,this.sdk.provider)).address),a=await this.sdk.provider.readContract(h(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})}},_n=class{#e;provider;signer;storage;registry;permits;delegations;decryption;#t;#n;#r;#i;#a;#o;#s;#c;#l;#u;constructor(e){this.#e=e.router,this.provider=e.provider,this.signer=e.signer,this.storage=e.storage,this.#r=e.onEvent??function(){},this.#i=e.logger,this.#a=new Rt(e.storage,this.#i),this.#u=new Kt({provider:this.provider,router:e.router,emitEvent:this.emitEvent.bind(this),logger:this.#i});let t={};for(let n of e.chains)n.registryAddress&&(t[n.id]=n.registryAddress);this.registry=new D({provider:this.provider,registryAddresses:t,registryTTL:e.registryTTL}),this.#n=t,this.#t=e.registryTTL,e.signer&&(this.#l=new dt({router:e.router,signer:e.signer,transportKeyPairTTL:e.transportKeyPairTTL,permitTTL:e.permitTTL,storage:this.storage,permitStorage:e.permitStorage,logger:this.#i}),this.#c=new Ht({cache:this.#a,credentialService:this.#l,delegationService:this.#u,router:e.router,emitEvent:this.emitEvent.bind(this)})),this.#s=new qt({router:e.router,emitEvent:this.emitEvent.bind(this)}),this.#o=new Jt({signer:e.signer,router:e.router,cachingService:this.#a,credentialService:this.#l,logger:this.#i}),this.permits=new Ft({signer:this.signer,provider:this.provider,cachingService:this.#a,credentialService:this.#l,logger:this.#i}),this.delegations=new Pt({signer:this.signer,provider:this.provider,delegationService:this.#u}),this.decryption=new Nt({signer:this.signer,provider:this.provider,router:e.router,decryptionService:this.#c})}onWalletAccountChange(e){return this.#o.onWalletAccountChange(e)}get logger(){return this.#i}get relayer(){return this.#e.relayer}emitEvent(e,t){try{this.#r({...e,tokenAddress:t,timestamp:Date.now()})}catch(t){this.#i.warn(`${e.type} event listener silently failed`,{error:t})}}createWrappersRegistry(e){return new D({provider:this.provider,registryAddresses:{...this.#n,...e},registryTTL:this.#t})}async encrypt(e,t){return this.#s.encryptValues(e,t)}createToken(e){return new w(this,e)}createWrappedToken(e){return new gn(this,e)}dispose(){this.#o.dispose()}terminate(){this.dispose(),this.signer?.dispose?.()}[Symbol.dispose](){this.terminate()}},vn=class{async get(e){return(await chrome.storage.session.get(e))[e]??null}async set(e,t){await chrome.storage.session.set({[e]:t})}async delete(e){await chrome.storage.session.remove(e)}};const yn=new vn;export{un as ACL_TOPICS,Ot as AclPausedError,Z as AclTopics,je as BalanceCheckUnavailableError,ft as BaseSigner,He as ChainMismatchError,vn as ChromeSessionStorage,r as ConfigurationError,Nt as Decryption,b as DecryptionFailedError,$e as DefaultRegistryAddresses,Dt as DelegationContractIsSelfError,Et as DelegationCooldownError,L as DelegationDelegateEqualsContractError,R as DelegationExpirationTooSoonError,F as DelegationExpiredError,I as DelegationExpiryUnchangedError,P as DelegationNotFoundError,z as DelegationNotPropagatedError,N as DelegationSelfNotAllowedError,Pt as Delegations,de as ERC1363_INTERFACE_ID,Me as ERC20ReadFailedError,_e as ERC7984_INTERFACE_ID,Te as ERC7984_WRAPPER_INTERFACE_ID,_ as EncryptionFailedError,it as IndexedDBStorage,Ue as InsufficientConfidentialBalanceError,ke as InsufficientERC20BalanceError,Tt as InvalidTransportKeyPairError,lt as MemoryStorage,ct as MutableWalletAccountStore,j as NoCiphertextError,M as NotEntitledError,Ft as Permits,t as RelayerRequestFailedError,v as RpcRateLimitError,ne as SignerNotConfiguredError,Oe as SignerRequiredError,ae as SigningFailedError,se as SigningRejectedError,rn as TOKEN_TOPICS,w as Token,W as Topics,y as TransactionRevertedError,wt as TransportKeyPairExpiredError,a as WalletAccountNotReadyError,oe as WalletNotConnectedError,gn as WrappedToken,D as WrappersRegistry,qe as ZERO_ENCRYPTED_VALUE,n as ZamaError,e as ZamaErrorCode,_n as ZamaSDK,C as ZamaSDKEvents,h as allowanceContract,bt as anvil,m as approveContract,ce as balanceOfContract,gt as bscTestnet,vt as chains,yn as chromeSessionStorage,Qe as cleartext,re as confidentialBalanceOfContract,o as confidentialTotalSupplyContract,ie as confidentialTransferContract,s as confidentialTransferFromContract,Mt as createConfig,ut as createWalletAccountStore,Ee as decimalsContract,on as decodeAclEvent,sn as decodeAclEvents,Xt as decodeConfidentialTransfer,an as decodeDelegatedForUserDecryption,$t as decodeOnChainEvent,en as decodeOnChainEvents,Q as decodeRevokedDelegationForUserDecryption,Qt as decodeUnwrapFinalized,Zt as decodeUnwrapRequested,X as decodeWrap,ze as delegateForUserDecryptionContract,ee as finalizeUnwrapContract,cn as findDelegatedForUserDecryption,ln as findRevokedDelegationForUserDecryption,tn as findUnwrapRequested,nn as findWrap,we as getConfidentialTokenAddressContract,Ke as getDelegationExpiryContract,ye as getTokenAddressContract,Se as getTokenPairContract,me as getTokenPairsContract,le as getTokenPairsLengthContract,be as getTokenPairsSliceContract,ht as hardhat,pt as hoodi,rt as indexedDBStorage,ge as inferredTotalSupplyContract,_t as ingenTestnet,fe as isConfidentialTokenContract,Ce as isConfidentialTokenValidContract,pe as isConfidentialWrapperContract,x as isEncryptedValueZero,We as isHandleDelegatedContract,i as isOperatorContract,yt as mainnet,Ct as matchZamaError,st as memoryStorage,ue as nameContract,he as rateContract,tt as resolveChainRelayers,nt as resolveStorage,Ve as revokeDelegationContract,mt as sepolia,f as setOperatorContract,ve as supportsInterfaceContract,De as symbolContract,jt as transferAndCallContract,p as underlyingContract,te as unwrapContract,c as unwrapFromBalanceContract,u as wrapContract};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|