@tcswap/wallets 4.3.16 → 4.3.17
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.
- package/dist/bitget.cjs +4 -0
- package/dist/bitget.cjs.map +10 -0
- package/dist/bitget.js +4 -0
- package/dist/bitget.js.map +10 -0
- package/dist/chunk-1m30h0t9.js +4 -0
- package/dist/chunk-1m30h0t9.js.map +9 -0
- package/dist/chunk-7jtd4aht.js +5 -0
- package/dist/chunk-7jtd4aht.js.map +9 -0
- package/dist/chunk-ae6bkfs5.js +3 -0
- package/dist/chunk-ae6bkfs5.js.map +9 -0
- package/dist/chunk-w091cwmh.js +5 -0
- package/dist/chunk-w091cwmh.js.map +10 -0
- package/dist/chunk-w4smbq6w.js +4 -0
- package/dist/chunk-w4smbq6w.js.map +9 -0
- package/dist/coinbase/index.cjs +4 -0
- package/dist/coinbase/index.cjs.map +11 -0
- package/dist/coinbase/index.js +4 -0
- package/dist/coinbase/index.js.map +11 -0
- package/dist/cosmostation.cjs +4 -0
- package/dist/cosmostation.cjs.map +10 -0
- package/dist/cosmostation.js +4 -0
- package/dist/cosmostation.js.map +10 -0
- package/dist/ctrl.cjs +4 -0
- package/dist/ctrl.cjs.map +10 -0
- package/dist/ctrl.js +4 -0
- package/dist/ctrl.js.map +10 -0
- package/dist/evm-extensions.cjs +4 -0
- package/dist/evm-extensions.cjs.map +10 -0
- package/dist/evm-extensions.js +4 -0
- package/dist/evm-extensions.js.map +10 -0
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +11 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +11 -0
- package/dist/keepkey-bex.cjs +4 -0
- package/dist/keepkey-bex.cjs.map +10 -0
- package/dist/keepkey-bex.js +4 -0
- package/dist/keepkey-bex.js.map +10 -0
- package/dist/keepkey.cjs +4 -0
- package/dist/keepkey.cjs.map +10 -0
- package/dist/keepkey.js +4 -0
- package/dist/keepkey.js.map +10 -0
- package/dist/keplr.cjs +4 -0
- package/dist/keplr.cjs.map +10 -0
- package/dist/keplr.js +4 -0
- package/dist/keplr.js.map +10 -0
- package/dist/keystore.cjs +4 -0
- package/dist/keystore.cjs.map +10 -0
- package/dist/keystore.js +4 -0
- package/dist/keystore.js.map +10 -0
- package/dist/ledger.cjs +4 -0
- package/dist/ledger.cjs.map +10 -0
- package/dist/ledger.js +4 -0
- package/dist/ledger.js.map +10 -0
- package/dist/near-wallet-selector/index.cjs +4 -0
- package/dist/near-wallet-selector/index.cjs.map +10 -0
- package/dist/near-wallet-selector/index.js +4 -0
- package/dist/near-wallet-selector/index.js.map +10 -0
- package/dist/okx.cjs +4 -0
- package/dist/okx.cjs.map +10 -0
- package/dist/okx.js +4 -0
- package/dist/okx.js.map +10 -0
- package/dist/onekey.cjs +4 -0
- package/dist/onekey.cjs.map +10 -0
- package/dist/onekey.js +4 -0
- package/dist/onekey.js.map +10 -0
- package/dist/passkeys/index.cjs +4 -0
- package/dist/passkeys/index.cjs.map +10 -0
- package/dist/passkeys/index.js +4 -0
- package/dist/passkeys/index.js.map +10 -0
- package/dist/phantom.cjs +4 -0
- package/dist/phantom.cjs.map +10 -0
- package/dist/phantom.js +4 -0
- package/dist/phantom.js.map +10 -0
- package/dist/polkadotjs.cjs +4 -0
- package/dist/polkadotjs.cjs.map +10 -0
- package/dist/polkadotjs.js +4 -0
- package/dist/polkadotjs.js.map +10 -0
- package/dist/radix/index.cjs +4 -0
- package/dist/radix/index.cjs.map +10 -0
- package/dist/radix/index.js +4 -0
- package/dist/radix/index.js.map +10 -0
- package/dist/talisman.cjs +4 -0
- package/dist/talisman.cjs.map +10 -0
- package/dist/talisman.js +4 -0
- package/dist/talisman.js.map +10 -0
- package/dist/trezor.cjs +4 -0
- package/dist/trezor.cjs.map +10 -0
- package/dist/trezor.js +4 -0
- package/dist/trezor.js.map +10 -0
- package/dist/tronlink.cjs +4 -0
- package/dist/tronlink.cjs.map +10 -0
- package/dist/tronlink.js +4 -0
- package/dist/tronlink.js.map +10 -0
- package/dist/vultisig.cjs +4 -0
- package/dist/vultisig.cjs.map +10 -0
- package/dist/vultisig.js +4 -0
- package/dist/vultisig.js.map +10 -0
- package/dist/walletconnect/index.cjs +4 -0
- package/dist/walletconnect/index.cjs.map +13 -0
- package/dist/walletconnect/index.js +4 -0
- package/dist/walletconnect/index.js.map +13 -0
- package/dist/xaman/index.cjs +4 -0
- package/dist/xaman/index.cjs.map +12 -0
- package/dist/xaman/index.js +4 -0
- package/dist/xaman/index.js.map +12 -0
- package/package.json +57 -57
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{G as L}from"../chunk-7jtd4aht.js";import"@near-wallet-selector/modal-ui-js/styles.css";import{Chain as P,filterSupportedChains as X,USwapConfig as Y,USwapError as B,WalletOption as Q}from"@tcswap/helpers";import{getNearToolbox as Z}from"@tcswap/toolboxes/near";import{createWallet as _,getWalletSupportedChains as $}from"@tcswap/wallet-core";function j(q){return{getAddress:async()=>{let z=(await q.getAccounts())[0]?.accountId;if(!z)throw new B("wallet_connection_rejected_by_user");return z},getPublicKey:()=>{throw new B("wallet_near_method_not_supported")},signAndSendTransactions:async(k)=>{return(await q.signAndSendTransactions(k))?.[0]?.transaction_outcome.id||""},signDelegateAction:()=>{throw new B("wallet_near_method_not_supported")},signNep413Message:()=>{throw new B("wallet_near_method_not_supported")},signTransaction:(k)=>{if(!q.signTransaction)throw new B("wallet_near_method_not_supported");return q.signTransaction(k)}}}function f(q,k){return new Promise((z)=>{let D=q.store.observable.subscribe((A)=>{if(A.selectedWalletId)D.unsubscribe(),k.hide(),z()});k.show()})}async function v(q){let{setupWalletSelector:k}=await import("@near-wallet-selector/core"),{setupModal:z}=await import("@near-wallet-selector/modal-ui-js"),D=Y.get("integrations")?.nearWalletSelector?.contractId||"",A=await k({modules:[...q||[]],network:"mainnet"});if(!A.isSignedIn()){let J=z(A,{contractId:D,description:"Connect your NEAR wallet to SwapKit"});await f(A,J)}let H=await A.wallet(),G=j(H),R=await Z({signer:G}),V=await G.getAddress();return{...R,address:V,disconnect:async()=>{try{await H.signOut()}catch(J){throw new B("wallet_connection_rejected_by_user",J)}}}}var x=_({connect:({addChain:q,supportedChains:k,walletType:z})=>async function(A,K){if(X({chains:A,supportedChains:k,walletType:z}).length===0)throw new B("wallet_chain_not_supported",{chain:A[0],wallet:Q.WALLET_SELECTOR});let G=await v(K);return q({...G,balance:[],chain:P.Near,walletType:z}),!0},name:"connectWalletSelector",supportedChains:[P.Near],walletType:Q.WALLET_SELECTOR}),y=$(x);export{x as walletSelectorWallet,y as WALLET_SELECTOR_SUPPORTED_CHAINS};
|
|
2
|
+
|
|
3
|
+
//# debugId=8F3AF74A721A913F64756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/near-wallet-selector/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Wallet, WalletModuleFactory } from \"@near-wallet-selector/core\";\nimport \"@near-wallet-selector/modal-ui-js/styles.css\";\nimport type { Transaction } from \"@near-js/transactions\";\nimport { Chain, filterSupportedChains, USwapConfig, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { getNearToolbox } from \"@tcswap/toolboxes/near\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\n\nfunction createNearSigner(wallet: Wallet) {\n return {\n getAddress: async () => {\n const accounts = await wallet.getAccounts();\n const accountId = accounts[0]?.accountId;\n\n if (!accountId) {\n throw new USwapError(\"wallet_connection_rejected_by_user\");\n }\n\n return accountId;\n },\n\n getPublicKey: () => {\n throw new USwapError(\"wallet_near_method_not_supported\");\n },\n signAndSendTransactions: async (transactions: { transactions: Transaction[] }) => {\n const result = await wallet.signAndSendTransactions(transactions);\n return result?.[0]?.transaction_outcome.id || \"\";\n },\n\n signDelegateAction: () => {\n throw new USwapError(\"wallet_near_method_not_supported\");\n },\n\n signNep413Message: () => {\n throw new USwapError(\"wallet_near_method_not_supported\");\n },\n\n signTransaction: (params: Transaction) => {\n if (!wallet.signTransaction) {\n throw new USwapError(\"wallet_near_method_not_supported\");\n }\n return wallet.signTransaction(params);\n },\n };\n}\n\nfunction waitForWalletSelection(selector: any, modal: any) {\n return new Promise<void>((resolve) => {\n const subscription = selector.store.observable.subscribe((state: any) => {\n if (state.selectedWalletId) {\n subscription.unsubscribe();\n modal.hide();\n resolve();\n }\n });\n\n modal.show();\n });\n}\n\nasync function getWalletMethods(walletFactories?: WalletModuleFactory[]) {\n const { setupWalletSelector } = await import(\"@near-wallet-selector/core\");\n const { setupModal } = await import(\"@near-wallet-selector/modal-ui-js\");\n\n const contractId = USwapConfig.get(\"integrations\")?.nearWalletSelector?.contractId || \"\";\n const selector = await setupWalletSelector({ modules: [...(walletFactories || [])], network: \"mainnet\" });\n\n const isSignedIn = selector.isSignedIn();\n\n if (!isSignedIn) {\n // Only show modal if not already connected\n const modal = setupModal(selector, { contractId, description: \"Connect your NEAR wallet to SwapKit\" });\n\n await waitForWalletSelection(selector, modal);\n }\n\n const wallet = await selector.wallet();\n const signer = createNearSigner(wallet);\n const toolbox = await getNearToolbox({ signer });\n const address = await signer.getAddress();\n\n const disconnect = async () => {\n try {\n await wallet.signOut();\n } catch (error) {\n throw new USwapError(\"wallet_connection_rejected_by_user\", error);\n }\n };\n\n return { ...toolbox, address, disconnect };\n}\n\nexport const walletSelectorWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletSelector(chains: Chain[], walletFactories?: WalletModuleFactory[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n if (filteredChains.length === 0) {\n throw new USwapError(\"wallet_chain_not_supported\", { chain: chains[0], wallet: WalletOption.WALLET_SELECTOR });\n }\n\n const walletMethods = await getWalletMethods(walletFactories);\n\n addChain({ ...walletMethods, balance: [], chain: Chain.Near, walletType });\n\n return true;\n },\n name: \"connectWalletSelector\",\n supportedChains: [Chain.Near],\n walletType: WalletOption.WALLET_SELECTOR,\n});\n\nexport const WALLET_SELECTOR_SUPPORTED_CHAINS = getWalletSupportedChains(walletSelectorWallet);\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "yCAKA,qDAEA,gBAAS,2BAAO,iBAAuB,gBAAa,kBAAY,wBAChE,yBAAS,+BACT,uBAAS,8BAAc,4BAEvB,SAAS,CAAgB,CAAC,EAAgB,CACxC,MAAO,CACL,WAAY,SAAY,CAEtB,IAAM,GADW,MAAM,EAAO,YAAY,GACf,IAAI,UAE/B,GAAI,CAAC,EACH,MAAM,IAAI,EAAW,oCAAoC,EAG3D,OAAO,GAGT,aAAc,IAAM,CAClB,MAAM,IAAI,EAAW,kCAAkC,GAEzD,wBAAyB,MAAO,IAAkD,CAEhF,OADe,MAAM,EAAO,wBAAwB,CAAY,KAChD,IAAI,oBAAoB,IAAM,IAGhD,mBAAoB,IAAM,CACxB,MAAM,IAAI,EAAW,kCAAkC,GAGzD,kBAAmB,IAAM,CACvB,MAAM,IAAI,EAAW,kCAAkC,GAGzD,gBAAiB,CAAC,IAAwB,CACxC,GAAI,CAAC,EAAO,gBACV,MAAM,IAAI,EAAW,kCAAkC,EAEzD,OAAO,EAAO,gBAAgB,CAAM,EAExC,EAGF,SAAS,CAAsB,CAAC,EAAe,EAAY,CACzD,OAAO,IAAI,QAAc,CAAC,IAAY,CACpC,IAAM,EAAe,EAAS,MAAM,WAAW,UAAU,CAAC,IAAe,CACvE,GAAI,EAAM,iBACR,EAAa,YAAY,EACzB,EAAM,KAAK,EACX,EAAQ,EAEX,EAED,EAAM,KAAK,EACZ,EAGH,eAAe,CAAgB,CAAC,EAAyC,CACvE,IAAQ,uBAAwB,KAAa,uCACrC,cAAe,KAAa,6CAE9B,EAAa,EAAY,IAAI,cAAc,GAAG,oBAAoB,YAAc,GAChF,EAAW,MAAM,EAAoB,CAAE,QAAS,CAAC,GAAI,GAAmB,CAAC,CAAE,EAAG,QAAS,SAAU,CAAC,EAIxG,GAAI,CAFe,EAAS,WAAW,EAEtB,CAEf,IAAM,EAAQ,EAAW,EAAU,CAAE,aAAY,YAAa,qCAAsC,CAAC,EAErG,MAAM,EAAuB,EAAU,CAAK,EAG9C,IAAM,EAAS,MAAM,EAAS,OAAO,EAC/B,EAAS,EAAiB,CAAM,EAChC,EAAU,MAAM,EAAe,CAAE,QAAO,CAAC,EACzC,EAAU,MAAM,EAAO,WAAW,EAUxC,MAAO,IAAK,EAAS,UAAS,WARX,SAAY,CAC7B,GAAI,CACF,MAAM,EAAO,QAAQ,EACrB,MAAO,EAAO,CACd,MAAM,IAAI,EAAW,qCAAsC,CAAK,GAI3B,EAGpC,IAAM,EAAuB,EAAa,CAC/C,QAAS,EAAG,WAAU,kBAAiB,gBACrC,cAAoC,CAAC,EAAiB,EAAyC,CAG7F,GAFuB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEjE,SAAW,EAC5B,MAAM,IAAI,EAAW,6BAA8B,CAAE,MAAO,EAAO,GAAI,OAAQ,EAAa,eAAgB,CAAC,EAG/G,IAAM,EAAgB,MAAM,EAAiB,CAAe,EAI5D,OAFA,EAAS,IAAK,EAAe,QAAS,CAAC,EAAG,MAAO,EAAM,KAAM,YAAW,CAAC,EAElE,IAEX,KAAM,wBACN,gBAAiB,CAAC,EAAM,IAAI,EAC5B,WAAY,EAAa,eAC3B,CAAC,EAEY,EAAmC,EAAyB,CAAoB",
|
|
8
|
+
"debugId": "8F3AF74A721A913F64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/dist/okx.cjs
ADDED
package/dist/okx.cjs.map
ADDED
package/dist/okx.js
ADDED
package/dist/okx.js.map
ADDED
package/dist/onekey.cjs
ADDED
package/dist/onekey.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var z={};O(z,{passkeysWallet:()=>V,PASSKEYS_SUPPORTED_CHAINS:()=>y});module.exports=u(z);var q=require("@tcswap/helpers"),I=require("@tcswap/wallet-core"),A=require("bitcoinjs-lib"),Q=require("sats-connect"),B=require("ts-pattern");F(z,require("@passkeys/core"),module.exports);F(z,require("@passkeys/react"),module.exports);async function m(){let X=q.USwapConfig.get("apiKeys").passkeys,{createWallet:R}=await import("@passkeys/core");return R({appId:X.length>0?X:void 0,providers:{bitcoin:!0,ethereum:!0,solana:!0}})}function k({wallet:X,chain:R}){return B.match(R).with(q.Chain.Bitcoin,async(G)=>{let{getUtxoToolbox:Y}=await import("@tcswap/toolboxes/utxo"),_=await X.getProvider("bitcoin");if(!_)throw new q.USwapError("wallet_passkeys_not_found");let H="",J=()=>Promise.resolve(_),$={getProvider:J,onCancel:()=>{throw new q.USwapError("wallet_passkeys_request_canceled")},onFinish:(L)=>{if(!L.addresses[0])throw new q.USwapError("wallet_passkeys_no_address");H=L.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:Q.BitcoinNetworkType.Mainnet},purposes:[Q.AddressPurpose.Payment]}};await Q.getAddress($);async function K(L){let j,N={getProvider:J,onCancel:()=>{throw new q.USwapError("wallet_passkeys_signature_canceled")},onFinish:(f)=>{j=A.Psbt.fromBase64(f.psbtBase64)},payload:{broadcast:!1,inputsToSign:[{address:H,signingIndexes:L.txInputs.map((f,M)=>M)}],message:"Sign transaction",network:{type:Q.BitcoinNetworkType.Mainnet},psbtBase64:L.toBase64()}};if(await Q.signTransaction(N),!j)throw new q.USwapError("wallet_passkeys_sign_transaction_error");return j}return{...await Y(G,{signer:{getAddress:()=>Promise.resolve(H),signTransaction:K}}),address:H}}).with(...q.EVMChains,async(G)=>{let{getProvider:Y,getEvmToolbox:_}=await import("@tcswap/toolboxes/evm"),{BrowserProvider:H}=await import("ethers"),J=await X.getProvider("ethereum");if(!J)throw new q.USwapError("wallet_passkeys_not_found");let $=await Y(G),K=new H(J,"any");await K.send("eth_requestAccounts",[]);let Z=await K.getSigner(),D=await Z.getAddress(),L=await _(G,{provider:$,signer:Z});try{if(G!==q.Chain.Ethereum){let j=L.getNetworkParams();await q.switchEVMWalletNetwork(K,G,j)}}catch{throw new q.USwapError("wallet_passkeys_failed_to_switch_network",{chain:G})}return{...q.prepareNetworkSwitch({chain:G,provider:K,toolbox:L}),address:D}}).with(q.Chain.Solana,async()=>{let{getSolanaToolbox:G}=await import("@tcswap/toolboxes/solana"),Y=await X.getProvider("solana"),H=(await Y.connect()).publicKey.toString();return{...await G({signer:Y}),address:H,disconnect:async()=>{await Y.disconnect()}}}).otherwise((G)=>{throw new q.USwapError("wallet_passkeys_chain_not_supported",{chain:G})})}var V=I.createWallet({connect:({addChain:X,walletType:R,supportedChains:G})=>async function(_,H){let J=H||await m();if(!J)throw new q.USwapError("wallet_passkeys_instance_missing");let $=q.filterSupportedChains({chains:_,supportedChains:G,walletType:R});return await Promise.all($.map(async(K)=>{try{let Z=await k({chain:K,wallet:J}),{address:D,...L}=Z;X({...L,address:D,chain:K,disconnect:J.disconnect,walletType:q.WalletOption.PASSKEYS})}catch(Z){throw console.error(`Failed to connect ${K} wallet:`,Z),Z}})),!0},name:"connectPasskeys",supportedChains:[...q.EVMChains,q.Chain.Bitcoin,q.Chain.Solana],walletType:q.WalletOption.PASSKEYS}),y=I.getWalletSupportedChains(V);
|
|
2
|
+
|
|
3
|
+
//# debugId=F1E2227DC8BFAD6E64756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/passkeys/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Wallet } from \"@passkeys/core\";\nimport {\n Chain,\n EVMChains,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n USwapConfig,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport type { SolanaProvider } from \"@tcswap/toolboxes/solana\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport {\n AddressPurpose,\n BitcoinNetworkType,\n type GetAddressOptions,\n type GetAddressResponse,\n getAddress,\n type SignTransactionOptions,\n signTransaction as satsSignTransaction,\n} from \"sats-connect\";\nimport { match } from \"ts-pattern\";\n\nasync function getPasskeyWallet() {\n const appId = USwapConfig.get(\"apiKeys\").passkeys;\n const { createWallet } = await import(\"@passkeys/core\");\n\n return createWallet({\n appId: appId.length > 0 ? appId : undefined,\n providers: { bitcoin: true, ethereum: true, solana: true },\n });\n}\n\nfunction getWalletMethods({ wallet, chain: paramChain }: { wallet: Wallet; chain: Chain }) {\n return match(paramChain)\n .with(Chain.Bitcoin, async (chain) => {\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const provider = await wallet.getProvider(\"bitcoin\");\n\n if (!provider) {\n throw new USwapError(\"wallet_passkeys_not_found\");\n }\n\n let address = \"\";\n\n const getProvider = () => Promise.resolve(provider);\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_passkeys_request_canceled\");\n },\n onFinish: (response: GetAddressResponse) => {\n if (!response.addresses[0]) throw new USwapError(\"wallet_passkeys_no_address\");\n address = response.addresses[0].address;\n },\n payload: {\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n purposes: [AddressPurpose.Payment],\n },\n };\n\n // TODO: Towan - probably not needed ?\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_passkeys_signature_canceled\");\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n payload: {\n broadcast: false,\n inputsToSign: [{ address: address, signingIndexes: psbt.txInputs.map((_, index) => index) }],\n message: \"Sign transaction\",\n network: { type: BitcoinNetworkType.Mainnet },\n psbtBase64: psbt.toBase64(),\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new USwapError(\"wallet_passkeys_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = { getAddress: () => Promise.resolve(address), signTransaction };\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n })\n .with(...EVMChains, async (chain) => {\n const { getProvider, getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const walletProvider = await wallet.getProvider(\"ethereum\");\n if (!walletProvider) {\n throw new USwapError(\"wallet_passkeys_not_found\");\n }\n\n const jsonRpcProvider = await getProvider(chain);\n const browserProvider = new BrowserProvider(walletProvider, \"any\");\n\n await browserProvider.send(\"eth_requestAccounts\", []);\n\n const signer = await browserProvider.getSigner();\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(browserProvider, chain, networkParams);\n }\n } catch {\n throw new USwapError(\"wallet_passkeys_failed_to_switch_network\", { chain });\n }\n\n return { ...prepareNetworkSwitch({ chain, provider: browserProvider, toolbox }), address };\n })\n .with(Chain.Solana, async () => {\n const { getSolanaToolbox } = await import(\"@tcswap/toolboxes/solana\");\n const provider = (await wallet.getProvider(\"solana\")) as any as SolanaProvider;\n const providerConnection = await provider.connect();\n const address = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox({ signer: provider });\n\n const disconnect = async () => {\n await provider.disconnect();\n };\n\n return { ...toolbox, address, disconnect };\n })\n .otherwise((chain) => {\n throw new USwapError(\"wallet_passkeys_chain_not_supported\", { chain });\n });\n}\n\nexport const passkeysWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectPasskeys(chains: Chain[], paramWallet?: Wallet) {\n const wallet = paramWallet || (await getPasskeyWallet());\n\n if (!wallet) throw new USwapError(\"wallet_passkeys_instance_missing\");\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n try {\n const walletData = await getWalletMethods({ chain, wallet });\n\n const { address, ...walletMethods } = walletData;\n\n addChain({\n ...walletMethods,\n address,\n chain,\n disconnect: wallet.disconnect,\n walletType: WalletOption.PASSKEYS,\n });\n } catch (error) {\n console.error(`Failed to connect ${chain} wallet:`, error);\n throw error;\n }\n }),\n );\n\n return true;\n },\n name: \"connectPasskeys\",\n supportedChains: [...EVMChains, Chain.Bitcoin, Chain.Solana],\n walletType: WalletOption.PASSKEYS,\n});\n\nexport const PASSKEYS_SUPPORTED_CHAINS = getWalletSupportedChains(passkeysWallet);\nexport * from \"@passkeys/core\";\nexport * from \"@passkeys/react\";\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "F1E2227DC8BFAD6E64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{G as $}from"../chunk-7jtd4aht.js";import{Chain as R,EVMChains as A,filterSupportedChains as N,prepareNetworkSwitch as M,switchEVMWalletNetwork as u,USwapConfig as O,USwapError as J,WalletOption as I}from"@tcswap/helpers";import{createWallet as m,getWalletSupportedChains as k}from"@tcswap/wallet-core";import{Psbt as y}from"bitcoinjs-lib";import{AddressPurpose as T,BitcoinNetworkType as f,getAddress as U,signTransaction as W}from"sats-connect";import{match as x}from"ts-pattern";export*from"@passkeys/core";export*from"@passkeys/react";async function E(){let K=O.get("apiKeys").passkeys,{createWallet:Z}=await import("@passkeys/core");return Z({appId:K.length>0?K:void 0,providers:{bitcoin:!0,ethereum:!0,solana:!0}})}function S({wallet:K,chain:Z}){return x(Z).with(R.Bitcoin,async(q)=>{let{getUtxoToolbox:L}=await import("@tcswap/toolboxes/utxo"),X=await K.getProvider("bitcoin");if(!X)throw new J("wallet_passkeys_not_found");let z="",F=()=>Promise.resolve(X),Y={getProvider:F,onCancel:()=>{throw new J("wallet_passkeys_request_canceled")},onFinish:(H)=>{if(!H.addresses[0])throw new J("wallet_passkeys_no_address");z=H.addresses[0].address},payload:{message:"Address for receiving and sending payments",network:{type:f.Mainnet},purposes:[T.Payment]}};await U(Y);async function G(H){let _,B={getProvider:F,onCancel:()=>{throw new J("wallet_passkeys_signature_canceled")},onFinish:(D)=>{_=y.fromBase64(D.psbtBase64)},payload:{broadcast:!1,inputsToSign:[{address:z,signingIndexes:H.txInputs.map((D,V)=>V)}],message:"Sign transaction",network:{type:f.Mainnet},psbtBase64:H.toBase64()}};if(await W(B),!_)throw new J("wallet_passkeys_sign_transaction_error");return _}return{...await L(q,{signer:{getAddress:()=>Promise.resolve(z),signTransaction:G}}),address:z}}).with(...A,async(q)=>{let{getProvider:L,getEvmToolbox:X}=await import("@tcswap/toolboxes/evm"),{BrowserProvider:z}=await import("ethers"),F=await K.getProvider("ethereum");if(!F)throw new J("wallet_passkeys_not_found");let Y=await L(q),G=new z(F,"any");await G.send("eth_requestAccounts",[]);let Q=await G.getSigner(),j=await Q.getAddress(),H=await X(q,{provider:Y,signer:Q});try{if(q!==R.Ethereum){let _=H.getNetworkParams();await u(G,q,_)}}catch{throw new J("wallet_passkeys_failed_to_switch_network",{chain:q})}return{...M({chain:q,provider:G,toolbox:H}),address:j}}).with(R.Solana,async()=>{let{getSolanaToolbox:q}=await import("@tcswap/toolboxes/solana"),L=await K.getProvider("solana"),z=(await L.connect()).publicKey.toString();return{...await q({signer:L}),address:z,disconnect:async()=>{await L.disconnect()}}}).otherwise((q)=>{throw new J("wallet_passkeys_chain_not_supported",{chain:q})})}var C=m({connect:({addChain:K,walletType:Z,supportedChains:q})=>async function(X,z){let F=z||await E();if(!F)throw new J("wallet_passkeys_instance_missing");let Y=N({chains:X,supportedChains:q,walletType:Z});return await Promise.all(Y.map(async(G)=>{try{let Q=await S({chain:G,wallet:F}),{address:j,...H}=Q;K({...H,address:j,chain:G,disconnect:F.disconnect,walletType:I.PASSKEYS})}catch(Q){throw console.error(`Failed to connect ${G} wallet:`,Q),Q}})),!0},name:"connectPasskeys",supportedChains:[...A,R.Bitcoin,R.Solana],walletType:I.PASSKEYS}),c=k(C);export{C as passkeysWallet,c as PASSKEYS_SUPPORTED_CHAINS};
|
|
2
|
+
|
|
3
|
+
//# debugId=F78072DD65150E4064756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/passkeys/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type { Wallet } from \"@passkeys/core\";\nimport {\n Chain,\n EVMChains,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n USwapConfig,\n USwapError,\n WalletOption,\n} from \"@tcswap/helpers\";\nimport type { SolanaProvider } from \"@tcswap/toolboxes/solana\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport {\n AddressPurpose,\n BitcoinNetworkType,\n type GetAddressOptions,\n type GetAddressResponse,\n getAddress,\n type SignTransactionOptions,\n signTransaction as satsSignTransaction,\n} from \"sats-connect\";\nimport { match } from \"ts-pattern\";\n\nasync function getPasskeyWallet() {\n const appId = USwapConfig.get(\"apiKeys\").passkeys;\n const { createWallet } = await import(\"@passkeys/core\");\n\n return createWallet({\n appId: appId.length > 0 ? appId : undefined,\n providers: { bitcoin: true, ethereum: true, solana: true },\n });\n}\n\nfunction getWalletMethods({ wallet, chain: paramChain }: { wallet: Wallet; chain: Chain }) {\n return match(paramChain)\n .with(Chain.Bitcoin, async (chain) => {\n const { getUtxoToolbox } = await import(\"@tcswap/toolboxes/utxo\");\n const provider = await wallet.getProvider(\"bitcoin\");\n\n if (!provider) {\n throw new USwapError(\"wallet_passkeys_not_found\");\n }\n\n let address = \"\";\n\n const getProvider = () => Promise.resolve(provider);\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_passkeys_request_canceled\");\n },\n onFinish: (response: GetAddressResponse) => {\n if (!response.addresses[0]) throw new USwapError(\"wallet_passkeys_no_address\");\n address = response.addresses[0].address;\n },\n payload: {\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n purposes: [AddressPurpose.Payment],\n },\n };\n\n // TODO: Towan - probably not needed ?\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: Psbt) {\n let signedPsbt: Psbt | undefined;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n onCancel: () => {\n throw new USwapError(\"wallet_passkeys_signature_canceled\");\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n payload: {\n broadcast: false,\n inputsToSign: [{ address: address, signingIndexes: psbt.txInputs.map((_, index) => index) }],\n message: \"Sign transaction\",\n network: { type: BitcoinNetworkType.Mainnet },\n psbtBase64: psbt.toBase64(),\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new USwapError(\"wallet_passkeys_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = { getAddress: () => Promise.resolve(address), signTransaction };\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n })\n .with(...EVMChains, async (chain) => {\n const { getProvider, getEvmToolbox } = await import(\"@tcswap/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const walletProvider = await wallet.getProvider(\"ethereum\");\n if (!walletProvider) {\n throw new USwapError(\"wallet_passkeys_not_found\");\n }\n\n const jsonRpcProvider = await getProvider(chain);\n const browserProvider = new BrowserProvider(walletProvider, \"any\");\n\n await browserProvider.send(\"eth_requestAccounts\", []);\n\n const signer = await browserProvider.getSigner();\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams();\n await switchEVMWalletNetwork(browserProvider, chain, networkParams);\n }\n } catch {\n throw new USwapError(\"wallet_passkeys_failed_to_switch_network\", { chain });\n }\n\n return { ...prepareNetworkSwitch({ chain, provider: browserProvider, toolbox }), address };\n })\n .with(Chain.Solana, async () => {\n const { getSolanaToolbox } = await import(\"@tcswap/toolboxes/solana\");\n const provider = (await wallet.getProvider(\"solana\")) as any as SolanaProvider;\n const providerConnection = await provider.connect();\n const address = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox({ signer: provider });\n\n const disconnect = async () => {\n await provider.disconnect();\n };\n\n return { ...toolbox, address, disconnect };\n })\n .otherwise((chain) => {\n throw new USwapError(\"wallet_passkeys_chain_not_supported\", { chain });\n });\n}\n\nexport const passkeysWallet = createWallet({\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectPasskeys(chains: Chain[], paramWallet?: Wallet) {\n const wallet = paramWallet || (await getPasskeyWallet());\n\n if (!wallet) throw new USwapError(\"wallet_passkeys_instance_missing\");\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n try {\n const walletData = await getWalletMethods({ chain, wallet });\n\n const { address, ...walletMethods } = walletData;\n\n addChain({\n ...walletMethods,\n address,\n chain,\n disconnect: wallet.disconnect,\n walletType: WalletOption.PASSKEYS,\n });\n } catch (error) {\n console.error(`Failed to connect ${chain} wallet:`, error);\n throw error;\n }\n }),\n );\n\n return true;\n },\n name: \"connectPasskeys\",\n supportedChains: [...EVMChains, Chain.Bitcoin, Chain.Solana],\n walletType: WalletOption.PASSKEYS,\n});\n\nexport const PASSKEYS_SUPPORTED_CHAINS = getWalletSupportedChains(passkeysWallet);\nexport * from \"@passkeys/core\";\nexport * from \"@passkeys/react\";\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "F78072DD65150E4064756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/dist/phantom.cjs
ADDED
package/dist/phantom.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var k={};N(k,{radixWallet:()=>G,RADIX_SUPPORTED_CHAINS:()=>S});module.exports=I(k);var j=require("@tcswap/helpers"),Z=require("@tcswap/wallet-core"),G=Z.createWallet({connect:({addChain:Q,supportedChains:O,walletType:J})=>async function(U){let M=j.filterSupportedChains({chains:U,supportedChains:O,walletType:J});if(!j.USwapConfig.get("integrations").radix)throw new j.USwapError("wallet_radix_not_found");return await Promise.all(M.map(async(H)=>{let K=await h();Q({...K,chain:H,walletType:J})})),!0},name:"connectRadixWallet",supportedChains:[j.Chain.Radix],walletType:j.WalletOption.RADIX_WALLET}),S=Z.getWalletSupportedChains(G);async function x(Q){let{GatewayApiClient:O}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:J}=j.USwapConfig.get("integrations").radix,W=O.initialize({applicationName:J,networkId:1}),U=!0,M,V=[],H=await B(W);while(U){let K={address:Q,at_ledger_state:{state_version:H},cursor:M,limit_per_page:100},z=await W.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:K});if(V=V.concat(z.items),z.next_cursor)M=z.next_cursor;else U=!1}return V}function B(Q){return Q.status.getCurrent().then((O)=>O.ledger_state.state_version)}async function C(Q){let{GatewayApiClient:O}=await import("@radixdlt/babylon-gateway-api-sdk"),J=await x(Q),{applicationName:W}=j.USwapConfig.get("integrations").radix,U=O.initialize({applicationName:W,networkId:1}),M=[],V=50,H=[];for(let z=0;z<J.length;z+=50)H.push(J.slice(z,z+50));for(let z of H){let Y=z.map((L)=>L.resource_address),T=await U.state.getEntityDetailsVaultAggregated(Y),$=new Map;for(let L of T)if(L.details!==void 0){let X=L.metadata?.items.find((q)=>q.key==="symbol"),_=X?.value.typed.type==="String"?X.value.typed.value:"?";if(L.details.type==="FungibleResource")$.set(L.address,{decimals:L.details.divisibility,symbol:_})}for(let L of z)if(L.aggregation_level==="Global"){let X=$.get(L.resource_address)||{decimals:0,symbol:"?"},_=j.AssetValue.from({asset:X.symbol!==j.Chain.Radix?`${j.Chain.Radix}.${X.symbol}-${L.resource_address}`:"XRD.XRD",value:L.amount});M.push(_)}}if(!M.some((z)=>z.isGasAsset))return[j.AssetValue.from({chain:j.Chain.Radix}),...M];return M}async function h(){let{RadixDappToolkit:Q}=await import("@radixdlt/radix-dapp-toolkit"),O=j.USwapConfig.get("integrations").radix,J=Q({...O,networkId:O.network.networkId});function W(H){return new Promise((K)=>setTimeout(K,H))}await W(400);function U(){return J.walletApi.getWalletData()?.accounts?.[0]?.address}let M=async()=>{let{DataRequestBuilder:H}=await import("@radixdlt/radix-dapp-toolkit");J.walletApi.setRequestData(H.accounts().exactly(1));let K=await J.walletApi.sendRequest();if(!K)throw new j.USwapError("wallet_radix_no_account");let z=K.unwrapOr(null)?.accounts[0]?.address;if(!z)throw new j.USwapError("wallet_radix_no_account");return z},V=U()||await M();return{address:V,getAddress:U,getBalance:()=>C(V),radixDappToolkit:J,signAndBroadcast:async({manifest:H,message:K})=>{let Y=(await J.walletApi.sendTransaction({message:K,transactionManifest:H})).unwrapOr(null)?.transactionIntentHash;if(!Y)throw new j.USwapError("wallet_radix_transaction_failed");return Y},transfer:(H)=>{throw new j.USwapError("wallet_radix_method_not_supported",{method:"transfer"})}}}
|
|
2
|
+
|
|
3
|
+
//# debugId=A114E109DE4F021964756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/radix/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, filterSupportedChains, USwapConfig, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\n\nexport const radixWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = USwapConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new USwapError(\"wallet_radix_not_found\");\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods();\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectRadixWallet\",\n supportedChains: [Chain.Radix],\n walletType: WalletOption.RADIX_WALLET,\n});\n\nexport const RADIX_SUPPORTED_CHAINS = getWalletSupportedChains(radixWallet);\n\nasync function fetchFungibleResources(address: string): Promise<FungibleResourcesCollectionItem[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const { applicationName } = USwapConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n\n const stateVersion = await currentStateVersion(networkApi);\n\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\n// TODO - @Towan: is that still needed with USwapApi.getChainBalance()?\nasync function getBalance(address: string): Promise<AssetValue[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const resources = await fetchFungibleResources(address);\n const { applicationName } = USwapConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n const hasNativeAsset = balances.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain: Chain.Radix }), ...balances];\n }\n\n return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = USwapConfig.get(\"integrations\").radix;\n const rdt = RadixDappToolkit({ ...dappConfig, networkId: dappConfig.network.networkId });\n\n function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n // TODO: @Towan - Wat is dat?\n await delay(400);\n\n function getAddress() {\n const existingWalletData = rdt.walletApi.getWalletData();\n const account = existingWalletData?.accounts?.[0];\n\n return account?.address;\n }\n\n const getNewAddress = async () => {\n const { DataRequestBuilder } = await import(\"@radixdlt/radix-dapp-toolkit\");\n rdt.walletApi.setRequestData(DataRequestBuilder.accounts().exactly(1));\n const res = await rdt.walletApi.sendRequest();\n\n if (!res) {\n throw new USwapError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new USwapError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n address,\n getAddress,\n getBalance: () => getBalance(address),\n radixDappToolkit: rdt,\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({ message, transactionManifest: manifest });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new USwapError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new USwapError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n };\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "A114E109DE4F021964756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{G as $}from"../chunk-7jtd4aht.js";import{AssetValue as q,Chain as _,filterSupportedChains as S,USwapConfig as Y,USwapError as X,WalletOption as x}from"@tcswap/helpers";import{createWallet as B,getWalletSupportedChains as C}from"@tcswap/wallet-core";var h=B({connect:({addChain:O,supportedChains:M,walletType:H})=>async function(Q){let L=S({chains:Q,supportedChains:M,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(L.map(async(z)=>{let J=await E();O({...J,chain:z,walletType:H})})),!0},name:"connectRadixWallet",supportedChains:[_.Radix],walletType:x.RADIX_WALLET}),f=C(h);async function k(O){let{GatewayApiClient:M}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=M.initialize({applicationName:H,networkId:1}),Q=!0,L,U=[],z=await v(V);while(Q){let J={address:O,at_ledger_state:{state_version:z},cursor:L,limit_per_page:100},j=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:J});if(U=U.concat(j.items),j.next_cursor)L=j.next_cursor;else Q=!1}return U}function v(O){return O.status.getCurrent().then((M)=>M.ledger_state.state_version)}async function D(O){let{GatewayApiClient:M}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await k(O),{applicationName:V}=Y.get("integrations").radix,Q=M.initialize({applicationName:V,networkId:1}),L=[],U=50,z=[];for(let j=0;j<H.length;j+=50)z.push(H.slice(j,j+50));for(let j of z){let Z=j.map((K)=>K.resource_address),I=await Q.state.getEntityDetailsVaultAggregated(Z),T=new Map;for(let K of I)if(K.details!==void 0){let W=K.metadata?.items.find((N)=>N.key==="symbol"),G=W?.value.typed.type==="String"?W.value.typed.value:"?";if(K.details.type==="FungibleResource")T.set(K.address,{decimals:K.details.divisibility,symbol:G})}for(let K of j)if(K.aggregation_level==="Global"){let W=T.get(K.resource_address)||{decimals:0,symbol:"?"},G=q.from({asset:W.symbol!==_.Radix?`${_.Radix}.${W.symbol}-${K.resource_address}`:"XRD.XRD",value:K.amount});L.push(G)}}if(!L.some((j)=>j.isGasAsset))return[q.from({chain:_.Radix}),...L];return L}async function E(){let{RadixDappToolkit:O}=await import("@radixdlt/radix-dapp-toolkit"),M=Y.get("integrations").radix,H=O({...M,networkId:M.network.networkId});function V(z){return new Promise((J)=>setTimeout(J,z))}await V(400);function Q(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let L=async()=>{let{DataRequestBuilder:z}=await import("@radixdlt/radix-dapp-toolkit");H.walletApi.setRequestData(z.accounts().exactly(1));let J=await H.walletApi.sendRequest();if(!J)throw new X("wallet_radix_no_account");let j=J.unwrapOr(null)?.accounts[0]?.address;if(!j)throw new X("wallet_radix_no_account");return j},U=Q()||await L();return{address:U,getAddress:Q,getBalance:()=>D(U),radixDappToolkit:H,signAndBroadcast:async({manifest:z,message:J})=>{let Z=(await H.walletApi.sendTransaction({message:J,transactionManifest:z})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z},transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})}}}export{h as radixWallet,f as RADIX_SUPPORTED_CHAINS};
|
|
2
|
+
|
|
3
|
+
//# debugId=78E302C2E226532A64756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/radix/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Modifications © 2025 Horizontal Systems.\n */\n\nimport type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport { AssetValue, Chain, filterSupportedChains, USwapConfig, USwapError, WalletOption } from \"@tcswap/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@tcswap/wallet-core\";\n\nexport const radixWallet = createWallet({\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = USwapConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new USwapError(\"wallet_radix_not_found\");\n }\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods();\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n name: \"connectRadixWallet\",\n supportedChains: [Chain.Radix],\n walletType: WalletOption.RADIX_WALLET,\n});\n\nexport const RADIX_SUPPORTED_CHAINS = getWalletSupportedChains(radixWallet);\n\nasync function fetchFungibleResources(address: string): Promise<FungibleResourcesCollectionItem[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const { applicationName } = USwapConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n let hasNextPage = true;\n let nextCursor: string | undefined;\n let fungibleResources: FungibleResourcesCollectionItem[] = [];\n\n const stateVersion = await currentStateVersion(networkApi);\n\n while (hasNextPage) {\n const stateEntityFungiblesPageRequest: StateEntityFungiblesPageRequest = {\n address: address,\n at_ledger_state: { state_version: stateVersion },\n cursor: nextCursor,\n limit_per_page: 100,\n };\n\n const stateEntityFungiblesPageResponse: StateEntityFungiblesPageResponse =\n await networkApi.state.innerClient.entityFungiblesPage({\n stateEntityFungiblesPageRequest: stateEntityFungiblesPageRequest,\n });\n\n fungibleResources = fungibleResources.concat(stateEntityFungiblesPageResponse.items);\n\n if (stateEntityFungiblesPageResponse.next_cursor) {\n nextCursor = stateEntityFungiblesPageResponse.next_cursor;\n } else {\n hasNextPage = false;\n }\n }\n return fungibleResources;\n}\n\nfunction currentStateVersion(networkApi: GatewayApiClient) {\n return networkApi.status.getCurrent().then((status) => status.ledger_state.state_version);\n}\n\n// TODO - @Towan: is that still needed with USwapApi.getChainBalance()?\nasync function getBalance(address: string): Promise<AssetValue[]> {\n const { GatewayApiClient } = await import(\"@radixdlt/babylon-gateway-api-sdk\");\n const resources = await fetchFungibleResources(address);\n const { applicationName } = USwapConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ applicationName, networkId: 1 });\n\n const balances: AssetValue[] = [];\n const BATCH_SIZE = 50;\n\n // Split resources into batches of up to 50 items\n const resourceBatches: FungibleResourcesCollectionItem[][] = [];\n for (let i = 0; i < resources.length; i += BATCH_SIZE) {\n resourceBatches.push(resources.slice(i, i + BATCH_SIZE));\n }\n\n for (const batch of resourceBatches) {\n const addresses = batch.map((item) => item.resource_address);\n const response: StateEntityDetailsVaultResponseItem[] =\n await networkApi.state.getEntityDetailsVaultAggregated(addresses);\n\n const divisibilities = new Map<string, { decimals: number; symbol: string }>();\n\n for (const result of response) {\n if (result.details !== undefined) {\n const metaDataSymbol = result.metadata?.items.find((item) => item.key === \"symbol\");\n const symbol = metaDataSymbol?.value.typed.type === \"String\" ? metaDataSymbol.value.typed.value : \"?\";\n\n if (result.details.type === \"FungibleResource\") {\n divisibilities.set(result.address, { decimals: result.details.divisibility, symbol });\n }\n }\n }\n\n for (const item of batch) {\n if (item.aggregation_level === \"Global\") {\n const assetInfo = divisibilities.get(item.resource_address) || { decimals: 0, symbol: \"?\" };\n\n const balance = AssetValue.from({\n asset:\n assetInfo.symbol !== Chain.Radix\n ? `${Chain.Radix}.${assetInfo.symbol}-${item.resource_address}`\n : \"XRD.XRD\",\n value: item.amount,\n });\n balances.push(balance);\n }\n }\n }\n\n const hasNativeAsset = balances.some((asset) => asset.isGasAsset);\n if (!hasNativeAsset) {\n return [AssetValue.from({ chain: Chain.Radix }), ...balances];\n }\n\n return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = USwapConfig.get(\"integrations\").radix;\n const rdt = RadixDappToolkit({ ...dappConfig, networkId: dappConfig.network.networkId });\n\n function delay(ms: number) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n // TODO: @Towan - Wat is dat?\n await delay(400);\n\n function getAddress() {\n const existingWalletData = rdt.walletApi.getWalletData();\n const account = existingWalletData?.accounts?.[0];\n\n return account?.address;\n }\n\n const getNewAddress = async () => {\n const { DataRequestBuilder } = await import(\"@radixdlt/radix-dapp-toolkit\");\n rdt.walletApi.setRequestData(DataRequestBuilder.accounts().exactly(1));\n const res = await rdt.walletApi.sendRequest();\n\n if (!res) {\n throw new USwapError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new USwapError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n address,\n getAddress,\n getBalance: () => getBalance(address),\n radixDappToolkit: rdt,\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({ message, transactionManifest: manifest });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new USwapError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new USwapError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n };\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "78E302C2E226532A64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
package/dist/talisman.js
ADDED
package/dist/trezor.cjs
ADDED
package/dist/trezor.js
ADDED
package/dist/tronlink.js
ADDED
package/dist/vultisig.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var x5={};D5(x5,{walletconnectWallet:()=>$5,WC_SUPPORTED_CHAINS:()=>_5,TRON_MAINNET_ID:()=>c,THORCHAIN_MAINNET_ID:()=>P,POLYGON_MAINNET_ID:()=>l,OPTIMISM_MAINNET_ID:()=>h,NEAR_TESTNET_ID:()=>t,NEAR_MAINNET_ID:()=>I,MONAD_MAINNET_ID:()=>i,MAYACHAIN_MAINNET_ID:()=>N,KUJIRA_MAINNET_ID:()=>g,ETHEREUM_MAINNET_ID:()=>m,DEFAULT_TRON_METHODS:()=>y5,DEFAULT_TRON_EVENTS:()=>z5,DEFAULT_SOLANA_METHODS:()=>L5,DEFAULT_SOLANA_EVENTS:()=>j5,DEFAULT_RELAY_URL:()=>r,DEFAULT_POLKADOT_METHODS:()=>O5,DEFAULT_POLKADOT_EVENTS:()=>F5,DEFAULT_NEAR_METHODS:()=>f5,DEFAULT_NEAR_EVENTS:()=>K5,DEFAULT_LOGGER:()=>B,DEFAULT_EIP_155_EVENTS:()=>n,DEFAULT_EIP155_METHODS:()=>W,DEFAULT_COSMOS_METHODS:()=>E,DEFAULT_COSMOS_EVENTS:()=>w5,DEFAULT_APP_METADATA:()=>V5,COSMOS_HUB_MAINNET_ID:()=>d,BSC_MAINNET_ID:()=>M,BERACHAIN_MAINNET_ID:()=>o,BASE_MAINNET_ID:()=>s,AVALANCHE_MAINNET_ID:()=>A,AURORA_MAINNET_ID:()=>e,ARBITRUM_ONE_MAINNET_ID:()=>C});module.exports=R5(x5);var L=require("@tcswap/helpers"),H=require("@tcswap/wallet-core");var q=require("@tcswap/helpers"),v5=require("ethers");var K=require("@tcswap/helpers");var u=(j,O)=>{return(O.find((Q)=>Q.startsWith(J(j)))||"")?.split(":")?.[2]||""},J=(j)=>{switch(j){case K.Chain.Avalanche:return A;case K.Chain.Aurora:return e;case K.Chain.Base:return s;case K.Chain.BinanceSmartChain:return M;case K.Chain.Berachain:return o;case K.Chain.Monad:return i;case K.Chain.Ethereum:return m;case K.Chain.THORChain:return P;case K.Chain.Arbitrum:return C;case K.Chain.Optimism:return h;case K.Chain.Polygon:return l;case K.Chain.Maya:return N;case K.Chain.Cosmos:return d;case K.Chain.Kujira:return g;case K.Chain.Near:{let{isStagenet:O}=K.USwapConfig.get("envs");return O?t:I}case K.Chain.Tron:return c;default:return""}};class a extends v5.AbstractSigner{address;chain;walletconnect;provider;constructor({chain:j,provider:O,walletconnect:F}){super(O);this.chain=j,this.walletconnect=F,this.provider=O,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new q.USwapError("wallet_walletconnect_connection_not_established");if(!this.address)this.address=u(this.chain,this.walletconnect.accounts||[]);return this.address};signMessage=async(j)=>{let O=await this.walletconnect?.client.request({chainId:J(this.chain),request:{method:"eth_sign",params:[j]},topic:this.walletconnect.session.topic||""});return O.startsWith("0x")?O:`0x${O}`};signTransaction=()=>{throw new q.USwapError("wallet_walletconnect_method_not_supported",{method:"signTransaction"})};signTypedData=()=>{throw new q.USwapError("wallet_walletconnect_method_not_supported",{method:"signTypedData"})};sendTransaction=async({from:j,to:O,value:F,data:y})=>{let{toHexString:Q}=await import("@tcswap/toolboxes/evm"),f={data:y,from:j,to:O,value:Q(BigInt(F||0))};return await this.walletconnect?.client.request({chainId:J(this.chain),request:{method:"eth_sendTransaction",params:[f]},topic:this.walletconnect.session.topic})};connect=(j)=>{if(!j)throw new q.USwapError({errorKey:"wallet_provider_not_found",info:{chain:this.chain,wallet:q.WalletOption.WALLETCONNECT}});return new a({chain:this.chain,provider:j,walletconnect:this.walletconnect})}}var G5=async({chain:j,walletconnect:O,provider:F})=>new a({chain:j,provider:F,walletconnect:O});var Q5=require("@tcswap/helpers");var r5=(j)=>{let O=[];for(let F of j){let[y]=F.split(":");if(y&&!O.includes(y))O.push(y)}return O},B5=(j)=>{switch(j){case"eip155":return Object.values(W);case"cosmos":return Object.values(E);case"solana":return Object.values(L5);case"polkadot":return Object.values(O5);case"near":return Object.values(f5);case"tron":return Object.values(y5);default:throw new Q5.USwapError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:j}})}},H5=(j)=>{switch(j){case"eip155":return Object.values(n);case"cosmos":return[];case"solana":return Object.values(j5);case"polkadot":return Object.values(F5);case"near":return Object.values(K5);case"tron":return Object.values(z5);default:throw new Q5.USwapError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:j}})}},J5=(j)=>{let O=r5(j);return Object.fromEntries(O.map((F)=>[F,{chains:j.filter((y)=>y.startsWith(F)),events:H5(F),methods:B5(F)}]))};var $5=H.createWallet({connect:({addChain:j,supportedChains:O,walletType:F})=>async function(Q,f){let z=L.filterSupportedChains({chains:Q,supportedChains:O,walletType:F}),{walletConnectProjectId:Z}=L.USwapConfig.get("apiKeys");if(!Z)throw new L.USwapError("wallet_walletconnect_project_id_not_specified");let V=await T5(z,Z,f);if(!V)throw new L.USwapError("wallet_walletconnect_connection_not_established");let{accounts:k}=V;return await Promise.all(z.map(async(X)=>{let v=u(X,k||[]),$=await S5({address:v,chain:X,walletconnect:V});j({...$,address:v,chain:X,disconnect:V.disconnect,walletType:L.WalletOption.WALLETCONNECT})})),!0},name:"connectWalletconnect",supportedChains:[L.Chain.Arbitrum,L.Chain.Aurora,L.Chain.Avalanche,L.Chain.Base,L.Chain.Berachain,L.Chain.BinanceSmartChain,L.Chain.Cosmos,L.Chain.Ethereum,L.Chain.Kujira,L.Chain.Maya,L.Chain.Monad,L.Chain.Near,L.Chain.Optimism,L.Chain.Polygon,L.Chain.THORChain,L.Chain.Tron,L.Chain.XLayer],walletType:L.WalletOption.WALLETCONNECT}),_5=H.getWalletSupportedChains($5);async function S5({chain:j,walletconnect:O,address:F}){let y=O?.session;if(!y)throw new L.USwapError("wallet_walletconnect_connection_not_established");switch(j){case L.Chain.Arbitrum:case L.Chain.Avalanche:case L.Chain.Base:case L.Chain.BinanceSmartChain:case L.Chain.Ethereum:case L.Chain.Monad:case L.Chain.Optimism:case L.Chain.Polygon:case L.Chain.XLayer:{let{getProvider:Q,getEvmToolbox:f}=await import("@tcswap/toolboxes/evm"),z=await Q(j),Z=await G5({chain:j,provider:z,walletconnect:O});return await f(j,{provider:z,signer:Z})}case L.Chain.THORChain:{let{SignMode:Q}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:f}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),z=await import("@cosmjs/proto-signing"),Z=z.encodePubkey??z.default?.encodePubkey,V=z.makeAuthInfoBytes??z.default?.makeAuthInfoBytes,X=(await import("@cosmjs/amino")).makeSignDoc??z.default?.makeSignDoc,{getCosmosToolbox:v,buildAminoMsg:$,buildEncodedTxBody:U,createStargateClient:R,fromBase64:D,getDefaultChainFee:w,parseAminoMessageForDirectSigning:_}=await import("@tcswap/toolboxes/cosmos"),Y=await v(j),p=w(j),S=(G)=>O?.client.request({chainId:P,request:{method:"cosmos_signAmino",params:{signDoc:G,signerAddress:F}},topic:y.topic});async function X5({assetValue:G,memo:T,...b5}){let b=await Y.getAccount(F);if(!b)throw new L.USwapError({errorKey:"wallet_missing_params",info:{account:b}});if(!b.pubkey)throw new L.USwapError({errorKey:"wallet_missing_params",info:{account:b,pubkey:b?.pubkey}});let{accountNumber:q5,sequence:Z5=0}=b,k5=[$({...b5,assetValue:G,memo:T,sender:F})],Y5=X(k5,p,G.chainId,T,q5?.toString(),Z5?.toString()||"0"),x=await S(Y5),P5=await U({chain:L.Chain.THORChain,memo:T||"",msgs:k5.map(_)}),U5=Z(b.pubkey),p5=V([{pubkey:U5,sequence:Z5}],p.amount,Number.parseInt(p.gas,10),void 0,void 0,Q.SIGN_MODE_LEGACY_AMINO_JSON),u5=f.fromPartial({authInfoBytes:p5,bodyBytes:P5,signatures:[D(typeof x.signature==="string"?x.signature:x.signature.signature)]}),W5=f.encode(u5).finish(),E5=await L.getRPCUrl(L.Chain.THORChain);return(await(await R(E5)).broadcastTx(W5)).transactionHash}return{...Y,deposit:(G)=>X5(G),transfer:(G)=>X5(G)}}case L.Chain.Near:{let{getNearToolbox:Q}=await import("@tcswap/toolboxes/near"),{DEFAULT_NEAR_METHODS:f}=await import("../chunk-ae6bkfs5.js");return await Q({signer:{getAddress(){return Promise.resolve(F)},getPublicKey(){return Promise.reject(new L.USwapError("wallet_walletconnect_method_not_supported",{method:"getPublicKey"}))},signDelegateAction(V){return Promise.reject(new L.USwapError("wallet_walletconnect_method_not_supported",{method:"signDelegateAction"}))},signNep413Message(V,k,X,v,$){return Promise.reject(new L.USwapError("wallet_walletconnect_method_not_supported",{method:"signNep413Message"}))},async signTransaction(V){if(!O)throw new L.USwapError("wallet_walletconnect_connection_not_established");let k=await O.client.request({chainId:J(L.Chain.Near),request:{method:f.NEAR_SIGN_AND_SEND_TRANSACTION,params:{transaction:V}},topic:y.topic});return[new Uint8Array(32),k]}}})}case L.Chain.Tron:{let{createTronToolbox:Q}=await import("@tcswap/toolboxes/tron"),{DEFAULT_TRON_METHODS:f}=await import("../chunk-ae6bkfs5.js");return await Q({signer:{getAddress(){return Promise.resolve(F)},async signTransaction(V){if(!O)throw new L.USwapError("wallet_walletconnect_connection_not_established");return await O.client.request({chainId:J(L.Chain.Tron),request:{method:f.TRON_SIGN_TRANSACTION,params:{transaction:V}},topic:y.topic})}}})}default:throw new L.USwapError({errorKey:"wallet_chain_not_supported",info:{chain:j,wallet:L.WalletOption.WALLETCONNECT}})}}async function T5(j,O,F){let y,Q,f,z;try{let Z=J5(j.map(J)),{SignClient:V}=await import("@walletconnect/sign-client"),{WalletConnectModal:k}=await import("@walletconnect/modal"),X=await V.init({logger:B,metadata:F?.metadata||V5,projectId:O,relayUrl:r,...F?.core}),v=new k({logger:B,projectId:O,relayUrl:r,...F?.core}),$=(await X.session.getAll())[0];if($)await X.disconnect({reason:{code:0,message:"Resetting session"},topic:$.topic});let{uri:U,approval:R}=await X.connect({requiredNamespaces:Z});if(U){let w=function(_){let Y=[];for(let[p,S]of Object.entries(_.namespaces))Y.push(...S.accounts);return Y};v.openModal({uri:U}),f=await R(),v.closeModal(),z=w(f)}let D=async()=>{f&&await X.disconnect({reason:{code:0,message:"User disconnected"},topic:f.topic})};if(!f)throw new L.USwapError("wallet_walletconnect_connection_not_established");return{accounts:z,client:X,disconnect:D,session:f,signer:Q}}catch{}finally{if(y)y.closeModal()}return}
|
|
2
|
+
|
|
3
|
+
//# debugId=B88D8B65AEE5069664756E2164756E21
|
|
4
|
+
//# sourceMappingURL=index.cjs.map
|