@swapkit/wallet-hardware 4.1.4 → 4.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/ledger/index.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
var $0={};f0($0,{ledgerWallet:()=>hL,LEDGER_SUPPORTED_CHAINS:()=>l0});module.exports=F0($0);var O=require("@swapkit/helpers"),n=require("@swapkit/wallet-core");var l=require("@swapkit/helpers"),S=async({chain:L,ledgerClient:m})=>{if(!m)return"";switch(L){case l.Chain.Cosmos:case l.Chain.THORChain:return m.connect();case l.Chain.Ethereum:case l.Chain.BinanceSmartChain:case l.Chain.Avalanche:case l.Chain.Polygon:case l.Chain.Arbitrum:case l.Chain.Optimism:case l.Chain.Base:case l.Chain.Aurora:case l.Chain.Gnosis:return m.getAddress();case l.Chain.Bitcoin:case l.Chain.BitcoinCash:case l.Chain.Dash:case l.Chain.Dogecoin:case l.Chain.Litecoin:case l.Chain.Zcash:{let _=m;await _.connect();let y=await _.getAddress();return L===l.Chain.BitcoinCash?y.replace("bitcoincash:",""):y}case l.Chain.Near:return await m.getAddress();case l.Chain.Ripple:return m.address;case l.Chain.Tron:return m.getAddress();default:throw new l.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:l.WalletOption.LEDGER})}};var f=require("@swapkit/helpers");var K=require("@swapkit/helpers");var H=require("@swapkit/helpers");var mL=require("@swapkit/helpers");var V=85,s=250;var P={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},o={ADD:1,INIT:0,LAST:2},e={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},c={JSON:0},q={NoError:36864},FL={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",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",36864:"No errors",36865:"Device is busy"};function M(L){if(L in FL)return FL[L];return`Unknown Status Code: ${L}`}function y0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function N(L){if(L){if(y0(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:M(L.statusCode),return_code:L.statusCode};if(Object.hasOwn(L,"return_code")&&Object.hasOwn(L,"error_message"))return L}return{error_message:L.toString(),return_code:65535}}return{error_message:L.toString(),return_code:65535}}function r(L){return L.send(85,P.GET_VERSION,0,0).then((m)=>{let _=m.slice(-2),y=_[0]*256+_[1],T=0;if(m.length>=9)T=(m[5]<<24)+(m[6]<<16)+(m[7]<<8)+(m[8]<<0);return{device_locked:m[4]===1,error_message:M(y),major:m[1],minor:m[2],patch:m[3],return_code:y,target_id:T.toString(16),test_mode:m[0]!==0}},N)}var h=require("@swapkit/helpers");function fL(L){if(L==null||L.length<3)throw new h.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new h.SwapKitError("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 y=L[_]||0;if(_<3)y|=2147483648;m.writeInt32LE(y,1+_*4)}return m}function LL(L,m,_,y,T=c.JSON){return L.transport.send(V,P.SIGN_SECP256K1,m,T,y,[q.NoError,27012,27264]).then((w)=>{let R=w.slice(-2),G=R[0]*256+R[1],C=M(G);if(G===27264||G===27012)C=`${C} : ${w.slice(0,w.length-2).toString("ascii")}`;let X=null;if(w.length>2)X=w.slice(0,w.length-2);return{error_message:C,return_code:G,signature:X}},N)}function O0(L){if(L.length!==65)throw new h.SwapKitError("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)])}function lL(L,m){return L.transport.send(V,P.INS_PUBLIC_KEY_SECP256K1,0,0,m,[q.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1],w=Buffer.from(_.slice(0,65));return{compressed_pk:O0(w),error_message:M(T),pk:w,return_code:T}},N)}function ZL(L){if(!L||L.length!==5)throw new h.SwapKitError("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 WL(L,m,_,y,T=c.JSON){let w=o.ADD;if(m===1)w=o.INIT;if(m===_)w=o.LAST;return LL(L,w,0,y,T)}function JL(L,m){return L.transport.send(V,P.GET_ADDR_SECP256K1,0,0,m,[q.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1];return{compressed_pk:Buffer.from(_.slice(0,33)),error_message:M(T),pk:"OBSOLETE PROPERTY",return_code:T}},N)}class v{transport;versionResponse;constructor(L){if(!L)throw new mL.SwapKitError("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new mL.SwapKitError("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 r(this.transport),this.versionResponse.return_code!==q.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return fL(L);case 2:return ZL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,m){let _=await this.serializePath(L),y=[];y.push(_);for(let T=0;T<m.length;T+=s){let w=T+s;if(T>m.length)w=m.length;y.push(m.slice(T,w))}return y}async getVersion(){try{return this.versionResponse=await r(this.transport),this.versionResponse}catch(L){return N(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1],y="",T="",w=0,R=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let G=L[1];y=L.slice(2,2+G).toString("ascii");let C=2+G,X=L[C];C+=1,T=L.slice(C,C+X).toString("ascii"),C+=X;let F=L[C];return C+=1,w=F,R=L[C],{appName:y,appVersion:T,error_message:M(_),flag_onboarded:(R&4)!==0,flag_pin_validated:(R&128)!==0,flag_recovery:(R&1)!==0,flag_signed_mcu_code:(R&2)!==0,flagLen:w,flagsValue:R,return_code:_}},N)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[q.NoError,28160]).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1];if(_===28160)return{error_message:"This command is only available in the Dashboard",return_code:_};let y=L.slice(0,4).toString("hex"),T=4,w=L[T];T+=1;let R=L.slice(T,T+w).toString();T+=w;let G=L[T];T+=1;let C=L.slice(T,T+G).toString("hex");T+=G;let X=L[T];T+=1;let F=L.slice(T,T+X);if(F[X-1]===0)F=L.slice(T,T+X-1);let J=F.toString();return{error_message:M(_),flag:C,mcuVersion:J,return_code:_,seVersion:R,targetId:y}},N)}async publicKey(L){try{let m=await this.serializePath(L);switch(this.versionResponse.major){case 1:return lL(this,m);case 2:{let _=Buffer.concat([v.serializeHRP("thor"),m]);return JL(this,_)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(m){return N(m)}}getAddressAndPubKey(L,m,_=!1){return this.serializePath(L).then((y)=>{let T=Buffer.concat([v.serializeHRP(m),y]);return this.transport.send(V,P.GET_ADDR_SECP256K1,_?e.SHOW_ADDRESS_IN_DEVICE:e.ONLY_RETRIEVE,0,T,[q.NoError]).then((w)=>{let R=w.slice(-2),G=R[0]*256+R[1],C=Buffer.from(w.slice(0,33));return{bech32_address:Buffer.from(w.slice(33,-2)).toString(),compressed_pk:C,error_message:M(G),return_code:G}},N)}).catch((y)=>N(y))}showAddressAndPubKey(L,m){return this.getAddressAndPubKey(L,m,!0)}signSendChunk(L,m,_,y=c.JSON){switch(this.versionResponse.major){case 1:return LL(this,L,m,_,y);case 2:return WL(this,L,m,_,y);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,m,_=c.JSON){let y=Buffer.from(m),T=[],w;try{T=await this.signGetChunks(L,y),w=await this.signSendChunk(1,T.length,T[0],_)}catch(G){N(G)}let R={error_message:w.error_message,return_code:w.return_code,signature:null};for(let G=1;G<T.length;G+=1)if(R=await this.signSendChunk(1+G,T.length,T[G],_),R.return_code!==q.NoError)break;return{error_message:R.error_message,return_code:R.return_code,signature:R.signature}}}var u=require("@swapkit/helpers"),_L=()=>navigator?.usb,w0=async()=>{let L=_L();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:m}=await import("@ledgerhq/devices"),y=(await L?.getDevices()).filter((T)=>T.vendorId===m);if(y.length>0)return y[0];return L?.requestDevice({filters:[{vendorId:m}]})},$=async()=>{let L=await w0();if(!L)throw new u.SwapKitError("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:G})=>G.some(({interfaceClass:C})=>C===255));if(!m)throw await L.close(),new u.SwapKitError("wallet_ledger_connection_error");try{await L.claimInterface(m.interfaceNumber)}catch(G){throw await L.close(),new u.SwapKitError("wallet_ledger_connection_claimed",G)}let _=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await _.isSupported())throw new u.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:T}=await import("@ledgerhq/errors"),w=new _(L,m.interfaceNumber),R=(G)=>{if(L===G.device)_L()?.removeEventListener("disconnect",R),w._emitDisconnect(new T)};return _L()?.addEventListener("disconnect",R),w};class d{ledgerTimeout=50000;derivationPath=H.NetworkDerivationPath.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await $():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new v(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 H.SwapKitError("wallet_ledger_connection_error",m)}};validateResponse=(L,m)=>{switch(L){case H.LedgerErrorCode.NoError:return;case H.LedgerErrorCode.LockedDevice:throw new H.SwapKitError("wallet_ledger_device_locked",{message:`Ledger is locked: ${m}`});case H.LedgerErrorCode.TC_NotFound:throw new H.SwapKitError("wallet_ledger_device_not_found");default:break}}}class TL extends d{pubKey=null;derivationPath;constructor(L=K.NetworkDerivationPath.GAIA){super();this.chain="cosmos",this.derivationPath=K.derivationPathToString(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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new K.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:T}]};signAmino=async(L,m)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex((W)=>W.address===L)===-1)throw new K.SwapKitError("wallet_ledger_address_not_found",{address:L});let T=await import("@cosmjs/amino"),w=T.encodeSecp256k1Signature??T.default?.encodeSecp256k1Signature,R=T.serializeSignDoc??T.default?.serializeSignDoc,G=await import("@cosmjs/crypto"),C=G.Secp256k1Signature??G.default?.Secp256k1Signature,X=R(m),F=await this.ledgerApp.sign(this.derivationPath,X);this.validateResponse(F.return_code,F.error_message);let J=C.fromDer(F.signature).toFixedLength();return{signature:w(_[0].pubkey,J),signed:m}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.getAddressAndPubKey();return[{address:L.address,algo:"secp256k1",pubkey:Buffer.from(L.publicKey,"hex")}]}}var Z=require("@swapkit/helpers"),$L=require("ethers");class Q extends $L.AbstractSigner{chainId=Z.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:m=Z.NetworkDerivationPath.OP,chainId:_=Z.ChainId.Optimism}){super(L);this.chainId=_||Z.ChainId.Ethereum,this.derivationPath=typeof m==="string"?m:Z.derivationPathToString(m),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new Q({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),m=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new Z.SwapKitError("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 Z.SwapKitError("wallet_ledger_signing_error");return _.r=`0x${_.r}`,_.s=`0x${_.s}`,m.from(_).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new Z.SwapKitError("wallet_ledger_no_provider");let m=await this.signTransaction(L);return await this.provider.broadcastTransaction(m)};signTypedData(){throw new Z.SwapKitError("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()),y={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(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},T=m.from(y).unsignedSerialized.slice(2),{ledgerService:w}=await import("@ledgerhq/hw-app-eth"),R=await w.resolveTransaction(T,{},{erc20:!0,externalPlugins:!0}),G=await this.ledgerApp?.signTransaction(this.derivationPath,T,R);if(!G)throw new Z.SwapKitError("wallet_ledger_signing_error");let{r:C,s:X,v:F}=G;return m.from({...y,signature:{r:`0x${C}`,s:`0x${X}`,v:Number(BigInt(F))}}).serialized}}var NL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Ethereum,derivationPath:m,provider:L}),jL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Avalanche,derivationPath:m,provider:L}),QL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.BinanceSmartChain,derivationPath:m,provider:L}),YL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Arbitrum,derivationPath:m,provider:L}),ML=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Polygon,derivationPath:m,provider:L}),HL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Optimism,derivationPath:m,provider:L}),DL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Base,derivationPath:m,provider:L}),UL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Aurora,derivationPath:m,provider:L}),qL=({provider:L,derivationPath:m})=>new Q({chainId:Z.ChainId.Gnosis,derivationPath:m,provider:L});async function zL(L,m){let _=await import("@ledgerhq/hw-app-near"),{Chain:y,DerivationPath:T,derivationPathToString:w,SwapKitError:R}=await import("@swapkit/helpers"),G=new _.default(L),C=m?w(m):T[y.Near],{address:X,publicKey:F}=await G.getAddress(C);return{getAddress(){return Promise.resolve(X)},async getPublicKey(){let{utils:W}=await import("near-api-js");return W.PublicKey.fromString(`ed25519:${F}`)},signDelegateAction(W){return Promise.reject(new R("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(W,Y,A,j,E){return Promise.reject(new R("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(W){let{Signature:Y,SignedTransaction:A}=await import("near-api-js/lib/transaction");try{let j=await G.signTransaction(W.encode(),C);if(!j)throw new Error("Signature undefined");let E=new Y({data:j,keyType:0}),x=new A({signature:E,transaction:W});return[j,x]}catch(j){throw new R("wallet_ledger_signing_error",{error:j})}}}}var gL=require("@scure/base"),i=require("@swapkit/helpers");var AL=require("@scure/base"),D=require("@swapkit/helpers"),yL=(L)=>{if(L.length<64)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new D.SwapKitError("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 D.SwapKitError("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[m+4]!==2)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let y=L[m+5];if(4+m+2+y!==L.length)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let T=L.slice(m+6,L.length);if(T.length===33&&T[0]===0)T=T.slice(1,33);else if(T.length===33)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"s too long"});while(T.length<32)T.unshift(0);if(_.length!==32||T.length!==32)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return AL.base64.encode(Buffer.concat([_,T]))};class OL extends d{pubKey=null;derivationPath;constructor(L=i.NetworkDerivationPath.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=gL.base64.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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new i.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:yL(T)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:m,error_message:_,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new i.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(m,_),yL(y)}}var U=require("@swapkit/helpers");class SL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:U.derivationPathToString(L||U.NetworkDerivationPath.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),m=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new U.SwapKitError("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let L=await this.ledgerApp?.getAddress(this.derivationPath);if(!L)throw new U.SwapKitError("wallet_ledger_failed_to_get_address");return{address:L.address,publicKey:L.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(L)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new U.SwapKitError("wallet_ledger_transport_error");let m=JSON.stringify(L);try{let _=await this.ledgerApp.signTransaction(this.derivationPath,m,[]);if(!_)throw new U.SwapKitError("wallet_ledger_signing_error");return{...L,signature:[_]}}catch(_){throw new U.SwapKitError("wallet_ledger_signing_error",{error:_})}}}var PL=(L)=>new SL(L);var I=require("@swapkit/helpers"),KL=require("bitcoinjs-lib");var G0=({psbt:L,inputUtxos:m,btcApp:_,derivationPath:y},T)=>{let w=m.map((F)=>{let J=KL.Transaction.fromHex(F.txHex||"");return[_.splitTransaction(J.toHex(),J.hasWitnesses()),F.index,void 0,void 0]}),R=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),G=_.splitTransaction(R,!0),C=_.serializeTransactionOutputs(G).toString("hex"),X={additionals:["bech32"],associatedKeysets:w.map(()=>y),inputs:w,outputScriptHex:C,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...X,...T})},k=({chain:L,additionalSignParams:m})=>{let _,y=null;async function T(R=!0){if(R&&!_)new I.SwapKitError("wallet_ledger_connection_error",{message:`Ledger connection failed:
|
|
2
|
-
${JSON.stringify({btcApp:_,checkBtcApp:
|
|
1
|
+
var $0={};Z0($0,{ledgerWallet:()=>hL,LEDGER_SUPPORTED_CHAINS:()=>W0});module.exports=F0($0);var O=require("@swapkit/helpers"),t=require("@swapkit/wallet-core");var W=require("@swapkit/helpers"),g=async({chain:L,ledgerClient:m})=>{if(!m)return"";switch(L){case W.Chain.Cosmos:case W.Chain.THORChain:return m.connect();case W.Chain.Ethereum:case W.Chain.BinanceSmartChain:case W.Chain.Avalanche:case W.Chain.Polygon:case W.Chain.Arbitrum:case W.Chain.Optimism:case W.Chain.Base:case W.Chain.Aurora:case W.Chain.Gnosis:return m.getAddress();case W.Chain.Bitcoin:case W.Chain.BitcoinCash:case W.Chain.Dash:case W.Chain.Dogecoin:case W.Chain.Litecoin:case W.Chain.Zcash:{let _=m;await _.connect();let y=await _.getAddress();return L===W.Chain.BitcoinCash?y.replace("bitcoincash:",""):y}case W.Chain.Near:return await m.getAddress();case W.Chain.Ripple:return m.address;case W.Chain.Tron:return m.getAddress();default:throw new W.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:W.WalletOption.LEDGER})}};var Z=require("@swapkit/helpers");var P=require("@swapkit/helpers");var H=require("@swapkit/helpers");var mL=require("@swapkit/helpers");var V=85,a=250;var K={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},i={ADD:1,INIT:0,LAST:2},e={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},k={JSON:0},z={NoError:36864},FL={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",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",36864:"No errors",36865:"Device is busy"};function M(L){if(L in FL)return FL[L];return`Unknown Status Code: ${L}`}function O0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function N(L){if(L){if(O0(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:M(L.statusCode),return_code:L.statusCode};if(Object.hasOwn(L,"return_code")&&Object.hasOwn(L,"error_message"))return L}return{error_message:L.toString(),return_code:65535}}return{error_message:L.toString(),return_code:65535}}function r(L){return L.send(85,K.GET_VERSION,0,0).then((m)=>{let _=m.slice(-2),y=_[0]*256+_[1],T=0;if(m.length>=9)T=(m[5]<<24)+(m[6]<<16)+(m[7]<<8)+(m[8]<<0);return{device_locked:m[4]===1,error_message:M(y),major:m[1],minor:m[2],patch:m[3],return_code:y,target_id:T.toString(16),test_mode:m[0]!==0}},N)}var v=require("@swapkit/helpers");function ZL(L){if(L==null||L.length<3)throw new v.SwapKitError("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new v.SwapKitError("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 y=L[_]||0;if(_<3)y|=2147483648;m.writeInt32LE(y,1+_*4)}return m}function LL(L,m,_,y,T=k.JSON){return L.transport.send(V,K.SIGN_SECP256K1,m,T,y,[z.NoError,27012,27264]).then((G)=>{let w=G.slice(-2),R=w[0]*256+w[1],C=M(R);if(R===27264||R===27012)C=`${C} : ${G.slice(0,G.length-2).toString("ascii")}`;let B=null;if(G.length>2)B=G.slice(0,G.length-2);return{error_message:C,return_code:R,signature:B}},N)}function G0(L){if(L.length!==65)throw new v.SwapKitError("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)])}function WL(L,m){return L.transport.send(V,K.INS_PUBLIC_KEY_SECP256K1,0,0,m,[z.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1],G=Buffer.from(_.slice(0,65));return{compressed_pk:G0(G),error_message:M(T),pk:G,return_code:T}},N)}function fL(L){if(!L||L.length!==5)throw new v.SwapKitError("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 lL(L,m,_,y,T=k.JSON){let G=i.ADD;if(m===1)G=i.INIT;if(m===_)G=i.LAST;return LL(L,G,0,y,T)}function JL(L,m){return L.transport.send(V,K.GET_ADDR_SECP256K1,0,0,m,[z.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1];return{compressed_pk:Buffer.from(_.slice(0,33)),error_message:M(T),pk:"OBSOLETE PROPERTY",return_code:T}},N)}class h{transport;versionResponse;constructor(L){if(!L)throw new mL.SwapKitError("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new mL.SwapKitError("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 r(this.transport),this.versionResponse.return_code!==z.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return ZL(L);case 2:return fL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,m){let _=await this.serializePath(L),y=[];y.push(_);for(let T=0;T<m.length;T+=a){let G=T+a;if(T>m.length)G=m.length;y.push(m.slice(T,G))}return y}async getVersion(){try{return this.versionResponse=await r(this.transport),this.versionResponse}catch(L){return N(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1],y="",T="",G=0,w=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let R=L[1];y=L.slice(2,2+R).toString("ascii");let C=2+R,B=L[C];C+=1,T=L.slice(C,C+B).toString("ascii"),C+=B;let F=L[C];return C+=1,G=F,w=L[C],{appName:y,appVersion:T,error_message:M(_),flag_onboarded:(w&4)!==0,flag_pin_validated:(w&128)!==0,flag_recovery:(w&1)!==0,flag_signed_mcu_code:(w&2)!==0,flagLen:G,flagsValue:w,return_code:_}},N)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[z.NoError,28160]).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1];if(_===28160)return{error_message:"This command is only available in the Dashboard",return_code:_};let y=L.slice(0,4).toString("hex"),T=4,G=L[T];T+=1;let w=L.slice(T,T+G).toString();T+=G;let R=L[T];T+=1;let C=L.slice(T,T+R).toString("hex");T+=R;let B=L[T];T+=1;let F=L.slice(T,T+B);if(F[B-1]===0)F=L.slice(T,T+B-1);let J=F.toString();return{error_message:M(_),flag:C,mcuVersion:J,return_code:_,seVersion:w,targetId:y}},N)}async publicKey(L){try{let m=await this.serializePath(L);switch(this.versionResponse.major){case 1:return WL(this,m);case 2:{let _=Buffer.concat([h.serializeHRP("thor"),m]);return JL(this,_)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(m){return N(m)}}getAddressAndPubKey(L,m,_=!1){return this.serializePath(L).then((y)=>{let T=Buffer.concat([h.serializeHRP(m),y]);return this.transport.send(V,K.GET_ADDR_SECP256K1,_?e.SHOW_ADDRESS_IN_DEVICE:e.ONLY_RETRIEVE,0,T,[z.NoError]).then((G)=>{let w=G.slice(-2),R=w[0]*256+w[1],C=Buffer.from(G.slice(0,33));return{bech32_address:Buffer.from(G.slice(33,-2)).toString(),compressed_pk:C,error_message:M(R),return_code:R}},N)}).catch((y)=>N(y))}showAddressAndPubKey(L,m){return this.getAddressAndPubKey(L,m,!0)}signSendChunk(L,m,_,y=k.JSON){switch(this.versionResponse.major){case 1:return LL(this,L,m,_,y);case 2:return lL(this,L,m,_,y);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,m,_=k.JSON){let y=Buffer.from(m),T=[],G;try{T=await this.signGetChunks(L,y),G=await this.signSendChunk(1,T.length,T[0],_)}catch(R){N(R)}let w={error_message:G.error_message,return_code:G.return_code,signature:null};for(let R=1;R<T.length;R+=1)if(w=await this.signSendChunk(1+R,T.length,T[R],_),w.return_code!==z.NoError)break;return{error_message:w.error_message,return_code:w.return_code,signature:w.signature}}}var u=require("@swapkit/helpers"),_L=()=>navigator?.usb,R0=async()=>{let L=_L();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:m}=await import("@ledgerhq/devices"),y=(await L?.getDevices()).filter((T)=>T.vendorId===m);if(y.length>0)return y[0];return L?.requestDevice({filters:[{vendorId:m}]})},$=async()=>{let L=await R0();if(!L)throw new u.SwapKitError("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:R})=>R.some(({interfaceClass:C})=>C===255));if(!m)throw await L.close(),new u.SwapKitError("wallet_ledger_connection_error");try{await L.claimInterface(m.interfaceNumber)}catch(R){throw await L.close(),new u.SwapKitError("wallet_ledger_connection_claimed",R)}let _=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await _.isSupported())throw new u.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:T}=await import("@ledgerhq/errors"),G=new _(L,m.interfaceNumber),w=(R)=>{if(L===R.device)_L()?.removeEventListener("disconnect",w),G._emitDisconnect(new T)};return _L()?.addEventListener("disconnect",w),G};class d{ledgerTimeout=50000;derivationPath=H.NetworkDerivationPath.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await $():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new h(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 H.SwapKitError("wallet_ledger_connection_error",m)}};validateResponse=(L,m)=>{switch(L){case H.LedgerErrorCode.NoError:return;case H.LedgerErrorCode.LockedDevice:throw new H.SwapKitError("wallet_ledger_device_locked",{message:`Ledger is locked: ${m}`});case H.LedgerErrorCode.TC_NotFound:throw new H.SwapKitError("wallet_ledger_device_not_found");default:break}}}class TL extends d{pubKey=null;derivationPath;constructor(L=P.NetworkDerivationPath.GAIA){super();this.chain="cosmos",this.derivationPath=P.derivationPathToString(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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new P.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:T}]};signAmino=async(L,m)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex((l)=>l.address===L)===-1)throw new P.SwapKitError("wallet_ledger_address_not_found",{address:L});let T=await import("@cosmjs/amino"),G=T.encodeSecp256k1Signature??T.default?.encodeSecp256k1Signature,w=T.serializeSignDoc??T.default?.serializeSignDoc,R=await import("@cosmjs/crypto"),C=R.Secp256k1Signature??R.default?.Secp256k1Signature,B=w(m),F=await this.ledgerApp.sign(this.derivationPath,B);this.validateResponse(F.return_code,F.error_message);let J=C.fromDer(F.signature).toFixedLength();return{signature:G(_[0].pubkey,J),signed:m}};getAccounts=async()=>{await this.checkOrCreateTransportAndLedger(!0);let L=await this.getAddressAndPubKey();return[{address:L.address,algo:"secp256k1",pubkey:Buffer.from(L.publicKey,"hex")}]}}var f=require("@swapkit/helpers"),$L=require("ethers");class Q extends $L.AbstractSigner{chainId=f.ChainId.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:m=f.NetworkDerivationPath.OP,chainId:_=f.ChainId.Optimism}){super(L);this.chainId=_||f.ChainId.Ethereum,this.derivationPath=typeof m==="string"?m:f.derivationPathToString(m),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new Q({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),m=(await import("@ledgerhq/hw-app-eth")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new f.SwapKitError("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 f.SwapKitError("wallet_ledger_signing_error");return _.r=`0x${_.r}`,_.s=`0x${_.s}`,m.from(_).serialized};sendTransaction=async(L)=>{if(!this.provider)throw new f.SwapKitError("wallet_ledger_no_provider");let m=await this.signTransaction(L);return await this.provider.broadcastTransaction(m)};signTypedData(){throw new f.SwapKitError("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()),y={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(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},T=m.from(y).unsignedSerialized.slice(2),{ledgerService:G}=await import("@ledgerhq/hw-app-eth"),w=await G.resolveTransaction(T,{},{erc20:!0,externalPlugins:!0}),R=await this.ledgerApp?.signTransaction(this.derivationPath,T,w);if(!R)throw new f.SwapKitError("wallet_ledger_signing_error");let{r:C,s:B,v:F}=R;return m.from({...y,signature:{r:`0x${C}`,s:`0x${B}`,v:Number(BigInt(F))}}).serialized}}var NL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Ethereum,derivationPath:m,provider:L}),jL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Avalanche,derivationPath:m,provider:L}),QL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.BinanceSmartChain,derivationPath:m,provider:L}),YL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Arbitrum,derivationPath:m,provider:L}),ML=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Polygon,derivationPath:m,provider:L}),HL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Optimism,derivationPath:m,provider:L}),DL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Base,derivationPath:m,provider:L}),UL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Aurora,derivationPath:m,provider:L}),zL=({provider:L,derivationPath:m})=>new Q({chainId:f.ChainId.Gnosis,derivationPath:m,provider:L});async function qL(L,m){let _=await import("@ledgerhq/hw-app-near"),{Chain:y,DerivationPath:T,derivationPathToString:G,SwapKitError:w}=await import("@swapkit/helpers"),R=new _.default(L),C=m?G(m):T[y.Near],{address:B,publicKey:F}=await R.getAddress(C);return{getAddress(){return Promise.resolve(B)},async getPublicKey(){let{utils:l}=await import("near-api-js");return l.PublicKey.fromString(`ed25519:${F}`)},signDelegateAction(l){return Promise.reject(new w("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(l,Y,A,j,E){return Promise.reject(new w("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(l){let{Signature:Y,SignedTransaction:A}=await import("near-api-js/lib/transaction");try{let j=await R.signTransaction(l.encode(),C);if(!j)throw new Error("Signature undefined");let E=new Y({data:j,keyType:0}),x=new A({signature:E,transaction:l});return[j,x]}catch(j){throw new w("wallet_ledger_signing_error",{error:j})}}}}var SL=require("@scure/base"),o=require("@swapkit/helpers");var AL=require("@scure/base"),D=require("@swapkit/helpers"),yL=(L)=>{if(L.length<64)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new D.SwapKitError("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 D.SwapKitError("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[m+4]!==2)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let y=L[m+5];if(4+m+2+y!==L.length)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let T=L.slice(m+6,L.length);if(T.length===33&&T[0]===0)T=T.slice(1,33);else if(T.length===33)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"s too long"});while(T.length<32)T.unshift(0);if(_.length!==32||T.length!==32)throw new D.SwapKitError("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return AL.base64.encode(Buffer.concat([_,T]))};class OL extends d{pubKey=null;derivationPath;constructor(L=o.NetworkDerivationPath.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=SL.base64.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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new o.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:yL(T)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:m,error_message:_,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new o.SwapKitError("wallet_ledger_pubkey_not_found");return this.validateResponse(m,_),yL(y)}}var U=require("@swapkit/helpers");class gL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:U.derivationPathToString(L||U.NetworkDerivationPath.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),m=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new U.SwapKitError("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let L=await this.ledgerApp?.getAddress(this.derivationPath);if(!L)throw new U.SwapKitError("wallet_ledger_failed_to_get_address");return{address:L.address,publicKey:L.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(L)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new U.SwapKitError("wallet_ledger_transport_error");let m=JSON.stringify(L);try{let _=await this.ledgerApp.signTransaction(this.derivationPath,m,[]);if(!_)throw new U.SwapKitError("wallet_ledger_signing_error");return{...L,signature:[_]}}catch(_){throw new U.SwapKitError("wallet_ledger_signing_error",{error:_})}}}var KL=(L)=>new gL(L);var I=require("@swapkit/helpers"),PL=require("bitcoinjs-lib");var w0=({psbt:L,inputUtxos:m,btcApp:_,derivationPath:y},T)=>{let G=m.map((F)=>{let J=PL.Transaction.fromHex(F.txHex||"");return[_.splitTransaction(J.toHex(),J.hasWitnesses()),F.index,void 0,void 0]}),w=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),R=_.splitTransaction(w,!0),C=_.serializeTransactionOutputs(R).toString("hex"),B={additionals:["bech32"],associatedKeysets:G.map(()=>y),inputs:G,outputScriptHex:C,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...B,...T})},b=({chain:L,additionalSignParams:m})=>{let _,y=null;async function T(w=!0){if(w&&!_)new I.SwapKitError("wallet_ledger_connection_error",{message:`Ledger connection failed:
|
|
2
|
+
${JSON.stringify({btcApp:_,checkBtcApp:w})}`});y||=await $()}async function G(){y=await $(),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:y})}return(w)=>{let R=typeof w==="string"?w:I.derivationPathToString(w),C=I.getWalletFormatFor(R);return{connect:async()=>{await T(!1),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:y})},getAddress:async()=>{let{toCashAddress:B}=await import("@swapkit/toolboxes/utxo");await T(!1);let{bitcoinAddress:F}=await _.getWalletPublicKey(R,{format:C});if(!F)throw new I.SwapKitError("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${R}`});return L==="bitcoin-cash"&&C==="legacy"?B(F).replace(/(bchtest:|bitcoincash:)/,""):F},getExtendedPublicKey:async(B="84'/0'/0'",F=76067358)=>{return await T(!1),_.getWalletXpub({path:B,xpubVersion:F})},signTransaction:async(B,F)=>{return await G(),w0({btcApp:_,derivationPath:R,inputUtxos:F,psbt:B},m)}}}},IL=b({chain:"bitcoin"}),EL=b({chain:"litecoin"}),VL=b({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),kL=b({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),bL=b({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),cL=b({additionalSignParams:{additionals:["zcash","sapling"],segwit:!1,useTrustedInputForSegwit:!1},chain:"zcash"});var xL=X(require("@ledgerhq/hw-app-xrp")),c=require("@swapkit/helpers"),GL=require("ripple-binary-codec");var C0=2147483648;function B0(L){let m={};for(let _ in L)if(L[_]!==null&&L[_]!==void 0)m[_]=L[_];return m}function X0(L){return new xL.default(L)}var vL=async(L)=>{let m=c.derivationPathToString(L||c.NetworkDerivationPath[c.Chain.Ripple]),_=await $(),y=X0(_),{address:T,publicKey:G}=await y.getAddress(m);async function w(R){let{hashes:C}=await import("@swapkit/toolboxes/ripple"),F={...B0(R),Flags:R.Flags||C0,SigningPubKey:G.toUpperCase()},J=GL.encode(F),l=await y.signTransaction(m,J),Y=GL.encode({...F,TxnSignature:l});return{hash:C.hashSignedTx(Y),tx_blob:Y}}return{address:T,sign:w}};var q=async({chain:L,derivationPath:m})=>{let{match:_}=await import("ts-pattern");return _(L).returnType().with(Z.Chain.THORChain,()=>Promise.resolve(new OL(m))).with(Z.Chain.Cosmos,()=>Promise.resolve(new TL(m))).with(Z.Chain.Bitcoin,()=>Promise.resolve(IL(m))).with(Z.Chain.BitcoinCash,()=>Promise.resolve(VL(m))).with(Z.Chain.Dash,()=>Promise.resolve(bL(m))).with(Z.Chain.Dogecoin,()=>Promise.resolve(kL(m))).with(Z.Chain.Litecoin,()=>Promise.resolve(EL(m))).with(Z.Chain.Zcash,()=>Promise.resolve(cL(m))).with(Z.Chain.Ripple,()=>Promise.resolve(vL(m))).with(Z.Chain.Tron,()=>Promise.resolve(KL(m))).with(Z.Chain.Near,async()=>{let y=await $();return qL(y,m)}).with(Z.Chain.Arbitrum,Z.Chain.Aurora,Z.Chain.Avalanche,Z.Chain.BinanceSmartChain,Z.Chain.Ethereum,Z.Chain.Gnosis,Z.Chain.Optimism,Z.Chain.Polygon,Z.Chain.Base,async()=>{let{getProvider:y}=await import("@swapkit/toolboxes/evm"),T={derivationPath:m,provider:await y(L)};return _(L).with(Z.Chain.BinanceSmartChain,()=>QL(T)).with(Z.Chain.Avalanche,()=>jL(T)).with(Z.Chain.Arbitrum,()=>YL(T)).with(Z.Chain.Optimism,()=>HL(T)).with(Z.Chain.Polygon,()=>ML(T)).with(Z.Chain.Base,()=>DL(T)).with(Z.Chain.Aurora,()=>UL(T)).with(Z.Chain.Gnosis,()=>zL(T)).otherwise(()=>NL(T))}).otherwise(()=>{throw new Z.SwapKitError("wallet_chain_not_supported",{chain:L,wallet:Z.WalletOption.LEDGER})})};var hL=t.createWallet({connect:({addChain:L,supportedChains:m,walletType:_})=>async function y(T,G){let[w]=O.filterSupportedChains({chains:T,supportedChains:m,walletType:_});if(!w)return!1;let R=await J0({chain:w,derivationPath:G});return L({...R,chain:w,walletType:O.WalletOption.LEDGER}),!0},name:"connectLedger",supportedChains:[O.Chain.Arbitrum,O.Chain.Aurora,O.Chain.Avalanche,O.Chain.Base,O.Chain.BinanceSmartChain,O.Chain.Bitcoin,O.Chain.BitcoinCash,O.Chain.Cosmos,O.Chain.Dash,O.Chain.Dogecoin,O.Chain.Ethereum,O.Chain.Gnosis,O.Chain.Litecoin,O.Chain.Near,O.Chain.Optimism,O.Chain.Polygon,O.Chain.Ripple,O.Chain.THORChain,O.Chain.Tron,O.Chain.Zcash],walletType:O.WalletOption.LEDGER}),W0=t.getWalletSupportedChains(hL);function f0(L,m="t"){if(!L?.includes("=:"))return L;let _=L.includes(`:${m}:`)?L.split(`:${m}:`)[0]:L;return _?.substring(0,_.lastIndexOf(":"))}function n(L){if(Array.isArray(L))return L.forEach((y,T)=>{L[T]=n(y)}),L;if(typeof L!=="object")return L;let m={},_=Object.keys(L).sort();for(let y of _)m[y]=n(L[y]);return m}function l0(L){return JSON.stringify(n(L))}async function J0({chain:L,derivationPath:m}){switch(L){case O.Chain.BitcoinCash:case O.Chain.Bitcoin:case O.Chain.Dash:case O.Chain.Dogecoin:case O.Chain.Litecoin:case O.Chain.Zcash:{let{getUtxoToolbox:_}=await import("@swapkit/toolboxes/utxo"),y=await _(L),T=await q({chain:L,derivationPath:m}),G=await g({chain:L,ledgerClient:T});return{...y,address:G,transfer:async(R)=>{let C=R.feeRate||(await y.getFeeRates())[O.FeeOption.Average],B=[O.Chain.Bitcoin].includes(L)?R.memo:f0(R.memo),{psbt:F,inputs:J}=await y.createTransaction({...R,feeRate:C,fetchTxHex:!0,memo:B,sender:G}),l=await T.signTransaction(F,J);return await y.broadcastTx(l)}}}case O.Chain.Ethereum:case O.Chain.Avalanche:case O.Chain.Arbitrum:case O.Chain.Optimism:case O.Chain.Polygon:case O.Chain.BinanceSmartChain:case O.Chain.Base:case O.Chain.Aurora:case O.Chain.Gnosis:{let{getEvmToolbox:_}=await import("@swapkit/toolboxes/evm"),y=await q({chain:L,derivationPath:m}),T=await g({chain:L,ledgerClient:y});return{...await _(L,{signer:y}),address:T}}case O.Chain.Cosmos:{let{createSigningStargateClient:_,getMsgSendDenom:y,getCosmosToolbox:T}=await import("@swapkit/toolboxes/cosmos"),G=await T(O.Chain.Cosmos),w=await q({chain:L,derivationPath:m}),R=await g({chain:L,ledgerClient:w});return{...G,address:R,transfer:async({assetValue:B,recipient:F,memo:J})=>{if(!B)throw new O.SwapKitError("wallet_ledger_invalid_asset");let l={amount:[{amount:B.getBaseValue("string"),denom:y(`u${B.symbol}`).toLowerCase()}],fromAddress:R,toAddress:F},Y=await O.getRPCUrl(L),A=await _(Y,w,"0.007uatom"),{transactionHash:j}=await A.signAndBroadcast(R,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:l}],2,J);return j}}}case O.Chain.THORChain:{let{SignMode:_}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),T=await import("@cosmjs/proto-signing"),G=T.encodePubkey??T.default?.encodePubkey,w=T.makeAuthInfoBytes??T.default?.makeAuthInfoBytes,{createStargateClient:R,buildEncodedTxBody:C,getCosmosToolbox:B,buildAminoMsg:F,getDefaultChainFee:J,fromBase64:l,parseAminoMessageForDirectSigning:Y}=await import("@swapkit/toolboxes/cosmos"),A=await B(L),j=await q({chain:L,derivationPath:m}),E=await g({chain:L,ledgerClient:j}),x=J(L),{pubkey:RL,signTransaction:uL,sign:dL}=j,wL=async({memo:S="",assetValue:CL,...oL})=>{let BL=await A.getAccount(E);if(!BL)throw new O.SwapKitError("wallet_ledger_invalid_account");if(!CL)throw new O.SwapKitError("wallet_ledger_invalid_asset");if(!RL)throw new O.SwapKitError("wallet_ledger_pubkey_not_found");let{accountNumber:iL,sequence:nL}=BL,p=(nL||0).toString(),XL=n([F({assetValue:CL,memo:S,sender:E,...oL})]),tL=l0({account_number:iL?.toString(),chain_id:O.ChainId.THORChain,fee:x,memo:S,msgs:XL,sequence:p}),s=await uL(tL,p);if(!s)throw new O.SwapKitError("wallet_ledger_signing_error");let pL=G({type:"tendermint/PubKeySecp256k1",value:RL}),sL=XL.map(Y),aL=await C({chain:L,memo:S,msgs:sL}),eL=w([{pubkey:pL,sequence:Number(p)}],x.amount,Number.parseInt(x.gas,10),void 0,void 0,_.SIGN_MODE_LEGACY_AMINO_JSON),rL=s?.[0]?.signature?l(s[0].signature):Uint8Array.from([]),L0=y.fromPartial({authInfoBytes:eL,bodyBytes:aL,signatures:[rL]}),m0=y.encode(L0).finish(),_0=await O.getRPCUrl(O.Chain.THORChain),T0=await R(_0),{transactionHash:y0}=await T0.broadcastTx(m0);return y0};return{...A,address:E,deposit:(S)=>wL(S),signMessage:dL,transfer:(S)=>wL(S)}}case O.Chain.Near:{let{getNearToolbox:_}=await import("@swapkit/toolboxes/near"),y=await q({chain:L,derivationPath:m}),T=await y.getAddress();return{...await _({signer:y}),address:T}}case O.Chain.Ripple:{let{getRippleToolbox:_}=await import("@swapkit/toolboxes/ripple"),y=await q({chain:L,derivationPath:m}),T=y.address;return{...await _({signer:y}),address:T}}case O.Chain.Tron:{let{createTronToolbox:_}=await import("@swapkit/toolboxes/tron"),y=await q({chain:L,derivationPath:m}),T=await g({chain:L,ledgerClient:y});return{...await _({signer:y}),address:T}}default:throw new O.SwapKitError("wallet_ledger_chain_not_supported",{chain:L})}}
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=2C39CCD439D809FD64756E2164756E21
|
|
5
5
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
"import { base64 } from \"@scure/base\";\nimport { SwapKitError } from \"@swapkit/helpers\";\n\nexport const getSignature = (signatureArray: any) => {\n // Check Type Length Value encoding\n if (signatureArray.length < 64) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"Too short\" });\n }\n if (signatureArray[0] !== 0x30) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"TLV encoding: expected first byte 0x30\" });\n }\n if (signatureArray[1] + 2 !== signatureArray.length) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"signature length does not match TLV\" });\n }\n if (signatureArray[2] !== 0x02) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"TLV encoding: expected length type 0x02\" });\n }\n\n // r signature\n const rLength = signatureArray[3];\n let rSignature = signatureArray.slice(4, rLength + 4);\n\n // Drop leading zero on some 'r' signatures that are 33 bytes.\n if (rSignature.length === 33 && rSignature[0] === 0) {\n rSignature = rSignature.slice(1, 33);\n } else if (rSignature.length === 33) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"r too long\" });\n }\n\n // add leading zero's to pad to 32 bytes\n while (rSignature.length < 32) {\n rSignature.unshift(0);\n }\n\n // s signature\n if (signatureArray[rLength + 4] !== 0x02) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", {\n reason: \"TLV encoding: expected length type 0x02 for s\",\n });\n }\n\n const sLength = signatureArray[rLength + 5];\n\n if (4 + rLength + 2 + sLength !== signatureArray.length) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", {\n reason: \"TLV byte lengths do not match message length\",\n });\n }\n\n let sSignature = signatureArray.slice(rLength + 6, signatureArray.length);\n\n // Drop leading zero on 's' signatures that are 33 bytes. This shouldn't occur since ledger signs using \"Small s\" math. But just to be sure...\n if (sSignature.length === 33 && sSignature[0] === 0) {\n sSignature = sSignature.slice(1, 33);\n } else if (sSignature.length === 33) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"s too long\" });\n }\n\n // add leading zero's to pad to 32 bytes\n while (sSignature.length < 32) {\n sSignature.unshift(0);\n }\n\n if (rSignature.length !== 32 || sSignature.length !== 32) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"must be 32 bytes each\" });\n }\n\n return base64.encode(Buffer.concat([rSignature, sSignature]));\n};\n",
|
|
18
18
|
"import type TronApp from \"@ledgerhq/hw-app-trx\";\nimport {\n type DerivationPathArray,\n derivationPathToString,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { TronSignedTransaction, TronSigner, TronTransaction } from \"@swapkit/toolboxes/tron\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\nexport class TronLedgerInterface implements TronSigner {\n derivationPath: string;\n ledgerApp: InstanceType<typeof TronApp> | null = null;\n ledgerTimeout = 50000;\n\n constructor(derivationPath?: DerivationPathArray | string) {\n this.derivationPath =\n typeof derivationPath === \"string\"\n ? derivationPath\n : derivationPathToString(derivationPath || NetworkDerivationPath.TRON);\n }\n\n checkOrCreateTransportAndLedger = async () => {\n if (this.ledgerApp) return;\n await this.createTransportAndLedger();\n };\n\n createTransportAndLedger = async () => {\n const transport = await getLedgerTransport();\n const TronApp = (await import(\"@ledgerhq/hw-app-trx\")).default;\n\n this.ledgerApp = new TronApp(transport);\n };\n\n getAddress = async (): Promise<string> => {\n const response = await this.getAddressAndPubKey();\n if (!response) throw new SwapKitError(\"wallet_ledger_failed_to_get_address\");\n return response.address;\n };\n\n getAddressAndPubKey = async () => {\n await this.createTransportAndLedger();\n const result = await this.ledgerApp?.getAddress(this.derivationPath);\n\n if (!result) throw new SwapKitError(\"wallet_ledger_failed_to_get_address\");\n\n return { address: result.address, publicKey: result.publicKey };\n };\n\n showAddressAndPubKey = async () => {\n await this.createTransportAndLedger();\n return this.ledgerApp?.getAddress(this.derivationPath, true);\n };\n\n signTransaction = async (transaction: TronTransaction): Promise<TronSignedTransaction> => {\n await this.createTransportAndLedger();\n\n if (!this.ledgerApp) {\n throw new SwapKitError(\"wallet_ledger_transport_error\");\n }\n\n // Tron transactions need to be serialized before signing\n const serializedTx = JSON.stringify(transaction);\n\n try {\n const signature = await this.ledgerApp.signTransaction(\n this.derivationPath,\n serializedTx,\n [], // Token signatures array - empty for native TRX transfers\n );\n\n if (!signature) {\n throw new SwapKitError(\"wallet_ledger_signing_error\");\n }\n\n // Return the signed transaction in Tron's expected format\n return { ...transaction, signature: [signature] };\n } catch (error) {\n throw new SwapKitError(\"wallet_ledger_signing_error\", { error });\n }\n };\n}\n\nexport const TronLedger = (derivationPath?: DerivationPathArray) => new TronLedgerInterface(derivationPath);\n",
|
|
19
19
|
"import type BitcoinApp from \"@ledgerhq/hw-app-btc\";\nimport type { CreateTransactionArg } from \"@ledgerhq/hw-app-btc/lib-es/createTransaction\";\nimport { type DerivationPathArray, derivationPathToString, getWalletFormatFor, SwapKitError } from \"@swapkit/helpers\";\nimport type { UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport { type Psbt, Transaction } from \"bitcoinjs-lib\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\ntype Params = { psbt: Psbt; inputUtxos: UTXOType[]; btcApp: any; derivationPath: string };\n\nconst signUTXOTransaction = (\n { psbt, inputUtxos, btcApp, derivationPath }: Params,\n options?: Partial<CreateTransactionArg>,\n) => {\n const inputs = inputUtxos.map((item) => {\n const utxoTx = Transaction.fromHex(item.txHex || \"\");\n const splitTx = btcApp.splitTransaction(utxoTx.toHex(), utxoTx.hasWitnesses());\n\n return [splitTx, item.index, undefined as string | null | undefined, undefined as number | null | undefined] as any;\n });\n\n const newTxHex = psbt.data.globalMap.unsignedTx.toBuffer().toString(\"hex\");\n\n const splitNewTx = btcApp.splitTransaction(newTxHex, true);\n const outputScriptHex = btcApp.serializeTransactionOutputs(splitNewTx).toString(\"hex\");\n\n const params: CreateTransactionArg = {\n additionals: [\"bech32\"],\n associatedKeysets: inputs.map(() => derivationPath),\n inputs,\n outputScriptHex,\n segwit: true,\n useTrustedInputForSegwit: true,\n };\n\n return btcApp.createPaymentTransaction({ ...params, ...options });\n};\n\nconst BaseLedgerUTXO = ({\n chain,\n additionalSignParams,\n}: {\n chain: \"bitcoin-cash\" | \"bitcoin\" | \"litecoin\" | \"dogecoin\" | \"dash\" | \"zcash\";\n additionalSignParams?: Partial<CreateTransactionArg>;\n}) => {\n let btcApp: InstanceType<typeof BitcoinApp>;\n let transport: any = null;\n\n async function checkBtcAppAndCreateTransportWebUSB(checkBtcApp = true) {\n if (checkBtcApp && !btcApp) {\n new SwapKitError(\"wallet_ledger_connection_error\", {\n message: `Ledger connection failed:\\n${JSON.stringify({ btcApp, checkBtcApp })}`,\n });\n }\n\n transport ||= await getLedgerTransport();\n }\n\n async function createTransportWebUSB() {\n transport = await getLedgerTransport();\n const BitcoinApp = (await import(\"@ledgerhq/hw-app-btc\")).default;\n\n btcApp = new BitcoinApp({ currency: chain, transport });\n }\n\n return (derivationPathArray?: DerivationPathArray | string) => {\n const derivationPath =\n typeof derivationPathArray === \"string\"\n ? derivationPathArray\n : derivationPathToString(derivationPathArray as DerivationPathArray);\n\n const format = getWalletFormatFor(derivationPath);\n\n return {\n connect: async () => {\n await checkBtcAppAndCreateTransportWebUSB(false);\n const BitcoinApp = (await import(\"@ledgerhq/hw-app-btc\")).default;\n\n btcApp = new BitcoinApp({ currency: chain, transport });\n },\n getAddress: async () => {\n const { toCashAddress } = await import(\"@swapkit/toolboxes/utxo\");\n\n await checkBtcAppAndCreateTransportWebUSB(false);\n\n const { bitcoinAddress: address } = await btcApp.getWalletPublicKey(derivationPath, { format });\n\n if (!address) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot get ${chain} address from ledger derivation path: ${derivationPath}`,\n });\n }\n\n return chain === \"bitcoin-cash\" && format === \"legacy\"\n ? toCashAddress(address).replace(/(bchtest:|bitcoincash:)/, \"\")\n : address;\n },\n getExtendedPublicKey: async (path = \"84'/0'/0'\", xpubVersion = 76067358) => {\n await checkBtcAppAndCreateTransportWebUSB(false);\n\n return btcApp.getWalletXpub({ path, xpubVersion });\n },\n signTransaction: async (psbt: Psbt, inputUtxos: UTXOType[]) => {\n await createTransportWebUSB();\n\n return signUTXOTransaction({ btcApp, derivationPath, inputUtxos, psbt }, additionalSignParams);\n },\n };\n };\n};\n\nexport const BitcoinLedger = BaseLedgerUTXO({ chain: \"bitcoin\" });\nexport const LitecoinLedger = BaseLedgerUTXO({ chain: \"litecoin\" });\n\nexport const BitcoinCashLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [\"abc\"], segwit: false, sigHashType: 0x41 },\n chain: \"bitcoin-cash\",\n});\n\nexport const DogecoinLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [], segwit: false, useTrustedInputForSegwit: false },\n chain: \"dogecoin\",\n});\n\nexport const DashLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [], segwit: false, useTrustedInputForSegwit: false },\n chain: \"dash\",\n});\n\nexport const ZcashLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [\"zcash\", \"sapling\"], segwit: false, useTrustedInputForSegwit: false },\n chain: \"zcash\",\n});\n",
|
|
20
|
-
"import
|
|
20
|
+
"import Xrp from \"@ledgerhq/hw-app-xrp\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport { Chain, type DerivationPathArray, derivationPathToString, NetworkDerivationPath } 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/getLedgerTransport\";\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\nfunction establishConnection(transport: Transport) {\n return new Xrp(transport);\n}\n\nexport const XRPLedger = async (derivationPath?: DerivationPathArray) => {\n const path = derivationPathToString(derivationPath || NetworkDerivationPath[Chain.Ripple]);\n const transport = await getLedgerTransport();\n const xrpInstance = establishConnection(transport);\n\n const { address, publicKey } = await xrpInstance.getAddress(path);\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 { hash, tx_blob };\n }\n\n return { address, sign };\n};\n"
|
|
21
21
|
],
|
|
22
|
-
"mappings": "4FAUO,IAVP,8BAcA,kCCdkD,IAAlD,8BASa,EAAmB,OAI9B,QACA,kBAII,CACJ,IAAK,EAAc,MAAO,GAE1B,OAAQ,QACD,QAAM,YACN,QAAM,UACT,OAAQ,EAAqC,QAAQ,OAGlD,QAAM,cACN,QAAM,uBACN,QAAM,eACN,QAAM,aACN,QAAM,cACN,QAAM,cACN,QAAM,UACN,QAAM,YACN,QAAM,OACT,OAAQ,EAAkC,WAAW,OAGlD,QAAM,aACN,QAAM,iBACN,QAAM,UACN,QAAM,cACN,QAAM,cACN,QAAM,MAAO,CAChB,IAAM,EAAS,EACf,MAAM,EAAO,QAAQ,EACrB,IAAM,EAAU,MAAM,EAAO,WAAW,EAExC,OAAO,IAAU,QAAM,YAAc,EAAQ,QAAQ,eAAgB,EAAE,EAAI,CAC7E,MAEK,QAAM,KACT,OAAO,MAAO,EAAiE,WAAW,OAGvF,QAAM,OACT,OAAQ,EAAuD,aAG5D,QAAM,KACT,OAAQ,EAAwD,WAAW,UAI3E,MAAM,IAAI,eAAa,6BAA8B,CAAE,QAAO,OAAQ,eAAa,MAAO,CAAC,ICjEN,IAA3F,8BCKO,IALP,8BCA+F,IAA/F,8BCC6B,IAA7B,+BCDO,IAAM,EAAM,GACN,EAAa,IAGnB,IAAM,EAAM,CACjB,mBAAoB,EACpB,YAAa,EACb,yBAA0B,EAC1B,eAAgB,CAClB,EAEa,EAAe,CAAE,IAAK,EAAM,KAAM,EAAM,KAAM,CAAK,EAEnD,EAAY,CAAE,cAAe,EAAM,uBAAwB,CAAK,EAEhE,EAAY,CAAE,KAAM,CAAI,EAExB,EAAa,CAAE,QAAS,KAAO,EAEtC,GAAyB,CAC7B,EAAG,eACH,EAAG,mBACH,EAAG,iCACH,EAAG,yBACH,EAAG,eACH,GAAI,UACJ,MAAO,kBACP,MAAO,eACP,MAAO,sBACP,MAAO,eACP,MAAO,0BACP,MAAO,kBACP,MAAO,2BACP,MAAO,uBACP,MAAO,iBACP,MAAO,gBACP,MAAO,4BACP,MAAO,+BACP,MAAO,gBACP,MAAO,oBACP,MAAO,YACP,MAAO,gBACT,EAEO,SAAS,CAAiB,CAAC,EAAoB,CACpD,GAAI,KAAc,GAAmB,OAAO,GAAkB,GAC9D,MAAO,wBAAwB,IAGjC,SAAS,EAAM,CAAC,EAAQ,CACtB,OAAO,OAAO,IAAM,UAAY,IAAM,OAAS,MAAM,QAAQ,CAAC,KAAO,aAAa,MAG7E,SAAS,CAAoB,CAAC,EAAe,CAClD,GAAI,EAAU,CACZ,GAAI,GAAO,CAAQ,EAAG,CACpB,GAAI,OAAO,OAAO,EAAU,YAAY,EACtC,MAAO,CAAE,cAAe,EAAkB,EAAS,UAAU,EAAG,YAAa,EAAS,UAAW,EAGnG,GAAI,OAAO,OAAO,EAAU,aAAa,GAAK,OAAO,OAAO,EAAU,eAAe,EACnF,OAAO,EAGX,MAAO,CAAE,cAAe,EAAS,SAAS,EAAG,YAAa,KAAO,EAGnE,MAAO,CAAE,cAAe,EAAS,SAAS,EAAG,YAAa,KAAO,EAG5D,SAAS,CAAU,CAAC,EAAgB,CACzC,OAAO,EAAU,KAvEA,GAuEU,EAAI,YAAa,EAAG,CAAC,EAAE,KAAK,CAAC,IAAkB,CACxE,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEtD,EAAW,EACf,GAAI,EAAS,QAAU,EACrB,GAAY,EAAS,IAAM,KAAO,EAAS,IAAM,KAAO,EAAS,IAAM,IAAM,EAAS,IAAM,GAG9F,MAAO,CACL,cAAe,EAAS,KAAO,EAC/B,cAAe,EAAkB,CAAU,EAC3C,MAAO,EAAS,GAChB,MAAO,EAAS,GAChB,MAAO,EAAS,GAChB,YAAa,EACb,UAAW,EAAS,SAAS,EAAE,EAE/B,UAAW,EAAS,KAAO,CAC7B,GACC,CAAoB,EC3FI,IAA7B,8BAGO,SAAS,EAAe,CAAC,EAAgB,CAC9C,GAAI,GAAQ,MAAQ,EAAK,OAAS,EAChC,MAAM,IAAI,eAAa,+BAAgC,CAAE,OAAQ,gBAAiB,CAAC,EAErF,GAAI,EAAK,OAAS,GAChB,MAAM,IAAI,eAAa,+BAAgC,CAAE,OAAQ,eAAgB,CAAC,EAEpF,IAAM,EAAM,OAAO,MAAM,EAAI,EAAI,EAAK,MAAM,EAC5C,EAAI,WAAW,EAAK,OAAQ,CAAC,EAC7B,QAAS,EAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EAAG,CACvC,IAAI,EAAI,EAAK,IAAM,EACnB,GAAI,EAAI,EAEN,GAAK,WAEP,EAAI,aAAa,EAAG,EAAI,EAAI,CAAC,EAE/B,OAAO,EAGF,SAAS,EAAe,CAAC,EAAU,EAAkB,EAAmB,EAAe,EAAS,EAAU,KAAM,CACrH,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,eAAgB,EAAU,EAAQ,EAAO,CAAC,EAAW,QAAS,MAAQ,KAAM,CAAC,EAC3F,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GACtD,EAAe,EAAkB,CAAU,EAE/C,GAAI,IAAe,OAAU,IAAe,MAC1C,EAAe,GAAG,OAAkB,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EAAE,SAAS,OAAO,IAG7F,IAAI,EAAiB,KACrB,GAAI,EAAS,OAAS,EACpB,EAAY,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EAGnD,MAAO,CAAE,cAAe,EAAc,YAAa,EAAY,WAAU,GACxE,CAAoB,EAG3B,SAAS,EAAiB,CAAC,EAAmB,CAC5C,GAAI,EAAU,SAAW,GACvB,MAAM,IAAI,eAAa,+BAAgC,CACrD,OAAQ,mDACV,CAAC,EAEH,IAAM,EAAI,EAAU,MAAM,GAAI,EAAE,EAG1B,EAAI,OAAO,KAAK,CAAC,GAAK,EAAE,EAAE,OAAS,GAAK,EAAE,CAAC,EACjD,OAAO,OAAO,OAAO,CAAC,EAAG,EAAU,MAAM,EAAG,EAAE,CAAC,CAAC,EAG3C,SAAS,EAAW,CAAC,EAAU,EAAc,CAClD,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,yBAA0B,EAAG,EAAG,EAAM,CAAC,EAAW,OAAO,CAAC,EACxE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GACpD,EAAK,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAE5C,MAAO,CACL,cAAe,GAAkB,CAAE,EACnC,cAAe,EAAkB,CAAU,EAC3C,KACA,YAAa,CACf,GACC,CAAoB,EAGpB,SAAS,EAAe,CAAC,EAAgB,CAC9C,IAAK,GAAQ,EAAK,SAAW,EAC3B,MAAM,IAAI,eAAa,+BAAgC,CAAE,OAAQ,iCAAkC,CAAC,EAGtG,IAAM,EAAM,OAAO,MAAM,EAAE,EAY3B,OAVA,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,EAAK,GAAI,EAAE,EAE7B,EAAI,cAAc,EAAK,GAAI,EAAE,EAEtB,EAGF,SAAS,EAAe,CAAC,EAAU,EAAkB,EAAkB,EAAe,EAAS,EAAU,KAAM,CACpH,IAAI,EAAc,EAAa,IAC/B,GAAI,IAAa,EACf,EAAc,EAAa,KAE7B,GAAI,IAAa,EACf,EAAc,EAAa,KAG7B,OAAO,GAAgB,EAAK,EAAa,EAAG,EAAO,CAAM,EAGpD,SAAS,EAAW,CAAC,EAAU,EAAc,CAClD,OAAO,EAAI,UAAU,KAAK,EAAK,EAAI,mBAAoB,EAAG,EAAG,EAAM,CAAC,EAAW,OAAO,CAAC,EAAE,KAAK,CAAC,IAAkB,CAC/G,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAG1D,MAAO,CACL,cAHmB,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAIpD,cAAe,EAAkB,CAAU,EAC3C,GAAI,oBACJ,YAAa,CACf,GACC,CAAoB,EF/ElB,MAAM,CAAa,CACxB,UACA,gBAEA,WAAW,CAAC,EAAgB,CAC1B,IAAK,EACH,MAAM,IAAI,gBAAa,qCAAqC,EAG9D,KAAK,UAAY,QAGZ,aAAY,CAAC,EAAa,CAC/B,GAAI,GAAO,MAAQ,EAAI,OAAS,GAAK,EAAI,OAAS,GAChD,MAAM,IAAI,gBAAa,+BAAgC,CAAE,OAAQ,aAAc,CAAC,EAElF,IAAM,EAAM,OAAO,MAAM,EAAI,EAAI,MAAM,EAGvC,OAFA,EAAI,WAAW,EAAI,OAAQ,CAAC,EAC5B,EAAI,MAAM,EAAK,CAAC,EACT,OAGH,cAAa,CAAC,EAAgB,CAGlC,GAFA,KAAK,gBAAkB,MAAM,EAAW,KAAK,SAAS,EAElD,KAAK,gBAAgB,cAAgB,EAAW,QAClD,MAAM,KAAK,gBAGb,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAgB,CAAI,MACxB,GACH,OAAO,GAAgB,CAAI,UAE3B,OAAO,OAAO,MAAM,CAAC,QAIrB,cAAa,CAAC,EAAgB,EAAgB,CAClD,IAAM,EAAiB,MAAM,KAAK,cAAc,CAAI,EAE9C,EAAS,CAAC,EAChB,EAAO,KAAK,CAAc,EAE1B,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAAY,CAClD,IAAI,EAAM,EAAI,EACd,GAAI,EAAI,EAAO,OACb,EAAM,EAAO,OAEf,EAAO,KAAK,EAAO,MAAM,EAAG,CAAG,CAAC,EAGlC,OAAO,OAGH,WAAU,EAAG,CACjB,GAAI,CAEF,OADA,KAAK,gBAAkB,MAAM,EAAW,KAAK,SAAS,EAC/C,KAAK,gBACZ,MAAO,EAAG,CACV,OAAO,EAAqB,CAAC,GAIjC,OAAO,EAAG,CACR,OAAO,KAAK,UAAU,KAAK,IAAM,EAAM,EAAG,CAAC,EAAE,KAAK,CAAC,IAAkB,CACnE,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEtD,EAAU,GACV,EAAa,GACb,EAAU,EACV,EAAa,EAEjB,GAAI,EAAS,KAAO,EAElB,MAAO,CAAE,cAAe,oCAAqC,YAAa,KAAO,EAGnF,IAAM,EAAa,EAAS,GAC5B,EAAU,EAAS,MAAM,EAAG,EAAI,CAAU,EAAE,SAAS,OAAO,EAC5D,IAAI,EAAM,EAAI,EACR,EAAgB,EAAS,GAC/B,GAAO,EACP,EAAa,EAAS,MAAM,EAAK,EAAM,CAAa,EAAE,SAAS,OAAO,EACtE,GAAO,EACP,IAAM,EAAc,EAAS,GAK7B,OAJA,GAAO,EACP,EAAU,EACV,EAAa,EAAS,GAEf,CACL,UACA,aACA,cAAe,EAAkB,CAAU,EAC3C,gBAAiB,EAAa,KAAO,EACrC,oBAAqB,EAAa,OAAS,EAC3C,eAAgB,EAAa,KAAO,EACpC,sBAAuB,EAAa,KAAO,EAC3C,UACA,aACA,YAAa,CACf,GACC,CAAoB,EAGzB,UAAU,EAAG,CACX,OAAO,KAAK,UACT,KAAK,IAAM,EAAM,EAAG,EAAG,OAAO,KAAK,CAAC,CAAC,EAAG,CAAC,EAAW,QAAS,KAAM,CAAC,EACpE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAE1D,GAAI,IAAe,MACjB,MAAO,CAAE,cAAe,kDAAmD,YAAa,CAAW,EAGrG,IAAM,EAAW,EAAS,MAAM,EAAG,CAAC,EAAE,SAAS,KAAK,EAEhD,EAAM,EACJ,EAA0B,EAAS,GACzC,GAAO,EACP,IAAM,EAAY,EAAS,MAAM,EAAK,EAAM,CAAuB,EAAE,SAAS,EAC9E,GAAO,EAEP,IAAM,EAAW,EAAS,GAC1B,GAAO,EACP,IAAM,EAAO,EAAS,MAAM,EAAK,EAAM,CAAQ,EAAE,SAAS,KAAK,EAC/D,GAAO,EAEP,IAAM,EAAgB,EAAS,GAC/B,GAAO,EAEP,IAAI,EAAM,EAAS,MAAM,EAAK,EAAM,CAAa,EACjD,GAAI,EAAI,EAAgB,KAAO,EAC7B,EAAM,EAAS,MAAM,EAAK,EAAM,EAAgB,CAAC,EAEnD,IAAM,EAAa,EAAI,SAAS,EAEhC,MAAO,CACL,cAAe,EAAkB,CAAU,EAC3C,OACA,aACA,YAAa,EACb,YAEA,UACF,GACC,CAAoB,OAGrB,UAAS,CAAC,EAAgB,CAC9B,GAAI,CACF,IAAM,EAAiB,MAAM,KAAK,cAAc,CAAI,EAEpD,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAY,KAAM,CAAc,MACpC,GAAG,CACN,IAAM,EAAO,OAAO,OAAO,CAAC,EAAa,aAAa,MAAM,EAAG,CAAc,CAAC,EAC9E,OAAO,GAAY,KAAM,CAAI,CAC/B,SAEE,MAAO,CAAE,cAAe,+BAAgC,YAAa,KAAO,GAEhF,MAAO,EAAG,CACV,OAAO,EAAqB,CAAC,GAIjC,mBAAmB,CAAC,EAAgB,EAAa,EAAe,GAAO,CACrE,OAAO,KAAK,cAAc,CAAI,EAC3B,KAAK,CAAC,IAA2B,CAChC,IAAM,EAAO,OAAO,OAAO,CAAC,EAAa,aAAa,CAAG,EAAG,CAAc,CAAC,EAC3E,OAAO,KAAK,UACT,KACC,EACA,EAAI,mBACJ,EAAe,EAAU,uBAAyB,EAAU,cAC5D,EACA,EACA,CAAC,EAAW,OAAO,CACrB,EACC,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEpD,EAAe,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAGtD,MAAO,CACL,eAHoB,OAAO,KAAK,EAAS,MAAM,GAAI,EAAE,CAAC,EAAE,SAAS,EAIjE,cAAe,EACf,cAAe,EAAkB,CAAU,EAC3C,YAAa,CACf,GACC,CAAoB,EAC1B,EACA,MAAM,CAAC,IAAQ,EAAqB,CAAG,CAAC,EAG7C,oBAAoB,CAAC,EAAgB,EAAa,CAChD,OAAO,KAAK,oBAAoB,EAAM,EAAK,EAAI,EAGjD,aAAa,CAAC,EAAkB,EAAkB,EAAe,EAAS,EAAU,KAAM,CACxF,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAgB,KAAM,EAAU,EAAU,EAAO,CAAM,MAC3D,GACH,OAAO,GAAgB,KAAM,EAAU,EAAU,EAAO,CAAM,UAE9D,MAAO,CAAE,cAAe,+BAAgC,YAAa,KAAO,QAI5E,KAAI,CAAC,EAAgB,EAAiB,EAAS,EAAU,KAAM,CACnE,IAAM,EAAS,OAAO,KAAK,CAAO,EAC9B,EAAmB,CAAC,EACpB,EACJ,GAAI,CACF,EAAS,MAAM,KAAK,cAAc,EAAM,CAAM,EAC9C,EAAW,MAAM,KAAK,cAAc,EAAG,EAAO,OAAQ,EAAO,GAAc,CAAM,EACjF,MAAO,EAAO,CACd,EAAqB,CAAK,EAE5B,IAAI,EAAS,CAAE,cAAe,EAAS,cAAe,YAAa,EAAS,YAAa,UAAW,IAAK,EAEzG,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAEtC,GADA,EAAS,MAAM,KAAK,cAAc,EAAI,EAAG,EAAO,OAAQ,EAAO,GAAc,CAAM,EAC/E,EAAO,cAAgB,EAAW,QACpC,MAIJ,MAAO,CAAE,cAAe,EAAO,cAAe,YAAa,EAAO,YAAa,UAAW,EAAO,SAAU,EAE/G,CGpR6B,IAA7B,8BAEM,GAAkB,IACtB,WAAW,IAOP,GAAmB,SAAY,CACnC,IAAM,EAAe,GAAgB,EAErC,GAAI,OAAO,GAAc,aAAe,WAAY,MAAO,CAAC,EAC5D,IAAQ,qBAAsB,KAAa,6BAGrC,GADU,MAAM,GAAc,WAAW,GACf,OAAO,CAAC,IAAM,EAAE,WAAa,CAAiB,EAC9E,GAAI,EAAgB,OAAS,EAAG,OAAO,EAAgB,GAEvD,OAAO,GAAc,cAAc,CAAE,QAAS,CAAC,CAAE,SAAU,CAAkB,CAAC,CAAE,CAAC,GAGtE,EAAqB,SAAY,CAC5C,IAAM,EAAS,MAAM,GAAiB,EAEtC,IAAK,EACH,MAAM,IAAI,eAAa,gCAAgC,EAIzD,GADA,MAAM,EAAO,KAAK,EACd,EAAO,gBAAkB,KAAM,MAAM,EAAO,oBAAoB,CAAC,EAErE,GAAI,CACF,MAAM,EAAO,MAAM,EACnB,KAAM,EAIR,IAAM,EAAQ,EAAO,eAAe,GAAG,WAAW,KAChD,EAAG,gBACD,EAAW,KAAK,EAAG,oBAAqB,IAAmB,GAAG,CAClE,EAEA,IAAK,EAEH,MADA,MAAM,EAAO,MAAM,EACb,IAAI,eAAa,gCAAgC,EAGzD,GAAI,CACF,MAAM,EAAO,eAAe,EAAM,eAAe,EACjD,MAAO,EAAgB,CAGvB,MAFA,MAAM,EAAO,MAAM,EAEb,IAAI,eAAa,mCAAoC,CAAK,EAGlE,IAAM,GAAa,KAAa,0CAAkC,QAElE,IADoB,MAAM,EAAU,YAAY,EAC9B,MAAM,IAAI,eAAa,oCAAoC,EAE7E,IAAQ,sBAAuB,KAAa,4BAEtC,EAAY,IAAI,EAAU,EAAQ,EAAM,eAAe,EAEvD,EAAe,CAAC,IAAW,CAC/B,GAAI,IAAW,EAAE,OACf,GAAgB,GAAG,oBAAoB,aAAc,CAAY,EAEjE,EAAU,gBAAgB,IAAI,CAAoB,GAKtD,OAFA,GAAgB,GAAG,iBAAiB,aAAc,CAAY,EAEvD,GJtEF,MAAe,CAAsB,CAC1C,cAAgB,MAChB,eAA+C,wBAAsB,KACrE,UACA,UACA,MAA2B,OAE3B,gCAAkC,MAAO,EAAiB,KAAU,CAClE,IAAK,GAAkB,KAAK,WAAa,KAAK,UAAW,OAEzD,GAAI,CAGF,OAFA,KAAK,UAAY,IAAmB,KAAK,UAAY,MAAM,EAAmB,EAAI,KAAK,UAE/E,KAAK,WACN,OAAQ,CACX,KAAK,UAAY,IAAmB,KAAK,UAAY,IAAI,EAAa,KAAK,SAAS,EAAI,KAAK,UAE7F,KACF,KAEK,SAAU,CACb,IAAM,GAAa,KAAa,oCAA4B,QAC5D,KAAK,UAAY,IAAmB,KAAK,UAAY,IAAI,EAAU,KAAK,SAAS,EAAI,KAAK,SAC5F,EAGF,OAAO,KAAK,UACZ,MAAO,EAAgB,CACvB,MAAM,IAAI,eAAa,iCAAkC,CAAK,IAIlE,iBAAmB,CAAC,EAA4B,IAAqB,CACnE,OAAQ,QACD,kBAAgB,QACnB,YAEG,kBAAgB,aACnB,MAAM,IAAI,eAAa,8BAA+B,CAAE,QAAS,qBAAqB,GAAU,CAAC,OAE9F,kBAAgB,YACnB,MAAM,IAAI,eAAa,gCAAgC,UAGvD,OAIR,CD7CO,MAAM,WAAqB,CAAsB,CAC9C,OAAwB,KAEhC,eAEA,WAAW,CAAC,EAAsC,wBAAsB,KAAM,CAC5E,MAAM,EACN,KAAK,MAAQ,SACb,KAAK,eAAiB,yBAAuB,CAAc,EAG7D,QAAU,SAAY,CACpB,MAAM,KAAK,gCAAgC,EAAI,EAC/C,IAAQ,YAAW,WAAY,MAAM,KAAK,oBAAoB,EAI9D,OAFA,KAAK,OAAS,OAAO,KAAK,EAAW,KAAK,EAAE,SAAS,QAAQ,EAEtD,GAGT,oBAAsB,SAAY,CAKhC,OAJA,MAAM,KAAK,gCAAgC,EAAI,EAE9B,MAAM,KAAK,UAAU,WAAW,KAAK,eAAgB,KAAK,KAAK,GAKlF,gBAAkB,MAAO,EAAe,EAAW,MAAQ,CACzD,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAK,EAEtG,IAAK,KAAK,OAAQ,MAAM,IAAI,eAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,CAAC,CAAE,QAAS,CAAE,KAAM,6BAA8B,MAAO,KAAK,MAAO,EAAG,WAAU,WAAU,CAAC,GAGtG,UAAY,MAAO,EAAuB,IAA+B,CACvE,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAW,MAAM,KAAK,YAAY,EAGxC,GAFqB,EAAS,UAAU,CAAC,IAAY,EAAQ,UAAY,CAAa,IAEjE,GACnB,MAAM,IAAI,eAAa,kCAAmC,CAAE,QAAS,CAAc,CAAC,EAGtF,IAAM,EAAgB,KAAa,yBAC7B,EACJ,EAAc,0BAA4B,EAAc,SAAS,yBAC7D,EAAmB,EAAc,kBAAoB,EAAc,SAAS,iBAC5E,EAAiB,KAAa,0BAC9B,EAAqB,EAAe,oBAAsB,EAAe,SAAS,mBAElF,EAAU,EAAiB,CAAO,EAClC,EAAY,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAO,EAExE,KAAK,iBAAiB,EAAU,YAAa,EAAU,aAAa,EAEpE,IAAM,EAAgB,EAAmB,QAAQ,EAAU,SAAS,EAAE,cAAc,EAEpF,MAAO,CAAE,UAAW,EAAyB,EAAS,GAAG,OAAQ,CAAa,EAAG,OAAQ,CAAQ,GAGnG,YAAc,SAAY,CACxB,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAmB,MAAM,KAAK,oBAAoB,EACxD,MAAO,CACL,CAAE,QAAS,EAAiB,QAAS,KAAM,YAAa,OAAQ,OAAO,KAAK,EAAiB,UAAW,KAAK,CAAE,CACjH,EAEJ,CM5EO,IANP,8BAOA,qBAIA,MAAM,UAA2B,iBAAe,CAC9C,QAAmB,UAAQ,SAC3B,eAAiB,GACjB,UAAqD,KACrD,cAAgB,MAEhB,WAAW,EACT,WACA,iBAAiB,wBAAsB,GACvC,UAAU,UAAQ,UACyE,CAC3F,MAAM,CAAQ,EAEd,KAAK,QAAU,GAAW,UAAQ,SAClC,KAAK,eAAiB,OAAO,IAAmB,SAAW,EAAiB,yBAAuB,CAAc,EAEjH,OAAO,eAAe,KAAM,WAAY,CAAE,WAAY,GAAM,MAAO,GAAY,KAAM,SAAU,EAAM,CAAC,EAGxG,QAAU,CAAC,IACT,IAAI,EAAmB,CAAE,QAAS,KAAK,QAAS,eAAgB,KAAK,eAAgB,UAAS,CAAC,EAEjG,gCAAkC,SAAY,CAC5C,GAAI,KAAK,UAAW,OACpB,MAAM,KAAK,yBAAyB,GAGtC,yBAA2B,SAAY,CACrC,IAAM,EAAY,MAAM,EAAmB,EACrC,GAAe,KAAa,iCAAyB,QAE3D,KAAK,UAAY,IAAI,EAAY,CAAS,GAG5C,WAAa,SAAY,CACvB,IAAM,EAAW,MAAM,KAAK,oBAAoB,EAChD,IAAK,EAAU,MAAM,IAAI,eAAa,qCAAqC,EAC3E,OAAO,EAAS,SAGlB,oBAAsB,SAAY,CAEhC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,cAAc,GAGvD,qBAAuB,SAAY,CAEjC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,eAAgB,EAAI,GAG7D,YAAc,MAAO,IAAuB,CAC1C,IAAQ,aAAc,KAAa,kBACnC,MAAM,KAAK,yBAAyB,EAEpC,IAAM,EAAM,MAAM,KAAK,WAAW,oBAAoB,KAAK,eAAgB,CAAU,EAErF,IAAK,EAAK,MAAM,IAAI,eAAa,6BAA6B,EAI9D,OAFA,EAAI,EAAI,KAAK,EAAI,IACjB,EAAI,EAAI,KAAK,EAAI,IACV,EAAU,KAAK,CAAG,EAAE,YAG7B,gBAAkB,MAAO,IAAyC,CAChE,IAAK,KAAK,SAAU,MAAM,IAAI,eAAa,2BAA2B,EAEtE,IAAM,EAAc,MAAM,KAAK,gBAAgB,CAAE,EAEjD,OAAO,MAAM,KAAK,SAAS,qBAAqB,CAAW,GAG7D,aAAa,EAAoB,CAC/B,MAAM,IAAI,eAAa,qCAAsC,CAAE,OAAQ,eAAgB,CAAC,EAG1F,gBAAkB,MAAO,IAA2B,CAClD,IAAQ,eAAgB,KAAa,kBACrC,MAAM,KAAK,yBAAyB,EAEpC,IAAM,EAAmB,MAAM,KAAK,UAAU,oBAAoB,EAAG,MAAS,MAAM,KAAK,WAAW,CAAE,EAEhG,EAAS,CACb,QAAS,EAAG,SAAW,KAAK,QAC5B,KAAM,EAAG,KACT,SAAU,EAAG,YACT,EAAG,UAAY,CAAE,SAAU,EAAG,QAAS,MACtC,EAAG,UACN,EAAG,cAAgB,CAAE,aAAc,EAAG,aAAc,qBAAsB,EAAG,oBAAqB,EACpG,MAAO,EAAG,QAAU,OAAY,QAAQ,EAAG,OAAS,GAAoB,GAAG,SAAS,CAAC,EAAI,EACzF,GAAI,EAAG,IAAI,SAAS,EACpB,KAAM,EAAG,OAAS,OAAO,MAAM,EAAG,IAAI,EAAI,EAAG,KAAO,EAAG,aAAe,EAAI,EAC1E,MAAO,EAAG,KACZ,EAGM,EAAa,EAAY,KAAK,CAAM,EAAE,mBAAmB,MAAM,CAAC,GAE9D,iBAAkB,KAAa,gCAEjC,EAAa,MAAM,EAAc,mBAAmB,EAAY,CAAC,EAAG,CAAE,MAAO,GAAM,gBAAiB,EAAK,CAAC,EAE1G,EAAY,MAAM,KAAK,WAAW,gBAAgB,KAAK,eAAgB,EAAY,CAAU,EAEnG,IAAK,EAAW,MAAM,IAAI,eAAa,6BAA6B,EAEpE,IAAQ,IAAG,IAAG,KAAM,EAEpB,OAAO,EAAY,KAAK,IAAK,EAAQ,UAAW,CAAE,EAAG,KAAK,IAAK,EAAG,KAAK,IAAK,EAAG,OAAO,OAAO,CAAC,CAAC,CAAE,CAAE,CAAC,EAAE,WAE1G,CAIO,IAAM,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,UAAQ,SAAU,iBAAgB,UAAS,CAAC,EAEnE,GAAkB,EAAG,WAAU,oBAC1C,IAAI,EAAmB,CAAE,QAAS,UAAQ,UAAW,iBAAgB,UAAS,CAAC,EAEpE,GAA0B,EAAG,WAAU,oBAClD,IAAI,EAAmB,CAAE,QAAS,UAAQ,kBAAmB,iBAAgB,UAAS,CAAC,EAE5E,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,UAAQ,SAAU,iBAAgB,UAAS,CAAC,EAEnE,GAAgB,EAAG,WAAU,oBACxC,IAAI,EAAmB,CAAE,QAAS,UAAQ,QAAS,iBAAgB,UAAS,CAAC,EAElE,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,UAAQ,SAAU,iBAAgB,UAAS,CAAC,EAEnE,GAAa,EAAG,WAAU,oBACrC,IAAI,EAAmB,CAAE,QAAS,UAAQ,KAAM,iBAAgB,UAAS,CAAC,EAE/D,GAAe,EAAG,WAAU,oBACvC,IAAI,EAAmB,CAAE,QAAS,UAAQ,OAAQ,iBAAgB,UAAS,CAAC,EAEjE,GAAe,EAAG,WAAU,oBACvC,IAAI,EAAmB,CAAE,QAAS,UAAQ,OAAQ,iBAAgB,UAAS,CAAC,ECjJ9E,eAAsB,EAAmB,CAAC,EAAsB,EAAsC,CACpG,IAAM,EAAO,KAAa,kCAClB,QAAO,iBAAgB,yBAAwB,gBAAiB,KAAa,4BAC/E,EAAU,IAAI,EAAK,QAAQ,CAAS,EAGpC,EAAO,EAAiB,EAAuB,CAAc,EAAI,EAAe,EAAM,OAGpF,UAAS,UAAW,GAAc,MAAM,EAAQ,WAAW,CAAI,EAkDvE,MAhDe,CACb,UAAU,EAAG,CACX,OAAO,QAAQ,QAAQ,CAAO,QAE1B,aAAY,EAAG,CACnB,IAAQ,SAAU,KAAa,uBAE/B,OAAO,EAAM,UAAU,WAAW,WAAW,GAAW,GAG1D,kBAAkB,CAAC,EAAsB,CACvC,OAAO,QAAQ,OACb,IAAI,EAAa,qCAAsC,CAAE,OAAQ,qBAAsB,OAAQ,QAAS,CAAC,CAC3G,GAGF,iBAAiB,CACf,EACA,EACA,EACA,EACA,EACA,CAEA,OAAO,QAAQ,OACb,IAAI,EAAa,qCAAsC,CAAE,OAAQ,oBAAqB,OAAQ,QAAS,CAAC,CAC1G,QAGI,gBAAe,CAAC,EAA0B,CAC9C,IAAQ,YAAW,qBAAsB,KAAa,uCACtD,GAAI,CACF,IAAM,EAAiB,MAAM,EAAQ,gBAAgB,EAAY,OAAO,EAAG,CAAI,EAC/E,IAAK,EACH,MAAM,IAAI,MAAM,qBAAqB,EAGvC,IAAM,EAAY,IAAI,EAAU,CAAE,KAAM,EAAgB,QAAS,CAAE,CAAC,EAE9D,EAAoB,IAAI,EAAkB,CAAE,YAAW,aAAY,CAAC,EAE1E,MAAO,CAAC,EAAgB,CAAiB,EACzC,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,8BAA+B,CAAE,OAAM,CAAC,GAGrE,EC9DqB,IAAvB,0BACA,8BCDuB,IAAvB,0BACA,8BAEa,GAAe,CAAC,IAAwB,CAEnD,GAAI,EAAe,OAAS,GAC1B,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,WAAY,CAAC,EAEnF,GAAI,EAAe,KAAO,GACxB,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,wCAAyC,CAAC,EAEhH,GAAI,EAAe,GAAK,IAAM,EAAe,OAC3C,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,qCAAsC,CAAC,EAE7G,GAAI,EAAe,KAAO,EACxB,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,yCAA0C,CAAC,EAIjH,IAAM,EAAU,EAAe,GAC3B,EAAa,EAAe,MAAM,EAAG,EAAU,CAAC,EAGpD,GAAI,EAAW,SAAW,IAAM,EAAW,KAAO,EAChD,EAAa,EAAW,MAAM,EAAG,EAAE,EAC9B,QAAI,EAAW,SAAW,GAC/B,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,YAAa,CAAC,EAIpF,MAAO,EAAW,OAAS,GACzB,EAAW,QAAQ,CAAC,EAItB,GAAI,EAAe,EAAU,KAAO,EAClC,MAAM,IAAI,eAAa,kCAAmC,CACxD,OAAQ,+CACV,CAAC,EAGH,IAAM,EAAU,EAAe,EAAU,GAEzC,GAAI,EAAI,EAAU,EAAI,IAAY,EAAe,OAC/C,MAAM,IAAI,eAAa,kCAAmC,CACxD,OAAQ,8CACV,CAAC,EAGH,IAAI,EAAa,EAAe,MAAM,EAAU,EAAG,EAAe,MAAM,EAGxE,GAAI,EAAW,SAAW,IAAM,EAAW,KAAO,EAChD,EAAa,EAAW,MAAM,EAAG,EAAE,EAC9B,QAAI,EAAW,SAAW,GAC/B,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,YAAa,CAAC,EAIpF,MAAO,EAAW,OAAS,GACzB,EAAW,QAAQ,CAAC,EAGtB,GAAI,EAAW,SAAW,IAAM,EAAW,SAAW,GACpD,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,uBAAwB,CAAC,EAG/F,OAAO,UAAO,OAAO,OAAO,OAAO,CAAC,EAAY,CAAU,CAAC,CAAC,GD5DvD,MAAM,WAAwB,CAAsB,CACjD,OAAwB,KAEhC,eAEA,WAAW,CAAC,EAAsC,wBAAsB,KAAM,CAC5E,MAAM,EACN,KAAK,MAAQ,OACb,KAAK,eAAiB,KAGpB,OAAM,EAAG,CACX,OAAO,KAAK,OAGd,QAAU,SAAY,CACpB,MAAM,KAAK,gCAAgC,EAC3C,IAAQ,gBAAe,kBAAgD,MAAM,KAAK,oBAAoB,EAItG,OAFA,KAAK,OAAS,UAAO,OAAO,CAAa,EAElC,GAGT,oBAAsB,SAAY,CAChC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAwC,MAAM,KAAK,UAAU,oBACjE,KAAK,eACL,KAAK,KACP,EAIA,OAFA,KAAK,iBAAiB,EAAS,YAAa,EAAS,aAAa,EAE3D,GAGT,qBAAuB,SAAY,CACjC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAwC,MAAM,KAAK,UAAU,qBACjE,KAAK,eACL,KAAK,KACP,EAIA,OAFA,KAAK,iBAAiB,EAAS,YAAa,EAAS,aAAa,EAE3D,GAGT,gBAAkB,MAAO,EAAe,EAAW,MAAQ,CACzD,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAK,EAEtG,IAAK,KAAK,OAAQ,MAAM,IAAI,eAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,CACL,CACE,QAAS,CAAE,KAAM,6BAA8B,MAAO,KAAK,MAAO,EAClE,WACA,UAAW,GAAa,CAAS,CACnC,CACF,GAGF,KAAO,MAAO,IAAoB,CAChC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAO,EAExG,IAAK,KAAK,OAAQ,MAAM,IAAI,eAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,GAAa,CAAS,EAEjC,CEhFO,IALP,8BAUO,MAAM,EAA0C,CACrD,eACA,UAAiD,KACjD,cAAgB,MAEhB,WAAW,CAAC,EAA+C,CACzD,KAAK,eACH,OAAO,IAAmB,SACtB,EACA,yBAAuB,GAAkB,wBAAsB,IAAI,EAG3E,gCAAkC,SAAY,CAC5C,GAAI,KAAK,UAAW,OACpB,MAAM,KAAK,yBAAyB,GAGtC,yBAA2B,SAAY,CACrC,IAAM,EAAY,MAAM,EAAmB,EACrC,GAAW,KAAa,iCAAyB,QAEvD,KAAK,UAAY,IAAI,EAAQ,CAAS,GAGxC,WAAa,SAA6B,CACxC,IAAM,EAAW,MAAM,KAAK,oBAAoB,EAChD,IAAK,EAAU,MAAM,IAAI,eAAa,qCAAqC,EAC3E,OAAO,EAAS,SAGlB,oBAAsB,SAAY,CAChC,MAAM,KAAK,yBAAyB,EACpC,IAAM,EAAS,MAAM,KAAK,WAAW,WAAW,KAAK,cAAc,EAEnE,IAAK,EAAQ,MAAM,IAAI,eAAa,qCAAqC,EAEzE,MAAO,CAAE,QAAS,EAAO,QAAS,UAAW,EAAO,SAAU,GAGhE,qBAAuB,SAAY,CAEjC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,eAAgB,EAAI,GAG7D,gBAAkB,MAAO,IAAiE,CAGxF,GAFA,MAAM,KAAK,yBAAyB,GAE/B,KAAK,UACR,MAAM,IAAI,eAAa,+BAA+B,EAIxD,IAAM,EAAe,KAAK,UAAU,CAAW,EAE/C,GAAI,CACF,IAAM,EAAY,MAAM,KAAK,UAAU,gBACrC,KAAK,eACL,EACA,CAAC,CACH,EAEA,IAAK,EACH,MAAM,IAAI,eAAa,6BAA6B,EAItD,MAAO,IAAK,EAAa,UAAW,CAAC,CAAS,CAAE,EAChD,MAAO,EAAO,CACd,MAAM,IAAI,eAAa,8BAA+B,CAAE,OAAM,CAAC,GAGrE,CAEO,IAAM,GAAa,CAAC,IAAyC,IAAI,GAAoB,CAAc,EClFP,IAAnG,8BAEA,4BAMA,IAAM,GAAsB,EACxB,OAAM,aAAY,SAAQ,kBAC5B,IACG,CACH,IAAM,EAAS,EAAW,IAAI,CAAC,IAAS,CACtC,IAAM,EAAS,eAAY,QAAQ,EAAK,OAAS,EAAE,EAGnD,MAAO,CAFS,EAAO,iBAAiB,EAAO,MAAM,EAAG,EAAO,aAAa,CAAC,EAE5D,EAAK,MAAO,OAAwC,MAAsC,EAC5G,EAEK,EAAW,EAAK,KAAK,UAAU,WAAW,SAAS,EAAE,SAAS,KAAK,EAEnE,EAAa,EAAO,iBAAiB,EAAU,EAAI,EACnD,EAAkB,EAAO,4BAA4B,CAAU,EAAE,SAAS,KAAK,EAE/E,EAA+B,CACnC,YAAa,CAAC,QAAQ,EACtB,kBAAmB,EAAO,IAAI,IAAM,CAAc,EAClD,SACA,kBACA,OAAQ,GACR,yBAA0B,EAC5B,EAEA,OAAO,EAAO,yBAAyB,IAAK,KAAW,CAAQ,CAAC,GAG5D,EAAiB,EACrB,QACA,0BAII,CACJ,IAAI,EACA,EAAiB,KAErB,eAAe,CAAmC,CAAC,EAAc,GAAM,CACrE,GAAI,IAAgB,EAClB,IAAI,eAAa,iCAAkC,CACjD,QAAS;AAAA,EAA8B,KAAK,UAAU,CAAE,SAAQ,aAAY,CAAC,GAC/E,CAAC,EAGH,IAAc,MAAM,EAAmB,EAGzC,eAAe,CAAqB,EAAG,CACrC,EAAY,MAAM,EAAmB,EAGrC,EAAS,IAFW,KAAa,iCAAyB,QAElC,CAAE,SAAU,EAAO,WAAU,CAAC,EAGxD,MAAO,CAAC,IAAuD,CAC7D,IAAM,EACJ,OAAO,IAAwB,SAC3B,EACA,yBAAuB,CAA0C,EAEjE,EAAS,qBAAmB,CAAc,EAEhD,MAAO,CACL,QAAS,SAAY,CACnB,MAAM,EAAoC,EAAK,EAG/C,EAAS,IAFW,KAAa,iCAAyB,QAElC,CAAE,SAAU,EAAO,WAAU,CAAC,GAExD,WAAY,SAAY,CACtB,IAAQ,iBAAkB,KAAa,mCAEvC,MAAM,EAAoC,EAAK,EAE/C,IAAQ,eAAgB,GAAY,MAAM,EAAO,mBAAmB,EAAgB,CAAE,QAAO,CAAC,EAE9F,IAAK,EACH,MAAM,IAAI,eAAa,kCAAmC,CACxD,QAAS,cAAc,0CAA8C,GACvE,CAAC,EAGH,OAAO,IAAU,gBAAkB,IAAW,SAC1C,EAAc,CAAO,EAAE,QAAQ,0BAA2B,EAAE,EAC5D,GAEN,qBAAsB,MAAO,EAAO,YAAa,EAAc,WAAa,CAG1E,OAFA,MAAM,EAAoC,EAAK,EAExC,EAAO,cAAc,CAAE,OAAM,aAAY,CAAC,GAEnD,gBAAiB,MAAO,EAAY,IAA2B,CAG7D,OAFA,MAAM,EAAsB,EAErB,GAAoB,CAAE,SAAQ,iBAAgB,aAAY,MAAK,EAAG,CAAoB,EAEjG,IAIS,GAAgB,EAAe,CAAE,MAAO,SAAU,CAAC,EACnD,GAAiB,EAAe,CAAE,MAAO,UAAW,CAAC,EAErD,GAAoB,EAAe,CAC9C,qBAAsB,CAAE,YAAa,CAAC,KAAK,EAAG,OAAQ,GAAO,YAAa,EAAK,EAC/E,MAAO,cACT,CAAC,EAEY,GAAiB,EAAe,CAC3C,qBAAsB,CAAE,YAAa,CAAC,EAAG,OAAQ,GAAO,yBAA0B,EAAM,EACxF,MAAO,UACT,CAAC,EAEY,GAAa,EAAe,CACvC,qBAAsB,CAAE,YAAa,CAAC,EAAG,OAAQ,GAAO,yBAA0B,EAAM,EACxF,MAAO,MACT,CAAC,EAEY,GAAc,EAAe,CACxC,qBAAsB,CAAE,YAAa,CAAC,QAAS,SAAS,EAAG,OAAQ,GAAO,yBAA0B,EAAM,EAC1G,MAAO,OACT,CAAC,EClI8F,IAA/F,8BAEA,kCAIA,IAAM,GAAyB,WAE/B,SAAS,EAAsB,CAAC,EAA0B,CACxD,IAAM,EAA+B,CAAC,EACtC,QAAW,KAAO,EAChB,GAAI,EAAI,KAAS,MAAQ,EAAI,KAAS,OACpC,EAAQ,GAAO,EAAI,GAGvB,OAAO,EAGT,eAAe,EAAmB,CAAC,EAAsB,CACvD,IAAQ,QAAS,GAAQ,KAAa,gCACtC,OAAO,IAAI,EAAI,CAAS,EAG1B,SAAS,EAAwB,EAAG,WAAU,kBAA6D,CACzG,OAAO,EAAS,WAAW,CAAc,EAGpC,IAAM,GAAY,MAAO,IAAyC,CACvE,IAAM,EAAO,yBAAuB,GAAkB,wBAAsB,QAAM,OAAO,EACnF,EAAY,MAAM,EAAmB,EACrC,EAAc,MAAM,GAAoB,CAAS,GAE/C,UAAS,aAAc,MAAM,GAAyB,CAAE,eAAgB,EAAM,SAAU,CAAY,CAAC,EAE7G,eAAe,CAAI,CAAC,EAAoC,CACtD,IAAQ,UAAW,KAAa,qCAE1B,EAAkB,IADI,GAAuB,CAAW,EAG5D,MAAO,EAAY,OAAS,GAC5B,cAAe,EAAU,YAAY,CACvC,EAEM,EAA4B,UAAO,CAAe,EAClD,EAAe,MAAM,EAAY,gBAAgB,EAAM,CAAyB,EAChF,EAAU,UAAO,IAAK,EAAiB,aAAc,CAAa,CAAC,EAGzE,MAAO,CAAE,KAFI,EAAO,aAAa,CAAO,EAEzB,SAAQ,EAGzB,MAAO,CAAE,UAAS,MAAK,GbAlB,IAAM,EAAkB,OAC7B,QACA,oBAIiC,CACjC,IAAQ,SAAU,KAAa,sBAE/B,OAAO,EAAM,CAA6B,EACvC,WAAwC,EACxC,KAAK,QAAM,UAAW,IAAM,QAAQ,QAAQ,IAAI,GAAgB,CAAc,CAAuB,CAAC,EACtG,KAAK,QAAM,OAAQ,IAAM,QAAQ,QAAQ,IAAI,GAAa,CAAc,CAAuB,CAAC,EAChG,KAAK,QAAM,QAAS,IAAM,QAAQ,QAAQ,GAAc,CAAc,CAAuB,CAAC,EAC9F,KAAK,QAAM,YAAa,IAAM,QAAQ,QAAQ,GAAkB,CAAc,CAAuB,CAAC,EACtG,KAAK,QAAM,KAAM,IAAM,QAAQ,QAAQ,GAAW,CAAc,CAAuB,CAAC,EACxF,KAAK,QAAM,SAAU,IAAM,QAAQ,QAAQ,GAAe,CAAc,CAAuB,CAAC,EAChG,KAAK,QAAM,SAAU,IAAM,QAAQ,QAAQ,GAAe,CAAc,CAAuB,CAAC,EAChG,KAAK,QAAM,MAAO,IAAM,QAAQ,QAAQ,GAAY,CAAc,CAAuB,CAAC,EAC1F,KAAK,QAAM,OAAQ,IAAM,QAAQ,QAAQ,GAAU,CAAc,CAAuB,CAAC,EACzF,KAAK,QAAM,KAAM,IAAM,QAAQ,QAAQ,GAAW,CAAc,CAAuB,CAAC,EACxF,KAAK,QAAM,KAAM,SAAY,CAC5B,IAAM,EAAY,MAAM,EAAmB,EAC3C,OAAO,GAAoB,EAAW,CAAc,EACrD,EACA,KACC,QAAM,SACN,QAAM,OACN,QAAM,UACN,QAAM,kBACN,QAAM,SACN,QAAM,OACN,QAAM,SACN,QAAM,QACN,QAAM,KACN,SAAY,CACV,IAAQ,eAAgB,KAAa,kCAC/B,EAAS,CAAE,iBAAgB,SAAU,MAAM,EAAY,CAAiB,CAAE,EAEhF,OAAO,EAAM,CAAc,EACxB,KAAK,QAAM,kBAAmB,IAAM,GAAwB,CAAM,CAAuB,EACzF,KAAK,QAAM,UAAW,IAAM,GAAgB,CAAM,CAAuB,EACzE,KAAK,QAAM,SAAU,IAAM,GAAe,CAAM,CAAuB,EACvE,KAAK,QAAM,SAAU,IAAM,GAAe,CAAM,CAAuB,EACvE,KAAK,QAAM,QAAS,IAAM,GAAc,CAAM,CAAuB,EACrE,KAAK,QAAM,KAAM,IAAM,GAAW,CAAM,CAAuB,EAC/D,KAAK,QAAM,OAAQ,IAAM,GAAa,CAAM,CAAuB,EACnE,KAAK,QAAM,OAAQ,IAAM,GAAa,CAAM,CAAuB,EACnE,UAAU,IAAM,GAAe,CAAM,CAAuB,EAEnE,EACC,UAAU,IAAM,CACf,MAAM,IAAI,eAAa,6BAA8B,CAAE,QAAO,OAAQ,eAAa,MAAO,CAAC,EAC5F,GFzFE,IAAM,GAAe,eAAa,CACvC,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAa,CAAC,EAAiB,EAAsC,CAClF,IAAO,GAAS,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAE7E,IAAK,EAAO,MAAO,GAEnB,IAAM,EAAgB,MAAM,GAAiB,CAAE,QAAO,gBAAe,CAAC,EAItE,OAFA,EAAS,IAAK,EAAe,QAAO,WAAY,eAAa,MAAO,CAAC,EAE9D,IAEX,KAAM,gBACN,gBAAiB,CACf,QAAM,SACN,QAAM,OACN,QAAM,UACN,QAAM,KACN,QAAM,kBACN,QAAM,QACN,QAAM,YACN,QAAM,OACN,QAAM,KACN,QAAM,SACN,QAAM,SACN,QAAM,OACN,QAAM,SACN,QAAM,KACN,QAAM,SACN,QAAM,QACN,QAAM,OACN,QAAM,UACN,QAAM,KACN,QAAM,KACR,EACA,WAAY,eAAa,MAC3B,CAAC,EAEY,GAA0B,2BAAyB,EAAY,EAG5E,SAAS,EAAU,CAAC,EAAe,EAAmB,IAAK,CACzD,IAAK,GAAM,SAAS,IAAI,EAAG,OAAO,EAElC,IAAM,EAAmB,EAAK,SAAS,IAAI,IAAmB,EAAI,EAAK,MAAM,IAAI,IAAmB,EAAE,GAAK,EAE3G,OAAO,GAAkB,UAAU,EAAG,EAAiB,YAAY,GAAG,CAAC,EAGzE,SAAS,CAAoB,CAAC,EAAgB,CAG5C,GAAI,MAAM,QAAQ,CAAS,EAIzB,OAHA,EAAU,QAAQ,CAAC,EAAM,IAAU,CACjC,EAAU,GAAS,EAAqB,CAAI,EAC7C,EACM,EAIT,GAAI,OAAO,IAAc,SAAU,OAAO,EAC1C,IAAM,EAAe,CAAC,EAChB,EAAa,OAAO,KAAK,CAAS,EAAE,KAAK,EAE/C,QAAW,KAAO,EAChB,EAAQ,GAAO,EAAqB,EAAU,EAAI,EAGpD,OAAO,EAGT,SAAS,EAAoB,CAAC,EAAW,CACvC,OAAO,KAAK,UAAU,EAAqB,CAAI,CAAC,EAGlD,eAAe,EAAgB,EAAG,QAAO,kBAA0E,CACjH,OAAQ,QACD,QAAM,iBACN,QAAM,aACN,QAAM,UACN,QAAM,cACN,QAAM,cACN,QAAM,MAAO,CAChB,IAAQ,kBAAmB,KAAa,mCAClC,EAAU,MAAM,EAAe,CAAsB,EAErD,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAmBtE,MAAO,IAAK,EAAS,UAAS,SAjBb,MAAO,IAA8B,CACpD,IAAM,EAAU,EAAO,UAAY,MAAM,EAAQ,YAAY,GAAG,YAAU,SACpE,EAAO,CAAC,QAAM,OAAO,EAAE,SAAS,CAAK,EAAI,EAAO,KAAO,GAAW,EAAO,IAAI,GAE3E,OAAM,UAAW,MAAM,EAAQ,kBAAkB,IACpD,EACH,UACA,WAAY,GACZ,OACA,OAAQ,CACV,CAAC,EACK,EAAQ,MAAM,EAAO,gBAAgB,EAAM,CAAM,EAGvD,OAFW,MAAM,EAAQ,YAAY,CAAK,EAKL,CACzC,MAEK,QAAM,cACN,QAAM,eACN,QAAM,cACN,QAAM,cACN,QAAM,aACN,QAAM,uBACN,QAAM,UACN,QAAM,YACN,QAAM,OAAQ,CACjB,IAAQ,iBAAkB,KAAa,kCACjC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAGtE,MAAO,IAFS,MAAM,EAAc,EAAO,CAAE,QAAO,CAAC,EAEhC,SAAQ,CAC/B,MAEK,QAAM,OAAQ,CACjB,IAAQ,8BAA6B,kBAAiB,oBAAqB,KACzE,qCAEI,EAAU,MAAM,EAAiB,QAAM,MAAM,EAC7C,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EA6BtE,MAAO,IAAK,EAAS,UAAS,SA3Bb,OAAS,aAAY,YAAW,UAAkC,CACjF,IAAK,EAAY,MAAM,IAAI,eAAa,6BAA6B,EAErE,IAAM,EAAmB,CACvB,OAAQ,CACN,CACE,OAAQ,EAAW,aAAa,QAAQ,EACxC,MAAO,EAAgB,IAAI,EAAW,QAAQ,EAAE,YAAY,CAC9D,CACF,EACA,YAAa,EACb,UAAW,CACb,EAEM,EAAS,MAAM,YAAU,CAAK,EAC9B,EAAgB,MAAM,EAA4B,EAAQ,EAAQ,YAAY,GAE5E,mBAAoB,MAAM,EAAc,iBAC9C,EACA,CAAC,CAAE,QAAS,+BAAgC,MAAO,CAAiB,CAAC,EACrE,EACA,CACF,EAEA,OAAO,EAG8B,CACzC,MAEK,QAAM,UAAW,CACpB,IAAQ,YAAa,KAAa,8DAC1B,SAAU,KAAa,gDACzB,EAAkB,KAAa,iCAC/B,EAAe,EAAgB,cAAgB,EAAgB,SAAS,aACxE,EAAoB,EAAgB,mBAAqB,EAAgB,SAAS,mBAEtF,uBACA,qBACA,mBACA,gBACA,qBACA,aACA,qCACE,KAAa,qCACX,EAAU,MAAM,EAAiB,CAAK,EACtC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAEhE,EAAM,EAAmB,CAAK,GAC5B,OAAQ,GAAO,mBAAiB,KAAM,IAAgB,EAGxD,GAAoB,OACxB,OAAO,GACP,iBACG,MACiD,CACpD,IAAM,GAAU,MAAM,EAAQ,WAAW,CAAO,EAChD,IAAK,GAAS,MAAM,IAAI,eAAa,+BAA+B,EACpE,IAAK,GAAY,MAAM,IAAI,eAAa,6BAA6B,EACrE,IAAK,GAAO,MAAM,IAAI,eAAa,gCAAgC,EAEnE,IAAQ,iBAAe,SAAU,IAAmB,GAC9C,GAAY,IAAkB,GAAG,SAAS,EAE1C,GAAkB,EAAqB,CAAC,EAAc,CAAE,cAAY,OAAM,OAAQ,KAAY,EAAK,CAAC,CAAC,CAAC,EAGtG,GAAY,GAAqB,CACrC,eAAgB,IAAe,SAAS,EACxC,SAAU,UAAQ,UAClB,MACA,OACA,KAAM,GACN,UACF,CAAC,EAEK,EAAa,MAAM,GAAgB,GAAW,CAAQ,EAC5D,IAAK,EAAY,MAAM,IAAI,eAAa,6BAA6B,EAErE,IAAM,GAAS,EAAa,CAAE,KAAM,6BAA8B,QAAM,CAAC,EACnE,GAAO,GAAgB,IAAI,CAAiC,EAC5D,GAAY,MAAM,EAAmB,CAAE,QAAO,OAAM,OAAK,CAAC,EAE1D,GAAgB,EACpB,CAAC,CAAE,UAAQ,SAAU,OAAO,CAAQ,CAAE,CAAC,EACvC,EAAI,OACJ,OAAO,SAAS,EAAI,IAAK,EAAE,EAC3B,OACA,OACA,EAAS,2BACX,EAEM,GAAY,IAAa,IAAI,UAAY,EAAW,EAAW,GAAG,SAAS,EAAI,WAAW,KAAK,CAAC,CAAC,EAEjG,GAAQ,EAAM,YAAY,CAAE,iBAAe,aAAW,WAAY,CAAC,EAAS,CAAE,CAAC,EAC/E,GAAU,EAAM,OAAO,EAAK,EAAE,OAAO,EACrC,GAAS,MAAM,YAAU,QAAM,SAAS,EAExC,GAAc,MAAM,EAAqB,EAAM,GAC7C,oBAAoB,MAAM,GAAY,YAAY,EAAO,EAEjE,OAAO,IAMT,MAAO,IAAK,EAAS,UAAS,QAFd,CAAC,IAAmC,GAAkB,CAAM,EAErC,eAAa,SAHnC,CAAC,IAAkC,GAAkB,CAAM,CAGf,CAC/D,MAEK,QAAM,KAAM,CACf,IAAQ,kBAAmB,KAAa,mCAClC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAY,MAAM,EAAO,WAAW,EAG1C,MAAO,IAFS,MAAM,EAAe,CAAE,QAAO,CAAC,EAE1B,QAAS,CAAU,CAC1C,MAEK,QAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,qCACpC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,EAAO,QAGvB,MAAO,IAFS,MAAM,EAAiB,CAAE,QAAO,CAAC,EAE5B,SAAQ,CAC/B,MAEK,QAAM,KAAM,CACf,IAAQ,qBAAsB,KAAa,mCACrC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAGtE,MAAO,IAFS,MAAM,EAAkB,CAAE,QAAO,CAAC,EAE7B,SAAQ,CAC/B,SAGE,MAAM,IAAI,eAAa,oCAAqC,CAAE,OAAM,CAAC",
|
|
23
|
-
"debugId": "
|
|
22
|
+
"mappings": "4FAUO,IAVP,8BAcA,kCCdkD,IAAlD,8BASa,EAAmB,OAI9B,QACA,kBAII,CACJ,IAAK,EAAc,MAAO,GAE1B,OAAQ,QACD,QAAM,YACN,QAAM,UACT,OAAQ,EAAqC,QAAQ,OAGlD,QAAM,cACN,QAAM,uBACN,QAAM,eACN,QAAM,aACN,QAAM,cACN,QAAM,cACN,QAAM,UACN,QAAM,YACN,QAAM,OACT,OAAQ,EAAkC,WAAW,OAGlD,QAAM,aACN,QAAM,iBACN,QAAM,UACN,QAAM,cACN,QAAM,cACN,QAAM,MAAO,CAChB,IAAM,EAAS,EACf,MAAM,EAAO,QAAQ,EACrB,IAAM,EAAU,MAAM,EAAO,WAAW,EAExC,OAAO,IAAU,QAAM,YAAc,EAAQ,QAAQ,eAAgB,EAAE,EAAI,CAC7E,MAEK,QAAM,KACT,OAAO,MAAO,EAAiE,WAAW,OAGvF,QAAM,OACT,OAAQ,EAAuD,aAG5D,QAAM,KACT,OAAQ,EAAwD,WAAW,UAI3E,MAAM,IAAI,eAAa,6BAA8B,CAAE,QAAO,OAAQ,eAAa,MAAO,CAAC,ICjEN,IAA3F,8BCKO,IALP,8BCA+F,IAA/F,8BCC6B,IAA7B,+BCDO,IAAM,EAAM,GACN,EAAa,IAGnB,IAAM,EAAM,CACjB,mBAAoB,EACpB,YAAa,EACb,yBAA0B,EAC1B,eAAgB,CAClB,EAEa,EAAe,CAAE,IAAK,EAAM,KAAM,EAAM,KAAM,CAAK,EAEnD,EAAY,CAAE,cAAe,EAAM,uBAAwB,CAAK,EAEhE,EAAY,CAAE,KAAM,CAAI,EAExB,EAAa,CAAE,QAAS,KAAO,EAEtC,GAAyB,CAC7B,EAAG,eACH,EAAG,mBACH,EAAG,iCACH,EAAG,yBACH,EAAG,eACH,GAAI,UACJ,MAAO,kBACP,MAAO,eACP,MAAO,sBACP,MAAO,eACP,MAAO,0BACP,MAAO,kBACP,MAAO,2BACP,MAAO,uBACP,MAAO,iBACP,MAAO,gBACP,MAAO,4BACP,MAAO,+BACP,MAAO,gBACP,MAAO,oBACP,MAAO,YACP,MAAO,gBACT,EAEO,SAAS,CAAiB,CAAC,EAAoB,CACpD,GAAI,KAAc,GAAmB,OAAO,GAAkB,GAC9D,MAAO,wBAAwB,IAGjC,SAAS,EAAM,CAAC,EAAQ,CACtB,OAAO,OAAO,IAAM,UAAY,IAAM,OAAS,MAAM,QAAQ,CAAC,KAAO,aAAa,MAG7E,SAAS,CAAoB,CAAC,EAAe,CAClD,GAAI,EAAU,CACZ,GAAI,GAAO,CAAQ,EAAG,CACpB,GAAI,OAAO,OAAO,EAAU,YAAY,EACtC,MAAO,CAAE,cAAe,EAAkB,EAAS,UAAU,EAAG,YAAa,EAAS,UAAW,EAGnG,GAAI,OAAO,OAAO,EAAU,aAAa,GAAK,OAAO,OAAO,EAAU,eAAe,EACnF,OAAO,EAGX,MAAO,CAAE,cAAe,EAAS,SAAS,EAAG,YAAa,KAAO,EAGnE,MAAO,CAAE,cAAe,EAAS,SAAS,EAAG,YAAa,KAAO,EAG5D,SAAS,CAAU,CAAC,EAAgB,CACzC,OAAO,EAAU,KAvEA,GAuEU,EAAI,YAAa,EAAG,CAAC,EAAE,KAAK,CAAC,IAAkB,CACxE,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEtD,EAAW,EACf,GAAI,EAAS,QAAU,EACrB,GAAY,EAAS,IAAM,KAAO,EAAS,IAAM,KAAO,EAAS,IAAM,IAAM,EAAS,IAAM,GAG9F,MAAO,CACL,cAAe,EAAS,KAAO,EAC/B,cAAe,EAAkB,CAAU,EAC3C,MAAO,EAAS,GAChB,MAAO,EAAS,GAChB,MAAO,EAAS,GAChB,YAAa,EACb,UAAW,EAAS,SAAS,EAAE,EAE/B,UAAW,EAAS,KAAO,CAC7B,GACC,CAAoB,EC3FI,IAA7B,8BAGO,SAAS,EAAe,CAAC,EAAgB,CAC9C,GAAI,GAAQ,MAAQ,EAAK,OAAS,EAChC,MAAM,IAAI,eAAa,+BAAgC,CAAE,OAAQ,gBAAiB,CAAC,EAErF,GAAI,EAAK,OAAS,GAChB,MAAM,IAAI,eAAa,+BAAgC,CAAE,OAAQ,eAAgB,CAAC,EAEpF,IAAM,EAAM,OAAO,MAAM,EAAI,EAAI,EAAK,MAAM,EAC5C,EAAI,WAAW,EAAK,OAAQ,CAAC,EAC7B,QAAS,EAAI,EAAG,EAAI,EAAK,OAAQ,GAAK,EAAG,CACvC,IAAI,EAAI,EAAK,IAAM,EACnB,GAAI,EAAI,EAEN,GAAK,WAEP,EAAI,aAAa,EAAG,EAAI,EAAI,CAAC,EAE/B,OAAO,EAGF,SAAS,EAAe,CAAC,EAAU,EAAkB,EAAmB,EAAe,EAAS,EAAU,KAAM,CACrH,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,eAAgB,EAAU,EAAQ,EAAO,CAAC,EAAW,QAAS,MAAQ,KAAM,CAAC,EAC3F,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GACtD,EAAe,EAAkB,CAAU,EAE/C,GAAI,IAAe,OAAU,IAAe,MAC1C,EAAe,GAAG,OAAkB,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EAAE,SAAS,OAAO,IAG7F,IAAI,EAAiB,KACrB,GAAI,EAAS,OAAS,EACpB,EAAY,EAAS,MAAM,EAAG,EAAS,OAAS,CAAC,EAGnD,MAAO,CAAE,cAAe,EAAc,YAAa,EAAY,WAAU,GACxE,CAAoB,EAG3B,SAAS,EAAiB,CAAC,EAAmB,CAC5C,GAAI,EAAU,SAAW,GACvB,MAAM,IAAI,eAAa,+BAAgC,CACrD,OAAQ,mDACV,CAAC,EAEH,IAAM,EAAI,EAAU,MAAM,GAAI,EAAE,EAG1B,EAAI,OAAO,KAAK,CAAC,GAAK,EAAE,EAAE,OAAS,GAAK,EAAE,CAAC,EACjD,OAAO,OAAO,OAAO,CAAC,EAAG,EAAU,MAAM,EAAG,EAAE,CAAC,CAAC,EAG3C,SAAS,EAAW,CAAC,EAAU,EAAc,CAClD,OAAO,EAAI,UACR,KAAK,EAAK,EAAI,yBAA0B,EAAG,EAAG,EAAM,CAAC,EAAW,OAAO,CAAC,EACxE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GACpD,EAAK,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAE5C,MAAO,CACL,cAAe,GAAkB,CAAE,EACnC,cAAe,EAAkB,CAAU,EAC3C,KACA,YAAa,CACf,GACC,CAAoB,EAGpB,SAAS,EAAe,CAAC,EAAgB,CAC9C,IAAK,GAAQ,EAAK,SAAW,EAC3B,MAAM,IAAI,eAAa,+BAAgC,CAAE,OAAQ,iCAAkC,CAAC,EAGtG,IAAM,EAAM,OAAO,MAAM,EAAE,EAY3B,OAVA,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,WAAa,EAAK,GAAI,CAAC,EAEzC,EAAI,cAAc,EAAK,GAAI,EAAE,EAE7B,EAAI,cAAc,EAAK,GAAI,EAAE,EAEtB,EAGF,SAAS,EAAe,CAAC,EAAU,EAAkB,EAAkB,EAAe,EAAS,EAAU,KAAM,CACpH,IAAI,EAAc,EAAa,IAC/B,GAAI,IAAa,EACf,EAAc,EAAa,KAE7B,GAAI,IAAa,EACf,EAAc,EAAa,KAG7B,OAAO,GAAgB,EAAK,EAAa,EAAG,EAAO,CAAM,EAGpD,SAAS,EAAW,CAAC,EAAU,EAAc,CAClD,OAAO,EAAI,UAAU,KAAK,EAAK,EAAI,mBAAoB,EAAG,EAAG,EAAM,CAAC,EAAW,OAAO,CAAC,EAAE,KAAK,CAAC,IAAkB,CAC/G,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAG1D,MAAO,CACL,cAHmB,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAIpD,cAAe,EAAkB,CAAU,EAC3C,GAAI,oBACJ,YAAa,CACf,GACC,CAAoB,EF/ElB,MAAM,CAAa,CACxB,UACA,gBAEA,WAAW,CAAC,EAAgB,CAC1B,IAAK,EACH,MAAM,IAAI,gBAAa,qCAAqC,EAG9D,KAAK,UAAY,QAGZ,aAAY,CAAC,EAAa,CAC/B,GAAI,GAAO,MAAQ,EAAI,OAAS,GAAK,EAAI,OAAS,GAChD,MAAM,IAAI,gBAAa,+BAAgC,CAAE,OAAQ,aAAc,CAAC,EAElF,IAAM,EAAM,OAAO,MAAM,EAAI,EAAI,MAAM,EAGvC,OAFA,EAAI,WAAW,EAAI,OAAQ,CAAC,EAC5B,EAAI,MAAM,EAAK,CAAC,EACT,OAGH,cAAa,CAAC,EAAgB,CAGlC,GAFA,KAAK,gBAAkB,MAAM,EAAW,KAAK,SAAS,EAElD,KAAK,gBAAgB,cAAgB,EAAW,QAClD,MAAM,KAAK,gBAGb,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAgB,CAAI,MACxB,GACH,OAAO,GAAgB,CAAI,UAE3B,OAAO,OAAO,MAAM,CAAC,QAIrB,cAAa,CAAC,EAAgB,EAAgB,CAClD,IAAM,EAAiB,MAAM,KAAK,cAAc,CAAI,EAE9C,EAAS,CAAC,EAChB,EAAO,KAAK,CAAc,EAE1B,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAAY,CAClD,IAAI,EAAM,EAAI,EACd,GAAI,EAAI,EAAO,OACb,EAAM,EAAO,OAEf,EAAO,KAAK,EAAO,MAAM,EAAG,CAAG,CAAC,EAGlC,OAAO,OAGH,WAAU,EAAG,CACjB,GAAI,CAEF,OADA,KAAK,gBAAkB,MAAM,EAAW,KAAK,SAAS,EAC/C,KAAK,gBACZ,MAAO,EAAG,CACV,OAAO,EAAqB,CAAC,GAIjC,OAAO,EAAG,CACR,OAAO,KAAK,UAAU,KAAK,IAAM,EAAM,EAAG,CAAC,EAAE,KAAK,CAAC,IAAkB,CACnE,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEtD,EAAU,GACV,EAAa,GACb,EAAU,EACV,EAAa,EAEjB,GAAI,EAAS,KAAO,EAElB,MAAO,CAAE,cAAe,oCAAqC,YAAa,KAAO,EAGnF,IAAM,EAAa,EAAS,GAC5B,EAAU,EAAS,MAAM,EAAG,EAAI,CAAU,EAAE,SAAS,OAAO,EAC5D,IAAI,EAAM,EAAI,EACR,EAAgB,EAAS,GAC/B,GAAO,EACP,EAAa,EAAS,MAAM,EAAK,EAAM,CAAa,EAAE,SAAS,OAAO,EACtE,GAAO,EACP,IAAM,EAAc,EAAS,GAK7B,OAJA,GAAO,EACP,EAAU,EACV,EAAa,EAAS,GAEf,CACL,UACA,aACA,cAAe,EAAkB,CAAU,EAC3C,gBAAiB,EAAa,KAAO,EACrC,oBAAqB,EAAa,OAAS,EAC3C,eAAgB,EAAa,KAAO,EACpC,sBAAuB,EAAa,KAAO,EAC3C,UACA,aACA,YAAa,CACf,GACC,CAAoB,EAGzB,UAAU,EAAG,CACX,OAAO,KAAK,UACT,KAAK,IAAM,EAAM,EAAG,EAAG,OAAO,KAAK,CAAC,CAAC,EAAG,CAAC,EAAW,QAAS,KAAM,CAAC,EACpE,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAE1D,GAAI,IAAe,MACjB,MAAO,CAAE,cAAe,kDAAmD,YAAa,CAAW,EAGrG,IAAM,EAAW,EAAS,MAAM,EAAG,CAAC,EAAE,SAAS,KAAK,EAEhD,EAAM,EACJ,EAA0B,EAAS,GACzC,GAAO,EACP,IAAM,EAAY,EAAS,MAAM,EAAK,EAAM,CAAuB,EAAE,SAAS,EAC9E,GAAO,EAEP,IAAM,EAAW,EAAS,GAC1B,GAAO,EACP,IAAM,EAAO,EAAS,MAAM,EAAK,EAAM,CAAQ,EAAE,SAAS,KAAK,EAC/D,GAAO,EAEP,IAAM,EAAgB,EAAS,GAC/B,GAAO,EAEP,IAAI,EAAM,EAAS,MAAM,EAAK,EAAM,CAAa,EACjD,GAAI,EAAI,EAAgB,KAAO,EAC7B,EAAM,EAAS,MAAM,EAAK,EAAM,EAAgB,CAAC,EAEnD,IAAM,EAAa,EAAI,SAAS,EAEhC,MAAO,CACL,cAAe,EAAkB,CAAU,EAC3C,OACA,aACA,YAAa,EACb,YAEA,UACF,GACC,CAAoB,OAGrB,UAAS,CAAC,EAAgB,CAC9B,GAAI,CACF,IAAM,EAAiB,MAAM,KAAK,cAAc,CAAI,EAEpD,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAY,KAAM,CAAc,MACpC,GAAG,CACN,IAAM,EAAO,OAAO,OAAO,CAAC,EAAa,aAAa,MAAM,EAAG,CAAc,CAAC,EAC9E,OAAO,GAAY,KAAM,CAAI,CAC/B,SAEE,MAAO,CAAE,cAAe,+BAAgC,YAAa,KAAO,GAEhF,MAAO,EAAG,CACV,OAAO,EAAqB,CAAC,GAIjC,mBAAmB,CAAC,EAAgB,EAAa,EAAe,GAAO,CACrE,OAAO,KAAK,cAAc,CAAI,EAC3B,KAAK,CAAC,IAA2B,CAChC,IAAM,EAAO,OAAO,OAAO,CAAC,EAAa,aAAa,CAAG,EAAG,CAAc,CAAC,EAC3E,OAAO,KAAK,UACT,KACC,EACA,EAAI,mBACJ,EAAe,EAAU,uBAAyB,EAAU,cAC5D,EACA,EACA,CAAC,EAAW,OAAO,CACrB,EACC,KAAK,CAAC,IAAkB,CACvB,IAAM,EAAgB,EAAS,MAAM,EAAE,EACjC,EAAa,EAAc,GAAK,IAAM,EAAc,GAEpD,EAAe,OAAO,KAAK,EAAS,MAAM,EAAG,EAAE,CAAC,EAGtD,MAAO,CACL,eAHoB,OAAO,KAAK,EAAS,MAAM,GAAI,EAAE,CAAC,EAAE,SAAS,EAIjE,cAAe,EACf,cAAe,EAAkB,CAAU,EAC3C,YAAa,CACf,GACC,CAAoB,EAC1B,EACA,MAAM,CAAC,IAAQ,EAAqB,CAAG,CAAC,EAG7C,oBAAoB,CAAC,EAAgB,EAAa,CAChD,OAAO,KAAK,oBAAoB,EAAM,EAAK,EAAI,EAGjD,aAAa,CAAC,EAAkB,EAAkB,EAAe,EAAS,EAAU,KAAM,CACxF,OAAQ,KAAK,gBAAgB,WACtB,GACH,OAAO,GAAgB,KAAM,EAAU,EAAU,EAAO,CAAM,MAC3D,GACH,OAAO,GAAgB,KAAM,EAAU,EAAU,EAAO,CAAM,UAE9D,MAAO,CAAE,cAAe,+BAAgC,YAAa,KAAO,QAI5E,KAAI,CAAC,EAAgB,EAAiB,EAAS,EAAU,KAAM,CACnE,IAAM,EAAS,OAAO,KAAK,CAAO,EAC9B,EAAmB,CAAC,EACpB,EACJ,GAAI,CACF,EAAS,MAAM,KAAK,cAAc,EAAM,CAAM,EAC9C,EAAW,MAAM,KAAK,cAAc,EAAG,EAAO,OAAQ,EAAO,GAAc,CAAM,EACjF,MAAO,EAAO,CACd,EAAqB,CAAK,EAE5B,IAAI,EAAS,CAAE,cAAe,EAAS,cAAe,YAAa,EAAS,YAAa,UAAW,IAAK,EAEzG,QAAS,EAAI,EAAG,EAAI,EAAO,OAAQ,GAAK,EAEtC,GADA,EAAS,MAAM,KAAK,cAAc,EAAI,EAAG,EAAO,OAAQ,EAAO,GAAc,CAAM,EAC/E,EAAO,cAAgB,EAAW,QACpC,MAIJ,MAAO,CAAE,cAAe,EAAO,cAAe,YAAa,EAAO,YAAa,UAAW,EAAO,SAAU,EAE/G,CGpR6B,IAA7B,8BAEM,GAAkB,IACtB,WAAW,IAOP,GAAmB,SAAY,CACnC,IAAM,EAAe,GAAgB,EAErC,GAAI,OAAO,GAAc,aAAe,WAAY,MAAO,CAAC,EAC5D,IAAQ,qBAAsB,KAAa,6BAGrC,GADU,MAAM,GAAc,WAAW,GACf,OAAO,CAAC,IAAM,EAAE,WAAa,CAAiB,EAC9E,GAAI,EAAgB,OAAS,EAAG,OAAO,EAAgB,GAEvD,OAAO,GAAc,cAAc,CAAE,QAAS,CAAC,CAAE,SAAU,CAAkB,CAAC,CAAE,CAAC,GAGtE,EAAqB,SAAY,CAC5C,IAAM,EAAS,MAAM,GAAiB,EAEtC,IAAK,EACH,MAAM,IAAI,eAAa,gCAAgC,EAIzD,GADA,MAAM,EAAO,KAAK,EACd,EAAO,gBAAkB,KAAM,MAAM,EAAO,oBAAoB,CAAC,EAErE,GAAI,CACF,MAAM,EAAO,MAAM,EACnB,KAAM,EAIR,IAAM,EAAQ,EAAO,eAAe,GAAG,WAAW,KAChD,EAAG,gBACD,EAAW,KAAK,EAAG,oBAAqB,IAAmB,GAAG,CAClE,EAEA,IAAK,EAEH,MADA,MAAM,EAAO,MAAM,EACb,IAAI,eAAa,gCAAgC,EAGzD,GAAI,CACF,MAAM,EAAO,eAAe,EAAM,eAAe,EACjD,MAAO,EAAgB,CAGvB,MAFA,MAAM,EAAO,MAAM,EAEb,IAAI,eAAa,mCAAoC,CAAK,EAGlE,IAAM,GAAa,KAAa,0CAAkC,QAElE,IADoB,MAAM,EAAU,YAAY,EAC9B,MAAM,IAAI,eAAa,oCAAoC,EAE7E,IAAQ,sBAAuB,KAAa,4BAEtC,EAAY,IAAI,EAAU,EAAQ,EAAM,eAAe,EAEvD,EAAe,CAAC,IAAW,CAC/B,GAAI,IAAW,EAAE,OACf,GAAgB,GAAG,oBAAoB,aAAc,CAAY,EAEjE,EAAU,gBAAgB,IAAI,CAAoB,GAKtD,OAFA,GAAgB,GAAG,iBAAiB,aAAc,CAAY,EAEvD,GJtEF,MAAe,CAAsB,CAC1C,cAAgB,MAChB,eAA+C,wBAAsB,KACrE,UACA,UACA,MAA2B,OAE3B,gCAAkC,MAAO,EAAiB,KAAU,CAClE,IAAK,GAAkB,KAAK,WAAa,KAAK,UAAW,OAEzD,GAAI,CAGF,OAFA,KAAK,UAAY,IAAmB,KAAK,UAAY,MAAM,EAAmB,EAAI,KAAK,UAE/E,KAAK,WACN,OAAQ,CACX,KAAK,UAAY,IAAmB,KAAK,UAAY,IAAI,EAAa,KAAK,SAAS,EAAI,KAAK,UAE7F,KACF,KAEK,SAAU,CACb,IAAM,GAAa,KAAa,oCAA4B,QAC5D,KAAK,UAAY,IAAmB,KAAK,UAAY,IAAI,EAAU,KAAK,SAAS,EAAI,KAAK,SAC5F,EAGF,OAAO,KAAK,UACZ,MAAO,EAAgB,CACvB,MAAM,IAAI,eAAa,iCAAkC,CAAK,IAIlE,iBAAmB,CAAC,EAA4B,IAAqB,CACnE,OAAQ,QACD,kBAAgB,QACnB,YAEG,kBAAgB,aACnB,MAAM,IAAI,eAAa,8BAA+B,CAAE,QAAS,qBAAqB,GAAU,CAAC,OAE9F,kBAAgB,YACnB,MAAM,IAAI,eAAa,gCAAgC,UAGvD,OAIR,CD7CO,MAAM,WAAqB,CAAsB,CAC9C,OAAwB,KAEhC,eAEA,WAAW,CAAC,EAAsC,wBAAsB,KAAM,CAC5E,MAAM,EACN,KAAK,MAAQ,SACb,KAAK,eAAiB,yBAAuB,CAAc,EAG7D,QAAU,SAAY,CACpB,MAAM,KAAK,gCAAgC,EAAI,EAC/C,IAAQ,YAAW,WAAY,MAAM,KAAK,oBAAoB,EAI9D,OAFA,KAAK,OAAS,OAAO,KAAK,EAAW,KAAK,EAAE,SAAS,QAAQ,EAEtD,GAGT,oBAAsB,SAAY,CAKhC,OAJA,MAAM,KAAK,gCAAgC,EAAI,EAE9B,MAAM,KAAK,UAAU,WAAW,KAAK,eAAgB,KAAK,KAAK,GAKlF,gBAAkB,MAAO,EAAe,EAAW,MAAQ,CACzD,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAK,EAEtG,IAAK,KAAK,OAAQ,MAAM,IAAI,eAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,CAAC,CAAE,QAAS,CAAE,KAAM,6BAA8B,MAAO,KAAK,MAAO,EAAG,WAAU,WAAU,CAAC,GAGtG,UAAY,MAAO,EAAuB,IAA+B,CACvE,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAW,MAAM,KAAK,YAAY,EAGxC,GAFqB,EAAS,UAAU,CAAC,IAAY,EAAQ,UAAY,CAAa,IAEjE,GACnB,MAAM,IAAI,eAAa,kCAAmC,CAAE,QAAS,CAAc,CAAC,EAGtF,IAAM,EAAgB,KAAa,yBAC7B,EACJ,EAAc,0BAA4B,EAAc,SAAS,yBAC7D,EAAmB,EAAc,kBAAoB,EAAc,SAAS,iBAC5E,EAAiB,KAAa,0BAC9B,EAAqB,EAAe,oBAAsB,EAAe,SAAS,mBAElF,EAAU,EAAiB,CAAO,EAClC,EAAY,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAO,EAExE,KAAK,iBAAiB,EAAU,YAAa,EAAU,aAAa,EAEpE,IAAM,EAAgB,EAAmB,QAAQ,EAAU,SAAS,EAAE,cAAc,EAEpF,MAAO,CAAE,UAAW,EAAyB,EAAS,GAAG,OAAQ,CAAa,EAAG,OAAQ,CAAQ,GAGnG,YAAc,SAAY,CACxB,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAmB,MAAM,KAAK,oBAAoB,EACxD,MAAO,CACL,CAAE,QAAS,EAAiB,QAAS,KAAM,YAAa,OAAQ,OAAO,KAAK,EAAiB,UAAW,KAAK,CAAE,CACjH,EAEJ,CM5EO,IANP,8BAOA,qBAIA,MAAM,UAA2B,iBAAe,CAC9C,QAAmB,UAAQ,SAC3B,eAAiB,GACjB,UAAqD,KACrD,cAAgB,MAEhB,WAAW,EACT,WACA,iBAAiB,wBAAsB,GACvC,UAAU,UAAQ,UACyE,CAC3F,MAAM,CAAQ,EAEd,KAAK,QAAU,GAAW,UAAQ,SAClC,KAAK,eAAiB,OAAO,IAAmB,SAAW,EAAiB,yBAAuB,CAAc,EAEjH,OAAO,eAAe,KAAM,WAAY,CAAE,WAAY,GAAM,MAAO,GAAY,KAAM,SAAU,EAAM,CAAC,EAGxG,QAAU,CAAC,IACT,IAAI,EAAmB,CAAE,QAAS,KAAK,QAAS,eAAgB,KAAK,eAAgB,UAAS,CAAC,EAEjG,gCAAkC,SAAY,CAC5C,GAAI,KAAK,UAAW,OACpB,MAAM,KAAK,yBAAyB,GAGtC,yBAA2B,SAAY,CACrC,IAAM,EAAY,MAAM,EAAmB,EACrC,GAAe,KAAa,iCAAyB,QAE3D,KAAK,UAAY,IAAI,EAAY,CAAS,GAG5C,WAAa,SAAY,CACvB,IAAM,EAAW,MAAM,KAAK,oBAAoB,EAChD,IAAK,EAAU,MAAM,IAAI,eAAa,qCAAqC,EAC3E,OAAO,EAAS,SAGlB,oBAAsB,SAAY,CAEhC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,cAAc,GAGvD,qBAAuB,SAAY,CAEjC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,eAAgB,EAAI,GAG7D,YAAc,MAAO,IAAuB,CAC1C,IAAQ,aAAc,KAAa,kBACnC,MAAM,KAAK,yBAAyB,EAEpC,IAAM,EAAM,MAAM,KAAK,WAAW,oBAAoB,KAAK,eAAgB,CAAU,EAErF,IAAK,EAAK,MAAM,IAAI,eAAa,6BAA6B,EAI9D,OAFA,EAAI,EAAI,KAAK,EAAI,IACjB,EAAI,EAAI,KAAK,EAAI,IACV,EAAU,KAAK,CAAG,EAAE,YAG7B,gBAAkB,MAAO,IAAyC,CAChE,IAAK,KAAK,SAAU,MAAM,IAAI,eAAa,2BAA2B,EAEtE,IAAM,EAAc,MAAM,KAAK,gBAAgB,CAAE,EAEjD,OAAO,MAAM,KAAK,SAAS,qBAAqB,CAAW,GAG7D,aAAa,EAAoB,CAC/B,MAAM,IAAI,eAAa,qCAAsC,CAAE,OAAQ,eAAgB,CAAC,EAG1F,gBAAkB,MAAO,IAA2B,CAClD,IAAQ,eAAgB,KAAa,kBACrC,MAAM,KAAK,yBAAyB,EAEpC,IAAM,EAAmB,MAAM,KAAK,UAAU,oBAAoB,EAAG,MAAS,MAAM,KAAK,WAAW,CAAE,EAEhG,EAAS,CACb,QAAS,EAAG,SAAW,KAAK,QAC5B,KAAM,EAAG,KACT,SAAU,EAAG,YACT,EAAG,UAAY,CAAE,SAAU,EAAG,QAAS,MACtC,EAAG,UACN,EAAG,cAAgB,CAAE,aAAc,EAAG,aAAc,qBAAsB,EAAG,oBAAqB,EACpG,MAAO,EAAG,QAAU,OAAY,QAAQ,EAAG,OAAS,GAAoB,GAAG,SAAS,CAAC,EAAI,EACzF,GAAI,EAAG,IAAI,SAAS,EACpB,KAAM,EAAG,OAAS,OAAO,MAAM,EAAG,IAAI,EAAI,EAAG,KAAO,EAAG,aAAe,EAAI,EAC1E,MAAO,EAAG,KACZ,EAGM,EAAa,EAAY,KAAK,CAAM,EAAE,mBAAmB,MAAM,CAAC,GAE9D,iBAAkB,KAAa,gCAEjC,EAAa,MAAM,EAAc,mBAAmB,EAAY,CAAC,EAAG,CAAE,MAAO,GAAM,gBAAiB,EAAK,CAAC,EAE1G,EAAY,MAAM,KAAK,WAAW,gBAAgB,KAAK,eAAgB,EAAY,CAAU,EAEnG,IAAK,EAAW,MAAM,IAAI,eAAa,6BAA6B,EAEpE,IAAQ,IAAG,IAAG,KAAM,EAEpB,OAAO,EAAY,KAAK,IAAK,EAAQ,UAAW,CAAE,EAAG,KAAK,IAAK,EAAG,KAAK,IAAK,EAAG,OAAO,OAAO,CAAC,CAAC,CAAE,CAAE,CAAC,EAAE,WAE1G,CAIO,IAAM,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,UAAQ,SAAU,iBAAgB,UAAS,CAAC,EAEnE,GAAkB,EAAG,WAAU,oBAC1C,IAAI,EAAmB,CAAE,QAAS,UAAQ,UAAW,iBAAgB,UAAS,CAAC,EAEpE,GAA0B,EAAG,WAAU,oBAClD,IAAI,EAAmB,CAAE,QAAS,UAAQ,kBAAmB,iBAAgB,UAAS,CAAC,EAE5E,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,UAAQ,SAAU,iBAAgB,UAAS,CAAC,EAEnE,GAAgB,EAAG,WAAU,oBACxC,IAAI,EAAmB,CAAE,QAAS,UAAQ,QAAS,iBAAgB,UAAS,CAAC,EAElE,GAAiB,EAAG,WAAU,oBACzC,IAAI,EAAmB,CAAE,QAAS,UAAQ,SAAU,iBAAgB,UAAS,CAAC,EAEnE,GAAa,EAAG,WAAU,oBACrC,IAAI,EAAmB,CAAE,QAAS,UAAQ,KAAM,iBAAgB,UAAS,CAAC,EAE/D,GAAe,EAAG,WAAU,oBACvC,IAAI,EAAmB,CAAE,QAAS,UAAQ,OAAQ,iBAAgB,UAAS,CAAC,EAEjE,GAAe,EAAG,WAAU,oBACvC,IAAI,EAAmB,CAAE,QAAS,UAAQ,OAAQ,iBAAgB,UAAS,CAAC,ECjJ9E,eAAsB,EAAmB,CAAC,EAAsB,EAAsC,CACpG,IAAM,EAAO,KAAa,kCAClB,QAAO,iBAAgB,yBAAwB,gBAAiB,KAAa,4BAC/E,EAAU,IAAI,EAAK,QAAQ,CAAS,EAGpC,EAAO,EAAiB,EAAuB,CAAc,EAAI,EAAe,EAAM,OAGpF,UAAS,UAAW,GAAc,MAAM,EAAQ,WAAW,CAAI,EAkDvE,MAhDe,CACb,UAAU,EAAG,CACX,OAAO,QAAQ,QAAQ,CAAO,QAE1B,aAAY,EAAG,CACnB,IAAQ,SAAU,KAAa,uBAE/B,OAAO,EAAM,UAAU,WAAW,WAAW,GAAW,GAG1D,kBAAkB,CAAC,EAAsB,CACvC,OAAO,QAAQ,OACb,IAAI,EAAa,qCAAsC,CAAE,OAAQ,qBAAsB,OAAQ,QAAS,CAAC,CAC3G,GAGF,iBAAiB,CACf,EACA,EACA,EACA,EACA,EACA,CAEA,OAAO,QAAQ,OACb,IAAI,EAAa,qCAAsC,CAAE,OAAQ,oBAAqB,OAAQ,QAAS,CAAC,CAC1G,QAGI,gBAAe,CAAC,EAA0B,CAC9C,IAAQ,YAAW,qBAAsB,KAAa,uCACtD,GAAI,CACF,IAAM,EAAiB,MAAM,EAAQ,gBAAgB,EAAY,OAAO,EAAG,CAAI,EAC/E,IAAK,EACH,MAAM,IAAI,MAAM,qBAAqB,EAGvC,IAAM,EAAY,IAAI,EAAU,CAAE,KAAM,EAAgB,QAAS,CAAE,CAAC,EAE9D,EAAoB,IAAI,EAAkB,CAAE,YAAW,aAAY,CAAC,EAE1E,MAAO,CAAC,EAAgB,CAAiB,EACzC,MAAO,EAAO,CACd,MAAM,IAAI,EAAa,8BAA+B,CAAE,OAAM,CAAC,GAGrE,EC9DqB,IAAvB,0BACA,8BCDuB,IAAvB,0BACA,8BAEa,GAAe,CAAC,IAAwB,CAEnD,GAAI,EAAe,OAAS,GAC1B,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,WAAY,CAAC,EAEnF,GAAI,EAAe,KAAO,GACxB,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,wCAAyC,CAAC,EAEhH,GAAI,EAAe,GAAK,IAAM,EAAe,OAC3C,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,qCAAsC,CAAC,EAE7G,GAAI,EAAe,KAAO,EACxB,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,yCAA0C,CAAC,EAIjH,IAAM,EAAU,EAAe,GAC3B,EAAa,EAAe,MAAM,EAAG,EAAU,CAAC,EAGpD,GAAI,EAAW,SAAW,IAAM,EAAW,KAAO,EAChD,EAAa,EAAW,MAAM,EAAG,EAAE,EAC9B,QAAI,EAAW,SAAW,GAC/B,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,YAAa,CAAC,EAIpF,MAAO,EAAW,OAAS,GACzB,EAAW,QAAQ,CAAC,EAItB,GAAI,EAAe,EAAU,KAAO,EAClC,MAAM,IAAI,eAAa,kCAAmC,CACxD,OAAQ,+CACV,CAAC,EAGH,IAAM,EAAU,EAAe,EAAU,GAEzC,GAAI,EAAI,EAAU,EAAI,IAAY,EAAe,OAC/C,MAAM,IAAI,eAAa,kCAAmC,CACxD,OAAQ,8CACV,CAAC,EAGH,IAAI,EAAa,EAAe,MAAM,EAAU,EAAG,EAAe,MAAM,EAGxE,GAAI,EAAW,SAAW,IAAM,EAAW,KAAO,EAChD,EAAa,EAAW,MAAM,EAAG,EAAE,EAC9B,QAAI,EAAW,SAAW,GAC/B,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,YAAa,CAAC,EAIpF,MAAO,EAAW,OAAS,GACzB,EAAW,QAAQ,CAAC,EAGtB,GAAI,EAAW,SAAW,IAAM,EAAW,SAAW,GACpD,MAAM,IAAI,eAAa,kCAAmC,CAAE,OAAQ,uBAAwB,CAAC,EAG/F,OAAO,UAAO,OAAO,OAAO,OAAO,CAAC,EAAY,CAAU,CAAC,CAAC,GD5DvD,MAAM,WAAwB,CAAsB,CACjD,OAAwB,KAEhC,eAEA,WAAW,CAAC,EAAsC,wBAAsB,KAAM,CAC5E,MAAM,EACN,KAAK,MAAQ,OACb,KAAK,eAAiB,KAGpB,OAAM,EAAG,CACX,OAAO,KAAK,OAGd,QAAU,SAAY,CACpB,MAAM,KAAK,gCAAgC,EAC3C,IAAQ,gBAAe,kBAAgD,MAAM,KAAK,oBAAoB,EAItG,OAFA,KAAK,OAAS,UAAO,OAAO,CAAa,EAElC,GAGT,oBAAsB,SAAY,CAChC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAwC,MAAM,KAAK,UAAU,oBACjE,KAAK,eACL,KAAK,KACP,EAIA,OAFA,KAAK,iBAAiB,EAAS,YAAa,EAAS,aAAa,EAE3D,GAGT,qBAAuB,SAAY,CACjC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAM,EAAwC,MAAM,KAAK,UAAU,qBACjE,KAAK,eACL,KAAK,KACP,EAIA,OAFA,KAAK,iBAAiB,EAAS,YAAa,EAAS,aAAa,EAE3D,GAGT,gBAAkB,MAAO,EAAe,EAAW,MAAQ,CACzD,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAK,EAEtG,IAAK,KAAK,OAAQ,MAAM,IAAI,eAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,CACL,CACE,QAAS,CAAE,KAAM,6BAA8B,MAAO,KAAK,MAAO,EAClE,WACA,UAAW,GAAa,CAAS,CACnC,CACF,GAGF,KAAO,MAAO,IAAoB,CAChC,MAAM,KAAK,gCAAgC,EAAI,EAE/C,IAAQ,cAAa,gBAAe,aAAc,MAAM,KAAK,UAAU,KAAK,KAAK,eAAgB,CAAO,EAExG,IAAK,KAAK,OAAQ,MAAM,IAAI,eAAa,gCAAgC,EAIzE,OAFA,KAAK,iBAAiB,EAAa,CAAa,EAEzC,GAAa,CAAS,EAEjC,CEhFO,IALP,8BAUO,MAAM,EAA0C,CACrD,eACA,UAAiD,KACjD,cAAgB,MAEhB,WAAW,CAAC,EAA+C,CACzD,KAAK,eACH,OAAO,IAAmB,SACtB,EACA,yBAAuB,GAAkB,wBAAsB,IAAI,EAG3E,gCAAkC,SAAY,CAC5C,GAAI,KAAK,UAAW,OACpB,MAAM,KAAK,yBAAyB,GAGtC,yBAA2B,SAAY,CACrC,IAAM,EAAY,MAAM,EAAmB,EACrC,GAAW,KAAa,iCAAyB,QAEvD,KAAK,UAAY,IAAI,EAAQ,CAAS,GAGxC,WAAa,SAA6B,CACxC,IAAM,EAAW,MAAM,KAAK,oBAAoB,EAChD,IAAK,EAAU,MAAM,IAAI,eAAa,qCAAqC,EAC3E,OAAO,EAAS,SAGlB,oBAAsB,SAAY,CAChC,MAAM,KAAK,yBAAyB,EACpC,IAAM,EAAS,MAAM,KAAK,WAAW,WAAW,KAAK,cAAc,EAEnE,IAAK,EAAQ,MAAM,IAAI,eAAa,qCAAqC,EAEzE,MAAO,CAAE,QAAS,EAAO,QAAS,UAAW,EAAO,SAAU,GAGhE,qBAAuB,SAAY,CAEjC,OADA,MAAM,KAAK,yBAAyB,EAC7B,KAAK,WAAW,WAAW,KAAK,eAAgB,EAAI,GAG7D,gBAAkB,MAAO,IAAiE,CAGxF,GAFA,MAAM,KAAK,yBAAyB,GAE/B,KAAK,UACR,MAAM,IAAI,eAAa,+BAA+B,EAIxD,IAAM,EAAe,KAAK,UAAU,CAAW,EAE/C,GAAI,CACF,IAAM,EAAY,MAAM,KAAK,UAAU,gBACrC,KAAK,eACL,EACA,CAAC,CACH,EAEA,IAAK,EACH,MAAM,IAAI,eAAa,6BAA6B,EAItD,MAAO,IAAK,EAAa,UAAW,CAAC,CAAS,CAAE,EAChD,MAAO,EAAO,CACd,MAAM,IAAI,eAAa,8BAA+B,CAAE,OAAM,CAAC,GAGrE,CAEO,IAAM,GAAa,CAAC,IAAyC,IAAI,GAAoB,CAAc,EClFP,IAAnG,8BAEA,4BAMA,IAAM,GAAsB,EACxB,OAAM,aAAY,SAAQ,kBAC5B,IACG,CACH,IAAM,EAAS,EAAW,IAAI,CAAC,IAAS,CACtC,IAAM,EAAS,eAAY,QAAQ,EAAK,OAAS,EAAE,EAGnD,MAAO,CAFS,EAAO,iBAAiB,EAAO,MAAM,EAAG,EAAO,aAAa,CAAC,EAE5D,EAAK,MAAO,OAAwC,MAAsC,EAC5G,EAEK,EAAW,EAAK,KAAK,UAAU,WAAW,SAAS,EAAE,SAAS,KAAK,EAEnE,EAAa,EAAO,iBAAiB,EAAU,EAAI,EACnD,EAAkB,EAAO,4BAA4B,CAAU,EAAE,SAAS,KAAK,EAE/E,EAA+B,CACnC,YAAa,CAAC,QAAQ,EACtB,kBAAmB,EAAO,IAAI,IAAM,CAAc,EAClD,SACA,kBACA,OAAQ,GACR,yBAA0B,EAC5B,EAEA,OAAO,EAAO,yBAAyB,IAAK,KAAW,CAAQ,CAAC,GAG5D,EAAiB,EACrB,QACA,0BAII,CACJ,IAAI,EACA,EAAiB,KAErB,eAAe,CAAmC,CAAC,EAAc,GAAM,CACrE,GAAI,IAAgB,EAClB,IAAI,eAAa,iCAAkC,CACjD,QAAS;AAAA,EAA8B,KAAK,UAAU,CAAE,SAAQ,aAAY,CAAC,GAC/E,CAAC,EAGH,IAAc,MAAM,EAAmB,EAGzC,eAAe,CAAqB,EAAG,CACrC,EAAY,MAAM,EAAmB,EAGrC,EAAS,IAFW,KAAa,iCAAyB,QAElC,CAAE,SAAU,EAAO,WAAU,CAAC,EAGxD,MAAO,CAAC,IAAuD,CAC7D,IAAM,EACJ,OAAO,IAAwB,SAC3B,EACA,yBAAuB,CAA0C,EAEjE,EAAS,qBAAmB,CAAc,EAEhD,MAAO,CACL,QAAS,SAAY,CACnB,MAAM,EAAoC,EAAK,EAG/C,EAAS,IAFW,KAAa,iCAAyB,QAElC,CAAE,SAAU,EAAO,WAAU,CAAC,GAExD,WAAY,SAAY,CACtB,IAAQ,iBAAkB,KAAa,mCAEvC,MAAM,EAAoC,EAAK,EAE/C,IAAQ,eAAgB,GAAY,MAAM,EAAO,mBAAmB,EAAgB,CAAE,QAAO,CAAC,EAE9F,IAAK,EACH,MAAM,IAAI,eAAa,kCAAmC,CACxD,QAAS,cAAc,0CAA8C,GACvE,CAAC,EAGH,OAAO,IAAU,gBAAkB,IAAW,SAC1C,EAAc,CAAO,EAAE,QAAQ,0BAA2B,EAAE,EAC5D,GAEN,qBAAsB,MAAO,EAAO,YAAa,EAAc,WAAa,CAG1E,OAFA,MAAM,EAAoC,EAAK,EAExC,EAAO,cAAc,CAAE,OAAM,aAAY,CAAC,GAEnD,gBAAiB,MAAO,EAAY,IAA2B,CAG7D,OAFA,MAAM,EAAsB,EAErB,GAAoB,CAAE,SAAQ,iBAAgB,aAAY,MAAK,EAAG,CAAoB,EAEjG,IAIS,GAAgB,EAAe,CAAE,MAAO,SAAU,CAAC,EACnD,GAAiB,EAAe,CAAE,MAAO,UAAW,CAAC,EAErD,GAAoB,EAAe,CAC9C,qBAAsB,CAAE,YAAa,CAAC,KAAK,EAAG,OAAQ,GAAO,YAAa,EAAK,EAC/E,MAAO,cACT,CAAC,EAEY,GAAiB,EAAe,CAC3C,qBAAsB,CAAE,YAAa,CAAC,EAAG,OAAQ,GAAO,yBAA0B,EAAM,EACxF,MAAO,UACT,CAAC,EAEY,GAAa,EAAe,CACvC,qBAAsB,CAAE,YAAa,CAAC,EAAG,OAAQ,GAAO,yBAA0B,EAAM,EACxF,MAAO,MACT,CAAC,EAEY,GAAc,EAAe,CACxC,qBAAsB,CAAE,YAAa,CAAC,QAAS,SAAS,EAAG,OAAQ,GAAO,yBAA0B,EAAM,EAC1G,MAAO,OACT,CAAC,ECpIe,IAAhB,sCAEA,8BAEA,kCAIA,IAAM,GAAyB,WAE/B,SAAS,EAAsB,CAAC,EAA0B,CACxD,IAAM,EAA+B,CAAC,EACtC,QAAW,KAAO,EAChB,GAAI,EAAI,KAAS,MAAQ,EAAI,KAAS,OACpC,EAAQ,GAAO,EAAI,GAGvB,OAAO,EAGT,SAAS,EAAmB,CAAC,EAAsB,CACjD,OAAO,IAAI,WAAI,CAAS,EAGnB,IAAM,GAAY,MAAO,IAAyC,CACvE,IAAM,EAAO,yBAAuB,GAAkB,wBAAsB,QAAM,OAAO,EACnF,EAAY,MAAM,EAAmB,EACrC,EAAc,GAAoB,CAAS,GAEzC,UAAS,aAAc,MAAM,EAAY,WAAW,CAAI,EAEhE,eAAe,CAAI,CAAC,EAAoC,CACtD,IAAQ,UAAW,KAAa,qCAE1B,EAAkB,IADI,GAAuB,CAAW,EAG5D,MAAO,EAAY,OAAS,GAC5B,cAAe,EAAU,YAAY,CACvC,EAEM,EAA4B,UAAO,CAAe,EAClD,EAAe,MAAM,EAAY,gBAAgB,EAAM,CAAyB,EAChF,EAAU,UAAO,IAAK,EAAiB,aAAc,CAAa,CAAC,EAGzE,MAAO,CAAE,KAFI,EAAO,aAAa,CAAO,EAEzB,SAAQ,EAGzB,MAAO,CAAE,UAAS,MAAK,GbKlB,IAAM,EAAkB,OAC7B,QACA,oBAIiC,CACjC,IAAQ,SAAU,KAAa,sBAE/B,OAAO,EAAM,CAA6B,EACvC,WAAwC,EACxC,KAAK,QAAM,UAAW,IAAM,QAAQ,QAAQ,IAAI,GAAgB,CAAc,CAAuB,CAAC,EACtG,KAAK,QAAM,OAAQ,IAAM,QAAQ,QAAQ,IAAI,GAAa,CAAc,CAAuB,CAAC,EAChG,KAAK,QAAM,QAAS,IAAM,QAAQ,QAAQ,GAAc,CAAc,CAAuB,CAAC,EAC9F,KAAK,QAAM,YAAa,IAAM,QAAQ,QAAQ,GAAkB,CAAc,CAAuB,CAAC,EACtG,KAAK,QAAM,KAAM,IAAM,QAAQ,QAAQ,GAAW,CAAc,CAAuB,CAAC,EACxF,KAAK,QAAM,SAAU,IAAM,QAAQ,QAAQ,GAAe,CAAc,CAAuB,CAAC,EAChG,KAAK,QAAM,SAAU,IAAM,QAAQ,QAAQ,GAAe,CAAc,CAAuB,CAAC,EAChG,KAAK,QAAM,MAAO,IAAM,QAAQ,QAAQ,GAAY,CAAc,CAAuB,CAAC,EAC1F,KAAK,QAAM,OAAQ,IAAM,QAAQ,QAAQ,GAAU,CAAc,CAAuB,CAAC,EACzF,KAAK,QAAM,KAAM,IAAM,QAAQ,QAAQ,GAAW,CAAc,CAAuB,CAAC,EACxF,KAAK,QAAM,KAAM,SAAY,CAC5B,IAAM,EAAY,MAAM,EAAmB,EAC3C,OAAO,GAAoB,EAAW,CAAc,EACrD,EACA,KACC,QAAM,SACN,QAAM,OACN,QAAM,UACN,QAAM,kBACN,QAAM,SACN,QAAM,OACN,QAAM,SACN,QAAM,QACN,QAAM,KACN,SAAY,CACV,IAAQ,eAAgB,KAAa,kCAC/B,EAAS,CAAE,iBAAgB,SAAU,MAAM,EAAY,CAAiB,CAAE,EAEhF,OAAO,EAAM,CAAc,EACxB,KAAK,QAAM,kBAAmB,IAAM,GAAwB,CAAM,CAAuB,EACzF,KAAK,QAAM,UAAW,IAAM,GAAgB,CAAM,CAAuB,EACzE,KAAK,QAAM,SAAU,IAAM,GAAe,CAAM,CAAuB,EACvE,KAAK,QAAM,SAAU,IAAM,GAAe,CAAM,CAAuB,EACvE,KAAK,QAAM,QAAS,IAAM,GAAc,CAAM,CAAuB,EACrE,KAAK,QAAM,KAAM,IAAM,GAAW,CAAM,CAAuB,EAC/D,KAAK,QAAM,OAAQ,IAAM,GAAa,CAAM,CAAuB,EACnE,KAAK,QAAM,OAAQ,IAAM,GAAa,CAAM,CAAuB,EACnE,UAAU,IAAM,GAAe,CAAM,CAAuB,EAEnE,EACC,UAAU,IAAM,CACf,MAAM,IAAI,eAAa,6BAA8B,CAAE,QAAO,OAAQ,eAAa,MAAO,CAAC,EAC5F,GFzFE,IAAM,GAAe,eAAa,CACvC,QAAS,EAAG,WAAU,kBAAiB,gBACrC,eAAe,CAAa,CAAC,EAAiB,EAAsC,CAClF,IAAO,GAAS,wBAAsB,CAAE,SAAQ,kBAAiB,YAAW,CAAC,EAE7E,IAAK,EAAO,MAAO,GAEnB,IAAM,EAAgB,MAAM,GAAiB,CAAE,QAAO,gBAAe,CAAC,EAItE,OAFA,EAAS,IAAK,EAAe,QAAO,WAAY,eAAa,MAAO,CAAC,EAE9D,IAEX,KAAM,gBACN,gBAAiB,CACf,QAAM,SACN,QAAM,OACN,QAAM,UACN,QAAM,KACN,QAAM,kBACN,QAAM,QACN,QAAM,YACN,QAAM,OACN,QAAM,KACN,QAAM,SACN,QAAM,SACN,QAAM,OACN,QAAM,SACN,QAAM,KACN,QAAM,SACN,QAAM,QACN,QAAM,OACN,QAAM,UACN,QAAM,KACN,QAAM,KACR,EACA,WAAY,eAAa,MAC3B,CAAC,EAEY,GAA0B,2BAAyB,EAAY,EAG5E,SAAS,EAAU,CAAC,EAAe,EAAmB,IAAK,CACzD,IAAK,GAAM,SAAS,IAAI,EAAG,OAAO,EAElC,IAAM,EAAmB,EAAK,SAAS,IAAI,IAAmB,EAAI,EAAK,MAAM,IAAI,IAAmB,EAAE,GAAK,EAE3G,OAAO,GAAkB,UAAU,EAAG,EAAiB,YAAY,GAAG,CAAC,EAGzE,SAAS,CAAoB,CAAC,EAAgB,CAG5C,GAAI,MAAM,QAAQ,CAAS,EAIzB,OAHA,EAAU,QAAQ,CAAC,EAAM,IAAU,CACjC,EAAU,GAAS,EAAqB,CAAI,EAC7C,EACM,EAIT,GAAI,OAAO,IAAc,SAAU,OAAO,EAC1C,IAAM,EAAe,CAAC,EAChB,EAAa,OAAO,KAAK,CAAS,EAAE,KAAK,EAE/C,QAAW,KAAO,EAChB,EAAQ,GAAO,EAAqB,EAAU,EAAI,EAGpD,OAAO,EAGT,SAAS,EAAoB,CAAC,EAAW,CACvC,OAAO,KAAK,UAAU,EAAqB,CAAI,CAAC,EAGlD,eAAe,EAAgB,EAAG,QAAO,kBAA0E,CACjH,OAAQ,QACD,QAAM,iBACN,QAAM,aACN,QAAM,UACN,QAAM,cACN,QAAM,cACN,QAAM,MAAO,CAChB,IAAQ,kBAAmB,KAAa,mCAClC,EAAU,MAAM,EAAe,CAAsB,EAErD,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAmBtE,MAAO,IAAK,EAAS,UAAS,SAjBb,MAAO,IAA8B,CACpD,IAAM,EAAU,EAAO,UAAY,MAAM,EAAQ,YAAY,GAAG,YAAU,SACpE,EAAO,CAAC,QAAM,OAAO,EAAE,SAAS,CAAK,EAAI,EAAO,KAAO,GAAW,EAAO,IAAI,GAE3E,OAAM,UAAW,MAAM,EAAQ,kBAAkB,IACpD,EACH,UACA,WAAY,GACZ,OACA,OAAQ,CACV,CAAC,EACK,EAAQ,MAAM,EAAO,gBAAgB,EAAM,CAAM,EAGvD,OAFW,MAAM,EAAQ,YAAY,CAAK,EAKL,CACzC,MAEK,QAAM,cACN,QAAM,eACN,QAAM,cACN,QAAM,cACN,QAAM,aACN,QAAM,uBACN,QAAM,UACN,QAAM,YACN,QAAM,OAAQ,CACjB,IAAQ,iBAAkB,KAAa,kCACjC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAGtE,MAAO,IAFS,MAAM,EAAc,EAAO,CAAE,QAAO,CAAC,EAEhC,SAAQ,CAC/B,MAEK,QAAM,OAAQ,CACjB,IAAQ,8BAA6B,kBAAiB,oBAAqB,KACzE,qCAEI,EAAU,MAAM,EAAiB,QAAM,MAAM,EAC7C,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EA6BtE,MAAO,IAAK,EAAS,UAAS,SA3Bb,OAAS,aAAY,YAAW,UAAkC,CACjF,IAAK,EAAY,MAAM,IAAI,eAAa,6BAA6B,EAErE,IAAM,EAAmB,CACvB,OAAQ,CACN,CACE,OAAQ,EAAW,aAAa,QAAQ,EACxC,MAAO,EAAgB,IAAI,EAAW,QAAQ,EAAE,YAAY,CAC9D,CACF,EACA,YAAa,EACb,UAAW,CACb,EAEM,EAAS,MAAM,YAAU,CAAK,EAC9B,EAAgB,MAAM,EAA4B,EAAQ,EAAQ,YAAY,GAE5E,mBAAoB,MAAM,EAAc,iBAC9C,EACA,CAAC,CAAE,QAAS,+BAAgC,MAAO,CAAiB,CAAC,EACrE,EACA,CACF,EAEA,OAAO,EAG8B,CACzC,MAEK,QAAM,UAAW,CACpB,IAAQ,YAAa,KAAa,8DAC1B,SAAU,KAAa,gDACzB,EAAkB,KAAa,iCAC/B,EAAe,EAAgB,cAAgB,EAAgB,SAAS,aACxE,EAAoB,EAAgB,mBAAqB,EAAgB,SAAS,mBAEtF,uBACA,qBACA,mBACA,gBACA,qBACA,aACA,qCACE,KAAa,qCACX,EAAU,MAAM,EAAiB,CAAK,EACtC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAEhE,EAAM,EAAmB,CAAK,GAC5B,OAAQ,GAAO,mBAAiB,KAAM,IAAgB,EAGxD,GAAoB,OACxB,OAAO,GACP,iBACG,MACiD,CACpD,IAAM,GAAU,MAAM,EAAQ,WAAW,CAAO,EAChD,IAAK,GAAS,MAAM,IAAI,eAAa,+BAA+B,EACpE,IAAK,GAAY,MAAM,IAAI,eAAa,6BAA6B,EACrE,IAAK,GAAO,MAAM,IAAI,eAAa,gCAAgC,EAEnE,IAAQ,iBAAe,SAAU,IAAmB,GAC9C,GAAY,IAAkB,GAAG,SAAS,EAE1C,GAAkB,EAAqB,CAAC,EAAc,CAAE,cAAY,OAAM,OAAQ,KAAY,EAAK,CAAC,CAAC,CAAC,EAGtG,GAAY,GAAqB,CACrC,eAAgB,IAAe,SAAS,EACxC,SAAU,UAAQ,UAClB,MACA,OACA,KAAM,GACN,UACF,CAAC,EAEK,EAAa,MAAM,GAAgB,GAAW,CAAQ,EAC5D,IAAK,EAAY,MAAM,IAAI,eAAa,6BAA6B,EAErE,IAAM,GAAS,EAAa,CAAE,KAAM,6BAA8B,QAAM,CAAC,EACnE,GAAO,GAAgB,IAAI,CAAiC,EAC5D,GAAY,MAAM,EAAmB,CAAE,QAAO,OAAM,OAAK,CAAC,EAE1D,GAAgB,EACpB,CAAC,CAAE,UAAQ,SAAU,OAAO,CAAQ,CAAE,CAAC,EACvC,EAAI,OACJ,OAAO,SAAS,EAAI,IAAK,EAAE,EAC3B,OACA,OACA,EAAS,2BACX,EAEM,GAAY,IAAa,IAAI,UAAY,EAAW,EAAW,GAAG,SAAS,EAAI,WAAW,KAAK,CAAC,CAAC,EAEjG,GAAQ,EAAM,YAAY,CAAE,iBAAe,aAAW,WAAY,CAAC,EAAS,CAAE,CAAC,EAC/E,GAAU,EAAM,OAAO,EAAK,EAAE,OAAO,EACrC,GAAS,MAAM,YAAU,QAAM,SAAS,EAExC,GAAc,MAAM,EAAqB,EAAM,GAC7C,oBAAoB,MAAM,GAAY,YAAY,EAAO,EAEjE,OAAO,IAMT,MAAO,IAAK,EAAS,UAAS,QAFd,CAAC,IAAmC,GAAkB,CAAM,EAErC,eAAa,SAHnC,CAAC,IAAkC,GAAkB,CAAM,CAGf,CAC/D,MAEK,QAAM,KAAM,CACf,IAAQ,kBAAmB,KAAa,mCAClC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAY,MAAM,EAAO,WAAW,EAG1C,MAAO,IAFS,MAAM,EAAe,CAAE,QAAO,CAAC,EAE1B,QAAS,CAAU,CAC1C,MAEK,QAAM,OAAQ,CACjB,IAAQ,oBAAqB,KAAa,qCACpC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,EAAO,QAGvB,MAAO,IAFS,MAAM,EAAiB,CAAE,QAAO,CAAC,EAE5B,SAAQ,CAC/B,MAEK,QAAM,KAAM,CACf,IAAQ,qBAAsB,KAAa,mCACrC,EAAS,MAAM,EAAgB,CAAE,QAAO,gBAAe,CAAC,EACxD,EAAU,MAAM,EAAiB,CAAE,QAAO,aAAc,CAAO,CAAC,EAGtE,MAAO,IAFS,MAAM,EAAkB,CAAE,QAAO,CAAC,EAE7B,SAAQ,CAC/B,SAGE,MAAM,IAAI,eAAa,oCAAqC,CAAE,OAAM,CAAC",
|
|
23
|
+
"debugId": "2C39CCD439D809FD64756E2164756E21",
|
|
24
24
|
"names": []
|
|
25
25
|
}
|
package/dist/ledger/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{c as B,d as F}from"../chunk-38ztynv0.js";import{Chain as R,ChainId as P0,FeeOption as K0,filterSupportedChains as I0,getRPCUrl as bL,SwapKitError as V,WalletOption as xL}from"@swapkit/helpers";import{createWallet as E0,getWalletSupportedChains as V0}from"@swapkit/wallet-core";import{Chain as Z,SwapKitError as T0,WalletOption as y0}from"@swapkit/helpers";var g=async({chain:L,ledgerClient:m})=>{if(!m)return"";switch(L){case Z.Cosmos:case Z.THORChain:return m.connect();case Z.Ethereum:case Z.BinanceSmartChain:case Z.Avalanche:case Z.Polygon:case Z.Arbitrum:case Z.Optimism:case Z.Base:case Z.Aurora:case Z.Gnosis:return m.getAddress();case Z.Bitcoin:case Z.BitcoinCash:case Z.Dash:case Z.Dogecoin:case Z.Litecoin:case Z.Zcash:{let _=m;await _.connect();let y=await _.getAddress();return L===Z.BitcoinCash?y.replace("bitcoincash:",""):y}case Z.Near:return await m.getAddress();case Z.Ripple:return m.address;case Z.Tron:return m.getAddress();default:throw new T0("wallet_chain_not_supported",{chain:L,wallet:y0.LEDGER})}};import{Chain as l,SwapKitError as g0,WalletOption as S0}from"@swapkit/helpers";import{derivationPathToString as C0,NetworkDerivationPath as X0,SwapKitError as WL}from"@swapkit/helpers";import{LedgerErrorCode as r,NetworkDerivationPath as R0,SwapKitError as LL}from"@swapkit/helpers";import{SwapKitError as ZL}from"@swapkit/helpers";var K=85,n=250;var S={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},v={ADD:1,INIT:0,LAST:2},p={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},I={JSON:0},D={NoError:36864},CL={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",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",36864:"No errors",36865:"Device is busy"};function H(L){if(L in CL)return CL[L];return`Unknown Status Code: ${L}`}function O0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function N(L){if(L){if(O0(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:H(L.statusCode),return_code:L.statusCode};if(Object.hasOwn(L,"return_code")&&Object.hasOwn(L,"error_message"))return L}return{error_message:L.toString(),return_code:65535}}return{error_message:L.toString(),return_code:65535}}function a(L){return L.send(85,S.GET_VERSION,0,0).then((m)=>{let _=m.slice(-2),y=_[0]*256+_[1],T=0;if(m.length>=9)T=(m[5]<<24)+(m[6]<<16)+(m[7]<<8)+(m[8]<<0);return{device_locked:m[4]===1,error_message:H(y),major:m[1],minor:m[2],patch:m[3],return_code:y,target_id:T.toString(16),test_mode:m[0]!==0}},N)}import{SwapKitError as u}from"@swapkit/helpers";function XL(L){if(L==null||L.length<3)throw new u("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new u("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 y=L[_]||0;if(_<3)y|=2147483648;m.writeInt32LE(y,1+_*4)}return m}function s(L,m,_,y,T=I.JSON){return L.transport.send(K,S.SIGN_SECP256K1,m,T,y,[D.NoError,27012,27264]).then((O)=>{let G=O.slice(-2),w=G[0]*256+G[1],C=H(w);if(w===27264||w===27012)C=`${C} : ${O.slice(0,O.length-2).toString("ascii")}`;let X=null;if(O.length>2)X=O.slice(0,O.length-2);return{error_message:C,return_code:w,signature:X}},N)}function w0(L){if(L.length!==65)throw new u("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)])}function BL(L,m){return L.transport.send(K,S.INS_PUBLIC_KEY_SECP256K1,0,0,m,[D.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1],O=Buffer.from(_.slice(0,65));return{compressed_pk:w0(O),error_message:H(T),pk:O,return_code:T}},N)}function FL(L){if(!L||L.length!==5)throw new u("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 fL(L,m,_,y,T=I.JSON){let O=v.ADD;if(m===1)O=v.INIT;if(m===_)O=v.LAST;return s(L,O,0,y,T)}function lL(L,m){return L.transport.send(K,S.GET_ADDR_SECP256K1,0,0,m,[D.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1];return{compressed_pk:Buffer.from(_.slice(0,33)),error_message:H(T),pk:"OBSOLETE PROPERTY",return_code:T}},N)}class k{transport;versionResponse;constructor(L){if(!L)throw new ZL("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new ZL("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 a(this.transport),this.versionResponse.return_code!==D.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return XL(L);case 2:return FL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,m){let _=await this.serializePath(L),y=[];y.push(_);for(let T=0;T<m.length;T+=n){let O=T+n;if(T>m.length)O=m.length;y.push(m.slice(T,O))}return y}async getVersion(){try{return this.versionResponse=await a(this.transport),this.versionResponse}catch(L){return N(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1],y="",T="",O=0,G=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let w=L[1];y=L.slice(2,2+w).toString("ascii");let C=2+w,X=L[C];C+=1,T=L.slice(C,C+X).toString("ascii"),C+=X;let f=L[C];return C+=1,O=f,G=L[C],{appName:y,appVersion:T,error_message:H(_),flag_onboarded:(G&4)!==0,flag_pin_validated:(G&128)!==0,flag_recovery:(G&1)!==0,flag_signed_mcu_code:(G&2)!==0,flagLen:O,flagsValue:G,return_code:_}},N)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[D.NoError,28160]).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1];if(_===28160)return{error_message:"This command is only available in the Dashboard",return_code:_};let y=L.slice(0,4).toString("hex"),T=4,O=L[T];T+=1;let G=L.slice(T,T+O).toString();T+=O;let w=L[T];T+=1;let C=L.slice(T,T+w).toString("hex");T+=w;let X=L[T];T+=1;let f=L.slice(T,T+X);if(f[X-1]===0)f=L.slice(T,T+X-1);let J=f.toString();return{error_message:H(_),flag:C,mcuVersion:J,return_code:_,seVersion:G,targetId:y}},N)}async publicKey(L){try{let m=await this.serializePath(L);switch(this.versionResponse.major){case 1:return BL(this,m);case 2:{let _=Buffer.concat([k.serializeHRP("thor"),m]);return lL(this,_)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(m){return N(m)}}getAddressAndPubKey(L,m,_=!1){return this.serializePath(L).then((y)=>{let T=Buffer.concat([k.serializeHRP(m),y]);return this.transport.send(K,S.GET_ADDR_SECP256K1,_?p.SHOW_ADDRESS_IN_DEVICE:p.ONLY_RETRIEVE,0,T,[D.NoError]).then((O)=>{let G=O.slice(-2),w=G[0]*256+G[1],C=Buffer.from(O.slice(0,33));return{bech32_address:Buffer.from(O.slice(33,-2)).toString(),compressed_pk:C,error_message:H(w),return_code:w}},N)}).catch((y)=>N(y))}showAddressAndPubKey(L,m){return this.getAddressAndPubKey(L,m,!0)}signSendChunk(L,m,_,y=I.JSON){switch(this.versionResponse.major){case 1:return s(this,L,m,_,y);case 2:return fL(this,L,m,_,y);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,m,_=I.JSON){let y=Buffer.from(m),T=[],O;try{T=await this.signGetChunks(L,y),O=await this.signSendChunk(1,T.length,T[0],_)}catch(w){N(w)}let G={error_message:O.error_message,return_code:O.return_code,signature:null};for(let w=1;w<T.length;w+=1)if(G=await this.signSendChunk(1+w,T.length,T[w],_),G.return_code!==D.NoError)break;return{error_message:G.error_message,return_code:G.return_code,signature:G.signature}}}import{SwapKitError as d}from"@swapkit/helpers";var e=()=>navigator?.usb,G0=async()=>{let L=e();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:m}=await import("@ledgerhq/devices"),y=(await L?.getDevices()).filter((T)=>T.vendorId===m);if(y.length>0)return y[0];return L?.requestDevice({filters:[{vendorId:m}]})},$=async()=>{let L=await G0();if(!L)throw new d("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:w})=>w.some(({interfaceClass:C})=>C===255));if(!m)throw await L.close(),new d("wallet_ledger_connection_error");try{await L.claimInterface(m.interfaceNumber)}catch(w){throw await L.close(),new d("wallet_ledger_connection_claimed",w)}let _=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await _.isSupported())throw new d("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:T}=await import("@ledgerhq/errors"),O=new _(L,m.interfaceNumber),G=(w)=>{if(L===w.device)e()?.removeEventListener("disconnect",G),O._emitDisconnect(new T)};return e()?.addEventListener("disconnect",G),O};class b{ledgerTimeout=50000;derivationPath=R0.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await $():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 LL("wallet_ledger_connection_error",m)}};validateResponse=(L,m)=>{switch(L){case r.NoError:return;case r.LockedDevice:throw new LL("wallet_ledger_device_locked",{message:`Ledger is locked: ${m}`});case r.TC_NotFound:throw new LL("wallet_ledger_device_not_found");default:break}}}class mL extends b{pubKey=null;derivationPath;constructor(L=X0.GAIA){super();this.chain="cosmos",this.derivationPath=C0(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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new WL("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:T}]};signAmino=async(L,m)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex((W)=>W.address===L)===-1)throw new WL("wallet_ledger_address_not_found",{address:L});let T=await import("@cosmjs/amino"),O=T.encodeSecp256k1Signature??T.default?.encodeSecp256k1Signature,G=T.serializeSignDoc??T.default?.serializeSignDoc,w=await import("@cosmjs/crypto"),C=w.Secp256k1Signature??w.default?.Secp256k1Signature,X=G(m),f=await this.ledgerApp.sign(this.derivationPath,X);this.validateResponse(f.return_code,f.error_message);let J=C.fromDer(f.signature).toFixedLength();return{signature:O(_[0].pubkey,J),signed:m}};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 j,derivationPathToString as B0,NetworkDerivationPath as F0,SwapKitError as x}from"@swapkit/helpers";import{AbstractSigner as f0}from"ethers";class Y extends f0{chainId=j.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:m=F0.OP,chainId:_=j.Optimism}){super(L);this.chainId=_||j.Ethereum,this.derivationPath=typeof m==="string"?m:B0(m),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new Y({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),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()),y={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(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},T=m.from(y).unsignedSerialized.slice(2),{ledgerService:O}=await import("@ledgerhq/hw-app-eth"),G=await O.resolveTransaction(T,{},{erc20:!0,externalPlugins:!0}),w=await this.ledgerApp?.signTransaction(this.derivationPath,T,G);if(!w)throw new x("wallet_ledger_signing_error");let{r:C,s:X,v:f}=w;return m.from({...y,signature:{r:`0x${C}`,s:`0x${X}`,v:Number(BigInt(f))}}).serialized}}var JL=({provider:L,derivationPath:m})=>new Y({chainId:j.Ethereum,derivationPath:m,provider:L}),$L=({provider:L,derivationPath:m})=>new Y({chainId:j.Avalanche,derivationPath:m,provider:L}),NL=({provider:L,derivationPath:m})=>new Y({chainId:j.BinanceSmartChain,derivationPath:m,provider:L}),jL=({provider:L,derivationPath:m})=>new Y({chainId:j.Arbitrum,derivationPath:m,provider:L}),QL=({provider:L,derivationPath:m})=>new Y({chainId:j.Polygon,derivationPath:m,provider:L}),YL=({provider:L,derivationPath:m})=>new Y({chainId:j.Optimism,derivationPath:m,provider:L}),ML=({provider:L,derivationPath:m})=>new Y({chainId:j.Base,derivationPath:m,provider:L}),HL=({provider:L,derivationPath:m})=>new Y({chainId:j.Aurora,derivationPath:m,provider:L}),DL=({provider:L,derivationPath:m})=>new Y({chainId:j.Gnosis,derivationPath:m,provider:L});async function UL(L,m){let _=await import("@ledgerhq/hw-app-near"),{Chain:y,DerivationPath:T,derivationPathToString:O,SwapKitError:G}=await import("@swapkit/helpers"),w=new _.default(L),C=m?O(m):T[y.Near],{address:X,publicKey:f}=await w.getAddress(C);return{getAddress(){return Promise.resolve(X)},async getPublicKey(){let{utils:W}=await import("near-api-js");return W.PublicKey.fromString(`ed25519:${f}`)},signDelegateAction(W){return Promise.reject(new G("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(W,M,z,Q,P){return Promise.reject(new G("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(W){let{Signature:M,SignedTransaction:z}=await import("near-api-js/lib/transaction");try{let Q=await w.signTransaction(W.encode(),C);if(!Q)throw new Error("Signature undefined");let P=new M({data:Q,keyType:0}),c=new z({signature:P,transaction:W});return[Q,c]}catch(Q){throw new G("wallet_ledger_signing_error",{error:Q})}}}}import{base64 as Z0}from"@scure/base";import{NetworkDerivationPath as W0,SwapKitError as qL}from"@swapkit/helpers";import{base64 as l0}from"@scure/base";import{SwapKitError as U}from"@swapkit/helpers";var _L=(L)=>{if(L.length<64)throw new U("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new U("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new U("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new U("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 U("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[m+4]!==2)throw new U("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let y=L[m+5];if(4+m+2+y!==L.length)throw new U("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let T=L.slice(m+6,L.length);if(T.length===33&&T[0]===0)T=T.slice(1,33);else if(T.length===33)throw new U("wallet_ledger_invalid_signature",{reason:"s too long"});while(T.length<32)T.unshift(0);if(_.length!==32||T.length!==32)throw new U("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return l0.encode(Buffer.concat([_,T]))};class TL extends b{pubKey=null;derivationPath;constructor(L=W0.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=Z0.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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new qL("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:_L(T)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:m,error_message:_,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new qL("wallet_ledger_pubkey_not_found");return this.validateResponse(m,_),_L(y)}}import{derivationPathToString as J0,NetworkDerivationPath as $0,SwapKitError as h}from"@swapkit/helpers";class zL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:J0(L||$0.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),m=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new h("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let L=await this.ledgerApp?.getAddress(this.derivationPath);if(!L)throw new h("wallet_ledger_failed_to_get_address");return{address:L.address,publicKey:L.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(L)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new h("wallet_ledger_transport_error");let m=JSON.stringify(L);try{let _=await this.ledgerApp.signTransaction(this.derivationPath,m,[]);if(!_)throw new h("wallet_ledger_signing_error");return{...L,signature:[_]}}catch(_){throw new h("wallet_ledger_signing_error",{error:_})}}}var AL=(L)=>new zL(L);import{derivationPathToString as N0,getWalletFormatFor as j0,SwapKitError as gL}from"@swapkit/helpers";import{Transaction as Q0}from"bitcoinjs-lib";var Y0=({psbt:L,inputUtxos:m,btcApp:_,derivationPath:y},T)=>{let O=m.map((f)=>{let J=Q0.fromHex(f.txHex||"");return[_.splitTransaction(J.toHex(),J.hasWitnesses()),f.index,void 0,void 0]}),G=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),w=_.splitTransaction(G,!0),C=_.serializeTransactionOutputs(w).toString("hex"),X={additionals:["bech32"],associatedKeysets:O.map(()=>y),inputs:O,outputScriptHex:C,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...X,...T})},E=({chain:L,additionalSignParams:m})=>{let _,y=null;async function T(G=!0){if(G&&!_)new gL("wallet_ledger_connection_error",{message:`Ledger connection failed:
|
|
2
|
-
${JSON.stringify({btcApp:_,checkBtcApp:
|
|
1
|
+
import{c as F,d as Z}from"../chunk-38ztynv0.js";import{Chain as w,ChainId as K0,FeeOption as P0,filterSupportedChains as I0,getRPCUrl as cL,SwapKitError as V,WalletOption as xL}from"@swapkit/helpers";import{createWallet as E0,getWalletSupportedChains as V0}from"@swapkit/wallet-core";import{Chain as f,SwapKitError as T0,WalletOption as y0}from"@swapkit/helpers";var S=async({chain:L,ledgerClient:m})=>{if(!m)return"";switch(L){case f.Cosmos:case f.THORChain:return m.connect();case f.Ethereum:case f.BinanceSmartChain:case f.Avalanche:case f.Polygon:case f.Arbitrum:case f.Optimism:case f.Base:case f.Aurora:case f.Gnosis:return m.getAddress();case f.Bitcoin:case f.BitcoinCash:case f.Dash:case f.Dogecoin:case f.Litecoin:case f.Zcash:{let _=m;await _.connect();let y=await _.getAddress();return L===f.BitcoinCash?y.replace("bitcoincash:",""):y}case f.Near:return await m.getAddress();case f.Ripple:return m.address;case f.Tron:return m.getAddress();default:throw new T0("wallet_chain_not_supported",{chain:L,wallet:y0.LEDGER})}};import{Chain as W,SwapKitError as S0,WalletOption as g0}from"@swapkit/helpers";import{derivationPathToString as C0,NetworkDerivationPath as B0,SwapKitError as lL}from"@swapkit/helpers";import{LedgerErrorCode as r,NetworkDerivationPath as w0,SwapKitError as LL}from"@swapkit/helpers";import{SwapKitError as fL}from"@swapkit/helpers";var P=85,t=250;var g={GET_ADDR_SECP256K1:4,GET_VERSION:0,INS_PUBLIC_KEY_SECP256K1:1,SIGN_SECP256K1:2},h={ADD:1,INIT:0,LAST:2},p={ONLY_RETRIEVE:0,SHOW_ADDRESS_IN_DEVICE:1},I={JSON:0},D={NoError:36864},CL={1:"U2F: Unknown",2:"U2F: Bad request",3:"U2F: Configuration unsupported",4:"U2F: Device Ineligible",5:"U2F: Timeout",14:"Timeout",25600:"Execution Error",26368:"Wrong Length",26626:"Error deriving keys",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",36864:"No errors",36865:"Device is busy"};function H(L){if(L in CL)return CL[L];return`Unknown Status Code: ${L}`}function O0(L){return typeof L==="object"&&L!==null&&!Array.isArray(L)&&!(L instanceof Date)}function N(L){if(L){if(O0(L)){if(Object.hasOwn(L,"statusCode"))return{error_message:H(L.statusCode),return_code:L.statusCode};if(Object.hasOwn(L,"return_code")&&Object.hasOwn(L,"error_message"))return L}return{error_message:L.toString(),return_code:65535}}return{error_message:L.toString(),return_code:65535}}function s(L){return L.send(85,g.GET_VERSION,0,0).then((m)=>{let _=m.slice(-2),y=_[0]*256+_[1],T=0;if(m.length>=9)T=(m[5]<<24)+(m[6]<<16)+(m[7]<<8)+(m[8]<<0);return{device_locked:m[4]===1,error_message:H(y),major:m[1],minor:m[2],patch:m[3],return_code:y,target_id:T.toString(16),test_mode:m[0]!==0}},N)}import{SwapKitError as u}from"@swapkit/helpers";function BL(L){if(L==null||L.length<3)throw new u("wallet_ledger_invalid_params",{reason:"Path too short"});if(L.length>10)throw new u("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 y=L[_]||0;if(_<3)y|=2147483648;m.writeInt32LE(y,1+_*4)}return m}function a(L,m,_,y,T=I.JSON){return L.transport.send(P,g.SIGN_SECP256K1,m,T,y,[D.NoError,27012,27264]).then((O)=>{let R=O.slice(-2),G=R[0]*256+R[1],C=H(G);if(G===27264||G===27012)C=`${C} : ${O.slice(0,O.length-2).toString("ascii")}`;let B=null;if(O.length>2)B=O.slice(0,O.length-2);return{error_message:C,return_code:G,signature:B}},N)}function G0(L){if(L.length!==65)throw new u("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)])}function XL(L,m){return L.transport.send(P,g.INS_PUBLIC_KEY_SECP256K1,0,0,m,[D.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1],O=Buffer.from(_.slice(0,65));return{compressed_pk:G0(O),error_message:H(T),pk:O,return_code:T}},N)}function FL(L){if(!L||L.length!==5)throw new u("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 ZL(L,m,_,y,T=I.JSON){let O=h.ADD;if(m===1)O=h.INIT;if(m===_)O=h.LAST;return a(L,O,0,y,T)}function WL(L,m){return L.transport.send(P,g.GET_ADDR_SECP256K1,0,0,m,[D.NoError]).then((_)=>{let y=_.slice(-2),T=y[0]*256+y[1];return{compressed_pk:Buffer.from(_.slice(0,33)),error_message:H(T),pk:"OBSOLETE PROPERTY",return_code:T}},N)}class b{transport;versionResponse;constructor(L){if(!L)throw new fL("wallet_ledger_transport_not_defined");this.transport=L}static serializeHRP(L){if(L==null||L.length<3||L.length>83)throw new fL("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 s(this.transport),this.versionResponse.return_code!==D.NoError)throw this.versionResponse;switch(this.versionResponse.major){case 1:return BL(L);case 2:return FL(L);default:return Buffer.alloc(0)}}async signGetChunks(L,m){let _=await this.serializePath(L),y=[];y.push(_);for(let T=0;T<m.length;T+=t){let O=T+t;if(T>m.length)O=m.length;y.push(m.slice(T,O))}return y}async getVersion(){try{return this.versionResponse=await s(this.transport),this.versionResponse}catch(L){return N(L)}}appInfo(){return this.transport.send(176,1,0,0).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1],y="",T="",O=0,R=0;if(L[0]!==1)return{error_message:"response format ID not recognized",return_code:36865};let G=L[1];y=L.slice(2,2+G).toString("ascii");let C=2+G,B=L[C];C+=1,T=L.slice(C,C+B).toString("ascii"),C+=B;let X=L[C];return C+=1,O=X,R=L[C],{appName:y,appVersion:T,error_message:H(_),flag_onboarded:(R&4)!==0,flag_pin_validated:(R&128)!==0,flag_recovery:(R&1)!==0,flag_signed_mcu_code:(R&2)!==0,flagLen:O,flagsValue:R,return_code:_}},N)}deviceInfo(){return this.transport.send(224,1,0,0,Buffer.from([]),[D.NoError,28160]).then((L)=>{let m=L.slice(-2),_=m[0]*256+m[1];if(_===28160)return{error_message:"This command is only available in the Dashboard",return_code:_};let y=L.slice(0,4).toString("hex"),T=4,O=L[T];T+=1;let R=L.slice(T,T+O).toString();T+=O;let G=L[T];T+=1;let C=L.slice(T,T+G).toString("hex");T+=G;let B=L[T];T+=1;let X=L.slice(T,T+B);if(X[B-1]===0)X=L.slice(T,T+B-1);let J=X.toString();return{error_message:H(_),flag:C,mcuVersion:J,return_code:_,seVersion:R,targetId:y}},N)}async publicKey(L){try{let m=await this.serializePath(L);switch(this.versionResponse.major){case 1:return XL(this,m);case 2:{let _=Buffer.concat([b.serializeHRP("thor"),m]);return WL(this,_)}default:return{error_message:"App Version is not supported",return_code:25600}}}catch(m){return N(m)}}getAddressAndPubKey(L,m,_=!1){return this.serializePath(L).then((y)=>{let T=Buffer.concat([b.serializeHRP(m),y]);return this.transport.send(P,g.GET_ADDR_SECP256K1,_?p.SHOW_ADDRESS_IN_DEVICE:p.ONLY_RETRIEVE,0,T,[D.NoError]).then((O)=>{let R=O.slice(-2),G=R[0]*256+R[1],C=Buffer.from(O.slice(0,33));return{bech32_address:Buffer.from(O.slice(33,-2)).toString(),compressed_pk:C,error_message:H(G),return_code:G}},N)}).catch((y)=>N(y))}showAddressAndPubKey(L,m){return this.getAddressAndPubKey(L,m,!0)}signSendChunk(L,m,_,y=I.JSON){switch(this.versionResponse.major){case 1:return a(this,L,m,_,y);case 2:return ZL(this,L,m,_,y);default:return{error_message:"App Version is not supported",return_code:25600}}}async sign(L,m,_=I.JSON){let y=Buffer.from(m),T=[],O;try{T=await this.signGetChunks(L,y),O=await this.signSendChunk(1,T.length,T[0],_)}catch(G){N(G)}let R={error_message:O.error_message,return_code:O.return_code,signature:null};for(let G=1;G<T.length;G+=1)if(R=await this.signSendChunk(1+G,T.length,T[G],_),R.return_code!==D.NoError)break;return{error_message:R.error_message,return_code:R.return_code,signature:R.signature}}}import{SwapKitError as d}from"@swapkit/helpers";var e=()=>navigator?.usb,R0=async()=>{let L=e();if(typeof L?.getDevices!=="function")return[];let{ledgerUSBVendorId:m}=await import("@ledgerhq/devices"),y=(await L?.getDevices()).filter((T)=>T.vendorId===m);if(y.length>0)return y[0];return L?.requestDevice({filters:[{vendorId:m}]})},$=async()=>{let L=await R0();if(!L)throw new d("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:G})=>G.some(({interfaceClass:C})=>C===255));if(!m)throw await L.close(),new d("wallet_ledger_connection_error");try{await L.claimInterface(m.interfaceNumber)}catch(G){throw await L.close(),new d("wallet_ledger_connection_claimed",G)}let _=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await _.isSupported())throw new d("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:T}=await import("@ledgerhq/errors"),O=new _(L,m.interfaceNumber),R=(G)=>{if(L===G.device)e()?.removeEventListener("disconnect",R),O._emitDisconnect(new T)};return e()?.addEventListener("disconnect",R),O};class c{ledgerTimeout=50000;derivationPath=w0.GAIA;transport;ledgerApp;chain="thor";checkOrCreateTransportAndLedger=async(L=!1)=>{if(!L&&this.transport&&this.ledgerApp)return;try{switch(this.transport=L||!this.transport?await $():this.transport,this.chain){case"thor":{this.ledgerApp=L||!this.ledgerApp?new b(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 LL("wallet_ledger_connection_error",m)}};validateResponse=(L,m)=>{switch(L){case r.NoError:return;case r.LockedDevice:throw new LL("wallet_ledger_device_locked",{message:`Ledger is locked: ${m}`});case r.TC_NotFound:throw new LL("wallet_ledger_device_not_found");default:break}}}class mL extends c{pubKey=null;derivationPath;constructor(L=B0.GAIA){super();this.chain="cosmos",this.derivationPath=C0(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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new lL("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:T}]};signAmino=async(L,m)=>{await this.checkOrCreateTransportAndLedger(!0);let _=await this.getAccounts();if(_.findIndex((l)=>l.address===L)===-1)throw new lL("wallet_ledger_address_not_found",{address:L});let T=await import("@cosmjs/amino"),O=T.encodeSecp256k1Signature??T.default?.encodeSecp256k1Signature,R=T.serializeSignDoc??T.default?.serializeSignDoc,G=await import("@cosmjs/crypto"),C=G.Secp256k1Signature??G.default?.Secp256k1Signature,B=R(m),X=await this.ledgerApp.sign(this.derivationPath,B);this.validateResponse(X.return_code,X.error_message);let J=C.fromDer(X.signature).toFixedLength();return{signature:O(_[0].pubkey,J),signed:m}};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 j,derivationPathToString as X0,NetworkDerivationPath as F0,SwapKitError as x}from"@swapkit/helpers";import{AbstractSigner as Z0}from"ethers";class Y extends Z0{chainId=j.Ethereum;derivationPath="";ledgerApp=null;ledgerTimeout=50000;constructor({provider:L,derivationPath:m=F0.OP,chainId:_=j.Optimism}){super(L);this.chainId=_||j.Ethereum,this.derivationPath=typeof m==="string"?m:X0(m),Object.defineProperty(this,"provider",{enumerable:!0,value:L||null,writable:!1})}connect=(L)=>new Y({chainId:this.chainId,derivationPath:this.derivationPath,provider:L});checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),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()),y={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(),type:L.type&&!Number.isNaN(L.type)?L.type:L.maxFeePerGas?2:0,value:L.value},T=m.from(y).unsignedSerialized.slice(2),{ledgerService:O}=await import("@ledgerhq/hw-app-eth"),R=await O.resolveTransaction(T,{},{erc20:!0,externalPlugins:!0}),G=await this.ledgerApp?.signTransaction(this.derivationPath,T,R);if(!G)throw new x("wallet_ledger_signing_error");let{r:C,s:B,v:X}=G;return m.from({...y,signature:{r:`0x${C}`,s:`0x${B}`,v:Number(BigInt(X))}}).serialized}}var JL=({provider:L,derivationPath:m})=>new Y({chainId:j.Ethereum,derivationPath:m,provider:L}),$L=({provider:L,derivationPath:m})=>new Y({chainId:j.Avalanche,derivationPath:m,provider:L}),NL=({provider:L,derivationPath:m})=>new Y({chainId:j.BinanceSmartChain,derivationPath:m,provider:L}),jL=({provider:L,derivationPath:m})=>new Y({chainId:j.Arbitrum,derivationPath:m,provider:L}),QL=({provider:L,derivationPath:m})=>new Y({chainId:j.Polygon,derivationPath:m,provider:L}),YL=({provider:L,derivationPath:m})=>new Y({chainId:j.Optimism,derivationPath:m,provider:L}),ML=({provider:L,derivationPath:m})=>new Y({chainId:j.Base,derivationPath:m,provider:L}),HL=({provider:L,derivationPath:m})=>new Y({chainId:j.Aurora,derivationPath:m,provider:L}),DL=({provider:L,derivationPath:m})=>new Y({chainId:j.Gnosis,derivationPath:m,provider:L});async function UL(L,m){let _=await import("@ledgerhq/hw-app-near"),{Chain:y,DerivationPath:T,derivationPathToString:O,SwapKitError:R}=await import("@swapkit/helpers"),G=new _.default(L),C=m?O(m):T[y.Near],{address:B,publicKey:X}=await G.getAddress(C);return{getAddress(){return Promise.resolve(B)},async getPublicKey(){let{utils:l}=await import("near-api-js");return l.PublicKey.fromString(`ed25519:${X}`)},signDelegateAction(l){return Promise.reject(new R("wallet_ledger_method_not_supported",{method:"signDelegateAction",wallet:"Ledger"}))},signNep413Message(l,M,q,Q,K){return Promise.reject(new R("wallet_ledger_method_not_supported",{method:"signNep413Message",wallet:"Ledger"}))},async signTransaction(l){let{Signature:M,SignedTransaction:q}=await import("near-api-js/lib/transaction");try{let Q=await G.signTransaction(l.encode(),C);if(!Q)throw new Error("Signature undefined");let K=new M({data:Q,keyType:0}),k=new q({signature:K,transaction:l});return[Q,k]}catch(Q){throw new R("wallet_ledger_signing_error",{error:Q})}}}}import{base64 as f0}from"@scure/base";import{NetworkDerivationPath as l0,SwapKitError as zL}from"@swapkit/helpers";import{base64 as W0}from"@scure/base";import{SwapKitError as U}from"@swapkit/helpers";var _L=(L)=>{if(L.length<64)throw new U("wallet_ledger_invalid_signature",{reason:"Too short"});if(L[0]!==48)throw new U("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected first byte 0x30"});if(L[1]+2!==L.length)throw new U("wallet_ledger_invalid_signature",{reason:"signature length does not match TLV"});if(L[2]!==2)throw new U("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 U("wallet_ledger_invalid_signature",{reason:"r too long"});while(_.length<32)_.unshift(0);if(L[m+4]!==2)throw new U("wallet_ledger_invalid_signature",{reason:"TLV encoding: expected length type 0x02 for s"});let y=L[m+5];if(4+m+2+y!==L.length)throw new U("wallet_ledger_invalid_signature",{reason:"TLV byte lengths do not match message length"});let T=L.slice(m+6,L.length);if(T.length===33&&T[0]===0)T=T.slice(1,33);else if(T.length===33)throw new U("wallet_ledger_invalid_signature",{reason:"s too long"});while(T.length<32)T.unshift(0);if(_.length!==32||T.length!==32)throw new U("wallet_ledger_invalid_signature",{reason:"must be 32 bytes each"});return W0.encode(Buffer.concat([_,T]))};class TL extends c{pubKey=null;derivationPath;constructor(L=l0.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=f0.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:y,signature:T}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new zL("wallet_ledger_pubkey_not_found");return this.validateResponse(_,y),[{pub_key:{type:"tendermint/PubKeySecp256k1",value:this.pubKey},sequence:m,signature:_L(T)}]};sign=async(L)=>{await this.checkOrCreateTransportAndLedger(!0);let{return_code:m,error_message:_,signature:y}=await this.ledgerApp.sign(this.derivationPath,L);if(!this.pubKey)throw new zL("wallet_ledger_pubkey_not_found");return this.validateResponse(m,_),_L(y)}}import{derivationPathToString as J0,NetworkDerivationPath as $0,SwapKitError as v}from"@swapkit/helpers";class qL{derivationPath;ledgerApp=null;ledgerTimeout=50000;constructor(L){this.derivationPath=typeof L==="string"?L:J0(L||$0.TRON)}checkOrCreateTransportAndLedger=async()=>{if(this.ledgerApp)return;await this.createTransportAndLedger()};createTransportAndLedger=async()=>{let L=await $(),m=(await import("@ledgerhq/hw-app-trx")).default;this.ledgerApp=new m(L)};getAddress=async()=>{let L=await this.getAddressAndPubKey();if(!L)throw new v("wallet_ledger_failed_to_get_address");return L.address};getAddressAndPubKey=async()=>{await this.createTransportAndLedger();let L=await this.ledgerApp?.getAddress(this.derivationPath);if(!L)throw new v("wallet_ledger_failed_to_get_address");return{address:L.address,publicKey:L.publicKey}};showAddressAndPubKey=async()=>{return await this.createTransportAndLedger(),this.ledgerApp?.getAddress(this.derivationPath,!0)};signTransaction=async(L)=>{if(await this.createTransportAndLedger(),!this.ledgerApp)throw new v("wallet_ledger_transport_error");let m=JSON.stringify(L);try{let _=await this.ledgerApp.signTransaction(this.derivationPath,m,[]);if(!_)throw new v("wallet_ledger_signing_error");return{...L,signature:[_]}}catch(_){throw new v("wallet_ledger_signing_error",{error:_})}}}var AL=(L)=>new qL(L);import{derivationPathToString as N0,getWalletFormatFor as j0,SwapKitError as SL}from"@swapkit/helpers";import{Transaction as Q0}from"bitcoinjs-lib";var Y0=({psbt:L,inputUtxos:m,btcApp:_,derivationPath:y},T)=>{let O=m.map((X)=>{let J=Q0.fromHex(X.txHex||"");return[_.splitTransaction(J.toHex(),J.hasWitnesses()),X.index,void 0,void 0]}),R=L.data.globalMap.unsignedTx.toBuffer().toString("hex"),G=_.splitTransaction(R,!0),C=_.serializeTransactionOutputs(G).toString("hex"),B={additionals:["bech32"],associatedKeysets:O.map(()=>y),inputs:O,outputScriptHex:C,segwit:!0,useTrustedInputForSegwit:!0};return _.createPaymentTransaction({...B,...T})},E=({chain:L,additionalSignParams:m})=>{let _,y=null;async function T(R=!0){if(R&&!_)new SL("wallet_ledger_connection_error",{message:`Ledger connection failed:
|
|
2
|
+
${JSON.stringify({btcApp:_,checkBtcApp:R})}`});y||=await $()}async function O(){y=await $(),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:y})}return(R)=>{let G=typeof R==="string"?R:N0(R),C=j0(G);return{connect:async()=>{await T(!1),_=new(await import("@ledgerhq/hw-app-btc")).default({currency:L,transport:y})},getAddress:async()=>{let{toCashAddress:B}=await import("@swapkit/toolboxes/utxo");await T(!1);let{bitcoinAddress:X}=await _.getWalletPublicKey(G,{format:C});if(!X)throw new SL("wallet_ledger_get_address_error",{message:`Cannot get ${L} address from ledger derivation path: ${G}`});return L==="bitcoin-cash"&&C==="legacy"?B(X).replace(/(bchtest:|bitcoincash:)/,""):X},getExtendedPublicKey:async(B="84'/0'/0'",X=76067358)=>{return await T(!1),_.getWalletXpub({path:B,xpubVersion:X})},signTransaction:async(B,X)=>{return await O(),Y0({btcApp:_,derivationPath:G,inputUtxos:X,psbt:B},m)}}}},gL=E({chain:"bitcoin"}),KL=E({chain:"litecoin"}),PL=E({additionalSignParams:{additionals:["abc"],segwit:!1,sigHashType:65},chain:"bitcoin-cash"}),IL=E({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dogecoin"}),EL=E({additionalSignParams:{additionals:[],segwit:!1,useTrustedInputForSegwit:!1},chain:"dash"}),VL=E({additionalSignParams:{additionals:["zcash","sapling"],segwit:!1,useTrustedInputForSegwit:!1},chain:"zcash"});import M0 from"@ledgerhq/hw-app-xrp";import{Chain as H0,derivationPathToString as D0,NetworkDerivationPath as U0}from"@swapkit/helpers";import{encode as kL}from"ripple-binary-codec";var z0=2147483648;function q0(L){let m={};for(let _ in L)if(L[_]!==null&&L[_]!==void 0)m[_]=L[_];return m}function A0(L){return new M0(L)}var bL=async(L)=>{let m=D0(L||U0[H0.Ripple]),_=await $(),y=A0(_),{address:T,publicKey:O}=await y.getAddress(m);async function R(G){let{hashes:C}=await import("@swapkit/toolboxes/ripple"),X={...q0(G),Flags:G.Flags||z0,SigningPubKey:O.toUpperCase()},J=kL(X),l=await y.signTransaction(m,J),M=kL({...X,TxnSignature:l});return{hash:C.hashSignedTx(M),tx_blob:M}}return{address:T,sign:R}};var z=async({chain:L,derivationPath:m})=>{let{match:_}=await import("ts-pattern");return _(L).returnType().with(W.THORChain,()=>Promise.resolve(new TL(m))).with(W.Cosmos,()=>Promise.resolve(new mL(m))).with(W.Bitcoin,()=>Promise.resolve(gL(m))).with(W.BitcoinCash,()=>Promise.resolve(PL(m))).with(W.Dash,()=>Promise.resolve(EL(m))).with(W.Dogecoin,()=>Promise.resolve(IL(m))).with(W.Litecoin,()=>Promise.resolve(KL(m))).with(W.Zcash,()=>Promise.resolve(VL(m))).with(W.Ripple,()=>Promise.resolve(bL(m))).with(W.Tron,()=>Promise.resolve(AL(m))).with(W.Near,async()=>{let y=await $();return UL(y,m)}).with(W.Arbitrum,W.Aurora,W.Avalanche,W.BinanceSmartChain,W.Ethereum,W.Gnosis,W.Optimism,W.Polygon,W.Base,async()=>{let{getProvider:y}=await import("@swapkit/toolboxes/evm"),T={derivationPath:m,provider:await y(L)};return _(L).with(W.BinanceSmartChain,()=>NL(T)).with(W.Avalanche,()=>$L(T)).with(W.Arbitrum,()=>jL(T)).with(W.Optimism,()=>YL(T)).with(W.Polygon,()=>QL(T)).with(W.Base,()=>ML(T)).with(W.Aurora,()=>HL(T)).with(W.Gnosis,()=>DL(T)).otherwise(()=>JL(T))}).otherwise(()=>{throw new S0("wallet_chain_not_supported",{chain:L,wallet:g0.LEDGER})})};var k0=E0({connect:({addChain:L,supportedChains:m,walletType:_})=>async function y(T,O){let[R]=I0({chains:T,supportedChains:m,walletType:_});if(!R)return!1;let G=await x0({chain:R,derivationPath:O});return L({...G,chain:R,walletType:xL.LEDGER}),!0},name:"connectLedger",supportedChains:[w.Arbitrum,w.Aurora,w.Avalanche,w.Base,w.BinanceSmartChain,w.Bitcoin,w.BitcoinCash,w.Cosmos,w.Dash,w.Dogecoin,w.Ethereum,w.Gnosis,w.Litecoin,w.Near,w.Optimism,w.Polygon,w.Ripple,w.THORChain,w.Tron,w.Zcash],walletType:xL.LEDGER}),sm=V0(k0);function b0(L,m="t"){if(!L?.includes("=:"))return L;let _=L.includes(`:${m}:`)?L.split(`:${m}:`)[0]:L;return _?.substring(0,_.lastIndexOf(":"))}function o(L){if(Array.isArray(L))return L.forEach((y,T)=>{L[T]=o(y)}),L;if(typeof L!=="object")return L;let m={},_=Object.keys(L).sort();for(let y of _)m[y]=o(L[y]);return m}function c0(L){return JSON.stringify(o(L))}async function x0({chain:L,derivationPath:m}){switch(L){case w.BitcoinCash:case w.Bitcoin:case w.Dash:case w.Dogecoin:case w.Litecoin:case w.Zcash:{let{getUtxoToolbox:_}=await import("@swapkit/toolboxes/utxo"),y=await _(L),T=await z({chain:L,derivationPath:m}),O=await S({chain:L,ledgerClient:T});return{...y,address:O,transfer:async(G)=>{let C=G.feeRate||(await y.getFeeRates())[P0.Average],B=[w.Bitcoin].includes(L)?G.memo:b0(G.memo),{psbt:X,inputs:J}=await y.createTransaction({...G,feeRate:C,fetchTxHex:!0,memo:B,sender:O}),l=await T.signTransaction(X,J);return await y.broadcastTx(l)}}}case w.Ethereum:case w.Avalanche:case w.Arbitrum:case w.Optimism:case w.Polygon:case w.BinanceSmartChain:case w.Base:case w.Aurora:case w.Gnosis:{let{getEvmToolbox:_}=await import("@swapkit/toolboxes/evm"),y=await z({chain:L,derivationPath:m}),T=await S({chain:L,ledgerClient:y});return{...await _(L,{signer:y}),address:T}}case w.Cosmos:{let{createSigningStargateClient:_,getMsgSendDenom:y,getCosmosToolbox:T}=await import("@swapkit/toolboxes/cosmos"),O=await T(w.Cosmos),R=await z({chain:L,derivationPath:m}),G=await S({chain:L,ledgerClient:R});return{...O,address:G,transfer:async({assetValue:B,recipient:X,memo:J})=>{if(!B)throw new V("wallet_ledger_invalid_asset");let l={amount:[{amount:B.getBaseValue("string"),denom:y(`u${B.symbol}`).toLowerCase()}],fromAddress:G,toAddress:X},M=await cL(L),q=await _(M,R,"0.007uatom"),{transactionHash:Q}=await q.signAndBroadcast(G,[{typeUrl:"/cosmos.bank.v1beta1.MsgSend",value:l}],2,J);return Q}}}case w.THORChain:{let{SignMode:_}=await import("cosmjs-types/cosmos/tx/signing/v1beta1/signing.js"),{TxRaw:y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx.js"),T=await import("@cosmjs/proto-signing"),O=T.encodePubkey??T.default?.encodePubkey,R=T.makeAuthInfoBytes??T.default?.makeAuthInfoBytes,{createStargateClient:G,buildEncodedTxBody:C,getCosmosToolbox:B,buildAminoMsg:X,getDefaultChainFee:J,fromBase64:l,parseAminoMessageForDirectSigning:M}=await import("@swapkit/toolboxes/cosmos"),q=await B(L),Q=await z({chain:L,derivationPath:m}),K=await S({chain:L,ledgerClient:Q}),k=J(L),{pubkey:yL,signTransaction:vL,sign:hL}=Q,OL=async({memo:A="",assetValue:GL,...uL})=>{let RL=await q.getAccount(K);if(!RL)throw new V("wallet_ledger_invalid_account");if(!GL)throw new V("wallet_ledger_invalid_asset");if(!yL)throw new V("wallet_ledger_pubkey_not_found");let{accountNumber:dL,sequence:oL}=RL,i=(oL||0).toString(),wL=o([X({assetValue:GL,memo:A,sender:K,...uL})]),iL=c0({account_number:dL?.toString(),chain_id:K0.THORChain,fee:k,memo:A,msgs:wL,sequence:i}),n=await vL(iL,i);if(!n)throw new V("wallet_ledger_signing_error");let nL=O({type:"tendermint/PubKeySecp256k1",value:yL}),tL=wL.map(M),pL=await C({chain:L,memo:A,msgs:tL}),sL=R([{pubkey:nL,sequence:Number(i)}],k.amount,Number.parseInt(k.gas,10),void 0,void 0,_.SIGN_MODE_LEGACY_AMINO_JSON),aL=n?.[0]?.signature?l(n[0].signature):Uint8Array.from([]),eL=y.fromPartial({authInfoBytes:sL,bodyBytes:pL,signatures:[aL]}),rL=y.encode(eL).finish(),L0=await cL(w.THORChain),m0=await G(L0),{transactionHash:_0}=await m0.broadcastTx(rL);return _0};return{...q,address:K,deposit:(A)=>OL(A),signMessage:hL,transfer:(A)=>OL(A)}}case w.Near:{let{getNearToolbox:_}=await import("@swapkit/toolboxes/near"),y=await z({chain:L,derivationPath:m}),T=await y.getAddress();return{...await _({signer:y}),address:T}}case w.Ripple:{let{getRippleToolbox:_}=await import("@swapkit/toolboxes/ripple"),y=await z({chain:L,derivationPath:m}),T=y.address;return{...await _({signer:y}),address:T}}case w.Tron:{let{createTronToolbox:_}=await import("@swapkit/toolboxes/tron"),y=await z({chain:L,derivationPath:m}),T=await S({chain:L,ledgerClient:y});return{...await _({signer:y}),address:T}}default:throw new V("wallet_ledger_chain_not_supported",{chain:L})}}export{k0 as ledgerWallet,sm as LEDGER_SUPPORTED_CHAINS};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=E3D0DE47762728DB64756E2164756E21
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/ledger/index.js.map
CHANGED
|
@@ -17,9 +17,9 @@
|
|
|
17
17
|
"import { base64 } from \"@scure/base\";\nimport { SwapKitError } from \"@swapkit/helpers\";\n\nexport const getSignature = (signatureArray: any) => {\n // Check Type Length Value encoding\n if (signatureArray.length < 64) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"Too short\" });\n }\n if (signatureArray[0] !== 0x30) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"TLV encoding: expected first byte 0x30\" });\n }\n if (signatureArray[1] + 2 !== signatureArray.length) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"signature length does not match TLV\" });\n }\n if (signatureArray[2] !== 0x02) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"TLV encoding: expected length type 0x02\" });\n }\n\n // r signature\n const rLength = signatureArray[3];\n let rSignature = signatureArray.slice(4, rLength + 4);\n\n // Drop leading zero on some 'r' signatures that are 33 bytes.\n if (rSignature.length === 33 && rSignature[0] === 0) {\n rSignature = rSignature.slice(1, 33);\n } else if (rSignature.length === 33) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"r too long\" });\n }\n\n // add leading zero's to pad to 32 bytes\n while (rSignature.length < 32) {\n rSignature.unshift(0);\n }\n\n // s signature\n if (signatureArray[rLength + 4] !== 0x02) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", {\n reason: \"TLV encoding: expected length type 0x02 for s\",\n });\n }\n\n const sLength = signatureArray[rLength + 5];\n\n if (4 + rLength + 2 + sLength !== signatureArray.length) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", {\n reason: \"TLV byte lengths do not match message length\",\n });\n }\n\n let sSignature = signatureArray.slice(rLength + 6, signatureArray.length);\n\n // Drop leading zero on 's' signatures that are 33 bytes. This shouldn't occur since ledger signs using \"Small s\" math. But just to be sure...\n if (sSignature.length === 33 && sSignature[0] === 0) {\n sSignature = sSignature.slice(1, 33);\n } else if (sSignature.length === 33) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"s too long\" });\n }\n\n // add leading zero's to pad to 32 bytes\n while (sSignature.length < 32) {\n sSignature.unshift(0);\n }\n\n if (rSignature.length !== 32 || sSignature.length !== 32) {\n throw new SwapKitError(\"wallet_ledger_invalid_signature\", { reason: \"must be 32 bytes each\" });\n }\n\n return base64.encode(Buffer.concat([rSignature, sSignature]));\n};\n",
|
|
18
18
|
"import type TronApp from \"@ledgerhq/hw-app-trx\";\nimport {\n type DerivationPathArray,\n derivationPathToString,\n NetworkDerivationPath,\n SwapKitError,\n} from \"@swapkit/helpers\";\nimport type { TronSignedTransaction, TronSigner, TronTransaction } from \"@swapkit/toolboxes/tron\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\nexport class TronLedgerInterface implements TronSigner {\n derivationPath: string;\n ledgerApp: InstanceType<typeof TronApp> | null = null;\n ledgerTimeout = 50000;\n\n constructor(derivationPath?: DerivationPathArray | string) {\n this.derivationPath =\n typeof derivationPath === \"string\"\n ? derivationPath\n : derivationPathToString(derivationPath || NetworkDerivationPath.TRON);\n }\n\n checkOrCreateTransportAndLedger = async () => {\n if (this.ledgerApp) return;\n await this.createTransportAndLedger();\n };\n\n createTransportAndLedger = async () => {\n const transport = await getLedgerTransport();\n const TronApp = (await import(\"@ledgerhq/hw-app-trx\")).default;\n\n this.ledgerApp = new TronApp(transport);\n };\n\n getAddress = async (): Promise<string> => {\n const response = await this.getAddressAndPubKey();\n if (!response) throw new SwapKitError(\"wallet_ledger_failed_to_get_address\");\n return response.address;\n };\n\n getAddressAndPubKey = async () => {\n await this.createTransportAndLedger();\n const result = await this.ledgerApp?.getAddress(this.derivationPath);\n\n if (!result) throw new SwapKitError(\"wallet_ledger_failed_to_get_address\");\n\n return { address: result.address, publicKey: result.publicKey };\n };\n\n showAddressAndPubKey = async () => {\n await this.createTransportAndLedger();\n return this.ledgerApp?.getAddress(this.derivationPath, true);\n };\n\n signTransaction = async (transaction: TronTransaction): Promise<TronSignedTransaction> => {\n await this.createTransportAndLedger();\n\n if (!this.ledgerApp) {\n throw new SwapKitError(\"wallet_ledger_transport_error\");\n }\n\n // Tron transactions need to be serialized before signing\n const serializedTx = JSON.stringify(transaction);\n\n try {\n const signature = await this.ledgerApp.signTransaction(\n this.derivationPath,\n serializedTx,\n [], // Token signatures array - empty for native TRX transfers\n );\n\n if (!signature) {\n throw new SwapKitError(\"wallet_ledger_signing_error\");\n }\n\n // Return the signed transaction in Tron's expected format\n return { ...transaction, signature: [signature] };\n } catch (error) {\n throw new SwapKitError(\"wallet_ledger_signing_error\", { error });\n }\n };\n}\n\nexport const TronLedger = (derivationPath?: DerivationPathArray) => new TronLedgerInterface(derivationPath);\n",
|
|
19
19
|
"import type BitcoinApp from \"@ledgerhq/hw-app-btc\";\nimport type { CreateTransactionArg } from \"@ledgerhq/hw-app-btc/lib-es/createTransaction\";\nimport { type DerivationPathArray, derivationPathToString, getWalletFormatFor, SwapKitError } from \"@swapkit/helpers\";\nimport type { UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport { type Psbt, Transaction } from \"bitcoinjs-lib\";\n\nimport { getLedgerTransport } from \"../helpers/getLedgerTransport\";\n\ntype Params = { psbt: Psbt; inputUtxos: UTXOType[]; btcApp: any; derivationPath: string };\n\nconst signUTXOTransaction = (\n { psbt, inputUtxos, btcApp, derivationPath }: Params,\n options?: Partial<CreateTransactionArg>,\n) => {\n const inputs = inputUtxos.map((item) => {\n const utxoTx = Transaction.fromHex(item.txHex || \"\");\n const splitTx = btcApp.splitTransaction(utxoTx.toHex(), utxoTx.hasWitnesses());\n\n return [splitTx, item.index, undefined as string | null | undefined, undefined as number | null | undefined] as any;\n });\n\n const newTxHex = psbt.data.globalMap.unsignedTx.toBuffer().toString(\"hex\");\n\n const splitNewTx = btcApp.splitTransaction(newTxHex, true);\n const outputScriptHex = btcApp.serializeTransactionOutputs(splitNewTx).toString(\"hex\");\n\n const params: CreateTransactionArg = {\n additionals: [\"bech32\"],\n associatedKeysets: inputs.map(() => derivationPath),\n inputs,\n outputScriptHex,\n segwit: true,\n useTrustedInputForSegwit: true,\n };\n\n return btcApp.createPaymentTransaction({ ...params, ...options });\n};\n\nconst BaseLedgerUTXO = ({\n chain,\n additionalSignParams,\n}: {\n chain: \"bitcoin-cash\" | \"bitcoin\" | \"litecoin\" | \"dogecoin\" | \"dash\" | \"zcash\";\n additionalSignParams?: Partial<CreateTransactionArg>;\n}) => {\n let btcApp: InstanceType<typeof BitcoinApp>;\n let transport: any = null;\n\n async function checkBtcAppAndCreateTransportWebUSB(checkBtcApp = true) {\n if (checkBtcApp && !btcApp) {\n new SwapKitError(\"wallet_ledger_connection_error\", {\n message: `Ledger connection failed:\\n${JSON.stringify({ btcApp, checkBtcApp })}`,\n });\n }\n\n transport ||= await getLedgerTransport();\n }\n\n async function createTransportWebUSB() {\n transport = await getLedgerTransport();\n const BitcoinApp = (await import(\"@ledgerhq/hw-app-btc\")).default;\n\n btcApp = new BitcoinApp({ currency: chain, transport });\n }\n\n return (derivationPathArray?: DerivationPathArray | string) => {\n const derivationPath =\n typeof derivationPathArray === \"string\"\n ? derivationPathArray\n : derivationPathToString(derivationPathArray as DerivationPathArray);\n\n const format = getWalletFormatFor(derivationPath);\n\n return {\n connect: async () => {\n await checkBtcAppAndCreateTransportWebUSB(false);\n const BitcoinApp = (await import(\"@ledgerhq/hw-app-btc\")).default;\n\n btcApp = new BitcoinApp({ currency: chain, transport });\n },\n getAddress: async () => {\n const { toCashAddress } = await import(\"@swapkit/toolboxes/utxo\");\n\n await checkBtcAppAndCreateTransportWebUSB(false);\n\n const { bitcoinAddress: address } = await btcApp.getWalletPublicKey(derivationPath, { format });\n\n if (!address) {\n throw new SwapKitError(\"wallet_ledger_get_address_error\", {\n message: `Cannot get ${chain} address from ledger derivation path: ${derivationPath}`,\n });\n }\n\n return chain === \"bitcoin-cash\" && format === \"legacy\"\n ? toCashAddress(address).replace(/(bchtest:|bitcoincash:)/, \"\")\n : address;\n },\n getExtendedPublicKey: async (path = \"84'/0'/0'\", xpubVersion = 76067358) => {\n await checkBtcAppAndCreateTransportWebUSB(false);\n\n return btcApp.getWalletXpub({ path, xpubVersion });\n },\n signTransaction: async (psbt: Psbt, inputUtxos: UTXOType[]) => {\n await createTransportWebUSB();\n\n return signUTXOTransaction({ btcApp, derivationPath, inputUtxos, psbt }, additionalSignParams);\n },\n };\n };\n};\n\nexport const BitcoinLedger = BaseLedgerUTXO({ chain: \"bitcoin\" });\nexport const LitecoinLedger = BaseLedgerUTXO({ chain: \"litecoin\" });\n\nexport const BitcoinCashLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [\"abc\"], segwit: false, sigHashType: 0x41 },\n chain: \"bitcoin-cash\",\n});\n\nexport const DogecoinLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [], segwit: false, useTrustedInputForSegwit: false },\n chain: \"dogecoin\",\n});\n\nexport const DashLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [], segwit: false, useTrustedInputForSegwit: false },\n chain: \"dash\",\n});\n\nexport const ZcashLedger = BaseLedgerUTXO({\n additionalSignParams: { additionals: [\"zcash\", \"sapling\"], segwit: false, useTrustedInputForSegwit: false },\n chain: \"zcash\",\n});\n",
|
|
20
|
-
"import
|
|
20
|
+
"import Xrp from \"@ledgerhq/hw-app-xrp\";\nimport type Transport from \"@ledgerhq/hw-transport\";\nimport { Chain, type DerivationPathArray, derivationPathToString, NetworkDerivationPath } 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/getLedgerTransport\";\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\nfunction establishConnection(transport: Transport) {\n return new Xrp(transport);\n}\n\nexport const XRPLedger = async (derivationPath?: DerivationPathArray) => {\n const path = derivationPathToString(derivationPath || NetworkDerivationPath[Chain.Ripple]);\n const transport = await getLedgerTransport();\n const xrpInstance = establishConnection(transport);\n\n const { address, publicKey } = await xrpInstance.getAddress(path);\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 { hash, tx_blob };\n }\n\n return { address, sign };\n};\n"
|
|
21
21
|
],
|
|
22
|
-
"mappings": "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",
|
|
23
|
-
"debugId": "
|
|
22
|
+
"mappings": "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",
|
|
23
|
+
"debugId": "E3D0DE47762728DB64756E2164756E21",
|
|
24
24
|
"names": []
|
|
25
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xrp.d.ts","sourceRoot":"","sources":["../../../../src/ledger/clients/xrp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAClH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"xrp.d.ts","sourceRoot":"","sources":["../../../../src/ledger/clients/xrp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,KAAK,mBAAmB,EAAiD,MAAM,kBAAkB,CAAC;AAClH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAmBpC,eAAO,MAAM,SAAS,GAAU,iBAAiB,mBAAmB;;wBAOjC,OAAO,GAAG,WAAW;;;;EAkBvD,CAAC"}
|
package/package.json
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"@ledgerhq/hw-transport": "~6.31.0",
|
|
14
14
|
"@ledgerhq/hw-transport-webusb": "~6.29.0",
|
|
15
15
|
"@ledgerhq/wallet-api-client": "~1.9.0",
|
|
16
|
-
"@swapkit/helpers": "4.0.
|
|
17
|
-
"@swapkit/toolboxes": "4.0.
|
|
16
|
+
"@swapkit/helpers": "4.0.7",
|
|
17
|
+
"@swapkit/toolboxes": "4.0.7",
|
|
18
18
|
"ethers": "^6.14.0",
|
|
19
19
|
"ts-pattern": "^5.7.0"
|
|
20
20
|
},
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"type-check:go": "tsgo"
|
|
73
73
|
},
|
|
74
74
|
"type": "module",
|
|
75
|
-
"version": "4.1.
|
|
75
|
+
"version": "4.1.6"
|
|
76
76
|
}
|