@berachain/wagmi 0.3.0 → 0.4.0-beta.1

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.
@@ -56,7 +56,15 @@ interface BeraWagmiApi {
56
56
  disable5792Upgrade: boolean;
57
57
  };
58
58
  walletClient: UseWalletClientReturnType["data"];
59
- connectWallet: () => Promise<void> | void;
59
+ openConnectModal: () => Promise<void> | void;
60
+ /**
61
+ * Connects a wallet using a specific strategy.
62
+ *
63
+ * @param strategy - The strategy to use to connect the wallet.
64
+ */
65
+ connect: ({ strategy, }: {
66
+ strategy: "google" | "apple";
67
+ }) => Promise<void> | void;
60
68
  disconnect(): void;
61
69
  /**
62
70
  * A callback that is called when a smart account upgrade is rejected.
@@ -77,14 +85,20 @@ declare enum ChainId {
77
85
  interface IBeraWagmiProviderProps extends PropsWithChildren {
78
86
  config: ReturnType<typeof getConfig>;
79
87
  theme?: "dark" | "light" | "auto";
80
- disableEip5792: boolean;
81
- /**
82
- * Whether to disable the 5792 upgrade for users that haven't upgraded yet.
83
- *
84
- * `atomic.status === "ready"`
85
- */
86
- disable5792Upgrade?: boolean;
87
- accountOverride?: Address;
88
+ flags?: {
89
+ disableEip5792?: boolean;
90
+ /**
91
+ * Whether to disable the 5792 upgrade for users that haven't upgraded yet.
92
+ *
93
+ * `atomic.status === "ready"`
94
+ */
95
+ disable5792Upgrade?: boolean;
96
+ /**
97
+ * A value that mocks the connected wallet address, while transactions are still sent from the connected wallet.
98
+ * It can be used for advanced use cases like sending permissionless transactions (like incentive claims).
99
+ */
100
+ accountOverride?: Address;
101
+ };
88
102
  onSmartAccountRejection?: () => void;
89
103
  /**
90
104
  * Event triggered when a wallet is connected manually.
@@ -95,7 +109,7 @@ interface IBeraWagmiProviderProps extends PropsWithChildren {
95
109
  chains: Chain[];
96
110
  defaultChain: Chain;
97
111
  thirdweb: ThirdwebConfig;
98
- publicJsonRpcUrl: string;
112
+ publicJsonRpcUrl?: string;
99
113
  }
100
114
 
101
115
  export { type BeraWagmiApi as B, ChainId as C, type IBeraWagmiProviderProps as I, useBeraWagmi as u };
@@ -56,7 +56,15 @@ interface BeraWagmiApi {
56
56
  disable5792Upgrade: boolean;
57
57
  };
58
58
  walletClient: UseWalletClientReturnType["data"];
59
- connectWallet: () => Promise<void> | void;
59
+ openConnectModal: () => Promise<void> | void;
60
+ /**
61
+ * Connects a wallet using a specific strategy.
62
+ *
63
+ * @param strategy - The strategy to use to connect the wallet.
64
+ */
65
+ connect: ({ strategy, }: {
66
+ strategy: "google" | "apple";
67
+ }) => Promise<void> | void;
60
68
  disconnect(): void;
61
69
  /**
62
70
  * A callback that is called when a smart account upgrade is rejected.
@@ -77,14 +85,20 @@ declare enum ChainId {
77
85
  interface IBeraWagmiProviderProps extends PropsWithChildren {
78
86
  config: ReturnType<typeof getConfig>;
79
87
  theme?: "dark" | "light" | "auto";
80
- disableEip5792: boolean;
81
- /**
82
- * Whether to disable the 5792 upgrade for users that haven't upgraded yet.
83
- *
84
- * `atomic.status === "ready"`
85
- */
86
- disable5792Upgrade?: boolean;
87
- accountOverride?: Address;
88
+ flags?: {
89
+ disableEip5792?: boolean;
90
+ /**
91
+ * Whether to disable the 5792 upgrade for users that haven't upgraded yet.
92
+ *
93
+ * `atomic.status === "ready"`
94
+ */
95
+ disable5792Upgrade?: boolean;
96
+ /**
97
+ * A value that mocks the connected wallet address, while transactions are still sent from the connected wallet.
98
+ * It can be used for advanced use cases like sending permissionless transactions (like incentive claims).
99
+ */
100
+ accountOverride?: Address;
101
+ };
88
102
  onSmartAccountRejection?: () => void;
89
103
  /**
90
104
  * Event triggered when a wallet is connected manually.
@@ -95,7 +109,7 @@ interface IBeraWagmiProviderProps extends PropsWithChildren {
95
109
  chains: Chain[];
96
110
  defaultChain: Chain;
97
111
  thirdweb: ThirdwebConfig;
98
- publicJsonRpcUrl: string;
112
+ publicJsonRpcUrl?: string;
99
113
  }
100
114
 
101
115
  export { type BeraWagmiApi as B, ChainId as C, type IBeraWagmiProviderProps as I, useBeraWagmi as u };
@@ -0,0 +1 @@
1
+ import{inAppWalletConnector as g}from"@thirdweb-dev/wagmi-adapter";import{createThirdwebClient as C}from"thirdweb";import{createWallet as t,getInstalledWallets as b,inAppWallet as u}from"thirdweb/wallets";import{createConfig as W,createStorage as h}from"wagmi";function A({thirdweb:e,transports:l={},defaultChain:a,chains:r=[]}){let o=C({clientId:e.clientId}),s=!!a.contracts?.multicall3,n={mode:"EIP7702",sponsorGas:e.sponsorGas},d=u({executionMode:n}),i=[...b(),t("io.rabby"),t("io.metamask"),t("com.coinbase.wallet"),t("walletConnect")].filter((c,p,f)=>f.findIndex(m=>m.id===c.id)===p);return{hasEmbeddedWallets:e.embeddedWallets,wallets:e.embeddedWallets?[d,...i]:i,executionMode:n,client:o,wagmi:W({chains:[a,...r],ssr:!0,connectors:[g({client:o,executionMode:n})],storage:h({key:"wagmi-berachain-thirdweb",storage:typeof window<"u"?localStorage:void 0}),batch:{multicall:s?{wait:15}:void 0},transports:l})}}export{A as a};
@@ -0,0 +1 @@
1
+ import{usePublicClient as ge}from"wagmi";import{useContext as Q}from"react";import{createContext as G}from"react";import{jsx as H}from"react/jsx-runtime";var B=G(void 0);function U({children:e,address:n,defaultChainId:o}){return H(B.Provider,{value:{address:n,defaultChainId:o},children:e})}function I(){let e=Q(B);if(!e)throw new Error("LightweightAccountContext not found");let{address:n,defaultChainId:o}=e;return{isConnected:!!n,address:n,defaultChainId:o}}import{useBlockNumber as Ye,useChains as Ze,useConfig as $e,useEnsAvatar as z,useEnsName as k,useSwitchChain as et,useTransactionReceipt as tt}from"wagmi";import{createContext as ie,useContext as ae,useMemo as E}from"react";import re from"swr/immutable";import{normalize as se}from"viem/ens";import{useAccount as ce,useDisconnect as de,usePublicClient as le,useWalletClient as ue}from"wagmi";import{useMemo as R}from"react";import{defineChain as M}from"thirdweb";import{ConnectButton as V,useActiveAccount as X,useActiveWallet as Y,useAutoConnect as Z,useConnectModal as $,useDisconnect as ee,useWalletInfo as te}from"thirdweb/react";import{useConnect as ne}from"wagmi";import{jsx as oe}from"react/jsx-runtime";function N({config:e,theme:n,chains:o,chain:t,publicJsonRpcUrl:l=t.rpcUrls.default.http[0]}){let{connectors:h,connect:b}=ne(),r=Y(),s=X(),{disconnect:w}=ee(),{data:C}=te(r?.id),u=R(()=>M({id:t.id,blockExplorers:t.blockExplorers,blockTime:t.blockTime,ensTlds:t.ensTlds,testnet:t.testnet,contracts:t.contracts,nativeCurrency:t.nativeCurrency,name:t.name,rpcUrls:{default:{http:[l]}}}),[l,t]),m={client:e.client,chain:u,wallets:e.wallets};async function p(a){let i=h.find(c=>c.id==="in-app-wallet");if(i){let c={withCapabilities:!0,wallet:a};b({connector:i,chainId:t.id,...c})}else console.error("no tw connector found")}let{isLoading:A}=Z({...m,onConnect:p}),W=R(()=>crypto.randomUUID(),[r?.id,s?.address]),{connect:v}=$();return{async connect({strategy:a}){if(!e.hasEmbeddedWallets){console.error("useBeraWagmi.connect: this function is not available if embedded wallets are disabled");return}let i=e.wallets.find(c=>c.id==="inApp");if(!i){console.error("useBeraWagmi.connect: no inApp wallet found");return}await i.connect({strategy:a,client:e.client}),await p(i)},async openConnectModal(){let a=await v({...m,wallets:e.wallets,theme:n==="auto"?void 0:n,size:"compact",chains:[u,...o.map(i=>M({id:i.id}))]});await p(a)},disconnect(){r&&w(r)},isConnecting:A,connectionId:W,connectorName:C?.name??null,isEmbeddedWallet:C?.id==="inApp",wallet:s,DebugConnectButton(){return oe(V,{...m,connectModal:{size:"compact"},onConnect:a=>p(a)})}}}import{jsx as L}from"react/jsx-runtime";function f(){let e=ae(D);if(!e)throw new Error("BeraWagmiContext not found");return e}var D=ie(void 0);function De({children:e,config:n,flags:{disableEip5792:o,disable5792Upgrade:t,accountOverride:l}={},theme:h,onSmartAccountRejection:b,chains:r,defaultChain:s,thirdweb:w,publicJsonRpcUrl:C}){let{wallet:u,openConnectModal:m,connect:p,DebugConnectButton:A,connectionId:W,disconnect:v,connectorName:a,isEmbeddedWallet:i,isConnecting:c}=N({config:n,theme:h,chains:r,chain:s,publicJsonRpcUrl:C}),{address:y,chainId:P}=ce(),{disconnect:S}=de(),O=le(),d=E(()=>{if(!(!y||!u))return l??y},[l,y,u]),{data:g}=k({config:n.wagmi,chainId:s.id,address:d}),{data:x}=re(d?["BeraWagmiProvider_code",d,P]:null,([j,F,he])=>O?.getCode({address:F}),{refreshInterval:6e4}),[_,q]=E(()=>x?x.startsWith("0xef01")?[!1,!0]:[!0,!1]:[!1,!1],[x]),{data:T}=ue(),J=E(()=>{try{return g?se(g):void 0}catch{}},[g]),K=z({name:J});return L(D.Provider,{value:{flags:{disableEip5792:!!o,disable5792Upgrade:!!t},walletClient:T,onSmartAccountRejection:()=>{b?.()},isEmbeddedWalletsEnabled:w.embeddedWallets??!0,isConnecting:c,isConnected:!!d&&!!T,DebugConnectButton:A,account:u&&P&&d?{connectionId:W,chainId:P,connectorName:a,isEmbeddedWallet:i,wallet:{address:d,ensName:g?.replace(".bera",".\u{1F43B}\u26D3\uFE0F")??null,ensAvatar:K.data??null,has7702Authorization:q,isContract:_}}:void 0,connect:p,openConnectModal:async()=>{console.log("openConnectModal.called"),await m()},disconnect:()=>{S(),v()},chains:r,defaultChainId:s.id},children:L(U,{address:d,defaultChainId:s.id,children:e})})}function pe(){let{account:e,isConnected:n}=f();return{...e,isConnected:n}}import{useMemo as me}from"react";import{useCapabilities as fe}from"wagmi";function Ce({chainId:e}){let{flags:n,account:o}=f(),{data:t}=fe({account:o?.wallet?.address,scopeKey:o?.connectionId,query:{retry:3},chainId:e});return{supportsAtomic:me(()=>n.disableEip5792||!t?!1:t?.atomic?.status==="supported"||!n.disable5792Upgrade&&t?.atomic?.status==="ready",[t,n.disableEip5792,n.disable5792Upgrade,e]),capabilities:t}}function Qe(e){let{defaultChainId:n}=I(),{chainId:o,...t}=e??{};return ge({chainId:o??n,...t})}export{I as a,pe as b,Ce as c,Qe as d,Ye as e,Ze as f,$e as g,z as h,k as i,et as j,tt as k,f as l,De as m};
@@ -1 +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 _wagmiadapter = require('@thirdweb-dev/wagmi-adapter');var _thirdweb = require('thirdweb');var _wallets = require('thirdweb/wallets');var _wagmi = require('wagmi');function A({thirdweb:t,transports:l={},defaultChain:a,chains:r=[]}){let o=_thirdweb.createThirdwebClient.call(void 0, {clientId:t.clientId}),s=!!_optionalChain([a, 'access', _ => _.contracts, 'optionalAccess', _2 => _2.multicall3]),n={mode:"EIP7702",sponsorGas:t.sponsorGas},c=_wallets.inAppWallet.call(void 0, {executionMode:n}),i=[..._wallets.getInstalledWallets.call(void 0, ),_wallets.createWallet.call(void 0, "io.rabby"),_wallets.createWallet.call(void 0, "io.metamask"),_wallets.createWallet.call(void 0, "com.coinbase.wallet"),_wallets.createWallet.call(void 0, "walletConnect")].filter((d,p,f)=>f.findIndex(m=>m.id===d.id)===p);return{wallets:t.embeddedWallets?[c,...i]:i,executionMode:n,client:o,wagmi:_wagmi.createConfig.call(void 0, {chains:[a,...r],ssr:!0,connectors:[_wagmiadapter.inAppWalletConnector.call(void 0, {client:o,executionMode:n})],storage:_wagmi.createStorage.call(void 0, {key:"wagmi-berachain-thirdweb",storage:typeof window<"u"?localStorage:void 0}),batch:{multicall:s?{wait:15}:void 0},transports:l})}}exports.a = A;
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 _wagmiadapter = require('@thirdweb-dev/wagmi-adapter');var _thirdweb = require('thirdweb');var _wallets = require('thirdweb/wallets');var _wagmi = require('wagmi');function A({thirdweb:e,transports:l={},defaultChain:a,chains:r=[]}){let o=_thirdweb.createThirdwebClient.call(void 0, {clientId:e.clientId}),s=!!_optionalChain([a, 'access', _ => _.contracts, 'optionalAccess', _2 => _2.multicall3]),n={mode:"EIP7702",sponsorGas:e.sponsorGas},d=_wallets.inAppWallet.call(void 0, {executionMode:n}),i=[..._wallets.getInstalledWallets.call(void 0, ),_wallets.createWallet.call(void 0, "io.rabby"),_wallets.createWallet.call(void 0, "io.metamask"),_wallets.createWallet.call(void 0, "com.coinbase.wallet"),_wallets.createWallet.call(void 0, "walletConnect")].filter((c,p,f)=>f.findIndex(m=>m.id===c.id)===p);return{hasEmbeddedWallets:e.embeddedWallets,wallets:e.embeddedWallets?[d,...i]:i,executionMode:n,client:o,wagmi:_wagmi.createConfig.call(void 0, {chains:[a,...r],ssr:!0,connectors:[_wagmiadapter.inAppWalletConnector.call(void 0, {client:o,executionMode:n})],storage:_wagmi.createStorage.call(void 0, {key:"wagmi-berachain-thirdweb",storage:typeof window<"u"?localStorage:void 0}),batch:{multicall:s?{wait:15}:void 0},transports:l})}}exports.a = A;
@@ -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 _wagmi = require('wagmi');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var B=_react.createContext.call(void 0, void 0);function U({children:e,address:n,defaultChainId:o}){return _jsxruntime.jsx.call(void 0, B.Provider,{value:{address:n,defaultChainId:o},children:e})}function I(){let e=_react.useContext.call(void 0, B);if(!e)throw new Error("LightweightAccountContext not found");let{address:n,defaultChainId:o}=e;return{isConnected:!!n,address:n,defaultChainId:o}}var _immutable = require('swr/immutable'); var _immutable2 = _interopRequireDefault(_immutable);var _ens = require('viem/ens');var _thirdweb = require('thirdweb');var _react3 = require('thirdweb/react');function N({config:e,theme:n,chains:o,chain:t,publicJsonRpcUrl:l=t.rpcUrls.default.http[0]}){let{connectors:h,connect:b}=_wagmi.useConnect.call(void 0, ),r=_react3.useActiveWallet.call(void 0, ),s=_react3.useActiveAccount.call(void 0, ),{disconnect:w}=_react3.useDisconnect.call(void 0, ),{data:C}=_react3.useWalletInfo.call(void 0, _optionalChain([r, 'optionalAccess', _2 => _2.id])),u=_react.useMemo.call(void 0, ()=>_thirdweb.defineChain.call(void 0, {id:t.id,blockExplorers:t.blockExplorers,blockTime:t.blockTime,ensTlds:t.ensTlds,testnet:t.testnet,contracts:t.contracts,nativeCurrency:t.nativeCurrency,name:t.name,rpcUrls:{default:{http:[l]}}}),[l,t]),m={client:e.client,chain:u,wallets:e.wallets};async function p(a){let i=h.find(c=>c.id==="in-app-wallet");if(i){let c={withCapabilities:!0,wallet:a};b({connector:i,chainId:t.id,...c})}else console.error("no tw connector found")}let{isLoading:A}=_react3.useAutoConnect.call(void 0, {...m,onConnect:p}),W=_react.useMemo.call(void 0, ()=>crypto.randomUUID(),[_optionalChain([r, 'optionalAccess', _3 => _3.id]),_optionalChain([s, 'optionalAccess', _4 => _4.address])]),{connect:v}=_react3.useConnectModal.call(void 0, );return{async connect({strategy:a}){if(!e.hasEmbeddedWallets){console.error("useBeraWagmi.connect: this function is not available if embedded wallets are disabled");return}let i=e.wallets.find(c=>c.id==="inApp");if(!i){console.error("useBeraWagmi.connect: no inApp wallet found");return}await i.connect({strategy:a,client:e.client}),await p(i)},async openConnectModal(){let a=await v({...m,wallets:e.wallets,theme:n==="auto"?void 0:n,size:"compact",chains:[u,...o.map(i=>_thirdweb.defineChain.call(void 0, {id:i.id}))]});await p(a)},disconnect(){r&&w(r)},isConnecting:A,connectionId:W,connectorName:_nullishCoalesce(_optionalChain([C, 'optionalAccess', _5 => _5.name]), () => (null)),isEmbeddedWallet:_optionalChain([C, 'optionalAccess', _6 => _6.id])==="inApp",wallet:s,DebugConnectButton(){return _jsxruntime.jsx.call(void 0, _react3.ConnectButton,{...m,connectModal:{size:"compact"},onConnect:a=>p(a)})}}}function f(){let e=_react.useContext.call(void 0, D);if(!e)throw new Error("BeraWagmiContext not found");return e}var D=_react.createContext.call(void 0, void 0);function De({children:e,config:n,flags:{disableEip5792:o,disable5792Upgrade:t,accountOverride:l}={},theme:h,onSmartAccountRejection:b,chains:r,defaultChain:s,thirdweb:w,publicJsonRpcUrl:C}){let{wallet:u,openConnectModal:m,connect:p,DebugConnectButton:A,connectionId:W,disconnect:v,connectorName:a,isEmbeddedWallet:i,isConnecting:c}=N({config:n,theme:h,chains:r,chain:s,publicJsonRpcUrl:C}),{address:y,chainId:P}=_wagmi.useAccount.call(void 0, ),{disconnect:S}=_wagmi.useDisconnect.call(void 0, ),O=_wagmi.usePublicClient.call(void 0, ),d=_react.useMemo.call(void 0, ()=>{if(!(!y||!u))return _nullishCoalesce(l, () => (y))},[l,y,u]),{data:g}=_wagmi.useEnsName.call(void 0, {config:n.wagmi,chainId:s.id,address:d}),{data:x}=_immutable2.default.call(void 0, d?["BeraWagmiProvider_code",d,P]:null,([j,F,he])=>_optionalChain([O, 'optionalAccess', _7 => _7.getCode, 'call', _8 => _8({address:F})]),{refreshInterval:6e4}),[_,q]=_react.useMemo.call(void 0, ()=>x?x.startsWith("0xef01")?[!1,!0]:[!0,!1]:[!1,!1],[x]),{data:T}=_wagmi.useWalletClient.call(void 0, ),J=_react.useMemo.call(void 0, ()=>{try{return g?_ens.normalize.call(void 0, g):void 0}catch (e2){}},[g]),K=_wagmi.useEnsAvatar.call(void 0, {name:J});return _jsxruntime.jsx.call(void 0, D.Provider,{value:{flags:{disableEip5792:!!o,disable5792Upgrade:!!t},walletClient:T,onSmartAccountRejection:()=>{_optionalChain([b, 'optionalCall', _9 => _9()])},isEmbeddedWalletsEnabled:_nullishCoalesce(w.embeddedWallets, () => (!0)),isConnecting:c,isConnected:!!d&&!!T,DebugConnectButton:A,account:u&&P&&d?{connectionId:W,chainId:P,connectorName:a,isEmbeddedWallet:i,wallet:{address:d,ensName:_nullishCoalesce(_optionalChain([g, 'optionalAccess', _10 => _10.replace, 'call', _11 => _11(".bera",".\u{1F43B}\u26D3\uFE0F")]), () => (null)),ensAvatar:_nullishCoalesce(K.data, () => (null)),has7702Authorization:q,isContract:_}}:void 0,connect:p,openConnectModal:async()=>{console.log("openConnectModal.called"),await m()},disconnect:()=>{S(),v()},chains:r,defaultChainId:s.id},children:_jsxruntime.jsx.call(void 0, U,{address:d,defaultChainId:s.id,children:e})})}function pe(){let{account:e,isConnected:n}=f();return{...e,isConnected:n}}function Ce({chainId:e}){let{flags:n,account:o}=f(),{data:t}=_wagmi.useCapabilities.call(void 0, {account:_optionalChain([o, 'optionalAccess', _12 => _12.wallet, 'optionalAccess', _13 => _13.address]),scopeKey:_optionalChain([o, 'optionalAccess', _14 => _14.connectionId]),query:{retry:3},chainId:e});return{supportsAtomic:_react.useMemo.call(void 0, ()=>n.disableEip5792||!t?!1:_optionalChain([t, 'optionalAccess', _15 => _15.atomic, 'optionalAccess', _16 => _16.status])==="supported"||!n.disable5792Upgrade&&_optionalChain([t, 'optionalAccess', _17 => _17.atomic, 'optionalAccess', _18 => _18.status])==="ready",[t,n.disableEip5792,n.disable5792Upgrade,e]),capabilities:t}}function Qe(e){let{defaultChainId:n}=I(),{chainId:o,...t}=_nullishCoalesce(e, () => ({}));return _wagmi.usePublicClient.call(void 0, {chainId:_nullishCoalesce(o, () => (n)),...t})}exports.a = I; exports.b = pe; exports.c = Ce; exports.d = Qe; exports.e = _wagmi.useBlockNumber; exports.f = _wagmi.useChains; exports.g = _wagmi.useConfig; exports.h = _wagmi.useEnsAvatar; exports.i = _wagmi.useEnsName; exports.j = _wagmi.useSwitchChain; exports.k = _wagmi.useTransactionReceipt; exports.l = f; exports.m = De;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3MA6ZB64cjs = require('../chunk-3MA6ZB64.cjs');exports.getConfig = _chunk3MA6ZB64cjs.a;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkSMQG24G3cjs = require('../chunk-SMQG24G3.cjs');exports.getConfig = _chunkSMQG24G3cjs.a;
@@ -15,6 +15,7 @@ interface BeraWagmiConfig {
15
15
  defaultChain: Chain;
16
16
  }
17
17
  declare function getConfig({ thirdweb, transports, defaultChain: chain, chains, }: BeraWagmiConfig): {
18
+ hasEmbeddedWallets: boolean | undefined;
18
19
  wallets: thirdweb_wallets.Wallet[];
19
20
  executionMode: {
20
21
  readonly mode: "EIP7702";
@@ -15,6 +15,7 @@ interface BeraWagmiConfig {
15
15
  defaultChain: Chain;
16
16
  }
17
17
  declare function getConfig({ thirdweb, transports, defaultChain: chain, chains, }: BeraWagmiConfig): {
18
+ hasEmbeddedWallets: boolean | undefined;
18
19
  wallets: thirdweb_wallets.Wallet[];
19
20
  executionMode: {
20
21
  readonly mode: "EIP7702";
@@ -1 +1 @@
1
- import{a as o}from"../chunk-YYGDSOWD.mjs";export{o as getConfig};
1
+ import{a as o}from"../chunk-CO26JY24.mjs";export{o as getConfig};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";var _chunk3MA6ZB64cjs = require('../chunk-3MA6ZB64.cjs');var _chunk3VNWHDTQcjs = require('../chunk-3VNWHDTQ.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 h({transports:n,defaultChain:e,chains:i,thirdweb:o,...f}){let t=_react.useMemo.call(void 0, ()=>_chunk3MA6ZB64cjs.a.call(void 0, {thirdweb:o,transports:n,defaultChain:e,chains:i}),[e,o,n,i]);return _jsxruntime.jsx.call(void 0, _react3.ThirdwebProvider,{children:_jsxruntime.jsx.call(void 0, _wagmi.WagmiProvider,{config:t.wagmi,reconnectOnMount:!1,children:_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:u,children:_jsxruntime.jsx.call(void 0, _chunk3VNWHDTQcjs.m,{...f,thirdweb:o,chains:i,defaultChain:e,config:t})})})})}exports.WagmiProvider = h;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";var _chunkSMQG24G3cjs = require('../chunk-SMQG24G3.cjs');var _chunkYQS2GSB4cjs = require('../chunk-YQS2GSB4.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 h({transports:n,defaultChain:e,chains:i,thirdweb:o,...f}){let t=_react.useMemo.call(void 0, ()=>_chunkSMQG24G3cjs.a.call(void 0, {thirdweb:o,transports:n,defaultChain:e,chains:i}),[e,o,n,i]);return _jsxruntime.jsx.call(void 0, _react3.ThirdwebProvider,{children:_jsxruntime.jsx.call(void 0, _wagmi.WagmiProvider,{config:t.wagmi,reconnectOnMount:!1,children:_jsxruntime.jsx.call(void 0, _reactquery.QueryClientProvider,{client:u,children:_jsxruntime.jsx.call(void 0, _chunkYQS2GSB4cjs.m,{...f,thirdweb:o,chains:i,defaultChain:e,config:t})})})})}exports.WagmiProvider = h;
@@ -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-DqUsx-wd.cjs';
3
+ import { I as IBeraWagmiProviderProps } from '../BeraWagmi-CGaPo4Jy.cjs';
4
4
  import 'react';
5
5
  import 'wagmi';
6
6
  import '../config/index.cjs';
@@ -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-8ToIEnAn.js';
3
+ import { I as IBeraWagmiProviderProps } from '../BeraWagmi-DygXBvcd.js';
4
4
  import 'react';
5
5
  import 'wagmi';
6
6
  import '../config/index.js';
@@ -1 +1 @@
1
- "use client";import{a as m}from"../chunk-YYGDSOWD.mjs";import{m as a}from"../chunk-HH2ZYQRJ.mjs";import{useMemo as p}from"react";import{QueryClient as d,QueryClientProvider as g}from"@tanstack/react-query";import{ThirdwebProvider as s}from"thirdweb/react";import{WagmiProvider as P}from"wagmi";import{jsx as r}from"react/jsx-runtime";var u=new d;function h({transports:n,defaultChain:e,chains:i,thirdweb:o,...f}){let t=p(()=>m({thirdweb:o,transports:n,defaultChain:e,chains:i}),[e,o,n,i]);return r(s,{children:r(P,{config:t.wagmi,reconnectOnMount:!1,children:r(g,{client:u,children:r(a,{...f,thirdweb:o,chains:i,defaultChain:e,config:t})})})})}export{h as WagmiProvider};
1
+ "use client";import{a as m}from"../chunk-CO26JY24.mjs";import{m as a}from"../chunk-SGIUHS4G.mjs";import{useMemo as p}from"react";import{QueryClient as d,QueryClientProvider as g}from"@tanstack/react-query";import{ThirdwebProvider as s}from"thirdweb/react";import{WagmiProvider as P}from"wagmi";import{jsx as r}from"react/jsx-runtime";var u=new d;function h({transports:n,defaultChain:e,chains:i,thirdweb:o,...f}){let t=p(()=>m({thirdweb:o,transports:n,defaultChain:e,chains:i}),[e,o,n,i]);return r(s,{children:r(P,{config:t.wagmi,reconnectOnMount:!1,children:r(g,{client:u,children:r(a,{...f,thirdweb:o,chains:i,defaultChain:e,config:t})})})})}export{h as WagmiProvider};
@@ -1 +1,2 @@
1
1
  export { getConnectorClient, getWalletClient, switchChain } from '@wagmi/core';
2
+ import 'thirdweb/react';
@@ -1 +1,2 @@
1
1
  export { getConnectorClient, getWalletClient, switchChain } from '@wagmi/core';
2
+ import 'thirdweb/react';
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk3VNWHDTQcjs = require('../chunk-3VNWHDTQ.cjs');exports.useBeraAccount = _chunk3VNWHDTQcjs.b; exports.useBeraWagmi = _chunk3VNWHDTQcjs.l; exports.useBeraWallet = _chunk3VNWHDTQcjs.a; exports.useBlockNumber = _chunk3VNWHDTQcjs.e; exports.useCapabilities = _chunk3VNWHDTQcjs.c; exports.useChains = _chunk3VNWHDTQcjs.f; exports.useConfig = _chunk3VNWHDTQcjs.g; exports.useEnsAvatar = _chunk3VNWHDTQcjs.h; exports.useEnsName = _chunk3VNWHDTQcjs.i; exports.usePublicClient = _chunk3VNWHDTQcjs.d; exports.useSwitchChain = _chunk3VNWHDTQcjs.j; exports.useTransactionReceipt = _chunk3VNWHDTQcjs.k;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkYQS2GSB4cjs = require('../chunk-YQS2GSB4.cjs');exports.useBeraAccount = _chunkYQS2GSB4cjs.b; exports.useBeraWagmi = _chunkYQS2GSB4cjs.l; exports.useBeraWallet = _chunkYQS2GSB4cjs.a; exports.useBlockNumber = _chunkYQS2GSB4cjs.e; exports.useCapabilities = _chunkYQS2GSB4cjs.c; exports.useChains = _chunkYQS2GSB4cjs.f; exports.useConfig = _chunkYQS2GSB4cjs.g; exports.useEnsAvatar = _chunkYQS2GSB4cjs.h; exports.useEnsName = _chunkYQS2GSB4cjs.i; exports.usePublicClient = _chunkYQS2GSB4cjs.d; exports.useSwitchChain = _chunkYQS2GSB4cjs.j; exports.useTransactionReceipt = _chunkYQS2GSB4cjs.k;
@@ -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-DqUsx-wd.cjs';
4
- export { u as useBeraWagmi } from '../BeraWagmi-DqUsx-wd.cjs';
3
+ import { B as BeraWagmiApi, C as ChainId } from '../BeraWagmi-CGaPo4Jy.cjs';
4
+ export { u as useBeraWagmi } from '../BeraWagmi-CGaPo4Jy.cjs';
5
5
  import 'react';
6
6
  import 'viem';
7
7
  import '../config/index.cjs';
@@ -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-8ToIEnAn.js';
4
- export { u as useBeraWagmi } from '../BeraWagmi-8ToIEnAn.js';
3
+ import { B as BeraWagmiApi, C as ChainId } from '../BeraWagmi-DygXBvcd.js';
4
+ export { u as useBeraWagmi } from '../BeraWagmi-DygXBvcd.js';
5
5
  import 'react';
6
6
  import 'viem';
7
7
  import '../config/index.js';
@@ -1 +1 @@
1
- import{a,b,c,d,e,f,g,h,i,j,k,l}from"../chunk-HH2ZYQRJ.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,b,c,d,e,f,g,h,i,j,k,l}from"../chunk-SGIUHS4G.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};
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _react = require('thirdweb/react');exports.useActiveAccount = _react.useActiveAccount; exports.useActiveWallet = _react.useActiveWallet; exports.useWalletInfo = _react.useWalletInfo;
@@ -0,0 +1 @@
1
+ export { useActiveAccount, useActiveWallet, useWalletInfo } from 'thirdweb/react';
@@ -0,0 +1 @@
1
+ export { useActiveAccount, useActiveWallet, useWalletInfo } from 'thirdweb/react';
@@ -0,0 +1 @@
1
+ import{useActiveAccount as c,useActiveWallet as l,useWalletInfo as o}from"thirdweb/react";export{c as useActiveAccount,l as useActiveWallet,o as useWalletInfo};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@berachain/wagmi",
3
- "version": "0.3.0",
3
+ "version": "0.4.0-beta.1",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",
@@ -53,6 +53,7 @@ export function getConfig({
53
53
  ].filter((w, index, self) => self.findIndex((t) => t.id === w.id) === index);
54
54
 
55
55
  return {
56
+ hasEmbeddedWallets: thirdweb.embeddedWallets,
56
57
  wallets: thirdweb.embeddedWallets ? [thirdwebWallet, ...wallets] : wallets,
57
58
  executionMode,
58
59
  client: thirdwebClient,
@@ -84,7 +84,17 @@ export interface BeraWagmiApi {
84
84
  disable5792Upgrade: boolean;
85
85
  };
86
86
  walletClient: UseWalletClientReturnType["data"];
87
- connectWallet: () => Promise<void> | void;
87
+ openConnectModal: () => Promise<void> | void;
88
+ /**
89
+ * Connects a wallet using a specific strategy.
90
+ *
91
+ * @param strategy - The strategy to use to connect the wallet.
92
+ */
93
+ connect: ({
94
+ strategy,
95
+ }: {
96
+ strategy: "google" | "apple";
97
+ }) => Promise<void> | void;
88
98
  disconnect(): void;
89
99
  /**
90
100
  * A callback that is called when a smart account upgrade is rejected.
@@ -109,14 +119,20 @@ export enum ChainId {
109
119
  export interface IBeraWagmiProviderProps extends PropsWithChildren {
110
120
  config: ReturnType<typeof getConfig>;
111
121
  theme?: "dark" | "light" | "auto";
112
- disableEip5792: boolean;
113
- /**
114
- * Whether to disable the 5792 upgrade for users that haven't upgraded yet.
115
- *
116
- * `atomic.status === "ready"`
117
- */
118
- disable5792Upgrade?: boolean;
119
- accountOverride?: Address;
122
+ flags?: {
123
+ disableEip5792?: boolean;
124
+ /**
125
+ * Whether to disable the 5792 upgrade for users that haven't upgraded yet.
126
+ *
127
+ * `atomic.status === "ready"`
128
+ */
129
+ disable5792Upgrade?: boolean;
130
+ /**
131
+ * A value that mocks the connected wallet address, while transactions are still sent from the connected wallet.
132
+ * It can be used for advanced use cases like sending permissionless transactions (like incentive claims).
133
+ */
134
+ accountOverride?: Address;
135
+ };
120
136
  onSmartAccountRejection?: () => void;
121
137
  /**
122
138
  * Event triggered when a wallet is connected manually.
@@ -127,16 +143,14 @@ export interface IBeraWagmiProviderProps extends PropsWithChildren {
127
143
  chains: Chain[];
128
144
  defaultChain: Chain;
129
145
  thirdweb: ThirdwebConfig;
130
- publicJsonRpcUrl: string;
146
+ publicJsonRpcUrl?: string;
131
147
  }
132
148
 
133
149
  export function BeraWagmiProvider({
134
150
  children,
135
151
  config,
136
- disableEip5792,
137
- disable5792Upgrade,
152
+ flags: { disableEip5792, disable5792Upgrade, accountOverride } = {},
138
153
  theme,
139
- accountOverride,
140
154
  onSmartAccountRejection,
141
155
  chains,
142
156
  defaultChain,
@@ -145,6 +159,7 @@ export function BeraWagmiProvider({
145
159
  }: IBeraWagmiProviderProps) {
146
160
  const {
147
161
  wallet,
162
+ openConnectModal,
148
163
  connect,
149
164
  DebugConnectButton,
150
165
  connectionId,
@@ -226,7 +241,7 @@ export function BeraWagmiProvider({
226
241
  <BeraWagmiContext.Provider
227
242
  value={{
228
243
  flags: {
229
- disableEip5792,
244
+ disableEip5792: !!disableEip5792,
230
245
  disable5792Upgrade: !!disable5792Upgrade,
231
246
  },
232
247
  walletClient,
@@ -256,9 +271,10 @@ export function BeraWagmiProvider({
256
271
  },
257
272
  }
258
273
  : undefined,
259
- connectWallet: async () => {
260
- console.log("connectWallet.called");
261
- await connect();
274
+ connect,
275
+ openConnectModal: async () => {
276
+ console.log("openConnectModal.called");
277
+ await openConnectModal();
262
278
  },
263
279
  disconnect: () => {
264
280
  disconnectWagmi();
@@ -10,26 +10,25 @@ import {
10
10
  useDisconnect as useTwDisconnect,
11
11
  useWalletInfo,
12
12
  } from "thirdweb/react";
13
- import type { Account, AutoConnectProps, Wallet } from "thirdweb/wallets";
13
+ import type { AutoConnectProps, Wallet } from "thirdweb/wallets";
14
14
  import type { Chain } from "viem";
15
15
  import { useConnect } from "wagmi";
16
16
 
17
17
  import type { getConfig } from "~/config";
18
- import type { UseWalletProviderReturnType } from "./types";
19
18
 
20
19
  export function useThirdweb({
21
20
  config,
22
21
  theme,
23
22
  chains,
24
23
  chain,
25
- publicJsonRpcUrl,
24
+ publicJsonRpcUrl = chain.rpcUrls.default.http[0],
26
25
  }: {
27
26
  config: ReturnType<typeof getConfig>;
28
27
  theme: "light" | "dark" | "auto" | undefined;
29
28
  chains: Chain[];
30
- publicJsonRpcUrl: string;
29
+ publicJsonRpcUrl?: string;
31
30
  chain: Chain;
32
- }): UseWalletProviderReturnType<Account> {
31
+ }) {
33
32
  const { connectors, connect: wagmiConnect } = useConnect();
34
33
 
35
34
  const activeWallet = useActiveWallet();
@@ -98,7 +97,28 @@ export function useThirdweb({
98
97
  const { connect: twConnectModal } = useTwConnectModal();
99
98
 
100
99
  return {
101
- async connect() {
100
+ async connect({ strategy }: { strategy: "google" | "apple" }) {
101
+ if (!config.hasEmbeddedWallets) {
102
+ console.error(
103
+ "useBeraWagmi.connect: this function is not available if embedded wallets are disabled",
104
+ );
105
+ return;
106
+ }
107
+
108
+ const wallet = config.wallets.find((w) => w.id === "inApp");
109
+
110
+ if (!wallet) {
111
+ console.error("useBeraWagmi.connect: no inApp wallet found");
112
+ return;
113
+ }
114
+
115
+ await wallet.connect({
116
+ strategy,
117
+ client: config.client,
118
+ });
119
+ await syncConnectedWallet(wallet);
120
+ },
121
+ async openConnectModal() {
102
122
  const wallet = await twConnectModal({
103
123
  ...connectOptions,
104
124
  wallets: config.wallets,
@@ -0,0 +1,5 @@
1
+ export {
2
+ useActiveAccount,
3
+ useActiveWallet,
4
+ useWalletInfo,
5
+ } from "thirdweb/react";
@@ -1 +0,0 @@
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 _wagmi = require('wagmi');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var x=_react.createContext.call(void 0, void 0);function T({children:e,address:n,defaultChainId:o}){return _jsxruntime.jsx.call(void 0, x.Provider,{value:{address:n,defaultChainId:o},children:e})}function I(){let e=_react.useContext.call(void 0, x);if(!e)throw new Error("LightweightAccountContext not found");let{address:n,defaultChainId:o}=e;return{isConnected:!!n,address:n,defaultChainId:o}}var _immutable = require('swr/immutable'); var _immutable2 = _interopRequireDefault(_immutable);var _ens = require('viem/ens');var _thirdweb = require('thirdweb');var _react3 = require('thirdweb/react');function N({config:e,theme:n,chains:o,chain:t,publicJsonRpcUrl:u}){let{connectors:C,connect:b}=_wagmi.useConnect.call(void 0, ),i=_react3.useActiveWallet.call(void 0, ),r=_react3.useActiveAccount.call(void 0, ),{disconnect:w}=_react3.useDisconnect.call(void 0, ),{data:g}=_react3.useWalletInfo.call(void 0, _optionalChain([i, 'optionalAccess', _2 => _2.id])),d=_react.useMemo.call(void 0, ()=>_thirdweb.defineChain.call(void 0, {id:t.id,blockExplorers:t.blockExplorers,blockTime:t.blockTime,ensTlds:t.ensTlds,testnet:t.testnet,contracts:t.contracts,nativeCurrency:t.nativeCurrency,name:t.name,rpcUrls:{default:{http:[u]}}}),[u,t]),m={client:e.client,chain:d,wallets:e.wallets};async function p(a){let l=C.find(s=>s.id==="in-app-wallet");if(l){let s={withCapabilities:!0,wallet:a};b({connector:l,chainId:t.id,...s})}else console.error("no tw connector found")}let{isLoading:A}=_react3.useAutoConnect.call(void 0, {...m,onConnect:p}),W=_react.useMemo.call(void 0, ()=>crypto.randomUUID(),[_optionalChain([i, 'optionalAccess', _3 => _3.id]),_optionalChain([r, 'optionalAccess', _4 => _4.address])]),{connect:v}=_react3.useConnectModal.call(void 0, );return{async connect(){let a=await v({...m,wallets:e.wallets,theme:n==="auto"?void 0:n,size:"compact",chains:[d,...o.map(l=>_thirdweb.defineChain.call(void 0, {id:l.id}))]});await p(a)},disconnect(){i&&w(i)},isConnecting:A,connectionId:W,connectorName:_nullishCoalesce(_optionalChain([g, 'optionalAccess', _5 => _5.name]), () => (null)),isEmbeddedWallet:_optionalChain([g, 'optionalAccess', _6 => _6.id])==="inApp",wallet:r,DebugConnectButton(){return _jsxruntime.jsx.call(void 0, _react3.ConnectButton,{...m,connectModal:{size:"compact"},onConnect:a=>p(a)})}}}function f(){let e=_react.useContext.call(void 0, k);if(!e)throw new Error("BeraWagmiContext not found");return e}var k=_react.createContext.call(void 0, void 0);function ke({children:e,config:n,disableEip5792:o,disable5792Upgrade:t,theme:u,accountOverride:C,onSmartAccountRejection:b,chains:i,defaultChain:r,thirdweb:w,publicJsonRpcUrl:g}){let{wallet:d,connect:m,DebugConnectButton:p,connectionId:A,disconnect:W,connectorName:v,isEmbeddedWallet:a,isConnecting:l}=N({config:n,theme:u,chains:i,chain:r,publicJsonRpcUrl:g}),{address:s,chainId:y}=_wagmi.useAccount.call(void 0, ),{disconnect:D}=_wagmi.useDisconnect.call(void 0, ),S=_wagmi.usePublicClient.call(void 0, ),c=_react.useMemo.call(void 0, ()=>{if(!(!s||!d))return _nullishCoalesce(C, () => (s))},[C,s,d]),{data:h}=_wagmi.useEnsName.call(void 0, {config:n.wagmi,chainId:r.id,address:c}),{data:P}=_immutable2.default.call(void 0, c?["BeraWagmiProvider_code",c,y]:null,([K,j,ge])=>_optionalChain([S, 'optionalAccess', _7 => _7.getCode, 'call', _8 => _8({address:j})]),{refreshInterval:6e4}),[O,_]=_react.useMemo.call(void 0, ()=>P?P.startsWith("0xef01")?[!1,!0]:[!0,!1]:[!1,!1],[P]),{data:E}=_wagmi.useWalletClient.call(void 0, ),q=_react.useMemo.call(void 0, ()=>{try{return h?_ens.normalize.call(void 0, h):void 0}catch (e2){}},[h]),J=_wagmi.useEnsAvatar.call(void 0, {name:q});return _jsxruntime.jsx.call(void 0, k.Provider,{value:{flags:{disableEip5792:o,disable5792Upgrade:!!t},walletClient:E,onSmartAccountRejection:()=>{_optionalChain([b, 'optionalCall', _9 => _9()])},isEmbeddedWalletsEnabled:_nullishCoalesce(w.embeddedWallets, () => (!0)),isConnecting:l,isConnected:!!c&&!!E,DebugConnectButton:p,account:d&&y&&c?{connectionId:A,chainId:y,connectorName:v,isEmbeddedWallet:a,wallet:{address:c,ensName:_nullishCoalesce(_optionalChain([h, 'optionalAccess', _10 => _10.replace, 'call', _11 => _11(".bera",".\u{1F43B}\u26D3\uFE0F")]), () => (null)),ensAvatar:_nullishCoalesce(J.data, () => (null)),has7702Authorization:_,isContract:O}}:void 0,connectWallet:async()=>{console.log("connectWallet.called"),await m()},disconnect:()=>{D(),W()},chains:i,defaultChainId:r.id},children:_jsxruntime.jsx.call(void 0, T,{address:c,defaultChainId:r.id,children:e})})}function ue(){let{account:e,isConnected:n}=f();return{...e,isConnected:n}}function fe({chainId:e}){let{flags:n,account:o}=f(),{data:t}=_wagmi.useCapabilities.call(void 0, {account:_optionalChain([o, 'optionalAccess', _12 => _12.wallet, 'optionalAccess', _13 => _13.address]),scopeKey:_optionalChain([o, 'optionalAccess', _14 => _14.connectionId]),query:{retry:3},chainId:e});return{supportsAtomic:_react.useMemo.call(void 0, ()=>n.disableEip5792||!t?!1:_optionalChain([t, 'optionalAccess', _15 => _15.atomic, 'optionalAccess', _16 => _16.status])==="supported"||!n.disable5792Upgrade&&_optionalChain([t, 'optionalAccess', _17 => _17.atomic, 'optionalAccess', _18 => _18.status])==="ready",[t,n.disableEip5792,n.disable5792Upgrade,e]),capabilities:t}}function He(e){let{defaultChainId:n}=I(),{chainId:o,...t}=_nullishCoalesce(e, () => ({}));return _wagmi.usePublicClient.call(void 0, {chainId:_nullishCoalesce(o, () => (n)),...t})}exports.a = I; exports.b = ue; exports.c = fe; exports.d = He; exports.e = _wagmi.useBlockNumber; exports.f = _wagmi.useChains; exports.g = _wagmi.useConfig; exports.h = _wagmi.useEnsAvatar; exports.i = _wagmi.useEnsName; exports.j = _wagmi.useSwitchChain; exports.k = _wagmi.useTransactionReceipt; exports.l = f; exports.m = ke;
@@ -1 +0,0 @@
1
- import{usePublicClient as Ce}from"wagmi";import{useContext as H}from"react";import{createContext as F}from"react";import{jsx as G}from"react/jsx-runtime";var x=F(void 0);function T({children:e,address:n,defaultChainId:o}){return G(x.Provider,{value:{address:n,defaultChainId:o},children:e})}function I(){let e=H(x);if(!e)throw new Error("LightweightAccountContext not found");let{address:n,defaultChainId:o}=e;return{isConnected:!!n,address:n,defaultChainId:o}}import{useBlockNumber as Xe,useChains as Ye,useConfig as Ze,useEnsAvatar as z,useEnsName as M,useSwitchChain as $e,useTransactionReceipt as et}from"wagmi";import{createContext as oe,useContext as ie,useMemo as B}from"react";import re from"swr/immutable";import{normalize as ae}from"viem/ens";import{useAccount as se,useDisconnect as ce,usePublicClient as de,useWalletClient as le}from"wagmi";import{useMemo as U}from"react";import{defineChain as R}from"thirdweb";import{ConnectButton as Q,useActiveAccount as V,useActiveWallet as X,useAutoConnect as Y,useConnectModal as Z,useDisconnect as $,useWalletInfo as ee}from"thirdweb/react";import{useConnect as te}from"wagmi";import{jsx as ne}from"react/jsx-runtime";function N({config:e,theme:n,chains:o,chain:t,publicJsonRpcUrl:u}){let{connectors:C,connect:b}=te(),i=X(),r=V(),{disconnect:w}=$(),{data:g}=ee(i?.id),d=U(()=>R({id:t.id,blockExplorers:t.blockExplorers,blockTime:t.blockTime,ensTlds:t.ensTlds,testnet:t.testnet,contracts:t.contracts,nativeCurrency:t.nativeCurrency,name:t.name,rpcUrls:{default:{http:[u]}}}),[u,t]),m={client:e.client,chain:d,wallets:e.wallets};async function p(a){let l=C.find(s=>s.id==="in-app-wallet");if(l){let s={withCapabilities:!0,wallet:a};b({connector:l,chainId:t.id,...s})}else console.error("no tw connector found")}let{isLoading:A}=Y({...m,onConnect:p}),W=U(()=>crypto.randomUUID(),[i?.id,r?.address]),{connect:v}=Z();return{async connect(){let a=await v({...m,wallets:e.wallets,theme:n==="auto"?void 0:n,size:"compact",chains:[d,...o.map(l=>R({id:l.id}))]});await p(a)},disconnect(){i&&w(i)},isConnecting:A,connectionId:W,connectorName:g?.name??null,isEmbeddedWallet:g?.id==="inApp",wallet:r,DebugConnectButton(){return ne(Q,{...m,connectModal:{size:"compact"},onConnect:a=>p(a)})}}}import{jsx as L}from"react/jsx-runtime";function f(){let e=ie(k);if(!e)throw new Error("BeraWagmiContext not found");return e}var k=oe(void 0);function ke({children:e,config:n,disableEip5792:o,disable5792Upgrade:t,theme:u,accountOverride:C,onSmartAccountRejection:b,chains:i,defaultChain:r,thirdweb:w,publicJsonRpcUrl:g}){let{wallet:d,connect:m,DebugConnectButton:p,connectionId:A,disconnect:W,connectorName:v,isEmbeddedWallet:a,isConnecting:l}=N({config:n,theme:u,chains:i,chain:r,publicJsonRpcUrl:g}),{address:s,chainId:y}=se(),{disconnect:D}=ce(),S=de(),c=B(()=>{if(!(!s||!d))return C??s},[C,s,d]),{data:h}=M({config:n.wagmi,chainId:r.id,address:c}),{data:P}=re(c?["BeraWagmiProvider_code",c,y]:null,([K,j,ge])=>S?.getCode({address:j}),{refreshInterval:6e4}),[O,_]=B(()=>P?P.startsWith("0xef01")?[!1,!0]:[!0,!1]:[!1,!1],[P]),{data:E}=le(),q=B(()=>{try{return h?ae(h):void 0}catch{}},[h]),J=z({name:q});return L(k.Provider,{value:{flags:{disableEip5792:o,disable5792Upgrade:!!t},walletClient:E,onSmartAccountRejection:()=>{b?.()},isEmbeddedWalletsEnabled:w.embeddedWallets??!0,isConnecting:l,isConnected:!!c&&!!E,DebugConnectButton:p,account:d&&y&&c?{connectionId:A,chainId:y,connectorName:v,isEmbeddedWallet:a,wallet:{address:c,ensName:h?.replace(".bera",".\u{1F43B}\u26D3\uFE0F")??null,ensAvatar:J.data??null,has7702Authorization:_,isContract:O}}:void 0,connectWallet:async()=>{console.log("connectWallet.called"),await m()},disconnect:()=>{D(),W()},chains:i,defaultChainId:r.id},children:L(T,{address:c,defaultChainId:r.id,children:e})})}function ue(){let{account:e,isConnected:n}=f();return{...e,isConnected:n}}import{useMemo as me}from"react";import{useCapabilities as pe}from"wagmi";function fe({chainId:e}){let{flags:n,account:o}=f(),{data:t}=pe({account:o?.wallet?.address,scopeKey:o?.connectionId,query:{retry:3},chainId:e});return{supportsAtomic:me(()=>n.disableEip5792||!t?!1:t?.atomic?.status==="supported"||!n.disable5792Upgrade&&t?.atomic?.status==="ready",[t,n.disableEip5792,n.disable5792Upgrade,e]),capabilities:t}}function He(e){let{defaultChainId:n}=I(),{chainId:o,...t}=e??{};return Ce({chainId:o??n,...t})}export{I as a,ue as b,fe as c,He as d,Xe as e,Ye as f,Ze as g,z as h,M as i,$e as j,et as k,f as l,ke as m};
@@ -1 +0,0 @@
1
- import{inAppWalletConnector as g}from"@thirdweb-dev/wagmi-adapter";import{createThirdwebClient as C}from"thirdweb";import{createWallet as e,getInstalledWallets as b,inAppWallet as u}from"thirdweb/wallets";import{createConfig as h,createStorage as w}from"wagmi";function A({thirdweb:t,transports:l={},defaultChain:a,chains:r=[]}){let o=C({clientId:t.clientId}),s=!!a.contracts?.multicall3,n={mode:"EIP7702",sponsorGas:t.sponsorGas},c=u({executionMode:n}),i=[...b(),e("io.rabby"),e("io.metamask"),e("com.coinbase.wallet"),e("walletConnect")].filter((d,p,f)=>f.findIndex(m=>m.id===d.id)===p);return{wallets:t.embeddedWallets?[c,...i]:i,executionMode:n,client:o,wagmi:h({chains:[a,...r],ssr:!0,connectors:[g({client:o,executionMode:n})],storage:w({key:"wagmi-berachain-thirdweb",storage:typeof window<"u"?localStorage:void 0}),batch:{multicall:s?{wait:15}:void 0},transports:l})}}export{A as a};
@@ -1,16 +0,0 @@
1
- import type React from "react";
2
-
3
- export type UseWalletProviderReturnType<
4
- wallet extends {
5
- address: string;
6
- },
7
- > = {
8
- connect(): void;
9
- disconnect(): void;
10
- connectorName: string | null;
11
- connectionId: string;
12
- isConnecting: boolean;
13
- wallet: wallet | null | undefined;
14
- DebugConnectButton: () => React.ReactNode;
15
- isEmbeddedWallet: boolean;
16
- };