@swapkit/wallet-hardware 4.9.30 → 4.9.32
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/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/keepkey/index.cjs +2 -2
- package/dist/keepkey/index.cjs.map +5 -3
- package/dist/ledger/index.cjs +2 -2
- package/dist/ledger/index.cjs.map +9 -5
- package/dist/ledger/index.js +2 -2
- package/dist/ledger/index.js.map +3 -3
- package/dist/trezor/index.cjs +2 -2
- package/dist/trezor/index.cjs.map +4 -3
- package/dist/types/keepkey/chains/ripple.d.ts +4 -1
- package/dist/types/keepkey/chains/ripple.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/ledger/index.ts +2 -2
- package/dist/chunk-6y08dbf9.js +0 -4
- package/dist/chunk-6y08dbf9.js.map +0 -10
- package/dist/chunk-8sth2w05.js +0 -4
- package/dist/chunk-8sth2w05.js.map +0 -10
- package/dist/chunk-a2mrvqfy.js +0 -4
- package/dist/chunk-a2mrvqfy.js.map +0 -10
- package/dist/chunk-emhkygmy.js +0 -4
- package/dist/chunk-emhkygmy.js.map +0 -10
- package/dist/chunk-hegt01q0.js +0 -4
- package/dist/chunk-hegt01q0.js.map +0 -10
- package/dist/chunk-p94hfx8x.js +0 -4
- package/dist/chunk-p94hfx8x.js.map +0 -9
- package/dist/chunk-y3yvq1zt.js +0 -4
- package/dist/chunk-y3yvq1zt.js.map +0 -10
package/dist/chunk-hegt01q0.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var J=require("@scure/base"),V=require("@swapkit/helpers");async function Y(q,z){let{RawTx:B}=await import("@swapkit/utxo-signer"),{getUtxoApi:D}=await import("@swapkit/toolboxes/utxo"),G=[];for(let j=0;j<q.inputsLength;j++){let f=q.getInput(j);if(!f.txid||f.index===void 0)throw Error(`PSBT input ${j} is missing txid/index`);let M=J.hex.encode(f.txid),N=f.nonWitnessUtxo?J.hex.encode(B.encode(f.nonWitnessUtxo)):await D(z).getRawTx(M);if(!N)throw new V.SwapKitError("wallet_ledger_invalid_params",{chain:z,inputIndex:j,reason:"Unable to resolve previous transaction hex for Ledger signing",txid:M});let O=f.witnessUtxo?{script:f.witnessUtxo.script,value:Number(f.witnessUtxo.amount)}:void 0,Q=f.index!==void 0?f.nonWitnessUtxo?.outputs?.[f.index]:void 0,X=O?.value??(Q?Number(Q.amount):0);G.push({hash:M,index:f.index,txHex:N,value:X,witnessUtxo:O})}return G}async function Z({legacyClient:q,chain:z,tx:B}){let D=await Y(B,z);return q.signTransaction(B,D)}function _({legacyClient:q,chain:z,address:B}){return{getAddress:async()=>B,signTransaction:async(D)=>{let G=await Z({chain:z,legacyClient:q,tx:D}),{Transaction:j}=await import("@swapkit/utxo-signer");return j.fromRaw(J.hex.decode(G))}}}
|
|
2
|
-
|
|
3
|
-
//# debugId=2487B32E84D3144664756E2164756E21
|
|
4
|
-
//# sourceMappingURL=chunk-hegt01q0.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/ledger/clients/utxo-legacy-adapter.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import { hex } from \"@scure/base\";\nimport { SwapKitError, type UTXOChain } from \"@swapkit/helpers\";\nimport type { UTXOType } from \"@swapkit/toolboxes/utxo\";\nimport type { Transaction } from \"@swapkit/utxo-signer\";\n\n/**\n * Extract per-input metadata from a V3 PSBT in the shape the legacy\n * `@ledgerhq/hw-app-btc.createPaymentTransaction` adapter expects.\n *\n * The legacy Ledger signer still needs the full previous tx hex for\n * `btcApp.splitTransaction(hex)`. Some V3 PSBTs only include `witnessUtxo`,\n * so we fetch the previous raw tx when `nonWitnessUtxo` is absent.\n *\n * Single-address account assumption: all inputs share our derivation path.\n */\nexport async function extractInputsFromPsbt(tx: Transaction, chain: UTXOChain): Promise<UTXOType[]> {\n const { RawTx } = await import(\"@swapkit/utxo-signer\");\n const { getUtxoApi } = await import(\"@swapkit/toolboxes/utxo\");\n const inputs: UTXOType[] = [];\n\n for (let i = 0; i < tx.inputsLength; i++) {\n const input = tx.getInput(i);\n\n if (!input.txid || input.index === undefined) {\n throw new Error(`PSBT input ${i} is missing txid/index`);\n }\n\n const txid = hex.encode(input.txid);\n const txHex = input.nonWitnessUtxo\n ? hex.encode(RawTx.encode(input.nonWitnessUtxo))\n : await getUtxoApi(chain).getRawTx(txid);\n if (!txHex) {\n throw new SwapKitError(\"wallet_ledger_invalid_params\", {\n chain,\n inputIndex: i,\n reason: \"Unable to resolve previous transaction hex for Ledger signing\",\n txid,\n });\n }\n const witnessUtxo = input.witnessUtxo\n ? { script: input.witnessUtxo.script, value: Number(input.witnessUtxo.amount) }\n : undefined;\n const nonWitnessPrevout = input.index !== undefined ? input.nonWitnessUtxo?.outputs?.[input.index] : undefined;\n const value = witnessUtxo?.value ?? (nonWitnessPrevout ? Number(nonWitnessPrevout.amount) : 0);\n\n inputs.push({ hash: txid, index: input.index, txHex, value, witnessUtxo } as UTXOType);\n }\n\n return inputs;\n}\n\nexport async function signLegacyPsbtTransaction({\n legacyClient,\n chain,\n tx,\n}: {\n legacyClient: { signTransaction: (tx: Transaction, inputUtxos: UTXOType[]) => Promise<string> };\n chain: UTXOChain;\n tx: Transaction;\n}): Promise<string> {\n const inputUtxos = await extractInputsFromPsbt(tx, chain);\n return legacyClient.signTransaction(tx, inputUtxos);\n}\n\n/**\n * Build a toolbox-compatible signer from the existing legacy Ledger UTXO\n * client. Callers that need sign-and-broadcast should broadcast the raw hex\n * from `signLegacyPsbtTransaction` directly; the legacy Ledger app returns an\n * already-finalized transaction that should not be passed back to toolbox\n * finalization.\n */\nexport function createLegacyPsbtSigner({\n legacyClient,\n chain,\n address,\n}: {\n legacyClient: { signTransaction: (tx: Transaction, inputUtxos: UTXOType[]) => Promise<string> };\n chain: UTXOChain;\n address: string;\n}) {\n return {\n getAddress: async () => address,\n signTransaction: async (tx: Transaction): Promise<Transaction> => {\n const signedTxHex = await signLegacyPsbtTransaction({ chain, legacyClient, tx });\n\n const { Transaction: TxClass } = await import(\"@swapkit/utxo-signer\");\n // `Transaction.fromRaw` parses a serialised tx (no PSBT envelope) — exactly\n // what `createPaymentTransaction` returns.\n return TxClass.fromRaw(hex.decode(signedTxHex));\n },\n };\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "AAAoB,IAApB,yBACA,8BAcA,eAAsB,CAAqB,CAAC,EAAiB,EAAuC,CAClG,IAAQ,SAAU,KAAa,iCACvB,cAAe,KAAa,mCAC9B,EAAqB,CAAC,EAE5B,QAAS,EAAI,EAAG,EAAI,EAAG,aAAc,IAAK,CACxC,IAAM,EAAQ,EAAG,SAAS,CAAC,EAE3B,GAAI,CAAC,EAAM,MAAQ,EAAM,QAAU,OACjC,MAAU,MAAM,cAAc,yBAAyB,EAGzD,IAAM,EAAO,MAAI,OAAO,EAAM,IAAI,EAC5B,EAAQ,EAAM,eAChB,MAAI,OAAO,EAAM,OAAO,EAAM,cAAc,CAAC,EAC7C,MAAM,EAAW,CAAK,EAAE,SAAS,CAAI,EACzC,GAAI,CAAC,EACH,MAAM,IAAI,eAAa,+BAAgC,CACrD,QACA,WAAY,EACZ,OAAQ,gEACR,MACF,CAAC,EAEH,IAAM,EAAc,EAAM,YACtB,CAAE,OAAQ,EAAM,YAAY,OAAQ,MAAO,OAAO,EAAM,YAAY,MAAM,CAAE,EAC5E,OACE,EAAoB,EAAM,QAAU,OAAY,EAAM,gBAAgB,UAAU,EAAM,OAAS,OAC/F,EAAQ,GAAa,QAAU,EAAoB,OAAO,EAAkB,MAAM,EAAI,GAE5F,EAAO,KAAK,CAAE,KAAM,EAAM,MAAO,EAAM,MAAO,QAAO,QAAO,aAAY,CAAa,EAGvF,OAAO,EAGT,eAAsB,CAAyB,EAC7C,eACA,QACA,MAKkB,CAClB,IAAM,EAAa,MAAM,EAAsB,EAAI,CAAK,EACxD,OAAO,EAAa,gBAAgB,EAAI,CAAU,EAU7C,SAAS,CAAsB,EACpC,eACA,QACA,WAKC,CACD,MAAO,CACL,WAAY,SAAY,EACxB,gBAAiB,MAAO,IAA0C,CAChE,IAAM,EAAc,MAAM,EAA0B,CAAE,QAAO,eAAc,IAAG,CAAC,GAEvE,YAAa,GAAY,KAAa,gCAG9C,OAAO,EAAQ,QAAQ,MAAI,OAAO,CAAW,CAAC,EAElD",
|
|
8
|
-
"debugId": "2487B32E84D3144664756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
package/dist/chunk-p94hfx8x.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var n=Object.create;var{getPrototypeOf:o,defineProperty:e,getOwnPropertyNames:k,getOwnPropertyDescriptor:p}=Object,l=Object.prototype.hasOwnProperty;function m(a){return this[a]}var q,r,u=(a,b,c)=>{var d=a!=null&&typeof a==="object";if(d){var h=b?q??=new WeakMap:r??=new WeakMap,i=h.get(a);if(i)return i}c=a!=null?n(o(a)):{};let f=b||!a||!a.__esModule?e(c,"default",{value:a,enumerable:!0}):c;for(let g of k(a))if(!l.call(f,g))e(f,g,{get:m.bind(a,g),enumerable:!0});if(d)h.set(a,f);return f},v=(a)=>{var b=(j??=new WeakMap).get(a),c;if(b)return b;if(b=e({},"__esModule",{value:!0}),a&&typeof a==="object"||typeof a==="function"){for(var d of k(a))if(!l.call(b,d))e(b,d,{get:m.bind(a,d),enumerable:!(c=p(a,d))||c.enumerable})}return j.set(a,b),b},j;var s=(a)=>a;function t(a,b){this[a]=s.bind(null,b)}var w=(a,b)=>{for(var c in b)e(a,c,{get:b[c],enumerable:!0,configurable:!0,set:t.bind(b,c)})};
|
|
2
|
-
|
|
3
|
-
//# debugId=38C1B53315535EB464756E2164756E21
|
|
4
|
-
//# sourceMappingURL=chunk-p94hfx8x.js.map
|
package/dist/chunk-y3yvq1zt.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var z=require("@swapkit/helpers"),P=()=>navigator?.usb,_=async()=>{let j=P();if(typeof j?.getDevices!=="function")return{};let{ledgerUSBVendorId:F}=await import("@ledgerhq/devices"),G=(await j?.getDevices()).filter((M)=>M.vendorId===F);if(G.length>0)return G[0];return j?.requestDevice({filters:[{vendorId:F}]})},O=async()=>{let j=await _();if(!j)throw new z.SwapKitError("wallet_ledger_device_not_found");if(j.opened||await j.open(),j.configuration===null)await j.selectConfiguration(1);try{await j.reset()}catch{}let F=j.configuration??j.configurations?.[0],y=F?.interfaces.find(({alternates:m})=>m.some(({interfaceClass:J})=>J===255))||F?.interfaces.find(({alternates:m})=>m.some(({interfaceClass:J})=>J===3));if(!y)throw await j.close(),new z.SwapKitError("wallet_ledger_connection_error");let G=y.alternates?.find(({interfaceClass:m})=>m===3)?.interfaceClass,M=y.alternates?.find(({interfaceClass:m})=>m===255)?.interfaceClass;if(G&&!M){let m=(await import("@ledgerhq/hw-transport-webhid")).default;if(!await m.isSupported())throw await j.close(),new z.SwapKitError("wallet_ledger_webhid_not_supported");return await m.create()}try{await j.claimInterface(y.interfaceNumber)}catch(m){throw await j.close(),new z.SwapKitError("wallet_ledger_connection_claimed",m)}let Q=(await import("@ledgerhq/hw-transport-webusb")).default;if(!await Q.isSupported())throw new z.SwapKitError("wallet_ledger_webusb_not_supported");let{DisconnectedDevice:Z}=await import("@ledgerhq/errors"),X=new Q(j,y.interfaceNumber),Y=(m)=>{if(j===m.device)P()?.removeEventListener("disconnect",Y),X._emitDisconnect(new Z)};return P()?.addEventListener("disconnect",Y),X};
|
|
2
|
-
|
|
3
|
-
//# debugId=FCBF0AF43D42884C64756E2164756E21
|
|
4
|
-
//# sourceMappingURL=chunk-y3yvq1zt.js.map
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/ledger/helpers/getLedgerTransport.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import type Transport from \"@ledgerhq/hw-transport\";\nimport { SwapKitError } from \"@swapkit/helpers\";\n\nconst getNavigatorUsb = () =>\n navigator?.usb as unknown as {\n getDevices: () => Promise<any[]>;\n requestDevice: (requestObject: any) => Promise<any>;\n removeEventListener: (event: string, callback: (e: any) => void) => void;\n addEventListener: (event: string, callback: (e: any) => void) => void;\n };\n\nconst getLedgerDevices = async (): Promise<USBDevice> => {\n const navigatorUsb = getNavigatorUsb();\n\n if (typeof navigatorUsb?.getDevices !== \"function\") return {} as USBDevice;\n const { ledgerUSBVendorId } = await import(\"@ledgerhq/devices\");\n\n const devices = await navigatorUsb?.getDevices();\n const existingDevices = devices.filter((d) => d.vendorId === ledgerUSBVendorId);\n if (existingDevices.length > 0) return existingDevices[0];\n\n return navigatorUsb?.requestDevice({ filters: [{ vendorId: ledgerUSBVendorId }] });\n};\n\nexport const getLedgerTransport = async (): Promise<Transport> => {\n const device = await getLedgerDevices();\n\n if (!device) {\n throw new SwapKitError(\"wallet_ledger_device_not_found\");\n }\n\n device.opened || (await device.open());\n if (device.configuration === null) await device.selectConfiguration(1);\n\n try {\n await device.reset();\n } catch {\n // reset fails on devices that are already open\n }\n\n const configuration = device.configuration ?? device.configurations?.[0];\n\n const iface =\n configuration?.interfaces.find(({ alternates }: { alternates: { interfaceClass: number }[] }) =>\n alternates.some(({ interfaceClass }) => interfaceClass === 0xff),\n ) ||\n configuration?.interfaces.find(({ alternates }: { alternates: { interfaceClass: number }[] }) =>\n alternates.some(({ interfaceClass }) => interfaceClass === 0x03),\n );\n\n if (!iface) {\n await device.close();\n throw new SwapKitError(\"wallet_ledger_connection_error\");\n }\n\n const klass0x03 = (iface.alternates as any[])?.find(\n ({ interfaceClass }: { interfaceClass: number }) => interfaceClass === 0x03,\n )?.interfaceClass as number;\n\n const klass0xff = (iface.alternates as any[])?.find(\n ({ interfaceClass }: { interfaceClass: number }) => interfaceClass === 0xff,\n )?.interfaceClass as number;\n\n if (klass0x03 && !klass0xff) {\n // -------- HID class (NEAR, ETH, SOL, etc.) -> WebHID transport --------\n const TransportWebHID = (await import(\"@ledgerhq/hw-transport-webhid\")).default;\n const supported = await TransportWebHID.isSupported();\n if (!supported) {\n await device.close();\n throw new SwapKitError(\"wallet_ledger_webhid_not_supported\");\n }\n const transport = await TransportWebHID.create();\n return transport;\n }\n\n try {\n await device.claimInterface(iface.interfaceNumber);\n } catch (error: unknown) {\n await device.close();\n\n throw new SwapKitError(\"wallet_ledger_connection_claimed\", error);\n }\n\n const Transport = (await import(\"@ledgerhq/hw-transport-webusb\")).default;\n const isSupported = await Transport.isSupported();\n if (!isSupported) throw new SwapKitError(\"wallet_ledger_webusb_not_supported\");\n\n const { DisconnectedDevice } = await import(\"@ledgerhq/errors\");\n\n const transport = new Transport(device, iface.interfaceNumber);\n\n const onDisconnect = (e: any) => {\n if (device === e.device) {\n getNavigatorUsb()?.removeEventListener(\"disconnect\", onDisconnect);\n\n transport._emitDisconnect(new DisconnectedDevice());\n }\n };\n getNavigatorUsb()?.addEventListener(\"disconnect\", onDisconnect);\n\n return transport as Transport;\n};\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": "AAC6B,IAA7B,8BAEM,EAAkB,IACtB,WAAW,IAOP,EAAmB,SAAgC,CACvD,IAAM,EAAe,EAAgB,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,SAAgC,CAChE,IAAM,EAAS,MAAM,EAAiB,EAEtC,GAAI,CAAC,EACH,MAAM,IAAI,eAAa,gCAAgC,EAIzD,GADA,EAAO,QAAW,MAAM,EAAO,KAAK,EAChC,EAAO,gBAAkB,KAAM,MAAM,EAAO,oBAAoB,CAAC,EAErE,GAAI,CACF,MAAM,EAAO,MAAM,EACnB,KAAM,EAIR,IAAM,EAAgB,EAAO,eAAiB,EAAO,iBAAiB,GAEhE,EACJ,GAAe,WAAW,KAAK,EAAG,gBAChC,EAAW,KAAK,EAAG,oBAAqB,IAAmB,GAAI,CACjE,GACA,GAAe,WAAW,KAAK,EAAG,gBAChC,EAAW,KAAK,EAAG,oBAAqB,IAAmB,CAAI,CACjE,EAEF,GAAI,CAAC,EAEH,MADA,MAAM,EAAO,MAAM,EACb,IAAI,eAAa,gCAAgC,EAGzD,IAAM,EAAa,EAAM,YAAsB,KAC7C,EAAG,oBAAiD,IAAmB,CACzE,GAAG,eAEG,EAAa,EAAM,YAAsB,KAC7C,EAAG,oBAAiD,IAAmB,GACzE,GAAG,eAEH,GAAI,GAAa,CAAC,EAAW,CAE3B,IAAM,GAAmB,KAAa,0CAAkC,QAExE,GAAI,CADc,MAAM,EAAgB,YAAY,EAGlD,MADA,MAAM,EAAO,MAAM,EACb,IAAI,eAAa,oCAAoC,EAG7D,OADkB,MAAM,EAAgB,OAAO,EAIjD,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,GAAI,CADgB,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,EAAgB,GAAG,oBAAoB,aAAc,CAAY,EAEjE,EAAU,gBAAgB,IAAI,CAAoB,GAKtD,OAFA,EAAgB,GAAG,iBAAiB,aAAc,CAAY,EAEvD",
|
|
8
|
-
"debugId": "FCBF0AF43D42884C64756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|