@swapkit/wallets 4.0.0-beta.38 → 4.0.0-beta.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/{chunk-yah6cf33.js → chunk-0rgqnhd7.js} +1 -0
  2. package/dist/chunk-2aa1w78q.js +1 -0
  3. package/dist/chunk-31bmhjxx.js +4 -0
  4. package/dist/chunk-31bmhjxx.js.map +10 -0
  5. package/dist/chunk-5mq0kpmy.js +5 -0
  6. package/dist/chunk-5mq0kpmy.js.map +10 -0
  7. package/dist/{chunk-bexr8da2.js → chunk-9sjqewve.js} +2 -1
  8. package/dist/{chunk-th8ggrmx.js → chunk-c11abmv4.js} +4 -3
  9. package/dist/{chunk-th8ggrmx.js.map → chunk-c11abmv4.js.map} +1 -1
  10. package/dist/{chunk-0qaxr89s.js → chunk-cgt2fexr.js} +3 -2
  11. package/dist/{chunk-0qaxr89s.js.map → chunk-cgt2fexr.js.map} +1 -1
  12. package/dist/chunk-etm8zfkk.js +4 -0
  13. package/dist/chunk-etm8zfkk.js.map +10 -0
  14. package/dist/{chunk-dcj9twam.js → chunk-hafkx3bw.js} +3 -2
  15. package/dist/{chunk-dcj9twam.js.map → chunk-hafkx3bw.js.map} +1 -1
  16. package/dist/chunk-qh8q7xr1.js +4 -0
  17. package/dist/chunk-qh8q7xr1.js.map +10 -0
  18. package/dist/{chunk-qwd1kp32.js → chunk-r308an05.js} +3 -2
  19. package/dist/{chunk-qwd1kp32.js.map → chunk-r308an05.js.map} +1 -1
  20. package/dist/chunk-sn6pgje5.js +1 -0
  21. package/dist/chunk-vb4wtm2w.js +1 -0
  22. package/dist/chunk-wfattb4a.js +1 -0
  23. package/dist/src/bitget/index.cjs +1 -0
  24. package/dist/src/bitget/index.js +3 -2
  25. package/dist/src/bitget/index.js.map +1 -1
  26. package/dist/src/coinbase/index.cjs +1 -0
  27. package/dist/src/coinbase/index.js +3 -2
  28. package/dist/src/coinbase/index.js.map +1 -1
  29. package/dist/src/cosmostation/index.cjs +1 -0
  30. package/dist/src/cosmostation/index.js +3 -2
  31. package/dist/src/cosmostation/index.js.map +1 -1
  32. package/dist/src/ctrl/index.cjs +1 -0
  33. package/dist/src/ctrl/index.js +3 -2
  34. package/dist/src/ctrl/index.js.map +2 -2
  35. package/dist/src/evm-extensions/index.cjs +1 -0
  36. package/dist/src/evm-extensions/index.js +3 -2
  37. package/dist/src/evm-extensions/index.js.map +1 -1
  38. package/dist/src/exodus/index.cjs +1 -0
  39. package/dist/src/exodus/index.js +3 -2
  40. package/dist/src/exodus/index.js.map +1 -1
  41. package/dist/src/index.cjs +1 -0
  42. package/dist/src/index.js +3 -2
  43. package/dist/src/index.js.map +1 -1
  44. package/dist/src/keepkey/index.cjs +3 -2
  45. package/dist/src/keepkey/index.cjs.map +4 -5
  46. package/dist/src/keepkey/index.js +3 -2
  47. package/dist/src/keepkey/index.js.map +4 -5
  48. package/dist/src/keepkey-bex/index.cjs +3 -2
  49. package/dist/src/keepkey-bex/index.cjs.map +3 -3
  50. package/dist/src/keepkey-bex/index.js +3 -2
  51. package/dist/src/keepkey-bex/index.js.map +3 -3
  52. package/dist/src/keplr/index.cjs +1 -0
  53. package/dist/src/keplr/index.js +3 -2
  54. package/dist/src/keplr/index.js.map +1 -1
  55. package/dist/src/keystore/index.cjs +1 -0
  56. package/dist/src/keystore/index.js +3 -2
  57. package/dist/src/keystore/index.js.map +1 -1
  58. package/dist/src/ledger/index.cjs +1 -0
  59. package/dist/src/ledger/index.js +3 -2
  60. package/dist/src/ledger/index.js.map +1 -1
  61. package/dist/src/okx/index.cjs +1 -0
  62. package/dist/src/okx/index.js +3 -2
  63. package/dist/src/okx/index.js.map +1 -1
  64. package/dist/src/onekey/index.cjs +1 -0
  65. package/dist/src/onekey/index.js +3 -2
  66. package/dist/src/onekey/index.js.map +1 -1
  67. package/dist/src/phantom/index.cjs +1 -0
  68. package/dist/src/phantom/index.js +3 -2
  69. package/dist/src/phantom/index.js.map +1 -1
  70. package/dist/src/polkadotjs/index.cjs +1 -0
  71. package/dist/src/polkadotjs/index.js +3 -2
  72. package/dist/src/polkadotjs/index.js.map +1 -1
  73. package/dist/src/radix/index.cjs +1 -0
  74. package/dist/src/radix/index.js +3 -2
  75. package/dist/src/radix/index.js.map +1 -1
  76. package/dist/src/talisman/index.cjs +1 -0
  77. package/dist/src/talisman/index.js +3 -2
  78. package/dist/src/talisman/index.js.map +1 -1
  79. package/dist/src/trezor/index.cjs +1 -0
  80. package/dist/src/trezor/index.js +3 -2
  81. package/dist/src/trezor/index.js.map +1 -1
  82. package/dist/src/walletconnect/index.cjs +1 -0
  83. package/dist/src/walletconnect/index.js +3 -2
  84. package/dist/src/walletconnect/index.js.map +1 -1
  85. package/package.json +3 -3
  86. package/src/keepkey/chains/ripple.ts +118 -0
  87. package/src/keepkey/coins.ts +1 -0
  88. package/src/keepkey/index.ts +5 -0
  89. package/src/keepkey-bex/index.ts +1 -0
  90. /package/dist/{chunk-yah6cf33.js.map → chunk-0rgqnhd7.js.map} +0 -0
  91. /package/dist/{chunk-bexr8da2.js.map → chunk-9sjqewve.js.map} +0 -0
@@ -5,6 +5,6 @@
5
5
  "import {\n Chain,\n type DerivationPathArray,\n FeeOption,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n derivationPathToString,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { UTXOToolboxes, UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Psbt } from \"bitcoinjs-lib\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nfunction getScriptType(derivationPath: DerivationPathArray) {\n switch (derivationPath[0]) {\n case 84:\n return { input: \"SPENDWITNESS\", output: \"PAYTOWITNESS\" } as const;\n case 49:\n return { input: \"SPENDP2SHWITNESS\", output: \"PAYTOP2SHWITNESS\" } as const;\n case 44:\n return { input: \"SPENDADDRESS\", output: \"PAYTOADDRESS\" } as const;\n default:\n return null;\n }\n}\n\nasync function getTrezorWallet<T extends Chain>({\n chain,\n derivationPath,\n}: { chain: T; derivationPath: DerivationPathArray }) {\n switch (chain) {\n case Chain.BinanceSmartChain:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Base:\n case Chain.Ethereum: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { getEVMSigner } = await import(\"./evmSigner\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ chain, derivationPath, provider });\n const address = await signer.getAddress();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Bitcoin:\n case Chain.BitcoinCash:\n case Chain.Dash:\n case Chain.Dogecoin:\n case Chain.Litecoin: {\n const { toCashAddress, getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const scriptType = getScriptType(derivationPath);\n\n if (!scriptType) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_derivation_path_not_supported\",\n info: { derivationPath },\n });\n }\n\n const coin = chain.toLowerCase();\n\n const getAddress = async (path: DerivationPathArray = derivationPath) => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success, payload } = await TrezorConnect.getAddress({\n path: derivationPathToString(path),\n coin,\n });\n\n if (!success) {\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_get_address\",\n info: {\n chain,\n error: (payload as { error: string; code?: string }).error || \"Unknown error\",\n },\n });\n }\n\n if (chain === Chain.BitcoinCash) {\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n return toolbox.stripPrefix(payload.address);\n }\n\n return payload.address;\n };\n\n const address = await getAddress();\n\n const signTransaction = async (psbt: Psbt, inputs: UTXOType[], memo = \"\") => {\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const address_n = derivationPath.map((pathElement, index) =>\n index < 3 ? ((pathElement as number) | 0x80000000) >>> 0 : (pathElement as number),\n );\n const toolbox = await getUtxoToolbox(chain as Chain.BitcoinCash);\n\n const result = await TrezorConnect.signTransaction({\n coin,\n inputs: inputs.map(({ hash, index, value }) => ({\n // Hardens the first 3 elements of the derivation path - required by trezor\n address_n,\n prev_hash: hash,\n prev_index: index,\n // object needs amount but does not use it for signing\n amount: value,\n script_type: scriptType.input,\n })),\n\n // Lint is not happy with the type of txOutputs\n outputs: psbt.txOutputs.map((output: any) => {\n const outputAddress =\n chain === Chain.BitcoinCash && output.address\n ? toolbox.stripPrefix(toCashAddress(output.address))\n : output.address;\n\n const isChangeAddress = outputAddress === address;\n\n // OP_RETURN\n if (!output.address) {\n return {\n amount: \"0\",\n op_return_data: Buffer.from(memo).toString(\"hex\"),\n script_type: \"PAYTOOPRETURN\",\n };\n }\n\n return isChangeAddress\n ? { amount: output.value, address_n, script_type: scriptType.output }\n : { amount: output.value, address: outputAddress, script_type: \"PAYTOADDRESS\" };\n }),\n });\n\n if (result.success) {\n return result.payload.serializedTx;\n }\n\n throw new SwapKitError({\n errorKey: \"wallet_trezor_failed_to_sign_transaction\",\n info: {\n chain,\n error: (result.payload as { error: string; code?: string }).error,\n },\n });\n };\n\n const transfer = async ({\n recipient,\n feeOptionKey,\n feeRate: paramFeeRate,\n memo,\n ...rest\n }: GenericTransferParams) => {\n if (!(address && recipient)) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TREZOR, memo, address, recipient },\n });\n }\n\n const toolbox = await getUtxoToolbox(chain);\n\n const feeRate =\n paramFeeRate || (await toolbox.getFeeRates())[feeOptionKey || FeeOption.Fast];\n\n const createTxMethod =\n chain === Chain.BitcoinCash\n ? (toolbox as UTXOToolboxes[\"BCH\"]).buildTx\n : (toolbox as UTXOToolboxes[\"BTC\"]).createTransaction;\n\n const { psbt, inputs } = await createTxMethod({\n ...rest,\n memo,\n recipient,\n feeRate,\n sender: address,\n fetchTxHex: true,\n });\n\n const txHex = await signTransaction(psbt, inputs, memo);\n const tx = await toolbox.broadcastTx(txHex);\n\n return tx;\n };\n\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address, transfer, signTransaction };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n}\n\nexport const trezorWallet = createWallet({\n name: \"connectTrezor\",\n walletType: WalletOption.TREZOR,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.BitcoinCash,\n Chain.Dash,\n Chain.Dogecoin,\n Chain.Ethereum,\n Chain.Litecoin,\n Chain.Optimism,\n Chain.Polygon,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTrezor(chains: Chain[], derivationPath: DerivationPathArray) {\n const [chain] = filterSupportedChains({ chains, supportedChains, walletType });\n if (!chain) {\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TREZOR },\n });\n }\n\n const TrezorConnect = (await import(\"@trezor/connect-web\")).default;\n const { success } = await TrezorConnect.getDeviceState();\n\n if (!success) {\n const trezorConfig = SKConfig.get(\"integrations\").trezor;\n const manifest = trezorConfig\n ? {\n ...trezorConfig,\n appName: (trezorConfig as any).appName || \"SwapKit\",\n }\n : {\n appUrl: \"\",\n email: \"\",\n appName: \"SwapKit\",\n };\n TrezorConnect.init({ lazyLoad: true, manifest });\n }\n\n const wallet = await getTrezorWallet({ chain, derivationPath });\n\n addChain({ ...wallet, chain, walletType });\n\n return true;\n },\n});\n\nexport const TREZOR_SUPPORTED_CHAINS = getWalletSupportedChains(trezorWallet);\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "C709440C56578CE864756E2164756E21",
8
+ "debugId": "F15B3B3F6347580D64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,4 @@
1
1
  var r5={};E5(r5,{walletconnectWallet:()=>Z5,WC_SUPPORTED_CHAINS:()=>D5,THORCHAIN_MAINNET_ID:()=>k,POLYGON_MAINNET_ID:()=>s,OPTIMISM_MAINNET_ID:()=>l,NEAR_TESTNET_ID:()=>c,NEAR_MAINNET_ID:()=>e,MAYACHAIN_MAINNET_ID:()=>h,KUJIRA_MAINNET_ID:()=>d,ETHEREUM_MAINNET_ID:()=>g,DEFAULT_SOLANA_METHODS:()=>a,DEFAULT_SOLANA_EVENTS:()=>n,DEFAULT_RELAY_URL:()=>T,DEFAULT_POLKADOT_METHODS:()=>L5,DEFAULT_POLKADOT_EVENTS:()=>O5,DEFAULT_NEAR_METHODS:()=>j5,DEFAULT_NEAR_EVENTS:()=>F5,DEFAULT_LOGGER:()=>u,DEFAULT_EIP_155_EVENTS:()=>o,DEFAULT_EIP155_METHODS:()=>r,DEFAULT_COSMOS_METHODS:()=>H,DEFAULT_COSMOS_EVENTS:()=>_5,DEFAULT_APP_METADATA:()=>p5,COSMOS_HUB_MAINNET_ID:()=>C,BSC_MAINNET_ID:()=>A,BASE_MAINNET_ID:()=>t,AVALANCHE_MAINNET_ID:()=>N,ARBITRUM_ONE_MAINNET_ID:()=>I});module.exports=W5(r5);var L=require("@swapkit/helpers");var v=require("@swapkit/helpers"),z5=require("ethers");var U=require("@swapkit/helpers");var B=(O,j)=>{return(j.find((V)=>V.startsWith(Y(O)))||"")?.split(":")?.[2]||""},Y=(O)=>{switch(O){case U.Chain.Avalanche:return N;case U.Chain.Base:return t;case U.Chain.BinanceSmartChain:return A;case U.Chain.Ethereum:return g;case U.Chain.THORChain:return k;case U.Chain.Arbitrum:return I;case U.Chain.Optimism:return l;case U.Chain.Polygon:return s;case U.Chain.Maya:return h;case U.Chain.Cosmos:return C;case U.Chain.Kujira:return d;case U.Chain.Near:{let{isStagenet:j}=U.SKConfig.get("envs");return j?c:e}default:return""}};class i extends z5.AbstractSigner{address;chain;walletconnect;provider;constructor({chain:O,provider:j,walletconnect:F}){super(j);this.chain=O,this.walletconnect=F,this.provider=j,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new v.SwapKitError("wallet_walletconnect_connection_not_established");if(!this.address)this.address=B(this.chain,this.walletconnect.accounts||[]);return this.address};signMessage=async(O)=>{let j=await this.walletconnect?.client.request({chainId:Y(this.chain),topic:this.walletconnect.session.topic||"",request:{method:"eth_sign",params:[O]}});return j.startsWith("0x")?j:`0x${j}`};signTransaction=()=>{throw new v.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signTransaction"})};signTypedData=()=>{throw new v.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signTypedData"})};sendTransaction=async({from:O,to:j,value:F,data:f})=>{let{toHexString:V}=await import("@swapkit/toolboxes/evm"),p={from:O,to:j,value:V(BigInt(F||0)),data:f};return await this.walletconnect?.client.request({chainId:Y(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[p]}})};connect=(O)=>{if(!O)throw new v.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:v.WalletOption.WALLETCONNECT,chain:this.chain}});return new i({chain:this.chain,walletconnect:this.walletconnect,provider:O})}}var Q5=async({chain:O,walletconnect:j,provider:F})=>new i({chain:O,walletconnect:j,provider:F});var f5=require("@swapkit/helpers");var b5=(O)=>{let j=[];for(let F of O){let[f]=F.split(":");if(f&&!j.includes(f))j.push(f)}return j},k5=(O)=>{switch(O){case"eip155":return Object.values(r);case"cosmos":return Object.values(H);case"solana":return Object.values(a);case"polkadot":return Object.values(L5);case"near":return Object.values(j5);default:throw new f5.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:O}})}},P5=(O)=>{switch(O){case"eip155":return Object.values(o);case"cosmos":return[];case"solana":return Object.values(n);case"polkadot":return Object.values(O5);case"near":return Object.values(F5);default:throw new f5.SwapKitError({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:O}})}},X5=(O)=>{let j=b5(O);return Object.fromEntries(j.map((F)=>[F,{methods:k5(F),chains:O.filter((f)=>f.startsWith(F)),events:P5(F)}]))};var Z5=L.createWallet({name:"connectWalletconnect",walletType:L.WalletOption.WALLETCONNECT,supportedChains:[L.Chain.Arbitrum,L.Chain.Avalanche,L.Chain.Base,L.Chain.BinanceSmartChain,L.Chain.Cosmos,L.Chain.Ethereum,L.Chain.Kujira,L.Chain.Maya,L.Chain.Near,L.Chain.Optimism,L.Chain.Polygon,L.Chain.THORChain],connect:({addChain:O,supportedChains:j,walletType:F})=>async function f(V,p){let Q=L.filterSupportedChains({chains:V,supportedChains:j,walletType:F}),{walletConnectProjectId:y}=L.SKConfig.get("apiKeys");if(!y)throw new L.SwapKitError("wallet_walletconnect_project_id_not_specified");let z=await B5(Q,y,p);if(!z)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");let{accounts:K}=z;return await Promise.all(Q.map(async(X)=>{let $=B(X,K||[]),q=await R5({address:$,chain:X,walletconnect:z});O({...q,address:$,chain:X,disconnect:z.disconnect,walletType:L.WalletOption.WALLETCONNECT})})),!0}}),D5=y5(Z5);async function R5({chain:O,walletconnect:j,address:F}){let f=j?.session;if(!f)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");switch(O){case L.Chain.Arbitrum:case L.Chain.Avalanche:case L.Chain.Base:case L.Chain.BinanceSmartChain:case L.Chain.Ethereum:case L.Chain.Optimism:case L.Chain.Polygon:{let{getProvider:V,getEvmToolbox:p}=await import("@swapkit/toolboxes/evm"),Q=await V(O),y=await Q5({walletconnect:j,chain:O,provider:Q});return await p(O,{provider:Q,signer:y})}case L.Chain.THORChain:{let{SignMode:V}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:p}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:Q,makeAuthInfoBytes:y}=(await import("@cosmjs/proto-signing")).default,{makeSignDoc:z}=(await import("@cosmjs/amino")).default,{getCosmosToolbox:K,buildAminoMsg:X,buildEncodedTxBody:$,createStargateClient:q,fromBase64:W,getDefaultChainFee:S,parseAminoMessageForDirectSigning:w}=await import("@swapkit/toolboxes/cosmos"),P=await K(L.Chain.THORChain);async function m(G){let D=await P.getAccount(G);if(O!==L.Chain.THORChain)return D;let[{address:J,algo:x,pubkey:R}]=await j?.client.request({chainId:k,topic:f.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...D,address:J,pubkey:{type:x,value:R}}}let b=S(O),U5=(G)=>j?.client.request({chainId:k,topic:f.topic,request:{method:"cosmos_signAmino",params:{signerAddress:F,signDoc:G}}});async function E({assetValue:G,memo:_,...D}){let J=await P.getAccount(F);if(!J)throw new L.SwapKitError({errorKey:"wallet_missing_params",info:{account:J}});if(!J.pubkey)throw new L.SwapKitError({errorKey:"wallet_missing_params",info:{account:J,pubkey:J?.pubkey}});let{accountNumber:x,sequence:R=0}=J,V5=[X({assetValue:G,memo:_,sender:F,...D})],G5=L.ChainId.THORChain,J5=z(V5,b,G5,_,x?.toString(),R?.toString()||"0"),M=await U5(J5),K5=await $({chain:L.Chain.THORChain,msgs:V5.map(w),memo:_||""}),$5=Q(J.pubkey),q5=y([{pubkey:$5,sequence:R}],b.amount,Number.parseInt(b.gas),void 0,void 0,V.SIGN_MODE_LEGACY_AMINO_JSON),Y5=p.fromPartial({bodyBytes:K5,authInfoBytes:q5,signatures:[W(typeof M.signature==="string"?M.signature:M.signature.signature)]}),v5=p.encode(Y5).finish();return(await(await q(L.SKConfig.get("rpcUrls")[L.Chain.THORChain])).broadcastTx(v5)).transactionHash}return{...P,transfer:(G)=>E(G),deposit:(G)=>E(G),getAccount:m}}case L.Chain.Near:{let{getNearToolbox:V}=await import("@swapkit/toolboxes/near"),{DEFAULT_NEAR_METHODS:p}=await import("../../chunk-sn6pgje5.js");return await V({signer:{getPublicKey(){return Promise.reject(new L.SwapKitError("wallet_walletconnect_method_not_supported",{method:"getPublicKey"}))},signNep413Message(z,K,X,$,q){return Promise.reject(new L.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signNep413Message"}))},async signTransaction(z){if(!j)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");let K=await j.client.request({topic:f.topic,chainId:Y(L.Chain.Near),request:{method:p.NEAR_SIGN_AND_SEND_TRANSACTION,params:{transaction:z}}});return[new Uint8Array(32),K]},signDelegateAction(z){return Promise.reject(new L.SwapKitError("wallet_walletconnect_method_not_supported",{method:"signDelegateAction"}))},getAddress(){return Promise.resolve(F)}}})}default:throw new L.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:O,wallet:L.WalletOption.WALLETCONNECT}})}}async function B5(O,j,F){let f,V,p,Q;try{if(!j)throw new L.SwapKitError("wallet_walletconnect_project_id_not_specified");let y=X5(O.map(Y)),{SignClient:z}=await import("@walletconnect/sign-client"),{WalletConnectModal:K}=await import("@walletconnect/modal"),X=new z({logger:u,relayUrl:T,projectId:j,metadata:F?.metadata||p5,...F?.core}),$=new K({logger:u,relayUrl:T,projectId:j,...F?.core}),q=await X.session.getAll()[0];if(q)await X.disconnect({topic:q.topic,reason:{code:0,message:"Resetting session"}});let{uri:W,approval:S}=await X.connect({requiredNamespaces:y});if(W){let P=function(m){let b=[];for(let[U5,E]of Object.entries(m.namespaces))b.push(...E.accounts);return b};$.openModal({uri:W}),p=await S(),$.closeModal(),Q=P(p)}let w=async()=>{p&&await X.disconnect({topic:p.topic,reason:{code:0,message:"User disconnected"}})};if(!p)throw new L.SwapKitError("wallet_walletconnect_connection_not_established");return{signer:V,session:p,accounts:Q,client:X,disconnect:w}}catch(y){}finally{if(f)f.closeModal()}return}
2
2
 
3
3
  //# debugId=F95BFF13A64F6C0864756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{a as A,b as I,c as l,d as s,e as W,f as t,g as e,h as c,i,j as o,k as a,l as n,m as L5,n as O5,o as N,p as y5,q as x,r as F5,s as g,t as FL,u as f5,v as p5,w as U5,x as V5,y as z5,z as Q5}from"../../chunk-bexr8da2.js";import{A as J5}from"../../chunk-th8ggrmx.js";import{C as y,D as G}from"../../chunk-qwd1kp32.js";import{Chain as j,ChainId as B5,SKConfig as G5,SwapKitError as Z,WalletOption as C,createWallet as r5,filterSupportedChains as H5}from"@swapkit/helpers";import{SwapKitError as H,WalletOption as W5}from"@swapkit/helpers";import{AbstractSigner as E5}from"ethers";import{Chain as X,SKConfig as P5}from"@swapkit/helpers";var r=(L,O)=>{return(O.find((U)=>U.startsWith(b(L)))||"")?.split(":")?.[2]||""},b=(L)=>{switch(L){case X.Avalanche:return s;case X.Base:return n;case X.BinanceSmartChain:return l;case X.Ethereum:return I;case X.THORChain:return W;case X.Arbitrum:return i;case X.Optimism:return o;case X.Polygon:return a;case X.Maya:return c;case X.Cosmos:return t;case X.Kujira:return e;case X.Near:{let{isStagenet:O}=P5.get("envs");return O?O5:L5}default:return""}};class M extends E5{address;chain;walletconnect;provider;constructor({chain:L,provider:O,walletconnect:F}){super(O);this.chain=L,this.walletconnect=F,this.provider=O,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new H("wallet_walletconnect_connection_not_established");if(!this.address)this.address=r(this.chain,this.walletconnect.accounts||[]);return this.address};signMessage=async(L)=>{let O=await this.walletconnect?.client.request({chainId:b(this.chain),topic:this.walletconnect.session.topic||"",request:{method:"eth_sign",params:[L]}});return O.startsWith("0x")?O:`0x${O}`};signTransaction=()=>{throw new H("wallet_walletconnect_method_not_supported",{method:"signTransaction"})};signTypedData=()=>{throw new H("wallet_walletconnect_method_not_supported",{method:"signTypedData"})};sendTransaction=async({from:L,to:O,value:F,data:f})=>{let{toHexString:U}=await import("@swapkit/toolboxes/evm"),p={from:L,to:O,value:U(BigInt(F||0)),data:f};return await this.walletconnect?.client.request({chainId:b(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[p]}})};connect=(L)=>{if(!L)throw new H({errorKey:"wallet_provider_not_found",info:{wallet:W5.WALLETCONNECT,chain:this.chain}});return new M({chain:this.chain,walletconnect:this.walletconnect,provider:L})}}var j5=async({chain:L,walletconnect:O,provider:F})=>new M({chain:L,walletconnect:O,provider:F});import{SwapKitError as X5}from"@swapkit/helpers";var _5=(L)=>{let O=[];for(let F of L){let[f]=F.split(":");if(f&&!O.includes(f))O.push(f)}return O},D5=(L)=>{switch(L){case"eip155":return Object.values(x);case"cosmos":return Object.values(g);case"solana":return Object.values(f5);case"polkadot":return Object.values(U5);case"near":return Object.values(z5);default:throw new X5({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:L}})}},R5=(L)=>{switch(L){case"eip155":return Object.values(F5);case"cosmos":return[];case"solana":return Object.values(p5);case"polkadot":return Object.values(V5);case"near":return Object.values(Q5);default:throw new X5({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:L}})}},Z5=(L)=>{let O=_5(L);return Object.fromEntries(O.map((F)=>[F,{methods:D5(F),chains:L.filter((f)=>f.startsWith(F)),events:R5(F)}]))};var T5=r5({name:"connectWalletconnect",walletType:C.WALLETCONNECT,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Cosmos,j.Ethereum,j.Kujira,j.Maya,j.Near,j.Optimism,j.Polygon,j.THORChain],connect:({addChain:L,supportedChains:O,walletType:F})=>async function f(U,p){let z=H5({chains:U,supportedChains:O,walletType:F}),{walletConnectProjectId:J}=G5.get("apiKeys");if(!J)throw new Z("wallet_walletconnect_project_id_not_specified");let V=await S5(z,J,p);if(!V)throw new Z("wallet_walletconnect_connection_not_established");let{accounts:q}=V;return await Promise.all(z.map(async(Q)=>{let Y=r(Q,q||[]),v=await u5({address:Y,chain:Q,walletconnect:V});L({...v,address:Y,chain:Q,disconnect:V.disconnect,walletType:C.WALLETCONNECT})})),!0}}),n5=J5(T5);async function u5({chain:L,walletconnect:O,address:F}){let f=O?.session;if(!f)throw new Z("wallet_walletconnect_connection_not_established");switch(L){case j.Arbitrum:case j.Avalanche:case j.Base:case j.BinanceSmartChain:case j.Ethereum:case j.Optimism:case j.Polygon:{let{getProvider:U,getEvmToolbox:p}=await import("@swapkit/toolboxes/evm"),z=await U(L),J=await j5({walletconnect:O,chain:L,provider:z});return await p(L,{provider:z,signer:J})}case j.THORChain:{let{SignMode:U}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:p}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:z,makeAuthInfoBytes:J}=(await import("@cosmjs/proto-signing")).default,{makeSignDoc:V}=(await import("@cosmjs/amino")).default,{getCosmosToolbox:q,buildAminoMsg:Q,buildEncodedTxBody:Y,createStargateClient:v,fromBase64:E,getDefaultChainFee:T,parseAminoMessageForDirectSigning:u}=await import("@swapkit/toolboxes/cosmos"),P=await q(j.THORChain);async function S(K){let R=await P.getAccount(K);if(L!==j.THORChain)return R;let[{address:$,algo:w,pubkey:B}]=await O?.client.request({chainId:W,topic:f.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...R,address:$,pubkey:{type:w,value:B}}}let k=T(L),d=(K)=>O?.client.request({chainId:W,topic:f.topic,request:{method:"cosmos_signAmino",params:{signerAddress:F,signDoc:K}}});async function _({assetValue:K,memo:D,...R}){let $=await P.getAccount(F);if(!$)throw new Z({errorKey:"wallet_missing_params",info:{account:$}});if(!$.pubkey)throw new Z({errorKey:"wallet_missing_params",info:{account:$,pubkey:$?.pubkey}});let{accountNumber:w,sequence:B=0}=$,h=[Q({assetValue:K,memo:D,sender:F,...R})],K5=B5.THORChain,$5=V(h,k,K5,D,w?.toString(),B?.toString()||"0"),m=await d($5),q5=await Y({chain:j.THORChain,msgs:h.map(u),memo:D||""}),Y5=z($.pubkey),v5=J([{pubkey:Y5,sequence:B}],k.amount,Number.parseInt(k.gas),void 0,void 0,U.SIGN_MODE_LEGACY_AMINO_JSON),b5=p.fromPartial({bodyBytes:q5,authInfoBytes:v5,signatures:[E(typeof m.signature==="string"?m.signature:m.signature.signature)]}),k5=p.encode(b5).finish();return(await(await v(G5.get("rpcUrls")[j.THORChain])).broadcastTx(k5)).transactionHash}return{...P,transfer:(K)=>_(K),deposit:(K)=>_(K),getAccount:S}}case j.Near:{let{getNearToolbox:U}=await import("@swapkit/toolboxes/near"),{DEFAULT_NEAR_METHODS:p}=await import("../../chunk-bexr8da2.js");return await U({signer:{getPublicKey(){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"getPublicKey"}))},signNep413Message(V,q,Q,Y,v){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"signNep413Message"}))},async signTransaction(V){if(!O)throw new Z("wallet_walletconnect_connection_not_established");let q=await O.client.request({topic:f.topic,chainId:b(j.Near),request:{method:p.NEAR_SIGN_AND_SEND_TRANSACTION,params:{transaction:V}}});return[new Uint8Array(32),q]},signDelegateAction(V){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"signDelegateAction"}))},getAddress(){return Promise.resolve(F)}}})}default:throw new Z({errorKey:"wallet_chain_not_supported",info:{chain:L,wallet:C.WALLETCONNECT}})}}async function S5(L,O,F){let f,U,p,z;try{if(!O)throw new Z("wallet_walletconnect_project_id_not_specified");let J=Z5(L.map(b)),{SignClient:V}=await import("@walletconnect/sign-client"),{WalletConnectModal:q}=await import("@walletconnect/modal"),Q=new V({logger:N,relayUrl:A,projectId:O,metadata:F?.metadata||y5,...F?.core}),Y=new q({logger:N,relayUrl:A,projectId:O,...F?.core}),v=await Q.session.getAll()[0];if(v)await Q.disconnect({topic:v.topic,reason:{code:0,message:"Resetting session"}});let{uri:E,approval:T}=await Q.connect({requiredNamespaces:J});if(E){let P=function(S){let k=[];for(let[d,_]of Object.entries(S.namespaces))k.push(..._.accounts);return k};Y.openModal({uri:E}),p=await T(),Y.closeModal(),z=P(p)}let u=async()=>{p&&await Q.disconnect({topic:p.topic,reason:{code:0,message:"User disconnected"}})};if(!p)throw new Z("wallet_walletconnect_connection_not_established");return{signer:U,session:p,accounts:z,client:Q,disconnect:u}}catch(J){}finally{if(f)f.closeModal()}return}export{T5 as walletconnectWallet,n5 as WC_SUPPORTED_CHAINS,W as THORCHAIN_MAINNET_ID,a as POLYGON_MAINNET_ID,o as OPTIMISM_MAINNET_ID,O5 as NEAR_TESTNET_ID,L5 as NEAR_MAINNET_ID,c as MAYACHAIN_MAINNET_ID,e as KUJIRA_MAINNET_ID,I as ETHEREUM_MAINNET_ID,f5 as DEFAULT_SOLANA_METHODS,p5 as DEFAULT_SOLANA_EVENTS,A as DEFAULT_RELAY_URL,U5 as DEFAULT_POLKADOT_METHODS,V5 as DEFAULT_POLKADOT_EVENTS,z5 as DEFAULT_NEAR_METHODS,Q5 as DEFAULT_NEAR_EVENTS,N as DEFAULT_LOGGER,F5 as DEFAULT_EIP_155_EVENTS,x as DEFAULT_EIP155_METHODS,g as DEFAULT_COSMOS_METHODS,FL as DEFAULT_COSMOS_EVENTS,y5 as DEFAULT_APP_METADATA,t as COSMOS_HUB_MAINNET_ID,l as BSC_MAINNET_ID,n as BASE_MAINNET_ID,s as AVALANCHE_MAINNET_ID,i as ARBITRUM_ONE_MAINNET_ID};
1
+ import{a as A,b as I,c as l,d as s,e as W,f as t,g as e,h as c,i,j as o,k as a,l as n,m as L5,n as O5,o as N,p as y5,q as x,r as F5,s as g,t as FL,u as f5,v as p5,w as U5,x as V5,y as z5,z as Q5}from"../../chunk-9sjqewve.js";import{C as J5}from"../../chunk-c11abmv4.js";import{E as y,F as G}from"../../chunk-r308an05.js";import{Chain as j,ChainId as B5,SKConfig as G5,SwapKitError as Z,WalletOption as C,createWallet as r5,filterSupportedChains as H5}from"@swapkit/helpers";import{SwapKitError as H,WalletOption as W5}from"@swapkit/helpers";import{AbstractSigner as E5}from"ethers";import{Chain as X,SKConfig as P5}from"@swapkit/helpers";var r=(L,O)=>{return(O.find((U)=>U.startsWith(b(L)))||"")?.split(":")?.[2]||""},b=(L)=>{switch(L){case X.Avalanche:return s;case X.Base:return n;case X.BinanceSmartChain:return l;case X.Ethereum:return I;case X.THORChain:return W;case X.Arbitrum:return i;case X.Optimism:return o;case X.Polygon:return a;case X.Maya:return c;case X.Cosmos:return t;case X.Kujira:return e;case X.Near:{let{isStagenet:O}=P5.get("envs");return O?O5:L5}default:return""}};class M extends E5{address;chain;walletconnect;provider;constructor({chain:L,provider:O,walletconnect:F}){super(O);this.chain=L,this.walletconnect=F,this.provider=O,this.address=""}getAddress=async()=>{if(!this.walletconnect)throw new H("wallet_walletconnect_connection_not_established");if(!this.address)this.address=r(this.chain,this.walletconnect.accounts||[]);return this.address};signMessage=async(L)=>{let O=await this.walletconnect?.client.request({chainId:b(this.chain),topic:this.walletconnect.session.topic||"",request:{method:"eth_sign",params:[L]}});return O.startsWith("0x")?O:`0x${O}`};signTransaction=()=>{throw new H("wallet_walletconnect_method_not_supported",{method:"signTransaction"})};signTypedData=()=>{throw new H("wallet_walletconnect_method_not_supported",{method:"signTypedData"})};sendTransaction=async({from:L,to:O,value:F,data:f})=>{let{toHexString:U}=await import("@swapkit/toolboxes/evm"),p={from:L,to:O,value:U(BigInt(F||0)),data:f};return await this.walletconnect?.client.request({chainId:b(this.chain),topic:this.walletconnect.session.topic,request:{method:"eth_sendTransaction",params:[p]}})};connect=(L)=>{if(!L)throw new H({errorKey:"wallet_provider_not_found",info:{wallet:W5.WALLETCONNECT,chain:this.chain}});return new M({chain:this.chain,walletconnect:this.walletconnect,provider:L})}}var j5=async({chain:L,walletconnect:O,provider:F})=>new M({chain:L,walletconnect:O,provider:F});import{SwapKitError as X5}from"@swapkit/helpers";var _5=(L)=>{let O=[];for(let F of L){let[f]=F.split(":");if(f&&!O.includes(f))O.push(f)}return O},D5=(L)=>{switch(L){case"eip155":return Object.values(x);case"cosmos":return Object.values(g);case"solana":return Object.values(f5);case"polkadot":return Object.values(U5);case"near":return Object.values(z5);default:throw new X5({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:L}})}},R5=(L)=>{switch(L){case"eip155":return Object.values(F5);case"cosmos":return[];case"solana":return Object.values(p5);case"polkadot":return Object.values(V5);case"near":return Object.values(Q5);default:throw new X5({errorKey:"wallet_walletconnect_namespace_not_supported",info:{namespace:L}})}},Z5=(L)=>{let O=_5(L);return Object.fromEntries(O.map((F)=>[F,{methods:D5(F),chains:L.filter((f)=>f.startsWith(F)),events:R5(F)}]))};var T5=r5({name:"connectWalletconnect",walletType:C.WALLETCONNECT,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Cosmos,j.Ethereum,j.Kujira,j.Maya,j.Near,j.Optimism,j.Polygon,j.THORChain],connect:({addChain:L,supportedChains:O,walletType:F})=>async function f(U,p){let z=H5({chains:U,supportedChains:O,walletType:F}),{walletConnectProjectId:J}=G5.get("apiKeys");if(!J)throw new Z("wallet_walletconnect_project_id_not_specified");let V=await S5(z,J,p);if(!V)throw new Z("wallet_walletconnect_connection_not_established");let{accounts:q}=V;return await Promise.all(z.map(async(Q)=>{let Y=r(Q,q||[]),v=await u5({address:Y,chain:Q,walletconnect:V});L({...v,address:Y,chain:Q,disconnect:V.disconnect,walletType:C.WALLETCONNECT})})),!0}}),n5=J5(T5);async function u5({chain:L,walletconnect:O,address:F}){let f=O?.session;if(!f)throw new Z("wallet_walletconnect_connection_not_established");switch(L){case j.Arbitrum:case j.Avalanche:case j.Base:case j.BinanceSmartChain:case j.Ethereum:case j.Optimism:case j.Polygon:{let{getProvider:U,getEvmToolbox:p}=await import("@swapkit/toolboxes/evm"),z=await U(L),J=await j5({walletconnect:O,chain:L,provider:z});return await p(L,{provider:z,signer:J})}case j.THORChain:{let{SignMode:U}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:p}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:z,makeAuthInfoBytes:J}=(await import("@cosmjs/proto-signing")).default,{makeSignDoc:V}=(await import("@cosmjs/amino")).default,{getCosmosToolbox:q,buildAminoMsg:Q,buildEncodedTxBody:Y,createStargateClient:v,fromBase64:E,getDefaultChainFee:T,parseAminoMessageForDirectSigning:u}=await import("@swapkit/toolboxes/cosmos"),P=await q(j.THORChain);async function S(K){let R=await P.getAccount(K);if(L!==j.THORChain)return R;let[{address:$,algo:w,pubkey:B}]=await O?.client.request({chainId:W,topic:f.topic,request:{method:"cosmos_getAccounts",params:{}}});return{...R,address:$,pubkey:{type:w,value:B}}}let k=T(L),d=(K)=>O?.client.request({chainId:W,topic:f.topic,request:{method:"cosmos_signAmino",params:{signerAddress:F,signDoc:K}}});async function _({assetValue:K,memo:D,...R}){let $=await P.getAccount(F);if(!$)throw new Z({errorKey:"wallet_missing_params",info:{account:$}});if(!$.pubkey)throw new Z({errorKey:"wallet_missing_params",info:{account:$,pubkey:$?.pubkey}});let{accountNumber:w,sequence:B=0}=$,h=[Q({assetValue:K,memo:D,sender:F,...R})],K5=B5.THORChain,$5=V(h,k,K5,D,w?.toString(),B?.toString()||"0"),m=await d($5),q5=await Y({chain:j.THORChain,msgs:h.map(u),memo:D||""}),Y5=z($.pubkey),v5=J([{pubkey:Y5,sequence:B}],k.amount,Number.parseInt(k.gas),void 0,void 0,U.SIGN_MODE_LEGACY_AMINO_JSON),b5=p.fromPartial({bodyBytes:q5,authInfoBytes:v5,signatures:[E(typeof m.signature==="string"?m.signature:m.signature.signature)]}),k5=p.encode(b5).finish();return(await(await v(G5.get("rpcUrls")[j.THORChain])).broadcastTx(k5)).transactionHash}return{...P,transfer:(K)=>_(K),deposit:(K)=>_(K),getAccount:S}}case j.Near:{let{getNearToolbox:U}=await import("@swapkit/toolboxes/near"),{DEFAULT_NEAR_METHODS:p}=await import("../../chunk-9sjqewve.js");return await U({signer:{getPublicKey(){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"getPublicKey"}))},signNep413Message(V,q,Q,Y,v){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"signNep413Message"}))},async signTransaction(V){if(!O)throw new Z("wallet_walletconnect_connection_not_established");let q=await O.client.request({topic:f.topic,chainId:b(j.Near),request:{method:p.NEAR_SIGN_AND_SEND_TRANSACTION,params:{transaction:V}}});return[new Uint8Array(32),q]},signDelegateAction(V){return Promise.reject(new Z("wallet_walletconnect_method_not_supported",{method:"signDelegateAction"}))},getAddress(){return Promise.resolve(F)}}})}default:throw new Z({errorKey:"wallet_chain_not_supported",info:{chain:L,wallet:C.WALLETCONNECT}})}}async function S5(L,O,F){let f,U,p,z;try{if(!O)throw new Z("wallet_walletconnect_project_id_not_specified");let J=Z5(L.map(b)),{SignClient:V}=await import("@walletconnect/sign-client"),{WalletConnectModal:q}=await import("@walletconnect/modal"),Q=new V({logger:N,relayUrl:A,projectId:O,metadata:F?.metadata||y5,...F?.core}),Y=new q({logger:N,relayUrl:A,projectId:O,...F?.core}),v=await Q.session.getAll()[0];if(v)await Q.disconnect({topic:v.topic,reason:{code:0,message:"Resetting session"}});let{uri:E,approval:T}=await Q.connect({requiredNamespaces:J});if(E){let P=function(S){let k=[];for(let[d,_]of Object.entries(S.namespaces))k.push(..._.accounts);return k};Y.openModal({uri:E}),p=await T(),Y.closeModal(),z=P(p)}let u=async()=>{p&&await Q.disconnect({topic:p.topic,reason:{code:0,message:"User disconnected"}})};if(!p)throw new Z("wallet_walletconnect_connection_not_established");return{signer:U,session:p,accounts:z,client:Q,disconnect:u}}catch(J){}finally{if(f)f.closeModal()}return}export{T5 as walletconnectWallet,n5 as WC_SUPPORTED_CHAINS,W as THORCHAIN_MAINNET_ID,a as POLYGON_MAINNET_ID,o as OPTIMISM_MAINNET_ID,O5 as NEAR_TESTNET_ID,L5 as NEAR_MAINNET_ID,c as MAYACHAIN_MAINNET_ID,e as KUJIRA_MAINNET_ID,I as ETHEREUM_MAINNET_ID,f5 as DEFAULT_SOLANA_METHODS,p5 as DEFAULT_SOLANA_EVENTS,A as DEFAULT_RELAY_URL,U5 as DEFAULT_POLKADOT_METHODS,V5 as DEFAULT_POLKADOT_EVENTS,z5 as DEFAULT_NEAR_METHODS,Q5 as DEFAULT_NEAR_EVENTS,N as DEFAULT_LOGGER,F5 as DEFAULT_EIP_155_EVENTS,x as DEFAULT_EIP155_METHODS,g as DEFAULT_COSMOS_METHODS,FL as DEFAULT_COSMOS_EVENTS,y5 as DEFAULT_APP_METADATA,t as COSMOS_HUB_MAINNET_ID,l as BSC_MAINNET_ID,n as BASE_MAINNET_ID,s as AVALANCHE_MAINNET_ID,i as ARBITRUM_ONE_MAINNET_ID};
2
2
 
3
- //# debugId=CF132A71D84C0D7E64756E2164756E21
3
+ //# debugId=0F87C548D217C72B64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -8,6 +8,6 @@
8
8
  "import type { ProposalTypes } from \"@walletconnect/types\";\n\nimport { SwapKitError } from \"@swapkit/helpers\";\nimport {\n DEFAULT_COSMOS_METHODS,\n DEFAULT_EIP155_METHODS,\n DEFAULT_EIP_155_EVENTS,\n DEFAULT_NEAR_EVENTS,\n DEFAULT_NEAR_METHODS,\n DEFAULT_POLKADOT_EVENTS,\n DEFAULT_POLKADOT_METHODS,\n DEFAULT_SOLANA_EVENTS,\n DEFAULT_SOLANA_METHODS,\n} from \"./constants\";\n\nexport const getNamespacesFromChains = (chains: string[]) => {\n const supportedNamespaces: string[] = [];\n for (const chainId of chains) {\n const [namespace] = chainId.split(\":\");\n if (namespace && !supportedNamespaces.includes(namespace)) {\n supportedNamespaces.push(namespace);\n }\n }\n\n return supportedNamespaces;\n};\n\nexport const getSupportedMethodsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP155_METHODS);\n case \"cosmos\":\n return Object.values(DEFAULT_COSMOS_METHODS);\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_METHODS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_METHODS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_METHODS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getSupportedEventsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP_155_EVENTS);\n case \"cosmos\":\n return [];\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_EVENTS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_EVENTS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_EVENTS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getRequiredNamespaces = (chains: string[]): ProposalTypes.RequiredNamespaces => {\n const selectedNamespaces = getNamespacesFromChains(chains);\n\n return Object.fromEntries(\n selectedNamespaces.map((namespace) => [\n namespace,\n {\n methods: getSupportedMethodsByNamespace(namespace),\n chains: chains.filter((chain) => chain.startsWith(namespace)),\n events: getSupportedEventsByNamespace(namespace) as any[],\n },\n ]),\n );\n};\n"
9
9
  ],
10
10
  "mappings": "qUACA,cACE,WACA,eAEA,mBACA,kBACA,kBACA,4BACA,0BCTF,uBAAwB,kBAAc,0BAEtC,yBAAS,gBCFT,gBAAS,cAAsB,0BAkBxB,IAAM,EAAoB,CAC/B,EACA,IACG,CAIH,OAHgB,EAAS,KAAK,CAAC,IAAY,EAAQ,WAAW,EAAe,CAAK,CAAC,CAAC,GAAK,KAChE,MAAM,GAAG,IAAI,IAEpB,IAGP,EAAiB,CAAC,IAAiB,CAC9C,OAAQ,QACD,EAAM,UACT,OAAO,OACJ,EAAM,KACT,OAAO,OACJ,EAAM,kBACT,OAAO,OACJ,EAAM,SACT,OAAO,OACJ,EAAM,UACT,OAAO,OACJ,EAAM,SACT,OAAO,OACJ,EAAM,SACT,OAAO,OACJ,EAAM,QACT,OAAO,OACJ,EAAM,KACT,OAAO,OACJ,EAAM,OACT,OAAO,OACJ,EAAM,OACT,OAAO,OACJ,EAAM,KAAM,CAEf,IAAQ,cAAe,GAAS,IAAI,MAAM,EAC1C,OAAO,EAAa,GAAkB,EACxC,SAEE,MAAO,KD5Cb,MAAM,UAA4B,EAAe,CAC/C,QAEQ,MACA,cACC,SAET,WAAW,EAAG,QAAO,WAAU,iBAA+C,CAC5E,MAAM,CAAQ,EACd,KAAK,MAAQ,EACb,KAAK,cAAgB,EACrB,KAAK,SAAW,EAChB,KAAK,QAAU,GAIjB,WAAa,SAAY,CACvB,IAAK,KAAK,cACR,MAAM,IAAI,EAAa,iDAAiD,EAE1E,IAAK,KAAK,QACR,KAAK,QAAU,EAAkB,KAAK,MAAO,KAAK,cAAc,UAAY,CAAC,CAAC,EAGhF,OAAO,KAAK,SAGd,YAAc,MAAO,IAAoB,CAEvC,IAAM,EAAU,MAAM,KAAK,eAAe,OAAO,QAAQ,CACvD,QAAS,EAAe,KAAK,KAAK,EAClC,MAAO,KAAK,cAAc,QAAQ,OAAS,GAC3C,QAAS,CACP,kBACA,OAAQ,CAAC,CAAO,CAClB,CACF,CAAC,EAED,OAAO,EAAO,WAAW,IAAI,EAAI,EAAS,KAAK,KAGjD,gBAAkB,IAAM,CACtB,MAAM,IAAI,EAAa,4CAA6C,CAClE,OAAQ,iBACV,CAAC,GAsBH,cAAgB,IAAM,CACpB,MAAM,IAAI,EAAa,4CAA6C,CAClE,OAAQ,eACV,CAAC,GAuBH,gBAAkB,OAAS,OAAM,KAAI,QAAO,UAA+B,CACzE,IAAQ,eAAgB,KAAa,kCAE/B,EAAS,CACb,OACA,KACA,MAAO,EAAY,OAAO,GAAS,CAAC,CAAC,EACrC,MACF,EAUA,OATiB,MAAM,KAAK,eAAe,OAAO,QAAQ,CACxD,QAAS,EAAe,KAAK,KAAK,EAClC,MAAO,KAAK,cAAc,QAAQ,MAClC,QAAS,CACP,6BACA,OAAQ,CAAC,CAAM,CACjB,CACF,CAAC,GAKH,QAAU,CAAC,IAA8B,CACvC,IAAK,EACH,MAAM,IAAI,EAAa,CACrB,SAAU,4BACV,KAAM,CAAE,OAAQ,GAAa,cAAe,MAAO,KAAK,KAAM,CAChE,CAAC,EAGH,OAAO,IAAI,EAAoB,CAC7B,MAAO,KAAK,MACZ,cAAe,KAAK,cACpB,UACF,CAAC,EAEL,CACO,IAAM,GAAe,OAC1B,QACA,gBACA,cACkC,IAAI,EAAoB,CAAE,QAAO,gBAAe,UAAS,CAAC,EEhJ9F,uBAAS,0BAaF,IAAM,GAA0B,CAAC,IAAqB,CAC3D,IAAM,EAAgC,CAAC,EACvC,QAAW,KAAW,EAAQ,CAC5B,IAAO,GAAa,EAAQ,MAAM,GAAG,EACrC,GAAI,IAAc,EAAoB,SAAS,CAAS,EACtD,EAAoB,KAAK,CAAS,EAItC,OAAO,GAGI,GAAiC,CAAC,IAAsB,CACnE,OAAQ,OACD,SACH,OAAO,OAAO,OAAO,CAAsB,MACxC,SACH,OAAO,OAAO,OAAO,CAAsB,MACxC,SACH,OAAO,OAAO,OAAO,EAAsB,MACxC,WACH,OAAO,OAAO,OAAO,EAAwB,MAC1C,OACH,OAAO,OAAO,OAAO,EAAoB,UAEzC,MAAM,IAAI,GAAa,CACrB,SAAU,+CACV,KAAM,CAAE,WAAU,CACpB,CAAC,IAIM,GAAgC,CAAC,IAAsB,CAClE,OAAQ,OACD,SACH,OAAO,OAAO,OAAO,EAAsB,MACxC,SACH,MAAO,CAAC,MACL,SACH,OAAO,OAAO,OAAO,EAAqB,MACvC,WACH,OAAO,OAAO,OAAO,EAAuB,MACzC,OACH,OAAO,OAAO,OAAO,EAAmB,UAExC,MAAM,IAAI,GAAa,CACrB,SAAU,+CACV,KAAM,CAAE,WAAU,CACpB,CAAC,IAIM,GAAwB,CAAC,IAAuD,CAC3F,IAAM,EAAqB,GAAwB,CAAM,EAEzD,OAAO,OAAO,YACZ,EAAmB,IAAI,CAAC,IAAc,CACpC,EACA,CACE,QAAS,GAA+B,CAAS,EACjD,OAAQ,EAAO,OAAO,CAAC,IAAU,EAAM,WAAW,CAAS,CAAC,EAC5D,OAAQ,GAA8B,CAAS,CACjD,CACF,CAAC,CACH,GH9CK,IAAM,GAAsB,GAAa,CAC9C,KAAM,uBACN,WAAY,EAAa,cACzB,gBAAiB,CACf,EAAM,SACN,EAAM,UACN,EAAM,KACN,EAAM,kBACN,EAAM,OACN,EAAM,SACN,EAAM,OACN,EAAM,KACN,EAAM,KACN,EAAM,SACN,EAAM,QACN,EAAM,SACR,EACA,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAoB,CACjC,EACA,EACA,CACA,IAAM,EAAiB,GAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,GAC5E,0BAA2B,GAAS,IAAI,SAAS,EAEzD,IAAK,EACH,MAAM,IAAI,EAAa,+CAA+C,EAGxE,IAAM,EAAgB,MAAM,GAC1B,EACA,EACA,CACF,EAEA,IAAK,EACH,MAAM,IAAI,EAAa,iDAAiD,EAG1E,IAAQ,YAAa,EAiBrB,OAfA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAU,EAAkB,EAAO,GAAY,CAAC,CAAC,EACjD,EAAU,MAAM,GAAW,CAAE,UAAS,QAAO,eAAc,CAAC,EAElE,EAAS,IACJ,EACH,UACA,QACA,WAAY,EAAc,WAC1B,WAAY,EAAa,aAC3B,CAAC,EACF,CACH,EAEO,GAEb,CAAC,EAEY,GAAsB,GAAyB,EAAmB,EAG/E,eAAe,EAA0D,EACvE,QACA,gBACA,WAKC,CACD,IAAM,EAAU,GAAe,QAC/B,IAAK,EACH,MAAM,IAAI,EAAa,iDAAiD,EAG1E,OAAQ,QACD,EAAM,cACN,EAAM,eACN,EAAM,UACN,EAAM,uBACN,EAAM,cACN,EAAM,cACN,EAAM,QAAS,CAClB,IAAQ,cAAa,iBAAkB,KAAa,kCAE9C,EAAW,MAAM,EAAY,CAAK,EAClC,EAAS,MAAM,GAAa,CAAE,gBAAe,QAAO,UAAS,CAAC,EAGpE,OAFgB,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,CAGjE,MAEK,EAAM,UAAW,CACpB,IAAQ,YAAa,KAAa,8DAC1B,SAAU,KAAa,iDACvB,eAAc,sBAAuB,KAAa,kCAA0B,SAC5E,gBAAiB,KAAa,0BAAkB,SAEtD,mBACA,gBACA,qBACA,uBACA,aACA,qBACA,qCACE,KAAa,qCACX,EAAU,MAAM,EAAiB,EAAM,SAAS,EAEtD,eAAe,CAAU,CAAC,EAAwB,CAEhD,IAAM,EAAU,MADM,EAGpB,WAAW,CAAc,EAE3B,GAAI,IAAU,EAAM,UAClB,OAAO,EAGT,KAAS,UAAS,OAAM,WAAa,MAAM,GAAe,OAAO,QAAQ,CACvE,QAAS,EAET,MAAO,EAAQ,MACf,QAAS,CACP,4BACA,OAAQ,CAAC,CACX,CACF,CAAC,EAED,MAAO,IAAK,EAAS,UAAS,OAAQ,CAAE,KAAM,EAAM,MAAO,CAAO,CAAE,EAGtE,IAAM,EAAM,EAAmB,CAAK,EAE9B,EAAc,CAAC,IACnB,GAAe,OAAO,QAAQ,CAC5B,QAAS,EACT,MAAO,EAAQ,MACf,QAAS,CACP,0BACA,OAAQ,CAAE,cAAe,EAAS,SAAQ,CAC5C,CACF,CAAC,EAEH,eAAe,CAAiB,EAC9B,aACA,UACG,GAC8C,CACjD,IAAM,EAAU,MAAM,EAAQ,WAAW,CAAO,EAChD,IAAK,EACH,MAAM,IAAI,EAAa,CAAE,SAAU,wBAAyB,KAAM,CAAE,SAAQ,CAAE,CAAC,EAGjF,IAAK,EAAQ,OACX,MAAM,IAAI,EAAa,CACrB,SAAU,wBACV,KAAM,CAAE,UAAS,OAAQ,GAAS,MAAO,CAC3C,CAAC,EAGH,IAAQ,gBAAe,WAAW,GAAM,EAElC,EAAO,CAAC,EAAc,CAAE,aAAY,OAAM,OAAQ,KAAY,CAAK,CAAC,CAAC,EAErE,GAAU,GAAQ,UAElB,GAAU,EACd,EACA,EACA,GACA,EACA,GAAe,SAAS,EACxB,GAAU,SAAS,GAAK,GAC1B,EAEM,EAAiB,MAAM,EAAY,EAAO,EAE1C,GAAY,MAAM,EAAmB,CACzC,MAAO,EAAM,UACb,KAAM,EAAK,IAAI,CAAiC,EAChD,KAAM,GAAQ,EAChB,CAAC,EACK,GAAS,EAAa,EAAQ,MAAM,EACpC,GAAgB,EACpB,CAAC,CAAE,UAAQ,UAAS,CAAC,EACrB,EAAI,OACJ,OAAO,SAAS,EAAI,GAAG,EACvB,OACA,OACA,EAAS,2BACX,EAEM,GAAQ,EAAM,YAAY,CAC9B,aACA,iBACA,WAAY,CACV,EACE,OAAO,EAAU,YAAc,SAC3B,EAAU,UACV,EAAU,UAAU,SAC1B,CACF,CACF,CAAC,EACK,GAAU,EAAM,OAAO,EAAK,EAAE,OAAO,EAI3C,OADe,MADK,MAAM,EAAqB,GAAS,IAAI,SAAS,EAAE,EAAM,UAAU,GACtD,YAAY,EAAO,GACtC,gBAGhB,MAAO,IACF,EACH,SAAU,CAAC,IAAkC,EAAkB,CAAM,EACrE,QAAS,CAAC,IAAmC,EAAkB,CAAM,EACrE,YACF,CACF,MAEK,EAAM,KAAM,CACf,IAAQ,kBAAmB,KAAa,oCAChC,wBAAyB,KAAa,mCA2D9C,OADgB,MAAM,EAAe,CAAE,OAvDxB,CACb,YAAY,EAAG,CAEb,OAAO,QAAQ,OACb,IAAI,EAAa,4CAA6C,CAC5D,OAAQ,cACV,CAAC,CACH,GAGF,iBAAiB,CACf,EACA,EACA,EACA,EACA,EACA,CAEA,OAAO,QAAQ,OACb,IAAI,EAAa,4CAA6C,CAC5D,OAAQ,mBACV,CAAC,CACH,QAGI,gBAAe,CAAC,EAA0B,CAC9C,IAAK,EACH,MAAM,IAAI,EAAa,iDAAiD,EAG1E,IAAM,EAAS,MAAM,EAAc,OAAO,QAAQ,CAChD,MAAO,EAAQ,MACf,QAAS,EAAe,EAAM,IAAI,EAClC,QAAS,CACP,OAAQ,EAAqB,+BAC7B,OAAQ,CAAE,aAAY,CACxB,CACF,CAAC,EAED,MAAO,CAAC,IAAI,WAAW,EAAE,EAAG,CAAM,GAGpC,kBAAkB,CAAC,EAAsB,CACvC,OAAO,QAAQ,OACb,IAAI,EAAa,4CAA6C,CAC5D,OAAQ,oBACV,CAAC,CACH,GAGF,UAAU,EAAG,CACX,OAAO,QAAQ,QAAQ,CAAO,EAElC,CAE8C,CAAC,CAEjD,SAGE,MAAM,IAAI,EAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,EAAa,aAAc,CACpD,CAAC,GAIP,eAAe,EAAgB,CAC7B,EACA,EACA,EACA,CACA,IAAI,EACA,EACA,EACA,EACJ,GAAI,CACF,IAAK,EACH,MAAM,IAAI,EAAa,+CAA+C,EAExE,IAAM,EAAqB,GAAsB,EAAO,IAAI,CAAc,CAAC,GAEnE,cAAe,KAAa,uCAC5B,sBAAuB,KAAa,gCAEtC,EAAS,IAAI,EAAW,CAC5B,OAAQ,EACR,SAAU,EACV,UAAW,EACX,SAAU,GAAsB,UAAY,MACzC,GAAsB,IAC3B,CAAC,EAEK,EAAQ,IAAI,EAAmB,CACnC,OAAQ,EACR,SAAU,EACV,UAAW,KACR,GAAsB,IAC3B,CAAC,EAEK,EAAa,MAAM,EAAO,QAAQ,OAAO,EAAE,GAGjD,GAAI,EACF,MAAM,EAAO,WAAW,CACtB,MAAO,EAAW,MAClB,OAAQ,CAAE,KAAM,EAAG,QAAS,mBAAoB,CAClD,CAAC,EAGH,IAAQ,MAAK,YAAa,MAAM,EAAO,QAAQ,CAI7C,oBACF,CAAC,EAED,GAAI,EAAK,CAQP,IAAS,EAAT,QAAmC,CAAC,EAA8B,CAChE,IAAM,EAAqB,CAAC,EAE5B,QAAY,EAAY,KAAS,OAAO,QAAQ,EAAQ,UAAU,EAChE,EAAS,KAAK,GAAG,EAAK,QAAQ,EAGhC,OAAO,GAdT,EAAM,UAAU,CAAE,KAAI,CAAC,EAEvB,EAAU,MAAM,EAAS,EAGzB,EAAM,WAAW,EAYjB,EAAW,EAA2B,CAAO,EAG/C,IAAM,EAAa,SAAY,CAC7B,GACG,MAAM,EAAO,WAAW,CACvB,MAAO,EAAQ,MACf,OAAQ,CAAE,KAAM,EAAG,QAAS,mBAAoB,CAClD,CAAC,GAGL,IAAK,EACH,MAAM,IAAI,EAAa,iDAAiD,EAG1E,MAAO,CAAE,SAAQ,UAAS,WAAU,SAAQ,YAAW,EACvD,MAAO,EAAI,SAEX,CACA,GAAI,EACF,EAAM,WAAW,EAGrB",
11
- "debugId": "CF132A71D84C0D7E64756E2164756E21",
11
+ "debugId": "0F87C548D217C72B64756E2164756E21",
12
12
  "names": []
13
13
  }
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "@scure/bip39": "^1.6.0",
25
25
  "@solana/web3.js": "^1.98.0",
26
26
  "@swapkit/helpers": "^4.0.0-beta.24",
27
- "@swapkit/toolboxes": "^4.0.0-beta.35",
27
+ "@swapkit/toolboxes": "^4.0.0-beta.36",
28
28
  "@trezor/connect-web": "^9.6.0",
29
29
  "@walletconnect/modal": "^2.7.0",
30
30
  "@walletconnect/sign-client": "^2.21.0",
@@ -62,7 +62,7 @@
62
62
  "@scure/bip39": "1.6.0",
63
63
  "@solana/web3.js": "1.98.2",
64
64
  "@swapkit/helpers": "4.0.0-beta.24",
65
- "@swapkit/toolboxes": "4.0.0-beta.35",
65
+ "@swapkit/toolboxes": "4.0.0-beta.36",
66
66
  "@trezor/connect-web": "9.6.0",
67
67
  "@walletconnect/logger": "2.1.2",
68
68
  "@walletconnect/modal": "2.7.0",
@@ -197,5 +197,5 @@
197
197
  "type-check:go": "tsgo"
198
198
  },
199
199
  "type": "module",
200
- "version": "4.0.0-beta.38"
200
+ "version": "4.0.0-beta.39"
201
201
  }
@@ -0,0 +1,118 @@
1
+ import type { KeepKeySdk } from "@keepkey/keepkey-sdk";
2
+ import {
3
+ Chain,
4
+ DerivationPath,
5
+ type DerivationPathArray,
6
+ type GenericTransferParams,
7
+ derivationPathToString,
8
+ } from "@swapkit/helpers";
9
+ import { bip32ToAddressNList } from "../coins";
10
+
11
+ import { getRippleToolbox } from "@swapkit/toolboxes/ripple";
12
+
13
+ export const rippleWalletMethods = async ({
14
+ sdk,
15
+ derivationPath,
16
+ }: {
17
+ sdk: KeepKeySdk;
18
+ derivationPath?: DerivationPathArray;
19
+ }) => {
20
+ // Derivation path handling (default to standard XRP 44'/144'/0'/0/0)
21
+ const derivationPathString = derivationPath
22
+ ? derivationPathToString(derivationPath)
23
+ : `${DerivationPath[Chain.Ripple]}/0`;
24
+
25
+ // Fetch address from KeepKey
26
+ // @ts-ignore - keepkey-sdk typings may not yet include xrpGetAddress
27
+ const { address } = await (sdk as any).address.xrpGetAddress({
28
+ address_n: bip32ToAddressNList(derivationPathString),
29
+ });
30
+
31
+ // Inject minimal signer so toolbox's address helpers work
32
+ const signer = {
33
+ getAddress: () => Promise.resolve(address),
34
+ signTransaction: () => {
35
+ throw new Error("signTransaction not supported via toolbox");
36
+ },
37
+ };
38
+
39
+ const toolbox = await getRippleToolbox({ signer });
40
+
41
+ const transfer = async ({ recipient, assetValue, memo }: GenericTransferParams) => {
42
+ // Build XRPL Payment tx using toolbox helper
43
+ const tx = await toolbox.createTransaction({
44
+ assetValue,
45
+ recipient,
46
+ memo,
47
+ sender: address,
48
+ });
49
+
50
+ // Convert toolbox Payment tx into KeepKey StdTx wrapper (KeepKey-specific format)
51
+ const stdTx = {
52
+ type: "auth/StdTx",
53
+ value: {
54
+ fee: {
55
+ amount: [
56
+ {
57
+ amount: "1000",
58
+ denom: "drop",
59
+ },
60
+ ],
61
+ gas: "28000",
62
+ },
63
+ memo: memo && memo.length > 0 ? memo : "",
64
+ msg: [
65
+ {
66
+ type: "ripple-sdk/MsgSend",
67
+ value: {
68
+ amount: [
69
+ {
70
+ amount: tx.Amount,
71
+ denom: "drop",
72
+ },
73
+ ],
74
+ from_address: address,
75
+ to_address: recipient,
76
+ },
77
+ },
78
+ ],
79
+ signatures: null,
80
+ },
81
+ };
82
+
83
+ const unsignedTx = {
84
+ addressNList: bip32ToAddressNList(derivationPathString),
85
+ tx: stdTx,
86
+ flags: tx.Flags === 0 ? undefined : tx.Flags,
87
+ lastLedgerSequence: tx.LastLedgerSequence?.toString(),
88
+ sequence: (tx.Sequence ?? 0).toString(),
89
+ payment: {
90
+ amount: tx.Amount,
91
+ destination: tx.Destination,
92
+ destinationTag: (tx.DestinationTag ?? "0").toString(),
93
+ },
94
+ } as any;
95
+
96
+ // Sign with KeepKey
97
+ // @ts-ignore - typings missing
98
+ const responseSign = JSON.parse(await (sdk as any).xrp.xrpSignTransaction(unsignedTx));
99
+
100
+ // keepkey-sdk may return either { tx_blob } or StdTx with Base64 serializedTx
101
+ const txBlob: string | undefined =
102
+ (responseSign as any).tx_blob ?? (responseSign as any).value?.signatures?.[0]?.serializedTx;
103
+ if (!txBlob) throw new Error("KeepKey XRP sign failed");
104
+
105
+ const buffer = Buffer.from(txBlob, "base64");
106
+ const txBlobHex = buffer.toString("hex");
107
+
108
+ // Broadcast signed tx via toolbox
109
+ return toolbox.broadcastTransaction(txBlobHex);
110
+ };
111
+
112
+ return {
113
+ ...toolbox,
114
+ address,
115
+ getAddress: () => address,
116
+ transfer,
117
+ };
118
+ };
@@ -12,6 +12,7 @@ export enum ChainToKeepKeyName {
12
12
  DOGE = "Dogecoin",
13
13
  LTC = "Litecoin",
14
14
  DASH = "Dash",
15
+ XRP = "Ripple",
15
16
  }
16
17
 
17
18
  export function addressNListToBIP32(address: number[]) {
@@ -33,6 +33,7 @@ export const keepkeyWallet = createWallet({
33
33
  Chain.Dash,
34
34
  Chain.Ethereum,
35
35
  Chain.Litecoin,
36
+ Chain.Ripple,
36
37
  Chain.Optimism,
37
38
  Chain.Polygon,
38
39
  Chain.THORChain,
@@ -116,6 +117,10 @@ async function getWalletMethods({
116
117
  case Chain.Litecoin: {
117
118
  return utxoWalletMethods({ sdk, chain, derivationPath });
118
119
  }
120
+ case Chain.Ripple: {
121
+ const { rippleWalletMethods } = await import("./chains/ripple");
122
+ return rippleWalletMethods({ sdk, derivationPath });
123
+ }
119
124
  default:
120
125
  throw new SwapKitError("wallet_keepkey_chain_not_supported", { chain });
121
126
  }
@@ -36,6 +36,7 @@ export const keepkeyBexWallet = createWallet({
36
36
  Chain.Maya,
37
37
  Chain.Optimism,
38
38
  Chain.Polygon,
39
+ Chain.Ripple,
39
40
  Chain.Solana,
40
41
  Chain.THORChain,
41
42
  ],