@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 1.12 kB
JavaScript
;var e=require("react"),r=require("@privy-io/js-sdk-core"),t=require("./internal-context-B_aIJuQh.js"),i=require("./use-sign-with-user-signer-gh4MDT3P.js");require("viem");exports.useCreateWallet=()=>{let{refreshSessionAndUser:i,privy:a}=t.usePrivyInternal();return e.useMemo((()=>({async createWallet(e){let t=await r.create(a,{request:{chain_type:e.chainType}}),s=await i();if(!s)throw Error("User must be authenticated before creating a Privy wallet");return{user:s,wallet:t}}})),[i,a])},exports.useSignRawHash=()=>{let{user:a}=i.usePrivyContext(),{privy:s}=t.usePrivyInternal(),{signWithUserSigner:n}=i.useSignWithUserSigner();return e.useMemo((()=>({async signRawHash({address:e,chainType:t,hash:u}){if(!a)throw Error("User must be authenticated before signing");let l=i.getAllPrivyWalletsForChainType(a,t).filter((e=>i.getIsUnifiedWallet(e))).find((r=>r.address===e));if(!l)throw Error("Wallet not found");let o=await r.rawSign(s,n,{wallet_id:l.id,params:{hash:u}});if(o.data&&"signature"in o.data&&"hex"===o.data.encoding)return{signature:o.data.signature};throw Error("Failed to sign")}})),[s,n,a])};