@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
@@ -1,4 +1,5 @@
1
- import{A as V0}from"../../chunk-th8ggrmx.js";import{C as W,D as J}from"../../chunk-qwd1kp32.js";import{Chain as F,ChainId as DL,FeeOption as fL,SKConfig as y0,StagenetChain as zL,SwapKitError as E,WalletOption as K0,createWallet as qL,filterSupportedChains as lL}from"@swapkit/helpers";import{Chain as Q,SwapKitError as s0,WalletOption as e0}from"@swapkit/helpers";var I=async({chain:L,ledgerClient:m})=>{if(!m)return"";switch(L){case Q.Cosmos:case Q.THORChain:return m.connect();case Q.Ethereum:case Q.BinanceSmartChain:case Q.Avalanche:case Q.Polygon:case Q.Arbitrum:case Q.Optimism:case Q.Base:return m.getAddress();case Q.Bitcoin:case Q.BitcoinCash:case Q.Dash:case Q.Dogecoin:case Q.Litecoin:{let _=m;await _.connect();let O=await _.getAddress();return L===Q.BitcoinCash?O.replace("bitcoincash:",""):O}case Q.Near:return await m.getAddress();case Q.Ripple:return m.address;default:throw new s0("wallet_chain_not_supported",{wallet:e0.LEDGER,chain:L})}};import{Chain as j,SwapKitError as HL,WalletOption as wL}from"@swapkit/helpers";import{NetworkDerivationPath as yL,SwapKitError as Q0,derivationPathToString as OL}from"@swapkit/helpers";import{LedgerErrorCode as e,NetworkDerivationPath as _L,SwapKitError as r}from"@swapkit/helpers";import{SwapKitError as j0}from"@swapkit/helpers";var K=85,n=250;var S={GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2,GET_ADDR_SECP256K1:4},v={INIT:0,ADD:1,LAST:2},o={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},V={JSON:0},f={NoError:36864},G0={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",36864:"No errors",36865:"Device is busy",26626:"Error deriving keys",25600:"Execution Error",26368:"Wrong Length",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error"};function H(L){if(L in G0)return G0[L];return`Unknown Status Code: ${L}`}function r0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function Z(L){if(L){if(r0(L)){if(Object.prototype.hasOwnProperty.call(L,"statusCode"))return{return_code:L.statusCode,error_message:H(L.statusCode)};if(Object.prototype.hasOwnProperty.call(L,"return_code")&&Object.prototype.hasOwnProperty.call(L,"error_message"))return L}return{return_code:65535,error_message:L.toString()}}return{return_code:65535,error_message:L.toString()}}async function p(L){return L.send(85,S.GET_VERSION,0,0).then((m)=>{let _=m.slice(-2),O=_[0]*256+_[1],y=0;if(m.length>=9)y=(m[5]<<24)+(m[6]<<16)+(m[7]<<8)+(m[8]<<0);return{return_code:O,error_message:H(O),test_mode:m[0]!==0,major:m[1],minor:m[2],patch:m[3],device_locked:m[4]===1,target_id:y.toString(16)}},Z)}import{SwapKitError as h}from"@swapkit/helpers";function F0(L){if(L==null||L.length<3)throw new h("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new h("wallet_ledger_invalid_params",{reason:"Path too long"});let m=Buffer.alloc(1+4*L.length);m.writeUInt8(L.length,0);for(let _=0;_<L.length;_+=1){let O=L[_]||0;if(_<3)O|=2147483648;m.writeInt32LE(O,1+_*4)}return m}async function a(L,m,_,O,y=V.JSON){return L.transport.send(K,S.SIGN_SECP256K1,m,y,O,[f.NoError,27012,27264]).then((T)=>{let B=T.slice(-2),X=B[0]*256+B[1],G=H(X);if(X===27264||X===27012)G=`${G} : ${T.slice(0,T.length-2).toString("ascii")}`;let R=null;if(T.length>2)R=T.slice(0,T.length-2);return{signature:R,return_code:X,error_message:G}},Z)}function LL(L){if(L.length!==65)throw new h("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let m=L.slice(33,65),_=Buffer.from([2+(m[m.length-1]&1)]);return Buffer.concat([_,L.slice(1,33)])}async function R0(L,m){return L.transport.send(K,S.INS_PUBLIC_KEY_SECP256K1,0,0,m,[f.NoError]).then((_)=>{let O=_.slice(-2),y=O[0]*256+O[1],T=Buffer.from(_.slice(0,65));return{pk:T,compressed_pk:LL(T),return_code:y,error_message:H(y)}},Z)}function W0(L){if(!L||L.length!==5)throw new h("wallet_ledger_invalid_params",{reason:"Path must be exactly 5 elements"});let m=Buffer.alloc(20);return m.writeUInt32LE(2147483648+L[0],0),m.writeUInt32LE(2147483648+L[1],4),m.writeUInt32LE(2147483648+L[2],8),m.writeUInt32LE(L[3],12),m.writeUInt32LE(L[4],16),m}function J0(L,m,_,O,y=V.JSON){let T=v.ADD;if(m===1)T=v.INIT;if(m===_)T=v.LAST;return a(L,T,0,O,y)}async function $0(L,m){return L.transport.send(K,S.GET_ADDR_SECP256K1,0,0,m,[f.NoError]).then((_)=>{let O=_.slice(-2),y=O[0]*256+O[1];return{pk:"OBSOLETE PROPERTY",compressed_pk:Buffer.from(_.slice(0,33)),return_code:y,error_message:H(y)}},Z)}class k{transport;versionResponse;constructor(L){if(!L)throw new j0("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new j0("wallet_ledger_invalid_params",{reason:"Invalid HRP"});let m=Buffer.alloc(1+L.length);return m.writeUInt8(L.length,0),m.write(L,1),m}async serializePath(L){if(this.versionResponse=await p(this.transport),this.versionResponse.return_code!==f.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return F0(L);case 2:return W0(L);default:return Buffer.alloc(0)}}async signGetChunks(L,m){let _=await this.serializePath(L),O=[];O.push(_);for(let y=0;y<m.length;y+=n){let T=y+n;if(y>m.length)T=m.length;O.push(m.slice(y,T))}return O}async getVersion(){try{return this.versionResponse=await p(this.transport),this.versionResponse}catch(L){return Z(L)}}async appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1],O="",y="",T=0,B=0;if(L[0]!==1)return{return_code:36865,error_message:"response format ID not recognized"};let X=L[1];O=L.slice(2,2+X).toString("ascii");let G=2+X,R=L[G];G+=1,y=L.slice(G,G+R).toString("ascii"),G+=R;let $=L[G];return G+=1,T=$,B=L[G],{return_code:_,error_message:H(_),appName:O,appVersion:y,flagLen:T,flagsValue:B,flag_recovery:(B&1)!==0,flag_signed_mcu_code:(B&2)!==0,flag_onboarded:(B&4)!==0,flag_pin_validated:(B&128)!==0}},Z)}async deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[f.NoError,28160]).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1];if(_===28160)return{return_code:_,error_message:"This command is only available in the Dashboard"};let O=L.slice(0,4).toString("hex"),y=4,T=L[y];y+=1;let B=L.slice(y,y+T).toString();y+=T;let X=L[y];y+=1;let G=L.slice(y,y+X).toString("hex");y+=X;let R=L[y];y+=1;let $=L.slice(y,y+R);if($[R-1]===0)$=L.slice(y,y+R-1);let M=$.toString();return{return_code:_,error_message:H(_),targetId:O,seVersion:B,flag:G,mcuVersion:M}},Z)}async publicKey(L){try{let m=await this.serializePath(L);switch(this.versionResponse.major){case 1:return R0(this,m);case 2:{let _=Buffer.concat([k.serializeHRP("thor"),m]);return $0(this,_)}default:return{return_code:25600,error_message:"App Version is not supported"}}}catch(m){return Z(m)}}async getAddressAndPubKey(L,m,_=!1){return this.serializePath(L).then((O)=>{let y=Buffer.concat([k.serializeHRP(m),O]);return this.transport.send(K,S.GET_ADDR_SECP256K1,_?o.SHOW_ADDRESS_IN_DEVICE:o.ONLY_RETRIEVE,0,y,[f.NoError]).then((T)=>{let B=T.slice(-2),X=B[0]*256+B[1],G=Buffer.from(T.slice(0,33));return{bech32_address:Buffer.from(T.slice(33,-2)).toString(),compressed_pk:G,return_code:X,error_message:H(X)}},Z)}).catch((O)=>Z(O))}showAddressAndPubKey(L,m){return this.getAddressAndPubKey(L,m,!0)}signSendChunk(L,m,_,O=V.JSON){switch(this.versionResponse.major){case 1:return a(this,L,m,_,O);case 2:return J0(this,L,m,_,O);default:return{return_code:25600,error_message:"App Version is not supported"}}}async sign(L,m,_=V.JSON){let O=Buffer.from(m),y=[],T;try{y=await this.signGetChunks(L,O),T=await this.signSendChunk(1,y.length,y[0],_)}catch(X){Z(X)}let B={return_code:T.return_code,error_message:T.error_message,signature:null};for(let X=1;X<y.length;X+=1)if(B=await this.signSendChunk(1+X,y.length,y[X],_),B.return_code!==f.NoError)break;return{return_code:B.return_code,error_message:B.error_message,signature:B.signature}}}import{SwapKitError as u}from"@swapkit/helpers";var s=()=>navigator?.usb,mL=async()=>{let L=s();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:m}=await import("@ledgerhq/devices"),O=(await L?.getDevices()).filter((y)=>y.vendorId===m);if(O.length>0)return O[0];return L?.requestDevice({filters:[{vendorId:m}]})},N=async()=>{let L=await mL();if(!L)throw new u("wallet_ledger_device_not_found");if(await L.open(),L.configuration===null)await L.selectConfiguration(1);try{await L.reset()}catch{}let m=L.configurations[0].interfaces.find(({alternates:X})=>X.some(({interfaceClass:G})=>G===255));if(!m)throw await L.close(),new u("wallet_ledger_connection_error");try{await L.claimInterface(m.interfaceNumber)}catch(X){throw await L.close(),new u("wallet_ledger_connection_claimed",X)}let _=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await _.isSupported())throw new u("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:y}=await import("@ledgerhq/errors"),T=new _(L,m.interfaceNumber),B=(X)=>{if(L===X.device)s()?.removeEventListener("disconnect",B),T._emitDisconnect(new y)};return s()?.addEventListener("disconnect",B),T};class b{ledgerTimeout=50000;derivationPath=_L.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await N():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new k(this.transport):this.ledgerApp;break}case"cosmos":{let m=(await import("@ledgerhq/hw-app-cosmos")).default;this.ledgerApp=L||!this.ledgerApp?new m(this.transport):this.ledgerApp}}return this.ledgerApp}catch(m){throw new r("wallet_ledger_connection_error",m)}};validateResponse=(L,m)=>{switch(L){case e.NoError:return;case e.LockedDevice:throw new r("wallet_ledger_device_locked",{message:`Ledger is locked: ${m}`});case e.TC_NotFound:throw new r("wallet_ledger_device_not_found");default:break}}}class L0 extends b{pubKey=null;derivationPath;constructor(L=yL.GAIA){super();this.chain="cosmos",this.derivationPath=OL(L)}connect=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{publicKey:L,address:m}=await this.getAddressAndPubKey();return this.pubKey=Buffer.from(L,"hex").toString("base64"),m};getAddressAndPubKey=async()=>{return await this.checkOrCreateTransportAndLedger(!0),await this.ledgerApp.getAddress(this.derivationPath,this.chain)};signTransaction=async(L,m="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:_,error_message:O,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new Q0("wallet_ledger_pubkey_not_found");return this.validateResponse(_,O),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:y}]};signAmino=async(L,m)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex(($)=>$.address===L)===-1)throw new Q0("wallet_ledger_address_not_found",{address:L});let{encodeSecp256k1Signature:y,serializeSignDoc:T}=(await import("@cosmjs/amino")).default,{Secp256k1Signature:B}=(await import("@cosmjs/crypto")).default,X=T(m),G=await this.ledgerApp.sign(this.derivationPath,X);this.validateResponse(G.return_code,G.error_message);let R=B.fromDer(G.signature).toFixedLength();return{signed:m,signature:y(_[0].pubkey,R)}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.getAddressAndPubKey();return[{address:L.address,algo:"secp256k1",pubkey:Buffer.from(L.publicKey,"hex")}]}}import{ChainId as w,NetworkDerivationPath as TL,SwapKitError as x,derivationPathToString as XL}from"@swapkit/helpers";import{AbstractSigner as BL}from"ethers";class z extends BL{chainId=w.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:m=TL.OP,chainId:_=w.Optimism}){super(L);this.chainId=_||w.Ethereum,this.derivationPath=typeof m==="string"?m:XL(m),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new z({provider:L,derivationPath:this.derivationPath,chainId:this.chainId});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await N(),m=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new x("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath)};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signMessage=async(L)=>{let{Signature:m}=await import("ethers");await this.createTransportAndLedger();let _=await this.ledgerApp?.signPersonalMessage(this.derivationPath,L);if(!_)throw new x("wallet_ledger_signing_error");return _.r=`0x${_.r}`,_.s=`0x${_.s}`,m.from(_).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new x("wallet_ledger_no_provider");let m=await this.signTransaction(L);return await this.provider.broadcastTransaction(m)};signTypedData(){throw new x("wallet_ledger_method_not_supported",{method:"signTypedData"})}signTransaction=async(L)=>{let{Transaction:m}=await import("ethers");await this.createTransportAndLedger();let _=await this.provider?.getTransactionCount(L.from||await this.getAddress()),O={chainId:L.chainId||this.chainId,data:L.data,gasLimit:L.gasLimit,...L.gasPrice&&{gasPrice:L.gasPrice},...!L.gasPrice&&L.maxFeePerGas&&{maxFeePerGas:L.maxFeePerGas,maxPriorityFeePerGas:L.maxPriorityFeePerGas},nonce:L.nonce!==void 0?Number((L.nonce||_||0).toString()):_,to:L.to?.toString(),value:L.value,type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0},y=m.from(O).unsignedSerialized.slice(2),{ledgerService:T}=await import("@ledgerhq/hw-app-eth"),B=await T.resolveTransaction(y,{},{externalPlugins:!0,erc20:!0}),X=await this.ledgerApp?.signTransaction(this.derivationPath,y,B);if(!X)throw new x("wallet_ledger_signing_error");let{r:G,s:R,v:$}=X;return m.from({...O,signature:{v:Number(BigInt($)),r:`0x${G}`,s:`0x${R}`}}).serialized}}var Y0=({provider:L,derivationPath:m})=>new z({chainId:w.Ethereum,provider:L,derivationPath:m}),M0=({provider:L,derivationPath:m})=>new z({chainId:w.Avalanche,provider:L,derivationPath:m}),Z0=({provider:L,derivationPath:m})=>new z({chainId:w.BinanceSmartChain,provider:L,derivationPath:m}),N0=({provider:L,derivationPath:m})=>new z({chainId:w.Arbitrum,provider:L,derivationPath:m}),C0=({provider:L,derivationPath:m})=>new z({chainId:w.Polygon,provider:L,derivationPath:m}),U0=({provider:L,derivationPath:m})=>new z({chainId:w.Optimism,provider:L,derivationPath:m}),H0=({provider:L,derivationPath:m})=>new z({chainId:w.Base,provider:L,derivationPath:m});async function w0(L,m){let _=await import("@ledgerhq/hw-app-near"),{Chain:O,DerivationPath:y,derivationPathToString:T,SwapKitError:B}=await import("@swapkit/helpers"),X=new _.default(L),G=m?T(m):y[O.Near],{address:R,publicKey:$}=await X.getAddress(G);return{async getPublicKey(){let{utils:Y}=await import("near-api-js");return Y.PublicKey.fromString(`ed25519:${$}`)},signNep413Message(Y,C,D,U,A){return Promise.reject(new B("wallet_ledger_method_not_supported",{wallet:"Ledger",method:"signNep413Message"}))},getAddress(){return Promise.resolve(R)},async signTransaction(Y){let{Signature:C,SignedTransaction:D}=await import("near-api-js/lib/transaction");try{let U=await X.signTransaction(Y.encode(),G);if(!U)throw new Error("Signature undefined");let A=new C({keyType:0,data:U}),c=new D({transaction:Y,signature:A});return[U,c]}catch(U){throw new B("wallet_ledger_signing_error",{error:U})}},signDelegateAction(Y){return Promise.reject(new B("wallet_ledger_method_not_supported",{wallet:"Ledger",method:"signDelegateAction"}))}}}import{base64 as FL}from"@scure/base";import{NetworkDerivationPath as RL,SwapKitError as D0}from"@swapkit/helpers";import{base64 as GL}from"@scure/base";import{SwapKitError as q}from"@swapkit/helpers";var m0=(L)=>{if(L.length<64)throw new q("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new q("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new q("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new q("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let m=L[3],_=L.slice(4,m+4);if(_.length===33&&_[0]===0)_=_.slice(1,33);else if(_.length===33)throw new q("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[m+4]!==2)throw new q("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let O=L[m+5];if(4+m+2+O!==L.length)throw new q("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let y=L.slice(m+6,L.length);if(y.length===33&&y[0]===0)y=y.slice(1,33);else if(y.length===33)throw new q("wallet_ledger_invalid_signature",{reason:"s too long"});while(y.length<32)y.unshift(0);if(_.length!==32||y.length!==32)throw new q("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return GL.encode(Buffer.concat([_,y]))};class _0 extends b{pubKey=null;derivationPath;constructor(L=RL.THOR){super();this.chain="thor",this.derivationPath=L}get pubkey(){return this.pubKey}connect=async()=>{await this.checkOrCreateTransportAndLedger();let{compressed_pk:L,bech32_address:m}=await this.getAddressAndPubKey();return this.pubKey=FL.encode(L),m};getAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.getAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};showAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.showAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};signTransaction=async(L,m="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:_,error_message:O,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new D0("wallet_ledger_pubkey_not_found");return this.validateResponse(_,O),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:m0(y)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:m,error_message:_,signature:O}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new D0("wallet_ledger_pubkey_not_found");return this.validateResponse(m,_),m0(O)}}import{SwapKitError as f0,derivationPathToString as WL,getWalletFormatFor as JL}from"@swapkit/helpers";import{Transaction as $L}from"bitcoinjs-lib";var jL=async({psbt:L,inputUtxos:m,btcApp:_,derivationPath:O},y)=>{let T=m.map(($)=>{let M=$L.fromHex($.txHex||"");return[_.splitTransaction(M.toHex(),M.hasWitnesses()),$.index,void 0,void 0]}),B=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),X=_.splitTransaction(B,!0),G=_.serializeTransactionOutputs(X).toString("hex"),R={additionals:["bech32"],associatedKeysets:T.map(()=>O),inputs:T,outputScriptHex:G,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...R,...y})},g=({chain:L,additionalSignParams:m})=>{let _,O=null;async function y(B=!0){if(B&&!_)new f0("wallet_ledger_connection_error",{message:`Ledger connection failed:
1
+ import{C as V0}from"../../chunk-c11abmv4.js";import{E as W,F as J}from"../../chunk-r308an05.js";import{Chain as F,ChainId as DL,FeeOption as fL,SKConfig as y0,StagenetChain as zL,SwapKitError as E,WalletOption as K0,createWallet as qL,filterSupportedChains as lL}from"@swapkit/helpers";import{Chain as Q,SwapKitError as s0,WalletOption as e0}from"@swapkit/helpers";var I=async({chain:L,ledgerClient:m})=>{if(!m)return"";switch(L){case Q.Cosmos:case Q.THORChain:return m.connect();case Q.Ethereum:case Q.BinanceSmartChain:case Q.Avalanche:case Q.Polygon:case Q.Arbitrum:case Q.Optimism:case Q.Base:return m.getAddress();case Q.Bitcoin:case Q.BitcoinCash:case Q.Dash:case Q.Dogecoin:case Q.Litecoin:{let _=m;await _.connect();let O=await _.getAddress();return L===Q.BitcoinCash?O.replace("bitcoincash:",""):O}case Q.Near:return await m.getAddress();case Q.Ripple:return m.address;default:throw new s0("wallet_chain_not_supported",{wallet:e0.LEDGER,chain:L})}};import{Chain as j,SwapKitError as HL,WalletOption as wL}from"@swapkit/helpers";import{NetworkDerivationPath as yL,SwapKitError as Q0,derivationPathToString as OL}from"@swapkit/helpers";import{LedgerErrorCode as e,NetworkDerivationPath as _L,SwapKitError as r}from"@swapkit/helpers";import{SwapKitError as j0}from"@swapkit/helpers";var K=85,n=250;var S={GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2,GET_ADDR_SECP256K1:4},v={INIT:0,ADD:1,LAST:2},o={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},V={JSON:0},f={NoError:36864},G0={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",36864:"No errors",36865:"Device is busy",26626:"Error deriving keys",25600:"Execution Error",26368:"Wrong Length",27010:"Empty Buffer",27011:"Output buffer too small",27012:"Data is invalid",27013:"Conditions not satisfied",27014:"Transaction rejected",27264:"Bad key handle",27392:"Invalid P1/P2",27904:"Instruction not supported",28160:"App does not seem to be open",28416:"Unknown error",28417:"Sign/verify error"};function H(L){if(L in G0)return G0[L];return`Unknown Status Code: ${L}`}function r0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function Z(L){if(L){if(r0(L)){if(Object.prototype.hasOwnProperty.call(L,"statusCode"))return{return_code:L.statusCode,error_message:H(L.statusCode)};if(Object.prototype.hasOwnProperty.call(L,"return_code")&&Object.prototype.hasOwnProperty.call(L,"error_message"))return L}return{return_code:65535,error_message:L.toString()}}return{return_code:65535,error_message:L.toString()}}async function p(L){return L.send(85,S.GET_VERSION,0,0).then((m)=>{let _=m.slice(-2),O=_[0]*256+_[1],y=0;if(m.length>=9)y=(m[5]<<24)+(m[6]<<16)+(m[7]<<8)+(m[8]<<0);return{return_code:O,error_message:H(O),test_mode:m[0]!==0,major:m[1],minor:m[2],patch:m[3],device_locked:m[4]===1,target_id:y.toString(16)}},Z)}import{SwapKitError as h}from"@swapkit/helpers";function F0(L){if(L==null||L.length<3)throw new h("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new h("wallet_ledger_invalid_params",{reason:"Path too long"});let m=Buffer.alloc(1+4*L.length);m.writeUInt8(L.length,0);for(let _=0;_<L.length;_+=1){let O=L[_]||0;if(_<3)O|=2147483648;m.writeInt32LE(O,1+_*4)}return m}async function a(L,m,_,O,y=V.JSON){return L.transport.send(K,S.SIGN_SECP256K1,m,y,O,[f.NoError,27012,27264]).then((T)=>{let B=T.slice(-2),X=B[0]*256+B[1],G=H(X);if(X===27264||X===27012)G=`${G} : ${T.slice(0,T.length-2).toString("ascii")}`;let R=null;if(T.length>2)R=T.slice(0,T.length-2);return{signature:R,return_code:X,error_message:G}},Z)}function LL(L){if(L.length!==65)throw new h("wallet_ledger_invalid_params",{reason:"decompressed public key length should be 65 bytes"});let m=L.slice(33,65),_=Buffer.from([2+(m[m.length-1]&1)]);return Buffer.concat([_,L.slice(1,33)])}async function R0(L,m){return L.transport.send(K,S.INS_PUBLIC_KEY_SECP256K1,0,0,m,[f.NoError]).then((_)=>{let O=_.slice(-2),y=O[0]*256+O[1],T=Buffer.from(_.slice(0,65));return{pk:T,compressed_pk:LL(T),return_code:y,error_message:H(y)}},Z)}function W0(L){if(!L||L.length!==5)throw new h("wallet_ledger_invalid_params",{reason:"Path must be exactly 5 elements"});let m=Buffer.alloc(20);return m.writeUInt32LE(2147483648+L[0],0),m.writeUInt32LE(2147483648+L[1],4),m.writeUInt32LE(2147483648+L[2],8),m.writeUInt32LE(L[3],12),m.writeUInt32LE(L[4],16),m}function J0(L,m,_,O,y=V.JSON){let T=v.ADD;if(m===1)T=v.INIT;if(m===_)T=v.LAST;return a(L,T,0,O,y)}async function $0(L,m){return L.transport.send(K,S.GET_ADDR_SECP256K1,0,0,m,[f.NoError]).then((_)=>{let O=_.slice(-2),y=O[0]*256+O[1];return{pk:"OBSOLETE PROPERTY",compressed_pk:Buffer.from(_.slice(0,33)),return_code:y,error_message:H(y)}},Z)}class k{transport;versionResponse;constructor(L){if(!L)throw new j0("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new j0("wallet_ledger_invalid_params",{reason:"Invalid HRP"});let m=Buffer.alloc(1+L.length);return m.writeUInt8(L.length,0),m.write(L,1),m}async serializePath(L){if(this.versionResponse=await p(this.transport),this.versionResponse.return_code!==f.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return F0(L);case 2:return W0(L);default:return Buffer.alloc(0)}}async signGetChunks(L,m){let _=await this.serializePath(L),O=[];O.push(_);for(let y=0;y<m.length;y+=n){let T=y+n;if(y>m.length)T=m.length;O.push(m.slice(y,T))}return O}async getVersion(){try{return this.versionResponse=await p(this.transport),this.versionResponse}catch(L){return Z(L)}}async appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1],O="",y="",T=0,B=0;if(L[0]!==1)return{return_code:36865,error_message:"response format ID not recognized"};let X=L[1];O=L.slice(2,2+X).toString("ascii");let G=2+X,R=L[G];G+=1,y=L.slice(G,G+R).toString("ascii"),G+=R;let $=L[G];return G+=1,T=$,B=L[G],{return_code:_,error_message:H(_),appName:O,appVersion:y,flagLen:T,flagsValue:B,flag_recovery:(B&1)!==0,flag_signed_mcu_code:(B&2)!==0,flag_onboarded:(B&4)!==0,flag_pin_validated:(B&128)!==0}},Z)}async deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[f.NoError,28160]).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1];if(_===28160)return{return_code:_,error_message:"This command is only available in the Dashboard"};let O=L.slice(0,4).toString("hex"),y=4,T=L[y];y+=1;let B=L.slice(y,y+T).toString();y+=T;let X=L[y];y+=1;let G=L.slice(y,y+X).toString("hex");y+=X;let R=L[y];y+=1;let $=L.slice(y,y+R);if($[R-1]===0)$=L.slice(y,y+R-1);let M=$.toString();return{return_code:_,error_message:H(_),targetId:O,seVersion:B,flag:G,mcuVersion:M}},Z)}async publicKey(L){try{let m=await this.serializePath(L);switch(this.versionResponse.major){case 1:return R0(this,m);case 2:{let _=Buffer.concat([k.serializeHRP("thor"),m]);return $0(this,_)}default:return{return_code:25600,error_message:"App Version is not supported"}}}catch(m){return Z(m)}}async getAddressAndPubKey(L,m,_=!1){return this.serializePath(L).then((O)=>{let y=Buffer.concat([k.serializeHRP(m),O]);return this.transport.send(K,S.GET_ADDR_SECP256K1,_?o.SHOW_ADDRESS_IN_DEVICE:o.ONLY_RETRIEVE,0,y,[f.NoError]).then((T)=>{let B=T.slice(-2),X=B[0]*256+B[1],G=Buffer.from(T.slice(0,33));return{bech32_address:Buffer.from(T.slice(33,-2)).toString(),compressed_pk:G,return_code:X,error_message:H(X)}},Z)}).catch((O)=>Z(O))}showAddressAndPubKey(L,m){return this.getAddressAndPubKey(L,m,!0)}signSendChunk(L,m,_,O=V.JSON){switch(this.versionResponse.major){case 1:return a(this,L,m,_,O);case 2:return J0(this,L,m,_,O);default:return{return_code:25600,error_message:"App Version is not supported"}}}async sign(L,m,_=V.JSON){let O=Buffer.from(m),y=[],T;try{y=await this.signGetChunks(L,O),T=await this.signSendChunk(1,y.length,y[0],_)}catch(X){Z(X)}let B={return_code:T.return_code,error_message:T.error_message,signature:null};for(let X=1;X<y.length;X+=1)if(B=await this.signSendChunk(1+X,y.length,y[X],_),B.return_code!==f.NoError)break;return{return_code:B.return_code,error_message:B.error_message,signature:B.signature}}}import{SwapKitError as u}from"@swapkit/helpers";var s=()=>navigator?.usb,mL=async()=>{let L=s();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:m}=await import("@ledgerhq/devices"),O=(await L?.getDevices()).filter((y)=>y.vendorId===m);if(O.length>0)return O[0];return L?.requestDevice({filters:[{vendorId:m}]})},N=async()=>{let L=await mL();if(!L)throw new u("wallet_ledger_device_not_found");if(await L.open(),L.configuration===null)await L.selectConfiguration(1);try{await L.reset()}catch{}let m=L.configurations[0].interfaces.find(({alternates:X})=>X.some(({interfaceClass:G})=>G===255));if(!m)throw await L.close(),new u("wallet_ledger_connection_error");try{await L.claimInterface(m.interfaceNumber)}catch(X){throw await L.close(),new u("wallet_ledger_connection_claimed",X)}let _=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await _.isSupported())throw new u("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:y}=await import("@ledgerhq/errors"),T=new _(L,m.interfaceNumber),B=(X)=>{if(L===X.device)s()?.removeEventListener("disconnect",B),T._emitDisconnect(new y)};return s()?.addEventListener("disconnect",B),T};class b{ledgerTimeout=50000;derivationPath=_L.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await N():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new k(this.transport):this.ledgerApp;break}case"cosmos":{let m=(await import("@ledgerhq/hw-app-cosmos")).default;this.ledgerApp=L||!this.ledgerApp?new m(this.transport):this.ledgerApp}}return this.ledgerApp}catch(m){throw new r("wallet_ledger_connection_error",m)}};validateResponse=(L,m)=>{switch(L){case e.NoError:return;case e.LockedDevice:throw new r("wallet_ledger_device_locked",{message:`Ledger is locked: ${m}`});case e.TC_NotFound:throw new r("wallet_ledger_device_not_found");default:break}}}class L0 extends b{pubKey=null;derivationPath;constructor(L=yL.GAIA){super();this.chain="cosmos",this.derivationPath=OL(L)}connect=async()=>{await this.checkOrCreateTransportAndLedger(!0);let{publicKey:L,address:m}=await this.getAddressAndPubKey();return this.pubKey=Buffer.from(L,"hex").toString("base64"),m};getAddressAndPubKey=async()=>{return await this.checkOrCreateTransportAndLedger(!0),await this.ledgerApp.getAddress(this.derivationPath,this.chain)};signTransaction=async(L,m="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:_,error_message:O,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new Q0("wallet_ledger_pubkey_not_found");return this.validateResponse(_,O),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:y}]};signAmino=async(L,m)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex(($)=>$.address===L)===-1)throw new Q0("wallet_ledger_address_not_found",{address:L});let{encodeSecp256k1Signature:y,serializeSignDoc:T}=(await import("@cosmjs/amino")).default,{Secp256k1Signature:B}=(await import("@cosmjs/crypto")).default,X=T(m),G=await this.ledgerApp.sign(this.derivationPath,X);this.validateResponse(G.return_code,G.error_message);let R=B.fromDer(G.signature).toFixedLength();return{signed:m,signature:y(_[0].pubkey,R)}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.getAddressAndPubKey();return[{address:L.address,algo:"secp256k1",pubkey:Buffer.from(L.publicKey,"hex")}]}}import{ChainId as w,NetworkDerivationPath as TL,SwapKitError as x,derivationPathToString as XL}from"@swapkit/helpers";import{AbstractSigner as BL}from"ethers";class z extends BL{chainId=w.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:m=TL.OP,chainId:_=w.Optimism}){super(L);this.chainId=_||w.Ethereum,this.derivationPath=typeof m==="string"?m:XL(m),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new z({provider:L,derivationPath:this.derivationPath,chainId:this.chainId});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await N(),m=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new x("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath)};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signMessage=async(L)=>{let{Signature:m}=await import("ethers");await this.createTransportAndLedger();let _=await this.ledgerApp?.signPersonalMessage(this.derivationPath,L);if(!_)throw new x("wallet_ledger_signing_error");return _.r=`0x${_.r}`,_.s=`0x${_.s}`,m.from(_).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new x("wallet_ledger_no_provider");let m=await this.signTransaction(L);return await this.provider.broadcastTransaction(m)};signTypedData(){throw new x("wallet_ledger_method_not_supported",{method:"signTypedData"})}signTransaction=async(L)=>{let{Transaction:m}=await import("ethers");await this.createTransportAndLedger();let _=await this.provider?.getTransactionCount(L.from||await this.getAddress()),O={chainId:L.chainId||this.chainId,data:L.data,gasLimit:L.gasLimit,...L.gasPrice&&{gasPrice:L.gasPrice},...!L.gasPrice&&L.maxFeePerGas&&{maxFeePerGas:L.maxFeePerGas,maxPriorityFeePerGas:L.maxPriorityFeePerGas},nonce:L.nonce!==void 0?Number((L.nonce||_||0).toString()):_,to:L.to?.toString(),value:L.value,type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0},y=m.from(O).unsignedSerialized.slice(2),{ledgerService:T}=await import("@ledgerhq/hw-app-eth"),B=await T.resolveTransaction(y,{},{externalPlugins:!0,erc20:!0}),X=await this.ledgerApp?.signTransaction(this.derivationPath,y,B);if(!X)throw new x("wallet_ledger_signing_error");let{r:G,s:R,v:$}=X;return m.from({...O,signature:{v:Number(BigInt($)),r:`0x${G}`,s:`0x${R}`}}).serialized}}var Y0=({provider:L,derivationPath:m})=>new z({chainId:w.Ethereum,provider:L,derivationPath:m}),M0=({provider:L,derivationPath:m})=>new z({chainId:w.Avalanche,provider:L,derivationPath:m}),Z0=({provider:L,derivationPath:m})=>new z({chainId:w.BinanceSmartChain,provider:L,derivationPath:m}),N0=({provider:L,derivationPath:m})=>new z({chainId:w.Arbitrum,provider:L,derivationPath:m}),C0=({provider:L,derivationPath:m})=>new z({chainId:w.Polygon,provider:L,derivationPath:m}),U0=({provider:L,derivationPath:m})=>new z({chainId:w.Optimism,provider:L,derivationPath:m}),H0=({provider:L,derivationPath:m})=>new z({chainId:w.Base,provider:L,derivationPath:m});async function w0(L,m){let _=await import("@ledgerhq/hw-app-near"),{Chain:O,DerivationPath:y,derivationPathToString:T,SwapKitError:B}=await import("@swapkit/helpers"),X=new _.default(L),G=m?T(m):y[O.Near],{address:R,publicKey:$}=await X.getAddress(G);return{async getPublicKey(){let{utils:Y}=await import("near-api-js");return Y.PublicKey.fromString(`ed25519:${$}`)},signNep413Message(Y,C,D,U,A){return Promise.reject(new B("wallet_ledger_method_not_supported",{wallet:"Ledger",method:"signNep413Message"}))},getAddress(){return Promise.resolve(R)},async signTransaction(Y){let{Signature:C,SignedTransaction:D}=await import("near-api-js/lib/transaction");try{let U=await X.signTransaction(Y.encode(),G);if(!U)throw new Error("Signature undefined");let A=new C({keyType:0,data:U}),c=new D({transaction:Y,signature:A});return[U,c]}catch(U){throw new B("wallet_ledger_signing_error",{error:U})}},signDelegateAction(Y){return Promise.reject(new B("wallet_ledger_method_not_supported",{wallet:"Ledger",method:"signDelegateAction"}))}}}import{base64 as FL}from"@scure/base";import{NetworkDerivationPath as RL,SwapKitError as D0}from"@swapkit/helpers";import{base64 as GL}from"@scure/base";import{SwapKitError as q}from"@swapkit/helpers";var m0=(L)=>{if(L.length<64)throw new q("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new q("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new q("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new q("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02"});let m=L[3],_=L.slice(4,m+4);if(_.length===33&&_[0]===0)_=_.slice(1,33);else if(_.length===33)throw new q("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[m+4]!==2)throw new q("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let O=L[m+5];if(4+m+2+O!==L.length)throw new q("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let y=L.slice(m+6,L.length);if(y.length===33&&y[0]===0)y=y.slice(1,33);else if(y.length===33)throw new q("wallet_ledger_invalid_signature",{reason:"s too long"});while(y.length<32)y.unshift(0);if(_.length!==32||y.length!==32)throw new q("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return GL.encode(Buffer.concat([_,y]))};class _0 extends b{pubKey=null;derivationPath;constructor(L=RL.THOR){super();this.chain="thor",this.derivationPath=L}get pubkey(){return this.pubKey}connect=async()=>{await this.checkOrCreateTransportAndLedger();let{compressed_pk:L,bech32_address:m}=await this.getAddressAndPubKey();return this.pubKey=FL.encode(L),m};getAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.getAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};showAddressAndPubKey=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.ledgerApp.showAddressAndPubKey(this.derivationPath,this.chain);return this.validateResponse(L.return_code,L.error_message),L};signTransaction=async(L,m="0")=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:_,error_message:O,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new D0("wallet_ledger_pubkey_not_found");return this.validateResponse(_,O),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:m0(y)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:m,error_message:_,signature:O}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new D0("wallet_ledger_pubkey_not_found");return this.validateResponse(m,_),m0(O)}}import{SwapKitError as f0,derivationPathToString as WL,getWalletFormatFor as JL}from"@swapkit/helpers";import{Transaction as $L}from"bitcoinjs-lib";var jL=async({psbt:L,inputUtxos:m,btcApp:_,derivationPath:O},y)=>{let T=m.map(($)=>{let M=$L.fromHex($.txHex||"");return[_.splitTransaction(M.toHex(),M.hasWitnesses()),$.index,void 0,void 0]}),B=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),X=_.splitTransaction(B,!0),G=_.serializeTransactionOutputs(X).toString("hex"),R={additionals:["bech32"],associatedKeysets:T.map(()=>O),inputs:T,outputScriptHex:G,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...R,...y})},g=({chain:L,additionalSignParams:m})=>{let _,O=null;async function y(B=!0){if(B&&!_)new f0("wallet_ledger_connection_error",{message:`Ledger connection failed:
2
2
  ${JSON.stringify({checkBtcApp:B,btcApp:_})}`});O||=await N()}async function T(){O=await N(),_=new(await import("@ledgerhq/hw-app-btc")).default({transport:O,currency:L})}return(B)=>{let X=typeof B==="string"?B:WL(B),G=JL(X);return{connect:async()=>{await y(!1),_=new(await import("@ledgerhq/hw-app-btc")).default({transport:O,currency:L})},getExtendedPublicKey:async(R="84'/0'/0'",$=76067358)=>{return await y(!1),_.getWalletXpub({path:R,xpubVersion:$})},signTransaction:async(R,$)=>{return await T(),jL({psbt:R,derivationPath:X,btcApp:_,inputUtxos:$},m)},getAddress:async()=>{let{toCashAddress:R}=await import("@swapkit/toolboxes/utxo");await y(!1);let{bitcoinAddress:$}=await _.getWalletPublicKey(X,{format:G});if(!$)throw new f0("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${X}`});return L==="bitcoin-cash"&&G==="legacy"?R($).replace(/(bchtest:|bitcoincash:)/,""):$}}}},z0=g({chain:"bitcoin"}),q0=g({chain:"litecoin"}),l0=g({chain:"bitcoin-cash",additionalSignParams:{segwit:!1,additionals:["abc"],sigHashType:65}}),P0=g({chain:"dogecoin",additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1}}),S0=g({chain:"dash",additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1}});import{Chain as QL,NetworkDerivationPath as YL,derivationPathToString as ML}from"@swapkit/helpers";import{encode as A0}from"ripple-binary-codec";var ZL=2147483648;function NL(L){let m={};for(let _ in L)if(L[_]!==null&&L[_]!==void 0)m[_]=L[_];return m}async function CL(L){let{default:m}=await import("@ledgerhq/hw-app-xrp");return new m(L)}function UL({instance:L,derivationPath:m}){return L.getAddress(m)}var I0=async(L)=>{let m=ML(L||YL[QL.Ripple]),_=await N(),O=await CL(_),{address:y,publicKey:T}=await UL({instance:O,derivationPath:m});async function B(X){let{hashes:G}=await import("@swapkit/toolboxes/ripple"),$={...NL(X),Flags:X.Flags||ZL,SigningPubKey:T.toUpperCase()},M=A0($),Y=await O.signTransaction(m,M),C=A0({...$,TxnSignature:Y}),D=G.hashSignedTx(C);return{tx_blob:C,hash:D}}return{address:y,sign:B}};var l=async({chain:L,derivationPath:m})=>{let{match:_}=await import("ts-pattern");return _(L).returnType().with(j.THORChain,()=>Promise.resolve(new _0(m))).with(j.Cosmos,()=>Promise.resolve(new L0(m))).with(j.Bitcoin,()=>Promise.resolve(z0(m))).with(j.BitcoinCash,()=>Promise.resolve(l0(m))).with(j.Dash,()=>Promise.resolve(S0(m))).with(j.Dogecoin,()=>Promise.resolve(P0(m))).with(j.Litecoin,()=>Promise.resolve(q0(m))).with(j.Ripple,()=>Promise.resolve(I0(m))).with(j.Near,async()=>{let O=await N();return w0(O,m)}).with(j.Arbitrum,j.Avalanche,j.BinanceSmartChain,j.Ethereum,j.Optimism,j.Polygon,j.Base,async()=>{let{getProvider:O}=await import("@swapkit/toolboxes/evm"),y={provider:await O(L),derivationPath:m};return _(L).with(j.BinanceSmartChain,()=>Z0(y)).with(j.Avalanche,()=>M0(y)).with(j.Arbitrum,()=>N0(y)).with(j.Optimism,()=>U0(y)).with(j.Polygon,()=>C0(y)).with(j.Base,()=>H0(y)).otherwise(()=>Y0(y))}).otherwise(()=>{throw new HL("wallet_chain_not_supported",{wallet:wL.LEDGER,chain:L})})};var PL=qL({name:"connectLedger",supportedChains:[F.Arbitrum,F.Avalanche,F.Base,F.BinanceSmartChain,F.Bitcoin,F.BitcoinCash,F.Cosmos,F.Dash,F.Dogecoin,F.Ethereum,F.Litecoin,F.Near,F.Optimism,F.Polygon,F.Ripple,F.THORChain],walletType:K0.LEDGER,connect:({addChain:L,supportedChains:m,walletType:_})=>async function O(y,T){let[B]=lL({chains:y,supportedChains:m,walletType:_});if(!B)return!1;let X=await IL({chain:B,derivationPath:T});return L({...X,chain:B,walletType:K0.LEDGER}),!0}}),bm=V0(PL);function SL(L,m="t"){if(!L?.includes("=:"))return L;let _=L.includes(`:${m}:`)?L.split(`:${m}:`)[0]:L;return _?.substring(0,_.lastIndexOf(":"))}function d(L){if(Array.isArray(L))return L.forEach((O,y)=>{L[y]=d(O)}),L;if(typeof L!=="object")return L;let m={},_=Object.keys(L).sort();for(let O of _)m[O]=d(L[O]);return m}function AL(L){return JSON.stringify(d(L))}async function IL({chain:L,derivationPath:m}){switch(L){case F.BitcoinCash:case F.Bitcoin:case F.Dash:case F.Dogecoin:case F.Litecoin:{let{getUtxoToolbox:_}=await import("@swapkit/toolboxes/utxo"),O=await _(L),y=await l({chain:L,derivationPath:m}),T=await I({chain:L,ledgerClient:y});return{...O,address:T,transfer:async(X)=>{let G=X.feeRate||(await O.getFeeRates())[fL.Average],R=[F.Bitcoin].includes(L)?X.memo:SL(X.memo),{psbt:$,inputs:M}=await O.createTransaction({...X,feeRate:G,memo:R,sender:T,fetchTxHex:!0}),Y=await y.signTransaction($,M);return await O.broadcastTx(Y)}}}case F.Ethereum:case F.Avalanche:case F.Arbitrum:case F.Optimism:case F.Polygon:case F.BinanceSmartChain:case F.Base:{let{getEvmToolbox:_}=await import("@swapkit/toolboxes/evm"),O=await l({chain:L,derivationPath:m}),y=await I({chain:L,ledgerClient:O});return{...await _(L,{signer:O}),address:y}}case F.Cosmos:{let{createSigningStargateClient:_,getMsgSendDenom:O,getCosmosToolbox:y}=await import("@swapkit/toolboxes/cosmos"),T=await y(F.Cosmos),B=await l({chain:L,derivationPath:m}),X=await I({chain:L,ledgerClient:B});return{...T,address:X,transfer:async({assetValue:R,recipient:$,memo:M})=>{if(!R)throw new E("wallet_ledger_invalid_asset");let Y={amount:[{amount:R.getBaseValue("string"),denom:O(`u${R.symbol}`).toLowerCase()}],fromAddress:X,toAddress:$},C=await _(y0.get("rpcUrls")[L],B,"0.007uatom"),{transactionHash:D}=await C.signAndBroadcast(X,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:Y}],2,M);return D}}}case F.THORChain:{let{SignMode:_}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:O}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),{encodePubkey:y,makeAuthInfoBytes:T}=(await import("@cosmjs/proto-signing")).default,{createStargateClient:B,buildEncodedTxBody:X,getCosmosToolbox:G,buildAminoMsg:R,getDefaultChainFee:$,fromBase64:M,parseAminoMessageForDirectSigning:Y}=await import("@swapkit/toolboxes/cosmos"),C=await G(L),D=await l({chain:L,derivationPath:m}),U=await I({chain:L,ledgerClient:D}),A=$(L),{pubkey:c,signTransaction:E0,sign:k0}=D,O0=async({memo:P="",assetValue:T0,...b0})=>{let X0=await C.getAccount(U);if(!X0)throw new E("wallet_ledger_invalid_account");if(!T0)throw new E("wallet_ledger_invalid_asset");if(!c)throw new E("wallet_ledger_pubkey_not_found");let{accountNumber:x0,sequence:g0}=X0,i=(g0||0).toString(),B0=d([R({sender:U,assetValue:T0,memo:P,...b0})]),c0=AL({account_number:x0?.toString(),chain_id:DL.THORChain,fee:A,memo:P,msgs:B0,sequence:i}),t=await E0(c0,i);if(!t)throw new E("wallet_ledger_signing_error");let v0=y({type:"tendermint/PubKeySecp256k1",value:c}),h0=B0.map(Y),u0=await X({msgs:h0,chain:L,memo:P}),d0=T([{pubkey:v0,sequence:Number(i)}],A.amount,Number.parseInt(A.gas),void 0,void 0,_.SIGN_MODE_LEGACY_AMINO_JSON),i0=t?.[0]?.signature?M(t[0].signature):Uint8Array.from([]),t0=O.fromPartial({bodyBytes:u0,authInfoBytes:d0,signatures:[i0]}),n0=O.encode(t0).finish(),{isStagenet:o0}=y0.get("envs"),p0=await B(y0.get("rpcUrls")[o0?zL.THORChain:F.THORChain]),{transactionHash:a0}=await p0.broadcastTx(n0);return a0};return{...C,address:U,deposit:(P)=>O0(P),transfer:(P)=>O0(P),signMessage:k0}}case F.Near:{let{getNearToolbox:_}=await import("@swapkit/toolboxes/near"),O=await l({chain:L,derivationPath:m}),y=await O.getAddress();return{...await _({signer:O}),address:y}}case F.Ripple:{let{getRippleToolbox:_}=await import("@swapkit/toolboxes/ripple"),O=await l({chain:L,derivationPath:m}),y=O.address;return{...await _({signer:O}),address:y}}default:throw new E("wallet_ledger_chain_not_supported",{chain:L})}}export{PL as ledgerWallet,bm as LEDGER_SUPPORTED_CHAINS};
3
3
 
4
- //# debugId=8F9CDAA84455D4C164756E2164756E21
4
+ //# debugId=71048CC0CCD623F064756E2164756E21
5
+ //# sourceMappingURL=index.js.map
@@ -19,6 +19,6 @@
19
19
  "import type Xrp from \"@ledgerhq/hw-app-xrp\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport {\n Chain,\n type DerivationPathArray,\n NetworkDerivationPath,\n derivationPathToString,\n} from \"@swapkit/helpers\";\nimport type { Transaction } from \"@swapkit/toolboxes/ripple\";\nimport { encode } from \"ripple-binary-codec\";\nimport type { Payment } from \"xrpl\";\nimport { getLedgerTransport } from \"../helpers\";\n\nconst TF_FULLY_CANONICAL_SIG = 2147483648;\n\nfunction cleanTransactionObject(obj: Record<string, any>) {\n const cleaned: Record<string, any> = {};\n for (const key in obj) {\n if (obj[key] !== null && obj[key] !== undefined) {\n cleaned[key] = obj[key];\n }\n }\n return cleaned;\n}\n\nasync function establishConnection(transport: Transport) {\n const { default: Xrp } = await import(\"@ledgerhq/hw-app-xrp\");\n return new Xrp(transport);\n}\n\nfunction fetchAddressAndPublicKey({\n instance,\n derivationPath,\n}: { instance: Xrp; derivationPath: string }) {\n return instance.getAddress(derivationPath);\n}\n\nexport const XRPLedger = async (derivationPath?: DerivationPathArray) => {\n const path = derivationPathToString(derivationPath || NetworkDerivationPath[Chain.Ripple]);\n const transport = await getLedgerTransport();\n const xrpInstance = await establishConnection(transport);\n\n const { address, publicKey } = await fetchAddressAndPublicKey({\n instance: xrpInstance,\n derivationPath: path,\n });\n\n async function sign(transaction: Payment | Transaction) {\n const { hashes } = await import(\"@swapkit/toolboxes/ripple\");\n const cleanedTxWithPubKey = cleanTransactionObject(transaction);\n const transactionJSON = {\n ...cleanedTxWithPubKey,\n Flags: transaction.Flags || TF_FULLY_CANONICAL_SIG,\n SigningPubKey: publicKey.toUpperCase(),\n };\n\n const transactionToSignOnLedger = encode(transactionJSON);\n const txnSignature = await xrpInstance.signTransaction(path, transactionToSignOnLedger);\n const tx_blob = encode({ ...transactionJSON, TxnSignature: txnSignature });\n const hash = hashes.hashSignedTx(tx_blob);\n\n return { tx_blob, hash };\n }\n\n return { address, sign };\n};\n"
20
20
  ],
21
21
  "mappings": "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",
22
- "debugId": "8F9CDAA84455D4C164756E2164756E21",
22
+ "debugId": "71048CC0CCD623F064756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -1,3 +1,4 @@
1
1
  var y={};C(y,{okxWallet:()=>x,OKX_SUPPORTED_CHAINS:()=>b});module.exports=_(y);var e=require("@swapkit/helpers");var o=require("@swapkit/helpers"),m=require("bitcoinjs-lib"),k=()=>async({from:s,recipient:t,amount:n,asset:i,memo:a})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new o.SwapKitError("wallet_okx_not_found",{chain:o.Chain.Cosmos});let{createSigningStargateClient:w}=await import("@swapkit/toolboxes/cosmos"),{keplr:r}=window.okxwallet,l=r?.getOfflineSignerOnlyAmino(o.ChainId.Cosmos),d=await w(o.SKConfig.get("rpcUrls").GAIA,l),f=[{denom:i?.symbol==="MUON"?"umuon":"uatom",amount:n.amount().toString()}],{transactionHash:g}=await d.sendTokens(s,t,f,1.6,a);return g};async function h({walletProvider:s,chain:t}){let{getEvmToolbox:n}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:i}=await import("ethers");if(!s)throw new o.SwapKitError("wallet_okx_not_found");let a=new i(s,"any"),w=await a.getSigner(),r=await n(t,{provider:a,signer:w});try{if(t!==o.Chain.Ethereum&&"getNetworkParams"in r)await o.switchEVMWalletNetwork(a,t,r.getNetworkParams())}catch(l){throw new o.SwapKitError("wallet_okx_failed_to_switch_network",{chain:t})}return o.prepareNetworkSwitch({toolbox:r,provider:a,chain:t})}async function p(s){switch(s){case o.Chain.Ethereum:case o.Chain.Base:case o.Chain.Avalanche:case o.Chain.Arbitrum:case o.Chain.Optimism:case o.Chain.Polygon:case o.Chain.BinanceSmartChain:{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new o.SwapKitError("wallet_okx_not_found",{chain:s});let t=await h({chain:s,walletProvider:window.okxwallet}),n=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...t,address:n}}case o.Chain.Bitcoin:{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new o.SwapKitError("wallet_okx_not_found",{chain:o.Chain.Bitcoin});let{getUtxoToolbox:t}=await import("@swapkit/toolboxes/utxo"),{bitcoin:n}=window.okxwallet,i=(await n.connect()).address;return{...await t(s,{signer:{signTransaction:async(r)=>{let l=await n.signPsbt(r.toHex(),{from:i,type:"list"});return m.Psbt.fromHex(l)},getAddress:async()=>Promise.resolve(i)}}),address:i}}case o.Chain.Cosmos:{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new o.SwapKitError("wallet_okx_not_found",{chain:o.Chain.Cosmos});let{keplr:t}=window.okxwallet;await t.enable(o.ChainId.Cosmos);let n=await t.getOfflineSignerOnlyAmino(o.ChainId.Cosmos).getAccounts();if(!n?.[0])throw new o.SwapKitError("wallet_okx_no_accounts",{chain:o.Chain.Cosmos});let{getCosmosToolbox:i}=await import("@swapkit/toolboxes/cosmos"),[{address:a}]=n;return{...i(o.Chain.Cosmos),address:a,transfer:k()}}case o.Chain.Near:{if(!(window.okxwallet&&("near"in window.okxwallet)))throw new o.SwapKitError("wallet_okx_not_found",{chain:o.Chain.Near});let{createNearSignerFromProvider:t}=await import("../../chunk-wfattb4a.js"),{getNearToolbox:n}=await import("@swapkit/toolboxes/near"),i=window.okxwallet.near,a=await t(i,"OKX"),w=await a.getAddress();return{...await n({signer:a}),address:w}}default:throw new o.SwapKitError("wallet_okx_chain_not_supported",{chain:s})}}var x=e.createWallet({name:"connectOkx",walletType:e.WalletOption.OKX,supportedChains:[e.Chain.Arbitrum,e.Chain.Avalanche,e.Chain.Base,e.Chain.BinanceSmartChain,e.Chain.Bitcoin,e.Chain.Cosmos,e.Chain.Ethereum,e.Chain.Near,e.Chain.Optimism,e.Chain.Polygon],connect:({addChain:s,supportedChains:t,walletType:n})=>async function i(a){let w=e.filterSupportedChains({chains:a,supportedChains:t,walletType:n});return await Promise.all(w.map(async(r)=>{let l=await p(r),d=await l.getAddress()||"";s({...l,address:d,chain:r,walletType:n})})),!0}}),b=u(x);
2
2
 
3
3
  //# debugId=D37D34BC2143C92664756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as f}from"../../chunk-th8ggrmx.js";import{C as d,D as m}from"../../chunk-qwd1kp32.js";import{Chain as r,WalletOption as P,createWallet as A,filterSupportedChains as O}from"@swapkit/helpers";import{Chain as t,ChainId as x,SKConfig as h,SwapKitError as l,prepareNetworkSwitch as _,switchEVMWalletNetwork as C}from"@swapkit/helpers";import{Psbt as b}from"bitcoinjs-lib";var y=()=>async({from:a,recipient:o,amount:e,asset:s,memo:n})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Cosmos});let{createSigningStargateClient:w}=await import("@swapkit/toolboxes/cosmos"),{keplr:i}=window.okxwallet,c=i?.getOfflineSignerOnlyAmino(x.Cosmos),p=await w(h.get("rpcUrls").GAIA,c),g=[{denom:s?.symbol==="MUON"?"umuon":"uatom",amount:e.amount().toString()}],{transactionHash:k}=await p.sendTokens(a,o,g,1.6,n);return k};async function S({walletProvider:a,chain:o}){let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:s}=await import("ethers");if(!a)throw new l("wallet_okx_not_found");let n=new s(a,"any"),w=await n.getSigner(),i=await e(o,{provider:n,signer:w});try{if(o!==t.Ethereum&&"getNetworkParams"in i)await C(n,o,i.getNetworkParams())}catch(c){throw new l("wallet_okx_failed_to_switch_network",{chain:o})}return _({toolbox:i,provider:n,chain:o})}async function u(a){switch(a){case t.Ethereum:case t.Base:case t.Avalanche:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.BinanceSmartChain:{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:a});let o=await S({chain:a,walletProvider:window.okxwallet}),e=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...o,address:e}}case t.Bitcoin:{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Bitcoin});let{getUtxoToolbox:o}=await import("@swapkit/toolboxes/utxo"),{bitcoin:e}=window.okxwallet,s=(await e.connect()).address;return{...await o(a,{signer:{signTransaction:async(i)=>{let c=await e.signPsbt(i.toHex(),{from:s,type:"list"});return b.fromHex(c)},getAddress:async()=>Promise.resolve(s)}}),address:s}}case t.Cosmos:{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Cosmos});let{keplr:o}=window.okxwallet;await o.enable(x.Cosmos);let e=await o.getOfflineSignerOnlyAmino(x.Cosmos).getAccounts();if(!e?.[0])throw new l("wallet_okx_no_accounts",{chain:t.Cosmos});let{getCosmosToolbox:s}=await import("@swapkit/toolboxes/cosmos"),[{address:n}]=e;return{...s(t.Cosmos),address:n,transfer:y()}}case t.Near:{if(!(window.okxwallet&&("near"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Near});let{createNearSignerFromProvider:o}=await import("../../chunk-dcj9twam.js"),{getNearToolbox:e}=await import("@swapkit/toolboxes/near"),s=window.okxwallet.near,n=await o(s,"OKX"),w=await n.getAddress();return{...await e({signer:n}),address:w}}default:throw new l("wallet_okx_chain_not_supported",{chain:a})}}var v=A({name:"connectOkx",walletType:P.OKX,supportedChains:[r.Arbitrum,r.Avalanche,r.Base,r.BinanceSmartChain,r.Bitcoin,r.Cosmos,r.Ethereum,r.Near,r.Optimism,r.Polygon],connect:({addChain:a,supportedChains:o,walletType:e})=>async function s(n){let w=O({chains:n,supportedChains:o,walletType:e});return await Promise.all(w.map(async(i)=>{let c=await u(i),p=await c.getAddress()||"";a({...c,address:p,chain:i,walletType:e})})),!0}}),I=f(v);export{v as okxWallet,I as OKX_SUPPORTED_CHAINS};
1
+ import{C as f}from"../../chunk-c11abmv4.js";import{E as d,F as m}from"../../chunk-r308an05.js";import{Chain as r,WalletOption as P,createWallet as A,filterSupportedChains as O}from"@swapkit/helpers";import{Chain as t,ChainId as x,SKConfig as h,SwapKitError as l,prepareNetworkSwitch as _,switchEVMWalletNetwork as C}from"@swapkit/helpers";import{Psbt as b}from"bitcoinjs-lib";var y=()=>async({from:a,recipient:o,amount:e,asset:s,memo:n})=>{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Cosmos});let{createSigningStargateClient:w}=await import("@swapkit/toolboxes/cosmos"),{keplr:i}=window.okxwallet,c=i?.getOfflineSignerOnlyAmino(x.Cosmos),p=await w(h.get("rpcUrls").GAIA,c),g=[{denom:s?.symbol==="MUON"?"umuon":"uatom",amount:e.amount().toString()}],{transactionHash:k}=await p.sendTokens(a,o,g,1.6,n);return k};async function S({walletProvider:a,chain:o}){let{getEvmToolbox:e}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:s}=await import("ethers");if(!a)throw new l("wallet_okx_not_found");let n=new s(a,"any"),w=await n.getSigner(),i=await e(o,{provider:n,signer:w});try{if(o!==t.Ethereum&&"getNetworkParams"in i)await C(n,o,i.getNetworkParams())}catch(c){throw new l("wallet_okx_failed_to_switch_network",{chain:o})}return _({toolbox:i,provider:n,chain:o})}async function u(a){switch(a){case t.Ethereum:case t.Base:case t.Avalanche:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.BinanceSmartChain:{if(!(window.okxwallet&&("send"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:a});let o=await S({chain:a,walletProvider:window.okxwallet}),e=(await window.okxwallet.send("eth_requestAccounts",[])).result[0];return{...o,address:e}}case t.Bitcoin:{if(!(window.okxwallet&&("bitcoin"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Bitcoin});let{getUtxoToolbox:o}=await import("@swapkit/toolboxes/utxo"),{bitcoin:e}=window.okxwallet,s=(await e.connect()).address;return{...await o(a,{signer:{signTransaction:async(i)=>{let c=await e.signPsbt(i.toHex(),{from:s,type:"list"});return b.fromHex(c)},getAddress:async()=>Promise.resolve(s)}}),address:s}}case t.Cosmos:{if(!(window.okxwallet&&("keplr"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Cosmos});let{keplr:o}=window.okxwallet;await o.enable(x.Cosmos);let e=await o.getOfflineSignerOnlyAmino(x.Cosmos).getAccounts();if(!e?.[0])throw new l("wallet_okx_no_accounts",{chain:t.Cosmos});let{getCosmosToolbox:s}=await import("@swapkit/toolboxes/cosmos"),[{address:n}]=e;return{...s(t.Cosmos),address:n,transfer:y()}}case t.Near:{if(!(window.okxwallet&&("near"in window.okxwallet)))throw new l("wallet_okx_not_found",{chain:t.Near});let{createNearSignerFromProvider:o}=await import("../../chunk-hafkx3bw.js"),{getNearToolbox:e}=await import("@swapkit/toolboxes/near"),s=window.okxwallet.near,n=await o(s,"OKX"),w=await n.getAddress();return{...await e({signer:n}),address:w}}default:throw new l("wallet_okx_chain_not_supported",{chain:a})}}var v=A({name:"connectOkx",walletType:P.OKX,supportedChains:[r.Arbitrum,r.Avalanche,r.Base,r.BinanceSmartChain,r.Bitcoin,r.Cosmos,r.Ethereum,r.Near,r.Optimism,r.Polygon],connect:({addChain:a,supportedChains:o,walletType:e})=>async function s(n){let w=O({chains:n,supportedChains:o,walletType:e});return await Promise.all(w.map(async(i)=>{let c=await u(i),p=await c.getAddress()||"";a({...c,address:p,chain:i,walletType:e})})),!0}}),I=f(v);export{v as okxWallet,I as OKX_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=69F3A40AF309F99764756E2164756E21
3
+ //# debugId=9FE69BDF3A5525D064756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -6,6 +6,6 @@
6
6
  "import {\n Chain,\n ChainId,\n type EVMChain,\n SKConfig,\n SwapKitError,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n} from \"@swapkit/helpers\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type { Eip1193Provider } from \"ethers\";\n\nconst cosmosTransfer =\n () =>\n async ({ from, recipient, amount, asset, memo }: any) => {\n if (!(window.okxwallet && \"keplr\" in window.okxwallet)) {\n throw new SwapKitError(\"wallet_okx_not_found\", { chain: Chain.Cosmos });\n }\n const { createSigningStargateClient } = await import(\"@swapkit/toolboxes/cosmos\");\n\n const { keplr: wallet } = window.okxwallet;\n const offlineSigner = wallet?.getOfflineSignerOnlyAmino(ChainId.Cosmos);\n\n const cosmJS = await createSigningStargateClient(SKConfig.get(\"rpcUrls\").GAIA, offlineSigner);\n\n const coins = [\n {\n denom: asset?.symbol === \"MUON\" ? \"umuon\" : \"uatom\",\n amount: amount.amount().toString(),\n },\n ];\n\n const { transactionHash } = await cosmJS.sendTokens(from, recipient, coins, 1.6, memo);\n return transactionHash;\n };\n\nasync function getWeb3WalletMethods({\n walletProvider,\n chain,\n}: { walletProvider: Eip1193Provider | undefined; chain: EVMChain }) {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n if (!walletProvider) throw new SwapKitError(\"wallet_okx_not_found\");\n\n const provider = new BrowserProvider(walletProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n try {\n if (chain !== Chain.Ethereum && \"getNetworkParams\" in toolbox) {\n await switchEVMWalletNetwork(provider, chain, toolbox.getNetworkParams());\n }\n } catch (_error) {\n throw new SwapKitError(\"wallet_okx_failed_to_switch_network\", { chain });\n }\n\n return prepareNetworkSwitch({ toolbox, provider, chain });\n}\n\nexport async function getWalletMethods(chain: Chain) {\n switch (chain) {\n case Chain.Ethereum:\n case Chain.Base:\n case Chain.Avalanche:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.BinanceSmartChain: {\n if (!(window.okxwallet && \"send\" in window.okxwallet)) {\n throw new SwapKitError(\"wallet_okx_not_found\", { chain });\n }\n\n const evmWallet = await getWeb3WalletMethods({\n chain,\n walletProvider: window.okxwallet,\n });\n const address: string = (await window.okxwallet.send(\"eth_requestAccounts\", [])).result[0];\n\n return { ...evmWallet, address };\n }\n\n case Chain.Bitcoin: {\n if (!(window.okxwallet && \"bitcoin\" in window.okxwallet)) {\n throw new SwapKitError(\"wallet_okx_not_found\", { chain: Chain.Bitcoin });\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n\n const { bitcoin: wallet } = window.okxwallet;\n const address = (await wallet.connect()).address;\n\n const signer = {\n signTransaction: async (psbt: InstanceType<typeof Psbt>) => {\n const signedPsbt = await wallet.signPsbt(psbt.toHex(), {\n from: address,\n type: \"list\",\n });\n\n return Psbt.fromHex(signedPsbt);\n },\n getAddress: async () => Promise.resolve(address),\n };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Cosmos: {\n if (!(window.okxwallet && \"keplr\" in window.okxwallet)) {\n throw new SwapKitError(\"wallet_okx_not_found\", { chain: Chain.Cosmos });\n }\n const { keplr: wallet } = window.okxwallet;\n\n await wallet.enable(ChainId.Cosmos);\n const accounts = await wallet.getOfflineSignerOnlyAmino(ChainId.Cosmos).getAccounts();\n if (!accounts?.[0]) throw new SwapKitError(\"wallet_okx_no_accounts\", { chain: Chain.Cosmos });\n\n const { getCosmosToolbox } = await import(\"@swapkit/toolboxes/cosmos\");\n const [{ address }] = accounts;\n const toolbox = getCosmosToolbox(Chain.Cosmos);\n\n return { ...toolbox, address, transfer: cosmosTransfer() };\n }\n\n case Chain.Near: {\n if (!(window.okxwallet && \"near\" in window.okxwallet)) {\n throw new SwapKitError(\"wallet_okx_not_found\", { chain: Chain.Near });\n }\n\n const { createNearSignerFromProvider } = await import(\"../helpers/near\");\n const { getNearToolbox } = await import(\"@swapkit/toolboxes/near\");\n\n const provider = window.okxwallet.near;\n const signer = await createNearSignerFromProvider(provider, \"OKX\");\n const accountId = await signer.getAddress();\n const toolbox = await getNearToolbox({ signer });\n\n return { ...toolbox, address: accountId };\n }\n\n default:\n throw new SwapKitError(\"wallet_okx_chain_not_supported\", { chain });\n }\n}\n"
7
7
  ],
8
8
  "mappings": "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",
9
- "debugId": "69F3A40AF309F99764756E2164756E21",
9
+ "debugId": "9FE69BDF3A5525D064756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,3 +1,4 @@
1
1
  var E={};b(E,{onekeyWallet:()=>u,ONEKEY_WALLET_SUPPORTED_CHAINS:()=>S});module.exports=P(E);var e=require("@swapkit/helpers"),_=require("bitcoinjs-lib");async function A(t){switch(t){case e.Chain.Bitcoin:{if(!window.$onekey?.btc)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:r}=await import("@swapkit/toolboxes/utxo"),{signTransaction:s,getAddress:d,AddressPurpose:o,BitcoinNetworkType:w}=await import("sats-connect"),n="",a=()=>new Promise((i)=>i(window.$onekey?.btc)),c={getProvider:a,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:w.Mainnet}},onFinish:(i)=>{if(i.addresses[0]?.address)n=i.addresses[0].address},onCancel:()=>{throw new e.SwapKitError("wallet_connection_rejected_by_user")}};await d(c);async function p(i){let y,k={getProvider:a,payload:{message:"Sign transaction",network:{type:w.Mainnet},psbtBase64:i.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:i.txInputs.map((g,h)=>h)}]},onFinish:(g)=>{y=_.Psbt.fromBase64(g.psbtBase64)},onCancel:()=>{throw new e.SwapKitError("wallet_connection_rejected_by_user")}};if(await s(k),!y)throw new e.SwapKitError("wallet_onekey_sign_transaction_error");return y}return{...await r(t,{signer:{signTransaction:p,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Chain.Solana:{if(!window.$onekey?.sol)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:r}=await import("@swapkit/toolboxes/solana"),s=window.$onekey.sol,d=await s.getAddress();return{...r({signer:s}),address:d}}case e.Chain.Arbitrum:case e.Chain.Avalanche:case e.Chain.Base:case e.Chain.BinanceSmartChain:case e.Chain.Ethereum:case e.Chain.Optimism:case e.Chain.Polygon:{let{getProvider:r,getEvmToolbox:s}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:d}=await import("ethers"),o=new d(window.$onekey.ethereum,"any"),w=e.SKConfig.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await r(t,w),a=await o.getSigner(),c=await a.getAddress(),p=await s(t,{provider:n,signer:a});try{if(t!==e.Chain.Ethereum){let m=p.getNetworkParams();await e.addEVMWalletNetwork(o,m)}}catch(m){throw new e.SwapKitError({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:m}})}return{address:c,...e.prepareNetworkSwitch({toolbox:p,chain:t,provider:o})}}default:throw new e.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:e.WalletOption.ONEKEY}})}}var u=e.createWallet({name:"connectOnekeyWallet",walletType:e.WalletOption.ONEKEY,supportedChains:[e.Chain.Arbitrum,e.Chain.Avalanche,e.Chain.Base,e.Chain.BinanceSmartChain,e.Chain.Bitcoin,e.Chain.Ethereum,e.Chain.Optimism,e.Chain.Polygon,e.Chain.Solana],connect:({addChain:t,walletType:r,supportedChains:s})=>async function d(o){if(!window.$onekey)throw new e.SwapKitError({errorKey:"wallet_onekey_not_found",info:{wallet:e.WalletOption.ONEKEY}});let w=e.filterSupportedChains({chains:o,supportedChains:s,walletType:r});return await Promise.all(w.map(async(n)=>{let a=await A(n),c=await a.getAddress()||"F";t({...a,chain:n,address:c,walletType:r})})),!0}}),S=f(u);
2
2
 
3
3
  //# debugId=AC10BE891475AE4064756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as k}from"../../chunk-th8ggrmx.js";import{C as p,D as m}from"../../chunk-qwd1kp32.js";import{Chain as e,SKConfig as b,SwapKitError as r,WalletOption as u,addEVMWalletNetwork as A,createWallet as S,filterSupportedChains as E,prepareNetworkSwitch as O}from"@swapkit/helpers";import{Psbt as x}from"bitcoinjs-lib";async function B(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new r({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:s}=await import("@swapkit/toolboxes/utxo"),{signTransaction:a,getAddress:w,AddressPurpose:o,BitcoinNetworkType:c}=await import("sats-connect"),n="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:c.Mainnet}},onFinish:(d)=>{if(d.addresses[0]?.address)n=d.addresses[0].address},onCancel:()=>{throw new r("wallet_connection_rejected_by_user")}};await w(l);async function y(d){let _,h={getProvider:i,payload:{message:"Sign transaction",network:{type:c.Mainnet},psbtBase64:d.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:d.txInputs.map((f,P)=>P)}]},onFinish:(f)=>{_=x.fromBase64(f.psbtBase64)},onCancel:()=>{throw new r("wallet_connection_rejected_by_user")}};if(await a(h),!_)throw new r("wallet_onekey_sign_transaction_error");return _}return{...await s(t,{signer:{signTransaction:y,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Solana:{if(!window.$onekey?.sol)throw new r({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:s}=await import("@swapkit/toolboxes/solana"),a=window.$onekey.sol,w=await a.getAddress();return{...s({signer:a}),address:w}}case e.Arbitrum:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Optimism:case e.Polygon:{let{getProvider:s,getEvmToolbox:a}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new r({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:w}=await import("ethers"),o=new w(window.$onekey.ethereum,"any"),c=b.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await s(t,c),i=await o.getSigner(),l=await i.getAddress(),y=await a(t,{provider:n,signer:i});try{if(t!==e.Ethereum){let g=y.getNetworkParams();await A(o,g)}}catch(g){throw new r({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:g}})}return{address:l,...O({toolbox:y,chain:t,provider:o})}}default:throw new r({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:u.ONEKEY}})}}var v=S({name:"connectOnekeyWallet",walletType:u.ONEKEY,supportedChains:[e.Arbitrum,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Optimism,e.Polygon,e.Solana],connect:({addChain:t,walletType:s,supportedChains:a})=>async function w(o){if(!window.$onekey)throw new r({errorKey:"wallet_onekey_not_found",info:{wallet:u.ONEKEY}});let c=E({chains:o,supportedChains:a,walletType:s});return await Promise.all(c.map(async(n)=>{let i=await B(n),l=await i.getAddress()||"F";t({...i,chain:n,address:l,walletType:s})})),!0}}),W=k(v);export{v as onekeyWallet,W as ONEKEY_WALLET_SUPPORTED_CHAINS};
1
+ import{C as k}from"../../chunk-c11abmv4.js";import{E as p,F as m}from"../../chunk-r308an05.js";import{Chain as e,SKConfig as b,SwapKitError as r,WalletOption as u,addEVMWalletNetwork as A,createWallet as S,filterSupportedChains as E,prepareNetworkSwitch as O}from"@swapkit/helpers";import{Psbt as x}from"bitcoinjs-lib";async function B(t){switch(t){case e.Bitcoin:{if(!window.$onekey?.btc)throw new r({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getUtxoToolbox:s}=await import("@swapkit/toolboxes/utxo"),{signTransaction:a,getAddress:w,AddressPurpose:o,BitcoinNetworkType:c}=await import("sats-connect"),n="",i=()=>new Promise((d)=>d(window.$onekey?.btc)),l={getProvider:i,payload:{purposes:[o.Payment],message:"Address for receiving and sending payments",network:{type:c.Mainnet}},onFinish:(d)=>{if(d.addresses[0]?.address)n=d.addresses[0].address},onCancel:()=>{throw new r("wallet_connection_rejected_by_user")}};await w(l);async function y(d){let _,h={getProvider:i,payload:{message:"Sign transaction",network:{type:c.Mainnet},psbtBase64:d.toBase64(),broadcast:!1,inputsToSign:[{address:n,signingIndexes:d.txInputs.map((f,P)=>P)}]},onFinish:(f)=>{_=x.fromBase64(f.psbtBase64)},onCancel:()=>{throw new r("wallet_connection_rejected_by_user")}};if(await a(h),!_)throw new r("wallet_onekey_sign_transaction_error");return _}return{...await s(t,{signer:{signTransaction:y,getAddress:()=>Promise.resolve(n)}}),address:n}}case e.Solana:{if(!window.$onekey?.sol)throw new r({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{getSolanaToolbox:s}=await import("@swapkit/toolboxes/solana"),a=window.$onekey.sol,w=await a.getAddress();return{...s({signer:a}),address:w}}case e.Arbitrum:case e.Avalanche:case e.Base:case e.BinanceSmartChain:case e.Ethereum:case e.Optimism:case e.Polygon:{let{getProvider:s,getEvmToolbox:a}=await import("@swapkit/toolboxes/evm");if(!window.$onekey?.ethereum)throw new r({errorKey:"wallet_onekey_not_found",info:{chain:t}});let{BrowserProvider:w}=await import("ethers"),o=new w(window.$onekey.ethereum,"any"),c=b.get("rpcUrls")[t];await o.send("eth_requestAccounts",[]);let n=await s(t,c),i=await o.getSigner(),l=await i.getAddress(),y=await a(t,{provider:n,signer:i});try{if(t!==e.Ethereum){let g=y.getNetworkParams();await A(o,g)}}catch(g){throw new r({errorKey:"wallet_failed_to_add_or_switch_network",info:{chain:t,error:g}})}return{address:l,...O({toolbox:y,chain:t,provider:o})}}default:throw new r({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:u.ONEKEY}})}}var v=S({name:"connectOnekeyWallet",walletType:u.ONEKEY,supportedChains:[e.Arbitrum,e.Avalanche,e.Base,e.BinanceSmartChain,e.Bitcoin,e.Ethereum,e.Optimism,e.Polygon,e.Solana],connect:({addChain:t,walletType:s,supportedChains:a})=>async function w(o){if(!window.$onekey)throw new r({errorKey:"wallet_onekey_not_found",info:{wallet:u.ONEKEY}});let c=E({chains:o,supportedChains:a,walletType:s});return await Promise.all(c.map(async(n)=>{let i=await B(n),l=await i.getAddress()||"F";t({...i,chain:n,address:l,walletType:s})})),!0}}),W=k(v);export{v as onekeyWallet,W as ONEKEY_WALLET_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=2026F5D7AFC8DB0C64756E2164756E21
3
+ //# debugId=4AFF16CA6D2B96F864756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import {\n Chain,\n type NetworkParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n addEVMWalletNetwork,\n createWallet,\n filterSupportedChains,\n prepareNetworkSwitch,\n} from \"@swapkit/helpers\";\nimport { Psbt } from \"bitcoinjs-lib\";\nimport type {\n BitcoinProvider,\n GetAddressOptions,\n GetAddressResponse,\n SignTransactionOptions,\n} from \"sats-connect\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nasync function getWalletMethodsForExtension(chain: Chain) {\n switch (chain) {\n case Chain.Bitcoin: {\n if (!window.$onekey?.btc) {\n throw new SwapKitError({ errorKey: \"wallet_onekey_not_found\", info: { chain } });\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const {\n signTransaction: satsSignTransaction,\n getAddress,\n AddressPurpose,\n BitcoinNetworkType,\n } = await import(\"sats-connect\");\n\n let address = \"\";\n\n const getProvider = () => new Promise<BitcoinProvider>((res) => res(window.$onekey?.btc));\n\n const getAddressOptions: GetAddressOptions = {\n getProvider,\n payload: {\n purposes: [AddressPurpose.Payment],\n message: \"Address for receiving and sending payments\",\n network: { type: BitcoinNetworkType.Mainnet },\n },\n onFinish: (response: GetAddressResponse) => {\n if (response.addresses[0]?.address) {\n address = response.addresses[0].address;\n }\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await getAddress(getAddressOptions);\n\n async function signTransaction(psbt: any) {\n let signedPsbt: any;\n const signPsbtOptions: SignTransactionOptions = {\n getProvider,\n payload: {\n message: \"Sign transaction\",\n network: {\n type: BitcoinNetworkType.Mainnet,\n },\n psbtBase64: psbt.toBase64(),\n broadcast: false,\n inputsToSign: [\n {\n address,\n signingIndexes: psbt.txInputs.map((_: any, index: number) => index),\n },\n ],\n },\n onFinish: (response) => {\n signedPsbt = Psbt.fromBase64(response.psbtBase64);\n },\n onCancel: () => {\n throw new SwapKitError(\"wallet_connection_rejected_by_user\");\n },\n };\n\n await satsSignTransaction(signPsbtOptions);\n if (!signedPsbt) throw new SwapKitError(\"wallet_onekey_sign_transaction_error\");\n return signedPsbt;\n }\n\n const signer = {\n signTransaction,\n getAddress: () => Promise.resolve(address),\n };\n\n const toolbox = await getUtxoToolbox(chain, { signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n if (!window.$onekey?.sol) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n\n const signer = window.$onekey.sol;\n const address = await signer.getAddress();\n const toolbox = getSolanaToolbox({ signer });\n\n return { ...toolbox, address };\n }\n\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n if (!window.$onekey?.ethereum) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { chain },\n });\n }\n\n const { BrowserProvider } = await import(\"ethers\");\n const provider = new BrowserProvider(window.$onekey.ethereum, \"any\");\n\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n\n await provider.send(\"eth_requestAccounts\", []);\n const jsonRpcProvider = await getProvider(chain, rpcUrl);\n const signer = await provider.getSigner();\n const address = await signer.getAddress();\n\n const toolbox = await getEvmToolbox(chain, { provider: jsonRpcProvider, signer });\n try {\n if (chain !== Chain.Ethereum) {\n const networkParams = toolbox.getNetworkParams() as NetworkParams;\n\n await addEVMWalletNetwork(provider, networkParams);\n }\n } catch (error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { chain, error },\n });\n }\n\n return {\n address,\n ...prepareNetworkSwitch({ toolbox, chain, provider }),\n };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.ONEKEY },\n });\n }\n}\n\nexport const onekeyWallet = createWallet({\n name: \"connectOnekeyWallet\",\n walletType: WalletOption.ONEKEY,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Bitcoin,\n Chain.Ethereum,\n Chain.Optimism,\n Chain.Polygon,\n Chain.Solana,\n ],\n connect: ({ addChain, walletType, supportedChains }) =>\n async function connectOnekeyWallet(chains: Chain[]) {\n if (!window.$onekey) {\n throw new SwapKitError({\n errorKey: \"wallet_onekey_not_found\",\n info: { wallet: WalletOption.ONEKEY },\n });\n }\n\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethodsForExtension(chain);\n\n const address = (await walletMethods.getAddress()) || \"F\";\n\n addChain({ ...walletMethods, chain, address, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const ONEKEY_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(onekeyWallet);\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "2026F5D7AFC8DB0C64756E2164756E21",
8
+ "debugId": "4AFF16CA6D2B96F864756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,4 @@
1
1
  var A={};x(A,{phantomWallet:()=>m,PHANTOM_SUPPORTED_CHAINS:()=>S});module.exports=T(A);var t=require("@swapkit/helpers");var m=t.createWallet({name:"connectPhantom",walletType:t.WalletOption.PHANTOM,supportedChains:[t.Chain.Bitcoin,t.Chain.Ethereum,t.Chain.Solana],connect:({addChain:s,supportedChains:i,walletType:n})=>async function e(a){let r=t.filterSupportedChains({chains:a,supportedChains:i,walletType:n});try{return await Promise.all(r.map(async(o)=>{let{address:w,...l}=await C(o);s({...l,chain:o,address:w,walletType:n})})),!0}catch(o){if(o instanceof t.SwapKitError)throw o;throw new t.SwapKitError("wallet_connection_rejected_by_user",o)}}}),S=u(m);async function C(s){let i=window?.phantom;switch(s){case t.Chain.Bitcoin:{let n=i?.bitcoin;if(!n?.isPhantom)throw new t.SwapKitError("wallet_phantom_not_found");let{getUtxoToolbox:e}=await import("@swapkit/toolboxes/utxo"),[{address:a}]=await n.requestAccounts();return{...await e(s),address:a}}case t.Chain.Ethereum:{let{getEvmToolbox:n}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:e}=await import("ethers"),a=new e(i?.ethereum,"any"),[r]=await a.send("eth_requestAccounts",[]),o=await a.getSigner();return{...await n(s,{signer:o,provider:a}),address:r}}case t.Chain.Solana:{let{getSolanaToolbox:n}=await import("@swapkit/toolboxes/solana"),e=i?.solana;if(!e?.isPhantom)throw new t.SwapKitError("wallet_phantom_not_found");let r=(await e.connect()).publicKey.toString(),o=await n();return{...o,transfer:async({recipient:l,assetValue:_,isProgramDerivedAddress:p})=>{let{PublicKey:f}=await import("@solana/web3.js"),P=await o.getAddressValidator();if(!(p||P(l)))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let b=new f(r),h=await o.getConnection(),d=await o.createTransaction({recipient:l,assetValue:_,sender:r,isProgramDerivedAddress:p});if(!d)throw new t.SwapKitError("core_transaction_invalid_sender_address");let y=await h.getLatestBlockhash();d.recentBlockhash=y.blockhash,d.feePayer=b;let g=await e.signTransaction(d);return await h.sendRawTransaction(g.serialize())},address:r}}default:throw new t.SwapKitError("wallet_chain_not_supported",{wallet:t.WalletOption.PHANTOM,chain:s})}}
2
2
 
3
3
  //# debugId=F7EA870FCBB97FB864756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as f}from"../../chunk-th8ggrmx.js";import{C as l,D as d}from"../../chunk-qwd1kp32.js";import{Chain as i,SwapKitError as r,WalletOption as _,createWallet as S,filterSupportedChains as C}from"@swapkit/helpers";var A=S({name:"connectPhantom",walletType:_.PHANTOM,supportedChains:[i.Bitcoin,i.Ethereum,i.Solana],connect:({addChain:s,supportedChains:c,walletType:o})=>async function n(e){let a=C({chains:e,supportedChains:c,walletType:o});try{return await Promise.all(a.map(async(t)=>{let{address:h,...w}=await v(t);s({...w,chain:t,address:h,walletType:o})})),!0}catch(t){if(t instanceof r)throw t;throw new r("wallet_connection_rejected_by_user",t)}}}),N=f(A);async function v(s){let c=window?.phantom;switch(s){case i.Bitcoin:{let o=c?.bitcoin;if(!o?.isPhantom)throw new r("wallet_phantom_not_found");let{getUtxoToolbox:n}=await import("@swapkit/toolboxes/utxo"),[{address:e}]=await o.requestAccounts();return{...await n(s),address:e}}case i.Ethereum:{let{getEvmToolbox:o}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:n}=await import("ethers"),e=new n(c?.ethereum,"any"),[a]=await e.send("eth_requestAccounts",[]),t=await e.getSigner();return{...await o(s,{signer:t,provider:e}),address:a}}case i.Solana:{let{getSolanaToolbox:o}=await import("@swapkit/toolboxes/solana"),n=c?.solana;if(!n?.isPhantom)throw new r("wallet_phantom_not_found");let a=(await n.connect()).publicKey.toString(),t=await o();return{...t,transfer:async({recipient:w,assetValue:P,isProgramDerivedAddress:m})=>{let{PublicKey:b}=await import("@solana/web3.js"),y=await t.getAddressValidator();if(!(m||y(w)))throw new r("core_transaction_invalid_recipient_address");let g=new b(a),u=await t.getConnection(),p=await t.createTransaction({recipient:w,assetValue:P,sender:a,isProgramDerivedAddress:m});if(!p)throw new r("core_transaction_invalid_sender_address");let T=await u.getLatestBlockhash();p.recentBlockhash=T.blockhash,p.feePayer=g;let x=await n.signTransaction(p);return await u.sendRawTransaction(x.serialize())},address:a}}default:throw new r("wallet_chain_not_supported",{wallet:_.PHANTOM,chain:s})}}export{A as phantomWallet,N as PHANTOM_SUPPORTED_CHAINS};
1
+ import{C as f}from"../../chunk-c11abmv4.js";import{E as l,F as d}from"../../chunk-r308an05.js";import{Chain as i,SwapKitError as r,WalletOption as _,createWallet as S,filterSupportedChains as C}from"@swapkit/helpers";var A=S({name:"connectPhantom",walletType:_.PHANTOM,supportedChains:[i.Bitcoin,i.Ethereum,i.Solana],connect:({addChain:s,supportedChains:c,walletType:o})=>async function n(e){let a=C({chains:e,supportedChains:c,walletType:o});try{return await Promise.all(a.map(async(t)=>{let{address:h,...w}=await v(t);s({...w,chain:t,address:h,walletType:o})})),!0}catch(t){if(t instanceof r)throw t;throw new r("wallet_connection_rejected_by_user",t)}}}),N=f(A);async function v(s){let c=window?.phantom;switch(s){case i.Bitcoin:{let o=c?.bitcoin;if(!o?.isPhantom)throw new r("wallet_phantom_not_found");let{getUtxoToolbox:n}=await import("@swapkit/toolboxes/utxo"),[{address:e}]=await o.requestAccounts();return{...await n(s),address:e}}case i.Ethereum:{let{getEvmToolbox:o}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:n}=await import("ethers"),e=new n(c?.ethereum,"any"),[a]=await e.send("eth_requestAccounts",[]),t=await e.getSigner();return{...await o(s,{signer:t,provider:e}),address:a}}case i.Solana:{let{getSolanaToolbox:o}=await import("@swapkit/toolboxes/solana"),n=c?.solana;if(!n?.isPhantom)throw new r("wallet_phantom_not_found");let a=(await n.connect()).publicKey.toString(),t=await o();return{...t,transfer:async({recipient:w,assetValue:P,isProgramDerivedAddress:m})=>{let{PublicKey:b}=await import("@solana/web3.js"),y=await t.getAddressValidator();if(!(m||y(w)))throw new r("core_transaction_invalid_recipient_address");let g=new b(a),u=await t.getConnection(),p=await t.createTransaction({recipient:w,assetValue:P,sender:a,isProgramDerivedAddress:m});if(!p)throw new r("core_transaction_invalid_sender_address");let T=await u.getLatestBlockhash();p.recentBlockhash=T.blockhash,p.feePayer=g;let x=await n.signTransaction(p);return await u.sendRawTransaction(x.serialize())},address:a}}default:throw new r("wallet_chain_not_supported",{wallet:_.PHANTOM,chain:s})}}export{A as phantomWallet,N as PHANTOM_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=C71056FDDB2C42A464756E2164756E21
3
+ //# debugId=56E302EB120D481A64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import {\n type AssetValue,\n Chain,\n type GenericTransferParams,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nexport const phantomWallet = createWallet({\n name: \"connectPhantom\",\n walletType: WalletOption.PHANTOM,\n supportedChains: [Chain.Bitcoin, Chain.Ethereum, Chain.Solana],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectPhantom(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n try {\n await Promise.all(\n filteredChains.map(async (chain) => {\n const { address, ...methods } = await getWalletMethods(chain);\n\n addChain({ ...methods, chain, address, walletType });\n }),\n );\n\n return true;\n } catch (error) {\n if (error instanceof SwapKitError) throw error;\n\n throw new SwapKitError(\"wallet_connection_rejected_by_user\", error);\n }\n },\n});\n\nexport const PHANTOM_SUPPORTED_CHAINS = getWalletSupportedChains(phantomWallet);\nexport type PhantomSupportedChain = (typeof PHANTOM_SUPPORTED_CHAINS)[number];\n\nasync function getWalletMethods(chain: PhantomSupportedChain) {\n const phantom: any = window?.phantom;\n\n switch (chain) {\n case Chain.Bitcoin: {\n const provider = phantom?.bitcoin;\n if (!provider?.isPhantom) {\n throw new SwapKitError(\"wallet_phantom_not_found\");\n }\n\n const { getUtxoToolbox } = await import(\"@swapkit/toolboxes/utxo\");\n const [{ address }] = await provider.requestAccounts();\n const toolbox = await getUtxoToolbox(chain);\n\n return { ...toolbox, address };\n }\n\n case Chain.Ethereum: {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n\n const provider = new BrowserProvider(phantom?.ethereum, \"any\");\n const [address] = await provider.send(\"eth_requestAccounts\", []);\n\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { signer, provider });\n\n return { ...toolbox, address };\n }\n\n case Chain.Solana: {\n const { getSolanaToolbox } = await import(\"@swapkit/toolboxes/solana\");\n const provider = phantom?.solana;\n if (!provider?.isPhantom) {\n throw new SwapKitError(\"wallet_phantom_not_found\");\n }\n\n const providerConnection = await provider.connect();\n const address: string = providerConnection.publicKey.toString();\n const toolbox = await getSolanaToolbox();\n\n const transfer = async ({\n recipient,\n assetValue,\n isProgramDerivedAddress,\n }: GenericTransferParams & { assetValue: AssetValue; isProgramDerivedAddress?: boolean }) => {\n const { PublicKey } = await import(\"@solana/web3.js\");\n const validateAddress = await toolbox.getAddressValidator();\n\n if (!(isProgramDerivedAddress || validateAddress(recipient))) {\n throw new SwapKitError(\"core_transaction_invalid_recipient_address\");\n }\n\n const fromPubkey = new PublicKey(address);\n const connection = await toolbox.getConnection();\n\n const transaction = await toolbox.createTransaction({\n recipient,\n assetValue,\n sender: address,\n isProgramDerivedAddress,\n });\n\n if (!transaction) {\n throw new SwapKitError(\"core_transaction_invalid_sender_address\");\n }\n\n const blockHash = await connection.getLatestBlockhash();\n transaction.recentBlockhash = blockHash.blockhash;\n transaction.feePayer = fromPubkey;\n\n const signedTransaction = await provider.signTransaction(transaction);\n\n const txid = await connection.sendRawTransaction(signedTransaction.serialize());\n\n return txid;\n };\n\n return { ...toolbox, transfer, address };\n }\n\n default: {\n throw new SwapKitError(\"wallet_chain_not_supported\", { wallet: WalletOption.PHANTOM, chain });\n }\n }\n}\n"
6
6
  ],
7
7
  "mappings": "iGAAA,cAEE,kBAEA,kBACA,kBACA,2BACA,yBAIK,IAAM,EAAgB,EAAa,CACxC,KAAM,iBACN,WAAY,EAAa,QACzB,gBAAiB,CAAC,EAAM,QAAS,EAAM,SAAU,EAAM,MAAM,EAC7D,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAc,CAAC,EAAiB,CAC7C,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAEpF,GAAI,CASF,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAQ,aAAY,GAAY,MAAM,EAAiB,CAAK,EAE5D,EAAS,IAAK,EAAS,QAAO,UAAS,YAAW,CAAC,EACpD,CACH,EAEO,GACP,MAAO,EAAO,CACd,GAAI,aAAiB,EAAc,MAAM,EAEzC,MAAM,IAAI,EAAa,qCAAsC,CAAK,GAG1E,CAAC,EAEY,EAA2B,EAAyB,CAAa,EAG9E,eAAe,CAAgB,CAAC,EAA8B,CAC5D,IAAM,EAAe,QAAQ,QAE7B,OAAQ,QACD,EAAM,QAAS,CAClB,IAAM,EAAW,GAAS,QAC1B,IAAK,GAAU,UACb,MAAM,IAAI,EAAa,0BAA0B,EAGnD,IAAQ,kBAAmB,KAAa,qCAC/B,YAAa,MAAM,EAAS,gBAAgB,EAGrD,MAAO,IAFS,MAAM,EAAe,CAAK,EAErB,SAAQ,CAC/B,MAEK,EAAM,SAAU,CACnB,IAAQ,iBAAkB,KAAa,mCAC/B,mBAAoB,KAAa,kBAEnC,EAAW,IAAI,EAAgB,GAAS,SAAU,KAAK,GACtD,GAAW,MAAM,EAAS,KAAK,sBAAuB,CAAC,CAAC,EAEzD,EAAS,MAAM,EAAS,UAAU,EAGxC,MAAO,IAFS,MAAM,EAAc,EAAO,CAAE,SAAQ,UAAS,CAAC,EAE1C,SAAQ,CAC/B,MAEK,EAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,qCACpC,EAAW,GAAS,OAC1B,IAAK,GAAU,UACb,MAAM,IAAI,EAAa,0BAA0B,EAInD,IAAM,GADqB,MAAM,EAAS,QAAQ,GACP,UAAU,SAAS,EACxD,EAAU,MAAM,EAAiB,EAuCvC,MAAO,IAAK,EAAS,SArCJ,OACf,YACA,aACA,6BAC2F,CAC3F,IAAQ,aAAc,KAAa,2BAC7B,EAAkB,MAAM,EAAQ,oBAAoB,EAE1D,KAAM,GAA2B,EAAgB,CAAS,GACxD,MAAM,IAAI,EAAa,4CAA4C,EAGrE,IAAM,EAAa,IAAI,EAAU,CAAO,EAClC,EAAa,MAAM,EAAQ,cAAc,EAEzC,EAAc,MAAM,EAAQ,kBAAkB,CAClD,YACA,aACA,OAAQ,EACR,yBACF,CAAC,EAED,IAAK,EACH,MAAM,IAAI,EAAa,yCAAyC,EAGlE,IAAM,EAAY,MAAM,EAAW,mBAAmB,EACtD,EAAY,gBAAkB,EAAU,UACxC,EAAY,SAAW,EAEvB,IAAM,EAAoB,MAAM,EAAS,gBAAgB,CAAW,EAIpE,OAFa,MAAM,EAAW,mBAAmB,EAAkB,UAAU,CAAC,GAKjD,SAAQ,CACzC,SAGE,MAAM,IAAI,EAAa,6BAA8B,CAAE,OAAQ,EAAa,QAAS,OAAM,CAAC",
8
- "debugId": "C71056FDDB2C42A464756E2164756E21",
8
+ "debugId": "56E302EB120D481A64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,4 @@
1
1
  var h={};f(h,{polkadotWallet:()=>d,POLKADOT_SUPPORTED_CHAINS:()=>_});module.exports=u(h);var t=require("@swapkit/helpers");var d=t.createWallet({name:"connectPolkadotJs",walletType:t.WalletOption.POLKADOT_JS,supportedChains:[t.Chain.Polkadot],connect:({addChain:e,supportedChains:r,walletType:l})=>async function n(s){let o=t.filterSupportedChains({chains:s,supportedChains:r,walletType:l});return await Promise.all(o.map(async(a)=>{let{address:c,...w}=await P(a);e({...w,chain:a,address:c,walletType:l})})),!0}}),_=i(d);async function P(e){switch(e){case t.Chain.Polkadot:{let{getSubstrateToolbox:r}=await import("@swapkit/toolboxes/substrate"),n=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!n)throw new t.SwapKitError({errorKey:"wallet_polkadot_not_found",info:{chain:e}});let s=await r(e,{signer:n.signer}),[o]=await n.accounts.get();if(!o?.address)throw new t.SwapKitError({errorKey:"wallet_missing_params",info:{wallet:t.WalletOption.POLKADOT_JS,address:o?.address}});let a=s.convertAddress(o.address,0);return{...s,getAddress:()=>a,address:a}}default:throw new t.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:e,wallet:t.WalletOption.POLKADOT_JS}})}}
2
2
 
3
3
  //# debugId=58BE495CDFAA13F264756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as c}from"../../chunk-th8ggrmx.js";import{C as u,D as f}from"../../chunk-qwd1kp32.js";import{Chain as i,SwapKitError as l,WalletOption as d,createWallet as _,filterSupportedChains as P}from"@swapkit/helpers";var h=_({name:"connectPolkadotJs",walletType:d.POLKADOT_JS,supportedChains:[i.Polkadot],connect:({addChain:t,supportedChains:s,walletType:r})=>async function a(n){let e=P({chains:n,supportedChains:s,walletType:r});return await Promise.all(e.map(async(o)=>{let{address:w,...p}=await m(o);t({...p,chain:o,address:w,walletType:r})})),!0}}),g=c(h);async function m(t){switch(t){case i.Polkadot:{let{getSubstrateToolbox:s}=await import("@swapkit/toolboxes/substrate"),a=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!a)throw new l({errorKey:"wallet_polkadot_not_found",info:{chain:t}});let n=await s(t,{signer:a.signer}),[e]=await a.accounts.get();if(!e?.address)throw new l({errorKey:"wallet_missing_params",info:{wallet:d.POLKADOT_JS,address:e?.address}});let o=n.convertAddress(e.address,0);return{...n,getAddress:()=>o,address:o}}default:throw new l({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:d.POLKADOT_JS}})}}export{h as polkadotWallet,g as POLKADOT_SUPPORTED_CHAINS};
1
+ import{C as c}from"../../chunk-c11abmv4.js";import{E as u,F as f}from"../../chunk-r308an05.js";import{Chain as i,SwapKitError as l,WalletOption as d,createWallet as _,filterSupportedChains as P}from"@swapkit/helpers";var h=_({name:"connectPolkadotJs",walletType:d.POLKADOT_JS,supportedChains:[i.Polkadot],connect:({addChain:t,supportedChains:s,walletType:r})=>async function a(n){let e=P({chains:n,supportedChains:s,walletType:r});return await Promise.all(e.map(async(o)=>{let{address:w,...p}=await m(o);t({...p,chain:o,address:w,walletType:r})})),!0}}),g=c(h);async function m(t){switch(t){case i.Polkadot:{let{getSubstrateToolbox:s}=await import("@swapkit/toolboxes/substrate"),a=await window?.injectedWeb3?.["polkadot-js"]?.enable?.("polkadot-js");if(!a)throw new l({errorKey:"wallet_polkadot_not_found",info:{chain:t}});let n=await s(t,{signer:a.signer}),[e]=await a.accounts.get();if(!e?.address)throw new l({errorKey:"wallet_missing_params",info:{wallet:d.POLKADOT_JS,address:e?.address}});let o=n.convertAddress(e.address,0);return{...n,getAddress:()=>o,address:o}}default:throw new l({errorKey:"wallet_chain_not_supported",info:{chain:t,wallet:d.POLKADOT_JS}})}}export{h as polkadotWallet,g as POLKADOT_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=D085489261E39F3F64756E2164756E21
3
+ //# debugId=35B8E1DB6D362D4364756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import {\n Chain,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nexport const polkadotWallet = createWallet({\n name: \"connectPolkadotJs\",\n walletType: WalletOption.POLKADOT_JS,\n supportedChains: [Chain.Polkadot],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectPolkadotJs(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const { address, ...walletMethods } = await getWalletMethods(chain);\n\n addChain({ ...walletMethods, chain, address, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const POLKADOT_SUPPORTED_CHAINS = getWalletSupportedChains(polkadotWallet);\n\nasync function getWalletMethods(chain: Chain) {\n switch (chain) {\n case Chain.Polkadot: {\n const { getSubstrateToolbox } = await import(\"@swapkit/toolboxes/substrate\");\n const injectedExtension = window?.injectedWeb3?.[\"polkadot-js\"];\n\n const rawExtension = await injectedExtension?.enable?.(\"polkadot-js\");\n if (!rawExtension) {\n throw new SwapKitError({ errorKey: \"wallet_polkadot_not_found\", info: { chain } });\n }\n\n const toolbox = await getSubstrateToolbox(chain, { signer: rawExtension.signer });\n const [account] = await rawExtension.accounts.get();\n\n if (!account?.address) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.POLKADOT_JS, address: account?.address },\n });\n }\n\n const address = toolbox.convertAddress(account.address, 0);\n return {\n ...toolbox,\n getAddress: () => address,\n address,\n };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.POLKADOT_JS },\n });\n }\n}\n"
6
6
  ],
7
7
  "mappings": "iGAAA,cACE,kBACA,kBACA,kBACA,2BACA,yBAIK,IAAM,EAAiB,EAAa,CACzC,KAAM,oBACN,WAAY,EAAa,YACzB,gBAAiB,CAAC,EAAM,QAAQ,EAChC,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAiB,CAAC,EAAiB,CAChD,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAUpF,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAQ,aAAY,GAAkB,MAAM,EAAiB,CAAK,EAElE,EAAS,IAAK,EAAe,QAAO,UAAS,YAAW,CAAC,EAC1D,CACH,EAEO,GAEb,CAAC,EAEY,EAA4B,EAAyB,CAAc,EAEhF,eAAe,CAAgB,CAAC,EAAc,CAC5C,OAAQ,QACD,EAAM,SAAU,CACnB,IAAQ,uBAAwB,KAAa,wCAGvC,EAAe,MAFK,QAAQ,eAAe,gBAEH,SAAS,aAAa,EACpE,IAAK,EACH,MAAM,IAAI,EAAa,CAAE,SAAU,4BAA6B,KAAM,CAAE,OAAM,CAAE,CAAC,EAGnF,IAAM,EAAU,MAAM,EAAoB,EAAO,CAAE,OAAQ,EAAa,MAAO,CAAC,GACzE,GAAW,MAAM,EAAa,SAAS,IAAI,EAElD,IAAK,GAAS,QACZ,MAAM,IAAI,EAAa,CACrB,SAAU,wBACV,KAAM,CAAE,OAAQ,EAAa,YAAa,QAAS,GAAS,OAAQ,CACtE,CAAC,EAGH,IAAM,EAAU,EAAQ,eAAe,EAAQ,QAAS,CAAC,EACzD,MAAO,IACF,EACH,WAAY,IAAM,EAClB,SACF,CACF,SAGE,MAAM,IAAI,EAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,EAAa,WAAY,CAClD,CAAC",
8
- "debugId": "D085489261E39F3F64756E2164756E21",
8
+ "debugId": "35B8E1DB6D362D4364756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,4 @@
1
1
  var k={};N(k,{radixWallet:()=>G,RADIX_SUPPORTED_CHAINS:()=>S});module.exports=I(k);var j=require("@swapkit/helpers");var G=j.createWallet({name:"connectRadixWallet",walletType:j.WalletOption.RADIX_WALLET,supportedChains:[j.Chain.Radix],connect:({addChain:M,supportedChains:L,walletType:J})=>async function W(O){let Q=j.filterSupportedChains({chains:O,supportedChains:L,walletType:J});if(!j.SKConfig.get("integrations").radix)throw new j.SwapKitError("wallet_radix_not_found");return await Promise.all(Q.map(async(H)=>{let z=await h();M({...z,chain:H,walletType:J})})),!0}}),S=T(G);async function x(M){let{GatewayApiClient:L}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:J}=j.SKConfig.get("integrations").radix,W=L.initialize({networkId:1,applicationName:J}),O=!0,Q,V=[],H=await B(W);while(O){let z={address:M,limit_per_page:100,cursor:Q,at_ledger_state:{state_version:H}},U=await W.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:z});if(V=V.concat(U.items),U.next_cursor)Q=U.next_cursor;else O=!1}return V}async function B(M){return M.status.getCurrent().then((L)=>L.ledger_state.state_version)}async function C(M){let{GatewayApiClient:L}=await import("@radixdlt/babylon-gateway-api-sdk"),J=await x(M),{applicationName:W}=j.SKConfig.get("integrations").radix,O=L.initialize({networkId:1,applicationName:W}),Q=[],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 U=z.map((K)=>K.resource_address),Y=await O.state.getEntityDetailsVaultAggregated(U),$=new Map;for(let K of Y)if(K.details!==void 0){let X=K.metadata?.items.find((q)=>q.key==="symbol"),_=X?.value.typed.type==="String"?X.value.typed.value:"?";if(K.details.type==="FungibleResource")$.set(K.address,{decimals:K.details.divisibility,symbol:_})}for(let K of z)if(K.aggregation_level==="Global"){let X=$.get(K.resource_address)||{decimals:0,symbol:"?"},_=j.AssetValue.from({asset:X.symbol!==j.Chain.Radix?`${j.Chain.Radix}.${X.symbol}-${K.resource_address}`:"XRD.XRD",value:K.amount});Q.push(_)}}return Q}async function h(){let{RadixDappToolkit:M}=await import("@radixdlt/radix-dapp-toolkit"),L=j.SKConfig.get("integrations").radix,J=M({...L,networkId:L.network.networkId});function W(H){return new Promise((z)=>setTimeout(z,H))}await W(400);function O(){return J.walletApi.getWalletData()?.accounts?.[0]?.address}let Q=async()=>{let{DataRequestBuilder:H}=await import("@radixdlt/radix-dapp-toolkit");J.walletApi.setRequestData(H.accounts().exactly(1));let z=await J.walletApi.sendRequest();if(!z)throw new j.SwapKitError("wallet_radix_no_account");let U=z.unwrapOr(null)?.accounts[0]?.address;if(!U)throw new j.SwapKitError("wallet_radix_no_account");return U},V=O()||await Q();return{radixDappToolkit:J,address:V,getAddress:O,getBalance:()=>C(V),transfer:(H)=>{throw new j.SwapKitError("wallet_radix_method_not_supported",{method:"transfer"})},signAndBroadcast:async({manifest:H,message:z})=>{let Y=(await J.walletApi.sendTransaction({transactionManifest:H,message:z})).unwrapOr(null)?.transactionIntentHash;if(!Y)throw new j.SwapKitError("wallet_radix_transaction_failed");return Y}}}
2
2
 
3
3
  //# debugId=B67351FEC3CB47A564756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as I}from"../../chunk-th8ggrmx.js";import{C as _,D as $}from"../../chunk-qwd1kp32.js";import{AssetValue as S,Chain as T,SKConfig as Y,SwapKitError as X,WalletOption as x,createWallet as B,filterSupportedChains as C}from"@swapkit/helpers";var h=B({name:"connectRadixWallet",walletType:x.RADIX_WALLET,supportedChains:[T.Radix],connect:({addChain:L,supportedChains:K,walletType:H})=>async function V(M){let O=C({chains:M,supportedChains:K,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(O.map(async(z)=>{let j=await E();L({...j,chain:z,walletType:H})})),!0}}),f=I(h);async function k(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=K.initialize({networkId:1,applicationName:H}),M=!0,O,U=[],z=await v(V);while(M){let j={address:L,limit_per_page:100,cursor:O,at_ledger_state:{state_version:z}},Q=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:j});if(U=U.concat(Q.items),Q.next_cursor)O=Q.next_cursor;else M=!1}return U}async function v(L){return L.status.getCurrent().then((K)=>K.ledger_state.state_version)}async function D(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await k(L),{applicationName:V}=Y.get("integrations").radix,M=K.initialize({networkId:1,applicationName:V}),O=[],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 Q=j.map((J)=>J.resource_address),Z=await M.state.getEntityDetailsVaultAggregated(Q),q=new Map;for(let J of Z)if(J.details!==void 0){let W=J.metadata?.items.find((N)=>N.key==="symbol"),G=W?.value.typed.type==="String"?W.value.typed.value:"?";if(J.details.type==="FungibleResource")q.set(J.address,{decimals:J.details.divisibility,symbol:G})}for(let J of j)if(J.aggregation_level==="Global"){let W=q.get(J.resource_address)||{decimals:0,symbol:"?"},G=S.from({asset:W.symbol!==T.Radix?`${T.Radix}.${W.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});O.push(G)}}return O}async function E(){let{RadixDappToolkit:L}=await import("@radixdlt/radix-dapp-toolkit"),K=Y.get("integrations").radix,H=L({...K,networkId:K.network.networkId});function V(z){return new Promise((j)=>setTimeout(j,z))}await V(400);function M(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let O=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 Q=j.unwrapOr(null)?.accounts[0]?.address;if(!Q)throw new X("wallet_radix_no_account");return Q},U=M()||await O();return{radixDappToolkit:H,address:U,getAddress:M,getBalance:()=>D(U),transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})},signAndBroadcast:async({manifest:z,message:j})=>{let Z=(await H.walletApi.sendTransaction({transactionManifest:z,message:j})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z}}}export{h as radixWallet,f as RADIX_SUPPORTED_CHAINS};
1
+ import{C as I}from"../../chunk-c11abmv4.js";import{E as _,F as $}from"../../chunk-r308an05.js";import{AssetValue as S,Chain as T,SKConfig as Y,SwapKitError as X,WalletOption as x,createWallet as B,filterSupportedChains as C}from"@swapkit/helpers";var h=B({name:"connectRadixWallet",walletType:x.RADIX_WALLET,supportedChains:[T.Radix],connect:({addChain:L,supportedChains:K,walletType:H})=>async function V(M){let O=C({chains:M,supportedChains:K,walletType:H});if(!Y.get("integrations").radix)throw new X("wallet_radix_not_found");return await Promise.all(O.map(async(z)=>{let j=await E();L({...j,chain:z,walletType:H})})),!0}}),f=I(h);async function k(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),{applicationName:H}=Y.get("integrations").radix,V=K.initialize({networkId:1,applicationName:H}),M=!0,O,U=[],z=await v(V);while(M){let j={address:L,limit_per_page:100,cursor:O,at_ledger_state:{state_version:z}},Q=await V.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:j});if(U=U.concat(Q.items),Q.next_cursor)O=Q.next_cursor;else M=!1}return U}async function v(L){return L.status.getCurrent().then((K)=>K.ledger_state.state_version)}async function D(L){let{GatewayApiClient:K}=await import("@radixdlt/babylon-gateway-api-sdk"),H=await k(L),{applicationName:V}=Y.get("integrations").radix,M=K.initialize({networkId:1,applicationName:V}),O=[],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 Q=j.map((J)=>J.resource_address),Z=await M.state.getEntityDetailsVaultAggregated(Q),q=new Map;for(let J of Z)if(J.details!==void 0){let W=J.metadata?.items.find((N)=>N.key==="symbol"),G=W?.value.typed.type==="String"?W.value.typed.value:"?";if(J.details.type==="FungibleResource")q.set(J.address,{decimals:J.details.divisibility,symbol:G})}for(let J of j)if(J.aggregation_level==="Global"){let W=q.get(J.resource_address)||{decimals:0,symbol:"?"},G=S.from({asset:W.symbol!==T.Radix?`${T.Radix}.${W.symbol}-${J.resource_address}`:"XRD.XRD",value:J.amount});O.push(G)}}return O}async function E(){let{RadixDappToolkit:L}=await import("@radixdlt/radix-dapp-toolkit"),K=Y.get("integrations").radix,H=L({...K,networkId:K.network.networkId});function V(z){return new Promise((j)=>setTimeout(j,z))}await V(400);function M(){return H.walletApi.getWalletData()?.accounts?.[0]?.address}let O=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 Q=j.unwrapOr(null)?.accounts[0]?.address;if(!Q)throw new X("wallet_radix_no_account");return Q},U=M()||await O();return{radixDappToolkit:H,address:U,getAddress:M,getBalance:()=>D(U),transfer:(z)=>{throw new X("wallet_radix_method_not_supported",{method:"transfer"})},signAndBroadcast:async({manifest:z,message:j})=>{let Z=(await H.walletApi.sendTransaction({transactionManifest:z,message:j})).unwrapOr(null)?.transactionIntentHash;if(!Z)throw new X("wallet_radix_transaction_failed");return Z}}}export{h as radixWallet,f as RADIX_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=DED8821778BCF99864756E2164756E21
3
+ //# debugId=ED4D8D2A849EEB2B64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import type {\n FungibleResourcesCollectionItem,\n GatewayApiClient,\n StateEntityDetailsVaultResponseItem,\n StateEntityFungiblesPageRequest,\n StateEntityFungiblesPageResponse,\n} from \"@radixdlt/babylon-gateway-api-sdk\";\nimport {\n AssetValue,\n Chain,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nexport const radixWallet = createWallet({\n name: \"connectRadixWallet\",\n walletType: WalletOption.RADIX_WALLET,\n supportedChains: [Chain.Radix],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectRadixWallet(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const radixConfig = SKConfig.get(\"integrations\").radix;\n\n if (!radixConfig) {\n throw new SwapKitError(\"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});\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 } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ networkId: 1, applicationName });\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 limit_per_page: 100,\n cursor: nextCursor,\n at_ledger_state: { state_version: stateVersion },\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\nasync function 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 SwapKitApi.getChainBalance()?\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: TODO: Split into multiple functions\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 } = SKConfig.get(\"integrations\").radix;\n const networkApi = GatewayApiClient.initialize({ networkId: 1, applicationName });\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 =\n 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 return balances;\n}\n\nasync function getWalletMethods() {\n const { RadixDappToolkit } = await import(\"@radixdlt/radix-dapp-toolkit\");\n const dappConfig = SKConfig.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 SwapKitError(\"wallet_radix_no_account\");\n }\n\n const newAddress = res.unwrapOr(null)?.accounts[0]?.address;\n\n if (!newAddress) {\n throw new SwapKitError(\"wallet_radix_no_account\");\n }\n\n return newAddress;\n };\n\n const address = getAddress() || (await getNewAddress());\n\n return {\n radixDappToolkit: rdt,\n address,\n getAddress,\n getBalance: () => getBalance(address),\n transfer: (_params: { assetValue: AssetValue; recipient: string; from: string }) => {\n throw new SwapKitError(\"wallet_radix_method_not_supported\", { method: \"transfer\" });\n },\n signAndBroadcast: async ({ manifest, message }: { manifest: string; message: string }) => {\n const tx = await rdt.walletApi.sendTransaction({\n transactionManifest: manifest,\n message,\n });\n\n const txResult = tx.unwrapOr(null)?.transactionIntentHash;\n\n if (!txResult) {\n throw new SwapKitError(\"wallet_radix_transaction_failed\");\n }\n\n return txResult;\n },\n };\n}\n"
6
6
  ],
7
7
  "mappings": "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",
8
- "debugId": "DED8821778BCF99864756E2164756E21",
8
+ "debugId": "ED4D8D2A849EEB2B64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,4 @@
1
1
  var _={};p(_,{talismanWallet:()=>c,TALISMAN_SUPPORTED_CHAINS:()=>h});module.exports=m(_);var t=require("@swapkit/helpers");var c=t.createWallet({name:"connectTalisman",walletType:t.WalletOption.TALISMAN,supportedChains:[t.Chain.Ethereum,t.Chain.Arbitrum,t.Chain.Avalanche,t.Chain.Base,t.Chain.Polygon,t.Chain.BinanceSmartChain,t.Chain.Optimism,t.Chain.Polkadot,t.Chain.Chainflip],connect:({addChain:e,supportedChains:a,walletType:r})=>async function l(o){let i=t.filterSupportedChains({chains:o,supportedChains:a,walletType:r});return await Promise.all(i.map(async(n)=>{let s=await u(n);e({...s,chain:n,walletType:r})})),!0}}),h=d(c);async function f({walletProvider:e,chain:a}){let{getEvmToolbox:r}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:l}=await import("ethers");if(!e)throw new t.SwapKitError({errorKey:"wallet_provider_not_found",info:{wallet:t.WalletOption.TALISMAN,chain:a}});let o=new l(e,"any"),i=await o.getSigner(),n=await r(a,{provider:o,signer:i});try{if(a!==t.Chain.Ethereum)await t.switchEVMWalletNetwork(o,a,n.getNetworkParams())}catch(s){throw new t.SwapKitError({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:t.WalletOption.TALISMAN,chain:a}})}return t.prepareNetworkSwitch({toolbox:n,chain:a,provider:o})}async function u(e){switch(e){case t.Chain.Ethereum:case t.Chain.Arbitrum:case t.Chain.Optimism:case t.Chain.Polygon:case t.Chain.Avalanche:case t.Chain.BinanceSmartChain:case t.Chain.Base:{if(!(window.talismanEth&&("send"in window.talismanEth)))throw new t.SwapKitError({errorKey:"wallet_talisman_not_found",info:{chain:e}});let a=await f({chain:e,walletProvider:window.talismanEth}),r=(await window.talismanEth.send("eth_requestAccounts",[]))[0];return{...a,address:r}}case t.Chain.Polkadot:case t.Chain.Chainflip:{let{getSubstrateToolbox:a,SubstrateNetwork:r}=await import("@swapkit/toolboxes/substrate"),o=await window?.injectedWeb3?.talisman?.enable?.("talisman");if(!o)throw new t.SwapKitError({errorKey:"wallet_talisman_not_enabled",info:{chain:e}});let i=await a(e,{signer:o.signer}),n=await o.accounts.get();if(!n[0]?.address)throw new t.SwapKitError({errorKey:"wallet_missing_params",info:{wallet:t.WalletOption.TALISMAN,accounts:n,address:n[0]?.address}});let s=i.convertAddress(n[0].address,r[e].prefix);return{...i,address:s}}default:throw new t.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:e,wallet:t.WalletOption.TALISMAN}})}}
2
2
 
3
3
  //# debugId=E1280318FC3FE7FD64756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as p}from"../../chunk-th8ggrmx.js";import{C as d,D as m}from"../../chunk-qwd1kp32.js";import{Chain as t,SwapKitError as s,WalletOption as l,createWallet as h,filterSupportedChains as f,prepareNetworkSwitch as u,switchEVMWalletNetwork as _}from"@swapkit/helpers";var A=h({name:"connectTalisman",walletType:l.TALISMAN,supportedChains:[t.Ethereum,t.Arbitrum,t.Avalanche,t.Base,t.Polygon,t.BinanceSmartChain,t.Optimism,t.Polkadot,t.Chainflip],connect:({addChain:e,supportedChains:a,walletType:r})=>async function c(o){let i=f({chains:o,supportedChains:a,walletType:r});return await Promise.all(i.map(async(n)=>{let w=await S(n);e({...w,chain:n,walletType:r})})),!0}}),C=p(A);async function E({walletProvider:e,chain:a}){let{getEvmToolbox:r}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:c}=await import("ethers");if(!e)throw new s({errorKey:"wallet_provider_not_found",info:{wallet:l.TALISMAN,chain:a}});let o=new c(e,"any"),i=await o.getSigner(),n=await r(a,{provider:o,signer:i});try{if(a!==t.Ethereum)await _(o,a,n.getNetworkParams())}catch(w){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:l.TALISMAN,chain:a}})}return u({toolbox:n,chain:a,provider:o})}async function S(e){switch(e){case t.Ethereum:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.Avalanche:case t.BinanceSmartChain:case t.Base:{if(!(window.talismanEth&&("send"in window.talismanEth)))throw new s({errorKey:"wallet_talisman_not_found",info:{chain:e}});let a=await E({chain:e,walletProvider:window.talismanEth}),r=(await window.talismanEth.send("eth_requestAccounts",[]))[0];return{...a,address:r}}case t.Polkadot:case t.Chainflip:{let{getSubstrateToolbox:a,SubstrateNetwork:r}=await import("@swapkit/toolboxes/substrate"),o=await window?.injectedWeb3?.talisman?.enable?.("talisman");if(!o)throw new s({errorKey:"wallet_talisman_not_enabled",info:{chain:e}});let i=await a(e,{signer:o.signer}),n=await o.accounts.get();if(!n[0]?.address)throw new s({errorKey:"wallet_missing_params",info:{wallet:l.TALISMAN,accounts:n,address:n[0]?.address}});let w=i.convertAddress(n[0].address,r[e].prefix);return{...i,address:w}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:e,wallet:l.TALISMAN}})}}export{A as talismanWallet,C as TALISMAN_SUPPORTED_CHAINS};
1
+ import{C as p}from"../../chunk-c11abmv4.js";import{E as d,F as m}from"../../chunk-r308an05.js";import{Chain as t,SwapKitError as s,WalletOption as l,createWallet as h,filterSupportedChains as f,prepareNetworkSwitch as u,switchEVMWalletNetwork as _}from"@swapkit/helpers";var A=h({name:"connectTalisman",walletType:l.TALISMAN,supportedChains:[t.Ethereum,t.Arbitrum,t.Avalanche,t.Base,t.Polygon,t.BinanceSmartChain,t.Optimism,t.Polkadot,t.Chainflip],connect:({addChain:e,supportedChains:a,walletType:r})=>async function c(o){let i=f({chains:o,supportedChains:a,walletType:r});return await Promise.all(i.map(async(n)=>{let w=await S(n);e({...w,chain:n,walletType:r})})),!0}}),C=p(A);async function E({walletProvider:e,chain:a}){let{getEvmToolbox:r}=await import("@swapkit/toolboxes/evm"),{BrowserProvider:c}=await import("ethers");if(!e)throw new s({errorKey:"wallet_provider_not_found",info:{wallet:l.TALISMAN,chain:a}});let o=new c(e,"any"),i=await o.getSigner(),n=await r(a,{provider:o,signer:i});try{if(a!==t.Ethereum)await _(o,a,n.getNetworkParams())}catch(w){throw new s({errorKey:"wallet_failed_to_add_or_switch_network",info:{wallet:l.TALISMAN,chain:a}})}return u({toolbox:n,chain:a,provider:o})}async function S(e){switch(e){case t.Ethereum:case t.Arbitrum:case t.Optimism:case t.Polygon:case t.Avalanche:case t.BinanceSmartChain:case t.Base:{if(!(window.talismanEth&&("send"in window.talismanEth)))throw new s({errorKey:"wallet_talisman_not_found",info:{chain:e}});let a=await E({chain:e,walletProvider:window.talismanEth}),r=(await window.talismanEth.send("eth_requestAccounts",[]))[0];return{...a,address:r}}case t.Polkadot:case t.Chainflip:{let{getSubstrateToolbox:a,SubstrateNetwork:r}=await import("@swapkit/toolboxes/substrate"),o=await window?.injectedWeb3?.talisman?.enable?.("talisman");if(!o)throw new s({errorKey:"wallet_talisman_not_enabled",info:{chain:e}});let i=await a(e,{signer:o.signer}),n=await o.accounts.get();if(!n[0]?.address)throw new s({errorKey:"wallet_missing_params",info:{wallet:l.TALISMAN,accounts:n,address:n[0]?.address}});let w=i.convertAddress(n[0].address,r[e].prefix);return{...i,address:w}}default:throw new s({errorKey:"wallet_chain_not_supported",info:{chain:e,wallet:l.TALISMAN}})}}export{A as talismanWallet,C as TALISMAN_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=2830057D8BC39BEB64756E2164756E21
3
+ //# debugId=86710E9092A671D964756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -5,6 +5,6 @@
5
5
  "import {\n Chain,\n type EVMChain,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n prepareNetworkSwitch,\n switchEVMWalletNetwork,\n} from \"@swapkit/helpers\";\nimport type { Eip1193Provider } from \"ethers\";\nimport { getWalletSupportedChains } from \"../utils\";\n\nexport const talismanWallet = createWallet({\n name: \"connectTalisman\",\n walletType: WalletOption.TALISMAN,\n supportedChains: [\n Chain.Ethereum,\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.Polygon,\n Chain.BinanceSmartChain,\n Chain.Optimism,\n Chain.Polkadot,\n Chain.Chainflip,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectTalisman(chains: Chain[]) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const walletMethods = await getWalletMethods(chain);\n\n addChain({ ...walletMethods, chain, walletType });\n }),\n );\n\n return true;\n },\n});\n\nexport const TALISMAN_SUPPORTED_CHAINS = getWalletSupportedChains(talismanWallet);\n\nasync function getWeb3WalletMethods({\n walletProvider,\n chain,\n}: { walletProvider: Eip1193Provider | undefined; chain: EVMChain }) {\n const { getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n const { BrowserProvider } = await import(\"ethers\");\n\n if (!walletProvider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.TALISMAN, chain },\n });\n }\n\n const provider = new BrowserProvider(walletProvider, \"any\");\n const signer = await provider.getSigner();\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n try {\n if (chain !== Chain.Ethereum) {\n await switchEVMWalletNetwork(provider, chain, toolbox.getNetworkParams());\n }\n } catch (_error) {\n throw new SwapKitError({\n errorKey: \"wallet_failed_to_add_or_switch_network\",\n info: { wallet: WalletOption.TALISMAN, chain },\n });\n }\n\n return prepareNetworkSwitch({ toolbox, chain, provider });\n}\n\nasync function getWalletMethods(chain: Chain) {\n switch (chain) {\n case Chain.Ethereum:\n case Chain.Arbitrum:\n case Chain.Optimism:\n case Chain.Polygon:\n case Chain.Avalanche:\n case Chain.BinanceSmartChain:\n case Chain.Base: {\n if (!(window.talismanEth && \"send\" in window.talismanEth)) {\n throw new SwapKitError({ errorKey: \"wallet_talisman_not_found\", info: { chain } });\n }\n\n const evmWallet = await getWeb3WalletMethods({ chain, walletProvider: window.talismanEth });\n const address: string = (await window.talismanEth.send(\"eth_requestAccounts\", []))[0];\n\n return { ...evmWallet, address };\n }\n\n case Chain.Polkadot:\n case Chain.Chainflip: {\n const { getSubstrateToolbox, SubstrateNetwork } = await import(\n \"@swapkit/toolboxes/substrate\"\n );\n\n const injectedExtension = window?.injectedWeb3?.talisman;\n const rawExtension = await injectedExtension?.enable?.(\"talisman\");\n\n if (!rawExtension) {\n throw new SwapKitError({ errorKey: \"wallet_talisman_not_enabled\", info: { chain } });\n }\n\n const toolbox = await getSubstrateToolbox(chain, { signer: rawExtension.signer });\n const accounts = await rawExtension.accounts.get();\n\n if (!accounts[0]?.address) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { wallet: WalletOption.TALISMAN, accounts, address: accounts[0]?.address },\n });\n }\n const address = toolbox.convertAddress(accounts[0].address, SubstrateNetwork[chain].prefix);\n\n return { ...toolbox, address };\n }\n\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.TALISMAN },\n });\n }\n}\n"
6
6
  ],
7
7
  "mappings": "iGAAA,cACE,kBAEA,kBACA,kBACA,2BACA,0BACA,4BACA,yBAKK,IAAM,EAAiB,EAAa,CACzC,KAAM,kBACN,WAAY,EAAa,SACzB,gBAAiB,CACf,EAAM,SACN,EAAM,SACN,EAAM,UACN,EAAM,KACN,EAAM,QACN,EAAM,kBACN,EAAM,SACN,EAAM,SACN,EAAM,SACR,EACA,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAe,CAAC,EAAiB,CAC9C,IAAM,EAAiB,EAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAUpF,OARA,MAAM,QAAQ,IACZ,EAAe,IAAI,MAAO,IAAU,CAClC,IAAM,EAAgB,MAAM,EAAiB,CAAK,EAElD,EAAS,IAAK,EAAe,QAAO,YAAW,CAAC,EACjD,CACH,EAEO,GAEb,CAAC,EAEY,EAA4B,EAAyB,CAAc,EAEhF,eAAe,CAAoB,EACjC,iBACA,SACmE,CACnE,IAAQ,iBAAkB,KAAa,mCAC/B,mBAAoB,KAAa,kBAEzC,IAAK,EACH,MAAM,IAAI,EAAa,CACrB,SAAU,4BACV,KAAM,CAAE,OAAQ,EAAa,SAAU,OAAM,CAC/C,CAAC,EAGH,IAAM,EAAW,IAAI,EAAgB,EAAgB,KAAK,EACpD,EAAS,MAAM,EAAS,UAAU,EAClC,EAAU,MAAM,EAAc,EAAO,CAAE,WAAU,QAAO,CAAC,EAE/D,GAAI,CACF,GAAI,IAAU,EAAM,SAClB,MAAM,EAAuB,EAAU,EAAO,EAAQ,iBAAiB,CAAC,EAE1E,MAAO,EAAQ,CACf,MAAM,IAAI,EAAa,CACrB,SAAU,yCACV,KAAM,CAAE,OAAQ,EAAa,SAAU,OAAM,CAC/C,CAAC,EAGH,OAAO,EAAqB,CAAE,UAAS,QAAO,UAAS,CAAC,EAG1D,eAAe,CAAgB,CAAC,EAAc,CAC5C,OAAQ,QACD,EAAM,cACN,EAAM,cACN,EAAM,cACN,EAAM,aACN,EAAM,eACN,EAAM,uBACN,EAAM,KAAM,CACf,KAAM,OAAO,cAAe,SAAU,OAAO,cAC3C,MAAM,IAAI,EAAa,CAAE,SAAU,4BAA6B,KAAM,CAAE,OAAM,CAAE,CAAC,EAGnF,IAAM,EAAY,MAAM,EAAqB,CAAE,QAAO,eAAgB,OAAO,WAAY,CAAC,EACpF,GAAmB,MAAM,OAAO,YAAY,KAAK,sBAAuB,CAAC,CAAC,GAAG,GAEnF,MAAO,IAAK,EAAW,SAAQ,CACjC,MAEK,EAAM,cACN,EAAM,UAAW,CACpB,IAAQ,sBAAqB,oBAAqB,KAChD,wCAII,EAAe,MADK,QAAQ,cAAc,UACF,SAAS,UAAU,EAEjE,IAAK,EACH,MAAM,IAAI,EAAa,CAAE,SAAU,8BAA+B,KAAM,CAAE,OAAM,CAAE,CAAC,EAGrF,IAAM,EAAU,MAAM,EAAoB,EAAO,CAAE,OAAQ,EAAa,MAAO,CAAC,EAC1E,EAAW,MAAM,EAAa,SAAS,IAAI,EAEjD,IAAK,EAAS,IAAI,QAChB,MAAM,IAAI,EAAa,CACrB,SAAU,wBACV,KAAM,CAAE,OAAQ,EAAa,SAAU,WAAU,QAAS,EAAS,IAAI,OAAQ,CACjF,CAAC,EAEH,IAAM,EAAU,EAAQ,eAAe,EAAS,GAAG,QAAS,EAAiB,GAAO,MAAM,EAE1F,MAAO,IAAK,EAAS,SAAQ,CAC/B,SAGE,MAAM,IAAI,EAAa,CACrB,SAAU,6BACV,KAAM,CAAE,QAAO,OAAQ,EAAa,QAAS,CAC/C,CAAC",
8
- "debugId": "2830057D8BC39BEB64756E2164756E21",
8
+ "debugId": "86710E9092A671D964756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,3 +1,4 @@
1
1
  var P={};z(P,{trezorWallet:()=>W,TREZOR_SUPPORTED_CHAINS:()=>y});module.exports=f(P);var j=require("@swapkit/helpers");function E(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function S({chain:q,derivationPath:X}){switch(q){case j.Chain.BinanceSmartChain:case j.Chain.Avalanche:case j.Chain.Arbitrum:case j.Chain.Optimism:case j.Chain.Polygon:case j.Chain.Base:case j.Chain.Ethereum:{let{getProvider:H,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-2aa1w78q.js"),$=await H(q),J=await Z({chain:q,derivationPath:X,provider:$}),D=await J.getAddress();return{...await Y(q,{provider:$,signer:J}),address:D}}case j.Chain.Bitcoin:case j.Chain.BitcoinCash:case j.Chain.Dash:case j.Chain.Dogecoin:case j.Chain.Litecoin:{let{toCashAddress:H,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=E(X);if(!Z)throw new j.SwapKitError({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=q.toLowerCase(),D=await(async(G=X)=>{let M=(await import("@trezor/connect-web")).default,{success:k,payload:I}=await M.getAddress({path:j.derivationPathToString(G),coin:$});if(!k)throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:I.error||"Unknown error"}});if(q===j.Chain.BitcoinCash)return(await Y(q)).stripPrefix(I.address);return I.address})(),V=async(G,M,k="")=>{let I=(await import("@trezor/connect-web")).default,F=X.map((B,Q)=>Q<3?(B|2147483648)>>>0:B),L=await Y(q),_=await I.signTransaction({coin:$,inputs:M.map(({hash:B,index:Q,value:A})=>({address_n:F,prev_hash:B,prev_index:Q,amount:A,script_type:Z.input})),outputs:G.txOutputs.map((B)=>{let Q=q===j.Chain.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,A=Q===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(k).toString("hex"),script_type:"PAYTOOPRETURN"};return A?{amount:B.value,address_n:F,script_type:Z.output}:{amount:B.value,address:Q,script_type:"PAYTOADDRESS"}})});if(_.success)return _.payload.serializedTx;throw new j.SwapKitError({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:_.payload.error}})},U=async({recipient:G,feeOptionKey:M,feeRate:k,memo:I,...F})=>{if(!(D&&G))throw new j.SwapKitError({errorKey:"wallet_missing_params",info:{wallet:j.WalletOption.TREZOR,memo:I,address:D,recipient:G}});let L=await Y(q),_=k||(await L.getFeeRates())[M||j.FeeOption.Fast],B=q===j.Chain.BitcoinCash?L.buildTx:L.createTransaction,{psbt:Q,inputs:A}=await B({...F,memo:I,recipient:G,feeRate:_,sender:D,fetchTxHex:!0}),O=await V(Q,A,I);return await L.broadcastTx(O)};return{...await Y(q),address:D,transfer:U,signTransaction:V}}default:throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:j.WalletOption.TREZOR}})}}var W=j.createWallet({name:"connectTrezor",walletType:j.WalletOption.TREZOR,supportedChains:[j.Chain.Arbitrum,j.Chain.Avalanche,j.Chain.Base,j.Chain.BinanceSmartChain,j.Chain.Bitcoin,j.Chain.BitcoinCash,j.Chain.Dash,j.Chain.Dogecoin,j.Chain.Ethereum,j.Chain.Litecoin,j.Chain.Optimism,j.Chain.Polygon],connect:({addChain:q,supportedChains:X,walletType:H})=>async function Y(Z,$){let[J]=j.filterSupportedChains({chains:Z,supportedChains:X,walletType:H});if(!J)throw new j.SwapKitError({errorKey:"wallet_chain_not_supported",info:{chain:J,wallet:j.WalletOption.TREZOR}});let D=(await import("@trezor/connect-web")).default,{success:V}=await D.getDeviceState();if(!V){let R=j.SKConfig.get("integrations").trezor,G=R?{...R,appName:R.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};D.init({lazyLoad:!0,manifest:G})}let U=await S({chain:J,derivationPath:$});return q({...U,chain:J,walletType:H}),!0}}),y=K(W);
2
2
 
3
3
  //# debugId=636DDE882BCC9B9064756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -1,3 +1,4 @@
1
- import{A as f}from"../../chunk-th8ggrmx.js";import{C as N,D as V}from"../../chunk-qwd1kp32.js";import{Chain as j,FeeOption as E,SKConfig as S,SwapKitError as M,WalletOption as K,createWallet as y,derivationPathToString as P,filterSupportedChains as b}from"@swapkit/helpers";function w(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function g({chain:q,derivationPath:X}){switch(q){case j.BinanceSmartChain:case j.Avalanche:case j.Arbitrum:case j.Optimism:case j.Polygon:case j.Base:case j.Ethereum:{let{getProvider:H,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-0qaxr89s.js"),$=await H(q),J=await Z({chain:q,derivationPath:X,provider:$}),D=await J.getAddress();return{...await Y(q,{provider:$,signer:J}),address:D}}case j.Bitcoin:case j.BitcoinCash:case j.Dash:case j.Dogecoin:case j.Litecoin:{let{toCashAddress:H,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=w(X);if(!Z)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=q.toLowerCase(),D=await(async(G=X)=>{let F=(await import("@trezor/connect-web")).default,{success:_,payload:I}=await F.getAddress({path:P(G),coin:$});if(!_)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:I.error||"Unknown error"}});if(q===j.BitcoinCash)return(await Y(q)).stripPrefix(I.address);return I.address})(),k=async(G,F,_="")=>{let I=(await import("@trezor/connect-web")).default,A=X.map((B,Q)=>Q<3?(B|2147483648)>>>0:B),L=await Y(q),R=await I.signTransaction({coin:$,inputs:F.map(({hash:B,index:Q,value:U})=>({address_n:A,prev_hash:B,prev_index:Q,amount:U,script_type:Z.input})),outputs:G.txOutputs.map((B)=>{let Q=q===j.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,U=Q===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(_).toString("hex"),script_type:"PAYTOOPRETURN"};return U?{amount:B.value,address_n:A,script_type:Z.output}:{amount:B.value,address:Q,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:R.payload.error}})},O=async({recipient:G,feeOptionKey:F,feeRate:_,memo:I,...A})=>{if(!(D&&G))throw new M({errorKey:"wallet_missing_params",info:{wallet:K.TREZOR,memo:I,address:D,recipient:G}});let L=await Y(q),R=_||(await L.getFeeRates())[F||E.Fast],B=q===j.BitcoinCash?L.buildTx:L.createTransaction,{psbt:Q,inputs:U}=await B({...A,memo:I,recipient:G,feeRate:R,sender:D,fetchTxHex:!0}),z=await k(Q,U,I);return await L.broadcastTx(z)};return{...await Y(q),address:D,transfer:O,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:K.TREZOR}})}}var v=y({name:"connectTrezor",walletType:K.TREZOR,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Bitcoin,j.BitcoinCash,j.Dash,j.Dogecoin,j.Ethereum,j.Litecoin,j.Optimism,j.Polygon],connect:({addChain:q,supportedChains:X,walletType:H})=>async function Y(Z,$){let[J]=b({chains:Z,supportedChains:X,walletType:H});if(!J)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:J,wallet:K.TREZOR}});let D=(await import("@trezor/connect-web")).default,{success:k}=await D.getDeviceState();if(!k){let W=S.get("integrations").trezor,G=W?{...W,appName:W.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};D.init({lazyLoad:!0,manifest:G})}let O=await g({chain:J,derivationPath:$});return q({...O,chain:J,walletType:H}),!0}}),C=f(v);export{v as trezorWallet,C as TREZOR_SUPPORTED_CHAINS};
1
+ import{C as f}from"../../chunk-c11abmv4.js";import{E as N,F as V}from"../../chunk-r308an05.js";import{Chain as j,FeeOption as E,SKConfig as S,SwapKitError as M,WalletOption as K,createWallet as y,derivationPathToString as P,filterSupportedChains as b}from"@swapkit/helpers";function w(q){switch(q[0]){case 84:return{input:"SPENDWITNESS",output:"PAYTOWITNESS"};case 49:return{input:"SPENDP2SHWITNESS",output:"PAYTOP2SHWITNESS"};case 44:return{input:"SPENDADDRESS",output:"PAYTOADDRESS"};default:return null}}async function g({chain:q,derivationPath:X}){switch(q){case j.BinanceSmartChain:case j.Avalanche:case j.Arbitrum:case j.Optimism:case j.Polygon:case j.Base:case j.Ethereum:{let{getProvider:H,getEvmToolbox:Y}=await import("@swapkit/toolboxes/evm"),{getEVMSigner:Z}=await import("../../chunk-cgt2fexr.js"),$=await H(q),J=await Z({chain:q,derivationPath:X,provider:$}),D=await J.getAddress();return{...await Y(q,{provider:$,signer:J}),address:D}}case j.Bitcoin:case j.BitcoinCash:case j.Dash:case j.Dogecoin:case j.Litecoin:{let{toCashAddress:H,getUtxoToolbox:Y}=await import("@swapkit/toolboxes/utxo"),Z=w(X);if(!Z)throw new M({errorKey:"wallet_trezor_derivation_path_not_supported",info:{derivationPath:X}});let $=q.toLowerCase(),D=await(async(G=X)=>{let F=(await import("@trezor/connect-web")).default,{success:_,payload:I}=await F.getAddress({path:P(G),coin:$});if(!_)throw new M({errorKey:"wallet_trezor_failed_to_get_address",info:{chain:q,error:I.error||"Unknown error"}});if(q===j.BitcoinCash)return(await Y(q)).stripPrefix(I.address);return I.address})(),k=async(G,F,_="")=>{let I=(await import("@trezor/connect-web")).default,A=X.map((B,Q)=>Q<3?(B|2147483648)>>>0:B),L=await Y(q),R=await I.signTransaction({coin:$,inputs:F.map(({hash:B,index:Q,value:U})=>({address_n:A,prev_hash:B,prev_index:Q,amount:U,script_type:Z.input})),outputs:G.txOutputs.map((B)=>{let Q=q===j.BitcoinCash&&B.address?L.stripPrefix(H(B.address)):B.address,U=Q===D;if(!B.address)return{amount:"0",op_return_data:Buffer.from(_).toString("hex"),script_type:"PAYTOOPRETURN"};return U?{amount:B.value,address_n:A,script_type:Z.output}:{amount:B.value,address:Q,script_type:"PAYTOADDRESS"}})});if(R.success)return R.payload.serializedTx;throw new M({errorKey:"wallet_trezor_failed_to_sign_transaction",info:{chain:q,error:R.payload.error}})},O=async({recipient:G,feeOptionKey:F,feeRate:_,memo:I,...A})=>{if(!(D&&G))throw new M({errorKey:"wallet_missing_params",info:{wallet:K.TREZOR,memo:I,address:D,recipient:G}});let L=await Y(q),R=_||(await L.getFeeRates())[F||E.Fast],B=q===j.BitcoinCash?L.buildTx:L.createTransaction,{psbt:Q,inputs:U}=await B({...A,memo:I,recipient:G,feeRate:R,sender:D,fetchTxHex:!0}),z=await k(Q,U,I);return await L.broadcastTx(z)};return{...await Y(q),address:D,transfer:O,signTransaction:k}}default:throw new M({errorKey:"wallet_chain_not_supported",info:{chain:q,wallet:K.TREZOR}})}}var v=y({name:"connectTrezor",walletType:K.TREZOR,supportedChains:[j.Arbitrum,j.Avalanche,j.Base,j.BinanceSmartChain,j.Bitcoin,j.BitcoinCash,j.Dash,j.Dogecoin,j.Ethereum,j.Litecoin,j.Optimism,j.Polygon],connect:({addChain:q,supportedChains:X,walletType:H})=>async function Y(Z,$){let[J]=b({chains:Z,supportedChains:X,walletType:H});if(!J)throw new M({errorKey:"wallet_chain_not_supported",info:{chain:J,wallet:K.TREZOR}});let D=(await import("@trezor/connect-web")).default,{success:k}=await D.getDeviceState();if(!k){let W=S.get("integrations").trezor,G=W?{...W,appName:W.appName||"SwapKit"}:{appUrl:"",email:"",appName:"SwapKit"};D.init({lazyLoad:!0,manifest:G})}let O=await g({chain:J,derivationPath:$});return q({...O,chain:J,walletType:H}),!0}}),C=f(v);export{v as trezorWallet,C as TREZOR_SUPPORTED_CHAINS};
2
2
 
3
- //# debugId=C709440C56578CE864756E2164756E21
3
+ //# debugId=F15B3B3F6347580D64756E2164756E21
4
+ //# sourceMappingURL=index.js.map