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