@aave/react 4.0.0-next.33 → 4.0.0-next.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4GURAVFN.js +2 -0
- package/dist/chunk-4GURAVFN.js.map +1 -0
- package/dist/chunk-4NA4FB6K.js +2 -0
- package/dist/chunk-4NA4FB6K.js.map +1 -0
- package/dist/chunk-EX7WQ47T.js +2 -0
- package/dist/chunk-EX7WQ47T.js.map +1 -0
- package/dist/ethers.cjs +1 -1637
- package/dist/ethers.cjs.map +1 -1
- package/dist/ethers.d.cts +5 -2
- package/dist/ethers.d.ts +5 -2
- package/dist/ethers.js +1 -1
- package/dist/ethers.js.map +1 -1
- package/dist/index.cjs +1 -1663
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +153 -37
- package/dist/index.d.ts +153 -37
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/{misc-B_3Pj33R.d.cts → misc-CoNW1j2i.d.cts} +16 -6
- package/dist/{misc-B5-hfFfF.d.ts → misc-D_lTGGwg.d.ts} +16 -6
- package/dist/privy.cjs +1 -1637
- package/dist/privy.cjs.map +1 -1
- package/dist/privy.d.cts +5 -2
- package/dist/privy.d.ts +5 -2
- package/dist/privy.js +1 -1
- package/dist/privy.js.map +1 -1
- package/dist/thirdweb.cjs +1 -1637
- package/dist/thirdweb.cjs.map +1 -1
- package/dist/thirdweb.d.cts +5 -2
- package/dist/thirdweb.d.ts +5 -2
- package/dist/thirdweb.js +1 -1
- package/dist/thirdweb.js.map +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/utils.js.map +1 -1
- package/dist/viem/index.cjs +1 -1637
- package/dist/viem/index.cjs.map +1 -1
- package/dist/viem/index.d.cts +6 -3
- package/dist/viem/index.d.ts +6 -3
- package/dist/viem/index.js +1 -1
- package/dist/viem/index.js.map +1 -1
- package/dist/{writes-d5YEXauI.d.cts → writes-CcVGQGt5.d.cts} +4 -1
- package/dist/{writes-d5YEXauI.d.ts → writes-CcVGQGt5.d.ts} +4 -1
- package/package.json +5 -2
- package/dist/chunk-3TDVAQWZ.js +0 -1664
- package/dist/chunk-3TDVAQWZ.js.map +0 -1
- package/dist/chunk-6A77Z4MD.js +0 -2
- package/dist/chunk-6A77Z4MD.js.map +0 -1
- package/dist/chunk-PYBBLRVB.js +0 -2
- package/dist/chunk-PYBBLRVB.js.map +0 -1
- package/dist/chunk-Q5WBQO2R.js +0 -2
- package/dist/chunk-Q5WBQO2R.js.map +0 -1
- package/dist/chunk-SXNP4MR6.js +0 -2
- package/dist/chunk-SXNP4MR6.js.map +0 -1
package/dist/ethers.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/neverthrow@8.2.0/node_modules/neverthrow/dist/index.es.js","../../../node_modules/.pnpm/big.js@7.0.1/node_modules/big.js/big.mjs","../../types/src/helpers/invariant.ts","../../types/src/helpers/typeguards.ts","../../types/src/helpers/refinements.ts","../../types/src/hex.ts","../../types/src/constants.ts","../../types/src/errors.ts","../../types/src/number.ts","../../core/src/errors.ts","../../../node_modules/.pnpm/@0no-co+graphql.web@1.1.2_graphql@16.11.0/node_modules/@0no-co/graphql.web/src/kind.js","../../../node_modules/.pnpm/@0no-co+graphql.web@1.1.2_graphql@16.11.0/node_modules/@0no-co/graphql.web/src/error.ts","../../../node_modules/.pnpm/@0no-co+graphql.web@1.1.2_graphql@16.11.0/node_modules/@0no-co/graphql.web/src/parser.ts","../../../node_modules/.pnpm/gql.tada@1.8.13_graphql@16.11.0_typescript@5.9.2/node_modules/gql.tada/src/utils.ts","../../../node_modules/.pnpm/gql.tada@1.8.13_graphql@16.11.0_typescript@5.9.2/node_modules/gql.tada/src/api.ts","../../graphql/src/enums.ts","../../graphql/src/graphql.ts","../../graphql/src/fragments/common.ts","../../graphql/src/fragments/hubs.ts","../../graphql/src/fragments/assets.ts","../../graphql/src/fragments/permits.ts","../../graphql/src/fragments/spoke.ts","../../graphql/src/fragments/reserve.ts","../../graphql/src/fragments/transactions.ts","../../graphql/src/fragments/swaps.ts","../../graphql/src/fragments/user.ts","../../graphql/src/hub.ts","../../graphql/src/misc.ts","../../graphql/src/protocol.ts","../../graphql/src/reserve.ts","../../graphql/src/spoke.ts","../../graphql/src/swaps.ts","../../graphql/src/transactions.ts","../../graphql/src/user.ts","../../client/src/options.ts","../../client/src/ethers.ts","../src/helpers/tasks.ts","../src/helpers/writes.ts","../src/ethers.ts"],"names":["defaultErrorConfig","createNeverThrowError","message","result","config","data","maybeStack","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","__values","o","s","m","i","__await","v","__asyncGenerator","g","q","verb","awaitReturn","f","n","a","b","resume","settle","r","fulfill","__asyncDelegator","p","__asyncValues","d","ResultAsync","_ResultAsync","res","promise","newPromise","Ok","errorFn","Err","fn","args","error","asyncResultList","combineResultAsyncList","combineResultAsyncListWithAllErrors","newRes","newValue","ok","_err","t","successCallback","failureCallback","errAsync","okAsync","err","combineResultList","resultList","acc","list","combineResultListWithAllErrors","Result","fromThrowable","combine","combineWithAllErrors","_f","_value","_v","_","_ok","self","DP","RM","MAX_DP","MAX_POWER","NE","PE","STRICT","NAME","INVALID","INVALID_DP","INVALID_RM","DIV_BY_ZERO","UNDEFINED","NUMERIC","_Big_","Big","x","parse","nl","round","sd","rm","more","xc","stringify","doExponential","isNonzero","y","isneg","yc","j","k","l","dp","bl","bt","cmp","ri","bz","ai","al","rl","qc","qi","xlty","xe","ye","ygtx","one","c","half","InvariantError","invariant","condition","isObject","nonNullable","isValidHexString","hexString","evmAddress","signatureFrom","txHash","ResultAwareError","cause","messages","currentError","inner","RoundingMode","_BigDecimal","exp","decimals","precision","opts","rounding","minFractionDigits","trimTrailingZeros","rounded","first","second","others","min","current","max","absStr","integerPart","integerDigits","requiredPrecision","decimalPlaces","str","minDigits","intPart","fracPart","chainId","id","GraphQLErrorCode","UnexpectedError","_UnexpectedError","SigningError","TransactionError","_TransactionError","request","link","CancelError","Kind","DOCUMENT","FRAGMENT_DEFINITION","GraphQLError","Error","constructor","nodes","source","positions","path","originalError","extensions","super","this","name","Array","isArray","_extensions","originalExtensions","toJSON","toString","Symbol","toStringTag","input","idx","kind","advance","pattern","lastIndex","test","slice","leadingRe","blockString","string","lines","split","out","commonIndent","firstNonEmptyLine","lastNonEmptyLine","length","replace","ignored","char","charCodeAt","start","nameNode","restBlockStringRe","floatPartRe","constant","match","values","push","fields","block","isComplex","JSON","arguments_","directives","arguments","type","lists","selectionSetStart","selectionSet","selections","typeCondition","alias","_directives","_selectionSet","variableDefinitions","vars","_type","_defaultValue","variable","defaultValue","fragmentDefinition","definitions","_definitions","operation","definition","options","body","loc","end","startToken","endToken","locationOffset","line","column","CONCAT_LOC_DEPTH","CONCAT_LOC_SEEN","Set","initGraphQLTada","graphql","fragments","_parse","seen","document","has","add","isFragment","filter","directive","fragment","clear","_loc","scalar","_schema","persisted","documentId","OrderDirection","PageSize","TimeWindow","OperationType","ChainsFilter","ActivityType","ApyMetric","CollateralMetric","Currency","ReservesRequestFilter","SwapKind","BorrowSwapKind","RepayWithSupplyKind","SupplySwapKind","WithdrawSwapKind","SwapStatusFilter","TokenCategory","UserPositionConditionsUpdate","QuoteAccuracy","DomainDataFragment","DecimalNumberFragment","PercentNumberFragment","DecimalNumberWithChangeFragment","ExchangeAmountFragment","TokenInfoFragment","ChainFragment","Erc20TokenFragment","NativeTokenFragment","Erc20AmountFragment","NativeAmountFragment","TokenAmountFragment","TokenFragment","ExchangeAmountWithChangeFragment","PercentNumberWithChangeFragment","PaginatedResultInfoFragment","PercentNumberVariationFragment","ExchangeAmountVariationFragment","HealthFactorWithChangeFragment","HealthFactorVariationFragment","HealthFactorErrorFragment","HealthFactorResultFragment","InsufficientBalanceErrorFragment","HubSummaryFragment","HubFragment","HubAssetSummaryFragment","HubAssetSettingsFragment","HubAssetUserStateFragment","HubAssetFragment","PermitTypedDataFragment","SpokeFragment","SpokePositionManagerFragment","PaginatedSpokePositionManagerResultFragment","SpokeUserPositionManagerFragment","PaginatedSpokeUserPositionManagerResultFragment","ReserveSettingsFragment","ReserveStatusFragment","ReserveSummaryFragment","ReserveUserStateFragment","ReserveFragment","ReserveInfoFragment","TransactionRequestFragment","Erc20ApprovalFragment","Erc20ApprovalRequiredFragment","PreContractActionRequiredFragment","ExecutionPlanFragment","SwapQuoteCostsFragment","SwapQuoteFragment","SwapTypedDataFragment","PrepareSwapOrderFragment","SwapByIntentFragment","SwapByIntentWithApprovalRequiredFragment","SwapByTransactionFragment","SwapReceiptFragment","TokenSwapQuoteResultFragment","PrepareTokenSwapResultFragment","SwapTransactionRequestFragment","SwapExecutionPlanFragment","SwapCancelledFragment","SwapExpiredFragment","PositionAmountFragment","SwapAmountFragment","SwapOpenFragment","SwapPendingSignatureFragment","SwapFulfilledFragment","SwapStatusFragment","PrepareSwapCancelResultFragment","CancelSwapExecutionPlanFragment","PaginatedUserSwapsResultFragment","PositionSwapAdapterContractApprovalFragment","PositionSwapPositionManagerApprovalFragment","PositionSwapApprovalFragment","PositionSwapByIntentApprovalsRequiredFragment","SupplySwapQuoteResultFragment","BorrowSwapQuoteResultFragment","RepayWithSupplyQuoteResultFragment","WithdrawSwapQuoteResultFragment","PreparePositionSwapResultFragment","UserSupplyItemFragment","UserBorrowItemFragment","UserSummaryFragment","UserRiskPremiumBreakdownItemFragment","UserPositionRiskPremiumFragment","UserPositionFragment","UserBalanceFragment","UserSummaryHistoryItemFragment","ApySampleFragment","HubSummarySampleFragment","AssetPriceSampleFragment","AssetSampleBreakdownFragment","AssetSupplySampleFragment","AssetBorrowSampleFragment","AssetAmountWithChangeFragment","AssetSummaryFragment","AssetFragment","ProtocolHistorySampleFragment","LiquidatePositionExecutionPlanFragment","CollateralFactorVariationFragment","LiquidationFeeVariationFragment","MaxLiquidationBonusVariationFragment","UserPositionConditionVariationFragment","PreviewUserPositionFragment","PercentNumberChangeSnapshotFragment","BorrowActivityFragment","SupplyActivityFragment","WithdrawActivityFragment","RepayActivityFragment","LiquidatedActivityFragment","UsingAsCollateralActivityFragment","UpdatedDynamicConfigActivityFragment","UpdatedRiskPremiumActivityFragment","TokenSwapActivityFragment","SupplySwapActivityFragment","BorrowSwapActivityFragment","RepayWithSupplyActivityFragment","WithdrawSwapActivityFragment","ActivityItemFragment","PaginatedActivitiesResultFragment","Oe","ve","ensureChain","signer","network","le","sendEip1559Transaction","isError","w","F","sendTransaction","waitForTransactionResult","response","receipt","hash","z","A","signTypedData","domain","types","signTypedDataWith","typedData","Z","AsyncTaskState","useAsyncTask","handler","deps","state","setState","useState","loadingRef","useRef","handle","useCallback","previousState","Rr","PendingTransaction","_PendingTransaction","wait","pr","useSendTransaction","H","useSignTypedData","C"],"mappings":"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","file":"ethers.cjs","sourcesContent":["const defaultErrorConfig = {\r\n withStackTrace: false,\r\n};\r\n// Custom error object\r\n// Context / discussion: https://github.com/supermacro/neverthrow/pull/215\r\nconst createNeverThrowError = (message, result, config = defaultErrorConfig) => {\r\n const data = result.isOk()\r\n ? { type: 'Ok', value: result.value }\r\n : { type: 'Err', value: result.error };\r\n const maybeStack = config.withStackTrace ? new Error().stack : undefined;\r\n return {\r\n data,\r\n message,\r\n stack: maybeStack,\r\n };\r\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass ResultAsync {\r\n constructor(res) {\r\n this._promise = res;\r\n }\r\n static fromSafePromise(promise) {\r\n const newPromise = promise.then((value) => new Ok(value));\r\n return new ResultAsync(newPromise);\r\n }\r\n static fromPromise(promise, errorFn) {\r\n const newPromise = promise\r\n .then((value) => new Ok(value))\r\n .catch((e) => new Err(errorFn(e)));\r\n return new ResultAsync(newPromise);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n static fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n return new ResultAsync((() => __awaiter(this, void 0, void 0, function* () {\r\n try {\r\n return new Ok(yield fn(...args));\r\n }\r\n catch (error) {\r\n return new Err(errorFn ? errorFn(error) : error);\r\n }\r\n }))());\r\n };\r\n }\r\n static combine(asyncResultList) {\r\n return combineResultAsyncList(asyncResultList);\r\n }\r\n static combineWithAllErrors(asyncResultList) {\r\n return combineResultAsyncListWithAllErrors(asyncResultList);\r\n }\r\n map(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n return new Ok(yield f(res.value));\r\n })));\r\n }\r\n andThrough(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newRes = yield f(res.value);\r\n if (newRes.isErr()) {\r\n return new Err(newRes.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n andTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n try {\r\n yield f(res.value);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n orTee(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n try {\r\n yield f(res.error);\r\n }\r\n catch (e) {\r\n // Tee does not care about the error\r\n }\r\n return new Err(res.error);\r\n })));\r\n }\r\n mapErr(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isOk()) {\r\n return new Ok(res.value);\r\n }\r\n return new Err(yield f(res.error));\r\n })));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return new ResultAsync(this._promise.then((res) => {\r\n if (res.isErr()) {\r\n return new Err(res.error);\r\n }\r\n const newValue = f(res.value);\r\n return newValue instanceof ResultAsync ? newValue._promise : newValue;\r\n }));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return new ResultAsync(this._promise.then((res) => __awaiter(this, void 0, void 0, function* () {\r\n if (res.isErr()) {\r\n return f(res.error);\r\n }\r\n return new Ok(res.value);\r\n })));\r\n }\r\n match(ok, _err) {\r\n return this._promise.then((res) => res.match(ok, _err));\r\n }\r\n unwrapOr(t) {\r\n return this._promise.then((res) => res.unwrapOr(t));\r\n }\r\n /**\r\n * @deprecated will be removed in 9.0.0.\r\n *\r\n * You can use `safeTry` without this method.\r\n * @example\r\n * ```typescript\r\n * safeTry(async function* () {\r\n * const okValue = yield* yourResult\r\n * })\r\n * ```\r\n * Emulates Rust's `?` operator in `safeTry`'s body. See also `safeTry`.\r\n */\r\n safeUnwrap() {\r\n return __asyncGenerator(this, arguments, function* safeUnwrap_1() {\r\n return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(yield __await(this._promise.then((res) => res.safeUnwrap()))))));\r\n });\r\n }\r\n // Makes ResultAsync implement PromiseLike<Result>\r\n then(successCallback, failureCallback) {\r\n return this._promise.then(successCallback, failureCallback);\r\n }\r\n [Symbol.asyncIterator]() {\r\n return __asyncGenerator(this, arguments, function* _a() {\r\n const result = yield __await(this._promise);\r\n if (result.isErr()) {\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield yield __await(errAsync(result.error));\r\n }\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return yield __await(result.value);\r\n });\r\n }\r\n}\r\nfunction okAsync(value) {\r\n return new ResultAsync(Promise.resolve(new Ok(value)));\r\n}\r\nfunction errAsync(err) {\r\n return new ResultAsync(Promise.resolve(new Err(err)));\r\n}\r\nconst fromPromise = ResultAsync.fromPromise;\r\nconst fromSafePromise = ResultAsync.fromSafePromise;\r\nconst fromAsyncThrowable = ResultAsync.fromThrowable;\n\n/**\r\n * Short circuits on the FIRST Err value that we find\r\n */\r\nconst combineResultList = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr()) {\r\n acc = err(result.error);\r\n break;\r\n }\r\n else {\r\n acc.map((list) => list.push(result.value));\r\n }\r\n }\r\n return acc;\r\n};\r\n/* This is the typesafe version of Promise.all\r\n *\r\n * Takes a list of ResultAsync<T, E> and success if all inner results are Ok values\r\n * or fails if one (or more) of the inner results are Err values\r\n */\r\nconst combineResultAsyncList = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultList);\r\n/**\r\n * Give a list of all the errors we find\r\n */\r\nconst combineResultListWithAllErrors = (resultList) => {\r\n let acc = ok([]);\r\n for (const result of resultList) {\r\n if (result.isErr() && acc.isErr()) {\r\n acc.error.push(result.error);\r\n }\r\n else if (result.isErr() && acc.isOk()) {\r\n acc = err([result.error]);\r\n }\r\n else if (result.isOk() && acc.isOk()) {\r\n acc.value.push(result.value);\r\n }\r\n // do nothing when result.isOk() && acc.isErr()\r\n }\r\n return acc;\r\n};\r\nconst combineResultAsyncListWithAllErrors = (asyncResultList) => ResultAsync.fromSafePromise(Promise.all(asyncResultList)).andThen(combineResultListWithAllErrors);\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\r\nvar Result;\r\n(function (Result) {\r\n /**\r\n * Wraps a function with a try catch, creating a new function with the same\r\n * arguments but returning `Ok` if successful, `Err` if the function throws\r\n *\r\n * @param fn function to wrap with ok on success or err on failure\r\n * @param errorFn when an error is thrown, this will wrap the error result if provided\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function fromThrowable(fn, errorFn) {\r\n return (...args) => {\r\n try {\r\n const result = fn(...args);\r\n return ok(result);\r\n }\r\n catch (e) {\r\n return err(errorFn ? errorFn(e) : e);\r\n }\r\n };\r\n }\r\n Result.fromThrowable = fromThrowable;\r\n function combine(resultList) {\r\n return combineResultList(resultList);\r\n }\r\n Result.combine = combine;\r\n function combineWithAllErrors(resultList) {\r\n return combineResultListWithAllErrors(resultList);\r\n }\r\n Result.combineWithAllErrors = combineWithAllErrors;\r\n})(Result || (Result = {}));\r\nfunction ok(value) {\r\n return new Ok(value);\r\n}\r\nfunction err(err) {\r\n return new Err(err);\r\n}\r\nfunction safeTry(body) {\r\n const n = body().next();\r\n if (n instanceof Promise) {\r\n return new ResultAsync(n.then((r) => r.value));\r\n }\r\n return n.value;\r\n}\r\nclass Ok {\r\n constructor(value) {\r\n this.value = value;\r\n }\r\n isOk() {\r\n return true;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n map(f) {\r\n return ok(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n mapErr(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThrough(f) {\r\n return f(this.value).map((_value) => this.value);\r\n }\r\n andTee(f) {\r\n try {\r\n f(this.value);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return ok(this.value);\r\n }\r\n orTee(_f) {\r\n return ok(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(_f) {\r\n return ok(this.value);\r\n }\r\n asyncAndThen(f) {\r\n return f(this.value);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n asyncAndThrough(f) {\r\n return f(this.value).map(() => this.value);\r\n }\r\n asyncMap(f) {\r\n return ResultAsync.fromSafePromise(f(this.value));\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n unwrapOr(_v) {\r\n return this.value;\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n match(ok, _err) {\r\n return ok(this.value);\r\n }\r\n safeUnwrap() {\r\n const value = this.value;\r\n /* eslint-disable-next-line require-yield */\r\n return (function* () {\r\n return value;\r\n })();\r\n }\r\n _unsafeUnwrap(_) {\r\n return this.value;\r\n }\r\n _unsafeUnwrapErr(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrapErr` on an Ok', this, config);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias, require-yield\r\n *[Symbol.iterator]() {\r\n return this.value;\r\n }\r\n}\r\nclass Err {\r\n constructor(error) {\r\n this.error = error;\r\n }\r\n isOk() {\r\n return false;\r\n }\r\n isErr() {\r\n return !this.isOk();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n map(_f) {\r\n return err(this.error);\r\n }\r\n mapErr(f) {\r\n return err(f(this.error));\r\n }\r\n andThrough(_f) {\r\n return err(this.error);\r\n }\r\n andTee(_f) {\r\n return err(this.error);\r\n }\r\n orTee(f) {\r\n try {\r\n f(this.error);\r\n }\r\n catch (e) {\r\n // Tee doesn't care about the error\r\n }\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n andThen(_f) {\r\n return err(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\r\n orElse(f) {\r\n return f(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncAndThen(_f) {\r\n return errAsync(this.error);\r\n }\r\n asyncAndThrough(_f) {\r\n return errAsync(this.error);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n asyncMap(_f) {\r\n return errAsync(this.error);\r\n }\r\n unwrapOr(v) {\r\n return v;\r\n }\r\n match(_ok, err) {\r\n return err(this.error);\r\n }\r\n safeUnwrap() {\r\n const error = this.error;\r\n return (function* () {\r\n yield err(error);\r\n throw new Error('Do not use this generator out of `safeTry`');\r\n })();\r\n }\r\n _unsafeUnwrap(config) {\r\n throw createNeverThrowError('Called `_unsafeUnwrap` on an Err', this, config);\r\n }\r\n _unsafeUnwrapErr(_) {\r\n return this.error;\r\n }\r\n *[Symbol.iterator]() {\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n const self = this;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n yield self;\r\n // @ts-expect-error -- This is structurally equivalent and safe\r\n return self;\r\n }\r\n}\r\nconst fromThrowable = Result.fromThrowable;\r\n//#endregion\n\nexport { Err, Ok, Result, ResultAsync, err, errAsync, fromAsyncThrowable, fromPromise, fromSafePromise, fromThrowable, ok, okAsync, safeTry };\n","/*\r\n * big.js v7.0.1\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2025 Michael Mclaughlin\r\n * https://github.com/MikeMcl/big.js/LICENCE.md\r\n */\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\nvar DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big, but this limit is not enforced.\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n /*\r\n * When true, an error will be thrown if a primitive number is passed to the Big constructor,\r\n * or if valueOf is called, or if toNumber is called on a Big which cannot be converted to a\r\n * primitive number without a loss of precision.\r\n */\r\n STRICT = false, // true or false\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n/*\r\n * Create and return a Big constructor.\r\n */\r\nfunction _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) {\r\n return n === UNDEFINED && arguments.length === 0 ? _Big_() : new Big(n);\r\n }\r\n\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n if (typeof n !== 'string') {\r\n if (Big.strict === true && typeof n !== 'bigint') {\r\n throw TypeError(INVALID + 'value');\r\n }\r\n\r\n // Minus zero?\r\n n = n === 0 && 1 / n < 0 ? '-0' : String(n);\r\n }\r\n\r\n parse(x, n);\r\n }\r\n\r\n // Retain a reference to this Big constructor.\r\n // Shadow Big.prototype.constructor which points to Object.\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.strict = STRICT;\r\n Big.roundDown = 0;\r\n Big.roundHalfUp = 1;\r\n Big.roundHalfEven = 2;\r\n Big.roundUp = 3;\r\n\r\n return Big;\r\n}\r\n\r\n\r\n/*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\nfunction parse(x, n) {\r\n var e, i, nl;\r\n\r\n if (!NUMERIC.test(n)) {\r\n throw Error(INVALID + 'number');\r\n }\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round Big x to a maximum of sd significant digits using rounding mode rm.\r\n *\r\n * x {Big} The Big to round.\r\n * sd {number} Significant digits: integer, 0 to MAX_DP inclusive.\r\n * rm {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\nfunction round(x, sd, rm, more) {\r\n var xc = x.c;\r\n\r\n if (rm === UNDEFINED) rm = x.constructor.RM;\r\n if (rm !== 0 && rm !== 1 && rm !== 2 && rm !== 3) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n if (sd < 1) {\r\n more =\r\n rm === 3 && (more || !!xc[0]) || sd === 0 && (\r\n rm === 1 && xc[0] >= 5 ||\r\n rm === 2 && (xc[0] > 5 || xc[0] === 5 && (more || xc[1] !== UNDEFINED))\r\n );\r\n\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = x.e - sd + 1;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else if (sd < xc.length) {\r\n\r\n // xc[sd] is the digit after the digit that may be rounded up.\r\n more =\r\n rm === 1 && xc[sd] >= 5 ||\r\n rm === 2 && (xc[sd] > 5 || xc[sd] === 5 &&\r\n (more || xc[sd + 1] !== UNDEFINED || xc[sd - 1] & 1)) ||\r\n rm === 3 && (more || !!xc[0]);\r\n\r\n // Remove any digits after the required precision.\r\n xc.length = sd;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[--sd] > 9;) {\r\n xc[sd] = 0;\r\n if (sd === 0) {\r\n ++x.e;\r\n xc.unshift(1);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (sd = xc.length; !xc[--sd];) xc.pop();\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n */\r\nfunction stringify(x, doExponential, isNonzero) {\r\n var e = x.e,\r\n s = x.c.join(''),\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (doExponential) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) {\r\n for (e -= n; e--;) s += '0';\r\n } else if (e < n) {\r\n s = s.slice(0, e) + '.' + s.slice(e);\r\n }\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && isNonzero ? '-' + s : s;\r\n}\r\n\r\n\r\n// Prototype/instance methods\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\nP.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\nP.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n\r\n // Divisor is zero?\r\n if (!b[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) {\r\n y.s = k;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n p = dp + (q.e = x.e - y.e) + 1; // precision of the result\r\n\r\n q.s = k;\r\n k = p < 0 ? 0 : p;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n p--;\r\n }\r\n\r\n // Round?\r\n if (qi > p) round(q, p, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\nP.eq = function (y) {\r\n return this.cmp(y) === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\nP.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\nP.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\nP.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\nP.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (yc[0]) {\r\n y.s = -b;\r\n } else if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = 1;\r\n }\r\n return y;\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\nP.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) {\r\n throw Error(DIV_BY_ZERO);\r\n }\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big negated.\r\n */\r\nP.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\nP.plus = P.add = function (y) {\r\n var e, k, t,\r\n x = this,\r\n Big = x.constructor;\r\n\r\n y = new Big(y);\r\n\r\n // Signs differ?\r\n if (x.s != y.s) {\r\n y.s = -y.s;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n if (!yc[0]) {\r\n if (xc[0]) {\r\n y = new Big(x);\r\n } else {\r\n y.s = x.s;\r\n }\r\n }\r\n return y;\r\n }\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (e = xe - ye) {\r\n if (e > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n e = -e;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; e--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n e = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (k = 0; e; xc[e] %= 10) k = (xc[--e] = xc[e] + yc[e] + k) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (k) {\r\n xc.unshift(k);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (e = xc.length; xc[--e] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\nP.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor('1'),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) {\r\n throw Error(INVALID + 'exponent');\r\n }\r\n\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum precision of sd\r\n * significant digits using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.prec = function (sd, rm) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n return round(new this.constructor(this), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big rounded to a maximum of dp decimal places\r\n * using rounding mode rm, or Big.RM if rm is not specified.\r\n * If dp is negative, round to an integer which is a multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.round = function (dp, rm) {\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n return round(new this.constructor(this), dp + this.e + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\nP.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big('0.5');\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) {\r\n throw Error(NAME + 'No square root');\r\n }\r\n\r\n // Estimate.\r\n s = Math.sqrt(+stringify(x, true, true));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '5e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s + '');\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, (Big.DP -= 4) + r.e + 1, Big.RM);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\nP.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) {\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = b;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in exponential notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), ++dp, rm);\r\n for (; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, true, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big in normal notation rounded to dp fixed\r\n * decimal places using rounding mode rm, or Big.RM if rm is not specified.\r\n *\r\n * dp? {number} Decimal places: integer, 0 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var x = this,\r\n n = x.c[0];\r\n\r\n if (dp !== UNDEFINED) {\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) {\r\n throw Error(INVALID_DP);\r\n }\r\n x = round(new x.constructor(x), dp + x.e + 1, rm);\r\n\r\n // x.e may have changed if the value is rounded up.\r\n for (dp = dp + x.e + 1; x.c.length < dp;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, false, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\nP.toJSON = P.toString = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, !!x.c[0]);\r\n};\r\n\r\nif (typeof Symbol !== \"undefined\") {\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.toJSON;\r\n}\r\n\r\n\r\n/*\r\n * Return the value of this Big as a primitive number.\r\n */\r\nP.toNumber = function () {\r\n var n = +stringify(this, true, true);\r\n if (this.constructor.strict === true && !this.eq(n.toString())) {\r\n throw Error(NAME + 'Imprecise conversion');\r\n }\r\n return n;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * rounding mode rm, or Big.RM if rm is not specified.\r\n * Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Significant digits: integer, 1 to MAX_DP inclusive.\r\n * rm? {number} Rounding mode: 0 (down), 1 (half-up), 2 (half-even) or 3 (up).\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var x = this,\r\n Big = x.constructor,\r\n n = x.c[0];\r\n\r\n if (sd !== UNDEFINED) {\r\n if (sd !== ~~sd || sd < 1 || sd > MAX_DP) {\r\n throw Error(INVALID + 'precision');\r\n }\r\n x = round(new Big(x), sd, rm);\r\n for (; x.c.length < sd;) x.c.push(0);\r\n }\r\n\r\n return stringify(x, sd <= x.e || x.e <= Big.NE || x.e >= Big.PE, !!n);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\nP.valueOf = function () {\r\n var x = this,\r\n Big = x.constructor;\r\n if (Big.strict === true) {\r\n throw Error(NAME + 'valueOf disallowed');\r\n }\r\n return stringify(x, x.e <= Big.NE || x.e >= Big.PE, true);\r\n};\r\n\r\n\r\n// Export\r\n\r\n\r\nexport var Big = _Big_();\r\n\r\n/// <reference types=\"https://raw.githubusercontent.com/DefinitelyTyped/DefinitelyTyped/master/types/big.js/index.d.ts\" />\r\nexport default Big;\r\n","/**\n * An error that occurs when a task violates a logical condition that is assumed to be true at all times.\n */\nexport class InvariantError extends Error {\n name = 'InvariantError' as const;\n}\n\n/**\n * Asserts that the given condition is truthy\n * @internal\n *\n * @param condition - Either truthy or falsy value\n * @param message - An error message\n */\nexport function invariant(\n condition: unknown,\n message: string,\n): asserts condition {\n if (!condition) {\n throw new InvariantError(message);\n }\n}\n","import type { NonEmptyTuple, UnknownRecord } from 'type-fest';\n\nexport type { NonEmptyTuple, UnknownRecord };\n\nexport function isObject(value: unknown): value is UnknownRecord {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Checks if the given array is a non-empty array.\n */\nexport function isNonEmptyArray<T>(\n value: readonly T[],\n): value is NonEmptyTuple<T> {\n return value.length > 0;\n}\n\n/**\n * Checks if the given array is a one-entry array.\n */\nexport function isOneEntryArray<T>(value: readonly T[]): value is [T] {\n return value.length === 1;\n}\n","import { InvariantError } from './invariant';\n\n/**\n * Refinement function to check if a value is not null or undefined.\n */\nexport function nonNullable<T>(value: T): Exclude<T, null | undefined> {\n if (value === null || value === undefined) {\n throw new InvariantError('Value should not be null or undefined');\n }\n return value as Exclude<T, null | undefined>;\n}\n\n/**\n * Creates a refinement function to check if a value has a specific `__typename` in a union of types with `__typename`.\n */\nexport function expectTypename<\n T extends { __typename: string },\n Name extends T['__typename'],\n>(typename: Name) {\n return (value: T): Extract<T, { __typename: Name }> => {\n if (value.__typename !== typename) {\n throw new InvariantError(\n `Expected __typename to be \"${typename}\", but got \"${value.__typename}\"`,\n );\n }\n return value as Extract<T, { __typename: Name }>;\n };\n}\n","import type { Tagged } from 'type-fest';\nimport { invariant } from './helpers';\n\n/**\n * A string that represents a hex value with a `0x` prefix.\n */\nexport type HexString = `0x${string}`;\n\n/**\n * Validates whether a given value is a valid hex string with a `0x` prefix.\n */\nexport function isValidHexString(value: string): value is HexString {\n return /^0x[a-fA-F0-9]+$/.test(value);\n}\n\n/**\n * Creates a hex string from a given value.\n */\nexport function hexString<T extends string = HexString>(value: string): T {\n invariant(\n isValidHexString(value),\n `Expected a valid hex string, but got: ${value}`,\n );\n return value as T;\n}\n\n/**\n * An EVM address.\n */\nexport type EvmAddress = Tagged<HexString, 'EvmAddress'>;\n\n/**\n * Creates an EVM address from a given value.\n */\nexport function evmAddress(value: string) {\n invariant(value.length === 42, `EvmAddress: invalid length ${value.length}`);\n return hexString<EvmAddress>(value);\n}\n\n/**\n * RLP-encoded blockchain data.\n */\nexport type BlockchainData = Tagged<HexString, 'BlockchainData'>;\nexport const blockchainData = hexString<BlockchainData>;\n\n/**\n * A signature.\n */\nexport type Signature = Tagged<HexString, 'Signature'>;\nexport const signatureFrom = hexString<Signature>;\n\n/**\n * Type guard for a Signature.\n */\nexport function isSignature(value: unknown): value is Signature {\n return typeof value === 'string' && isValidHexString(value);\n}\n\n/**\n * A transaction hash.\n */\nexport type TxHash = Tagged<HexString, 'TxHash'>;\nexport const txHash = hexString<TxHash>;\n","import { evmAddress } from './hex';\n\nexport const ZERO_ADDRESS = evmAddress(\n '0x0000000000000000000000000000000000000000',\n);\n","import { err, errAsync, type Result, type ResultAsync } from 'neverthrow';\nimport { isObject } from './helpers';\n\nexport class ResultAwareError extends Error {\n /**\n * @internal\n */\n asResultAsync(): ResultAsync<never, typeof this> {\n return errAsync(this);\n }\n\n /**\n * @internal\n */\n asResult(): Result<never, typeof this> {\n return err(this);\n }\n\n /**\n * @internal\n */\n static from<T extends typeof ResultAwareError>(\n this: T,\n message: string,\n ): InstanceType<T>;\n static from<T extends typeof ResultAwareError>(\n this: T,\n cause: unknown,\n ): InstanceType<T>;\n static from<T extends typeof ResultAwareError>(\n this: T,\n args: unknown,\n ): InstanceType<T> {\n if (args instanceof Error) {\n // biome-ignore lint/complexity/noThisInStatic: intentional\n const message = this.formatMessage(args);\n // biome-ignore lint/complexity/noThisInStatic: intentional\n return new this(message, { cause: args }) as InstanceType<T>;\n }\n\n if (isObject(args) && 'message' in args) {\n // biome-ignore lint/complexity/noThisInStatic: intentional\n return new this(String(args.message)) as InstanceType<T>;\n }\n\n // biome-ignore lint/complexity/noThisInStatic: intentional\n return new this(String(args)) as InstanceType<T>;\n }\n\n static is<T extends typeof ResultAwareError>(\n this: T,\n error: unknown,\n ): error is InstanceType<T> {\n // biome-ignore lint/complexity/noThisInStatic: intentional\n return error instanceof this;\n }\n\n private static formatMessage(cause: Error): string {\n const messages: string[] = [];\n let currentError: unknown = cause;\n\n while (currentError instanceof Error) {\n if ('errors' in currentError && Array.isArray(currentError.errors)) {\n // Handle AggregateError\n const inner = currentError.errors.map((e: unknown) =>\n e instanceof Error ? e.message : String(e),\n );\n messages.push(inner.join(', '));\n } else {\n messages.push(currentError.message);\n }\n currentError = currentError.cause;\n }\n\n return messages.join(' due to ');\n }\n}\n","import { Big } from 'big.js';\nimport type { Tagged } from 'type-fest';\nimport { InvariantError, invariant } from './helpers';\n\nBig.strict = true;\n\n/**\n * Valid input types for BigDecimal operations.\n */\nexport type BigDecimalSource = string | number | bigint | BigDecimal;\n\n/**\n * Rounding mode for BigDecimal operations.\n */\nexport enum RoundingMode {\n /**\n * Rounds towards zero (truncate, no rounding).\n */\n Down = 0,\n /**\n * Rounds towards nearest neighbor; if equidistant, rounds away from zero.\n */\n HalfUp = 1,\n /**\n * Rounds towards nearest neighbor; if equidistant, rounds towards even neighbor.\n */\n HalfEven = 2,\n /**\n * Rounds away from zero.\n */\n Up = 3,\n}\n\n/**\n * A high precision decimal number built on top of `big.js` library.\n */\nexport class BigDecimal {\n private readonly value: Big;\n\n private static readonly MAX_VAL = BigDecimal.new(Number.MAX_VALUE.toString()); // ≈ 1.7976931348623157e+308\n private static readonly MIN_VAL = BigDecimal.new(Number.MIN_VALUE.toString()); // ≈ 5e-324 (smallest positive subnormal)\n\n private constructor(value: Big.BigSource) {\n this.value = new Big(value);\n }\n\n /**\n * Throws an error to prevent implicit conversion to a number.\n */\n valueOf(): string {\n try {\n return this.value.valueOf();\n } catch (error) {\n throw new InvariantError('BigDecimal cannot be converted to a number', {\n cause: error,\n });\n }\n }\n\n /**\n * Throws an error to prevent conversion to a number.\n *\n * If you need a JS Number, and your can afford precision loss, use `toApproximateNumber()` instead.\n */\n toNumber(): number {\n throw new InvariantError('BigDecimal cannot be converted to a number');\n }\n\n /**\n * Returns a BigDecimal whose value is the absolute value, i.e. the magnitude, of this BigDecimal.\n */\n abs(): BigDecimal {\n return new BigDecimal(this.value.abs());\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal plus n - alias for .plus().\n *\n * @throws `NaN` if n is invalid.\n */\n add(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.add(this.toBigSource(n)));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal divided by n.\n *\n * @throws `NaN` if n is invalid.\n * @throws `±Infinity` on division by zero.\n * @throws `NaN` on division of zero by zero.\n */\n div(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.div(this.toBigSource(n)));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal minus n.\n *\n * @throws `NaN` if n is invalid.\n */\n minus(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.minus(this.toBigSource(n)));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal modulo n, i.e. the integer remainder of dividing this BigDecimal by n.\n *\n * The result will have the same sign as this BigDecimal, and it will match that of Javascript's % operator (within the limits of its precision) and BigDecimal's remainder method.\n *\n * @throws `NaN` if n is negative or otherwise invalid.\n */\n mod(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.mod(this.toBigSource(n)));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal times n - alias for .times().\n *\n * @throws `NaN` if n is invalid.\n */\n mul(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.mul(this.toBigSource(n)));\n }\n\n /**\n * Return a new BigDecimal whose value is the value of this BigDecimal negated.\n */\n neg(): BigDecimal {\n return new BigDecimal(this.value.neg());\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal plus n.\n *\n * @throws `NaN` if n is invalid.\n */\n plus(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.plus(this.toBigSource(n)));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal raised to the power exp.\n *\n * @param exp The power to raise the number to, -1e+6 to 1e+6 inclusive\n * @throws Error if exp is invalid.\n *\n * Note: High value exponents may cause this method to be slow to return.\n */\n pow(exp: number): BigDecimal {\n return new BigDecimal(this.value.pow(exp));\n }\n\n /**\n * Return a new BigDecimal whose value is the value of this BigDecimal rounded to a maximum precision of sd\n * significant digits using rounding mode rm.\n *\n * @param sd Significant digits: integer, 1 to MAX_DP inclusive.\n * @param rm Rounding mode: RoundingMode.Down (0), RoundingMode.HalfUp (1), RoundingMode.HalfEven (2), or RoundingMode.Up (3).\n * @throws Error if sd is invalid.\n * @throws Error if rm is invalid.\n */\n prec(sd: number, rm?: RoundingMode): BigDecimal {\n return new BigDecimal(this.value.prec(sd, rm));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal rounded using rounding mode rm to a maximum of dp decimal places.\n *\n * @param dp Decimal places, 0 to 1e+6 inclusive\n * @param rm Rounding mode: RoundingMode.Down (0), RoundingMode.HalfUp (1), RoundingMode.HalfEven (2), or RoundingMode.Up (3).\n * @throws Error if dp is invalid.\n * @throws Error if rm is invalid.\n */\n round(dp?: number, rm?: RoundingMode): BigDecimal {\n return new BigDecimal(this.value.round(dp, rm));\n }\n\n /**\n * Returns a BigDecimal whose value is the square root of this BigDecimal.\n *\n * @throws `NaN` if this BigDecimal is negative.\n */\n sqrt(): BigDecimal {\n return new BigDecimal(this.value.sqrt());\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal minus n - alias for .minus().\n *\n * @throws `NaN` if n is invalid.\n */\n sub(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.sub(this.toBigSource(n)));\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal times n.\n *\n * @throws `NaN` if n is invalid.\n */\n times(n: BigDecimalSource): BigDecimal {\n return new BigDecimal(this.value.times(this.toBigSource(n)));\n }\n\n /**\n * Compare the values.\n *\n * @returns 1 if this BigDecimal is greater than n, 0 if equal, -1 if less than n.\n * @throws `NaN` if n is invalid.\n */\n cmp(n: BigDecimalSource): Big.Comparison {\n return this.value.cmp(this.toBigSource(n));\n }\n\n /**\n * Returns true if the value of this BigDecimal equals the value of n, otherwise returns false.\n *\n * @throws `NaN` if n is invalid.\n */\n eq(n: BigDecimalSource): boolean {\n return this.value.eq(this.toBigSource(n));\n }\n\n /**\n * Returns true if the value of this BigDecimal is greater than the value of n, otherwise returns false.\n *\n * @throws `NaN` if n is invalid.\n */\n gt(n: BigDecimalSource): boolean {\n return this.value.gt(this.toBigSource(n));\n }\n\n /**\n * Returns true if the value of this BigDecimal is greater than or equal to the value of n, otherwise returns false.\n *\n * @throws `NaN` if n is invalid.\n */\n gte(n: BigDecimalSource): boolean {\n return this.value.gte(this.toBigSource(n));\n }\n\n /**\n * Returns true if the value of this BigDecimal is less than the value of n, otherwise returns false.\n *\n * @throws `NaN` if n is invalid.\n */\n lt(n: BigDecimalSource): boolean {\n return this.value.lt(this.toBigSource(n));\n }\n\n /**\n * Returns true if the value of this BigDecimal is less than or equal to the value of n, otherwise returns false.\n *\n * @throws `NaN` if n is invalid.\n */\n lte(n: BigDecimalSource): boolean {\n return this.value.lte(this.toBigSource(n));\n }\n\n /**\n * Returns a string representing the value of this BigDecimal in exponential notation to a fixed number of decimal places dp.\n *\n * @param dp Decimal places, 0 to 1e+6 inclusive\n * @param rm Rounding mode: RoundingMode.Down (0), RoundingMode.HalfUp (1), RoundingMode.HalfEven (2), or RoundingMode.Up (3).\n * @throws Error if dp is invalid.\n */\n toExponential(dp?: number, rm?: RoundingMode): string {\n return this.value.toExponential(dp, rm);\n }\n\n /**\n * Returns a string representing the value of this BigDecimal in normal notation to a fixed number of decimal places dp.\n *\n * @param dp Decimal places, 0 to 1e+6 inclusive\n * @param rm Rounding mode: RoundingMode.Down (0), RoundingMode.HalfUp (1), RoundingMode.HalfEven (2), or RoundingMode.Up (3).\n * @throws Error if dp is invalid.\n */\n toFixed(dp?: number, rm?: RoundingMode): string {\n return this.value.toFixed(dp, rm);\n }\n\n /**\n * Returns a string representing the value of this BigDecimal to the specified number of significant digits sd.\n *\n * @param sd Significant digits, 1 to 1e+6 inclusive\n * @param rm Rounding mode: RoundingMode.Down (0), RoundingMode.HalfUp (1), RoundingMode.HalfEven (2), or RoundingMode.Up (3).\n * @throws Error if sd is invalid.\n */\n toPrecision(sd?: number, rm?: RoundingMode): string {\n return this.value.toPrecision(sd, rm);\n }\n\n /**\n * Returns a string representing the value of this BigDecimal.\n *\n * If this BigDecimal has a positive exponent that is equal to or greater than 21, or a negative exponent equal to or less than -7, then exponential notation is returned.\n */\n toString(): string {\n return this.value.toString();\n }\n\n /**\n * Returns a string representing the value of this BigDecimal.\n *\n * This method is used by JSON.stringify() to serialize BigDecimal values.\n */\n toJSON(): string {\n return this.value.toFixed();\n }\n\n /**\n * Returns a BigDecimal whose value is the value of this BigDecimal multiplied by 10^decimals.\n *\n * @param decimals The number of decimal places to scale by (can be negative to scale down).\n */\n public rescale(decimals: number): BigDecimal {\n return this.mul(10 ** decimals);\n }\n\n /**\n * Returns a formatted string representation of this BigDecimal for display purposes.\n *\n * The precision behavior adapts based on the number's magnitude:\n * - For numbers >= 1: Always displays the full integer part, with decimal precision\n * controlled by the precision parameter (representing orders of magnitude for decimals).\n * - For numbers < 1: Uses traditional significant figures behavior.\n *\n * @param precision - Precision control parameter.\n * For numbers >= 1: Total digits to display (integer + decimal).\n * For numbers < 1: Number of significant figures.\n * @param opts - Optional formatting options.\n * @param opts.rounding - The rounding mode to apply (default: RoundingMode.HalfUp).\n * @param opts.minFractionDigits - The minimum number of digits to display\n * after the decimal point (default: 0).\n * @param opts.trimTrailingZeros - When true, removes trailing zeros after\n * the decimal point for a cleaner display (default: false).\n *\n * @returns A string representing the rounded and formatted number.\n */\n public toDisplayString(\n precision: number,\n opts?: {\n rounding?: RoundingMode;\n minFractionDigits?: number;\n trimTrailingZeros?: boolean;\n },\n ): string {\n const {\n rounding = RoundingMode.HalfUp,\n minFractionDigits = 0,\n trimTrailingZeros = false,\n } = opts ?? {};\n\n if (this.eq(0)) {\n return minFractionDigits > 0 ? `0.${'0'.repeat(minFractionDigits)}` : '0';\n }\n\n const rounded = this.applyPrecisionWithMinFractionDigits(\n precision,\n minFractionDigits,\n rounding,\n );\n\n return this.formatDecimalString(\n rounded,\n minFractionDigits,\n trimTrailingZeros,\n );\n }\n\n /**\n * Returns a JavaScript `number` approximation of this BigDecimal, safely clamped\n * within the finite range of representable values.\n *\n * This method performs a best-effort conversion to a native `number` while ensuring\n * that:\n * - Values larger than `Number.MAX_VALUE` are clamped to `Number.MAX_VALUE`.\n * - Values smaller than `-Number.MAX_VALUE` are clamped to `-Number.MAX_VALUE`.\n * - Subnormal magnitudes smaller than `Number.MIN_VALUE` are rounded to `0` (preserving sign).\n *\n * Use this method only when precision loss is acceptable — for example, when displaying\n * approximate numeric values or interfacing with APIs that require `number` types.\n *\n * @returns A finite `number` approximation of this BigDecimal.\n *\n * @example\n * ```ts\n * const x = bigDecimal('1e500');\n * x.toApproximateNumber(); // → 1.7976931348623157e+308 (clamped)\n *\n * const y = bigDecimal('0.0000000000000000000000000000001');\n * y.toApproximateNumber(); // → 0\n *\n * const z = bigDecimal('123.456');\n * z.toApproximateNumber(); // → 123.456\n * ```\n */\n public toApproximateNumber(): number {\n if (this.gt(BigDecimal.MAX_VAL)) return Number.MAX_VALUE;\n if (this.lt(BigDecimal.MAX_VAL.times(-1))) return -Number.MAX_VALUE;\n\n // subnormal underflow -> preserve sign as -0 when negative\n if (this.abs().lt(BigDecimal.MIN_VAL)) return this.lt('0') ? -0 : 0;\n\n return Number(this.toString());\n }\n\n /**\n * @internal\n */\n static new(value: string): BigDecimal {\n try {\n return new BigDecimal(value);\n } catch (error) {\n throw new InvariantError('Invalid value for BigDecimal', {\n cause: error,\n });\n }\n }\n\n static isBigDecimal(value: unknown): value is BigDecimal {\n return value instanceof BigDecimal;\n }\n\n /**\n * Returns the minimum value from the provided BigDecimal values.\n *\n * @param first - The first value to compare.\n * @param second - The second value to compare.\n * @param others - The other values to compare.\n * @returns The minimum value.\n */\n static min(\n first: BigDecimal,\n second: BigDecimal,\n ...others: BigDecimal[]\n ): BigDecimal {\n return [second, ...others].reduce<BigDecimal>((min, current) => {\n return min.lt(current) ? min : current;\n }, first);\n }\n\n /**\n * Returns the maximum value from the provided BigDecimal values.\n *\n * @param first - The first value to compare.\n * @param second - The second value to compare.\n * @param others - The other values to compare.\n * @returns The maximum value.\n */\n static max(\n first: BigDecimal,\n second: BigDecimal,\n ...others: BigDecimal[]\n ): BigDecimal {\n return [second, ...others].reduce<BigDecimal>((max, current) => {\n return max.gt(current) ? max : current;\n }, first);\n }\n\n /**\n * Converts BigDecimalSource to Big.BigSource for passing to super methods.\n */\n private toBigSource(n: BigDecimalSource): Big.BigSource {\n switch (typeof n) {\n case 'bigint':\n return n.toString();\n case 'number':\n return n.toString();\n case 'string':\n return n;\n default:\n return n.toFixed();\n }\n }\n\n private getIntegerDigitCount(): number {\n const absStr = this.abs().toFixed();\n const [integerPart] = absStr.split('.');\n return integerPart?.length ?? absStr.length;\n }\n\n private applyPrecisionWithMinFractionDigits(\n precision: number,\n minFractionDigits: number,\n rounding: RoundingMode,\n ): BigDecimal {\n const shouldRespectMinFraction = this.gte(1) && minFractionDigits > 0;\n\n if (shouldRespectMinFraction) {\n const integerDigits = this.getIntegerDigitCount();\n const requiredPrecision = integerDigits + minFractionDigits;\n const effectivePrecision = Math.max(precision, requiredPrecision);\n const decimalPlaces = effectivePrecision - integerDigits;\n return this.round(decimalPlaces, rounding);\n }\n\n return this.applyAdaptivePrecision(precision, rounding);\n }\n\n private formatDecimalString(\n value: BigDecimal,\n minFractionDigits: number,\n trimTrailingZeros: boolean,\n ): string {\n let result = value.toFixed();\n\n if (minFractionDigits > 0) {\n result = this.ensureMinFractionDigits(result, minFractionDigits);\n }\n\n if (trimTrailingZeros && result.includes('.')) {\n result = result.replace(/\\.?0+$/, '');\n }\n\n return result;\n }\n\n private ensureMinFractionDigits(str: string, minDigits: number): string {\n const [intPart, fracPart = ''] = str.split('.');\n if (fracPart.length < minDigits) {\n return `${intPart}.${fracPart.padEnd(minDigits, '0')}`;\n }\n return str;\n }\n\n private applyAdaptivePrecision(\n precision: number,\n rounding: RoundingMode,\n ): BigDecimal {\n const absValue = this.abs();\n\n // For numbers >= 1, keep all integer digits and control decimal precision\n if (absValue.gte(1)) {\n const integerDigits = this.getIntegerDigitCount();\n const decimalPlaces = Math.max(0, precision - integerDigits);\n return this.round(decimalPlaces, rounding);\n }\n\n // For numbers < 1, use traditional significant figures\n return this.prec(precision, rounding);\n }\n}\n\n/**\n * Create a new BigDecimal.\n *\n * @param value - The value to create a new BigDecimal from.\n * @returns A new BigDecimal.\n */\nexport function bigDecimal(value: BigDecimalSource): BigDecimal {\n if (value instanceof BigDecimal) {\n return value;\n }\n return BigDecimal.new(value.toString());\n}\n\n/**\n * An integer representation of a blockchain chain ID.\n */\nexport type ChainId = Tagged<number, 'ChainId'>;\nexport function chainId(value: number | bigint): ChainId {\n const id = Number(value);\n invariant(Number.isInteger(id) && id >= 0, `Invalid ChainId: ${value}`);\n return id as ChainId;\n}\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",null,null,null,"import type { DocumentNode, Location } from '@0no-co/graphql.web';\n\n/** Returns `T` if it matches `Constraint` without being equal to it. Failing this evaluates to `Fallback` otherwise. */\nexport type matchOr<Constraint, T, Fallback> = Constraint extends T\n ? Fallback\n : T extends Constraint\n ? T\n : Fallback;\n\n/** Flattens a given object type.\n *\n * @remarks\n * This is typically used to make a TypeScript type appear as a flat object,\n * both in terms of type checking and for type hints and the tsserver output.\n */\nexport type obj<T> = T extends { [key: string | number]: any } ? { [K in keyof T]: T[K] } : never;\n\n/** Turns a given union to an intersection type. */\nexport type overload<T> = (T extends any ? (x: T) => void : never) extends (x: infer U) => void\n ? U & T\n : never;\n\n/** Marks all properties as writable */\nexport type writable<T> = { -readonly [K in keyof T]: T[K] };\n\n/** Annotations for GraphQL’s `DocumentNode` with attached generics for its result data and variables types.\n *\n * @remarks\n * A GraphQL {@link DocumentNode} defines both the variables it accepts on request and the `data`\n * shape it delivers on a response in the GraphQL query language.\n *\n * To bridge the gap to TypeScript, tools may be used to generate TypeScript types that define the shape\n * of `data` and `variables` ahead of time. These types are then attached to GraphQL documents using this\n * `TypedDocumentNode` type.\n *\n * Using a `DocumentNode` that is typed like this will cause any `urql` API to type its input `variables`\n * and resulting `data` using the types provided.\n *\n * @privateRemarks\n * For compatibility reasons this type has been copied and internalized from:\n * https://github.com/dotansimha/graphql-typed-document-node/blob/3711b12/packages/core/src/index.ts#L3-L10\n *\n * @see {@link https://github.com/dotansimha/graphql-typed-document-node} for more information.\n */\nexport interface DocumentDecoration<Result = any, Variables = any> {\n /** Type to support `@graphql-typed-document-node/core`\n * @internal\n */\n __apiType?: (variables: Variables) => Result;\n /** Type to support `TypedQueryDocumentNode` from `graphql`\n * @internal\n */\n __ensureTypesOfVariablesAndResultMatching?: (variables: Variables) => Result;\n}\n\nlet CONCAT_LOC_DEPTH = 0;\nconst CONCAT_LOC_SEEN = new Set();\n\ninterface LocationNode {\n loc?: Location;\n}\n\n/** Concatenates all fragments' `loc.source.body`s */\nexport function concatLocSources(fragments: readonly LocationNode[]): string {\n try {\n CONCAT_LOC_DEPTH++;\n let result = '';\n for (const fragment of fragments) {\n if (!CONCAT_LOC_SEEN.has(fragment)) {\n CONCAT_LOC_SEEN.add(fragment);\n const { loc } = fragment;\n if (loc) result += loc.source.body;\n }\n }\n return result;\n } finally {\n if (--CONCAT_LOC_DEPTH === 0) {\n CONCAT_LOC_SEEN.clear();\n }\n }\n}\n","import type { DocumentNode, DefinitionNode, Location } from '@0no-co/graphql.web';\nimport { Kind, parse as _parse } from '@0no-co/graphql.web';\n\nimport type {\n IntrospectionLikeInput,\n ScalarsLike,\n SchemaLike,\n mapIntrospection,\n addIntrospectionScalars,\n} from './introspection';\n\nimport type {\n DefinitionDecoration,\n FragmentShape,\n getFragmentsOfDocuments,\n decorateFragmentDef,\n omitFragmentRefsRec,\n makeFragmentRef,\n} from './namespace';\n\nimport type { getDocumentType } from './selection';\nimport type { parseDocument, DocumentNodeLike } from './parser';\nimport type { getVariablesType, getScalarType } from './variables';\nimport type { obj, matchOr, writable, DocumentDecoration } from './utils';\nimport { concatLocSources } from './utils';\n\n/** Abstract configuration type input for your schema and scalars.\n *\n * @remarks\n * This is used either via {@link setupSchema} or {@link initGraphQLTada} to set\n * up your schema and scalars.\n *\n * The `scalars` option is optional and can be used to set up more scalars, apart\n * from the default ones (like: Int, Float, String, Boolean).\n * It must be an object map of scalar names to their desired TypeScript types.\n *\n * @param introspection - Introspection of your schema matching {@link IntrospectionQuery}.\n * @param scalars - An object type with scalar names as keys and the corresponding scalar types as values.\n */\ninterface AbstractSetupSchema {\n introspection: IntrospectionLikeInput;\n scalars?: ScalarsLike;\n disableMasking?: boolean;\n}\n\n/** Abstract type for internal configuration\n * @internal\n */\ninterface AbstractConfig {\n isMaskingDisabled: boolean;\n}\n\n/** This is used to configure gql.tada with your introspection data and scalars.\n *\n * @remarks\n * You may extend this interface via declaration merging with your {@link IntrospectionQuery}\n * data and optionally your scalars to get proper type inference.\n * This is done by declaring a declaration for it as per the following example.\n *\n * Configuring scalars is optional and by default the standard scalrs are already\n * defined.\n *\n * This will configure the {@link graphql} export to infer types from your schema.\n * Alternatively, you may call {@link initGraphQLTada} instead.\n *\n * @param introspection - Introspection of your schema matching {@link IntrospectionQuery}.\n * @param scalars - An object type with scalar names as keys and the corresponding scalar types as values.\n *\n * @example\n * ```\n * import type { myIntrospection } from './myIntrospection';\n *\n * declare module 'gql.tada' {\n * interface setupSchema {\n * introspection: typeof myIntrospection;\n * scalars: {\n * DateTime: string;\n * Json: any;\n * };\n * }\n * }\n * ```\n */\ninterface setupSchema extends AbstractSetupSchema {\n /*empty*/\n}\n\ninterface AbstractSetupCache {\n readonly __cacheDisabled: unknown;\n [key: string]: unknown;\n}\n\ninterface setupCache extends AbstractSetupCache {}\n\ninterface GraphQLTadaAPI<Schema extends SchemaLike, Config extends AbstractConfig> {\n /** In \"multi-schema\" mode this identifies the schema.\n * @internal */\n readonly __name: Schema['name'];\n\n /** Function to create and compose GraphQL documents with result and variable types.\n *\n * @param input - A string of a GraphQL document.\n * @param fragments - An optional list of other GraphQL fragments created with this function.\n * @returns A {@link DocumentNode} with result and variables types.\n *\n * @remarks\n * This function creates a {@link DocumentNode} with result and variables types.\n * It is used with your schema in {@link setupSchema} to create a result type\n * of your queries, fragments, and variables.\n *\n * You can compose fragments into this function by passing them and a fragment\n * mask will be created for them.\n * When creating queries, the returned document of queries can be passed into GraphQL clients\n * which will then automatically infer the result and variables types.\n *\n * @example\n * ```\n * import { graphql } from 'gql.tada';\n *\n * const bookFragment = graphql(`\n * fragment BookComponent on Book {\n * id\n * title\n * }\n * `);\n *\n * const bookQuery = graphql(`\n * query Book ($id: ID!) {\n * book(id: $id) {\n * id\n * ...BookComponent\n * }\n * }\n * `, [bookFragment]);\n * ```\n *\n * @see {@link readFragment} for how to read from fragment masks.\n */\n <const In extends string, const Fragments extends readonly FragmentShape[]>(\n input: In,\n fragments?: Fragments\n ): setupCache[In] extends DocumentNodeLike\n ? unknown extends setupCache['__cacheDisabled']\n ? setupCache[In]\n : getDocumentNode<\n parseDocument<In>,\n Schema,\n getFragmentsOfDocuments<Fragments>,\n Config['isMaskingDisabled']\n >\n : getDocumentNode<\n parseDocument<In>,\n Schema,\n getFragmentsOfDocuments<Fragments>,\n Config['isMaskingDisabled']\n >;\n\n /** Function to validate the type of a given scalar or enum value.\n *\n * @param name - The name of a scalar or enum type.\n * @param value - An optional scalar value of the given type.\n * @returns A {@link DocumentNode} with result and variables types.\n *\n * @remarks\n * This function validates that a value matches an enum or scalar type\n * as a type check.\n *\n * You can use it to retrieve the type of a given scalar or enum type\n * for use in a utility function or separate component that only\n * accepts a primitive scalar or enum value.\n *\n * Note that this function does not perform runtime checks of your\n * scalar value!\n *\n * @example\n * ```\n * import { graphql } from 'gql.tada';\n *\n * type myEnum = ReturnType<graphql.scalar<'myEnum'>>;\n *\n * const myEnumValue = graphql.scalar('myEnum', 'value');\n * ```\n */\n scalar<const Name extends string, Value>(\n name: Name,\n value: getScalarType<Name, Schema> extends Value\n ? Value & getScalarType<Name, Schema>\n : getScalarType<Name, Schema>\n ): Value;\n scalar<const Name extends string, Value>(\n name: Name,\n value: getScalarType<Name, Schema> extends Value\n ? never extends Value\n ? never\n : (Value & getScalarType<Name, Schema>) | null\n : getScalarType<Name, Schema> | null\n ): Value | null;\n scalar<const Name extends string, Value>(\n name: Name,\n value: getScalarType<Name, Schema> extends Value\n ? never extends Value\n ? never\n : (Value & getScalarType<Name, Schema>) | undefined\n : getScalarType<Name, Schema> | undefined\n ): Value | undefined;\n scalar<const Name extends string, Value>(\n name: Name,\n value: getScalarType<Name, Schema> extends Value\n ? never extends Value\n ? never\n : (Value & getScalarType<Name, Schema>) | null | undefined\n : getScalarType<Name, Schema> | null | undefined\n ): Value | null | undefined;\n scalar<const Name extends string>(\n name: Name,\n value: getScalarType<Name, Schema> | undefined\n ): getScalarType<Name, Schema>;\n\n /** Function to replace a GraphQL document with a persisted document.\n *\n * @typeParam Document - The document type of {@link TadaDocumentNode}.\n * @param id - A document ID that replaces the document for the API.\n * @returns A {@link TadaPersistedDocumentNode}.\n *\n * @remarks\n * This function may be used to replace a GraphQL document with a\n * stand-in, persisted document.\n *\n * The returned document’s value won’t contain any of the document’s\n * definitions, but its type will be equivalent to the `Document` that’s\n * been passed as a generic.\n *\n * As long as the query (type parameter of `Document`) is only referenced\n * as a type in your code, it will be omitted from your output build by\n * your bundler and the resulting GraphQL document’s ID will replace your\n * document entirely.\n *\n * @example\n * ```\n * import { graphql } from 'gql.tada';\n *\n * const query = graphql(`query MyQuery { __typename }`);\n * const persisted = graphql.persisted<typeof query>('MyQuery');\n * ```\n */\n persisted<Document extends DocumentNodeLike = never>(\n documentId: string,\n document?: Document\n ): Document extends DocumentDecoration<infer Result, infer Variables>\n ? TadaPersistedDocumentNode<Result, Variables>\n : never;\n}\n\ntype schemaOfSetup<Setup extends AbstractSetupSchema> = addIntrospectionScalars<\n mapIntrospection<matchOr<IntrospectionLikeInput, Setup['introspection'], never>>,\n matchOr<ScalarsLike, Setup['scalars'], {}>\n>;\n\ntype configOfSetup<Setup extends AbstractSetupSchema> = {\n isMaskingDisabled: Setup['disableMasking'] extends true ? true : false;\n};\n\n/** Utility to type-instantiate a `graphql` document function with.\n *\n * @remarks\n * The `initGraphQLTada` type may be used to manually instantiate a type\n * as returned by `initGraphQLTada<>()` with the same input type.\n *\n * @example\n * ```\n * import { initGraphQLTada } from 'gql.tada';\n * import type { myIntrospection } from './myIntrospection';\n *\n * export const graphql: initGraphQLTada<{\n * introspection: typeof myIntrospection;\n * scalars: {\n * DateTime: string;\n * Json: any;\n * };\n * }> = initGraphQLTada();\n *\n * const query = graphql(`{ __typename }`);\n * ```\n */\nexport type initGraphQLTada<Setup extends AbstractSetupSchema> = GraphQLTadaAPI<\n schemaOfSetup<Setup>,\n configOfSetup<Setup>\n>;\n\n/** Setup function to create a typed `graphql` document function with.\n *\n * @remarks\n * `initGraphQLTada` accepts an {@link AbstractSetupSchema} configuration object as a generic\n * and returns a `graphql` function that may be used to create documents typed using your\n * GraphQL schema.\n *\n * You should use and re-export the resulting function named as `graphql` or `gql` for your\n * editor and the TypeScript language server to recognize your GraphQL documents correctly.\n *\n * @example\n * ```\n * import { initGraphQLTada } from 'gql.tada';\n * import type { myIntrospection } from './myIntrospection';\n *\n * export const graphql = initGraphQLTada<{\n * introspection: typeof myIntrospection;\n * scalars: {\n * DateTime: string;\n * Json: any;\n * };\n * }>();\n *\n * const query = graphql(`{ __typename }`);\n * ```\n */\nexport function initGraphQLTada<const Setup extends AbstractSetupSchema>(): initGraphQLTada<Setup> {\n type Schema = schemaOfSetup<Setup>;\n type Config = configOfSetup<Setup>;\n\n function graphql(input: string, fragments?: readonly TadaDocumentNode[]): any {\n const definitions = _parse(input).definitions as writable<DefinitionNode>[];\n const seen = new Set<unknown>();\n for (const document of fragments || []) {\n for (const definition of document.definitions) {\n if (definition.kind === Kind.FRAGMENT_DEFINITION && !seen.has(definition)) {\n definitions.push(definition);\n seen.add(definition);\n }\n }\n }\n\n let isFragment: boolean;\n if (\n (isFragment = definitions[0].kind === Kind.FRAGMENT_DEFINITION) &&\n definitions[0].directives\n ) {\n definitions[0].directives = definitions[0].directives.filter(\n (directive) => directive.name.value !== '_unmask'\n );\n }\n\n let loc: Location | undefined;\n return {\n kind: Kind.DOCUMENT,\n definitions,\n get loc(): Location {\n // NOTE: This is only meant for graphql-tag compatibility. When fragment documents\n // are interpolated into other documents, graphql-tag blindly reads `document.loc`\n // without checking whether it's `undefined`.\n if (!loc && isFragment) {\n const body = input + concatLocSources(fragments || []);\n return {\n start: 0,\n end: body.length,\n source: {\n body: body,\n name: 'GraphQLTada',\n locationOffset: { line: 1, column: 1 },\n },\n };\n }\n return loc;\n },\n set loc(_loc: Location) {\n loc = _loc;\n },\n } satisfies DocumentNode;\n }\n\n graphql.scalar = function scalar(_schema: Schema, value: any) {\n return value;\n };\n\n graphql.persisted = function persisted(\n documentId: string,\n document?: TadaDocumentNode\n ): TadaPersistedDocumentNode {\n return {\n kind: Kind.DOCUMENT,\n definitions: document ? document.definitions : [],\n documentId,\n };\n };\n\n return graphql as GraphQLTadaAPI<Schema, Config>;\n}\n\n/** Alias to a GraphQL parse function returning an exact document type.\n *\n * @param input - A string of a GraphQL document\n * @returns A parsed {@link DocumentNode}.\n *\n * @remarks\n * This function accepts a GraphQL document string and parses it, just like\n * GraphQL’s `parse` function. However, its return type will be the exact\n * structure of the AST parsed in types.\n */\nfunction parse<const In extends string>(input: In): parseDocument<In> {\n return _parse(input) as any;\n}\n\nexport type getDocumentNode<\n Document extends DocumentNodeLike,\n Introspection extends SchemaLike,\n Fragments extends { [name: string]: any } = {},\n isMaskingDisabled = false,\n> =\n getDocumentType<Document, Introspection, Fragments> extends never\n ? never\n : TadaDocumentNode<\n getDocumentType<Document, Introspection, Fragments>,\n getVariablesType<Document, Introspection>,\n decorateFragmentDef<Document, isMaskingDisabled>\n >;\n\n/** A GraphQL `DocumentNode` with attached types for results and variables.\n *\n * @remarks\n * This is a GraphQL {@link DocumentNode} with attached types for results and variables.\n * This is used by GraphQL clients to infer the types of results and variables and provide\n * type-safety in GraphQL documents.\n *\n * You can create typed GraphQL documents using the {@link graphql} function.\n *\n * `Result` is the type of GraphQL results, as returned by GraphQL APIs for a given query.\n * `Variables` is the type of variables, as accepted by GraphQL APIs for a given query.\n *\n * @see {@link https://github.com/dotansimha/graphql-typed-document-node} for more information.\n */\ninterface TadaDocumentNode<\n Result = { [key: string]: any },\n Variables = { [key: string]: any },\n Decoration = void,\n> extends DocumentNode,\n DocumentDecoration<Result, Variables>,\n DefinitionDecoration<Decoration> {}\n\n/** A GraphQL persisted document with attached types for results and variables.\n *\n * @remarks\n * This type still matches a GraphQL {@link DocumentNode}, but doesn’t contain\n * any definitions. At runtime, this means that this document is empty.\n *\n * Instead of its definitions, it carries an `id` property that is typically\n * used to uniquely identify the document to your GraphQL API, without disclosing\n * the shape of the query or schema transparently.\n */\ninterface TadaPersistedDocumentNode<\n Result = { [key: string]: any },\n Variables = { [key: string]: any },\n> extends DocumentNode,\n DocumentDecoration<Result, Variables> {\n definitions: readonly DefinitionNode[];\n documentId: string;\n}\n\n/** A utility type returning the `Result` type of typed GraphQL documents.\n *\n * @remarks\n * This accepts a {@link TadaDocumentNode} and returns the attached `Result` type\n * of GraphQL documents.\n */\ntype ResultOf<Document> = Document extends DocumentDecoration<infer Result, any> ? Result : never;\n\n/** A utility type returning the `Variables` type of typed GraphQL documents.\n *\n * @remarks\n * This accepts a {@link TadaDocumentNode} and returns the attached `Variables` type\n * of GraphQL documents.\n */\ntype VariablesOf<Document> =\n Document extends DocumentDecoration<any, infer Variables> ? Variables : never;\n\n/** Creates a fragment mask for a given fragment document.\n *\n * @remarks\n * When {@link graphql} is used to create a fragment and is spread into another\n * fragment or query, their result types will only contain a “reference” to the\n * fragment. This encourages isolation and is known as “fragment masking.”\n *\n * While {@link readFragment} is used to unmask these fragment masks, this utility\n * creates a fragment mask, so you can accept the masked data in the part of your\n * codebase that defines a fragment.\n *\n * @example\n * ```\n * import { FragmentOf, graphql, readFragment } from 'gql.tada';\n *\n * const bookFragment = graphql(`\n * fragment BookComponent on Book {\n * id\n * title\n * }\n * `);\n *\n * // May be called with any GraphQL data that contains a spread of `bookFragment`\n * const getBook = (data: FragmentOf<typeof bookFragment>) => {\n * // Unmasks the fragment and casts to the result type of `bookFragment`\n * const book = readFragment(bookFragment, data);\n * };\n * ```\n *\n * @see {@link readFragment} for how to read from fragment masks.\n */\ntype FragmentOf<Document extends FragmentShape> = makeFragmentRef<Document>;\n\ntype resultOrFragmentOf<Document extends FragmentShape> = FragmentOf<Document> | ResultOf<Document>;\n\ntype resultOfT<Document extends FragmentShape, T = unknown> =\n Document extends DocumentDecoration<infer Result, any>\n ? '__typename' extends keyof T\n ? Result extends { __typename?: T['__typename'] }\n ? Result\n : never\n : Result\n : never;\n\ntype resultOfFragmentsRec<\n Fragments extends readonly any[],\n Result = {},\n> = Fragments extends readonly [infer Fragment, ...infer Rest]\n ? resultOfFragmentsRec<Rest, ResultOf<Fragment> & Result>\n : Result;\n\ntype fragmentRefsOfFragmentsRec<\n Fragments extends readonly any[],\n FragmentRefs = {},\n> = Fragments extends readonly [infer Fragment, ...infer Rest]\n ? fragmentRefsOfFragmentsRec<Rest, makeFragmentRef<Fragment> & FragmentRefs>\n : obj<FragmentRefs>;\n\n/** Unmasks a fragment mask for a given fragment document and data.\n *\n * @param _document - A GraphQL document of a fragment, created using {@link graphql}.\n * @param fragment - A mask of the fragment, which can be wrapped in arrays, or nullable.\n * @returns The unmasked data of the fragment.\n *\n * @remarks\n * When {@link graphql} is used to create a fragment and is spread into another\n * fragment or query, their result types will only contain a “reference” to the\n * fragment. This encourages isolation and is known as “fragment masking.”\n *\n * This means that you must use {@link readFragment} to unmask these fragment masks\n * and get to the data. This encourages isolation and only using the data you define\n * a part of your codebase to require.\n *\n * @example\n * ```\n * import { FragmentOf, graphql, readFragment } from 'gql.tada';\n *\n * const bookFragment = graphql(`\n * fragment BookComponent on Book {\n * id\n * title\n * }\n * `);\n *\n * const getBook = (data: FragmentOf<typeof bookFragment> | null) => {\n * // Unmasks the fragment and casts to the result type of `bookFragment`\n * // This is intersected with `| null` in this case, due to the input type.\n * const book = readFragment(bookFragment, data);\n * };\n *\n * const bookQuery = graphql(`\n * query Book ($id: ID!) {\n * book(id: $id) {\n * id\n * ...BookComponent\n * }\n * }\n * `, [bookFragment]);\n *\n * const getQuery = (data: ResultOf<typeof bookQuery>) => {\n * getBook(data?.book);\n * };\n * ```\n *\n * @see {@link readFragment} for how to read from fragment masks.\n */\nfunction readFragment<const Document extends FragmentShape = never>(\n _document: Document,\n fragment: never\n): resultOfT<Document>;\n\nfunction readFragment<\n const Document extends FragmentShape,\n const T extends resultOrFragmentOf<Document> | null | undefined | {},\n>(\n _document: Document,\n fragments: readonly T[]\n): readonly (T extends resultOrFragmentOf<Document> ? resultOfT<Document, T> : T)[];\nfunction readFragment<\n const Document extends FragmentShape,\n const T extends resultOrFragmentOf<Document> | null | undefined | {},\n>(\n _document: Document,\n fragment: T\n): T extends resultOrFragmentOf<Document> ? resultOfT<Document, T> : T;\n\n// Reading arrays of fragments with required generic\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly resultOrFragmentOf<Document>[]\n): readonly ResultOf<Document>[];\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | null)[]\n): readonly (ResultOf<Document> | null)[];\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | undefined)[]\n): readonly (ResultOf<Document> | undefined)[];\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | null | undefined)[]\n): readonly (ResultOf<Document> | null | undefined)[];\n// Reading arrays of fragments with required generic with optional `{}` type\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | {})[]\n): readonly (ResultOf<Document> | {})[];\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | null | {})[]\n): readonly (ResultOf<Document> | null | {})[];\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | undefined | {})[]\n): readonly (ResultOf<Document> | undefined | {})[];\nfunction readFragment<const Document extends FragmentShape>(\n fragment: readonly (resultOrFragmentOf<Document> | null | undefined | {})[]\n): readonly (ResultOf<Document> | null | undefined | {})[];\n// Reading fragments with required generic\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document>\n): ResultOf<Document>;\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | null\n): ResultOf<Document> | null;\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | undefined\n): ResultOf<Document> | undefined;\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | null | undefined\n): ResultOf<Document> | null | undefined;\n// Reading fragments with required generic with optional `{}` type\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | {}\n): ResultOf<Document> | {};\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | null | {}\n): ResultOf<Document> | null | {};\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | undefined | {}\n): ResultOf<Document> | undefined | {};\nfunction readFragment<const Document extends FragmentShape>(\n fragment: resultOrFragmentOf<Document> | null | undefined | {}\n): ResultOf<Document> | null | undefined | {};\n\nfunction readFragment(...args: [unknown] | [unknown, unknown]) {\n return args.length === 2 ? args[1] : args[0];\n}\n\n/** For testing, masks fragment data for given data and fragments.\n *\n * @param _fragments - A list of GraphQL documents of fragments, created using {@link graphql}.\n * @param data - The combined result data of the fragments, which can be wrapped in arrays.\n * @returns The masked data of the fragments.\n *\n * @remarks\n * When creating test data, you may define data for fragments that’s unmasked, making it\n * unusable in parent fragments or queries that require masked data.\n *\n * This means that you may have to use {@link maskFragments} to mask your data first\n * for TypeScript to not report an error.\n *\n * @example\n * ```\n * import { FragmentOf, ResultOf, graphql, maskFragments } from 'gql.tada';\n *\n * const bookFragment = graphql(`\n * fragment BookComponent on Book {\n * id\n * title\n * }\n * `);\n *\n * const data = maskFragments([bookFragment], { id: 'id', title: 'book' });\n * ```\n *\n * @see {@link readFragment} for how to read from fragment masks (i.e. the reverse)\n */\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: resultOfFragmentsRec<Fragments>\n): fragmentRefsOfFragmentsRec<Fragments>;\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: resultOfFragmentsRec<Fragments> | null\n): fragmentRefsOfFragmentsRec<Fragments> | null;\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: resultOfFragmentsRec<Fragments> | undefined\n): fragmentRefsOfFragmentsRec<Fragments> | undefined;\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: resultOfFragmentsRec<Fragments> | null | undefined\n): fragmentRefsOfFragmentsRec<Fragments> | null | undefined;\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: readonly resultOfFragmentsRec<Fragments>[]\n): readonly fragmentRefsOfFragmentsRec<Fragments>[];\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: readonly (resultOfFragmentsRec<Fragments> | null)[]\n): readonly (fragmentRefsOfFragmentsRec<Fragments> | null)[];\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: readonly (resultOfFragmentsRec<Fragments> | undefined)[]\n): readonly (fragmentRefsOfFragmentsRec<Fragments> | undefined)[];\nfunction maskFragments<const Fragments extends readonly FragmentShape[]>(\n _fragments: Fragments,\n fragment: readonly (resultOfFragmentsRec<Fragments> | null | undefined)[]\n): readonly (fragmentRefsOfFragmentsRec<Fragments> | null | undefined)[];\nfunction maskFragments(_fragments: unknown, data: unknown) {\n return data;\n}\n\n/** For testing, converts document data without fragment refs to their result type.\n *\n * @param _document - A GraphQL document, created using {@link graphql}.\n * @param data - The result data of the GraphQL document with optional fragment refs.\n * @returns The masked result data of the document.\n *\n * @remarks\n * When creating test data, you may define data for documents that’s unmasked, but\n * need to cast the data to match the result type of your document.\n *\n * This means that you may have to use {@link unsafe_readResult} to cast\n * them to the result type, instead of doing `as any as ResultOf<typeof document>`.\n *\n * This function is inherently unsafe, since it doesn't check that your document\n * actually contains the masked fragment data!\n *\n * @example\n * ```\n * import { FragmentOf, ResultOf, graphql, unsafe_readResult } from 'gql.tada';\n *\n * const bookFragment = graphql(`\n * fragment BookComponent on Book {\n * id\n * title\n * }\n * `);\n *\n * const query = graphql(`\n * query {\n * book {\n * ...BookComponent\n * }\n * }\n * `, [bookFragment]);\n *\n * const data = unsafe_readResult(query, { book: { id: 'id', title: 'book' } });\n * ```\n *\n * @see {@link readFragment} for how to read from fragment masks (i.e. the reverse)\n */\nfunction unsafe_readResult<\n const Document extends DocumentDecoration<any, any>,\n const Data extends omitFragmentRefsRec<ResultOf<Document>>,\n>(_document: Document, data: Data): ResultOf<Document> {\n return data as any;\n}\n\nconst graphql: initGraphQLTada<setupSchema> = initGraphQLTada();\n\nexport { parse, graphql, readFragment, maskFragments, unsafe_readResult };\n\nexport type {\n setupCache,\n setupSchema,\n parseDocument,\n AbstractSetupSchema,\n AbstractSetupCache,\n GraphQLTadaAPI,\n TadaDocumentNode,\n TadaPersistedDocumentNode,\n ResultOf,\n VariablesOf,\n FragmentOf,\n};\n","import type { Tagged } from 'type-fest';\n\ntype EnumValues<E> = E[keyof E];\n\nexport type OpaqueEnumVariant = Tagged<string, 'OpaqueEnumVariant'>;\n\n/**\n * Adds an opaque value to an enum-union.\n *\n * @internal\n */\nexport type ExtendWithOpaqueVariant<E> = EnumValues<E> | OpaqueEnumVariant;\n\n/**\n * The order direction for sorting results.\n */\nexport enum OrderDirection {\n Asc = 'ASC',\n Desc = 'DESC',\n}\n\n/**\n * The page size for paginated results.\n */\nexport enum PageSize {\n Ten = 'TEN',\n Fifty = 'FIFTY',\n}\n\n/**\n * The time window for the historical data.\n */\nexport enum TimeWindow {\n LastDay = 'LAST_DAY',\n LastWeek = 'LAST_WEEK',\n LastMonth = 'LAST_MONTH',\n LastSixMonths = 'LAST_SIX_MONTHS',\n LastYear = 'LAST_YEAR',\n All = 'ALL',\n}\n\n/**\n * The operation type for transactions, used for tracking transaction processing.\n */\nexport enum OperationType {\n SpokeBorrow = 'SPOKE_BORROW',\n SpokeRepay = 'SPOKE_REPAY',\n SpokeSupply = 'SPOKE_SUPPLY',\n SpokeWithdraw = 'SPOKE_WITHDRAW',\n SpokeUpdateUserRiskPremium = 'SPOKE_UPDATE_USER_RISK_PREMIUM',\n SpokeUpdateUserDynamicConfig = 'SPOKE_UPDATE_USER_DYNAMIC_CONFIG',\n SpokeSetUserUsingAsCollateral = 'SPOKE_SET_USER_USING_AS_COLLATERAL',\n SpokeSetUserPositionManager = 'SPOKE_SET_USER_POSITION_MANAGER',\n RenounceSpokeUserPositionManager = 'RENOUNCE_SPOKE_USER_POSITION_MANAGER',\n Liquidation = 'LIQUIDATION',\n}\n\n/**\n * The filter for chains.\n */\nexport enum ChainsFilter {\n TESTNET_ONLY = 'TESTNET_ONLY',\n MAINNET_ONLY = 'MAINNET_ONLY',\n ALL = 'ALL',\n}\n\n/**\n * The activity type for user history.\n */\nexport enum ActivityType {\n Borrow = 'BORROW',\n Supply = 'SUPPLY',\n Withdraw = 'WITHDRAW',\n Repay = 'REPAY',\n Liquidated = 'LIQUIDATED',\n SetAsCollateral = 'SET_AS_COLLATERAL',\n UpdatedDynamicConfig = 'UPDATED_DYNAMIC_CONFIG',\n UpdatedRiskPremium = 'UPDATED_RISK_PREMIUM',\n TokenToTokenSwap = 'TOKEN_TO_TOKEN_SWAP',\n SupplySwap = 'SUPPLY_SWAP',\n BorrowSwap = 'BORROW_SWAP',\n RepayWithSupply = 'REPAY_WITH_SUPPLY',\n WithdrawSwap = 'WITHDRAW_SWAP',\n}\n\n/**\n * The APY metric for comparing rates.\n */\nexport enum ApyMetric {\n Highest = 'HIGHEST',\n Lowest = 'LOWEST',\n Average = 'AVERAGE',\n}\n\n/**\n * The collateral metric for comparing collateral factors.\n */\nexport enum CollateralMetric {\n Highest = 'HIGHEST',\n Lowest = 'LOWEST',\n}\n\n/**\n * The currency for fiat amounts.\n */\nexport enum Currency {\n Usd = 'USD',\n Eur = 'EUR',\n Gbp = 'GBP',\n}\n\n/**\n * The filter for reserves request.\n */\nexport enum ReservesRequestFilter {\n Supply = 'SUPPLY',\n Borrow = 'BORROW',\n Collateral = 'COLLATERAL',\n All = 'ALL',\n}\n\n/**\n * The swap kind for swapping tokens.\n */\nexport enum SwapKind {\n Buy = 'BUY',\n Sell = 'SELL',\n}\n\n/**\n * The borrow swap kind for debt swaps.\n */\nexport enum BorrowSwapKind {\n Current = 'CURRENT',\n New = 'NEW',\n}\n\n/**\n * The repay with supply kind for repay swaps.\n */\nexport enum RepayWithSupplyKind {\n Repay = 'REPAY',\n Supply = 'SUPPLY',\n}\n\n/**\n * The supply swap kind for supply swaps.\n */\nexport enum SupplySwapKind {\n Current = 'CURRENT',\n New = 'NEW',\n}\n\n/**\n * The withdraw swap kind for withdraw swaps.\n */\nexport enum WithdrawSwapKind {\n Withdraw = 'WITHDRAW',\n Buy = 'BUY',\n}\n\n/**\n * The filter for swap status.\n */\nexport enum SwapStatusFilter {\n Cancelled = 'CANCELLED',\n Expired = 'EXPIRED',\n Fulfilled = 'FULFILLED',\n Open = 'OPEN',\n PendingSignature = 'PENDING_SIGNATURE',\n}\n\n/**\n * The category for tokens.\n */\nexport enum TokenCategory {\n Stablecoin = 'STABLECOIN',\n EthCorrelated = 'ETH_CORRELATED',\n}\n\n/**\n * The update type for user position conditions.\n */\nexport enum UserPositionConditionsUpdate {\n AllDynamicConfig = 'ALL_DYNAMIC_CONFIG',\n JustRiskPremium = 'JUST_RISK_PREMIUM',\n}\n\n/**\n * Quote accuracy level for swap quotes.\n */\nexport enum QuoteAccuracy {\n /**\n * Fast price quality - faster response, potentially less accurate price\n */\n Fast = 'FAST',\n /**\n * Verified price quality - more accurate price, potentially slower response\n */\n Accurate = 'ACCURATE',\n}\n","import type {\n AnySelectionSet,\n AnyVariables,\n BigDecimal,\n BlockchainData,\n ChainId,\n Cursor,\n EvmAddress,\n JsonObject,\n Signature,\n TxHash,\n TypedSelectionSet,\n Void,\n} from '@aave/types';\nimport {\n type DocumentDecoration,\n initGraphQLTada,\n type TadaDocumentNode,\n} from 'gql.tada';\nimport type {\n ActivityType,\n ApyMetric,\n BorrowSwapKind,\n ChainsFilter,\n CollateralMetric,\n Currency,\n OperationType,\n OrderDirection,\n PageSize,\n QuoteAccuracy,\n RepayWithSupplyKind,\n ReservesRequestFilter,\n SupplySwapKind,\n SwapKind,\n SwapStatusFilter,\n TimeWindow,\n TokenCategory,\n UserPositionConditionsUpdate,\n WithdrawSwapKind,\n} from './enums';\nimport type { introspection } from './graphql-env';\nimport type {\n AssetId,\n HubAssetId,\n HubId,\n ID,\n OnChainHubAssetId,\n OnChainReserveId,\n ReserveId,\n SpokeId,\n SwapId,\n SwapQuoteId,\n TokenInfoId,\n UserBalanceId,\n UserBorrowItemId,\n UserPositionId,\n UserSupplyItemId,\n} from './id';\n\nexport type { FragmentOf, ResultOf, VariablesOf } from 'gql.tada';\n\nexport const graphql = initGraphQLTada<{\n disableMasking: true;\n introspection: introspection;\n scalars: {\n ActivityType: ActivityType;\n AlwaysTrue: true;\n ApyMetric: ApyMetric;\n AssetId: AssetId;\n BigDecimal: BigDecimal;\n BigInt: bigint;\n BlockchainData: BlockchainData;\n Boolean: boolean;\n BorrowSwapKind: BorrowSwapKind;\n ChainId: ChainId;\n ChainsFilter: ChainsFilter;\n CollateralMetric: CollateralMetric;\n Currency: Currency;\n RepayWithSupplyKind: RepayWithSupplyKind;\n Cursor: Cursor;\n DateTime: Date;\n EvmAddress: EvmAddress;\n Float: number;\n HubAssetId: HubAssetId;\n HubId: HubId;\n ID: ID;\n Int: number;\n JSON: JsonObject;\n OnChainHubAssetId: OnChainHubAssetId;\n OnChainReserveId: OnChainReserveId;\n OperationType: OperationType;\n OrderDirection: OrderDirection;\n PageSize: PageSize;\n QuoteAccuracy: QuoteAccuracy;\n ReserveId: ReserveId;\n ReservesRequestFilter: ReservesRequestFilter;\n Signature: Signature;\n SpokeId: SpokeId;\n String: string;\n SupplySwapKind: SupplySwapKind;\n SwapId: SwapId;\n SwapKind: SwapKind;\n SwapQuoteId: SwapQuoteId;\n SwapStatusFilter: SwapStatusFilter;\n TimeWindow: TimeWindow;\n TokenCategory: TokenCategory;\n TokenInfoId: TokenInfoId;\n TxHash: TxHash;\n UserBalanceId: UserBalanceId;\n UserBorrowItemId: UserBorrowItemId;\n UserPositionConditionsUpdate: UserPositionConditionsUpdate;\n UserPositionId: UserPositionId;\n UserSupplyItemId: UserSupplyItemId;\n Void: Void;\n WithdrawSwapKind: WithdrawSwapKind;\n };\n}>();\n\n/**\n * @internal\n */\nexport type RequestOf<Document> = Document extends DocumentDecoration<\n unknown,\n infer Variables\n>\n ? Variables extends { request: infer Request }\n ? Request\n : never\n : never;\n\n/**\n * @internal\n */\nexport type FragmentDocumentFor<\n TGqlNode extends AnySelectionSet,\n TTypename extends string = TGqlNode extends TypedSelectionSet<infer TTypename>\n ? TTypename\n : never,\n TFragmentName extends string = TTypename,\n> = TadaDocumentNode<\n TGqlNode,\n AnyVariables,\n {\n fragment: TFragmentName;\n on: TTypename;\n masked: false;\n }\n>;\n","import type { FragmentOf } from 'gql.tada';\nimport { type FragmentDocumentFor, graphql } from '../graphql';\n\nexport const DomainDataFragment = graphql(\n `fragment DomainData on DomainData {\n name\n version\n chainId\n verifyingContract\n }`,\n);\nexport type DomainData = FragmentOf<typeof DomainDataFragment>;\n\nexport const DecimalNumberFragment =\n graphql(`fragment DecimalNumber on DecimalNumber {\n __typename\n onChainValue\n decimals\n value\n }`);\nexport type DecimalNumber = FragmentOf<typeof DecimalNumberFragment>;\n\nexport const PercentNumberFragment = graphql(\n `fragment PercentNumber on PercentNumber {\n __typename\n onChainValue\n decimals\n value\n normalized\n }`,\n);\nexport type PercentNumber = FragmentOf<typeof PercentNumberFragment>;\n\nexport const DecimalNumberWithChangeFragment = graphql(\n `fragment DecimalNumberWithChange on DecimalNumberWithChange {\n __typename\n current {\n ...DecimalNumber\n }\n change(window: $timeWindow) {\n ...PercentNumber\n }\n }`,\n [DecimalNumberFragment, PercentNumberFragment],\n);\nexport type DecimalNumberWithChange = FragmentOf<\n typeof DecimalNumberWithChangeFragment\n>;\n\nexport const ExchangeAmountFragment = graphql(\n `fragment ExchangeAmount on ExchangeAmount {\n __typename\n value\n name\n symbol\n icon\n decimals\n }`,\n);\nexport type ExchangeAmount = FragmentOf<typeof ExchangeAmountFragment>;\n\nexport const TokenInfoFragment = graphql(\n `fragment TokenInfo on TokenInfo {\n __typename\n id\n name\n symbol\n icon\n decimals\n categories\n }`,\n);\nexport type TokenInfo = FragmentOf<typeof TokenInfoFragment>;\n\nexport const ChainFragment = graphql(\n `fragment Chain on Chain {\n __typename\n name\n icon\n chainId\n rpcUrl\n explorerUrl\n isTestnet\n isFork\n nativeWrappedToken\n nativeGateway\n signatureGateway\n nativeInfo {\n ...TokenInfo\n }\n }`,\n [TokenInfoFragment],\n);\nexport type Chain = FragmentOf<typeof ChainFragment>;\n\nexport const Erc20TokenFragment = graphql(\n `fragment Erc20Token on Erc20Token {\n __typename\n info {\n ...TokenInfo\n }\n address\n chain {\n ...Chain\n }\n isWrappedNativeToken\n }`,\n [TokenInfoFragment, ChainFragment],\n);\nexport type Erc20Token = FragmentOf<typeof Erc20TokenFragment>;\n\nexport const NativeTokenFragment = graphql(\n `fragment NativeToken on NativeToken {\n __typename\n info {\n ...TokenInfo\n }\n chain {\n ...Chain\n }\n }`,\n [TokenInfoFragment, ChainFragment],\n);\nexport type NativeToken = FragmentOf<typeof NativeTokenFragment>;\n\nexport const Erc20AmountFragment = graphql(\n `fragment Erc20Amount on Erc20Amount {\n __typename\n token {\n ...Erc20Token\n }\n amount {\n ...DecimalNumber\n }\n exchange(currency: $currency){\n ...ExchangeAmount\n }\n exchangeRate(currency: $currency){\n ...DecimalNumber\n }\n }`,\n [Erc20TokenFragment, DecimalNumberFragment, ExchangeAmountFragment],\n);\nexport type Erc20Amount = FragmentOf<typeof Erc20AmountFragment>;\n\nexport const NativeAmountFragment = graphql(\n `fragment NativeAmount on NativeAmount {\n __typename\n token {\n ...NativeToken\n }\n amount {\n ...DecimalNumber\n }\n exchange(currency: $currency){\n ...ExchangeAmount\n }\n exchangeRate(currency: $currency){\n ...DecimalNumber\n }\n }`,\n [NativeTokenFragment, DecimalNumberFragment, ExchangeAmountFragment],\n);\nexport type NativeAmount = FragmentOf<typeof NativeAmountFragment>;\n\nexport type TokenAmount = Erc20Amount | NativeAmount;\n\nexport const TokenAmountFragment: FragmentDocumentFor<\n TokenAmount,\n 'TokenAmount'\n> = graphql(\n `fragment TokenAmount on TokenAmount {\n __typename\n ... on Erc20Amount {\n ...Erc20Amount\n }\n ... on NativeAmount {\n ...NativeAmount\n }\n }`,\n [Erc20AmountFragment, NativeAmountFragment],\n);\n\nexport type Token = NativeToken | Erc20Token;\n\nexport const TokenFragment: FragmentDocumentFor<Token, 'Token'> = graphql(\n `fragment Token on Token {\n __typename\n ... on Erc20Token {\n ...Erc20Token\n }\n ... on NativeToken {\n ...NativeToken\n }\n }`,\n [Erc20TokenFragment, NativeTokenFragment],\n);\n\nexport const ExchangeAmountWithChangeFragment = graphql(\n `fragment ExchangeAmountWithChange on ExchangeAmountWithChange {\n __typename\n current {\n ...ExchangeAmount\n }\n change(window: $timeWindow){\n ...PercentNumber\n }\n }`,\n [ExchangeAmountFragment, PercentNumberFragment],\n);\nexport type ExchangeAmountWithChange = FragmentOf<\n typeof ExchangeAmountWithChangeFragment\n>;\n\nexport const PercentNumberWithChangeFragment = graphql(\n `fragment PercentNumberWithChange on PercentNumberWithChange {\n __typename\n current {\n ...PercentNumber\n }\n change(window: $timeWindow){\n ...PercentNumber\n }\n }`,\n [PercentNumberFragment],\n);\nexport type PercentNumberWithChange = FragmentOf<\n typeof PercentNumberWithChangeFragment\n>;\n\nexport const PaginatedResultInfoFragment = graphql(\n `fragment PaginatedResultInfo on PaginatedResultInfo {\n __typename\n prev\n next\n }`,\n);\nexport type PaginatedResultInfo = FragmentOf<\n typeof PaginatedResultInfoFragment\n>;\n\nexport const PercentNumberVariationFragment = graphql(\n `fragment PercentNumberVariation on PercentNumberVariation {\n __typename\n current {\n ...PercentNumber\n }\n after {\n ...PercentNumber\n }\n }`,\n [PercentNumberFragment],\n);\nexport type PercentNumberVariation = FragmentOf<\n typeof PercentNumberVariationFragment\n>;\n\nexport const ExchangeAmountVariationFragment = graphql(\n `fragment ExchangeAmountVariation on ExchangeAmountVariation {\n __typename\n current {\n ...ExchangeAmount\n }\n after {\n ...ExchangeAmount\n }\n }`,\n [ExchangeAmountFragment],\n);\nexport type ExchangeAmountVariation = FragmentOf<\n typeof ExchangeAmountVariationFragment\n>;\n\nexport const HealthFactorWithChangeFragment = graphql(\n `fragment HealthFactorWithChange on HealthFactorWithChange {\n __typename\n current\n change(window: $timeWindow) {\n ...PercentNumber\n }\n }`,\n [PercentNumberFragment],\n);\nexport type HealthFactorWithChange = FragmentOf<\n typeof HealthFactorWithChangeFragment\n>;\n\nexport const HealthFactorVariationFragment = graphql(\n `fragment HealthFactorVariation on HealthFactorVariation {\n __typename\n current\n after\n }`,\n);\nexport type HealthFactorVariation = FragmentOf<\n typeof HealthFactorVariationFragment\n>;\n\nexport const HealthFactorErrorFragment = graphql(\n `fragment HealthFactorError on HealthFactorError {\n __typename\n reason\n current\n after\n }`,\n);\nexport type HealthFactorError = FragmentOf<typeof HealthFactorErrorFragment>;\n\nexport type HealthFactorResult = HealthFactorVariation | HealthFactorError;\n\nexport const HealthFactorResultFragment: FragmentDocumentFor<\n HealthFactorResult,\n 'HealthFactorResult'\n> = graphql(\n `fragment HealthFactorResult on HealthFactorResult {\n __typename\n ... on HealthFactorVariation {\n ...HealthFactorVariation\n }\n ... on HealthFactorError {\n ...HealthFactorError\n }\n }`,\n [HealthFactorVariationFragment, HealthFactorErrorFragment],\n);\n\nexport const InsufficientBalanceErrorFragment = graphql(\n `fragment InsufficientBalanceError on InsufficientBalanceError {\n __typename\n required {\n ...DecimalNumber\n }\n available {\n ...DecimalNumber\n }\n }`,\n [DecimalNumberFragment],\n);\nexport type InsufficientBalanceError = FragmentOf<\n typeof InsufficientBalanceErrorFragment\n>;\n","import type { FragmentOf } from 'gql.tada';\nimport { graphql } from '../graphql';\nimport {\n ChainFragment,\n ExchangeAmountFragment,\n ExchangeAmountWithChangeFragment,\n PercentNumberFragment,\n} from './common';\n\nexport const HubSummaryFragment = graphql(\n `fragment HubSummary on HubSummary {\n __typename\n totalBorrowed {\n ...ExchangeAmountWithChange\n }\n totalBorrowCap {\n ...ExchangeAmount\n }\n totalSupplied {\n ...ExchangeAmountWithChange\n }\n totalSupplyCap {\n ...ExchangeAmount\n }\n utilizationRate {\n ...PercentNumber\n }\n }`,\n [\n ExchangeAmountFragment,\n ExchangeAmountWithChangeFragment,\n PercentNumberFragment,\n ],\n);\nexport type HubSummary = FragmentOf<typeof HubSummaryFragment>;\n\nexport const HubFragment = graphql(\n `fragment Hub on Hub {\n __typename\n id\n name\n address\n chain {\n ...Chain\n }\n summary(currency: $currency) {\n ...HubSummary\n }\n }`,\n [ChainFragment, HubSummaryFragment],\n);\nexport type Hub = FragmentOf<typeof HubFragment>;\n","import { type FragmentOf, graphql } from '../graphql';\nimport {\n Erc20AmountFragment,\n Erc20TokenFragment,\n PercentNumberFragment,\n} from './common';\nimport { HubFragment } from './hubs';\n\nexport const HubAssetSummaryFragment = graphql(\n `fragment HubAssetSummary on HubAssetSummary {\n __typename\n supplied {\n ...Erc20Amount\n }\n borrowed {\n ...Erc20Amount\n }\n availableLiquidity {\n ...Erc20Amount\n }\n supplyApy {\n ...PercentNumber\n }\n borrowApy {\n ...PercentNumber\n }\n netApy {\n ...PercentNumber\n }\n utilizationRate {\n ...PercentNumber\n }\n }`,\n [Erc20AmountFragment, PercentNumberFragment],\n);\nexport type HubAssetSummary = FragmentOf<typeof HubAssetSummaryFragment>;\n\nexport const HubAssetSettingsFragment = graphql(\n `fragment HubAssetSettings on HubAssetSettings {\n __typename\n feeReceiver\n liquidityFee {\n ...PercentNumber\n }\n irStrategy\n reinvestmentController\n }`,\n [PercentNumberFragment],\n);\nexport type HubAssetSettings = FragmentOf<typeof HubAssetSettingsFragment>;\n\nexport const HubAssetUserStateFragment = graphql(\n `fragment HubAssetUserState on HubAssetUserState {\n __typename\n balance {\n ...Erc20Amount\n }\n }`,\n [Erc20AmountFragment],\n);\nexport type HubAssetUserState = FragmentOf<typeof HubAssetUserStateFragment>;\n\nexport const HubAssetFragment = graphql(\n `fragment HubAsset on HubAsset {\n __typename\n id\n onchainAssetId\n hub {\n ...Hub\n }\n underlying {\n ...Erc20Token\n }\n summary {\n ...HubAssetSummary\n }\n settings {\n ...HubAssetSettings\n }\n userState {\n ...HubAssetUserState\n }\n }`,\n [\n HubFragment,\n Erc20TokenFragment,\n HubAssetSummaryFragment,\n HubAssetSettingsFragment,\n HubAssetUserStateFragment,\n ],\n);\nexport type HubAsset = FragmentOf<typeof HubAssetFragment>;\n","import type { FragmentOf } from 'gql.tada';\nimport { graphql } from '../graphql';\nimport { DomainDataFragment } from './common';\n\nexport const PermitTypedDataFragment = graphql(\n `fragment PermitTypedData on PermitTypedData {\n __typename\n types\n primaryType\n domain {\n ...DomainData\n }\n message\n }`,\n [DomainDataFragment],\n);\nexport type PermitTypedData = FragmentOf<typeof PermitTypedDataFragment>;\n\nexport type ERC20PermitSignature = ReturnType<\n typeof graphql.scalar<'ERC20PermitSignature'>\n>;\n\n/**\n * Type guard for an ERC20 permit signature.\n */\nexport function isERC20PermitSignature(\n signature: unknown,\n): signature is ERC20PermitSignature {\n return (\n typeof signature === 'object' &&\n signature !== null &&\n 'deadline' in signature &&\n 'value' in signature\n );\n}\n","import type { FragmentOf } from 'gql.tada';\nimport { graphql } from '../graphql';\nimport { ChainFragment, PaginatedResultInfoFragment } from './common';\n\nexport const SpokeFragment = graphql(\n `fragment Spoke on Spoke {\n __typename\n id\n name\n address\n chain {\n ...Chain\n }\n }`,\n [ChainFragment],\n);\n\nexport type Spoke = FragmentOf<typeof SpokeFragment>;\n\nexport const SpokePositionManagerFragment = graphql(\n `fragment SpokePositionManager on SpokePositionManager {\n __typename\n address\n active\n name\n }`,\n);\n\nexport type SpokePositionManager = FragmentOf<\n typeof SpokePositionManagerFragment\n>;\n\nexport const PaginatedSpokePositionManagerResultFragment = graphql(\n `fragment PaginatedSpokePositionManagerResult on PaginatedSpokePositionManagerResult {\n __typename\n items {\n ...SpokePositionManager\n }\n pageInfo {\n ...PaginatedResultInfo\n }\n }`,\n [SpokePositionManagerFragment, PaginatedResultInfoFragment],\n);\n\nexport type PaginatedSpokePositionManagerResult = FragmentOf<\n typeof PaginatedSpokePositionManagerResultFragment\n>;\n\nexport const SpokeUserPositionManagerFragment = graphql(\n `fragment SpokeUserPositionManager on SpokeUserPositionManager {\n __typename\n address\n approvedOn\n active\n name\n }`,\n);\n\nexport type SpokeUserPositionManager = FragmentOf<\n typeof SpokeUserPositionManagerFragment\n>;\n\nexport const PaginatedSpokeUserPositionManagerResultFragment = graphql(\n `fragment PaginatedSpokeUserPositionManagerResult on PaginatedSpokeUserPositionManagerResult {\n __typename\n items {\n ...SpokeUserPositionManager\n }\n pageInfo {\n ...PaginatedResultInfo\n }\n }`,\n [SpokeUserPositionManagerFragment, PaginatedResultInfoFragment],\n);\n\nexport type PaginatedSpokeUserPositionManagerResult = FragmentOf<\n typeof PaginatedSpokeUserPositionManagerResultFragment\n>;\n","import type { FragmentOf } from 'gql.tada';\nimport { graphql } from '../graphql';\nimport { HubAssetFragment } from './assets';\nimport {\n ChainFragment,\n Erc20AmountFragment,\n PercentNumberFragment,\n} from './common';\nimport { SpokeFragment } from './spoke';\n\nexport const ReserveSettingsFragment = graphql(\n `fragment ReserveSettings on ReserveSettings {\n __typename\n collateralFactor {\n ...PercentNumber\n }\n maxLiquidationBonus {\n ...PercentNumber\n }\n liquidationFee {\n ...PercentNumber\n }\n collateralRisk {\n ...PercentNumber\n }\n borrowable\n collateral\n suppliable\n latestDynamicConfigKey\n }`,\n [PercentNumberFragment],\n);\nexport type ReserveSettings = FragmentOf<typeof ReserveSettingsFragment>;\n\nexport const ReserveStatusFragment = graphql(\n `fragment ReserveStatus on ReserveStatus {\n __typename\n frozen\n paused\n active\n }`,\n);\nexport type ReserveStatus = FragmentOf<typeof ReserveStatusFragment>;\n\nexport const ReserveSummaryFragment = graphql(\n `fragment ReserveSummary on ReserveSummary {\n __typename\n supplied {\n ...Erc20Amount\n }\n borrowed {\n ...Erc20Amount\n }\n supplyApy {\n ...PercentNumber\n }\n borrowApy {\n ...PercentNumber\n }\n }`,\n [Erc20AmountFragment, PercentNumberFragment],\n);\nexport type ReserveSummary = FragmentOf<typeof ReserveSummaryFragment>;\n\nexport const ReserveUserStateFragment = graphql(\n `fragment ReserveUserState on ReserveUserState {\n __typename\n balance {\n ...Erc20Amount\n }\n suppliable {\n ...Erc20Amount\n }\n borrowable {\n ...Erc20Amount\n }\n borrowApy {\n ...PercentNumber\n }\n collateralFactor {\n ...PercentNumber\n }\n maxLiquidationBonus {\n ...PercentNumber\n }\n liquidationFee {\n ...PercentNumber\n }\n dynamicConfigKey\n }`,\n [Erc20AmountFragment, PercentNumberFragment],\n);\nexport type ReserveUserState = FragmentOf<typeof ReserveUserStateFragment>;\n\nexport const ReserveFragment = graphql(\n `fragment Reserve on Reserve {\n __typename\n id\n onChainId\n spoke {\n ...Spoke\n }\n borrowCap\n supplyCap\n chain {\n ...Chain\n }\n summary {\n ...ReserveSummary\n }\n settings {\n ...ReserveSettings\n }\n status {\n ...ReserveStatus\n }\n canBorrow\n canSupply\n canUseAsCollateral\n canSwapFrom\n userState {\n ...ReserveUserState\n }\n asset {\n ...HubAsset\n }\n }`,\n [\n SpokeFragment,\n ChainFragment,\n ReserveSummaryFragment,\n ReserveSettingsFragment,\n ReserveStatusFragment,\n ReserveUserStateFragment,\n HubAssetFragment,\n ],\n);\nexport type Reserve = FragmentOf<typeof ReserveFragment>;\n\nexport const ReserveInfoFragment = graphql(\n `fragment ReserveInfo on ReserveInfo {\n __typename\n id\n asset {\n ...HubAsset\n }\n }`,\n [HubAssetFragment],\n);\nexport type ReserveInfo = FragmentOf<typeof ReserveInfoFragment>;\n","import type { FragmentOf } from 'gql.tada';\nimport { type FragmentDocumentFor, graphql } from '../graphql';\nimport {\n DecimalNumberFragment,\n type InsufficientBalanceError,\n InsufficientBalanceErrorFragment,\n} from './common';\nimport { PermitTypedDataFragment } from './permits';\n\nexport const TransactionRequestFragment = graphql(\n `fragment TransactionRequest on TransactionRequest {\n __typename\n to\n from\n data\n value\n chainId\n operations\n }`,\n);\nexport type TransactionRequest = FragmentOf<typeof TransactionRequestFragment>;\n\nexport const Erc20ApprovalFragment = graphql(\n `fragment Erc20Approval on Erc20Approval {\n __typename\n byTransaction {\n ...TransactionRequest\n }\n bySignature {\n ...PermitTypedData\n }\n }`,\n [TransactionRequestFragment, PermitTypedDataFragment],\n);\nexport type Erc20Approval = FragmentOf<typeof Erc20ApprovalFragment>;\n\nexport const Erc20ApprovalRequiredFragment = graphql(\n `fragment Erc20ApprovalRequired on Erc20ApprovalRequired {\n __typename\n approvals {\n ...Erc20Approval\n }\n reason\n requiredAmount {\n ...DecimalNumber\n }\n currentAllowance {\n ...DecimalNumber\n }\n originalTransaction {\n ...TransactionRequest\n }\n }`,\n [TransactionRequestFragment, Erc20ApprovalFragment, DecimalNumberFragment],\n);\nexport type Erc20ApprovalRequired = FragmentOf<\n typeof Erc20ApprovalRequiredFragment\n>;\n\nexport const PreContractActionRequiredFragment = graphql(\n `fragment PreContractActionRequired on PreContractActionRequired {\n __typename\n transaction {\n ...TransactionRequest\n }\n reason\n originalTransaction {\n ...TransactionRequest\n }\n }`,\n [TransactionRequestFragment],\n);\nexport type PreContractActionRequired = FragmentOf<\n typeof PreContractActionRequiredFragment\n>;\n\nexport type ExecutionPlan =\n | TransactionRequest\n | Erc20ApprovalRequired\n | PreContractActionRequired\n | InsufficientBalanceError;\n\nexport const ExecutionPlanFragment: FragmentDocumentFor<\n ExecutionPlan,\n 'ExecutionPlan'\n> = graphql(\n `fragment ExecutionPlan on ExecutionPlan {\n __typename\n ... on TransactionRequest {\n ...TransactionRequest\n }\n ... on Erc20ApprovalRequired {\n ...Erc20ApprovalRequired\n }\n ... on PreContractActionRequired {\n ...PreContractActionRequired\n }\n ... on InsufficientBalanceError {\n ...InsufficientBalanceError\n }\n }`,\n [\n TransactionRequestFragment,\n Erc20ApprovalRequiredFragment,\n PreContractActionRequiredFragment,\n InsufficientBalanceErrorFragment,\n ],\n);\n","import type { ExtendWithOpaqueType } from '@aave/types';\nimport type { FragmentOf } from 'gql.tada';\nimport { type FragmentDocumentFor, graphql } from '../graphql';\nimport {\n DomainDataFragment,\n type Erc20Amount,\n Erc20AmountFragment,\n InsufficientBalanceErrorFragment,\n type NativeAmount,\n NativeAmountFragment,\n PaginatedResultInfoFragment,\n PercentNumberFragment,\n TokenAmountFragment,\n} from './common';\nimport { ReserveInfoFragment } from './reserve';\nimport {\n Erc20ApprovalFragment,\n type TransactionRequest,\n TransactionRequestFragment,\n} from './transactions';\n\nexport const SwapQuoteCostsFragment = graphql(\n `fragment SwapQuoteCosts on SwapQuoteCosts {\n __typename\n networkCosts {\n ...TokenAmount\n }\n partnerFee {\n ...TokenAmount\n }\n flashloanFee {\n ...TokenAmount\n }\n providerFee {\n ...TokenAmount\n }\n }`,\n [TokenAmountFragment],\n);\nexport type SwapQuoteCosts = FragmentOf<typeof SwapQuoteCostsFragment>;\n\nexport const SwapQuoteFragment = graphql(\n `fragment SwapQuote on SwapQuote {\n __typename\n accuracy\n quoteId\n suggestedSlippage {\n ...PercentNumber\n }\n selectedSlippage {\n ...PercentNumber\n }\n buy {\n ...TokenAmount\n }\n sell {\n ...TokenAmount\n }\n costs {\n ...SwapQuoteCosts\n }\n finalBuy {\n ...TokenAmount\n }\n finalSell {\n ...TokenAmount\n }\n }`,\n [PercentNumberFragment, TokenAmountFragment, SwapQuoteCostsFragment],\n);\nexport type SwapQuote = FragmentOf<typeof SwapQuoteFragment>;\n\nexport const SwapTypedDataFragment = graphql(\n `fragment SwapTypedData on SwapTypedData {\n __typename\n primaryType\n types\n domain {\n ...DomainData\n }\n message\n }`,\n [DomainDataFragment],\n);\nexport type SwapTypedData = FragmentOf<typeof SwapTypedDataFragment>;\n\nexport const PrepareSwapOrderFragment = graphql(\n `fragment PrepareSwapOrder on PrepareSwapOrder {\n __typename\n newQuoteId\n data {\n ...SwapTypedData\n }\n }`,\n [SwapTypedDataFragment],\n);\nexport type PrepareSwapOrder = FragmentOf<typeof PrepareSwapOrderFragment>;\n\nexport const SwapByIntentFragment = graphql(\n `fragment SwapByIntent on SwapByIntent {\n __typename\n quote {\n ...SwapQuote\n }\n \n }`,\n [SwapQuoteFragment],\n);\nexport type SwapByIntent = FragmentOf<typeof SwapByIntentFragment>;\n\nexport const SwapByIntentWithApprovalRequiredFragment = graphql(\n `fragment SwapByIntentWithApprovalRequired on SwapByIntentWithApprovalRequired {\n __typename\n approvals {\n ...Erc20Approval\n }\n quote {\n ...SwapQuote\n }\n }`,\n [Erc20ApprovalFragment, SwapQuoteFragment],\n);\nexport type SwapByIntentWithApprovalRequired = FragmentOf<\n typeof SwapByIntentWithApprovalRequiredFragment\n>;\n\nexport const SwapByTransactionFragment = graphql(\n `fragment SwapByTransaction on SwapByTransaction {\n __typename\n quote {\n ...SwapQuote\n }\n }`,\n [SwapQuoteFragment],\n);\nexport type SwapByTransaction = FragmentOf<typeof SwapByTransactionFragment>;\n\nexport const SwapReceiptFragment = graphql(\n `fragment SwapReceipt on SwapReceipt {\n __typename\n id\n explorerUrl\n createdAt\n }`,\n);\nexport type SwapReceipt = FragmentOf<typeof SwapReceiptFragment>;\n\nexport type TokenSwapQuoteResult = ExtendWithOpaqueType<\n SwapByIntent | SwapByIntentWithApprovalRequired | SwapByTransaction\n>;\n\nexport const TokenSwapQuoteResultFragment: FragmentDocumentFor<\n TokenSwapQuoteResult,\n 'TokenSwapQuoteResult'\n> = graphql(\n `fragment TokenSwapQuoteResult on TokenSwapQuoteResult {\n __typename\n ... on SwapByIntent {\n ...SwapByIntent\n }\n ... on SwapByIntentWithApprovalRequired {\n ...SwapByIntentWithApprovalRequired\n }\n ... on SwapByTransaction {\n ...SwapByTransaction\n }\n }`,\n [\n SwapByIntentFragment,\n SwapByIntentWithApprovalRequiredFragment,\n SwapByTransactionFragment,\n ],\n);\n\nexport const PrepareTokenSwapResultFragment = graphql(\n `fragment PrepareTokenSwapResult on PrepareTokenSwapResult {\n __typename\n ... on PrepareSwapOrder {\n ...PrepareSwapOrder\n }\n ... on InsufficientBalanceError {\n ...InsufficientBalanceError\n }\n }`,\n [PrepareSwapOrderFragment, InsufficientBalanceErrorFragment],\n);\nexport type PrepareTokenSwapResult = ExtendWithOpaqueType<\n FragmentOf<typeof PrepareTokenSwapResultFragment>\n>;\n\nexport const SwapTransactionRequestFragment = graphql(\n `fragment SwapTransactionRequest on SwapTransactionRequest {\n __typename\n transaction {\n ...TransactionRequest\n }\n orderReceipt {\n ...SwapReceipt\n }\n }`,\n [TransactionRequestFragment, SwapReceiptFragment],\n);\nexport type SwapTransactionRequest = FragmentOf<\n typeof SwapTransactionRequestFragment\n>;\n\nexport const SwapExecutionPlanFragment = graphql(\n `fragment SwapExecutionPlan on SwapExecutionPlan {\n __typename\n ... on SwapTransactionRequest {\n ...SwapTransactionRequest\n }\n ... on SwapReceipt {\n ...SwapReceipt\n }\n ... on InsufficientBalanceError {\n ...InsufficientBalanceError\n }\n }`,\n [\n SwapTransactionRequestFragment,\n SwapReceiptFragment,\n InsufficientBalanceErrorFragment,\n ],\n);\n\nexport type SwapExecutionPlan = ExtendWithOpaqueType<\n FragmentOf<typeof SwapExecutionPlanFragment>\n>;\n\nexport const SwapCancelledFragment = graphql(\n `fragment SwapCancelled on SwapCancelled {\n __typename\n swapId\n createdAt\n cancelledAt\n explorerUrl\n }`,\n);\nexport type SwapCancelled = FragmentOf<typeof SwapCancelledFragment>;\n\nexport const SwapExpiredFragment = graphql(\n `fragment SwapExpired on SwapExpired {\n __typename\n swapId\n createdAt\n expiredAt\n explorerUrl\n }`,\n);\nexport type SwapExpired = FragmentOf<typeof SwapExpiredFragment>;\n\nexport const PositionAmountFragment = graphql(\n `fragment PositionAmount on PositionAmount {\n __typename\n reserve {\n ...ReserveInfo\n }\n amount {\n ...Erc20Amount\n }\n }`,\n [ReserveInfoFragment, Erc20AmountFragment],\n);\nexport type PositionAmount = FragmentOf<typeof PositionAmountFragment>;\n\nexport type SwapAmount = PositionAmount | NativeAmount | Erc20Amount;\n\nexport const SwapAmountFragment: FragmentDocumentFor<SwapAmount, 'SwapAmount'> =\n graphql(\n `fragment SwapAmount on SwapAmount {\n __typename\n ... on PositionAmount {\n ...PositionAmount\n }\n ... on NativeAmount {\n ...NativeAmount\n }\n ... on Erc20Amount {\n ...Erc20Amount\n }\n }`,\n [PositionAmountFragment, NativeAmountFragment, Erc20AmountFragment],\n );\n\nexport const SwapOpenFragment = graphql(\n `fragment SwapOpen on SwapOpen {\n __typename\n swapId\n createdAt\n deadline\n explorerUrl\n desiredSell {\n ...SwapAmount\n }\n desiredBuy {\n ...SwapAmount\n }\n }`,\n [SwapAmountFragment],\n);\nexport type SwapOpen = FragmentOf<typeof SwapOpenFragment>;\n\nexport const SwapPendingSignatureFragment = graphql(\n `fragment SwapPendingSignature on SwapPendingSignature {\n __typename\n swapId\n createdAt\n deadline\n explorerUrl\n }`,\n);\nexport type SwapPendingSignature = FragmentOf<\n typeof SwapPendingSignatureFragment\n>;\n\nexport const SwapFulfilledFragment = graphql(\n `fragment SwapFulfilled on SwapFulfilled {\n __typename\n swapId\n txHash\n desiredSell {\n ...SwapAmount\n }\n desiredBuy {\n ...SwapAmount\n }\n sold {\n ...SwapAmount\n }\n bought {\n ...SwapAmount\n }\n createdAt\n fulfilledAt\n explorerUrl\n refundTxHash\n }`,\n [SwapAmountFragment],\n);\nexport type SwapFulfilled = FragmentOf<typeof SwapFulfilledFragment>;\n\nexport const SwapStatusFragment = graphql(\n `fragment SwapStatus on SwapStatus {\n __typename\n ... on SwapOpen {\n ...SwapOpen\n }\n ... on SwapPendingSignature {\n ...SwapPendingSignature\n }\n ... on SwapCancelled {\n ...SwapCancelled\n }\n ... on SwapExpired {\n ...SwapExpired\n }\n ... on SwapFulfilled {\n ...SwapFulfilled\n }\n }`,\n [\n SwapOpenFragment,\n SwapPendingSignatureFragment,\n SwapCancelledFragment,\n SwapExpiredFragment,\n SwapFulfilledFragment,\n ],\n);\n\nexport type SwapStatus = ExtendWithOpaqueType<\n FragmentOf<typeof SwapStatusFragment>\n>;\n\nexport const PrepareSwapCancelResultFragment = graphql(\n `fragment PrepareSwapCancelResult on PrepareSwapCancelResult {\n __typename\n data {\n ...SwapTypedData\n }\n }`,\n [SwapTypedDataFragment],\n);\nexport type PrepareSwapCancelResult = FragmentOf<\n typeof PrepareSwapCancelResultFragment\n>;\n\nexport type CancelSwapExecutionPlan = TransactionRequest | SwapCancelled;\n\nexport const CancelSwapExecutionPlanFragment: FragmentDocumentFor<\n CancelSwapExecutionPlan,\n 'CancelSwapExecutionPlan'\n> = graphql(\n `fragment CancelSwapExecutionPlan on CancelSwapExecutionPlan {\n __typename\n ... on TransactionRequest {\n ...TransactionRequest\n }\n ... on SwapCancelled {\n ...SwapCancelled\n }\n }`,\n [TransactionRequestFragment, SwapCancelledFragment],\n);\n\nexport const PaginatedUserSwapsResultFragment = graphql(\n `fragment PaginatedUserSwapsResult on PaginatedUserSwapsResult {\n __typename\n items {\n ...SwapStatus\n }\n pageInfo {\n ...PaginatedResultInfo\n }\n }`,\n [SwapStatusFragment, PaginatedResultInfoFragment],\n);\nexport type PaginatedUserSwapsResult = FragmentOf<\n typeof PaginatedUserSwapsResultFragment\n>;\n\nexport const PositionSwapAdapterContractApprovalFragment = graphql(\n `fragment PositionSwapAdapterContractApproval on PositionSwapAdapterContractApproval {\n __typename\n bySignature {\n ...SwapTypedData\n }\n }`,\n [SwapTypedDataFragment],\n);\nexport type PositionSwapAdapterContractApproval = FragmentOf<\n typeof PositionSwapAdapterContractApprovalFragment\n>;\n\nexport const PositionSwapPositionManagerApprovalFragment = graphql(\n `fragment PositionSwapPositionManagerApproval on PositionSwapPositionManagerApproval {\n __typename\n byTransaction {\n ...TransactionRequest\n }\n bySignature {\n ...SwapTypedData\n }\n }`,\n [TransactionRequestFragment, SwapTypedDataFragment],\n);\nexport type PositionSwapPositionManagerApproval = FragmentOf<\n typeof PositionSwapPositionManagerApprovalFragment\n>;\n\nexport const PositionSwapApprovalFragment = graphql(\n `fragment PositionSwapApproval on PositionSwapApproval {\n __typename\n ... on PositionSwapAdapterContractApproval {\n ...PositionSwapAdapterContractApproval\n }\n ... on PositionSwapPositionManagerApproval {\n ...PositionSwapPositionManagerApproval\n }\n }`,\n [\n PositionSwapAdapterContractApprovalFragment,\n PositionSwapPositionManagerApprovalFragment,\n ],\n);\nexport type PositionSwapApproval = FragmentOf<\n typeof PositionSwapApprovalFragment\n>;\n\nexport const PositionSwapByIntentApprovalsRequiredFragment = graphql(\n `fragment PositionSwapByIntentApprovalsRequired on PositionSwapByIntentApprovalsRequired {\n __typename\n quote {\n ...SwapQuote\n }\n approvals {\n ...PositionSwapApproval\n }\n }`,\n [SwapQuoteFragment, PositionSwapApprovalFragment],\n);\nexport type PositionSwapByIntentApprovalsRequired = FragmentOf<\n typeof PositionSwapByIntentApprovalsRequiredFragment\n>;\n\nexport const SupplySwapQuoteResultFragment = graphql(\n `fragment SupplySwapQuoteResult on SupplySwapQuoteResult {\n __typename\n ... on PositionSwapByIntentApprovalsRequired {\n ...PositionSwapByIntentApprovalsRequired\n }\n }`,\n [PositionSwapByIntentApprovalsRequiredFragment],\n);\nexport type SupplySwapQuoteResult = ExtendWithOpaqueType<\n FragmentOf<typeof SupplySwapQuoteResultFragment>\n>;\n\nexport const BorrowSwapQuoteResultFragment = graphql(\n `fragment BorrowSwapQuoteResult on BorrowSwapQuoteResult {\n __typename\n ... on PositionSwapByIntentApprovalsRequired {\n ...PositionSwapByIntentApprovalsRequired\n }\n }`,\n [PositionSwapByIntentApprovalsRequiredFragment],\n);\nexport type BorrowSwapQuoteResult = ExtendWithOpaqueType<\n FragmentOf<typeof BorrowSwapQuoteResultFragment>\n>;\n\nexport const RepayWithSupplyQuoteResultFragment = graphql(\n `fragment RepayWithSupplyQuoteResult on RepayWithSupplyQuoteResult {\n __typename\n ... on PositionSwapByIntentApprovalsRequired {\n ...PositionSwapByIntentApprovalsRequired\n }\n }`,\n [PositionSwapByIntentApprovalsRequiredFragment],\n);\nexport type RepayWithSupplyQuoteResult = ExtendWithOpaqueType<\n FragmentOf<typeof RepayWithSupplyQuoteResultFragment>\n>;\n\nexport const WithdrawSwapQuoteResultFragment = graphql(\n `fragment WithdrawSwapQuoteResult on WithdrawSwapQuoteResult {\n __typename\n ... on PositionSwapByIntentApprovalsRequired {\n ...PositionSwapByIntentApprovalsRequired\n }\n }`,\n [PositionSwapByIntentApprovalsRequiredFragment],\n);\nexport type WithdrawSwapQuoteResult = ExtendWithOpaqueType<\n FragmentOf<typeof WithdrawSwapQuoteResultFragment>\n>;\n\nexport const PreparePositionSwapResultFragment = graphql(\n `fragment PreparePositionSwapResult on PreparePositionSwapResult {\n __typename\n ... on PrepareSwapOrder {\n ...PrepareSwapOrder\n }\n ... on InsufficientBalanceError {\n ...InsufficientBalanceError\n }\n }`,\n [PrepareSwapOrderFragment, InsufficientBalanceErrorFragment],\n);\nexport type PreparePositionSwapResult = ExtendWithOpaqueType<\n FragmentOf<typeof PreparePositionSwapResultFragment>\n>;\n","import type { FragmentOf } from 'gql.tada';\nimport { graphql } from '../graphql';\nimport {\n DecimalNumberFragment,\n Erc20AmountFragment,\n Erc20TokenFragment,\n ExchangeAmountFragment,\n ExchangeAmountWithChangeFragment,\n HealthFactorWithChangeFragment,\n PercentNumberFragment,\n PercentNumberWithChangeFragment,\n TokenAmountFragment,\n TokenInfoFragment,\n} from './common';\nimport { ReserveFragment } from './reserve';\nimport { SpokeFragment } from './spoke';\n\nexport const UserSupplyItemFragment = graphql(\n `fragment UserSupplyItem on UserSupplyItem {\n __typename\n id\n reserve {\n ...Reserve\n }\n interest {\n ...Erc20Amount\n }\n principal {\n ...Erc20Amount\n }\n withdrawable {\n ...Erc20Amount\n }\n isCollateral\n createdAt\n }`,\n [Erc20AmountFragment, ReserveFragment],\n);\nexport type UserSupplyItem = FragmentOf<typeof UserSupplyItemFragment>;\n\nexport const UserBorrowItemFragment = graphql(\n `fragment UserBorrowItem on UserBorrowItem {\n __typename\n id\n principal {\n ...Erc20Amount\n }\n interest {\n ...Erc20Amount\n }\n debt {\n ...Erc20Amount\n }\n reserve {\n ...Reserve\n }\n createdAt\n }`,\n [Erc20AmountFragment, ReserveFragment],\n);\nexport type UserBorrowItem = FragmentOf<typeof UserBorrowItemFragment>;\n\nexport const UserSummaryFragment = graphql(\n `fragment UserSummary on UserSummary {\n __typename\n totalPositions\n netBalance(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n totalCollateral(currency: $currency) {\n ...ExchangeAmount\n }\n totalSupplied(currency: $currency) {\n ...ExchangeAmount\n }\n totalDebt(currency: $currency) {\n ...ExchangeAmount\n }\n netApy {\n ...PercentNumber\n }\n netAccruedInterest(currency: $currency) {\n ...ExchangeAmount\n }\n lowestHealthFactor\n }`,\n [\n ExchangeAmountWithChangeFragment,\n ExchangeAmountFragment,\n PercentNumberFragment,\n ],\n);\nexport type UserSummary = FragmentOf<typeof UserSummaryFragment>;\n\nexport const UserRiskPremiumBreakdownItemFragment = graphql(\n `fragment UserRiskPremiumBreakdownItem on UserRiskPremiumBreakdownItem {\n __typename\n token {\n ...Erc20Token\n }\n currentRiskPremiumWeight {\n ...PercentNumber\n }\n latestRiskPremiumWeight {\n ...PercentNumber\n }\n collateral {\n ...PercentNumber\n }\n }`,\n [Erc20TokenFragment, PercentNumberFragment],\n);\nexport type UserRiskPremiumBreakdownItem = FragmentOf<\n typeof UserRiskPremiumBreakdownItemFragment\n>;\n\nexport const UserPositionRiskPremiumFragment = graphql(\n `fragment UserPositionRiskPremium on UserPositionRiskPremium {\n __typename\n current {\n ...PercentNumber\n }\n latest {\n ...PercentNumber\n }\n breakdown {\n ...UserRiskPremiumBreakdownItem\n }\n }`,\n [PercentNumberFragment, UserRiskPremiumBreakdownItemFragment],\n);\nexport type UserPositionRiskPremium = FragmentOf<\n typeof UserPositionRiskPremiumFragment\n>;\n\nexport const UserPositionFragment = graphql(\n `fragment UserPosition on UserPosition {\n __typename\n id\n spoke {\n ...Spoke\n }\n user\n createdAt\n netApy {\n ...PercentNumber\n }\n netCollateral(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n netBalance(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n netAccruedInterest(currency: $currency) {\n ...ExchangeAmount\n }\n totalCollateral(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n totalSupplied(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n totalDebt(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n netSupplyApy {\n ...PercentNumberWithChange\n }\n netBorrowApy {\n ...PercentNumberWithChange\n }\n healthFactor {\n ...HealthFactorWithChange\n }\n riskPremium {\n ...UserPositionRiskPremium\n }\n liquidationPrice(currency: $currency) {\n ...ExchangeAmount\n }\n borrowingPower(currency: $currency) {\n ...ExchangeAmount\n }\n canUpdateDynamicConfig\n netBalancePercentChange(window: $timeWindow) {\n ...PercentNumber\n }\n averageCollateralFactor {\n ...PercentNumber\n }\n }`,\n [\n SpokeFragment,\n PercentNumberFragment,\n ExchangeAmountWithChangeFragment,\n ExchangeAmountFragment,\n PercentNumberWithChangeFragment,\n HealthFactorWithChangeFragment,\n UserPositionRiskPremiumFragment,\n ],\n);\nexport type UserPosition = FragmentOf<typeof UserPositionFragment>;\n\nexport const UserBalanceFragment = graphql(\n `fragment UserBalance on UserBalance {\n __typename\n id\n info {\n ...TokenInfo\n }\n totalAmount {\n ...DecimalNumber\n }\n balances {\n ...TokenAmount\n }\n exchange(currency: $currency) {\n ...ExchangeAmount\n }\n highestSupplyApy: supplyApy(metric: HIGHEST) {\n ...PercentNumber\n }\n highestBorrowApy: borrowApy(metric: HIGHEST) {\n ...PercentNumber\n }\n lowestSupplyApy: supplyApy(metric: LOWEST) {\n ...PercentNumber\n }\n lowestBorrowApy: borrowApy(metric: LOWEST) {\n ...PercentNumber\n }\n highestCollateralFactor: collateralFactor(metric: HIGHEST) {\n ...PercentNumber\n }\n lowestCollateralFactor: collateralFactor(metric: LOWEST) {\n ...PercentNumber\n }\n }`,\n [\n TokenInfoFragment,\n DecimalNumberFragment,\n TokenAmountFragment,\n ExchangeAmountFragment,\n PercentNumberFragment,\n ],\n);\nexport type UserBalance = FragmentOf<typeof UserBalanceFragment>;\n\nexport const UserSummaryHistoryItemFragment = graphql(\n `fragment UserSummaryHistoryItem on UserSummaryHistoryItem {\n __typename\n netBalance(currency: $currency) {\n ...ExchangeAmount\n }\n borrows(currency: $currency) {\n ...ExchangeAmount\n }\n supplies(currency: $currency) {\n ...ExchangeAmount\n }\n healthFactor\n date\n }`,\n [ExchangeAmountFragment],\n);\nexport type UserSummaryHistoryItem = FragmentOf<\n typeof UserSummaryHistoryItemFragment\n>;\n\nexport const ApySampleFragment = graphql(\n `fragment ApySample on ApySample {\n __typename\n date\n avgRate {\n ...PercentNumber\n }\n }`,\n [PercentNumberFragment],\n);\nexport type ApySample = FragmentOf<typeof ApySampleFragment>;\n","import type { FragmentOf } from 'gql.tada';\nimport {\n ExchangeAmountFragment,\n HubAssetFragment,\n PercentNumberFragment,\n} from './fragments';\nimport { HubFragment } from './fragments/hubs';\nimport { graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const HubQuery = graphql(\n `query Hub($request: HubRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: hub(request: $request) {\n ...Hub\n }\n }`,\n [HubFragment],\n);\nexport type HubRequest = RequestOf<typeof HubQuery>;\n\nexport type HubRequestQuery = ReturnType<\n typeof graphql.scalar<'HubRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const HubsQuery = graphql(\n `query Hubs($request: HubsRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: hubs(request: $request) {\n ...Hub\n }\n }`,\n [HubFragment],\n);\nexport type HubsRequest = RequestOf<typeof HubsQuery>;\n\n/**\n * @internal\n */\nexport const HubAssetsQuery = graphql(\n `query HubAssets($request: HubAssetsRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: hubAssets(request: $request) {\n ...HubAsset\n }\n }`,\n [HubAssetFragment],\n);\nexport type HubAssetsRequest = RequestOf<typeof HubAssetsQuery>;\n\nexport type HubAssetsRequestQuery = ReturnType<\n typeof graphql.scalar<'HubAssetsRequestQuery'>\n>;\n\nexport type HubsRequestQuery = ReturnType<\n typeof graphql.scalar<'HubsRequestQuery'>\n>;\n\nexport const HubSummarySampleFragment = graphql(\n `fragment HubSummarySample on HubSummarySample {\n __typename\n date\n deposits {\n ...ExchangeAmount\n }\n borrows {\n ...ExchangeAmount\n }\n availableLiquidity {\n ...ExchangeAmount\n }\n utilizationRate {\n ...PercentNumber\n }\n }`,\n [ExchangeAmountFragment, PercentNumberFragment],\n);\nexport type HubSummarySample = FragmentOf<typeof HubSummarySampleFragment>;\n\n/**\n * @internal\n */\nexport const HubSummaryHistoryQuery = graphql(\n `query HubSummaryHistory($request: HubSummaryHistoryRequest!) {\n value: hubSummaryHistory(request: $request) {\n ...HubSummarySample\n }\n }`,\n [HubSummarySampleFragment],\n);\nexport type HubSummaryHistoryRequest = RequestOf<typeof HubSummaryHistoryQuery>;\n\nexport type HubSummaryHistoryRequestQuery = ReturnType<\n typeof graphql.scalar<'HubSummaryHistoryRequestQuery'>\n>;\nexport type HubAssetsRequestOrderBy = ReturnType<\n typeof graphql.scalar<'HubAssetsRequestOrderBy'>\n>;\nexport type HubsRequestOrderBy = ReturnType<\n typeof graphql.scalar<'HubsRequestOrderBy'>\n>;\n","import { ChainFragment, ExchangeAmountFragment } from './fragments';\nimport { graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const ChainQuery = graphql(\n `query Chain($request: ChainRequest!) {\n value: chain(request: $request) {\n ...Chain\n }\n }`,\n [ChainFragment],\n);\nexport type ChainRequest = RequestOf<typeof ChainQuery>;\n\n/**\n * @internal\n */\nexport const ChainsQuery = graphql(\n `query Chains($request: ChainsRequest!) {\n value: chains(request: $request) {\n ...Chain\n }\n }`,\n [ChainFragment],\n);\nexport type ChainsRequest = RequestOf<typeof ChainsQuery>;\n\nexport type ChainsRequestQuery = ReturnType<\n typeof graphql.scalar<'ChainsRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const HasProcessedKnownTransactionQuery = graphql(\n `query HasProcessedKnownTransaction($request: HasProcessedKnownTransactionRequest!) {\n value: hasProcessedKnownTransaction(request: $request)\n }`,\n);\nexport type HasProcessedKnownTransactionRequest = RequestOf<\n typeof HasProcessedKnownTransactionQuery\n>;\n\n/**\n * @internal\n */\nexport const HealthQuery = graphql(\n `query Health {\n value: health\n }`,\n);\n\n/**\n * @internal\n */\nexport const ExchangeRateQuery = graphql(\n `query ExchangeRate($request: ExchangeRateRequest!) {\n value: exchangeRate(request: $request) {\n ...ExchangeAmount\n }\n }`,\n [ExchangeAmountFragment],\n);\nexport type ExchangeRateRequest = RequestOf<typeof ExchangeRateQuery>;\n\nexport type ExchangeRateRequestFrom = ReturnType<\n typeof graphql.scalar<'ExchangeRateRequestFrom'>\n>;\n","import type { FragmentOf } from 'gql.tada';\n\nimport {\n DecimalNumberFragment,\n DecimalNumberWithChangeFragment,\n Erc20TokenFragment,\n ExchangeAmountFragment,\n ExchangeAmountWithChangeFragment,\n HubFragment,\n PercentNumberFragment,\n} from './fragments';\nimport { graphql, type RequestOf } from './graphql';\n\nexport const AssetPriceSampleFragment = graphql(\n `fragment AssetPriceSample on AssetPriceSample {\n __typename\n date\n price\n }`,\n);\nexport type AssetPriceSample = FragmentOf<typeof AssetPriceSampleFragment>;\n\nexport const AssetSampleBreakdownFragment = graphql(\n `fragment AssetSampleBreakdown on AssetSampleBreakdown {\n __typename\n amount {\n ...DecimalNumber\n }\n apy {\n ...PercentNumber\n }\n hub {\n ...Hub\n }\n }`,\n [DecimalNumberFragment, PercentNumberFragment, HubFragment],\n);\nexport type AssetSampleBreakdown = FragmentOf<\n typeof AssetSampleBreakdownFragment\n>;\n\nexport const AssetSupplySampleFragment = graphql(\n `fragment AssetSupplySample on AssetSupplySample {\n __typename\n date\n amount {\n ...DecimalNumber\n }\n highestApy {\n ...PercentNumber\n }\n lowestApy {\n ...PercentNumber\n }\n averageApy {\n ...PercentNumber\n }\n breakdown {\n ...AssetSampleBreakdown\n }\n }`,\n [DecimalNumberFragment, PercentNumberFragment, AssetSampleBreakdownFragment],\n);\nexport type AssetSupplySample = FragmentOf<typeof AssetSupplySampleFragment>;\n\nexport const AssetBorrowSampleFragment = graphql(\n `fragment AssetBorrowSample on AssetBorrowSample {\n __typename\n date\n amount {\n ...DecimalNumber\n }\n highestApy {\n ...PercentNumber\n }\n lowestApy {\n ...PercentNumber\n }\n averageApy {\n ...PercentNumber\n }\n breakdown {\n ...AssetSampleBreakdown\n }\n }`,\n [DecimalNumberFragment, PercentNumberFragment, AssetSampleBreakdownFragment],\n);\nexport type AssetBorrowSample = FragmentOf<typeof AssetBorrowSampleFragment>;\n\nexport const AssetAmountWithChangeFragment = graphql(\n `fragment AssetAmountWithChange on AssetAmountWithChange {\n __typename\n amount {\n ...DecimalNumberWithChange\n }\n exchange(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n }`,\n [DecimalNumberWithChangeFragment, ExchangeAmountWithChangeFragment],\n);\nexport type AssetAmountWithChange = FragmentOf<\n typeof AssetAmountWithChangeFragment\n>;\n\nexport const AssetSummaryFragment = graphql(\n `fragment AssetSummary on AssetSummary {\n __typename\n totalSupplyCap {\n ...AssetAmountWithChange\n }\n totalSupplied {\n ...AssetAmountWithChange\n }\n totalSuppliable {\n ...AssetAmountWithChange\n }\n totalBorrowCap {\n ...AssetAmountWithChange\n }\n totalBorrowed {\n ...AssetAmountWithChange\n }\n totalBorrowable {\n ...AssetAmountWithChange\n }\n averageBorrowApy: borrowApy(metric: AVERAGE) {\n ...PercentNumber\n }\n averageSupplyApy: supplyApy(metric: AVERAGE) {\n ...PercentNumber\n }\n }`,\n [AssetAmountWithChangeFragment, PercentNumberFragment],\n);\nexport type AssetSummary = FragmentOf<typeof AssetSummaryFragment>;\n\nexport const AssetFragment = graphql(\n `fragment Asset on Asset {\n __typename\n id\n token {\n ...Erc20Token\n }\n summary {\n ...AssetSummary\n }\n price(currency: $currency) {\n ...ExchangeAmountWithChange\n }\n }`,\n [Erc20TokenFragment, AssetSummaryFragment, ExchangeAmountWithChangeFragment],\n);\nexport type Asset = FragmentOf<typeof AssetFragment>;\n\n/**\n * @internal\n */\nexport const AssetQuery = graphql(\n `query Asset($request: AssetRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: asset(request: $request) {\n ...Asset\n }\n }`,\n [AssetFragment],\n);\nexport type AssetRequest = RequestOf<typeof AssetQuery>;\n\nexport type AssetRequestQuery = ReturnType<\n typeof graphql.scalar<'AssetRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const AssetPriceHistoryQuery = graphql(\n `query AssetPriceHistory($request: AssetPriceHistoryRequest!) {\n value: assetPriceHistory(request: $request) {\n ...AssetPriceSample\n }\n }`,\n [AssetPriceSampleFragment],\n);\nexport type AssetPriceHistoryRequest = RequestOf<typeof AssetPriceHistoryQuery>;\nexport type AssetPriceHistoryRequestQuery = ReturnType<\n typeof graphql.scalar<'AssetPriceHistoryRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const AssetSupplyHistoryQuery = graphql(\n `query AssetSupplyHistory($request: AssetSupplyHistoryRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: assetSupplyHistory(request: $request) {\n ...AssetSupplySample\n }\n }`,\n [AssetSupplySampleFragment],\n);\nexport type AssetSupplyHistoryRequest = RequestOf<\n typeof AssetSupplyHistoryQuery\n>;\nexport type AssetSupplyHistoryRequestQuery = ReturnType<\n typeof graphql.scalar<'AssetSupplyHistoryRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const AssetBorrowHistoryQuery = graphql(\n `query AssetBorrowHistory($request: AssetBorrowHistoryRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: assetBorrowHistory(request: $request) {\n ...AssetBorrowSample\n }\n }`,\n [AssetBorrowSampleFragment],\n);\nexport type AssetBorrowHistoryRequest = RequestOf<\n typeof AssetBorrowHistoryQuery\n>;\nexport type AssetBorrowHistoryRequestQuery = ReturnType<\n typeof graphql.scalar<'AssetBorrowHistoryRequestQuery'>\n>;\n\nexport const ProtocolHistorySampleFragment = graphql(\n `fragment ProtocolHistorySample on ProtocolHistorySample {\n __typename\n date\n deposits {\n ...ExchangeAmount\n }\n borrows {\n ...ExchangeAmount\n }\n }`,\n [ExchangeAmountFragment],\n);\nexport type ProtocolHistorySample = FragmentOf<\n typeof ProtocolHistorySampleFragment\n>;\n\n/**\n * @internal\n */\nexport const ProtocolHistoryQuery = graphql(\n `query ProtocolHistory($request: ProtocolHistoryRequest!) {\n value: protocolHistory(request: $request) {\n ...ProtocolHistorySample\n }\n }`,\n [ProtocolHistorySampleFragment],\n);\nexport type ProtocolHistoryRequest = RequestOf<typeof ProtocolHistoryQuery>;\n","import { ApySampleFragment, ReserveFragment } from './fragments';\nimport { graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const BorrowApyHistoryQuery = graphql(\n `query BorrowApyHistory($request: BorrowApyHistoryRequest!) {\n value: borrowApyHistory(request: $request) {\n ...ApySample\n }\n }`,\n [ApySampleFragment],\n);\nexport type BorrowApyHistoryRequest = RequestOf<typeof BorrowApyHistoryQuery>;\n\n/**\n * @internal\n */\nexport const SupplyApyHistoryQuery = graphql(\n `query SupplyApyHistory($request: SupplyApyHistoryRequest!) {\n value: supplyApyHistory(request: $request) {\n ...ApySample\n }\n }`,\n [ApySampleFragment],\n);\nexport type SupplyApyHistoryRequest = RequestOf<typeof SupplyApyHistoryQuery>;\n\nexport const ReserveQuery = graphql(\n `query Reserve($request: ReserveRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: reserve(request: $request) {\n ...Reserve\n }\n }`,\n [ReserveFragment],\n);\nexport type ReserveRequest = RequestOf<typeof ReserveQuery>;\n\nexport type ReserveRequestQuery = ReturnType<\n typeof graphql.scalar<'ReserveRequestQuery'>\n>;\n\nexport const ReservesQuery = graphql(\n `query Reserves($request: ReservesRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: reserves(request: $request) {\n ...Reserve\n }\n }`,\n [ReserveFragment],\n);\nexport type ReservesRequest = RequestOf<typeof ReservesQuery>;\n\nexport type ReservesRequestOrderBy = ReturnType<\n typeof graphql.scalar<'ReservesRequestOrderBy'>\n>;\nexport type ReservesRequestQuery = ReturnType<\n typeof graphql.scalar<'ReservesRequestQuery'>\n>;\nexport type ChainTokenCategories = ReturnType<\n typeof graphql.scalar<'ChainTokenCategories'>\n>;\n","import {\n PaginatedSpokePositionManagerResultFragment,\n PaginatedSpokeUserPositionManagerResultFragment,\n SpokeFragment,\n} from './fragments/spoke';\nimport { graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const SpokeQuery = graphql(\n `query Spoke($request: SpokeRequest!) {\n value: spoke(request: $request) {\n ...Spoke\n }\n }`,\n [SpokeFragment],\n);\nexport type SpokeRequest = RequestOf<typeof SpokeQuery>;\n\nexport type SpokeRequestQuery = ReturnType<\n typeof graphql.scalar<'SpokeRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const SpokesQuery = graphql(\n `query Spokes($request: SpokesRequest!) {\n value: spokes(request: $request) {\n ...Spoke\n }\n }`,\n [SpokeFragment],\n);\nexport type SpokesRequest = RequestOf<typeof SpokesQuery>;\n\nexport type SpokesRequestQuery = ReturnType<\n typeof graphql.scalar<'SpokesRequestQuery'>\n>;\n\n/**\n * @internal\n */\nexport const SpokePositionManagersQuery = graphql(\n `query SpokePositionManagers($request: SpokePositionManagersRequest!) {\n value: spokePositionManagers(request: $request) {\n ...PaginatedSpokePositionManagerResult\n }\n }`,\n [PaginatedSpokePositionManagerResultFragment],\n);\nexport type SpokePositionManagersRequest = RequestOf<\n typeof SpokePositionManagersQuery\n>;\n\n/**\n * @internal\n */\nexport const SpokeUserPositionManagersQuery = graphql(\n `query SpokeUserPositionManagers($request: SpokeUserPositionManagersRequest!) {\n value: spokeUserPositionManagers(request: $request) {\n ...PaginatedSpokeUserPositionManagerResult\n }\n }`,\n [PaginatedSpokeUserPositionManagerResultFragment],\n);\nexport type SpokeUserPositionManagersRequest = RequestOf<\n typeof SpokeUserPositionManagersQuery\n>;\n","import {\n BorrowSwapQuoteResultFragment,\n CancelSwapExecutionPlanFragment,\n PaginatedUserSwapsResultFragment,\n PreparePositionSwapResultFragment,\n PrepareSwapCancelResultFragment,\n PrepareTokenSwapResultFragment,\n RepayWithSupplyQuoteResultFragment,\n SupplySwapQuoteResultFragment,\n SwapExecutionPlanFragment,\n SwapStatusFragment,\n TokenFragment,\n TokenSwapQuoteResultFragment,\n WithdrawSwapQuoteResultFragment,\n} from './fragments';\nimport { graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const TokenSwapQuoteQuery = graphql(\n `query TokenSwapQuote($request: TokenSwapQuoteRequest!, $currency: Currency!) {\n value: tokenSwapQuote(request: $request) {\n ...TokenSwapQuoteResult\n }\n }`,\n [TokenSwapQuoteResultFragment],\n);\nexport type TokenSwapQuoteRequest = RequestOf<typeof TokenSwapQuoteQuery>;\n\nexport type MarketOrderTokenSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'MarketOrderTokenSwapQuoteInput'>\n>;\nexport type LimitOrderTokenSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'LimitOrderTokenSwapQuoteInput'>\n>;\nexport type MarketOrderTokenSwapFromQuoteInput = ReturnType<\n typeof graphql.scalar<'MarketOrderTokenSwapFromQuoteInput'>\n>;\n\n/**\n * @internal\n */\nexport const SwappableTokensQuery = graphql(\n `query SwappableTokens($request: SwappableTokensRequest!) {\n value: swappableTokens(request: $request) {\n ...Token\n }\n }`,\n [TokenFragment],\n);\nexport type SwappableTokensRequest = RequestOf<typeof SwappableTokensQuery>;\n\n/**\n * @internal\n */\nexport const PrepareTokenSwapQuery = graphql(\n `query PrepareTokenSwap($request: PrepareTokenSwapRequest!) {\n value: prepareTokenSwap(request: $request) {\n ...PrepareTokenSwapResult\n }\n }`,\n [PrepareTokenSwapResultFragment],\n);\nexport type PrepareTokenSwapRequest = RequestOf<typeof PrepareTokenSwapQuery>;\n\n/**\n * @internal\n */\nexport const SwapStatusQuery = graphql(\n `query SwapStatus($request: SwapStatusRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: swapStatus(request: $request) {\n ...SwapStatus\n }\n }`,\n [SwapStatusFragment],\n);\nexport type SwapStatusRequest = RequestOf<typeof SwapStatusQuery>;\n\n/**\n * @internal\n */\nexport const SwapMutation = graphql(\n `mutation Swap($request: SwapRequest!) {\n value: swap(request: $request) {\n ...SwapExecutionPlan\n }\n }`,\n [SwapExecutionPlanFragment],\n);\nexport type SwapRequest = RequestOf<typeof SwapMutation>;\n\n/**\n * @internal\n */\nexport const PrepareSwapCancelQuery = graphql(\n `query PrepareSwapCancel($request: PrepareSwapCancelRequest!) {\n value: prepareSwapCancel(request: $request) {\n ...PrepareSwapCancelResult\n }\n }`,\n [PrepareSwapCancelResultFragment],\n);\nexport type PrepareSwapCancelRequest = RequestOf<typeof PrepareSwapCancelQuery>;\n\n/**\n * @internal\n */\nexport const CancelSwapMutation = graphql(\n `mutation CancelSwap($request: CancelSwapRequest!) {\n value: cancelSwap(request: $request) {\n ...CancelSwapExecutionPlan\n }\n }`,\n [CancelSwapExecutionPlanFragment],\n);\nexport type CancelSwapRequest = RequestOf<typeof CancelSwapMutation>;\n\n/**\n * @internal\n */\nexport const UserSwapsQuery = graphql(\n `query UserSwaps($request: UserSwapsRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: userSwaps(request: $request) {\n ...PaginatedUserSwapsResult\n }\n }`,\n [PaginatedUserSwapsResultFragment],\n);\nexport type UserSwapsRequest = RequestOf<typeof UserSwapsQuery>;\n\n/**\n * @internal\n */\nexport const SupplySwapQuoteQuery = graphql(\n `query SupplySwapQuote($request: SupplySwapQuoteRequest!, $currency: Currency!) {\n value: supplySwapQuote(request: $request) {\n ...SupplySwapQuoteResult\n }\n }`,\n [SupplySwapQuoteResultFragment],\n);\nexport type SupplySwapQuoteRequest = RequestOf<typeof SupplySwapQuoteQuery>;\n\nexport type MarketSupplySwapQuoteInput = ReturnType<\n typeof graphql.scalar<'MarketSupplySwapQuoteInput'>\n>;\nexport type LimitSupplySwapQuoteInput = ReturnType<\n typeof graphql.scalar<'LimitSupplySwapQuoteInput'>\n>;\nexport type FromQuoteSupplySwapQuoteInput = ReturnType<\n typeof graphql.scalar<'FromQuoteSupplySwapQuoteInput'>\n>;\n\n/**\n * @internal\n */\nexport const BorrowSwapQuoteQuery = graphql(\n `query BorrowSwapQuote($request: BorrowSwapQuoteRequest!, $currency: Currency!) {\n value: borrowSwapQuote(request: $request) {\n ...BorrowSwapQuoteResult\n }\n }`,\n [BorrowSwapQuoteResultFragment],\n);\nexport type BorrowSwapQuoteRequest = RequestOf<typeof BorrowSwapQuoteQuery>;\n\nexport type MarketDebtSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'MarketDebtSwapQuoteInput'>\n>;\nexport type LimitDebtSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'LimitDebtSwapQuoteInput'>\n>;\nexport type FromQuoteDebtSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'FromQuoteDebtSwapQuoteInput'>\n>;\n\n/**\n * @internal\n */\nexport const RepayWithSupplyQuoteQuery = graphql(\n `query RepayWithSupplyQuote($request: RepayWithSupplyQuoteRequest!, $currency: Currency!) {\n value: repayWithSupplyQuote(request: $request) {\n ...RepayWithSupplyQuoteResult\n }\n }`,\n [RepayWithSupplyQuoteResultFragment],\n);\nexport type RepayWithSupplyQuoteRequest = RequestOf<\n typeof RepayWithSupplyQuoteQuery\n>;\n\nexport type MarketRepayWithSupplyQuoteInput = ReturnType<\n typeof graphql.scalar<'MarketRepayWithSupplyQuoteInput'>\n>;\nexport type LimitRepayWithSupplyQuoteInput = ReturnType<\n typeof graphql.scalar<'LimitRepayWithSupplyQuoteInput'>\n>;\nexport type FromQuoteRepayWithSupplyQuoteInput = ReturnType<\n typeof graphql.scalar<'FromQuoteRepayWithSupplyQuoteInput'>\n>;\n\n/**\n * @internal\n */\nexport const WithdrawSwapQuoteQuery = graphql(\n `query WithdrawSwapQuote($request: WithdrawSwapQuoteRequest!, $currency: Currency!) {\n value: withdrawSwapQuote(request: $request) {\n ...WithdrawSwapQuoteResult\n }\n }`,\n [WithdrawSwapQuoteResultFragment],\n);\nexport type WithdrawSwapQuoteRequest = RequestOf<typeof WithdrawSwapQuoteQuery>;\n\nexport type MarketWithdrawSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'MarketWithdrawSwapQuoteInput'>\n>;\nexport type LimitWithdrawSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'LimitWithdrawSwapQuoteInput'>\n>;\nexport type FromQuoteWithdrawSwapQuoteInput = ReturnType<\n typeof graphql.scalar<'FromQuoteWithdrawSwapQuoteInput'>\n>;\n\n/**\n * @internal\n */\nexport const PreparePositionSwapQuery = graphql(\n `query PreparePositionSwap($request: PreparePositionSwapRequest!) {\n value: preparePositionSwap(request: $request) {\n ...PreparePositionSwapResult\n }\n }`,\n [PreparePositionSwapResultFragment],\n);\nexport type PreparePositionSwapRequest = RequestOf<\n typeof PreparePositionSwapQuery\n>;\n\nexport type CancelIntentSwapInput = ReturnType<\n typeof graphql.scalar<'CancelIntentSwapInput'>\n>;\nexport type SwapByIntentInput = ReturnType<\n typeof graphql.scalar<'SwapByIntentInput'>\n>;\nexport type SwapWithTransactionInput = ReturnType<\n typeof graphql.scalar<'SwapWithTransactionInput'>\n>;\nexport type SwappableTokensRequestQuery = ReturnType<\n typeof graphql.scalar<'SwappableTokensRequestQuery'>\n>;\nexport type SwapTokenInput = ReturnType<\n typeof graphql.scalar<'SwapTokenInput'>\n>;\nexport type SwapErc20Input = ReturnType<\n typeof graphql.scalar<'SwapErc20Input'>\n>;\nexport type SwappableTokenInput = ReturnType<\n typeof graphql.scalar<'SwappableTokenInput'>\n>;\n","import type { ExtendWithOpaqueType } from '@aave/types';\nimport type { FragmentOf } from 'gql.tada';\nimport {\n ChainFragment,\n Erc20AmountFragment,\n type Erc20ApprovalRequired,\n Erc20ApprovalRequiredFragment,\n Erc20TokenFragment,\n ExchangeAmountVariationFragment,\n ExecutionPlanFragment,\n HealthFactorResultFragment,\n type InsufficientBalanceError,\n InsufficientBalanceErrorFragment,\n PaginatedResultInfoFragment,\n PercentNumberFragment,\n PercentNumberVariationFragment,\n ReserveInfoFragment,\n SpokeFragment,\n SwapAmountFragment,\n type TransactionRequest,\n TransactionRequestFragment,\n} from './fragments';\nimport { type FragmentDocumentFor, graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const BorrowQuery = graphql(\n `query Borrow($request: BorrowRequest!) {\n value: borrow(request: $request) {\n ...ExecutionPlan\n }\n }`,\n [ExecutionPlanFragment],\n);\nexport type BorrowRequest = RequestOf<typeof BorrowQuery>;\n\n/**\n * @internal\n */\nexport const SupplyQuery = graphql(\n `query Supply($request: SupplyRequest!) {\n value: supply(request: $request) {\n ...ExecutionPlan\n }\n }`,\n [ExecutionPlanFragment],\n);\nexport type SupplyRequest = RequestOf<typeof SupplyQuery>;\n\n/**\n * @internal\n */\nexport const RepayQuery = graphql(\n `query Repay($request: RepayRequest!) {\n value: repay(request: $request) {\n ...ExecutionPlan\n }\n }`,\n [ExecutionPlanFragment],\n);\nexport type RepayRequest = RequestOf<typeof RepayQuery>;\n\n/**\n * @internal\n */\nexport const WithdrawQuery = graphql(\n `query Withdraw($request: WithdrawRequest!) {\n value: withdraw(request: $request) {\n ...ExecutionPlan\n }\n }`,\n [ExecutionPlanFragment],\n);\nexport type WithdrawRequest = RequestOf<typeof WithdrawQuery>;\n\nexport type LiquidatePositionExecutionPlan =\n | TransactionRequest\n | Erc20ApprovalRequired\n | InsufficientBalanceError;\n\nexport const LiquidatePositionExecutionPlanFragment: FragmentDocumentFor<\n LiquidatePositionExecutionPlan,\n 'LiquidatePositionExecutionPlan'\n> = graphql(\n `fragment LiquidatePositionExecutionPlan on LiquidatePositionExecutionPlan {\n __typename\n ... on TransactionRequest {\n ...TransactionRequest\n }\n ... on Erc20ApprovalRequired {\n ...Erc20ApprovalRequired\n }\n ... on InsufficientBalanceError {\n ...InsufficientBalanceError\n }\n }`,\n [\n TransactionRequestFragment,\n Erc20ApprovalRequiredFragment,\n InsufficientBalanceErrorFragment,\n ],\n);\n\n/**\n * @internal\n */\nexport const LiquidatePositionQuery = graphql(\n `query LiquidatePosition($request: LiquidatePositionRequest!) {\n value: liquidatePosition(request: $request) {\n ...LiquidatePositionExecutionPlan\n }\n }`,\n [LiquidatePositionExecutionPlanFragment],\n);\nexport type LiquidatePositionRequest = RequestOf<typeof LiquidatePositionQuery>;\n\n/**\n * @internal\n */\nexport const SetSpokeUserPositionManagerQuery = graphql(\n `query SetSpokeUserPositionManager($request: SetSpokeUserPositionManagerRequest!) {\n value: setSpokeUserPositionManager(request: $request) {\n ...TransactionRequest\n }\n }`,\n [TransactionRequestFragment],\n);\nexport type SetSpokeUserPositionManagerRequest = RequestOf<\n typeof SetSpokeUserPositionManagerQuery\n>;\n\n/**\n * @internal\n */\nexport const SetUserSuppliesAsCollateralQuery = graphql(\n `query SetUserSuppliesAsCollateral($request: SetUserSuppliesAsCollateralRequest!) {\n value: setUserSuppliesAsCollateral(request: $request) {\n ...TransactionRequest\n }\n }`,\n [TransactionRequestFragment],\n);\nexport type SetUserSuppliesAsCollateralRequest = RequestOf<\n typeof SetUserSuppliesAsCollateralQuery\n>;\n\nexport type UserSupplyAsCollateral = ReturnType<\n typeof graphql.scalar<'UserSupplyAsCollateral'>\n>;\n\n/**\n * @internal\n */\nexport const RenounceSpokeUserPositionManagerQuery = graphql(\n `query RenounceSpokeUserPositionManager($request: RenounceSpokeUserPositionManagerRequest!) {\n value: renounceSpokeUserPositionManager(request: $request) {\n ...TransactionRequest\n }\n }`,\n [TransactionRequestFragment],\n);\nexport type RenounceSpokeUserPositionManagerRequest = RequestOf<\n typeof RenounceSpokeUserPositionManagerQuery\n>;\n\n/**\n * @internal\n */\nexport const UpdateUserPositionConditionsQuery = graphql(\n `query UpdateUserPositionConditions($request: UpdateUserPositionConditionsRequest!) {\n value: updateUserPositionConditions(request: $request) {\n ...TransactionRequest\n }\n }`,\n [TransactionRequestFragment],\n);\nexport type UpdateUserPositionConditionsRequest = RequestOf<\n typeof UpdateUserPositionConditionsQuery\n>;\n\nexport const CollateralFactorVariationFragment = graphql(\n `fragment CollateralFactorVariation on CollateralFactorVariation {\n __typename\n reserveId\n token {\n ...Erc20Token\n }\n current {\n ...PercentNumber\n }\n after {\n ...PercentNumber\n }\n }`,\n [Erc20TokenFragment, PercentNumberFragment],\n);\nexport type CollateralFactorVariation = FragmentOf<\n typeof CollateralFactorVariationFragment\n>;\n\nexport const LiquidationFeeVariationFragment = graphql(\n `fragment LiquidationFeeVariation on LiquidationFeeVariation {\n __typename\n reserveId\n token {\n ...Erc20Token\n }\n current {\n ...PercentNumber\n }\n after {\n ...PercentNumber\n }\n }`,\n [Erc20TokenFragment, PercentNumberFragment],\n);\nexport type LiquidationFeeVariation = FragmentOf<\n typeof LiquidationFeeVariationFragment\n>;\n\nexport const MaxLiquidationBonusVariationFragment = graphql(\n `fragment MaxLiquidationBonusVariation on MaxLiquidationBonusVariation {\n __typename\n reserveId\n token {\n ...Erc20Token\n }\n current {\n ...PercentNumber\n }\n after {\n ...PercentNumber\n }\n }`,\n [Erc20TokenFragment, PercentNumberFragment],\n);\nexport type MaxLiquidationBonusVariation = FragmentOf<\n typeof MaxLiquidationBonusVariationFragment\n>;\n\nexport const UserPositionConditionVariationFragment = graphql(\n `fragment UserPositionConditionVariation on UserPositionConditionVariation {\n __typename\n ... on CollateralFactorVariation {\n ...CollateralFactorVariation\n }\n ... on LiquidationFeeVariation {\n ...LiquidationFeeVariation\n }\n ... on MaxLiquidationBonusVariation {\n ...MaxLiquidationBonusVariation\n }\n }`,\n [\n CollateralFactorVariationFragment,\n LiquidationFeeVariationFragment,\n MaxLiquidationBonusVariationFragment,\n ],\n);\nexport type UserPositionConditionVariation = FragmentOf<\n typeof UserPositionConditionVariationFragment\n>;\n\nexport const PreviewUserPositionFragment = graphql(\n `fragment PreviewUserPosition on PreviewUserPosition {\n __typename\n id\n healthFactor {\n ...HealthFactorResult\n }\n netApy {\n ...PercentNumberVariation\n }\n riskPremium {\n ...PercentNumberVariation\n }\n netCollateral(currency: $currency) {\n ...ExchangeAmountVariation\n }\n netBalance(currency: $currency) {\n ...ExchangeAmountVariation\n }\n projectedEarnings {\n ...ExchangeAmountVariation\n }\n borrowingPower {\n ...ExchangeAmountVariation\n }\n otherConditions {\n ...UserPositionConditionVariation\n }\n }`,\n [\n HealthFactorResultFragment,\n PercentNumberVariationFragment,\n ExchangeAmountVariationFragment,\n UserPositionConditionVariationFragment,\n ],\n);\nexport type PreviewUserPosition = FragmentOf<\n typeof PreviewUserPositionFragment\n>;\n\n/**\n * @internal\n */\nexport const PreviewQuery = graphql(\n `query Preview($request: PreviewRequest!, $currency: Currency! = USD) {\n value: preview(request: $request) {\n ...PreviewUserPosition\n }\n }`,\n [PreviewUserPositionFragment],\n);\nexport type PreviewAction = ReturnType<typeof graphql.scalar<'PreviewAction'>>;\nexport type PreviewRequest = RequestOf<typeof PreviewQuery>;\n\nexport type LiquidatePositionDebtAmount = ReturnType<\n typeof graphql.scalar<'LiquidatePositionDebtAmount'>\n>;\nexport type RepayAmountInputWithPermit = ReturnType<\n typeof graphql.scalar<'RepayAmountInputWithPermit'>\n>;\nexport type RepayErc20AmountInputWithPermit = ReturnType<\n typeof graphql.scalar<'RepayErc20AmountInputWithPermit'>\n>;\nexport type WithdrawReserveAmountInput = ReturnType<\n typeof graphql.scalar<'WithdrawReserveAmountInput'>\n>;\n\n// Activity Fragments\nexport const PercentNumberChangeSnapshotFragment = graphql(\n `fragment PercentNumberChangeSnapshot on PercentNumberChangeSnapshot {\n __typename\n before {\n ...PercentNumber\n }\n after {\n ...PercentNumber\n }\n }`,\n [PercentNumberFragment],\n);\nexport type PercentNumberChangeSnapshot = FragmentOf<\n typeof PercentNumberChangeSnapshotFragment\n>;\n\nexport const BorrowActivityFragment = graphql(\n `fragment BorrowActivity on BorrowActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n reserve {\n ...ReserveInfo\n }\n borrowed {\n ...Erc20Amount\n }\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, Erc20AmountFragment, ReserveInfoFragment, ChainFragment],\n);\nexport type BorrowActivity = FragmentOf<typeof BorrowActivityFragment>;\n\nexport const SupplyActivityFragment = graphql(\n `fragment SupplyActivity on SupplyActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n reserve {\n ...ReserveInfo\n }\n supplied {\n ...Erc20Amount\n }\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, Erc20AmountFragment, ReserveInfoFragment, ChainFragment],\n);\nexport type SupplyActivity = FragmentOf<typeof SupplyActivityFragment>;\n\nexport const WithdrawActivityFragment = graphql(\n `fragment WithdrawActivity on WithdrawActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n reserve {\n ...ReserveInfo\n }\n withdrawn {\n ...Erc20Amount\n }\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, Erc20AmountFragment, ReserveInfoFragment, ChainFragment],\n);\nexport type WithdrawActivity = FragmentOf<typeof WithdrawActivityFragment>;\n\nexport const RepayActivityFragment = graphql(\n `fragment RepayActivity on RepayActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n reserve {\n ...ReserveInfo\n }\n repaid {\n ...Erc20Amount\n }\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, Erc20AmountFragment, ReserveInfoFragment, ChainFragment],\n);\nexport type RepayActivity = FragmentOf<typeof RepayActivityFragment>;\n\nexport const LiquidatedActivityFragment = graphql(\n `fragment LiquidatedActivity on LiquidatedActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n collateralReserve {\n ...ReserveInfo\n }\n debtReserve {\n ...ReserveInfo\n }\n collateral {\n ...Erc20Amount\n }\n debt {\n ...Erc20Amount\n }\n liquidator\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, Erc20AmountFragment, ReserveInfoFragment, ChainFragment],\n);\nexport type LiquidatedActivity = FragmentOf<typeof LiquidatedActivityFragment>;\n\nexport const UsingAsCollateralActivityFragment = graphql(\n `fragment UsingAsCollateralActivity on UsingAsCollateralActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n reserve {\n ...ReserveInfo\n }\n enabledAsCollateral\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, ReserveInfoFragment, ChainFragment],\n);\nexport type UsingAsCollateralActivity = FragmentOf<\n typeof UsingAsCollateralActivityFragment\n>;\n\nexport const UpdatedDynamicConfigActivityFragment = graphql(\n `fragment UpdatedDynamicConfigActivity on UpdatedDynamicConfigActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n reserve {\n ...ReserveInfo\n }\n collateralFactor {\n ...PercentNumberChangeSnapshot\n }\n maxLiquidationBonus {\n ...PercentNumberChangeSnapshot\n }\n liquidationFee {\n ...PercentNumberChangeSnapshot\n }\n chain {\n ...Chain\n }\n }`,\n [\n SpokeFragment,\n ReserveInfoFragment,\n PercentNumberChangeSnapshotFragment,\n ChainFragment,\n ],\n);\nexport type UpdatedDynamicConfigActivity = FragmentOf<\n typeof UpdatedDynamicConfigActivityFragment\n>;\n\nexport const UpdatedRiskPremiumActivityFragment = graphql(\n `fragment UpdatedRiskPremiumActivity on UpdatedRiskPremiumActivity {\n __typename\n id\n user\n timestamp\n txHash\n spoke {\n ...Spoke\n }\n premium {\n ...PercentNumberChangeSnapshot\n }\n chain {\n ...Chain\n }\n }`,\n [SpokeFragment, PercentNumberChangeSnapshotFragment, ChainFragment],\n);\nexport type UpdatedRiskPremiumActivity = FragmentOf<\n typeof UpdatedRiskPremiumActivityFragment\n>;\n\nexport const TokenSwapActivityFragment = graphql(\n `fragment TokenSwapActivity on TokenSwapActivity {\n __typename\n id\n user\n timestamp\n txHash\n chain {\n ...Chain\n }\n sold {\n ...SwapAmount\n }\n bought {\n ...SwapAmount\n }\n explorerUrl\n }`,\n [ChainFragment, SwapAmountFragment],\n);\nexport type TokenSwapActivity = FragmentOf<typeof TokenSwapActivityFragment>;\n\nexport const SupplySwapActivityFragment = graphql(\n `fragment SupplySwapActivity on SupplySwapActivity {\n __typename\n id\n user\n timestamp\n txHash\n chain {\n ...Chain\n }\n sold {\n ...SwapAmount\n }\n bought {\n ...SwapAmount\n }\n explorerUrl\n }`,\n [ChainFragment, SwapAmountFragment],\n);\nexport type SupplySwapActivity = FragmentOf<typeof SupplySwapActivityFragment>;\n\nexport const BorrowSwapActivityFragment = graphql(\n `fragment BorrowSwapActivity on BorrowSwapActivity {\n __typename\n id\n user\n timestamp\n txHash\n chain {\n ...Chain\n }\n sold {\n ...SwapAmount\n }\n bought {\n ...SwapAmount\n }\n explorerUrl\n }`,\n [ChainFragment, SwapAmountFragment],\n);\nexport type BorrowSwapActivity = FragmentOf<typeof BorrowSwapActivityFragment>;\n\nexport const RepayWithSupplyActivityFragment = graphql(\n `fragment RepayWithSupplyActivity on RepayWithSupplyActivity {\n __typename\n id\n user\n timestamp\n txHash\n chain {\n ...Chain\n }\n debtRepaid {\n ...SwapAmount\n }\n supplyUsed {\n ...SwapAmount\n }\n explorerUrl\n }`,\n [ChainFragment, SwapAmountFragment],\n);\nexport type RepayWithSupplyActivity = FragmentOf<\n typeof RepayWithSupplyActivityFragment\n>;\n\nexport const WithdrawSwapActivityFragment = graphql(\n `fragment WithdrawSwapActivity on WithdrawSwapActivity {\n __typename\n id\n user\n timestamp\n txHash\n chain {\n ...Chain\n }\n withdrawn {\n ...SwapAmount\n }\n bought {\n ...SwapAmount\n }\n explorerUrl\n }`,\n [ChainFragment, SwapAmountFragment],\n);\nexport type WithdrawSwapActivity = FragmentOf<\n typeof WithdrawSwapActivityFragment\n>;\n\nexport const ActivityItemFragment = graphql(\n `fragment ActivityItem on ActivityItem {\n __typename\n ... on BorrowActivity {\n ...BorrowActivity\n }\n ... on SupplyActivity {\n ...SupplyActivity\n }\n ... on WithdrawActivity {\n ...WithdrawActivity\n }\n ... on RepayActivity {\n ...RepayActivity\n }\n ... on LiquidatedActivity {\n ...LiquidatedActivity\n }\n ... on UsingAsCollateralActivity {\n ...UsingAsCollateralActivity\n }\n ... on UpdatedDynamicConfigActivity {\n ...UpdatedDynamicConfigActivity\n }\n ... on UpdatedRiskPremiumActivity {\n ...UpdatedRiskPremiumActivity\n }\n ... on TokenSwapActivity {\n ...TokenSwapActivity\n }\n ... on SupplySwapActivity {\n ...SupplySwapActivity\n }\n ... on BorrowSwapActivity {\n ...BorrowSwapActivity\n }\n ... on RepayWithSupplyActivity {\n ...RepayWithSupplyActivity\n }\n ... on WithdrawSwapActivity {\n ...WithdrawSwapActivity\n }\n }`,\n [\n BorrowActivityFragment,\n SupplyActivityFragment,\n WithdrawActivityFragment,\n RepayActivityFragment,\n LiquidatedActivityFragment,\n UsingAsCollateralActivityFragment,\n UpdatedDynamicConfigActivityFragment,\n UpdatedRiskPremiumActivityFragment,\n TokenSwapActivityFragment,\n SupplySwapActivityFragment,\n BorrowSwapActivityFragment,\n RepayWithSupplyActivityFragment,\n WithdrawSwapActivityFragment,\n ],\n);\nexport type ActivityItem = ExtendWithOpaqueType<\n FragmentOf<typeof ActivityItemFragment>\n>;\n\nexport const PaginatedActivitiesResultFragment = graphql(\n `fragment PaginatedActivitiesResult on PaginatedActivitiesResult {\n __typename\n items {\n ...ActivityItem\n }\n pageInfo {\n ...PaginatedResultInfo\n }\n }`,\n [ActivityItemFragment, PaginatedResultInfoFragment],\n);\nexport type PaginatedActivitiesResult = FragmentOf<\n typeof PaginatedActivitiesResultFragment\n>;\n\n/**\n * @internal\n */\nexport const ActivitiesQuery = graphql(\n `query Activities($request: ActivitiesRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: activities(request: $request) {\n ...PaginatedActivitiesResult\n }\n }`,\n [PaginatedActivitiesResultFragment],\n);\nexport type ActivitiesRequest = RequestOf<typeof ActivitiesQuery>;\n\nexport type ActivitiesRequestQuery = ReturnType<\n typeof graphql.scalar<'ActivitiesRequestQuery'>\n>;\n","import {\n UserBalanceFragment,\n UserBorrowItemFragment,\n UserPositionFragment,\n UserRiskPremiumBreakdownItemFragment,\n UserSummaryFragment,\n UserSummaryHistoryItemFragment,\n UserSupplyItemFragment,\n} from './fragments';\nimport { graphql, type RequestOf } from './graphql';\n\n/**\n * @internal\n */\nexport const UserSuppliesQuery = graphql(\n `query UserSupplies($request: UserSuppliesRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: userSupplies(request: $request) {\n ...UserSupplyItem\n }\n }`,\n [UserSupplyItemFragment],\n);\nexport type UserSuppliesRequest = RequestOf<typeof UserSuppliesQuery>;\n\n/**\n * @internal\n */\nexport const UserBorrowsQuery = graphql(\n `query UserBorrows($request: UserBorrowsRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: userBorrows(request: $request) {\n ...UserBorrowItem\n }\n }`,\n [UserBorrowItemFragment],\n);\nexport type UserBorrowsRequest = RequestOf<typeof UserBorrowsQuery>;\n\n/**\n * @internal\n */\nexport const UserSummaryQuery = graphql(\n `query UserSummary($request: UserSummaryRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: userSummary(request: $request) {\n ...UserSummary\n }\n }`,\n [UserSummaryFragment],\n);\nexport type UserSummaryRequest = RequestOf<typeof UserSummaryQuery>;\n\n/**\n * @internal\n */\nexport const UserPositionsQuery = graphql(\n `query UserPositions($request: UserPositionsRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: userPositions(request: $request) {\n ...UserPosition\n }\n }`,\n [UserPositionFragment],\n);\nexport type UserPositionsRequest = RequestOf<typeof UserPositionsQuery>;\n\n/**\n * @internal\n */\nexport const UserPositionQuery = graphql(\n `query UserPosition($request: UserPositionRequest!, $currency: Currency!, $timeWindow: TimeWindow!) {\n value: userPosition(request: $request) {\n ...UserPosition\n }\n }`,\n [UserPositionFragment],\n);\nexport type UserPositionRequest = RequestOf<typeof UserPositionQuery>;\n\n/**\n * @internal\n */\nexport const UserBalancesQuery = graphql(\n `query UserBalances($request: UserBalancesRequest!, $currency: Currency!) {\n value: userBalances(request: $request) {\n ...UserBalance\n }\n }`,\n [UserBalanceFragment],\n);\nexport type UserBalancesRequest = RequestOf<typeof UserBalancesQuery>;\n\nexport type UserBalancesRequestFilter = ReturnType<\n typeof graphql.scalar<'UserBalancesRequestFilter'>\n>;\nexport type UserBalancesByChains = ReturnType<\n typeof graphql.scalar<'UserBalancesByChains'>\n>;\nexport type UserBalancesByHub = ReturnType<\n typeof graphql.scalar<'UserBalancesByHub'>\n>;\nexport type UserBalancesByHubId = ReturnType<\n typeof graphql.scalar<'UserBalancesByHubId'>\n>;\nexport type UserBalancesBySpoke = ReturnType<\n typeof graphql.scalar<'UserBalancesBySpoke'>\n>;\nexport type UserBalancesByUserPosition = ReturnType<\n typeof graphql.scalar<'UserBalancesByUserPosition'>\n>;\nexport type UserBalancesByTokens = ReturnType<\n typeof graphql.scalar<'UserBalancesByTokens'>\n>;\n\n/**\n * @internal\n */\nexport const UserSummaryHistoryQuery = graphql(\n `query UserSummaryHistory($request: UserSummaryHistoryRequest!, $currency: Currency!) {\n value: userSummaryHistory(request: $request) {\n ...UserSummaryHistoryItem\n }\n }`,\n [UserSummaryHistoryItemFragment],\n);\nexport type UserSummaryHistoryRequest = RequestOf<\n typeof UserSummaryHistoryQuery\n>;\nexport type UserSpokeInput = ReturnType<\n typeof graphql.scalar<'UserSpokeInput'>\n>;\nexport type UserBalancesRequestOrderBy = ReturnType<\n typeof graphql.scalar<'UserBalancesRequestOrderBy'>\n>;\nexport type UserBorrowsRequestQuery = ReturnType<\n typeof graphql.scalar<'UserBorrowsRequestQuery'>\n>;\nexport type UserToken = ReturnType<typeof graphql.scalar<'UserToken'>>;\nexport type UserChains = ReturnType<typeof graphql.scalar<'UserChains'>>;\nexport type UserBorrowsRequestOrderBy = ReturnType<\n typeof graphql.scalar<'UserBorrowsRequestOrderBy'>\n>;\nexport type UserPositionsRequestFilter = ReturnType<\n typeof graphql.scalar<'UserPositionsRequestFilter'>\n>;\nexport type UserPositionsRequestOrderBy = ReturnType<\n typeof graphql.scalar<'UserPositionsRequestOrderBy'>\n>;\nexport type UserSummaryFilter = ReturnType<\n typeof graphql.scalar<'UserSummaryFilter'>\n>;\nexport type UserSuppliesRequestQuery = ReturnType<\n typeof graphql.scalar<'UserSuppliesRequestQuery'>\n>;\nexport type UserSuppliesRequestOrderBy = ReturnType<\n typeof graphql.scalar<'UserSuppliesRequestOrderBy'>\n>;\n\n/**\n * @internal\n */\nexport const UserRiskPremiumBreakdownQuery = graphql(\n `query UserRiskPremiumBreakdown($request: UserRiskPremiumBreakdownRequest!) {\n value: userRiskPremiumBreakdown(request: $request) {\n ...UserRiskPremiumBreakdownItem\n }\n }`,\n [UserRiskPremiumBreakdownItemFragment],\n);\nexport type UserRiskPremiumBreakdownRequest = RequestOf<\n typeof UserRiskPremiumBreakdownQuery\n>;\n\nexport type UserRiskPremiumBreakdownRequestQuery = ReturnType<\n typeof graphql.scalar<'UserRiskPremiumBreakdownRequestQuery'>\n>;\nexport type UserHub = ReturnType<typeof graphql.scalar<'UserHub'>>;\nexport type UserHubInput = ReturnType<typeof graphql.scalar<'UserHubInput'>>;\nexport type ChainTokenInput = ReturnType<\n typeof graphql.scalar<'ChainTokenInput'>\n>;\n","import { Currency, TimeWindow } from '@aave/graphql';\nimport type { RequestPolicy } from '@urql/core';\n\nexport type CurrencyQueryOptions = {\n /**\n * The currency for fiat amounts.\n *\n * @defaultValue {@link Currency.Usd}\n */\n currency?: Currency;\n};\n\nexport type TimeWindowQueryOptions = {\n /**\n * The time window for historical data changes.\n *\n * @defaultValue {@link TimeWindow.LastDay}\n */\n timeWindow?: TimeWindow;\n};\n\n/**\n * @internal\n */\nexport type RequestPolicyOptions = {\n /**\n * The request policy to use.\n *\n * @internal This is used for testing purposes and could be changed without notice.\n * @defaultValue `cache-and-network`\n */\n requestPolicy?: RequestPolicy;\n};\n\n/**\n * @internal\n */\nexport type BatchOptions = {\n /**\n * Whether to batch the query or not.\n *\n * @internal This is used to turn off batching for a single query.\n * @defaultValue `true`\n */\n batch?: boolean;\n};\n\nexport const DEFAULT_QUERY_OPTIONS = {\n currency: Currency.Usd,\n timeWindow: TimeWindow.LastDay,\n requestPolicy: 'cache-and-network',\n batch: true,\n} as const;\n","import {\n CancelError,\n SigningError,\n TransactionError,\n UnexpectedError,\n ValidationError,\n} from '@aave/core';\nimport type {\n ERC20PermitSignature,\n ExecutionPlan,\n TransactionRequest,\n} from '@aave/graphql';\nimport {\n chainId,\n errAsync,\n invariant,\n nonNullable,\n okAsync,\n ResultAsync,\n signatureFrom,\n txHash,\n} from '@aave/types';\nimport {\n isError,\n type Signer,\n type TransactionResponse,\n type TypedDataDomain,\n type TypedDataField,\n} from 'ethers';\nimport { supportsPermit } from './adapters';\nimport type {\n ExecutionPlanHandler,\n SignTypedDataError,\n TransactionResult,\n TypedData,\n TypedDataHandler,\n} from './types';\n\nfunction ensureChain(\n signer: Signer,\n request: TransactionRequest,\n): ResultAsync<Signer, UnexpectedError> {\n invariant(\n signer.provider,\n 'Detached signer, the signer MUST have a provider',\n );\n\n return ResultAsync.fromPromise(signer.provider.getNetwork(), (err) =>\n UnexpectedError.from(err),\n ).andThen((network) => {\n if (chainId(network.chainId) === request.chainId) {\n return okAsync(signer);\n }\n return errAsync(\n new UnexpectedError(\n `Signer is on chain ${chainId(network.chainId)} but the request is for chain ${request.chainId}.`,\n ),\n );\n });\n}\n\nfunction sendEip1559Transaction(\n signer: Signer,\n request: TransactionRequest,\n): ResultAsync<TransactionResponse, CancelError | SigningError> {\n return ResultAsync.fromPromise(\n signer.sendTransaction({\n to: request.to,\n data: request.data,\n value: request.value,\n from: request.from,\n }),\n (err) => {\n if (isError(err, 'ACTION_REJECTED')) {\n return CancelError.from(err);\n }\n return SigningError.from(err);\n },\n );\n}\n\n/**\n * @internal\n */\nexport function sendTransaction(\n signer: Signer,\n request: TransactionRequest,\n): ResultAsync<\n TransactionResponse,\n CancelError | SigningError | UnexpectedError\n> {\n return ensureChain(signer, request).andThen((_) =>\n sendEip1559Transaction(signer, request),\n );\n}\n\n/**\n * @internal\n */\nexport function waitForTransactionResult(\n request: TransactionRequest,\n response: TransactionResponse,\n): ResultAsync<TransactionResult, TransactionError | UnexpectedError> {\n return ResultAsync.fromPromise(response.wait(), (err) =>\n UnexpectedError.from(err),\n ).andThen((receipt) => {\n const hash = txHash(nonNullable(receipt?.hash));\n\n if (receipt?.status === 0) {\n return errAsync(\n TransactionError.new({\n txHash: hash,\n request,\n }),\n );\n }\n return okAsync({\n txHash: hash,\n operations: request.operations,\n });\n });\n}\n\nfunction sendTransactionAndWait(\n signer: Signer,\n request: TransactionRequest,\n): ResultAsync<\n TransactionResult,\n CancelError | SigningError | TransactionError | UnexpectedError\n> {\n return sendTransaction(signer, request).andThen((tx) =>\n waitForTransactionResult(request, tx),\n );\n}\n\nfunction executePlan(\n signer: Signer,\n result: ExecutionPlan,\n): ReturnType<ExecutionPlanHandler> {\n switch (result.__typename) {\n case 'TransactionRequest':\n return sendTransactionAndWait(signer, result);\n\n case 'Erc20ApprovalRequired':\n return result.approvals\n .reduce<ReturnType<typeof sendTransactionAndWait>>(\n (chain, approval) =>\n chain.andThen(() =>\n sendTransactionAndWait(signer, approval.byTransaction),\n ),\n okAsync(undefined as never),\n )\n .andThen(() =>\n sendTransactionAndWait(signer, result.originalTransaction),\n );\n\n case 'PreContractActionRequired':\n return sendTransactionAndWait(signer, result.transaction).andThen(() =>\n sendTransactionAndWait(signer, 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 ethers signer.\n */\nexport function sendWith<T extends ExecutionPlan = ExecutionPlan>(\n signer: Signer,\n): ExecutionPlanHandler<T>;\n/**\n * Sends execution plan transactions using the provided ethers signer.\n */\nexport function sendWith<T extends ExecutionPlan = ExecutionPlan>(\n signer: Signer,\n result: T,\n): ReturnType<ExecutionPlanHandler<T>>;\nexport function sendWith<T extends ExecutionPlan = ExecutionPlan>(\n signer: Signer,\n result?: T,\n): ExecutionPlanHandler<T> | ReturnType<ExecutionPlanHandler<T>> {\n return result ? executePlan(signer, result) : executePlan.bind(null, signer);\n}\n\nfunction signTypedData(\n signer: Signer,\n data: TypedData,\n): ResultAsync<string, CancelError | SigningError> {\n // Cast to ethers types since TypedData uses JsonObject for types/domain/message\n const domain = data.domain as unknown as TypedDataDomain;\n const types = data.types as unknown as Record<string, TypedDataField[]>;\n const message = data.message as unknown as Record<string, unknown>;\n\n return ResultAsync.fromPromise(\n signer.signTypedData(domain, types, message),\n (err) => {\n if (isError(err, 'ACTION_REJECTED')) {\n return CancelError.from(err);\n }\n return SigningError.from(err);\n },\n );\n}\n\n/**\n * Creates a function that signs EIP-712 typed data (ERC-20 permits, swap intents, etc.) using the provided ethers signer.\n *\n * @param signer - The ethers signer 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(signer));\n * ```\n */\nexport function signTypedDataWith(signer: Signer): TypedDataHandler;\n\n/**\n * Signs EIP-712 typed data (ERC-20 permits, swap intents, etc.) using the provided ethers signer.\n *\n * @param signer - The ethers signer 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(signer, typedData);\n * ```\n */\nexport function signTypedDataWith(\n signer: Signer,\n data: TypedData,\n): ReturnType<TypedDataHandler>;\n\nexport function signTypedDataWith(\n signer: Signer,\n data?: TypedData,\n): TypedDataHandler | ReturnType<TypedDataHandler> {\n if (data === undefined) {\n return (typedData: TypedData) =>\n signTypedData(signer, typedData).map(signatureFrom);\n }\n return signTypedData(signer, data).map(signatureFrom);\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(signer, (permitSig) =>\n * supply(client, {\n * reserve: reserve.id,\n * amount: { erc20: { value: amount, permitSig } },\n * sender: evmAddress(await signer.getAddress()),\n * })\n * )\n * .andThen(sendWith(signer))\n * .andThen(client.waitForTransaction);\n * ```\n *\n * @param signer - The ethers signer 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 signer: Signer,\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(signer, permitTypedData)\n .map((signature) => ({\n deadline: permitTypedData.message.deadline as number,\n value: signatureFrom(signature),\n }))\n .andThen((permitSig) => action(permitSig));\n }\n return okAsync(result);\n });\n}\n","import { invariant, nonNullable, type ResultAsync } from '@aave/client';\nimport { type DependencyList, useCallback, useRef, useState } from 'react';\n\n/**\n * An async task is a function that can be executed multiple times and that can be in a pending state.\n *\n * @internal\n */\nexport type AsyncTask<TInput, TResult extends ResultAsync<unknown, unknown>> = (\n input: TInput,\n) => TResult;\n\n/**\n * The initial state of a async task.\n */\nexport type AsyncTaskIdle = {\n called: boolean;\n loading: false;\n data: undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task during the loading.\n */\nexport type AsyncTaskLoading<TData> = {\n called: true;\n loading: true;\n data: TData | undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task after a successful call.\n */\nexport type AsyncTaskSuccess<TData> = {\n called: true;\n loading: false;\n data: TData;\n error: undefined;\n};\n\n/**\n * The state of a async task after a failed call.\n */\nexport type AsyncTaskError<TError> = {\n called: true;\n loading: false;\n data: undefined;\n error: TError;\n};\n\n/**\n * The possible statuses of a async task.\n */\nexport type AsyncTaskState<TData, TError> =\n | AsyncTaskIdle\n | AsyncTaskLoading<TData>\n | AsyncTaskSuccess<TData>\n | AsyncTaskError<TError>;\n\nconst AsyncTaskState = {\n Idle: <TData, TError>(): AsyncTaskState<TData, TError> => ({\n called: false,\n loading: false,\n data: undefined,\n error: undefined,\n }),\n Loading: <TData, TError>(data?: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: true,\n data,\n error: undefined,\n }),\n Success: <TData, TError>(data: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data,\n error: undefined,\n }),\n Failed: <TData, TError>(error: TError): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data: undefined,\n error,\n }),\n};\n\n/**\n * A async task React Hook is a lightweight wrapper for an asynchronous function.\n * It allows tracking of the task's execution status and provides access to the\n * last error that occurred during the task's execution, if any.\n *\n * ```ts\n * const [execute, { called, loading, data, error }]: UseAsyncTask<TData, TError, TInput> = useAnyAsyncTask();\n *\n * if (!called) {\n * // data === undefined\n * // error === undefined\n * return <p>Click the button to execute the task</p>;\n * }\n *\n * if (loading) {\n * // data === undefined on first call\n * // data === TData from previous successful call\n * // error === undefined\n * return <Loader />;\n * }\n *\n * if (error) {\n * // data === undefined\n * // error === TError\n * return <p>Something went wrong: {error.message}</p>;\n * }\n *\n * // called === true\n * // data === TData\n * // error === undefined\n * return <p>Task completed: {data}</p>;\n * ```\n */\nexport type UseAsyncTask<TInput, TValue, TError> = [\n AsyncTask<TInput, ResultAsync<TValue, TError>>,\n AsyncTaskState<TValue, TError>,\n];\n\n/**\n * @internal\n */\nexport function useAsyncTask<\n TInput,\n TValue,\n TError,\n TResult extends ResultAsync<TValue, TError>,\n>(\n handler: AsyncTask<TInput, TResult>,\n deps: DependencyList,\n): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n const loadingRef = useRef(false);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useAsyncTask is a low-level hook\n const handle = useCallback(handler, deps);\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !loadingRef.current,\n 'Cannot execute a task while another is in progress.',\n );\n\n loadingRef.current = true;\n\n let previousState: AsyncTaskState<TValue, TError> | undefined;\n setState((state) => {\n previousState = state;\n return {\n called: true,\n loading: true,\n data: state.data,\n error: undefined,\n };\n });\n\n try {\n const result = handle(input);\n\n result.match(\n (value) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Success(value));\n },\n (error) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Failed(error));\n },\n );\n\n return result;\n } catch (error) {\n loadingRef.current = false;\n setState(nonNullable(previousState));\n throw error;\n }\n },\n [handle],\n );\n\n return [execute, state];\n}\n","import {\n CancelError,\n isSignature,\n okAsync,\n type ResultAsync,\n type Signature,\n type SigningError,\n type TimeoutError,\n type TransactionError,\n type TransactionRequest,\n type TransactionResult,\n UnexpectedError,\n} from '@aave/client';\nimport type { UseAsyncTask } from './tasks';\n\n/**\n * The errors that could occur in the early stage of sending a transaction.\n */\nexport type SendTransactionError = CancelError | SigningError | UnexpectedError;\n\nexport type CancelOperation = (\n message: string,\n) => ResultAsync<never, CancelError>;\n\n/**\n * @internal\n */\nexport const cancel: CancelOperation = (message: string) =>\n CancelError.from(message).asResultAsync();\n\nexport type TransactionHandlerOptions = {\n cancel: CancelOperation;\n};\n\n/**\n * The errors that could occur in the late stages of a transaction.\n */\nexport type PendingTransactionError =\n | CancelError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\nexport class PendingTransaction {\n constructor(\n /**\n * @internal Do NOT rely on this method. It's used internally by the SDK and may be subject to breaking changes.\n */\n public readonly wait: () => ResultAsync<\n TransactionResult,\n PendingTransactionError\n >,\n ) {}\n\n /**\n * @internal\n */\n static isInstanceOf(value: unknown): value is PendingTransaction {\n return value instanceof PendingTransaction;\n }\n\n /**\n * Narrows a value to PendingTransaction.\n * Only accepts types that include PendingTransaction in the union.\n *\n * @internal\n */\n static tryFrom<T>(\n value: PendingTransaction extends T ? T : never,\n ): ResultAsync<PendingTransaction, UnexpectedError> {\n if (PendingTransaction.isInstanceOf(value)) {\n return okAsync(value);\n }\n return UnexpectedError.from(value).asResultAsync();\n }\n}\n\nexport type UseSendTransactionResult = UseAsyncTask<\n TransactionRequest,\n PendingTransaction,\n SendTransactionError\n>;\n\n/**\n * The Aave execution plan handler\n */\nexport type ExecutionPlanHandler<\n T,\n R extends Signature | PendingTransaction,\n> = (\n plan: T,\n options: TransactionHandlerOptions,\n) => ResultAsync<R, SendTransactionError>;\n\n/**\n * Tries to create a Signature from an unknown value.\n *\n * @internal\n */\nexport function trySignatureFrom(\n value: unknown,\n): ResultAsync<Signature, UnexpectedError> {\n if (isSignature(value)) {\n return okAsync(value);\n }\n return UnexpectedError.from(\n `Expected Signature, but got ${String(value)}`,\n ).asResultAsync();\n}\n","import {\n invariant,\n type Signature,\n type SignTypedDataError,\n type TransactionRequest,\n type TypedData,\n} from '@aave/client';\nimport {\n sendTransaction,\n signTypedDataWith,\n waitForTransactionResult,\n} from '@aave/client/ethers';\nimport type { Signer } from 'ethers';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * Retrieve the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(signer: Signer): UseSendTransactionResult {\n return useAsyncTask(\n (request: TransactionRequest) => {\n return sendTransaction(signer, request).map(\n (response) =>\n new PendingTransaction(() =>\n waitForTransactionResult(request, response),\n ),\n );\n },\n [signer],\n );\n}\n\n/**\n * A hook that provides a way to sign EIP-712 typed data (ERC-20 permits, swap intents, etc.)\n * using an ethers Signer instance.\n *\n * ```ts\n * const [signTypedData, { loading, error, data }] = useSignTypedData(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for signing typed data.\n */\nexport function useSignTypedData(\n signer: Signer | undefined,\n): UseAsyncTask<TypedData, Signature, SignTypedDataError> {\n return useAsyncTask(\n (typedData: TypedData) => {\n invariant(signer, 'Expected a Signer to sign typed data');\n\n return signTypedDataWith(signer, typedData);\n },\n [signer],\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/helpers/tasks.ts","../src/helpers/writes.ts","../src/ethers.ts"],"names":["AsyncTaskState","data","error","useAsyncTask","handler","deps","state","setState","useState","loadingRef","useRef","handle","useCallback","input","invariant","previousState","result","value","nonNullable","PendingTransaction","_PendingTransaction","wait","okAsync","UnexpectedError","useSendTransaction","signer","request","sendTransaction","response","waitForTransactionResult","useSignTypedData","typedData","signTypedDataWith"],"mappings":"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","file":"ethers.cjs","sourcesContent":["import { invariant, nonNullable, type ResultAsync } from '@aave/types';\nimport { type DependencyList, useCallback, useRef, useState } from 'react';\n\n/**\n * An async task is a function that can be executed multiple times and that can be in a pending state.\n *\n * @internal\n */\nexport type AsyncTask<TInput, TResult extends ResultAsync<unknown, unknown>> = (\n input: TInput,\n) => TResult;\n\n/**\n * The initial state of a async task.\n */\nexport type AsyncTaskIdle = {\n called: boolean;\n loading: false;\n data: undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task during the loading.\n */\nexport type AsyncTaskLoading<TData> = {\n called: true;\n loading: true;\n data: TData | undefined;\n error: undefined;\n};\n\n/**\n * The state of a async task after a successful call.\n */\nexport type AsyncTaskSuccess<TData> = {\n called: true;\n loading: false;\n data: TData;\n error: undefined;\n};\n\n/**\n * The state of a async task after a failed call.\n */\nexport type AsyncTaskError<TError> = {\n called: true;\n loading: false;\n data: undefined;\n error: TError;\n};\n\n/**\n * The possible statuses of a async task.\n */\nexport type AsyncTaskState<TData, TError> =\n | AsyncTaskIdle\n | AsyncTaskLoading<TData>\n | AsyncTaskSuccess<TData>\n | AsyncTaskError<TError>;\n\nconst AsyncTaskState = {\n Idle: <TData, TError>(): AsyncTaskState<TData, TError> => ({\n called: false,\n loading: false,\n data: undefined,\n error: undefined,\n }),\n Loading: <TData, TError>(data?: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: true,\n data,\n error: undefined,\n }),\n Success: <TData, TError>(data: TData): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data,\n error: undefined,\n }),\n Failed: <TData, TError>(error: TError): AsyncTaskState<TData, TError> => ({\n called: true,\n loading: false,\n data: undefined,\n error,\n }),\n};\n\n/**\n * A async task React Hook is a lightweight wrapper for an asynchronous function.\n * It allows tracking of the task's execution status and provides access to the\n * last error that occurred during the task's execution, if any.\n *\n * ```ts\n * const [execute, { called, loading, data, error }]: UseAsyncTask<TData, TError, TInput> = useAnyAsyncTask();\n *\n * if (!called) {\n * // data === undefined\n * // error === undefined\n * return <p>Click the button to execute the task</p>;\n * }\n *\n * if (loading) {\n * // data === undefined on first call\n * // data === TData from previous successful call\n * // error === undefined\n * return <Loader />;\n * }\n *\n * if (error) {\n * // data === undefined\n * // error === TError\n * return <p>Something went wrong: {error.message}</p>;\n * }\n *\n * // called === true\n * // data === TData\n * // error === undefined\n * return <p>Task completed: {data}</p>;\n * ```\n */\nexport type UseAsyncTask<TInput, TValue, TError> = [\n AsyncTask<TInput, ResultAsync<TValue, TError>>,\n AsyncTaskState<TValue, TError>,\n];\n\n/**\n * @internal\n */\nexport function useAsyncTask<\n TInput,\n TValue,\n TError,\n TResult extends ResultAsync<TValue, TError>,\n>(\n handler: AsyncTask<TInput, TResult>,\n deps: DependencyList,\n): UseAsyncTask<TInput, TValue, TError> {\n const [state, setState] = useState(AsyncTaskState.Idle<TValue, TError>());\n const loadingRef = useRef(false);\n // biome-ignore lint/correctness/useExhaustiveDependencies: useAsyncTask is a low-level hook\n const handle = useCallback(handler, deps);\n\n const execute = useCallback(\n (input: TInput) => {\n invariant(\n !loadingRef.current,\n 'Cannot execute a task while another is in progress.',\n );\n\n loadingRef.current = true;\n\n let previousState: AsyncTaskState<TValue, TError> | undefined;\n setState((state) => {\n previousState = state;\n return {\n called: true,\n loading: true,\n data: state.data,\n error: undefined,\n };\n });\n\n try {\n const result = handle(input);\n\n result.match(\n (value) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Success(value));\n },\n (error) => {\n loadingRef.current = false;\n setState(AsyncTaskState.Failed(error));\n },\n );\n\n return result;\n } catch (error) {\n loadingRef.current = false;\n setState(nonNullable(previousState));\n throw error;\n }\n },\n [handle],\n );\n\n return [execute, state];\n}\n","import type { TransactionResult } from '@aave/client';\nimport {\n CancelError,\n type SigningError,\n type TimeoutError,\n type TransactionError,\n UnexpectedError,\n} from '@aave/core';\nimport type { TransactionRequest } from '@aave/graphql';\nimport type { ResultAsync, Signature } from '@aave/types';\nimport { isSignature, okAsync } from '@aave/types';\nimport type { UseAsyncTask } from './tasks';\n\n/**\n * The errors that could occur in the early stage of sending a transaction.\n */\nexport type SendTransactionError = CancelError | SigningError | UnexpectedError;\n\nexport type CancelOperation = (\n message: string,\n) => ResultAsync<never, CancelError>;\n\n/**\n * @internal\n */\nexport const cancel: CancelOperation = (message: string) =>\n CancelError.from(message).asResultAsync();\n\nexport type TransactionHandlerOptions = {\n cancel: CancelOperation;\n};\n\n/**\n * The errors that could occur in the late stages of a transaction.\n */\nexport type PendingTransactionError =\n | CancelError\n | TimeoutError\n | TransactionError\n | UnexpectedError;\n\nexport class PendingTransaction {\n constructor(\n /**\n * @internal Do NOT rely on this method. It's used internally by the SDK and may be subject to breaking changes.\n */\n public readonly wait: () => ResultAsync<\n TransactionResult,\n PendingTransactionError\n >,\n ) {}\n\n /**\n * @internal\n */\n static isInstanceOf(value: unknown): value is PendingTransaction {\n return value instanceof PendingTransaction;\n }\n\n /**\n * Narrows a value to PendingTransaction.\n * Only accepts types that include PendingTransaction in the union.\n *\n * @internal\n */\n static tryFrom<T>(\n value: PendingTransaction extends T ? T : never,\n ): ResultAsync<PendingTransaction, UnexpectedError> {\n if (PendingTransaction.isInstanceOf(value)) {\n return okAsync(value);\n }\n return UnexpectedError.from(value).asResultAsync();\n }\n}\n\nexport type UseSendTransactionResult = UseAsyncTask<\n TransactionRequest,\n PendingTransaction,\n SendTransactionError\n>;\n\n/**\n * The Aave execution plan handler\n */\nexport type ExecutionPlanHandler<\n T,\n R extends Signature | PendingTransaction,\n> = (\n plan: T,\n options: TransactionHandlerOptions,\n) => ResultAsync<R, SendTransactionError>;\n\n/**\n * Tries to create a Signature from an unknown value.\n *\n * @internal\n */\nexport function trySignatureFrom(\n value: unknown,\n): ResultAsync<Signature, UnexpectedError> {\n if (isSignature(value)) {\n return okAsync(value);\n }\n return UnexpectedError.from(\n `Expected Signature, but got ${String(value)}`,\n ).asResultAsync();\n}\n","import type { SignTypedDataError, TypedData } from '@aave/client';\nimport {\n sendTransaction,\n signTypedDataWith,\n waitForTransactionResult,\n} from '@aave/client/ethers';\nimport type { TransactionRequest } from '@aave/graphql';\nimport { invariant, type Signature } from '@aave/types';\nimport type { Signer } from 'ethers';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\n\n/**\n * A hook that provides a way to send Aave transactions using an ethers Signer instance.\n *\n * Retrieve the `Signer` instance from your ethers provider, then pass it to this hook to create a function that can be used to send transactions.\n *\n * ```ts\n * const provider = new ethers.providers.Web3Provider(window.ethereum);\n * const signer = provider.getSigner();\n *\n * // …\n *\n * const [sendTransaction, { loading, error, data }] = useSendTransaction(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for sending transactions.\n */\nexport function useSendTransaction(signer: Signer): UseSendTransactionResult {\n return useAsyncTask(\n (request: TransactionRequest) => {\n return sendTransaction(signer, request).map(\n (response) =>\n new PendingTransaction(() =>\n waitForTransactionResult(request, response),\n ),\n );\n },\n [signer],\n );\n}\n\n/**\n * A hook that provides a way to sign EIP-712 typed data (ERC-20 permits, swap intents, etc.)\n * using an ethers Signer instance.\n *\n * ```ts\n * const [signTypedData, { loading, error, data }] = useSignTypedData(signer);\n * ```\n *\n * @param signer - The ethers Signer to use for signing typed data.\n */\nexport function useSignTypedData(\n signer: Signer | undefined,\n): UseAsyncTask<TypedData, Signature, SignTypedDataError> {\n return useAsyncTask(\n (typedData: TypedData) => {\n invariant(signer, 'Expected a Signer to sign typed data');\n\n return signTypedDataWith(signer, typedData);\n },\n [signer],\n );\n}\n"]}
|