@berachain/wagmi 0.4.2-beta.3 → 0.4.2-beta.5

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 (33) hide show
  1. package/dist/{BeraWagmi-D_9r9lFE.d.cts → BeraWagmi-DPriTsqn.d.cts} +1 -1
  2. package/dist/{BeraWagmi-BYoBR8sq.d.ts → BeraWagmi-PCCV3r-u.d.ts} +1 -1
  3. package/dist/chunk-FMEKPQER.cjs +1 -0
  4. package/dist/chunk-FPJ6HXP4.mjs +1 -0
  5. package/dist/chunk-HU7OL27P.mjs +1 -0
  6. package/dist/chunk-OLYL3V2D.cjs +1 -0
  7. package/dist/context/index.cjs +1 -1
  8. package/dist/context/index.d.cts +1 -1
  9. package/dist/context/index.d.ts +1 -1
  10. package/dist/context/index.mjs +1 -1
  11. package/dist/context/lightweight/index.cjs +1 -0
  12. package/dist/context/lightweight/index.d.cts +27 -0
  13. package/dist/context/lightweight/index.d.ts +27 -0
  14. package/dist/context/lightweight/index.mjs +1 -0
  15. package/dist/hooks/index.cjs +1 -1
  16. package/dist/hooks/index.d.cts +2 -2
  17. package/dist/hooks/index.d.ts +2 -2
  18. package/dist/hooks/index.mjs +1 -1
  19. package/package.json +13 -1
  20. package/src/context/BeraWagmi.tsx +18 -140
  21. package/src/context/BeraWagmiLightWeight.tsx +36 -167
  22. package/src/context/WagmiProviderLightWeight.tsx +39 -14
  23. package/src/context/useThirdweb.tsx +21 -158
  24. package/src/context/useThirdwebLightWeight.tsx +26 -23
  25. package/dist/chunk-KNUNU6MD.cjs +0 -1
  26. package/dist/chunk-KXR247FP.mjs +0 -1
  27. package/dist/chunk-LEALKQIH.cjs +0 -1
  28. package/dist/chunk-XFXKXV5F.mjs +0 -1
  29. package/dist/context/thirdweb/index.cjs +0 -1
  30. package/dist/context/thirdweb/index.d.cts +0 -47
  31. package/dist/context/thirdweb/index.d.ts +0 -47
  32. package/dist/context/thirdweb/index.mjs +0 -1
  33. /package/src/context/{thirdweb → lightweight}/index.ts +0 -0
@@ -120,4 +120,4 @@ interface IBeraWagmiProviderProps extends PropsWithChildren {
120
120
  publicJsonRpcUrl?: string;
121
121
  }
122
122
 
123
- export { type BeraWagmiApi as B, ChainId as C, type IBeraWagmiProviderProps as I, useBeraWagmi as u };
123
+ export { type BeraWagmiApi as B, type ConnectEvent as C, type IBeraWagmiProviderProps as I, ChainId as a, useBeraWagmi as u };
@@ -120,4 +120,4 @@ interface IBeraWagmiProviderProps extends PropsWithChildren {
120
120
  publicJsonRpcUrl?: string;
121
121
  }
122
122
 
123
- export { type BeraWagmiApi as B, ChainId as C, type IBeraWagmiProviderProps as I, useBeraWagmi as u };
123
+ export { type BeraWagmiApi as B, type ConnectEvent as C, type IBeraWagmiProviderProps as I, ChainId as a, useBeraWagmi as u };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkOLYL3V2Dcjs = require('./chunk-OLYL3V2D.cjs');var _react = require('react');var _thirdweb = require('thirdweb');var _react3 = require('thirdweb/react');var _jsxruntime = require('react/jsx-runtime');function h({config:n,theme:o,chains:d=[],chain:l,onConnect:r,onConnectError:a,publicJsonRpcUrl:c}){let e=_chunkOLYL3V2Dcjs.d.call(void 0, {config:n,chain:l,onConnect:r,onConnectError:a,publicJsonRpcUrl:c}),{connect:s}=_react3.useConnectModal.call(void 0, );return{...e,async openConnectModal(){try{let t=await s({...e.connectOptions,wallets:n.wallets,theme:o==="auto"?void 0:o,size:"compact",chains:[e.thirdwebChain,...d.filter(i=>i.id!==e.thirdwebChain.id).map(i=>_thirdweb.defineChain.call(void 0, {id:i.id}))]});_optionalChain([r, 'optionalCall', _ => _({type:"connect_modal"})]),await e.syncConnectedWallet(t)}catch(t){throw _optionalChain([a, 'optionalCall', _2 => _2(t)]),t}},DebugConnectButton(){return _jsxruntime.jsx.call(void 0, _react3.ConnectButton,{...e.connectOptions,connectModal:{size:"compact"},onConnect:t=>e.syncConnectedWallet(t)})}}}function x(){let n=_react.useContext.call(void 0, _chunkOLYL3V2Dcjs.a);if(!n)throw new Error("BeraWagmiContext not found");return n}function U({children:n,config:o,flags:d,theme:l,onSmartAccountRejection:r,chains:a=[],defaultChain:c,thirdweb:e,publicJsonRpcUrl:s,onConnect:t,onConnectError:i}){let p=h({config:o,theme:l,chains:a,chain:c,publicJsonRpcUrl:s,onConnect:t,onConnectError:i});return _jsxruntime.jsx.call(void 0, _chunkOLYL3V2Dcjs.c,{config:o,flags:d,onSmartAccountRejection:r,defaultChain:c,thirdweb:e,thirdwebResult:p,openConnectModal:async()=>{await p.openConnectModal()},DebugConnectButton:p.DebugConnectButton,children:n})}exports.a = x; exports.b = U;
@@ -0,0 +1 @@
1
+ import{createContext as O}from"react";var I=O(void 0);import{createContext as S}from"react";import{jsx as j}from"react/jsx-runtime";var _=S(void 0);function T({children:o,address:e,defaultChainId:c}){return j(_.Provider,{value:{address:e,defaultChainId:c},children:o})}import{useMemo as y}from"react";import q from"swr/immutable";import{normalize as F}from"viem/ens";import{useAccount as G,useDisconnect as H,useEnsAvatar as J,useEnsName as K,usePublicClient as Q,useWalletClient as V}from"wagmi";import{jsx as x}from"react/jsx-runtime";function we({children:o,config:e,flags:{disableEip5792:c,disable5792Upgrade:g,accountOverride:d}={},onSmartAccountRejection:C,defaultChain:l,thirdweb:a,thirdwebResult:{wallet:s,connect:w,connectionId:m,disconnect:A,connectorName:b,isEmbeddedWallet:f,profiles:u,preAuthenticate:p,isConnecting:W},openConnectModal:v,DebugConnectButton:i}){let{address:n,chainId:t}=G(),{disconnect:U}=H(),R=Q(),r=y(()=>{if(!(!n||!s))return d??n},[d,n,s]),{data:h}=K({config:e.wagmi,chainId:l.id,address:r}),{data:B}=q(r?["BeraWagmiProvider_code",r,t]:null,([k,N,ae])=>R?.getCode({address:N}),{refreshInterval:6e4}),[D,L]=y(()=>B?B.startsWith("0xef01")?[!1,!0]:[!0,!1]:[!1,!1],[B]),{data:P}=V(),M=y(()=>{try{return h?F(h):void 0}catch{}},[h]),z=J({name:M});return x(I.Provider,{value:{preAuthenticate:p,flags:{disableEip5792:!!c,disable5792Upgrade:!!g},walletClient:P,onSmartAccountRejection:()=>{C?.()},isEmbeddedWalletsEnabled:a.embeddedWallets??!0,isConnecting:W,isConnected:!!r&&!!P,DebugConnectButton:i??(()=>null),account:s&&t&&r?{connectionId:m,chainId:t,connectorName:b,isEmbeddedWallet:f,profiles:u,wallet:{address:r,ensName:h?.replace(".bera",".\u{1F43B}\u26D3\uFE0F")??null,ensAvatar:z.data??null,has7702Authorization:L,isContract:D}}:void 0,connect:w,openConnectModal:v??(()=>{throw new Error("openConnectModal is not available in lightweight mode. Use @berachain/wagmi/context instead.")}),disconnect:()=>{U(),A()},defaultChainId:l.id},children:x(T,{address:r,defaultChainId:l.id,children:o})})}import{useMemo as E}from"react";import{defineChain as X}from"thirdweb";import{useActiveAccount as Y,useActiveWallet as Z,useAutoConnect as $,useProfiles as ee,useConnect as te,useDisconnect as ne,useWalletInfo as oe}from"thirdweb/react";import{preAuthenticate as ie}from"thirdweb/wallets/in-app";import{useConnect as re}from"wagmi";function Ie({config:o,chain:e,onConnect:c,onConnectError:g,publicJsonRpcUrl:d=e.rpcUrls.default.http[0]}){let{connectors:C,connect:l}=re(),a=Z(),s=Y(),{disconnect:w}=ne(),{data:m}=oe(a?.id),{connect:A}=te(),{data:b}=ee({client:o.client}),f=E(()=>X({id:e.id,blockExplorers:e.blockExplorers,blockTime:e.blockTime,ensTlds:e.ensTlds,testnet:e.testnet,contracts:e.contracts,nativeCurrency:e.nativeCurrency,name:e.name,rpcUrls:{default:{http:[d]}}}),[d,e]),u={client:o.client,chain:f,wallets:o.wallets};async function p(i){let n=C.find(t=>t.id==="in-app-wallet");if(n){let t={withCapabilities:!0,wallet:i};l({connector:n,chainId:e.id,...t})}else console.error("no tw connector found")}let{isLoading:W}=$({...u,onConnect:p}),v=E(()=>"randomUUID"in crypto?crypto.randomUUID():Math.random().toString(36).substring(2,15),[a?.id,s?.address]);return{connect(i){if(!o.hasEmbeddedWallets){console.error("useBeraWagmi.connect: this function is not available if embedded wallets are disabled");return}return A(async()=>{let n=o.wallets.find(t=>t.id==="inApp");if(!n)throw console.error("useBeraWagmi.connect: no inApp wallet found"),new Error("no inApp wallet found");return n.connect({...u,...i}).then(async()=>(c?.({type:"connect",data:i}),await p(n),n)).catch(t=>{throw g?.(t),t})})},disconnect(){a&&w(a)},isConnecting:W,connectionId:v,connectorName:m?.name??null,isEmbeddedWallet:m?.id==="inApp",wallet:s,profiles:b,preAuthenticate(i){return ie({...i,client:o.client})},syncConnectedWallet:p,connectOptions:u,thirdwebChain:f}}export{I as a,_ as b,we as c,Ie as d};
@@ -0,0 +1 @@
1
+ import{a as u,c as m,d as g}from"./chunk-FPJ6HXP4.mjs";import{useContext as w}from"react";import{defineChain as f}from"thirdweb";import{ConnectButton as C,useConnectModal as b}from"thirdweb/react";import{jsx as y}from"react/jsx-runtime";function h({config:n,theme:o,chains:d=[],chain:l,onConnect:r,onConnectError:a,publicJsonRpcUrl:c}){let e=g({config:n,chain:l,onConnect:r,onConnectError:a,publicJsonRpcUrl:c}),{connect:s}=b();return{...e,async openConnectModal(){try{let t=await s({...e.connectOptions,wallets:n.wallets,theme:o==="auto"?void 0:o,size:"compact",chains:[e.thirdwebChain,...d.filter(i=>i.id!==e.thirdwebChain.id).map(i=>f({id:i.id}))]});r?.({type:"connect_modal"}),await e.syncConnectedWallet(t)}catch(t){throw a?.(t),t}},DebugConnectButton(){return y(C,{...e.connectOptions,connectModal:{size:"compact"},onConnect:t=>e.syncConnectedWallet(t)})}}}import{jsx as A}from"react/jsx-runtime";function x(){let n=w(u);if(!n)throw new Error("BeraWagmiContext not found");return n}function U({children:n,config:o,flags:d,theme:l,onSmartAccountRejection:r,chains:a=[],defaultChain:c,thirdweb:e,publicJsonRpcUrl:s,onConnect:t,onConnectError:i}){let p=h({config:o,theme:l,chains:a,chain:c,publicJsonRpcUrl:s,onConnect:t,onConnectError:i});return A(m,{config:o,flags:d,onSmartAccountRejection:r,defaultChain:c,thirdweb:e,thirdwebResult:p,openConnectModal:async()=>{await p.openConnectModal()},DebugConnectButton:p.DebugConnectButton,children:n})}export{x as a,U as b};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _react = require('react');var I=_react.createContext.call(void 0, void 0);var _jsxruntime = require('react/jsx-runtime');var _=_react.createContext.call(void 0, void 0);function T({children:o,address:e,defaultChainId:c}){return _jsxruntime.jsx.call(void 0, _.Provider,{value:{address:e,defaultChainId:c},children:o})}var _immutable = require('swr/immutable'); var _immutable2 = _interopRequireDefault(_immutable);var _ens = require('viem/ens');var _wagmi = require('wagmi');function we({children:o,config:e,flags:{disableEip5792:c,disable5792Upgrade:g,accountOverride:d}={},onSmartAccountRejection:C,defaultChain:l,thirdweb:a,thirdwebResult:{wallet:s,connect:w,connectionId:m,disconnect:A,connectorName:b,isEmbeddedWallet:f,profiles:u,preAuthenticate:p,isConnecting:W},openConnectModal:v,DebugConnectButton:i}){let{address:n,chainId:t}=_wagmi.useAccount.call(void 0, ),{disconnect:U}=_wagmi.useDisconnect.call(void 0, ),R=_wagmi.usePublicClient.call(void 0, ),r=_react.useMemo.call(void 0, ()=>{if(!(!n||!s))return _nullishCoalesce(d, () => (n))},[d,n,s]),{data:h}=_wagmi.useEnsName.call(void 0, {config:e.wagmi,chainId:l.id,address:r}),{data:B}=_immutable2.default.call(void 0, r?["BeraWagmiProvider_code",r,t]:null,([k,N,ae])=>_optionalChain([R, 'optionalAccess', _2 => _2.getCode, 'call', _3 => _3({address:N})]),{refreshInterval:6e4}),[D,L]=_react.useMemo.call(void 0, ()=>B?B.startsWith("0xef01")?[!1,!0]:[!0,!1]:[!1,!1],[B]),{data:P}=_wagmi.useWalletClient.call(void 0, ),M=_react.useMemo.call(void 0, ()=>{try{return h?_ens.normalize.call(void 0, h):void 0}catch (e2){}},[h]),z=_wagmi.useEnsAvatar.call(void 0, {name:M});return _jsxruntime.jsx.call(void 0, I.Provider,{value:{preAuthenticate:p,flags:{disableEip5792:!!c,disable5792Upgrade:!!g},walletClient:P,onSmartAccountRejection:()=>{_optionalChain([C, 'optionalCall', _4 => _4()])},isEmbeddedWalletsEnabled:_nullishCoalesce(a.embeddedWallets, () => (!0)),isConnecting:W,isConnected:!!r&&!!P,DebugConnectButton:_nullishCoalesce(i, () => ((()=>null))),account:s&&t&&r?{connectionId:m,chainId:t,connectorName:b,isEmbeddedWallet:f,profiles:u,wallet:{address:r,ensName:_nullishCoalesce(_optionalChain([h, 'optionalAccess', _5 => _5.replace, 'call', _6 => _6(".bera",".\u{1F43B}\u26D3\uFE0F")]), () => (null)),ensAvatar:_nullishCoalesce(z.data, () => (null)),has7702Authorization:L,isContract:D}}:void 0,connect:w,openConnectModal:_nullishCoalesce(v, () => ((()=>{throw new Error("openConnectModal is not available in lightweight mode. Use @berachain/wagmi/context instead.")}))),disconnect:()=>{U(),A()},defaultChainId:l.id},children:_jsxruntime.jsx.call(void 0, T,{address:r,defaultChainId:l.id,children:o})})}var _thirdweb = require('thirdweb');var _react3 = require('thirdweb/react');var _inapp = require('thirdweb/wallets/in-app');function Ie({config:o,chain:e,onConnect:c,onConnectError:g,publicJsonRpcUrl:d=e.rpcUrls.default.http[0]}){let{connectors:C,connect:l}=_wagmi.useConnect.call(void 0, ),a=_react3.useActiveWallet.call(void 0, ),s=_react3.useActiveAccount.call(void 0, ),{disconnect:w}=_react3.useDisconnect.call(void 0, ),{data:m}=_react3.useWalletInfo.call(void 0, _optionalChain([a, 'optionalAccess', _7 => _7.id])),{connect:A}=_react3.useConnect.call(void 0, ),{data:b}=_react3.useProfiles.call(void 0, {client:o.client}),f=_react.useMemo.call(void 0, ()=>_thirdweb.defineChain.call(void 0, {id:e.id,blockExplorers:e.blockExplorers,blockTime:e.blockTime,ensTlds:e.ensTlds,testnet:e.testnet,contracts:e.contracts,nativeCurrency:e.nativeCurrency,name:e.name,rpcUrls:{default:{http:[d]}}}),[d,e]),u={client:o.client,chain:f,wallets:o.wallets};async function p(i){let n=C.find(t=>t.id==="in-app-wallet");if(n){let t={withCapabilities:!0,wallet:i};l({connector:n,chainId:e.id,...t})}else console.error("no tw connector found")}let{isLoading:W}=_react3.useAutoConnect.call(void 0, {...u,onConnect:p}),v=_react.useMemo.call(void 0, ()=>"randomUUID"in crypto?crypto.randomUUID():Math.random().toString(36).substring(2,15),[_optionalChain([a, 'optionalAccess', _8 => _8.id]),_optionalChain([s, 'optionalAccess', _9 => _9.address])]);return{connect(i){if(!o.hasEmbeddedWallets){console.error("useBeraWagmi.connect: this function is not available if embedded wallets are disabled");return}return A(async()=>{let n=o.wallets.find(t=>t.id==="inApp");if(!n)throw console.error("useBeraWagmi.connect: no inApp wallet found"),new Error("no inApp wallet found");return n.connect({...u,...i}).then(async()=>(_optionalChain([c, 'optionalCall', _10 => _10({type:"connect",data:i})]),await p(n),n)).catch(t=>{throw _optionalChain([g, 'optionalCall', _11 => _11(t)]),t})})},disconnect(){a&&w(a)},isConnecting:W,connectionId:v,connectorName:_nullishCoalesce(_optionalChain([m, 'optionalAccess', _12 => _12.name]), () => (null)),isEmbeddedWallet:_optionalChain([m, 'optionalAccess', _13 => _13.id])==="inApp",wallet:s,profiles:b,preAuthenticate(i){return _inapp.preAuthenticate.call(void 0, {...i,client:o.client})},syncConnectedWallet:p,connectOptions:u,thirdwebChain:f}}exports.a = I; exports.b = _; exports.c = we; exports.d = Ie;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";var _chunkKNUNU6MDcjs = require('../chunk-KNUNU6MD.cjs');var _chunkPVMPBWIGcjs = require('../chunk-PVMPBWIG.cjs');require('../chunk-LEALKQIH.cjs');var _react = require('react');var _reactquery = require('@tanstack/react-query');var _react3 = require('thirdweb/react');var _wagmi = require('wagmi');var _jsxruntime = require('react/jsx-runtime');var u=new _reactquery.QueryClient;function B({transports:t,defaultChain:e,chains:i,thirdweb:o,...f}){let n=_react.useMemo.call(void 0, ()=>_chunkPVMPBWIGcjs.a.call(void 0, {thirdweb:o,transports:t,defaultChain:e,chains:i}),[e,o,t,i]);return _jsxruntime.jsx.call(void 0, _react3.ThirdwebProvider,{children:_jsxruntime.jsx.call(void 0, _wagmi.WagmiProvider,{config:n.wagmi,reconnectOnMount:!1,children:_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:u,children:_jsxruntime.jsx.call(void 0, _chunkKNUNU6MDcjs.m,{...f,thirdweb:o,chains:i,defaultChain:e,config:n})})})})}exports.WagmiProvider = B;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";var _chunkFMEKPQERcjs = require('../chunk-FMEKPQER.cjs');var _chunkPVMPBWIGcjs = require('../chunk-PVMPBWIG.cjs');require('../chunk-OLYL3V2D.cjs');var _react = require('react');var _reactquery = require('@tanstack/react-query');var _react3 = require('thirdweb/react');var _wagmi = require('wagmi');var _jsxruntime = require('react/jsx-runtime');var u=new _reactquery.QueryClient;function B({transports:t,defaultChain:e,chains:i,thirdweb:o,...f}){let n=_react.useMemo.call(void 0, ()=>_chunkPVMPBWIGcjs.a.call(void 0, {thirdweb:o,transports:t,defaultChain:e,chains:i}),[e,o,t,i]);return _jsxruntime.jsx.call(void 0, _react3.ThirdwebProvider,{children:_jsxruntime.jsx.call(void 0, _wagmi.WagmiProvider,{config:n.wagmi,reconnectOnMount:!1,children:_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:u,children:_jsxruntime.jsx.call(void 0, _chunkFMEKPQERcjs.b,{...f,thirdweb:o,chains:i,defaultChain:e,config:n})})})})}exports.WagmiProvider = B;
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Transport, Chain } from 'viem';
3
- import { I as IBeraWagmiProviderProps } from '../BeraWagmi-D_9r9lFE.cjs';
3
+ import { I as IBeraWagmiProviderProps } from '../BeraWagmi-DPriTsqn.cjs';
4
4
  import 'react';
5
5
  import 'thirdweb/wallets';
6
6
  import 'wagmi';
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import { Transport, Chain } from 'viem';
3
- import { I as IBeraWagmiProviderProps } from '../BeraWagmi-BYoBR8sq.js';
3
+ import { I as IBeraWagmiProviderProps } from '../BeraWagmi-PCCV3r-u.js';
4
4
  import 'react';
5
5
  import 'thirdweb/wallets';
6
6
  import 'wagmi';
@@ -1 +1 @@
1
- "use client";import{m as a}from"../chunk-XFXKXV5F.mjs";import{a as m}from"../chunk-MZZ62TKM.mjs";import"../chunk-KXR247FP.mjs";import{useMemo as p}from"react";import{QueryClient as d,QueryClientProvider as g}from"@tanstack/react-query";import{ThirdwebProvider as P}from"thirdweb/react";import{WagmiProvider as s}from"wagmi";import{jsx as r}from"react/jsx-runtime";var u=new d;function B({transports:t,defaultChain:e,chains:i,thirdweb:o,...f}){let n=p(()=>m({thirdweb:o,transports:t,defaultChain:e,chains:i}),[e,o,t,i]);return r(P,{children:r(s,{config:n.wagmi,reconnectOnMount:!1,children:r(g,{client:u,children:r(a,{...f,thirdweb:o,chains:i,defaultChain:e,config:n})})})})}export{B as WagmiProvider};
1
+ "use client";import{b as a}from"../chunk-HU7OL27P.mjs";import{a as m}from"../chunk-MZZ62TKM.mjs";import"../chunk-FPJ6HXP4.mjs";import{useMemo as p}from"react";import{QueryClient as d,QueryClientProvider as g}from"@tanstack/react-query";import{ThirdwebProvider as P}from"thirdweb/react";import{WagmiProvider as s}from"wagmi";import{jsx as r}from"react/jsx-runtime";var u=new d;function B({transports:t,defaultChain:e,chains:i,thirdweb:o,...f}){let n=p(()=>m({thirdweb:o,transports:t,defaultChain:e,chains:i}),[e,o,t,i]);return r(P,{children:r(s,{config:n.wagmi,reconnectOnMount:!1,children:r(g,{client:u,children:r(a,{...f,thirdweb:o,chains:i,defaultChain:e,config:n})})})})}export{B as WagmiProvider};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";var _chunkPVMPBWIGcjs = require('../../chunk-PVMPBWIG.cjs');var _chunkOLYL3V2Dcjs = require('../../chunk-OLYL3V2D.cjs');var _react = require('react');var _reactquery = require('@tanstack/react-query');var _react3 = require('thirdweb/react');var _wagmi = require('wagmi');var _jsxruntime = require('react/jsx-runtime');var C=new _reactquery.QueryClient;function A({transports:t,defaultChain:r,chains:n,thirdweb:i,children:s,onConnect:c,onConnectError:g,publicJsonRpcUrl:p,...f}){let o=_react.useMemo.call(void 0, ()=>_chunkPVMPBWIGcjs.a.call(void 0, {thirdweb:i,transports:t,defaultChain:r,chains:n}),[r,i,t,n]),h=_chunkOLYL3V2Dcjs.d.call(void 0, {config:o,chain:r,publicJsonRpcUrl:p,onConnect:c,onConnectError:g});return _jsxruntime.jsx.call(void 0, _react3.ThirdwebProvider,{children:_jsxruntime.jsx.call(void 0, _wagmi.WagmiProvider,{config:o.wagmi,reconnectOnMount:!1,children:_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:C,children:_jsxruntime.jsx.call(void 0, _chunkOLYL3V2Dcjs.c,{...f,thirdweb:i,defaultChain:r,config:o,thirdwebResult:h,children:s})})})})}exports.WagmiProvider = A;
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PropsWithChildren } from 'react';
3
+ import { Transport, Chain, Address } from 'viem';
4
+ import { ThirdwebConfig } from '../../config/index.cjs';
5
+ import { C as ConnectEvent } from '../../BeraWagmi-DPriTsqn.cjs';
6
+ import 'thirdweb';
7
+ import 'thirdweb/wallets';
8
+ import 'wagmi';
9
+
10
+ type WagmiProviderLightWeightProps = PropsWithChildren<{
11
+ transports?: Record<number, Transport>;
12
+ defaultChain: Chain;
13
+ chains?: Chain[];
14
+ thirdweb: ThirdwebConfig;
15
+ flags?: {
16
+ disableEip5792?: boolean;
17
+ disable5792Upgrade?: boolean;
18
+ accountOverride?: Address;
19
+ };
20
+ onSmartAccountRejection?: () => void;
21
+ onConnect?: (event: ConnectEvent) => void;
22
+ onConnectError?: (error: Error) => void;
23
+ publicJsonRpcUrl?: string;
24
+ }>;
25
+ declare function WagmiProvider({ transports, defaultChain, chains, thirdweb, children, onConnect, onConnectError, publicJsonRpcUrl, ...baseProps }: WagmiProviderLightWeightProps): react_jsx_runtime.JSX.Element;
26
+
27
+ export { WagmiProvider };
@@ -0,0 +1,27 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { PropsWithChildren } from 'react';
3
+ import { Transport, Chain, Address } from 'viem';
4
+ import { ThirdwebConfig } from '../../config/index.js';
5
+ import { C as ConnectEvent } from '../../BeraWagmi-PCCV3r-u.js';
6
+ import 'thirdweb';
7
+ import 'thirdweb/wallets';
8
+ import 'wagmi';
9
+
10
+ type WagmiProviderLightWeightProps = PropsWithChildren<{
11
+ transports?: Record<number, Transport>;
12
+ defaultChain: Chain;
13
+ chains?: Chain[];
14
+ thirdweb: ThirdwebConfig;
15
+ flags?: {
16
+ disableEip5792?: boolean;
17
+ disable5792Upgrade?: boolean;
18
+ accountOverride?: Address;
19
+ };
20
+ onSmartAccountRejection?: () => void;
21
+ onConnect?: (event: ConnectEvent) => void;
22
+ onConnectError?: (error: Error) => void;
23
+ publicJsonRpcUrl?: string;
24
+ }>;
25
+ declare function WagmiProvider({ transports, defaultChain, chains, thirdweb, children, onConnect, onConnectError, publicJsonRpcUrl, ...baseProps }: WagmiProviderLightWeightProps): react_jsx_runtime.JSX.Element;
26
+
27
+ export { WagmiProvider };
@@ -0,0 +1 @@
1
+ "use client";import{a as m}from"../../chunk-MZZ62TKM.mjs";import{c as a,d}from"../../chunk-FPJ6HXP4.mjs";import{useMemo as v}from"react";import{QueryClient as l,QueryClientProvider as u}from"@tanstack/react-query";import{ThirdwebProvider as P}from"thirdweb/react";import{WagmiProvider as b}from"wagmi";import{jsx as e}from"react/jsx-runtime";var C=new l;function A({transports:t,defaultChain:r,chains:n,thirdweb:i,children:s,onConnect:c,onConnectError:g,publicJsonRpcUrl:p,...f}){let o=v(()=>m({thirdweb:i,transports:t,defaultChain:r,chains:n}),[r,i,t,n]),h=d({config:o,chain:r,publicJsonRpcUrl:p,onConnect:c,onConnectError:g});return e(P,{children:e(b,{config:o.wagmi,reconnectOnMount:!1,children:e(u,{client:C,children:e(a,{...f,thirdweb:i,defaultChain:r,config:o,thirdwebResult:h,children:s})})})})}export{A as WagmiProvider};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkKNUNU6MDcjs = require('../chunk-KNUNU6MD.cjs');require('../chunk-LEALKQIH.cjs');exports.useBeraAccount = _chunkKNUNU6MDcjs.b; exports.useBeraWagmi = _chunkKNUNU6MDcjs.l; exports.useBeraWallet = _chunkKNUNU6MDcjs.a; exports.useBlockNumber = _chunkKNUNU6MDcjs.e; exports.useCapabilities = _chunkKNUNU6MDcjs.c; exports.useChains = _chunkKNUNU6MDcjs.f; exports.useConfig = _chunkKNUNU6MDcjs.g; exports.useEnsAvatar = _chunkKNUNU6MDcjs.h; exports.useEnsName = _chunkKNUNU6MDcjs.i; exports.usePublicClient = _chunkKNUNU6MDcjs.d; exports.useSwitchChain = _chunkKNUNU6MDcjs.j; exports.useTransactionReceipt = _chunkKNUNU6MDcjs.k;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }var _chunkFMEKPQERcjs = require('../chunk-FMEKPQER.cjs');var _chunkOLYL3V2Dcjs = require('../chunk-OLYL3V2D.cjs');var _wagmi = require('wagmi');var _react = require('react');function a(){let t=_react.useContext.call(void 0, _chunkOLYL3V2Dcjs.b);if(!t)throw new Error("LightweightAccountContext not found");let{address:e,defaultChainId:r}=t;return{isConnected:!!e,address:e,defaultChainId:r}}function u(){let{account:t,isConnected:e}=_chunkFMEKPQERcjs.a.call(void 0, );return{...t,isConnected:e}}function p({chainId:t}){let{flags:e,account:r}=_chunkFMEKPQERcjs.a.call(void 0, ),{data:i}=_wagmi.useCapabilities.call(void 0, {account:_optionalChain([r, 'optionalAccess', _ => _.wallet, 'optionalAccess', _2 => _2.address]),scopeKey:_optionalChain([r, 'optionalAccess', _3 => _3.connectionId]),query:{retry:3},chainId:t});return{supportsAtomic:_react.useMemo.call(void 0, ()=>e.disableEip5792||!i?!1:_optionalChain([i, 'optionalAccess', _4 => _4.atomic, 'optionalAccess', _5 => _5.status])==="supported"||!e.disable5792Upgrade&&_optionalChain([i, 'optionalAccess', _6 => _6.atomic, 'optionalAccess', _7 => _7.status])==="ready",[i,e.disableEip5792,e.disable5792Upgrade,t]),capabilities:i}}function w(t){let{defaultChainId:e}=a(),{chainId:r,...i}=_nullishCoalesce(t, () => ({}));return _wagmi.usePublicClient.call(void 0, {chainId:_nullishCoalesce(r, () => (e)),...i})}exports.useBeraAccount = u; exports.useBeraWagmi = _chunkFMEKPQERcjs.a; exports.useBeraWallet = a; exports.useBlockNumber = _wagmi.useBlockNumber; exports.useCapabilities = p; exports.useChains = _wagmi.useChains; exports.useConfig = _wagmi.useConfig; exports.useEnsAvatar = _wagmi.useEnsAvatar; exports.useEnsName = _wagmi.useEnsName; exports.usePublicClient = w; exports.useSwitchChain = _wagmi.useSwitchChain; exports.useTransactionReceipt = _wagmi.useTransactionReceipt;
@@ -1,7 +1,7 @@
1
1
  import { UsePublicClientParameters, UsePublicClientReturnType } from 'wagmi';
2
2
  export { useBlockNumber, useChains, useConfig, useEnsAvatar, useEnsName, useSwitchChain, useTransactionReceipt } from 'wagmi';
3
- import { B as BeraWagmiApi, C as ChainId } from '../BeraWagmi-D_9r9lFE.cjs';
4
- export { u as useBeraWagmi } from '../BeraWagmi-D_9r9lFE.cjs';
3
+ import { B as BeraWagmiApi, a as ChainId } from '../BeraWagmi-DPriTsqn.cjs';
4
+ export { u as useBeraWagmi } from '../BeraWagmi-DPriTsqn.cjs';
5
5
  import 'react';
6
6
  import 'thirdweb/wallets';
7
7
  import 'viem';
@@ -1,7 +1,7 @@
1
1
  import { UsePublicClientParameters, UsePublicClientReturnType } from 'wagmi';
2
2
  export { useBlockNumber, useChains, useConfig, useEnsAvatar, useEnsName, useSwitchChain, useTransactionReceipt } from 'wagmi';
3
- import { B as BeraWagmiApi, C as ChainId } from '../BeraWagmi-BYoBR8sq.js';
4
- export { u as useBeraWagmi } from '../BeraWagmi-BYoBR8sq.js';
3
+ import { B as BeraWagmiApi, a as ChainId } from '../BeraWagmi-PCCV3r-u.js';
4
+ export { u as useBeraWagmi } from '../BeraWagmi-PCCV3r-u.js';
5
5
  import 'react';
6
6
  import 'thirdweb/wallets';
7
7
  import 'viem';
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l}from"../chunk-XFXKXV5F.mjs";import"../chunk-KXR247FP.mjs";export{b as useBeraAccount,l as useBeraWagmi,a as useBeraWallet,e as useBlockNumber,c as useCapabilities,f as useChains,g as useConfig,h as useEnsAvatar,i as useEnsName,d as usePublicClient,j as useSwitchChain,k as useTransactionReceipt};
1
+ import{a as o}from"../chunk-HU7OL27P.mjs";import{b as s}from"../chunk-FPJ6HXP4.mjs";import{usePublicClient as m}from"wagmi";import{useContext as n}from"react";function a(){let t=n(s);if(!t)throw new Error("LightweightAccountContext not found");let{address:e,defaultChainId:r}=t;return{isConnected:!!e,address:e,defaultChainId:r}}import{useBlockNumber as E,useChains as N,useConfig as R,useEnsAvatar as T,useEnsName as L,useSwitchChain as k,useTransactionReceipt as q}from"wagmi";function u(){let{account:t,isConnected:e}=o();return{...t,isConnected:e}}import{useMemo as c}from"react";import{useCapabilities as l}from"wagmi";function p({chainId:t}){let{flags:e,account:r}=o(),{data:i}=l({account:r?.wallet?.address,scopeKey:r?.connectionId,query:{retry:3},chainId:t});return{supportsAtomic:c(()=>e.disableEip5792||!i?!1:i?.atomic?.status==="supported"||!e.disable5792Upgrade&&i?.atomic?.status==="ready",[i,e.disableEip5792,e.disable5792Upgrade,t]),capabilities:i}}function w(t){let{defaultChainId:e}=a(),{chainId:r,...i}=t??{};return m({chainId:r??e,...i})}export{u as useBeraAccount,o as useBeraWagmi,a as useBeraWallet,E as useBlockNumber,p as useCapabilities,N as useChains,R as useConfig,T as useEnsAvatar,L as useEnsName,w as usePublicClient,k as useSwitchChain,q as useTransactionReceipt};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@berachain/wagmi",
3
- "version": "0.4.2-beta.3",
3
+ "version": "0.4.2-beta.5",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -28,10 +28,22 @@
28
28
  "import": "./dist/*/thirdweb/index.mjs",
29
29
  "require": "./dist/*/thirdweb/index.cjs",
30
30
  "default": "./dist/*/thirdweb/index.mjs"
31
+ },
32
+ "./*/lightweight": {
33
+ "types": "./dist/*/lightweight/index.d.ts",
34
+ "import": "./dist/*/lightweight/index.mjs",
35
+ "require": "./dist/*/lightweight/index.cjs",
36
+ "default": "./dist/*/lightweight/index.mjs"
31
37
  }
32
38
  },
33
39
  "typesVersions": {
34
40
  "*": {
41
+ "*/lightweight": [
42
+ "dist/*/lightweight/index.d.ts"
43
+ ],
44
+ "*/thirdweb": [
45
+ "dist/*/thirdweb/index.d.ts"
46
+ ],
35
47
  "*": [
36
48
  "dist/*/index.d.ts"
37
49
  ]
@@ -1,5 +1,4 @@
1
- import { type PropsWithChildren, useContext, useMemo } from "react";
2
- import useSWRImmutable from "swr/immutable";
1
+ import { type PropsWithChildren, useContext } from "react";
3
2
  import type {
4
3
  MultiStepAuthArgsType,
5
4
  Profile,
@@ -7,20 +6,13 @@ import type {
7
6
  Wallet,
8
7
  } from "thirdweb/wallets";
9
8
  import type { Address, Chain } from "viem";
10
- import { normalize } from "viem/ens";
11
- import {
12
- type UseWalletClientReturnType,
13
- useAccount,
14
- useDisconnect,
15
- usePublicClient,
16
- useWalletClient,
17
- } from "wagmi";
9
+ import type { UseWalletClientReturnType } from "wagmi";
18
10
 
19
11
  import type { getConfig, ThirdwebConfig } from "../config";
20
- import { useEnsAvatar, useEnsName } from "../hooks";
12
+ import { BeraWagmiProviderBase } from "./BeraWagmiLightWeight";
21
13
  import { BeraWagmiContext } from "./beraWagmiContext";
22
- import { LightweightAccountProvider } from "./LightweightAccountProvider";
23
14
  import { useThirdweb } from "./useThirdweb";
15
+
24
16
  export function useBeraWagmi() {
25
17
  const context = useContext(BeraWagmiContext);
26
18
  if (!context) {
@@ -151,7 +143,7 @@ export interface IBeraWagmiProviderProps extends PropsWithChildren {
151
143
  export function BeraWagmiProvider({
152
144
  children,
153
145
  config,
154
- flags: { disableEip5792, disable5792Upgrade, accountOverride } = {},
146
+ flags,
155
147
  theme,
156
148
  onSmartAccountRejection,
157
149
  chains = [],
@@ -161,19 +153,7 @@ export function BeraWagmiProvider({
161
153
  onConnect,
162
154
  onConnectError,
163
155
  }: IBeraWagmiProviderProps) {
164
- const {
165
- wallet,
166
- openConnectModal,
167
- connect,
168
- DebugConnectButton,
169
- connectionId,
170
- disconnect: disconnectProvider,
171
- connectorName,
172
- isEmbeddedWallet,
173
- profiles,
174
- preAuthenticate,
175
- isConnecting,
176
- } = useThirdweb({
156
+ const thirdwebResult = useThirdweb({
177
157
  config,
178
158
  theme,
179
159
  chains,
@@ -183,122 +163,20 @@ export function BeraWagmiProvider({
183
163
  onConnectError,
184
164
  });
185
165
 
186
- const { address: connectedAddress, chainId } = useAccount(); // wagmi
187
-
188
- const { disconnect: disconnectWagmi } = useDisconnect();
189
- const publicClient = usePublicClient();
190
-
191
- const address = useMemo<Address | undefined>(() => {
192
- // no address anyway if no connected address
193
- if (!connectedAddress || !wallet) return undefined;
194
-
195
- return accountOverride ?? connectedAddress;
196
- }, [accountOverride, connectedAddress, wallet]);
197
-
198
- const { data: ens } = useEnsName({
199
- config: config.wagmi,
200
- chainId: defaultChain.id,
201
- address,
202
- });
203
-
204
- const { data: code } = useSWRImmutable(
205
- address ? (["BeraWagmiProvider_code", address, chainId] as const) : null,
206
- ([_, walletAddress, _chainId]) => {
207
- return publicClient?.getCode({
208
- address: walletAddress,
209
- });
210
- },
211
- {
212
- refreshInterval: 60_000,
213
- },
214
- );
215
- const [isContract, has7702Authorization] = useMemo(() => {
216
- if (!code)
217
- // if no code, it's not a contract or has 7702 authorization
218
- return [false, false];
219
-
220
- const has7702Authorization = code.startsWith("0xef01");
221
-
222
- if (has7702Authorization) {
223
- // if has 7702 authorization, it's not a contract
224
- return [false, true];
225
- }
226
-
227
- // if doesn't have 7702 authorization but has code, it's a contract
228
- return [true, false];
229
- }, [code]);
230
-
231
- const { data: walletClient } = useWalletClient();
232
-
233
- const normalizedEns = useMemo(() => {
234
- try {
235
- // some characters might throw an error when normalizing
236
- // for instance `_` throws an error (e.g. `bera_boy`)
237
- return ens ? normalize(ens) : undefined;
238
- } catch {
239
- // not catching the error here, just returning undefined
240
- // @see https://berachain-dapps.sentry.io/issues/6949741717/?alert_rule_id=16379160&alert_type=issue&notification_uuid=b01366a6-78b0-4348-a3c1-5f76ced1d539&project=4509842561630209
241
- }
242
- }, [ens]);
243
-
244
- const avatar = useEnsAvatar({
245
- name: normalizedEns,
246
- });
247
-
248
166
  return (
249
- <BeraWagmiContext.Provider
250
- value={{
251
- preAuthenticate,
252
- flags: {
253
- disableEip5792: !!disableEip5792,
254
- disable5792Upgrade: !!disable5792Upgrade,
255
- },
256
- walletClient,
257
- onSmartAccountRejection: () => {
258
- onSmartAccountRejection?.();
259
- },
260
- isEmbeddedWalletsEnabled: thirdweb.embeddedWallets ?? true,
261
- isConnecting,
262
- isConnected:
263
- !!address &&
264
- // this seems obvious but might fix some re-render issues.
265
- !!walletClient,
266
- DebugConnectButton,
267
- account:
268
- wallet && chainId && address
269
- ? {
270
- connectionId,
271
- chainId,
272
- connectorName,
273
- isEmbeddedWallet,
274
- profiles,
275
- wallet: {
276
- address,
277
- ensName: ens?.replace(".bera", ".🐻⛓️") ?? null,
278
- ensAvatar: avatar.data ?? null,
279
- has7702Authorization,
280
- isContract,
281
- },
282
- }
283
- : undefined,
284
- connect,
285
- openConnectModal: async () => {
286
- await openConnectModal();
287
- },
288
- disconnect: () => {
289
- disconnectWagmi();
290
- disconnectProvider();
291
- },
292
- // chains,
293
- defaultChainId: defaultChain.id,
167
+ <BeraWagmiProviderBase
168
+ config={config}
169
+ flags={flags}
170
+ onSmartAccountRejection={onSmartAccountRejection}
171
+ defaultChain={defaultChain}
172
+ thirdweb={thirdweb}
173
+ thirdwebResult={thirdwebResult}
174
+ openConnectModal={async () => {
175
+ await thirdwebResult.openConnectModal();
294
176
  }}
177
+ DebugConnectButton={thirdwebResult.DebugConnectButton}
295
178
  >
296
- <LightweightAccountProvider
297
- address={address}
298
- defaultChainId={defaultChain.id}
299
- >
300
- {children}
301
- </LightweightAccountProvider>
302
- </BeraWagmiContext.Provider>
179
+ {children}
180
+ </BeraWagmiProviderBase>
303
181
  );
304
182
  }