@metamask/eth-ledger-bridge-keyring 5.0.1 → 7.0.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/CHANGELOG.md +21 -1
- package/dist/{index.js → index.cjs} +6 -6
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +8 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.mts +8 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +6 -0
- package/dist/index.mjs.map +1 -0
- package/dist/{ledger-bridge.js → ledger-bridge.cjs} +1 -1
- package/dist/ledger-bridge.cjs.map +1 -0
- package/dist/{ledger-bridge.d.ts → ledger-bridge.d.cts} +3 -2
- package/dist/ledger-bridge.d.cts.map +1 -0
- package/dist/ledger-bridge.d.mts +45 -0
- package/dist/ledger-bridge.d.mts.map +1 -0
- package/dist/ledger-bridge.mjs +2 -0
- package/dist/ledger-bridge.mjs.map +1 -0
- package/dist/{ledger-hw-app.js → ledger-hw-app.cjs} +2 -1
- package/dist/ledger-hw-app.cjs.map +1 -0
- package/dist/{ledger-hw-app.d.ts → ledger-hw-app.d.cts} +3 -2
- package/dist/ledger-hw-app.d.cts.map +1 -0
- package/dist/ledger-hw-app.d.mts +24 -0
- package/dist/ledger-hw-app.d.mts.map +1 -0
- package/dist/ledger-hw-app.mjs +59 -0
- package/dist/ledger-hw-app.mjs.map +1 -0
- package/dist/{ledger-iframe-bridge.js → ledger-iframe-bridge.cjs} +2 -1
- package/dist/ledger-iframe-bridge.cjs.map +1 -0
- package/dist/{ledger-iframe-bridge.d.ts → ledger-iframe-bridge.d.cts} +2 -2
- package/dist/ledger-iframe-bridge.d.cts.map +1 -0
- package/dist/ledger-iframe-bridge.d.mts +83 -0
- package/dist/ledger-iframe-bridge.d.mts.map +1 -0
- package/dist/ledger-iframe-bridge.mjs +172 -0
- package/dist/ledger-iframe-bridge.mjs.map +1 -0
- package/dist/{ledger-keyring.js → ledger-keyring.cjs} +4 -1
- package/dist/ledger-keyring.cjs.map +1 -0
- package/dist/{ledger-keyring.d.ts → ledger-keyring.d.cts} +7 -7
- package/dist/ledger-keyring.d.cts.map +1 -0
- package/dist/ledger-keyring.d.mts +82 -0
- package/dist/ledger-keyring.d.mts.map +1 -0
- package/dist/ledger-keyring.mjs +509 -0
- package/dist/ledger-keyring.mjs.map +1 -0
- package/dist/{ledger-mobile-bridge.js → ledger-mobile-bridge.cjs} +6 -2
- package/dist/ledger-mobile-bridge.cjs.map +1 -0
- package/dist/{ledger-mobile-bridge.d.ts → ledger-mobile-bridge.d.cts} +5 -4
- package/dist/ledger-mobile-bridge.d.cts.map +1 -0
- package/dist/ledger-mobile-bridge.d.mts +109 -0
- package/dist/ledger-mobile-bridge.d.mts.map +1 -0
- package/dist/ledger-mobile-bridge.mjs +179 -0
- package/dist/ledger-mobile-bridge.mjs.map +1 -0
- package/dist/{ledger-transport-middleware.js → ledger-transport-middleware.cjs} +2 -2
- package/dist/ledger-transport-middleware.cjs.map +1 -0
- package/dist/{ledger-transport-middleware.d.ts → ledger-transport-middleware.d.cts} +3 -2
- package/dist/ledger-transport-middleware.d.cts.map +1 -0
- package/dist/ledger-transport-middleware.d.mts +40 -0
- package/dist/ledger-transport-middleware.d.mts.map +1 -0
- package/dist/ledger-transport-middleware.mjs +60 -0
- package/dist/ledger-transport-middleware.mjs.map +1 -0
- package/dist/{type.js → type.cjs} +1 -1
- package/dist/type.cjs.map +1 -0
- package/dist/{type.d.ts → type.d.cts} +1 -0
- package/dist/type.d.cts.map +1 -0
- package/dist/type.d.mts +6 -0
- package/dist/type.d.mts.map +1 -0
- package/dist/type.mjs +2 -0
- package/dist/type.mjs.map +1 -0
- package/package.json +20 -10
- package/dist/index.d.ts +0 -7
- package/dist/index.js.map +0 -1
- package/dist/ledger-bridge.js.map +0 -1
- package/dist/ledger-hw-app.js.map +0 -1
- package/dist/ledger-iframe-bridge.js.map +0 -1
- package/dist/ledger-keyring.js.map +0 -1
- package/dist/ledger-mobile-bridge.js.map +0 -1
- package/dist/ledger-transport-middleware.js.map +0 -1
- package/dist/type.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [7.0.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **BREAKING:** Add ESM build ([#40](https://github.com/MetaMask/accounts/pull/40))
|
|
15
|
+
- It's no longer possible to import files from `./dist` directly.
|
|
16
|
+
|
|
17
|
+
## [6.0.0]
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- **BREAKING**: Bump `@metamask/eth-sig-util` dependency from `^7.0.3` to `^8.0.0` ([#79](https://github.com/MetaMask/accounts/pull/79))
|
|
22
|
+
- `signTypedData` no longer support `number` for addresses, see [here](https://github.com/MetaMask/eth-sig-util/blob/main/CHANGELOG.md#800).
|
|
23
|
+
|
|
24
|
+
### Fixed
|
|
25
|
+
|
|
26
|
+
- Device ID will now be cleared up when forgetting a device ([#86](https://github.com/MetaMask/accounts/pull/86))
|
|
27
|
+
|
|
10
28
|
## [5.0.1]
|
|
11
29
|
|
|
12
30
|
### Changed
|
|
@@ -198,7 +216,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
198
216
|
|
|
199
217
|
- Support new versions of ethereumjs/tx ([#68](https://github.com/MetaMask/eth-ledger-bridge-keyring/pull/68))
|
|
200
218
|
|
|
201
|
-
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@
|
|
219
|
+
[Unreleased]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@7.0.0...HEAD
|
|
220
|
+
[7.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@6.0.0...@metamask/eth-ledger-bridge-keyring@7.0.0
|
|
221
|
+
[6.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@5.0.1...@metamask/eth-ledger-bridge-keyring@6.0.0
|
|
202
222
|
[5.0.1]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@5.0.0...@metamask/eth-ledger-bridge-keyring@5.0.1
|
|
203
223
|
[5.0.0]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@4.1.4...@metamask/eth-ledger-bridge-keyring@5.0.0
|
|
204
224
|
[4.1.4]: https://github.com/MetaMask/accounts/compare/@metamask/eth-ledger-bridge-keyring@4.1.3...@metamask/eth-ledger-bridge-keyring@4.1.4
|
|
@@ -14,9 +14,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./ledger-keyring"), exports);
|
|
18
|
-
__exportStar(require("./ledger-iframe-bridge"), exports);
|
|
19
|
-
__exportStar(require("./ledger-mobile-bridge"), exports);
|
|
20
|
-
__exportStar(require("./ledger-transport-middleware"), exports);
|
|
21
|
-
__exportStar(require("./ledger-hw-app"), exports);
|
|
22
|
-
//# sourceMappingURL=index.
|
|
17
|
+
__exportStar(require("./ledger-keyring.cjs"), exports);
|
|
18
|
+
__exportStar(require("./ledger-iframe-bridge.cjs"), exports);
|
|
19
|
+
__exportStar(require("./ledger-mobile-bridge.cjs"), exports);
|
|
20
|
+
__exportStar(require("./ledger-transport-middleware.cjs"), exports);
|
|
21
|
+
__exportStar(require("./ledger-hw-app.cjs"), exports);
|
|
22
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAiC;AACjC,6DAAuC;AACvC,6DAAuC;AAEvC,oEAA8C;AAE9C,sDAAgC","sourcesContent":["export * from './ledger-keyring';\nexport * from './ledger-iframe-bridge';\nexport * from './ledger-mobile-bridge';\nexport type * from './ledger-bridge';\nexport * from './ledger-transport-middleware';\nexport type * from './type';\nexport * from './ledger-hw-app';\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./ledger-keyring.cjs";
|
|
2
|
+
export * from "./ledger-iframe-bridge.cjs";
|
|
3
|
+
export * from "./ledger-mobile-bridge.cjs";
|
|
4
|
+
export type * from "./ledger-bridge.cjs";
|
|
5
|
+
export * from "./ledger-transport-middleware.cjs";
|
|
6
|
+
export type * from "./type.cjs";
|
|
7
|
+
export * from "./ledger-hw-app.cjs";
|
|
8
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAiC;AACjC,2CAAuC;AACvC,2CAAuC;AACvC,yCAAqC;AACrC,kDAA8C;AAC9C,gCAA4B;AAC5B,oCAAgC"}
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./ledger-keyring.mjs";
|
|
2
|
+
export * from "./ledger-iframe-bridge.mjs";
|
|
3
|
+
export * from "./ledger-mobile-bridge.mjs";
|
|
4
|
+
export type * from "./ledger-bridge.mjs";
|
|
5
|
+
export * from "./ledger-transport-middleware.mjs";
|
|
6
|
+
export type * from "./type.mjs";
|
|
7
|
+
export * from "./ledger-hw-app.mjs";
|
|
8
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAiC;AACjC,2CAAuC;AACvC,2CAAuC;AACvC,yCAAqC;AACrC,kDAA8C;AAC9C,gCAA4B;AAC5B,oCAAgC"}
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,qCAAiC;AACjC,2CAAuC;AACvC,2CAAuC;AAEvC,kDAA8C;AAE9C,oCAAgC","sourcesContent":["export * from './ledger-keyring';\nexport * from './ledger-iframe-bridge';\nexport * from './ledger-mobile-bridge';\nexport type * from './ledger-bridge';\nexport * from './ledger-transport-middleware';\nexport type * from './type';\nexport * from './ledger-hw-app';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-bridge.cjs","sourceRoot":"","sources":["../src/ledger-bridge.ts"],"names":[],"mappings":"","sourcesContent":["import type LedgerHwAppEth from '@ledgerhq/hw-app-eth';\nimport type Transport from '@ledgerhq/hw-transport';\n\nexport type GetPublicKeyParams = { hdPath: string };\nexport type GetPublicKeyResponse = Awaited<\n ReturnType<LedgerHwAppEth['getAddress']>\n>;\n\nexport type LedgerSignTransactionParams = { hdPath: string; tx: string };\nexport type LedgerSignTransactionResponse = Awaited<\n ReturnType<LedgerHwAppEth['signTransaction']>\n>;\n\nexport type LedgerSignMessageParams = { hdPath: string; message: string };\nexport type LedgerSignMessageResponse = Awaited<\n ReturnType<LedgerHwAppEth['signPersonalMessage']>\n>;\n\nexport type LedgerSignTypedDataParams = {\n hdPath: string;\n domainSeparatorHex: string;\n hashStructMessageHex: string;\n};\nexport type LedgerSignTypedDataResponse = Awaited<\n ReturnType<LedgerHwAppEth['signEIP712HashedMessage']>\n>;\n\nexport type LedgerBridgeOptions = Record<string, unknown>;\n\nexport type LedgerBridge<T extends LedgerBridgeOptions> = {\n isDeviceConnected: boolean;\n\n init(): Promise<void>;\n\n destroy(): Promise<void>;\n\n /**\n * Method to get the current configuration of the ledger bridge keyring.\n */\n getOptions(): Promise<T>;\n\n /**\n * Method to set the current configuration of the ledger bridge keyring.\n *\n * @param opts - An object contains configuration of the bridge.\n */\n setOptions(opts: T): Promise<void>;\n\n attemptMakeApp(): Promise<boolean>;\n\n updateTransportMethod(transportType: string | Transport): Promise<boolean>;\n\n getPublicKey(params: GetPublicKeyParams): Promise<GetPublicKeyResponse>;\n\n deviceSignTransaction(\n params: LedgerSignTransactionParams,\n ): Promise<LedgerSignTransactionResponse>;\n\n deviceSignMessage(\n params: LedgerSignMessageParams,\n ): Promise<LedgerSignMessageResponse>;\n\n deviceSignTypedData(\n params: LedgerSignTypedDataParams,\n ): Promise<LedgerSignTypedDataResponse>;\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type LedgerHwAppEth from
|
|
2
|
-
import type Transport from
|
|
1
|
+
import type LedgerHwAppEth from "@ledgerhq/hw-app-eth";
|
|
2
|
+
import type Transport from "@ledgerhq/hw-transport";
|
|
3
3
|
export type GetPublicKeyParams = {
|
|
4
4
|
hdPath: string;
|
|
5
5
|
};
|
|
@@ -42,3 +42,4 @@ export type LedgerBridge<T extends LedgerBridgeOptions> = {
|
|
|
42
42
|
deviceSignMessage(params: LedgerSignMessageParams): Promise<LedgerSignMessageResponse>;
|
|
43
43
|
deviceSignTypedData(params: LedgerSignTypedDataParams): Promise<LedgerSignTypedDataResponse>;
|
|
44
44
|
};
|
|
45
|
+
//# sourceMappingURL=ledger-bridge.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-bridge.d.cts","sourceRoot":"","sources":["../src/ledger-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,6BAA6B;AACvD,OAAO,KAAK,SAAS,+BAA+B;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACpD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CACzC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,6BAA6B,GAAG,OAAO,CACjD,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAC9C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAClD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAAI;IACxD,iBAAiB,EAAE,OAAO,CAAC;IAE3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3E,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAExE,qBAAqB,CACnB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAE1C,iBAAiB,CACf,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEtC,mBAAmB,CACjB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,2BAA2B,CAAC,CAAC;CACzC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type LedgerHwAppEth from "@ledgerhq/hw-app-eth";
|
|
2
|
+
import type Transport from "@ledgerhq/hw-transport";
|
|
3
|
+
export type GetPublicKeyParams = {
|
|
4
|
+
hdPath: string;
|
|
5
|
+
};
|
|
6
|
+
export type GetPublicKeyResponse = Awaited<ReturnType<LedgerHwAppEth['getAddress']>>;
|
|
7
|
+
export type LedgerSignTransactionParams = {
|
|
8
|
+
hdPath: string;
|
|
9
|
+
tx: string;
|
|
10
|
+
};
|
|
11
|
+
export type LedgerSignTransactionResponse = Awaited<ReturnType<LedgerHwAppEth['signTransaction']>>;
|
|
12
|
+
export type LedgerSignMessageParams = {
|
|
13
|
+
hdPath: string;
|
|
14
|
+
message: string;
|
|
15
|
+
};
|
|
16
|
+
export type LedgerSignMessageResponse = Awaited<ReturnType<LedgerHwAppEth['signPersonalMessage']>>;
|
|
17
|
+
export type LedgerSignTypedDataParams = {
|
|
18
|
+
hdPath: string;
|
|
19
|
+
domainSeparatorHex: string;
|
|
20
|
+
hashStructMessageHex: string;
|
|
21
|
+
};
|
|
22
|
+
export type LedgerSignTypedDataResponse = Awaited<ReturnType<LedgerHwAppEth['signEIP712HashedMessage']>>;
|
|
23
|
+
export type LedgerBridgeOptions = Record<string, unknown>;
|
|
24
|
+
export type LedgerBridge<T extends LedgerBridgeOptions> = {
|
|
25
|
+
isDeviceConnected: boolean;
|
|
26
|
+
init(): Promise<void>;
|
|
27
|
+
destroy(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Method to get the current configuration of the ledger bridge keyring.
|
|
30
|
+
*/
|
|
31
|
+
getOptions(): Promise<T>;
|
|
32
|
+
/**
|
|
33
|
+
* Method to set the current configuration of the ledger bridge keyring.
|
|
34
|
+
*
|
|
35
|
+
* @param opts - An object contains configuration of the bridge.
|
|
36
|
+
*/
|
|
37
|
+
setOptions(opts: T): Promise<void>;
|
|
38
|
+
attemptMakeApp(): Promise<boolean>;
|
|
39
|
+
updateTransportMethod(transportType: string | Transport): Promise<boolean>;
|
|
40
|
+
getPublicKey(params: GetPublicKeyParams): Promise<GetPublicKeyResponse>;
|
|
41
|
+
deviceSignTransaction(params: LedgerSignTransactionParams): Promise<LedgerSignTransactionResponse>;
|
|
42
|
+
deviceSignMessage(params: LedgerSignMessageParams): Promise<LedgerSignMessageResponse>;
|
|
43
|
+
deviceSignTypedData(params: LedgerSignTypedDataParams): Promise<LedgerSignTypedDataResponse>;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=ledger-bridge.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-bridge.d.mts","sourceRoot":"","sources":["../src/ledger-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,6BAA6B;AACvD,OAAO,KAAK,SAAS,+BAA+B;AAEpD,MAAM,MAAM,kBAAkB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACpD,MAAM,MAAM,oBAAoB,GAAG,OAAO,CACxC,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CACzC,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AACzE,MAAM,MAAM,6BAA6B,GAAG,OAAO,CACjD,UAAU,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAC9C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1E,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,UAAU,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC,CAClD,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AACF,MAAM,MAAM,2BAA2B,GAAG,OAAO,CAC/C,UAAU,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC,CACtD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,mBAAmB,IAAI;IACxD,iBAAiB,EAAE,OAAO,CAAC;IAE3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzB;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAEzB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEnC,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE3E,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAExE,qBAAqB,CACnB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAE1C,iBAAiB,CACf,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEtC,mBAAmB,CACjB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,2BAA2B,CAAC,CAAC;CACzC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-bridge.mjs","sourceRoot":"","sources":["../src/ledger-bridge.ts"],"names":[],"mappings":"","sourcesContent":["import type LedgerHwAppEth from '@ledgerhq/hw-app-eth';\nimport type Transport from '@ledgerhq/hw-transport';\n\nexport type GetPublicKeyParams = { hdPath: string };\nexport type GetPublicKeyResponse = Awaited<\n ReturnType<LedgerHwAppEth['getAddress']>\n>;\n\nexport type LedgerSignTransactionParams = { hdPath: string; tx: string };\nexport type LedgerSignTransactionResponse = Awaited<\n ReturnType<LedgerHwAppEth['signTransaction']>\n>;\n\nexport type LedgerSignMessageParams = { hdPath: string; message: string };\nexport type LedgerSignMessageResponse = Awaited<\n ReturnType<LedgerHwAppEth['signPersonalMessage']>\n>;\n\nexport type LedgerSignTypedDataParams = {\n hdPath: string;\n domainSeparatorHex: string;\n hashStructMessageHex: string;\n};\nexport type LedgerSignTypedDataResponse = Awaited<\n ReturnType<LedgerHwAppEth['signEIP712HashedMessage']>\n>;\n\nexport type LedgerBridgeOptions = Record<string, unknown>;\n\nexport type LedgerBridge<T extends LedgerBridgeOptions> = {\n isDeviceConnected: boolean;\n\n init(): Promise<void>;\n\n destroy(): Promise<void>;\n\n /**\n * Method to get the current configuration of the ledger bridge keyring.\n */\n getOptions(): Promise<T>;\n\n /**\n * Method to set the current configuration of the ledger bridge keyring.\n *\n * @param opts - An object contains configuration of the bridge.\n */\n setOptions(opts: T): Promise<void>;\n\n attemptMakeApp(): Promise<boolean>;\n\n updateTransportMethod(transportType: string | Transport): Promise<boolean>;\n\n getPublicKey(params: GetPublicKeyParams): Promise<GetPublicKeyResponse>;\n\n deviceSignTransaction(\n params: LedgerSignTransactionParams,\n ): Promise<LedgerSignTransactionResponse>;\n\n deviceSignMessage(\n params: LedgerSignMessageParams,\n ): Promise<LedgerSignMessageResponse>;\n\n deviceSignTypedData(\n params: LedgerSignTypedDataParams,\n ): Promise<LedgerSignTypedDataResponse>;\n};\n"]}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.MetaMaskLedgerHwAppEth = void 0;
|
|
7
7
|
const hw_app_eth_1 = __importDefault(require("@ledgerhq/hw-app-eth"));
|
|
8
8
|
const buffer_1 = require("buffer");
|
|
9
|
+
const type_1 = require("./type.cjs");
|
|
9
10
|
class MetaMaskLedgerHwAppEth extends hw_app_eth_1.default {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -55,4 +56,4 @@ class MetaMaskLedgerHwAppEth extends hw_app_eth_1.default {
|
|
|
55
56
|
}
|
|
56
57
|
}
|
|
57
58
|
exports.MetaMaskLedgerHwAppEth = MetaMaskLedgerHwAppEth;
|
|
58
|
-
//# sourceMappingURL=ledger-hw-app.
|
|
59
|
+
//# sourceMappingURL=ledger-hw-app.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-hw-app.cjs","sourceRoot":"","sources":["../src/ledger-hw-app.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAkD;AAClD,mCAAgC;AAEhC,qCAAsD;AAEtD,MAAa,sBACX,SAAQ,oBAAc;IADxB;;QAIW,gBAAW,GAAG,OAAO,CAAC;QAEtB,eAAU,GAAG,UAAU,CAAC;QAExB,sBAAiB,GAAG,OAAO,CAAC;IAuDvC,CAAC;IArDC;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACvB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CACrD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,IAAI,CAAC,CAAC;QAEP,MAAM,OAAO,GAAG,QAAQ;aACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;aAC3B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,IAAI,CAAC,CAAC;QAEP,MAAM,OAAO,GAAG,QAAQ;aACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;aAC9B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpC,OAAO;YACL,OAAO;YACP,OAAO;SACR,CAAC;IACJ,CAAC;CACF;AA/DD,wDA+DC","sourcesContent":["import LedgerHwAppEth from '@ledgerhq/hw-app-eth';\nimport { Buffer } from 'buffer';\n\nimport { GetAppNameAndVersionResponse } from './type';\n\nexport class MetaMaskLedgerHwAppEth\n extends LedgerHwAppEth\n implements MetaMaskLedgerHwAppEth\n{\n readonly mainAppName = 'BOLOS';\n\n readonly ethAppName = 'Ethereum';\n\n readonly transportEncoding = 'ascii';\n\n /**\n * Method to open ethereum application on ledger device.\n *\n */\n async openEthApp(): Promise<void> {\n await this.transport.send(\n 0xe0,\n 0xd8,\n 0x00,\n 0x00,\n Buffer.from(this.ethAppName, this.transportEncoding),\n );\n }\n\n /**\n * Method to close all running application on ledger device.\n *\n */\n async closeApps(): Promise<void> {\n await this.transport.send(0xb0, 0xa7, 0x00, 0x00);\n }\n\n /**\n * Method to retrieve the name and version of the running application in ledger device.\n *\n * @returns An object contains appName and version.\n */\n async getAppNameAndVersion(): Promise<GetAppNameAndVersionResponse> {\n const response = await this.transport.send(0xb0, 0x01, 0x00, 0x00);\n if (response[0] !== 1) {\n throw new Error('Incorrect format return from getAppNameAndVersion.');\n }\n\n let i = 1;\n const nameLength = response[i] ?? 0;\n i += 1;\n\n const appName = response\n .slice(i, (i += nameLength))\n .toString(this.transportEncoding);\n\n const versionLength = response[i] ?? 0;\n i += 1;\n\n const version = response\n .slice(i, (i += versionLength))\n .toString(this.transportEncoding);\n\n return {\n appName,\n version,\n };\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import LedgerHwAppEth from
|
|
2
|
-
import { GetAppNameAndVersionResponse } from
|
|
1
|
+
import LedgerHwAppEth from "@ledgerhq/hw-app-eth";
|
|
2
|
+
import { GetAppNameAndVersionResponse } from "./type.cjs";
|
|
3
3
|
export declare class MetaMaskLedgerHwAppEth extends LedgerHwAppEth implements MetaMaskLedgerHwAppEth {
|
|
4
4
|
readonly mainAppName = "BOLOS";
|
|
5
5
|
readonly ethAppName = "Ethereum";
|
|
@@ -21,3 +21,4 @@ export declare class MetaMaskLedgerHwAppEth extends LedgerHwAppEth implements Me
|
|
|
21
21
|
*/
|
|
22
22
|
getAppNameAndVersion(): Promise<GetAppNameAndVersionResponse>;
|
|
23
23
|
}
|
|
24
|
+
//# sourceMappingURL=ledger-hw-app.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-hw-app.d.cts","sourceRoot":"","sources":["../src/ledger-hw-app.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,6BAA6B;AAGlD,OAAO,EAAE,4BAA4B,EAAE,mBAAe;AAEtD,qBAAa,sBACX,SAAQ,cACR,YAAW,sBAAsB;IAEjC,QAAQ,CAAC,WAAW,WAAW;IAE/B,QAAQ,CAAC,UAAU,cAAc;IAEjC,QAAQ,CAAC,iBAAiB,WAAW;IAErC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,4BAA4B,CAAC;CA0BpE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import LedgerHwAppEth from "@ledgerhq/hw-app-eth";
|
|
2
|
+
import { GetAppNameAndVersionResponse } from "./type.mjs";
|
|
3
|
+
export declare class MetaMaskLedgerHwAppEth extends LedgerHwAppEth implements MetaMaskLedgerHwAppEth {
|
|
4
|
+
readonly mainAppName = "BOLOS";
|
|
5
|
+
readonly ethAppName = "Ethereum";
|
|
6
|
+
readonly transportEncoding = "ascii";
|
|
7
|
+
/**
|
|
8
|
+
* Method to open ethereum application on ledger device.
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
openEthApp(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Method to close all running application on ledger device.
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
closeApps(): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Method to retrieve the name and version of the running application in ledger device.
|
|
19
|
+
*
|
|
20
|
+
* @returns An object contains appName and version.
|
|
21
|
+
*/
|
|
22
|
+
getAppNameAndVersion(): Promise<GetAppNameAndVersionResponse>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=ledger-hw-app.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-hw-app.d.mts","sourceRoot":"","sources":["../src/ledger-hw-app.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,6BAA6B;AAGlD,OAAO,EAAE,4BAA4B,EAAE,mBAAe;AAEtD,qBAAa,sBACX,SAAQ,cACR,YAAW,sBAAsB;IAEjC,QAAQ,CAAC,WAAW,WAAW;IAE/B,QAAQ,CAAC,UAAU,cAAc;IAEjC,QAAQ,CAAC,iBAAiB,WAAW;IAErC;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAUjC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC;;;;OAIG;IACG,oBAAoB,IAAI,OAAO,CAAC,4BAA4B,CAAC;CA0BpE"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
function $importDefault(module) {
|
|
2
|
+
if (module?.__esModule) {
|
|
3
|
+
return module.default;
|
|
4
|
+
}
|
|
5
|
+
return module;
|
|
6
|
+
}
|
|
7
|
+
import $LedgerHwAppEth from "@ledgerhq/hw-app-eth";
|
|
8
|
+
const LedgerHwAppEth = $importDefault($LedgerHwAppEth);
|
|
9
|
+
import { Buffer } from "buffer";
|
|
10
|
+
import { GetAppNameAndVersionResponse } from "./type.mjs";
|
|
11
|
+
export class MetaMaskLedgerHwAppEth extends LedgerHwAppEth {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.mainAppName = 'BOLOS';
|
|
15
|
+
this.ethAppName = 'Ethereum';
|
|
16
|
+
this.transportEncoding = 'ascii';
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Method to open ethereum application on ledger device.
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
22
|
+
async openEthApp() {
|
|
23
|
+
await this.transport.send(0xe0, 0xd8, 0x00, 0x00, Buffer.from(this.ethAppName, this.transportEncoding));
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Method to close all running application on ledger device.
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
async closeApps() {
|
|
30
|
+
await this.transport.send(0xb0, 0xa7, 0x00, 0x00);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Method to retrieve the name and version of the running application in ledger device.
|
|
34
|
+
*
|
|
35
|
+
* @returns An object contains appName and version.
|
|
36
|
+
*/
|
|
37
|
+
async getAppNameAndVersion() {
|
|
38
|
+
const response = await this.transport.send(0xb0, 0x01, 0x00, 0x00);
|
|
39
|
+
if (response[0] !== 1) {
|
|
40
|
+
throw new Error('Incorrect format return from getAppNameAndVersion.');
|
|
41
|
+
}
|
|
42
|
+
let i = 1;
|
|
43
|
+
const nameLength = response[i] ?? 0;
|
|
44
|
+
i += 1;
|
|
45
|
+
const appName = response
|
|
46
|
+
.slice(i, (i += nameLength))
|
|
47
|
+
.toString(this.transportEncoding);
|
|
48
|
+
const versionLength = response[i] ?? 0;
|
|
49
|
+
i += 1;
|
|
50
|
+
const version = response
|
|
51
|
+
.slice(i, (i += versionLength))
|
|
52
|
+
.toString(this.transportEncoding);
|
|
53
|
+
return {
|
|
54
|
+
appName,
|
|
55
|
+
version,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=ledger-hw-app.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-hw-app.mjs","sourceRoot":"","sources":["../src/ledger-hw-app.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,eAAc,6BAA6B;;AAClD,OAAO,EAAE,MAAM,EAAE,eAAe;AAEhC,OAAO,EAAE,4BAA4B,EAAE,mBAAe;AAEtD,MAAM,OAAO,sBACX,SAAQ,cAAc;IADxB;;QAIW,gBAAW,GAAG,OAAO,CAAC;QAEtB,eAAU,GAAG,UAAU,CAAC;QAExB,sBAAiB,GAAG,OAAO,CAAC;IAuDvC,CAAC;IArDC;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CACvB,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,iBAAiB,CAAC,CACrD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACnE,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,IAAI,CAAC,CAAC;QAEP,MAAM,OAAO,GAAG,QAAQ;aACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC;aAC3B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpC,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,IAAI,CAAC,CAAC;QAEP,MAAM,OAAO,GAAG,QAAQ;aACrB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC;aAC9B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEpC,OAAO;YACL,OAAO;YACP,OAAO;SACR,CAAC;IACJ,CAAC;CACF","sourcesContent":["import LedgerHwAppEth from '@ledgerhq/hw-app-eth';\nimport { Buffer } from 'buffer';\n\nimport { GetAppNameAndVersionResponse } from './type';\n\nexport class MetaMaskLedgerHwAppEth\n extends LedgerHwAppEth\n implements MetaMaskLedgerHwAppEth\n{\n readonly mainAppName = 'BOLOS';\n\n readonly ethAppName = 'Ethereum';\n\n readonly transportEncoding = 'ascii';\n\n /**\n * Method to open ethereum application on ledger device.\n *\n */\n async openEthApp(): Promise<void> {\n await this.transport.send(\n 0xe0,\n 0xd8,\n 0x00,\n 0x00,\n Buffer.from(this.ethAppName, this.transportEncoding),\n );\n }\n\n /**\n * Method to close all running application on ledger device.\n *\n */\n async closeApps(): Promise<void> {\n await this.transport.send(0xb0, 0xa7, 0x00, 0x00);\n }\n\n /**\n * Method to retrieve the name and version of the running application in ledger device.\n *\n * @returns An object contains appName and version.\n */\n async getAppNameAndVersion(): Promise<GetAppNameAndVersionResponse> {\n const response = await this.transport.send(0xb0, 0x01, 0x00, 0x00);\n if (response[0] !== 1) {\n throw new Error('Incorrect format return from getAppNameAndVersion.');\n }\n\n let i = 1;\n const nameLength = response[i] ?? 0;\n i += 1;\n\n const appName = response\n .slice(i, (i += nameLength))\n .toString(this.transportEncoding);\n\n const versionLength = response[i] ?? 0;\n i += 1;\n\n const version = response\n .slice(i, (i += versionLength))\n .toString(this.transportEncoding);\n\n return {\n appName,\n version,\n };\n }\n}\n"]}
|
|
@@ -13,6 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
13
13
|
var _LedgerIframeBridge_instances, _LedgerIframeBridge_opts, _LedgerIframeBridge_deviceActionMessage, _LedgerIframeBridge_setupIframe, _LedgerIframeBridge_getOrigin, _LedgerIframeBridge_eventListener, _LedgerIframeBridge_sendMessage, _LedgerIframeBridge_validateConfiguration;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.LedgerIframeBridge = exports.IFrameMessageAction = void 0;
|
|
16
|
+
const ledger_bridge_1 = require("./ledger-bridge.cjs");
|
|
16
17
|
const LEDGER_IFRAME_ID = 'LEDGER-IFRAME';
|
|
17
18
|
var IFrameMessageAction;
|
|
18
19
|
(function (IFrameMessageAction) {
|
|
@@ -172,4 +173,4 @@ _LedgerIframeBridge_opts = new WeakMap(), _LedgerIframeBridge_instances = new We
|
|
|
172
173
|
throw new Error('bridgeURL is not a valid URL');
|
|
173
174
|
}
|
|
174
175
|
};
|
|
175
|
-
//# sourceMappingURL=ledger-iframe-bridge.
|
|
176
|
+
//# sourceMappingURL=ledger-iframe-bridge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-iframe-bridge.cjs","sourceRoot":"","sources":["../src/ledger-iframe-bridge.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetPublicKeyParams,\n GetPublicKeyResponse,\n LedgerBridge,\n LedgerSignMessageParams,\n LedgerSignMessageResponse,\n LedgerSignTransactionParams,\n LedgerSignTransactionResponse,\n LedgerSignTypedDataParams,\n LedgerSignTypedDataResponse,\n} from './ledger-bridge';\n\nconst LEDGER_IFRAME_ID = 'LEDGER-IFRAME';\n\nexport enum IFrameMessageAction {\n LedgerConnectionChange = 'ledger-connection-change',\n LedgerUnlock = 'ledger-unlock',\n LedgerMakeApp = 'ledger-make-app',\n LedgerUpdateTransport = 'ledger-update-transport',\n LedgerSignTransaction = 'ledger-sign-transaction',\n LedgerSignPersonalMessage = 'ledger-sign-personal-message',\n LedgerSignTypedData = 'ledger-sign-typed-data',\n}\n\ntype IFrameMessageResponseStub<\n SuccessResult extends Record<string, unknown>,\n FailureResult = Error,\n> = {\n messageId: number;\n} & (\n | { success: true; payload: SuccessResult }\n | { success: false; payload: { error: FailureResult } }\n);\n\ntype LedgerConnectionChangeActionResponse = {\n messageId: number;\n action: IFrameMessageAction.LedgerConnectionChange;\n payload: { connected: boolean };\n};\n\ntype LedgerMakeAppActionResponse = {\n messageId: number;\n action: IFrameMessageAction.LedgerMakeApp;\n} & ({ success: true } | { success: false; error?: unknown });\n\ntype LedgerUpdateTransportActionResponse = {\n messageId: number;\n action: IFrameMessageAction.LedgerUpdateTransport;\n success: boolean;\n};\n\ntype LedgerUnlockActionResponse = {\n action: IFrameMessageAction.LedgerUnlock;\n} & IFrameMessageResponseStub<GetPublicKeyResponse>;\n\ntype LedgerSignTransactionActionResponse = {\n action: IFrameMessageAction.LedgerSignTransaction;\n} & IFrameMessageResponseStub<LedgerSignTransactionResponse>;\n\ntype LedgerSignPersonalMessageActionResponse = {\n action: IFrameMessageAction.LedgerSignPersonalMessage;\n} & IFrameMessageResponseStub<LedgerSignMessageResponse>;\n\ntype LedgerSignTypedDataActionResponse = {\n action: IFrameMessageAction.LedgerSignTypedData;\n} & IFrameMessageResponseStub<LedgerSignTypedDataResponse>;\n\nexport type IFrameMessageResponse =\n | LedgerConnectionChangeActionResponse\n | LedgerMakeAppActionResponse\n | LedgerUpdateTransportActionResponse\n | LedgerUnlockActionResponse\n | LedgerSignTransactionActionResponse\n | LedgerSignPersonalMessageActionResponse\n | LedgerSignTypedDataActionResponse;\n\ntype IFrameMessage<TAction extends IFrameMessageAction> = {\n action: TAction;\n params?: Readonly<Record<string, unknown>>;\n};\n\ntype IFramePostMessage<TAction extends IFrameMessageAction> =\n IFrameMessage<TAction> & {\n messageId: number;\n target: typeof LEDGER_IFRAME_ID;\n };\n\nexport type LedgerIframeBridgeOptions = {\n bridgeUrl: string;\n};\n\nexport class LedgerIframeBridge\n implements LedgerBridge<LedgerIframeBridgeOptions>\n{\n iframe?: HTMLIFrameElement;\n\n iframeLoaded = false;\n\n readonly #opts: LedgerIframeBridgeOptions;\n\n eventListener?: (eventMessage: {\n origin: string;\n data: IFrameMessageResponse;\n }) => void;\n\n isDeviceConnected = false;\n\n currentMessageId = 0;\n\n messageCallbacks: Record<number, (response: IFrameMessageResponse) => void> =\n {};\n\n constructor(\n opts: LedgerIframeBridgeOptions = {\n bridgeUrl: 'https://metamask.github.io/eth-ledger-bridge-keyring',\n },\n ) {\n this.#validateConfiguration(opts);\n this.#opts = {\n bridgeUrl: opts?.bridgeUrl,\n };\n }\n\n async init(): Promise<void> {\n await this.#setupIframe(this.#opts.bridgeUrl);\n\n this.eventListener = this.#eventListener.bind(this, this.#opts.bridgeUrl);\n\n window.addEventListener('message', this.eventListener);\n }\n\n async destroy(): Promise<void> {\n if (this.eventListener) {\n window.removeEventListener('message', this.eventListener);\n }\n }\n\n async getOptions(): Promise<LedgerIframeBridgeOptions> {\n return this.#opts;\n }\n\n async setOptions(opts: LedgerIframeBridgeOptions): Promise<void> {\n this.#validateConfiguration(opts);\n if (this.#opts?.bridgeUrl !== opts.bridgeUrl) {\n this.#opts.bridgeUrl = opts.bridgeUrl;\n await this.destroy();\n await this.init();\n }\n }\n\n async attemptMakeApp(): Promise<boolean> {\n return new Promise((resolve, reject) => {\n this.#sendMessage(\n {\n action: IFrameMessageAction.LedgerMakeApp,\n },\n (response) => {\n if ('success' in response && response.success) {\n resolve(true);\n } else if ('error' in response) {\n // Assuming this is using an `Error` type:\n reject(response.error as Error);\n } else {\n reject(new Error('Unknown error occurred'));\n }\n },\n );\n });\n }\n\n async updateTransportMethod(transportType: string): Promise<boolean> {\n return new Promise((resolve, reject) => {\n // If the iframe isn't loaded yet, let's store the desired transportType value and\n // optimistically return a successful promise\n if (!this.iframeLoaded) {\n throw new Error('The iframe is not loaded yet');\n }\n\n this.#sendMessage(\n {\n action: IFrameMessageAction.LedgerUpdateTransport,\n params: { transportType },\n },\n (response) => {\n if ('success' in response && response.success) {\n return resolve(true);\n }\n return reject(new Error('Ledger transport could not be updated'));\n },\n );\n });\n }\n\n async getPublicKey(\n params: GetPublicKeyParams,\n ): Promise<GetPublicKeyResponse> {\n return this.#deviceActionMessage(IFrameMessageAction.LedgerUnlock, params);\n }\n\n async deviceSignTransaction(\n params: LedgerSignTransactionParams,\n ): Promise<LedgerSignTransactionResponse> {\n return this.#deviceActionMessage(\n IFrameMessageAction.LedgerSignTransaction,\n params,\n );\n }\n\n async deviceSignMessage(\n params: LedgerSignMessageParams,\n ): Promise<LedgerSignMessageResponse> {\n return this.#deviceActionMessage(\n IFrameMessageAction.LedgerSignPersonalMessage,\n params,\n );\n }\n\n async deviceSignTypedData(\n params: LedgerSignTypedDataParams,\n ): Promise<LedgerSignTypedDataResponse> {\n return this.#deviceActionMessage(\n IFrameMessageAction.LedgerSignTypedData,\n params,\n );\n }\n\n async #deviceActionMessage(\n action: IFrameMessageAction.LedgerUnlock,\n params: GetPublicKeyParams,\n ): Promise<GetPublicKeyResponse>;\n\n async #deviceActionMessage(\n action: IFrameMessageAction.LedgerSignTransaction,\n params: LedgerSignTransactionParams,\n ): Promise<LedgerSignTransactionResponse>;\n\n async #deviceActionMessage(\n action: IFrameMessageAction.LedgerSignPersonalMessage,\n params: LedgerSignMessageParams,\n ): Promise<LedgerSignMessageResponse>;\n\n async #deviceActionMessage(\n action: IFrameMessageAction.LedgerSignTypedData,\n params: LedgerSignTypedDataParams,\n ): Promise<LedgerSignTypedDataResponse>;\n\n async #deviceActionMessage(\n ...[action, params]:\n | [IFrameMessageAction.LedgerUnlock, GetPublicKeyParams]\n | [IFrameMessageAction.LedgerSignTransaction, LedgerSignTransactionParams]\n | [IFrameMessageAction.LedgerSignPersonalMessage, LedgerSignMessageParams]\n | [IFrameMessageAction.LedgerSignTypedData, LedgerSignTypedDataParams]\n ): Promise<\n | GetPublicKeyResponse\n | LedgerSignTransactionResponse\n | LedgerSignMessageResponse\n | LedgerSignTypedDataResponse\n > {\n return new Promise((resolve, reject) => {\n this.#sendMessage(\n {\n action,\n params,\n },\n (response) => {\n if ('payload' in response && response.payload) {\n if ('success' in response && response.success) {\n return resolve(response.payload);\n }\n if ('error' in response.payload) {\n return reject(response.payload.error);\n }\n }\n return reject(new Error('Unknown error occurred'));\n },\n );\n });\n }\n\n async #setupIframe(bridgeUrl: string): Promise<void> {\n return new Promise((resolve) => {\n this.iframe = document.createElement('iframe');\n this.iframe.src = bridgeUrl;\n this.iframe.allow = `hid 'src'`;\n this.iframe.onload = async (): Promise<void> => {\n this.iframeLoaded = true;\n resolve();\n };\n document.head.appendChild(this.iframe);\n });\n }\n\n #getOrigin(bridgeUrl: string): string {\n const tmp = bridgeUrl.split('/');\n tmp.splice(-1, 1);\n return tmp.join('/');\n }\n\n #eventListener(\n bridgeUrl: string,\n eventMessage: {\n origin: string;\n data: IFrameMessageResponse;\n },\n ): void {\n if (eventMessage.origin !== this.#getOrigin(bridgeUrl)) {\n return;\n }\n\n if (eventMessage.data) {\n const messageCallback =\n this.messageCallbacks[eventMessage.data.messageId];\n if (messageCallback) {\n messageCallback(eventMessage.data);\n } else if (\n eventMessage.data.action === IFrameMessageAction.LedgerConnectionChange\n ) {\n this.isDeviceConnected = eventMessage.data.payload.connected;\n }\n }\n }\n\n #sendMessage<TAction extends IFrameMessageAction>(\n message: IFrameMessage<TAction>,\n callback: (response: IFrameMessageResponse) => void,\n ): void {\n this.currentMessageId += 1;\n\n const postMsg: IFramePostMessage<TAction> = {\n ...message,\n messageId: this.currentMessageId,\n target: LEDGER_IFRAME_ID,\n };\n\n this.messageCallbacks[this.currentMessageId] = callback;\n\n if (!this.iframeLoaded || !this.iframe?.contentWindow) {\n throw new Error('The iframe is not loaded yet');\n }\n\n this.iframe.contentWindow.postMessage(postMsg, '*');\n }\n\n #validateConfiguration(opts: LedgerIframeBridgeOptions): void {\n if (typeof opts.bridgeUrl !== 'string' || opts.bridgeUrl.length === 0) {\n throw new Error('bridgeURL is not a valid URL');\n }\n }\n}\n"]}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { GetPublicKeyParams, GetPublicKeyResponse, LedgerBridge, LedgerSignMessageParams, LedgerSignMessageResponse, LedgerSignTransactionParams, LedgerSignTransactionResponse, LedgerSignTypedDataParams, LedgerSignTypedDataResponse } from './ledger-bridge';
|
|
1
|
+
import { GetPublicKeyParams, GetPublicKeyResponse, LedgerBridge, LedgerSignMessageParams, LedgerSignMessageResponse, LedgerSignTransactionParams, LedgerSignTransactionResponse, LedgerSignTypedDataParams, LedgerSignTypedDataResponse } from "./ledger-bridge.cjs";
|
|
3
2
|
export declare enum IFrameMessageAction {
|
|
4
3
|
LedgerConnectionChange = "ledger-connection-change",
|
|
5
4
|
LedgerUnlock = "ledger-unlock",
|
|
@@ -81,3 +80,4 @@ export declare class LedgerIframeBridge implements LedgerBridge<LedgerIframeBrid
|
|
|
81
80
|
deviceSignTypedData(params: LedgerSignTypedDataParams): Promise<LedgerSignTypedDataResponse>;
|
|
82
81
|
}
|
|
83
82
|
export {};
|
|
83
|
+
//# sourceMappingURL=ledger-iframe-bridge.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-iframe-bridge.d.cts","sourceRoot":"","sources":["../src/ledger-iframe-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { GetPublicKeyParams, GetPublicKeyResponse, LedgerBridge, LedgerSignMessageParams, LedgerSignMessageResponse, LedgerSignTransactionParams, LedgerSignTransactionResponse, LedgerSignTypedDataParams, LedgerSignTypedDataResponse } from "./ledger-bridge.mjs";
|
|
2
|
+
export declare enum IFrameMessageAction {
|
|
3
|
+
LedgerConnectionChange = "ledger-connection-change",
|
|
4
|
+
LedgerUnlock = "ledger-unlock",
|
|
5
|
+
LedgerMakeApp = "ledger-make-app",
|
|
6
|
+
LedgerUpdateTransport = "ledger-update-transport",
|
|
7
|
+
LedgerSignTransaction = "ledger-sign-transaction",
|
|
8
|
+
LedgerSignPersonalMessage = "ledger-sign-personal-message",
|
|
9
|
+
LedgerSignTypedData = "ledger-sign-typed-data"
|
|
10
|
+
}
|
|
11
|
+
type IFrameMessageResponseStub<SuccessResult extends Record<string, unknown>, FailureResult = Error> = {
|
|
12
|
+
messageId: number;
|
|
13
|
+
} & ({
|
|
14
|
+
success: true;
|
|
15
|
+
payload: SuccessResult;
|
|
16
|
+
} | {
|
|
17
|
+
success: false;
|
|
18
|
+
payload: {
|
|
19
|
+
error: FailureResult;
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
type LedgerConnectionChangeActionResponse = {
|
|
23
|
+
messageId: number;
|
|
24
|
+
action: IFrameMessageAction.LedgerConnectionChange;
|
|
25
|
+
payload: {
|
|
26
|
+
connected: boolean;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
type LedgerMakeAppActionResponse = {
|
|
30
|
+
messageId: number;
|
|
31
|
+
action: IFrameMessageAction.LedgerMakeApp;
|
|
32
|
+
} & ({
|
|
33
|
+
success: true;
|
|
34
|
+
} | {
|
|
35
|
+
success: false;
|
|
36
|
+
error?: unknown;
|
|
37
|
+
});
|
|
38
|
+
type LedgerUpdateTransportActionResponse = {
|
|
39
|
+
messageId: number;
|
|
40
|
+
action: IFrameMessageAction.LedgerUpdateTransport;
|
|
41
|
+
success: boolean;
|
|
42
|
+
};
|
|
43
|
+
type LedgerUnlockActionResponse = {
|
|
44
|
+
action: IFrameMessageAction.LedgerUnlock;
|
|
45
|
+
} & IFrameMessageResponseStub<GetPublicKeyResponse>;
|
|
46
|
+
type LedgerSignTransactionActionResponse = {
|
|
47
|
+
action: IFrameMessageAction.LedgerSignTransaction;
|
|
48
|
+
} & IFrameMessageResponseStub<LedgerSignTransactionResponse>;
|
|
49
|
+
type LedgerSignPersonalMessageActionResponse = {
|
|
50
|
+
action: IFrameMessageAction.LedgerSignPersonalMessage;
|
|
51
|
+
} & IFrameMessageResponseStub<LedgerSignMessageResponse>;
|
|
52
|
+
type LedgerSignTypedDataActionResponse = {
|
|
53
|
+
action: IFrameMessageAction.LedgerSignTypedData;
|
|
54
|
+
} & IFrameMessageResponseStub<LedgerSignTypedDataResponse>;
|
|
55
|
+
export type IFrameMessageResponse = LedgerConnectionChangeActionResponse | LedgerMakeAppActionResponse | LedgerUpdateTransportActionResponse | LedgerUnlockActionResponse | LedgerSignTransactionActionResponse | LedgerSignPersonalMessageActionResponse | LedgerSignTypedDataActionResponse;
|
|
56
|
+
export type LedgerIframeBridgeOptions = {
|
|
57
|
+
bridgeUrl: string;
|
|
58
|
+
};
|
|
59
|
+
export declare class LedgerIframeBridge implements LedgerBridge<LedgerIframeBridgeOptions> {
|
|
60
|
+
#private;
|
|
61
|
+
iframe?: HTMLIFrameElement;
|
|
62
|
+
iframeLoaded: boolean;
|
|
63
|
+
eventListener?: (eventMessage: {
|
|
64
|
+
origin: string;
|
|
65
|
+
data: IFrameMessageResponse;
|
|
66
|
+
}) => void;
|
|
67
|
+
isDeviceConnected: boolean;
|
|
68
|
+
currentMessageId: number;
|
|
69
|
+
messageCallbacks: Record<number, (response: IFrameMessageResponse) => void>;
|
|
70
|
+
constructor(opts?: LedgerIframeBridgeOptions);
|
|
71
|
+
init(): Promise<void>;
|
|
72
|
+
destroy(): Promise<void>;
|
|
73
|
+
getOptions(): Promise<LedgerIframeBridgeOptions>;
|
|
74
|
+
setOptions(opts: LedgerIframeBridgeOptions): Promise<void>;
|
|
75
|
+
attemptMakeApp(): Promise<boolean>;
|
|
76
|
+
updateTransportMethod(transportType: string): Promise<boolean>;
|
|
77
|
+
getPublicKey(params: GetPublicKeyParams): Promise<GetPublicKeyResponse>;
|
|
78
|
+
deviceSignTransaction(params: LedgerSignTransactionParams): Promise<LedgerSignTransactionResponse>;
|
|
79
|
+
deviceSignMessage(params: LedgerSignMessageParams): Promise<LedgerSignMessageResponse>;
|
|
80
|
+
deviceSignTypedData(params: LedgerSignTypedDataParams): Promise<LedgerSignTypedDataResponse>;
|
|
81
|
+
}
|
|
82
|
+
export {};
|
|
83
|
+
//# sourceMappingURL=ledger-iframe-bridge.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ledger-iframe-bridge.d.mts","sourceRoot":"","sources":["../src/ledger-iframe-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,6BAA6B,EAC7B,yBAAyB,EACzB,2BAA2B,EAC5B,4BAAwB;AAIzB,oBAAY,mBAAmB;IAC7B,sBAAsB,6BAA6B;IACnD,YAAY,kBAAkB;IAC9B,aAAa,oBAAoB;IACjC,qBAAqB,4BAA4B;IACjD,qBAAqB,4BAA4B;IACjD,yBAAyB,iCAAiC;IAC1D,mBAAmB,2BAA2B;CAC/C;AAED,KAAK,yBAAyB,CAC5B,aAAa,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,aAAa,GAAG,KAAK,IACnB;IACF,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,CACA;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,GACzC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE;QAAE,KAAK,EAAE,aAAa,CAAA;KAAE,CAAA;CAAE,CACxD,CAAC;AAEF,KAAK,oCAAoC,GAAG;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC,sBAAsB,CAAC;IACnD,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,CAAC;CACjC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC,aAAa,CAAC;CAC3C,GAAG,CAAC;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAE9D,KAAK,mCAAmC,GAAG;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,mBAAmB,CAAC,qBAAqB,CAAC;IAClD,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC,MAAM,EAAE,mBAAmB,CAAC,YAAY,CAAC;CAC1C,GAAG,yBAAyB,CAAC,oBAAoB,CAAC,CAAC;AAEpD,KAAK,mCAAmC,GAAG;IACzC,MAAM,EAAE,mBAAmB,CAAC,qBAAqB,CAAC;CACnD,GAAG,yBAAyB,CAAC,6BAA6B,CAAC,CAAC;AAE7D,KAAK,uCAAuC,GAAG;IAC7C,MAAM,EAAE,mBAAmB,CAAC,yBAAyB,CAAC;CACvD,GAAG,yBAAyB,CAAC,yBAAyB,CAAC,CAAC;AAEzD,KAAK,iCAAiC,GAAG;IACvC,MAAM,EAAE,mBAAmB,CAAC,mBAAmB,CAAC;CACjD,GAAG,yBAAyB,CAAC,2BAA2B,CAAC,CAAC;AAE3D,MAAM,MAAM,qBAAqB,GAC7B,oCAAoC,GACpC,2BAA2B,GAC3B,mCAAmC,GACnC,0BAA0B,GAC1B,mCAAmC,GACnC,uCAAuC,GACvC,iCAAiC,CAAC;AAatC,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,qBAAa,kBACX,YAAW,YAAY,CAAC,yBAAyB,CAAC;;IAElD,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B,YAAY,UAAS;IAIrB,aAAa,CAAC,EAAE,CAAC,YAAY,EAAE;QAC7B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,qBAAqB,CAAC;KAC7B,KAAK,IAAI,CAAC;IAEX,iBAAiB,UAAS;IAE1B,gBAAgB,SAAK;IAErB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,IAAI,CAAC,CACtE;gBAGH,IAAI,GAAE,yBAEL;IAQG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxB,UAAU,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAIhD,UAAU,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1D,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBlC,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB9D,YAAY,CAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAI1B,qBAAqB,CACzB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,6BAA6B,CAAC;IAOnC,iBAAiB,CACrB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,yBAAyB,CAAC;IAO/B,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,2BAA2B,CAAC;CAiIxC"}
|