@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.
Files changed (55) hide show
  1. package/dist/chunk-4GURAVFN.js +2 -0
  2. package/dist/chunk-4GURAVFN.js.map +1 -0
  3. package/dist/chunk-4NA4FB6K.js +2 -0
  4. package/dist/chunk-4NA4FB6K.js.map +1 -0
  5. package/dist/chunk-EX7WQ47T.js +2 -0
  6. package/dist/chunk-EX7WQ47T.js.map +1 -0
  7. package/dist/ethers.cjs +1 -1637
  8. package/dist/ethers.cjs.map +1 -1
  9. package/dist/ethers.d.cts +5 -2
  10. package/dist/ethers.d.ts +5 -2
  11. package/dist/ethers.js +1 -1
  12. package/dist/ethers.js.map +1 -1
  13. package/dist/index.cjs +1 -1663
  14. package/dist/index.cjs.map +1 -1
  15. package/dist/index.d.cts +153 -37
  16. package/dist/index.d.ts +153 -37
  17. package/dist/index.js +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/{misc-B_3Pj33R.d.cts → misc-CoNW1j2i.d.cts} +16 -6
  20. package/dist/{misc-B5-hfFfF.d.ts → misc-D_lTGGwg.d.ts} +16 -6
  21. package/dist/privy.cjs +1 -1637
  22. package/dist/privy.cjs.map +1 -1
  23. package/dist/privy.d.cts +5 -2
  24. package/dist/privy.d.ts +5 -2
  25. package/dist/privy.js +1 -1
  26. package/dist/privy.js.map +1 -1
  27. package/dist/thirdweb.cjs +1 -1637
  28. package/dist/thirdweb.cjs.map +1 -1
  29. package/dist/thirdweb.d.cts +5 -2
  30. package/dist/thirdweb.d.ts +5 -2
  31. package/dist/thirdweb.js +1 -1
  32. package/dist/thirdweb.js.map +1 -1
  33. package/dist/utils.cjs +1 -1
  34. package/dist/utils.cjs.map +1 -1
  35. package/dist/utils.js +1 -1
  36. package/dist/utils.js.map +1 -1
  37. package/dist/viem/index.cjs +1 -1637
  38. package/dist/viem/index.cjs.map +1 -1
  39. package/dist/viem/index.d.cts +6 -3
  40. package/dist/viem/index.d.ts +6 -3
  41. package/dist/viem/index.js +1 -1
  42. package/dist/viem/index.js.map +1 -1
  43. package/dist/{writes-d5YEXauI.d.cts → writes-CcVGQGt5.d.cts} +4 -1
  44. package/dist/{writes-d5YEXauI.d.ts → writes-CcVGQGt5.d.ts} +4 -1
  45. package/package.json +5 -2
  46. package/dist/chunk-3TDVAQWZ.js +0 -1664
  47. package/dist/chunk-3TDVAQWZ.js.map +0 -1
  48. package/dist/chunk-6A77Z4MD.js +0 -2
  49. package/dist/chunk-6A77Z4MD.js.map +0 -1
  50. package/dist/chunk-PYBBLRVB.js +0 -2
  51. package/dist/chunk-PYBBLRVB.js.map +0 -1
  52. package/dist/chunk-Q5WBQO2R.js +0 -2
  53. package/dist/chunk-Q5WBQO2R.js.map +0 -1
  54. package/dist/chunk-SXNP4MR6.js +0 -2
  55. package/dist/chunk-SXNP4MR6.js.map +0 -1
package/dist/privy.d.cts CHANGED
@@ -1,5 +1,8 @@
1
- import { TypedData, Signature, SignTypedDataError } from '@aave/client';
2
- import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-d5YEXauI.cjs';
1
+ import { TypedData, SignTypedDataError } from '@aave/client';
2
+ import { Signature } from '@aave/types';
3
+ import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-CcVGQGt5.cjs';
4
+ import '@aave/core';
5
+ import '@aave/graphql';
3
6
 
4
7
  /**
5
8
  * A hook that provides a way to send Aave transactions using a Privy wallet.
package/dist/privy.d.ts CHANGED
@@ -1,5 +1,8 @@
1
- import { TypedData, Signature, SignTypedDataError } from '@aave/client';
2
- import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-d5YEXauI.js';
1
+ import { TypedData, SignTypedDataError } from '@aave/client';
2
+ import { Signature } from '@aave/types';
3
+ import { U as UseSendTransactionResult, a as UseAsyncTask } from './writes-CcVGQGt5.js';
4
+ import '@aave/core';
5
+ import '@aave/graphql';
3
6
 
4
7
  /**
5
8
  * A hook that provides a way to send Aave transactions using a Privy wallet.
package/dist/privy.js CHANGED
@@ -1,2 +1,2 @@
1
- import {a,d as d$2,e}from'./chunk-PYBBLRVB.js';import {d}from'./chunk-SXNP4MR6.js';import'./chunk-Q5WBQO2R.js';import {$d,d as d$1,be,i,e as e$1}from'./chunk-3TDVAQWZ.js';import {o,a as a$1,H}from'./chunk-6A77Z4MD.js';import {useWallets,useSignTypedData}from'@privy-io/react-auth';import {createWalletClient,custom}from'viem';function E(n){if(n&&typeof n=="object"){if("code"in n&&n.code===4001)return true;if("message"in n&&typeof n.message=="string"){let t=n.message.toLowerCase();return t.includes("user rejected")||t.includes("user denied")||t.includes("rejected the request")}}return false}function v(){let{wallets:n}=useWallets(),[t]=d();return $d(e$1=>{let r=n.find(a=>a.address===e$1.from);return o(r,`Expected a connected wallet with address ${e$1.from} to be found.`),t({chainId:e$1.chainId}).map(a$1=>(o(a$1,`Chain ${e$1.chainId} is not supported`),a(a$1))).andThen(a=>a$1.fromPromise(r.switchChain(e$1.chainId),s=>d$1.from(s)).map(()=>r.getEthereumProvider()).map(s=>createWalletClient({account:e$1.from,chain:a,transport:custom(s)})).andThen(s=>d$2(s,e$1).map(h=>new be(()=>e(s,e$1,h)))))},[n,t])}function x(){let{signTypedData:n}=useSignTypedData();return $d(t=>a$1.fromPromise(n({domain:t.domain,types:t.types,primaryType:t.primaryType,message:t.message}),e=>E(e)?i.from(e):e$1.from(e)).map(({signature:e})=>H(e)),[n])}export{v as useSendTransaction,x as useSignTypedData};//# sourceMappingURL=privy.js.map
1
+ import {d}from'./chunk-EX7WQ47T.js';import'./chunk-4NA4FB6K.js';import {a,c}from'./chunk-4GURAVFN.js';import {UnexpectedError,CancelError,SigningError}from'@aave/client';import {toViemChain,sendTransaction,waitForTransactionResult}from'@aave/client/viem';import {invariant,ResultAsync,signatureFrom}from'@aave/types';import {useWallets,useSignTypedData}from'@privy-io/react-auth';import {createWalletClient,custom}from'viem';function E(n){if(n&&typeof n=="object"){if("code"in n&&n.code===4001)return true;if("message"in n&&typeof n.message=="string"){let t=n.message.toLowerCase();return t.includes("user rejected")||t.includes("user denied")||t.includes("rejected the request")}}return false}function x(){let{wallets:n}=useWallets(),[t]=d();return a(e=>{let r=n.find(a=>a.address===e.from);return invariant(r,`Expected a connected wallet with address ${e.from} to be found.`),t({chainId:e.chainId}).map(a=>(invariant(a,`Chain ${e.chainId} is not supported`),toViemChain(a))).andThen(a=>ResultAsync.fromPromise(r.switchChain(e.chainId),s=>UnexpectedError.from(s)).map(()=>r.getEthereumProvider()).map(s=>createWalletClient({account:e.from,chain:a,transport:custom(s)})).andThen(s=>sendTransaction(s,e).map(d=>new c(()=>waitForTransactionResult(s,e,d)))))},[n,t])}function I(){let{signTypedData:n}=useSignTypedData();return a(t=>ResultAsync.fromPromise(n({domain:t.domain,types:t.types,primaryType:t.primaryType,message:t.message}),e=>E(e)?CancelError.from(e):SigningError.from(e)).map(({signature:e})=>signatureFrom(e)),[n])}export{x as useSendTransaction,I as useSignTypedData};//# sourceMappingURL=privy.js.map
2
2
  //# sourceMappingURL=privy.js.map
package/dist/privy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/privy.ts"],"names":["isUserRejection","err","msg","useSendTransaction","wallets","useWallets","fetchChain","useChainAction","useAsyncTask","request","wallet","F","chain","S","error","q","provider","createWalletClient","custom","walletClient","B","hash","PendingTransaction","w","useSignTypedData","privySignTypedData","usePrivySignTypedData","typedData","Ie","Ae","signature","Vr"],"mappings":"sUA+BA,SAASA,CAAAA,CAAgBC,EAAuB,CAC9C,GAAIA,CAAAA,EAAO,OAAOA,CAAAA,EAAQ,QAAA,CAAU,CAClC,GAAI,MAAA,GAAUA,CAAAA,EAAOA,CAAAA,CAAI,IAAA,GAAS,IAAA,CAAM,OAAO,MAC/C,GAAI,SAAA,GAAaA,CAAAA,EAAO,OAAOA,CAAAA,CAAI,OAAA,EAAY,QAAA,CAAU,CACvD,IAAMC,CAAAA,CAAMD,CAAAA,CAAI,OAAA,CAAQ,WAAA,EAAY,CACpC,OACEC,CAAAA,CAAI,QAAA,CAAS,eAAe,CAAA,EAC5BA,CAAAA,CAAI,QAAA,CAAS,aAAa,CAAA,EAC1BA,CAAAA,CAAI,QAAA,CAAS,sBAAsB,CAEvC,CACF,CACA,OAAO,MACT,CAWO,SAASC,CAAAA,EAA+C,CAC7D,GAAM,CAAE,OAAA,CAAAC,CAAQ,CAAA,CAAIC,UAAAA,EAAW,CACzB,CAACC,CAAU,EAAIC,CAAAA,EAAe,CAEpC,OAAOC,EAAAA,CACJC,GAAAA,EAAgC,CAC/B,IAAMC,CAAAA,CAASN,CAAAA,CAAQ,IAAA,CAAMM,CAAAA,EAAWA,CAAAA,CAAO,OAAA,GAAYD,GAAAA,CAAQ,IAAI,CAAA,CAEvE,OAAAE,CAAAA,CACED,CAAAA,CACA,CAAA,yCAAA,EAA4CD,GAAAA,CAAQ,IAAI,CAAA,aAAA,CAC1D,CAAA,CAEOH,CAAAA,CAAW,CAAE,OAAA,CAASG,GAAAA,CAAQ,OAAQ,CAAC,CAAA,CAC3C,GAAA,CAAKG,GAAAA,GACJD,CAAAA,CAAUC,GAAAA,CAAO,CAAA,MAAA,EAASH,GAAAA,CAAQ,OAAO,CAAA,iBAAA,CAAmB,CAAA,CACrDI,CAAAA,CAAYD,GAAK,CAAA,CACzB,CAAA,CACA,OAAA,CAASA,GACRC,GAAAA,CAAY,WAAA,CACVH,CAAAA,CAAO,WAAA,CAAYD,GAAAA,CAAQ,OAAO,CAAA,CACjCK,CAAAA,EAAUC,GAAAA,CAAgB,IAAA,CAAKD,CAAK,CACvC,CAAA,CACG,GAAA,CAAI,IAAMJ,CAAAA,CAAO,mBAAA,EAAqB,CAAA,CACtC,GAAA,CAAKM,CAAAA,EACJC,kBAAAA,CAAmB,CACjB,OAAA,CAASR,GAAAA,CAAQ,IAAA,CACjB,KAAA,CAAAG,CAAAA,CACA,SAAA,CAAWM,OAAOF,CAAQ,CAC5B,CAAC,CACH,CAAA,CACC,OAAA,CAASG,CAAAA,EACRC,GAAAA,CAAgBD,CAAAA,CAAcV,GAAO,CAAA,CAAE,GAAA,CACpCY,CAAAA,EACC,IAAIC,EAAAA,CAAmB,IACrBC,CAAAA,CAAyBJ,CAAAA,CAAcV,GAAAA,CAASY,CAAI,CACtD,CACJ,CACF,CACJ,CACJ,CAAA,CACA,CAACjB,CAAAA,CAASE,CAAU,CACtB,CACF,CAUO,SAASkB,CAAAA,EAId,CACA,GAAM,CAAE,aAAA,CAAeC,CAAmB,CAAA,CAAIC,gBAAAA,EAAsB,CAEpE,OAAOlB,EAAAA,CACJmB,CAAAA,EACQd,IAAY,WAAA,CACjBY,CAAAA,CAAmB,CACjB,MAAA,CAAQE,CAAAA,CAAU,MAAA,CAClB,KAAA,CAAOA,CAAAA,CAAU,KAAA,CACjB,WAAA,CAAaA,CAAAA,CAAU,WAAA,CACvB,OAAA,CAASA,CAAAA,CAAU,OACrB,CAAC,CAAA,CACAb,CAAAA,EACKd,CAAAA,CAAgBc,CAAK,CAAA,CAChBc,CAAAA,CAAY,IAAA,CAAKd,CAAK,CAAA,CAExBe,GAAAA,CAAa,IAAA,CAAKf,CAAK,CAElC,CAAA,CAAE,GAAA,CAAI,CAAC,CAAE,SAAA,CAAAgB,CAAU,CAAA,GAAMC,CAAAA,CAAcD,CAAS,CAAC,CAAA,CAEnD,CAACL,CAAkB,CACrB,CACF","file":"privy.js","sourcesContent":["import {\n CancelError,\n invariant,\n ResultAsync,\n type Signature,\n SigningError,\n type SignTypedDataError,\n signatureFrom,\n type TransactionRequest,\n type TypedData,\n UnexpectedError,\n} from '@aave/client';\nimport {\n sendTransaction,\n toViemChain,\n waitForTransactionResult,\n} from '@aave/client/viem';\nimport {\n type MessageTypes,\n useSignTypedData as usePrivySignTypedData,\n useWallets,\n} from '@privy-io/react-auth';\nimport { createWalletClient, custom } from 'viem';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\nimport { useChainAction } from './misc';\n\nfunction isUserRejection(err: unknown): boolean {\n if (err && typeof err === 'object') {\n if ('code' in err && err.code === 4001) return true;\n if ('message' in err && typeof err.message === 'string') {\n const msg = err.message.toLowerCase();\n return (\n msg.includes('user rejected') ||\n msg.includes('user denied') ||\n msg.includes('rejected the request')\n );\n }\n }\n return false;\n}\n\n/**\n * A hook that provides a way to send Aave transactions using a Privy wallet.\n *\n * Import the `useSendTransaction` hook from `@aave/react/privy` entry point.\n *\n * ```ts\n * const [sendTransaction, { loading, error, data }] = useSendTransaction();\n * ```\n */\nexport function useSendTransaction(): UseSendTransactionResult {\n const { wallets } = useWallets();\n const [fetchChain] = useChainAction();\n\n return useAsyncTask(\n (request: TransactionRequest) => {\n const wallet = wallets.find((wallet) => wallet.address === request.from);\n\n invariant(\n wallet,\n `Expected a connected wallet with address ${request.from} to be found.`,\n );\n\n return fetchChain({ chainId: request.chainId })\n .map((chain) => {\n invariant(chain, `Chain ${request.chainId} is not supported`);\n return toViemChain(chain);\n })\n .andThen((chain) =>\n ResultAsync.fromPromise(\n wallet.switchChain(request.chainId),\n (error) => UnexpectedError.from(error),\n )\n .map(() => wallet.getEthereumProvider())\n .map((provider) =>\n createWalletClient({\n account: request.from,\n chain,\n transport: custom(provider),\n }),\n )\n .andThen((walletClient) =>\n sendTransaction(walletClient, request).map(\n (hash) =>\n new PendingTransaction(() =>\n waitForTransactionResult(walletClient, request, hash),\n ),\n ),\n ),\n );\n },\n [wallets, fetchChain],\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 a Privy wallet.\n *\n * ```ts\n * const [signTypedData, { loading, error, data }] = useSignTypedData();\n * ```\n */\nexport function useSignTypedData(): UseAsyncTask<\n TypedData,\n Signature,\n SignTypedDataError\n> {\n const { signTypedData: privySignTypedData } = usePrivySignTypedData();\n\n return useAsyncTask(\n (typedData: TypedData) => {\n return ResultAsync.fromPromise(\n privySignTypedData({\n domain: typedData.domain,\n types: typedData.types as MessageTypes,\n primaryType: typedData.primaryType,\n message: typedData.message,\n }),\n (error) => {\n if (isUserRejection(error)) {\n return CancelError.from(error);\n }\n return SigningError.from(error);\n },\n ).map(({ signature }) => signatureFrom(signature));\n },\n [privySignTypedData],\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/privy.ts"],"names":["isUserRejection","err","msg","useSendTransaction","wallets","useWallets","fetchChain","useChainAction","useAsyncTask","request","wallet","invariant","chain","toViemChain","ResultAsync","error","UnexpectedError","provider","createWalletClient","custom","walletClient","sendTransaction","hash","PendingTransaction","waitForTransactionResult","useSignTypedData","privySignTypedData","usePrivySignTypedData","typedData","CancelError","SigningError","signature","signatureFrom"],"mappings":"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","file":"privy.js","sourcesContent":["import {\n CancelError,\n SigningError,\n type SignTypedDataError,\n type TypedData,\n UnexpectedError,\n} from '@aave/client';\nimport {\n sendTransaction,\n toViemChain,\n waitForTransactionResult,\n} from '@aave/client/viem';\nimport type { TransactionRequest } from '@aave/graphql';\nimport {\n invariant,\n ResultAsync,\n type Signature,\n signatureFrom,\n} from '@aave/types';\nimport {\n type MessageTypes,\n useSignTypedData as usePrivySignTypedData,\n useWallets,\n} from '@privy-io/react-auth';\nimport { createWalletClient, custom } from 'viem';\nimport {\n PendingTransaction,\n type UseAsyncTask,\n type UseSendTransactionResult,\n useAsyncTask,\n} from './helpers';\nimport { useChainAction } from './misc';\n\nfunction isUserRejection(err: unknown): boolean {\n if (err && typeof err === 'object') {\n if ('code' in err && err.code === 4001) return true;\n if ('message' in err && typeof err.message === 'string') {\n const msg = err.message.toLowerCase();\n return (\n msg.includes('user rejected') ||\n msg.includes('user denied') ||\n msg.includes('rejected the request')\n );\n }\n }\n return false;\n}\n\n/**\n * A hook that provides a way to send Aave transactions using a Privy wallet.\n *\n * Import the `useSendTransaction` hook from `@aave/react/privy` entry point.\n *\n * ```ts\n * const [sendTransaction, { loading, error, data }] = useSendTransaction();\n * ```\n */\nexport function useSendTransaction(): UseSendTransactionResult {\n const { wallets } = useWallets();\n const [fetchChain] = useChainAction();\n\n return useAsyncTask(\n (request: TransactionRequest) => {\n const wallet = wallets.find((wallet) => wallet.address === request.from);\n\n invariant(\n wallet,\n `Expected a connected wallet with address ${request.from} to be found.`,\n );\n\n return fetchChain({ chainId: request.chainId })\n .map((chain) => {\n invariant(chain, `Chain ${request.chainId} is not supported`);\n return toViemChain(chain);\n })\n .andThen((chain) =>\n ResultAsync.fromPromise(\n wallet.switchChain(request.chainId),\n (error) => UnexpectedError.from(error),\n )\n .map(() => wallet.getEthereumProvider())\n .map((provider) =>\n createWalletClient({\n account: request.from,\n chain,\n transport: custom(provider),\n }),\n )\n .andThen((walletClient) =>\n sendTransaction(walletClient, request).map(\n (hash) =>\n new PendingTransaction(() =>\n waitForTransactionResult(walletClient, request, hash),\n ),\n ),\n ),\n );\n },\n [wallets, fetchChain],\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 a Privy wallet.\n *\n * ```ts\n * const [signTypedData, { loading, error, data }] = useSignTypedData();\n * ```\n */\nexport function useSignTypedData(): UseAsyncTask<\n TypedData,\n Signature,\n SignTypedDataError\n> {\n const { signTypedData: privySignTypedData } = usePrivySignTypedData();\n\n return useAsyncTask(\n (typedData: TypedData) => {\n return ResultAsync.fromPromise(\n privySignTypedData({\n domain: typedData.domain,\n types: typedData.types as MessageTypes,\n primaryType: typedData.primaryType,\n message: typedData.message,\n }),\n (error) => {\n if (isUserRejection(error)) {\n return CancelError.from(error);\n }\n return SigningError.from(error);\n },\n ).map(({ signature }) => signatureFrom(signature));\n },\n [privySignTypedData],\n );\n}\n"]}