@swapkit/wallets 4.0.0-beta.68 → 4.0.0-beta.70

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.
@@ -1,4 +1,4 @@
1
- var B={};S(B,{getWeb3WalletMethods:()=>p,evmWallet:()=>O,EVM_EXTENSIONS_SUPPORTED_CHAINS:()=>A});module.exports=M(B);var t=require("@swapkit/helpers"),w=require("@swapkit/wallet-core"),g=(a)=>{switch(a){case t.WalletOption.COINBASE_WEB:return window.coinbaseWalletExtension;case t.WalletOption.TRUSTWALLET_WEB:return window.trustwallet;default:return window.ethereum}},p=async({address:a,walletProvider:c,chain:o,provider:n})=>{if(!c)throw new t.SwapKitError("wallet_evm_extensions_not_found");let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm"),i=await n.getSigner(),s=await e(o,{provider:n,signer:i});if(o!==t.Chain.Ethereum){if((await n.getNetwork()).chainId.toString()!==t.ChainToHexChainId[o])try{let r=s.getNetworkParams();await t.switchEVMWalletNetwork(n,o,r)}catch(r){throw new t.SwapKitError("wallet_evm_extensions_failed_to_switch_network",{chain:o})}}return t.prepareNetworkSwitch({toolbox:{...s,getBalance:()=>s.getBalance(a)},chain:o,provider:n})},O=w.createWallet({name:"connectEVMWallet",supportedChains:[...t.EVMChains],connect:({addChain:a,supportedChains:c})=>async function o(n,e=t.WalletOption.METAMASK,i){let s=t.filterSupportedChains({chains:n,supportedChains:c,walletType:e}),{BrowserProvider:E}=await import("ethers");return await Promise.all(s.map(async(r)=>{if(e===t.WalletOption.EIP6963){if(!i)throw new t.SwapKitError("wallet_evm_extensions_no_provider");let d=new E(i,"any");await d.send("eth_requestAccounts",[]);let _=await(await d.getSigner()).getAddress(),m=await p({address:_,chain:r,provider:d,walletProvider:i});a({...m,address:_,chain:r,walletType:e});return}let l=new E(g(e),"any");await l.send("eth_requestAccounts",[]);let W=await(await l.getSigner()).getAddress(),h=await p({address:W,chain:r,walletProvider:g(e),provider:l});a({...h,address:W,chain:r,disconnect:()=>l.send("wallet_revokePermissions",[{eth_accounts:{}}]),walletType:e})})),!0}}),A=w.getWalletSupportedChains(O);
1
+ var C={};A(C,{getWeb3WalletMethods:()=>p,evmWallet:()=>O,EVM_EXTENSIONS_SUPPORTED_CHAINS:()=>B});module.exports=S(C);var t=require("@swapkit/helpers"),l=require("@swapkit/wallet-core"),g=(a)=>{switch(a){case t.WalletOption.COINBASE_WEB:return window.coinbaseWalletExtension;case t.WalletOption.TRUSTWALLET_WEB:return window.trustwallet;default:return window.ethereum}},p=async({address:a,walletProvider:w,chain:o,provider:n})=>{if(!w)throw new t.SwapKitError("wallet_evm_extensions_not_found");let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm"),s=await n.getSigner(),i=await e(o,{provider:n,signer:s});if(o!==t.Chain.Ethereum){if((await n.getNetwork()).chainId.toString()!==t.ChainToHexChainId[o])try{let r=i.getNetworkParams();await t.switchEVMWalletNetwork(n,o,r)}catch(r){throw new t.SwapKitError("wallet_evm_extensions_failed_to_switch_network",{chain:o})}}return t.prepareNetworkSwitch({toolbox:{...i,getBalance:()=>i.getBalance(a)},chain:o,provider:n})},O=l.createWallet({name:"connectEVMWallet",supportedChains:[...t.EVMChains],connect:({addChain:a,supportedChains:w})=>async function o(n,e=t.WalletOption.METAMASK,s){let i=t.filterSupportedChains({chains:n,supportedChains:w,walletType:e}),{BrowserProvider:c}=await import("ethers");return await Promise.all(i.map(async(r)=>{if(e===t.WalletOption.EIP6963){if(!s)throw new t.SwapKitError("wallet_evm_extensions_no_provider");await s.request({method:"eth_requestAccounts"});let d=new c(s,"any");await d.send("eth_requestAccounts",[]);let h=await(await d.getSigner()).getAddress(),M=await p({address:h,chain:r,provider:d,walletProvider:s});a({...M,address:h,chain:r,walletType:e});return}let W=g(e);await W.request({method:"eth_requestAccounts"});let E=new c(W,"any"),u=await(await E.getSigner()).getAddress(),_=await p({address:u,chain:r,walletProvider:g(e),provider:E});a({..._,address:u,chain:r,disconnect:()=>E.send("wallet_revokePermissions",[{eth_accounts:{}}]),walletType:e})})),!0}}),B=l.getWalletSupportedChains(O);
2
2
 
3
- //# debugId=79DE271476C5C98064756E2164756E21
3
+ //# debugId=19BF8D1EFF146F9464756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/evm-extensions/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n ChainToHexChainId,\n type EVMChain,\n EVMChains,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nexport type EVMWalletOptions =\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB\n | WalletOption.EIP6963;\n\nconst getWalletForType = (\n walletType:\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB,\n) => {\n switch (walletType) {\n case WalletOption.COINBASE_WEB:\n return window.coinbaseWalletExtension;\n case WalletOption.TRUSTWALLET_WEB:\n return window.trustwallet;\n default:\n return window.ethereum;\n }\n};\n\nexport const getWeb3WalletMethods = async ({\n address,\n walletProvider,\n chain,\n provider,\n}: {\n address: string;\n walletProvider?: Eip1193Provider;\n chain: EVMChain;\n provider: BrowserProvider;\n}) => {\n if (!walletProvider) throw new SwapKitError(\"wallet_evm_extensions_not_found\");\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n if (chain !== Chain.Ethereum) {\n const currentNetwork = await provider.getNetwork();\n if (currentNetwork.chainId.toString() !== ChainToHexChainId[chain]) {\n try {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n } catch (_error) {\n throw new SwapKitError(\"wallet_evm_extensions_failed_to_switch_network\", { chain });\n }\n }\n }\n\n return prepareNetworkSwitch({\n toolbox: { ...toolbox, getBalance: () => toolbox.getBalance(address) },\n chain,\n provider,\n });\n};\n\nexport const evmWallet = createWallet({\n name: \"connectEVMWallet\",\n supportedChains: [...EVMChains] as EVMChain[],\n connect: ({ addChain, supportedChains }) =>\n async function connectEVMWallet(\n chains: Chain[],\n walletType: EVMWalletOptions = WalletOption.METAMASK,\n eip1193Provider?: Eip1193Provider,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { BrowserProvider } = await import(\"ethers\");\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n if (walletType === WalletOption.EIP6963) {\n if (!eip1193Provider) throw new SwapKitError(\"wallet_evm_extensions_no_provider\");\n\n const provider = new BrowserProvider(eip1193Provider, \"any\");\n await provider.send(\"eth_requestAccounts\", []);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n provider,\n walletProvider: eip1193Provider,\n });\n\n addChain({ ...walletMethods, address, chain, walletType });\n return;\n }\n\n const web3provider = new BrowserProvider(getWalletForType(walletType), \"any\");\n await web3provider.send(\"eth_requestAccounts\", []);\n const signer = await web3provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n walletProvider: getWalletForType(walletType),\n provider: web3provider,\n });\n\n const disconnect = () =>\n web3provider.send(\"wallet_revokePermissions\", [{ eth_accounts: {} }]);\n\n addChain({ ...walletMethods, address, chain, disconnect, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const EVM_EXTENSIONS_SUPPORTED_CHAINS = getWalletSupportedChains(evmWallet);\n"
5
+ "import {\n Chain,\n ChainToHexChainId,\n type EVMChain,\n EVMChains,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nexport type EVMWalletOptions =\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB\n | WalletOption.EIP6963;\n\nconst getWalletForType = (\n walletType:\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB,\n) => {\n switch (walletType) {\n case WalletOption.COINBASE_WEB:\n return window.coinbaseWalletExtension;\n case WalletOption.TRUSTWALLET_WEB:\n return window.trustwallet;\n default:\n return window.ethereum;\n }\n};\n\nexport const getWeb3WalletMethods = async ({\n address,\n walletProvider,\n chain,\n provider,\n}: {\n address: string;\n walletProvider?: Eip1193Provider;\n chain: EVMChain;\n provider: BrowserProvider;\n}) => {\n if (!walletProvider) throw new SwapKitError(\"wallet_evm_extensions_not_found\");\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n if (chain !== Chain.Ethereum) {\n const currentNetwork = await provider.getNetwork();\n if (currentNetwork.chainId.toString() !== ChainToHexChainId[chain]) {\n try {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n } catch (_error) {\n throw new SwapKitError(\"wallet_evm_extensions_failed_to_switch_network\", { chain });\n }\n }\n }\n\n return prepareNetworkSwitch({\n toolbox: { ...toolbox, getBalance: () => toolbox.getBalance(address) },\n chain,\n provider,\n });\n};\n\nexport const evmWallet = createWallet({\n name: \"connectEVMWallet\",\n supportedChains: [...EVMChains] as EVMChain[],\n connect: ({ addChain, supportedChains }) =>\n async function connectEVMWallet(\n chains: Chain[],\n walletType: EVMWalletOptions = WalletOption.METAMASK,\n eip1193Provider?: Eip1193Provider,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { BrowserProvider } = await import(\"ethers\");\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n if (walletType === WalletOption.EIP6963) {\n if (!eip1193Provider) throw new SwapKitError(\"wallet_evm_extensions_no_provider\");\n\n await eip1193Provider.request({ method: \"eth_requestAccounts\" });\n\n const provider = new BrowserProvider(eip1193Provider, \"any\");\n await provider.send(\"eth_requestAccounts\", []);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n provider,\n walletProvider: eip1193Provider,\n });\n\n addChain({ ...walletMethods, address, chain, walletType });\n return;\n }\n const walletProvider = getWalletForType(walletType);\n\n await walletProvider.request({ method: \"eth_requestAccounts\" });\n\n const web3provider = new BrowserProvider(walletProvider, \"any\");\n const signer = await web3provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n walletProvider: getWalletForType(walletType),\n provider: web3provider,\n });\n\n const disconnect = () =>\n web3provider.send(\"wallet_revokePermissions\", [{ eth_accounts: {} }]);\n\n addChain({ ...walletMethods, address, chain, disconnect, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const EVM_EXTENSIONS_SUPPORTED_CHAINS = getWalletSupportedChains(evmWallet);\n"
6
6
  ],
7
- "mappings": "qHAUO,IAVP,8BAWA,kCAWM,EAAmB,CACvB,IAMG,CACH,OAAQ,QACD,eAAa,aAChB,OAAO,OAAO,6BACX,eAAa,gBAChB,OAAO,OAAO,oBAEd,OAAO,OAAO,WAIP,EAAuB,OAClC,UACA,iBACA,QACA,cAMI,CACJ,IAAK,EAAgB,MAAM,IAAI,eAAa,iCAAiC,EAC7E,IAAQ,iBAAkB,KAAa,kCAEjC,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,IAAU,QAAM,UAElB,IADuB,MAAM,EAAS,WAAW,GAC9B,QAAQ,SAAS,IAAM,oBAAkB,GAC1D,GAAI,CACF,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,yBAAuB,EAAU,EAAO,CAAa,EAC3D,MAAO,EAAQ,CACf,MAAM,IAAI,eAAa,iDAAkD,CAAE,OAAM,CAAC,GAKxF,OAAO,uBAAqB,CAC1B,QAAS,IAAK,EAAS,WAAY,IAAM,EAAQ,WAAW,CAAO,CAAE,EACrE,QACA,UACF,CAAC,GAGU,EAAY,eAAa,CACpC,KAAM,mBACN,gBAAiB,CAAC,GAAG,WAAS,EAC9B,QAAS,EAAG,WAAU,qBACpB,eAAe,CAAgB,CAC7B,EACA,EAA+B,eAAa,SAC5C,EACA,CACA,IAAM,EAAiB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,GAC5E,mBAAoB,KAAa,kBA0CzC,OAxCA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,GAAI,IAAe,eAAa,QAAS,CACvC,IAAK,EAAiB,MAAM,IAAI,eAAa,mCAAmC,EAEhF,IAAM,EAAW,IAAI,EAAgB,EAAiB,KAAK,EAC3D,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAE7C,IAAM,EAAU,MADD,MAAM,EAAS,UAAU,GACX,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,WACA,eAAgB,CAClB,CAAC,EAED,EAAS,IAAK,EAAe,UAAS,QAAO,YAAW,CAAC,EACzD,OAGF,IAAM,EAAe,IAAI,EAAgB,EAAiB,CAAU,EAAG,KAAK,EAC5E,MAAM,EAAa,KAAK,sBAAuB,CAAC,CAAC,EAEjD,IAAM,EAAU,MADD,MAAM,EAAa,UAAU,GACf,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,eAAgB,EAAiB,CAAU,EAC3C,SAAU,CACZ,CAAC,EAKD,EAAS,IAAK,EAAe,UAAS,QAAO,WAH1B,IACjB,EAAa,KAAK,2BAA4B,CAAC,CAAE,aAAc,CAAC,CAAE,CAAC,CAAC,EAEb,YAAW,CAAC,EACtE,CACH,EAEO,GAEb,CAAC,EAEY,EAAkC,2BAAyB,CAAS",
8
- "debugId": "79DE271476C5C98064756E2164756E21",
7
+ "mappings": "qHAUO,IAVP,8BAWA,kCAWM,EAAmB,CACvB,IAMG,CACH,OAAQ,QACD,eAAa,aAChB,OAAO,OAAO,6BACX,eAAa,gBAChB,OAAO,OAAO,oBAEd,OAAO,OAAO,WAIP,EAAuB,OAClC,UACA,iBACA,QACA,cAMI,CACJ,IAAK,EAAgB,MAAM,IAAI,eAAa,iCAAiC,EAC7E,IAAQ,iBAAkB,KAAa,kCAEjC,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,IAAU,QAAM,UAElB,IADuB,MAAM,EAAS,WAAW,GAC9B,QAAQ,SAAS,IAAM,oBAAkB,GAC1D,GAAI,CACF,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,yBAAuB,EAAU,EAAO,CAAa,EAC3D,MAAO,EAAQ,CACf,MAAM,IAAI,eAAa,iDAAkD,CAAE,OAAM,CAAC,GAKxF,OAAO,uBAAqB,CAC1B,QAAS,IAAK,EAAS,WAAY,IAAM,EAAQ,WAAW,CAAO,CAAE,EACrE,QACA,UACF,CAAC,GAGU,EAAY,eAAa,CACpC,KAAM,mBACN,gBAAiB,CAAC,GAAG,WAAS,EAC9B,QAAS,EAAG,WAAU,qBACpB,eAAe,CAAgB,CAC7B,EACA,EAA+B,eAAa,SAC5C,EACA,CACA,IAAM,EAAiB,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,GAC5E,mBAAoB,KAAa,kBA8CzC,OA5CA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,GAAI,IAAe,eAAa,QAAS,CACvC,IAAK,EAAiB,MAAM,IAAI,eAAa,mCAAmC,EAEhF,MAAM,EAAgB,QAAQ,CAAE,OAAQ,qBAAsB,CAAC,EAE/D,IAAM,EAAW,IAAI,EAAgB,EAAiB,KAAK,EAC3D,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAE7C,IAAM,EAAU,MADD,MAAM,EAAS,UAAU,GACX,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,WACA,eAAgB,CAClB,CAAC,EAED,EAAS,IAAK,EAAe,UAAS,QAAO,YAAW,CAAC,EACzD,OAEF,IAAM,EAAiB,EAAiB,CAAU,EAElD,MAAM,EAAe,QAAQ,CAAE,OAAQ,qBAAsB,CAAC,EAE9D,IAAM,EAAe,IAAI,EAAgB,EAAgB,KAAK,EAExD,EAAU,MADD,MAAM,EAAa,UAAU,GACf,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,eAAgB,EAAiB,CAAU,EAC3C,SAAU,CACZ,CAAC,EAKD,EAAS,IAAK,EAAe,UAAS,QAAO,WAH1B,IACjB,EAAa,KAAK,2BAA4B,CAAC,CAAE,aAAc,CAAC,CAAE,CAAC,CAAC,EAEb,YAAW,CAAC,EACtE,CACH,EAEO,GAEb,CAAC,EAEY,EAAkC,2BAAyB,CAAS",
8
+ "debugId": "19BF8D1EFF146F9464756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- import{F as u,G as O}from"../../chunk-yqaz2d25.js";import{Chain as M,ChainToHexChainId as S,EVMChains as A,SwapKitError as d,WalletOption as l,filterSupportedChains as B,prepareNetworkSwitch as C,switchEVMWalletNetwork as P}from"@swapkit/helpers";import{createWallet as f,getWalletSupportedChains as v}from"@swapkit/wallet-core";var _=(r)=>{switch(r){case l.COINBASE_WEB:return window.coinbaseWalletExtension;case l.TRUSTWALLET_WEB:return window.trustwallet;default:return window.ethereum}},g=async({address:r,walletProvider:w,chain:e,provider:o})=>{if(!w)throw new d("wallet_evm_extensions_not_found");let{getEvmToolbox:t}=await import("@swapkit/toolboxes/evm"),a=await o.getSigner(),i=await t(e,{provider:o,signer:a});if(e!==M.Ethereum){if((await o.getNetwork()).chainId.toString()!==S[e])try{let n=i.getNetworkParams();await P(o,e,n)}catch(n){throw new d("wallet_evm_extensions_failed_to_switch_network",{chain:e})}}return C({toolbox:{...i,getBalance:()=>i.getBalance(r)},chain:e,provider:o})},x=f({name:"connectEVMWallet",supportedChains:[...A],connect:({addChain:r,supportedChains:w})=>async function e(o,t=l.METAMASK,a){let i=B({chains:o,supportedChains:w,walletType:t}),{BrowserProvider:c}=await import("ethers");return await Promise.all(i.map(async(n)=>{if(t===l.EIP6963){if(!a)throw new d("wallet_evm_extensions_no_provider");let E=new c(a,"any");await E.send("eth_requestAccounts",[]);let W=await(await E.getSigner()).getAddress(),m=await g({address:W,chain:n,provider:E,walletProvider:a});r({...m,address:W,chain:n,walletType:t});return}let s=new c(_(t),"any");await s.send("eth_requestAccounts",[]);let p=await(await s.getSigner()).getAddress(),h=await g({address:p,chain:n,walletProvider:_(t),provider:s});r({...h,address:p,chain:n,disconnect:()=>s.send("wallet_revokePermissions",[{eth_accounts:{}}]),walletType:t})})),!0}}),L=v(x);export{g as getWeb3WalletMethods,x as evmWallet,L as EVM_EXTENSIONS_SUPPORTED_CHAINS};
1
+ import{F as m,G as O}from"../../chunk-yqaz2d25.js";import{Chain as S,ChainToHexChainId as A,EVMChains as B,SwapKitError as d,WalletOption as i,filterSupportedChains as C,prepareNetworkSwitch as P,switchEVMWalletNetwork as f}from"@swapkit/helpers";import{createWallet as v,getWalletSupportedChains as x}from"@swapkit/wallet-core";var h=(r)=>{switch(r){case i.COINBASE_WEB:return window.coinbaseWalletExtension;case i.TRUSTWALLET_WEB:return window.trustwallet;default:return window.ethereum}},g=async({address:r,walletProvider:l,chain:e,provider:o})=>{if(!l)throw new d("wallet_evm_extensions_not_found");let{getEvmToolbox:t}=await import("@swapkit/toolboxes/evm"),a=await o.getSigner(),s=await t(e,{provider:o,signer:a});if(e!==S.Ethereum){if((await o.getNetwork()).chainId.toString()!==A[e])try{let n=s.getNetworkParams();await f(o,e,n)}catch(n){throw new d("wallet_evm_extensions_failed_to_switch_network",{chain:e})}}return P({toolbox:{...s,getBalance:()=>s.getBalance(r)},chain:e,provider:o})},N=v({name:"connectEVMWallet",supportedChains:[...B],connect:({addChain:r,supportedChains:l})=>async function e(o,t=i.METAMASK,a){let s=C({chains:o,supportedChains:l,walletType:t}),{BrowserProvider:w}=await import("ethers");return await Promise.all(s.map(async(n)=>{if(t===i.EIP6963){if(!a)throw new d("wallet_evm_extensions_no_provider");await a.request({method:"eth_requestAccounts"});let E=new w(a,"any");await E.send("eth_requestAccounts",[]);let u=await(await E.getSigner()).getAddress(),M=await g({address:u,chain:n,provider:E,walletProvider:a});r({...M,address:u,chain:n,walletType:t});return}let p=h(t);await p.request({method:"eth_requestAccounts"});let c=new w(p,"any"),W=await(await c.getSigner()).getAddress(),_=await g({address:W,chain:n,walletProvider:h(t),provider:c});r({..._,address:W,chain:n,disconnect:()=>c.send("wallet_revokePermissions",[{eth_accounts:{}}]),walletType:t})})),!0}}),b=x(N);export{g as getWeb3WalletMethods,N as evmWallet,b as EVM_EXTENSIONS_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=7976B4C593B973B264756E2164756E21
3
+ //# debugId=B73933FD026298B964756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/evm-extensions/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n ChainToHexChainId,\n type EVMChain,\n EVMChains,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nexport type EVMWalletOptions =\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB\n | WalletOption.EIP6963;\n\nconst getWalletForType = (\n walletType:\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB,\n) => {\n switch (walletType) {\n case WalletOption.COINBASE_WEB:\n return window.coinbaseWalletExtension;\n case WalletOption.TRUSTWALLET_WEB:\n return window.trustwallet;\n default:\n return window.ethereum;\n }\n};\n\nexport const getWeb3WalletMethods = async ({\n address,\n walletProvider,\n chain,\n provider,\n}: {\n address: string;\n walletProvider?: Eip1193Provider;\n chain: EVMChain;\n provider: BrowserProvider;\n}) => {\n if (!walletProvider) throw new SwapKitError(\"wallet_evm_extensions_not_found\");\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n if (chain !== Chain.Ethereum) {\n const currentNetwork = await provider.getNetwork();\n if (currentNetwork.chainId.toString() !== ChainToHexChainId[chain]) {\n try {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n } catch (_error) {\n throw new SwapKitError(\"wallet_evm_extensions_failed_to_switch_network\", { chain });\n }\n }\n }\n\n return prepareNetworkSwitch({\n toolbox: { ...toolbox, getBalance: () => toolbox.getBalance(address) },\n chain,\n provider,\n });\n};\n\nexport const evmWallet = createWallet({\n name: \"connectEVMWallet\",\n supportedChains: [...EVMChains] as EVMChain[],\n connect: ({ addChain, supportedChains }) =>\n async function connectEVMWallet(\n chains: Chain[],\n walletType: EVMWalletOptions = WalletOption.METAMASK,\n eip1193Provider?: Eip1193Provider,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { BrowserProvider } = await import(\"ethers\");\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n if (walletType === WalletOption.EIP6963) {\n if (!eip1193Provider) throw new SwapKitError(\"wallet_evm_extensions_no_provider\");\n\n const provider = new BrowserProvider(eip1193Provider, \"any\");\n await provider.send(\"eth_requestAccounts\", []);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n provider,\n walletProvider: eip1193Provider,\n });\n\n addChain({ ...walletMethods, address, chain, walletType });\n return;\n }\n\n const web3provider = new BrowserProvider(getWalletForType(walletType), \"any\");\n await web3provider.send(\"eth_requestAccounts\", []);\n const signer = await web3provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n walletProvider: getWalletForType(walletType),\n provider: web3provider,\n });\n\n const disconnect = () =>\n web3provider.send(\"wallet_revokePermissions\", [{ eth_accounts: {} }]);\n\n addChain({ ...walletMethods, address, chain, disconnect, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const EVM_EXTENSIONS_SUPPORTED_CHAINS = getWalletSupportedChains(evmWallet);\n"
5
+ "import {\n Chain,\n ChainToHexChainId,\n type EVMChain,\n EVMChains,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport type { BrowserProvider, Eip1193Provider } from \"ethers\";\n\nexport type EVMWalletOptions =\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB\n | WalletOption.EIP6963;\n\nconst getWalletForType = (\n walletType:\n | WalletOption.BRAVE\n | WalletOption.OKX_MOBILE\n | WalletOption.METAMASK\n | WalletOption.TRUSTWALLET_WEB\n | WalletOption.COINBASE_WEB,\n) => {\n switch (walletType) {\n case WalletOption.COINBASE_WEB:\n return window.coinbaseWalletExtension;\n case WalletOption.TRUSTWALLET_WEB:\n return window.trustwallet;\n default:\n return window.ethereum;\n }\n};\n\nexport const getWeb3WalletMethods = async ({\n address,\n walletProvider,\n chain,\n provider,\n}: {\n address: string;\n walletProvider?: Eip1193Provider;\n chain: EVMChain;\n provider: BrowserProvider;\n}) => {\n if (!walletProvider) throw new SwapKitError(\"wallet_evm_extensions_not_found\");\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n if (chain !== Chain.Ethereum) {\n const currentNetwork = await provider.getNetwork();\n if (currentNetwork.chainId.toString() !== ChainToHexChainId[chain]) {\n try {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(provider, chain, networkParams);\n } catch (_error) {\n throw new SwapKitError(\"wallet_evm_extensions_failed_to_switch_network\", { chain });\n }\n }\n }\n\n return prepareNetworkSwitch({\n toolbox: { ...toolbox, getBalance: () => toolbox.getBalance(address) },\n chain,\n provider,\n });\n};\n\nexport const evmWallet = createWallet({\n name: \"connectEVMWallet\",\n supportedChains: [...EVMChains] as EVMChain[],\n connect: ({ addChain, supportedChains }) =>\n async function connectEVMWallet(\n chains: Chain[],\n walletType: EVMWalletOptions = WalletOption.METAMASK,\n eip1193Provider?: Eip1193Provider,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { BrowserProvider } = await import(\"ethers\");\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n if (walletType === WalletOption.EIP6963) {\n if (!eip1193Provider) throw new SwapKitError(\"wallet_evm_extensions_no_provider\");\n\n await eip1193Provider.request({ method: \"eth_requestAccounts\" });\n\n const provider = new BrowserProvider(eip1193Provider, \"any\");\n await provider.send(\"eth_requestAccounts\", []);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n provider,\n walletProvider: eip1193Provider,\n });\n\n addChain({ ...walletMethods, address, chain, walletType });\n return;\n }\n const walletProvider = getWalletForType(walletType);\n\n await walletProvider.request({ method: \"eth_requestAccounts\" });\n\n const web3provider = new BrowserProvider(walletProvider, \"any\");\n const signer = await web3provider.getSigner();\n const address = await signer.getAddress();\n\n const walletMethods = await getWeb3WalletMethods({\n address,\n chain,\n walletProvider: getWalletForType(walletType),\n provider: web3provider,\n });\n\n const disconnect = () =>\n web3provider.send(\"wallet_revokePermissions\", [{ eth_accounts: {} }]);\n\n addChain({ ...walletMethods, address, chain, disconnect, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const EVM_EXTENSIONS_SUPPORTED_CHAINS = getWalletSupportedChains(evmWallet);\n"
6
6
  ],
7
- "mappings": "mDAAA,gBACE,uBACA,eAEA,kBACA,kBACA,2BACA,0BACA,4BACA,yBAEF,uBAAS,8BAAc,6BAWvB,IAAM,EAAmB,CACvB,IAMG,CACH,OAAQ,QACD,EAAa,aAChB,OAAO,OAAO,6BACX,EAAa,gBAChB,OAAO,OAAO,oBAEd,OAAO,OAAO,WAIP,EAAuB,OAClC,UACA,iBACA,QACA,cAMI,CACJ,IAAK,EAAgB,MAAM,IAAI,EAAa,iCAAiC,EAC7E,IAAQ,iBAAkB,KAAa,kCAEjC,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,IAAU,EAAM,UAElB,IADuB,MAAM,EAAS,WAAW,GAC9B,QAAQ,SAAS,IAAM,EAAkB,GAC1D,GAAI,CACF,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,EAAuB,EAAU,EAAO,CAAa,EAC3D,MAAO,EAAQ,CACf,MAAM,IAAI,EAAa,iDAAkD,CAAE,OAAM,CAAC,GAKxF,OAAO,EAAqB,CAC1B,QAAS,IAAK,EAAS,WAAY,IAAM,EAAQ,WAAW,CAAO,CAAE,EACrE,QACA,UACF,CAAC,GAGU,EAAY,EAAa,CACpC,KAAM,mBACN,gBAAiB,CAAC,GAAG,CAAS,EAC9B,QAAS,EAAG,WAAU,qBACpB,eAAe,CAAgB,CAC7B,EACA,EAA+B,EAAa,SAC5C,EACA,CACA,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,GAC5E,mBAAoB,KAAa,kBA0CzC,OAxCA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,GAAI,IAAe,EAAa,QAAS,CACvC,IAAK,EAAiB,MAAM,IAAI,EAAa,mCAAmC,EAEhF,IAAM,EAAW,IAAI,EAAgB,EAAiB,KAAK,EAC3D,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAE7C,IAAM,EAAU,MADD,MAAM,EAAS,UAAU,GACX,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,WACA,eAAgB,CAClB,CAAC,EAED,EAAS,IAAK,EAAe,UAAS,QAAO,YAAW,CAAC,EACzD,OAGF,IAAM,EAAe,IAAI,EAAgB,EAAiB,CAAU,EAAG,KAAK,EAC5E,MAAM,EAAa,KAAK,sBAAuB,CAAC,CAAC,EAEjD,IAAM,EAAU,MADD,MAAM,EAAa,UAAU,GACf,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,eAAgB,EAAiB,CAAU,EAC3C,SAAU,CACZ,CAAC,EAKD,EAAS,IAAK,EAAe,UAAS,QAAO,WAH1B,IACjB,EAAa,KAAK,2BAA4B,CAAC,CAAE,aAAc,CAAC,CAAE,CAAC,CAAC,EAEb,YAAW,CAAC,EACtE,CACH,EAEO,GAEb,CAAC,EAEY,EAAkC,EAAyB,CAAS",
8
- "debugId": "7976B4C593B973B264756E2164756E21",
7
+ "mappings": "mDAAA,gBACE,uBACA,eAEA,kBACA,kBACA,2BACA,0BACA,4BACA,yBAEF,uBAAS,8BAAc,6BAWvB,IAAM,EAAmB,CACvB,IAMG,CACH,OAAQ,QACD,EAAa,aAChB,OAAO,OAAO,6BACX,EAAa,gBAChB,OAAO,OAAO,oBAEd,OAAO,OAAO,WAIP,EAAuB,OAClC,UACA,iBACA,QACA,cAMI,CACJ,IAAK,EAAgB,MAAM,IAAI,EAAa,iCAAiC,EAC7E,IAAQ,iBAAkB,KAAa,kCAEjC,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,IAAU,EAAM,UAElB,IADuB,MAAM,EAAS,WAAW,GAC9B,QAAQ,SAAS,IAAM,EAAkB,GAC1D,GAAI,CACF,IAAM,EAAgB,EAAQ,iBAAiB,EAC/C,MAAM,EAAuB,EAAU,EAAO,CAAa,EAC3D,MAAO,EAAQ,CACf,MAAM,IAAI,EAAa,iDAAkD,CAAE,OAAM,CAAC,GAKxF,OAAO,EAAqB,CAC1B,QAAS,IAAK,EAAS,WAAY,IAAM,EAAQ,WAAW,CAAO,CAAE,EACrE,QACA,UACF,CAAC,GAGU,EAAY,EAAa,CACpC,KAAM,mBACN,gBAAiB,CAAC,GAAG,CAAS,EAC9B,QAAS,EAAG,WAAU,qBACpB,eAAe,CAAgB,CAC7B,EACA,EAA+B,EAAa,SAC5C,EACA,CACA,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,GAC5E,mBAAoB,KAAa,kBA8CzC,OA5CA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,GAAI,IAAe,EAAa,QAAS,CACvC,IAAK,EAAiB,MAAM,IAAI,EAAa,mCAAmC,EAEhF,MAAM,EAAgB,QAAQ,CAAE,OAAQ,qBAAsB,CAAC,EAE/D,IAAM,EAAW,IAAI,EAAgB,EAAiB,KAAK,EAC3D,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAE7C,IAAM,EAAU,MADD,MAAM,EAAS,UAAU,GACX,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,WACA,eAAgB,CAClB,CAAC,EAED,EAAS,IAAK,EAAe,UAAS,QAAO,YAAW,CAAC,EACzD,OAEF,IAAM,EAAiB,EAAiB,CAAU,EAElD,MAAM,EAAe,QAAQ,CAAE,OAAQ,qBAAsB,CAAC,EAE9D,IAAM,EAAe,IAAI,EAAgB,EAAgB,KAAK,EAExD,EAAU,MADD,MAAM,EAAa,UAAU,GACf,WAAW,EAElC,EAAgB,MAAM,EAAqB,CAC/C,UACA,QACA,eAAgB,EAAiB,CAAU,EAC3C,SAAU,CACZ,CAAC,EAKD,EAAS,IAAK,EAAe,UAAS,QAAO,WAH1B,IACjB,EAAa,KAAK,2BAA4B,CAAC,CAAE,aAAc,CAAC,CAAE,CAAC,CAAC,EAEb,YAAW,CAAC,EACtE,CACH,EAEO,GAEb,CAAC,EAEY,EAAkC,EAAyB,CAAS",
8
+ "debugId": "B73933FD026298B964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- var E={};b(E,{onekeyWallet:()=>f,ONEKEY_WALLET_SUPPORTED_CHAINS:()=>S});module.exports=h(E);var e=require("@swapkit/helpers"),y=require("@swapkit/wallet-core"),u=require("bitcoinjs-lib");async function A(t){switch(t){case e.Chain.Bitcoin:{if(!window.$onekey?.btc)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:s}=await import("@swapkit/toolboxes/utxo"),{signTransaction:r,getAddress:d,AddressPurpose:o,BitcoinNetworkType:c}=await import("sats-connect"),n="",a=()=>new Promise((i)=>i(window.$onekey?.btc)),w={getProvider:a,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:c.Mainnet}},onFinish:(i)=>{if(i.addresses[0]?.address)n=i.addresses[0].address},onCancel:()=>{throw new e.SwapKitError("wallet_connection_rejected_by_user")}};await d(w);async function p(i){let g,k={getProvider:a,payload:{message:"Sign transaction",network:{type:c.Mainnet},psbtBase64:i.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:i.txInputs.map((_,P)=>P)}]},onFinish:(_)=>{g=u.Psbt.fromBase64(_.psbtBase64)},onCancel:()=>{throw new e.SwapKitError("wallet_connection_rejected_by_user")}};if(await r(k),!g)throw new e.SwapKitError("wallet_onekey_sign_transaction_error");return g}return{...await s(t,{signer:{signTransaction:p,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Chain.Solana:{if(!window.$onekey?.sol)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:s}=await import("@swapkit/toolboxes/solana"),r=window.$onekey.sol,d=await r.getAddress();return{...s({signer:r}),address:d}}case e.Chain.Arbitrum:case e.Chain.Aurora:case e.Chain.Avalanche:case e.Chain.Base:case e.Chain.BinanceSmartChain:case e.Chain.Ethereum:case e.Chain.Gnosis:case e.Chain.Optimism:case e.Chain.Polygon:{let{getProvider:s,getEvmToolbox:r}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:d}=await import("ethers"),o=new d(window.$onekey.ethereum,"any"),c=e.SKConfig.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await s(t,c),a=await o.getSigner(),w=await a.getAddress(),p=await r(t,{provider:n,signer:a});try{if(t!==e.Chain.Ethereum){let m=p.getNetworkParams();await e.addEVMWalletNetwork(o,m)}}catch(m){throw new e.SwapKitError({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:m}})}return{address:w,...e.prepareNetworkSwitch({toolbox:p,chain:t,provider:o})}}default:throw new e.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:e.WalletOption.ONEKEY}})}}var f=y.createWallet({name:"connectOnekeyWallet",walletType:e.WalletOption.ONEKEY,supportedChains:[e.Chain.Arbitrum,e.Chain.Aurora,e.Chain.Avalanche,e.Chain.Base,e.Chain.BinanceSmartChain,e.Chain.Bitcoin,e.Chain.Ethereum,e.Chain.Gnosis,e.Chain.Optimism,e.Chain.Polygon,e.Chain.Solana],connect:({addChain:t,walletType:s,supportedChains:r})=>async function d(o){if(!window.$onekey)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{wallet:e.WalletOption.ONEKEY}});let c=e.filterSupportedChains({chains:o,supportedChains:r,walletType:s});return await Promise.all(c.map(async(n)=>{let a=await A(n),w=await a.getAddress()||"F";t({...a,chain:n,address:w,walletType:s})})),!0}}),S=y.getWalletSupportedChains(f);
1
+ var E={};P(E,{onekeyWallet:()=>u,ONEKEY_WALLET_SUPPORTED_CHAINS:()=>A});module.exports=h(E);var e=require("@swapkit/helpers"),m=require("@swapkit/wallet-core"),_=require("bitcoinjs-lib");async function b(t){switch(t){case e.Chain.Bitcoin:{if(!window.$onekey?.btc)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:s}=await import("@swapkit/toolboxes/utxo"),{signTransaction:r,getAddress:d,AddressPurpose:n,BitcoinNetworkType:w}=await import("sats-connect"),o="",a=()=>new Promise((i)=>i(window.$onekey?.btc)),c={getProvider:a,payload:{purposes:[n.Payment],message:"Address for receiving and sending payments",network:{type:w.Mainnet}},onFinish:(i)=>{if(i.addresses[0]?.address)o=i.addresses[0].address},onCancel:()=>{throw new e.SwapKitError("wallet_connection_rejected_by_user")}};await d(c);async function l(i){let y,f={getProvider:a,payload:{message:"Sign transaction",network:{type:w.Mainnet},psbtBase64:i.toBase64(),broadcast:!1,inputsToSign:[{address:o,signingIndexes:i.txInputs.map((g,k)=>k)}]},onFinish:(g)=>{y=_.Psbt.fromBase64(g.psbtBase64)},onCancel:()=>{throw new e.SwapKitError("wallet_connection_rejected_by_user")}};if(await r(f),!y)throw new e.SwapKitError("wallet_onekey_sign_transaction_error");return y}return{...await s(t,{signer:{signTransaction:l,getAddress:()=>Promise.resolve(o)}}),address:o}}case e.Chain.Solana:{if(!window.$onekey?.sol)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:s}=await import("@swapkit/toolboxes/solana"),r=window.$onekey.sol,d=await r.getAddress();return{...s({signer:r}),address:d}}case e.Chain.Arbitrum:case e.Chain.Aurora:case e.Chain.Avalanche:case e.Chain.Base:case e.Chain.BinanceSmartChain:case e.Chain.Ethereum:case e.Chain.Gnosis:case e.Chain.Optimism:case e.Chain.Polygon:{let{getProvider:s,getEvmToolbox:r}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:d}=await import("ethers"),n=new d(window.$onekey.ethereum,"any");await n.send("eth_requestAccounts",[]);let w=await s(t),o=await n.getSigner(),a=await o.getAddress(),c=await r(t,{provider:w,signer:o});try{if(t!==e.Chain.Ethereum){let l=c.getNetworkParams();await e.addEVMWalletNetwork(n,l)}}catch(l){throw new e.SwapKitError({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:l}})}return{address:a,...e.prepareNetworkSwitch({toolbox:c,chain:t,provider:n})}}default:throw new e.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:e.WalletOption.ONEKEY}})}}var u=m.createWallet({name:"connectOnekeyWallet",walletType:e.WalletOption.ONEKEY,supportedChains:[e.Chain.Arbitrum,e.Chain.Aurora,e.Chain.Avalanche,e.Chain.Base,e.Chain.BinanceSmartChain,e.Chain.Bitcoin,e.Chain.Ethereum,e.Chain.Gnosis,e.Chain.Optimism,e.Chain.Polygon,e.Chain.Solana],connect:({addChain:t,walletType:s,supportedChains:r})=>async function d(n){if(!window.$onekey)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{wallet:e.WalletOption.ONEKEY}});let w=e.filterSupportedChains({chains:n,supportedChains:r,walletType:s});return await Promise.all(w.map(async(o)=>{let a=await b(o),c=await a.getAddress()||"F";t({...a,chain:o,address:c,walletType:s})})),!0}}),A=m.getWalletSupportedChains(u);
2
2
 
3
- //# debugId=8486BCC822F842FA64756E2164756E21
3
+ //# debugId=20D4DA0E8072591364756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/onekey/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n type NetworkParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n addEVMWalletNetwork,\n filterSupportedChains,\n prepareNetworkSwitch,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type {\n BitcoinProvider,\n GetAddressOptions,\n GetAddressResponse,\n SignTransactionOptions,\n} from \"sats-connect\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new SwapKitError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n payload: {\n purposes: [AddressPurpose.Payment],\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n payload: {\n message: \"Sign transaction\",\n network: {\n type: BitcoinNetworkType.Mainnet,\n },\n psbtBase64: psbt.toBase64(),\n broadcast: false,\n inputsToSign: [\n {\n address,\n signingIndexes: psbt.txInputs.map((_: any, index: number) => index),\n },\n ],\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new SwapKitError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = {\n signTransaction,\n getAddress: () => Promise.resolve(address),\n };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain, rpcUrl);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, error },\n });\n }\n\n return {\n address,\n ...prepareNetworkSwitch({ toolbox, chain, provider }),\n };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.ONEKEY },\n });\n }\n}\n\nexport const onekeyWallet = createWallet({\n name: \"connectOnekeyWallet\",\n walletType: WalletOption.ONEKEY,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n ],\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { wallet: WalletOption.ONEKEY },\n });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, chain, address, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
5
+ "import {\n Chain,\n type NetworkParams,\n SwapKitError,\n WalletOption,\n addEVMWalletNetwork,\n filterSupportedChains,\n prepareNetworkSwitch,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type {\n BitcoinProvider,\n GetAddressOptions,\n GetAddressResponse,\n SignTransactionOptions,\n} from \"sats-connect\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new SwapKitError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n payload: {\n purposes: [AddressPurpose.Payment],\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n payload: {\n message: \"Sign transaction\",\n network: {\n type: BitcoinNetworkType.Mainnet,\n },\n psbtBase64: psbt.toBase64(),\n broadcast: false,\n inputsToSign: [\n {\n address,\n signingIndexes: psbt.txInputs.map((_: any, index: number) => index),\n },\n ],\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new SwapKitError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = {\n signTransaction,\n getAddress: () => Promise.resolve(address),\n };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, error },\n });\n }\n\n return {\n address,\n ...prepareNetworkSwitch({ toolbox, chain, provider }),\n };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.ONEKEY },\n });\n }\n}\n\nexport const onekeyWallet = createWallet({\n name: \"connectOnekeyWallet\",\n walletType: WalletOption.ONEKEY,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n ],\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { wallet: WalletOption.ONEKEY },\n });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, chain, address, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "8486BCC822F842FA64756E2164756E21",
7
+ "mappings": "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",
8
+ "debugId": "20D4DA0E8072591364756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- import{F as p,G as m}from"../../chunk-yqaz2d25.js";import{Chain as e,SKConfig as h,SwapKitError as s,WalletOption as u,addEVMWalletNetwork as b,filterSupportedChains as A,prepareNetworkSwitch as S}from"@swapkit/helpers";import{createWallet as E,getWalletSupportedChains as O}from"@swapkit/wallet-core";import{Psbt as x}from"bitcoinjs-lib";async function B(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:r}=await import("@swapkit/toolboxes/utxo"),{signTransaction:a,getAddress:c,AddressPurpose:o,BitcoinNetworkType:w}=await import("sats-connect"),n="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:w.Mainnet}},onFinish:(d)=>{if(d.addresses[0]?.address)n=d.addresses[0].address},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};await c(l);async function y(d){let _,k={getProvider:i,payload:{message:"Sign transaction",network:{type:w.Mainnet},psbtBase64:d.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:d.txInputs.map((f,P)=>P)}]},onFinish:(f)=>{_=x.fromBase64(f.psbtBase64)},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};if(await a(k),!_)throw new s("wallet_onekey_sign_transaction_error");return _}return{...await r(t,{signer:{signTransaction:y,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Solana:{if(!window.$onekey?.sol)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:r}=await import("@swapkit/toolboxes/solana"),a=window.$onekey.sol,c=await a.getAddress();return{...r({signer:a}),address:c}}case e.Arbitrum:case e.Aurora:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Gnosis:case e.Optimism:case e.Polygon:{let{getProvider:r,getEvmToolbox:a}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:c}=await import("ethers"),o=new c(window.$onekey.ethereum,"any"),w=h.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await r(t,w),i=await o.getSigner(),l=await i.getAddress(),y=await a(t,{provider:n,signer:i});try{if(t!==e.Ethereum){let g=y.getNetworkParams();await b(o,g)}}catch(g){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:g}})}return{address:l,...S({toolbox:y,chain:t,provider:o})}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:u.ONEKEY}})}}var v=E({name:"connectOnekeyWallet",walletType:u.ONEKEY,supportedChains:[e.Arbitrum,e.Aurora,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Gnosis,e.Optimism,e.Polygon,e.Solana],connect:({addChain:t,walletType:r,supportedChains:a})=>async function c(o){if(!window.$onekey)throw new s({errorKey:"wallet_onekey_not_found",info:{wallet:u.ONEKEY}});let w=A({chains:o,supportedChains:a,walletType:r});return await Promise.all(w.map(async(n)=>{let i=await B(n),l=await i.getAddress()||"F";t({...i,chain:n,address:l,walletType:r})})),!0}}),W=O(v);export{v as onekeyWallet,W as ONEKEY_WALLET_SUPPORTED_CHAINS};
1
+ import{F as m,G as y}from"../../chunk-yqaz2d25.js";import{Chain as e,SwapKitError as s,WalletOption as _,addEVMWalletNetwork as h,filterSupportedChains as P,prepareNetworkSwitch as b}from"@swapkit/helpers";import{createWallet as A,getWalletSupportedChains as E}from"@swapkit/wallet-core";import{Psbt as S}from"bitcoinjs-lib";async function O(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:r}=await import("@swapkit/toolboxes/utxo"),{signTransaction:a,getAddress:w,AddressPurpose:n,BitcoinNetworkType:c}=await import("sats-connect"),o="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,payload:{purposes:[n.Payment],message:"Address for receiving and sending payments",network:{type:c.Mainnet}},onFinish:(d)=>{if(d.addresses[0]?.address)o=d.addresses[0].address},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};await w(l);async function p(d){let g,f={getProvider:i,payload:{message:"Sign transaction",network:{type:c.Mainnet},psbtBase64:d.toBase64(),broadcast:!1,inputsToSign:[{address:o,signingIndexes:d.txInputs.map((u,k)=>k)}]},onFinish:(u)=>{g=S.fromBase64(u.psbtBase64)},onCancel:()=>{throw new s("wallet_connection_rejected_by_user")}};if(await a(f),!g)throw new s("wallet_onekey_sign_transaction_error");return g}return{...await r(t,{signer:{signTransaction:p,getAddress:()=>Promise.resolve(o)}}),address:o}}case e.Solana:{if(!window.$onekey?.sol)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:r}=await import("@swapkit/toolboxes/solana"),a=window.$onekey.sol,w=await a.getAddress();return{...r({signer:a}),address:w}}case e.Arbitrum:case e.Aurora:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Gnosis:case e.Optimism:case e.Polygon:{let{getProvider:r,getEvmToolbox:a}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new s({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:w}=await import("ethers"),n=new w(window.$onekey.ethereum,"any");await n.send("eth_requestAccounts",[]);let c=await r(t),o=await n.getSigner(),i=await o.getAddress(),l=await a(t,{provider:c,signer:o});try{if(t!==e.Ethereum){let p=l.getNetworkParams();await h(n,p)}}catch(p){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:p}})}return{address:i,...b({toolbox:l,chain:t,provider:n})}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:_.ONEKEY}})}}var x=A({name:"connectOnekeyWallet",walletType:_.ONEKEY,supportedChains:[e.Arbitrum,e.Aurora,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Gnosis,e.Optimism,e.Polygon,e.Solana],connect:({addChain:t,walletType:r,supportedChains:a})=>async function w(n){if(!window.$onekey)throw new s({errorKey:"wallet_onekey_not_found",info:{wallet:_.ONEKEY}});let c=P({chains:n,supportedChains:a,walletType:r});return await Promise.all(c.map(async(o)=>{let i=await O(o),l=await i.getAddress()||"F";t({...i,chain:o,address:l,walletType:r})})),!0}}),N=E(x);export{x as onekeyWallet,N as ONEKEY_WALLET_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=217089A86AB8EC4564756E2164756E21
3
+ //# debugId=F734C079BA9BC19064756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/onekey/index.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n type NetworkParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n addEVMWalletNetwork,\n filterSupportedChains,\n prepareNetworkSwitch,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type {\n BitcoinProvider,\n GetAddressOptions,\n GetAddressResponse,\n SignTransactionOptions,\n} from \"sats-connect\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new SwapKitError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n payload: {\n purposes: [AddressPurpose.Payment],\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n payload: {\n message: \"Sign transaction\",\n network: {\n type: BitcoinNetworkType.Mainnet,\n },\n psbtBase64: psbt.toBase64(),\n broadcast: false,\n inputsToSign: [\n {\n address,\n signingIndexes: psbt.txInputs.map((_: any, index: number) => index),\n },\n ],\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new SwapKitError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = {\n signTransaction,\n getAddress: () => Promise.resolve(address),\n };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain, rpcUrl);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, error },\n });\n }\n\n return {\n address,\n ...prepareNetworkSwitch({ toolbox, chain, provider }),\n };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.ONEKEY },\n });\n }\n}\n\nexport const onekeyWallet = createWallet({\n name: \"connectOnekeyWallet\",\n walletType: WalletOption.ONEKEY,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n ],\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { wallet: WalletOption.ONEKEY },\n });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, chain, address, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
5
+ "import {\n Chain,\n type NetworkParams,\n SwapKitError,\n WalletOption,\n addEVMWalletNetwork,\n filterSupportedChains,\n prepareNetworkSwitch,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type {\n BitcoinProvider,\n GetAddressOptions,\n GetAddressResponse,\n SignTransactionOptions,\n} from \"sats-connect\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new SwapKitError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n payload: {\n purposes: [AddressPurpose.Payment],\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n payload: {\n message: \"Sign transaction\",\n network: {\n type: BitcoinNetworkType.Mainnet,\n },\n psbtBase64: psbt.toBase64(),\n broadcast: false,\n inputsToSign: [\n {\n address,\n signingIndexes: psbt.txInputs.map((_: any, index: number) => index),\n },\n ],\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new SwapKitError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = {\n signTransaction,\n getAddress: () => Promise.resolve(address),\n };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Aurora:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Gnosis:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, error },\n });\n }\n\n return {\n address,\n ...prepareNetworkSwitch({ toolbox, chain, provider }),\n };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.ONEKEY },\n });\n }\n}\n\nexport const onekeyWallet = createWallet({\n name: \"connectOnekeyWallet\",\n walletType: WalletOption.ONEKEY,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Aurora,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Gnosis,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n ],\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { wallet: WalletOption.ONEKEY },\n });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, chain, address, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
6
6
  ],
7
- "mappings": "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",
8
- "debugId": "217089A86AB8EC4564756E2164756E21",
7
+ "mappings": "mDAAA,gBACE,kBAEA,kBACA,yBACA,2BACA,0BACA,yBAEF,uBAAS,8BAAc,6BACvB,eAAS,sBAQT,eAAe,CAA4B,CAAC,EAAc,CACxD,OAAQ,QACD,EAAM,QAAS,CAClB,IAAK,OAAO,SAAS,IACnB,MAAM,IAAI,EAAa,CAAE,SAAU,0BAA2B,KAAM,CAAE,OAAM,CAAE,CAAC,EAGjF,IAAQ,kBAAmB,KAAa,oCAEtC,gBAAiB,EACjB,aACA,iBACA,sBACE,KAAa,wBAEb,EAAU,GAER,EAAc,IAAM,IAAI,QAAyB,CAAC,IAAQ,EAAI,OAAO,SAAS,GAAG,CAAC,EAElF,EAAuC,CAC3C,cACA,QAAS,CACP,SAAU,CAAC,EAAe,OAAO,EACjC,QAAS,6CACT,QAAS,CAAE,KAAM,EAAmB,OAAQ,CAC9C,EACA,SAAU,CAAC,IAAiC,CAC1C,GAAI,EAAS,UAAU,IAAI,QACzB,EAAU,EAAS,UAAU,GAAG,SAGpC,SAAU,IAAM,CACd,MAAM,IAAI,EAAa,oCAAoC,EAE/D,EAEA,MAAM,EAAW,CAAiB,EAElC,eAAe,CAAe,CAAC,EAAY,CACzC,IAAI,EACE,EAA0C,CAC9C,cACA,QAAS,CACP,QAAS,mBACT,QAAS,CACP,KAAM,EAAmB,OAC3B,EACA,WAAY,EAAK,SAAS,EAC1B,UAAW,GACX,aAAc,CACZ,CACE,UACA,eAAgB,EAAK,SAAS,IAAI,CAAC,EAAQ,IAAkB,CAAK,CACpE,CACF,CACF,EACA,SAAU,CAAC,IAAa,CACtB,EAAa,EAAK,WAAW,EAAS,UAAU,GAElD,SAAU,IAAM,CACd,MAAM,IAAI,EAAa,oCAAoC,EAE/D,EAGA,GADA,MAAM,EAAoB,CAAe,GACpC,EAAY,MAAM,IAAI,EAAa,sCAAsC,EAC9E,OAAO,EAUT,MAAO,IAFS,MAAM,EAAe,EAAO,CAAE,OAL/B,CACb,kBACA,WAAY,IAAM,QAAQ,QAAQ,CAAO,CAC3C,CAEqD,CAAC,EAEjC,SAAQ,CAC/B,MAEK,EAAM,OAAQ,CACjB,IAAK,OAAO,SAAS,IACnB,MAAM,IAAI,EAAa,CACrB,SAAU,0BACV,KAAM,CAAE,OAAM,CAChB,CAAC,EAGH,IAAQ,oBAAqB,KAAa,qCAEpC,EAAS,OAAO,QAAQ,IACxB,EAAU,MAAM,EAAO,WAAW,EAGxC,MAAO,IAFS,EAAiB,CAAE,QAAO,CAAC,EAEtB,SAAQ,CAC/B,MAEK,EAAM,cACN,EAAM,YACN,EAAM,eACN,EAAM,UACN,EAAM,uBACN,EAAM,cACN,EAAM,YACN,EAAM,cACN,EAAM,QAAS,CAClB,IAAQ,cAAa,iBAAkB,KAAa,kCACpD,IAAK,OAAO,SAAS,SACnB,MAAM,IAAI,EAAa,CACrB,SAAU,0BACV,KAAM,CAAE,OAAM,CAChB,CAAC,EAGH,IAAQ,mBAAoB,KAAa,kBACnC,EAAW,IAAI,EAAgB,OAAO,QAAQ,SAAU,KAAK,EAEnE,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAC7C,IAAM,EAAkB,MAAM,EAAY,CAAK,EACzC,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAO,WAAW,EAElC,EAAU,MAAM,EAAc,EAAO,CAAE,SAAU,EAAiB,QAAO,CAAC,EAChF,GAAI,CACF,GAAI,IAAU,EAAM,SAAU,CAC5B,IAAM,EAAgB,EAAQ,iBAAiB,EAE/C,MAAM,EAAoB,EAAU,CAAa,GAEnD,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,CACrB,SAAU,yCACV,KAAM,CAAE,QAAO,OAAM,CACvB,CAAC,EAGH,MAAO,CACL,aACG,EAAqB,CAAE,UAAS,QAAO,UAAS,CAAC,CACtD,CACF,SAGE,MAAM,IAAI,EAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,EAAa,MAAO,CAC7C,CAAC,GAIA,IAAM,EAAe,EAAa,CACvC,KAAM,sBACN,WAAY,EAAa,OACzB,gBAAiB,CACf,EAAM,SACN,EAAM,OACN,EAAM,UACN,EAAM,KACN,EAAM,kBACN,EAAM,QACN,EAAM,SACN,EAAM,OACN,EAAM,SACN,EAAM,QACN,EAAM,MACR,EACA,QAAS,EAAG,WAAU,aAAY,qBAChC,eAAe,CAAmB,CAAC,EAAiB,CAClD,IAAK,OAAO,QACV,MAAM,IAAI,EAAa,CACrB,SAAU,0BACV,KAAM,CAAE,OAAQ,EAAa,MAAO,CACtC,CAAC,EAGH,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAYpF,OAVA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAgB,MAAM,EAA6B,CAAK,EAExD,EAAW,MAAM,EAAc,WAAW,GAAM,IAEtD,EAAS,IAAK,EAAe,QAAO,UAAS,YAAW,CAAC,EAC1D,CACH,EAEO,GAEb,CAAC,EAEY,EAAiC,EAAyB,CAAY",
8
+ "debugId": "F734C079BA9BC19064756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
- var S={};F(S,{waitForTronLink:()=>G,verifyNetwork:()=>Q,tronlinkWallet:()=>V,setupEventListeners:()=>T,getWalletForChain:()=>J,getExpectedTronNetwork:()=>Z,TronLinkResponseCode:()=>H,TRONLINK_SUPPORTED_CHAINS:()=>O});module.exports=M(S);var _=require("@swapkit/helpers"),B=require("@swapkit/wallet-core");var b=require("@swapkit/helpers"),z=require("@swapkit/toolboxes/tron");var H;((D)=>{D[D.SUCCESS=200]="SUCCESS";D[D.LOCKED=4000]="LOCKED";D[D.REJECTED=4001]="REJECTED";D[D.UNAUTHORIZED=4100]="UNAUTHORIZED";D[D.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD";D[D.DISCONNECTED=4900]="DISCONNECTED";D[D.CHAIN_DISCONNECTED=4901]="CHAIN_DISCONNECTED"})(H||={});async function G(g=3000){return new Promise((U,m)=>{let f=!1,P=()=>{if(f)return;if(f=!0,window.removeEventListener("tronlink#initialized",P),q)clearTimeout(q);if(window.tronLink)U(window.tronLink);else m(new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK}))};if(window.tronLink){U(window.tronLink);return}window.addEventListener("tronlink#initialized",P,{once:!0});let q=setTimeout(P,g)})}async function J(g,U){if(g!==b.Chain.Tron)throw new b.SwapKitError("wallet_chain_not_supported",{wallet:b.WalletOption.TRONLINK,chain:g});let m=await G();if(!m.ready)throw new b.SwapKitError("wallet_locked",{wallet:b.WalletOption.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});try{let I=await m.request({method:"tron_requestAccounts"});if(I.code!==200)throw new Error(`TronLink error: ${I.message}`)}catch(I){let D=I;if(D.code===4001)throw new b.SwapKitError("wallet_connection_rejected_by_user");if(D.code===4100)throw new b.SwapKitError("wallet_connection_rejected_by_user",{message:"Unauthorized: Please authorize the connection in TronLink"});throw new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK,message:D.message||"Failed to connect to TronLink"})}let f=m.tronWeb.defaultAddress?.base58;if(!f)throw new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK,message:"No account found in TronLink"});if(U)Q(U);return{...await z.createTronToolbox({signer:{getAddress:async()=>f,signTransaction:async(I)=>{return await m.tronWeb.trx.sign(I)}}}),address:f}}function T(g,U){let m=(f)=>{if(f.data?.message?.action==="setAccount"){let P=f.data.message.data.address;if(g)g(P);else window.location.reload()}if(f.data?.message?.action==="setNode"){let P=f.data.message.data.node;if(U)U(P.fullNode);else window.location.reload()}};return window.addEventListener("message",m),()=>window.removeEventListener("message",m)}function Q(g){let U=window.tronLink;if(!U)throw new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK});let m=U.tronWeb.fullNode?.host;if(m&&!m.includes(g))throw new b.SwapKitError("wallet_failed_to_add_or_switch_network",{wallet:b.WalletOption.TRONLINK,message:`Wrong network. Please switch to ${g} in TronLink.`,currentNetwork:m,expectedNetwork:g})}function Z(g=!1){return g?"shasta":"api.trongrid.io"}var V=B.createWallet({name:"connectTronLink",walletType:_.WalletOption.TRONLINK,supportedChains:[_.Chain.Tron],connect:({addChain:g,supportedChains:U,walletType:m})=>async function f(P){if(_.filterSupportedChains({chains:P,supportedChains:U,walletType:m}).length===0)throw new Error("TronLink wallet only supports Tron chain");let I=Z(!1),D=await J(_.Chain.Tron,I),X=D.address,Y=T((E)=>{if(E!==X)window.location.reload()},(E)=>{if(!E.includes(I))window.location.reload()}),$=()=>{Y()};return g({...D,chain:_.Chain.Tron,balance:[],disconnect:$,walletType:m}),!0}}),O=B.getWalletSupportedChains(V);
1
+ var E={};j(E,{waitForTronLink:()=>q,verifyNetwork:()=>Y,tronlinkWallet:()=>$,setupEventListeners:()=>G,isTronLinkLocked:()=>X,getWalletForChain:()=>z,getExpectedTronNetwork:()=>Q,TronLinkResponseCode:()=>Z,TRONLINK_SUPPORTED_CHAINS:()=>y});module.exports=A(E);var I=require("@swapkit/helpers"),B=require("@swapkit/wallet-core");var b=require("@swapkit/helpers"),V=require("@swapkit/toolboxes/tron");var Z;((g)=>{g[g.SUCCESS=200]="SUCCESS";g[g.LOCKED=4000]="LOCKED";g[g.REJECTED=4001]="REJECTED";g[g.UNAUTHORIZED=4100]="UNAUTHORIZED";g[g.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD";g[g.DISCONNECTED=4900]="DISCONNECTED";g[g.CHAIN_DISCONNECTED=4901]="CHAIN_DISCONNECTED"})(Z||={});async function q(D=3000){return new Promise((m,U)=>{let P=!1,f=()=>{if(P)return;if(P=!0,window.removeEventListener("tronlink#initialized",f),_)clearTimeout(_);if(window.tronLink)m(window.tronLink);else U(new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK}))};if(window.tronLink){m(window.tronLink);return}window.addEventListener("tronlink#initialized",f,{once:!0});let _=setTimeout(f,D)})}async function X(){try{let D=await q(1000),m=Boolean(D.tronWeb?.defaultAddress?.base58),U=D.ready===!1,P=Boolean(D.tronWeb&&typeof D.tronWeb.trx==="object"&&typeof D.tronWeb.trx.sign==="function");return!m&&(U||!P)}catch{return!1}}function S(D){let m=D;if(m.code===4000||m.code===4000)throw new b.SwapKitError("wallet_locked",{wallet:b.WalletOption.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});if(m.code===4001||m.code===4001)throw new b.SwapKitError("wallet_connection_rejected_by_user");if(m.code===4100||m.code===4100)throw new b.SwapKitError("wallet_connection_rejected_by_user",{message:"Unauthorized: Please authorize the connection in TronLink"});throw new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK,message:m.message||"Failed to connect to TronLink"})}async function x(D){try{let m=await D.request({method:"tron_requestAccounts"});if(m.code===4000)throw new b.SwapKitError("wallet_locked",{wallet:b.WalletOption.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});if(m.code!==200)throw new Error(`TronLink error: ${m.message}`)}catch(m){S(m)}}async function z(D,m){if(D!==b.Chain.Tron)throw new b.SwapKitError("wallet_chain_not_supported",{wallet:b.WalletOption.TRONLINK,chain:D});let U=await q(),P=await X();!P&&await x(U);let f=U.tronWeb?.defaultAddress?.base58;if(!f){if(P)throw new b.SwapKitError("wallet_locked",{wallet:b.WalletOption.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});throw new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK,message:"No account found in TronLink"})}if(m)Y(m);return{...await V.createTronToolbox({signer:{getAddress:async()=>f,signTransaction:async(g)=>{return await U.tronWeb.trx.sign(g)}}}),address:f}}function G(D,m){let U=(P)=>{if(P.data?.message?.action==="setAccount"){let f=P.data.message.data.address;if(D)D(f);else window.location.reload()}if(P.data?.message?.action==="setNode"){let f=P.data.message.data.node;if(m)m(f.fullNode);else window.location.reload()}};return window.addEventListener("message",U),()=>window.removeEventListener("message",U)}function Y(D){let m=window.tronLink;if(!m)throw new b.SwapKitError("wallet_provider_not_found",{wallet:b.WalletOption.TRONLINK});let U=m.tronWeb.fullNode?.host;if(U&&!U.includes(D))throw new b.SwapKitError("wallet_failed_to_add_or_switch_network",{wallet:b.WalletOption.TRONLINK,message:`Wrong network. Please switch to ${D} in TronLink.`,currentNetwork:U,expectedNetwork:D})}function Q(D=!1){return D?"shasta":"api.trongrid.io"}var $=B.createWallet({name:"connectTronLink",walletType:I.WalletOption.TRONLINK,supportedChains:[I.Chain.Tron],connect:({addChain:D,supportedChains:m,walletType:U})=>async function P(f){if(I.filterSupportedChains({chains:f,supportedChains:m,walletType:U}).length===0)throw new Error("TronLink wallet only supports Tron chain");let H=Q(!1),g=await z(I.Chain.Tron,H),M=g.address,F=G((J)=>{if(J!==M)window.location.reload()},(J)=>{if(!J.includes(H))window.location.reload()}),O=()=>{F()};return D({...g,chain:I.Chain.Tron,balance:[],disconnect:O,walletType:U}),!0}}),y=B.getWalletSupportedChains($);
2
2
 
3
- //# debugId=0A544539AB0FF75664756E2164756E21
3
+ //# debugId=88C899F555130C6B64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -3,10 +3,10 @@
3
3
  "sources": ["../src/tronlink/index.ts", "../src/tronlink/helpers.ts", "../src/tronlink/types.ts"],
4
4
  "sourcesContent": [
5
5
  "import { Chain, WalletOption, filterSupportedChains } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { getExpectedTronNetwork, getWalletForChain, setupEventListeners } from \"./helpers.js\";\n\nexport const tronlinkWallet = createWallet({\n name: \"connectTronLink\",\n walletType: WalletOption.TRONLINK,\n supportedChains: [Chain.Tron],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTronLink(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new Error(\"TronLink wallet only supports Tron chain\");\n }\n\n const expectedNetwork = getExpectedTronNetwork(false);\n\n const walletMethods = await getWalletForChain(Chain.Tron, expectedNetwork);\n\n // Store original address for comparison in event listeners\n const currentAddress = walletMethods.address;\n\n // Setup event listeners for account/network changes\n const cleanup = setupEventListeners(\n (newAddress) => {\n if (newAddress !== currentAddress) {\n // Handle account change - reload to refresh connection\n window.location.reload();\n }\n },\n (newNetwork) => {\n // Handle network change - reload to refresh connection\n if (!newNetwork.includes(expectedNetwork)) {\n window.location.reload();\n }\n },\n );\n\n // Create disconnect function that cleans up event listeners\n const disconnect = () => {\n cleanup();\n };\n\n addChain({\n ...walletMethods,\n chain: Chain.Tron,\n balance: [],\n disconnect,\n walletType,\n });\n\n return true;\n },\n});\n\nexport const TRONLINK_SUPPORTED_CHAINS = getWalletSupportedChains(tronlinkWallet);\n\nexport * from \"./types.js\";\nexport * from \"./helpers.js\";\n",
6
- "import { Chain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { type TronSigner, type TronTransaction, createTronToolbox } from \"@swapkit/toolboxes/tron\";\nimport type { TronLinkError, TronLinkWindow } from \"./types.js\";\nimport { TronLinkResponseCode } from \"./types.js\";\n\nexport async function waitForTronLink(timeout = 3000): Promise<TronLinkWindow> {\n return new Promise((resolve, reject) => {\n let handled = false;\n\n const handleProvider = () => {\n if (handled) return;\n handled = true;\n window.removeEventListener(\"tronlink#initialized\", handleProvider);\n if (timeoutId) clearTimeout(timeoutId);\n\n if (window.tronLink) {\n resolve(window.tronLink);\n } else {\n reject(\n new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n }),\n );\n }\n };\n\n // Check if already available\n if (window.tronLink) {\n resolve(window.tronLink);\n return;\n }\n\n // Listen for the initialization event\n window.addEventListener(\"tronlink#initialized\", handleProvider, { once: true });\n\n // Fallback timeout\n const timeoutId = setTimeout(handleProvider, timeout);\n });\n}\n\nexport async function getWalletForChain(chain: Chain, expectedNetwork?: string) {\n if (chain !== Chain.Tron) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n wallet: WalletOption.TRONLINK,\n chain,\n });\n }\n\n const tronLink = await waitForTronLink();\n\n if (!tronLink.ready) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n try {\n // Request account access\n const response = await tronLink.request({ method: \"tron_requestAccounts\" });\n\n if (response.code !== TronLinkResponseCode.SUCCESS) {\n throw new Error(`TronLink error: ${response.message}`);\n }\n } catch (error: unknown) {\n const tronError = error as TronLinkError;\n\n // Handle specific error codes\n if (tronError.code === TronLinkResponseCode.REJECTED) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n if (tronError.code === TronLinkResponseCode.UNAUTHORIZED) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", {\n message: \"Unauthorized: Please authorize the connection in TronLink\",\n });\n }\n\n // Generic connection error\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: tronError.message || \"Failed to connect to TronLink\",\n });\n }\n\n // Verify connection\n const address = tronLink.tronWeb.defaultAddress?.base58;\n if (!address) {\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: \"No account found in TronLink\",\n });\n }\n\n // Verify network if required\n if (expectedNetwork) {\n verifyNetwork(expectedNetwork);\n }\n\n // Create signer object\n const signer: TronSigner = {\n getAddress: async () => address,\n signTransaction: async (transaction: TronTransaction) => {\n return await tronLink.tronWeb.trx.sign(transaction);\n },\n };\n\n // Create toolbox with signer\n const toolbox = await createTronToolbox({\n signer,\n });\n\n // Return wallet methods\n return { ...toolbox, address };\n}\n\nexport function setupEventListeners(\n onAccountChange?: (address: string) => void,\n onNetworkChange?: (network: string) => void,\n): () => void {\n const messageHandler = (event: MessageEvent) => {\n if (event.data?.message?.action === \"setAccount\") {\n const newAddress = event.data.message.data.address;\n if (onAccountChange) {\n onAccountChange(newAddress);\n } else {\n // Default behavior: reload the page\n window.location.reload();\n }\n }\n\n if (event.data?.message?.action === \"setNode\") {\n const node = event.data.message.data.node;\n if (onNetworkChange) {\n onNetworkChange(node.fullNode);\n } else {\n // Default behavior: reload the page on network change\n window.location.reload();\n }\n }\n };\n\n window.addEventListener(\"message\", messageHandler);\n\n // Return cleanup function\n return () => window.removeEventListener(\"message\", messageHandler);\n}\n\nexport function verifyNetwork(expectedNetwork: string) {\n const tronLink = window.tronLink;\n if (!tronLink) {\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n });\n }\n\n const currentNode = tronLink.tronWeb.fullNode?.host;\n if (currentNode && !currentNode.includes(expectedNetwork)) {\n throw new SwapKitError(\"wallet_failed_to_add_or_switch_network\", {\n wallet: WalletOption.TRONLINK,\n message: `Wrong network. Please switch to ${expectedNetwork} in TronLink.`,\n currentNetwork: currentNode,\n expectedNetwork,\n });\n }\n}\n\nexport function getExpectedTronNetwork(testnet = false): string {\n return testnet ? \"shasta\" : \"api.trongrid.io\";\n}\n",
6
+ "import { Chain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { type TronSigner, type TronTransaction, createTronToolbox } from \"@swapkit/toolboxes/tron\";\nimport type { TronLinkError, TronLinkWindow } from \"./types.js\";\nimport { TronLinkResponseCode } from \"./types.js\";\n\nexport async function waitForTronLink(timeout = 3000): Promise<TronLinkWindow> {\n return new Promise((resolve, reject) => {\n let handled = false;\n\n const handleProvider = () => {\n if (handled) return;\n handled = true;\n window.removeEventListener(\"tronlink#initialized\", handleProvider);\n if (timeoutId) clearTimeout(timeoutId);\n\n if (window.tronLink) {\n resolve(window.tronLink);\n } else {\n reject(\n new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n }),\n );\n }\n };\n\n // Check if already available\n if (window.tronLink) {\n resolve(window.tronLink);\n return;\n }\n\n // Listen for the initialization event\n window.addEventListener(\"tronlink#initialized\", handleProvider, { once: true });\n\n // Fallback timeout\n const timeoutId = setTimeout(handleProvider, timeout);\n });\n}\n\n/**\n * Helper function to check if TronLink wallet is locked\n * Returns true if wallet is locked, false if unlocked\n */\nexport async function isTronLinkLocked(): Promise<boolean> {\n try {\n const tronLink = await waitForTronLink(1000); // Shorter timeout for lock check\n\n // Check multiple indicators for locked state:\n // 1. No default address is the most reliable indicator\n const hasDefaultAddress = Boolean(tronLink.tronWeb?.defaultAddress?.base58);\n\n // 2. ready property explicitly false (not undefined)\n // Note: In some versions, ready might be undefined when unlocked, so only check for explicit false\n const isReadyFalse = tronLink.ready === false;\n\n // 3. tronWeb object completeness check\n const hasTronWeb = Boolean(\n tronLink.tronWeb &&\n typeof tronLink.tronWeb.trx === \"object\" &&\n typeof tronLink.tronWeb.trx.sign === \"function\",\n );\n\n // Wallet is locked if:\n // - No default address AND (ready is false OR tronWeb is incomplete)\n // - This avoids false positives when the wallet is just initializing\n return !hasDefaultAddress && (isReadyFalse || !hasTronWeb);\n } catch {\n // If we can't even get TronLink, it's not available (not necessarily locked)\n return false;\n }\n}\n\n/**\n * Helper function to handle TronLink error responses\n */\nfunction handleTronLinkError(error: TronLinkError | Error): never {\n const tronError = error as TronLinkError;\n\n // Check if the error code indicates locked wallet\n if (tronError.code === TronLinkResponseCode.LOCKED || tronError.code === 4000) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n // Handle rejection\n if (tronError.code === TronLinkResponseCode.REJECTED || tronError.code === 4001) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n // Handle unauthorized\n if (tronError.code === TronLinkResponseCode.UNAUTHORIZED || tronError.code === 4100) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", {\n message: \"Unauthorized: Please authorize the connection in TronLink\",\n });\n }\n\n // Generic connection error\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: tronError.message || \"Failed to connect to TronLink\",\n });\n}\n\n/**\n * Helper function to request TronLink accounts\n */\nasync function requestTronLinkAccounts(tronLink: TronLinkWindow): Promise<void> {\n try {\n const response = await tronLink.request({ method: \"tron_requestAccounts\" });\n\n // Check response code for locked state\n if (response.code === TronLinkResponseCode.LOCKED) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n if (response.code !== TronLinkResponseCode.SUCCESS) {\n throw new Error(`TronLink error: ${response.message}`);\n }\n } catch (error: unknown) {\n handleTronLinkError(error as TronLinkError);\n }\n}\n\nexport async function getWalletForChain(chain: Chain, expectedNetwork?: string) {\n if (chain !== Chain.Tron) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n wallet: WalletOption.TRONLINK,\n chain,\n });\n }\n\n const tronLink = await waitForTronLink();\n\n // Check if wallet is potentially locked\n const isLocked = await isTronLinkLocked();\n\n // Always request accounts - this will trigger unlock prompt if needed\n !isLocked && (await requestTronLinkAccounts(tronLink));\n\n // After successful account request, verify connection\n const address = tronLink.tronWeb?.defaultAddress?.base58;\n\n if (!address) {\n // If still no address after successful request, wallet might be locked\n if (isLocked) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: \"No account found in TronLink\",\n });\n }\n\n // Verify network if required\n if (expectedNetwork) {\n verifyNetwork(expectedNetwork);\n }\n\n // Create signer object\n const signer: TronSigner = {\n getAddress: async () => address,\n signTransaction: async (transaction: TronTransaction) => {\n return await tronLink.tronWeb.trx.sign(transaction);\n },\n };\n\n // Create toolbox with signer\n const toolbox = await createTronToolbox({\n signer,\n });\n\n // Return wallet methods\n return { ...toolbox, address };\n}\n\nexport function setupEventListeners(\n onAccountChange?: (address: string) => void,\n onNetworkChange?: (network: string) => void,\n): () => void {\n const messageHandler = (event: MessageEvent) => {\n if (event.data?.message?.action === \"setAccount\") {\n const newAddress = event.data.message.data.address;\n if (onAccountChange) {\n onAccountChange(newAddress);\n } else {\n // Default behavior: reload the page\n window.location.reload();\n }\n }\n\n if (event.data?.message?.action === \"setNode\") {\n const node = event.data.message.data.node;\n if (onNetworkChange) {\n onNetworkChange(node.fullNode);\n } else {\n // Default behavior: reload the page on network change\n window.location.reload();\n }\n }\n };\n\n window.addEventListener(\"message\", messageHandler);\n\n // Return cleanup function\n return () => window.removeEventListener(\"message\", messageHandler);\n}\n\nexport function verifyNetwork(expectedNetwork: string) {\n const tronLink = window.tronLink;\n if (!tronLink) {\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n });\n }\n\n const currentNode = tronLink.tronWeb.fullNode?.host;\n if (currentNode && !currentNode.includes(expectedNetwork)) {\n throw new SwapKitError(\"wallet_failed_to_add_or_switch_network\", {\n wallet: WalletOption.TRONLINK,\n message: `Wrong network. Please switch to ${expectedNetwork} in TronLink.`,\n currentNetwork: currentNode,\n expectedNetwork,\n });\n }\n}\n\nexport function getExpectedTronNetwork(testnet = false): string {\n return testnet ? \"shasta\" : \"api.trongrid.io\";\n}\n",
7
7
  "import type { TronSignedTransaction, TronTransaction } from \"@swapkit/toolboxes/tron\";\n\ndeclare global {\n interface Window {\n tronLink?: TronLinkWindow;\n tronWeb?: TronLinkWindow[\"tronWeb\"];\n }\n}\n\nexport interface TronLinkWindow {\n ready: boolean;\n request: (args: { method: string; params?: unknown }) => Promise<TronLinkResponse>;\n tronWeb: {\n defaultAddress: {\n base58: string;\n hex: string;\n };\n fullNode?: {\n host: string;\n };\n trx: {\n sign: (transaction: TronTransaction) => Promise<TronSignedTransaction>;\n sendRawTransaction: (signedTx: TronSignedTransaction) => Promise<string>;\n getBalance: (address: string) => Promise<number>;\n getAccountResources: (address: string) => Promise<unknown>;\n };\n };\n sunWeb?: unknown; // For sidechain support\n}\n\nexport enum TronLinkResponseCode {\n SUCCESS = 200,\n LOCKED = 4000,\n REJECTED = 4001,\n UNAUTHORIZED = 4100,\n UNSUPPORTED_METHOD = 4200,\n DISCONNECTED = 4900,\n CHAIN_DISCONNECTED = 4901,\n}\n\nexport interface TronLinkResponse {\n code: TronLinkResponseCode;\n message: string;\n}\n\nexport interface TronLinkEvents {\n setAccount: {\n address: string;\n };\n setNode: {\n node: {\n chain: string;\n fullNode: string;\n };\n };\n}\n\nexport interface TronLinkError extends Error {\n code: number;\n data?: unknown;\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "0A544539AB0FF75664756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "88C899F555130C6B64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,4 +1,4 @@
1
- import"../../chunk-yqaz2d25.js";import{Chain as E,WalletOption as M,filterSupportedChains as F}from"@swapkit/helpers";import{createWallet as O,getWalletSupportedChains as S}from"@swapkit/wallet-core";import{Chain as V,SwapKitError as I,WalletOption as _}from"@swapkit/helpers";import{createTronToolbox as X}from"@swapkit/toolboxes/tron";var H;((D)=>{D[D.SUCCESS=200]="SUCCESS";D[D.LOCKED=4000]="LOCKED";D[D.REJECTED=4001]="REJECTED";D[D.UNAUTHORIZED=4100]="UNAUTHORIZED";D[D.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD";D[D.DISCONNECTED=4900]="DISCONNECTED";D[D.CHAIN_DISCONNECTED=4901]="CHAIN_DISCONNECTED"})(H||={});async function Y(m=3000){return new Promise((g,b)=>{let U=!1,f=()=>{if(U)return;if(U=!0,window.removeEventListener("tronlink#initialized",f),q)clearTimeout(q);if(window.tronLink)g(window.tronLink);else b(new I("wallet_provider_not_found",{wallet:_.TRONLINK}))};if(window.tronLink){g(window.tronLink);return}window.addEventListener("tronlink#initialized",f,{once:!0});let q=setTimeout(f,m)})}async function J(m,g){if(m!==V.Tron)throw new I("wallet_chain_not_supported",{wallet:_.TRONLINK,chain:m});let b=await Y();if(!b.ready)throw new I("wallet_locked",{wallet:_.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});try{let P=await b.request({method:"tron_requestAccounts"});if(P.code!==200)throw new Error(`TronLink error: ${P.message}`)}catch(P){let D=P;if(D.code===4001)throw new I("wallet_connection_rejected_by_user");if(D.code===4100)throw new I("wallet_connection_rejected_by_user",{message:"Unauthorized: Please authorize the connection in TronLink"});throw new I("wallet_provider_not_found",{wallet:_.TRONLINK,message:D.message||"Failed to connect to TronLink"})}let U=b.tronWeb.defaultAddress?.base58;if(!U)throw new I("wallet_provider_not_found",{wallet:_.TRONLINK,message:"No account found in TronLink"});if(g)$(g);return{...await X({signer:{getAddress:async()=>U,signTransaction:async(P)=>{return await b.tronWeb.trx.sign(P)}}}),address:U}}function T(m,g){let b=(U)=>{if(U.data?.message?.action==="setAccount"){let f=U.data.message.data.address;if(m)m(f);else window.location.reload()}if(U.data?.message?.action==="setNode"){let f=U.data.message.data.node;if(g)g(f.fullNode);else window.location.reload()}};return window.addEventListener("message",b),()=>window.removeEventListener("message",b)}function $(m){let g=window.tronLink;if(!g)throw new I("wallet_provider_not_found",{wallet:_.TRONLINK});let b=g.tronWeb.fullNode?.host;if(b&&!b.includes(m))throw new I("wallet_failed_to_add_or_switch_network",{wallet:_.TRONLINK,message:`Wrong network. Please switch to ${m} in TronLink.`,currentNetwork:b,expectedNetwork:m})}function Z(m=!1){return m?"shasta":"api.trongrid.io"}var A=O({name:"connectTronLink",walletType:M.TRONLINK,supportedChains:[E.Tron],connect:({addChain:m,supportedChains:g,walletType:b})=>async function U(f){if(F({chains:f,supportedChains:g,walletType:b}).length===0)throw new Error("TronLink wallet only supports Tron chain");let P=Z(!1),D=await J(E.Tron,P),z=D.address,G=T((B)=>{if(B!==z)window.location.reload()},(B)=>{if(!B.includes(P))window.location.reload()}),Q=()=>{G()};return m({...D,chain:E.Tron,balance:[],disconnect:Q,walletType:b}),!0}}),L=S(A);export{Y as waitForTronLink,$ as verifyNetwork,A as tronlinkWallet,T as setupEventListeners,J as getWalletForChain,Z as getExpectedTronNetwork,H as TronLinkResponseCode,L as TRONLINK_SUPPORTED_CHAINS};
1
+ import"../../chunk-yqaz2d25.js";import{Chain as J,WalletOption as A,filterSupportedChains as j}from"@swapkit/helpers";import{createWallet as y,getWalletSupportedChains as E}from"@swapkit/wallet-core";import{Chain as $,SwapKitError as f,WalletOption as I}from"@swapkit/helpers";import{createTronToolbox as M}from"@swapkit/toolboxes/tron";var Z;((b)=>{b[b.SUCCESS=200]="SUCCESS";b[b.LOCKED=4000]="LOCKED";b[b.REJECTED=4001]="REJECTED";b[b.UNAUTHORIZED=4100]="UNAUTHORIZED";b[b.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD";b[b.DISCONNECTED=4900]="DISCONNECTED";b[b.CHAIN_DISCONNECTED=4901]="CHAIN_DISCONNECTED"})(Z||={});async function q(D=3000){return new Promise((m,g)=>{let U=!1,P=()=>{if(U)return;if(U=!0,window.removeEventListener("tronlink#initialized",P),_)clearTimeout(_);if(window.tronLink)m(window.tronLink);else g(new f("wallet_provider_not_found",{wallet:I.TRONLINK}))};if(window.tronLink){m(window.tronLink);return}window.addEventListener("tronlink#initialized",P,{once:!0});let _=setTimeout(P,D)})}async function F(){try{let D=await q(1000),m=Boolean(D.tronWeb?.defaultAddress?.base58),g=D.ready===!1,U=Boolean(D.tronWeb&&typeof D.tronWeb.trx==="object"&&typeof D.tronWeb.trx.sign==="function");return!m&&(g||!U)}catch{return!1}}function O(D){let m=D;if(m.code===4000||m.code===4000)throw new f("wallet_locked",{wallet:I.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});if(m.code===4001||m.code===4001)throw new f("wallet_connection_rejected_by_user");if(m.code===4100||m.code===4100)throw new f("wallet_connection_rejected_by_user",{message:"Unauthorized: Please authorize the connection in TronLink"});throw new f("wallet_provider_not_found",{wallet:I.TRONLINK,message:m.message||"Failed to connect to TronLink"})}async function S(D){try{let m=await D.request({method:"tron_requestAccounts"});if(m.code===4000)throw new f("wallet_locked",{wallet:I.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});if(m.code!==200)throw new Error(`TronLink error: ${m.message}`)}catch(m){O(m)}}async function z(D,m){if(D!==$.Tron)throw new f("wallet_chain_not_supported",{wallet:I.TRONLINK,chain:D});let g=await q(),U=await F();!U&&await S(g);let P=g.tronWeb?.defaultAddress?.base58;if(!P){if(U)throw new f("wallet_locked",{wallet:I.TRONLINK,message:"TronLink is locked. Please unlock it to continue."});throw new f("wallet_provider_not_found",{wallet:I.TRONLINK,message:"No account found in TronLink"})}if(m)x(m);return{...await M({signer:{getAddress:async()=>P,signTransaction:async(b)=>{return await g.tronWeb.trx.sign(b)}}}),address:P}}function G(D,m){let g=(U)=>{if(U.data?.message?.action==="setAccount"){let P=U.data.message.data.address;if(D)D(P);else window.location.reload()}if(U.data?.message?.action==="setNode"){let P=U.data.message.data.node;if(m)m(P.fullNode);else window.location.reload()}};return window.addEventListener("message",g),()=>window.removeEventListener("message",g)}function x(D){let m=window.tronLink;if(!m)throw new f("wallet_provider_not_found",{wallet:I.TRONLINK});let g=m.tronWeb.fullNode?.host;if(g&&!g.includes(D))throw new f("wallet_failed_to_add_or_switch_network",{wallet:I.TRONLINK,message:`Wrong network. Please switch to ${D} in TronLink.`,currentNetwork:g,expectedNetwork:D})}function Q(D=!1){return D?"shasta":"api.trongrid.io"}var T=y({name:"connectTronLink",walletType:A.TRONLINK,supportedChains:[J.Tron],connect:({addChain:D,supportedChains:m,walletType:g})=>async function U(P){if(j({chains:P,supportedChains:m,walletType:g}).length===0)throw new Error("TronLink wallet only supports Tron chain");let B=Q(!1),b=await z(J.Tron,B),V=b.address,X=G((H)=>{if(H!==V)window.location.reload()},(H)=>{if(!H.includes(B))window.location.reload()}),Y=()=>{X()};return D({...b,chain:J.Tron,balance:[],disconnect:Y,walletType:g}),!0}}),c=E(T);export{q as waitForTronLink,x as verifyNetwork,T as tronlinkWallet,G as setupEventListeners,F as isTronLinkLocked,z as getWalletForChain,Q as getExpectedTronNetwork,Z as TronLinkResponseCode,c as TRONLINK_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=2C5C49ED8892E7FB64756E2164756E21
3
+ //# debugId=5C3A89D675B4109B64756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -3,10 +3,10 @@
3
3
  "sources": ["../src/tronlink/index.ts", "../src/tronlink/helpers.ts", "../src/tronlink/types.ts"],
4
4
  "sourcesContent": [
5
5
  "import { Chain, WalletOption, filterSupportedChains } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { getExpectedTronNetwork, getWalletForChain, setupEventListeners } from \"./helpers.js\";\n\nexport const tronlinkWallet = createWallet({\n name: \"connectTronLink\",\n walletType: WalletOption.TRONLINK,\n supportedChains: [Chain.Tron],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTronLink(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new Error(\"TronLink wallet only supports Tron chain\");\n }\n\n const expectedNetwork = getExpectedTronNetwork(false);\n\n const walletMethods = await getWalletForChain(Chain.Tron, expectedNetwork);\n\n // Store original address for comparison in event listeners\n const currentAddress = walletMethods.address;\n\n // Setup event listeners for account/network changes\n const cleanup = setupEventListeners(\n (newAddress) => {\n if (newAddress !== currentAddress) {\n // Handle account change - reload to refresh connection\n window.location.reload();\n }\n },\n (newNetwork) => {\n // Handle network change - reload to refresh connection\n if (!newNetwork.includes(expectedNetwork)) {\n window.location.reload();\n }\n },\n );\n\n // Create disconnect function that cleans up event listeners\n const disconnect = () => {\n cleanup();\n };\n\n addChain({\n ...walletMethods,\n chain: Chain.Tron,\n balance: [],\n disconnect,\n walletType,\n });\n\n return true;\n },\n});\n\nexport const TRONLINK_SUPPORTED_CHAINS = getWalletSupportedChains(tronlinkWallet);\n\nexport * from \"./types.js\";\nexport * from \"./helpers.js\";\n",
6
- "import { Chain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { type TronSigner, type TronTransaction, createTronToolbox } from \"@swapkit/toolboxes/tron\";\nimport type { TronLinkError, TronLinkWindow } from \"./types.js\";\nimport { TronLinkResponseCode } from \"./types.js\";\n\nexport async function waitForTronLink(timeout = 3000): Promise<TronLinkWindow> {\n return new Promise((resolve, reject) => {\n let handled = false;\n\n const handleProvider = () => {\n if (handled) return;\n handled = true;\n window.removeEventListener(\"tronlink#initialized\", handleProvider);\n if (timeoutId) clearTimeout(timeoutId);\n\n if (window.tronLink) {\n resolve(window.tronLink);\n } else {\n reject(\n new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n }),\n );\n }\n };\n\n // Check if already available\n if (window.tronLink) {\n resolve(window.tronLink);\n return;\n }\n\n // Listen for the initialization event\n window.addEventListener(\"tronlink#initialized\", handleProvider, { once: true });\n\n // Fallback timeout\n const timeoutId = setTimeout(handleProvider, timeout);\n });\n}\n\nexport async function getWalletForChain(chain: Chain, expectedNetwork?: string) {\n if (chain !== Chain.Tron) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n wallet: WalletOption.TRONLINK,\n chain,\n });\n }\n\n const tronLink = await waitForTronLink();\n\n if (!tronLink.ready) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n try {\n // Request account access\n const response = await tronLink.request({ method: \"tron_requestAccounts\" });\n\n if (response.code !== TronLinkResponseCode.SUCCESS) {\n throw new Error(`TronLink error: ${response.message}`);\n }\n } catch (error: unknown) {\n const tronError = error as TronLinkError;\n\n // Handle specific error codes\n if (tronError.code === TronLinkResponseCode.REJECTED) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n if (tronError.code === TronLinkResponseCode.UNAUTHORIZED) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", {\n message: \"Unauthorized: Please authorize the connection in TronLink\",\n });\n }\n\n // Generic connection error\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: tronError.message || \"Failed to connect to TronLink\",\n });\n }\n\n // Verify connection\n const address = tronLink.tronWeb.defaultAddress?.base58;\n if (!address) {\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: \"No account found in TronLink\",\n });\n }\n\n // Verify network if required\n if (expectedNetwork) {\n verifyNetwork(expectedNetwork);\n }\n\n // Create signer object\n const signer: TronSigner = {\n getAddress: async () => address,\n signTransaction: async (transaction: TronTransaction) => {\n return await tronLink.tronWeb.trx.sign(transaction);\n },\n };\n\n // Create toolbox with signer\n const toolbox = await createTronToolbox({\n signer,\n });\n\n // Return wallet methods\n return { ...toolbox, address };\n}\n\nexport function setupEventListeners(\n onAccountChange?: (address: string) => void,\n onNetworkChange?: (network: string) => void,\n): () => void {\n const messageHandler = (event: MessageEvent) => {\n if (event.data?.message?.action === \"setAccount\") {\n const newAddress = event.data.message.data.address;\n if (onAccountChange) {\n onAccountChange(newAddress);\n } else {\n // Default behavior: reload the page\n window.location.reload();\n }\n }\n\n if (event.data?.message?.action === \"setNode\") {\n const node = event.data.message.data.node;\n if (onNetworkChange) {\n onNetworkChange(node.fullNode);\n } else {\n // Default behavior: reload the page on network change\n window.location.reload();\n }\n }\n };\n\n window.addEventListener(\"message\", messageHandler);\n\n // Return cleanup function\n return () => window.removeEventListener(\"message\", messageHandler);\n}\n\nexport function verifyNetwork(expectedNetwork: string) {\n const tronLink = window.tronLink;\n if (!tronLink) {\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n });\n }\n\n const currentNode = tronLink.tronWeb.fullNode?.host;\n if (currentNode && !currentNode.includes(expectedNetwork)) {\n throw new SwapKitError(\"wallet_failed_to_add_or_switch_network\", {\n wallet: WalletOption.TRONLINK,\n message: `Wrong network. Please switch to ${expectedNetwork} in TronLink.`,\n currentNetwork: currentNode,\n expectedNetwork,\n });\n }\n}\n\nexport function getExpectedTronNetwork(testnet = false): string {\n return testnet ? \"shasta\" : \"api.trongrid.io\";\n}\n",
6
+ "import { Chain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { type TronSigner, type TronTransaction, createTronToolbox } from \"@swapkit/toolboxes/tron\";\nimport type { TronLinkError, TronLinkWindow } from \"./types.js\";\nimport { TronLinkResponseCode } from \"./types.js\";\n\nexport async function waitForTronLink(timeout = 3000): Promise<TronLinkWindow> {\n return new Promise((resolve, reject) => {\n let handled = false;\n\n const handleProvider = () => {\n if (handled) return;\n handled = true;\n window.removeEventListener(\"tronlink#initialized\", handleProvider);\n if (timeoutId) clearTimeout(timeoutId);\n\n if (window.tronLink) {\n resolve(window.tronLink);\n } else {\n reject(\n new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n }),\n );\n }\n };\n\n // Check if already available\n if (window.tronLink) {\n resolve(window.tronLink);\n return;\n }\n\n // Listen for the initialization event\n window.addEventListener(\"tronlink#initialized\", handleProvider, { once: true });\n\n // Fallback timeout\n const timeoutId = setTimeout(handleProvider, timeout);\n });\n}\n\n/**\n * Helper function to check if TronLink wallet is locked\n * Returns true if wallet is locked, false if unlocked\n */\nexport async function isTronLinkLocked(): Promise<boolean> {\n try {\n const tronLink = await waitForTronLink(1000); // Shorter timeout for lock check\n\n // Check multiple indicators for locked state:\n // 1. No default address is the most reliable indicator\n const hasDefaultAddress = Boolean(tronLink.tronWeb?.defaultAddress?.base58);\n\n // 2. ready property explicitly false (not undefined)\n // Note: In some versions, ready might be undefined when unlocked, so only check for explicit false\n const isReadyFalse = tronLink.ready === false;\n\n // 3. tronWeb object completeness check\n const hasTronWeb = Boolean(\n tronLink.tronWeb &&\n typeof tronLink.tronWeb.trx === \"object\" &&\n typeof tronLink.tronWeb.trx.sign === \"function\",\n );\n\n // Wallet is locked if:\n // - No default address AND (ready is false OR tronWeb is incomplete)\n // - This avoids false positives when the wallet is just initializing\n return !hasDefaultAddress && (isReadyFalse || !hasTronWeb);\n } catch {\n // If we can't even get TronLink, it's not available (not necessarily locked)\n return false;\n }\n}\n\n/**\n * Helper function to handle TronLink error responses\n */\nfunction handleTronLinkError(error: TronLinkError | Error): never {\n const tronError = error as TronLinkError;\n\n // Check if the error code indicates locked wallet\n if (tronError.code === TronLinkResponseCode.LOCKED || tronError.code === 4000) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n // Handle rejection\n if (tronError.code === TronLinkResponseCode.REJECTED || tronError.code === 4001) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n }\n\n // Handle unauthorized\n if (tronError.code === TronLinkResponseCode.UNAUTHORIZED || tronError.code === 4100) {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", {\n message: \"Unauthorized: Please authorize the connection in TronLink\",\n });\n }\n\n // Generic connection error\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: tronError.message || \"Failed to connect to TronLink\",\n });\n}\n\n/**\n * Helper function to request TronLink accounts\n */\nasync function requestTronLinkAccounts(tronLink: TronLinkWindow): Promise<void> {\n try {\n const response = await tronLink.request({ method: \"tron_requestAccounts\" });\n\n // Check response code for locked state\n if (response.code === TronLinkResponseCode.LOCKED) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n if (response.code !== TronLinkResponseCode.SUCCESS) {\n throw new Error(`TronLink error: ${response.message}`);\n }\n } catch (error: unknown) {\n handleTronLinkError(error as TronLinkError);\n }\n}\n\nexport async function getWalletForChain(chain: Chain, expectedNetwork?: string) {\n if (chain !== Chain.Tron) {\n throw new SwapKitError(\"wallet_chain_not_supported\", {\n wallet: WalletOption.TRONLINK,\n chain,\n });\n }\n\n const tronLink = await waitForTronLink();\n\n // Check if wallet is potentially locked\n const isLocked = await isTronLinkLocked();\n\n // Always request accounts - this will trigger unlock prompt if needed\n !isLocked && (await requestTronLinkAccounts(tronLink));\n\n // After successful account request, verify connection\n const address = tronLink.tronWeb?.defaultAddress?.base58;\n\n if (!address) {\n // If still no address after successful request, wallet might be locked\n if (isLocked) {\n throw new SwapKitError(\"wallet_locked\", {\n wallet: WalletOption.TRONLINK,\n message: \"TronLink is locked. Please unlock it to continue.\",\n });\n }\n\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n message: \"No account found in TronLink\",\n });\n }\n\n // Verify network if required\n if (expectedNetwork) {\n verifyNetwork(expectedNetwork);\n }\n\n // Create signer object\n const signer: TronSigner = {\n getAddress: async () => address,\n signTransaction: async (transaction: TronTransaction) => {\n return await tronLink.tronWeb.trx.sign(transaction);\n },\n };\n\n // Create toolbox with signer\n const toolbox = await createTronToolbox({\n signer,\n });\n\n // Return wallet methods\n return { ...toolbox, address };\n}\n\nexport function setupEventListeners(\n onAccountChange?: (address: string) => void,\n onNetworkChange?: (network: string) => void,\n): () => void {\n const messageHandler = (event: MessageEvent) => {\n if (event.data?.message?.action === \"setAccount\") {\n const newAddress = event.data.message.data.address;\n if (onAccountChange) {\n onAccountChange(newAddress);\n } else {\n // Default behavior: reload the page\n window.location.reload();\n }\n }\n\n if (event.data?.message?.action === \"setNode\") {\n const node = event.data.message.data.node;\n if (onNetworkChange) {\n onNetworkChange(node.fullNode);\n } else {\n // Default behavior: reload the page on network change\n window.location.reload();\n }\n }\n };\n\n window.addEventListener(\"message\", messageHandler);\n\n // Return cleanup function\n return () => window.removeEventListener(\"message\", messageHandler);\n}\n\nexport function verifyNetwork(expectedNetwork: string) {\n const tronLink = window.tronLink;\n if (!tronLink) {\n throw new SwapKitError(\"wallet_provider_not_found\", {\n wallet: WalletOption.TRONLINK,\n });\n }\n\n const currentNode = tronLink.tronWeb.fullNode?.host;\n if (currentNode && !currentNode.includes(expectedNetwork)) {\n throw new SwapKitError(\"wallet_failed_to_add_or_switch_network\", {\n wallet: WalletOption.TRONLINK,\n message: `Wrong network. Please switch to ${expectedNetwork} in TronLink.`,\n currentNetwork: currentNode,\n expectedNetwork,\n });\n }\n}\n\nexport function getExpectedTronNetwork(testnet = false): string {\n return testnet ? \"shasta\" : \"api.trongrid.io\";\n}\n",
7
7
  "import type { TronSignedTransaction, TronTransaction } from \"@swapkit/toolboxes/tron\";\n\ndeclare global {\n interface Window {\n tronLink?: TronLinkWindow;\n tronWeb?: TronLinkWindow[\"tronWeb\"];\n }\n}\n\nexport interface TronLinkWindow {\n ready: boolean;\n request: (args: { method: string; params?: unknown }) => Promise<TronLinkResponse>;\n tronWeb: {\n defaultAddress: {\n base58: string;\n hex: string;\n };\n fullNode?: {\n host: string;\n };\n trx: {\n sign: (transaction: TronTransaction) => Promise<TronSignedTransaction>;\n sendRawTransaction: (signedTx: TronSignedTransaction) => Promise<string>;\n getBalance: (address: string) => Promise<number>;\n getAccountResources: (address: string) => Promise<unknown>;\n };\n };\n sunWeb?: unknown; // For sidechain support\n}\n\nexport enum TronLinkResponseCode {\n SUCCESS = 200,\n LOCKED = 4000,\n REJECTED = 4001,\n UNAUTHORIZED = 4100,\n UNSUPPORTED_METHOD = 4200,\n DISCONNECTED = 4900,\n CHAIN_DISCONNECTED = 4901,\n}\n\nexport interface TronLinkResponse {\n code: TronLinkResponseCode;\n message: string;\n}\n\nexport interface TronLinkEvents {\n setAccount: {\n address: string;\n };\n setNode: {\n node: {\n chain: string;\n fullNode: string;\n };\n };\n}\n\nexport interface TronLinkError extends Error {\n code: number;\n data?: unknown;\n}\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "2C5C49ED8892E7FB64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "5C3A89D675B4109B64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,4 +1,4 @@
1
- var $={};Y($,{xamanWallet:()=>B,XAMAN_SUPPORTED_CHAINS:()=>Z});module.exports=Q($);var y=require("@swapkit/helpers"),H=require("@swapkit/wallet-core"),q=require("xumm");var M=require("@swapkit/helpers");var A=require("@swapkit/helpers"),T=async(f)=>{if(!f)throw new A.SwapKitError("wallet_xaman_not_configured");try{let o=await(await f.user)?.account;if(o)return o;throw new A.SwapKitError("wallet_xaman_auth_failed")}catch(n){throw console.error("Xaman wallet connection failed:",n),new A.SwapKitError("wallet_xaman_connection_failed")}},z=async(f,n)=>{try{if(!(n.destination&&n.amount&&n.from))throw new A.SwapKitError("wallet_xaman_connection_failed");let o=(Number.parseFloat(n.amount)*1e6).toString(),O={TransactionType:"Payment",Destination:n.destination,Amount:o,Account:n.from,...n.destinationTag!==void 0&&{DestinationTag:n.destinationTag},...n.memo&&{Memos:[{Memo:{MemoData:Buffer.from(n.memo,"utf8").toString("hex").toUpperCase()}}]}},W=await f.payload?.createAndSubscribe(O,(g)=>{if("signed"in g.data)return g.data;return});if(!W)throw new A.SwapKitError("wallet_xaman_transaction_failed");let{created:C}=W;if(f.runtime?.xapp)f.xapp?.openSignRequest(C);else if(typeof window!=="undefined"){let g=C.pushed&&C.next?.no_push_msg_received?C.next.no_push_msg_received:C.next?.always;if(g)window.open(g)}let t=await W.resolved;if(!t||typeof t!=="object"||!("signed"in t)||!t.signed)throw new A.SwapKitError("wallet_xaman_transaction_failed");let _=await f.payload?.get(t.payload_uuidv4);if(!_)throw new A.SwapKitError("wallet_xaman_monitoring_failed");let l=_.response?.txid||"",X=_.response?.account||"";if(!l)throw new A.SwapKitError("wallet_xaman_transaction_failed");return{payloadId:C.uuid||"",qrCode:C.refs?.qr_png||"",deepLink:C.next?.always||"",websocketUrl:C.refs?.websocket_status||"",result:{success:!0,transactionId:l,account:X,reason:void 0}}}catch(o){if(console.error("Xaman payment creation and subscription failed:",o),o instanceof A.SwapKitError)throw o;throw new A.SwapKitError("wallet_xaman_transaction_failed")}};async function U({xumm:f,chain:n,address:o,rpcUrl:O}){switch(n){case M.Chain.Ripple:{let{getRippleToolbox:W}=await import("@swapkit/toolboxes/ripple");return{...await W({rpcUrl:O}),address:o,getAddress:()=>o,transfer:async(_)=>{let{recipient:l,assetValue:X,memo:g}=_,N=await z(f,{from:o,destination:l,amount:X.getValue("string"),memo:g});if(!(N.result.success&&N.result.transactionId))throw new M.SwapKitError("wallet_xaman_transaction_failed");return N.result.transactionId},createAndSubscribePayment:z,disconnect:f.logout}}default:throw new M.SwapKitError("wallet_chain_not_supported",{wallet:"Xaman",chain:n})}}var B=H.createWallet({name:"connectXaman",walletType:y.WalletOption.XAMAN,supportedChains:[y.Chain.Ripple],connect:({addChain:f,supportedChains:n,walletType:o})=>async function O(W,C){let t=y.filterSupportedChains({chains:W,supportedChains:n,walletType:o}),{xaman:_}=y.SKConfig.get("apiKeys"),l=C?.apiKey||_;if(!l)throw new y.SwapKitError("wallet_missing_api_key",{wallet:"Xaman"});let X=new q.Xumm(l);return new Promise((g,N)=>{X.on("success",async()=>{try{let P=await T(X),F=t.map(async(h)=>{let G=y.SKConfig.get("rpcUrls")[h],J=await U({xumm:X,chain:h,address:P,rpcUrl:G});f({...J,chain:h,balance:[],walletType:y.WalletOption.XAMAN,address:P,disconnect:X.logout})});await Promise.all(F),g(!0)}catch(P){N(P)}}),X.on("error",(P)=>{N(P)}),X.authorize()})}}),Z=H.getWalletSupportedChains(B);
1
+ var Z={};Q(Z,{xamanWallet:()=>B,XAMAN_SUPPORTED_CHAINS:()=>Y});module.exports=L(Z);var X=require("@swapkit/helpers"),O=require("@swapkit/wallet-core"),q=require("xumm");var P=require("@swapkit/helpers");var A=require("@swapkit/helpers"),T=async(f)=>{if(!f)throw new A.SwapKitError("wallet_xaman_not_configured");try{let o=await(await f.user)?.account;if(o)return o;throw new A.SwapKitError("wallet_xaman_auth_failed")}catch(n){throw console.error("Xaman wallet connection failed:",n),new A.SwapKitError("wallet_xaman_connection_failed")}},h=async(f,n)=>{try{if(!(n.destination&&n.amount&&n.from))throw new A.SwapKitError("wallet_xaman_connection_failed");let o=(Number.parseFloat(n.amount)*1e6).toString(),M={TransactionType:"Payment",Destination:n.destination,Amount:o,Account:n.from,...n.destinationTag!==void 0&&{DestinationTag:n.destinationTag},...n.memo&&{Memos:[{Memo:{MemoData:Buffer.from(n.memo,"utf8").toString("hex").toUpperCase()}}]}},t=await f.payload?.createAndSubscribe(M,(y)=>{if("signed"in y.data)return y.data;return});if(!t)throw new A.SwapKitError("wallet_xaman_transaction_failed");let{created:C}=t;if(f.runtime?.xapp)f.xapp?.openSignRequest(C);else if(typeof window!=="undefined"){let y=C.pushed&&C.next?.no_push_msg_received?C.next.no_push_msg_received:C.next?.always;if(y)window.open(y)}let W=await t.resolved;if(!W||typeof W!=="object"||!("signed"in W)||!W.signed)throw new A.SwapKitError("wallet_xaman_transaction_failed");let _=await f.payload?.get(W.payload_uuidv4);if(!_)throw new A.SwapKitError("wallet_xaman_monitoring_failed");let l=_.response?.txid||"",g=_.response?.account||"";if(!l)throw new A.SwapKitError("wallet_xaman_transaction_failed");return{payloadId:C.uuid||"",qrCode:C.refs?.qr_png||"",deepLink:C.next?.always||"",websocketUrl:C.refs?.websocket_status||"",result:{success:!0,transactionId:l,account:g,reason:void 0}}}catch(o){if(console.error("Xaman payment creation and subscription failed:",o),o instanceof A.SwapKitError)throw o;throw new A.SwapKitError("wallet_xaman_transaction_failed")}};async function U({xumm:f,chain:n,address:o}){switch(n){case P.Chain.Ripple:{let{getRippleToolbox:M}=await import("@swapkit/toolboxes/ripple");return{...await M({}),address:o,getAddress:()=>o,transfer:async(W)=>{let{recipient:_,assetValue:l,memo:g}=W,y=await h(f,{from:o,destination:_,amount:l.getValue("string"),memo:g});if(!(y.result.success&&y.result.transactionId))throw new P.SwapKitError("wallet_xaman_transaction_failed");return y.result.transactionId},createAndSubscribePayment:h,disconnect:f.logout}}default:throw new P.SwapKitError("wallet_chain_not_supported",{wallet:"Xaman",chain:n})}}var B=O.createWallet({name:"connectXaman",walletType:X.WalletOption.XAMAN,supportedChains:[X.Chain.Ripple],connect:({addChain:f,supportedChains:n,walletType:o})=>async function M(t,C){let W=X.filterSupportedChains({chains:t,supportedChains:n,walletType:o}),{xaman:_}=X.SKConfig.get("apiKeys"),l=C?.apiKey||_;if(!l)throw new X.SwapKitError("wallet_missing_api_key",{wallet:"Xaman"});let g=new q.Xumm(l);return new Promise((y,H)=>{g.on("success",async()=>{try{let N=await T(g),F=W.map(async(z)=>{let G=await U({xumm:g,chain:z,address:N});f({...G,chain:z,balance:[],walletType:X.WalletOption.XAMAN,address:N,disconnect:g.logout})});await Promise.all(F),y(!0)}catch(N){H(N)}}),g.on("error",(N)=>{H(N)}),g.authorize()})}}),Y=O.getWalletSupportedChains(B);
2
2
 
3
- //# debugId=AD81BBF097105CAA64756E2164756E21
3
+ //# debugId=398E1F6C97AF0A0B64756E2164756E21
4
4
  //# sourceMappingURL=index.cjs.map
@@ -2,11 +2,11 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/xaman/index.ts", "../src/xaman/helpers.ts", "../src/xaman/walletMethods.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n SKConfig,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Xumm } from \"xumm\";\nimport { getWalletForChain } from \"./helpers\";\nimport type { XamanConfig } from \"./types\";\nimport { connectXamanWallet as connectXamanWalletMethod } from \"./walletMethods\";\n\nexport const xamanWallet = createWallet({\n name: \"connectXaman\",\n walletType: WalletOption.XAMAN,\n supportedChains: [Chain.Ripple],\n connect: ({ addChain, supportedChains: walletSupportedChains, walletType }) =>\n async function connectXamanWallet(chains: Chain[], xamanConfigOverwrite?: XamanConfig) {\n const supportedChains = filterSupportedChains({\n chains,\n supportedChains: walletSupportedChains,\n walletType,\n });\n\n const { xaman: xamanApiKey } = SKConfig.get(\"apiKeys\");\n const apiKey = xamanConfigOverwrite?.apiKey || xamanApiKey;\n\n if (!apiKey) {\n throw new SwapKitError(\"wallet_missing_api_key\", { wallet: \"Xaman\" });\n }\n\n const xumm = new Xumm(apiKey);\n\n return new Promise<boolean>((resolve, reject) => {\n xumm.on(\"success\", async () => {\n try {\n const address = await connectXamanWalletMethod(xumm);\n\n const promises = supportedChains.map(async (chain) => {\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n const walletMethods = await getWalletForChain({\n xumm,\n chain,\n address,\n rpcUrl,\n });\n\n addChain({\n ...walletMethods,\n chain,\n balance: [],\n walletType: WalletOption.XAMAN,\n address,\n disconnect: xumm.logout,\n });\n });\n\n await Promise.all(promises);\n resolve(true);\n } catch (error) {\n reject(error);\n }\n });\n\n xumm.on(\"error\", (error) => {\n reject(error);\n });\n\n xumm.authorize();\n });\n },\n});\n\nexport const XAMAN_SUPPORTED_CHAINS = getWalletSupportedChains(xamanWallet);\nexport type XamanSupportedChain = (typeof XAMAN_SUPPORTED_CHAINS)[number];\n\nexport type { XamanConfig } from \"./types\";\n",
6
- "import { type AssetValue, Chain, SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport { sendXamanTransaction } from \"./walletMethods\";\n\ninterface GetWalletForChainParams {\n chain: Chain;\n address: string;\n rpcUrl?: string;\n xumm: Xumm;\n}\n\nexport async function getWalletForChain({ xumm, chain, address, rpcUrl }: GetWalletForChainParams) {\n switch (chain) {\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n\n // const api = apis?.[chain]; // Unused for now\n const toolbox = await getRippleToolbox({ rpcUrl });\n\n // Override transfer method to use Xaman transaction flow\n const transfer = async (params: {\n assetValue: AssetValue;\n recipient: string;\n memo?: string;\n }) => {\n const { recipient, assetValue, memo } = params;\n\n // Create and subscribe to payment via Xaman\n const paymentResult = await sendXamanTransaction(xumm, {\n from: address,\n destination: recipient,\n amount: assetValue.getValue(\"string\"),\n memo: memo,\n });\n\n // If not successful or no transaction ID, throw error\n if (!(paymentResult.result.success && paymentResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Return the transaction ID string\n return paymentResult.result.transactionId;\n };\n\n return {\n ...toolbox,\n address,\n getAddress: () => address,\n transfer,\n // Expose Xaman-specific methods\n createAndSubscribePayment: sendXamanTransaction,\n disconnect: xumm.logout,\n };\n }\n\n default:\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: \"Xaman\", chain });\n }\n}\n",
5
+ "import {\n Chain,\n SKConfig,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Xumm } from \"xumm\";\nimport { getWalletForChain } from \"./helpers\";\nimport type { XamanConfig } from \"./types\";\nimport { connectXamanWallet as connectXamanWalletMethod } from \"./walletMethods\";\n\nexport const xamanWallet = createWallet({\n name: \"connectXaman\",\n walletType: WalletOption.XAMAN,\n supportedChains: [Chain.Ripple],\n connect: ({ addChain, supportedChains: walletSupportedChains, walletType }) =>\n async function connectXamanWallet(chains: Chain[], xamanConfigOverwrite?: XamanConfig) {\n const supportedChains = filterSupportedChains({\n chains,\n supportedChains: walletSupportedChains,\n walletType,\n });\n\n const { xaman: xamanApiKey } = SKConfig.get(\"apiKeys\");\n const apiKey = xamanConfigOverwrite?.apiKey || xamanApiKey;\n\n if (!apiKey) {\n throw new SwapKitError(\"wallet_missing_api_key\", { wallet: \"Xaman\" });\n }\n\n const xumm = new Xumm(apiKey);\n\n return new Promise<boolean>((resolve, reject) => {\n xumm.on(\"success\", async () => {\n try {\n const address = await connectXamanWalletMethod(xumm);\n\n const promises = supportedChains.map(async (chain) => {\n const walletMethods = await getWalletForChain({\n xumm,\n chain,\n address,\n });\n\n addChain({\n ...walletMethods,\n chain,\n balance: [],\n walletType: WalletOption.XAMAN,\n address,\n disconnect: xumm.logout,\n });\n });\n\n await Promise.all(promises);\n resolve(true);\n } catch (error) {\n reject(error);\n }\n });\n\n xumm.on(\"error\", (error) => {\n reject(error);\n });\n\n xumm.authorize();\n });\n },\n});\n\nexport const XAMAN_SUPPORTED_CHAINS = getWalletSupportedChains(xamanWallet);\nexport type XamanSupportedChain = (typeof XAMAN_SUPPORTED_CHAINS)[number];\n\nexport type { XamanConfig } from \"./types\";\n",
6
+ "import { type AssetValue, Chain, SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport { sendXamanTransaction } from \"./walletMethods\";\n\ninterface GetWalletForChainParams {\n chain: Chain;\n address: string;\n xumm: Xumm;\n}\n\nexport async function getWalletForChain({ xumm, chain, address }: GetWalletForChainParams) {\n switch (chain) {\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n\n // const api = apis?.[chain]; // Unused for now\n const toolbox = await getRippleToolbox({});\n\n // Override transfer method to use Xaman transaction flow\n const transfer = async (params: {\n assetValue: AssetValue;\n recipient: string;\n memo?: string;\n }) => {\n const { recipient, assetValue, memo } = params;\n\n // Create and subscribe to payment via Xaman\n const paymentResult = await sendXamanTransaction(xumm, {\n from: address,\n destination: recipient,\n amount: assetValue.getValue(\"string\"),\n memo: memo,\n });\n\n // If not successful or no transaction ID, throw error\n if (!(paymentResult.result.success && paymentResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Return the transaction ID string\n return paymentResult.result.transactionId;\n };\n\n return {\n ...toolbox,\n address,\n getAddress: () => address,\n transfer,\n // Expose Xaman-specific methods\n createAndSubscribePayment: sendXamanTransaction,\n disconnect: xumm.logout,\n };\n }\n\n default:\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: \"Xaman\", chain });\n }\n}\n",
7
7
  "import { SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport type { XamanPaymentParams } from \"./types\";\n\nexport const connectXamanWallet = async (xumm: Xumm) => {\n if (!xumm) {\n throw new SwapKitError(\"wallet_xaman_not_configured\");\n }\n\n try {\n const user = await xumm.user;\n const account = await user?.account;\n\n if (account) {\n return account;\n }\n\n throw new SwapKitError(\"wallet_xaman_auth_failed\");\n } catch (error) {\n console.error(\"Xaman wallet connection failed:\", error);\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: might need refactoring later\nexport const sendXamanTransaction = async (xumm: Xumm, params: XamanPaymentParams) => {\n try {\n // Validate required parameters\n if (!(params.destination && params.amount && params.from)) {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n\n // Convert XRP to drops (1 XRP = 1,000,000 drops)\n const amountInDrops = (Number.parseFloat(params.amount) * 1000000).toString();\n\n // Create transaction object\n const transaction = {\n TransactionType: \"Payment\" as const,\n Destination: params.destination,\n Amount: amountInDrops,\n Account: params.from,\n ...(params.destinationTag !== undefined && {\n DestinationTag: params.destinationTag,\n }),\n ...(params.memo && {\n Memos: [\n {\n Memo: {\n MemoData: Buffer.from(params.memo, \"utf8\").toString(\"hex\").toUpperCase(),\n },\n },\n ],\n }),\n };\n\n // Create and subscribe to payload following the official example\n const subscription = await xumm.payload?.createAndSubscribe(transaction, (event) => {\n if (\"signed\" in event.data) {\n // Return event.data to close subscription and resolve promise\n return event.data; // { signed: true|false, payload_uuidv4: '...' }\n }\n return undefined;\n });\n\n if (!subscription) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const { created } = subscription;\n\n // Handle payload presentation based on runtime environment\n if (xumm.runtime?.xapp) {\n xumm.xapp?.openSignRequest(created);\n } else if (typeof window !== \"undefined\") {\n const url =\n created.pushed && created.next?.no_push_msg_received\n ? created.next.no_push_msg_received\n : created.next?.always;\n if (url) window.open(url);\n }\n\n // Wait until the user signed/rejected\n const resolved = await subscription.resolved;\n\n if (!resolved || typeof resolved !== \"object\" || !(\"signed\" in resolved) || !resolved.signed) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Fetch the full payload result using the UUID from resolved data\n const payloadDetails = await xumm.payload?.get((resolved as any).payload_uuidv4);\n\n if (!payloadDetails) {\n throw new SwapKitError(\"wallet_xaman_monitoring_failed\");\n }\n\n // Extract transaction ID from response\n const transactionId = payloadDetails.response?.txid || \"\";\n const account = payloadDetails.response?.account || \"\";\n\n if (!transactionId) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Return comprehensive result\n return {\n // Initial payload info for QR codes, deep links, etc.\n payloadId: created.uuid || \"\",\n qrCode: created.refs?.qr_png || \"\",\n deepLink: created.next?.always || \"\",\n websocketUrl: created.refs?.websocket_status || \"\",\n // Final transaction result - SUCCESS with tx hash\n result: {\n success: true,\n transactionId,\n account,\n reason: undefined,\n },\n };\n } catch (error) {\n console.error(\"Xaman payment creation and subscription failed:\", error);\n if (error instanceof SwapKitError) {\n throw error;\n }\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n};\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "AD81BBF097105CAA64756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "398E1F6C97AF0A0B64756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -1,4 +1,4 @@
1
- import{F as G,G as J}from"../../chunk-yqaz2d25.js";import{Chain as Q,SKConfig as T,SwapKitError as Y,WalletOption as U,filterSupportedChains as Z}from"@swapkit/helpers";import{createWallet as $,getWalletSupportedChains as j}from"@swapkit/wallet-core";import{Xumm as I}from"xumm";import{Chain as L,SwapKitError as h}from"@swapkit/helpers";import{SwapKitError as A}from"@swapkit/helpers";var H=async(f)=>{if(!f)throw new A("wallet_xaman_not_configured");try{let o=await(await f.user)?.account;if(o)return o;throw new A("wallet_xaman_auth_failed")}catch(n){throw console.error("Xaman wallet connection failed:",n),new A("wallet_xaman_connection_failed")}},O=async(f,n)=>{try{if(!(n.destination&&n.amount&&n.from))throw new A("wallet_xaman_connection_failed");let o=(Number.parseFloat(n.amount)*1e6).toString(),P={TransactionType:"Payment",Destination:n.destination,Amount:o,Account:n.from,...n.destinationTag!==void 0&&{DestinationTag:n.destinationTag},...n.memo&&{Memos:[{Memo:{MemoData:Buffer.from(n.memo,"utf8").toString("hex").toUpperCase()}}]}},t=await f.payload?.createAndSubscribe(P,(X)=>{if("signed"in X.data)return X.data;return});if(!t)throw new A("wallet_xaman_transaction_failed");let{created:C}=t;if(f.runtime?.xapp)f.xapp?.openSignRequest(C);else if(typeof window!=="undefined"){let X=C.pushed&&C.next?.no_push_msg_received?C.next.no_push_msg_received:C.next?.always;if(X)window.open(X)}let g=await t.resolved;if(!g||typeof g!=="object"||!("signed"in g)||!g.signed)throw new A("wallet_xaman_transaction_failed");let W=await f.payload?.get(g.payload_uuidv4);if(!W)throw new A("wallet_xaman_monitoring_failed");let _=W.response?.txid||"",y=W.response?.account||"";if(!_)throw new A("wallet_xaman_transaction_failed");return{payloadId:C.uuid||"",qrCode:C.refs?.qr_png||"",deepLink:C.next?.always||"",websocketUrl:C.refs?.websocket_status||"",result:{success:!0,transactionId:_,account:y,reason:void 0}}}catch(o){if(console.error("Xaman payment creation and subscription failed:",o),o instanceof A)throw o;throw new A("wallet_xaman_transaction_failed")}};async function z({xumm:f,chain:n,address:o,rpcUrl:P}){switch(n){case L.Ripple:{let{getRippleToolbox:t}=await import("@swapkit/toolboxes/ripple");return{...await t({rpcUrl:P}),address:o,getAddress:()=>o,transfer:async(W)=>{let{recipient:_,assetValue:y,memo:X}=W,l=await O(f,{from:o,destination:_,amount:y.getValue("string"),memo:X});if(!(l.result.success&&l.result.transactionId))throw new h("wallet_xaman_transaction_failed");return l.result.transactionId},createAndSubscribePayment:O,disconnect:f.logout}}default:throw new h("wallet_chain_not_supported",{wallet:"Xaman",chain:n})}}var R=$({name:"connectXaman",walletType:U.XAMAN,supportedChains:[Q.Ripple],connect:({addChain:f,supportedChains:n,walletType:o})=>async function P(t,C){let g=Z({chains:t,supportedChains:n,walletType:o}),{xaman:W}=T.get("apiKeys"),_=C?.apiKey||W;if(!_)throw new Y("wallet_missing_api_key",{wallet:"Xaman"});let y=new I(_);return new Promise((X,l)=>{y.on("success",async()=>{try{let N=await H(y),q=g.map(async(M)=>{let B=T.get("rpcUrls")[M],F=await z({xumm:y,chain:M,address:N,rpcUrl:B});f({...F,chain:M,balance:[],walletType:U.XAMAN,address:N,disconnect:y.logout})});await Promise.all(q),X(!0)}catch(N){l(N)}}),y.on("error",(N)=>{l(N)}),y.authorize()})}}),v=j(R);export{R as xamanWallet,v as XAMAN_SUPPORTED_CHAINS};
1
+ import{F as B,G as F}from"../../chunk-yqaz2d25.js";import{Chain as J,SKConfig as L,SwapKitError as Q,WalletOption as T,filterSupportedChains as Y}from"@swapkit/helpers";import{createWallet as Z,getWalletSupportedChains as $}from"@swapkit/wallet-core";import{Xumm as j}from"xumm";import{Chain as G,SwapKitError as H}from"@swapkit/helpers";import{SwapKitError as X}from"@swapkit/helpers";var h=async(f)=>{if(!f)throw new X("wallet_xaman_not_configured");try{let o=await(await f.user)?.account;if(o)return o;throw new X("wallet_xaman_auth_failed")}catch(n){throw console.error("Xaman wallet connection failed:",n),new X("wallet_xaman_connection_failed")}},P=async(f,n)=>{try{if(!(n.destination&&n.amount&&n.from))throw new X("wallet_xaman_connection_failed");let o=(Number.parseFloat(n.amount)*1e6).toString(),N={TransactionType:"Payment",Destination:n.destination,Amount:o,Account:n.from,...n.destinationTag!==void 0&&{DestinationTag:n.destinationTag},...n.memo&&{Memos:[{Memo:{MemoData:Buffer.from(n.memo,"utf8").toString("hex").toUpperCase()}}]}},l=await f.payload?.createAndSubscribe(N,(y)=>{if("signed"in y.data)return y.data;return});if(!l)throw new X("wallet_xaman_transaction_failed");let{created:C}=l;if(f.runtime?.xapp)f.xapp?.openSignRequest(C);else if(typeof window!=="undefined"){let y=C.pushed&&C.next?.no_push_msg_received?C.next.no_push_msg_received:C.next?.always;if(y)window.open(y)}let g=await l.resolved;if(!g||typeof g!=="object"||!("signed"in g)||!g.signed)throw new X("wallet_xaman_transaction_failed");let W=await f.payload?.get(g.payload_uuidv4);if(!W)throw new X("wallet_xaman_monitoring_failed");let _=W.response?.txid||"",A=W.response?.account||"";if(!_)throw new X("wallet_xaman_transaction_failed");return{payloadId:C.uuid||"",qrCode:C.refs?.qr_png||"",deepLink:C.next?.always||"",websocketUrl:C.refs?.websocket_status||"",result:{success:!0,transactionId:_,account:A,reason:void 0}}}catch(o){if(console.error("Xaman payment creation and subscription failed:",o),o instanceof X)throw o;throw new X("wallet_xaman_transaction_failed")}};async function z({xumm:f,chain:n,address:o}){switch(n){case G.Ripple:{let{getRippleToolbox:N}=await import("@swapkit/toolboxes/ripple");return{...await N({}),address:o,getAddress:()=>o,transfer:async(g)=>{let{recipient:W,assetValue:_,memo:A}=g,y=await P(f,{from:o,destination:W,amount:_.getValue("string"),memo:A});if(!(y.result.success&&y.result.transactionId))throw new H("wallet_xaman_transaction_failed");return y.result.transactionId},createAndSubscribePayment:P,disconnect:f.logout}}default:throw new H("wallet_chain_not_supported",{wallet:"Xaman",chain:n})}}var I=Z({name:"connectXaman",walletType:T.XAMAN,supportedChains:[J.Ripple],connect:({addChain:f,supportedChains:n,walletType:o})=>async function N(l,C){let g=Y({chains:l,supportedChains:n,walletType:o}),{xaman:W}=L.get("apiKeys"),_=C?.apiKey||W;if(!_)throw new Q("wallet_missing_api_key",{wallet:"Xaman"});let A=new j(_);return new Promise((y,M)=>{A.on("success",async()=>{try{let t=await h(A),U=g.map(async(O)=>{let q=await z({xumm:A,chain:O,address:t});f({...q,chain:O,balance:[],walletType:T.XAMAN,address:t,disconnect:A.logout})});await Promise.all(U),y(!0)}catch(t){M(t)}}),A.on("error",(t)=>{M(t)}),A.authorize()})}}),e=$(I);export{I as xamanWallet,e as XAMAN_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=A2AB13D828604E9664756E2164756E21
3
+ //# debugId=88BB4E5F7F69C07164756E2164756E21
4
4
  //# sourceMappingURL=index.js.map
@@ -2,11 +2,11 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/xaman/index.ts", "../src/xaman/helpers.ts", "../src/xaman/walletMethods.ts"],
4
4
  "sourcesContent": [
5
- "import {\n Chain,\n SKConfig,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Xumm } from \"xumm\";\nimport { getWalletForChain } from \"./helpers\";\nimport type { XamanConfig } from \"./types\";\nimport { connectXamanWallet as connectXamanWalletMethod } from \"./walletMethods\";\n\nexport const xamanWallet = createWallet({\n name: \"connectXaman\",\n walletType: WalletOption.XAMAN,\n supportedChains: [Chain.Ripple],\n connect: ({ addChain, supportedChains: walletSupportedChains, walletType }) =>\n async function connectXamanWallet(chains: Chain[], xamanConfigOverwrite?: XamanConfig) {\n const supportedChains = filterSupportedChains({\n chains,\n supportedChains: walletSupportedChains,\n walletType,\n });\n\n const { xaman: xamanApiKey } = SKConfig.get(\"apiKeys\");\n const apiKey = xamanConfigOverwrite?.apiKey || xamanApiKey;\n\n if (!apiKey) {\n throw new SwapKitError(\"wallet_missing_api_key\", { wallet: \"Xaman\" });\n }\n\n const xumm = new Xumm(apiKey);\n\n return new Promise<boolean>((resolve, reject) => {\n xumm.on(\"success\", async () => {\n try {\n const address = await connectXamanWalletMethod(xumm);\n\n const promises = supportedChains.map(async (chain) => {\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n const walletMethods = await getWalletForChain({\n xumm,\n chain,\n address,\n rpcUrl,\n });\n\n addChain({\n ...walletMethods,\n chain,\n balance: [],\n walletType: WalletOption.XAMAN,\n address,\n disconnect: xumm.logout,\n });\n });\n\n await Promise.all(promises);\n resolve(true);\n } catch (error) {\n reject(error);\n }\n });\n\n xumm.on(\"error\", (error) => {\n reject(error);\n });\n\n xumm.authorize();\n });\n },\n});\n\nexport const XAMAN_SUPPORTED_CHAINS = getWalletSupportedChains(xamanWallet);\nexport type XamanSupportedChain = (typeof XAMAN_SUPPORTED_CHAINS)[number];\n\nexport type { XamanConfig } from \"./types\";\n",
6
- "import { type AssetValue, Chain, SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport { sendXamanTransaction } from \"./walletMethods\";\n\ninterface GetWalletForChainParams {\n chain: Chain;\n address: string;\n rpcUrl?: string;\n xumm: Xumm;\n}\n\nexport async function getWalletForChain({ xumm, chain, address, rpcUrl }: GetWalletForChainParams) {\n switch (chain) {\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n\n // const api = apis?.[chain]; // Unused for now\n const toolbox = await getRippleToolbox({ rpcUrl });\n\n // Override transfer method to use Xaman transaction flow\n const transfer = async (params: {\n assetValue: AssetValue;\n recipient: string;\n memo?: string;\n }) => {\n const { recipient, assetValue, memo } = params;\n\n // Create and subscribe to payment via Xaman\n const paymentResult = await sendXamanTransaction(xumm, {\n from: address,\n destination: recipient,\n amount: assetValue.getValue(\"string\"),\n memo: memo,\n });\n\n // If not successful or no transaction ID, throw error\n if (!(paymentResult.result.success && paymentResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Return the transaction ID string\n return paymentResult.result.transactionId;\n };\n\n return {\n ...toolbox,\n address,\n getAddress: () => address,\n transfer,\n // Expose Xaman-specific methods\n createAndSubscribePayment: sendXamanTransaction,\n disconnect: xumm.logout,\n };\n }\n\n default:\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: \"Xaman\", chain });\n }\n}\n",
5
+ "import {\n Chain,\n SKConfig,\n SwapKitError,\n WalletOption,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Xumm } from \"xumm\";\nimport { getWalletForChain } from \"./helpers\";\nimport type { XamanConfig } from \"./types\";\nimport { connectXamanWallet as connectXamanWalletMethod } from \"./walletMethods\";\n\nexport const xamanWallet = createWallet({\n name: \"connectXaman\",\n walletType: WalletOption.XAMAN,\n supportedChains: [Chain.Ripple],\n connect: ({ addChain, supportedChains: walletSupportedChains, walletType }) =>\n async function connectXamanWallet(chains: Chain[], xamanConfigOverwrite?: XamanConfig) {\n const supportedChains = filterSupportedChains({\n chains,\n supportedChains: walletSupportedChains,\n walletType,\n });\n\n const { xaman: xamanApiKey } = SKConfig.get(\"apiKeys\");\n const apiKey = xamanConfigOverwrite?.apiKey || xamanApiKey;\n\n if (!apiKey) {\n throw new SwapKitError(\"wallet_missing_api_key\", { wallet: \"Xaman\" });\n }\n\n const xumm = new Xumm(apiKey);\n\n return new Promise<boolean>((resolve, reject) => {\n xumm.on(\"success\", async () => {\n try {\n const address = await connectXamanWalletMethod(xumm);\n\n const promises = supportedChains.map(async (chain) => {\n const walletMethods = await getWalletForChain({\n xumm,\n chain,\n address,\n });\n\n addChain({\n ...walletMethods,\n chain,\n balance: [],\n walletType: WalletOption.XAMAN,\n address,\n disconnect: xumm.logout,\n });\n });\n\n await Promise.all(promises);\n resolve(true);\n } catch (error) {\n reject(error);\n }\n });\n\n xumm.on(\"error\", (error) => {\n reject(error);\n });\n\n xumm.authorize();\n });\n },\n});\n\nexport const XAMAN_SUPPORTED_CHAINS = getWalletSupportedChains(xamanWallet);\nexport type XamanSupportedChain = (typeof XAMAN_SUPPORTED_CHAINS)[number];\n\nexport type { XamanConfig } from \"./types\";\n",
6
+ "import { type AssetValue, Chain, SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport { sendXamanTransaction } from \"./walletMethods\";\n\ninterface GetWalletForChainParams {\n chain: Chain;\n address: string;\n xumm: Xumm;\n}\n\nexport async function getWalletForChain({ xumm, chain, address }: GetWalletForChainParams) {\n switch (chain) {\n case Chain.Ripple: {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n\n // const api = apis?.[chain]; // Unused for now\n const toolbox = await getRippleToolbox({});\n\n // Override transfer method to use Xaman transaction flow\n const transfer = async (params: {\n assetValue: AssetValue;\n recipient: string;\n memo?: string;\n }) => {\n const { recipient, assetValue, memo } = params;\n\n // Create and subscribe to payment via Xaman\n const paymentResult = await sendXamanTransaction(xumm, {\n from: address,\n destination: recipient,\n amount: assetValue.getValue(\"string\"),\n memo: memo,\n });\n\n // If not successful or no transaction ID, throw error\n if (!(paymentResult.result.success && paymentResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Return the transaction ID string\n return paymentResult.result.transactionId;\n };\n\n return {\n ...toolbox,\n address,\n getAddress: () => address,\n transfer,\n // Expose Xaman-specific methods\n createAndSubscribePayment: sendXamanTransaction,\n disconnect: xumm.logout,\n };\n }\n\n default:\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: \"Xaman\", chain });\n }\n}\n",
7
7
  "import { SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport type { XamanPaymentParams } from \"./types\";\n\nexport const connectXamanWallet = async (xumm: Xumm) => {\n if (!xumm) {\n throw new SwapKitError(\"wallet_xaman_not_configured\");\n }\n\n try {\n const user = await xumm.user;\n const account = await user?.account;\n\n if (account) {\n return account;\n }\n\n throw new SwapKitError(\"wallet_xaman_auth_failed\");\n } catch (error) {\n console.error(\"Xaman wallet connection failed:\", error);\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n};\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: might need refactoring later\nexport const sendXamanTransaction = async (xumm: Xumm, params: XamanPaymentParams) => {\n try {\n // Validate required parameters\n if (!(params.destination && params.amount && params.from)) {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n\n // Convert XRP to drops (1 XRP = 1,000,000 drops)\n const amountInDrops = (Number.parseFloat(params.amount) * 1000000).toString();\n\n // Create transaction object\n const transaction = {\n TransactionType: \"Payment\" as const,\n Destination: params.destination,\n Amount: amountInDrops,\n Account: params.from,\n ...(params.destinationTag !== undefined && {\n DestinationTag: params.destinationTag,\n }),\n ...(params.memo && {\n Memos: [\n {\n Memo: {\n MemoData: Buffer.from(params.memo, \"utf8\").toString(\"hex\").toUpperCase(),\n },\n },\n ],\n }),\n };\n\n // Create and subscribe to payload following the official example\n const subscription = await xumm.payload?.createAndSubscribe(transaction, (event) => {\n if (\"signed\" in event.data) {\n // Return event.data to close subscription and resolve promise\n return event.data; // { signed: true|false, payload_uuidv4: '...' }\n }\n return undefined;\n });\n\n if (!subscription) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const { created } = subscription;\n\n // Handle payload presentation based on runtime environment\n if (xumm.runtime?.xapp) {\n xumm.xapp?.openSignRequest(created);\n } else if (typeof window !== \"undefined\") {\n const url =\n created.pushed && created.next?.no_push_msg_received\n ? created.next.no_push_msg_received\n : created.next?.always;\n if (url) window.open(url);\n }\n\n // Wait until the user signed/rejected\n const resolved = await subscription.resolved;\n\n if (!resolved || typeof resolved !== \"object\" || !(\"signed\" in resolved) || !resolved.signed) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Fetch the full payload result using the UUID from resolved data\n const payloadDetails = await xumm.payload?.get((resolved as any).payload_uuidv4);\n\n if (!payloadDetails) {\n throw new SwapKitError(\"wallet_xaman_monitoring_failed\");\n }\n\n // Extract transaction ID from response\n const transactionId = payloadDetails.response?.txid || \"\";\n const account = payloadDetails.response?.account || \"\";\n\n if (!transactionId) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n // Return comprehensive result\n return {\n // Initial payload info for QR codes, deep links, etc.\n payloadId: created.uuid || \"\",\n qrCode: created.refs?.qr_png || \"\",\n deepLink: created.next?.always || \"\",\n websocketUrl: created.refs?.websocket_status || \"\",\n // Final transaction result - SUCCESS with tx hash\n result: {\n success: true,\n transactionId,\n account,\n reason: undefined,\n },\n };\n } catch (error) {\n console.error(\"Xaman payment creation and subscription failed:\", error);\n if (error instanceof SwapKitError) {\n throw error;\n }\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n};\n"
8
8
  ],
9
- "mappings": "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",
10
- "debugId": "A2AB13D828604E9664756E2164756E21",
9
+ "mappings": "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",
10
+ "debugId": "88BB4E5F7F69C07164756E2164756E21",
11
11
  "names": []
12
12
  }
@@ -88,9 +88,10 @@ export declare function getWalletMethods(chain: Chain): Promise<{
88
88
  validateAddress: (address: string) => boolean;
89
89
  } | {
90
90
  address: string;
91
- accumulative: ({ inputs, outputs, feeRate: initialFeeRate, chain, }: import("@swapkit/toolboxes/utxo").UTXOCalculateTxSizeParams & {
91
+ accumulative: ({ inputs, outputs, feeRate: initialFeeRate, chain, changeAddress, }: import("@swapkit/toolboxes/utxo").UTXOCalculateTxSizeParams & {
92
92
  outputs: import("@swapkit/toolboxes/utxo").TargetOutput[];
93
93
  chain: import("@swapkit/helpers").UTXOChain;
94
+ changeAddress?: string;
94
95
  }) => {
95
96
  inputs: (import("@swapkit/toolboxes/utxo").UTXOType | import("@swapkit/toolboxes/utxo").UTXOInputWithScriptType)[];
96
97
  outputs: import("@swapkit/toolboxes/utxo").TargetOutput[];
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/bitget/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,KAAK,QAAQ,EAId,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK;;;;;yBAAhC,CAAC,kBAAkB,CAAC,sBACjC,CAAC;;4CAMU,CAAC;;iDAOV,GAAI;;;;;;sCAiBoB,GAAI;;;;;;;gIAoC9B,GAAF;iIAME,GAAJ;;;gBAYI,CAAC;kBAA6B,CAAA;mBACL,CAAA;YACL,CAAC;;;kBAIJ,CAAC;gBAEd,CAAC;oBACL,CAAH;4BAAsC,CAAC;;;sCAKlC,GAAH;oBACkC,CAAC;;;oEAUe,GAAI;;;;;4CAOM,CAAC;;iDAID,GAAI;;;;;;sCAe1D,GAAI;;;;;;;gIAgC6D,GAAI;iIAK0E,GAAI;;;gBAAyT,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAA+I,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;;;;;;;;;;;;cAzInzC,CAAC;eAEvC,CAAA;;;;;;;;;;;;;WAaI,CAAC;cAGX,CAAC;sBAAgC,CAAC;;;;;;;;oBAqClC,CAAC;eAAwB,CAAC;;;;;;;cAI8B,CAAC;eAE/C,CAAA;;;;;;;4CA7BE,CAAA;;;;;YAGK,CAAC;oBAET,CAAC;eACK,CAAC;kBACE,CAAC;;;;YAKjB,CAAR;eAGM,CADN;oBAC6B,CAAC;kBAEd,CAAC;;;;;;;sDA7C4C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmB7B,CAAA;;6BA5BZ,CAAC;;;;;;+BAmBO,CAAC;;;;;;;;;;cAzBwB,CAAC;;;;;;;;GA4HtD;AAED,eAAO,MAAM,oBAAoB,GAAU,4BAGxC;IAAE,cAAc,CAAC,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE;;;;yBA1JrC,CAAC,kBAAkB,CAAC,sBACjC,CAAC;;4CAMU,CAAC;;iDAOV,GAAI;;;;;;sCAiBoB,GAAI;;;;;;;gIAoC9B,GAAF;iIAME,GAAJ;;;gBAYI,CAAC;kBAA6B,CAAA;mBACL,CAAA;YACL,CAAC;;;kBAIJ,CAAC;gBAEd,CAAC;oBACL,CAAH;4BAAsC,CAAC;;;sCAKlC,GAAH;oBACkC,CAAC;;;oEAUe,GAAI;;;;4CAOM,CAAC;;iDAID,GAAI;;;;;;sCAe1D,GAAI;;;;;;;gIAgC6D,GAAI;iIAK0E,GAAI;;;gBAAyT,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAA+I,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;EADp2C,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/bitget/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,KAAK,QAAQ,EAId,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE9C,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK;;;;;yBAAhC,CAAC,kBAAkB,CAAC,sBACjC,CAAC;;4CAMU,CAAC;;iDAOV,GAAI;;;;;;sCAiBoB,GAAI;;;;;;;gIAoC9B,GAAF;iIAME,GAAJ;;;gBAYI,CAAC;kBAA6B,CAAA;mBACL,CAAA;YACL,CAAC;;;kBAIJ,CAAC;gBAEd,CAAC;oBACL,CAAH;4BAAsC,CAAC;;;sCAKlC,GAAH;oBACkC,CAAC;;;oEAUe,GAAI;;;;;4CAOM,CAAC;;iDAID,GAAI;;;;;;sCAe1D,GAAI;;;;;;;gIAgC6D,GAAI;iIAK0E,GAAI;;;gBAAyT,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAA+I,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;;;;;;qBApIl0C,CAAC;;;;;;;cAKT,CAAC;eAGtB,CAAC;;;;;;;;;;;;;WAe0B,CAAC;cACnB,CAAC;sBAAgC,CAAC;;;;;;;;oBAoCzC,CAAP;eAAyB,CAAA;;;;;;;cAQpB,CAAF;eAAwB,CAAC;;;;;;;4CAhCvB,CAAC;;;;;YAQ6B,CAAA;oBACR,CAAC;eACjB,CAAC;kBAA4B,CAAC;;;;YAMzB,CAAC;eACZ,CAAD;oBAA8B,CAAC;kBAC5B,CAAC;;;;;;;sDAvDoD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmB7B,CAAA;;6BA5BZ,CAAC;;;;;;+BAmBO,CAAC;;;;;;;;;;cAzBwB,CAAC;;;;;;;;GA4HtD;AAED,eAAO,MAAM,oBAAoB,GAAU,4BAGxC;IAAE,cAAc,CAAC,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE;;;;yBA1JrC,CAAC,kBAAkB,CAAC,sBACjC,CAAC;;4CAMU,CAAC;;iDAOV,GAAI;;;;;;sCAiBoB,GAAI;;;;;;;gIAoC9B,GAAF;iIAME,GAAJ;;;gBAYI,CAAC;kBAA6B,CAAA;mBACL,CAAA;YACL,CAAC;;;kBAIJ,CAAC;gBAEd,CAAC;oBACL,CAAH;4BAAsC,CAAC;;;sCAKlC,GAAH;oBACkC,CAAC;;;oEAUe,GAAI;;;;4CAOM,CAAC;;iDAID,GAAI;;;;;;sCAe1D,GAAI;;;;;;;gIAgC6D,GAAI;iIAK0E,GAAI;;;gBAAyT,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAA+I,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;EADp2C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm-extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAEL,KAAK,QAAQ,EAGb,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GACxB,YAAY,CAAC,KAAK,GAClB,YAAY,CAAC,UAAU,GACvB,YAAY,CAAC,QAAQ,GACrB,YAAY,CAAC,eAAe,GAC5B,YAAY,CAAC,YAAY,GACzB,YAAY,CAAC,OAAO,CAAC;AAoBzB,eAAO,MAAM,oBAAoB,GAAU,+CAKxC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;CAC3B;;;;;yBAtCyB,CAAC,kBAAkB,CAAC,sBAE3C,CAAC;;;iDAYa,GAAI;;;;;;sCAuBJ,GAAI;;;;;;;gIAiC0B,GAAI;iIAMpC,GAAI;;;gBAMmB,CAAC;kBAC3B,CAAJ;mBAAgC,CAAC;YACf,CAAC;;;kBAKb,CAAN;gBACM,CAAH;oBAA8B,CAAC;4BAG1B,CAAC;;;sCAKP,GAAP;oBAAuD,CAAC;;;oEAWjD,GAAL;;;;;;iDAYuD,GAAI;;;;;;sCAAqf,GAAI;;;;;;;gIAA+mC,GAAI;iIAAiO,GAAI;;;gBAAyT,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAA+I,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;EA3DvlG,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;CAsDpB,CAAC;AAEH,eAAO,MAAM,+BAA+B,YAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/evm-extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAEL,KAAK,QAAQ,EAGb,YAAY,EAIb,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GACxB,YAAY,CAAC,KAAK,GAClB,YAAY,CAAC,UAAU,GACvB,YAAY,CAAC,QAAQ,GACrB,YAAY,CAAC,eAAe,GAC5B,YAAY,CAAC,YAAY,GACzB,YAAY,CAAC,OAAO,CAAC;AAoBzB,eAAO,MAAM,oBAAoB,GAAU,+CAKxC;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,eAAe,CAAC;CAC3B;;;;;yBAtCyB,CAAC,kBAAkB,CAAC,sBAE3C,CAAC;;;iDAYa,GAAI;;;;;;sCAuBJ,GAAI;;;;;;;gIAiC0B,GAAI;iIAMpC,GAAI;;;gBAOc,CAAC;kBAA4B,CAAC;mBAC1C,CAAC;YACV,CAAT;;;kBAGgC,CAAC;gBACtB,CAAd;oBACc,CAAN;4BAEM,CAAZ;;;sCAMQ,GAAI;oBAEJ,CAAJ;;;oEAOM,GAAA;;;;;;iDAiBV,GAAI;;;;;;sCACia,GAAI;;;;;;;gIAA+mC,GAAI;iIAAiO,GAAI;;;gBAAyT,CAAC;kBAA4B,CAAC;mBAAgC,CAAC;YAAwC,CAAC;;;kBAA+I,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;EA/Dz8F,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;CA0DpB,CAAC;AAEH,eAAO,MAAM,+BAA+B,YAAsC,CAAC"}
@@ -88,9 +88,10 @@ export declare function getWalletMethods(chain: Chain): Promise<{
88
88
  validateAddress: (address: string) => boolean;
89
89
  } | {
90
90
  address: string;
91
- accumulative: ({ inputs, outputs, feeRate: initialFeeRate, chain, }: import("@swapkit/toolboxes/utxo").UTXOCalculateTxSizeParams & {
91
+ accumulative: ({ inputs, outputs, feeRate: initialFeeRate, chain, changeAddress, }: import("@swapkit/toolboxes/utxo").UTXOCalculateTxSizeParams & {
92
92
  outputs: import("@swapkit/toolboxes/utxo").TargetOutput[];
93
93
  chain: import("@swapkit/helpers").UTXOChain;
94
+ changeAddress?: string;
94
95
  }) => {
95
96
  inputs: (import("@swapkit/toolboxes/utxo").UTXOType | import("@swapkit/toolboxes/utxo").UTXOInputWithScriptType)[];
96
97
  outputs: import("@swapkit/toolboxes/utxo").TargetOutput[];
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/okx/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAK3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAkDrC,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK;;;;;yBAnDgB,CAAC,kBAC1D,CAAC,sBAAsB,CAAC;;4CAKY,CAAC;;iDAG3C,GAAD;;;;;;sCAemB,GAAI;;;;;;;gIAkCX,GAAI;iIAUD,GACjB;;;gBAQsB,CAAA;kBAA4B,CAAC;mBAAgC,CAAC;YAE7D,CAAC;;;kBAKjB,CAAD;gBAA0B,CAAC;oBAA8B,CAAC;4BAGrD,CAAC;;;sCAKP,GAAG;oBACgC,CAAC;;;oEAWF,GAAI;;;;;4CAMW,CAAA;;iDAKpB,GAAI;;;;;;sCAYhB,GAAI;;;;;;;gIA8BrB,GADF;iIAG8D,GAAI;;;gBAYhE,CAAF;kBAA4B,CAAC;mBAE3B,CAAA;YAEF,CAAF;;;kBAImC,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;;;;;;;;;;;;cAtJ7qB,CAAC;eAEC,CAAC;;;;;;;;;;;;;WAUN,CAAC;cAAwB,CAAC;sBAChC,CAAJ;;;;;;;;oBAyCqD,CAAC;eAC1C,CAAC;;;;;;;cAKE,CAAC;eAAwB,CAAC;;;;;;;4CA7BhC,CAAC;;;;;YAQN,CAAF;oBACU,CAAC;eAA6B,CAAA;kBAClC,CAAF;;;;YAKE,CAAV;eAA0B,CAAA;oBAElB,CAAP;kBAA+B,CAAC;;;;gDAvES,qBAAqB;;;sDA0BzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiHqC,MAAM;;;;;;;;;cAlII,CAAC;;;;;;;;GAmKtF"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/okx/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAK3B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAc,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAkDrC,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,KAAK;;;;;yBAnDgB,CAAC,kBAC1D,CAAC,sBAAsB,CAAC;;4CAKY,CAAC;;iDAG3C,GAAD;;;;;;sCAemB,GAAI;;;;;;;gIAkCX,GAAI;iIAUD,GACjB;;;gBAQsB,CAAA;kBAA4B,CAAC;mBAAgC,CAAC;YAE7D,CAAC;;;kBAKjB,CAAD;gBAA0B,CAAC;oBAA8B,CAAC;4BAGrD,CAAC;;;sCAKP,GAAG;oBACgC,CAAC;;;oEAWF,GAAI;;;;;4CAMW,CAAA;;iDAKpB,GAAI;;;;;;sCAYhB,GAAI;;;;;;;gIA8BrB,GADF;iIAG8D,GAAI;;;gBAYhE,CAAF;kBAA4B,CAAC;mBAE3B,CAAA;YAEF,CAAF;;;kBAImC,CAAC;gBAA0B,CAAC;oBAA8B,CAAC;4BAAsC,CAAC;;;sCAAgL,GAAI;oBAAuD,CAAC;;;oEAAqU,GAAI;;;;;;;qBAlJ1qB,CAAC;;;;;;;cAIC,CAAC;eACjB,CAAC;;;;;;;;;;;;;WAa2C,CAAC;cAC9B,CAAA;sBAEjB,CAAF;;;;;;;;oBAuCmD,CAAC;eAC1C,CAAH;;;;;;;cAKiC,CAAC;eAE9B,CAAC;;;;;;;4CA5Bc,CAAC;;;;;YAIwB,CAAC;oBAA8B,CAAC;eAEzE,CAAC;kBAA4B,CAAC;;;;YAKA,CAAC;eAAyB,CAAC;oBAG7D,CAAC;kBAAgC,CAAA;;;;gDAjFG,qBAAqB;;;sDA0BzB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAiHqC,MAAM;;;;;;;;;cAlII,CAAC;;;;;;;;GAmKtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/onekey/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAQN,MAAM,kBAAkB,CAAC;AAiK1B,eAAO,MAAM,YAAY;;;;;;;CAuCvB,CAAC;AAEH,eAAO,MAAM,8BAA8B,4LAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/onekey/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAON,MAAM,kBAAkB,CAAC;AA+J1B,eAAO,MAAM,YAAY;;;;;;;CAuCvB,CAAC;AAEH,eAAO,MAAM,8BAA8B,4LAAyC,CAAC"}
@@ -2,6 +2,11 @@ import { Chain } from "@swapkit/helpers";
2
2
  import { type TronTransaction } from "@swapkit/toolboxes/tron";
3
3
  import type { TronLinkWindow } from "./types.js";
4
4
  export declare function waitForTronLink(timeout?: number): Promise<TronLinkWindow>;
5
+ /**
6
+ * Helper function to check if TronLink wallet is locked
7
+ * Returns true if wallet is locked, false if unlocked
8
+ */
9
+ export declare function isTronLinkLocked(): Promise<boolean>;
5
10
  export declare function getWalletForChain(chain: Chain, expectedNetwork?: string): Promise<{
6
11
  address: string;
7
12
  tronWeb: import("tronweb").TronWeb;
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/tronlink/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA8B,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAmB,KAAK,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhE,wBAAsB,eAAe,CAAC,OAAO,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAiC7E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,MAAM;;;;;;;;cAZrD,CAAC;;;;;;;;GAsFzB;AAED,wBAAgB,mBAAmB,CACjC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC3C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC1C,MAAM,IAAI,CA2BZ;AAED,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,QAiBpD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,UAAQ,GAAG,MAAM,CAE9D"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/tronlink/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA8B,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAmB,KAAK,eAAe,EAAqB,MAAM,yBAAyB,CAAC;AACnG,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhE,wBAAsB,eAAe,CAAC,OAAO,SAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAiC7E;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CA2BzD;AA0DD,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,CAAC,EAAE,MAAM;;;;;;;;cArGrD,CAAC;;;;;;;;GA2JzB;AAED,wBAAgB,mBAAmB,CACjC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,EAC3C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAC1C,MAAM,IAAI,CA2BZ;AAED,wBAAgB,aAAa,CAAC,eAAe,EAAE,MAAM,QAiBpD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,UAAQ,GAAG,MAAM,CAE9D"}
@@ -3,10 +3,9 @@ import type { Xumm } from "xumm";
3
3
  interface GetWalletForChainParams {
4
4
  chain: Chain;
5
5
  address: string;
6
- rpcUrl?: string;
7
6
  xumm: Xumm;
8
7
  }
9
- export declare function getWalletForChain({ xumm, chain, address, rpcUrl }: GetWalletForChainParams): Promise<{
8
+ export declare function getWalletForChain({ xumm, chain, address }: GetWalletForChainParams): Promise<{
10
9
  address: string;
11
10
  getAddress: () => string;
12
11
  transfer: (params: {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/xaman/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,EAAgB,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,uBAAuB;;;uBAS3D;QAC9B,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;;;;;;;;;;;;;;;;;;;;;;;wBAKG,CAAV;;;;cAMmC,CAAA;YAAsB,CAAC;;;;;;;;GAuBzD"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/xaman/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,EAAgB,MAAM,kBAAkB,CAAC;AACxE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,UAAU,uBAAuB;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,wBAAsB,iBAAiB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,uBAAuB;;;uBASnD;QAC9B,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;;;;;;;;;;;;;;;;;;;;;;;wBAMG,CAAA;;;;cAMF,CAAD;YAAsB,CAAC;;;;;;;;GAsB7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/xaman/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAKN,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,eAAO,MAAM,WAAW;;;;;;;CA2DtB,CAAC;AAEH,eAAO,MAAM,sBAAsB,gBAAwC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/xaman/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EAKN,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG3C,eAAO,MAAM,WAAW;;;;;;;CAyDtB,CAAC;AAEH,eAAO,MAAM,sBAAsB,gBAAwC,CAAC;AAC5E,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
package/package.json CHANGED
@@ -12,11 +12,11 @@
12
12
  "@scure/base": "~1.2.0",
13
13
  "@scure/bip39": "~1.6.0",
14
14
  "@solana/web3.js": "~1.98.0",
15
- "@swapkit/helpers": "4.0.0-beta.47",
16
- "@swapkit/toolboxes": "4.0.0-beta.64",
17
- "@swapkit/wallet-core": "4.0.0-beta.15",
18
- "@swapkit/wallet-hardware": "4.0.0-beta.15",
19
- "@swapkit/wallet-keystore": "4.0.0-beta.15",
15
+ "@swapkit/helpers": "4.0.0-beta.49",
16
+ "@swapkit/toolboxes": "4.0.0-beta.66",
17
+ "@swapkit/wallet-core": "4.0.0-beta.17",
18
+ "@swapkit/wallet-hardware": "4.0.0-beta.17",
19
+ "@swapkit/wallet-keystore": "4.0.0-beta.17",
20
20
  "@trezor/connect-web": "~9.6.0",
21
21
  "@walletconnect/modal": "~2.7.0",
22
22
  "@walletconnect/sign-client": "~2.21.0",
@@ -42,8 +42,8 @@
42
42
  "@scure/base": "1.2.6",
43
43
  "@scure/bip39": "1.6.0",
44
44
  "@solana/web3.js": "1.98.2",
45
- "@swapkit/helpers": "4.0.0-beta.47",
46
- "@swapkit/toolboxes": "4.0.0-beta.64",
45
+ "@swapkit/helpers": "4.0.0-beta.49",
46
+ "@swapkit/toolboxes": "4.0.0-beta.66",
47
47
  "@trezor/connect-web": "9.6.0",
48
48
  "@walletconnect/logger": "2.1.2",
49
49
  "@walletconnect/modal": "2.7.0",
@@ -190,5 +190,5 @@
190
190
  "type-check:go": "tsgo"
191
191
  },
192
192
  "type": "module",
193
- "version": "4.0.0-beta.68"
193
+ "version": "4.0.0-beta.70"
194
194
  }