{"_id":"@consensys/ledgerhq-metamask-keyring","_rev":"31-6bda7f946ac38c5a98de977cba42316f","name":"@consensys/ledgerhq-metamask-keyring","dist-tags":{"stable":"0.0.4","preview":"0.0.6","latest":"0.0.10"},"versions":{"0.0.1-preview":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.1-preview","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.1-preview","maintainers":[{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"eric.lin@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"63cbf13a0f638681cb96f340399f807165818917","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.1-preview.tgz","fileCount":8,"integrity":"sha512-JaVT2KngSlW1iimaKqbaYo9CWXsEhZs3vs6jRw+soNmpReirEGdoreMJZAkFirrJiVR3nm0De6g+F0kbXZFUXQ==","signatures":[{"sig":"MEQCIBoWUAANEBXJx03g4frVK8FM/so5NTCeFI+Oz8Edjh3pAiBo9fh9GllViOKLUkeZLB2UmnGnTqybSZ1CI0XX6jseJA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38549},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","husky":"^7.0.4","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^12.3.6","eslint-plugin-jest":"^26.1.1","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^16.1.3","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.1-preview_1697087915852_0.658512400612298","host":"s3://npm-registry-packages"}},"0.0.1-preview.2":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.1-preview.2","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.1-preview.2","maintainers":[{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"eric.lin@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"910e8baa54cc75f4786bbf90b612090da1c7fdbc","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.1-preview.2.tgz","fileCount":8,"integrity":"sha512-CC4fZ4/WDWd5dH8tiuFNkZgGSzuS0EXg+LqwMhhvosksP4t/UJXJ77yZ8rQpuUsXZoYLQ1BLp0btPCDcqCwy+Q==","signatures":[{"sig":"MEUCIQDfLpnakbH0GnGfMM67s5tUt7YbCCgW+HJcCJJoU+MOdwIgDZBM2c7WowcjiQ+MTht+6U6OG8363jj1e3Kchw6GQBc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":38551},"main":"dist/index.js","types":"dist/index.d.ts","readme":"# Metamask Keyring\n\nThis repository contains a node module that makes it easy to integrate the Metamask Mobile app through the app's generic KeyringController / Keyring approach.\n\nThe Metamask Ethereum [Keyring Controller](https://github.com/MetaMask/KeyringController) is an abstraction to work with multiple keyrings that serve as bridges to external wallet / HW wallet providers. The component needs to adhere to [the Keyring Class protocol](https://github.com/MetaMask/KeyringController) to support Ethereum based actions from the Ledger Nano X device.\n\nAs such is provides the following members used by a top level KeyringController:\n\n- `Keyring.type` - A class property that returns a unique string describing the Keyring. (value fixed to 'Ledger')\n- `serialize()` - Returns any JSON-serializable JavaScript object that you like to store as the state of the LedgerKeyring. It will be encoded to a string, encrypted with the user's password, and stored to disk.\n- `deserialize(object)` - Restores the internal state based on the previously store keyring state.\n- `addAccounts(n)` - Retrieves an account from the ledger and stores the address on the PK. In the current implementation we are supporting a single default account and won't allow adding more.\n- `getAccounts()` - Retrieves the list of accounts store in the keyring state\n- `signTransaction(address, transaction)` - Interacts with the Ledger Device to sign an [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) transaction\n- `signMessage / signPersonalMessage(address, data)` - Takes a hash data and signs it using the Ledger Device\n- `signTypedData(address, data, versionInformation)` - Signs a typed message (EIP712) using the Ledger Device. Only V4 is supported.\n- `getName()` - Returns a user friendly name that can be used as label for Metamask accounts\n- `getAppAndVersion()` - Returns the currently running application and version that can be used as a \"pre-check\" of conditions before trying to sign.\n- `forgetDevice()` - Resets the state of the keyring\n- `setTransport()` - Specifies the transport to use when talking to the Ledger Device.\n\n## Usage\n\n```javascript\nconst KeyringController = require('eth-keyring-controller');\nconst LedgerKeyring = require('@ledgerhq/metamask-keyring');\nconst BluetoothTransport = require(\"@ledgerhq/react-native-hw-transport-ble\");\n\nconst keyringController = new KeyringController({\n  keyringTypes: [LedgerKeyring],\n  initState: initState.KeyringController,\n});\n\n// Connect to device first\nconst device = ...; // get the device to econnect to\nconst transport = await BluetoothTransport.open(device);\n\n// Perform signing action\nconst tx = ...; // ethereumjs-tx object\nconst address = ...;\n\nconst signedTx = await keyringController.signTransaction(address, tx);\n```\n","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","husky":"^7.0.4","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^12.3.6","eslint-plugin-jest":"^26.1.1","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^16.1.3","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.1-preview.2_1697088956781_0.20350791448013217","host":"s3://npm-registry-packages"}},"0.0.2":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.2","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.2","maintainers":[{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"eric.lin@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"3521a572fe108326aa3e5faf5d832055ff7b8f28","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.2.tgz","fileCount":8,"integrity":"sha512-5uEb0nCjkersMy5Fr1dCEsdtOc3xn3yaVmy6HFCxkBGCOESH5K+sqLEYuZwp86755LPpiEmJnR7ckoQCUzSjjA==","signatures":[{"sig":"MEQCIHHsuMzHaHrtGqs8x8MqACltioT1+BrK7dJZsLAWuclHAiBZ8KsG4aiOJOOAY6EBw6rjmtmDDJiJPudW9ahmMcZsrw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40590},"main":"dist/index.js","types":"dist/index.d.ts","readme":"# Metamask Keyring\n\nThis repository contains a node module that makes it easy to integrate the Metamask Mobile app through the app's generic KeyringController / Keyring approach.\n\nThe Metamask Ethereum [Keyring Controller](https://github.com/MetaMask/KeyringController) is an abstraction to work with multiple keyrings that serve as bridges to external wallet / HW wallet providers. The component needs to adhere to [the Keyring Class protocol](https://github.com/MetaMask/KeyringController) to support Ethereum based actions from the Ledger Nano X device.\n\nAs such is provides the following members used by a top level KeyringController:\n\n- `Keyring.type` - A class property that returns a unique string describing the Keyring. (value fixed to 'Ledger')\n- `serialize()` - Returns any JSON-serializable JavaScript object that you like to store as the state of the LedgerKeyring. It will be encoded to a string, encrypted with the user's password, and stored to disk.\n- `deserialize(object)` - Restores the internal state based on the previously store keyring state.\n- `addAccounts(n)` - Retrieves an account from the ledger and stores the address on the PK. In the current implementation we are supporting a single default account and won't allow adding more.\n- `getAccounts()` - Retrieves the list of accounts store in the keyring state\n- `signTransaction(address, transaction)` - Interacts with the Ledger Device to sign an [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) transaction\n- `signMessage / signPersonalMessage(address, data)` - Takes a hash data and signs it using the Ledger Device\n- `signTypedData(address, data, versionInformation)` - Signs a typed message (EIP712) using the Ledger Device. Only V4 is supported.\n- `getName()` - Returns a user friendly name that can be used as label for Metamask accounts\n- `getAppAndVersion()` - Returns the currently running application and version that can be used as a \"pre-check\" of conditions before trying to sign.\n- `forgetDevice()` - Resets the state of the keyring\n- `setTransport()` - Specifies the transport to use when talking to the Ledger Device.\n\n## Usage\n\n```javascript\nconst KeyringController = require('eth-keyring-controller');\nconst LedgerKeyring = require('@ledgerhq/metamask-keyring');\nconst BluetoothTransport = require(\"@ledgerhq/react-native-hw-transport-ble\");\n\nconst keyringController = new KeyringController({\n  keyringTypes: [LedgerKeyring],\n  initState: initState.KeyringController,\n});\n\n// Connect to device first\nconst device = ...; // get the device to econnect to\nconst transport = await BluetoothTransport.open(device);\n\n// Perform signing action\nconst tx = ...; // ethereumjs-tx object\nconst address = ...;\n\nconst signedTx = await keyringController.signTransaction(address, tx);\n```\n","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","husky":"^7.0.4","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^12.3.6","eslint-plugin-jest":"^26.1.1","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^16.1.3","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.2_1697205968869_0.3677651151971899","host":"s3://npm-registry-packages"}},"0.0.4":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.4","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.4","maintainers":[{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"eric.lin@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"353c446303198305fbd91c12d804d322bf3ec671","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.4.tgz","fileCount":8,"integrity":"sha512-xR6cKQElHqYHkVo8r6PAgR8owRbmOf/sa3nC9bW7amTUSpX5AJvxdyQFw4fVZwOFyjfh+JSD3c+c59JI5nZI/w==","signatures":[{"sig":"MEQCIGfWDUerx9JTGqSXKODpp37tKOfbvrxBl6Xmx18+ShlCAiAz87letnylphgZkzFI57SdSrRkzoXgPp/oo9G0wc9gHQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40590},"main":"dist/index.js","types":"dist/index.d.ts","readme":"# Metamask Keyring\n\nThis repository contains a node module that makes it easy to integrate the Metamask Mobile app through the app's generic KeyringController / Keyring approach.\n\nThe Metamask Ethereum [Keyring Controller](https://github.com/MetaMask/KeyringController) is an abstraction to work with multiple keyrings that serve as bridges to external wallet / HW wallet providers. The component needs to adhere to [the Keyring Class protocol](https://github.com/MetaMask/KeyringController) to support Ethereum based actions from the Ledger Nano X device.\n\nAs such is provides the following members used by a top level KeyringController:\n\n- `Keyring.type` - A class property that returns a unique string describing the Keyring. (value fixed to 'Ledger')\n- `serialize()` - Returns any JSON-serializable JavaScript object that you like to store as the state of the LedgerKeyring. It will be encoded to a string, encrypted with the user's password, and stored to disk.\n- `deserialize(object)` - Restores the internal state based on the previously store keyring state.\n- `addAccounts(n)` - Retrieves an account from the ledger and stores the address on the PK. In the current implementation we are supporting a single default account and won't allow adding more.\n- `getAccounts()` - Retrieves the list of accounts store in the keyring state\n- `signTransaction(address, transaction)` - Interacts with the Ledger Device to sign an [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) transaction\n- `signMessage / signPersonalMessage(address, data)` - Takes a hash data and signs it using the Ledger Device\n- `signTypedData(address, data, versionInformation)` - Signs a typed message (EIP712) using the Ledger Device. Only V4 is supported.\n- `getName()` - Returns a user friendly name that can be used as label for Metamask accounts\n- `getAppAndVersion()` - Returns the currently running application and version that can be used as a \"pre-check\" of conditions before trying to sign.\n- `forgetDevice()` - Resets the state of the keyring\n- `setTransport()` - Specifies the transport to use when talking to the Ledger Device.\n\n## Usage\n\n```javascript\nconst KeyringController = require('eth-keyring-controller');\nconst LedgerKeyring = require('@ledgerhq/metamask-keyring');\nconst BluetoothTransport = require(\"@ledgerhq/react-native-hw-transport-ble\");\n\nconst keyringController = new KeyringController({\n  keyringTypes: [LedgerKeyring],\n  initState: initState.KeyringController,\n});\n\n// Connect to device first\nconst device = ...; // get the device to econnect to\nconst transport = await BluetoothTransport.open(device);\n\n// Perform signing action\nconst tx = ...; // ethereumjs-tx object\nconst address = ...;\n\nconst signedTx = await keyringController.signTransaction(address, tx);\n```\n","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","husky":"^7.0.4","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^12.3.6","eslint-plugin-jest":"^26.1.1","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^8.5.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^16.1.3","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.4_1697207986716_0.7421556264575861","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.5","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.5","maintainers":[{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"eric.lin@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"8095b09dc016fc2ae29b58e2f06e02af242ec028","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.5.tgz","fileCount":8,"integrity":"sha512-UjzVXPll2Hup1R0f5L+6OQFNttSNJoCRsEfjkW9x0go3PYP1FHtC+NbF7V1Ox4uPcCN/D65TC6oY8GPJAIuS/w==","signatures":[{"sig":"MEYCIQDb8cPAnPYbE5VnHIlBN84WLuJ3WOJLt21dTReKiCiBIAIhAKHNK2JMsFYsZCrWF5pN3DFtynLL2OWUFLTQnwrXouXc","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40657},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"resolutions":{"axios":"1.6.0"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","axios":"1.6.0","husky":"^8.0.3","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^15.1.0","eslint-plugin-jest":"^27.6.0","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^16.1.3","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.5_1699842820476_0.1931586982749247","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.6","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.6","maintainers":[{"name":"becali12","email":"nicula.cristi14@gmail.com"},{"name":"tvila","email":"traian.vila@consensys.net"},{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"ericlin98@protonmail.com"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"dd5efca9d0ffd08a07eddd1195b4866ee732b484","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.6.tgz","fileCount":8,"integrity":"sha512-mYz7zmNS7OxkSnDN0GdGzCbnpiQzYHfe/4Ht73ZAtVlkG4ZMYTk7ulzYtBEFNrXoZrab5ynP6GQwNSv5fbcf7g==","signatures":[{"sig":"MEUCIDLSJNtwtjDVJuW8JBRxbX7iqWlQeHAvrU8VPfn+maCkAiEAioonlhQQVb8HU9pVlQ3vJ9Y1u8V0OagqJx3jaJumON4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40705},"main":"dist/index.js","types":"dist/index.d.ts","readme":"# Metamask Keyring\n\nThis repository contains a node module that makes it easy to integrate the Metamask Mobile app through the app's generic KeyringController / Keyring approach.\n\nThe Metamask Ethereum [Keyring Controller](https://github.com/MetaMask/KeyringController) is an abstraction to work with multiple keyrings that serve as bridges to external wallet / HW wallet providers. The component needs to adhere to [the Keyring Class protocol](https://github.com/MetaMask/KeyringController) to support Ethereum based actions from the Ledger Nano X device.\n\nAs such is provides the following members used by a top level KeyringController:\n\n- `Keyring.type` - A class property that returns a unique string describing the Keyring. (value fixed to 'Ledger')\n- `serialize()` - Returns any JSON-serializable JavaScript object that you like to store as the state of the LedgerKeyring. It will be encoded to a string, encrypted with the user's password, and stored to disk.\n- `deserialize(object)` - Restores the internal state based on the previously store keyring state.\n- `addAccounts(n)` - Retrieves an account from the ledger and stores the address on the PK. In the current implementation we are supporting a single default account and won't allow adding more.\n- `getAccounts()` - Retrieves the list of accounts store in the keyring state\n- `signTransaction(address, transaction)` - Interacts with the Ledger Device to sign an [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) transaction\n- `signMessage / signPersonalMessage(address, data)` - Takes a hash data and signs it using the Ledger Device\n- `signTypedData(address, data, versionInformation)` - Signs a typed message (EIP712) using the Ledger Device. Only V4 is supported.\n- `getName()` - Returns a user friendly name that can be used as label for Metamask accounts\n- `getAppAndVersion()` - Returns the currently running application and version that can be used as a \"pre-check\" of conditions before trying to sign.\n- `forgetDevice()` - Resets the state of the keyring\n- `setTransport()` - Specifies the transport to use when talking to the Ledger Device.\n\n## Usage\n\n```javascript\nconst KeyringController = require('eth-keyring-controller');\nconst LedgerKeyring = require('@ledgerhq/metamask-keyring');\nconst BluetoothTransport = require(\"@ledgerhq/react-native-hw-transport-ble\");\n\nconst keyringController = new KeyringController({\n  keyringTypes: [LedgerKeyring],\n  initState: initState.KeyringController,\n});\n\n// Connect to device first\nconst device = ...; // get the device to econnect to\nconst transport = await BluetoothTransport.open(device);\n\n// Perform signing action\nconst tx = ...; // ethereumjs-tx object\nconst address = ...;\n\nconst signedTx = await keyringController.signTransaction(address, tx);\n```\n","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"resolutions":{"axios":"1.6.7"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","axios":"1.6.7","husky":"^8.0.3","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^15.1.0","eslint-plugin-jest":"^27.6.0","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.6_1706251025694_0.09507482935026235","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.7","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.7","maintainers":[{"name":"becali12","email":"nicula.cristi14@gmail.com"},{"name":"tvila","email":"traian.vila@consensys.net"},{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"ezzah","email":"ericlin98@protonmail.com"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"7aecb1dd7795f4e22e1eb6ee7dfe7c5e32c5a392","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.7.tgz","fileCount":8,"integrity":"sha512-UoS8EYilAjGWmtUZ0hXdZV3UE+3wgX915kdZzmTUNUoDp/Ze4YqvDYlBBHZaq86PAAE0GweqmnD0Vnah3/OIcA==","signatures":[{"sig":"MEUCIHX7lFUBA1zwCwn+qmoF95T7z9xAT2hsnqctgCfhx9w2AiEAqUZ7fwXry4i0Yw6SDdKa36aOELheXjd/Xz6quTfDriQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40705},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"resolutions":{"axios":"1.6.7"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","axios":"1.6.7","husky":"^8.0.3","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^15.1.0","eslint-plugin-jest":"^27.6.0","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.7_1706251547438_0.751811226939199","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.8","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.8","maintainers":[{"name":"becali12","email":"nicula.cristi14@gmail.com"},{"name":"tvila","email":"traian.vila@consensys.net"},{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"0d9f6c52ae2506e39ab8a2622a647cda8b0d5945","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.8.tgz","fileCount":8,"integrity":"sha512-5J00Q86qsBZ3B90ULOu6LbpBCyWRYERilONzrIGEJG6UyS0VaYwHBJsWZha+Ga+f4zAF7Cf3cN9fxNCs6t2CPQ==","signatures":[{"sig":"MEQCIBipPqbof8Ob//sLzraBLvmMjdYYMuF4h+t/77qZcV67AiBfbxNPhH/WfV4pe7yhnmjqcyj2NygLWRv3F8M+PocakQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40735},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"resolutions":{"axios":"1.6.7"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^3.5.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","axios":"1.6.7","husky":"^8.0.3","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^15.1.0","eslint-plugin-jest":"^27.6.0","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.8_1709805398055_0.773525407463026","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.9","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.9","maintainers":[{"name":"becali12","email":"nicula.cristi14@gmail.com"},{"name":"tvila","email":"traian.vila@consensys.net"},{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"f824381c9cf55c6e6aad5693263dee77a17d2ac2","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.9.tgz","fileCount":8,"integrity":"sha512-o/wdUU/7s8fIZxP0CcKjaWQaoJ1bz2+3BgeQSsizR2WLqZJF8phYF6t9hwfZeFFgM1FMZDuanVapCvOi13QjiA==","signatures":[{"sig":"MEYCIQCX96MC2Tj+MixJMV6KZbbOj5dokDeoZQ5M/ZfIMTbCzwIhAJQF/N26PUyt7NFLh52I1J96gXx4oShGZRRCw8iHHtFV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40658},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"resolutions":{"axios":"1.6.7"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^4.2.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.26.1","@metamask/eth-sig-util":"^7.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsc":"^2.0.4","jest":"^27.5.1","axios":"1.6.7","husky":"^8.0.3","eslint":"^8.11.0","ts-jest":"^27.1.3","ts-node":"^10.7.0","prettier":"^2.6.0","typescript":"^4.6.2","@types/jest":"^27.4.1","lint-staged":"^15.1.0","eslint-plugin-jest":"^27.6.0","eslint-plugin-import":"^2.25.4","@ledgerhq/hw-transport":"^6.24.1","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^4.0.0","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^17.1.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.9_1710399847400_0.298348243972435","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"@consensys/ledgerhq-metamask-keyring","version":"0.0.10","license":"Apache-2.0","_id":"@consensys/ledgerhq-metamask-keyring@0.0.10","maintainers":[{"name":"becali12","email":"nicula.cristi14@gmail.com"},{"name":"tvila","email":"traian.vila@consensys.net"},{"name":"leo.wang","email":"leo.wang@consensys.net"},{"name":"pmkowalski","email":"patrick.kowalski@consensys.net"},{"name":"victorien-gauch","email":"victorien.gauch@consensys.net"},{"name":"jones.ho","email":"jones.ho@consensys.net"},{"name":"stanleyyuen","email":"stanley.yuen@consensys.net"},{"name":"gustavorssilva","email":"gustavorssilva09@gmail.com"},{"name":"klejeune-consensys","email":"kevin.le-jeune@consensys.net"},{"name":"wantedsystem","email":"amine.harty@consensys.net"},{"name":"chingiz-mardanov","email":"chingiz.mardanov@consensys.net"},{"name":"rizedr","email":"it@consensys.net"}],"dist":{"shasum":"e5059c2bf960ba85628636cf6a88bd5d61c443c1","tarball":"https://registry.npmjs.org/@consensys/ledgerhq-metamask-keyring/-/ledgerhq-metamask-keyring-0.0.10.tgz","fileCount":8,"integrity":"sha512-NZVIhjQk/yO0L1SS8zsNnMPfKKK8MnZ/vetj8JsRZs/eeOYxcVJcFEM0h5Sk59o8d1b/tMwxeplAK/Rfw5FGEA==","signatures":[{"sig":"MEYCIQCRBAOG+Hi1JnU+YmIU1zWKpuaPyxOYxvo56OovGnw25gIhAMHPUl5Mv8rdbBHEFyjbA5QxFlB7/4/fAznf+H0XN/Q4","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":40684},"main":"dist/index.js","types":"dist/index.d.ts","scripts":{"test":"jest","build":"tsc -p tsconfig.json","prepare":"yarn build && husky install","lint:fix":"eslint --cache --fix --ext .ts \"src\"","format:fix":"prettier --write \"src\"","lint:check":"eslint --cache --ext .ts \"src\"","format:check":"prettier --check \"src\""},"_npmUser":{"name":"leo.wang","email":"leo.wang@consensys.net"},"repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","directories":{},"lint-staged":{"*.ts":"yarn run lint:fix"},"dependencies":{"buffer":"^6.0.3","@ethereumjs/tx":"^4.2.0","ethereumjs-util":"^7.1.5","@ledgerhq/hw-app-eth":"6.35.6","@metamask/eth-sig-util":"^7.0.1"},"_hasShrinkwrap":false,"devDependencies":{"tsc":"^2.0.4","jest":"^29.7.0","axios":"1.6.7","husky":"^9.0.11","eslint":"^8.57.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","typescript":"5.1.6","@types/jest":"^29.5.12","@types/node":"^20.11.27","lint-staged":"^15.1.0","eslint-plugin-jest":"^27.6.0","source-map-support":"^0.5.21","eslint-plugin-import":"^2.29.0","@ledgerhq/hw-transport":"^6.30.4","eslint-config-prettier":"^9.1.0","eslint-plugin-prettier":"^5.1.3","@typescript-eslint/parser":"^5.15.0","eslint-config-airbnb-typescript":"^18.0.0","@typescript-eslint/eslint-plugin":"^5.15.0"},"_npmOperationalInternal":{"tmp":"tmp/ledgerhq-metamask-keyring_0.0.10_1710471825622_0.6427247809603989","host":"s3://npm-registry-packages"}}},"time":{"created":"2023-10-12T05:18:35.718Z","modified":"2026-10-02T21:12:44.646Z","0.0.1":"2023-10-12T03:22:41.151Z","0.0.1-preview":"2023-10-12T05:18:36.062Z","0.0.1-preview.2":"2023-10-12T05:35:56.984Z","0.0.2":"2023-10-13T14:06:09.210Z","0.0.4":"2023-10-13T14:39:46.957Z","0.0.5":"2023-11-13T02:33:40.647Z","0.0.6":"2024-01-26T06:37:05.952Z","0.0.7":"2024-01-26T06:45:47.676Z","0.0.8":"2024-03-07T09:56:38.191Z","0.0.9":"2024-03-14T07:04:07.625Z","0.0.10":"2024-03-15T03:03:45.774Z"},"license":"Apache-2.0","repository":{"url":"git@github.com:Consensys/ledgerhq-metamask-keyring.git","type":"git"},"description":"A Metamask keyring implementation to bridge wallet operatations with Ledger Nano devices.","maintainers":[{"email":"gustavorssilva09@gmail.com","name":"gustavorssilva"},{"email":"stanley.yuen@consensys.net","name":"stanleyyuen"},{"email":"jones.ho@consensys.net","name":"jones.ho"},{"email":"it@consensys.net","name":"rizedr"},{"email":"kevin.le-jeune@consensys.net","name":"klejeune-consensys"},{"email":"victorien.gauch@consensys.com","name":"victorien-gauch"},{"email":"amine.harty@consensys.net","name":"wantedsystem"},{"email":"leo.wang@consensys.net","name":"leo.wang"},{"email":"nicula.cristi14@gmail.com","name":"becali12"},{"email":"francesco.andreoli@consensys.net","name":"andreolf"},{"email":"jose.luque@consensys.net","name":"jluque-npm"},{"email":"codefi-infra@consensys.net","name":"consensys-npm"},{"email":"erik.marks@consensys.com","name":"rekmarks-consensys"},{"email":"belelieu.jonathan@consensys.net","name":"consensys_jb"},{"email":"alejandro.gonzalez-ext@consensys.net","name":"cxalem1"}],"readme":"# Metamask Keyring\n\nThis repository contains a node module that makes it easy to integrate the Metamask Mobile app through the app's generic KeyringController / Keyring approach.\n\nThe Metamask Ethereum [Keyring Controller](https://github.com/MetaMask/KeyringController) is an abstraction to work with multiple keyrings that serve as bridges to external wallet / HW wallet providers. The component needs to adhere to [the Keyring Class protocol](https://github.com/MetaMask/KeyringController) to support Ethereum based actions from the Ledger Nano X device.\n\nAs such is provides the following members used by a top level KeyringController:\n\n- `Keyring.type` - A class property that returns a unique string describing the Keyring. (value fixed to 'Ledger')\n- `serialize()` - Returns any JSON-serializable JavaScript object that you like to store as the state of the LedgerKeyring. It will be encoded to a string, encrypted with the user's password, and stored to disk.\n- `deserialize(object)` - Restores the internal state based on the previously store keyring state.\n- `addAccounts(n)` - Retrieves an account from the ledger and stores the address on the PK. In the current implementation we are supporting a single default account and won't allow adding more.\n- `getAccounts()` - Retrieves the list of accounts store in the keyring state\n- `signTransaction(address, transaction)` - Interacts with the Ledger Device to sign an [ethereumjs-tx](https://github.com/ethereumjs/ethereumjs-tx) transaction\n- `signMessage / signPersonalMessage(address, data)` - Takes a hash data and signs it using the Ledger Device\n- `signTypedData(address, data, versionInformation)` - Signs a typed message (EIP712) using the Ledger Device. Only V4 is supported.\n- `getName()` - Returns a user friendly name that can be used as label for Metamask accounts\n- `getAppAndVersion()` - Returns the currently running application and version that can be used as a \"pre-check\" of conditions before trying to sign.\n- `forgetDevice()` - Resets the state of the keyring\n- `setTransport()` - Specifies the transport to use when talking to the Ledger Device.\n\n## Usage\n\n```javascript\nconst KeyringController = require('eth-keyring-controller');\nconst LedgerKeyring = require('@ledgerhq/metamask-keyring');\nconst BluetoothTransport = require(\"@ledgerhq/react-native-hw-transport-ble\");\n\nconst keyringController = new KeyringController({\n  keyringTypes: [LedgerKeyring],\n  initState: initState.KeyringController,\n});\n\n// Connect to device first\nconst device = ...; // get the device to econnect to\nconst transport = await BluetoothTransport.open(device);\n\n// Perform signing action\nconst tx = ...; // ethereumjs-tx object\nconst address = ...;\n\nconst signedTx = await keyringController.signTransaction(address, tx);\n```\n","readmeFilename":"README.md"}