@polkahub/ledger 0.2.1 → 0.3.0
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/provider.js +1 -1
- package/dist/provider.js.map +1 -1
- package/package.json +5 -5
package/dist/provider.js
CHANGED
|
@@ -117,7 +117,7 @@ let usingLedger = false;
|
|
|
117
117
|
async function initializeLedgerSigner(createTransport) {
|
|
118
118
|
if (!globalThis.Buffer) {
|
|
119
119
|
const bufferModule = await import('buffer');
|
|
120
|
-
globalThis.Buffer = bufferModule.Buffer;
|
|
120
|
+
globalThis.Buffer = bufferModule.default?.Buffer ?? bufferModule.Buffer;
|
|
121
121
|
}
|
|
122
122
|
if (usingLedger) throw new AlreadyInUseError();
|
|
123
123
|
usingLedger = true;
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sources":["../src/provider.ts"],"sourcesContent":["import type Transport from \"@ledgerhq/hw-transport\";\nimport { LedgerSigner } from \"@polkadot-api/ledger-signer\";\nimport {\n Account,\n AccountAddress,\n localStorageProvider,\n persistedState,\n PersistenceProvider,\n Plugin,\n} from \"@polkahub/plugin\";\nimport { DefaultedStateObservable, withDefault } from \"@react-rxjs/core\";\nimport { AccountId, type PolkadotSigner } from \"polkadot-api\";\nimport {\n catchError,\n combineLatest,\n concatMap,\n finalize,\n from,\n map,\n Observable,\n switchMap,\n} from \"rxjs\";\n\nexport const ledgerProviderId = \"ledger\";\n\nexport interface LedgerAccountInfo {\n address: AccountAddress;\n deviceId: number;\n index: number;\n}\nexport interface LedgerAccount extends Account {\n provider: \"ledger\";\n deviceId: number;\n index: number;\n}\n\nexport interface LedgerProvider extends Plugin<LedgerAccount> {\n id: \"ledger\";\n accounts$: DefaultedStateObservable<LedgerAccount[]>;\n\n setAccounts: (payload: LedgerAccountInfo[]) => void;\n addAccount: (payload: LedgerAccountInfo) => LedgerAccount;\n removeAccount: (payload: LedgerAccountInfo) => void;\n\n getLedgerAccounts$: (idx: Array<number>) => Observable<LedgerAccountInfo>;\n}\n\nexport type NetworkInfo = {\n decimals: number;\n tokenSymbol: string;\n};\n\nexport const createLedgerProvider = (\n createTransport: () => Promise<Transport>,\n getNetworkInfo: () => Promise<NetworkInfo>,\n opts?: Partial<{\n persist: PersistenceProvider;\n }>\n): LedgerProvider => {\n const { persist } = {\n persist: localStorageProvider(\"ledger-acc\"),\n ...opts,\n };\n let ss58Format = 42;\n\n const [ledgerAccounts$, setLedgerAccounts] = persistedState(\n persist,\n [] as LedgerAccountInfo[]\n );\n\n const getLedgerAccounts$ = (\n idxs: Array<number>\n ): Observable<LedgerAccountInfo> =>\n from(initializeLedgerSigner(createTransport)).pipe(\n switchMap((ledger) =>\n combineLatest({\n ledger: [ledger],\n deviceId: ledger.ledgerSigner.deviceId(),\n }).pipe(\n catchError((ex) => {\n ledger.close();\n throw ex;\n })\n )\n ),\n switchMap(({ ledger, deviceId }) =>\n from(idxs).pipe(\n concatMap(async (idx) => {\n const pk = await ledger.ledgerSigner.getPubkey(idx);\n return {\n address: AccountId(ss58Format).dec(pk),\n deviceId,\n index: idx,\n };\n }),\n finalize(() => ledger.close())\n )\n )\n );\n\n const createLedgerSigner = (account: LedgerAccountInfo): PolkadotSigner => {\n const publicKey = AccountId().enc(account.address);\n\n const operateWithSigner = async <R>(\n cb: (signer: PolkadotSigner) => Promise<R>\n ) => {\n const { ledgerSigner, close } = await initializeLedgerSigner(\n createTransport\n );\n try {\n const info = await getNetworkInfo();\n\n const signer = await ledgerSigner.getPolkadotSigner(\n info,\n account.index\n );\n if (!pkAreEq(publicKey, signer.publicKey)) {\n throw new Error(\"Device mismatch\");\n }\n\n return await cb(signer);\n } finally {\n close();\n }\n };\n\n return {\n publicKey,\n signBytes: (...args) =>\n operateWithSigner((signer) => signer.signBytes(...args)),\n signTx: (...args) =>\n operateWithSigner((signer) => signer.signTx(...args)),\n };\n };\n\n const toAccount = (info: LedgerAccountInfo): LedgerAccount => ({\n provider: ledgerProviderId,\n ...info,\n signer: createLedgerSigner(info),\n });\n\n const accounts$ = ledgerAccounts$.pipeState(\n map((accounts) => accounts.map(toAccount)),\n withDefault([])\n );\n\n const accountEq = (a: LedgerAccountInfo, b: LedgerAccountInfo) =>\n a.deviceId === b.deviceId && a.index === b.index;\n return {\n id: ledgerProviderId,\n deserialize: (acc) =>\n toAccount({\n address: acc.address,\n deviceId: (acc.extra as LedgerAccountInfo).deviceId,\n index: (acc.extra as LedgerAccountInfo).index,\n }),\n serialize: ({ address, deviceId, index, provider }) => ({\n address,\n provider,\n extra: { deviceId, index },\n }),\n eq: accountEq,\n accounts$,\n setAccounts: setLedgerAccounts,\n addAccount: (account) => {\n setLedgerAccounts((v) => {\n const set = new Set(v);\n set.add(account);\n return [...set];\n });\n return toAccount(account);\n },\n removeAccount: (account) =>\n setLedgerAccounts((v) => v.filter((acc) => !accountEq(acc, account))),\n getLedgerAccounts$,\n receiveContext(context) {\n ss58Format = context.ss58Format;\n },\n };\n};\n\nconst pkAreEq = (a: Uint8Array, b: Uint8Array) => a.every((v, i) => b[i] === v);\n\nexport class AlreadyInUseError extends Error {\n constructor() {\n super(\"Device already in use\");\n }\n}\n\nlet usingLedger = false;\nasync function initializeLedgerSigner(\n createTransport: () => Promise<Transport>\n) {\n if (!globalThis.Buffer) {\n const bufferModule = await import(\"buffer\");\n globalThis.Buffer = bufferModule.Buffer;\n }\n\n if (usingLedger) throw new AlreadyInUseError();\n usingLedger = true;\n\n let transport: Transport;\n try {\n transport = await createTransport();\n } catch (ex) {\n usingLedger = false;\n throw ex;\n }\n\n const close = () => {\n usingLedger = false;\n transport.close();\n };\n\n try {\n const ledgerSigner = new LedgerSigner(transport);\n return { ledgerSigner, transport, close };\n } catch (ex) {\n close();\n throw ex;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"provider.js","sources":["../src/provider.ts"],"sourcesContent":["import type Transport from \"@ledgerhq/hw-transport\";\nimport { LedgerSigner } from \"@polkadot-api/ledger-signer\";\nimport {\n Account,\n AccountAddress,\n localStorageProvider,\n persistedState,\n PersistenceProvider,\n Plugin,\n} from \"@polkahub/plugin\";\nimport { DefaultedStateObservable, withDefault } from \"@react-rxjs/core\";\nimport { AccountId, type PolkadotSigner } from \"polkadot-api\";\nimport {\n catchError,\n combineLatest,\n concatMap,\n finalize,\n from,\n map,\n Observable,\n switchMap,\n} from \"rxjs\";\n\nexport const ledgerProviderId = \"ledger\";\n\nexport interface LedgerAccountInfo {\n address: AccountAddress;\n deviceId: number;\n index: number;\n}\nexport interface LedgerAccount extends Account {\n provider: \"ledger\";\n deviceId: number;\n index: number;\n}\n\nexport interface LedgerProvider extends Plugin<LedgerAccount> {\n id: \"ledger\";\n accounts$: DefaultedStateObservable<LedgerAccount[]>;\n\n setAccounts: (payload: LedgerAccountInfo[]) => void;\n addAccount: (payload: LedgerAccountInfo) => LedgerAccount;\n removeAccount: (payload: LedgerAccountInfo) => void;\n\n getLedgerAccounts$: (idx: Array<number>) => Observable<LedgerAccountInfo>;\n}\n\nexport type NetworkInfo = {\n decimals: number;\n tokenSymbol: string;\n};\n\nexport const createLedgerProvider = (\n createTransport: () => Promise<Transport>,\n getNetworkInfo: () => Promise<NetworkInfo>,\n opts?: Partial<{\n persist: PersistenceProvider;\n }>\n): LedgerProvider => {\n const { persist } = {\n persist: localStorageProvider(\"ledger-acc\"),\n ...opts,\n };\n let ss58Format = 42;\n\n const [ledgerAccounts$, setLedgerAccounts] = persistedState(\n persist,\n [] as LedgerAccountInfo[]\n );\n\n const getLedgerAccounts$ = (\n idxs: Array<number>\n ): Observable<LedgerAccountInfo> =>\n from(initializeLedgerSigner(createTransport)).pipe(\n switchMap((ledger) =>\n combineLatest({\n ledger: [ledger],\n deviceId: ledger.ledgerSigner.deviceId(),\n }).pipe(\n catchError((ex) => {\n ledger.close();\n throw ex;\n })\n )\n ),\n switchMap(({ ledger, deviceId }) =>\n from(idxs).pipe(\n concatMap(async (idx) => {\n const pk = await ledger.ledgerSigner.getPubkey(idx);\n return {\n address: AccountId(ss58Format).dec(pk),\n deviceId,\n index: idx,\n };\n }),\n finalize(() => ledger.close())\n )\n )\n );\n\n const createLedgerSigner = (account: LedgerAccountInfo): PolkadotSigner => {\n const publicKey = AccountId().enc(account.address);\n\n const operateWithSigner = async <R>(\n cb: (signer: PolkadotSigner) => Promise<R>\n ) => {\n const { ledgerSigner, close } = await initializeLedgerSigner(\n createTransport\n );\n try {\n const info = await getNetworkInfo();\n\n const signer = await ledgerSigner.getPolkadotSigner(\n info,\n account.index\n );\n if (!pkAreEq(publicKey, signer.publicKey)) {\n throw new Error(\"Device mismatch\");\n }\n\n return await cb(signer);\n } finally {\n close();\n }\n };\n\n return {\n publicKey,\n signBytes: (...args) =>\n operateWithSigner((signer) => signer.signBytes(...args)),\n signTx: (...args) =>\n operateWithSigner((signer) => signer.signTx(...args)),\n };\n };\n\n const toAccount = (info: LedgerAccountInfo): LedgerAccount => ({\n provider: ledgerProviderId,\n ...info,\n signer: createLedgerSigner(info),\n });\n\n const accounts$ = ledgerAccounts$.pipeState(\n map((accounts) => accounts.map(toAccount)),\n withDefault([])\n );\n\n const accountEq = (a: LedgerAccountInfo, b: LedgerAccountInfo) =>\n a.deviceId === b.deviceId && a.index === b.index;\n return {\n id: ledgerProviderId,\n deserialize: (acc) =>\n toAccount({\n address: acc.address,\n deviceId: (acc.extra as LedgerAccountInfo).deviceId,\n index: (acc.extra as LedgerAccountInfo).index,\n }),\n serialize: ({ address, deviceId, index, provider }) => ({\n address,\n provider,\n extra: { deviceId, index },\n }),\n eq: accountEq,\n accounts$,\n setAccounts: setLedgerAccounts,\n addAccount: (account) => {\n setLedgerAccounts((v) => {\n const set = new Set(v);\n set.add(account);\n return [...set];\n });\n return toAccount(account);\n },\n removeAccount: (account) =>\n setLedgerAccounts((v) => v.filter((acc) => !accountEq(acc, account))),\n getLedgerAccounts$,\n receiveContext(context) {\n ss58Format = context.ss58Format;\n },\n };\n};\n\nconst pkAreEq = (a: Uint8Array, b: Uint8Array) => a.every((v, i) => b[i] === v);\n\nexport class AlreadyInUseError extends Error {\n constructor() {\n super(\"Device already in use\");\n }\n}\n\nlet usingLedger = false;\nasync function initializeLedgerSigner(\n createTransport: () => Promise<Transport>\n) {\n if (!globalThis.Buffer) {\n const bufferModule = await import(\"buffer\");\n globalThis.Buffer = bufferModule.default?.Buffer ?? bufferModule.Buffer;\n }\n\n if (usingLedger) throw new AlreadyInUseError();\n usingLedger = true;\n\n let transport: Transport;\n try {\n transport = await createTransport();\n } catch (ex) {\n usingLedger = false;\n throw ex;\n }\n\n const close = () => {\n usingLedger = false;\n transport.close();\n };\n\n try {\n const ledgerSigner = new LedgerSigner(transport);\n return { ledgerSigner, transport, close };\n } catch (ex) {\n close();\n throw ex;\n }\n}\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@polkahub/ledger",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"lucide-react": "^0.552.0",
|
|
32
32
|
"polkadot-api": "^1.20.1",
|
|
33
33
|
"rxjs": "^7.8.2",
|
|
34
|
-
"@polkahub/context": "0.
|
|
35
|
-
"@polkahub/plugin": "0.
|
|
36
|
-
"@polkahub/select-account": "0.
|
|
37
|
-
"@polkahub/ui-components": "0.
|
|
34
|
+
"@polkahub/context": "0.3.0",
|
|
35
|
+
"@polkahub/plugin": "0.3.0",
|
|
36
|
+
"@polkahub/select-account": "0.3.0",
|
|
37
|
+
"@polkahub/ui-components": "0.3.0"
|
|
38
38
|
},
|
|
39
39
|
"peerDependencies": {
|
|
40
40
|
"@types/react": "^19.2.2",
|