@aave/client 4.0.0-next.33 → 4.0.0-next.34

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.
Files changed (56) hide show
  1. package/dist/{AaveClient-DGbooMqK.d.ts → AaveClient-BPNG2Fua.d.ts} +2 -6
  2. package/dist/{AaveClient-1SYnTlsS.d.cts → AaveClient-CYavo882.d.cts} +2 -6
  3. package/dist/actions/index.cjs +1 -1636
  4. package/dist/actions/index.cjs.map +1 -1
  5. package/dist/actions/index.d.cts +7 -7
  6. package/dist/actions/index.d.ts +7 -7
  7. package/dist/actions/index.js +1 -1
  8. package/dist/chunk-2UKLL54V.js +2 -0
  9. package/dist/chunk-2UKLL54V.js.map +1 -0
  10. package/dist/chunk-N4LXBTGY.js +2 -0
  11. package/dist/chunk-N4LXBTGY.js.map +1 -0
  12. package/dist/chunk-V34A7JGD.js +2 -0
  13. package/dist/chunk-V34A7JGD.js.map +1 -0
  14. package/dist/ethers.cjs +1 -2
  15. package/dist/ethers.cjs.map +1 -1
  16. package/dist/ethers.js +1 -1
  17. package/dist/ethers.js.map +1 -1
  18. package/dist/index.cjs +2 -1638
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/index.d.cts +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.js +2 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/privy.cjs +1 -2
  25. package/dist/privy.cjs.map +1 -1
  26. package/dist/privy.js +1 -1
  27. package/dist/privy.js.map +1 -1
  28. package/dist/testing.d.ts +2 -8
  29. package/dist/testing.js +29 -1664
  30. package/dist/testing.js.map +1 -1
  31. package/dist/thirdweb.cjs +1 -1637
  32. package/dist/thirdweb.cjs.map +1 -1
  33. package/dist/thirdweb.d.cts +1 -1
  34. package/dist/thirdweb.d.ts +1 -1
  35. package/dist/thirdweb.js +1 -1
  36. package/dist/thirdweb.js.map +1 -1
  37. package/dist/utils/index.cjs +1 -1
  38. package/dist/utils/index.cjs.map +1 -1
  39. package/dist/utils/index.js +1 -1
  40. package/dist/utils/index.js.map +1 -1
  41. package/dist/viem.cjs +1 -1637
  42. package/dist/viem.cjs.map +1 -1
  43. package/dist/viem.d.cts +1 -1
  44. package/dist/viem.d.ts +1 -1
  45. package/dist/viem.js +1 -1
  46. package/package.json +6 -6
  47. package/dist/chunk-5S5WCHVW.js +0 -2
  48. package/dist/chunk-5S5WCHVW.js.map +0 -1
  49. package/dist/chunk-COR3ZX64.js +0 -2
  50. package/dist/chunk-COR3ZX64.js.map +0 -1
  51. package/dist/chunk-I6P76ICW.js +0 -1637
  52. package/dist/chunk-I6P76ICW.js.map +0 -1
  53. package/dist/chunk-IANLBRJB.js +0 -3
  54. package/dist/chunk-IANLBRJB.js.map +0 -1
  55. package/dist/chunk-MGE343SH.js +0 -2
  56. package/dist/chunk-MGE343SH.js.map +0 -1
@@ -1,3 +0,0 @@
1
- import {L,a,c,b,o,q as q$1}from'./chunk-5S5WCHVW.js';import {createClient,makeOperation,getOperationName,stringifyDocument,CombinedError}from'@urql/core';import {makeFetchBody,makeFetchURL,makeFetchOptions,makeFetchSource}from'@urql/core/internal';import {Kind,visit}from'graphql';var Y=()=>{},x=Y;function k(t){return {tag:0,0:t}}function F(t){return {tag:1,0:t}}var U=()=>typeof Symbol=="function"&&Symbol.asyncIterator||"@@asyncIterator";var Z=t=>t;function S(t){return e=>r=>{var i=x;e((n=>{n===0?r(0):n.tag===0?(i=n[0],r(n)):t(n[0])?r(n):i(0);}));}}function T(t){return e=>r=>{var i=[],n=x,a=false,f=false;e((l=>{f||(l===0?(f=true,i.length||r(0)):l.tag===0?n=l[0]:(a=false,(function(m){var o=x;m((v=>{if(v===0){if(i.length){var s=i.indexOf(o);s>-1&&(i=i.slice()).splice(s,1),i.length||(f?r(0):a||(a=true,n(0)));}}else v.tag===0?(i.push(o=v[0]),o(0)):i.length&&(r(v),o(0));}));})(t(l[0])),a||(a=true,n(0))));})),r(k((l=>{if(l===1){f||(f=true,n(1));for(var h=0,m=i,o=i.length;h<o;h++)m[h](1);i.length=0;}else {!f&&!a?(a=true,n(0)):a=false;for(var v=0,s=i,p=i.length;v<p;v++)s[v](0);}})));}}function ee(t){return T(Z)(t)}function Q(t){return ee(ie(t))}function O(t){return e=>r=>{var i=false;e((n=>{if(!i)if(n===0)i=true,r(0);else if(n.tag===0){var a=n[0];r(k((f=>{f===1&&(i=true),a(f);})));}else t(n[0]),r(n);}));}}function M(t){var e=[],r=x,i=false;return n=>{e.push(n),e.length===1&&t((a=>{if(a===0){for(var f=0,l=e,h=e.length;f<h;f++)l[f](0);e.length=0;}else if(a.tag===0)r=a[0];else {i=false;for(var m=0,o=e,v=e.length;m<v;m++)o[m](a);}})),n(k((a=>{if(a===1){var f=e.indexOf(n);f>-1&&(e=e.slice()).splice(f,1),e.length||r(1);}else i||(i=true,r(0));})));}}function $(t){return e=>r=>{var i=x,n=x,a=false;e((f=>{a||(f===0?(a=true,n(1),r(0)):f.tag===0?(i=f[0],t((l=>{l===0||(l.tag===0?(n=l[0])(0):(a=true,n(1),i(1),r(0)));}))):r(f));})),r(k((f=>{f===1&&!a?(a=true,i(1),n(1)):a||i(0);})));}}function te(t){return e=>{var r=t[U()]&&t[U()]()||t,i=false,n=false,a=false,f;e(k((async l=>{if(l===1)i=true,r.return&&r.return();else if(n)a=true;else {for(a=n=true;a&&!i;)if((f=await r.next()).done)i=true,r.return&&await r.return(),e(0);else try{a=!1,e(F(f.value));}catch(h){if(r.throw)(i=!!(await r.throw(h)).done)&&e(0);else throw h}n=false;}})));}}function re(t){return t[Symbol.asyncIterator]?te(t):e=>{var r=t[Symbol.iterator](),i=false,n=false,a=false,f;e(k((l=>{if(l===1)i=true,r.return&&r.return();else if(n)a=true;else {for(a=n=true;a&&!i;)if((f=r.next()).done)i=true,r.return&&r.return(),e(0);else try{a=!1,e(F(f.value));}catch(h){if(r.throw)(i=!!r.throw(h).done)&&e(0);else throw h}n=false;}})));}}var ie=re;function C(t){return e=>{var r=false,i=t({next(n){r||e(F(n));},complete(){r||(r=true,e(0));}});e(k((n=>{n===1&&!r&&(r=true,i());})));}}function z(t){return e=>{var r=x,i=false;return e((n=>{n===0?i=true:n.tag===0?(r=n[0])(0):i||(t(n[0]),r(0));})),{unsubscribe(){i||(i=true,r(1));}}}}var d=(...t)=>{for(var e=t[0],r=1,i=t.length;r<i;r++)e=t[r](e);return e};var he=(t=>(t.UNAUTHENTICATED="UNAUTHENTICATED",t.FORBIDDEN="FORBIDDEN",t.INTERNAL_SERVER_ERROR="INTERNAL_SERVER_ERROR",t.BAD_USER_INPUT="BAD_USER_INPUT",t.BAD_REQUEST="BAD_REQUEST",t))(he||{});function Re(t,e){return t.graphQLErrors.some(r=>r.extensions?.code===e)}var q=class V extends L{name="UnexpectedError";static upgradeRequired(e){return new V(`${e}. Check for SDK updates.`)}},Ae=class extends L{name="SigningError"},Fe=class H extends L{name="TransactionError";txHash;constructor(e,r,i){super(e,{cause:i}),this.txHash=r;}static new(e){let{txHash:r,request:i,link:n}=e,a=n?`Transaction failed: ${r}
2
- \u2192 View on explorer: ${n}`:`Transaction failed: ${r}`;return new H(a,r,i)}},Oe=class extends L{name="TimeoutError"},qe=class W extends L{constructor(e){super(e.__typename),this.cause=e;}name="ValidationError";static fromGqlNode(e){return new W(e)}},Ie=class extends L{name="CancelError"},ve=class{constructor(t,e){this.batchInterval=t,this.maxBatchSize=e;}queue=new Map;flushTimer=null;flushing=false;onBatchReady=()=>{};push(t){if(this.queue.set(t.key,t),this.shouldFlush()&&!this.flushing){this.cancelScheduledFlush(),this.flushBatch();return}!this.flushTimer&&!this.flushing&&this.scheduleFlush();}remove(t){this.queue.delete(t.key);}onBatch(t){this.onBatchReady=t;}shouldFlush(){return this.queue.size>=this.maxBatchSize}scheduleFlush(){this.flushTimer=setTimeout(()=>{this.flushTimer=null,this.flushBatch();},this.batchInterval);}cancelScheduledFlush(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=null);}flushBatch(){if(this.flushing)return;if(this.flushing=true,this.queue.size===0){this.flushing=false;return}let t=Array.from(this.queue.values()).slice(0,this.maxBatchSize);this.onBatchReady(t);for(let e of t)this.queue.delete(e.key);this.queue.size>0?setTimeout(()=>this.flushBatch(),0):this.flushing=false;}};function j(t,e){let r=makeFetchBody(t),i=makeFetchURL(t,r),n=makeFetchOptions(t,r);return d(makeFetchSource(t,i,n),$(d(e,S(a=>a.kind==="teardown"&&a.key===t.key))))}function me({batchInterval:t,maxBatchSize:e,url:r,fetchOptions:i}){return ({forward:n})=>{let a=new ve(t,e);return f=>{let l=M(f),h=d(l,S(s=>s.kind==="teardown"||s.kind==="subscription"&&!s.context.fetchSubscriptions),n),m=d(l,S(s=>s.kind==="mutation"||s.kind==="subscription"&&!!s.context.fetchSubscriptions||s.kind==="query"&&s.context.batch===false),T(s=>j(s,f))),o$1=new Map,v=d(l,S(s=>s.kind==="query"&&s.context.batch!==false),T(s=>(o(s.context.url===r,`Operation URL mismatch: expected "${r}", got "${s.context.url}"`),a.push(s),C(({next:p})=>{let E=o$1.get(s.key);return E?E.push(p):o$1.set(s.key,[p]),()=>{a.remove(s);let u=o$1.get(s.key);if(!u)return;let c=u.indexOf(p);c!==-1&&u.splice(c,1),u.length===0&&o$1.delete(s.key);}}))));return a.onBatch(s=>{if(o(q$1(s),"Expected non-empty array of operations"),s.length===1){d(j(s[0],f),O(u=>{let c=o$1.get(s[0].key);if(c){for(let g of c)g(u);o$1.delete(s[0].key);}}),z(()=>{}));return}let p=s.map(u=>({query:stringifyDocument(u.query),variables:u.variables??{},operationName:getOperationName(u.query),extensions:u.extensions})),E=typeof i=="function"?i():i||{};fetch(r,{method:"POST",headers:{"content-type":"application/json",...E.headers||{}},body:JSON.stringify(p),...E}).then(u=>u.json()).then(u=>{for(let c=0;c<u.length&&c<s.length;c++){let g=u[c],y=s[c];if(!y||!g)continue;let R={operation:y,data:g.data,error:g.errors?new CombinedError({graphQLErrors:g.errors}):void 0,extensions:g.extensions,stale:false,hasNext:false},D=o$1.get(y.key);if(D){for(let X of D)X(R);o$1.delete(y.key);}}}).catch(u=>{for(let c of s){let g={operation:c,data:void 0,error:new CombinedError({networkError:u}),stale:false,hasNext:false},y=o$1.get(c.key);if(y){for(let R of y)R(g);o$1.delete(c.key);}}});}),Q([m,v,h])}}}var ge=class{constructor(t){this.document=t,this._fragmentSpreads=new Map,this._recursivelyReferencedFragments=new Map;}_fragments;_fragmentSpreads;_recursivelyReferencedFragments;dedupe(){let t=[],e=[],r=[];return visit(this.document,{OperationDefinition:i=>(t.push(i),false),FragmentDefinition:i=>(e.push(i),false),Document:{leave:()=>{let i=Object.create(null);for(let n of t)for(let a of this.getRecursivelyReferencedFragments(n))i[a.name.value]=true;for(let n of e){let a=n.name.value;i[a]!==true&&r.push(n);}}}}),visit(this.document,{FragmentDefinition:i=>r.indexOf(i)!==-1?null:i})}getRecursivelyReferencedFragments(t){let e=this._recursivelyReferencedFragments.get(t);if(!e){e=[];let r=Object.create(null),i=[t.selectionSet],n;for(;n=i.pop();)for(let a of this.getFragmentSpreads(n)){let f=a.name.value;if(r[f]!==true){r[f]=true;let l=this.getFragment(f);l&&(e.push(l),i.push(l.selectionSet));}}this._recursivelyReferencedFragments.set(t,e);}return e}getFragmentSpreads(t){let e=this._fragmentSpreads.get(t);if(!e){e=[];let r=[t],i;for(;i=r.pop();)for(let n of i.selections)n.kind===Kind.FRAGMENT_SPREAD?e.push(n):n.selectionSet&&r.push(n.selectionSet);this._fragmentSpreads.set(t,e);}return e}getFragment(t){let e;if(this._fragments)e=this._fragments;else {e=Object.create(null);for(let r of this.document.definitions)r.kind===Kind.FRAGMENT_DEFINITION&&(e[r.name.value]=r);this._fragments=e;}return e[t]}},de=class K{constructor(e){this.fragments=e;}static from(e){let r=new Map;for(let i of e)for(let n of i.definitions)o(n.kind==="FragmentDefinition",`expected a fragment definition, got ${i.definitions[0]?.kind}`),o(!r.has(n.name.value),`Duplicate fragment detected. A fragment named "${n.name.value}" has already been provided, either directly or as part of another fragment document.`),r.set(n.name.value,n);return new K(r)}replaceFrom(e){let r=visit(e,{FragmentDefinition:i=>this.fragments.has(i.name.value)?null:i,Document:{leave:i=>({...i,definitions:[...i.definitions,...this.fragments.values()]})}});return new ge(r).dedupe()}},pe=class J{level;name;constructor(e,r=3){this.name=e,this.level=r,this.replaceMethods();}static named(e,r=3){return new J(e,r)}trace=()=>{};debug=()=>{};info=()=>{};warn=()=>{};error=()=>{};log=()=>{};replaceMethods(){["trace","debug","info","warn","error"].forEach((e,r)=>{r>=this.level&&(this[e]=(...i)=>console[e==="debug"?"log":e](`[${this.name}]`,...i));}),this.log=this.debug;}};function Ne(t){return new Promise(e=>setTimeout(e,t))}function G(t){return t.query.definitions.find(e=>e.kind===Kind.OPERATION_DEFINITION)?.name?.value??null}function ye(t){return t.kind==="query"&&!t.context.pause}function be(t){return t.kind==="teardown"}var De=class{constructor(t){this.context=t,this.resolver=de.from(t.fragments),this.logger=pe.named(t.displayName,t.debug?1:5),this.urql=createClient({url:t.environment.backend,requestPolicy:t.cache?"cache-and-network":"network-only",preferGetMethod:false,exchanges:this.exchanges(),fetchOptions:this.getFetchOptions()});}urql;activeQueries=new Map;logger;resolver;query(t,e,{requestPolicy:r,batch:i=true}={}){let n=this.resolver.replaceFrom(t);return this.resultFrom(this.urql.query(n,e,{batch:i,requestPolicy:r}))}mutation(t,e){return this.resultFrom(this.urql.mutation(t,e))}async refreshWhere(t){let e=Array.from(this.activeQueries.values()),r=(await Promise.all(e.map(async i=>({op:i,matches:await t(i)})))).filter(({matches:i})=>i).map(({op:i})=>i);this.logger.debug(`Refreshing ${r.length} matching queries`);for(let i of r)this.urql.reexecuteOperation(makeOperation(i.kind,i,{...i.context,requestPolicy:"network-only",batch:false}));}exchanges(){let t=[this.activeQueryRegistry()];return this.context.cache&&t.push(this.context.cache),t.push(me({batchInterval:1,maxBatchSize:10,url:this.context.environment.backend,fetchOptions:this.getFetchOptions()})),t}getFetchOptions(){return {credentials:"omit",headers:this.context.headers}}registerQuery(t){this.activeQueries.set(t.key,t),this.logger.debug(`Registered query: ${G(t)} (key: ${t.key})`);}unregisterQuery(t){let e=this.activeQueries.get(t);e&&(this.activeQueries.delete(t),this.logger.debug(`Unregistered query: ${G(e)} (key: ${t})`));}activeQueryRegistry(){return ({forward:t})=>e=>d(e,O(r=>{ye(r)?this.registerQuery(r):be(r)&&this.unregisterQuery(r.key);}),t)}resultFrom(t){return a.fromPromise(t.toPromise(),e=>(this.logger.error(e),q.from(e))).andThen(e=>e.error?.networkError?c(q.from(e.error.networkError)):e.data?b(e.data.value):c(q.from(e.error)))}};export{he as a,Re as b,q as c,Ae as d,Fe as e,Oe as f,qe as g,Ie as h,Ne as i,G as j,ye as k,be as l,De as m};//# sourceMappingURL=chunk-IANLBRJB.js.map
3
- //# sourceMappingURL=chunk-IANLBRJB.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/wonka@6.3.5/node_modules/wonka/dist/wonka.mjs","../../core/src/errors.ts","../../core/src/batching.ts","../../core/src/fragments.ts","../../core/src/logger.ts","../../core/src/utils.ts","../../core/src/GqlClient.ts"],"names":["teardownPlaceholder","e","start","push","asyncIteratorSymbol","identity","filter","r","t","i","a","mergeMap","f","n","s","l","u","o","mergeAll","merge","onPush","share","takeUntil","fromAsyncIterable","fromIterable","make","subscribe","pipe","GraphQLErrorCode","hasExtensionCode","error","code","gqlError","UnexpectedError","_UnexpectedError","ResultAwareError","message","SigningError","TransactionError","_TransactionError","txHash","cause","args","request","link","TimeoutError","ValidationError","_ValidationError","CancelError","Batcher","batchInterval","maxBatchSize","operation","handler","batch","op","makeSingleRequestSource","ops$","body","makeFetchBody","url","makeFetchURL","fetchOptions","makeFetchOptions","makeFetchSource","batchFetchExchange","forward","batcher","shared","forward$","unbatched$","resultSinks","batched$","invariant","next","sinks","remaining","idx","operations","isNonEmptyArray","tap","result","sink","stringifyDocument","getOperationName","opts","res","results","response","CombinedError","err","FragmentDeduplicator","document","operationDefs","fragmentDefs","toRemove","visit","node","fragmentNameUsed","fragment","fragmentDef","fragName","fragments","collectedNames","nodesToVisit","spread","spreads","setsToVisit","set","selection","Kind","name","defNode","FragmentResolver","_FragmentResolver","nodes","definition","injected","Logger","_Logger","level","methodName","index","delay","ms","resolve","extractOperationName","d","isActiveQueryOperation","isTeardownOperation","GqlClient","context","createClient","variables","requestPolicy","query","predicate","allOps","ops","matches","makeOperation","exchanges","key","source","ResultAsync","errAsync","okAsync"],"mappings":"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","file":"chunk-IANLBRJB.js","sourcesContent":["var teardownPlaceholder = () => {};\n\nvar e = teardownPlaceholder;\n\nfunction start(e) {\n return {\n tag: 0,\n 0: e\n };\n}\n\nfunction push(e) {\n return {\n tag: 1,\n 0: e\n };\n}\n\nvar asyncIteratorSymbol = () => \"function\" == typeof Symbol && Symbol.asyncIterator || \"@@asyncIterator\";\n\nvar observableSymbol = () => \"function\" == typeof Symbol && Symbol.observable || \"@@observable\";\n\nvar identity = e => e;\n\nfunction buffer(r) {\n return t => i => {\n var a = [];\n var f = e;\n var n = e;\n var s = !1;\n var l = !1;\n t((e => {\n if (l) {} else if (0 === e) {\n l = !0;\n n(1);\n if (a.length) {\n i(push(a));\n }\n i(0);\n } else if (0 === e.tag) {\n f = e[0];\n r((e => {\n if (l) {} else if (0 === e) {\n l = !0;\n f(1);\n if (a.length) {\n i(push(a));\n }\n i(0);\n } else if (0 === e.tag) {\n n = e[0];\n } else if (a.length) {\n var r = push(a);\n a = [];\n i(r);\n }\n }));\n } else {\n a.push(e[0]);\n if (!s) {\n s = !0;\n f(0);\n n(0);\n } else {\n s = !1;\n }\n }\n }));\n i(start((e => {\n if (1 === e && !l) {\n l = !0;\n f(1);\n n(1);\n } else if (!l && !s) {\n s = !0;\n f(0);\n n(0);\n }\n })));\n };\n}\n\nfunction concatMap(r) {\n return t => i => {\n var a = [];\n var f = e;\n var n = e;\n var s = !1;\n var l = !1;\n var u = !1;\n var o = !1;\n function applyInnerSource(e) {\n u = !0;\n e((e => {\n if (0 === e) {\n if (u) {\n u = !1;\n if (a.length) {\n applyInnerSource(r(a.shift()));\n } else if (o) {\n i(0);\n } else if (!s) {\n s = !0;\n f(0);\n }\n }\n } else if (0 === e.tag) {\n l = !1;\n (n = e[0])(0);\n } else if (u) {\n i(e);\n if (l) {\n l = !1;\n } else {\n n(0);\n }\n }\n }));\n }\n t((e => {\n if (o) {} else if (0 === e) {\n o = !0;\n if (!u && !a.length) {\n i(0);\n }\n } else if (0 === e.tag) {\n f = e[0];\n } else {\n s = !1;\n if (u) {\n a.push(e[0]);\n } else {\n applyInnerSource(r(e[0]));\n }\n }\n }));\n i(start((e => {\n if (1 === e) {\n if (!o) {\n o = !0;\n f(1);\n }\n if (u) {\n u = !1;\n n(1);\n }\n } else {\n if (!o && !s) {\n s = !0;\n f(0);\n }\n if (u && !l) {\n l = !0;\n n(0);\n }\n }\n })));\n };\n}\n\nfunction concatAll(e) {\n return concatMap(identity)(e);\n}\n\nfunction concat(e) {\n return concatAll(r(e));\n}\n\nfunction filter(r) {\n return t => i => {\n var a = e;\n t((e => {\n if (0 === e) {\n i(0);\n } else if (0 === e.tag) {\n a = e[0];\n i(e);\n } else if (!r(e[0])) {\n a(0);\n } else {\n i(e);\n }\n }));\n };\n}\n\nfunction map(e) {\n return r => t => r((r => {\n if (0 === r || 0 === r.tag) {\n t(r);\n } else {\n t(push(e(r[0])));\n }\n }));\n}\n\nfunction mergeMap(r) {\n return t => i => {\n var a = [];\n var f = e;\n var n = !1;\n var s = !1;\n t((t => {\n if (s) {} else if (0 === t) {\n s = !0;\n if (!a.length) {\n i(0);\n }\n } else if (0 === t.tag) {\n f = t[0];\n } else {\n n = !1;\n !function applyInnerSource(r) {\n var t = e;\n r((e => {\n if (0 === e) {\n if (a.length) {\n var r = a.indexOf(t);\n if (r > -1) {\n (a = a.slice()).splice(r, 1);\n }\n if (!a.length) {\n if (s) {\n i(0);\n } else if (!n) {\n n = !0;\n f(0);\n }\n }\n }\n } else if (0 === e.tag) {\n a.push(t = e[0]);\n t(0);\n } else if (a.length) {\n i(e);\n t(0);\n }\n }));\n }(r(t[0]));\n if (!n) {\n n = !0;\n f(0);\n }\n }\n }));\n i(start((e => {\n if (1 === e) {\n if (!s) {\n s = !0;\n f(1);\n }\n for (var r = 0, t = a, i = a.length; r < i; r++) {\n t[r](1);\n }\n a.length = 0;\n } else {\n if (!s && !n) {\n n = !0;\n f(0);\n } else {\n n = !1;\n }\n for (var l = 0, u = a, o = a.length; l < o; l++) {\n u[l](0);\n }\n }\n })));\n };\n}\n\nfunction mergeAll(e) {\n return mergeMap(identity)(e);\n}\n\nfunction merge(e) {\n return mergeAll(r(e));\n}\n\nfunction onEnd(e) {\n return r => t => {\n var i = !1;\n r((r => {\n if (i) {} else if (0 === r) {\n i = !0;\n t(0);\n e();\n } else if (0 === r.tag) {\n var a = r[0];\n t(start((r => {\n if (1 === r) {\n i = !0;\n a(1);\n e();\n } else {\n a(r);\n }\n })));\n } else {\n t(r);\n }\n }));\n };\n}\n\nfunction onPush(e) {\n return r => t => {\n var i = !1;\n r((r => {\n if (i) {} else if (0 === r) {\n i = !0;\n t(0);\n } else if (0 === r.tag) {\n var a = r[0];\n t(start((e => {\n if (1 === e) {\n i = !0;\n }\n a(e);\n })));\n } else {\n e(r[0]);\n t(r);\n }\n }));\n };\n}\n\nfunction onStart(e) {\n return r => t => r((r => {\n if (0 === r) {\n t(0);\n } else if (0 === r.tag) {\n t(r);\n e();\n } else {\n t(r);\n }\n }));\n}\n\nfunction sample(r) {\n return t => i => {\n var a = e;\n var f = e;\n var n;\n var s = !1;\n var l = !1;\n t((e => {\n if (l) {} else if (0 === e) {\n l = !0;\n f(1);\n i(0);\n } else if (0 === e.tag) {\n a = e[0];\n } else {\n n = e[0];\n if (!s) {\n s = !0;\n f(0);\n a(0);\n } else {\n s = !1;\n }\n }\n }));\n r((e => {\n if (l) {} else if (0 === e) {\n l = !0;\n a(1);\n i(0);\n } else if (0 === e.tag) {\n f = e[0];\n } else if (void 0 !== n) {\n var r = push(n);\n n = void 0;\n i(r);\n }\n }));\n i(start((e => {\n if (1 === e && !l) {\n l = !0;\n a(1);\n f(1);\n } else if (!l && !s) {\n s = !0;\n a(0);\n f(0);\n }\n })));\n };\n}\n\nfunction scan(e, r) {\n return t => i => {\n var a = r;\n t((r => {\n if (0 === r) {\n i(0);\n } else if (0 === r.tag) {\n i(r);\n } else {\n i(push(a = e(a, r[0])));\n }\n }));\n };\n}\n\nfunction share(r) {\n var t = [];\n var i = e;\n var a = !1;\n return e => {\n t.push(e);\n if (1 === t.length) {\n r((e => {\n if (0 === e) {\n for (var r = 0, f = t, n = t.length; r < n; r++) {\n f[r](0);\n }\n t.length = 0;\n } else if (0 === e.tag) {\n i = e[0];\n } else {\n a = !1;\n for (var s = 0, l = t, u = t.length; s < u; s++) {\n l[s](e);\n }\n }\n }));\n }\n e(start((r => {\n if (1 === r) {\n var f = t.indexOf(e);\n if (f > -1) {\n (t = t.slice()).splice(f, 1);\n }\n if (!t.length) {\n i(1);\n }\n } else if (!a) {\n a = !0;\n i(0);\n }\n })));\n };\n}\n\nfunction skip(r) {\n return t => i => {\n var a = e;\n var f = r;\n t((e => {\n if (0 === e) {\n i(0);\n } else if (0 === e.tag) {\n a = e[0];\n i(e);\n } else if (f-- > 0) {\n a(0);\n } else {\n i(e);\n }\n }));\n };\n}\n\nfunction skipUntil(r) {\n return t => i => {\n var a = e;\n var f = e;\n var n = !0;\n var s = !1;\n var l = !1;\n t((e => {\n if (l) {} else if (0 === e) {\n l = !0;\n if (n) {\n f(1);\n }\n i(0);\n } else if (0 === e.tag) {\n a = e[0];\n r((e => {\n if (0 === e) {\n if (n) {\n l = !0;\n a(1);\n }\n } else if (0 === e.tag) {\n (f = e[0])(0);\n } else {\n n = !1;\n f(1);\n }\n }));\n } else if (!n) {\n s = !1;\n i(e);\n } else if (!s) {\n s = !0;\n a(0);\n f(0);\n } else {\n s = !1;\n }\n }));\n i(start((e => {\n if (1 === e && !l) {\n l = !0;\n a(1);\n if (n) {\n f(1);\n }\n } else if (!l && !s) {\n s = !0;\n if (n) {\n f(0);\n }\n a(0);\n }\n })));\n };\n}\n\nfunction skipWhile(r) {\n return t => i => {\n var a = e;\n var f = !0;\n t((e => {\n if (0 === e) {\n i(0);\n } else if (0 === e.tag) {\n a = e[0];\n i(e);\n } else if (f) {\n if (r(e[0])) {\n a(0);\n } else {\n f = !1;\n i(e);\n }\n } else {\n i(e);\n }\n }));\n };\n}\n\nfunction switchMap(r) {\n return t => i => {\n var a = e;\n var f = e;\n var n = !1;\n var s = !1;\n var l = !1;\n var u = !1;\n t((t => {\n if (u) {} else if (0 === t) {\n u = !0;\n if (!l) {\n i(0);\n }\n } else if (0 === t.tag) {\n a = t[0];\n } else {\n if (l) {\n f(1);\n f = e;\n }\n if (!n) {\n n = !0;\n a(0);\n } else {\n n = !1;\n }\n !function applyInnerSource(e) {\n l = !0;\n e((e => {\n if (!l) {} else if (0 === e) {\n l = !1;\n if (u) {\n i(0);\n } else if (!n) {\n n = !0;\n a(0);\n }\n } else if (0 === e.tag) {\n s = !1;\n (f = e[0])(0);\n } else {\n i(e);\n if (!s) {\n f(0);\n } else {\n s = !1;\n }\n }\n }));\n }(r(t[0]));\n }\n }));\n i(start((e => {\n if (1 === e) {\n if (!u) {\n u = !0;\n a(1);\n }\n if (l) {\n l = !1;\n f(1);\n }\n } else {\n if (!u && !n) {\n n = !0;\n a(0);\n }\n if (l && !s) {\n s = !0;\n f(0);\n }\n }\n })));\n };\n}\n\nfunction switchAll(e) {\n return switchMap(identity)(e);\n}\n\nfunction take(r) {\n return t => i => {\n var a = e;\n var f = !1;\n var n = 0;\n t((e => {\n if (f) {} else if (0 === e) {\n f = !0;\n i(0);\n } else if (0 === e.tag) {\n if (r <= 0) {\n f = !0;\n i(0);\n e[0](1);\n } else {\n a = e[0];\n }\n } else if (n++ < r) {\n i(e);\n if (!f && n >= r) {\n f = !0;\n i(0);\n a(1);\n }\n } else {\n i(e);\n }\n }));\n i(start((e => {\n if (1 === e && !f) {\n f = !0;\n a(1);\n } else if (0 === e && !f && n < r) {\n a(0);\n }\n })));\n };\n}\n\nfunction takeLast(t) {\n return i => a => {\n var f = [];\n var n = e;\n i((e => {\n if (0 === e) {\n r(f)(a);\n } else if (0 === e.tag) {\n if (t <= 0) {\n e[0](1);\n r(f)(a);\n } else {\n (n = e[0])(0);\n }\n } else {\n if (f.length >= t && t) {\n f.shift();\n }\n f.push(e[0]);\n n(0);\n }\n }));\n };\n}\n\nfunction takeUntil(r) {\n return t => i => {\n var a = e;\n var f = e;\n var n = !1;\n t((e => {\n if (n) {} else if (0 === e) {\n n = !0;\n f(1);\n i(0);\n } else if (0 === e.tag) {\n a = e[0];\n r((e => {\n if (0 === e) {} else if (0 === e.tag) {\n (f = e[0])(0);\n } else {\n n = !0;\n f(1);\n a(1);\n i(0);\n }\n }));\n } else {\n i(e);\n }\n }));\n i(start((e => {\n if (1 === e && !n) {\n n = !0;\n a(1);\n f(1);\n } else if (!n) {\n a(0);\n }\n })));\n };\n}\n\nfunction takeWhile(r, t) {\n return i => a => {\n var f = e;\n var n = !1;\n i((e => {\n if (n) {} else if (0 === e) {\n n = !0;\n a(0);\n } else if (0 === e.tag) {\n f = e[0];\n a(e);\n } else if (!r(e[0])) {\n n = !0;\n if (t) {\n a(e);\n }\n a(0);\n f(1);\n } else {\n a(e);\n }\n }));\n };\n}\n\nfunction debounce(e) {\n return r => t => {\n var i;\n var a = !1;\n var f = !1;\n r((r => {\n if (f) {} else if (0 === r) {\n f = !0;\n if (i) {\n a = !0;\n } else {\n t(0);\n }\n } else if (0 === r.tag) {\n var n = r[0];\n t(start((e => {\n if (1 === e && !f) {\n f = !0;\n a = !1;\n if (i) {\n clearTimeout(i);\n }\n n(1);\n } else if (!f) {\n n(0);\n }\n })));\n } else {\n if (i) {\n clearTimeout(i);\n }\n i = setTimeout((() => {\n i = void 0;\n t(r);\n if (a) {\n t(0);\n }\n }), e(r[0]));\n }\n }));\n };\n}\n\nfunction delay(e) {\n return r => t => {\n var i = 0;\n r((r => {\n if (0 !== r && 0 === r.tag) {\n t(r);\n } else {\n i++;\n setTimeout((() => {\n if (i) {\n i--;\n t(r);\n }\n }), e);\n }\n }));\n };\n}\n\nfunction throttle(e) {\n return r => t => {\n var i = !1;\n var a;\n r((r => {\n if (0 === r) {\n if (a) {\n clearTimeout(a);\n }\n t(0);\n } else if (0 === r.tag) {\n var f = r[0];\n t(start((e => {\n if (1 === e) {\n if (a) {\n clearTimeout(a);\n }\n f(1);\n } else {\n f(0);\n }\n })));\n } else if (!i) {\n i = !0;\n if (a) {\n clearTimeout(a);\n }\n a = setTimeout((() => {\n a = void 0;\n i = !1;\n }), e(r[0]));\n t(r);\n }\n }));\n };\n}\n\nfunction lazy(e) {\n return r => e()(r);\n}\n\nfunction fromAsyncIterable(e) {\n return r => {\n var t = e[asyncIteratorSymbol()] && e[asyncIteratorSymbol()]() || e;\n var i = !1;\n var a = !1;\n var f = !1;\n var n;\n r(start((async e => {\n if (1 === e) {\n i = !0;\n if (t.return) {\n t.return();\n }\n } else if (a) {\n f = !0;\n } else {\n for (f = a = !0; f && !i; ) {\n if ((n = await t.next()).done) {\n i = !0;\n if (t.return) {\n await t.return();\n }\n r(0);\n } else {\n try {\n f = !1;\n r(push(n.value));\n } catch (e) {\n if (t.throw) {\n if (i = !!(await t.throw(e)).done) {\n r(0);\n }\n } else {\n throw e;\n }\n }\n }\n }\n a = !1;\n }\n })));\n };\n}\n\nfunction fromIterable(e) {\n if (e[Symbol.asyncIterator]) {\n return fromAsyncIterable(e);\n }\n return r => {\n var t = e[Symbol.iterator]();\n var i = !1;\n var a = !1;\n var f = !1;\n var n;\n r(start((e => {\n if (1 === e) {\n i = !0;\n if (t.return) {\n t.return();\n }\n } else if (a) {\n f = !0;\n } else {\n for (f = a = !0; f && !i; ) {\n if ((n = t.next()).done) {\n i = !0;\n if (t.return) {\n t.return();\n }\n r(0);\n } else {\n try {\n f = !1;\n r(push(n.value));\n } catch (e) {\n if (t.throw) {\n if (i = !!t.throw(e).done) {\n r(0);\n }\n } else {\n throw e;\n }\n }\n }\n }\n a = !1;\n }\n })));\n };\n}\n\nvar r = fromIterable;\n\nfunction fromValue(e) {\n return r => {\n var t = !1;\n r(start((i => {\n if (1 === i) {\n t = !0;\n } else if (!t) {\n t = !0;\n r(push(e));\n r(0);\n }\n })));\n };\n}\n\nfunction make(e) {\n return r => {\n var t = !1;\n var i = e({\n next(e) {\n if (!t) {\n r(push(e));\n }\n },\n complete() {\n if (!t) {\n t = !0;\n r(0);\n }\n }\n });\n r(start((e => {\n if (1 === e && !t) {\n t = !0;\n i();\n }\n })));\n };\n}\n\nfunction makeSubject() {\n var e;\n var r;\n return {\n source: share(make((t => {\n e = t.next;\n r = t.complete;\n return teardownPlaceholder;\n }))),\n next(r) {\n if (e) {\n e(r);\n }\n },\n complete() {\n if (r) {\n r();\n }\n }\n };\n}\n\nvar empty = e => {\n var r = !1;\n e(start((t => {\n if (1 === t) {\n r = !0;\n } else if (!r) {\n r = !0;\n e(0);\n }\n })));\n};\n\nvar never = r => {\n r(start(e));\n};\n\nfunction interval(e) {\n return make((r => {\n var t = 0;\n var i = setInterval((() => r.next(t++)), e);\n return () => clearInterval(i);\n }));\n}\n\nfunction fromDomEvent(e, r) {\n return make((t => {\n e.addEventListener(r, t.next);\n return () => e.removeEventListener(r, t.next);\n }));\n}\n\nfunction fromPromise(e) {\n return make((r => {\n e.then((e => {\n Promise.resolve(e).then((() => {\n r.next(e);\n r.complete();\n }));\n }));\n return teardownPlaceholder;\n }));\n}\n\nfunction subscribe(r) {\n return t => {\n var i = e;\n var a = !1;\n t((e => {\n if (0 === e) {\n a = !0;\n } else if (0 === e.tag) {\n (i = e[0])(0);\n } else if (!a) {\n r(e[0]);\n i(0);\n }\n }));\n return {\n unsubscribe() {\n if (!a) {\n a = !0;\n i(1);\n }\n }\n };\n };\n}\n\nfunction forEach(e) {\n return r => {\n subscribe(e)(r);\n };\n}\n\nfunction publish(e) {\n subscribe((e => {}))(e);\n}\n\nvar t = {\n done: !0\n};\n\nvar toAsyncIterable = r => {\n var i = [];\n var a = !1;\n var f = !1;\n var n = !1;\n var s = e;\n var l;\n return {\n async next() {\n if (!f) {\n f = !0;\n r((e => {\n if (a) {} else if (0 === e) {\n if (l) {\n l = l(t);\n }\n a = !0;\n } else if (0 === e.tag) {\n n = !0;\n (s = e[0])(0);\n } else {\n n = !1;\n if (l) {\n l = l({\n value: e[0],\n done: !1\n });\n } else {\n i.push(e[0]);\n }\n }\n }));\n }\n if (a && !i.length) {\n return t;\n } else if (!a && !n && i.length <= 1) {\n n = !0;\n s(0);\n }\n return i.length ? {\n value: i.shift(),\n done: !1\n } : new Promise((e => l = e));\n },\n async return() {\n if (!a) {\n l = s(1);\n }\n a = !0;\n return t;\n },\n [asyncIteratorSymbol()]() {\n return this;\n }\n };\n};\n\nfunction toArray(r) {\n var t = [];\n var i = e;\n var a = !1;\n r((e => {\n if (0 === e) {\n a = !0;\n } else if (0 === e.tag) {\n (i = e[0])(0);\n } else {\n t.push(e[0]);\n i(0);\n }\n }));\n if (!a) {\n i(1);\n }\n return t;\n}\n\nfunction toPromise(r) {\n return new Promise((t => {\n var i = e;\n var a;\n r((e => {\n if (0 === e) {\n Promise.resolve(a).then(t);\n } else if (0 === e.tag) {\n (i = e[0])(0);\n } else {\n a = e[0];\n i(0);\n }\n }));\n }));\n}\n\nfunction zip(r) {\n var t = Object.keys(r).length;\n return i => {\n var a = new Set;\n var f = Array.isArray(r) ? new Array(t).fill(e) : {};\n var n = Array.isArray(r) ? new Array(t) : {};\n var s = !1;\n var l = !1;\n var u = !1;\n var o = 0;\n var loop = function(v) {\n r[v]((c => {\n if (0 === c) {\n if (o >= t - 1) {\n u = !0;\n i(0);\n } else {\n o++;\n }\n } else if (0 === c.tag) {\n f[v] = c[0];\n } else if (!u) {\n n[v] = c[0];\n a.add(v);\n if (!s && a.size < t) {\n if (!l) {\n for (var h in r) {\n if (!a.has(h)) {\n (f[h] || e)(0);\n }\n }\n } else {\n l = !1;\n }\n } else {\n s = !0;\n l = !1;\n i(push(Array.isArray(n) ? n.slice() : {\n ...n\n }));\n }\n }\n }));\n };\n for (var v in r) {\n loop(v);\n }\n i(start((e => {\n if (u) {} else if (1 === e) {\n u = !0;\n for (var r in f) {\n f[r](1);\n }\n } else if (!l) {\n l = !0;\n for (var t in f) {\n f[t](0);\n }\n }\n })));\n };\n}\n\nfunction combine(...e) {\n return zip(e);\n}\n\nfunction fromObservable(e) {\n return r => {\n var t = (e[observableSymbol()] ? e[observableSymbol()]() : e).subscribe({\n next(e) {\n r(push(e));\n },\n complete() {\n r(0);\n },\n error(e) {\n throw e;\n }\n });\n r(start((e => {\n if (1 === e) {\n t.unsubscribe();\n }\n })));\n };\n}\n\nfunction toObservable(r) {\n return {\n subscribe(t, i, a) {\n var f = \"object\" == typeof t ? t : {\n next: t,\n error: i,\n complete: a\n };\n var n = e;\n var s = !1;\n r((e => {\n if (s) {} else if (0 === e) {\n s = !0;\n if (f.complete) {\n f.complete();\n }\n } else if (0 === e.tag) {\n (n = e[0])(0);\n } else {\n f.next(e[0]);\n n(0);\n }\n }));\n var l = {\n closed: !1,\n unsubscribe() {\n l.closed = !0;\n s = !0;\n n(1);\n }\n };\n return l;\n },\n [observableSymbol()]() {\n return this;\n }\n };\n}\n\nfunction fromCallbag(e) {\n return r => {\n e(0, ((e, t) => {\n if (0 === e) {\n r(start((e => {\n t(e + 1);\n })));\n } else if (1 === e) {\n r(push(t));\n } else {\n r(0);\n }\n }));\n };\n}\n\nfunction toCallbag(e) {\n return (r, t) => {\n if (0 === r) {\n e((e => {\n if (0 === e) {\n t(2);\n } else if (0 === e.tag) {\n t(0, (r => {\n if (r < 3) {\n e[0](r - 1);\n }\n }));\n } else {\n t(1, e[0]);\n }\n }));\n }\n };\n}\n\nvar pipe = (...e) => {\n var r = e[0];\n for (var t = 1, i = e.length; t < i; t++) {\n r = e[t](r);\n }\n return r;\n};\n\nexport { buffer, combine, concat, concatAll, concatMap, debounce, delay, empty, filter, mergeAll as flatten, forEach, r as fromArray, fromAsyncIterable, fromCallbag, fromDomEvent, fromIterable, fromObservable, fromPromise, fromValue, interval, lazy, make, makeSubject, map, merge, mergeAll, mergeMap, never, onEnd, onPush, onStart, pipe, publish, sample, scan, share, skip, skipUntil, skipWhile, subscribe, switchAll, switchMap, take, takeLast, takeUntil, takeWhile, onPush as tap, throttle, toArray, toAsyncIterable, toCallbag, toObservable, toPromise, zip };\n//# sourceMappingURL=wonka.mjs.map\n","import {\n type BlockchainData,\n type ChainId,\n type EvmAddress,\n ResultAwareError,\n type TxHash,\n type TypedSelectionSet,\n} from '@aave/types';\nimport type { CombinedError } from '@urql/core';\n\n/**\n * @internal\n */\nexport enum GraphQLErrorCode {\n UNAUTHENTICATED = 'UNAUTHENTICATED',\n FORBIDDEN = 'FORBIDDEN',\n INTERNAL_SERVER_ERROR = 'INTERNAL_SERVER_ERROR',\n BAD_USER_INPUT = 'BAD_USER_INPUT',\n BAD_REQUEST = 'BAD_REQUEST',\n}\n/**\n * @internal\n */\nexport function hasExtensionCode(\n error: CombinedError,\n code: GraphQLErrorCode,\n): boolean {\n return error.graphQLErrors.some((gqlError) => {\n return gqlError.extensions?.code === code;\n });\n}\n\n/**\n * Error indicating an unexpected condition occurred.\n */\nexport class UnexpectedError extends ResultAwareError {\n name = 'UnexpectedError' as const;\n\n /**\n * @internal\n */\n static upgradeRequired(message: string): UnexpectedError {\n return new UnexpectedError(`${message}. Check for SDK updates.`);\n }\n}\n\n/**\n * Error indicating an error occurred while signing.\n */\nexport class SigningError extends ResultAwareError {\n name = 'SigningError' as const;\n}\n\nexport type UnsignedTransactionRequest = {\n to: EvmAddress;\n from: EvmAddress;\n data: BlockchainData;\n value: bigint;\n chainId: ChainId;\n};\n\nexport type TransactionErrorArgs = {\n txHash: TxHash;\n request: UnsignedTransactionRequest;\n link?: string;\n};\n\n/**\n * Error indicating a transaction failed.\n */\nexport class TransactionError extends ResultAwareError {\n name = 'TransactionError' as const;\n\n /**\n * The transaction hash of the failed transaction.\n */\n readonly txHash: TxHash;\n\n protected constructor(\n message: string,\n txHash: TxHash,\n cause: UnsignedTransactionRequest,\n ) {\n super(message, { cause });\n this.txHash = txHash;\n }\n\n static new(args: TransactionErrorArgs) {\n const { txHash, request, link } = args;\n const message = link\n ? `Transaction failed: ${txHash}\\n→ View on explorer: ${link}`\n : `Transaction failed: ${txHash}`;\n return new TransactionError(message, txHash, request);\n }\n}\n\n/**\n * Error indicating a timeout occurred.\n */\nexport class TimeoutError extends ResultAwareError {\n name = 'TimeoutError' as const;\n}\n\n/**\n * Error indicating an operation was not executed due to a validation error.\n * See the `cause` property for more information.\n */\nexport class ValidationError<\n TGqlNode extends TypedSelectionSet,\n> extends ResultAwareError {\n name = 'ValidationError' as const;\n\n constructor(public readonly cause: TGqlNode) {\n super(cause.__typename);\n }\n\n static fromGqlNode<TGqlNode extends TypedSelectionSet>(\n error: TGqlNode,\n ): ValidationError<TGqlNode> {\n return new ValidationError(error);\n }\n}\n\n/**\n * Error indicating the desire to cancel an operation.\n */\nexport class CancelError extends ResultAwareError {\n name = 'CancelError' as const;\n}\n","import { invariant, isNonEmptyArray } from '@aave/types';\nimport {\n CombinedError,\n type ErrorLike,\n type Exchange,\n type ExecutionResult,\n getOperationName,\n type Operation,\n type OperationResult,\n stringifyDocument,\n} from '@urql/core';\nimport {\n type FetchBody,\n makeFetchBody,\n makeFetchOptions,\n makeFetchSource,\n makeFetchURL,\n} from '@urql/core/internal';\nimport {\n filter,\n make,\n merge,\n mergeMap,\n pipe,\n type Source,\n share,\n subscribe,\n takeUntil,\n tap,\n} from 'wonka';\n\nclass Batcher {\n private queue = new Map<number, Operation>();\n private flushTimer: ReturnType<typeof setTimeout> | null = null;\n private flushing = false;\n private onBatchReady: (operations: Operation[]) => void = () => {};\n\n constructor(\n private readonly batchInterval: number,\n private readonly maxBatchSize: number,\n ) {}\n\n push(operation: Operation): void {\n this.queue.set(operation.key, operation);\n\n if (this.shouldFlush() && !this.flushing) {\n this.cancelScheduledFlush();\n this.flushBatch();\n return;\n }\n\n if (!this.flushTimer && !this.flushing) {\n this.scheduleFlush();\n }\n }\n\n remove(operation: Operation): void {\n this.queue.delete(operation.key);\n }\n\n onBatch(handler: (operations: Operation[]) => void): void {\n this.onBatchReady = handler;\n }\n\n private shouldFlush(): boolean {\n return this.queue.size >= this.maxBatchSize;\n }\n\n private scheduleFlush(): void {\n this.flushTimer = setTimeout(() => {\n this.flushTimer = null;\n this.flushBatch();\n }, this.batchInterval);\n }\n\n private cancelScheduledFlush(): void {\n if (this.flushTimer) {\n clearTimeout(this.flushTimer);\n this.flushTimer = null;\n }\n }\n\n private flushBatch(): void {\n if (this.flushing) return;\n this.flushing = true;\n\n if (this.queue.size === 0) {\n this.flushing = false;\n return;\n }\n\n const batch = Array.from(this.queue.values()).slice(0, this.maxBatchSize);\n\n this.onBatchReady(batch);\n\n for (const op of batch) {\n this.queue.delete(op.key);\n }\n\n if (this.queue.size > 0) {\n setTimeout(() => this.flushBatch(), 0);\n } else {\n this.flushing = false;\n }\n }\n}\n\nfunction makeSingleRequestSource(\n operation: Operation,\n ops$: Source<Operation>,\n): Source<OperationResult> {\n const body = makeFetchBody(operation);\n const url = makeFetchURL(operation, body);\n const fetchOptions = makeFetchOptions(operation, body);\n\n return pipe(\n makeFetchSource(operation, url, fetchOptions),\n takeUntil(\n pipe(\n ops$,\n filter((op) => op.kind === 'teardown' && op.key === operation.key),\n ),\n ),\n );\n}\n\nexport type BatchFetchExchangeConfig = {\n batchInterval: number;\n maxBatchSize: number;\n url: string;\n fetchOptions?: RequestInit | (() => RequestInit);\n};\n\n/**\n * A urql exchange that batches GraphQL query operations into single HTTP requests.\n *\n * @remarks\n * - Query operations are automatically batched together within the `batchInterval` window\n * - Batches are limited to `maxBatchSize` operations\n * - Single-operation batches use standard GraphQL request format (not array)\n * - Mutations and subscriptions are never batched\n * - Queries can opt-out of batching by setting `context.batch = false`\n * - Torn-down operations are automatically removed from pending batches\n */\nexport function batchFetchExchange({\n batchInterval,\n maxBatchSize,\n url,\n fetchOptions,\n}: BatchFetchExchangeConfig): Exchange {\n return ({ forward }) => {\n const batcher = new Batcher(batchInterval, maxBatchSize);\n\n return (ops$) => {\n const shared = share(ops$);\n\n const forward$ = pipe(\n shared,\n filter((operation) => {\n return (\n operation.kind === 'teardown' ||\n (operation.kind === 'subscription' &&\n !operation.context.fetchSubscriptions)\n );\n }),\n forward,\n );\n\n const unbatched$ = pipe(\n shared,\n filter(\n (op) =>\n op.kind === 'mutation' ||\n (op.kind === 'subscription' && !!op.context.fetchSubscriptions) ||\n (op.kind === 'query' && op.context.batch === false),\n ),\n mergeMap((operation) => makeSingleRequestSource(operation, ops$)),\n );\n\n const resultSinks = new Map<\n number,\n Array<(result: OperationResult) => void>\n >();\n\n const batched$ = pipe(\n shared,\n filter(\n (op: Operation) => op.kind === 'query' && op.context.batch !== false,\n ),\n mergeMap((op: Operation) => {\n invariant(\n op.context.url === url,\n `Operation URL mismatch: expected \"${url}\", got \"${op.context.url}\"`,\n );\n batcher.push(op);\n return make<OperationResult>(({ next }) => {\n const sinks = resultSinks.get(op.key);\n\n if (sinks) {\n sinks.push(next);\n } else {\n resultSinks.set(op.key, [next]);\n }\n\n return () => {\n batcher.remove(op);\n\n const remaining = resultSinks.get(op.key);\n if (!remaining) return;\n\n const idx = remaining.indexOf(next);\n if (idx !== -1) remaining.splice(idx, 1);\n\n if (remaining.length === 0) {\n resultSinks.delete(op.key);\n }\n };\n });\n }),\n );\n\n batcher.onBatch((operations) => {\n invariant(\n isNonEmptyArray(operations),\n 'Expected non-empty array of operations',\n );\n\n // Single operation → use standard fetch flow\n if (operations.length === 1) {\n pipe(\n makeSingleRequestSource(operations[0], ops$),\n tap((result: OperationResult) => {\n const sinks = resultSinks.get(operations[0].key);\n if (sinks) {\n for (const sink of sinks) {\n sink(result);\n }\n resultSinks.delete(operations[0].key);\n }\n }),\n subscribe(() => {}), // Activate the source (Wonka sources are lazy)\n );\n return;\n }\n\n const body = operations.map(\n (op): FetchBody => ({\n query: stringifyDocument(op.query),\n variables: op.variables ?? {},\n operationName: getOperationName(op.query),\n extensions: op.extensions,\n }),\n );\n\n const opts =\n typeof fetchOptions === 'function'\n ? fetchOptions()\n : fetchOptions || {};\n\n fetch(url, {\n method: 'POST',\n headers: {\n 'content-type': 'application/json',\n ...(opts.headers || {}),\n },\n body: JSON.stringify(body),\n ...opts,\n })\n .then((res) => res.json() as Promise<ExecutionResult[]>)\n .then((results) => {\n for (let i = 0; i < results.length && i < operations.length; i++) {\n const response = results[i];\n const op = operations[i];\n if (!op || !response) continue;\n\n const result: OperationResult = {\n operation: op,\n data: response.data,\n error: response.errors\n ? new CombinedError({\n graphQLErrors: response.errors as Array<ErrorLike>,\n })\n : undefined,\n extensions: response.extensions,\n stale: false,\n hasNext: false,\n };\n const sinks = resultSinks.get(op.key);\n if (sinks) {\n for (const sink of sinks) {\n sink(result);\n }\n resultSinks.delete(op.key);\n }\n }\n })\n .catch((err) => {\n for (const op of operations) {\n const result: OperationResult = {\n operation: op,\n data: undefined,\n error: new CombinedError({ networkError: err }),\n stale: false,\n hasNext: false,\n };\n const sinks = resultSinks.get(op.key);\n if (sinks) {\n for (const sink of sinks) {\n sink(result);\n }\n resultSinks.delete(op.key);\n }\n }\n });\n });\n\n return merge([unbatched$, batched$, forward$]);\n };\n };\n}\n","import { invariant } from '@aave/types';\nimport type { AnyVariables, TypedDocumentNode } from '@urql/core';\nimport {\n type FragmentDefinitionNode,\n type FragmentSpreadNode,\n Kind,\n type OperationDefinitionNode,\n type SelectionSetNode,\n visit,\n} from 'graphql';\nimport type { Maybe } from 'graphql/jsutils/Maybe';\nimport type { ObjMap } from 'graphql/jsutils/ObjMap';\n\nclass FragmentDeduplicator<TResult, TVariables extends AnyVariables> {\n private _fragments: ObjMap<FragmentDefinitionNode> | undefined;\n private _fragmentSpreads: Map<SelectionSetNode, Array<FragmentSpreadNode>>;\n private _recursivelyReferencedFragments: Map<\n OperationDefinitionNode,\n Array<FragmentDefinitionNode>\n >;\n\n constructor(\n private readonly document: TypedDocumentNode<TResult, TVariables>,\n ) {\n this._fragmentSpreads = new Map();\n this._recursivelyReferencedFragments = new Map();\n }\n\n dedupe(): TypedDocumentNode<TResult, TVariables> {\n const operationDefs: Array<OperationDefinitionNode> = [];\n const fragmentDefs: Array<FragmentDefinitionNode> = [];\n\n const toRemove: Array<FragmentDefinitionNode> = [];\n\n visit(this.document, {\n OperationDefinition: (node) => {\n operationDefs.push(node);\n return false;\n },\n FragmentDefinition: (node) => {\n fragmentDefs.push(node);\n return false;\n },\n Document: {\n leave: () => {\n const fragmentNameUsed = Object.create(null);\n for (const operation of operationDefs) {\n for (const fragment of this.getRecursivelyReferencedFragments(\n operation,\n )) {\n fragmentNameUsed[fragment.name.value] = true;\n }\n }\n\n for (const fragmentDef of fragmentDefs) {\n const fragName = fragmentDef.name.value;\n if (fragmentNameUsed[fragName] !== true) {\n toRemove.push(fragmentDef);\n }\n }\n },\n },\n });\n\n return visit(this.document, {\n FragmentDefinition: (node) => {\n if (toRemove.indexOf(node) !== -1) {\n return null;\n }\n return node;\n },\n });\n }\n\n private getRecursivelyReferencedFragments(\n operation: OperationDefinitionNode,\n ): ReadonlyArray<FragmentDefinitionNode> {\n let fragments = this._recursivelyReferencedFragments.get(operation);\n if (!fragments) {\n fragments = [];\n const collectedNames = Object.create(null);\n const nodesToVisit: Array<SelectionSetNode> = [operation.selectionSet];\n let node: SelectionSetNode | undefined;\n // biome-ignore lint/suspicious/noAssignInExpressions: for now\n while ((node = nodesToVisit.pop())) {\n for (const spread of this.getFragmentSpreads(node)) {\n const fragName = spread.name.value;\n if (collectedNames[fragName] !== true) {\n collectedNames[fragName] = true;\n const fragment = this.getFragment(fragName);\n if (fragment) {\n fragments.push(fragment);\n nodesToVisit.push(fragment.selectionSet);\n }\n }\n }\n }\n this._recursivelyReferencedFragments.set(operation, fragments);\n }\n return fragments;\n }\n\n private getFragmentSpreads(\n node: SelectionSetNode,\n ): ReadonlyArray<FragmentSpreadNode> {\n let spreads = this._fragmentSpreads.get(node);\n if (!spreads) {\n spreads = [];\n const setsToVisit: Array<SelectionSetNode> = [node];\n let set: SelectionSetNode | undefined;\n // biome-ignore lint/suspicious/noAssignInExpressions: safe\n while ((set = setsToVisit.pop())) {\n for (const selection of set.selections) {\n if (selection.kind === Kind.FRAGMENT_SPREAD) {\n spreads.push(selection);\n } else if (selection.selectionSet) {\n setsToVisit.push(selection.selectionSet);\n }\n }\n }\n this._fragmentSpreads.set(node, spreads);\n }\n return spreads;\n }\n\n private getFragment(name: string): Maybe<FragmentDefinitionNode> {\n let fragments: ObjMap<FragmentDefinitionNode>;\n if (this._fragments) {\n fragments = this._fragments;\n } else {\n fragments = Object.create(null);\n for (const defNode of this.document.definitions) {\n if (defNode.kind === Kind.FRAGMENT_DEFINITION) {\n fragments[defNode.name.value] = defNode;\n }\n }\n this._fragments = fragments;\n }\n return fragments[name];\n }\n}\n\n/**\n * @internal\n */\nexport class FragmentResolver {\n private constructor(\n private readonly fragments: Map<string, FragmentDefinitionNode>,\n ) {}\n\n static from(nodes: TypedDocumentNode[]): FragmentResolver {\n const fragments = new Map<string, FragmentDefinitionNode>();\n\n for (const fragment of nodes) {\n for (const definition of fragment.definitions) {\n invariant(\n definition.kind === 'FragmentDefinition',\n `expected a fragment definition, got ${fragment.definitions[0]?.kind}`,\n );\n invariant(\n !fragments.has(definition.name.value),\n `Duplicate fragment detected. A fragment named \"${definition.name.value}\" has already been provided, either directly or as part of another fragment document.`,\n );\n fragments.set(definition.name.value, definition);\n }\n }\n\n return new FragmentResolver(fragments);\n }\n\n replaceFrom<TResult, TVariables extends AnyVariables>(\n document: TypedDocumentNode<TResult, TVariables>,\n ): TypedDocumentNode<TResult, TVariables> {\n const injected = visit(document, {\n FragmentDefinition: (node) => {\n if (this.fragments.has(node.name.value)) {\n return null;\n }\n return node;\n },\n Document: {\n leave: (node) => {\n return {\n ...node,\n definitions: [...node.definitions, ...this.fragments.values()],\n };\n },\n },\n });\n\n return new FragmentDeduplicator(injected).dedupe();\n }\n}\n","type LogMethod = (...args: unknown[]) => void;\n\n/**\n * @internal\n */\nexport enum LogLevel {\n TRACE = 0,\n DEBUG = 1,\n INFO = 2,\n WARN = 3,\n ERROR = 4,\n SILENT = 5,\n}\n\n/**\n * @internal\n */\nexport class Logger {\n private level: LogLevel;\n private name: string;\n\n private constructor(name: string, level: LogLevel = LogLevel.WARN) {\n this.name = name;\n this.level = level;\n this.replaceMethods();\n }\n\n static named(name: string, level: LogLevel = LogLevel.WARN): Logger {\n return new Logger(name, level);\n }\n\n trace: LogMethod = () => {};\n debug: LogMethod = () => {};\n info: LogMethod = () => {};\n warn: LogMethod = () => {};\n error: LogMethod = () => {};\n log: LogMethod = () => {}; // alias for debug\n\n private replaceMethods() {\n (['trace', 'debug', 'info', 'warn', 'error'] as const).forEach(\n (methodName, index) => {\n if (index >= this.level) {\n this[methodName] = (...args) =>\n console[methodName === 'debug' ? 'log' : methodName](\n `[${this.name}]`,\n ...args,\n );\n }\n },\n );\n this.log = this.debug;\n }\n}\n","import type { Operation } from '@urql/core';\nimport { Kind, type OperationDefinitionNode } from 'graphql';\n\n/**\n * @internal\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\n/**\n * @internal\n */\nexport function extractOperationName(op: Operation): string | null {\n const def = op.query.definitions.find(\n (d) => d.kind === Kind.OPERATION_DEFINITION,\n ) as OperationDefinitionNode | undefined;\n return def?.name?.value ?? null;\n}\n\n/**\n * @internal\n */\nexport function isActiveQueryOperation(op: Operation): boolean {\n return op.kind === 'query' && !op.context.pause;\n}\n\n/**\n * @internal\n */\nexport function isTeardownOperation(op: Operation): boolean {\n return op.kind === 'teardown';\n}\n","import { type AnyVariables, errAsync, okAsync, ResultAsync } from '@aave/types';\nimport {\n createClient,\n type Exchange,\n makeOperation,\n type Operation,\n type OperationResult,\n type OperationResultSource,\n type RequestPolicy,\n type TypedDocumentNode,\n type Client as UrqlClient,\n} from '@urql/core';\nimport { pipe, tap } from 'wonka';\nimport { batchFetchExchange } from './batching';\nimport type { Context } from './context';\nimport { UnexpectedError } from './errors';\nimport { FragmentResolver } from './fragments';\nimport { Logger, LogLevel } from './logger';\nimport type { StandardData } from './types';\nimport {\n extractOperationName,\n isActiveQueryOperation,\n isTeardownOperation,\n} from './utils';\n\n/**\n * @internal\n */\nexport type QueryOptions = {\n /**\n * @default 'cache-and-network'\n */\n requestPolicy?: RequestPolicy;\n /**\n * @default true\n */\n batch?: boolean;\n};\n\nexport class GqlClient {\n /**\n * @internal\n */\n public readonly urql: UrqlClient;\n\n private readonly activeQueries = new Map<number, Operation>();\n\n private readonly logger: Logger;\n\n private readonly resolver: FragmentResolver;\n\n constructor(\n /**\n * @internal\n */\n public readonly context: Context,\n ) {\n this.resolver = FragmentResolver.from(context.fragments);\n this.logger = Logger.named(\n context.displayName,\n context.debug ? LogLevel.DEBUG : LogLevel.SILENT,\n );\n\n this.urql = createClient({\n url: context.environment.backend,\n requestPolicy: context.cache ? 'cache-and-network' : 'network-only',\n preferGetMethod: false, // since @urql/core@6.0.1\n exchanges: this.exchanges(),\n fetchOptions: this.getFetchOptions(),\n });\n }\n\n /**\n * Execute a GraphQL query operation.\n *\n * @param document - The GraphQL document to execute.\n * @param variables - The variables to pass to the operation.\n * @returns The result of the operation.\n */\n public query<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError>;\n /**\n * @internal\n */\n public query<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n options: QueryOptions,\n ): ResultAsync<TValue, UnexpectedError>;\n\n public query<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n { requestPolicy, batch = true }: QueryOptions = {},\n ): ResultAsync<TValue, UnexpectedError> {\n const query = this.resolver.replaceFrom(document);\n return this.resultFrom(\n this.urql.query(query, variables, { batch, requestPolicy }),\n );\n }\n\n /**\n * Execute a GraphQL mutation operation.\n *\n * @param document - The GraphQL document to execute.\n * @param variables - The variables to pass to the operation.\n * @returns The result of the operation.\n */\n public mutation<TValue, TVariables extends AnyVariables>(\n document: TypedDocumentNode<StandardData<TValue>, TVariables>,\n variables: TVariables,\n ): ResultAsync<TValue, UnexpectedError> {\n return this.resultFrom(this.urql.mutation(document, variables));\n }\n\n protected async refreshWhere(\n predicate: (op: Operation) => boolean | Promise<boolean>,\n ): Promise<void> {\n const allOps = Array.from(this.activeQueries.values());\n const predicateResults = await Promise.all(\n allOps.map(async (op) => ({\n op,\n matches: await predicate(op),\n })),\n );\n\n const ops = predicateResults\n .filter(({ matches }) => matches)\n .map(({ op }) => op);\n this.logger.debug(`Refreshing ${ops.length} matching queries`);\n for (const op of ops) {\n this.urql.reexecuteOperation(\n makeOperation(op.kind, op, {\n ...op.context,\n requestPolicy: 'network-only',\n batch: false, // never batch, run ASAP!\n }),\n );\n }\n }\n\n private exchanges(): Exchange[] {\n const exchanges: Exchange[] = [this.activeQueryRegistry()];\n\n if (this.context.cache) {\n exchanges.push(this.context.cache);\n }\n exchanges.push(\n batchFetchExchange({\n batchInterval: 1,\n maxBatchSize: 10,\n url: this.context.environment.backend,\n fetchOptions: this.getFetchOptions(),\n }),\n );\n\n return exchanges;\n }\n\n private getFetchOptions(): RequestInit {\n return {\n credentials: 'omit',\n headers: this.context.headers,\n };\n }\n\n private registerQuery(op: Operation): void {\n this.activeQueries.set(op.key, op);\n this.logger.debug(\n `Registered query: ${extractOperationName(op)} (key: ${op.key})`,\n );\n }\n\n private unregisterQuery(key: number): void {\n const op = this.activeQueries.get(key);\n if (op) {\n this.activeQueries.delete(key);\n this.logger.debug(\n `Unregistered query: ${extractOperationName(op)} (key: ${key})`,\n );\n }\n }\n\n private activeQueryRegistry(): Exchange {\n return ({ forward }) =>\n (ops$) =>\n pipe(\n ops$,\n tap((op: Operation) => {\n if (isActiveQueryOperation(op)) this.registerQuery(op);\n else if (isTeardownOperation(op)) this.unregisterQuery(op.key);\n }),\n forward,\n );\n }\n\n private resultFrom<TValue, TVariables extends AnyVariables>(\n source: OperationResultSource<\n OperationResult<StandardData<TValue>, TVariables>\n >,\n ): ResultAsync<TValue, UnexpectedError> {\n return ResultAsync.fromPromise(source.toPromise(), (err: unknown) => {\n this.logger.error(err);\n return UnexpectedError.from(err);\n }).andThen((result) => {\n if (result.error?.networkError) {\n return errAsync(UnexpectedError.from(result.error.networkError));\n }\n\n if (result.data) {\n return okAsync(result.data.value);\n }\n\n return errAsync(UnexpectedError.from(result.error));\n });\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- import {a as a$1}from'./chunk-COR3ZX64.js';import {id}from'./chunk-I6P76ICW.js';import {d as d$1,h,e,c,g}from'./chunk-IANLBRJB.js';import {R,a,b,o,J,c as c$1,p,H as H$1}from'./chunk-5S5WCHVW.js';import {defineChain,SwitchChainError,UserRejectedRequestError,TransactionExecutionError}from'viem';import {waitForTransactionReceipt,sendTransaction,estimateGas}from'viem/actions';import {sepolia,mainnet}from'viem/chains';function E(n){return p(n)&&"code"in n&&"message"in n}function F(n){return p(n)&&"name"in n&&"message"in n&&"originalError"in n?E(n.originalError)&&"code"in n.originalError:true}function D(n,e){return o(n.account,"Wallet account is required to sign typed data"),a.fromPromise(n.signTypedData({account:n.account,domain:e.domain,types:e.types,primaryType:e.primaryType,message:e.message}),r=>r instanceof UserRejectedRequestError?h.from(r):d$1.from(r)).map(H$1)}function S(n){switch(n.chainId){case R(mainnet.id):return mainnet;case R(sepolia.id):return sepolia}return defineChain({id:n.chainId,name:n.name,nativeCurrency:{name:n.nativeInfo.name,symbol:n.nativeInfo.symbol,decimals:n.nativeInfo.decimals},rpcUrls:{default:{http:[n.rpcUrl]}},blockExplorers:{default:{name:`${n.name} Explorer`,url:n.explorerUrl}}})}function Y(n){return n.map(S)}function Z(n,e,r){return a.fromPromise(e.getChainId(),t=>d$1.from(t)).andThen(t=>t===r.chainId?b():id(n,{chainId:r.chainId},{batch:false}).andThen(a$1=>(o(a$1,`Chain ${r.chainId} is not supported`),a.fromPromise(e.switchChain({id:r.chainId}),i=>d$1.from(i)).orElse(i=>(E(i.cause)?i.cause.code:F(i.cause)?i.cause.data?.originalError?.code:void 0)===SwitchChainError.code?a.fromPromise(e.addChain({chain:S(a$1)}),l=>E(l)&&l.code===UserRejectedRequestError.code?h.from(l):d$1.from(l)):i.asResultAsync()))))}function G(n,e){return a.fromPromise(estimateGas(n,{account:n.account,data:e.data,to:e.to,value:BigInt(e.value)}),r=>d$1.from(r)).map(r=>r*115n/100n)}function $(n,e){return G(n,e).andThen(r=>a.fromPromise(sendTransaction(n,{account:n.account,data:e.data,to:e.to,value:BigInt(e.value),chain:n.chain,gas:r}),t=>{if(t instanceof TransactionExecutionError){let a=t.walk(i=>i instanceof UserRejectedRequestError);if(a)return h.from(a)}return d$1.from(t)})).map(J)}function j(n){return n.account!==void 0}function B(n,e){return o(j(n),"Wallet client with account is required"),$(n,e)}function _(n,e$1,r){let t=n?.blockExplorers?.default?.url,a=t&&new URL(`/tx/${e$1}`,t).toString();return e.new({txHash:e$1,request:r,link:a})}function w(n,e,r){return a.fromPromise(waitForTransactionReceipt(n,{hash:r,pollingInterval:100,retryCount:20,retryDelay:50}),t=>c.from(t)).andThen(t=>{let a=J(t.transactionHash);switch(t.status){case "reverted":return r!==a?c$1(h.from(`Transaction replaced by ${a}`)):c$1(_(n.chain,a,e));case "success":return b({txHash:a,operations:e.operations})}})}function d(n,e){return B(n,e).andThen(r=>w(n,e,r))}function H(n,e){switch(e.__typename){case "TransactionRequest":return d(n,e);case "Erc20ApprovalRequired":return e.approvals.reduce((r,t)=>r.andThen(()=>d(n,t.byTransaction)),b(void 0)).andThen(()=>d(n,e.originalTransaction));case "PreContractActionRequired":return d(n,e.transaction).andThen(()=>d(n,e.originalTransaction));case "InsufficientBalanceError":return c$1(g.fromGqlNode(e))}}function nn(n,e){return e?H(n,e):H.bind(null,n)}function L(n,e){return e===void 0?D.bind(null,n):D(n,e)}function en(n,e){return e().andThen(r=>{if(a$1(r)){let t=r.approvals[0].bySignature;return L(n,t).map(a=>({deadline:t.message.deadline,value:a})).andThen(a=>e(a))}return b(r)})}export{S as a,Y as b,Z as c,B as d,_ as e,w as f,nn as g,L as h,en as i};//# sourceMappingURL=chunk-MGE343SH.js.map
2
- //# sourceMappingURL=chunk-MGE343SH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/viem.ts"],"names":["isRpcError","err","u","isProviderRpcError","signTypedData","walletClient","data","a","ResultAsync","UserRejectedRequestError","w","F","Z","toViemChain","chain","le","mainnet","sepolia","defineChain","viemChainsFrom","chains","ensureChain","aaveClient","request","chainId","okAsync","SwitchChainError","estimateGas","estimateGasWithViem","gas","sendEip1559Transaction","sendTransactionWithViem","TransactionExecutionError","rejected","z","isWalletClientWithAccount","sendTransaction","transactionError","txHash","baseUrl","link","A","waitForTransactionResult","initialTxHash","waitForTransactionReceipt","f","receipt","hash","errAsync","sendTransactionAndWait","executePlan","result","approval","V","sendWith","signTypedDataWith","permitWith","action","supportsPermit","permitTypedData","signature","permitSig"],"mappings":"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","file":"chunk-MGE343SH.js","sourcesContent":["import {\n CancelError,\n SigningError,\n TransactionError,\n UnexpectedError,\n ValidationError,\n} from '@aave/core';\nimport type {\n Chain,\n ERC20PermitSignature,\n ExecutionPlan,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n chainId,\n errAsync,\n invariant,\n isObject,\n okAsync,\n ResultAsync,\n type Signature,\n signatureFrom,\n type TxHash,\n txHash,\n} from '@aave/types';\nimport {\n type Account,\n defineChain,\n type ProviderRpcError,\n type RpcError,\n SwitchChainError,\n TransactionExecutionError,\n type Transport,\n UserRejectedRequestError,\n type Chain as ViemChain,\n type WalletClient,\n} from 'viem';\nimport {\n estimateGas as estimateGasWithViem,\n sendTransaction as sendTransactionWithViem,\n waitForTransactionReceipt,\n} from 'viem/actions';\nimport { mainnet, sepolia } from 'viem/chains';\nimport type { AaveClient } from './AaveClient';\nimport { chain as fetchChain } from './actions';\nimport { supportsPermit } from './adapters';\nimport type {\n ExecutionPlanHandler,\n SignTypedDataError,\n TransactionResult,\n TypedData,\n TypedDataHandler,\n} from './types';\n\nfunction isRpcError(err: unknown): err is RpcError {\n return isObject(err) && 'code' in err && 'message' in err;\n}\n\nfunction isProviderRpcError(\n err: unknown,\n): err is ProviderRpcError<{ originalError?: { code: number } }> {\n return isObject(err) &&\n 'name' in err &&\n 'message' in err &&\n 'originalError' in err\n ? isRpcError(err.originalError) && 'code' in err.originalError\n : true;\n}\n\nfunction signTypedData(\n walletClient: WalletClient,\n data: TypedData,\n): ResultAsync<Signature, SignTypedDataError> {\n invariant(\n walletClient.account,\n 'Wallet account is required to sign typed data',\n );\n\n return ResultAsync.fromPromise(\n walletClient.signTypedData({\n account: walletClient.account,\n domain: data.domain,\n types: data.types,\n primaryType: data.primaryType,\n message: data.message,\n }),\n (err) => {\n if (err instanceof UserRejectedRequestError) {\n return CancelError.from(err);\n }\n return SigningError.from(err);\n },\n ).map(signatureFrom);\n}\n\n/**\n * @internal\n */\nexport function toViemChain(chain: Chain): ViemChain {\n // known chains\n switch (chain.chainId) {\n case chainId(mainnet.id):\n return mainnet;\n\n case chainId(sepolia.id):\n return sepolia;\n }\n\n // most likely a tenderly fork\n return defineChain({\n id: chain.chainId,\n name: chain.name,\n nativeCurrency: {\n name: chain.nativeInfo.name,\n symbol: chain.nativeInfo.symbol,\n decimals: chain.nativeInfo.decimals,\n },\n rpcUrls: { default: { http: [chain.rpcUrl] } },\n blockExplorers: {\n default: {\n name: `${chain.name} Explorer`,\n url: chain.explorerUrl,\n },\n },\n });\n}\n\n/**\n * @internal\n */\nexport function viemChainsFrom(chains: Chain[]): ViemChain[] {\n return chains.map(toViemChain);\n}\n\n/**\n * @internal\n */\nexport function ensureChain(\n aaveClient: AaveClient,\n walletClient: WalletClient,\n request: TransactionRequest,\n): ResultAsync<void, CancelError | SigningError | UnexpectedError> {\n return ResultAsync.fromPromise(walletClient.getChainId(), (err) =>\n SigningError.from(err),\n ).andThen((chainId) => {\n if (chainId === request.chainId) {\n return okAsync();\n }\n\n return fetchChain(\n aaveClient,\n { chainId: request.chainId },\n { batch: false },\n ).andThen((chain) => {\n invariant(chain, `Chain ${request.chainId} is not supported`);\n\n return ResultAsync.fromPromise(\n walletClient.switchChain({ id: request.chainId }),\n (err) => SigningError.from(err),\n ).orElse((err) => {\n const code = isRpcError(err.cause)\n ? err.cause.code\n : // Unwrapping for MetaMask Mobile\n // https://github.com/MetaMask/metamask-mobile/issues/2944#issuecomment-976988719\n isProviderRpcError(err.cause)\n ? err.cause.data?.originalError?.code\n : undefined;\n\n if (code === SwitchChainError.code) {\n return ResultAsync.fromPromise(\n walletClient.addChain({ chain: toViemChain(chain) }),\n (err) => {\n if (\n isRpcError(err) &&\n err.code === UserRejectedRequestError.code\n ) {\n return CancelError.from(err);\n }\n return SigningError.from(err);\n },\n );\n }\n\n return err.asResultAsync();\n });\n });\n });\n}\n\nfunction estimateGas(\n walletClient: WalletClient,\n request: TransactionRequest,\n): ResultAsync<bigint, SigningError> {\n return ResultAsync.fromPromise(\n estimateGasWithViem(walletClient, {\n account: walletClient.account,\n data: request.data,\n to: request.to,\n value: BigInt(request.value),\n }),\n (err) => SigningError.from(err),\n ).map((gas) => (gas * 115n) / 100n); // 15% buffer\n}\n\nfunction sendEip1559Transaction(\n walletClient: WalletClient<Transport, ViemChain, Account>,\n request: TransactionRequest,\n): ResultAsync<TxHash, CancelError | SigningError> {\n return estimateGas(walletClient, request)\n .andThen((gas) =>\n ResultAsync.fromPromise(\n sendTransactionWithViem(walletClient, {\n account: walletClient.account,\n data: request.data,\n to: request.to,\n value: BigInt(request.value),\n chain: walletClient.chain,\n gas,\n }),\n (err) => {\n if (err instanceof TransactionExecutionError) {\n const rejected = err.walk(\n (err) => err instanceof UserRejectedRequestError,\n );\n\n if (rejected) {\n return CancelError.from(rejected);\n }\n }\n return SigningError.from(err);\n },\n ),\n )\n .map(txHash);\n}\n\nfunction isWalletClientWithAccount(\n walletClient: WalletClient,\n): walletClient is WalletClient<Transport, ViemChain, Account> {\n return walletClient.account !== undefined;\n}\n\n/**\n * @internal\n */\nexport function sendTransaction(\n walletClient: WalletClient,\n request: TransactionRequest,\n): ResultAsync<TxHash, CancelError | SigningError> {\n invariant(\n isWalletClientWithAccount(walletClient),\n 'Wallet client with account is required',\n );\n\n return sendEip1559Transaction(walletClient, request);\n}\n\n/**\n * @internal\n */\nexport function transactionError(\n chain: ViemChain | undefined,\n txHash: TxHash,\n request: TransactionRequest,\n): TransactionError {\n const baseUrl = chain?.blockExplorers?.default?.url;\n const link = baseUrl && new URL(`/tx/${txHash}`, baseUrl).toString();\n\n return TransactionError.new({ txHash, request, link });\n}\n\n/**\n * @internal\n */\nexport function waitForTransactionResult(\n walletClient: WalletClient,\n request: TransactionRequest,\n initialTxHash: TxHash,\n): ResultAsync<\n TransactionResult,\n CancelError | TransactionError | UnexpectedError\n> {\n return ResultAsync.fromPromise(\n waitForTransactionReceipt(walletClient, {\n hash: initialTxHash,\n pollingInterval: 100,\n retryCount: 20,\n retryDelay: 50,\n }),\n (err) => UnexpectedError.from(err),\n ).andThen((receipt) => {\n const hash = txHash(receipt.transactionHash);\n\n switch (receipt.status) {\n case 'reverted':\n if (initialTxHash !== hash) {\n return errAsync(CancelError.from(`Transaction replaced by ${hash}`));\n }\n return errAsync(transactionError(walletClient.chain, hash, request));\n case 'success':\n return okAsync({\n // viem's waitForTransactionReceipt supports transaction replacement\n // so it's important to use the transaction hash from the receipt\n txHash: hash,\n operations: request.operations,\n });\n }\n });\n}\n\nfunction sendTransactionAndWait(\n walletClient: WalletClient,\n request: TransactionRequest,\n): ResultAsync<\n TransactionResult,\n CancelError | SigningError | TransactionError | UnexpectedError\n> {\n return sendTransaction(walletClient, request).andThen((hash) =>\n waitForTransactionResult(walletClient, request, hash),\n );\n}\n\nfunction executePlan(\n walletClient: WalletClient,\n result: ExecutionPlan,\n): ReturnType<ExecutionPlanHandler> {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(walletClient, result);\n\n case 'Erc20ApprovalRequired':\n return result.approvals\n .reduce<ReturnType<typeof sendTransactionAndWait>>(\n (chain, approval) =>\n chain.andThen(() =>\n sendTransactionAndWait(walletClient, approval.byTransaction),\n ),\n okAsync(undefined as never),\n )\n .andThen(() =>\n sendTransactionAndWait(walletClient, result.originalTransaction),\n );\n\n case 'PreContractActionRequired':\n return sendTransactionAndWait(walletClient, result.transaction).andThen(\n () => sendTransactionAndWait(walletClient, result.originalTransaction),\n );\n\n case 'InsufficientBalanceError':\n return errAsync(ValidationError.fromGqlNode(result));\n }\n}\n\n/**\n * Creates an execution plan handler that sends transactions using the provided wallet client.\n */\nexport function sendWith(walletClient: WalletClient): ExecutionPlanHandler;\n/**\n * Sends execution plan transactions using the provided wallet client.\n */\nexport function sendWith<T extends ExecutionPlan = ExecutionPlan>(\n walletClient: WalletClient,\n result: T,\n): ReturnType<ExecutionPlanHandler<T>>;\nexport function sendWith<T extends ExecutionPlan = ExecutionPlan>(\n walletClient: WalletClient,\n result?: T,\n): ExecutionPlanHandler<T> | ReturnType<ExecutionPlanHandler<T>> {\n return result\n ? executePlan(walletClient, result)\n : executePlan.bind(null, walletClient);\n}\n\n/**\n * Creates a function that signs EIP-712 typed data (ERC-20 permits, swap intents, etc.) using the provided wallet client.\n *\n * @param walletClient - The wallet client to use for signing.\n * @returns A function that takes typed data and returns a ResultAsync containing the raw signature.\n *\n * ```ts\n * const result = await prepareSwapCancel(client, request)\n * .andThen(signTypedDataWith(wallet));\n * ```\n */\nexport function signTypedDataWith(walletClient: WalletClient): TypedDataHandler;\n\n/**\n * Signs EIP-712 typed data (ERC-20 permits, swap intents, etc.) using the provided wallet client.\n *\n * @param walletClient - The wallet client to use for signing.\n * @param data - The typed data to sign.\n * @returns A ResultAsync containing the raw signature.\n *\n * ```ts\n * const result = await signTypedDataWith(wallet, typedData);\n * ```\n */\nexport function signTypedDataWith(\n walletClient: WalletClient,\n data: TypedData,\n): ReturnType<TypedDataHandler>;\n\nexport function signTypedDataWith(\n walletClient: WalletClient,\n data?: TypedData,\n): TypedDataHandler | ReturnType<TypedDataHandler> {\n if (data === undefined) {\n return signTypedData.bind(null, walletClient);\n }\n return signTypedData(walletClient, data);\n}\n\n/**\n * Handles ERC20 permit signing for actions that require token approval.\n *\n * Calls the action to get an initial execution plan. If the plan requires ERC20 approval\n * and the token supports permit signatures, signs the permit and re-calls the action\n * with the signature to get a new plan that can be sent directly.\n *\n * ```ts\n * const result = await permitWith(walletClient, (permitSig) =>\n * supply(client, {\n * reserve: reserve.id,\n * amount: { erc20: { value: amount, permitSig } },\n * sender: evmAddress(walletClient.account.address),\n * })\n * )\n * .andThen(sendWith(walletClient))\n * .andThen(client.waitForTransaction);\n * ```\n *\n * @param walletClient - The wallet client to use for signing permits.\n * @param action - A function that returns an execution plan, accepting an optional permit signature.\n * @returns A ResultAsync containing the resolved ExecutionPlan ready to be sent with `sendWith`.\n */\nexport function permitWith<E>(\n walletClient: WalletClient,\n action: (permitSig?: ERC20PermitSignature) => ResultAsync<ExecutionPlan, E>,\n): ResultAsync<ExecutionPlan, E | SignTypedDataError> {\n return action().andThen((result) => {\n if (supportsPermit(result)) {\n const permitTypedData = result.approvals[0].bySignature;\n // Sign and wrap with deadline\n return signTypedDataWith(walletClient, permitTypedData)\n .map((signature) => ({\n deadline: permitTypedData.message.deadline as number,\n value: signature,\n }))\n .andThen((permitSig) => action(permitSig));\n }\n return okAsync(result);\n });\n}\n"]}